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

低功耗無線數(shù)字傳輸模塊的設(shè)計(jì)與應(yīng)用

2008-08-11
作者:申長(zhǎng)軍 吳慶宏

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

?

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

?


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

?


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

?

?


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

?


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

?


3? 模塊性能
3.1 模塊功耗

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

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

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

?


??? 無線智能IC卡水表的通信方式如下:通信由上位機(jī)發(fā)起,,當(dāng)需要通信時(shí)(按鍵被按下或插入IC卡時(shí)),上位機(jī)首先發(fā)送10s的同步頭,,然后發(fā)送地址,,其后等待下位機(jī)應(yīng)答。而下位機(jī)使用查詢的方式與上位機(jī)進(jìn)行通信,,即下位機(jī)每9s喚醒一次無線通信模塊以檢測(cè)是否有同步頭信息,,檢測(cè)時(shí)間為10ms。如果沒有同步頭信息,,無線通信模塊轉(zhuǎn)入休眠狀態(tài),;反之,下位機(jī)接收上位機(jī)信息,,并進(jìn)行解密和地址判斷,。如果接收到的地址為本機(jī)地址,則分析指令并進(jìn)行響應(yīng),,否則轉(zhuǎn)入休眠,。因?yàn)樯衔粰C(jī)發(fā)送同步頭的時(shí)間大于下位機(jī)休眠的時(shí)間,所以保證了通信的可靠性。這種通信方式雖然速度較慢,,但是卻使得下位機(jī)的功耗大大降低,,延長(zhǎng)了下位機(jī)電池的壽命。在該系統(tǒng)中,,由于數(shù)據(jù)量較小,,所以通信速度不是關(guān)鍵問題,而低功耗才是系統(tǒng)最重要的問題,。
??? 基于CC1000的低功耗無線數(shù)字通信模塊完成了設(shè)計(jì)目標(biāo),,達(dá)到了低功耗、高可靠性的通信要求,,并且通信速度可以達(dá)到38.4kbps,所以可以滿足大部分短距離無線數(shù)字通信的要求,。當(dāng)然,由于系統(tǒng)的功耗比較低,,使得發(fā)射功率較小,,通信距離比較近。因此,,在對(duì)通信距離要求更高時(shí),,可以適當(dāng)加大發(fā)射功率,,以增加傳播距離,。目前該模塊已經(jīng)在無線智能IC卡水表中使用,工作穩(wěn)定,。
參考文獻(xià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)場(chǎng)總線技術(shù)及其應(yīng)用.北京:清華大學(xué)出版社,2001

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