易截截图软件、单文件、免安装、纯绿色、仅160KB

LINUX下USB1.1设备学习小记(2)_协议


LINUX下USB1.1设备学习小记(2)_协议
 
 
USB协议:
先看USB接口
可以看出,在USB使用了4根线,分别为电源线,地线,信号线和差分信号线
差分信号线用于检测信号线的传输是否正确
下面我们只关注信号线
然后是USB的串口传输
在串口传输中,由于所有的信号共用一根数据线,所以不仅有先来后到的问题,而且在一个设备和另一个设备进行通信的时候,如果别的设备也进来插一脚,就会导致信号的出错,所以这个时候需要一个管理者,他说好,A设备和我通信,A设备才和管理者通信,通信完成后,管理者说现在到B设备和我通信,A设备你歇一歇,于是B设备才能和管理者通信
在USB协议中,这个管理者称为host,在一个usb组成的括扑中只能存在一个管理者,也就是一个host
任何传输都是由host发起的,设备不能说host你注意了,我要和你通信这样
所以host是一个十分霸道的管理者 = 3=
呢host又如何发起于其它设备的通信呢?
现在介绍一下通信规范
在USB的通信中,分为4个大类
1. 控制传输
控制传输用于对设备的控制访问
2.中断传输
中断传输用于按一定的时间间隔访问设备(例如鼠标 键盘等)
3.等时传输
等时传输用于高流量的无间隔访问设备(视频 音频等)
4.块传输
块传输用于对流量的,对时间要求不高的设备(U盘 移动硬盘等)
这4大类由4种事务组成
1. IN事务
IN事务为host输入服务,当host需要从设备获得数据的时候,就需要in事务
2. OUT事务
OUT事务为host输出服务,host需要输出数据到设备的时候,就需要out事务
3. SETUP事务
SETUP事务为host控制服务,当host希望传输一些USB规范的默认操作的时候
就需要使用setup事务
4. SOF事务
这个规范上是写用于帧同步,但我没接触过SOF事务,所以也说不明白实际用途 Orz
然后这4个事务又由3种包构成
1. 令牌包
令牌包用于指明一次事务的类型
2. 数据包
数据包用于事务中数据的传输
3. 应答包
应答包用于事务传输完成的握手
令牌包由4种包组成
1. in包
in包用于指明当前的事务为in类型
2. out包
out包指明当前事务为out类型
3. setup包
setup包指明当前事务为setup类型
4. sof包
sof包指明当前事务为sof类型
数据包由2种包组成,在usb的数据传输中,每个事务的数据包的类型需要反转data0,data1,data0,data1......这样的顺序发送下去,以确保数据的完整性
1. data0包
该数据包的类型为0
2. data1包
该数据包的类型为1
应答包由3种握手包组成
1. ack包
ack握手包指明当前事务的数据包传输是成功


相关文档:

VPS使用手记 Unix/Linux管理工具Webmin

Written by shine
on 2009, April 23, 12:29 PM. Linux
Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前 Webmin支持绝大多数的Unix系统,这些系统除了各种版本的linux
以为还包括:AIX、HPUX、Solaris、Unixware、Irix 和FreeBSD等。
Webmin ......

VPS使用手记 Linux命令行基础

VPS使用手记-Linux命令行基础
Written by shine
on 2009, April 21, 4:09 PM. Linux
这里我将列出使用linux
vps
过程中的常用命令,面向的对象是懂一点命令行
的朋友,如果你没有任何命令行基础,建议找本Linux的基础教程来看看。
在讲具体的命令之前,先介绍一下Linux命令行的一些常识:
一条命令一般的格式是这 ......

Linux下python lxml模块的安装

需要先安装libxml2-devel libxslt-devel这两个rpm包,如果使用非root用户安装,可以下载libxml2和libxslt的源代码进行安装。 libxml2-devel、libxslt-devel装好后,解压lxml的包,切换到这个包的路径。
加入CFLAGS进行编译和安装,在shell下依次输入如下命令: CFLAGS=-I/usr/include/libxml2:/usr/include/libxslt/ ......

一步到位设置Linux系统时间

       咱就说说linux怎么一步到位设置系统时间。拿linux虚拟机做实验的朋友会知道。当你把linux还原到某个点的时候,vmware帮不了你把系统时间也给重设了。所以这时候就要手工来搞。关于咋设linux时间。网上介绍也很多,但是都是抄来抄去的东西。那怎么才能高效快捷的设置系统时间呢?
&nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号