機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
基于F133和RFW模塊的短距離無線數(shù)據(jù)通信
基于F133和RFW模塊的短距離無線數(shù)據(jù)通信
 更新時間:2009-12-2 16:53:36  點(diǎn)擊數(shù):0
【字體: 字體顏色
摘要:主要介紹基于MSP430F133 單片機(jī)和RFW 模塊的短距離無線數(shù)據(jù)通信,重點(diǎn)說明了
RFW 模塊的RFW-D100 和RFW102 的特點(diǎn)和實(shí)際應(yīng)用,文中給出了相關(guān)的硬件設(shè)計。無線數(shù)據(jù)
通信的實(shí)現(xiàn)是基于CSMA 協(xié)議,在固件編程有所體現(xiàn)。

1 前言
隨著信息技術(shù)的不斷發(fā)展,人們對通信技術(shù)的需求越來越強(qiáng),擺脫有線網(wǎng)絡(luò)的束縛實(shí)現(xiàn)
無線通信始終是大家關(guān)心的問題,當(dāng)今無線通信研究越來越熱,應(yīng)用非常廣泛,使人與人之
間的通信更加方便快捷,更具有市場發(fā)展前景。
2 硬件設(shè)計
本設(shè)計主要實(shí)現(xiàn)短距離無線數(shù)據(jù)通信,由兩個部分組成:發(fā)送終端,接收終端。無線數(shù)
據(jù)的收發(fā)是通過串口來實(shí)現(xiàn)的,通過串口給無線發(fā)送端送數(shù)據(jù),無線接收端再通過串口將接
收的數(shù)據(jù)傳給PC。發(fā)送終端和接收終端的硬件設(shè)計是一樣的,只不過是在固件編程時有所
不同。系統(tǒng)實(shí)現(xiàn)框圖,如圖一所示。

圖一系統(tǒng)實(shí)現(xiàn)框圖
設(shè)計中采用的處理器為MSP430F133,它是一種超低功耗的混合信號控制器,具有16
位RISC 結(jié)構(gòu),CPU 中的16 個寄存器和常數(shù)產(chǎn)生器使MSP430 能達(dá)到最高的代碼效率。單
片機(jī)通過采用不同的時鐘源工作可以使器件滿足不同功耗要求,適當(dāng)選擇時鐘源,可以讓器
件的功耗達(dá)到最小。外設(shè)資源豐富。支持匯編和C 語言。此次開發(fā)利用的是IAR 公司提供
的Embedded Workbench 集成開發(fā)環(huán)境。
下面介紹一下RFW 模塊。RFW 模塊是由RFWaves 公司開發(fā)的,RFWaves 是一家以色
列公司,主要是提供短距離RF 應(yīng)用的解決方案。首先介紹一下RFW102,它是一個可靠而
耐用的短距離RF 收發(fā)器芯片組。它是一個物理層RF 收發(fā)器,工作在2.4GHz,包含一個印
在印制板上的天線,無需外部天線。工作電壓很寬:2.7~3.6V,適合不同的電池供電;功
耗低:待機(jī)電流僅1µA,喚醒時間20µs。模塊提供一個擴(kuò)頻脈沖管作通信用,速率達(dá)到1Mbps。
有效室內(nèi)距離可達(dá)25 米,在RF 前端增加一個功率放大器可將有效范圍擴(kuò)展到100 米。
RFW102 芯片組包括RFW24,RFW488C 和RFW488R 三個芯片。RFW24 完成所有時序、
放大、切換、發(fā)送和接收功能;RFW488C 是一個完全非差分無源器件,是DSSS(直接序列擴(kuò)
頻技術(shù))擴(kuò)頻和去擴(kuò)頻的基本單元,實(shí)現(xiàn)4 引腳SAW 相關(guān)器;RFW488R 是單端口SAW 諧振器,
諧振頻率為488MHZ,可作為系統(tǒng)的CW 諧振源。RFW-D100 是對RFW-102 的補(bǔ)充,使得能
夠在MCU 上實(shí)現(xiàn)無線通信協(xié)議。RFW-D100 主要特點(diǎn)是提供輸入輸出緩存,對數(shù)據(jù)包地址
進(jìn)行濾波,循環(huán)冗余碼校驗(yàn),看門狗定時器,工作頻率為6-24M,低功耗模式:后臺處理和
電源關(guān)閉模式,提供網(wǎng)絡(luò)載波偵聽,對RFW-D100 的發(fā)送和接收的時鐘漂移進(jìn)行補(bǔ)償,提供中斷,用于載波偵聽機(jī)制的無線電信號增強(qiáng)指示器(RSSI)。在RFWaves 的應(yīng)用中,MCU
主要負(fù)責(zé)MAC 層協(xié)議。RFWD-100 可以緩解MCU 處理MAC 協(xié)議實(shí)時的要求。RFW-D100
在MCU 和RFW-102 提供了一個并行接口,它可以把快速連續(xù)輸入的數(shù)據(jù)轉(zhuǎn)為8-bit 字,這
樣就非常適合8-bit 的MCU 進(jìn)行處理,它采用16 個字節(jié)的FIFO 對輸入的數(shù)據(jù)進(jìn)行緩存,
提高了MCU 使用RFWD-100 的效率。并不是一個中斷讀一個字節(jié),每一個中斷MCU 可以
讀16 個字節(jié),這就減少了MCU 處理數(shù)據(jù)的開銷。
無線數(shù)據(jù)通信的收發(fā)硬件設(shè)計是一樣的;陔娐返膹(fù)雜性,下面給出電路圖得主要連
線。如圖二所示

圖二系統(tǒng)硬件實(shí)現(xiàn)的主要連接圖
硬件設(shè)計中對MCU 提供雙晶振系統(tǒng),低頻晶振32.768K 為RS232 接口提供頻率支持,
高頻晶振8M 為系統(tǒng)運(yùn)行的主時鐘,P1 口的8 位為RFW-D100 的8 根數(shù)據(jù)線,P4.0~P4.4 為
RFW-D100 5 根地址線,P2 口與P3 口部分管腳為RFW-D100 的控制腳。由于MSP430 系統(tǒng)
無對外開放總線,故MSP430 對RFW-D100 的讀寫是通過模擬實(shí)現(xiàn)的。RFW-D100 主要實(shí)
現(xiàn)對數(shù)據(jù)的輸入輸出緩沖,其內(nèi)部的寄存器標(biāo)志著發(fā)送和接收時各種事件的發(fā)生。RFW102
主要完成對數(shù)據(jù)的無線發(fā)送和接收。

3 軟件設(shè)計
3.1CSMA 協(xié)議
局域網(wǎng)一般采用共同的介質(zhì)的方法,為此當(dāng)多個站點(diǎn)同時要訪問介質(zhì)時,就要進(jìn)行控制。
CSMA(載波偵聽多路訪問)就是常用的一種方式。當(dāng)網(wǎng)中站臺要發(fā)送數(shù)據(jù)時,先檢測是否
有別的站臺占用了傳輸媒體?方法是先進(jìn)行載波偵聽,如果發(fā)現(xiàn)介質(zhì)(媒體)空間,就立刻
發(fā)送數(shù)據(jù);否則就根據(jù)不同的策略退避重發(fā)。

3.2 數(shù)據(jù)包結(jié)構(gòu)介紹
在介紹具體軟件設(shè)計之前學(xué)要了解一下基于CSMA 協(xié)議數(shù)據(jù)包結(jié)構(gòu)。如表一所示:

   表一:數(shù)據(jù)包的結(jié)構(gòu)
1. Preamble:RFW-D100 發(fā)送PREAMBLE 的目的是為了使接收機(jī)和發(fā)送相同步。20 位長,高四位為1111,由RFW-D100 自動產(chǎn)生,對RFW102 的接收段進(jìn)行初始化。其它16 位由PRE—L 和PRE—H 決定。發(fā)送順序?yàn)閺母叩降汀?BR>
2. Network:4 個字節(jié),指明數(shù)據(jù)包屬于哪一個網(wǎng)絡(luò)。

3. Dst/Src:1 個字節(jié)。由節(jié)點(diǎn)發(fā)送到主控制器,叫做源段;由主控制器向節(jié)點(diǎn)發(fā)送叫目的段。源段的值是指由節(jié)點(diǎn)向主控制器發(fā)送的ID 號;目的段值是指由主控制器向節(jié)點(diǎn)發(fā)
送的ID 號。

4. Sequence:1 個字節(jié)。這個段包括兩個值。高四位表示數(shù)據(jù)序號;低四位表示應(yīng)答包的
序號。包的類型由這個段值決定,低四位都為0 表示這是一個數(shù)據(jù)包,高四位都為0 表示這是一個應(yīng)答包。如果都不為0 則表示既是數(shù)據(jù)包又是應(yīng)答包。

5. Size:1 個字節(jié)。這個段說明包的大小。包的結(jié)構(gòu)有兩種類型由PPR[5](Packet ParameterRegister)決定。

6. Payload:包含來自上層軟件層的數(shù)據(jù)

7. CRC:2 個字節(jié)。RFW-D100 在發(fā)送端給每個包增加CRC 信息,使得接收機(jī)對接收的數(shù)
據(jù)進(jìn)行檢測。接收端的CRC 計算的結(jié)果和接收到的包的CRC 段相比較,如果CRC 的比較結(jié)果相同,接收機(jī)認(rèn)為包接收正確;如果CRC 的比較結(jié)果不等,則接收機(jī)認(rèn)為接收到的包不正確。CRC 通過PPR[3:4]來配置。需要注意的是,RWF-D100 對每一個接收的包進(jìn)行CRC 計算,CRC 的值并不放在RX_FIFO 中,只把計算結(jié)果放在RX_FIFO中,作為包的最后一個字節(jié)。0X55 表示CRC 接收正確;0XAA 表示CRC 接收錯誤。可通過讀SSR[0](System Status Register)來判斷。

3.3 固件編程
1. 對RFWD-100 和REW102 初始化,包括復(fù)位,啟動RFW102 等操作。主要是對RFD_RST、
IDLE_RST、WDT_RST、POWER_DOWN、IDLE_MODE、WDT 進(jìn)行相關(guān)設(shè)置。

2. 主程序初始化,包括啟動晶振,看門狗以及串口初始化。主要是對BCSCTL2設(shè)定選定主
系統(tǒng)時鐘為XT2;對UCTL0設(shè)定串口數(shù)據(jù)位為8位,低頻晶體為串口提供工作頻率,設(shè)定波特率寄存器UBR和波特率調(diào)整寄存器UMCTL0,使得串口的數(shù)據(jù)傳輸率為4800bps,并設(shè)定模塊使能寄存器在發(fā)送端接收模塊使能在接收端發(fā)送模塊使能,通過功能選擇寄存器設(shè)定P3.4為發(fā)送,P3.5為接收。

3. 無線發(fā)送端:啟動RFW-D100設(shè)置為發(fā)送狀態(tài),其中READ()為讀RFW-D100數(shù)據(jù),WRITE
()為向RFW-D100寫數(shù)據(jù)。
 WRITE(SCR4,3);      //RF_active,開放所有中斷
 WRITE(SCR2,0x1c);   //D100處于接收狀態(tài),RX_FIFO復(fù)位
 WRITE(BLR,18);      //位長為18+6=24
 WRITE(PPR,0x3A);   //發(fā)送包為固定大小,
 WRITE(PSR,12);    //PSR(Packet Size Register)設(shè)定包的大小為12個字節(jié)
 WRITE(PRE_H,0x55);
 WRITE(PRE_L,0xBB);//PREAMBLE=0X55BB
 WRITE(IER,0x10);//IER中斷使得寄存器設(shè)定TX_EMPTY=1
 WRITE(SCR3,128);//SCR3(系統(tǒng)控制寄存器)LOW_MODE=1
 WRITE(SCR4,0);
 READ(TFSR,REG1);//TFSR(Transmit FIFO Status Register)

4. 無線接收端:啟動RFW-D100為接收狀態(tài)
 WRITE(SCR2,0x0c);//初始化RFW-D100為接收模式,接受緩沖區(qū)復(fù)位
 WRITE(BLR,18);
 WRITE(PSR,12);
 WRITE(PPR,0x3A);
 WRITE(PRE_H,0xF5);
 WRITE(PRE_L,0xBB);
 WRITE(SCR4,0x03);//RF_ACTIVE=1,所有的中斷使能
 WRITE(IER,0x02);//LOCK_OUT中斷使能,表示如果包正常接收則則引發(fā)LOCK_OUT中斷
 WRITE(SCR2,0x62);//PREAMBLE尋找使能

5. CSMA協(xié)議要求一個節(jié)點(diǎn)在發(fā)送之前先偵聽通道,如果通道中有其它節(jié)點(diǎn)在使用通道,則
隨機(jī)等待一段時間再發(fā)送。載波偵聽協(xié)議使得通道帶寬利用率更加有效,每一個節(jié)點(diǎn)的
功耗更低。RFW-D100提供兩種技術(shù)進(jìn)行載波偵聽,一個是RSSI(Radio Signal Strength
Indicator),另一個是網(wǎng)絡(luò)載波偵聽算法。本設(shè)計中使用RSSI技術(shù),使用內(nèi)部比較器
來檢測發(fā)射功率是否超過一個門限值,這個門限值由外部電阻來確定,當(dāng)檢測到強(qiáng)的發(fā)
送信號時則停止發(fā)送。通過設(shè)置SCR1[5](COMP_EN)來使能或禁止RSSI比較器,比較輸
出的結(jié)果在SSR[7](COMP_IN)中?梢酝ㄟ^以下程序來實(shí)現(xiàn)。
WRITE(SCR1,0x20);
 do
 {
  READ(SSR,REG1);
 }

while(REG1&SSR_COMP_IN);
4 結(jié)論
先把設(shè)計的兩塊板通過串口與PC機(jī)相連,一塊作為發(fā)送端,另一塊作為接收端,這兩塊
板之間有一定的距離,沒有任何連線,通過串口給無線發(fā)送端送數(shù)據(jù),與無線接收端相連的
PC機(jī)正確顯示相應(yīng)的數(shù)據(jù),則實(shí)現(xiàn)了無線數(shù)據(jù)通信。這時再加入另一塊發(fā)送端,同樣彼此相
隔一定的距離,中間沒有任何連線,也在發(fā)送數(shù)據(jù),這就存在著競爭信道,發(fā)生碰撞,導(dǎo)致
數(shù)據(jù)不能傳送的可能性,軟件設(shè)計中采用了CSMA協(xié)議,設(shè)定的數(shù)據(jù)包長度為12位,在接收端
輪流正確顯示兩塊發(fā)送端的12位數(shù)據(jù)。
在USB接口應(yīng)用比較廣泛的今天我們也可以使用USB接口來實(shí)現(xiàn)無線通信,同樣還可以實(shí)
現(xiàn)無線語音通信。
參考文獻(xiàn):
1.泰龍編著,MSP430單片機(jī)應(yīng)用系統(tǒng)開發(fā)典型實(shí)例,中國電力出版社,2005
2.胡大可編著,MSP430系列單片機(jī)C語言程序設(shè)計與開發(fā),北京航空航天大學(xué)出版社,2003
3.鄭少仁王海濤趙志峰米志超黎寧編著,Ad Hoc 網(wǎng)絡(luò)技術(shù),人民郵電出版社,2005

  • 上一篇: 單片機(jī)在超聲控制系統(tǒng)中的應(yīng)用研究
  • 下一篇: 沒有了
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1