引 言
短程RF通信是一種比較熱門的通信技術(shù)。支持該通信技術(shù)的標(biāo)準(zhǔn)很多,,如lEEE802.11a、Hiperlan2,、IEEE802.15.1(藍(lán)牙),、HomeRF和IEEE802.1]b(Wi—Fi)等,但總的來說,,支持這些標(biāo)準(zhǔn)的器件不適合低端產(chǎn)品,,功耗大、結(jié)構(gòu)復(fù)雜,、價格高,。以色列RF Waves公司面向低端市場,推出的RFWl02芯片組和RFW302芯片組,,符合FCC(美國聯(lián)邦通信委員會)和ETSI(歐洲電信標(biāo)準(zhǔn)協(xié)會)的技術(shù)規(guī)范,,用于短程RF通信,取得了很好的效果。RF Waves公司還為這兩種芯片組提供了RFW—D1OO數(shù)字后端,。筆者在以W78LE516單片機(jī),、RFWl02芯片組和RFW—D1OO數(shù)字后端為核心開發(fā)產(chǎn)品時,深感RFW—D100所起的巨大作用:降低了單片機(jī)程序的復(fù)雜性,,節(jié)省了CPU能量和資源,。
1 RFW—D100簡介
RFW—D100是為RFWl02/RFW302芯片組提供的
一個數(shù)字后端。它為MCU提供了一個并行接口,,使之連到RFWl02,。在RF應(yīng)用中,MCU負(fù)責(zé)MAC層的協(xié)議,。RFW—D1OO減少M(fèi)CU處理MAC層協(xié)議的實時要求,。使MCU通過一個并行口連接到RFWl02,類似于存儲器尋址,,它將快速的串行輸入轉(zhuǎn)換成8位的字節(jié),,使8位的MCU更容易處理。此外,,RFW—D1OO僅使用一個低速率的振蕩器,,通過1個16字節(jié)的FIFO來緩沖輸入/輸出,使MCU與RFW—D100之間的尋址效率更高,。MCU不是每次中斷讀/寫1個字節(jié),,而是每16個字節(jié),相比于每字節(jié)的輸入都引起一個中斷,。這樣就明顯減少了MCU在讀輸入字節(jié)時的開銷,。當(dāng)使用FIFO時,MCU為所有FIFO的字節(jié)所付出的開銷與沒有用FIFO時僅為1個字節(jié)付出的開銷是一樣的,。
2 RFW—D1OO的結(jié)構(gòu),、工作原理及功能
RFW-D100的結(jié)構(gòu)圖如圖1所示。
振蕩器模組是RFW—D100的時鐘源,,可以不用,,直接用一個外部振蕩器去驅(qū)動RFW—DlOO。RFW—D100有三種模式:掉電模式,、空閑模式和工作模式,。前兩種模式可使芯片處于低功耗狀態(tài),節(jié)省系統(tǒng)能量,。由于在進(jìn)入前兩種模式前,,保存了所有寄存器中的值,所以系統(tǒng)喚醒時間短,。RFW—D100有一個預(yù)相關(guān)器,,在數(shù)據(jù)進(jìn)行收/發(fā)時,,RFW—D1OO首先檢測/發(fā)送一個預(yù)同步頭,目的是啟動接收端的RFWl02,,以使接收端同步,。RFW—D100為維持系統(tǒng)的靈敏性,在進(jìn)行數(shù)據(jù)收發(fā)時,,當(dāng)連“O”符號太多時,,在傳送端會在數(shù)據(jù)流中自動加一個“1”符號;而在接收端,,RFW一D100會將這個“l”符號自動拿走,。RFWD1OO能夠根據(jù)設(shè)置,自動在要發(fā)送的每一信息包中加上附加的CRC信息,,在接收端也會自動計算CRC信息,,進(jìn)行CRC校驗,降低MCU的負(fù)擔(dān),,提高數(shù)據(jù)的可靠性,。當(dāng)有信息包要收發(fā)時,WDT通信看門狗可以在任何時候,,將MCU從省電模式下喚醒。RFW一D100設(shè)置了16字節(jié)的接收/發(fā)送緩沖區(qū),,理論上能使MCU每128μs讀/寫數(shù)據(jù),,而不是串行情況下的1 μs或在有串并轉(zhuǎn)換的情況下的8 μs;RFW—D100的運(yùn)作以處理各種中斷事件為核心,,開發(fā)人員可以根據(jù)情況靈活地啟動/關(guān)閉中斷,,以適應(yīng)各種環(huán)境。RFW一D100提供了網(wǎng)絡(luò)ID濾波器和節(jié)點ID濾波器,,根據(jù)網(wǎng)絡(luò)地址和節(jié)點地址過濾輸人信息,,從而區(qū)別不同網(wǎng)絡(luò)和不同節(jié)點問的信息。RFW-D100中使用兩種技術(shù)以取得較強(qiáng)的載波偵聽能力,;①內(nèi)部比較器RSSI(無線信號強(qiáng)度指示),,使RFW—D100可以鑒別任何強(qiáng)度的、有可能阻塞其自身的傳送,;②射頻波網(wǎng)絡(luò)偵聽算法,,使RFW—D100避免與其本身網(wǎng)絡(luò)或同一區(qū)域不同網(wǎng)絡(luò)站點的射頻波的沖突。RFW—D100的引腳功能如表1所列,。
3應(yīng) 用
用RFWl02芯片組和RFW一D100開發(fā)一套點對多點的無線收發(fā)系統(tǒng),。上位機(jī)采用W78LE516,通過USB總線與PC相連,,通過RFW一D100與RFWl02芯片組連接進(jìn)行無線數(shù)據(jù)收發(fā),;下位機(jī)采用MSP4130F133,通過RFW—D100與RFWl02芯片組連接進(jìn)行無線數(shù)據(jù)收發(fā)。開發(fā)過程發(fā)現(xiàn),,目前與RFW—D100,、RFWl02芯片組相關(guān)的文獻(xiàn)中所提供的電路,基本上都是參照產(chǎn)品的數(shù)據(jù)手冊,,參考價值有限,。這里,提供一種上位機(jī)無線收發(fā)部分的硬件電路,,如圖2所示,。
在具體的開發(fā)中,讀者可根據(jù)自己的MCU型號,,參考圖2,,配置RFW—D100的外圍電阻電容,即可形成自己可運(yùn)行的電路,。其中RFW—D100的26,、29、30號引腳直接與RFWl02芯片組相應(yīng)引腳相連,。
在MCU的軟件編程中,,開發(fā)人員實際要做的是對RFW—D100的各種寄存器進(jìn)行正確的尋址、寫入控制字,、讀/寫數(shù)據(jù)等,,參考文獻(xiàn)[1]中有較詳細(xì)的描述。寄存器分配情況如表2所列,。
這里,,僅提出一點需要注意的地方:程序每次數(shù)據(jù)收發(fā),都要對相關(guān)的控制寄存器進(jìn)行重新寫入,,否則數(shù)據(jù)不能正常收發(fā),。如下面的程序段,是在發(fā)送數(shù)據(jù)前對各控制寄存器寫入的控制字,,控制字的具體含義見參考文獻(xiàn),。其中WRITE(…,…)為自定義的宏,,CS_PIN即為圖2中MCU的P1.4腳,。
……
#ddine WRITE(RE(REGVAL) CS_PIN=0;*((unsigned char
xdata*)(REG))=VAL;CS_PIN=1
……
WRITE(SCR4
.3),;
WRITE(SCR2,,OxlC);
WRITE(BLR,,6),;
WRITE(LCR,,O)l
WRITE(BIR,0xAA);
WRITE(N1R.0x55);
WRITE(PPR,,0xFA),;
WRITE(PSR,12),;
WRITE(PRE_H,,0xF5);
WRITE(PRE_L,,OxBB)}
WRITE(IER,,16);
WRITE(SCR3,,128),;
WRITE(SCR4,O),;
4 結(jié)論
使用無線數(shù)據(jù)傳輸數(shù)字后端RFW DlOO進(jìn)行產(chǎn)品開發(fā),,有以下優(yōu)點:更短的開發(fā)時間,更短的上市時間,;為其他方面的應(yīng)用節(jié)省CPU能量和資源,;是一個簡單的、標(biāo)準(zhǔn)的,、完整的解決方案,,開發(fā)人員僅需做外圍元器件的調(diào)整工作。