




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
使用CPLD器件和VHDL语言实现USB收发模块的硬件功能设计引言当前,高密度可编程逻辑器件CPLD,由于具有巨大的灵活性而广泛应用于状态机、同步、译码、解码、计数、总线接口、串并转换等很多方面,而且在信号处理领域的应用也活跃起来。通用串行总线(USB,UniversalSerialBus)接口既是一种快速、双向、廉价、可以进行热插拔的串行接口技术,也是一种体系完备的通信协议,已逐渐成为计算机的主流接口。USB接口的收发模块用于进行数据编码和与外部相连。本文主要介绍使用CPLD实现通用串行总线(USB)接口收发模块。1、USB收发模块的数据规范和通信协议1.1USB的数据编码方式USB系统在进行串行数据传输时,使用一种NRZI(NoneReturnZeroInvert,即不归零反向码)的编码方案。在该编码方案中,“1”表示电平不变,“0”表示电平改变。图1给出了一个数据流和它的NRZI编码。如果直接使用这样的编码方式会遇到一个很严重的问题:若重复相同的“1”信号持续进入时,就会使电平长时间无法转换,逐渐积累从而导致读取数据产生严重的脱节。为了确保信号发送的准确性,当在USB总线上发送一个数据包时,传输设备就要进行位插入操作。所谓位插入操作是指在数据被编码前,在数据流中每6个连续的“1”后面插入一个“0”,从而强迫NRZI码发生变化。位插入操作如图2所示。USB数据的传送是由低位到高位。每包数据的开始是一个同步格式,同步格式固定为80H。从同步格式开始,位插入操作贯穿于整个数据传输过程,在同步格式后的数据“1”作为真正数据流的第一位。位插入操作是由传输端强制执行的。1.2USB收发模块工作过程USB收发模块的发送单元由串行化﹑位插入﹑NRZI编码等几部分组成;接收单元由NRZI解码﹑反位插入﹑并行化等组成。整个收发单元的工作过程如下:发送端在数据发送前,首先要将并行数据串行化,然后进行位插入,最后进行NRZI编码;接收端在接收数据前就必须先执行NRZI解码,然后进行反位插入,最后进行串行数据并行化。2、USB收发模块的设计流程使用VHDL语言进行USB收发模块的设计采用自下而上的设计方法,即先设计其各部分功能单元,再编写顶层文件调用各功能单元以实现其总体功能。根据USB收发模块的工作过程可以确定其设计流程。下面以发送模块为例,介绍各模块的具体实现。2.1串行化部分的设计USB收发模块传输的数据都是串行数据,一个串行数据由10位组成:1位启动位,8位数据位,1位停止位。由于系统内部处理的都是并行数据,所以在发送之前应该进行并行数据串行化处理。串行化的过程是将输入的并行数据按由低位到高位的顺序存入一个有序数组中,并按串行数据格式进行编码。根据这一原理可以编写VHDL程序实现串行化功能。2.2位插入部分的设计在位插入部分的设计中,最关键的步骤是计数器的设置和使用。位插入的进行与否由计数器的值决定,而计数器的值则由输入串行数据的状态直接决定。由于只有在连续输入6个“1”之后,即计数器的值为6时才进行一次位插入,而在计满6个数之前,只要有一位输入的串行数据为“0”,则计数器立即清零。因此,在每读入一位数据之后,就要判断其是否为“1”,以决定计数器加一还是清零。正是由于计数器状态极易发生改变,所以增加了编程的复杂性。2.3NRZI编码部分的设计NRZI编码的原理如前所述。2.4数据传输控制方式为了能对数据位进行准确的操作,选取每位数据包含4个时钟周期(CLK)。例如低速1.5Mbit/s的工作时钟应选取为6MHz。在串行数据发送控制器中设置了一个2位的时钟计数器,利用该计数器高位的状态来产生数据发送时钟(TXCLK),在每个发送时钟的上升沿发送一位数据。串行数据发送过程的波形如图3所示。最后,在完成各功能单元设计的情况下,编写顶层文件调用各个功能单元,以实现USB收发模块的整体功能。在顶层文件中设置了外部输入和输出端口,作为信号和数据进出发送模块的端口;同时还定义了许多不同的中间变量和信号,用以将各个功能单元连接起来,从而实现数据和信号从输入到输出的连续工作过程。3、USB收发模块的部分VHDL源代码下面针对串行数据的NRZI编码,给出USB收发模块的部分VHDL程序源代码:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYNRZIISPORT(EN:INSTD_LOGIC;IND1:INSTD_LOGIC_VECTOR(7DOWNTO0);OUT1:OUTSTD_LOGIC_VECTOR(8DOWNTO0));ENDNRZI;ARCHITECTUREbehavOFNRZIISBEGINPROCESS(EN)BEGINIFEN=‘1’THENOUT1(0)《=‘1’;IFIND1(0)=‘1’THENOUT1(1)《=OUT1(0);ELSIFIND1(0)=‘0’THENOUT1(1)《=NOT(OUT1(0));ENDIF;ENDIF;IFIND1(1)=‘1’THENOUT1(2)《=OUT1(1);ELSIFIND1(1)=‘0’THENOUT1(2)《=NOT(OUT1(1));ENDIF;ENDIF;………IFIND1(7)=‘1’THENOUT1(8)《=OUT1(7);ELSIFIND1(7)=‘0’THENOUT1(8)《=NOT(OUT1(7));ENDIF;ENDIF;ENDIF;ENDPROCESS;ENDbehav;在能够体现模块功能的前提下,该程序中的输入与输出均设置为八位串行数据,但输出起始位设置为“1”,实际输出为九位。在实际使用中输入与输出数据均有可能超出八位,但也只是增加了编程的复杂性,其设计方法并不发生改变。4、仿真结果USB收发模块串行数据NRZI编码单元的VHDL源代码通过MAXPLUSⅡ软件仿真[4]后的波形如图4所示。由图4所示的仿真波形,当使能端EN=‘1’时,电路才开始工作,输入数据和输出数据的起始位都为‘1’。将仿真波形中的输入数据IND1和输出波形OUT1与图1所示的NRZI编码原理波形相比,发现仿真波形符合NRZI编码原理,即说明此VHDL源程序完全符合设计要求。其余各个功能单元的VHDL源代码也可用相同的方法进行仿真,将仿真所得结果与理论推导结果相比较可知各程序符合设计要求。5、收发模块的硬件实现在完成源程序的设计和仿真之后,可以选用可编程逻辑器件来具体实现USB收发模块的硬件功能。本设计选用Altera公司MAX3000A系列可编程逻辑器件中的EPM3032A芯片。EPM3032A的集成度为600可用门﹑32个宏单元﹑34个可用I/O引脚,外加电压为3.3V。这些基于EEPROM器件的组合传输延迟快至4.5ns。以上述发送模块为例,定义输入引脚为:时钟CLK,使能端EN,8位输入IN0~IN7。定义输出引脚为:串行数据输出端口OUT。将程序下载至芯片中,即可实现该设计的硬件功能。6、结束语USB收发模块是USB接口的重要组成部分,传统的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国白棕3色穿衣熊数据监测研究报告
- 线上教育培训机构人员的年度工作总结合集(5篇)
- 八年级上期末复习之写作满分范文20篇(热点话题预测)(解析版)
- 知识产权实施中的风险管理与应对
- 石墨新材料的研发对国际市场的影响
- 高中信息技术粤教版选修2教学设计-5.4.3 活动过程
- 科技与文化融合下的网络直播发展路径探索
- 水产招聘合同范本
- 手工代写合同范本
- 2024年中信银行福建厦门分行社会招聘考试真题
- 应急预案解读与实施
- 2025年《国有企业领导人员腐败案例剖析》心得体会样本(3篇)
- 广告行业安全培训详细介绍
- 2024-2029年全球及中国氨能源(绿氨)应用可行性研究与投资战略规划分析报告
- 2025福南平市建武夷水务发展限公司招聘21人高频重点提升(共500题)附带答案详解
- 2025年上半年工业和信息化部装备工业发展中心应届毕业生招聘(第二批)易考易错模拟试题(共500题)试卷后附参考答案
- 2025年中远海运物流有限公司招聘笔试参考题库含答案解析
- 2024年广州市海珠区卫生健康系统招聘事业单位工作人员笔试真题
- 一科一品一骨科护理
- 加气站安全培训课件
- 设备维修的基本技能培训
评论
0/150
提交评论