基于CPLD的USB下载线设计.doc

上传人:星星 文档编号:1038428 上传时间:2024-03-28 格式:DOC 页数:16 大小:88.63KB
下载 相关 举报
基于CPLD的USB下载线设计.doc_第1页
第1页 / 共16页
基于CPLD的USB下载线设计.doc_第2页
第2页 / 共16页
基于CPLD的USB下载线设计.doc_第3页
第3页 / 共16页
基于CPLD的USB下载线设计.doc_第4页
第4页 / 共16页
基于CPLD的USB下载线设计.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、键入文字摘 要随着片上系统时代的到来,包括复杂可编程逻辑器件和现场可编程门阵列的可编程逻辑器件,应用越来越广泛。USBblaster的使用也显的越来越有必要。与传统的并口、串口下载电缆相比,USBblaster在下载速度和灵活性上都有很大优势。而且由于其结构相对简单,所以它的体积较小,容易携带。USBblaster所用到的芯片价格便宜,容易被广大用户接受使用。本文所设计的USBblaster硬件主要分为两部分,即USB控制芯片及CPLD器件。USB控制芯片将主机发送给CPLD器件的数据转化为8位并行数据,CPLD器件再将其转化为JTAG时序,发送给外设。软件方面,软件主要完成的功能是将USB时

2、序转化成JTAG时序。CPLD应用状态机的原理,将CPLD与USB控制芯片之间的数据传输,分为接受状态机和发送状态机两个状态,它们的功能是控制如何接受和发送数据。经实验证明,在下载速度上USBblaster下载FPGA 配置程序是ByteblasterII 的6 倍。而且由于USBblaster采用USB接口模式,可以更好的适应现在计算机的发展.。 关键字:CPLD ,USB,状态机ABSTRUCTAlong with the System on Chip time arrival,including CPLD and FPGA,the application is more and more

3、 widespread。With the parallel port and serial port download cable compared, USB blaster has great advantages in download speed and flexibility。And because of simple structure, its small and easy to carry. A lot of users can accept USB blaster easily, because that the chips which the USB blaster used

4、 are cheapThere are two main parts in hardware。They are USB controller chips and CPLD devices. USB controller chips transform the date which host sent into eight parallel data。Then CPLD transform the date into JTAG timing and sent it to peripherals. Software main function is that it can transform th

5、e USB timing into the JTAG timing. CPLD use state machine for data transmission 。There are accepting state machine and Sending state machine。They can control that how the data send or receive.USB blaster isalmostsix times as fast as ByteblasterII when it download FPGA configuration process. And beca

6、use that USB blaster is USB mode, it can better adapt to the development of the computer 。Key words :CPLD ,USB, State machine目录第一章 绪论11.1课题的背景和研究意义11.2下载电缆发展现状3第二章 系统总体设计52.1 硬件总体设计52.2 软件总体设计6第三章硬件电路设计73.1 电路器件介绍73.1.1 USB器件FT245BM73.1.2 CPLD器件EPM306493.2 系统硬件设计113.2.1 USB接口电路113.2.2EPM3064与FT245BM

7、的接口实现133.2.3 电压缓冲部分133.3 PCB版图设计143.3.1 容性负载143.3.2 电源143.3.3带电插拔153.3.4 PCB图15第四章 系统软件设计164.1 系统平台建立164.1.1 VHDL语言164.1.2 CPLD简介174.1.3 JTAG协议184.1.4设计软件QuartusII194.2 基于VCP的PC机端软件设计214.3 CPLD收发状态机设计234.3.1 状态机234.3.2 CPLD状态机设计244.3.3 接收状态机254.3.4 发送状态机284.3.5 状态图304.4 其他方案选择32第五章 系统调试及结果35第六章总结和展望

8、38致谢39参考文献40附录4116第一章 绪论1.1课题的背景和研究意义这几年,随着大量支持USB的个人电脑的普及,USB逐步成为PC机的标准接口已经是大势所趋。在主机(host)端,最新推出的PC机几乎100%支持USB;而在外设(device)端,使用USB接口的设备也与日俱增,例如数码相机、扫描仪、游戏杆、磁带和软驱、图像设备、打印机、键盘、鼠标等等。USB设备之所以会被大量应用,主要具有以下优点:可以热插拔,告别“并口和串口先关机,将电缆接上,再开机”的动作。系统总线供电,低功率设备无需外接电源,采用低功耗设备,并可提供5V/500mA电源。支持设备众多,支持多种设备类,例如鼠标,键

9、盘,打印机等。扩展容易,可以连接多个设备,最多可扩127个。高速数据传输,USB1.1是12Mb/s,USB2.0高达480Mb/S。方便的设备互连,USB OTG支持点对点通信。所以开发一个基于USB接口的下载线可以很大的方便我们。下载电缆,就是DownloadCable。其实下载电缆是多年以来沿用的习惯叫法,下载电缆的作用就是用来下载配置数据,下载的目标可以是基于EEPROM/FLASH工艺的CPLD(MAX,MAXII)器件,也可以基于SRAM工艺的FPGA器件。我们还可以通过下载电缆将配置数据烧写到串行配置器件(EPCS)和增强配置器件(EPC)中。它同时也是调试FPGA硬件(Sign

10、alTapII)和调试NiosII处理器的工具。在基于USB的DSP仿真器出来之前,人们只能使用基于并口的DSP仿真器,很多DSP开发人员都是从并口的DSP仿真器开始使用的。平心而论,并口DSP仿真器确实可以帮助我们完成DSP的开发与调试。在基于USB的DSP仿真器出现后,情况有所改变。尽管基于USB的仿真器价格比并口DSP仿真器高,但很多开发人员还是在第一时间选用它,因为两者在仿真速度上是不可相提并论的。特别是在需要大量实时数据交换(RTDX)的场合,USB的速度优势就更明显。我们可以在不中断DSP程序运行的情况下调试程序,这样可以加快调试速度,而且可以得到更真实的结果。 在开发FPGA时使

11、用USB-Blaster下载电缆的优势也同样明显。一方面,下载程序速度明显快。如今FPGA的容量已达到数百万门,即使是通过JTAG口下载程序,也需要很长时间,USB-Blaster则可以明显缩短下载时间。另一方面,程序调试更加方便快捷,甚至可以作一些实时调试。这一点在使用Signal Tap II嵌入式逻辑分析仪和调试Nios II嵌入式处理器时十分重要。用过并口仿真器的人都会埋怨其使用不方便。首要在BIOS里设置成EPP方式,还要注意不能热插拔,这一问题在学生实验室上课中最为明显。电缆经常拔来拔去,结果导致计算并口都不能用了。使用USB电缆则完全不用担心这一点,因为它天生就能热插拔。与传统的

12、基于PC并口的下载电缆相比,本设计的USB下载接口电路具有CPLD的USB下载电缆支持热插拔、体积小、便于携带、降低对PC硬件伤害、编程速度快等明显优点。USB-Blaster与ByteblasterII相比有以下的优点: 使用USB-Blaster 调试Nios II 时,再也不会出现烦人的警告提示。而使用ByteblasterII调试时,则会弹出警告信息,提示这不是Nios II 支持的JTAG调试电缆。 下载FPGA 配置程序是ByteblasterII 的6 倍。在一些速度要求高的应用场合下仍可使用SignalTap II 嵌入式逻辑分析仪进行实时分析。调试Nios II处理器时同样可

13、以处理一些实时应用。 当使用ByteblasterII电缆调试SignalTap II嵌入式逻辑分析仪和Nios II嵌入式软核处理器时,如 果数据交换的速率太快,都不可避免地出现死机。此时使用USB-Blaster则可有效地避免死机现象发生。 只有要USB 口的计算机都能使用USB-Blaster。不象ByteblasterII 那样要求计算机带有并口。目前许多笔记本电脑,甚至台式机都不再配备并口,此时ByteblasterII 将无法使用。本文设计、制作的是一种在QuartusII programer环境下使用的低成本的USB数据下载电缆USBblaster。根据IEEE1149.1标准、

14、USB协议以及JTAG边界扫描原理,通过解析QuartusII内部通信机制,使用USB芯片和CPLD结合,提出一种USB接口电路设计与实现方法。与传统的并口、串口下载电缆相比,其在下载速度和灵活性上都有很大CPLD的USB下载电缆优势。目前已开发的USB下载线一般需要在主机端另行设计软件CPLD的USB下载电缆来控制与下载线及目标器件之间的通信和数据传送;但是这样不仅繁琐,而且可能由于PC机操作系统的不同而影响兼容性。本文讨论的USB下载线能在Altera公司的QuartusII开发环境下直接使用,无须在主机端另行设计通信软件。与传统的基于PC并口的下载电缆相比,本设计的USB下载接口电路具有

15、CPLD的USB下载电缆支持热插拔、体积小、便于携带、降低对PC硬件伤害、编程速度快等明显优点。1.2下载电缆发展现状自从Byteblaster被发明以来,由于它是将PC机中的配置信息传到PCB板FLEX器件中必不可少的器件,所以它被广泛的使用。Byteblaster支持两种配置模式:被动串行模式(PS)和边界扫描模式(JTAG)。但由于现在计算机中USB口的应用越来越广泛,Byteblaster做为并口的下载线,它的使用范围渐渐变小,而且它的下载速度也比不上USB-Blaster。所以USB-Blaster的使用显的更加符合EDA开发工作者的需要。但由于Byteblaster的制作成本要比U

16、SB-Blaster低很多,只有几十元,所以它的使用并不会减少的太快。 目前制作下载电缆的公司主要是Altera公司,国内只是根据Altera公司公布的一些资料进行仿制。由此可见国内的CPLD与FPGA技术与国外先进技术相比仍有一定的差距。下面主要介绍一下Altera公司和它所生产的下载线。 Altera公司是专业设计、生产、销售高性能、高密度可编程逻辑器件(PLD)及相应开发工具的一家公司。从公司成立至今,Altera公司一直在同行业中保持着领先地位。Altera 一直在可编程系统级芯片 (SOPC) 领域中处于前沿和领先的地位,结合带有软件工具的可编程逻辑技术、知识产权 (IP) 和技术服

17、务。新产品系列将可编程逻辑的内在优势 灵活性、产品及时面市 和更高级性能以及集成化结合在一起,专为满足当今大范围的系统需求而开发设计自二十年前发明世界上第一个可编程逻辑器件开始,Altera公司(NASDAQ:ALTR)秉承了创新的传统,是世界上“可编程芯片系统”(SOPC)解决方案倡导者。Altera结合带有软件工具的可编程逻辑技术、知识产权(IP)和技术服务,在世界范围内为14,000多个客户提供高质量的可编程解决方案。新产品系列将可编程逻辑的内在优势灵活性、产品及时面市和更高级性能以及集成化结合在一起,专为满足当今大范围的系统需求而开发设计。目前在ALTERA的官方网站上只有Bytebl

18、aster II、USB Blaster和Master Blaster三种。三种下载电缆中,MasterBlaster的局限性最大,它既不支持主动串行器件,也不支持Nios II的调试。 Byteblaster II可以支持ALTERA目前所有类型的器件,包括FPGA和配置器件,也支持SignalTap II嵌入式逻辑分析仪,但ALTERA声明其不能用来调试Nios II嵌入式软核处理器。ALTER下载电缆可以用于Stratix, Cyclone, APEX II, Mercury, Excalibur, APEX 20K, ACEX1K, FLEX 10K, FLEX 8000和FLEX 6

19、000器件的在电路重配置,也可以用于MAX II, MAX 3000A, MAX 7000和MAX 9000器件的在系统编程。这些电缆通过QuartusII 软件下载数据。ByteBlaster II并口下载电缆和MasterBlaster 通信电缆还能通过MAX+PLUS II 软件下载数据。第二章 系统总体设计2.1 硬件总体设计本文研究基于IEEE1149.1标准的USB下载接口电路的设计及实现。针对Altera公司的FPGA器件Cyclone,通过分析它的边界扫描测试结构和各种JTAG指令,研究它的编程过程和编程特点,并提出设计方案。在接口电路硬件设计中,选用FTDI公司的USB控制芯

20、片 FT245BM,实现USB物理层和链路层协议的解析;Altera公司的可编程逻辑器件EPM3064实现接口逻辑。硬件电路的整体结构框图如图21所示。由于USB下载电路涉及了IEEE1149.1标准和USB协议,所以接口电路主要包含两大部分。一部分是 USB接口,它连接主机和可编程逻辑器件,主要功能是进行USB和并行I/O口之间的数据格式转换,用USB控制芯片实现。另一部分是JTAG接口,它连接USB控制芯片和需要编程的逻辑器件,主要功能是进行并行I/O口和JTAG之间数据的转换,转换逻辑通过对可编程逻辑器件进行设计来实现。其他还包括一些必要的时钟电路和电压转换电路。主机USB控制芯片可编程

21、逻辑器件需要编程的可编程逻辑器件并行数据TCKTMSTDITDOUSB接口控制信号 图21 硬件电路整体结构框图从主机传来的USB数据,由USB控制芯片转换为8位并行数据,经数据总线送到CPLD的可编程I/O引脚。CPLD的数据也可以通过数据总线送回USB控制芯片,然后转换为USB的数据格式传回主机。CPLD收到USB控制芯片传送来的数据后,对数据进行解析,然后转换为符合 IEEE1149.1标准的编程数据和指令,从TCK、TMS和TDI串行输出到要编程的可编程逻辑器件。从可编程逻辑器件返回的符合 IEEE1149.1标准的校验数据从TDO串行输入到CPLD,转换为8位并行数据传送给USB控制

22、芯片,最后返回主机进行校验。2.2 软件总体设计CPLD设计过程,即芯片的设计流程。CPLD的工作大部分是在电脑上完成的。打开集成开发软件(Altera公司 Max+pluxII)画原理图、写硬件描述语言(VHDL,Verilog)编译给出逻辑电路的输入激励信号,进行仿真,查看逻辑输出结果是否正确进行管脚输入、输出锁定(输入、输出管脚可根据需要设定)生成代码通过下载电缆将代码传送并存储在CPLD芯片中。软件主要完成的功能是时序转化。在USB芯片将8位并行数据发送给可编程逻辑器件CPLD时,软件将USB时序转化为JTAG时序,应用边界扫描技术原理,使下载速度得到很大提升。在可编程逻辑器件CPLD

23、发送数据时,软件将符合IEEE1149.1标准的数据发送给主机,完成数据的传输。CPLD应用状态机的原理,将CPLD与USB控制芯片之间的数据传输,分为接受状态机和发送状态机两个状态。接收状态机主要功能是查询USB_RXF引脚的状态,当检测到USB_RXF变低,即可获知上位机已经将数据写入到FT245BM的缓冲区,然后产生读控制时序,将FT245BM接收缓冲区中的数据读入到CPLD的缓冲区。发送状态机完成的主要功能是将外设产生的数据通过FT245BM和USB总线传送到PC机。外设将数据准备好后,将发送允许信号置为有效,当状态机检测到发送允许信号=1时,即启动发送操作。首先状态机从外设的缓冲区按

24、字节将待发送的数据读到CPLD的缓冲区,并产生写FT245BM发送缓冲区的时序,将数据写到FT245BM发送缓冲区。第三章 硬件电路设计3.1 电路器件介绍3.1.1 USB器件FT245BMFT245BM由FTDI (Future Technology Devices Int. Ltd.)公司推出,该芯片的主要功能是进行USB和并行I/O口之间的协议转换。芯片一方面可从主机通过USB串行总线接收数据,并将其转换为并行I/O口的数据流格式发送给外设;另一方面外设可通过并行I/O口将数据转换为USB串行数据格式传回主机。中间的转换工作全部由芯片自动完成,开发者无须考虑固件的设计。该芯片提供了通用

25、的并行I/O口方便与微控制器、FPGA或其他外设接口。在PC机端安装了FTDI公司提供的驱动程序,只需熟悉简单的VB、VC编程,就可很容易地进行上位机软件开发。FT245BM内含两个FIFO数据缓冲区,一个是128字节的接收缓冲区,另一个是384字节的发送缓冲区。它们用作USB数据与并行I/O口数据的交换缓冲区。FIFO实现与外界(微控制器、FPGA或其它器件)的接口,主要通过8根数据线D0D7、读写控制线RD#和WR#以及FIFO发送缓冲区空标志TXE#和FIFO接收缓冲区非空标志RXF#来完成数据交互。TXE#为低表示当前FIFO发送缓冲区为空,为高表示当前FIFO发送缓冲区满或者正在存储

26、前一个字节,禁止向缓冲区中写数据。RXF#为低表示当前FIFO的接收缓冲区非空。RD#信号由低变高将从FIFO缓冲区中读取数据。当RD#变低时将数据送到数据总线。RXF#为高不能从FIFO读数据。该芯片是FTDI生产的,32 PIN的LQFP封装: 图31 FT245BM该芯片有如下特点:单芯片实现USB和并行FIFO缓冲区的双向数据传输;FTDI公司提供VCP(虚拟串行口)和D2XX两种驱动程式,使用D2XX驱动程式能获得更好的数据传输性能,传输速率最大可达1 MBs;通过简单的四线握手信号和MCU、CPLD、FPGA等逻辑器件接口;完整的片内USB协议解决方案,无需底层固件的编程;完全兼容

27、USB1.1,USB2.0协议;附加的EEPROM接口可定制USB接口设备。FT245各管脚说明如下:EEDATA(2脚):串行存储器数据;USBDM(8脚):USB差分数据负端;TEST(5脚):厂商测试管脚;3V3OUT(6脚):3.3V电源输出;D7:0(2518脚):外设接口数据总线;XTIN(27脚):晶体振荡器输入;RD(16脚):外设读数据信号输入;XTOUT(28脚):晶体振荡器输出;WR(15脚):外设写数据信号输入;TXE(14脚):发送FIFO空标志输出;RESET(4脚):芯片复位输入;RXF(12脚):接收FIFO非空标志输出;EECS(32脚):串行存储器片选;EE

28、REQ(11脚):串行存储器读取请求;EESK(1脚):串行存储器时钟;VCC,AVCC(3、13、26、30脚):分别为芯片电源和电路模拟电源;GND,AGND(9、19、29脚):芯片地和模拟地。USBDP(7脚):USB差分数据正端;3.1.2 CPLD器件EPM3064 EPM3064 是Altera的MAX 3000A 系列低成本CPLD器件。Altera的3.3-V MAX 3000A器件基于Altera MAX架构,为大批量应用进行了成本优化。采用先进的0.30 m CMOS 处理,基于电可擦除可编程只读存储器(EEPROM),MAX 3000A系列是一种即用性的器件,密度范围从

29、32到512个宏单元。 MAX 3000A器件可支持在系统可编程能力(ISP),能够轻松地实现现场重配置。每个MAX 3000A 宏单元都可以独立地配置成顺序或组合逻辑操作。器件选项:Altera 的MAX 3000A 可编程逻辑器件(PLD)是满足大批量,成本敏感性应用的非易失性和即用性CPLD理想的解决方案。MAX 3000A CPLD提供从32到512个宏单元,3.3V逻辑内核电压,并支持通用特性和封装。MAX 3000A 器件支持商业和工业级温度范围,并提供常用的封装,例如除了传统的塑封J引线芯片封装(PLCC)和塑封四角扁平封装(PQFP)之外,还有薄四角扁平封装(TQFP)和1.0

30、毫米间距球栅阵列封装(BGA)。MAX 3000A器件给予了设计人员采用不同单板布局进行设计所需的灵活性。I/O电压 :Altera的MultiVolt多电压接口允许设计人员在MAX 3000A 设计中无缝集成2.5、 3.3和5.0V V逻辑电平 。从工业应用传统所要求的5.0V I/O信号到消费电子应用要求的低电压标准如2.5V,MAX 3000A器件都提供强大的I/O电压选项。表1列出了MAX 3000A器件的输入和输出电压支持。出众的硅片特性:MAX 7000器件是具有即用性,非易失性,提供全局时钟,在系统可编程,IEEE-1532标准支持,和开路输出特性的器件。和许多其他硅片特性一起

31、,MAX 3000A器件适用于大量系统级的应用。易用的设计软件:MAX器件为易用的QuartusII网络版和MAX+PLUSII 基础版设计软件所支持。这两个平台提供综合,布局布线,设计验证和器件编程功能,能够从Altera网站的设计软件部分免费下载。这两个免费赠送的可用于MAX器件设计的开发工具帮助使最终用户系统的总体开发成本最小化多种应用:MAX 3000A CPLD常用于通信、计算机、消费电子、汽车、工业和许多其他终端系统中。依靠其低成本和灵活性的特点,MAX 3000A 器件通过替代其他更昂贵的标准硅片器件,降低了系统成本。采用CPLD,系统升级更为简单,并依靠MAX 3000A CP

32、LD的再编程能力延长了终端产品的生命周期。EPM3064有1250个可用门数目,64个宏单元,4个逻辑阵列块数目。 图32 EPM30643.2 系统硬件设计3.2.1 USB接口电路USB控制芯片FT245BM负责解释USB协议,完成双方数据通信。其内部有USB协议引擎,并且集成的电平转换器使FIFO和控制信号能与电压为5 V、3.3 V的逻辑器件接口。FT245BM通过8位并行数据口D0.7和4位读写状态控制口 RXF#、TXE#、RD#、WR实现和微控制器交换数据,而PC机和FT245BM问通过UISB总线传输数据。可选的外部EEPROM用于存储USB设备的特定信息,可以通过EECS、E

33、ESK、EEDATA来完成数据写入和读出。FT245BM的PIN1,2,32分别是EEPROM的时钟,数据,片选线,245内部没有存储器,要外接一个EEPROM来存储USB端口的描述符等信息。此处用的EEPROM是93C46,USB端口描述符可以通过FTDI提供的MProg3.0_Setup.exe软件从USB下载进去。此文件主要是用来描述USB端口的,是 .ept 格式。Pin 4是一个复位引脚,低电平芯片复位,这是供其它设备对245复位用的引脚,如果不用,接到VCC 上,此处通过电阻分压,把它接一3.3V上。Pin5是复位输出,复位时输出0V,否则输出3.3V。VCC上升到3.5V后,RESETOUT还要过5ms才输出高电平。当主机通过USB向外围设备发送数据时,RXF# 变低通知外设读取数据,外设把RD变低,然后变高。RD在低电平期间,D0-D7上的数据有效。外设向主机发送数据时,主机准备好后,TXE变低,外设在TXE变低期间,把WR变高,然后把数据写到D0-D7上,再把WR变低,则数据就传如需全文可联系QQ 2537024709

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922