基于TMS320C6416的远程升级的设计与实现
2016-07-15黄河
黄河
【摘 要】本文在研究了DSP芯片TMS320C6416系统结构和DSP程序启动加载过程的基础上,结合高性能网络处理芯片W5300,设计了一套DSP程序远程升级的流程,通过网络对DSP程序进行远程升级,使升级更加稳定可靠。
【关键词】DSP;TMS320C6416;W5300;远程升级
【Abstract】Based on studies of the system architecture of TMS320C6416 and its boot loader course, combined with W5300, which is a high-performance network solution chip, this paper designed a remote upgrade process for DSP,this process could upgrade DSP program thought the Ethernet, Which made it more stable and reliable for upgrade.
【Key words】DSP; TMS320C6416; W5300; Remote upgrade
0 引言
目前,DSP(digital signal processing)的应用范围已经扩展到数字图像处理、工业控制、医疗、卫星导航等领域[1]。TMS320C6416是TI公司推出的一款定点运算芯片,采用了VLIW(Very Long Instruction Word)甚长指令字结构,主频可达1.1GHZ,拥有高性能的外部存储器接口(EMIF),得益于其良好的性能,TMS320C6416在军事通信、电子对抗、图像处理领域具有非常大的应用潜力[1]。搭载DSP芯片的设备投入使用后,随着系统功能的不断丰富和完善,程序维护人员需要携带编程工具到现场进行更新升级,比较麻烦,一种可以通过网络或其他通信方式来对嵌入式系统程序进行升级的方法就显得更加方便可靠。
1 二次加载
DSP的加载方式是其设备脱机运行的关键。TMS320C6416的加载方式有三种,不加载、ROM加载和主机加载,ROM加载是常用的方式[2]。可以配置引脚BEA[19:18]进行选择。当BEA[19:18]被配置成10b时,将进行EMIFB CE1空间的8bit ROM加载方式。上电复位时,DSP通过EMIF将FLASH的1KB数据自动搬移到内部RAM的0地址处并运行该段程序,完成一次加载。由于用户代码长度通常大于1KB,因此需要进行二次加载,二次加载程序将用户程序搬移到内部RAM,然后跳转至C入口函数c_init00。二次加载的流程图如图1所示。
TMS320C6416的内部RAM地址范围是0x0000 0000~0x000F FFFF,总大小为1MB,EMIFB CE1空间地址是0x64000 0000。一般芯片刚上电时,C语言环境还未初始化成功,二次加载程序使用汇编语言编写。从FLASH起始地址(0x6400 0000)拷贝1M长度(0x10000)的代码 到内部RAM(起始地址为0x0000 0400),然后跳转到_c_int00运行。
2 远程升级的实现方法
2.1 硬件连接
TMS320C6416通过EMIF接口与FLASH连接,实现FLASH的读写操作,DSP连接W5300芯片实现可靠的网络数据收发,PC端用来传输升级包,完成与DSP用户程序的交互。硬件连接图如图2所示。选用存储容量为2M Byte的FLASH芯片,前1M空间用于存储用户程序,后1M用于存放网络参数等系统初始化参数。使用高性能网络芯片W5300与DSP连接,提供可靠、高速的网络数据通信。
2.2 软件实现
2.2.1 软件组成
1)PC端软件,主要用于分割升级文件,传输升级数据包。
2)用户软件,完成FLASH读写操作,网络功能初始化,网络数据收发。
将W5300配置为服务器模式,配置IP地址,子网掩码和默认网关。PC软件作为客户端发起连接,连接成功后PC软件就可以和DSP进行网络通信。
2.2.2 升级文件的生成
帧头是固定字节0x33,0xCC;长度是从软件编号字段开始到帧内容为止的所有长度;软件编号指示DSP软件,可以对多个DSP进行升级,结束标志指示是否还有后续帧,为0表示没有后续帧,为1表示还有后续帧;指令编号指示该帧是何种类型 0:READY帧,1:EARSE帧,2:UPGRADE帧,3:DONE帧。(帧类型下一节会叙述)帧内容是需要传输的Hex文件段,校验使用CRC24校验,帧尾是固定字节0x11,0xAA。
2.2.4 远程升级的步骤
远程升级主要通过以下的步骤来实现:
a)用户软件启动,初始化网络,准备接收升级文件。
b)PC软件加载升级数据文件,发送开始升级指令(READY)。
c)用户软件回应开始升级指令。
d)PC软件发送FLASH擦除指令(EARSE)。
e)用户软件完成FLASH擦除动作并回应FLASH擦除指令。
f)PC软件发送升级命令包(UPGRADE)。
g)用户软件回应升级命令,写入到FLASH。
h)写入完毕,复位,发送DONE命令到PC软件,加载升级后的程序运行,升级完毕。
2.2.5 远程升级的结果验证
将日期作为软件版本,通过查看软件版本可以验证升级是否成功,可以查看FLASH相应地址的内容进行验证。
3 结论
利用TMS320C6416的EMIF接口连接FLASH芯片,使用W5300芯片的网络通信功能,构造一个C/S结构的系统可以完成在线升级的功能,实现DSP系统的升级,该在线升级方法已经在某平台上应用,经验证,稳定可靠。
【参考文献】
[1]李方慧,王飞,何佩琨.TMS320C6000 系列DSPs 原理与应用[M].2版.北京:电子工业出版社,2003.
[2]江思敏,刘畅,主编.TM S320C6000 DSP 应用开发教程[M].机械工业出版社, 2005,2.
[3]Texas Instruments.TMS320C6000 系列DSP 编程工具与指南[M].北京:清华大学出版社,2006.
[4]王敏志,曹元将,陈行湖.基于FLASH 的T MS320C6416ROM 加载方法[J].雷达与对抗,2004(3):62-66.
[责任编辑:杨玉洁]