基于DSP的CPLD软件更新方案研究
0引言
在现代导航计算机系统朝着微型化发展的过程中,采用高性能数字信号处理器和可编程逻辑器件方案实现的导航计算机系统有着很高的性能优势。在本课题组研制的基于浮点型DSP和复杂可编程逻辑器件(CPLD)结构的嵌入式微型导航计算机系统中,DSP负责导航解算任务,CPLD用来辅助DSP对外围通信接口芯片进行控制,以减少DSP的控制任务,使其更专注于导航任务的解算。采用CPLD可以提高导航计算机控制和配置的灵活性,便于系统的升级和更新,使接口配置更灵活,适合于不同的传感器和便于应用于采用多传感器信息融合的组合导航系统中,充分发挥DSP的计算能力,提高导航性能。此嵌入式导航计算机系统中CPLD采用的是Xilinx公司的XC95144,该器件支持在系统编程(InSystemProgramming)和扩展的IEEEStd1149.1JTAG边界扫描测试规范。JTAG标准作为一个测试规范,已被多数可编程逻辑器件采用。对于该芯片的一般编程方法是,通过Xilinx公司提供的下载线缆将PC机并口转接至其JTAG端口,使用PC机下载软件实现对其软件更新。由于JTAG口的信号特点,下载线缆不能太长,否则会导致信号失真;此外,在系统投入使用后,如果需要对软件进行更新升级,采用这种线缆方式必须将系统的外壳打开,不便于系统的维护更新。本文通过对JTAG接口特性的研究,提出了一种采用UART串行通信进行软件更新的方案,对基于DSP接口控制的CPLD器件实现了软件更新,使采用JTAG口进行编程的PLD器件可以实现远端更新和升级。
1JTAG接口原理
JTAG是IEEE的联合测试行动小组(JointTestActionGroup)提出的测试标准,此标准最初是用来解决因芯片集成度和板级器件密度越来越高带来的测试问题。现在这一标准已被大多数器件厂商采用并设计到芯片电路中,用以支持其器件在系统调试或编程功能。对于本文所用的CPLD器件,其JTAG接口的结构如图1所示。
JTAG标准定义了4个基本单元:测试访问端口TAP(TestAccessPort)、数据寄存器、指令寄存器和TAP控制器。TAP端口包含了4个JTAG信号:测试时钟输入引脚TCK,测试数据输入引脚TDI,测试数据输出引脚TDO和测试模式选择引脚TMS。数据寄存器主要包含2种:BYPASS寄存器和BSR(BotlndaryScanRegister)寄存器,其中BSR由BSC(BotmdaryScanCell)串联而成,正是通过BSC扫描链电路,来自于TDI上的CPLD配置信息便可移入到芯片内部,从而实现对器件的擦除与编程功能。TAP控制器其实是一个包含16个状态的状态机,它控制着测试访问口、指令寄存器和数据寄存器。TAP控制器状态转换图如图2所示。
TAP控制器的状态由TMS和TCK两信号控制。当需要将TDI上的数据移到指令寄存器中时,可使TAP控制器进入Shift-IR状态;当需要将TDI上的数据移到数据寄存器中时,可使其进入Shift-DR状态。通过TAP控制器的状态转换,可将CPLD的配置信息移入到其内部逻辑中。
在基于PC的编程方法中,CPLD的配置信息文件存储在PC里,在PC中运行的下载软件不断读取器件的配置信息,并通过其并行接口模拟JTAG测试端口的时序和逻辑,从而实现其软件更新和下载。本文将采用导航计算机系统中的DSP来实现这种编程方法:CPLD的配置文件通过DSP的UART串行口发送给导航计算机系统,然后由DSP解析并执行配置文件中的指令,通过DSP的I/O口模拟JTAG端口信号行为,来实现对CPLD器件软件更新的功能。基于这种方案可以实现采用普通的串行口方便地对CPLD进行远端编程和更新。
2CPLD的JTAG接口编程的硬件设计
为实现本文提出的导航计算机系统中基于DSP的CPLD器件软件更新串行方案,首先需要在硬件方面解决如下3个问题:
(1)导航计算机系统所用DSP至少要有4个空余的I/O口,分别用于模拟CPLD的4个JTAG信号时序信号。
(2)导航计算机系统必须包含支持一个UART通信接口,用于接收CPLD的配置文件。此UART接口不能由CPLD参与控制,以避免CPLD某次编程失败后,该UART通信口不再可用的问题。
(3)导航计算机系统应保证足够的CPLD配置信息文件需要的存储空间。
本文所用DSP为TI公司的TMS320C6713B芯片,该款DSP支持16个通用输入输出口(GPIO)。在本导航计算机系统中,有12个GPIO口已被占用,多余的4个GPIO口可用来连接CPLD的4个JTAG信号引脚。
TMS320C6713B本身并不支持包含UART通信接口,其片上外设中包含2个多通道缓冲串行接口(McBSP),McBSP接口支持全双工串行通信,只是收发数据需要独立的收发帧同步信号。根据TI公司提供的应用技术报告,经过对软件或硬件进行改造设计,McBSP接口可以支持UART通信标准。软件修改方法
- DSP芯片选型须知(07-02)
- LT3751如何使高压电容器充电变得简单(08-12)
- 三路输出LED驱动器可驱动共阳极LED串(08-17)
- 浪涌抑制器IC简化了危险环境中电子设备的本质安全势垒设计(08-19)
- 严酷的汽车环境要求高性能电源转换(08-17)
- 适用于工业能源采集的技术 (08-10)