USB协议PPT
客户 软件
数据 IRPs
USBD 接口 HCD 接口
(1)客户软件把数据放入缓冲区,向USB 总线驱动程序USBD发出IRP(I/O请求包) (2)USBD响应客户软件发出的IRP,把数 据转换为具有USB格式的事务处理,向下传 (3)主控制器驱动器程序HCD为这些事务 处理建立一系列以帧/小帧为单位事务处理列 表,并保证不超过USB带宽 (4)主控制器读取事务处理列表,以信息包 为单位发送到USB总线,可为低,全,高速 (5)USB设备收到信息包后,由SIE自动解包 并放入指定端点的接收缓冲内,由芯片固件对 其处理
USB总线接口 USB电缆 逻辑数据传输 SIE 实际数据传输
事务处理 SIE 管道
NRZI编码
USB总线上传输的数据进行 NRZI编码,确保数据传输完整性。 不 需单独的时钟信号与数据一起发送,用电平的跳变表 “0”,无跳变表 “1”.用数据流中的跳变表同步信号,可保证发、收方的同步。 长 串1导致无电平跳变,引起接收失去同步信号 �使用位填充机制
USB层次星型总线拓扑结构
层次星型拓扑结构,可防止环形连接, 主控制器(根集线器)是结构起点以 hub为中心 每层都是功能设备到hub的点对点连接 最多7层(包括根层) 最多支持127个USB设备(包括根 集线器,去掉0端点) 除根集线器,最多5个HUB相连
在USB2.0系统中,高速集线器有一个特殊的作用:把全速 /低速 信号与高速信号隔开。 Hub下行端口允许直接连接全速 /低速USB设备,通信也仍是全 速/低速,hub与主控制器通信却始终是高速 下图描述了高速、全速、低速 USB设备的混合连接
管道
功能单元 管道
端点
USB系统详细描述
主机 客户软件 (管理一个接口) 一组管道 缓冲区 无USB格式 指定的 接口 端点 缺省控制管道0 每个端点 的数据 0 无USB格式 USB逻辑设备 (端点集合) 具有USB 格式 互连 USB设备 接口 X
功能单元 (接口集合)
USB系统软件 (管理软件) 传输 主控制器 具有USB 格式 USB总线接口 具有USB格式
USB主机:客户软件,系统软件,总线接口
(1)客户软件:
1.USB设备驱动软件 负责和USB系统软件进行接口。向USB总 线驱动程序发出I/O请求包(IRP)启动 一次数据传输,IN或OUT。根据数据方 向,提供空内存或数据。它并不知道USB 的串行传输机制 2.界面应用程序 和1进行接口,以操纵USB设备,向用户 提供可视化操作,最上层,只能看到USB 设备发送和接收的原始数据
例、设备描述符 struct _DEVICE_DESCRIPTOR_STRUCT { BYTE bLength; //设备描述符的字节数大小,为0x12 BYTE bDescriptorType; //描述符类型编号,为0x01 WORD bcdUSB; //USB版本号 BYTE bDeviceClass; //USB分配的设备类代码,0x01~0xfe为标准设备 类,0xff为厂商自定义类型 //0x00不是在设备描述符中定义的,如HID BYTE bDeviceSubClass; //usb分配的子类代码,同上,值由USB规 定和分配的 BYTE bDeviceProtocl; //USB分配的设备协议代码,同上 BYTE bMaxPacketSize0; //端点0的最大包的大小 WORD idVendor; //厂商编号 WORD idProduct; //产品编号 WORD bcdDevice; //设备出厂编号 BYTE iManufacturer; //描述厂商字符串的索引 BYTE iProduct; //描述产品字符串的索引 BYTE iSerialNumber; //描述设备序列号字符串的索引 BYTE bNumConfiguration; //可能的配置数量 } 返回
特点
1994年底由英特尔、康柏、 IBM、Microsoft等多家公司联合提出了 USB1.0。 与传统接口相比,优点: 1)热插拔。 2)即插即用。自动配置,外设接入,操作系统自动检测加载驱动 3)共享式接口。USB端口支持多个外设连接,采用 “菊花瓣”式连接方 式,通过USB集线器,一个 USB主控制器最多可连接 126个外设。 4)体积小。与RS232,并行接口等比较,更小且薄 5)节省系统资源。一个主控制器只需一根 IRQ和一些I/O地址空间 6)灵活。支持三种传输速率:低速 1.5Mb/s,全速12Mb/s,高速48Mb/s; 4种传输类型:块传输,同步传输,中断传输,控制传输。使得能适 合多种外设 7)低成本。功能强大,但组件和电缆并不贵 8)性能可靠。通过硬件设计和数据传输协议两方面保证可靠性 9)提供电源。 总线供电 自供电 10)向下兼容。低速外设连接在高速主机上时不影响高速外设速度
USBD
HCD
传输
事务处 理列表
事务处理 软/硬件
接口
主控制器
信息包 USB
信息包
USB事务处理是主机和 USB 设备间数据传输 基本单位, 由一系列具有特点格式的信 息包组成,如SETUP 包,ACK包。根据信息包的种 类,事务分三个阶段:
主机 同步 字段 同步 字段
USB2.0 协议概述
制作:周清海 导师:朱明程 徐渊
Email:464100513@qq.com
深圳大学 EDA中心
2010.09.01
提纲
� � � � � � � �
背景及特点 USB系统组成 通信流 信息包 事务处理 传输类型 差错控制 设备状态
背景 USB产生之前,外设与PC机通信通过各种接口来实现: ISA,PCI,PS/2,串行接口、并行接口等,存在很多缺陷: 1.非共享式 -->同一时间一个接口只能连接一个外设 ->无法满足大量外设 2.体积庞大 �不利于PC外设小型化 3.规格不一 �使用时要面对种类繁多的I/O扩展槽和外部 口,不方便 4.采用传统的I/O模式,映射为CPU的I/O地址并分配一个 IRQ(中断请求) �带来I/O地址冲突、所指定的IPQ被别的外设占用
设 备 配 置 配 置 接 口 接 口 接 口
接 口
抽象
端 点
端 点
端 点
端 点
端 点
端 点
端 点
端 点
USB设备架构
1.设备 代表一个USB设备,由一个或多个配置组成。一个USB设备,只能 有一个设备描述符。如果高速设备既用高速又用全速,则还须支持设备限 定描述符,以指出另一传输速率下设备总体信息。 2.配置 一个USB设备可包含一个或多个配置,如USB设备的低功耗模式和 高功耗模式分别对应一个配置 3.接口 一配置可含一个或多个接口,如一个光盘驱动器可含一个大容量存 储接口和音频接口,接口是一个端点的集合,每一接口必有一个接口描述符 4.端点 USB设备中实际物理单元,USB数据传输就是在主机和USB各端点 之间进行。端点一般由接口芯片提供,每端点都有唯一的端点号,传输方 向也是确定的。利用设备地址,端点号和传输方向可指定一个端点。端点 的特性决定了与主机通信的传输类型。如控制端点只能使用控制传输。 0号端点:特殊,有IN,OUT两个物理单元,但只有一个端点号0,只支持控 制传输,用作缺省控制管道,对逻辑设备进行配置。对 USB系统软件,它 在设备连接,上电,复位后就有效。但对客户软件,只在设备正确配置后才 可使用它。 非0端点:低速设备最多2个,全速/高速最多15个。无论系统软件还是客户 软件都必须在设备正确配置后才能使用非0端点。 下一页
帧/小帧N-1 SOF
EOF
帧/小帧N SOF
EOF
帧/小帧N+1 SOF
EOF
SOF
2.根集线器 为主机提供附加的USB端口,usb1.1:控制器和中继 器,USB2.0增加了事务处理翻译器
USB设备
为了正确描述USB设备的特性,USB提出了设备构架的概念。 认为,USB设备由一些配置,接口,端点组成 USB设备用各种描述符来说明其设备构架,包括设备描述 符,配置描述符,接口描述符,端点描述符,字符串描述符
USB应用范围和特性
速度 低速(LS) 交互设备 10~100kb/s 全速(FS) 电话、音频 500K~10Mb/s 高速(HS) 视频、磁盘 25~400Mb/s
应用
键盘、鼠标 输入笔 游戏外设
特性
价格低廉 易于使用 热插拔 可支持多种外设
ISBN PBX POTS 音频 视频 磁盘
(同上) 保证带宽 保证延时
管道 在USB系统的分层结构中,可以认为数据传输是在主机软件( USB系统软 件或客户软件)和USB设备的各个端点之间进行的,它们之间的连接称为 管道。是对主机和USB设备通信流的抽象,表示主机的数据缓冲区和USB 设备的端点之间存在逻辑数据传输,实际的传输是由USB总线接口层还完 成的。 流管道 不具USB定义的结构, 可用作 块传输,同步传输,中 断传输,单向 客户软件 主机 缓冲区 通信流 消息管道 USB定义的结构,保用作 控 制传输,双向,既支持IN传输,又支持 OUT传输,0号端点就是消息管道
事务处理 1 事务处理 2 事务处理 3
***
IRP中事务处理
2.USB主控制器驱动程序(HCD) 它的存在,使客户软件数据传输不必知道USB主控制器硬 件细节。HCD负责把USBD建立的事务处理安排在USB总 线上,方法是建立一系列事务处理列表。以帧/小帧为单 位,可包含一个或多个事务处理。 (如下图) 帧/小帧
Байду номын сангаас
USB系统分层
主机 互连 客户软件
USB设备
功能单元
功能层
USB系统软件
USB逻辑设备
USB设备层
USB总线接口 实际通信流
USB总线接口 逻辑通信流
USB总线接口层
终端用户看来,USB系统是USB设备到主机的简单连接,但对开发人员说, 这种连接可分为三个逻辑层:功能层,USB设备层,USB总线接口层,每一 层都由主机和USB设备不同功能模块组成。这种分层简化了USB通信机制。
事务处理1 令牌,数据,握手 事务处理2 令牌,数据,握手
事务处理列表
3.非USB主机软 件(可选)
USB主机:客户软件,系统软件,总线接口
(3)USB总线接口
1.主控制器 负责读取HCD建立的事务处理列表,并安排 在一系列长度为1ms的帧(全速)/125us小 帧(高速),发送到USB总线上低速在全速 环境实现,看不到帧 把带宽分成多 个帧,以SOF令牌开始,EOF状态结束。全 速,1ms发出SOF,高速125us. 除此,还负责对传输数据进行串行编解码, 差错控制等
(同上) 高带宽
USB系统组成
USB体系:主机host,设备devices,物理连接 interconnect三部分 主机:提供USB接口和接口管理功能的硬件、软件、 固件的复合体。PC机或OTG设备。一个USB系统 只能有一个主机。 设备:1.集线器HUB:扩展主机接口,设备可以通过 其接入主机;2.功能设备 物理连接:即USB电缆。USB使用差分信号传输数 据,全速/高速模式电缆必要外层屏蔽和铜漏线,且 差分数据线双绞。一条USB的传输线分别由地线、 电源线、D+、D-四条线构成,D+和D-是差分输入 线,它使用的是3.3V的电压(注与CMOS的5V电 平不同),而电源线和地线可向设备提供 5V电压, 最大电流为500mA
USB主机:客户软件,系统软件,总线接口
(2)USB系统软件 1.USB总线驱动程序(USBD) USB设备使用前,要初始化,称为USB设备的配置。在 该过程,USBD会检测设备特性,并与设备建立通信管道。 另外,USBD理解USB通信机制,当收到USB设备驱动程 序发来的IRPs,会把这些I/O请求的数据重新组织,使具 有USB特定格式—事务处理(如下图) IRP
原始数据 NRZI编码 011 0 10 1 000 1 00 11 0
总线 空闲 总线 空闲
位填充 避免NRZI丢失同步信号,每6个连续“1“后加一“0”,检测时,6 个连续“1”后的“0”抛掉 原始数据
同步字段 传输数据 填充位
位填充数据
同步字段
传输数据 6个连续的1
USB通信流
总线上,所有与设备功能单元的数据传输都是由客户软件启动, 经过主机USB系统软件与USB总线接口模块才能到过USB设备。