0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子设计 作者:电子设计 2018-10-08 09:16 次阅读

一、问题的提出

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

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

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

二、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的擦除、编程、校验、读写保护设置等项工作。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6030

    文章

    44500

    浏览量

    632230
  • cpld
    +关注

    关注

    32

    文章

    1247

    浏览量

    169164
  • 嵌入式
    +关注

    关注

    5060

    文章

    18982

    浏览量

    302284
收藏 人收藏

    评论

    相关推荐

    如何实现单片机CPLD通讯呢?

    单片机为P89V51RD2,CPLD为ATF1508AS,现在要实现单片机CPLD的通讯,如何实现
    发表于 04-23 14:22

    利用单片机实现CPLD的在系统编程

    为了获得一定的灵活性,嵌入式系统大都设计有可编程逻辑器件CPLD。利用单片机CPLD进行编程
    发表于 04-03 10:49 22次下载

    单片机应用系统的CPLD 应用设计

    单片机系统中使用CPLD,可使系统构成灵活,提高可靠性,缩短开发周期。介绍在MCS-51 应用系统中的CPLD 应用设计实例, 详细分析CPLD 的应用和
    发表于 05-14 13:49 39次下载

    单片机与FPGA CPLD总线接口逻辑设计

    设计一种基于MCS-51 单片机与FPGA/CPLD 的总线接口逻辑,实现单片机与可编程逻辑器件数据与控制信息的可靠通信,使可
    发表于 09-22 10:16 83次下载

    基于单片机CPLD/FPGA被动串行下载配置的实现

    基于单片机CPLD/FPGA被动串行下载配置的实现:介绍采用AT89S2051单片机配合串行E2PROM存储器,实现
    发表于 10-29 21:57 19次下载

    CPLD器件在单片机控制器中的使用

    CPLD 器件在单片机控制器中的使用摘要:CPLD 器件与单片机结合,可以优势互补,组成灵活的、硬软件都可现场编程的控制器,缩短开发周期,适
    发表于 02-08 09:49 42次下载

    基于单片机CPLD的频率测量研究

    摘 要:针对单片机进行高频测量存在的响应速度问题,利用CPLD适合精确、高速计数的特点,提出了一种基于单片机CPLD的频率测量电路,通过
    发表于 07-06 23:41 42次下载

    单片机应用系统的CPLD应用设计

    单片机系统中使用CPLD,可使系统构成灵活,提高可靠性,缩短开发周期。介绍在MCS-51应用系统中的CPLD应用设计实例,详细分析CPLD的应用和
    发表于 07-14 14:04 39次下载

    基于单片机+CPLD的多路精确延时控制系统设计

    根据多路精确延时控制系统的设计参数指标,利用单片机CPLD的功能特性与片上资源,设计了基于CPLD与多个单片机的多路精确延时控制系统,实现
    发表于 12-16 16:15 43次下载

    CPLD实现单片机与ISA总线并行通信

    摘要:用ALTERA公司MAX7000系列CPLD芯片实现单片机与PC104 ISA总线接口之间的并行通信,给出系统设计方法及程序源代码。包括通信软件和AHDL设计部分。CPLD
    发表于 05-26 21:52 962次阅读
    用<b class='flag-5'>CPLD</b><b class='flag-5'>实现</b><b class='flag-5'>单片机</b>与ISA总线并行通信

    基于CPLD单片机PCI接口设计

    摘要:详细阐述一种利用CPLD实现的8位单片机与PCI设备间的通信接口方案,给出用ABEL HDL编写的主要源程序。该方案在实践中检验通过。 关键词:单片机
    发表于 06-20 13:31 955次阅读
    基于<b class='flag-5'>CPLD</b>的<b class='flag-5'>单片机</b>PCI接口设计

    CPLD实现单片机与ISA总线并行通信

    摘要:用ALTERA公司MAX7000系列CPLD芯片实现单片机与PC104 ISA总线接口之间的并行通信,给出系统设计方法及程序源代码。包括通信软件和AHDL设计部分。 关键词:CPLD
    发表于 06-20 13:34 1213次阅读
    用<b class='flag-5'>CPLD</b><b class='flag-5'>实现</b><b class='flag-5'>单片机</b>与ISA总线并行通信

    如何对IAR单片机编程软件进行编译优化

    单片机编程软件是单片机开发不可缺少的工具之一,目前市场流通的单片机编程软件主要为IAR单片机
    发表于 10-31 17:15 9539次阅读
    如何对IAR<b class='flag-5'>单片机</b><b class='flag-5'>编程</b>软件<b class='flag-5'>进行</b>编译优化

    PIC单片机如何进行编程

     对于单片机爱好者、单片机入门的学生来说,和其他任何MCU一样,要对PIC单片机进行编程,通常需要以下软件工具:
    发表于 06-29 09:50 6233次阅读

    如何使用单片机实现音乐编程

    本文档的主要内容详细介绍的是如何使用单片机实现音乐编程
    发表于 08-27 16:58 14次下载
    如何使用<b class='flag-5'>单片机</b><b class='flag-5'>实现</b>音乐<b class='flag-5'>编程</b>