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