1 / 100

USB1.1协议及 S3C2410 USB device实验

USB1.1协议及 S3C2410 USB device实验. 议程. 实验目的 USB 体系结构 实验原理 实验步骤 问题与讨论. 实验目的. 通过实验了解 USB 协议 通过实验了解 S3C2410 处理器的 USB device 及原理 掌握 ARM 处理器 USB 通信的编程方法. USB 体系结构. USB 简介 USB 1.1 协议介绍 USB 标准命令 USB 设备的状态机 USB 总线的枚举. USB 简介. USB 特性 USB 传输速度 USB 软件驱动 USB 基本组件介绍. USB 简介. USB 特性

Download Presentation

USB1.1协议及 S3C2410 USB device实验

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. USB1.1协议及S3C2410 USB device实验

  2. 议程 • 实验目的 • USB体系结构 • 实验原理 • 实验步骤 • 问题与讨论

  3. 实验目的 通过实验了解USB协议 通过实验了解S3C2410处理器的USB device及原理 掌握ARM处理器USB通信的编程方法

  4. USB体系结构 • USB 简介 • USB 1.1协议介绍 • USB 标准命令 • USB 设备的状态机 • USB 总线的枚举

  5. USB简介 • USB特性 • USB传输速度 • USB软件驱动 • USB基本组件介绍

  6. USB简介 • USB特性 • 数据传输容错性强 • 接口简单(+5V,D+,D-,GND) • 设备可自动检测,驱动和配置 • 系统总线供电(<=500mA) • 低功耗设计(符合EPA) • 使用方便---热拔插,即插即用(PNP) • 扩展方便,成本低

  7. USB简介 • USB传输速度 • USB 1.0---1.5Mb/S(低速) • USB 1.1---12Mb/S(全速) • USB 2.0---480Mb/s(高速) • 补充: • USB 1.1与USB 2.0已经被重新命名。原先的USB 1.1改成了USB 2.0 Full-Speed(全速版),同时原有的USB 2.0改成了USB 2.0 High-Speed(高速版)

  8. USB简介 • USB软件驱动 • 要完成USB驱动程序设计,就必须要了解USB的基本协议规范和相关设备的USB协议规范。由于是基于协议,因此驱动程序的设计工作量、复杂度较串/并口大的多,(特别是USB主机端,要实现总线驱动、带宽管理、设备枚举等等工作,其软件设计的复杂性更高) • Intel-UHCI(Universal Host Control Interface)-------PC • Microsoft-OHCI(Open Host Control Interface)-----嵌入式 • EHCI(Enhanced Host Control Interface)-USB2.0

  9. USB 的电缆 USB简介 • USB基本组件介绍 • USB主机(Host) • USB连线(Line) • USB集线器(Hub) • USB功能部件(Device) 典型集线器

  10. USB 1.1协议介绍 • USB通信原理 • USB拓扑结构 • USB数据传输类型 • 协议提供的属性 • 传输的基本单元---包 • 帧

  11. USB主机 数据传输层 接口 (Interface) USB 协议层 端口 (Endpoint) 设 备 信号层 USB总线接口 (接口) USB 1.1协议介绍 • USB通信原理

  12. USB 1.1协议介绍 • USB通信原理 • USB通信逻辑上分成了三层: • 信号层(物理层): • 传输位信息流 • 协议层 • 解析位信息流 • 数据传输层 • 应用驱动(API)

  13. USB 1.1协议介绍 • USB通信原理

  14. USB 1.1协议介绍 • USB拓扑结构 • 分层的星型结构 • 集线器可扩展至6层 • 主机可与分层的设备直接通信

  15. USB 1.1协议介绍 • USB数据传输类型 • 实时传输(Isochronous Transfer) • 中断传输(Interrupt Transfer) • 控制传输(Control Transfer) • 批量传输(Bulk Transfer)

  16. USB 1.1协议介绍 • USB数据传输类型 • 实时传输(Isochronous Transfer) • 完成实时数据传输,允许一定的数据出错率 • 设备与主机以恒定的速率传输 • 周期性数据传输方式 • 省去了数据重传、出错检验 • 不可靠的数据传输方式 如:USB声卡、摄像头等

  17. USB 1.1协议介绍 • USB数据传输类型 • 中断传输(Interrupt Transfer) • 主机响应中断的方式传输 • 主机要为设备设置中断向量 • 数据传输数量少 • 可靠的数据传输方式 如:键盘、鼠标、触摸屏等

  18. USB 1.1协议介绍 • USB数据传输类型 • 控制传输(Control Transfer) • USB协议中唯一传输USB命令函数的传输类型 • 所有的USB设备都必须支持控制传输 • 传输优先级高 • 传输管道是双向的 • 可靠的、非周期性的数据传输方式 注:配置、查询设备的数据传输

  19. USB 1.1协议介绍 • USB数据传输类型 • 批量传输(Bulk Transfer) • 大容量存储设备(HDD,DV) • 占用总线空闲带宽来传输数据,优先机低 • 非周期性的数据传输方式 • 可靠的数据传输方式 如:打印机、扫描仪、光驱、硬盘

  20. USB 1.1协议介绍 • 协议提供的属性 • 描述符(Descriptor) • 类(Class) • 功能(Function)/接口(Interface) • 端点(Endpoint) • 管道(Pipe) • 设备地址(Device Address)

  21. USB 1.1协议介绍 • 协议提供的属性 • 描述符(Descriptor) • 设备描述符(Device Descriptor) • 配置描述符(Configuration Descriptor) • 接口描述符(Interface Descriptor) • 端点描述符(Endpoint Descriptor) • 字符串描述符(String Descriptor)

  22. USB 1.1协议介绍 • 协议提供的属性 • 描述符(Descriptor) • 设备描述符(Device Descriptor) • 包含USB设备的一般信息(起全程作用) • 包含有14个字段 • 分为描述符公有信息、设备的产品信息和配置信息3类 • 注:主机第一个读取的描述符

  23. USB 1.1协议介绍 • 设备描述符定义 struct USB_DEVICE_DESCRIPTOR { unsigned char bLength; // 字节长度 unsigned char bDescriptorType; // 描述符类型 unsigned short bcdUSB; // 设备支持的协议版本号 unsigned char bDeviceClass; // 设备类型 unsigned char bDeviceSubClass; // 设备子类型 unsigned char bDeviceProtocol; // 协议码 unsigned char bMaxPacketSize0; // 端点0最大包长度 unsigned short idVendor; // 厂商ID unsigned short idProduct; // 产品ID unsigned short bcdDevice; // 设备发行号 unsigned char iManufacturer; // 厂商信息索引 unsigned char iSerialNumber; // 设备系列号索引 unsigned char iProduct; // 产品信息索引 unsigned char bNumConfigurations; // 配置描述符数目 }

  24. USB 1.1协议介绍 • 协议提供的属性 • 描述符(Descriptor) • 配置描述符(Configuration Descriptor) • 每个配置描述符提供了设备特定的配置 • 设备描述符可以包含一个或多个配置描述符 • 任何时刻只有一种配置处于工作状态

  25. USB 1.1协议介绍 • 配置描述符定义 struct USB_CONFIGURATION_DESCRIPTOR { unsigned char bLength; // 描述符字节长度 unsigned char bDescriptorType; // 描述符类型 unsigned short wTotalLength; // 描述符总长度 unsigned char bNumInterfaces; // 此配置下的接口数目 unsigned char bConfigurationValue; // 此配置的索引值 unsigned char iConfiguration; // 此配置的描述字符串索引值 unsigned char bmAttributes; // 位图信息 unsigned char MaxPower; // 此配置的最大所需电流值 }

  26. USB 1.1协议介绍 • 协议提供的属性 • 描述符(Descriptor) • 接口描述符(Interface Descriptor) • 描述设备不同接口的特性 • 每个接口有自己独立的类号、子类号和协议号

  27. USB 1.1协议介绍 • 接口描述符定义 struct USB_INTERFACE_DESCRIPTOR { unsigned char bLength; // 描述符字节长度 unsigned char bDescriptorType; // 描述符类型 unsigned char bInterfaceNumber; // 接口号 unsigned char bAlternateSetting; // 可选设置的索引号 unsigned char bNumEndpoints; // 此接口所包含的端点数 unsigned char bInterfaceClass; // 接口所属类别 unsigned char bInterfaceSubClass; // 接口所属子类别 unsigned char bInterfaceProtocol; // 接口协议号 unsigned char iInterface; // 接口字符串索引值 };

  28. USB 1.1协议介绍 • 协议提供的属性 • 描述符(Descriptor) • 端点描述符(Endpoint Descriptor) • 描述端点的属性 • 端点即是传输中的数据访问点(SAP) • 每个设备必须有一个默认的控制端点---端点0

  29. USB 1.1协议介绍 • 端点描述符定义 struct USB_ENDPOINT_DESCRIPTOR { unsigned char bLength; // 描述符字节长度 unsigned char bDescriptorType; // 描述符类别 unsigned char bEndpointAddress; // 端点地址方向 unsigned char bmAttributes; // 端点传输类型 unsigned short wMaxPacketSize; // 收/发最大数据包字节数 unsigned char bInterval; // 数据传输间隙-1mS }

  30. USB 1.1协议介绍 • 协议提供的属性 • 描述符(Descriptor) • 字符串描述符(String Descriptor) • 可选的USB标准描述符 • 用于描述如:制造商,设备名称和序列号等 • 使用Unicode编码,支持多语言

  31. USB 1.1协议介绍 • 字符串描述符定义 struct USB_STRING_DESCRIPTOR { unsigned char bLength; // 描述符字节长度 unsigned char bDescriptorType; // 描述符类别 unsigned char bString[1]; // 描述符字符串 …… };

  32. USB 1.1协议介绍 • 协议提供的属性 • 类(Class) • 语音设备类(Audio) • 通信设备类(Communications) • 人机接口类(HID) • 打印机类(Print) • 大容量存储类(Mass-Storage) • HUB设备类 • …… 注:提供类似驱动程序驱动大多数设备

  33. USB 1.1协议介绍 • 协议提供的属性 • 功能(Function)/接口(Interface) • 功能---具有某中能力的设备 • 接口---从硬件角度来定义的

  34. USB 1.1协议介绍 • 协议提供的属性 • 端点(Endpoint) • 设备与主机通信的基本单元 • 与网络协议中的SAP(服务访问点)类似 • 一个设备允许有多个端点 • 每个端点只有一种传输方式(单向性) • 双向通信要一收一发两个端点 注:控制传输端点支持数据的双向传输

  35. USB 1.1协议介绍 • 协议提供的属性 • 管道(Pipe) • 设备与主机通信的逻辑通道 • 物理介质是USB数据线 • 主体是端点 • 每个端点占据各自的管道与主机通信 注:控制传输端点支持数据的双向传输

  36. USB 1.1协议介绍 • 协议提供的属性 • 设备地址(Device Address) • 主机通过地址来区分设备 • 设备地址共有7位(127个设备)线 • “0”地址公用(刚链接新设备) 注:控制传输端点支持数据的双向传输

  37. USB 1.1协议介绍 • 传输的基本单元---包 • 包(Packet)是USB系统中信息传输的基本单元 • 所有数据都是打包后再在总线上传输 • 包的组成 • 同步字段(SYNC) • 包标志符(PID) • 数据字段(DATA) • 循环冗余校验字段(CRC) • 包结尾字段(EOP)

  38. USB 1.1协议介绍 • 传输的基本单元---包 • 包的组成 • 同步字段(SYNC) • 任何类型的USB包都必须以同步字段起始 • 用于数据包同步,由8个数据位组成 • 编码为 00000001

  39. USB 1.1协议介绍 • 传输的基本单元---包 • 包的组成 • 包标志符(PID) • USB包类型的唯一标志 • USB包的必要组成部分(第二个字节为PID) • 一字节长(4位包类型字段和4位校验字段)

  40. USB 1.1协议介绍 • 传输的基本单元---包 • 包的组成 • 数据字段(DATA) • 主机与设备之间要传递的信息 • 包含设备地址、端点号、帧序列号和数据等 • 以Little Endian的方式存在

  41. USB 1.1协议介绍 • 传输的基本单元---包 • 包的组成 • 循环冗余校验字段(CRC) • 对包中的数据信息进行错误保护 • 以数据字段存在而存在 • 只存在于数据包和令牌包中 • 数据CRC和令牌CRC

  42. USB 1.1协议介绍 • 传输的基本单元---包 • 包的组成 • 包结尾字段(EOP) • 主机和设备根据它来判断包的结束

  43. USB 1.1协议介绍 • 传输的基本单元---包 • 包的类型 • 令牌包(Token Packet) • 起始令牌包(SOF)-表示帧的起始 • 设置令牌包(SETUP)-控制传输的设置 • 输入令牌包(IN)-主机接受 • 输出令牌包(OUT)-主机发送

  44. USB 1.1协议介绍 • 传输的基本单元---包 • 包的类型 • 握手包(Handshake Packet) • 应答(ACK) • 无应答(NAK) • 终止(STALL)

  45. USB 1.1协议介绍 • 传输的基本单元---包 • 包的类型 • 前导包(Preamble Packet) • 区分全速设备和低速设备

  46. USB 1.1协议介绍 • 帧(Frame) • 从时间上看一帧为1mS • 数据传输都是以一个个帧为单位的 • 一帧的数据长度为12000比特(12Mb/S)=1500Byte • 数据不能占满整个帧长的主机自动添上空闲位

  47. USB标准命令 • 为了更好的协调主机与不同设备之间的通信,USB规范定义了一套命令,用于完成主机对总线上所有设备的统一控制。 • USB标准命令特点 • USB命令的结构 • USB部分命令说明

  48. USB标准命令 • USB标准命令特点 • 所有的命令结构是一样的(8字节长) • 在控制传输的设置阶段由主机发往设备 • 设置信息随命令一起由主机发出 • 要求返回的的设备信息在控制传输的数据阶段从设备发回给主机 • 当命令执行完后,设备会在握手阶段返回ACK • 当设备不支持当前命令或命令无效时,设备返回STALL信息

  49. USB标准命令 • USB命令的结构 • 所有的命令都要求有统一的格式 • bmRequestType // 定义命令的类型 • bRequest // 命令的编码值 • wValue // *命令不同,含义不同 • wIndex // *命令不同,含义不同 • wLength // 要传输的字长

  50. USB标准命令 • USB部分命令说明 • Get_Configuration • Get_Descriptor • Get_Interface • Get_Status • Clear_Feature • Synch_Frame • Set_Configuration • Set_Descriptor • Set_Interface • Set_Address • Set_Feature • …………

More Related