首页 文学文摘 时政新闻 科技科普 经济法律 健康生活 管理财经 教育教学 文化艺术 社科历史

基于PCI总线的DSP系统应用程序的更新

作者:刘宇 刘治彬 朱秀林 来源:现代电子技术

摘要: 当需要更新DSP业务系统的应用软件时,为了避免利用仿真器所带来的不便和硬件损坏,采用了PCI总线技术来取代仿真器,完成系统应用程序的更新;针对带有外围FLASH的DSP系统,设计了一整套DSP外围FLASH启动流程和应用程序的PCI更新方法;通过实验证明,DSP业务系统可以通过上位机利用PCI总线完成DSP外围FLASH的应用程序的更新,同时在DSP上电启动时,也可以根据上位机的命令,选择贮存在FLASH中不同的应用程序加载运行。

关键词: DSP业务系统; PCI; FLASH自举; 二级引导

中图分类号: TN710?34 文献标识码: A 文章编号: 1004?373X(2013)06?0113?05

在DSP嵌入式业务系统设备中,一般采用片外FLASH自举方式来实现DSP端应用程序的加载和启动[1]。 当DSP业务系统需要更新应用程序时,则可通过仿真器连接JTAG口来控制DSP,完成DSP外围FLASH的应用程序更新。然而,对于成型、交货的设备产品,DSP业务系统板上一般不会留有JTAG口,或在机箱中很难插拔仿真器;另一方面,对已交货产品经常插拔仿真器,会对硬件设备有所损伤,使设备硬件处于非控状态。

如果系统设计使用了PCI作为系统通信总线,则可以通过PCI来完成DSP业务系统应用程序的更新和加载。本设计以TI公司TMS320C6416T(简称C6416)芯片为例,来说明通过PCI总线来更新DSP系统应用程序的过程;同时本文也设计了一种C6416的上电启动方式。

1 C6416的PCI特性

1.1 C6416 PCI传输机理

从图1可看出,PCI和EMIF接口都是通过EDMA传输控制器来与L2存储器/Cache联系的。EDMA传输控制寄存器主要用来控制L2存储器和设备外围间的数据通信,包括传输请求队列、地址产生器等[3];而通道控制器是用户可编程部分,用户可以设置相应的寄存器,方便的设置数据传输方式(一维、二维)、事件触发选择、传输通道选择等。

1.2 C6416 PCI操作原理

C6416的PCI操作可以设置为:

主模式写:DSP主设备通过PCI接口写数据到外部PCI从设备。

主模式读:DSP主设备通过PCI接口从外部PCI从设备读数据。

从模式写:外部PCI主设备通过PCI接口写数据到DSP从设备。

从模式读:外部PCI主设备通过PCI接口从DSP从设备读数据。

1.2.1 C6416 PCI寄存器

PCI接口有以下3种寄存器:PCI配置寄存器,PCI I/O寄存器和映射在DSP存储空间的PCI控制状态寄存器。前两类寄存器只能被外部主机访问,DSP从机是不能访问的;而最后一类寄存器,DSP从机是可以访问的,并利用其来完成PCI通信的控制和操作。

PCI配置寄存器包含标准的PCI配置信息,包括设备标识,供应商标识,版本等信息,其可以在上电复位时自动访问E2PROM进行加载或上电复位时可以通过默认值初始化。

PCI I/O寄存器可以被主机用来对从机进行操作和状态监控。主机通过base2存储空间来访问该类寄存器。该空间大小为16 B,有三个寄存器:主机状态寄存器(HSR),主机?DSP控制寄存器(HDSR)和DSP页寄存器(DSPP)。

1.2.2 C6416 PCI存储器映射

PCI端口通过3种基址寄存器可以完全访问DSP的存储器映射。

1.2.3 PCI中断

如果设置了PCIIEN对应的中断使能位,当对应的中断源产生,DSP将进入中断状态。所有的中断事件对应于一个CPU中断:DSPINT。可以通过PCIIS中断源寄存器来判断产生中断的中断源。

1.2.4 PCI引导

PCI接口支持从PCI总线引导DSP启动。当其他设备从复位状态唤醒后,CPU被复位。在此期间,PCI主机可以尽可能的通过PCI初始化DSP内存。当PCI主机完成所需要的初始化工作,则向I/O寄存器HDCR.DSPINT位写1,使DSP核退出复位。DSP则从地址0处开始运行。值得注意是的是,当C6416使用PCI引导方式时,需要通过硬件设置来配置DSP上电逻辑选择PCI引导模式。

2 利用PCI总线来更新系统软件的设计

2.2 PCI上电直接加载应用程序到DSP存储空间

对于PCI总线上的从DSP设备,如果没有片内或片外FLASH,则PCI主机在上电时可以直接把从DSP设备的应用程序数据写到DSP的片内RAM或片外RAM,然后指定DSP PC指针运行的起始地址。而从DSP设备应用程序的数据应当存放在PCI主机的系统存储设备中(如片外FLASH,电子盘等)。

首先通过调试编译DSP的应用程序,完成所有功能需求,生成C6416可执行的.out文件;然后利用上述工具,生成.out文件所对应的.h文件,该文件中数组的内容,则是应用程序的二进制代码数据;接着通过硬件管脚电平控制,来使DSP处于PCI引导方式,并利用DSP PCI从写模式,在系统上电后,主机把.h中的数据传输到指定的C6416程序存储空间;最后向I/O寄存器HDCR.DSPINT位写1,使DSP核退出复位,C6416则从0地址开始运行。

2.3 利用PCI总线完成从DSP设备外围FLASH应用程序的更新

更多的嵌入式设备中,从DSP设备都接有外围的FLASH等ROM设备,用来存放DSP运行的应用程序。这样一方面可以减少PCI主机存储空间的压力,同时可以提高从机的启动速度。

2.3.1 C6416的FLASH启动方式

2.3.2 C6416从机的启动模式设计

第一步:当C6416上电后,首先自动完成A搬移操作,“Bootload程序”将被搬移到C6416片内RAM的0起始地址,后开始运行该段代码,该段代码是利用汇编语言编写,其在C语言库初始化前被执行;

第二步:“Bootload程序”的运行将会配置C6416的EMIF寄存器,使能片外SDRAM,同时使B搬移操作完成:“程序选择搬移代码”将被搬移到C6416片内RAM,并从程序入口地址开始执行该代码段;

第三步:“程序选择搬移代码”的执行将对业务代码进行选择,查看需要加载“业务代码1”还是“业务代码2”,把选择的业务代码搬移到片外SDRAM中,完成C搬移操作或D搬移操作,然后从程序入口地址开运行,从而被选中的业务代码将被执行。

2.3.3 利用PCI总线更新FLASH中的业务代码

3 结 语

本文介绍的利用PCI总线更新DSP业务系统应用程序的设计,完全摆脱了JTAG口的制约,利用具有高速数据通信特性的PCI总线,针对包含外围FLASH和不包含外围FLASH的DSP业务系统,实现了应用程序的更新。

特别对于含有外围FLASH的DSP业务系统,本文设计的DSP启动方式和FLASH应用程序更新流程,能高效地完成应用程序的更新,同时实现了DSP启动时应用程序加载的选择。

参考文献

[1] 蒲中奇,张伟,施克仁,等.TI TMS320C6000 系列DSP的BOOTLOAD程序设计[J].工业仪表与自动化装置,2004(6):52?54.

[2] 卞红雨.TMS320C6000系列DSP的CPU与外设[M].北京:清华大学出版社,2007.

[3] Texas Instruments. TMS320C6000 DSP peripheral component interconnect (PCI) reference guide [M]. USA: Texas Instruments, 2007.

[4] 于凤芹.TMS320C6000 DSP结构原理与硬件设计[M].北京:北京航空航天大学出版社,2008.

[5] 季昱.DSP嵌入式应用系统开发典型实例[M].2版.北京:中国电力出版社,2007.

[6] 田黎育.TMS320C6000系列DSP编程工具与指南[M].北京:清华大学出版社,2006.

[7] DANIEL Kimberly, GANGADHAR Shivashankar, MOCK George, et al. Creating a second?level bootloader for FLASH bootloading on TMS320C6000 platform with code composer studio [R]. USA: Texas Instruments, 2006.

[8] 翟丽杰.TI TMS320C6000 系列DSP的自启动设计[J].河南科技,2012,30(7):913?916.

[9] 刘涛,倪江生,王丹丹.基于DSP的FLASH自启动设计[J].仪表技术,2009(9):44?48.

[10] 张谦,李世杰,李红波.TMS320C6000系列DSP可选择引导加载方式的设计与实现[J].电子测量技术,2009,32(7):20?24.