LM3S1138與CC2420的無線傳感器網(wǎng)絡(luò)通信
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引 言
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)是集信息采集、信息傳輸、信息處理于一體的綜合智能信息系統(tǒng),由部署在監(jiān)測(cè)區(qū)域內(nèi)大量的廉價(jià)微型傳感器節(jié)點(diǎn)組成。它是通過無線通信方式形成的一個(gè)多跳自組織網(wǎng)絡(luò),具有低功耗、低成本、分布式、自組織、快速展開、抗毀性強(qiáng)等特點(diǎn)。無線傳感器網(wǎng)絡(luò)能夠?qū)崟r(shí)監(jiān)測(cè)系統(tǒng)并及時(shí)反饋信息,以實(shí)現(xiàn)復(fù)雜的指定范圍的目標(biāo)檢測(cè)與跟蹤,具有廣闊的應(yīng)用空間。本文介紹使用LM3S1138微控制器和CC2420無線射頻芯片構(gòu)建無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的方法,并說明了如何實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的通信傳輸。
1 硬件節(jié)點(diǎn)設(shè)計(jì)
1.1 網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)
無線傳感器網(wǎng)絡(luò)由網(wǎng)絡(luò)中的多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)構(gòu)成。用模塊化的設(shè)計(jì)方法,節(jié)點(diǎn)的硬件由微控制器模塊和無線射頻模塊組成。其中,微控制器模塊包含處理器核、數(shù)據(jù)存儲(chǔ)電路和A/D轉(zhuǎn)換器等,根據(jù)不同的需求還可以連接其他傳感器模塊。網(wǎng)絡(luò)節(jié)點(diǎn)硬件結(jié)構(gòu)如圖1所示。
1.2 LM3S1138微控制器
微控制器選用Luminary公司的LM3S1138。它采用32位RISC結(jié)構(gòu)的Cortex-M3處理器核,具有64 KB單周期Flash,16 KB單周期訪問的SRAM,4個(gè)通用定時(shí)器模塊(GPTM)(每個(gè)提供2個(gè)16位定時(shí)器),16位ADC事件觸發(fā)器,兼容ARM FiRM的看門狗定時(shí)器,2個(gè)同步串行接口(SSI),3個(gè)完全可編程的16C550型UART(支持IrDA),3個(gè)獨(dú)立集成的模擬比較器,2個(gè)I2C模塊,9~46個(gè)GPIO(具體數(shù)目取決于配置),片內(nèi)低壓差(LDO)穩(wěn)壓器(具有可編程的輸出電壓,用戶可調(diào)節(jié)的范圍為2.25~2.75 V),遵循IEEE 1149.1—1990標(biāo)準(zhǔn)的測(cè)試訪問端口(TAP)控制器(通過JTAG和串行接口進(jìn)行調(diào)試訪問,完整的JTAG邊界掃描),6個(gè)復(fù)位源,以及可編程的時(shí)鐘源控制(可對(duì)單個(gè)外設(shè)的時(shí)鐘進(jìn)行選通以降低功耗)。Cortex-M3是ARM公司為要求有快速中斷響應(yīng)能力的深度嵌入式應(yīng)用而設(shè)計(jì)的一款低功耗嵌入式處理器。它具有門數(shù)少、中斷延遲短、調(diào)試成本低的特點(diǎn),采用ARMv7-M架構(gòu),是一個(gè)可綜合、高度可配置的處理器。Cortex-M3包含一個(gè)高效的哈佛結(jié)構(gòu)三級(jí)流水線,可提供1.25 DMIPS/MHz,工作頻率為50 MHz,采用兼容Thumb指令的Thumb-2指令集以獲取更高的代碼密度。它采用硬件除法和單周期乘法;集成嵌套向量中斷控制器(NVIC),34個(gè)中斷具有8個(gè)優(yōu)先級(jí);帶可選的存儲(chǔ)器保護(hù)單元(MPU),提供特權(quán)模式來保護(hù)操作系統(tǒng)的功能;非對(duì)齊式數(shù)據(jù)訪問使數(shù)據(jù)能夠更為有效地安置到存儲(chǔ)器中;精確的位操作(bit-banding)不僅最大限度利用了存儲(chǔ)器空間,而且還改良了對(duì)外設(shè)的控制。本文的硬件平臺(tái)選用以LM3S1138為主控芯片的EasyARM1138開發(fā)板。
1.3 CC2420無線射頻芯片
CC2420無線射頻芯片是Chipcon公司開發(fā)的符合ZigBee標(biāo)準(zhǔn)的2.4 GHz射頻芯片。該芯片是面向于低功耗設(shè)計(jì)的兼容ZigBee協(xié)議/IEEE 802.15.4標(biāo)準(zhǔn)的產(chǎn)品,提供擴(kuò)展的硬件來實(shí)現(xiàn)信息處理、數(shù)據(jù)緩存、突發(fā)傳輸、數(shù)據(jù)加密解密、數(shù)據(jù)識(shí)別、通道空閑確認(rèn)、連接質(zhì)量評(píng)估和包時(shí)間信息等特性。這些特性減輕了主機(jī)的負(fù)擔(dān),使得CC2420可以與一個(gè)低速低價(jià)的微控制器進(jìn)行連接,而通過SPI接口可以很容易地對(duì)CC2420進(jìn)行控制和數(shù)據(jù)訪問。
1.4 LM3S1138與CC2420的硬件連接
根據(jù)周立功公司EasyARM1138開發(fā)板用SSI口模擬SPI的特點(diǎn)和CC2420的工作原理,LM3S1138與CC2420的硬件連接如圖2所示。由于CC2420模塊使用SPI接口與主機(jī)進(jìn)行通信,而EasyARM1138中使用SSI接口來模擬SPI進(jìn)行傳輸,在開發(fā)板上SSI口提供的幀格式中,選用SPO=0和SPH=0時(shí)Freescale SPI的幀格式。但是此幀格式中,片選信號(hào)SSIFss不符合CC2420模塊的SPI通信規(guī)則,所以選擇了另一個(gè)引腳模擬SPI片選信號(hào),即PD3/U1Tx引腳。
2 IEEE 802.1 5.4標(biāo)準(zhǔn)
IEEE標(biāo)準(zhǔn)委員會(huì)在2000年12月份正式批準(zhǔn)并成立了802.15.4工作組,任務(wù)就是為了滿足低功耗、低成本的無線網(wǎng)絡(luò)要求,開發(fā)一個(gè)低數(shù)據(jù)率的WPAN標(biāo)準(zhǔn)。IEEE802.15.4是基于標(biāo)準(zhǔn)的協(xié)議,它為無線傳感器網(wǎng)絡(luò)應(yīng)用提供所需要的網(wǎng)絡(luò)基礎(chǔ)設(shè)施;具有復(fù)雜度低、成本低、功耗低的特點(diǎn),能在低成本設(shè)備之間進(jìn)行低數(shù)據(jù)率的傳輸。該標(biāo)準(zhǔn)滿足國(guó)際標(biāo)準(zhǔn)組織(ISO)開放系統(tǒng)互連(OSI)參考模式,包括物理層、媒體訪問控制層、網(wǎng)絡(luò)層和高層。IEEE802.15.4定義了物理層(PHY)和媒體訪問控制層(MAC),協(xié)議結(jié)構(gòu)如圖3所示。
3 通信軟件設(shè)計(jì)
3.1 總體設(shè)計(jì)
CC2420模塊使用SPI接口與主機(jī)進(jìn)行通信,因此本設(shè)計(jì)中以EasyARM1138開發(fā)板作為主機(jī),CC2420模塊作為從機(jī),分別作為發(fā)送端和接收端。先在開發(fā)板上通過SPI引腳對(duì)CC2420進(jìn)行初始化;再對(duì)CC2420芯片內(nèi)部的寄存器進(jìn)行相應(yīng)的配置,以及定義通信中使用的數(shù)據(jù)格式;最后設(shè)置好信道后啟動(dòng)發(fā)送。
3.2 發(fā)送端和接收端軟件設(shè)計(jì)
要實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的通信就是要實(shí)現(xiàn)發(fā)送端和接收端的功能,使兩個(gè)節(jié)點(diǎn)間可自由地交換信息。下面就主要介紹其實(shí)現(xiàn)的方法。
3.2.1 發(fā)送端和接收端程序流程
發(fā)送端和接收端程序流程分別如圖4和圖5所示。
3.2.2芯片初始化配置
在使用CC2420進(jìn)行無線數(shù)據(jù)傳輸之前,必須根據(jù)需要進(jìn)行一些配置。使能SPI后,由微控制器發(fā)送命令給CC2420,這些命令通過模擬的SPI接口傳送到CC2420。通過這種方式,用戶可根據(jù)需要來配置寄存器的值,選擇是否使用地址認(rèn)證、安全認(rèn)證等功能,同時(shí)還需要設(shè)置好發(fā)送和接收的頻道。在2.4 GHz下提供有16個(gè)可選頻道,初始化程序如下:
3.2.3 發(fā)送端和接收端程序?qū)崿F(xiàn)
從程序流程中可以看出,發(fā)送端和接收端都需要先初始化引腳和芯片,等待CC2420晶振起振后,根據(jù)程序的需要來進(jìn)行寄存器的配置。發(fā)送端,需要先通過微控制器的SPI接口把需要傳送的數(shù)據(jù)發(fā)送到CC2420的TXFIFO中緩存起來,這需要根據(jù)自定義或IEEE 802.15.4定義的幀格式來發(fā)送,緩存好數(shù)據(jù)后就可以啟動(dòng)發(fā)送了。本設(shè)計(jì)采用IEEE標(biāo)準(zhǔn)的幀格式,在幀結(jié)構(gòu)中Preamble Se-quence、SFD以及FCS在發(fā)送時(shí)由硬件自動(dòng)生成。其幀格式如圖6所示。
接收端在初始化和配置寄存器等準(zhǔn)備就緒后就可以啟動(dòng)接收。當(dāng)接收端檢測(cè)到發(fā)送的幀中的幀開始分割符SFD后開始接收,接收的數(shù)據(jù)存放在RXFIFO緩存中。發(fā)送端的發(fā)送函數(shù):
結(jié) 語
本設(shè)計(jì)采用LM3S1138微控制器與CC2420無線射頻芯片連接,利用CC2420的無線傳輸功能實(shí)現(xiàn)了點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)傳輸。設(shè)計(jì)中僅使用IEEE 802.15.4標(biāo)準(zhǔn)對(duì)PHY層和MAC層進(jìn)行了實(shí)現(xiàn),還可以把ZigBee協(xié)議移植到開發(fā)板上,用ZigBee協(xié)議來管理實(shí)現(xiàn)星型、簇狀或者網(wǎng)狀拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò),擴(kuò)展多個(gè)節(jié)點(diǎn),將此無線傳感器網(wǎng)絡(luò)應(yīng)用到環(huán)境、醫(yī)療、家居、工業(yè)和商業(yè)等領(lǐng)域。