0引言
目前,DSP(digitalsignalprocessing)的应用范围已经扩展到数字图像处理、工业控制、医疗、卫星导航等领域[1]。TMS320C6416是TI公司推出的一款定点运算芯片,采用了VLIW(VeryLongInstructionWord)甚长指令字结构,主频可达1.1GHZ,拥有高性能的外部存储器接口(EMIF),得益于其良好的性能,TMS320C6416在军事通信、电子对抗、图像处理领域具有非常大的应用潜力[1]。搭载DSP芯片的设备投入使用后,随着系统功能的不断丰富和完善,程序维护人员需要携带编程工具到现场进行更新升级,比较麻烦,一种可以通过网络或其他通信方式来对嵌入式系统程序进行升级的方法就显得更加方便可靠。
1二次加载
DSP的加载方式是其设备脱机运行的关键。TMS320C6416的加载方式有三种,不加载、ROM加载和主机加载,ROM加载是常用的方式[2]。可以配置引脚BEA[19:18]进行选择。当BEA[19:18]被配置成10b时,将进行EMIFBCE1空间的8bitROM加载方式。上电复位时,DSP通过EMIF将FLASH的1KB数据自动搬移到内部RAM的0地址处并运行该段程序,完成一次加载。由于用户代码长度通常大于1KB,因此需要进行二次加载,二次加载程序将用户程序搬移到内部RAM,然后跳转至C入口函数c_init00。二次加载的流程图如图1所示。
TMS320C6416的内部RAM地址范围是0x00000000~0x000FFFFF,总大小为1MB,EMIFBCE1空间地址是0x640000000。一般芯片刚上电时,C语言环境还未初始化成功,二次加载程序使用汇编语言编写。从FLASH起始地址(0x64000000)拷贝1M长度(0x10000)的代码到内部RAM(起始地址为0x00000400),然后跳转到_c_int00运行。
2远程升级的实现方法
2.1硬件连接
TMS320C6416通过EMIF接口与FLASH连接,实现FLASH的读写操作,DSP连接W5300芯片实现可靠的网络数据收发,PC端用来传输升级包,完成与DSP用户程序的交互。硬件连接图如图2所示。选用存储容量为2MByte的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系统的升级,该在线升级方法已经在某平台上应用,经验证,稳定可靠。
登录 | 立即注册