微波EDA网,见证研发工程师的成长! 2025婵犵數濮撮惀澶愬级鎼存挸浜炬俊銈勭劍閸欏繘鏌i幋锝嗩棄缁炬儳娼¢弻鐔告綇閸撗呮殸缂備胶濯崹鍫曞蓟閵娾晜鍋嗛柛灞剧☉椤忥拷04闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈡晜閽樺缃曢梻浣虹帛閸旀洟骞栭銈囦笉妞ゆ牜鍋為悡銉╂煟閺囩偛鈧湱鈧熬鎷�05闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈡晝閳ь剛绮eΔ浣虹闁瑰瓨鐟ラ悘鈺冪磼閻欌偓閸ㄥ爼寮婚妸鈺傚亞闁稿本绋戦锟� 闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈠Χ閸屾矮澹曞┑顔结缚閸樠冣枍瀹ュ洠鍋撶憴鍕;闁告濞婇悰顕€宕堕澶嬫櫌婵犵數濮撮幊澶愬磻閹捐閿ゆ俊銈勮兌閸欏棝姊虹紒妯荤闁稿﹤婀遍埀顒佺啲閹凤拷闂傚倸鍊搁崐鎼佸磹閻戣姤鍤勯柤鍝ユ暩娴犳艾鈹戞幊閸婃鎱ㄧ€靛憡宕叉慨妞诲亾闁绘侗鍠涚粻娑樷槈濞嗘劖顏熼梻浣芥硶閸o箓骞忛敓锟�
首页 > 硬件设计 > 嵌入式设计 > 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