此文是一篇参考文献论文范文,关于参考文献论文范文检索,与基于TMS320F2812的远程在线升级设计与实现相关学士学位论文。适合不知如何写参考文献及文件及大学学报方面的论文格式专业大学硕士和本科毕业论文以及参考文献类开题报告范文和职称论文的作为写作参考文献资料下载。
【摘 要 】TMS320F2812已在控制领域得到广泛应用,但还没有详细具有可操作性的在线升级资料可查.本文在工程实践的基础上提出了一种基于SCI串口的远程在线升级方法,大大提高了产品的可维护性与扩展性,对于工程人员有很强的指导意义.
【关 键 词 】在线升级;上位机软件;底层软件;API
1.引言
TMS320F2812(以下简称F2812)是美国德州仪器公司(TI)的32位定点数字信号处理器(DSP),主要应用于逆变器控制、电机控制等领域.F2812片内拥有高达128 KBx16位的F1ash程序存储器,可以满足大多数程序存储需要,将程序烧写到片内Flash的最简便方法就是利用TI的烧写插件通过JTAG进行.但在实际工程应用中,产品交付后往往需要在不拆盖的情况下对软件进行升级,所以远程在线升级功能是对产品设计的基本要求.F2812虽然已在控制领域得到广泛应用,但关于其在线升级的具有可操作性的详细设计还没有相关资料可查.远程在线升级不能通过JTAG口实现,因为JTAG的线引到外面后容易受到干扰而使程序跑飞.本文提出一种通过SCI的远程在线升级方法,详细介绍了其设计方法与操作步骤,并已在工程项目中验证了该方法的可实施性.本文针对具有一定DSP2812开发经验的工程人员设计编写,所以对于一些DSP基础知识不涉及.
2.总体思路
TI代码产生工具所产生的目标文件是一种COFF文件格式,即out文件.数据在COFF格式文件中以段形式形成,不同的段存放不同类型的内容.应用中通过编写连接器命令文件(.cmd)将这些段正确地分配到DSP的地址空间,DSP集成开发环境CCS经编译链接之后.生成out文件和map文件,map文件详细描述了cmd文件中定义的各段起始地址以及使用长度.COFF文件格式DSP能够识别,但不能直接烧写到Flash,必须将out文件转换为Flash能识别的数据格式,即hex的数据文件.所以实现远程在线升级的软件分为上位机软件和DSP底层软件.上位机软件主要用于out文件的格式转换和数据传输等;而底层软件主要将串口发送的数据烧写至Flash.F2812每次上电复位,先运行DSP底层软件,判断是否需要重新烧写Flash.若需要,则将串口发送的目标代码烧写至F2812片内Flash指定扇区;否则将继续执行原有的用户目标代码.
3.上位机软件设计
上位机软件主要实现人机界面转换,完成用户程序解析等工作,可使用VC++或者LabView设计编写.本设计中上位机软件实现以下功能:启动在线升级功能,转换out文件,传输hex格式数据.启动在线升级和传输数据的命令,用户可根据实际应用制定相应的通讯协议,比如同步字的设置、命令字的设置及每次传送字节的个数等.下面主要介绍一下out文件的转换方法.
3.1 out文件转换
利用TI公司提供的生成工具hex2000可以将out文件转换为可以直接烧写到FLASH的hex文件格式,hex文件格式包括ASCII-Hex、Intel、TI-Txt等格式,详细介绍见TI的SPRU513C参考文献.hex2000工具在CCS中附带,路径为CCS安装根目录/CCStudio_3.3/c2000/cgtools/bin/hex2000,要正确使用hex2000需要调用相应的转换命令,为方便起见一般用到的命令行编写成一个命令批处理文件,在转换时直接调用.假如批处理文件名为zample.cmd,内容为:
dspprog.out//要转换的out文件;
-map dspprog.map//生成的map文件名;
-o dspprog.hex//生成的16进制文件名;
-memwidth 16//DSP存储器的数据宽度;
-romwidth 16//外接flash的数据宽度;
-a//要转换的hex格式.
3.2 Hex2000使用步骤
1)将out文件、hex2000与命令批处理文件zample.cmd放在同一个目录下,假如在E:YY目录下;
2)点击“程序-附件-命令提示符”进入DOS环境;
3)进入E:YY目录;
4)输入hex2000 zample.cmd按回车确认键,即生成.hex文件和.map文件.
生成的文件内容格式如下:
其中3d8000为该段代码存放的起始地址,例如FE 02应存放在3d8000地址中,96 41应存放在3d8001地址中.
4.DSP底层软件
DSP底层软件主要是根据上位机传来的命令进行相应操作,若启动在线升级则进行擦除flash、写flash或进行校验操作;否则就执行原目标代码.远程在线升级可以将代码烧写到外部或内部Flash,但由于代码在外部空间运行容易受到干扰,内部空间