原创kylin_zeng: http://blog.sina.com.cn/u/2312748742
arm板usb接口分别作为host和slave设备示例
linux usb系统:
host:主控器有三种:ohci,uhci,ehci
usb协议软件层次如下所示:
例:arm板当作host时两个实例 一、u盘, 二、鼠标:
一、u盘
如 mass storage:存储介质,如硬盘,u盘等等。
u盘为例插入arm板中,arm板当作host,内核配置:
1)配置热插拔。
2)u盘会被认成scsi设备,故把scsi设备支持选上
3)主控器驱动,和 usb设备驱动
4)文件系统。u盘可以是window下的文件系统,因此也要选上。
5)插入u盘挂载下就可以用了。
二、usb HID:
usb HID: usb human interface device,如:键盘,鼠标,游戏手柄等。
鼠标:
1)usb主控制器驱动
2)usb设备驱动
加载后在 /dev/mouse0里面。
************************************************************************************
Arm板当作slave时两个实例 一、网卡 NDIS, 二、串口:
一、NDIS: network devices on dynamic plug ,网卡(e_ther.ko)
作为slave它需要选择usb控制器驱动和gadget api驱动。
1)usb设备控制器驱动 udc驱动
2)1)usb网卡驱动:
将arm usb slave连接pc电脑,并装载驱动。
ifconfig usb0 192.168.30.1 ,设置pc电脑192.168.30.4
二、CDC/ACM:communications device class,abstract control model,即模拟成串口。
1)
2)
3)加载g_serial.ko会增加 /dev/ttyGS0.
连接到pc上,加载pc window的驱动。在开一个超级终端,在arm上输入 echo hello > /dev/ttyGS0,即可在pc超级终端看到通信。
usb类有:
音频类(audio),通信类-虚拟串口类(cdc),设备固件升级类(dfu),人类接口类(hid),大容量存储设备类(mass storage),智能卡接口设备类(ccid),图像类(image),irda桥接设备类(irda bridge),监视设备类(monitor),个人保健设备类(personal health care),电源设备类(power device ),物理接口设备类(physical interface),打印设备类(printer),视频类(video),测试测量类(test &measurement)