999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于S3C2440平臺的USB_WiFi驅動移植

2015-07-18 13:20:28陳侃松邵沖張丹張滿意何林桂
物聯網技術 2015年5期

陳侃松+邵沖+張丹+張滿意+何林桂

摘 要:針對當下比較通用的USB_WiFi無線通信芯片在嵌入式系統開發應用中的具體要求,分析 Linux系統下基于ARM9處理芯片S3C2440 的USB_ WiFi驅動程序。結合 S3C2440與AR9271的接口電路設計、USB_WiFi驅動程序體系結構移植了USB無線設備驅動,并分析了數據傳輸的具體過程。根據實驗結論,該WiFi驅動程序能夠實現預期目標,并可用于應用系統的開發。

關鍵詞:WiFi無線通信;Linux;S3C2440;驅動程序;無線網絡設備

中圖分類號:TP393 文獻標識碼:A 文章編號:2095-1302(2015)05-00-02

0 引 言

隨著科技的進步, 基于802.11系列協議的WiFi無線保真通信技術迅猛發展,使得WiFi技術能夠應用在多種不同的嵌入式設備上,并方便的連接運營商提供的接入點。WiFi與其他無線通信技術相比, 擁有組網靈活,數據傳輸速度快,傳輸距離遠的特性。在已部署WiFi網絡的范圍內搭建WSN網絡非常靈活而且組網成本不高。

1 WiFi技術和平臺介紹

1.1 硬件平臺總體設計

如圖1所示,能達到本文需求的無線傳輸系統由S3C2440控制器、WiFi無線網卡和上位機組成。測試系統將輸入的數據傳輸給中心處理芯片S3C2440,S3C2440將得到的數據儲存到存儲器,并對數據進行處理,然后由USB接口將封裝的數據通過WiFi網絡建立起的無線通信鏈路,傳送到遠端上位機。

圖 1 硬件平臺設計圖

1.2 USB接口電路設計

S3C2440處理器通過USB接口與Atheros AR9271無線網卡的USB接口連接,實現數據的傳輸和接收。其中,數據的發送端是S3C2440。針對設備對系統資源需求的不同,在USB規范中規定了4種不同的數據傳輸方式,這里使用實時傳輸方式。這種傳輸方式可以連續不斷地在S3C2440與USB設備之間傳輸數據。S3C2440的DN0、DP0引腳分別與AR9271的DM、DP引腳相連接;DN與DP輸出的是一對差分信號。

2 WiFi驅動程序移植

2.1 WiFi驅動體系結構

AR9271無線網卡正常工作所需要的驅動程序主要包括兩部分:WLAN驅動和USB接口驅動。WLAN驅動的作用在整個數據接收和傳輸的過程中非常重要,它既要接收從應用層傳來的數據,把數據從USB接口轉發到S3C2440平臺;又要響應S3C2440平臺傳過來的中斷,借助USB驅動程序注冊的接口函數,讀取硬件緩沖區的數據流,傳遞數據到應用層。內核啟動后,會自動加載AR9271的固件htc_9271.fw,它在S3C2440平臺根文件系統的/lib/firmware目錄下。它的主要作用是控制WiFi硬件上的接口,完成802.11數據幀和802.3數據幀之間的轉換和實現數據緩沖。由此可見, WiFi無線網卡設備在Linux中是被當作一般的以太網設備來識別。

2.2 USB接口驅動分析

USB接口初始化函數由ath9k_hif_usb_init入口,ath9k_hif_usb_exit出口。ath9k_hif_usb_init所做的工作,就是通過usb_register函數將ath9k_hif_usb驅動掛入到內核USB驅動鏈中。

ath9k_hif_usb_probe函數是最重要的,主要用于設備的探測以及所需內核資源的初始化。ath9k_hif_usb_suspend和ath9k_hif_usb_resume主要是處理電源管理相關工作,如收到suspend時以怎樣的低功耗工作,以及resume如何恢復等。

ath9k_hif_usb_disconnect是當USB設備從系統中移除之后會調用的接口。rtusb_usb_id是驅動支持的USB設備ID。

ath9k_hif_usb_driver結構體初始化時向內核注冊完之后,驅動就會掃描USB總線,查找是否有此驅動相應的設備在總線上,如果有設備,就會調用probe函數;或者驅動初始化后,再把設備插到系統上,此時也會從USB總線的中斷觸發到ath9k_hif_usb_driver的probe函數。兩種調用的觸發方式不同。

2.3 無線網卡驅動分析

2.3.1 Probe函數分析

ath9k_hif_usb_driver中的probe函數作用是測試當前驅動是否支持接入的USB設備。如果支持該USB設備,則調用interface_to_usbdev()函數先獲取該接口的信息,再讓udev結構體指針指向這段信息,使用kzalloc()函數為該USB設備分配空間,用hif_device_usb *hif_dev指針接收。然后把設備信息、接口信息、設備ID賦值給分配的USB設備:

hif_dev->udev = udev;

hif_dev->interface = interface;

hif_dev->usb_device_id = id;

接著probe 函數調用 usb_set_intfdata(struct usb_interface *intf, void *data)函數,這個函數的第一個參數是通過probe函數接收的要支持USB設備接口的數據結構的指針,第二個參數是內核中自己分配的描述該USB設備的結構體指針。 這個函數主要的作用是把接口和本驅動要用到的USB設備結構體建立連接。通過probe(struct usb_interface *interface,const struct usb_device_id *id)函數和上面一系列的分析我們可以看出來,一個設備對應一個驅動。

在這一系列工作完成后,通過init_completion(&hif_dev->fw_done)函數把它放入等待隊列,等待加載與之相對應的固件。

2.3.2 數據的傳輸

USB無線網卡與其它接口無線網卡不一樣的地方是,USB無線網卡是ath9k_hif_usb_rx_cb()函數通過查詢來確定是否需要讀取數據,而不是使用中斷方式。當USB設備需要傳輸數據給其它無線設備時,ath9k_hif_usb_alloc_rx_urbs()函數會分配一個URB結構體,然后由ath9k_hif_usb_rx_cb()函數向USB核心發送一個讀請求,以便它能夠及時響應。當準備發送數據時,802.11協議層會構造并填充kb_buff結構體來描述將要發送的數據包,并調用hif_usb_send()函數來發送該數據包;這個函數的另一個作用是根據數據包的長度把它分割成USB設備能夠傳輸的長度,然后構造寫請求URB,再發送到USB核心,當USB設備從系統中移除后,就會調用ath9k_hif_usb_disconnect()函數,釋放已經分配的系統資源,注銷該設備。

3 結 語

作為目前無線網絡應用最廣泛的技術,在S3C2440平臺上WiFi驅動的移植非常具有實際意義。本文分析移植了基于Linux系統的USB接口WiFi驅動程序的具體過程,且測試可用。這為其他的嵌入式平臺WiFi驅動提供了參考。

參考文獻

[1]劉欣.基于物聯網的遠程家庭監健康控監護系統網絡的研究[D].北京: 北京郵電大學, 2011.

[2] Rajesh N, H Sarojadevi. Emerging Trends in Video Surveillance Applications[C]. Proceedings of International Conference on Software and Computer Applications, 2011:220-224.

[3]馮麗芳,孫俊,周俊華,等. 基于ARM9的網絡視頻監控系統實現[J].電力自動化設備,2010,26(10):95-97.

[4]李霏,王讓定,徐霽.基于嵌入式Linux的多路視頻監控系統的設計[J].寧波大學學報,2007,20(2): 151-154.

[5]楊望,宋牟平,陳鵬.嵌入式網絡實時視頻監控系統的設計[J].江南大學學報,2008,7(5):516-520.

主站蜘蛛池模板: 欧美一区二区三区国产精品| 亚洲中字无码AV电影在线观看| 国产91高跟丝袜| 福利视频一区| 成人综合网址| 中国美女**毛片录像在线| 成人在线观看一区| 国产人成在线观看| 国产原创自拍不卡第一页| 国产精品视频猛进猛出| 国产极品嫩模在线观看91| 粉嫩国产白浆在线观看| 亚洲综合色吧| 亚洲三级电影在线播放 | 亚洲中文字幕久久无码精品A| 精品午夜国产福利观看| 精品无码一区二区三区在线视频| 亚洲精品天堂自在久久77| 色视频国产| 日韩免费视频播播| 国产成人久视频免费| 精品久久久久久成人AV| 久热这里只有精品6| 91青青草视频| 亚洲综合极品香蕉久久网| 91精品国产自产91精品资源| www成人国产在线观看网站| 久久动漫精品| 亚洲无码高清视频在线观看| 2024av在线无码中文最新| 任我操在线视频| 欧美日韩精品一区二区视频| 日韩A级毛片一区二区三区| 日韩东京热无码人妻| 亚洲AV无码久久精品色欲| 97视频免费在线观看| 一级毛片中文字幕| 国产成人亚洲精品色欲AV| 国产成人高精品免费视频| 国产a v无码专区亚洲av| 综合社区亚洲熟妇p| 亚洲国产无码有码| 99人体免费视频| 99这里只有精品6| 激情在线网| 成人午夜久久| 国产午夜人做人免费视频中文| 国产AV毛片| 精品国产免费观看一区| 欧美日本在线播放| 亚洲中文字幕久久无码精品A| 久久黄色小视频| 亚洲区视频在线观看| 午夜久久影院| 久久精品aⅴ无码中文字幕| 精品欧美视频| 高清欧美性猛交XXXX黑人猛交| 免费激情网站| 亚洲国产精品久久久久秋霞影院| 无码中文字幕加勒比高清| 日韩欧美高清视频| 国产三区二区| 国产sm重味一区二区三区| 亚洲AV无码一区二区三区牲色| 午夜爽爽视频| 中文字幕 日韩 欧美| 丰满少妇αⅴ无码区| 久久99精品久久久大学生| 这里只有精品在线| 欧美精品v日韩精品v国产精品| 无码国产偷倩在线播放老年人 | 国产中文一区a级毛片视频| 国产精品美乳| 五月天福利视频| 日韩精品一区二区深田咏美| 久久国产高潮流白浆免费观看| 男女男免费视频网站国产| 国产成人三级在线观看视频| 久久黄色免费电影| 欧美在线视频a| 97青青青国产在线播放| 狠狠v日韩v欧美v|