usb基础知识资料
2017-07-03 17:38
239 查看
usb massage storage协议
https://www.crifan.com/files/doc/docbook/usb_disk_driver/release/htmls/ch02_msc_basic.html https://wenku.baidu.com/view/015bf2b4bceb19e8b8f6bac5.html http://blog.sina.com.cn/s/blog_8bbf650701013mub.html http://blog.csdn.net/fudan_abc/article/details/5773563 http://blog.csdn.net/walkrainning/article/details/37886289
usb描述符详细含义
https://wenku.baidu.com/view/fa78edf2bceb19e8b9f6ba26.html
usb设备的识别流程
http://blog.csdn.net/myarrow/article/details/8286876
USB主机控制器host controler
• UHCI: Universal Host Controller Interface (通用主机控制接口, USB1.0/1.1)
• OHCI: Open Host Controller Interface (开放主机控制接口,USB1.0/1.1)
• EHCI: Enhanced Host Controller Interface (用于USB2.0高速设备的“增强主机控制接口”)
控制数据传输,设备永远不能主动发数据
主机控制器控制总线上包的传输, 使用1ms或125us的帧。在每帧的开始时,主机控制器产生一个帧开始包(SOF: Start of Frame)。SOF包用于同步帧的开始和跟踪帧的数目,每个包的传输都有一个状态阶段同(同步传输除外),数据接收者可以在其中返回ACK(应答接收),NAK(重试),STALL(错误条件)或什么也没有(混乱数据阶段,设备不可用或已经断开)。
usb设备的枚举过程
http://blog.csdn.net/myarrow/article/details/8270029
枚举
枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序
hub
hub负责检测设备的连接和断开,利用其中断IN端点(Interrupt
IN Endpoint)来向主机(Host)报告。在系统启动时,主机轮询它的根hub(Root Hub)的状态看是否有设备(包括子hub和子hub上的设备)连接
识别电路
hub端:D+/D-接一个下拉电阻Rpd(14.5到24.8k)
设备端:1.5k的上拉电阻Rpu
全速/高速:D+上拉电阻Rpu
低速 :D-上拉电阻Rpu
识别原理
当设备插入到hub端口时,有上拉电阻的一根数据线被拉高到幅值的90%的电压(大致是3V)。hub检测到它的一根数据线是高电平,就认为是有设备插入,并能根据是D+还是D-被拉高来判断到底是什么设备(全速/低速)插入端口
枚举过程
枚举试验数据 http://blog.csdn.net/myarrow/article/details/8270060
usb协议架构及驱动架构
http://blog.csdn.net/myarrow/article/details/8279156
当USB设备连接到集线器,集线器状态将发生相应的变化,并将状态变化信息传递给USB主机。USB主机通过根集线器向USB设备发送命令,获取USB设备的各种信息,包含USB设备传输类型、ID号、Product、USB速度等信息。
USB协议中共定义了以下四种描述符:
1) 设备描述符
2) 配置描述符
3) 接口描述符
4) 端点描述符
其关系如下图所示:
设备描述符:每个设备唯一
配置描述符
接口描述符
设备应至少支持一个接口,如:块传输数据接口,部分设备可能支持其它的接口。复合设备可以支持额外接口,以支持音频和视频功能。标准中并没有定义此类接口。接口可能有多个可选设置,主机将会检查每个可选的设置。
端点描述符
每个设备至少支持控制端点0。USB设备应该支持三类端点:控制端点、输入端点和输出端点。
usb通讯过程,有试验数据
http://blog.csdn.net/zhzht19861011/article/details/4948028
以usb设备插到电脑为例说明
usb上电 -> 从设备的USB一直不断地挂起和唤醒 -> 插到电脑,电脑发来数据包要求获取usb设备的描述
USB的设备描述符,描述了这个设备使用什么USB的协议版本,这里是1.1的版本,还有厂家标识、产品标识,以及厂家、产品和序列号等字符串的偏移地址
通过设备描述符,就可以让主控器知道这个设备是使用什么版本的USB协议,是高速的设备,还是低速的设备,是谁产生的,是什么产品,然后操作系统就可以通过这些信息去找到相应的驱动程序,如果操作系统没有找到相应的驱动程序,就会提示用户插入光盘,或者其它方来安装相应的驱动程序。
基本概念
一个【传输】(控制、批量、中断、等时):由多个【事务】组成;
一个【事务】(IN、OUT、SETUP):由一多个【Packet】组成。
USB数据在【主机软件】与【USB设备特定的端点】间被传输。【主机软件】与【USB设备特定的端点】间的关联叫做【pipes】。一个USB设备可以有多个管道(pipes)。
usb主机控制器:设备管理,ehci_hcd,uhci_hcd
hub:hub发起设备的初始化,rootHub(与主机控制器集成)
RS232传输协议
无数据传送时,数据线处于高电
平,等到有数据开始传送,发送方首先拉低数据线(start),表示数据传输开始,接受端也因为这个“start”信号
开始准备接受即将到来的数据,类似一次握手,随后,在两者之间的数据传送开始,结束后主方再次拉高数据
线,表示结束传输,自此两者重新进入Idle状态。等待下一轮传送开始
usb传输协议
假设D+,D-分别表示usb信号线的电平信号。那么对于usb full speed function
Data
J state:D+=1,D-=0;
Data K state:D+=0,D-=1;
SE0:D+=D-=0;
SE1:D+=D-=1;
这个对usb
full speed function来说,idle状态将处于Data J state,se0表示一桢结束
https://www.crifan.com/files/doc/docbook/usb_disk_driver/release/htmls/ch02_msc_basic.html https://wenku.baidu.com/view/015bf2b4bceb19e8b8f6bac5.html http://blog.sina.com.cn/s/blog_8bbf650701013mub.html http://blog.csdn.net/fudan_abc/article/details/5773563 http://blog.csdn.net/walkrainning/article/details/37886289
usb描述符详细含义
https://wenku.baidu.com/view/fa78edf2bceb19e8b9f6ba26.html
usb设备的识别流程
http://blog.csdn.net/myarrow/article/details/8286876
USB主机控制器host controler
• UHCI: Universal Host Controller Interface (通用主机控制接口, USB1.0/1.1)
• OHCI: Open Host Controller Interface (开放主机控制接口,USB1.0/1.1)
• EHCI: Enhanced Host Controller Interface (用于USB2.0高速设备的“增强主机控制接口”)
控制数据传输,设备永远不能主动发数据
主机控制器控制总线上包的传输, 使用1ms或125us的帧。在每帧的开始时,主机控制器产生一个帧开始包(SOF: Start of Frame)。SOF包用于同步帧的开始和跟踪帧的数目,每个包的传输都有一个状态阶段同(同步传输除外),数据接收者可以在其中返回ACK(应答接收),NAK(重试),STALL(错误条件)或什么也没有(混乱数据阶段,设备不可用或已经断开)。
usb设备的枚举过程
http://blog.csdn.net/myarrow/article/details/8270029
枚举
枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序
hub
hub负责检测设备的连接和断开,利用其中断IN端点(Interrupt
IN Endpoint)来向主机(Host)报告。在系统启动时,主机轮询它的根hub(Root Hub)的状态看是否有设备(包括子hub和子hub上的设备)连接
识别电路
hub端:D+/D-接一个下拉电阻Rpd(14.5到24.8k)
设备端:1.5k的上拉电阻Rpu
全速/高速:D+上拉电阻Rpu
低速 :D-上拉电阻Rpu
识别原理
当设备插入到hub端口时,有上拉电阻的一根数据线被拉高到幅值的90%的电压(大致是3V)。hub检测到它的一根数据线是高电平,就认为是有设备插入,并能根据是D+还是D-被拉高来判断到底是什么设备(全速/低速)插入端口
枚举过程
枚举试验数据 http://blog.csdn.net/myarrow/article/details/8270060
usb协议架构及驱动架构
http://blog.csdn.net/myarrow/article/details/8279156
当USB设备连接到集线器,集线器状态将发生相应的变化,并将状态变化信息传递给USB主机。USB主机通过根集线器向USB设备发送命令,获取USB设备的各种信息,包含USB设备传输类型、ID号、Product、USB速度等信息。
主机和设备之间通信模型
USB协议中共定义了以下四种描述符:
1) 设备描述符
2) 配置描述符
3) 接口描述符
4) 端点描述符
其关系如下图所示:
设备描述符:每个设备唯一
配置描述符
接口描述符
设备应至少支持一个接口,如:块传输数据接口,部分设备可能支持其它的接口。复合设备可以支持额外接口,以支持音频和视频功能。标准中并没有定义此类接口。接口可能有多个可选设置,主机将会检查每个可选的设置。
端点描述符
每个设备至少支持控制端点0。USB设备应该支持三类端点:控制端点、输入端点和输出端点。
usb通讯过程,有试验数据
http://blog.csdn.net/zhzht19861011/article/details/4948028
以usb设备插到电脑为例说明
usb上电 -> 从设备的USB一直不断地挂起和唤醒 -> 插到电脑,电脑发来数据包要求获取usb设备的描述
USB的设备描述符,描述了这个设备使用什么USB的协议版本,这里是1.1的版本,还有厂家标识、产品标识,以及厂家、产品和序列号等字符串的偏移地址
通过设备描述符,就可以让主控器知道这个设备是使用什么版本的USB协议,是高速的设备,还是低速的设备,是谁产生的,是什么产品,然后操作系统就可以通过这些信息去找到相应的驱动程序,如果操作系统没有找到相应的驱动程序,就会提示用户插入光盘,或者其它方来安装相应的驱动程序。
基本概念
一个【传输】(控制、批量、中断、等时):由多个【事务】组成;
一个【事务】(IN、OUT、SETUP):由一多个【Packet】组成。
USB数据在【主机软件】与【USB设备特定的端点】间被传输。【主机软件】与【USB设备特定的端点】间的关联叫做【pipes】。一个USB设备可以有多个管道(pipes)。
usb主机控制器:设备管理,ehci_hcd,uhci_hcd
hub:hub发起设备的初始化,rootHub(与主机控制器集成)
RS232传输协议
无数据传送时,数据线处于高电
平,等到有数据开始传送,发送方首先拉低数据线(start),表示数据传输开始,接受端也因为这个“start”信号
开始准备接受即将到来的数据,类似一次握手,随后,在两者之间的数据传送开始,结束后主方再次拉高数据
线,表示结束传输,自此两者重新进入Idle状态。等待下一轮传送开始
usb传输协议
假设D+,D-分别表示usb信号线的电平信号。那么对于usb full speed function
Data
J state:D+=1,D-=0;
Data K state:D+=0,D-=1;
SE0:D+=D-=0;
SE1:D+=D-=1;
这个对usb
full speed function来说,idle状态将处于Data J state,se0表示一桢结束
相关文章推荐
- VOIP培训资料之基础知识和技术演进篇
- Linux 基础知识,常用资料,命令
- Windows CE下USB设备驱动开发的一些基础知识
- USB基础知识1:USB各型插座插头封装引脚分布
- USB基础知识1:USB各型插座插头封装引脚分布
- VOIP培训资料之基础知识和技术演进篇
- USB基础知识问答
- Windows CE下USB设备驱动开发的一些基础知识
- USB基础知识(转)
- USB基础知识
- 资料:数据恢复知识基础
- Java基础知识资料整理
- 转载:USB基础知识
- Windows CE下USB设备驱动开发的一些基础知识
- Windows CE下USB设备驱动开发的一些基础知识
- USB基础知识(中)
- Java基础知识资料整理
- usb基础知识
- Windows CE下USB设备驱动开发的一些基础知识(转)
- USB基础知识介绍(来源于国嵌)