usb总线驱动粗略过程(OHCI协议)
usb总线驱动分类: kick_khubd hub_port_connect_change{ choose_address(udev)//分配地址,即编号 udev=usb_alloc_dev(hdev,hdev->bus,portl); dev->dev.bus=&usb_bus_type; } hub_port_init{ hub_set_address//把地址告诉usb设 usb_get_device_descriptor//获取描 usb_parse_confriguation//获取所有描 述符读出来并且解析 device_add//1.把设备放入(总线) usb_bus_type 的链表 ,从bus的driver链表里取出driver 2.把usb_interface and usb_driver s id_able 比较 3. 如果能够匹配,调用driver的probe函数。
UHCI: intel公司制作 适用于低速/全速设备
OHCI:microsoft 适用于低速/全速设备
EHCI: 高速设备(48M)
2410里面的usb总线驱动用的是OHCI_s3c2410
usb总线驱动作用:
1.识别设备
2.找到并安装对应的设备驱动
3.提供usb读写函数
工作流程:
1.识别usb设备(D+被拉高为1.1,D-被拉高为低速设备)
2.分配地址,并告诉usb设备
3.发出命令获取描述符
4.查找并安装对应的设备驱动程序。
函数过程如下(可参考《linux源代码情景分析一书》):
hub_irq
关键词: usb总线驱动OHCI协

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码