电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > EDA/PLD > 详细信息
EDA/PLD:利用单片机实现CPLD的在系统编程
来源:   时间: 2007-9-20 14:35:13    
   

  摘要:为了获得一定的灵活性,嵌入式系统大都设计而可编程逻辑器件CPLD。利用单片机对CPLD进行编程,可以方便地升级,修改和测试已完成的设计,文中给出了它的实现过程。
    关键词:CPLD MCU ISP JTAG

一、问题的提出

嵌入式系统而灵活性的要求。一方面,应用环境会对嵌入式系统不断提出新的要求,需要更改最初的设计;另一方面指生产多个品种时希望尽量能在单一的硬件平台上实现。为了最大限度地满足灵活性的需要,嵌入式系统一般都设计而可编程逻辑器件CPLD。在设计阶段和现场运行之后的各个阶段,都可能会遇到设计的升级、修改和测试问题。FLASH的使用方便了程序的更新;带而在系统可编程(ISP)功能的可编程逻辑器件,使得不需重新设计印制板就可以改变原而的设计;网络技术的发展,又使得远程维护成为可能。

笔者设计的嵌入式系统,实现了远程维护,其组成结构如图1所示。其中CPLD采用了XILINX公司的XC9500系列。

二、JTAG简介

JTAG简介

JTAG是IEEE的联合测试行动小组(Joint Test Action Group)所制定的测试标准(IEEE1149.1-1990),使得用户可以测试器件的逻辑和相互之间的连接。目前,它是国际上最流行的ICE技术,众多的芯片厂家都在自己的产品中加入JTAG口,以便用户调试。

XILINX的XC9500系列CPLD采用了JTAG的编程和测试指令。XC9500系列CPLD带而测试访问口TAP(Test Access Port),包括4个引脚:

*TDI-测试数据输入;

*TDO-测试数据输出;

*TCK-测试口同步时钟;

*TMS-测试模式选择。

当用基于PC机的编程软件对CPLD进行编程时,PC机的并口经转换板与目标器件的TAP接口相连,完成编程工作。

在本设计上,将MCU的I/O口与CPLD的TAP接口相连,利用MCU的I/O口模拟JTAG测试口的行为,实现对PLD的编程。

三、SVF与XSVF

SVF(Serial Vector Format)格式由TI公司和Teradyne公司于1991年联合开发完成。SVF文件是一个ASCII码文件,用于描述基于IEEE.1119.1标准的测试模式,包括激励、预期响应和屏蔽数据。开发SVF的初衷就是获得一种独立于供应商的IEEE1149.1标准的测试模式,它能够在各个仿真软件和测试仪器厂商之间进行数据交换,可以应用于从设计验证现场诊断各个阶段。

SVF文件中包含了编程所需要的命令及相应的数据。SVF文件由一系列SVF语句组成。语句以分号结束。每一个语句由一个命令和相关的参数组成。命令分为三类:状态命令、偏移命令和并行命令。其中状态命令说明测试序列如何驱动IEEE1149.1TAP的状态机,包括:

*SDR-扫描数据寄存器;

*SIR-扫描指令寄存器;

*ENDDR-数据寄存器扫描结束;

*ENDIR-指令寄存器扫描结束;

*RUNTEST-进入测试/空闲状态;

*STATE-进入特定状态;

*TRST-驱动TRST为特定电平。

XILINX的CPLD通过自身的TAP接口接受SVF格式的编程指令和JTAG边界扫描指令。事实上,XILINX提供的JTAGProgrammer编程软件能够自动将标准的JEDEC/BIT格式的编程文件转换为SVF格式;但是SVF文件格式为ASCII码,需要较大的存储空间,并不适合直接用于嵌入式系统。为此,需要一种结构更为紧凑的数据格式-XSVF。

XSVF用与SVF类似的方法描述IEEE1149.1总线的操作。SXVF与SVF的最大区别在于它能获得更大的数据压缩率,从而得到较小的文件。它是二进制格式的。

SVF转换为XSVF可以利用XILINX公司的软件SVF2XSVF.EXE来实现。经转换之后的文件大小如表1所列。注意文件的大小只与芯片的型号相关而和逻辑的复杂程度无关。

表1 XSVF文件大小

芯片型号 XC9536 XC9572 XC95108 XC95144 XC95216
XSCF文件/B 5194 11674 19598 12960 26390

XSVF共而16个单字节指令,每一个指令后跟多少不等的单字节数据,如表2所列。

表2 XSVF指令

指令名称 指令代码 指令解释
XCOMPLETE 0x00 XSVF文件结束标志
XTDOMASK 0x01 设置TDO的屏蔽数据
XSIR 0x02 进入移位指令寄存器状态,并且移入TDI的值
XSDR 0x03 进入移位数据寄存器状态,并且移入TDI的值
XRUNTEST 0x04 设置每次访问扫描数据寄存器状态之后处于测试/空闲状态的时间(单位:ms)
XREPEAT 0x07 设置在ISP操作判为失败之前,TDO移出值与预期值比较的次数
XSDRSIZE 0x08 设置后续XSDR/XSDRTDO指令记录的长度
XSDRTDO 0x09 进入移位数据寄存器状态,移入TDI的值,将TDO的移出值与预期的值比较,屏蔽数据起作用
XSETSDRMASKS 0x0a 设置移位数据寄存器的地址和屏蔽数据
XSDRINC 0x0b 执行连续的XSDR指令
XSDRB 0x0c 进入移位数据寄存器状态,并且移入TDI的值,操作结束后保持在此状态
XSDRC 0x0d 移入TDI的值,操作结束后保持在此状态
XSDRE 0x0e 移入TDI的值,操作结束后退出状态,进入测试/空闲状态
XSDRTDOB 0x0f 进入移位数据寄存器状态,移入TDI的值,将TDO的移出值与预期的值比较,屏蔽数据不起作用。操作结束后保持在此状态
XSDRTDOC 0x10 移入TDI的值,将TDO的移出值与预期的值比较,屏蔽数据不起作用。操作结束后保持在此状态
XSDRTDOE 0x11 移入TDI的值,将TDO的移出值与预期的值比较,屏蔽数据不起作用。操作结束后退出此状态,进入测试/空闲状态

四、实现过程

本设计的实现过程如图2所示。

第一步,利用XILINX提供的工具,用原理图或HDL语言设计所需的逻辑,然后进行综合。

第二步,将编程文件输出为标准的JEDEC文件(*.jed)。

第三步,顺JTAGProgrammer环境下,将编程文件进一步转换为SVF文件。

第四步,利用VSF2XSVF软件,将SVF转换为XSVF。

第五步,将二进制的XSVF转换为MCU可接受的相应格式。本设计中采用Intel公司16位单片机,所以生成Intel Hex格式文件。

当需要更新逻辑时,MCU从网络总线上获得更新后的XSVF文件(Intel Hex格式),暂存于RAM空间,然后读取XSVF文件命令,逐条解释,并予以执行,即通过I/O口模拟JTAG的TAP口操作,产生编程指令、数据和控制信号,完成对CPLD的擦除、编程、校验、读写保护设置等项工作。


相关信息
发表评论
打印本页 关闭本页
Xilinx新版DSP开发工具提升DSP性能高达38%
    赛灵思公司(Xilinx,Inc.)日前宣布其DSP开发工具可将多速率DSP设计的Fmax性能提升高达38%,同时还大大提高了易用性。AccelDSP综合工具和SystemGeneratorforDSP工具9.2版的发布,使XilinxXtremeDSP解决方案的开发工具组件提供了更高的性能水平,同时两种工具间的集成也更为紧密,为同时使用MATLAB和Simulink建模环境的开发人员进一步简化了FPGA设计流程。   “新兴市场中没有传统FPGA...
>>详细内容
Xilinx 新版DSP开发工具可提升DSP性能达38%
    赛灵思公司(Xilinx,Inc.)今天宣布其DSP开发工具可将多速率DSP设计的Fmax性能提升高达38%,同时还大大提高了易用性。AccelDSP™综合工具和SystemGeneratorforDSP工具9.2版的发布,使Xilinx®XtremeDSP™解决方案的开发工具组件提供了更高的性能水平,同时两种工具间的集成也更为紧密,为同时使用MATLAB®和Simulink®建模环境的开发人员进一步简化了FPGA设计流程...
>>详细内容
Xilinx 宣布提前发售量产SPARTAN-3A DSP器件
  赛灵思公司宣布开始提供量产的Spartan™-3A DSP器件,比计划提早了一个月。Spartan-3A DSP平台可提供高达20 GMAC的性能,而价格却不到30美元,非常适合无线、视频监控、个人医疗和消费应用等低成本数据密集型领域的广泛应用。Spartan-3A DSP平台是赛灵思XtremeDSP™解决方案的一部分,XtremeDSP™解决方案为开发人员提供了包括可编程逻辑器件、IP、开发工具和第三方DSP生...
>>详细内容
XILINX 发布 65NM VIRTEX-5 系列-业界最高性能的平台 FPGA
 
>>详细内容
XILINX 推出 VIRTEX-5 LX 器件-世界上第一款 65NM FPGA
  2006 年 5 月16日,中国北京——可编程逻辑解决方案世界领先提供商赛灵思公司 (NASDAQ: XLNX),今天宣布开始发运 Virtex™-5 LX 器件,这是其新的 65 纳米 (nm) Virtex-5 现场可编程门阵列 (FPGA) 系列四种领域优化平台中的第一种。(请参看今天相关的 Virtex-5 系列介绍新闻)。赛灵思® Virtex-5 LX 平台包括六种器件,具有最多达 330,000 个逻辑单元,1200 个用户 I/O,10M 位...
>>详细内容
用XC9500 CPLD和并行PROM配置Xilinx FPGA
  摘 要:Xilinx FPGA系列可以通过串口配置,本文给出了一个用XC9500和并行PROM对Xilinx FPGA进行串行配置的应用实例。关键词:FPGA;CPLD;串行配置 概述  随着FPGA芯片密度的增加,串行PROM已不能适应高密度的FPGA的配置。大容量的并行PROM所要求的寻址方式又不能直接与FPGA接口,这时可以采用XC9500 CPLD和PROM对高密度FPGA进行配置。FPGA设备在线配置或电源上电时,配置逻辑会被自动...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com