usb总线和pci总线一样,总线的作用都是提供通道,各种设备利用总线通道来实现自己的功能。
USB OTG接口中有5条线: 2条用来传送数据(D+ 、D-); 1条是电源线(VBUS); 1条则是接地线(GND)、1条是ID线。
基于通用连接技术,实现外设的简单快速连接,达到方便用户、降低成本、扩展PC连接外设范围的目的。它可以为外设提供电源,而不像普通的使用串、并口的设备需要单独的供电系统。另外,快速是USB技术的突出特点之一,USB的最高传输率可达12Mbps比串口快100倍,比并口快近10倍,而且USB还能支持多媒体。
每一个USB设备接入PC时,USB总线驱动程序都会给它分配一个编号,接在USB总线上的每一个USB设备都有自己的编号(地址)。PC机想访问某个USB设备时,发出的命令都含有对应的编号(地址)。
usb通讯的基本单位就是端点,0号端点是控制用的,其他还有哪些端点是从0号端点中读出的配置信息知晓的。
USB传输速度有:低速1.5Mbps(USB1.0协议)、全速12Mbps(USB1.1协议)、高速480Mbps(USB2.0协议)和超高速5Gbps(USB3.0协议)。
linux usb
usb的驱动结构层次:最底层是usb控制器驱动HCD(Host Controller Driver),负责操作usb host;中间一层是usb核心层,usb根据hcd提供的接口实现usb总线通用层,向下配置初始化设备,向上提供endpoint(端口)等级的操作接口;最上一层是usb功能性驱动,根据usb总线层提供的endpoint通讯能力,实现具体的业务,比如usb磁盘驱动、usb声卡驱动、usb网卡驱动等等。
主机侧来看
usb主控制器--->usb主控制器驱动--->usb核心层--->usb设备驱动(插入主机的u盘、鼠标等设备驱动)
usb主控制器驱动和usb设备驱动。前者控制插入其中的usb设备,后者控制usb设备与主机通信。他们之间的usb核心负责usb驱动管理和协议处理的工作,向上上下都可以提供编程接口。
设备侧来看
最底层是usb设备控制器(UDC),一条usb总线上只能有一个usb主控制器,但可以有多个usb设备控制器。其上运行UDC驱动,再往上是一个接口层,其功能就相当于usb核心,向上向下口可以提供接口,然后是gadget驱动。