摘要: 重点阐述了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做出响应表明传输是否成功。