陈迪楼
【摘要】 TI公司的Tms320C54xDSP支持多种自举方式,其中并行启动方式是最常用的模式。利用FPGA设计了一种基于JTAG下载的并行自举方法,介绍了硬件及软件设计方案,并给出了关键程序的代码,该技术已在实际项目中得到成功应用。
【关键词】 TMS320C54xDSP 并行自举 JTAG
一、引言
TMS320C54x系列DSP程序代码存储于外部非易失存储器芯片中,在上电或复位时将存储在外部存储器芯片中的代码搬移到DSP片内或者片外的RAM中全速运行,这种搬移的过程称为“自举加载[1]”。DSP自举方式有多种方式,如HPI、串行EEPROM、标准串口、并口和I/O口自举等,其中并行自举方式是最为常用的一种模式,传统设计时硬件采取DSP芯片与外部存储芯片Flash相连,软件在DSP的集成开发环境CCS下通过编写程序,通过仿真器在线将程序代码烧写至Flash后再实现DSP程序自举,很多同仁已经有了设计报告[2] [3] [4]。本文结合FPGA介绍一种基于JTAG的下载方式实现DSP的并行启动。
二、硬件设计
联合测试行动组(JTAG:Joint Test Action Group)最早开发了IEEE1149.1边界扫描测试技术规范,几乎所有FPGA或DSP器件均遵守该规范,器件都含有JTAG口。随着集成电路技术的发展,数字信号处理系统通常采用DSP+FPGA硬件架构。本应用硬件原理框图如图1所示,DSP采用TI公司的TMS320C54xDSP,FPGA芯片选择的是Xilinx公司的XC2VP4,配置芯片选用推荐的XCF04, DSP程序存储芯片选择的Xilinx公司的XC18V01。
芯片XCF04、XC2VP4、XC18V01通过串行菊花链方式连接,如图2所示。通过XILINX公司的IMPACT配置工具,采用JTAG编程器下载电缆直接将程序代码烧写进程序代码存储芯片XC18V01。
三、实现方案
3.1 并行自举模式
Tl公司的DSP芯片出厂时,在片内ROM中固化有引导装载程序Bootloader,其主要功能就是将外部的程序装载到片内RAM中运行,以提高DSP的运行速度。Bootloader程序在运行搬移程序之前,首先进行初始化,包括设置CPU状态寄存器的值、关闭中断、将内部RAM映射在程序/数据空间,同时为访问数据和程序空间设置七个软件等待,然后根據硬件的设计完成不同方式下程序的搬移加载。本文法看似有串行方式,实际采取的是并行模式[5],自举过程最终会选择并行启动模式。并行模式下,Bootloader程序检测0xFFFFH地址I/O空间,读取标志位。如果没有检测到,接着从数据空间0xFFFFH处读取boot表的起始地址,然后跳到该地址读取地址中的标志值。如果为0x08AAH,则为8位并行装载程序;如果为0xlOAAH,则为16位并行装载。判断Boot方式后,Bootloader程序就进入相应的子程序,加载代码,具体流程如图3所示:
3.2 自举表建立
为了实现DSP并行加电自举,代码数据必须按照自举表的格式组织。自举表内容包括Boot表头和欲加载的应用程序代码。Boot表头包括欲加载的应用程序代码长度、代码段存放的目标地址、程序人口地址等信息, Bootloader程序根据自举表中前部分用户起始地址,把后面的用户程序代码加载到DSP片内程序空间中相应的用户地址空间。自举表的格式可以手工构造,更一般是通过TI的 hex500格式转换器工具自动生成。
结合实例说明,在CCS环境[6]下,工程文件经过编译链接后生成out文件,假设为Sample.out, 在DOS命令行方式下可以指定特定参数通过hex500工具生成Hex文件,也可以先编写烧写配置文件linkProm.cmd, 文件应与Sample. out路径相同, cmd文件为文本格式文件,内容如下:
Sample.out //编译链接后生成的out文件
-map linkmap.map //内存映射map文件
-O write.hex //生成指定的hex文件
-I //输出文件格式为Intel Hex格式
-boot //指定加载表类型
-bootorg 0x0002 //加载表的起始位置
-memwidth 8 //目标系统存储器位宽
-romwidth 16 //外部存储器位宽
-e 0x7f80 //程序入口地址
结束语:本方法多年实践证明有效,并成功应用于多个工程项目,相对传统的并行Flash自举方式有如下优点:a)串口存储芯片相对于并行芯片,管脚少,降低了硬件布线复杂度。b)只需要将几根JTAG下载接口线引出设备外,就可实现内部程序代码下载更新。c)程序代码更新,编译链接下载整个过程,可不需要DSP在线仿真器参与。
参 考 文 献
[1]TMS320VC5402A/VC5409A/VC5410A/VC5416 Bootloader(RevF)[EB]. Texas Instruments. 2006
[2] 张冠男,张坤. 基于FLASH编程技术的DSP并行引导装载模式的设计[J].电子元器件应用. 2005.7(3):38-41.
[3] 郭改枝,范鹏程.TMS320C54X DSP自举加载技术[J].内蒙古师范大学学报.2008.37(02):216-218.
[4] 胡洪波,梁书剑,张德兴.TMS320VC5416DSP存储空间配置方法研究[J].价值工程.2011(7):149-150.
[5] 陈启兴,于红兵,祁秋红.DSP并行I/O自举加载方法研究.通信技术.2012.45(05):95-97
[6] 尹勇,欧光军,关荣锋,DSP集成开发环境CCS开发指南[M].北京:北京航空航天大学出版社,2003.