《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > 基于ARM9的無線傳感器網(wǎng)絡網(wǎng)關節(jié)點設計
基于ARM9的無線傳感器網(wǎng)絡網(wǎng)關節(jié)點設計
崔光照,陳富強,,張海霞,,胡智宏,
摘要: 設計并實現(xiàn)了一種基于ARM9處理器的無線傳感器網(wǎng)絡嵌入式網(wǎng)關,,用來完成Zigbee和GPRS之間數(shù)據(jù)的透明轉(zhuǎn)換,。節(jié)點以ARM9嵌入式處理器S3C2410為核心, ARM Linux為實時操作系統(tǒng),并結(jié)合Zigbee模塊JN5139和GPRS模塊MC55實現(xiàn)采集數(shù)據(jù)的節(jié)點匯聚和遠程轉(zhuǎn)發(fā),,給出了網(wǎng)關節(jié)點的硬件組成結(jié)構(gòu)和軟件實現(xiàn)流程,。
Abstract:
Key words :

    摘  要: 設計并實現(xiàn)了一種基于ARM9處理器的無線傳感器網(wǎng)絡嵌入式網(wǎng)關,用來完成ZigbeeGPRS之間數(shù)據(jù)的透明轉(zhuǎn)換,。節(jié)點以ARM9嵌入式處理器S3C2410為核心, ARM Linux為實時操作系統(tǒng),,并結(jié)合Zigbee模塊JN5139和GPRS模塊MC55實現(xiàn)采集數(shù)據(jù)的節(jié)點匯聚和遠程轉(zhuǎn)發(fā),給出了網(wǎng)關節(jié)點的硬件組成結(jié)構(gòu)和軟件實現(xiàn)流程,。  

  關鍵詞: Zigbee,; 嵌入式; GPRS,; 網(wǎng)關

     無線傳感器網(wǎng)絡WSN(Wireless Sensor Network)是指由大量成本相對低廉并且具有感知能力,、計算能力、實時通信能力的傳感器節(jié)點組成的嵌入式無線網(wǎng)絡,,是當前眾多領域的研究和應用熱點[1],。其應用已經(jīng)由軍事領域擴展到反恐、防爆,、環(huán)境監(jiān)測,、醫(yī)療健康、工業(yè)控制等眾多生活領域,并且能夠完成由傳統(tǒng)系統(tǒng)無法完成的任務,。 

    在對特定領域(如油井,、水文和環(huán)境等)的監(jiān)測應用中,有時需要搭建Zigbee網(wǎng)絡通過遠程監(jiān)測的方式實現(xiàn)對區(qū)域目標數(shù)據(jù)的采集,,這就需要利用現(xiàn)有的網(wǎng)絡基礎設施對采集到的數(shù)據(jù)進行遠程傳輸,,此時網(wǎng)關節(jié)點在整個無線傳感器網(wǎng)絡體系中起著重要的樞紐作用,,是系統(tǒng)設計的關鍵部分之一。本文從實現(xiàn)角度對無線傳感器網(wǎng)絡網(wǎng)關節(jié)點進行了研究,提出了基于GPRS模塊的網(wǎng)關設計方案,實現(xiàn)了對Zigbee網(wǎng)絡采集數(shù)據(jù)的遠程傳輸,。 

1 網(wǎng)關系統(tǒng)總體結(jié)構(gòu)  

    網(wǎng)關節(jié)點是無線傳感器網(wǎng)絡的控制中心,,能夠主動掃描其覆蓋范圍內(nèi)的所有傳感器節(jié)點,管理整個無線監(jiān)測網(wǎng)絡完整的路由表,,接收來自其他節(jié)點的數(shù)據(jù),,并對數(shù)據(jù)進行校正、融合等處理,,然后通過GPRS或以太網(wǎng)等網(wǎng)絡基礎設施發(fā)給遠程監(jiān)測中心,;同時對于監(jiān)控中心所發(fā)的指令給予相應的處理。網(wǎng)關節(jié)點通常連接兩個或多個相互獨立的網(wǎng)絡,,需要在傳輸層以上對不同的協(xié)議進行轉(zhuǎn)換,,因此對中央控制器的數(shù)據(jù)傳輸和運算能力有較高的要求。本文采用具有較強的信息處理能力和網(wǎng)絡功能的ARM9系列芯片S3C2410作為控制器完成硬件系統(tǒng)的搭建,。 

    本網(wǎng)關采用模塊化設計方案,,如圖1所示由硬件層、軟件層和應用層三大部分組成,。硬件層描述了網(wǎng)關節(jié)點的硬件實現(xiàn),;軟件層移植ARM Linux實時操作系統(tǒng)內(nèi)核,實現(xiàn)Zigbee和GPRS協(xié)議的雙向轉(zhuǎn)換,;應用層在Linux內(nèi)核上開發(fā)相應的驅(qū)動程序和應用程序,,實現(xiàn)對數(shù)據(jù)的高效轉(zhuǎn)發(fā)。 

 

 

2  網(wǎng)關硬件平臺設計 

    網(wǎng)關節(jié)點硬件電路主要由控制器模塊,、存儲單元,、電源管理模塊、傳輸通信模塊和顯示模塊等組成,,其硬件電路結(jié)構(gòu)框圖如圖2所示,。 

 

 

2.1 控制器模塊 

    主控制器是整個嵌入式網(wǎng)關的核心,用來對Zigbee通信模塊進行相應配置并接收傳感器節(jié)點的數(shù)據(jù),,通過AT指令初始化GPRS通信模塊,利用PPP協(xié)議將網(wǎng)關節(jié)點連接到GPRS網(wǎng)絡,,獲得網(wǎng)絡運營商動態(tài)分配的IP地址,并與監(jiān)控中心終端或服務器建立有效連接,。為了達到高性能,、低功耗的目的,設計的嵌入式網(wǎng)關采用以ARM920T為核心的32位的RISC微處理器S3C2410作為主控制器,,該處理器集成了LCD控制器,、USBHost、NAND控制器、BUS控制器,、中斷控制、功率控制,、存儲控制,、UART、WatchDog,、SPI,、SDI/MMC、IS,、IC,、GPIO、RTC,、TIMER/PWM,、ADC等豐富的外圍資源[2],通過外擴存儲器,、串口,、JTAG調(diào)試接口等構(gòu)建硬件平臺。 

2.2 電源管理模塊 

    ARM處理器和Zigbee模塊的供電電壓為DC 3.3V,,GPRS模塊的電源范圍為3.3V~4.8V,,為了滿足系統(tǒng)各部分供電要求,采用DC 5V作為電路板總體供電電源,,該部分電路設計原理如圖3所示,。 

 

 

    為使電路簡單,設計中一部分采用兩個二極管1N5817串聯(lián)的方法,,將5.0V的供電電壓降到合適的范圍內(nèi)供GPRS模塊使用,。兩個二極管串聯(lián)后的電壓降大約為0.4V,這樣GPRS模塊的實際供電電壓為4.6V,,符合其供電要求,。另一部分電路采用三端線性穩(wěn)壓芯片LM1117實現(xiàn)5.0V到3.3V的電壓變換,對ARM處理器和Zigbee模塊進行供電,,為了減小雜波干擾,,在LM1117芯片兩端都加上0.1μF和100μF的電容進行濾波處理。 

2.3 存儲器模塊 

    為充分發(fā)揮S3C2410的性能優(yōu)勢,,設計中擴展了1片64MB的Flash芯片K9F1208和2片SDRAM芯片HY57V641620并聯(lián)構(gòu)建32位的SDRAM存儲器系統(tǒng),。Flash存儲器用來存放程序啟動代碼(Bootloader)、Linux內(nèi)核映像和RAMDISK壓縮映像,,剩余的存儲空間存放用戶程序,。SDRAM用來對操作系統(tǒng)和各類數(shù)據(jù)進行緩存,當系統(tǒng)啟動時,,CPU首先從復位地址0x0處讀取啟動代碼,,在完成系統(tǒng)的初始化后,,程序代碼調(diào)入SDRAM中運行,以提高系統(tǒng)的運行速度,,同時系統(tǒng)及用戶堆棧,、運行數(shù)據(jù)也都存放在SDRAM中,為系統(tǒng)的高速運行提供足夠的存儲空間,。 

2.4 傳輸通信模塊 

    該部分電路用來實現(xiàn)兩種通信協(xié)議的透明轉(zhuǎn)換,,主要包括主控制器S3C2410與無線傳感器網(wǎng)絡連接的Zigbee模塊通信的接口電路及與Internet連接的無線GPRS模塊通信的接口電路設計。S3C2410具有三個通用異步串行接口,,UART0是RS232接口,,用來連接PC機,UART1和UART2是TTL接口,對其設置相應波特率后分別與Zigbee模塊和GPRS模塊相連傳輸數(shù)據(jù),。該部分電路連接原理圖如圖4所示,。 

 

 

2.4.1 Zigbee模塊 

    Zigbee模塊在網(wǎng)關節(jié)點上作為網(wǎng)絡協(xié)調(diào)器負責各子傳感器節(jié)點的通信管理、動態(tài)組網(wǎng)與數(shù)據(jù)傳輸,。本設計采用Jennic公司的JN5139無線模塊,,JN5139是業(yè)界第一款兼容于IEEE802.15.4的低功耗、低成本無線微型控制器[3],。該模塊與S3C2410的通信接口電路如圖4所示,,只需連接TXD0和RXD0兩根信號線即可實現(xiàn)二者的數(shù)據(jù)傳輸通信。 

2.4.2 GPRS模塊 

    采用西門子的MC55 GPRS模塊來實現(xiàn)采集數(shù)據(jù)的遠程傳輸,,MC55模塊內(nèi)嵌TCP/IP協(xié)議棧[4],,降低了設計的難度, 同時大大提高了主控制器處理其他數(shù)據(jù)的能力。MC55與S3C2410的連接非常簡單,,如圖4所示,,二者可以通過標準的串口直接相連。值得注意的是,,MC55模塊串口部分的邏輯電平為+2.65V,,不能直接與S3C2410的+3.3V串口相連,需要加邏輯電平轉(zhuǎn)換電路,,所以本設計在其各引腳電路中都串接了一個100Ω的電阻,,以實現(xiàn)二者串口電平的匹配。MC55模塊的RING0口與S3C2410的UCLK引腳相連,,當數(shù)據(jù)到來時用來通知主控制器,,作為數(shù)據(jù)傳輸?shù)闹袛嘈盘枴?nbsp;

2.5 顯示模塊  

    S3C2410 內(nèi)部集成有LCD控制器,為液晶顯示器提供了時序信號,、顯示數(shù)據(jù)和接口電路,,通過驅(qū)動芯片就可直接與不帶控制器的液晶模塊相連。系統(tǒng)采用128×64點陣LCD系列芯片HY12864,采用2片HD61202作為列驅(qū)動器,,同時使用1片HD61203作為行驅(qū)動器,。主控制器通過SPI接口來傳輸LCD的顯示數(shù)據(jù)。HY12864具有功能強大的指令集,,與主控制器的數(shù)據(jù)傳輸采用8位并行傳輸方式,,片內(nèi)Flash中存入了需要使用的字符庫,通過調(diào)用LCD字符顯示程序顯示中英文字符,,便于對子傳感器節(jié)點數(shù)據(jù)的現(xiàn)場查詢。 

3 系統(tǒng)軟件平臺設計 

    開發(fā)平臺采用開放源碼的Linux操作系統(tǒng),,在其基礎上完成各項相關應用程序的開發(fā),。軟件主要由操作系統(tǒng)的裁剪與編譯、驅(qū)動程序和系統(tǒng)主程序的編寫三部分組成,。 

3.1 網(wǎng)關節(jié)點軟件體系結(jié)構(gòu) 

    網(wǎng)關是建立在傳輸層以上的協(xié)議轉(zhuǎn)換器,,通常它連接兩個或多個相互獨立的網(wǎng)絡,每接收一種協(xié)議的數(shù)據(jù)包后,,在轉(zhuǎn)發(fā)之前將它轉(zhuǎn)換為另一種協(xié)議的格式,。本設計網(wǎng)關節(jié)點軟件體系結(jié)構(gòu)如圖5所示。

 

 

    Zigbee協(xié)議棧由一系列分層結(jié)構(gòu)組成,,包括物理層,、數(shù)據(jù)鏈路層、網(wǎng)絡層,、應用支持層和應用層,,每一層為上一層提供服務。采集節(jié)點將需要傳輸?shù)墓?jié)點地址信息和監(jiān)測數(shù)據(jù)以Zigbee幀的形式打包發(fā)送給路由節(jié)點,,再通過空中接口經(jīng)過一跳或多跳將數(shù)據(jù)傳送到網(wǎng)關節(jié)點,。傳輸數(shù)據(jù)在通過物理介質(zhì)進入網(wǎng)關后,先用Zigbee的協(xié)議棧解封裝得到原始數(shù)據(jù),,網(wǎng)關節(jié)點可應用其操作系統(tǒng)上的應用軟件根據(jù)需要對原始數(shù)據(jù)進行處理,,處理后的數(shù)據(jù)再以TCP/IP協(xié)議打包后通過串口與GPRS通信模塊相連,將數(shù)據(jù)通過空中接口Um傳送到GPRS骨干網(wǎng)上,。GPRS是一種基于IP的分組交換技術,,在GSM網(wǎng)絡的基礎上增加了網(wǎng)關支持節(jié)點SGSN和服務支持節(jié)點GGSN兩個網(wǎng)絡核心實體[5]。GGSN在GPRS網(wǎng)絡中主要起網(wǎng)關作用,,MC55與GGSN通信采用點對點協(xié)議(PPP),,使用PPP協(xié)議登錄網(wǎng)關GGSN之后,MC55模塊就轉(zhuǎn)入在線模式(On-line),,網(wǎng)關發(fā)送的所有數(shù)據(jù)通過MC55模塊可以透明地傳送給GGSN,,從而實現(xiàn)WSN網(wǎng)關通過GGSN與Internet互聯(lián),最終根據(jù)IP地址將數(shù)據(jù)傳送到監(jiān)控中心。為實現(xiàn)系統(tǒng)的監(jiān)測和控制兩大功能,,數(shù)據(jù)幀結(jié)構(gòu)的設計由前導碼,、數(shù)據(jù)模式、目標地址,、數(shù)據(jù)長度,、數(shù)據(jù)信息與校驗和等部分構(gòu)成,其中數(shù)據(jù)信息字段又劃分為方向位,、功能類型和數(shù)據(jù),。方向位分為上行和下行兩種,上行傳輸?shù)氖潜O(jiān)測數(shù)據(jù),,下行傳輸?shù)氖强刂泼睢?nbsp;

3.2 嵌入式ARM Linux內(nèi)核的裁減與編譯 

    標準Linux內(nèi)核對于嵌入式系統(tǒng)來說過于龐大,,需要根據(jù)目標平臺的具體情況對其進行裁剪和配置,去掉不需要的功能和代碼,,然后對內(nèi)核重新編譯生成內(nèi)核映像文件,。Linux內(nèi)核移植過程如圖6所示。 

 

 

    本設計中影響內(nèi)核大小的因素主要有以下三個方面: 

    (1)裁剪Shell可執(zhí)行應用程序 

    Linux系統(tǒng)中提供了非常豐富的shell應用程序,,占用大量的存儲空間,。因此設計中使用BusyBox來替代shell應用程序,以有效地減小系統(tǒng)的體積,。BusyBox是一個著名的開源項目,,它把許多常用Unix/Linux的shell命令的簡化版本組合成一個單獨的小的可執(zhí)行文件,并提供了一個 make menuconfig 的可視化配置界面,,在界面中即可完成所需組件的選擇,,保存配置后直接執(zhí)行make編譯,就可在當前目錄下生成可執(zhí)行文件Busybox,。 

    (2)裁剪配置文件 

    Linux系統(tǒng)中,,/etc目錄下包含許多必要的系統(tǒng)配置文件,它們用于配置系統(tǒng)初始化和運行文件,。在嵌入式系統(tǒng)中,,大部分文件都可以去掉,只保留幾個必要的腳本文件,,如inittab(Sysvinit進程配置文件),、rc.d/*(系統(tǒng)啟動腳本)和fstab(文件系統(tǒng)信息)即可。 

    (3)裁剪設備驅(qū)動文件 

    標準Linux系統(tǒng)支持很多不同種類的硬件,,/dev目錄下存放著大量系統(tǒng)支持的硬件設備文件,,但其中大多數(shù)都是根本用不到的。只保留系統(tǒng)必須的設備文件console,、kmem,、mem,、null、ram,、tty*,、ttyS*、ptys*等,而并行口,、即插即用設備,、軟驅(qū)、光驅(qū),、鼠標等驅(qū)動程序則可以裁剪掉,。 

    裁剪完畢后使用/usr/src/linux的“make config”命令對內(nèi)核進行配置,選擇處理器類型,、設置Flash/SDRAM相應的起始地址和大小,、選擇對字符設備驅(qū)動的配置、選擇虛擬RAM盤文件系統(tǒng)支持和romfs文件系統(tǒng)支持,。配置完成后執(zhí)行“make dep”命令,創(chuàng)建內(nèi)核依賴關系,;執(zhí)行“make zImage”命令,,創(chuàng)建內(nèi)核模塊;執(zhí)行“make modules” 和“make modules _install”命令,,創(chuàng)建內(nèi)核模塊,,完成編譯工作。使用Flash燒寫工具依次將BootLoader,、編譯后的內(nèi)核及根文件系統(tǒng)燒寫到Flash里,,系統(tǒng)加電后ARM Linux就可以被引導啟動。 

3.3 系統(tǒng)主程序設計 

    網(wǎng)關的主要功能就是實現(xiàn)串口數(shù)據(jù)和網(wǎng)絡數(shù)據(jù)的轉(zhuǎn)發(fā),,移植Linux操作系統(tǒng)后,,只需在操作系統(tǒng)上編寫應用程序就可以實現(xiàn)網(wǎng)關的設計要求。應用程序主要包括串口數(shù)據(jù)收發(fā)程序和數(shù)據(jù)轉(zhuǎn)發(fā)處理程序,。軟件采用模塊化的設計方案,,各功能子程序分開編寫,以庫的形式給出供主程序調(diào)用,。MC55模塊內(nèi)置TCP/IP協(xié)議棧,,提供了連接網(wǎng)絡的API接口, 可通過AT指令直接對其進行網(wǎng)絡配置[6],降低了設計的復雜度,。GPRS通信部分以子程序的模式進行編寫,,供主程序調(diào)用,用來管理GPRS模塊的初始化,、網(wǎng)絡激活,、數(shù)據(jù)傳輸?shù)认嚓P操作,。本文只介紹網(wǎng)關節(jié)點主程序結(jié)構(gòu),其程序流程圖如圖7所示,。 

 

 

    系統(tǒng)上電后,,首先啟動Linux操作系統(tǒng),初始化應用程序,,選定一個PANID作為協(xié)調(diào)器的網(wǎng)絡標識,,創(chuàng)建路由表,建立Zigbee網(wǎng)絡并通知其他節(jié)點加入,。通過發(fā)送AT指令啟動GPRS模塊,,設定串口的通信速率,建立socket連接準備數(shù)據(jù)通信,。初始化完畢后監(jiān)聽網(wǎng)絡,,等候外部事件中斷的產(chǎn)生,并通過判斷響應的類型進行相應的數(shù)據(jù)轉(zhuǎn)發(fā)動作,。 

    本文提出了基于GPRS模塊的無線傳感器網(wǎng)絡網(wǎng)關節(jié)點的設計和實現(xiàn)方案,,該方案采用低功耗ARM處理器S3C2410為核心,利用內(nèi)嵌TCP/IP協(xié)議棧的GPRS模塊MC55為網(wǎng)絡的數(shù)據(jù)出口,克服了傳統(tǒng)網(wǎng)關架構(gòu)下Zigbee傳輸速率的瓶頸,。實驗表明,,該網(wǎng)關可靠性高、抗干擾能力強,,同時具有很好的通用性,,能夠方便地應用于各種監(jiān)測場合。 

參考文獻 

[1] 王殊,,閻毓杰,,胡富平,等.無線傳感器網(wǎng)絡的理論及應用[M].北京:北京航空航天大學出版社,,2007. 

[2] SAMSUNG. S3C2410X 32-bit risc microprocessor user's manual revision 1.2.2003. 

[3] JN-DS-JN513x v1.4.Jennic,,Http://www.jennic.com.2007

[4] SIEMENS. MC55/56 hardware interface description.2006. 

[5] 鐘章隊,蔣文怡,李紅君,等.GPRS通用分組無線業(yè)務[M].北京:人民郵電出版社,2001.  

[6] 徐樂年,,陳西廣,,甄雁翔,等. 基于GPRS的鉆孔水文無線遙測系統(tǒng)[J]. 煤礦安全, 2007(8):47-50.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。