• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 基于FPGA的USB接口IP核设计

基于FPGA的USB接口IP核设计

录入:edatop.com     点击:

摘要: 重点阐述了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给出了设置阶段的细节。如果数据没有正确接收设备就会忽略它,而且不返回应答包。

作者:姚成宇,唐宁,汪洋 来源:电子技术

上一篇:基于BIST的编译码器IP核测试
下一篇:交替高速ADC的难点和解决这些问题的几种方法

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图