单片机如何实现对CPLD进行编程

一、问题的提出
嵌入式系统而灵活性的要求。一方面,应用环境会对嵌入式系统不断提出新的要求,需要更改最初的设计;另一方面指生产多个品种时希望尽量能在单一的硬件平台上实现。为了最大限度地满足灵活性的需要,嵌入式系统一般都设计而可编程逻辑器件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文件大小
xsvf共而16个单字节指令,每一个指令后跟多少不等的单字节数据,如表2所列。
表2 xsvf指令
四、实现过程
本设计的实现过程如图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的擦除、编程、校验、读写保护设置等项工作。

到底谁才是LED照明的王者?石墨烯/OLED/电商/互动四大惊人力量
连接电路图的技巧,值得收藏
浅谈自动驾驶、AI及车联网带给我们的益处
全球机器人市场产量增速正在放缓
ADI公司推出高性能RMS功率检波器ADL5906
单片机如何实现对CPLD进行编程
四川航空两架五粮液号主题彩绘客机A330-300惊艳亮相
最大限度地提高WPT空心双线圈系统配置的效率
果粉看到iPhone 12发货时间后,又开始了一场新的吐槽
虹科案例|为什么法国的Drumee Cloud选择MariaDB而不是PostgreSQL
中美贸易摩擦下 隆利科技如何自救
新能源车牌试点城市有哪些_最新新能源车牌试点城市盘点
语音模块能为生活带来哪些便利
如何实现电动汽车和电网的双向互动
德州仪器推出业界最广共模范围的70V故障保护型RS-485收
国产全面屏之战!小米MIX2、vivox20配置对比图来,vivo x20“完胜”?只等发布会揭晓了
液面波动大带来的超声波测量故障如何解除?
新唐科技NuMaker Tomato主板介绍
人工智能就业前景怎样
首届量子计算产业峰会在合肥召开