新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > usb總線驅(qū)動(dòng)粗略過程(OHCI協(xié)議)

        usb總線驅(qū)動(dòng)粗略過程(OHCI協(xié)議)

        作者: 時(shí)間:2016-12-15 來源:網(wǎng)絡(luò) 收藏
        usb總線驅(qū)動(dòng)分類:
        UHCI: intel公司制作 適用于低速/全速設(shè)備
        OHCI:microsoft 適用于低速/全速設(shè)備
        EHCI: 高速設(shè)備(48M)
        2410里面的usb總線驅(qū)動(dòng)用的是OHCI_s3c2410
        usb總線驅(qū)動(dòng)作用:
        1.識(shí)別設(shè)備
        2.找到并安裝對(duì)應(yīng)的設(shè)備驅(qū)動(dòng)
        3.提供usb讀寫函數(shù)
        工作流程:
        1.識(shí)別usb設(shè)備(D+被拉高為1.1,D-被拉高為低速設(shè)備)
        2.分配地址,并告訴usb設(shè)備
        3.發(fā)出命令獲取描述符
        4.查找并安裝對(duì)應(yīng)的設(shè)備驅(qū)動(dòng)程序。
        函數(shù)過程如下(可參考《linux源代碼情景分析一書》):
        hub_irq
        kick_khubd
        hub_port_connect_change{
        choose_address(udev)//分配地址,即編號(hào)
        udev=usb_alloc_dev(hdev,hdev->bus,portl);
        dev->dev.bus=&usb_bus_type;
        }
        hub_port_init{
        hub_set_address//把地址告訴usb設(shè)
        usb_get_device_descriptor//獲取描
        usb_parse_confriguation//獲取所有描 述符讀出來并且解析
        device_add//1.把設(shè)備放入(總線) usb_bus_type的鏈表 ,從bus的driver鏈表里取出driver 2.把usb_interface and usb_driver s id_able 比較
        3. 如果能夠匹配,調(diào)用driver的probe函數(shù)。


        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 会同县| 太康县| 旌德县| 商南县| 济宁市| 鹰潭市| 莫力| 陆良县| 台州市| 永春县| 平南县| 筠连县| 淄博市| 夏津县| 沾化县| 荆州市| 武宁县| 三明市| 桃园县| 巴中市| 诸城市| 宁国市| 都安| 邵阳市| 曲沃县| 来安县| 金山区| 板桥市| 安岳县| 手机| 四会市| 阿克苏市| 寿光市| 田东县| 观塘区| 扶余县| 桐乡市| 资源县| 隆昌县| 定日县| 红原县|