CC1100的無線數(shù)據(jù)通信與時分多址通信協(xié)議
引 言
無線數(shù)據(jù)通信技術(shù)被越來越多地使用到嵌入式系統(tǒng)中,在簡化布線的同時,也使數(shù)據(jù)交換變得更加便捷。本文介紹一種適用于遠(yuǎn)程計數(shù)無線傳輸?shù)臏y試系統(tǒng),該系統(tǒng)主要由德州儀器(TI)公司的CC1100射頻收發(fā)器和飛利浦(Philips)公司的微處理器P89LPC922構(gòu)成。
1 硬件設(shè)計
(1)總體方案設(shè)計
本設(shè)計由1個主機和1~32臺終端從機組成。從機通過內(nèi)部傳感器計數(shù)后將數(shù)據(jù)以無線方式傳送給主機,主機負(fù)責(zé)整個系統(tǒng)的調(diào)度、顯示、配置。
(2)微控制器P89LPC922
P89LPC922芯片具有8 KB Flash程序存儲器、1 KB可擦除扇區(qū)和64字節(jié)可擦除頁,可擦除單個字節(jié),指令執(zhí)行時間只需2~4個時鐘周期,指令執(zhí)行速率6倍于標(biāo)準(zhǔn)80C51器件,有可配置的片內(nèi)振蕩器和 RC振蕩器、增強型UART,具有波特率發(fā)生器及自動地址識別和通用的中斷功能。
(3)射頻芯片CC1100
CC1100的主要特點有:體積小(20引腳,QLP 4 mm×4 mm),工作頻率為300~1000 MHz,接收靈敏度高(1.2 kb/s下110 dBm),數(shù)據(jù)傳輸率最大可達(dá)500 kb/s,功耗低(RX中15.6 mA,2.4 kb/s,433 MHz),在所有頻段輸出功率高達(dá)+10 dBm;SPI接口,支持ASK、OOK、2-FSK、GF-SK和MSK調(diào)制模式,具有無線喚醒(WOR)功能等。
由于高頻收發(fā)信號會對MCU部分產(chǎn)生干擾,所以無線通信部分應(yīng)單獨做1塊PCB板,并外加屏蔽。P89LPC922和CC1100的連接如圖1所示。
2 軟件設(shè)計
(1)數(shù)據(jù)包格式
CC1100數(shù)據(jù)包格式包含以下幾部分:前導(dǎo)、同步詞匯、可控數(shù)據(jù)包長度、可選地址字節(jié)、有效載荷、可選的2字節(jié)CRC。它支持恒定長度和可變長度數(shù)據(jù)包協(xié)議,其數(shù)據(jù)長度可達(dá)255字節(jié),對于更長的數(shù)據(jù)包,必須使用無限長度數(shù)據(jù)包協(xié)議。本系統(tǒng)采用可變長度數(shù)據(jù)包格式。
(2)狀態(tài)及寄存器設(shè)置
CC1100有一個內(nèi)置的狀態(tài)機,用來在不同的操作狀態(tài)(模式)之間切換。狀態(tài)的變化要么通過命令濾波,要么通過內(nèi)部事件(如TX FIFO下溢)改變。當(dāng)前狀態(tài)可從狀態(tài)寄存器MARCSTATE獲得。CC1100的寄存器比較多,可根據(jù)需要配置,有一部分需由軟件SmartRF Studio給出。
CC1100的3個數(shù)字輸出引腳SO(GDO1)、GDO0、GDO2也可以通過IOCFGX寄存器配置成所需的功能接口。設(shè)計中,GDO0 IOCFGO=Ox06,引腳會在收發(fā)到同步詞匯的時候置成高電平,當(dāng)數(shù)據(jù)包傳輸結(jié)束時變成低電平。此外,當(dāng)收發(fā)FIFO溢出時也將變成低電平。 GDO2IOCFG2=Ox0B,引腳輸出一連續(xù)時鐘,可以用來檢測CC1100是否工作。
(3)收發(fā)數(shù)據(jù)
CC1100上電后,需要依次對芯片進(jìn)行復(fù)位、寄存器設(shè)置、功率設(shè)置等。收發(fā)數(shù)據(jù)可以通過GPO0引腳產(chǎn)生中斷,然后依據(jù)不同的情況處理。程序如下:
3 通信協(xié)議
在大多數(shù)主從式結(jié)構(gòu)通信中,一般主機和從機之間的通信都是采用查詢方式進(jìn)行,然而當(dāng)從機數(shù)量較多時,效率并不高。因此,設(shè)計一種快速實用的通信模式就很有必要。時分多址(time division multiple access)是把時間分割成互不重疊的時段(幀),再將幀分割成互不重疊的時隙(信道),與用戶具有一一對應(yīng)關(guān)系;依據(jù)時隙區(qū)分來自不同地址的用戶信號,從而完成多址連接。時分多址簡稱TDMA。
根據(jù)上述定義,在設(shè)計中主機采用定時發(fā)送命令的方式,每個從機則分配1個時間段用于和主機通信。時間段的選擇要根據(jù)從機的數(shù)量、同步的時間,以及通信速率來決定。具體約定如下:
主機定時向終端從機發(fā)送命令,命令中包含下次同步的時間以及其他所需信息,命令周期可以自行定義,這里命令周期為1 s。
從機接收到主機命令后首先同步自己的時鐘,然后再做出相應(yīng)的動作。
①對于無應(yīng)答的命令,從機立刻進(jìn)入休眠狀態(tài),只在下一個接收主機命令時刻到來之前,提前2 ms退出休眠。
②對于有應(yīng)答的命令,從機則在接收到主機命令之后延時(N×30)ms應(yīng)答主機,在沒有應(yīng)答之前,從機也先進(jìn)入休眠,只是在應(yīng)答時刻到來之前,提前2ms 醒來,準(zhǔn)備應(yīng)答。從機應(yīng)答時間為1~25 ms,剩余的5 ms是為了把一個時間段和另一個時間段分開(即保護(hù)時間)。當(dāng)應(yīng)答結(jié)束后延時2 ms進(jìn)入休眠。
③當(dāng)從機未能和主機同步時,應(yīng)開啟CC1100電磁波激活功能,搜尋主機信息。
其中N為從機地址號,設(shè)置范圍1~32,具體通信協(xié)議如圖2所示。
結(jié) 語
本文介紹的無線數(shù)據(jù)通信方案,適用于工業(yè)信號監(jiān)控、無線儀器儀表測試、樓宇智能系統(tǒng)等,性價比高,所提出的通信協(xié)議具有較強的實時性、可靠性?,F(xiàn)場工作表明,在計數(shù)測試系統(tǒng)中,距離100 m內(nèi)未發(fā)生通信錯誤的情況,滿足了測試要求。