APP下载

基于TMS320VC55x DSP在线升级的设计与实现

2010-09-25石乃轩季晓勇

通信技术 2010年7期
关键词:总线编程终端

石乃轩, 冯 伟, 王 健, 季晓勇

(南京大学 电子科学与工程系,江苏 南京 210093)

0 引言

近年来,以数字信号处理器DSP为核心的各种电子产品得到了越来越广泛地应用,DSP已成为电力、通信、自动控制以及消费类电子产品的关键部件。一般来说,采用高性能DSP设计的复杂设备或系统,在其产品生命周期内,有必要具备一种有效的在线升级机制,实现原功能的改进或全新的功能。这种软件升级是系统调试和功能完善的重要手段,大大增强了系统的可维护性、可扩展性能力。

目前,DSP系统一般采用FLASH存储器作为外部扩展非易失存储器。对于FLASH的编程一般有两种方法:通用FLASH编程器和DSP的JTAG接口。第一种方法操作时需要把芯片从电路板上取下,在贴片式FLASH存储器广泛应用的今天已不适用;而对于JTAG接口的方法,由于不能脱离DSP的开发环境,也不适合做现场编程[1-4]。

提出了一种通过异步串行接口UART实现DSP程序升级的方案。因为串口设备众多,这为DSP系统的程序升级提供了多种简单可行方式。

1 系统描述

DSP的异步串行接口UART可以灵活地扩展为现场总线RS485/CAN、红外接口或通过AT指令集连接到GPRS/CDMA网络。具体采用什么样的连接方式,可以根据实际系统组网模式、性能要求和成本价格等诸多因素进行综合考虑。

1.1 升级系统组成

现给出的在线升级系统组成结构如图1所示。从通信信道的类型看,分为三种:①现场总线升级,现场配置服务器通过现场总线RS485/CAN发送命令及升级包,控制DSP进行升级,这种方式一次控制升级多个DSP终端;②通过红外掌上机与DSP的红外接口进行通行完成升级,因为红外信道的特点,一次只能升级一台DSP终端,但操作简便灵活;③借助移动公网的远程配置方式,远程配置服务器远端服务器就可通过公共网络和DSP系统的GPRS/CDMA模块建立通信,实现达到控制DSP的远程升级。此种方法也可一次升级多个终端,适合于升级野外危险环境的DSP终端。在这三种升级过程中,DSP终端响应配置服务器的升级命令,接收及校验升级包,并且如果在升级过程中出现故障,DSP终端能够自动恢复最近的程序。

图1 升级系统组成结构示意图

1.2 DSP终端硬件设计

DSP终端的硬件系统结构如图2所示。主要由DSP、存储器及并串转换芯片组成。其核心DSP采用TI公司的55系列中高性能的 TMS320VC5509A,能够完成复杂的数据处理任务,具有丰富的片内外围设备及接口[5]。DSP的外部存储器包括SDRAM和FLASH。其中SDRAM采用64Mbit(4 M×16 bit)的 HY57V641620;FLASH采用 8 Mbit(512 K×16 bit)的S29AL008D。TL16C550并串转换芯片完成DSP并行接口到串行协议的转换。SDRAM、FLASH、TL16C550和DSP之间通过总线方式交互进行。异步串行信号 UART接上不同的串行接口芯片,就能实现多种通行方式。实际应用时,根据需要可选择一种或几种接口,以实现一种或几种升级方式。

图2 DSP终端的硬件系统结构

2 TMS320VC55x的引导机制

TMS320VC55x系统上电后可根据控制信号选择不同的引导方式[6-8]。该系统采用EMIF并行接口方式启动。上电后,DSP运行片内ROM中的引导程序(Bootloader),引导程序首先进行系统初始化,然后,引导程序把外部FLASH中的程序加载到内存并开始执行。TMS320VC55x系列DSP内部24根地址线只引出 14根外部地址线,这意味着引导程序加载的用户程序大小不能超过16 K字节长,否则不能正常引导。

针对引导程序的不足,二次引导机制被引入,其原理是用户根据引导表结构编写自己引导程序即二次引导程序(Userbootloader)以实现用户程序二次加载。系统启动时,片内引导记录区的引导程序首先装载二次引导程序到内存中指定的单元并执行,然后二次引导程序装载FLASH上的主程序到内存空间执行。二次引导程序中可以利用DSP的通用IO口来扩展地址线,解决大于16 K字节长的用户程序的加载问题,通过配置EMIF总线,可以灵活地读写取FLASH中的所有内容,实现灵活的程序加载和更新功能。

3 DSP在线升级软件设计

3.1 软件层次结构

DSP系统的在线升级软件组成结构如图3所示。从结构看,在线升级系统包括:引导程序、二次引导程序、升级程序、用户程序,以及引导记录区。最底层为引导程序,负责系统上电后把FLASH中的二次引导程序加载到RAM;第二层设计了二次引导程序,用于解决DSP片内引导程序引导地址空间的限制,同时二次引导程序是用户自己编写,实现更加灵活,可以完成更复杂的程序加载和引导;第三层是升级程序(UpdatePro),负责用户程序和其本身的升级,其中包含了升级的通信协议及升级错误的处理;第四层为用户程序(UserPro),是DSP系统的日常工作程序。此外,还有引导记录区,记录有关引导及升级的标志信息。

图3 在线升级软件层次结构

系统的引导过程实际上就是按预先规定的格式读取FLASH上的程序到RAM中的过程。在TMS32055x系列DSP中,片内引导程序是按照引导表格式[]读取FLASH中的程序到指定内存的。在线升级系统中的二次引导程序、升级程序以及用户程序的均遵循引导表格式的要求。考虑到FLASH按片区擦除的特点,这些程序模块按片区进行对齐。此外,系统采用乒乓存储方式,提供了一种在操作过程中遇到断电或误操作造成的升级失败情况下的升级恢复措施,提高了系统的可靠性和安全性。

3.2 软件操作流程

系统有两种升级方式:①立即升级;②下次重启后升级,如下页图 4所示。这两种升级方式由主机发来的升级命令控制。当用户程序从串口收到数据后,判断是否为升级命令及采用何种升级方式。如果是立即升级,则主程序在执行完相应的数据保存工作后,立即跳转到升级程序进行升级。如果是下次重启后升级,则主程序往引导记录区写入相应的数据。下次重启后二次引导程序自动引导升级程序进行升级。

图 4 在线升级程序时序

引导记录区由10部分组成,如表1所示。主要负责在启动时告诉二次引导程序怎么引导装载程序及是否需要升级。为了提高系统的稳定性,用户程序及升级程序在FLASH中都有两片存储空间,用来保存升级前的程序,以便在升级出现故障后恢复。在引导记录区中,用户程序起始地址1和2存放的是两段用户程序在FLASH中的存储地址。引导向量确定在启动时从哪一片地址引导程序。同样,升级程序起始地址1和2是两段升级程序在FLASH中的存储地址。升级向量决定了加载哪个升级程序。升级标志说明是否需要升级,如果要升级则只引导装载升级程序并跳入执行。最后的校验和用来判断引导记录区是否损坏。如果损坏则从Backup区恢复。

表1 引导记录区

4 结语

以TI公司的TMS320VC55x系列DSP为例介绍了一种利用串口进行DSP在线升级方法。此方法能方便实现对远端或本地DSP终端的点对点及点对多点升级,满足了DSP终端升级和维护的要求。现已成功运用于DSP的数据采集系统,且此方法可推广到其他嵌入式微处理器系统。

[1] 谢登科,胡修林,张蕴玉.基于FPGA的DSP基于FPGA实现的DSP远程在线编程[J].微计算机信息,2005(21):147-149.

[2] 刘德生,李杰. 基于JTAG的DSP外部FLASH在线编程与引导技术[J].电子技术应用, 2005,31(03):61-63.

[3] 伍美俊,吴迺陵. TMS320VC5509应用Flash存储数据的接口电路设计与设计[J].电子器件, 2007,30(02):675-678.

[4] 文军,王加懂.DSP程序在线编程的研究与实现[J].信息安全与通信保密,2007(08): 193-195.

[5] Texas Instruments. Using the TMS320VC5503/VC5507/VC5509/VC5509A Bootloader [EB/OL].(2008-09-01)[2009-02-15].http://focus.ti.com/lit/an/spra375f/spra375f.pdf.

[6] 张小波,廖新征.TMS320VC5509的二次引导加载方法[J].单片机与嵌入式应用,2006(12):74-76.

[7] 杨力渡,潘志铂.DSP+FLASH引导装载系统的设计与实现[J].电子技术应用,2002,28(12): 63-65.

[8] 任利民.基于 PCI卡的 DSP程序在线升级技术研究[J].通信技术,2003(12):114-116.

猜你喜欢

总线编程终端
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
X美术馆首届三年展:“终端〉_How Do We Begin?”
纺织机上诞生的编程
通信控制服务器(CCS)维护终端的设计与实现
机载飞控1553B总线转以太网总线设计
一种基于CAN总线的误码测试方法
GSM-R手持终端呼叫FAS失败案例分析
CAN总线并发通信时下位机应用软件设计