微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > usb总线驱动粗略过程(OHCI协议)

usb总线驱动粗略过程(OHCI协议)

时间:12-15 来源:互联网 点击:
usb总线驱动分类:

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

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函数。

上一篇:CAN总线的局限
下一篇:ST-BUS总线协议

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top