




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、USB2.0主机控制器IP核的设计 毛云,张刚作者简介:毛云(1984),女,研究生在读,嵌入式系统通信联系人:张刚(1953),男,教授,图像编解码 嵌入式系统. E-mail: maoyun091.51.5taiyuan university of technology,Tai Yuan 030024;College of Information Engineering,Tai Yuan University of Technology,Tai Yuan 030024太原理工大学信息工程学院,太原
2、 030024;太原理工大学信息工程学院,太原 030024030024;03002413233682814;1323368281413233682814西省太原市太原理工大学迎西校区9号公寓楼316室;山西省太原市太原理工大学信息工程学院maoyun0913;maoyun0913毛云(1984),女,研究生在读,嵌入式系统;张刚(1953),男,教授,图像编解码 嵌入式系统毛云;张刚MAO Yun;ZHANG Gang张刚1.51.51*|*译著*|*周立功. usb2.0与OTG规范及开发指南M. 北京:北京航空航天大学出版社,
3、 2004:168-169.2*|*期刊*|*ARC, Conexant, Mentor, Philips, SMSC, Trans Dimension. UTMI+Low Pin Interface(ULPI) Specification, Revision 1.1.2004-10-20. 3*|*技术标准*|*USB-IF. Universal Serial Bus Mass Storage Class Specification Overivew Revision 1.3 EB/OL. /developers, 2008-09-05.4*|*期刊*|*马伟. 嵌入式
4、USB主机系统的研究与设计J. 计算机测量与控制, 2003,11(5):381-384.5*|*学位论文*|*王丽. 针对海量存储设备的USB2.0主机控制器的设计与实现D. 太原:太原理工大学, 2010.6*|*期刊*|*阿多森. USB系统体系M. 北京:中国电力出版社, 2001:200-2207*|*技术报告*|*Frank. USB开发技术报告EB/OL. 2002-128*|*其他文献*|*XILINX.Virtexp-II FPGA Family:Complete Data SheetEB/OLwww. ,2006.|1|毛云|MAO Yun|太原理工大学信息工程学院,太原
5、030024|taiyuan university of technology,Tai Yuan 030024|毛云(1984),女,研究生在读,嵌入式系统|山西省太原市太原理工大学迎西校区9号公寓楼316室|030024|maoyun091313233682814*|2|张刚|ZHANG Gang|太原理工大学信息工程学院,太原 030024|College of Information Engineering,Tai Yuan University of Technology,Tai Yuan 030024|张刚(1953),男,教授,图像编解码 嵌入式系统|山西
6、省太原市太原理工大学信息工程学院|030024|maoyun091313233682814USB2.0主机控制器IP核的设计|The Design of USB2.0 Host Controller IP Core|(太原理工大学信息工程学院,太原 030024)摘要:为了摆脱对USB2.0主机控制器ASIC芯片的依赖,提高产品集成度,本文设计了针对全速和高速USB海量存储设备的USB2.0主机控制器IP核。首先介绍USB2.0主机控制器IP核中主要涉及的USB2.0 通信协议以及与物理层芯片接口的ULPI 接口规范协议,并依据协议规范,利用VHDL 硬件描述语言完成
7、USB2.0主机控制器IP核的ULPI 接口模块以及USB2.0 通信协议模块的设计。使用Xilinx 公司的ISE Simulator工具进行波形仿真,并在Xilinx XUPV2开发板上进行验证,仿真结果及FPGA片上实验表明本文设计的USB2.0主机控制器能够完成对USB海量存储设备的有效管理。关键词:USB2.0 ;ULPI ;VHDL中图分类号:TP334.5 The Design of USB2.0 Host Controller IP CoreMAO Yun1, ZHANG Gang2(1. taiyuan university of technology,Tai Yuan 03
8、0024;2. College of Information Engineering,Tai Yuan University of Technology,Tai Yuan 030024)Abstract: This paper designed a USB2.0 host controller IP core that aimed at full speed and high speed USB mass storage device in order to get rid of the dependence of dedicated USB2.0 host controller ASIC c
9、hips and to improve product integration. First of all it introduced the USB2.0 communication protocol and the ULPI interface specification protocol that involved in USB2.0 host controller IP core. According to the protocol specification, the design was done by using of VHDL hardware description lang
10、uage to complete the ULPI interface module and USB2.0 communication protocol module. The simulation was done through using Xilinx ISE Simulator software tool, and the results were tested through Xilinx XUPV2 Development Board. The results and the experiments done on the FPGA chip turned out that the
11、 design of USB2.0 host controller can complete the USB mass storage device management.Key words: USB2.0 ; ULPI; VHDL0 引言在USB协议1标准发展的过程中,USB2.0接口凭借其连接简单、稳定、速度快以及即插即用等优点,广泛应用于计算机、通信和消费类电子产品中。然而目前大部分USB主机端控制器都是使用国外公司研制的专用ASIC芯片,USB2.0主机控制器IP核的设计可以摆脱对这些芯片的依赖,使得应用灵活方便。本文完成了针对全速和高速海量存储设备USB2.0主机控制器IP核中与物理
12、层芯片接口的ULPI2模块以及USB2.0协议模块的设计和实现。ULPI模块介于USB2.0主机控制器的协议模块和物理层芯片之间,完成对插入USB设备的状态检测,判别是何种设备(全速还是高速),然后将设备置于相应的状态再进行USB 的各种传输事务3。每一个USB的传输都是由事务组成的。而每一个事务都是由USB传输的最基本单位包(packet)来组成的,USB的包主要是由令牌包、数据包、握手包和特殊包这四种类型组成的。令牌包和数据包又包含不同的类型4,握手包仅由一个PID域组成用以传输联络信号来反映目前数据处理的状态。USB协议包含了四种数据传输类型,分别为控制传输,批量传输5,中断传输和同步传
13、输 ,其中控制传输是所有设备必须要支持的传输方式,对时间没有严格限制的大量的数据传输要用到批量传输;同步传输也被称为实时传输。1 系统设计FPGAUSB设备ISP1504图1 整体系统图Fig.1 The overall system diagram图1中FPGA型号为Xilinx Virtex-II proxc2vp30,标识为ISP1504的子板通过FPGA扩展口接入到FPGA开发板,子板以物理层芯片ISP1504为核心并配以简单外围电路构成,上面带有USB接口用来插入USB设备。ISP1504用来完成数据的串行化和解串,以及NRZI编码和比特位填充6等功能。FPGA中内嵌microbla
14、ze 软核处理器,USB主机控制器IP核作为用户IP核挂接到处理器的PLB总线上,再加入USB驱动,便可以实现microblaze处理器对全速和高速USB海量存储设备的管理。本文主要介绍USB主机控制器IP核设计中的两个重要模块-与物理层接口的ULPI模块以及USB2.0协议层模块的设计实现。2 ULPI接口模块的设计及实现ULPI(UTMI+低引脚数)接口规范是应用于高速通用串行总线(USB)和便携式USB(USB OTG)收发器芯片的行业规范。ULPI模块提供USB主机控制器与UTM正常通信的物理层通道,是主机控制器实现正常通信的重要接口之一。该模块依据ULPI规范实现了总线事件检测的功能
15、,完成了上电,正常操作,挂起和复位状态之间的转换等。此模块采用状态机来实现,主要通过对ISP1504 的功能控制寄存器写入一定的数据,使得物理层芯片的收发器进入相应的状态(全速、高速以及高速挂起),对状态机中时间控制采用计数器实现,主机端发送kj序列对首先通过写ISP1504 的功能控制寄存器使之进入高速chirp 检测状态,然后在数据线上发送全0和全1来完成的。本设计USB2.0主机控制主要针对全速和高速海量存储设备设备,全速和高速的状态转移图如图2所示:图2 ULPI模块状态转移图Fig.2 The Flow Chart of ULPI Module芯片上电之后,通过写ISP1504 的功
16、能控制寄存器的reset 位来复位芯片,之后通过差分数据线的状态来检测是否有设备插入,并根据状态判断是低速设备还是全速设备(D-为高电平,即连接的设备为低速设备。若D+为高电平,即连接的设备为全速设备7。)需特别说明的是,主机端对高速设备的检测并不是一下完成的,是首先置为全速设备,然后主机端通过设置控制功能寄存器驱动出SE0信号,如果收到设备发回的chirp k信号,主机端就会发送线性调频的kj 序列对,每个k或者j持续时间在40-60us,如果设备是高速设备,在检测到主机发过来的3个kj序列对之后设备的控制器会使其自身进入高速模式,即高速收发正常的操作状态。如果没有收到设备返回的chirp
17、k信号则认为是全速设备回到全速状态下进行传输。当总线上没有数据传输(空闲状态)超过3ms,则会进入FS挂起状态,当收到主机端发送的resume信号时恢复到FS状态,同理如果在高速状态下空闲超过3ms,会先进入FS挂起状态。用VHDL硬件描述语言完全按照上述状态机转移完成此模块,在Xilinx ISE 开发环境下使用ISE simulator仿真工具进行仿真,仿真波形如图3所示:图3 ULPI模块的仿真波形Fig.3 Emulator Wave of ULPI Module由于状态转移对时间的限制,故只截取了部分状态作分析。由图所示,currentst4:0反映的是状态机的状态,linestat
18、e1:0表示线上状态(直接反映D+ D-状态),在状态1通过向ISP1504的84H地址(控制功能寄存器的地址)写入61H(置位rst位)复位物理层芯片。在状态1写完寄存器后置位stp,转到状态2检测设备连接状态。在状态2,当检测到linestate变为10(D+为高),所以先识别为全速设备,转到全速状态4。在下一个时钟周期进入状态6驱动se0对设备进行复位,然后按照状态转移图最后进入高速操作阶段。3 USB2.0 协议模块的设计和实现在ULPI模块完成了设备的状态监测和转移之后,等进入正常的全速或者是高速模式,就可以按照USB2.0 协议完成数据的传输,USB2.0 协议实现模块是主机控制器
19、实现的核心模块,完成USB数据的读写和传输方式的控制。根据协议层的功能主要把协议层分成三个子模块来实现,分别是封包模块(PA)、拆包模块(PD)以及控制传输的协议引擎模块( PE )。3.1 PA PD模块的设计实现封包模块(PA)需要对令牌包、数据包和握手包三种包按照其对应格式分别进行封装并发送到ULPI模块。开始空闲状态,接到发包指令后,判断发包类型然后进入相应的状态。例如令牌包需将其PID域、ADDR域、ENDP域以及CRC5校验域按照顺序封装完成后发送。状态转移图如下所示: 图4 PA模块状态转移图 Fig.4 The State Diagram of PA Module拆包模块(PD
20、)刚好是封包模块的逆过程,该模块是把从ULPI模块接收到的数据包和握手包进行拆包。对数据包拆包首先就是要判断PID域以确定数据包的类型,并且还需对数据进行CRC校验然后根据该数据包的功能将数据域内容送给要保存数据的模块,图5是拆包模块的状态转移图:图5 PD模块状态转移图Fig.5 The State Diagram of PD Module仿真结果如图6所示:图6拆包的仿真波形Fig.6 Emulator Wave of PD module在图6中,完成一个包含三个数据域的拆包过程。信号rx_valid和rx_active同时有效时rx_data7:0代表从ULPI模块接收到的数据,首先根据
21、接收PID域值为C3,判断出该数据包的类型为DATA0,pid_data0信号为高。Rx_data_st保存拆包完成后的数据域,数据是在rx_data_valid信号为高电平期间存入rx_data_st寄存器的,所以接收数据为0x00、0x01、0x02、0x03。最后对接收的CRC部分进行了验证,由于0xef、0x7a是此包数据域正确的CRC生成码,所以传输无误情况下crc16_err一直为0。3.2 PE 模块的设计实现协议引擎(PE)模块主要负责协调PA和PD模块实现USB传输方式,本设计主要实现两种传输方式即控制传输方式和批量传输方式。该模块设计的主状态转移图如图7所示,状态机在空闲状
22、态收到请求传输有效信号transreq后,就会对请求类型transtype进行判断。不同的transtype值代表着不同的传输事务要求。按照不同的要求,主状态机就会转到相应的传输事务状态中进行处理。图7 PE模块主状态转移图 Fig.7 The Main State Diagram of PE module 每个传输事务由不同的状态转移过程来实现,以其中的setup 传输事务为例。首先,状态机向PA模块发送发包使能标志,同时将表示setup令牌包的值1101送给PA模块。PA模块接到发setup包指令,就会按照要求完成封包发送的工作,最后反馈给PE模块一个发包结束的信号sendpacketen
23、。setup状态机接收到发包结束信号sendpacketen为1后,就会转到下一个状态发data0数据包。在此状态下如果收到发包结束有效信号,也会转到下一状态接收握手包。在这个状态中,主要是和PD模块进行通信。PD模块通过对接收的握手包进行拆包,来分析包的PID域是否出错。如果没有错就会反馈给PE模块包的类型,出错就通过信号来通知PE模块。状态机本状态除了要判断接收包是否出错,还要判断接收包是否超时。各个事务分别完成之后,至此协议层完成。图8 Setup事务状态转移图 Fig.8 The State Diagram of Setup4 结论:本文完成了USB2.0主机控制器中ULPI模块与USB2.0协议层模块设计,此USB2.0主机控制器 IP核主要针对全速和高速海量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025的装修施工合同范本
- 《2025设备租赁合同的订立程序内容》
- 2025存量房买卖合同标准版
- 2025正式员工劳动合同范本
- 2025深圳个人租房合同范本简化版
- 2025合作开发合同范本
- 2025年股权投资合作合同协议书样本
- 2025年上海市房屋买卖居间合同样本
- 2025雇佣合同范本模板
- 2025年购买合同范本
- 基于多源异构数据的地质知识图谱构建与应用
- 2024年战略规划咨询服务合同
- 2024年领导干部任前廉政知识考试测试题库及答案
- 《公共资源交易主体信用评价实施指南》编制说明
- 2024年度山东省国家电网招聘之管理类测试卷(含答案)
- 煤矿防突专项设计(样本)
- 绍兴银行社会招聘真题
- 《储水式电热水器的安全使用年限》
- DB1303T375-2024起重机械使用管理制度编制指南
- 路灯安装工程项目实施重点、难点和解决方案
- 山西省云时代技术有限公司笔试题库
评论
0/150
提交评论