新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM的無(wú)線(xiàn)網(wǎng)卡設(shè)備驅(qū)動(dòng)方案

        基于ARM的無(wú)線(xiàn)網(wǎng)卡設(shè)備驅(qū)動(dòng)方案

        作者: 時(shí)間:2012-12-29 來(lái)源:網(wǎng)絡(luò) 收藏

        圖2 LinUX網(wǎng)絡(luò)驅(qū)動(dòng)程序結(jié)構(gòu)

          2.2.1 USB驅(qū)動(dòng)設(shè)備的訪(fǎng)問(wèn)和控制

          與PCI,ISA等設(shè)備不同,USB,1394等新一代總線(xiàn)沒(méi)有IO/MEM映射、中斷和DMA硬件資源,取而代之的是抽象出來(lái)的硬件資源概念。對(duì)USB設(shè)備來(lái)說(shuō),資源主要包括配置(configuration)、接口(interface)和端點(diǎn)(endpoint)。這些資源中,端點(diǎn)對(duì)于USB設(shè)備有著最重要的意義,實(shí)際的數(shù)據(jù)傳輸就是通過(guò)端點(diǎn)的讀寫(xiě)實(shí)現(xiàn)的。驅(qū)動(dòng)程序通過(guò)描述符來(lái)獲取這些資源。在初始化時(shí),USB驅(qū)動(dòng)程序從設(shè)備端點(diǎn)0讀取描述符,經(jīng)過(guò)解析后保存這些資源的屬性,為傳輸數(shù)據(jù)做準(zhǔn)備。

          2.2.2 USB網(wǎng)絡(luò)程序設(shè)計(jì)

          USB驅(qū)動(dòng)程序首先向USB子系統(tǒng)注冊(cè)自己,然后通過(guò)vendor id和device id來(lái)判斷硬件設(shè)備是否已經(jīng)插入總線(xiàn),攝像頭驅(qū)動(dòng)程序需要?jiǎng)?chuàng)建一個(gè)

          當(dāng)插入U(xiǎn)SB總線(xiàn)時(shí),USB core就會(huì)調(diào)用Probe方法來(lái)檢測(cè)被傳遞進(jìn)來(lái)的信息,以確定無(wú)線(xiàn)網(wǎng)卡設(shè)備是不是與驅(qū)動(dòng)程序匹配,同時(shí)填充struct net_device完成對(duì)該網(wǎng)絡(luò)設(shè)備的初始化。當(dāng)無(wú)線(xiàn)網(wǎng)卡被拔出時(shí),USB core就會(huì)調(diào)用Disconnect方法來(lái)完成清除工作。驅(qū)動(dòng)程序通過(guò)顯示模塊的初始化和消除函數(shù)注冊(cè)與注銷(xiāo)模塊調(diào)用module_init來(lái)初始化一個(gè)模塊,并在卸載時(shí)調(diào)用moduel_exit函數(shù)。



        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 得荣县| 镇沅| 仁化县| 定襄县| 襄垣县| 饶平县| 富平县| 德保县| 祥云县| 清河县| 广水市| 望城县| 开封市| 乐清市| 四会市| 安丘市| 安达市| 霍林郭勒市| 定西市| 桑植县| 凤阳县| 积石山| 万山特区| 台山市| 东山县| 湄潭县| 辽宁省| 榕江县| 平泉县| 雅江县| 凤山市| 龙州县| 广宗县| 浦北县| 兰州市| 卢湾区| 东港市| 蛟河市| 昔阳县| 如皋市| 东乌珠穆沁旗|