微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于DSP的CPLD软件更新方案研究

基于DSP的CPLD软件更新方案研究

时间:04-23 来源:本站整理 点击:

是通过将McBSP接口配置成通用I/O接口来模拟UART时序;硬件修改方法是将McBSP接口配置在串行口模式,McBSP接口中接收帧同步信号FSR来自于UART的发送数据线Tx,在检测到Tx的下跳沿时,McBSP内部开始采样接收数据,之后Tx的下跳沿将被忽略直至下一个字节的起始位再次触发内部帧接收新的数据;发送帧同步信号FSR由McBSP电路在发送UART数据起始位时产生。本文采用硬件修改和过采样软件措施,将一个多通道缓冲串行接口McBSP0设计成了支持UART通信标准的接口。

  本导航计算机系统使用的CPLD配置信息文件是串行矢量格式(SVF),可以在Xilinx软件开发平台ISE上生成。SVF是一种用来描述IEEE1149.1(JTAG)总线操作的规范,包含了编程需要的指令和数据,描述了TAP测试访问端口状态图中各状态之间的扫描操作过程和行为。由于SVF文件是ASCII格式,所以占用的存储空间比较大,可以将其转换为一种更简洁和紧凑的二进制格式:XSVF文件。对于本系统所用CPLD器件而言,仅对其进行编程操作时,XSVF文件大小为129720B,加上擦除和校验操作后,XSVF文件大小为259533B。根据上述分析,本文设计的嵌入式导航计算机系统中通过UART接口对CPLD器件进行在系统软件更新的硬件电路结构如图3所示。

  

  图3中,UART通信口由DSP片上多通道缓冲串行口McBSP0实现。为了存储通过UART口接收到的包含CPLD配置信息的XSVF文件,本系统外扩了一片512kB的SRAM。FLASH芯片用来存储导航计算机系统升级固件和应用程序。CPLD的JTAG口直接与DSP空闲的4个GPIO口相连,为了提高CPLD器件编程的灵活性,在本系统中保留了连接PC机并口的CPLD程序下载接口。

   3CPLD的JTAG接口编程的软件设计

  在硬件设计的基础上,为实现通过DSP的GPIO口模拟JTAG信号时序逻辑来对CPLD进行软件更新,需严格按照JTAG标准中的端口信号时序要求。对于本文所用的CPLD器件,其JTAG端口信号时序关系如图4所示。

  由图4可见,对于JTAG口时序逻辑需考虑如下3项内容:

  (1)JTAG接口要求一个最小时钟周期TCKMIN。

  (2)JTAG接口在TCK的上升沿采样TMS和TDI信号。因此在TCK上升沿之前,TMS和TDI要具有最小分别为TMSS和TDIS的建立时间,同时在TCK下降沿之后要保持最小分别为TMSH和TDIH长的时间。

  (3)在TCK的下降沿,JTAT接口输出新的TDO值,并保持至少TDOV长的时间。

  本文所用CPLD的JTAG端口时序参数要求如表1所示。

  在本文设计的导航计算机系统中,DSP的工作主频为200MHz,利用TI公司提供的库函数,由该DSP的GPIO口模拟的时钟频率最大不超过3MHz,可以满足表中TCKMIN参数对应的最大10MHz的要求。对于建立和保持时间等参数要求,可通过软件延时或定时器实现。由于在本系统的应用中,DSP在上电期间专注于CPLD的软件更新,所以本文将采用软件延时来实现这些参数要求,设计的JTAG口信号电平驱动函数模块代码如下:

  利用上述代码,模拟实现的JTAG时钟信号频率为367.6kHz。

  DSP在配置CPLD器件时,不断从存储在SRAM里的XSVF文件中读出指令和参数,并根据不同的指令执行对应的操作。根据功能特点,XSVF文件中的指令主要包括:状态转移、指令移入、数据移入或移出和空闲等待这4类指令。状态转移指令用于控制TAP状态机进入与下条XSVF指令操作对应的状态中,在XSVF文件中,图2中的每个状态对应一个字节的编码;指令移入用于将TDI上的指令代码移入对应的指令寄存器;数据移入或移出指令可将TDI上的数据移入CPLD器件内部逻辑中,同时可以捕获从TDO上移出的数据;空闲等待指令可提供移进CPLD擦出指令或数据后等待内部逻辑成功响应需要的时间。

  在上述设计的基础上,设计通过串行方式的CPLD更新流程如图5所示。

  图5中系统首先通过DSP的串行口接收CPLD的编程配置文件,接收完配置文件后,可在35s之内完成CPLD的软件更新。在实际应用中,应用本文的更新方案,可根据需要很快实现不同的系统配置方案,如可选择INS和GPS组合。或与地磁组合等,无需重新更改硬件,便可配合多种传感器,克服了通过常用PC机与下载线缆进行软件更新的弊端,避免了反复打开、组装系统等一系列的繁琐工作,提高了现场调试的效率,从而提高了导航计算机系统的适应性。

  4结语

通过硬件和软件设计,本文实现了基于DSP的CPLD器件软件更新的串行方式。目前已在本课题组研制的基于DSP和CPLD的嵌入式导航计算机系统中进行了成功应用。该串行口更新方式相对常用的基于PC并口的编程方法,解决了并口转JTAG口的下载线缆过长而不能可靠对CPLD更新的问题,同时可以实现CPLD器件在系统

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top