一:Linux USB驱动介绍
1:USB驱动简介
USB采用树形拓扑结构,主机侧和设备侧的USB控制器分别称为主机控制器(Host)和USB设备控制器(UDC),每条总线上只要一个主机控制器,负责协调主机和设备间的通讯,而设备不能主动向主机发送任何信息。
从主机侧观察,在Linux驱动中,处于USB驱动的最底层的时USB主机控制器硬件,在其上运行的时USB主机控制器驱动,在主机控制器上的为USB核心层,再上层为USB设备驱动层(U盘,鼠标,键盘,USB转串口等设备驱动)。因此,在主机侧的层次结构中,要实现的USB驱动包括两类:USB主机控制器驱动和USB设备驱动,前者控制插入其中的USB设备,后者控制USB设备如何与主机通讯。Linux内核中的USB核心负责USB驱动管理和协议处理的主要工作。主机控制器驱动和设备驱动之间的USB核心非常重要,其功能包括:通过定义一些数据结构,宏和功能函数,向上为设备驱动提供编程接口,向下为USB主机控制器驱动提供编程接口;维护整个系统的USB设备信息;完成设备热插拔控制,总线数据传输控制等。
USB设备热插拔的硬件原理:
&nb