《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 基于CC2430的Zigbee網絡節點設計

基于CC2430的Zigbee網絡節點設計

2008-11-11
作者:寧炳武, 劉軍民

  摘? 要: 采用集射頻與微控制器于一身的無線單片機CC2430作為網絡節點設計的核心器件。介紹了CC2430芯片性能及特點,重點介紹了節點硬件設計,基于MSSTATE_LRWPAN協議棧" title="協議棧">協議棧的節點應用程序" title="應用程序">應用程序軟件設計,設計并規定了PC機與協調器" title="協調器">協調器節點間的通信約定,給出了網絡節點性能測試結果。?

  關鍵詞: Zigbee; CC2430; 無線單片機; MSSTATE_LRWPAN?

?

  目前,短距離無線通信技術已成為無線通信技術領域的一個重要分支。在諸多無線數據傳輸應用中,其通信系統所傳輸的數據通常為小量的突發信號,即數據特征為數據量小,要求進行實時傳送。如采用傳統的無線技術,雖然能滿足上述要求,但設備的成本高、體積大且能源消耗較大。針對這樣的應用場合,人們希望利用具有成本低、體積小、能量消耗小和傳輸速率低的短距離無線通信技術。?

  Zigbee技術是一種新的短矩離無線通信技術,由英國Invensys公司、日本三菱電氣公司、美國摩托羅位公司以及荷蘭飛利浦等公司在2002年10月共同提出,它具有成本低、體積小、能量消耗小和傳輸速率低的特性。該技術的提出旨在應用到諸如工業控制、環境監測、商業監控、汽車電子、家庭自動化等低速率網絡應用場合,在這些場合中系統所需求的數據量小,傳輸速率要求不高,終端設備多采用電池供電的嵌入式設備。?

1 CC2430芯片性能及特點?

  CC2430芯片沿用了CC2420芯片的架構,在單個芯片上集成了Zigbee 射頻(RF)前端、內存和微控制器。使用1個8位MCU(8051內核),具有32KB、64KB、128KB三種可編程閃存和8KB的RAM,包含模擬數字轉換器(ADC)、4個定時器(Timer)、AES128協處理器、看門狗定時器(Watch dog timer)、32.768kHz 晶振的休眠模式定時器、上電復位電路(Power On Reset)、掉電檢測電路(Brown out detection),以及21個可編程I/O引腳。?

  CC2430芯片采用0.18μm CMOS生產工藝,工作時的電流損耗為27mA;在接收和發射模式下,電流損耗分別低于27mA和25mA。CC2430的休眠模式和轉換到主動模式的超短時間的特性,特別適合那些要求電池壽命非常長的應用。?

  CC2430芯片的主要特點[1]如下:?

  (1)高性能和低功耗的8051微控制器核。?

  (2)集成符合IEEE802.15.4標準的2.4GHz的RF無線電收發器。?

  (3)優良的無線接收靈敏度和強大的抗干擾性。?

  (4)在休眠模式時僅0.9μA的流耗,此時通過外部中斷或RTC來喚醒系統。?

  (5)在待機模式時少于0.6μA的流耗,此時通過外部中斷來喚醒系統。?

  (6)硬件支持CSMA/CA功能。?

  (7)較寬的電壓范圍(2.0~3.6V)。?

  (8)數字化的RSSI/LQI支持和強大的DMA功能。?

  (9)具有電池監測和溫度感測功能。?

  (10)集成了8路8~14位模數轉換ADC。?

  (11)集成AES128安全協處理器。?

  (12)帶有2個強大的支持多種串行協議的USART口,以及1個符合IEEE 802.15.4規范的MAC計時器,1個常規的16位計時器和2個8位計時器。?

  (13)強大和靈活的開發工具。?

  (14)兼容RoHS的7mm×7mm QLP48封裝。?

2 Zigbee網絡節點硬件設計?

  節點硬件設計框圖如圖1所示。為了實現網絡的硬件基礎架構,將硬件設計分為兩大部分:無線收發模塊及無線測試模塊。無線收發模塊作為節點間的數據接口,無線測試模塊用于網絡功能及性能測試。無線測試模塊中采用RS232串口" title="串口">串口轉換電路實現PC機與協調器節點間的數據傳輸。

?

?

  無線收發模塊電路包括CC2430芯片及其相關外圍電路,由于CC2430將8051內核與無線收發模塊集成到一個芯片當中,因而簡化了電路的設計過程,省去了對單片機與無線收發芯片之間接口電路的設計,縮短了研發周期。該電路設計原理圖如圖2所示。該原理圖主要包括接口電路、3.3V和1.8V電源濾波電路、芯片晶振電路、巴倫電路[2]、入網指示電路及復位電路六部分。接口電路采用兩個12腳排針,將CC2430所有的21個IO引腳以及電源引腳、復位引腳全部引出,以供用戶在應用中根據實際情況進行相應的IO功能定義,增加無線模塊的通用性;電源濾波電路根據不同的供電電源選用不同的濾波電容,該部分電路參考Chipcon公司濾波電容組設計;入網指示電路采用LED直連IO口P1.0。?

?

?

  無線測試模塊電路主要有綁定" title="綁定">綁定測試電路、JTAG電路、供電電路及串口轉換電路四部分,原理圖如圖3所示。綁定測試電路包括一個LED指示燈及一個按鍵,LED直連IO口P1.1,按鍵直連IO口P0.0。主要為實現節點程序的下載及在線調試、開關與燈光控制綁定模擬測試、節點信息數據以及網絡數據傳輸提供硬件接口。供電電路采用低功耗電源芯片LP2985,該芯片通常用于電池供電的場合(例如膝上型/掌上型電腦、PDA、便攜式數碼照相機/數碼攝像機),能夠確保150mA的輸出電流,極低的漏電電壓,輸出電壓精確度為0.01V。輸入電壓范圍為4V~10V,輸出電壓范圍2.5V~5V。實際應用中選用LP2985-3.3V穩壓模塊。在電源供電部分也可以采用2節AA電池供電,當采用該供電方式時,需將P5跳線拔去。串口轉換電路采用MAX3223雙通道轉換芯片(2-driver/2-receiver),工作電壓范圍為3V~5.5V。該電路主要作為協調器節點與PC之間的接口。?

?

?

  對于射頻電路來說,器件的相互干擾變得尤為敏感。建議在無線模塊部分采用雙層PCB板,頂層主要用于信號布線,底層主要用于電源和地布線,在無布線的開放區域采用少量過孔相連到地。另外CC2430芯片底部必須可靠接地,因而其底部必須采用少量過孔與地相連。芯片的需接地管腳如果需通過過孔接地則過孔應盡可能與該芯片管腳接近,與電源管腳相連的去耦電容(濾波電容)也應盡可能地與電源管腳接近并且電容接地端盡可能地通過過孔可靠接地。外圍器件的體積應盡可能的小,建議使用0402規格的阻容器件。如果采用PCB天線,則為了減少板材對PCB天線的影響以及方便PCB天線的制作,使得天線獲得最佳性能,建議采用FR4普通板材,其介電常數要求為4.5,板材厚度為1mm,敷銅厚度為0.35μm。?

3 Zigbee網絡節點軟件設計?

  節點應用程序設計流程如圖4所示,應用程序底層運行的是MSSTATE_LRWPAN協議棧[3]。應用程序首先進行硬件及協議棧初始化。硬件初始化包括串口初始化、IO口初始化及狀態指示LED初始化;協議棧初始化主要設置協議棧各層初始狀態。由于射頻數據接收及串口數據接收均采用中斷形式,還需進行中斷初始化,并開全局中斷。端點注冊目的是告知PC端應用程序每個節點定義的端點信息(含端點號及端點數量)。PC綁定狀態初始化為空閑狀態,即進行串口狀態監測與串口命令解析。應用程序狀態初始化為建(入)網狀態。完成以上初始化過程后進入一個無限循環執行應用支持子層狀態或PC綁定狀態機及應用程序狀態機。?

?

?

  在用戶應用程序中,首先需要指定節點上端點間基本的通信模式。一種簡單的模式就是所有RFD節點均周期性地向協調器節點發送數據包。該模式相對來說比較簡單,因為協調器節點地址始終為0。?

  因為事先并不知道RFD節點的短地址,所以RFD節點間不太可能采用直接消息傳輸模式進行彼此間的通信,這主要是由于在簇樹網絡中各RFD節點的短地址的分配還與其入網的順序以及各自所在的路徑深度有關。當然可以通過在協調器節點的應用程序中寫一段代碼告知各RFD節點彼此的網絡地址,但這種做法將使得用戶程序變得非常復雜和冗長,而且占用了不必要的代碼空間。RFD節點間通信可以采用一種更簡便的方法,即采用間接消息傳輸模式。在該傳輸模式中,各RFD節點間并不需要知道間接消息的目的地址而僅僅需要將消息發送給協調器節點。此時協調器節點通過查詢綁定表負責將消息轉發到其正確的目的地。?

  RFD節點應用程序還要考慮一個問題:當RFD節點與其父節點之間的鏈路中斷時(也即與其父節點的關聯被解除)如何處理(這種情況的發生可能是由于其父節點電源供電不足或者是其父節點與其父節點的父節點關聯被解除等)。此時RFD節點應該能夠檢測到該斷鏈情況并且恢復該連接,這就要求應用程序執行ping父節點過程及重入網過程。ping父節點過程用于檢測中斷情況,而重入網過程用于通信鏈路恢復。?

  節點應用程序也采用有限狀態機(FSM)[4, 5]風格,其狀態轉換如圖5所示。可分為四部分:?

?

?

  (1)節點建(入)網狀態(APP_STATE_START_JOIN),協調器節點在該狀態下執行網絡建立過程,路由器節點及終端節點在該狀態下則執行入網過程,并同時點亮建(入)網成功狀態指示LED;?

  (2)節點信息發布狀態(APP_STATE_SEND_INFO&APP_STATE_SEND_ANNOUNCE),協調器節點執行發送節點信息過程,向PC機發送自身節點信息以及向PC機轉發其子孫節點信息,路由器節點和終端節點執行節點信息通告過程,向協調器節點發送入網節點信息;?

  (3)用戶應用程序狀態(APP_STATE_RUN_APPx),在這里實現用戶消息數據的發送以及用戶其他的指定功能。在執行應用程序FSM之前,協調器節點需執行PC綁定FSM,以檢測和解析來自PC機的各種命令。當來自PC機的命令為用戶發送數據命令時,則在PC綁定FSM中立即調用回調函數接收來自PC機的用戶數據,然后將該數據拷貝到發射緩沖區中等待用戶應用程序讀取,并將RCVDataFlag發射標志置為TRUE。在應用程序狀態中,協調器節點只檢測數據發射標志RCVDataFlag是否為TRUE。若RCVDataFlag為TRUE,說明發射緩沖區中有待發射數據,則調用消息數據發送過程來完成一次消息數據的發送;在該狀態中,終端節點執行readPCdata()過程直接從串口讀取數據,并以“<”、“>”為數據字符起止標記,將RCVDataFlag發射標志置為TRUE以執行消息數據發送過程來完成一次消息數據的發送。若RCVDataFlag為FALSE則立即轉入網絡維護狀態進而發送ping數據包。?

  (4)網絡維護狀態(APP_STATE_SEND_PING&APP_STATE_START_REJOIN),包括執行鏈路狀態檢測及重入網過程。鏈路狀態檢測中,周期性向父節點發送0負載數據包,周期為1s。一旦節點ping失敗,則立即執行重入網過程并關閉入網指示LED,重入網成功點亮入網指示LED并立即轉入用戶應用程序狀態。?

4 PC機與協調器節點通信約定?

  PC機與協調器節點通過二進制編碼的方式進行通信。其數據包格式如圖6所示。排列順序為數據包包頭(HEADER)占2字節,其值設置為0x01、0x02,用于區分是正常的ASCII碼輸出還是數據包輸出;數據包負載長度字節;數據包負載(PAYLOAD),長度由LENGTH指定;數據包CRC校驗,占1字節。數據包負載的第1個字節為命令類型字節,指定了數據包類型。?

?

?

  在本約定中,命令類型(CMD TYPE)字節作為數據負載的一部分,因而數據包命令類型字節長度包含在LENGTH長度中,如果為純命令數據包,則數據負載長度只為命令類型字節長度也即為1。如果數據負載為純用戶數據則命令字節值為0xFF。當節點報告入網狀態或ping數據到達或協調器節點發送綁定請求等事件發生時,協調器節點向PC客戶端發送相應的命令數據包,其數據負載為0。?

  當協調器節點收到命令類型為0xFF的數據包時,協調器節點立即調用PC綁定回調函數用于處理接收到的PC數據包,同時將發射標志RCVDataFlag設置為TURE。?

??? 命令類型包括用戶數據命令、0端點命令、綁定初始化請求命令、綁定初始化響應命令、獲取綁定信息請求命令、警報請求命令等。具體定義如表1所示。?

?

?

  在協調器節點中,命令的解析與執行通過PC綁定有限狀態機pbdFSM()完成,其狀態轉換圖如圖7所示。目前僅定義了3種狀態:空閑狀態,在該狀態中進行串口數據的讀取以及來自PC命令的解析,根據不同的命令實現不同的功能;發送警報狀態,在該狀態中根據在空閑狀態解析出來的命令類型,執行節點警報發送過程;發送警報等待狀態,在該狀態中執行警報應答過程,即對每個收到的警報命令協調節點均向PC回復應答。?

?

?

5 網絡節點性能測試?

  在節點參數測試中,使用Chipcon公司的SmartRF? Studio測試軟件來測試節點參數,測試中兩節點連續互發固定大小(30B)的數據包;通信信道固定(0x0B信道),節點發射功率為0dBm,測試節點采用3V電池供電。?

5.1 節點接收靈敏度(RSSI)測試?

  在接收靈敏度測試中采用兩節點互發數據的方式進行,兩節點間無任何障礙物。測試結果如表2所示。?

?

?

5.2 通信時延測試?

  通信時延包括協議棧時延以及空中傳播時延,空中傳播時延可以忽略不計,因而協議棧時延即可記為節點通信時延。協議棧時延從執行aplSendMSG()發送消息函數開始到無線目標實際開始物理發射為止。在aplSendMSG()開始發送消息時,記錄MAC計時器的值,使用函數aplGetLastTxTime()返回無線發射起始時間,兩者之差即為協議棧發射時延。使用aplMacTicksToUs()函數將以tick為單位的時差值轉為μs值。實際測量中,協議棧發射延時約為550μs,接收延時約為600μs;

??? 本文詳細介紹了Zigbee網絡節點的軟硬件設計,提出了針對CC2430的射頻設計要點。節點硬件設計上采用微型化結構,節點應用程序設計上采用了高效的程序設計方式——有限狀態機(FSM)機制,提高了程序的運行效率。從測試結果可以看出,節點具有較高的接收靈敏度、較遠的通信距離以及非常短的通信延遲,完全可以應用于一般的工業控制、樓宇控制、家庭自動化等實時性要求比較高的場合。?

參考文獻?

[1] CHIPCON. CC2430 PRELIMINARY data sheet(rev.1.03) SWRS036A[M]:CHIPCON,2005.?

[2] ANDERSEN A. Implementation of microstrip balun for CC2420 and CC243x[R]. 2006.?

[3] REESE R. A ZigbeeTM-subset/IEEE 802.15.4TM multiplatform Protocol Stack. In:Electrical/Computer Engr MSU,editor.2006.?

[4] GRIESKAMP W, GUREVICH Y, SCHULTE W,et al.Generating finite state machines from abstract state machines[J]. Software Engineering Notes. 2002, 27(4):112-122.?

[5] HABIBI A, MOINUDEEN H, TAHAR S. Generating finite state machines from systemC[J]. International Workshop on Abstract State Machines.2005.?

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 日韩精品成人 | 中文字幕禁忌乱偷在线 | 26uuu欧美日本 | 涩涩网站在线看 | 国产亚洲精品国产福利在线观看 | 日本人免费xxx在线视频 | 黄色小网站在线观看 | 人人澡人人人人夜夜爽 | 国外免费精品视频在线观看 | 色黄网站aaaaaa级毛片 | 色偷偷人人 | 美女视频黄a全部免费专区一 | 翁熄系列乱吃奶小玲 | 露脸超嫩97后在线播放 | www.黄色网址.com | 欧美一级爽快片淫片高清在线观看 | 免费观看a级完整视频 | 日韩美女拍拍免费视频网站 | 国外欧美一区另类中文字幕 | 猛h辣h高h文湿重口 美日毛片 | 国产欧美精品区一区二区三区 | 天天插天天舔 | 日日夜人人澡人人澡人人看免 | 韩国伦理剧在线看 | 色迷迷网免费站视频在线观看 | 欧美xxxxxxxxxx | 韩国伦理片免费在线观看 | 免费人成在线观看视频不卡 | 欧美高清在线精品一区二区不卡 | 黄污视频在线 | 射狠狠| 黄网站在线播放 | 亚洲xx网| 美日韩视频 | 亚洲色图综合在线 | 日本丝袜护士 | 国产精品久久久久久久久免费hd | 中文字幕视频在线播放 | 在线观看黄色大片 | 黄色高清视频 | 亚洲不卡视频在线观看 |