0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深入了解USB驅(qū)動之總線驅(qū)動程序

Q4MP_gh_c472c21 ? 2018-01-26 11:30 ? 次閱讀

總線驅(qū)動是不用改的,內(nèi)核都幫我們做好了,為了了解整個USB驅(qū)動的體系,我們來分析一下總線驅(qū)動程序。

一.總線框圖

深入了解USB驅(qū)動之總線驅(qū)動程序

總線的圖畫的已經(jīng)非常清楚了,這篇博客我們分析的是左邊的程序,在下篇我們想通過USB鍵盤這一實際例子來講解。

二.程序?qū)崿F(xiàn)

1. 由于代碼太多且關(guān)系復(fù)雜這里只列出調(diào)用的函數(shù)(沒有寫參數(shù))。從插入USB設(shè)備,到調(diào)用USB設(shè)備驅(qū)動程序,這一過程。

2.總線驅(qū)動程序都做了什么

a. 識別USB設(shè)備

1. 分配地址

2. 并告訴USB設(shè)備(set address)

3. 發(fā)出命令獲取描述符(描述符的信息可以在include\linux\usb\Ch9.h看到)

深入了解USB驅(qū)動之總線驅(qū)動程序

b. 查找并安裝對應(yīng)的設(shè)備驅(qū)動程序

c. 提供USB讀寫函數(shù)

盡管USB本身所屬設(shè)備驅(qū)動的結(jié)構(gòu)與不掛在USB總線上時完全相同,但是在訪問方式上卻發(fā)生了很大的變化。例如,對于字符設(shè)備驅(qū)動而言,盡管仍然是write(), read(), ioctl()這些函數(shù),但是在這些函數(shù)中,與USB設(shè)備通信時不再是I/O內(nèi)存和I/O端口的訪問,而貫穿始終的是稱為URB的USB請求塊,這些請求塊通過USB總線驅(qū)動提供的讀寫等接口進(jìn)行操作。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2881

    瀏覽量

    88081
  • USB驅(qū)動
    +關(guān)注

    關(guān)注

    1

    文章

    136

    瀏覽量

    20197

原文標(biāo)題:看完就會是不可能的,USB驅(qū)動之總線驅(qū)動程序

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    usb網(wǎng)卡驅(qū)動程序下載(萬能全集)

    usb網(wǎng)卡驅(qū)動程序:ADM8511 USB網(wǎng)卡驅(qū)動程序ADM8515 USB網(wǎng)卡驅(qū)動程序AS26
    發(fā)表于 09-28 15:40 ?4204次下載
    <b class='flag-5'>usb</b>網(wǎng)卡<b class='flag-5'>驅(qū)動程序</b>下載(萬能全集)

    天語手機(jī)usb驅(qū)動程序

    天語手機(jī)usb驅(qū)動程序:天語手機(jī)usb驅(qū)動程序下載
    發(fā)表于 04-30 12:36 ?792次下載

    Windows CE 下通用串行總線(USB)驅(qū)動程序開發(fā)

    Windows CE 下通用串行總線(USB)驅(qū)動程序開發(fā):通過分析通用串行總線USB)的拓?fù)浣Y(jié)構(gòu)和Windows CE 設(shè)備
    發(fā)表于 05-09 08:07 ?28次下載

    EZ USB 通用驅(qū)動程序說明

    EZ_USB 通用驅(qū)動程序(本文章中稱為GPD或者是EZ_USB GPD)是用來和基于EZ_USB外設(shè)接口的通用設(shè)備驅(qū)動程序。
    發(fā)表于 11-06 11:26 ?52次下載

    USB設(shè)備的WDM驅(qū)動程序設(shè)計

    本文介紹了WDM驅(qū)動模型,并且針對USB總線給出了USB設(shè)備的WDM驅(qū)動程序的設(shè)計方法
    發(fā)表于 10-13 15:48 ?0次下載

    USB接口驅(qū)動程序開發(fā)

    介紹USB的優(yōu)點(diǎn)和發(fā)展情況,基于DDK的USB設(shè)備驅(qū)動程序結(jié)構(gòu),并結(jié)合開發(fā)的ARM 板驅(qū)動程序對關(guān)鍵程序進(jìn)行介紹。
    發(fā)表于 03-19 15:21 ?121次下載
    <b class='flag-5'>USB</b>接口<b class='flag-5'>驅(qū)動程序</b>開發(fā)

    USB總線數(shù)據(jù)采集設(shè)備驅(qū)動程序的設(shè)計

    結(jié)合基于USB總線的數(shù)據(jù)采集設(shè)備,介紹了WDM驅(qū)動程序的工作原理,設(shè)計原則和設(shè)計方法,并給出一個實現(xiàn)塊傳輸?shù)?b class='flag-5'>USB設(shè)備驅(qū)動程序例程,詳細(xì)的介
    發(fā)表于 05-15 09:57 ?1800次閱讀
    <b class='flag-5'>USB</b><b class='flag-5'>總線</b>數(shù)據(jù)采集設(shè)備<b class='flag-5'>驅(qū)動程序</b>的設(shè)計

    HC6800的USB驅(qū)動程序

    HC6800的USB驅(qū)動程序HC6800的USB驅(qū)動程序HC6800的USB驅(qū)動程序HC6800
    發(fā)表于 12-28 15:28 ?0次下載

    usb驅(qū)動程序

    CH340G的USB驅(qū)動程序,win7運(yùn)行完全沒有問題。
    發(fā)表于 05-13 10:17 ?69次下載

    WinCE_Net系統(tǒng)下USB總線驅(qū)動程序實現(xiàn)的研究

    WinCE_Net系統(tǒng)下USB總線驅(qū)動程序實現(xiàn)的研究
    發(fā)表于 10-25 09:52 ?15次下載
    WinCE_Net系統(tǒng)下<b class='flag-5'>USB</b><b class='flag-5'>總線</b><b class='flag-5'>驅(qū)動程序</b>實現(xiàn)的研究

    CDM20600驅(qū)動程序,USB驅(qū)動程序和并口驅(qū)動應(yīng)用程序(免費(fèi)下載)

    本文檔的主要內(nèi)容是CDM20600驅(qū)動程序,USB驅(qū)動程序和并口驅(qū)動應(yīng)用程序(免費(fèi)下載)詳細(xì)資料概述
    發(fā)表于 06-06 10:00 ?57次下載
    CDM20600<b class='flag-5'>驅(qū)動程序</b>,<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動程序</b>和并口<b class='flag-5'>驅(qū)動</b>應(yīng)用<b class='flag-5'>程序</b>(免費(fèi)下載)

    Linux設(shè)備驅(qū)動程序的平臺驅(qū)動程序和字符驅(qū)動程序介紹

    了解Linux設(shè)備驅(qū)動程序的基礎(chǔ)知識,重點(diǎn)介紹平臺驅(qū)動程序和字符驅(qū)動程序。 提出了簡單的平臺驅(qū)動程序實現(xiàn)和簡單的字符
    的頭像 發(fā)表于 11-27 06:32 ?4307次閱讀

    如何使用Linux內(nèi)核實現(xiàn)USB驅(qū)動程序框架

    Linux內(nèi)核提供了完整的USB驅(qū)動程序框架。USB總線采用樹形結(jié)構(gòu),在一條總線上只能有唯一的主機(jī)設(shè)備。 Linux內(nèi)核從主機(jī)和設(shè)備兩個角度
    發(fā)表于 11-06 17:59 ?20次下載
    如何使用Linux內(nèi)核實現(xiàn)<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動程序</b>框架

    SDP USB驅(qū)動程序安裝程序

    SDP USB驅(qū)動程序安裝程序
    發(fā)表于 03-23 10:07 ?14次下載
    SDP <b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動程序</b>安裝<b class='flag-5'>程序</b>

    USB驅(qū)動程序

    USB驅(qū)動程序
    發(fā)表于 08-17 11:47 ?54次下載