电子技术综合设计第8章_第1页
电子技术综合设计第8章_第2页
电子技术综合设计第8章_第3页
电子技术综合设计第8章_第4页
电子技术综合设计第8章_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、8.1 CPLD器件的配置与编程下载8.1.1 概述 当利用CPLD/FPGA开发系统完成数字电路 或系统的开发设计并仿真校验通过之后,就需要将获得的CPLD/FPGA编程配置数据下载到CPLD/FPGA芯片中,以便最后获得所设计的硬件数字电路或系统,结合着用户的设计需求进行电路功能的硬件调试和应用。 1器件编程分类 1) 若按使用计算机的通信接口划分有: 串口下载(BitBlaster或MasterBlaster) 并口下载(ByteBlaster) USB接口下载(MasterBlaster或APU)等方式。18.1 CPLD器件的配置与编程下载2) 若按使用的CPLD/FPGA器件划分有

2、: CPLD编程(适用于编程元件为EPROM、E2PROM和闪存的器件);FPGA下载(适用于编程元件为SDRAM的器件)。3) 若按CPLD/FPGA器件在编程下载过程中的状态划分有主动配置方式:在这种配置方式下,由CPLD器件引导配置操作的过程并控制着外部存储器和初始化过程。被动配置方式:在这种配置方式下,由外部计算机或控制器(如单片机)控制配置的过程。28.1 CPLD器件的配置与编程下载2器件的工作状态 CPLD/FPGA器件按照正常使用和下载的不同过程其工作状态分为三种:1) 用户状态(User mode),即电路中CPLD器件正常工作时的状态。2) 配置状态(Configurati

3、on),指将编程数据装入CPLD/FPGA器件的过程,也可称之为下载状态。3) 初始化状态(Initialization),此时CPLD/FPGA器件内部的各类寄存器复位,让IO引脚为使器件正常工作作好准备。38.1 CPLD器件的配置与编程下载8.1.2 编程下载操作步骤 由于对Altera的CPLD/FPGA器件的编程配置操作与该公司的MAX+PLUS II开发系统密切相关,因此先介绍MAX+PLUS II的编程与下载步骤。 1打开编程窗口 连上编程器硬件,然后在MAX+PLUS II 菜单中选择Programmer项,打开编程器窗口,如图8-1所示。48.1 CPLD器件的配置与编程下载

4、图8-1 编程界面58.1 CPLD器件的配置与编程下载2利用Altera编程器对MAX系列器件进行编程 在Option菜单内选择Hardware Setup项,然后在Hardware Type 对话框内选择设定下载电缆的类型,如果下载电缆为ByteBlaster,设定后按下OK即可;如果是BitBlaster类型还要选择相应的波特率,最后按下OK按钮,如图8-2所示。图8-2 下载电缆的选择 68.1 CPLD器件的配置与编程下载1) 在编程器窗口中,检查所选择的编程文件和器件是否正确。在对MAX系列器件进行编程时,使用的是扩展名是.POF的文件,如果选择的编程文件不正确,可在File菜单中

5、选择Select Programming File命令选择编程文件,如图8-3所示。图8-3 编程文件的选择78.1 CPLD器件的配置与编程下载2) 将器件插到编程插座中。3) 按下Program按钮,编程器将检查器件,并将你的项目编程到器件中,而且还将检查器件中的内容是否正确。88.1 CPLD器件的配置与编程下载3通过JTAG实现在系统编程 一个编程目标文件(.pof)可以通过Byteblaster电缆直接编程到器件中,如图8-4所示。图8-4 通过JTAG接口对CPLD进行编程98.1 CPLD器件的配置与编程下载1) 编译一个项目,MAX+PLUS II编译器将自动产生用于MAX器件

6、的编程目标文件。2) 将Byteblaster电缆的一端与微机的并行口相连,另一端10针阴极头与装有可编程逻辑器件的PCB板上的阳极头插座相连。该PCB板还必须为Byteblaster电缆提供电源。3) 打开MAX+PLUS II编程器。4) 在Option菜单中选择Hardware Setup命令,将出现Hardware Setup窗口。5) 在下拉条中选择Byteblaster。6) 指定配置时使用的并行口。7) 按下OK按钮。108.1 CPLD器件的配置与编程下载4设置在系统多器件同时编程 1) 在MAX+PLUS菜单中选择并打开Programme项,在JATG菜单中打开MultiDe

7、vice JATG Chain并选择MultiDevice JATG Chain Setup项,进行多个器件的JATG链的设置。对话框如图8-5所示。图8-5 利用JTAG链进行多器件同时编程118.1 CPLD器件的配置与编程下载2) 按下Add按钮。3) 选择Select Programming File 并选出编程文件,该框内显示你选择的编程文件。如果你使用多个器件,重复2)3)步,可确保与你电路板上的顺序相同。4) 完成设置后,按下OK按钮。5) 按下Program按钮,开始对JATG器件进行编程。128.1 CPLD器件的配置与编程下载5利用Byteblaster电缆配置FLEX系列

8、器件可以在MAX+PLUS中,通过Byteblaster电缆对多个FLEX器件进行在电路配置,过程如下:1)首先编译一个项目,MAX+PLUS II编译器将自动为FLEX器件产生一个SRAM目标文件(.pof)。2)将Byteblaster电缆的一端与微机的并行口相连,另一端10针阴极头与装有可编程逻辑器件的PCB板上的阳极头插座相连。该PCB板还必须为Byteblaster电缆提供电源。3)打开MAX+PLUS II编程器窗口,在Option菜单中选择Hardware Setup命令,在该窗口中选择Byteblaster并设定相应的LPT端口。4)如果只需配置一个FLEX器件,首先检查在编程

9、器窗口中的编程文件和器件是否正确,如果不正确,在File菜单种选择Select Programming File命令来改变编程文件。5)如果需要配置含多个FLEX器件的FLEX链,在FLEX菜单中打开MultiDevice FLEX Chain,然后选择MultiDevice FLEX Chain SETUP。接着额按你电路板上的顺序添加FLEX编程文件。选定全部文件后,按下OK按钮。6)在编程器窗口中按下Configure按钮。138.1 CPLD器件的配置与编程下载8.1.3 Altera CPLD器件的配置与下载 这里以FLEX 10K系列器件为例来说明器件的配置与下载原理及方法。1配置

10、类型(1)分类 在FLEX10K器件正常工作时,它的配置数据储存在片内SRAM之中。由于SRAM的易失性,所以每次加电期间,配置数据都必须重新加载。 将FLEX10K分为以下4种配置方式,如表8-1所示。 148.1 CPLD器件的配置与编程下载表8-1 FLEX10K器件的配置方式158.1 CPLD器件的配置与编程下载(2) 配置文件大小 表8-2总结了各种FLEX10K器件配置文件的大小,如果要配置多个器件,则简单的将这些数据大小相加即得所需配置存储器的容量。 表8-2 FLEX10K器件配置文件的大小168.1 CPLD器件的配置与编程下载(3) 配置中将用到的引脚 在介绍几种配置方式

11、之前,有必要先介绍一下在配置过程中我们要用到的一些引脚,当然这些引脚在不同器件上的引脚号不同,但功能却是相同的。如表8-3所示。表8-3 FLEX10K器件配置时使用的引脚说明178.1 CPLD器件的配置与编程下载188.1 CPLD器件的配置与编程下载198.1 CPLD器件的配置与编程下载(4) 主动串行配置或EPC1配置方式 主动串行配置(AS,Active-Serial Configuration)由Altera提供的串行PROM存储芯片EPC1向FLEX10K器件输入串行位流的配置数据。如图8-7所示。图8-7 单器件主动配制电气连线图208.1 CPLD器件的配置与编程下载多片F

12、LEX10K器件的主动串行配置电路如图8-8所示。图8-8 多器件分割配制电路将图8-7与8-8比较可以看出,除了FLEX10K器件和EPC1级连外,其余的基本类似。 218.1 CPLD器件的配置与编程下载(5) 被动串行配置方式 在被动串行配置(PS)方式中,由BitBlaster下载电缆或微处理器产生一个由低到高的跳变送到nCONFIG引脚,然后微处理器或编程硬件将配置数据送到DATA0引脚,送配置时钟到DCLK引脚,数据在DCLK的上升沿处被琐存,直至CONF_DONE变为高电平,它是先将每字节的最低位LSB送到FLEX10K器件。CONE_DONE变为高电平后,DCLK必须有多余出的

13、10个周期来初始化该器件,器件的初始化是由下载电缆的编程适配器自动执行的,如图8-10所示。在PS方式中没有握手信号,所以,配置时钟的工作频率必须要低于10MHz。228.1 CPLD器件的配置与编程下载图8-10 Bitblaster电缆接口示意图 图8-11示例了利用微处理器来进行PS 方式配置,图8-12示出了利用编程硬件来进行PS方式配置。238.1 CPLD器件的配置与编程下载图8-12 BitBlaster与CPLD的接口图8-11 利用微处理器进行PS配制248.1 CPLD器件的配置与编程下载图8-13 利用微处理器进行多器件配制电路 在多器件PS方式中,第一片FLEX10K的

14、nCEO引脚级联到下一片FLEX10K的nCE引脚。在第一个器件编程完成之后,该器件的nCEO输出由高到低使能第二个器件,一个时钟周期之内,第二个FLEX10K器件开始配置,因此,对于微处理器来说,要转移的数据是透明的,如图8-13所示。258.1 CPLD器件的配置与编程下载(6) 被动并行同步配置(PPS)方式 在被动并行同步配置方式中,nCONFIG引脚被智能主机控制,如微处理器等。PPS配置方式如图8-14所示。 图8-14 用微处理器进行PPS模式配制268.1 CPLD器件的配置与编程下载 PPS配置方式也可以用于配置多个FLEX 10K器件。在多器件PPS方式中,FLEX 10K

15、器件采用级联方式进行配置。如图8-15所示。 图8-15 用微处理器进行多器件PPS模式配制278.1 CPLD器件的配置与编程下载(7) 被动并行异步(PPA)配置方式 图8-17示意了PPA配置方式,其中有一个地址解码器控制着nCS和CS引脚。该解码电路允许智能主机通过处理特殊地址来选择地址FLEX10K器件,以求简化配置过程。PPA方式同样可以用来配置多个FLEX10K器件,如图8-18所示。 图8-17 用微处理器进行PPA模式配制288.1 CPLD器件的配置与编程下载图8-18 微处理器进行多器件PPA模式配制298.1 CPLD器件的配置与编程下载2利用器件的JTAG接口配置电路

16、 大多数的ALTERA器件的JTAG都具有第二功 能,即除了能作为边界测试功能外还可以利用 JTAG接口进行器件编程,编程时序同样遵循 1149.1协议。一般使用TDI、TDO、TCK、TMS 共4个引脚。其中TDI是串行数据输入端,TDO是 串行数据输出端,TCLK是串行时钟,TMS是 JTAG状态机模式控制输入端。TDI、TDO、TMS 的数据在TCLK时钟的配合下,将数据串行移位 到CPLD内部JTAG移位寄存器中。 308.1 CPLD器件的配置与编程下载 如果采用Byteblaster配制电缆进行编程接口引脚的描述见表8-8和图8-21。图8-21 Byteblaster配制电缆接口

17、电路318.1 CPLD器件的配置与编程下载3Byteblaster配制电缆接口电路 以上部分内容介绍了各种配制电路与CPLD的接口及时序,一般情况下各种下载电缆可以由Altera公司或其代理商提供。但Byteblaster配制电缆内部接口电路Altera公司已经开放,如图8-21所示,图中左边标注的引脚是与PC的打印机接口对应,右边的引脚分为JTAG模式和PS模式两种,可以分别与CPLD或EPC2对应的引脚相接,其中电源为5V,所有配制电阻在30至100之间选择,该电缆的使用范围为Altera所有5V、3.3V、2.5V的器件。各引脚的描述见表8-8。328.1 CPLD器件的配置与编程下载

18、图8-21 Byteblaster配制电缆内部接口电路 338.1 CPLD器件的配置与编程下载表8-8 Byteblaster模式及引脚描述34 8.2 基于AT89S5X系列单片机的ISP编程8.2.1 ISP技术简介 ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。ISP技术是未来发展方向。 ISP是最先由Lattice公司提出的一种技术,是通过同步串行方式实现对其可编程逻辑器件的重配置。ISP与JTAG的接口协议很相像,只是后者形成了标准。 ISP

19、现在已经成为一种概念,它的提出改变了传统硬件系统开发的流程,大大方便了开发者,加快了开发速度。现在大多数的可编程器件(FPGA、CPLD、DSP、MCU)都支持ISP特性。单片机也不例外,Atmel公司推出的AT89S系列51单片机也符合ISP特性。35 8.2 基于AT89S5X系列单片机的ISP编程8.2.2 基于ISP技术的下载电缆 要实现JTAG接口协议可以使用专用的IC,如74LVT8980、74LVT8990,它与MCU配合可以提供高速的JTAG串行访问,成本较高。下载电缆则是实现JTAG接口协议的廉价方案。它仅命名用74HC244做线路驱动,由计算机的并行端口引出I/O作为TCK

20、、TDI、TDO、TMS等信号线。由于并口在SPP模式下共有3个端口数据输出端口、控制输出端口、状态输入端口,各种下载电缆究竟从那个端口引出JTAG信号线几乎都不相同,图8-22、图8-23是两种下载电缆的原理图。36 8.2 基于AT89S5X系列单片机的ISP编程图8-22 Altera官方下载电缆原理图37 8.2 基于AT89S5X系列单片机的ISP编程图8-23 Atmel 官方下载电缆原理图38 8.2 基于AT89S5X系列单片机的ISP编程并口简介: 计算机的并行端口工作在SPP模式下,对它的控制是通过数据输出端口、控制输出端口、状态输入端口来实现的。 并行口有25个引脚,其中

21、包括8位数据线、5位状态线、4位控制线。 数据端口(378H):D0D7用于数据输出。 状态端口(379H):*S7(Busy)、S6(nAck)、S5(PE)、S4(Select)、 S3(nError)。控制端口(37AH):*C3(nSelin)、S2(nInit)、*C(AnutoFeed)、*C0(nStrobe)。(端口地址是默认的LPT1设置;*表示此引脚有反向器) 表8-9为并行端口定义。对应原理图有 Altera的下载电缆: TCK、TDI、TMS、TDO分别对应D0、D6、D1、*S7; Atmel的电缆: TCK、TDI、TMS、TDO分别对应*C0、D0、*C3、S6。

22、39 8.2 基于AT89S5X系列单片机的ISP编程表8-9 并行端口定义表40 8.2 基于AT89S5X系列单片机的ISP编程8.2.3 基于ISP技术的下载电缆的编程实现 用计算机控制下载电缆实现JTAG协议,就是对并口3个I/O端口的读写操作,用0-1的变化来模拟JTAG时序。在Win98和Win2000环境下读写I/O,需要驱动程序。可以使用DriverLINX Port I/O Driver(可以从WWW.下载)来实现I/O端口访问。安装DLPORTIO以后,通过调用DLPORTIO.DLL动态连接库中的UCHAR DLPORT_API D1PortRead PortUchar(

23、IN ULONG Port)。 VOID DLPORT_API D1PortWrite PortUchar(IN ULONG Port,IN UCHAR Value);两个函数就可以访问位于378H、379H、37AH(这是缺省的LPT1设置)的3个并口I/O端口。程序段1实现了对Altera下载电缆的一次电平赋值:41 8.2 基于AT89S5X系列单片机的ISP编程程序段1Altera下载电缆电平赋值函数Void CAvrISPDlg:Setbit()Unsigned char value=0;If(!m_tck)value|=0 x01;If(!m_tms)value|=0 x02;If

24、(!m_tdi)value|=0 x40;DlPortWritePortUchar(0 x378,value);Value=DlPortReadPortUchar(0 x379);If(value & 0 x80)m_tdo=0;Else m_tdo=0;通过以上程序依次改变JTAG各接口I/O的电平状态,模拟JTAG协议的时序,就可以访问支持JTAG标准的各种芯片。42 8.2 基于AT89S5X系列单片机的ISP编程8.2.4 ISP协议的分析与实现 对AT89S5X系列单片机ISP编程不使用JTAG协议,而使用SPI同步串行接口协议,如图8-24所示。图8-24 串行编程时序43 8.2 基于AT89S5X系列单片机的ISP编程 针对这种8位SPI接口协议,我们使用数组来模拟时序:时钟信号

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论