当前位置:首页 > 智能硬件 > 智能硬件
[导读]摘要: 重点阐述了USB接口IP核关键模块的设计和验证,用VerilogHDL对USBIP核协议RTL级代码编写,对USB协议的数据流、传输等进行了深入的分析,在Xilinx ISE软件平台上进行了FPGA综合,并在Xilinx FPGA开发板上调试成功

摘要: 重点阐述了USB接口IP核关键模块的设计和验证,用VerilogHDL对USBIP核协议RTL级代码编写,对USB协议的数据流、传输等进行了深入的分析,在Xilinx ISE软件平台上进行了FPGA综合,并在Xilinx FPGA开发板上调试成功。通过在ModelSim6.0上仿真、ISE9.1上综合并在FPGA开发板上验证,最后采用0.35μm CMOS工艺实现版图设计,工作频率120 MHz,3.3 V电压时工作电流9mA,静态电流40μA。结果表明文中USB接口IP设计是可行的。
关键词: IP;通用串行总线;VerilogHDL;协议层;SIE


    USB(通用串行总线)作为一种外设连接技术,是计算机外设连接技术的重大变革,USB具有速度快、通用性好、扩展性强、功耗低、稳定、易开发等众多优点,在实践中获得了广泛的应用,逐步成为PC机的一种标准接口。USB接口控制芯片是实现USB设备与主机建立通信所必须的芯片,目前国内的USB开发者所采用的芯片都是由国外的芯片商所提供,如Cypress、NEC、Motorola等大的IC设计公司,价格较贵。由于USB的广泛应用,国内外众多科研机构和集成电路设计公司都把目光投向USB这项具有广阔市场前景的技术。USB内核(USB Core)是USB接口控制芯片的关键模块,设计一个稳定、高速的USB内核更是芯片成功推向市场的前提。

1 USB通信原理
    USB通信逻辑上分成了3层:信号层、协议层和数据层。信号层用来实现在USB设备和主机的物理连接之间传输位信息流的信息。逻辑层用来实现在USB设备和USB主机端的协议软件之间传输包字节流的信息,它们在信号层被编码成NRZI位信息后传送出去。数据传输层用来实现在USB主机端的客户端驱动程序和设备端的功能接口之间传输有一定意义的信息,这些信息在协议层被打包成包格式。
1.1 传输的基本单元
    包(Packet)是USB系统中信息传输的基本单元。结构,如图1所示,根据USB规范,包的类型有:令牌包、数据包、握手包和专用包。

 


    USB总线操作(通讯过程)都可以归结为3种包的传输:令牌包、数据包和应答包。任何操作都是从主机开始的,主机以预先排好的时序,发出一个描述操作类型、方向、外设地址以及端点号,称之为令牌包Foken Packet。然后由在令牌中指定的数据发送者发出一个数据包Data Packet或者报告它没有数据可以传输。而数据的目的地一般要以一个应答包Handshake Packet做出响应表明传输是否成功。
1.2 事务处理
    事务处理(Transaction)是指USB总线上数据信息的一次接收或发送的处理过程。事务处理的类型包括输入事务、输出事务、设置(Setup)事务,帧开始(SOF),帧结束(EOF)等类型,下面以输入事务处理为例加以介绍。
    如图2显示了输入事务处理中无差错事务情况,首先由主机向总线发出输入令牌包通知某个设备向主机发送数据;当所指定的设备接收到此令牌包并检验身份后,将准备好的数据组装成数据包向主机传送出去;接着当主机接收到的数据经校验无差错后,创建一个ACK的握手包返回给设备通知主机已正确接收到数据,然后进行新的事务处理过程。若主机接收数据包错误,则不发送ACK握手包,表示处理过程没有成功;若设备未准备好数据,设备会向主机发送NAK握手包,提醒主机暂时不能发送数据;若设备出错,则返回主机STALL握手包通知设备出错。

 


1.3 总线传输
    为了满足不同外设和用户的要求,USB提供了4种传输方式:控制传输、实时传输、中断传输、批量传输。它们在数据格式传输方向数据包容量限制和总线访问限制等方面有着各自不同的特征。
    控制传输用来对设备进行初始化和配置管理,所有USB设备必须直接控制传输,是总线传输中最复杂的传输方式;实时传输用来传送音频或视频的数据;中断传输用来传输类似PCI或ISA总线上中断信号的数据;批量传输用于打印机或扫描仪等传输大块数据的设备。
    控制传输一般包括2或3个事务处理阶段,即设置阶段,数据阶段(可选)和状态阶段。图3给出了设置阶段的细节。如果数据没有正确接收设备就会忽略它,而且不返回应答包。

 


2 USB IP模块设计和代码编写
    USB接口主要有UTM(USB Transceiver Macrocell)、SIE(SefiM Interface Engine)和设备功能总线组成。电路结构,如图4所示,时钟域分为:Transceiver时钟域,SIE时钟域和Wish- bone总线时钟域。

 


2.1 UTM模块
    USB总线数据线由DP和DN组成,是I/O端口。并行通过对DP和DN的上拉、下拉来区别低速USB设备和高速USB设备。
    USB总线上的数据首先通过UTM,进行NRZI解码和位剥离后,串并转换为8位并行数据,传送给SIE中的UTMI或从UTMI接收8位并行数据,经过NRZI编码和位填充后,发送到USB总线。由于USB系统采用NRZI编码,对于一串0来说,它的数据线的电平状态会按位跳变,对以一串l则不然,电平会长时间不变,可能导致数据接受方的时间同步漂移,为了避免漂移,每遇到6个1就在NRZI编码之前加0,即位填充。
NRZI的vefilog实现代码为:

 

2.2 串行接口引擎
    串行接口引擎(Serial Interface Engine,SIE)主要由PL(Protocol Layer),MA(memory buffer arbiter),UTMI(UTM Interface)等组成。PD,PA,PE3个模块组成了USB SIE的协议层(PL)。
    UTMI(UTM Interface)是UTM和SIE的接口主要功能是检测总线状态以及识别总线速度。负责PL与UTM的数据交换。
    PD将UTMI接收到的信息数据包进行解析,解析出包标识(PID)、端点地址和设备地址以及包含在包中的有效数据命令。在解码时,对PID进行校验,即PID[7:4]~PID[3:0],还要对必要的令牌包进行CRC5校验,对数据包进行CRCl6校验。CRCl6,CRC5多项式为:x16+x15+x2+1和x5+x2+1。
    设计中把命令解码电路也设计在PD上,解码电路的设计思路是:通过一个计数器将8 bit的命令数据分别存放在8个:Register中,然后对Register进行解码,来判断该条命令带表的含义和执行的操作。例如:Get Descriptor命令,主机发送的命令数据为8’ha0,8’h06,8’h00,8’h01,8’h00,8’h00,8’h4O,8’h00,然后解码电路根据这8 bit来判断命令的含义。如果主机发送命令有误,或该设备不支持命令,则这条命令被忽略或返回NAK握手包。
    PA根据PE(Protocol Engine)送来的PID组织相应的信息包,把要发送的数据安排在相应的数据包,或者令牌包。发送令牌包时,不必产生CRC5校验位。在发送数据包寸,需要把有效数据的CRCl6校验位放在包末尾一起发送。
    PE可以对IN,OUT以及Setup事务进行单线程处理,且确定当前传输事务要操作的端点地址,所有对MA和RF的当前操作都基于这个端点地址。PE要根据当前端点的配置或当前状态处理传输事务,并在传输事务中实时更新控制/状态寄存器CSR。SIE还能通过CSR中的中断向量请求设备总线的控制支持。

3 系统仿真与实现
    设计中包含了UTM,SIE,并根据协议写出了含有设备描述符的ROM。这样IP具有USB接口的功能,可以作为一个USB设备与主机进行通信。根据USB协议,模拟主机动作编写Testbench,它主要由模拟主机数据包(Send Data),Stuffing检测,CRC校验检错等来仿真。仿真波形,如图5所示。

 


    最后将电路用ASIC实现。采用0.35μm CMOS工艺实现后端设计,数字电路采用单元库自动布线,模拟电路手工绘制版图,并进行DRC和LVS检查,最终版图预览图,如图8所示,芯片面积为1.2 ms2;经过后仿真得出:工作频率为120 MHz,工作电流9 mA,静态电流40μA。工作频率可以实现高速USB协议的要求,功耗、电流等参数也符合设计要求。
    本设计与国内其他的研究结果进行比饺,如表1所示。

 


    从表1中对表可以看出,本设计在满足频率(FX8>480 MHz)的条件下,精简了多个单元,节省了资源,完全符合USB协议的要求。将IP下载到FPGA中与主机通信,主机能正确读出设备描述符和正确完成其他操作,并在主机端显示USB2.0 Device。进一步证明了设计的正确性和实用性。

 

4 结束语
    文中介绍了基于USB协议层模块的设计,最后在Modelsim6.0下仿真和ISE9.1进行了综合,采用Xilinx Spartan3E的XC3S1OOE进行FPGA验证,并利用0.35μm CMOS工艺进行系统的后端设计。实现了工作频率120 MHz,功耗30 mW。
    结果表明,设计的USB协议层模块各功能达到了预期目标、整体性能良好。此IP core可以广泛应用于各种USB设备接口、通信转接器件,也可以集成在SOC中,作为系统芯片总线接口。文中设计的USB IP已成功地应用于两款USB设备端的接口控制芯片(USB转PS/2接口IC和USB集线器IC),在实际应用中性能可靠、速度稳定,而且价格低廉。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

美国纽约州阿蒙克2022年10月20日 /美通社/ -- IBM(NYSE: IBM)发布 2022 年第三季度业绩报告。 IBM 董事长兼首席执行官 Arvind Kri...

关键字: IBM 软件 BSP 云平台

领先的半导体IP核提供商Arasan Chip Systems今天宣布,其MIPI DSI-2、CSI-2和C-PHY/D-PHY Combo IP已在Testmetrix...

关键字: STM TEST AN IP核

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

智能硬件

22075 篇文章

关注

发布文章

编辑精选

技术子站

关闭