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