USB接口中既没有握手信号,也没有时钟信号,它是怎样进行通讯的呢?
咱们现已知道,传统的串行口、并行口经过握手信号进行通讯,这些接口一般经过握手信号来联络主机和外设。咱们也现已知道,通讯两边能够同步或异步两种办法进行通讯,两者最大的区别是,同步通讯接口中有时钟信号线。
USB接口运用很广。但是,USB接口中既没有握手信号,也没有时钟信号,它是怎样在主机与外设之间树立联络的呢?又是怎么交流数据的呢?为了深化了解USB接口的通讯进程,先介绍USB的硬件和软件结构。
从物理结构上,USB体系是一个星形结构。USB体系包括三类硬件设备: USB主机(USB HOST)、 USB设备(USB DEVICE)和USB集线器(USB HUB)。USB总线上的物理衔接是一个分层的星形拓扑,处于每个星形拓扑中心的是HUB集线器,在主机与HUB之间,HUB与HUB之间,HUB与设备之间都是点对点的衔接。
图1 USB拓扑结构
USB HOST对USB体系进行办理、每毫秒产生一帧数据、发送装备恳求对USB设备进行装备、办理和康复总线上的过错。 USB HUB用于设备扩展衔接,一切USB DEVICE都衔接在USB HUB的端口上。USB DEV%&&&&&%E接纳USB总线上的一切数据包,经过数据包的地址域来判别是不是发给自己的数据包:若地址不符,则简略地丢掉该数据包;若地址相符,则经过呼应USB HOST的数据包与USB HOST进行数据传输。
从逻辑结构上看,每个USB逻辑设备都直接与USB HOST进行数据传输。与传统接口以硬件手法完成握手的办法不同,USB接口运用“软握手”办法。
USB 的软握手机制是透过三个层次的驱动程序完成的,在这中心起到关键作用的是设备驱动程序,该程序在主机与设备之间树立起至少一个管道。管道有两种类型:流管道和音讯管道。其中有一个最重要的音讯管道是“缺省操控管道”,这个管道在设备一加电的时分就存在了,它供给设备的装备和状况等信息。主机与设备之间的联络便是经过音讯管道完成的。
图2 USB软件结构
协议栈驱动程序的首要作用是将设备与相应的设备驱动程序衔接起来。由于USB支撑的设备许多,而每个详细的设备都有自己对应的设备驱动程序。关于某一详细设备来说,运用哪个驱动来办理,就要由协议栈驱动程序经过读取设备描述符进行挑选。挑选好驱动程序之后,协议栈驱动程序还要给USB设备分配地址。
管道树立起来之后,数据的传输操控则由USB接口驱动程序担任完成了。在这里,主机占有肯定主导权,设备只能是“听指令行事”。设备产生事情时经过音讯管道报告给主机,主机乘机向设备发送指令,注册流管道,发送或接纳数据包。主机与设备之间以数据数据包的方法进行传送,明显这与网络上数据传输的办法相同,是一种异步数据传输形式。