国产91免费_国产精品电影一区_日本s色大片在线观看_中文在线免费看视频

您現(xiàn)在的位置: 通信界 >> IT >> 技術(shù)正文  
 
基于嵌入式ARM-Linux無線ZigBee協(xié)調(diào)器驅(qū)動(dòng)設(shè)計(jì)[圖]
[ 通信界 / 佚名 / www.6611o.com / 2012/2/14 8:27:01 ]
 

摘要:以ARM9處理器S3C2410作為嵌入式Linux的系統(tǒng)開發(fā)和運(yùn)行平臺(tái),利用適合田間要求的無線ZigBee節(jié)點(diǎn)CC2430,在Linux內(nèi)核中實(shí)現(xiàn)協(xié)調(diào)器的字符驅(qū)動(dòng),使其通過IO進(jìn)行數(shù)據(jù)傳輸,避免了串口數(shù)據(jù)傳輸速率低、數(shù)據(jù)冗余性差、程序設(shè)計(jì)繁瑣等缺點(diǎn)。詳細(xì)介紹了該系統(tǒng)的設(shè)計(jì)和開發(fā)過程,包括網(wǎng)絡(luò)通信協(xié)議的選取,bootloader、內(nèi)核、文件系統(tǒng)以及驅(qū)動(dòng)程序的實(shí)現(xiàn)和移植。

農(nóng)田中大范圍的環(huán)境信息監(jiān)測(cè)已成為網(wǎng)絡(luò)應(yīng)用范圍重點(diǎn)之一。針對(duì)農(nóng)田布線不便的特點(diǎn),ZigBee無線節(jié)點(diǎn)網(wǎng)絡(luò)成為農(nóng)田信息采集系統(tǒng)的首選,可對(duì)其所分布區(qū)域內(nèi)的各種環(huán)境和檢測(cè)對(duì)象的信息進(jìn)行實(shí)時(shí)的監(jiān)控[1]。然而,控制下層整個(gè)網(wǎng)絡(luò)狀態(tài)的核心是上位機(jī)ARM處理器,而且上位機(jī)與下位機(jī)通信大多以串口模式來實(shí)現(xiàn)[2-3]。但串口通信模式存在串口傳輸速率低(波特率雙方一致)、傳送距離短[4]、數(shù)據(jù)冗余差(數(shù)據(jù)校驗(yàn))以及設(shè)計(jì)串口協(xié)議繁瑣(幀格式)等不足。因此本文研究了ZigBee在ARM9內(nèi)核中的協(xié)調(diào)器字符驅(qū)動(dòng),利用I/O傳輸數(shù)據(jù),控制具有協(xié)調(diào)器驅(qū)動(dòng)的設(shè)備在農(nóng)田任何位置即可組網(wǎng),以減少協(xié)調(diào)器的布局,實(shí)現(xiàn)方便快捷的動(dòng)態(tài)數(shù)據(jù)監(jiān)測(cè)。

1 田間監(jiān)測(cè)系統(tǒng)的要求

因監(jiān)測(cè)節(jié)點(diǎn)需要零散分布在田間,以監(jiān)測(cè)田間的空氣和地表的溫度,因此,田間監(jiān)測(cè)系統(tǒng)所需要的技術(shù)指標(biāo)應(yīng)滿足:(1)低功耗。田間采電受到布線限制,因此節(jié)點(diǎn)模塊的耗電量應(yīng)盡可能低。(2)低成本。田間需要大量布局節(jié)點(diǎn),投資成本成為廣泛實(shí)施的制約因素。(3)低復(fù)雜度和高可靠性。田間節(jié)點(diǎn)開發(fā)設(shè)備應(yīng)采用結(jié)構(gòu)簡單、采集數(shù)據(jù)盡可能精確又廉價(jià)的設(shè)計(jì)。綜合上述特點(diǎn),ZigBee可以作為田間無線協(xié)議首選。

ZigBee協(xié)議是基于IEEE802.15.4標(biāo)準(zhǔn)的低功耗、低速率、低復(fù)雜度的雙向通信技術(shù)。它可工作在國際上免授權(quán)的2.4GHz,具有250Kb/s的最高數(shù)據(jù)傳輸速率和10~75m的可靠傳輸距離。ZigBee支持星型、樹型、對(duì)等和混合型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),網(wǎng)絡(luò)中的從設(shè)備高達(dá)254個(gè)。根據(jù)如圖1所示的節(jié)點(diǎn)在網(wǎng)絡(luò)分布的特點(diǎn),節(jié)點(diǎn)在網(wǎng)絡(luò)中可實(shí)現(xiàn)多條數(shù)據(jù)鏈路通信,以選擇最佳的路徑進(jìn)行傳輸,提高了網(wǎng)絡(luò)通信的可靠性。

基于嵌入式ARM-Linux無線ZigBee協(xié)調(diào)器驅(qū)動(dòng)設(shè)計(jì)

協(xié)調(diào)器是整個(gè)網(wǎng)絡(luò)的核心部分,負(fù)責(zé)完成整個(gè)網(wǎng)絡(luò)的無線接入和組建,是維持路由器和終端節(jié)點(diǎn)之間的數(shù)據(jù)通信的關(guān)鍵。在田間固定放置協(xié)調(diào)器節(jié)點(diǎn)會(huì)浪費(fèi)大量的資源,若動(dòng)態(tài)地測(cè)量田間任意位置的數(shù)據(jù),把協(xié)調(diào)器作為移動(dòng)設(shè)備動(dòng)態(tài)地測(cè)量數(shù)據(jù)則是最好的選擇,并且可以減少田間協(xié)調(diào)器的放置,降低設(shè)計(jì)難度的成本。

2 嵌入式Linux驅(qū)動(dòng)開發(fā)環(huán)境的搭建

Linux操作系統(tǒng)環(huán)境的搭建如圖2所示。

基于嵌入式ARM-Linux無線ZigBee協(xié)調(diào)器驅(qū)動(dòng)設(shè)計(jì)

2.1 Bootloader的移植

Bootloader是操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一小段程序,它為加載內(nèi)核提供合適的硬件環(huán)境。Bootloader分成Stage1和Stage2兩個(gè)階段,具體實(shí)現(xiàn)框圖如圖3所示。

基于嵌入式ARM-Linux無線ZigBee協(xié)調(diào)器驅(qū)動(dòng)設(shè)計(jì)

Stage1:主要由匯編實(shí)現(xiàn),包括GPIO驅(qū)動(dòng)、使開發(fā)板上電LED閃爍、關(guān)閉所有中斷、設(shè)置系統(tǒng)時(shí)鐘、關(guān)閉看門狗、SDRAM初始化、實(shí)現(xiàn)相應(yīng)驅(qū)動(dòng)(提供更大的執(zhí)行空間)、NAND Flash初始化(驅(qū)動(dòng)開發(fā)板上唯一的固態(tài)存儲(chǔ)掉電不消失設(shè)備)以及設(shè)置SP棧指針為Stage2中的C語言代碼執(zhí)行做好準(zhǔn)備。

Stage2:實(shí)現(xiàn)加電自搬移過程、串口調(diào)試信息、函數(shù)庫、shell命令等擴(kuò)展功能。

2.2 內(nèi)核的編譯和移植

本硬件移植2.6.27版本的Linux內(nèi)核:(1)解壓縮tar xf linux-2.6.27.tar.bz2,進(jìn)入該目錄。(2)移植平臺(tái)為ARM體系結(jié)構(gòu),修改Makefile中的ARCH?=arm CORSS_COMPILE?=arm-linux-(交叉編譯器的前綴)。(3)配置內(nèi)核:make deconfig(清除原來編譯的config,如果是第一次配置可省略);make menuconfig進(jìn)入配置菜單,選擇硬件所需的驅(qū)動(dòng)。大部分可選擇默認(rèn)選項(xiàng),但注意網(wǎng)卡驅(qū)動(dòng)一定必選,硬件類型也要匹配。(4)編譯內(nèi)核make bzImage在~/linux-2.6.27/arch/arm/boot/bzImage生成內(nèi)核映像,通過tftp把bzImage燒到地址為0x30008000內(nèi)存上,然后用nand erase kernel擦除kernel分區(qū)上的數(shù)據(jù),最后用nand write 0x30008000把內(nèi)存上的數(shù)據(jù)燒到Flash對(duì)應(yīng)的kernel分區(qū)上。

2.3 根文件系統(tǒng)的移植

運(yùn)行Linux操作系統(tǒng),除了內(nèi)核外還需要根文件系統(tǒng)。用mkdir創(chuàng)建rootfs文件夾,在其中創(chuàng)建根文件系統(tǒng)目錄并安裝busybox。busybox是專門為嵌入式系統(tǒng)設(shè)計(jì)的,它把大多數(shù)常用的命令(如ls,cp,cd,tar等)拼接在一起,在根文件系統(tǒng)中只有一個(gè)可執(zhí)行文件/bin/busybox,其余都是busybox的鏈接。安裝busybox與安裝內(nèi)核類似,在~$tar xf busybox-1.9.1.tar.bz2、cd busybox-1.9.1/下修改ARCH?=arm CROSS_COMPILE?=arm-linux-;make defconfig、make menuconfig設(shè)置busybox安裝路徑rootfs文件夾。將make、make install、busybox文件與一系列鏈接文件安裝在rootfs下。其他鏈接文件在/bin、/sbin、/usr/bin、/usr/sbin中,配置Linuxrc啟動(dòng)文件、安裝glibc共享庫,在/dev目錄下創(chuàng)建設(shè)備文件,將主機(jī)系統(tǒng)時(shí)鐘拷貝到根文件系統(tǒng)中去,并配置網(wǎng)路和http相關(guān)配置文件。最后將文件系統(tǒng)配置成YAFFS文件系統(tǒng),可直接對(duì)文件系統(tǒng)進(jìn)行讀寫。設(shè)置開發(fā)板為NFS方式,啟用可以直接在主機(jī)上操作開發(fā)板的根文件系統(tǒng)并進(jìn)行調(diào)試。

3 硬件設(shè)計(jì)及驅(qū)動(dòng)實(shí)現(xiàn)

3.1 系統(tǒng)硬件設(shè)計(jì)

本系統(tǒng)平臺(tái)是采用ARM體系結(jié)構(gòu)的S3C2410作為處理器,通過移植的字符設(shè)備驅(qū)動(dòng)與ZigBee CC2430無線收發(fā)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)的傳輸。系統(tǒng)硬件框架圖如圖4所示。

基于嵌入式ARM-Linux無線ZigBee協(xié)調(diào)器驅(qū)動(dòng)設(shè)計(jì)

CC2430是一個(gè)真正的片上系統(tǒng)(SoC),以高性能和低功耗的8051為內(nèi)核,專門針對(duì)IEEE802.15.4和ZigBee應(yīng)用,它可以用很低的費(fèi)用構(gòu)成ZigBee節(jié)點(diǎn)。

現(xiàn)有的硬件是通過串口實(shí)現(xiàn)數(shù)據(jù)傳輸,數(shù)據(jù)傳輸?shù)母袷揭凑沾谕ㄐ艆f(xié)議的格式封裝,大量數(shù)據(jù)的傳輸還需要在串口通信格式的基礎(chǔ)上再進(jìn)行設(shè)計(jì)封裝,不僅數(shù)據(jù)傳輸速度慢,而且容錯(cuò)能力低。如果在內(nèi)核中加入ZigBee的字符驅(qū)動(dòng)則可省去數(shù)據(jù)發(fā)送時(shí)的封裝以及接收時(shí)需要解析的麻煩。

3.2 Linux設(shè)備驅(qū)動(dòng)實(shí)現(xiàn)

Linux的輸入輸出設(shè)備分為字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備三類。字符設(shè)備是發(fā)送和接收都按照字符方式進(jìn)行。塊設(shè)備則是傳輸固定大小的數(shù)據(jù)給設(shè)備。網(wǎng)絡(luò)設(shè)備則是通過BSD套接口訪問設(shè)備。驅(qū)動(dòng)程序一般以模塊方式編寫,加載和卸載主要由module_init()和module_exit()完成[2]。

(1)模塊加載和卸載

模塊需要入口函數(shù)module_init(zigbee_init)的實(shí)現(xiàn)代碼如下:

基于嵌入式ARM-Linux無線ZigBee協(xié)調(diào)器驅(qū)動(dòng)設(shè)計(jì)

在不同的系統(tǒng)中,同一設(shè)備的設(shè)備號(hào)不盡相同,如果靜態(tài)設(shè)置設(shè)備號(hào),則在換另外的平臺(tái)時(shí),設(shè)備號(hào)有可能沖突,所以動(dòng)態(tài)分配是最佳選擇。

(2)模塊驅(qū)動(dòng)實(shí)現(xiàn)

注冊(cè)設(shè)備編號(hào)后要將設(shè)備驅(qū)動(dòng)與之連接,因此必須用file_operation結(jié)構(gòu)建立鏈接,并建立中斷通知相關(guān)數(shù)據(jù)。其實(shí)現(xiàn)代碼如下:

基于嵌入式ARM-Linux無線ZigBee協(xié)調(diào)器驅(qū)動(dòng)設(shè)計(jì)

當(dāng)上層應(yīng)用調(diào)用驅(qū)動(dòng)程序時(shí),驅(qū)動(dòng)程序需要完成以下功能:

①初始化設(shè)備。S3C2410與下層ZigBee CC2430連接管腳處于工作狀態(tài),注冊(cè)并使能中斷。
     ②按照ZigBee協(xié)議規(guī)則構(gòu)建數(shù)據(jù)包并發(fā)送給CC2430,實(shí)現(xiàn)不同控制命令,使芯片完成數(shù)據(jù)發(fā)送和狀態(tài)間的轉(zhuǎn)換。
     ③當(dāng)下位機(jī)接收到的數(shù)據(jù)與協(xié)議包格式不符時(shí),產(chǎn)生中斷,用戶須重新發(fā)送數(shù)據(jù)。

其實(shí)現(xiàn)代碼如下:

基于嵌入式ARM-Linux無線ZigBee協(xié)調(diào)器驅(qū)動(dòng)設(shè)計(jì)

除實(shí)現(xiàn)以上函數(shù)外,還需要實(shí)現(xiàn)zigbee_relese(struct inode*inode,struct file*filp),釋放程序運(yùn)行中所有資源。

本文通過上位機(jī)處理器ARM9CS3C2410,設(shè)計(jì)了ZigBee內(nèi)核字符驅(qū)動(dòng),輕松地實(shí)現(xiàn)了對(duì)下位機(jī)的控制,也方便了用戶的上層開發(fā),提供了用戶與下位機(jī)數(shù)據(jù)傳輸?shù)慕涌冢苊饬擞么谶M(jìn)行數(shù)據(jù)傳輸時(shí)程序設(shè)計(jì)的繁瑣性。由于篇幅限制本文沒給出控制下層模塊命令的具體實(shí)現(xiàn)代碼。希望通過本文能促進(jìn)ZigBee協(xié)調(diào)器驅(qū)動(dòng)的進(jìn)一步實(shí)現(xiàn)和研究。

參考文獻(xiàn)

[1] 楊帆,廖桂平,李錦衛(wèi),等.無線傳感器網(wǎng)絡(luò)在農(nóng)田環(huán)境信息監(jiān)測(cè)中的應(yīng)用[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2008(3):20-23.
     [2] 甘勇,王華,常亞軍,等.基于ARM平臺(tái)的ZigBee網(wǎng)關(guān)設(shè)計(jì)[J].通信技術(shù),2009,42(1):199-201.
     [3] 魏守包,唐慧強(qiáng).基于嵌入式ARM-uClinux的ZigBee網(wǎng)絡(luò)設(shè)計(jì)[J].儀表技術(shù)與傳感器,2009(1):62-64.
     [4] 包長春,石瑞珍,馬玉泉.基于ZigBee技術(shù)的農(nóng)業(yè)設(shè)施測(cè)控系統(tǒng)的設(shè)計(jì)[J].農(nóng)業(yè)工程學(xué)報(bào),2007,23(8):160~163.

 

作者:佚名 合作媒體:不詳 編輯:顧北

 

 

 
 熱點(diǎn)技術(shù)
普通技術(shù) “5G”,真的來了!牛在哪里?
普通技術(shù) 5G,是偽命題嗎?
普通技術(shù) 云視頻會(huì)議關(guān)鍵技術(shù)淺析
普通技術(shù) 運(yùn)營商語音能力開放集中管理方案分析
普通技術(shù) 5G網(wǎng)絡(luò)商用需要“無憂”心
普通技術(shù) 面向5G應(yīng)運(yùn)而生的邊緣計(jì)算
普通技術(shù) 簡析5G時(shí)代四大關(guān)鍵趨勢(shì)
普通技術(shù) 國家網(wǎng)信辦就《數(shù)據(jù)安全管理辦法》公開征求意見
普通技術(shù) 《車聯(lián)網(wǎng)(智能網(wǎng)聯(lián)汽車)直連通信使用5905-5925MHz頻段管理規(guī)定(
普通技術(shù) 中興通訊混合云解決方案,滿足5G多元業(yè)務(wù)需求
普通技術(shù) 大規(guī)模MIMO將帶來更多無線信道,但也使無線信道易受攻擊
普通技術(shù) 蜂窩車聯(lián)網(wǎng)的標(biāo)準(zhǔn)及關(guān)鍵技術(shù)及網(wǎng)絡(luò)架構(gòu)的研究
普通技術(shù) 4G與5G融合組網(wǎng)及互操作技術(shù)研究
普通技術(shù) 5G中CU-DU架構(gòu)、設(shè)備實(shí)現(xiàn)及應(yīng)用探討
普通技術(shù) 無源光網(wǎng)絡(luò)承載5G前傳信號(hào)可行性的研究概述
普通技術(shù) 面向5G中傳和回傳網(wǎng)絡(luò)承載解決方案
普通技術(shù) 數(shù)據(jù)中心布線系統(tǒng)可靠性探討
普通技術(shù) 家庭互聯(lián)網(wǎng)終端價(jià)值研究
普通技術(shù) 鎏信科技CEO劉舟:從連接層構(gòu)建IoT云生態(tài),聚焦CMP是關(guān)鍵
普通技術(shù) SCEF引入需求分析及部署應(yīng)用
  版權(quán)與免責(zé)聲明: ① 凡本網(wǎng)注明“合作媒體:通信界”的所有作品,版權(quán)均屬于通信界,未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用。已經(jīng)本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使用,并注明“來源:通信界”。違反上述聲明者,本網(wǎng)將追究其相關(guān)法律責(zé)任。 ② 凡本網(wǎng)注明“合作媒體:XXX(非通信界)”的作品,均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。 ③ 如因作品內(nèi)容、版權(quán)和其它問題需要同本網(wǎng)聯(lián)系的,請(qǐng)?jiān)谝辉聝?nèi)進(jìn)行。
通信視界
華為余承東:Mate30總體銷量將會(huì)超過兩千萬部
趙隨意:媒體融合需積極求變
普通對(duì)話 苗圩:建設(shè)新一代信息基礎(chǔ)設(shè)施 加快制造業(yè)數(shù)字
普通對(duì)話 華為余承東:Mate30總體銷量將會(huì)超過兩千萬部
普通對(duì)話 趙隨意:媒體融合需積極求變
普通對(duì)話 韋樂平:5G給光纖、光模塊、WDM光器件帶來新機(jī)
普通對(duì)話 安筱鵬:工業(yè)互聯(lián)網(wǎng)——通向知識(shí)分工2.0之路
普通對(duì)話 庫克:蘋果不是壟斷者
普通對(duì)話 華為何剛:挑戰(zhàn)越大,成就越大
普通對(duì)話 華為董事長梁華:盡管遇到外部壓力,5G在商業(yè)
普通對(duì)話 網(wǎng)易董事局主席丁磊:中國正在引領(lǐng)全球消費(fèi)趨
普通對(duì)話 李彥宏:無人乘用車時(shí)代即將到來 智能交通前景
普通對(duì)話 中國聯(lián)通研究院院長張?jiān)朴拢弘p輪驅(qū)動(dòng)下,工業(yè)
普通對(duì)話 “段子手”楊元慶:人工智能金句頻出,他能否
普通對(duì)話 高通任命克里斯蒂安諾·阿蒙為公司總裁
普通對(duì)話 保利威視謝曉昉:深耕視頻技術(shù) 助力在線教育
普通對(duì)話 九州云副總裁李開:幫助客戶構(gòu)建自己的云平臺(tái)
通信前瞻
楊元慶:中國制造高質(zhì)量發(fā)展的未來是智能制造
對(duì)話亞信科技CTO歐陽曄博士:甘為橋梁,攜"電
普通對(duì)話 楊元慶:中國制造高質(zhì)量發(fā)展的未來是智能制造
普通對(duì)話 對(duì)話亞信科技CTO歐陽曄博士:甘為橋梁,攜"電
普通對(duì)話 對(duì)話倪光南:“中國芯”突圍要發(fā)揮綜合優(yōu)勢(shì)
普通對(duì)話 黃宇紅:5G給運(yùn)營商帶來新價(jià)值
普通對(duì)話 雷軍:小米所有OLED屏幕手機(jī)均已支持息屏顯示
普通對(duì)話 馬云:我挑戰(zhàn)失敗心服口服,他們才是雙11背后
普通對(duì)話 2018年大數(shù)據(jù)產(chǎn)業(yè)發(fā)展試點(diǎn)示范項(xiàng)目名單出爐 2
普通對(duì)話 陳志剛:提速又降費(fèi),中國移動(dòng)的兩面精彩
普通對(duì)話 專訪華為終端何剛:第三代nova已成為爭奪全球
普通對(duì)話 中國普天陶雄強(qiáng):物聯(lián)網(wǎng)等新經(jīng)濟(jì)是最大機(jī)遇
普通對(duì)話 人人車?yán)罱。航衲臧l(fā)力金融 拓展汽車后市場(chǎng)
普通對(duì)話 華為萬飚:三代出貴族,PC產(chǎn)品已走在正確道路
普通對(duì)話 共享退潮單車入冬 智享單車卻走向盈利
普通對(duì)話 Achronix發(fā)布新品單元塊 推動(dòng)eFPGA升級(jí)
普通對(duì)話 金柚網(wǎng)COO邱燕:天吳系統(tǒng)2.0真正形成了社保管