C54x系列DSP多目标板程序下载方案的实现

2011-04-23 10:13
电子科技 2011年7期
关键词:格式文件通信协议单片机

张 华

(武汉理工大学信息工程学院,湖北武汉 430070)

Texas Instruments(TI)公司生产的 C54x系列Digital Signal Processor(DSP)以其低价且高效的特点得到了广泛应用。传统的DSP程序开发流程是:使用仿真器对DSP目标板进行一对一程序调试,调试通过之后使用仿真器将自举表下载到DSP外挂存储器,使DSP脱机运行。在DSP多处理器协同工作的场合,如果使每块DSP目标板分别通过一个仿真器连接电脑进行调试,就要添置与DSP目标板相同数目的电脑与仿真器,增加了开发成本。因此,低成本的DSP多目标板程序下载方案具有现实意义。

1 C54x系列DSP多目标板程序下载原理

多目标板程序下载方案利用了计算机资源丰富的USB口,在基于USB接口的单目标板程序下载方案基础上实现。DSP多目标板程序下载方案如图1所示。

图1 DSP多目标板程序下载方案框图

在图1中,将需要同时调试的多块DSP目标板通过DSP程序下载器连接起来,计算机再通过USB线连接各DSP程序下载器。加电初始化后,通过操作上位机的“下载软件”,先给”DSP目标板1”下载;等其下载完毕,再给“DSP目标板2”下载;依次类推。所有DSP目标板程序下载完毕后,如果要单独调试某一DSP目标板,再对其下载新的程序即可。

DSP程序下载器利用了C54x系列DSP具有的HPI Bootloaer功能接口进行设计[1],具有连接计算机与DSP目标板的功能,如图2所示。

图2 DSP程序下载器框图

为简化通信协议,让DSP程序下载器中的单片机只实现数据转换功能,而计算机完成DSP自举表加载功能。为方便DSP目标板的调试,本方案让“下载软件”一步到位完成如下功能:目标板复位、.out文件转化成.hex目标格式文件、将.hex目标格式文件转换成DSP自举表、通过下载器对DSP目标板进行自举表加载。使用者只需在DSP编译平台Code Composer Studio(CCS)中编译DSP源程序,并操作“下载软件”即可,如图3所示。

图3 DSP单目标板程序下载流程

2 计算机与单片机UART通信协议

如图2所示,DSP的HPI接口有数据端和控制端两种,而UART通信一般是8位的。所以要约定计算机与程序下载器中单片机的UART通信协议,以区分传输中的UART信号是控制命令还是数据。简单通信协议为:“下载软件”与单片机初始化后,计算机传输的UART信号,每3 Byte为一组;每一组第1 Byte代表控制命令,第2 Byte代表 HPI第1 Byte,第3 Byte代表HPI第2 Byte;单片机接收完3 Byte后,即对DSP进行一次HPI读写操作。

为防止计算机UART信号发送过快,而单片机接收不过来导致丢包现象,需要建立一种简单的UART软件握手协议[2]。计算机或单片机在发送完一帧UART数据后,都要在收到对方的UART信号后才发下一帧UART数据。对单片机来说,计算机发来的UART信号既是有效信号,也是确认信号;而对于计算机来说,只有计算机在进行“HPI读取”操作时,单片机发来的UART信号才包含了有用信息,其他情况都仅当做确认信号。

计算机与程序下载器中单片机的UART通信协议如图4所示。

图4中“HPIC”代表计算机发给单片机的“HPI控制信号”数据;“HPID1”与“HPID2”分别代表计算机发给单片机的“HPI第一字节”数据与“HPI第二字节”数据;而“ACK”代表单片机发给计算机的“确认”数据。

图4 计算机与单片机的UART通信协议

3 “下载软件”程序设计

3.1 转化hex目标格式文件

CCS提供了一个名为“hex500”的软件,配合一定的计算机CMD命令,就可以将.out文件转化成.hex目标格式文件[3]。

关于.hex目标格式的确定,依据如下:

(1)hex500需要确切的输入文件名才能正常运行,为了兼顾命名多样化的.out文件与“下载软件”人机界面简洁的操作,“下载软件”在找到所需的.out文件后,统一复制成“asm.out”文件,同时让hex500只对“asm.out”文件进行操作。

(2)单片机大多是8位,为兼容C5402等8位HPI接口的DSP,自举表采用8位数据长度。

(3)目前单片机对DSP进行HPI BootLoader的成熟方案[4]皆生成 Intel MCS -86 目标格式文件[5],为便于程序的快速移植,采用Intel MCS-86目标格式。

(4)为精简“下载软件”的人机交互界面,自举表起始地址统一设为0x80,这一点在配置DSP工程的cmd文件中需要注意。

确定了目标格式之后,在“下载软件”源程序中,采用如下代码完成.out文件向.hex目标格式文件的转化:system("hex500 asm.out-i-o asm.hex-e 0x80-romwidth 16")。

3.2 读取hex目标格式文件并下载到DSP

Intel MCS-86目标格式[6]如图5所示。

对比图5,进行如下方式组织DSP自举表:

(1)按字节读取.hex目标格式文件,然后进行判断,如果是代表十六进制数字的字符,则装载进字符缓存,其他的不装载。

(2)将字符缓存中的ASCII码转化成8位BCD码,然后将8位BCD码两两组合成整型数据,放进数据缓存。

(3)读取数据缓存中第一字并判断,如果为0则退出,否则作为数据长度;接下来的第二个字是自举表写入DSP的首地址;再接下来就是要写入DSP相应地址的数据,省略了地址信息,默认是在首地址基础上依次加1。

(4)最后将 0x0080写入 DSP的 0x007f单元,DSP处理器收到此信号即开始脱机运行。

图5 Intel MCS-86目标格式

4 “下载软件”人机界面

运行名为“UART DSP ISP”的“下载软件”,在“Comm Num”编辑框中输入相应的串口号,再点击“Comm Connect”按钮以连接计算机与DSP目标板,如图6所示。单击“Select”按键,出现“打开”对话框,操作者只要选择经过CCS编译生成的.out文件即可,如图7所示。

点击“Load”下载程序到DSP目标板。此DSP程序下载器会在下载程序前给DSP目标板一个复位信号,因此不需要再手动复位DSP处理器。

若要观察DSP处理器RAM中的数据,可在操作界面“Start Address”文字下面的编辑框内输入十六进制的起始地址,“End Address”文字下面的编辑框内输入十六进制的终止地址,再点击“HPI Read”按键即可,相应的数据将会在“Receive”列表框内显示。若要清除“Receive”列表框内的数据,只要单击“Clear Edit Box”即可,如图8所示。

在“Start Address”文字下面的编辑框内输入十六进制的起始地址,在“Send”编辑框中输入十六进制的数据,点击“HPI write”按键,即可将“Send”编辑框中的数据写进DSP,起始地址为“Start Address”文字下面编辑框中的数据,如图9所示。

5 结束语

DSP多目标板程序下载方案已应用于某数码钢琴集体课组网的项目,节省了仿真器与电脑的使用,将开发成本降低了一半多。此方案也可以用于DSP单目标板程序下载,或者移植到采用单片机Bootloader方案的DSP板中去,为DSP初学者降低学习投资。

[1] 刘晓杰,顾海军,赵晓晖.基于 DSP主机接口的程序自举设计与实现[J].吉林大学学报:信息科学版,2007(1):6-11.

[2] 赵忠彪,张元敏,高荣.握手式通信协议在远程抄表系统中的应用[J].继电器,2008(4):76-78.

[3] 陶锐,周学军.数字信号处理器(DSP)自举加载技术的应用[J].电子测量技术,2006(6):67-69.

[4] 曾浩,刘玲,曹海林.54xDSP的HPI自举新方法[J].实验室研究与探索,2007(1):68-70.

[5] 邹翼,曾文海,陈续喜.基于TMS320VC5402 DSP的HPI方式自举的设计与实现[J].计算机系统应用,2009,18(3):152-155.

[6] 刘益成.TMS320C54x DSP应用程序设计与开发[M].北京:北京航空航天大学出版社,2002.

猜你喜欢
格式文件通信协议单片机
基于WebGL的轨道交通BIM轻量化应用方案
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
使用“格式文件”将徕卡仪器数据导出成cass 格式的方法
基于单片机的便捷式LCF测量仪
基于Z-Stack通信协议栈的红外地温采集电路设计
编写徕卡TS02型全站仪格式文件的方法探索
基于DMX512通信协议的多路转发器设计与研究
基于NS-3的PLC多频通信协议仿真平台设计与实现
回归基础 到底什么是RAW格式文件?