APP下载

一种利用HPI接口实现DSP应用程序远程更新的方法

2015-09-25李晶吕肖晗

单片机与嵌入式系统应用 2015年4期
关键词:存储器寄存器字节

李晶,吕肖晗

(1.孝感供电公司客户服务中心计量室,孝感432000;2.襄阳海特测控技术有限公司)

引 言

随着智能电网的建设、实施和物联网的普及应用,越来越多的终端设备通过网络实现远程的数据采集,这些数据终端数量众多,分布范围广。当这些终端设备中的MCU应用软件发现BUG,或需要对MCU应用软件进行升级则是一件非常麻烦、艰巨的任务。如果能够通过网络或串行接口实现MCU应用程序的远程下载,将会带来方便。本文介绍一种DSP应用程序的远程下载技术。

1 TMS320VC5402及其HPI接口简介

TMS320VC5402是TI公司为实现低功耗、高性能实时信号处理的定点16位DSP,它采用改进型哈佛结构,具有很高的运行速度,非常适合在信号处理方面的应用,如滤波、频谱分析等场合。其突出的优点已经使它在通信、语音、仪器仪表、电力测控终端等领域得到广泛应用。

TMS320VC5402的应用程序在其内部的RAM中运行,因此,在上电时需要利用HPI接口将程序传送到内部RAM中,TMS320VC5402的HPI是增强型8位主机接口。HPI即主机接口,它实际上是一个8位的并行接口,可以和任何一个外部的8位并行接口连接,在大多数情况下这个外部的8位并行口可以是其他MCU的8位I/O口。对于TMS320VC5402来说,这个MCU就是“主机”,以下简称为主MCU。当TMS320VC5402与主机传送数据时,HPI能自动将传送来的8位数据组合成为16位数据,并传送到TMS320VC5402内部指定地址的RAM单元中,代码传送完毕后,主MCU再传送DSP应用程序的入口地址。传送结束后TMS320VC5402即可从指定的地址开始执行应用程序。

2 HPI与主机接口的技术实现

主MCU和TMS320C5416的连接示意如图1所示,图中8位数据线用来实现DSP与主机之间的数据传输,控制信号线用来指定进行的操作。

HPI包含3个内部寄存器,分别为:HPIC、HPIA、HPID。HPIC是一个16位的内部控制寄存器,HPIA是16位的地址寄存器,HPID是数据寄存器。由于HPI接口的数据线是8位的,故主MCU在读写HPI寄存器时,每次必须按2个字节操作,字节的高低顺序由HPIC设定。而主MCU要写HPIC时,第1个字节和第2个字节的内容必须是相同值,专用的HBIL引脚信号用来确定传输的是第1字节还是第2字节。HPIC的BOB位决定是第1个字节还是第2个字节放置在高8位。HCNTL0/1用来说明哪个HPI的内部寄存器被主机访问。具体说明如表1所列。

表1 HCNTL信号功能

HDS1、HDS2是两个数据选通信号,HAS是地址锁存信号,HCS是HPI接口的选中信号,而HR/W是读/写控制信号。详情及HPIC寄存器各位的用途请参考TMS320VC5402技术手册,这里不再赘述。

主MCU通过HPIC、HPIA、HPID寄存器与TMS320VC5402进行数据交换,数据交换的过程如下:

①初始化HPIC;

②把地址写到HPIA中;

③通过HPID读或写数据。

一艘情况下,对DSP的HPIC进行初始化后,无须再对其进行初始化,其余工作由主MCU完成。主MCU和TMS320VC5402的连接图如图1所示。

图1 主MCU和TMS320VC5402的连接图

用8051单片机作为主MCU实现DSP应用程序远程下载的实现方案中,主MCU使用的是C8051F236,用C8051F236的P1口作为数据线与DSP的HPI接口连接,C8051F236的P2口分别作为HPI接口的控制信号线,P0.5连接到DSP的复位引脚。C8051F236的串行接口扩展MAX485,以便通过RS485串行接口接收PC机传送的DSP应用程序,当然也可以为主MCU扩展网络接口,通过网络传送DSP应用程序。

扩展的I2C总线接口EEPROM存储器AT24C1024用于存放DSP应用程序的HEX文件,AT24C1024的容量为256KB,对于一般应用程序的HEX文件是够用的。工作时PC机利用通信接口将DSP的应用程序和程序的入口地址传送给主MCU,并在EEPROM中存放。然后主MCU控制DSP复位,进入引导工作方式,主MCU读取存放在AT24C1024中的HEX文件,经解析后产生机器码,并逐字节通过HPI接口传送给DSP,完成程序的更新。

TMS320VC5402在片上ROM中固化了引导程序,当DSP工作在微计算机模式(MP/MC=0)下,上电复位后会自动执行引导程序,引导程序会初始化数据存储区的007EH和007FH两个单元,使其初始值为0,然后检测引导模式。首先检测当前是否是HPI引导模式,在确认引导模式后,按照相应的操作自动从HPI接口传送用户代码到内部程序存储器。在完成用户代码引导后,主MCU执行写入口地址操作,即将应用程序的入口地址写入到007EH和007FH。如果TMS320VC5402检测到007EH和007FH内容的变化后,马上从入口地址处开始运行用户程序,引导过程结束,DSP正常运行应用程序。

3 主MCU软件设计

涉及HPI功能的主MCU软件设计包括两个方面:一是HPI接口的访问;二是HEX文件的解析。

(1)HPI接口软件设计

在对HPI接口访问时,一般首先要通过写入控制字到HIPC寄存器中,以设置HPI的工作方式。但在大多数情况下,使用HPIC的默认值即可,故不需要专门对HPIC进行操作,程序中仅需对HPIA和HPID进行操作。以下为对HPIA进行写操作的程序,将需要操作的存储器的地址传送到HPIA中。为简单起见,程序已作了简化处理:

将存储器地址传送到HPIA后即可传送程序的机器码,程序结构与上述类似。需要注意的是,在通过HPID读/写DSP内部的存储器时,被读/写存储器单元的地址由HPIA指定,并且可以实现HCNTL0、HCNTL1设置为读/写HPID时HPIA的值自动加1,这样就不需要每次读/写HPID之前先传送地址到HPIA中,简化了程序设计。

(2)DSP代码下载程序设计

DSP应用程序代码通过串行接口传送到主MCU并保存在EEPROM中后,主MCU即可在任何需要的时候将代码下载到DSP中。一般来说传送的DSP应用程序是HEX文件。HEX文件是一个文本文件,它以记录的方式存放应用程序的机器码及其地址。因此主MCU需要按记录从EEPROM中读取HEX文件,并对其进行分析,得到应用程序的机器码和其地址,然后通过HPI接口程序传送到DSP中。由于HEX文件中不包含应用程序的入口地址,所以PC机软件需要单独将应用程序的入口地址传送给主MCU,为简单起见,HEX文件记录的结构及其分析不再赘述,可参考其他相关资料。将代码传送到DSP的程序流程图如图2所示。

图2 代码传送流程图

在DSP应用程序开发中,使用CCS编译、链接后生成.out文件,此文件为COFF格式文件,不能直接用于主机引导,需要利用其他的工具将其转换成HEX文件,至于DSP应用程序的入口地址可以从MAP文件中得到。

结 语

本文介绍了一种利用通信接口实现DSP应用程序远程下载的方法,该方法简单易行,已经在我们所开发的项目中得到应用。虽然文中介绍的是利用RS485接口实现,事实上稍加改变,即可利用任意一种通信方式实现,具有一定的实用价值。

[1] Texas Instruments Incorporated.TMS320C54x系列DSP的CPU与外设[M] .北京:清华大学出版社,2006.

[2] TI TMS320VC5402and TMS320UC5402Bootloader,2004.

[3] 邵新颜,蔡梅琳.在Bootloader中实现嵌入式系统自动升级[J] .单片机与嵌入式系统应用,2006(11):33-34.

[4] 陈红梅,陈健.TMS320VC5402的Flash并行Bootloader技术[J] .单片机与嵌入式系统应用,2003(11):21-23.

[5] 向强.MPC860T与DSP的HPI口通信设计[J] .单片机与嵌入式系统应用,2010(3):22-24.

猜你喜欢

存储器寄存器字节
STM32和51单片机寄存器映射原理异同分析
No.8 字节跳动将推出独立出口电商APP
静态随机存储器在轨自检算法
Lite寄存器模型的设计与实现
No.10 “字节跳动手机”要来了?
简谈MC7字节码
Altera演示FPGA中高性能DDR4存储器数据速率
存储器——安格尔(墨西哥)▲
高速数模转换器AD9779/AD9788的应用
一种可重构线性反馈移位寄存器设计