



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、T T M M S S 3 3 2 2 0 0 F F 2 2 8 8 1 1 2 2 ? ? F F L L A A S S H H 的 应 用 和 远 程 更 新1、概述由于电力系统自动化设备大多安装在野外, 给程序维护工作带来了极大的困难。 已安装 的设备若出现程序缺陷,或者用户提出新的需求,需要对程序进行更新。传统的维护方法均 是到实地取下设备,通过仿真器进行烧写维护,此方法效率低,作业危险性大。考虑到多数 设备具有通信信道,远程通信更新程序是智能设备的必然趋势和要求。TMS320F281片内有18k*16RAM以及128k*16Flash资源,可以用来存放程序代码、数 据表格以及用户
2、信息,可多次擦除和写入数据,并且片内带有电荷泵,使其可在正常工作电 压下对FLASH的逐段擦写。TMS320F281具备开发IAP系统的硬件条件,通过在Flash自定 义的段中放置升级代码:擦写Flash、读取存储器和通信程序。升级时运行这段代码擦写Flash,更新应用程序,实现在线编程。2、实现原理和步骤首先将需要更新的程序,经过CCS编译环境生成.out文件,然后利用TI提供的转换工具将. out文件转换为16进制数据流文件,再通过上位机程序将数据流文件通过串口发送,然后 经过各种传输通道如GPR删络,最后通过TMS320F2812勺串口,把需要升级的新代码数据 流文件先存到外部扩展RAM
3、芯片或FLASH片中,经过校验无误,才启动下位机升级程序, 将外部RAM或FLASH中代码数据搬移到相应的片内FLASH段中,实现程序的更新。3、 更新程序数据流文件的创建由于在CCS3.1开发环境中最后生成的文件是.out格式,ATG口下载到DSP中。为了实现程序的串口更新,还要将Bootloader程序所能识别的引导表数据流格式。我们可以通过000将.out文件转化成数据流文件。为此,需要编写批处理文件,此文件的作用就是指定引 导表的格式。例如创建批处理文件build2812hex,内容是:RemoteU pdate.out/输 入文件名-a/输出文件格式为txt-ma pRemoteU
4、pdate.ma p/生成地址映射文件-oRemoteU pdate.txt/输出文件名-boot以TMS320F2812勺Bootloader标准格式生成数据流-sci8 /8位模式,与电力规约中传输数据的字符宽度相符4、 引导表数据流文件的下载上位机程序中最主要的功能就是分析解包数据流文件并将处理后的数据信息传给下位 机,并控制程序更新的操作。在分析解包数据流文件时,需要将RemoteUpdate.txt中的数据流文件内的每块程序块 的大小和此文件只能在CCS环境下通过J.out格式的文件转化成能被DSPTI提供的数据转换工具Hex2烧入FLASHY首地址等信息从RemoteUpdate.
5、txt中提取出来,同时计算出暂时存 入外扩存储器的相应地址,存放在结构体中。上位机与设备终端的通讯采用电力规约 (如05国电规约或IEC60870-5-101协议)的帧 格式通讯规约的基础设计的。在读取数据流文件的相关信息并处理过之后, 进入传输数据流文件的数据段部分, 在此 过程中PC通讯程序将数据段部分分段添加到通讯报文的数据部分,分成多帧的形式,通过 串口发送。每帧都自带校验和,并且设备终端在收到数据并且确认正确后,将发送确认帧到 上位机。上位机只有在收到确认帧后,才会继续发送下一帧数据,否则将重新传送该帧的数 据,直到收到确认帧为止。待全部数据发送完后,通过将发送数据的总长度通过特定帧
6、下传 给终端设备,并与终端设备所接收到的数据总长度相互比较,若两者不等,将全部重传,以 此实现了总校验,提高了数据传输的正确性。5、下位机文件数据的接收终端设备接收到PC通过串口传输的数据流的地址和大小等信息时,同时将占据外扩存储资 源(RAM或FLASH的相关的应用程序关闭,保证了下传的数据流不被破坏,并且覆盖了程 序正常运行时存放在该资源上的数据。在接收到PC的第一帧的更新信息时,除了外部串口通讯的中断,会关闭其他外部的可屏蔽中断,保证了接收的数据段的正确性、完整性。由于 将所有的需更新的数据均存放在外扩的RAM中,保证若在传输更新数据的过程中,终端设备 断电或者是传输丢帧的情况发生,原运
7、行系统将完全正常工作,不会受到任何影响。此时上 位机会发现错误,只需再次发出更新信号,并且重传所需更新的数据即可。这部分的功能的实现即是实现写外部RAM或FLASH的过程,下位机将收到的数据流 根据其地址和大小信息, 将数据写入外部RAM或FLASH。例如假设系统现在外扩了一片F LASH芯片SST39VF3202,需要将数据流信息保存在外部FLASH中,需要编写如下的函数, 相关参数和操作请具体查阅SST39VF3202使用手册:intWriteSstflash(farUint16*pdata,Uint32wordadd,Uint16length);/writewordsintodevice
8、 intEraseSstflashSector(Uint16sectornum);/Eraseonesector(2Kwords)intEraseSstFlashBlock(Uint16blocknum);/Eraseoneblock(32Kword)intEraseSstFlashChip(void);/ErasethewholechipvoidSuspendErase(void);/Temporarilysuspendonesector-eraseorblock-eraseintResumeErase(void);/Resumesuspendedsector-eraseorblock-er
9、aseint16CheckToggleReady(Uint32wordadd,Uint32timeout);/WaituntilDQ6stopstoggling/写入SSTFLASH*pdata-数据缓存wordadd-字地址length-长度intWriteSstflash(farUint16*pdata,Uint32wordadd,Uint16length)Uint16sector,area;volatileUint16*pflash=(volatileUint16*)EXFLASH_ADD;if(wordadd+length=CHIP_SIZE)returnFALSE;if(CheckT
10、oggleReady(0,SECTOR_ERASE_TIME)=FALSE)/FLASHBUSY检测等待returnFALSE;sector=wordadd11;if(wordadd=(Uint32)sector*SECTOR_SIZE)/段首擦除EraseSstflashSector(sector);if(wordadd+length=(Uint32)(sector+1)*SECTOR_SIZE)/数据跨段EraseSstflashSector(sector+1);area=wordadd19; /FLASH区域选择A0-A18wordadd&=(AERA_SIZE-1);while
11、(length-)SET_FLASH_AERA(0);*(volatileUint16*)(EXFLASH_ADD+0 x5555)=0 x00AA;/擦写控制字*(volatileUint16*)(EXFLASH_ADD+0 x2AAA)=0 x0055;*(volatileUint16*)(EXFLASH_ADD+0 x5555)=0 x00A0;SET_FLASH_AERA(area); *(pflash+wordadd+)=*pdata+;if(wordadd=AERA_SIZE)SET_FLASH_AERA(area+); wordadd=0;if(CheckToggleReady(
12、wordadd,WORD_PROGRAME_TIME)=FALSE)/FLASHBUSY检 测等待returnFALSE;returnTRUE;当下位机收到PC发来的程序更新命令以后,下位机开始执行程序更新,即将系统外部存储器中程序数据流写入到TMS320F2812的片内FLASH中。由于TMS320F2812片内FLASH不支持在其中一个扇区运行程序去擦出烧写其他扇区的操作, 所以将外部存储器中的 程序数据流写入TMS320F2812片内FLASH的操作必须在TMS320F2812片内RAM或外部RAM中运行。例如在*cmd文件中的SECTIONS段内添加如下代码,即可实现代码运行从FLAS
13、HJ段中转移到RAMH02中运行。Flash28_API:6、程序的更新实现-lFlash2812_API_V210.lib(.econst)-lFlash2812_API_V210.lib(.text)LOAD=FLASHJ,RUN=RAMH02,LOAD_START(_Flash28_API_LoadStart),LOAD_END(_Flash28_API_LoadEnd),RUN_START(_Flash28_API_RunStart),PAGE=0ramfuncs:LOAD=FLASHJ,RUN=RAMH02,LOAD_START(_RamfuncsLoadStart),LOAD_EN
14、D(_RamfuncsLoadEnd), RUN_START(_RamfuncsRunStart), PAGE=07、片内 FLASH 的操作片内Flash烧写程序是boot程序的主要部分,程序可分为3部分:擦除Flash、向已 擦除的Flash段写入代码、校验代码写入的正确性。Ti公司提供了专门用于操作TMS320F2 812片内Flash的API。规定了对TMS320F281片内Flash擦除的最小单位是页,不能单独 擦除Flash的1个字或位。调用API函数库中的擦除函数Flash_Erase()可完成对Flash的 擦除操作。调用API函数库中的编程函数Flash_Program()可
15、完成对Flash的写操作。与 此同时Ti所提供的API函数能检测所擦除的Flash段是否越界等等,并且根据相应的错误 返回错误状态信息。在对Flash写入代码段之后,可调用API中的Flash_Verify()函数 对已经写入Flash的代码段和原始数据进行校验。通过调用TI的FLASHAP库,编写了如下FLASH!作函数:函数名称功能描述voidCallFlashAPI();FLASH操作的核心函数,主要调用APIvoidError(Ui nt16Status);鉴别错误类型,并停止运行voidMemCopy(Uint16*SourceAddr,Uint16*SourceEndAddr,Ui
16、nt16*DestAddr); voidInitUpdate(void)初始化FLASH操作函数voidDataHexFunc(void);FLASH操作主程序值得注意的是FLASH操作的相关函数在系统的应用中需要从FLASH中搬移到RAM中来运 行,所以需要进行如下定义:#pragmaCODE_SECTION(Error,ramfuncs); #pragmaCODE_SECTION(CallFlashAPI,ramfuncs);利用#p ragma定义将函数的入口地址定义在固定的位置ramfu ncs,有利于系统的操作。应用中,系统需要将某些参数存入片内FLASH的某个段中,编写如下的Cal
17、lFlashAPI函数。voidCallFlashAPI(Param*Address)Uint16Status;Uint16*Flash_ptr;/PointertoalocationinflashUint16*Origin_ptr;/Pointertoalocationinram Uint32Length;intSector;Sector=SECTORJ;/将参数保存在J段Status=Flash_Erase(Sector,&EraseStatus);if(Status!=STATUS_SUCCESS)F2812_Error(Status);Origin_ptr=(Uint16*)Address;/参数所在的地址Length=sizeof(Param);/Flash_ptr=(Uint16*)0 x3D800
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Mycobacterium-Tuberculosis-IN-6-生命科学试剂-MCE
- 2025年棕、藤、草制品项目发展计划
- 石材镜面合同范本
- 整套打包出售合同范本
- 票据交易合同范本
- 2025年安防电子项目合作计划书
- 2025年过滤净化材料项目合作计划书
- 2025年全断面掘进机项目发展计划
- 2025年汽车专用零部件力学性能测试设备合作协议书
- 2025年光纤用GECL4合作协议书
- GB/T 31586.2-2015防护涂料体系对钢结构的防腐蚀保护涂层附着力/内聚力(破坏强度)的评定和验收准则第2部分:划格试验和划叉试验
- GB/T 15175-2012固体激光器主要参数测量方法
- 建筑工程施工进度计划网络图和横道图
- HP工作站BIOS详解参考模板
- 员工培训、考试、积分记录表
- 微专题:地理时空“尺度观”思想课件
- 大学普通物理-习题答案(程守洙-江之勇主编-第六版)课件
- 风冷热泵主机改造-模块机汇总
- 乌司他丁课件
- 《工程化学》全套教学课件
- 职业卫生工程控制技术课件
评论
0/150
提交评论