《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業(yè)界動態(tài) > 低功耗無線數(shù)字傳輸模塊的設計與應用

低功耗無線數(shù)字傳輸模塊的設計與應用

2008-08-11
作者:申長軍 吳慶宏

??? 摘 要: 介紹了一種以PIC16F73單片機芯片和CC1000調制解調芯片為核心的超低功耗" title="低功耗">低功耗無線數(shù)字傳輸模塊的設計方案及實現(xiàn)方法,并給出了該模塊在無線智能IC卡水表中的應用。該模塊通信速率最高可達38.4kbps,查詢工作方式下平均工作電流為10?滋A,與同類設計相比,該模塊具有功耗低、使用方便、通信可靠等優(yōu)點。
??? 關鍵詞: 無線通信?? 低功耗?? 移頻鍵控?? PIC16F73單片機芯片?? CC1000調制解調芯片

?

??? 在工業(yè)、科學研究以及醫(yī)療設備中,目前出現(xiàn)了大量需要進行通信的設備,這些設備通信距離" title="通信距離">通信距離較近、數(shù)據量較小、不適合布線。比如自動抄表系統(tǒng)、酒店點菜系統(tǒng)以及現(xiàn)場數(shù)據采集系統(tǒng)等,其中有很多設備是可移動的,而且要求體積小便于攜帶。因此,要求其通信設備具有體積小、功耗低、成本低、使用方便等特點。基于這些需求,本文給出了一款超低功耗的無線數(shù)字傳輸模塊的設計及實現(xiàn)方法。
??? 該模塊采用Chipcon公司的超低功耗FSK調制解調芯片CC1000和Microchip公司的低功耗單片機芯片PIC16F73[1],從而保證了系統(tǒng)的超低功耗。同時,為了適應電池供電系統(tǒng)的應用,該模塊支持查詢方式的無線通信,可以使系統(tǒng)的平均工作電流低至10?滋A。該模塊具有8組信道,可以實現(xiàn)點對點、點對多點的半雙工通信,并且提供標準串行數(shù)據接口,支持TTL、RS232和RS485通信接口,可以方便地與其它控制器或計算機連接。
1 模塊硬件設計
?? 模塊結構框圖如圖1所示。

?


??? 作為工作在物理層和數(shù)據鏈路層的底層通信設備,該系統(tǒng)完成數(shù)據的調制解調、假數(shù)據過濾、數(shù)據組合、解碼數(shù)據幀、數(shù)據校驗等功能。在接收過程中完成數(shù)據由電信號向位流、由位流數(shù)據向字節(jié),由字節(jié)向數(shù)據幀的變換,而在發(fā)送過程中則完成接收時的逆向過程。數(shù)據發(fā)送過程中數(shù)據流的變化如圖2所示。

?


??? 調制解調由CC1000完成。系統(tǒng)采用頻移鍵控調制(FSK),載波頻率為434MHz,帶寬為64kHz,數(shù)據采用差分曼徹斯特編碼發(fā)送,空中發(fā)送數(shù)據速率" title="數(shù)據速率">數(shù)據速率可以根據需要設置,最高FSK 數(shù)據速率為76.8kpbs。CC1000采用三線命令接口和兩線數(shù)據接口,可編程配置載波頻率和數(shù)據速率等內容。有關CC1000的詳細內容見參考文獻[2]。
??? 模塊控制器在發(fā)送時從用戶接口接收數(shù)據和命令,并將用戶數(shù)據轉換成數(shù)據幀傳送給CC1000,控制CC1000進行數(shù)據發(fā)送。在接收時,控制器接收從CC1000傳送過來的數(shù)據,分析數(shù)據,過濾噪聲,將數(shù)據由位流轉換為字節(jié),進行校驗并將用戶數(shù)據通過串行口傳送給用戶,使用戶可以實現(xiàn)所發(fā)即所收。
??? 模塊是為低功耗系統(tǒng)而設計的,除了具有SLP引腳可以直接休眠模塊外,還有一些專門設計的命令來支持使用查詢方式的通信。模塊接口引腳功能如表1所示。PCMD、RX、TX三線組成模塊的三線接口,配置命令時PCMD必須為高電平。配置命令工作時序如圖3所示。

?

?


??? 模塊支持的命令如表2所示。

?


??? 發(fā)送數(shù)據時PCMD應置為低電平,通過串行口發(fā)送數(shù)據即可。模塊使用時間間隔區(qū)分數(shù)據幀,如果有傳輸半個字節(jié)的時間沒有接收到數(shù)據,則認為此前接收到的為一幀數(shù)據,系統(tǒng)將編碼該幀數(shù)據并通過CC1000進行調制和發(fā)送。因此,如果用戶數(shù)據是以數(shù)據幀的格式發(fā)送的,用戶應當連續(xù)發(fā)送數(shù)據,以避免模塊將一幀數(shù)據分割為兩幀數(shù)據發(fā)送,從而降低發(fā)送效率。模塊只能進行半雙工通信,沒有數(shù)據發(fā)送時模塊處于接收狀態(tài);有休眠信號時模塊進入休眠狀態(tài),此時模塊無法接收和發(fā)送數(shù)據,只有將模塊喚醒后,才能發(fā)送和接收數(shù)據。READY信號是模塊工作狀態(tài)指示信號。當READY長時間處于低電平狀態(tài)時,可以使用RST將模塊復位,重新設置模塊的工作狀態(tài),以避免模塊處于錯誤工作狀態(tài)。
2? 軟件設計
??? 系統(tǒng)軟件采用專門為PIC單片機設計的C語言CC5X,該語言與ANSI C兼容,并針對PIC單片機進行了優(yōu)化,能夠為PIC系列單片機產生優(yōu)質高效的代碼,具體內容參見參考文獻[3]。系統(tǒng)控制器軟件設計是本系統(tǒng)的核心內容,由于控制器要完成與用戶和CC1000雙方的通信及數(shù)據封裝,因此系統(tǒng)軟件借用Windows系統(tǒng)的消息循環(huán)機制設計,采用消息循環(huán)的體系結構。這種結構使得程序結構清晰、可擴展性強、可移植性強。經過長時間的實踐,證明這種結構非常適合單片機系統(tǒng)軟件的開發(fā)。
??? 圖4為程序初始化和主函數(shù)部分的結構框圖。系統(tǒng)程序總體結構采用消息驅動機制。在系統(tǒng)內部寄存器和變量初始化完成后便可以進入消息循環(huán)程序查詢系統(tǒng)消息。系統(tǒng)消息一般是CPU 外部或內部的事件通過CPU 中斷系統(tǒng)激勵CPU 運行的。為了能夠使系統(tǒng)產生和響應消息,必須啟動CPU 的中斷系統(tǒng),因而在進入消息循環(huán)前啟動CPU定時中斷、串行通信中斷、外部觸發(fā)中斷。程序初始化部分在CPU 上電或復位后只執(zhí)行一次,CPU 在正常工作時始終都在消息循環(huán)中反復檢測消息是否存在,并根據消息的種類做不同的操作,最后清除相應的消息標志,再進行循環(huán)檢測消息。本系統(tǒng)中消息共有三種,分別是程序節(jié)拍控制信號、與CC1000通信的信號以及與用戶通信的信號。程序節(jié)拍控制信號控制程序的運行過程,包括時間信號、外部中斷信號(休眠、喚醒)以及其它定時動作信號;與CC1000通信的信號包括CC1000狀態(tài)轉換信號、接收完成信號、發(fā)送開始信號以及發(fā)送完畢信號等,負責管理與CC1000的通信和控制工作;與用戶通信的信號包括接收用戶數(shù)據完畢信號、用戶數(shù)據發(fā)送完畢信號以及向用戶發(fā)送數(shù)據開始信號等,負責與用戶的通信管理。程序的消息循環(huán)結構如圖5所示。

?


3? 模塊性能
3.1 模塊功耗

??? 作為一款專門為低功耗系統(tǒng)而設計的無線數(shù)字傳輸模塊,該模塊具有低電壓供電、低功耗的特點。供電電壓范圍為3V~12V。當供電電壓為3V時,在接收狀態(tài)下,模塊電流為9.6mA;在發(fā)送狀態(tài)下,模塊電流為25.6mA;在休眠狀態(tài)下,模塊電流為2μA。通信系統(tǒng)使用查詢方式工作時,處于接收方的工作電流計算公式如下,即若休眠時間為tsl, 檢測信號時間為tdt, 那么平均工作電流為(單位為?滋A):
???

??? 因此,如果一個系統(tǒng)的休眠時間為8s,檢測時間為10ms,那么平均工作電流為13μA。這樣,5400mAh的鋰電池可以使用47年!當然,實際使用中應該計算模塊處于接收狀態(tài)時的電流,此時模塊的功耗就取決于模塊工作的情況和傳輸數(shù)據量的大小,但是其極低的待機功耗對于移動設備來說是十分重要的。
3.2? 通信可靠性
??? 通信誤碼率可以使用如下近似公式計算:
??? ???

式中,N為傳輸?shù)亩M制碼元總數(shù);Ne為被傳輸錯的碼元數(shù),理論上應有N→∞。
??? 在實際使用中,N足夠大時,才能夠把Pe近似為誤碼率。經過對模塊的測試,在數(shù)據速率為2400bps、通信距離為100m(平原條件)時,通信誤碼率為10-3~10-5。在數(shù)據速率提高時,通信誤碼率會增加,但是通信模塊可采用多項技術來提高通信可靠性。在物理層,模塊采用差分曼徹斯特編碼技術發(fā)送數(shù)據,從而保證通信中的同步問題;而在數(shù)據鏈路層,使用CRC(循環(huán)冗余編碼)進行數(shù)據幀校驗,用以保證數(shù)據到達用戶應用層以后的可靠性。當然,用戶在應用層還可以采取多種通信協(xié)議來進一步提高通信的可靠性。
3.3? 通信距離
??? 在無線通信中,通信距離與發(fā)射機發(fā)送信號的強度和接收機接收靈敏度有著直接關系。本模塊的發(fā)送功率為10dBm,而在數(shù)據速率為2400bps、帶寬為64kHz、通信二進制誤碼率為10-3條件下,模塊的接收靈敏度為-110dBm。在天線高于地面3m的可視條件下,可靠通信距離(誤碼率小于10-3)大于300m。在市區(qū)環(huán)境中,可靠通信距離在100m左右。
4 模塊應用
??? 無線智能IC卡水表由負責顯示和讀寫IC卡的上位機" title="上位機">上位機和負責閥門控制的下位機" title="下位機">下位機組成,上位機和下位機之間的通信使用無線數(shù)字傳輸模塊完成,系統(tǒng)結構如圖6所示。上位機負責人機接口,包括顯示下位機狀態(tài)、顯示剩余水量、讀取IC卡以及與下位機通信等功能,下位機完成水脈沖計數(shù)并接收上位機的指令控制閥門開關狀態(tài)。由于本系統(tǒng)采用電池供電,所以要求系統(tǒng)的功耗必須非常低。水表的上位機和下位機均采用Microchip公司的低功耗單片機PIC16F73,下位機工作在查詢狀態(tài)。

?


??? 無線智能IC卡水表的通信方式如下:通信由上位機發(fā)起,當需要通信時(按鍵被按下或插入IC卡時),上位機首先發(fā)送10s的同步頭,然后發(fā)送地址,其后等待下位機應答。而下位機使用查詢的方式與上位機進行通信,即下位機每9s喚醒一次無線通信模塊以檢測是否有同步頭信息,檢測時間為10ms。如果沒有同步頭信息,無線通信模塊轉入休眠狀態(tài);反之,下位機接收上位機信息,并進行解密和地址判斷。如果接收到的地址為本機地址,則分析指令并進行響應,否則轉入休眠。因為上位機發(fā)送同步頭的時間大于下位機休眠的時間,所以保證了通信的可靠性。這種通信方式雖然速度較慢,但是卻使得下位機的功耗大大降低,延長了下位機電池的壽命。在該系統(tǒng)中,由于數(shù)據量較小,所以通信速度不是關鍵問題,而低功耗才是系統(tǒng)最重要的問題。
??? 基于CC1000的低功耗無線數(shù)字通信模塊完成了設計目標,達到了低功耗、高可靠性的通信要求,并且通信速度可以達到38.4kbps,所以可以滿足大部分短距離無線數(shù)字通信的要求。當然,由于系統(tǒng)的功耗比較低,使得發(fā)射功率較小,通信距離比較近。因此,在對通信距離要求更高時,可以適當加大發(fā)射功率,以增加傳播距離。目前該模塊已經在無線智能IC卡水表中使用,工作穩(wěn)定。
參考文獻
1 PIC16F7X Data Sheet. Microchip Technology Inc., 2002
2 SmartRF CC1000 Preliminary Datasheet (Rev2.1).Chipcon AS, 2002
3 CC5X C Compiler for the PICmicro Devices User’s Manual?Version 3.1. B Knudsen Data, 2001
4 陽憲惠. 現(xiàn)場總線技術及其應用.北京:清華大學出版社,2001

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。