把包作为基础,USB界定了四种数据的传输类型:控制传输、中断传输、批量传输和同步传输。由包按照某种特定的格式组成每一种类型。不同的传输类型的最大传输速度、占用USB总线的带宽、传输数据的总量和应用场合等都是不同的。传输是一种较为笼统的说法,在现实的数据传输过程中,往往还要分为多个数据交换过程,每一次的数据交换过程既不能叫做某个传输,也不是包,而是另一个重要的概念——处理事务。多个处理事务完成每一种传输方式,底层包组成了每一笔处理事务。域、包、处理事务和传输的关系就是实现USB通信的过程。
为了细化USB的通信机制,分层的概念被USB协议的开发者所采用,每一层传输的数据结构相对于其他逻辑层是透明的,为了更好的理解USB协议,在逻辑上USB通信分成了三层:信号层、协议层和数据传输层。信号层用来实现在USB设备和主机的物理连接之间传输位信息流的信息。协议层用来实现USB设备和USB主机端的系统协议软件之间传输包字节流的信息,它们在信号层被编码成NRZI位信息后传送出去。数据传输层用来实现在USB主机端的客户端驱动程序和设备端的功能接口之间传输有一定意义的信息,这些信息在协议层被打包成包格式。协议将信号层传输的位信息流称为包,将协议层传输的包信息流称为处理事务,将数据传输层传输的信息流称为传输。所有的传输最终都以比特流的方式在信号层上实现通信。
2.1.1数据传输类型源Y自Z优尔W.论~文'网·www.youerw.com
USB的传输,是USB面向用户的最高级的数据结构。USB定义了四种数据传输类型,即控制传输、中断传输、批量传输和同步传输,用以完成各种类型的数据传输。
处理事务和传输的关系是核心。传输是由一个或多个处理事务组成的,而处理事务按照其特点分为三种类型:输入(In)处理事务、输出(Out)处理事务和设置(Setup)处理事务。任何一种传输都是由这三种处理事务组成,不同的只是这三种处理事务的组合和搭配情况。
中断传输由In处理事务或Out处理事务组成,主要用于如鼠标、键盘等自ID设备的数据传输中。中断传输中,“中断”的概念并不等同于PC系统中硬件设备的中断,USB主机是以周期性的方式对设备进行轮询,以确定设备是否有数据发送。中断传输没有固定的传输速率,低速、全速和高速设备均支持中断传输,只是对传送的数据包的大小要求不同。
批量传输由In处理事务或Out处理事务组成,主要用于大容量数据的传输中,如硬盘、光盘刻录机及数码相机等。批量传输对传输速率和宽带没有固定的要求,当总线“忙”时,USB会优先考虑其他类型的数据传输,而暂停批量传输。低速设备不支持批量传输,只有全速和高速设备才支持批量传输。
同步传输由In处理事务或Out处理事务组成,主要用于音频流恒定传输速率的数据传输中,如音箱、显示器和摄像头等设备。同步传输讲究的是数据传输速率的恒定,而对数据的准确性的要求不如批量传输严格。所以,同步传输中没有握手包,不对发送错误的数据进行重试。需要说明的是,与中断传输和批量传输不同的是,对于全速设备,同步传输不支持数据包的交替触发机制,只能以Data0发送。而高速设备在一定条件下支持触发机制,由于情况复杂,不予讨论。低速设备不支持同步传输,只有全速和高速设备才支持同步传输。
控制传输是最复杂、最重要的传输类型,也是USB枚举阶段最主要的数据交换方式。当USB设备初次连接到主机之后,主机通过控制传输来交换信息、设备地址和读取设备的描述符来识别该设备,并安装相应的驱动程序,在此基础之上其余三种可能的传输方式才能够使用。