USB技术与嵌入式应用_第1页
USB技术与嵌入式应用_第2页
USB技术与嵌入式应用_第3页
USB技术与嵌入式应用_第4页
USB技术与嵌入式应用_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

USB技术与嵌入式应用第一页,共38页。主要内容USB特点及结构设备属性传输类型数据包格式命令组成SL811HS嵌入式设备实现May8,20052第二页,共38页。USB特点统一的硬件接口模型热插拔、即插即用系统总线供电:+5V、upto500mA易扩展:最多可以连接127个USB设备3种数据传输速率:1.5Mb/s(low-speed)、12Mb/s(full-spped)、480Mb/s(high-speed)4种数据传输方式:ControlTransfer,InterruptTransfer,BulkTransfer,IsochronousTransferMay8,20053第三页,共38页。USB特点总线利用率高-数据报文附加信息少,带宽利用率高,同时支持多种方式、不同速率的设备。较好的数据容错性-在数据包中加入了CRC校验、在协议中包含数据包出错处理及差错恢复机制、并具有对有缺陷设备进行认定和根据不同的传输类型错误进行不同处理的功能…May8,20054第四页,共38页。USB拓朴结构PCPCMay8,20055第五页,共38页。USB的硬件结构USB主机-控制整个系统的数据传输工作主机控制器(主机+根集线器)-UHCI,OHCIUSB设备-以从属的方式与USB主机通信USB集线器:本身可再接其他USB外围设备USB设备:连接在计算机上用来完成特定功能并符合USB规范的I/O设备单元,如USB鼠标、U盘等复合设备(CompoundDevice)集成设备(CompositeDevice)May8,20056第六页,共38页。USB协议-设备属性描述符-描述设备的属性和特点设备描述符(DeviceDescriptor)配置描述符(ConfigurationDescriptor)接口描述符(InterfaceDescriptor)端点描述符(EndpointDescriptor)串描述符(StringDescriptor)类描述符(ClassDescriptor)非标准描述符May8,20057第七页,共38页。USB协议-设备属性类(Class):功能相近的一类设备,主机端只需提供类驱动程序便可以驱动大多数USB设备通信类集线器(Hub)类音频(Audio)类

打印机类人机接口(HID)类(包括键盘、鼠标、游戏杆等)大容量存储类(包括硬盘、光驱、软驱等)……May8,20058第八页,共38页。USB协议-设备属性功能(Function)/接口(Interface)设备地址(DeviceAddress):USB主机控制器通过设备地址区分设备。端点(Endpoint):位于USB设备中与USB主机进行通信的基本单元管道(Pipe):USB设备和主机之间数据通信的逻辑通道(设备地址、端点号和属性)May8,20059第九页,共38页。USB的四种传输类型批量传输:用于传输大块数据,并且数据的传输不要求有周期性或一定的数据传输速率。通常打印机、扫描仪和数码相机以这种方式与主机连接。可以动态的获得总线带宽如果数据传输出现错误,传输失败,可以重发有确认的数据传输,但不保证传输的带宽和延迟只有当获得空闲的带宽时,批量传输才会发生May8,200510第十页,共38页。USB的四种传输类型控制传输:用来传输USB命令函数的传输类型,命令函数是由主机发起的,旨在完成对系统中的设备进行系统配置、状态查询和管理等操作。提供访问设备描述符和命令操作的机制是可靠的数据数据传输,支持错误检测和数据重传,并尽可能满足主机和设备的同步用于控制传输的设备端点是双向的所有的设备必须有至少一个控制端点(EP0)比批量传输更优先占用总线带宽

May8,200511第十一页,共38页。USB的四种传输类型中断传输:该方式传送的数据量很小,但这些数据需要及时处理,以达到实时效果,USB主机给用于中断传输的设备分配一定的带宽,周期性地通过中断传输接收此设备信息,此方式主要用在键盘、鼠标以及游戏手柄等外部设备上。中断传输管道的最大服务周期(单位:ms)必须得到保证由于错误而引起的数据重传将在下一服务周期进行数据的结尾是通过与包的最大传输字节数比较来确定May8,200512第十二页,共38页。USB的四种传输类型实时传输:以固定的传输速率,连续不断传输数据,发生错误时,USB不处理,而是继续传送新的数据。用于需要连续传输,且对数据的正确性要求不高而对时间极为敏感的外部设备,如麦克风、音箱以及电话等。数据传输有固定的延迟,确保对USB带宽的访问只要数据能提供得上,就能保证管道上的恒定数据传送速率允许有一定的误码率只有控制传输和中断传输支持低速传输,批量传输和实时传输不支持低速传输May8,200513第十三页,共38页。USB的四种传输类型传输方式功能纠错传输字节延迟保证控制用于发送和接收USB定义的结构化信息是≤8,16,32,64尽最大能力保证不延迟批量用于发送和接收小块无结构数据是≤8,16,32,64无中断与批量管道相似,但包括一个最大延迟是≤64以保证的最小速率轮询实时用于发送和接收有周期保证的大块无结构数据否≤1023每1ms帧中的固定部分May8,200514第十四页,共38页。USB协议-数据包包(Packet)-数据传输的基本单元SYNC+8PID+data+CRC5/16+EOPSYNC:8bits(1.1),32bits(2.0)EOP:3bits(1.1),8bits(2.0)SmallestPacketHigh-Speed==48bits (100.00ns)Full-speed==19bits (1,583.33ns)Low-speed==19bits (12,666.67nsplusfull-speedPREpacket)LargestPacketHigh-Speed==8248bits(17,183.33ns)Full-speed==8219bits(684,916.67ns)[Isochronous1023bytes]

64bytes==547bits(45,583.33ns)[Bulk,Control,Interrupt]Low-speed==99bits(66,000nsplusfull-speedPREpacket)May8,200515第十五页,共38页。USB协议-数据包类型令牌包(TokenPacket)SYNC+8PID+11data+CRC5+EOPSOF(帧起始)-数据字段为11bits帧序列号Setup(设置)-数据字段为7bits设备地址+4bits端点号OUT(输出)-数据字段同设置令牌包IN(输入)-数据字段同设置令牌包May8,200516第十六页,共38页。USB协议-数据包类型特殊令牌包(SpecialTokenPacket)PRE(低速前导包):通知HUB下一个包是低速包SPLIT(高速SPLIT传输令牌):支持HUB端口的全速/低速设备的连接(USB2.0)PING包:用来诊断相关的USB设备是否有足够的空间接收新的数据包(批量输出和控制输出)(USB2.0)ERR包:在高速数据传输情况下,ERR包被HUB用来通告USB主机其相关端口上的全/低速总线错误(USb2.0)May8,200517第十七页,共38页。USB协议-数据包类型数据包(DataPacket)SYNC+8PID+0~1023BytesData+CRC16+EOPDATA0-数据传输中的奇数包DATA1-数据传输中的偶数包DATA2-用于高速实时输入/输出数据传输(USB2.0)MDATA-用于高速实时输出数据传输(USB2.0)May8,200518第十八页,共38页。USB协议-数据包类型握手包(HandshakePacket)SYNC+8PID+EOPACK(应答)-数据的接收方正确地接收到了数据包NAK(无应答)-USB设备不能从主机接收数据OUT-设备忙 IN-数据未准备好STALL(中止)-设备有问题或不支持某个命令NYET-高速传输时的接收无响应应答(USB2.0)响应PING令牌包响应SPLIT令牌包高速集线器接收到一个不能处理的SPLIT令牌包时May8,200519第十九页,共38页。USB设备-设备描述符structDeviceDesc{

INT8U bLength; INT8U bDescriptorType; INT16U bcdUSB; INT8U bDeviceClass; INT8U bDeviceSubClass; INT8U bDeviceProtocol; INT8U bMaxPacketSize0; INT16U idVendor; INT16U idProduct; INT16U bcdDevice; INT8U iManufacturer; INT8U iProduct; INT8U iSerialNumber; INT8U bNumConfigurations;}SL811HID设备示例:{ 0x12, 0x01, 0x0110, 0x00, 0x00, 0x00,

0x08,

0x04b4, //Cypress

0x0811, //SL811 0x0100, 0x01, 0x02, 0x00, 0x01};May8,200520第二十页,共38页。USB设备-配置描述符structCfgDesc{ INT8U bLength; INT8U bDescType; INT16U wLength;//Cfg+Ifc+Class+EP+Factory INT8U bNumInterface; INT8U bConfigValue; INT8U bIndex; INT8U bAttr; INT8U bMaxPower; }SL811HID设备示例:{ 0x09, 0x02,

0x0022, 0x01, 0x01, 0x00, 0xA0,//D7=1,D5:远程唤醒=1 0x32};May8,200521第二十一页,共38页。USB设备-接口描述符structInterfaceDesc{ INT8U bLength; INT8U bDescType; INT8U iNum; INT8U iAltString; INT8U bEndPoints; INT8U iClass; INT8U iSubClass; INT8U iProtocol; INT8U iIndex; }SL811HID设备示例:{

0x09,

0x04,

0x00,

0x00,

0x01,

0x03, //HIDClass

0x00,

0x00,

0x00}May8,200522第二十二页,共38页。USB设备-HID设备类描述符structHIDClassDesc{ INT8U bLength; INT8U bType; INT16U bcdHID; INT8U bCountryCode; INT8U iNum; INT8U bClassType; INT16U bDescLen;}SL811HID设备示例:{

0x09, 0x21, 0x0100, 0x00, //notsupport 0x01, 0x22, 0x0039};May8,200523第二十三页,共38页。USB设备-端点描述符structEPDesc{ INT8U bLength; INT8U bType; INT8U bEPAddr; INT8U bAttr; INT16U wMaxPktSize; INT8U bInterval;}SL811HID设备示例:{

0x07,

0x05,

0x81, //b7=1:IN

0x03, //Interrupt

0x02, 0x0A};May8,200524第二十四页,共38页。USB设备-字符串描述符structStrDesc{ INT8U bLength; INT8U bType; INT16U wLang;}structUnicodeStr{ INT8U bLength; INT8U bType; INT8U UnicodeStr[];}SL811HID设备示例:{

0x04, 0x03, 0x0409 //English(USA)}{ 0x0F, 0x03, 'C',0,'y',0,'p',0,'r',0,'e',0,'s',0,'s',0};May8,200525第二十五页,共38页。USB命令结构bmRequestType(1Byte)-命令类型D7(数据传输方向):0-OUT,1-IND6..5(命令的类型)0-standard,1-class,3-factory,4-reservedD4..0(接收对象)0-device,1-interface,2-EP,3-others,4..31-reservedTokenDataHandshakebmRequestType控制传输设置阶段命令示例:May8,200526第二十六页,共38页。USB命令结构bRequest(1Byte)-命令编码标准命令集GET_STATUS-0,CLEAR_FEATURE-1,SET_FEATURE-3SET_ADDRESS-5,GET_DESCRIPTOR-6,GET_CONFIGURATION-8SET_CONFIGURATION-9,GET_INTERFACE-10,SET_INTERFACE-11非标准命令:Class和VendorTokenDataHandshakebRequest控制传输设置阶段命令示例:May8,200527第二十七页,共38页。USB命令结构wValue(2Bytes)-命令参数wIndex(2Bytes)-命令参数(索引或偏移)wLength(2Bytes)-如果有数据阶段,此字段为数据的字节数TokenDataHandshakewValuewIndexwLength控制传输设置阶段命令示例:May8,200528第二十八页,共38页。USB命令结构TokenDataHandshakeTokenDataHandshake控制传输状态阶段示例:控制传输数据阶段示例:May8,200529第二十九页,共38页。SL811HS嵌入式应用SL811HS特点完全兼容USB1.1规范通过软件设置,可支持USB主机或设备功能自动诊断设备类型(全速、低速设备)256字节片内缓存自动生成SOF、CRC5和CRC16可以支持两个端点USB-A、USB-B支持12MHz和48MHz两种晶振支持USB挂起/唤醒以及低功耗模式May8,200530第三十页,共38页。SL811HS结构根集线器及USB收发器USBSIESRAM及控制寄存器主/从模式控制中断控制CPU接口时钟模块D+D-时钟输入中断输出写操作读操作片选地址(A0)数据线(0~7)模式选择May8,200531第三十一页,共38页。SL811HSHID设备-软件设计读写操作模块SL811Read-读取SL811HS相关寄存器SL811Write-设置SL811HS相关寄存器SL811BufRead-读取SL811HS相关数据缓冲区SL811BufWrite-设置SL811HS相关数据缓冲区SL811S_Init-初始化SL811HS器件EP0_ISR-端点0中断处理模块EP1_ISR-端点1中断处理模块SOF_ISR-帧起始定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论