點(diǎn)對(duì)多點(diǎn)的多任務(wù)無(wú)線通信
關(guān)鍵詞:無(wú)線通信 協(xié)議 通用串行總線 中央監(jiān)控 遠(yuǎn)程終端
引言
現(xiàn)代世界是一個(gè)高速自動(dòng)化的世界,各種各樣的設(shè)備除了可以與計(jì)算機(jī)聯(lián)機(jī)外,還可以互聯(lián)機(jī),而最簡(jiǎn)單的自動(dòng)化聯(lián)機(jī)方式就是使用串行通信。隨著時(shí)代的進(jìn)步,它并沒(méi)有被取代,后倒是逐漸被廣泛應(yīng)用。如今,在許多場(chǎng)合有線連接的方式已經(jīng)不能滿足科技的高速發(fā)展。無(wú)線技術(shù)正以一種快速的速度進(jìn)入許多產(chǎn)品,它與線相比主要有成本低,攜帶方便,省去有線布線的煩惱;特別適用于手持設(shè)備的通信、電池供電設(shè)備、遙控、遙測(cè)、小型無(wú)線網(wǎng)絡(luò)、無(wú)線抄表、門(mén)禁系統(tǒng)、小區(qū)傳呼、工業(yè)數(shù)據(jù)采集系統(tǒng)、無(wú)線標(biāo)簽身份識(shí)別、非接觸RF智能卡、小型無(wú)線數(shù)據(jù)終端、安全防火系統(tǒng)、無(wú)線遙控系統(tǒng)、生物信號(hào)采集、水文氣象監(jiān)控、機(jī)器人控制、無(wú)線232數(shù)據(jù)通信、無(wú)線485/422數(shù)據(jù)通信、無(wú)線數(shù)字語(yǔ)音、數(shù)字圖像傳輸、智能小區(qū)不停車收費(fèi)、銀行智能回單系統(tǒng)等。在如此多的無(wú)線系統(tǒng)應(yīng)用中,無(wú)線通信的協(xié)議自然顯得特別重要。無(wú)線通信協(xié)議的好壞直接關(guān)系到系統(tǒng)的安全性、誤碼率以及系統(tǒng)運(yùn)行的速度。本文以上海桑博科技有限公司的STR-2無(wú)線收發(fā)模塊為例,詳細(xì)介紹無(wú)線收發(fā)模塊與各種單片機(jī)的硬件接口設(shè)計(jì),點(diǎn)對(duì)多點(diǎn)無(wú)線通信協(xié)議的數(shù)字打包格式、解包程序以及相關(guān)軟件設(shè)計(jì)。
1 系統(tǒng)概述
1.1 鏈狀點(diǎn)對(duì)多點(diǎn)系統(tǒng)
圖1所示的系統(tǒng)是由一臺(tái)中央監(jiān)控設(shè)備CMS(Central Monitoring System)和多臺(tái)遠(yuǎn)程終端設(shè)備MRTU(Multiple Remote Termial Unit)構(gòu)成的點(diǎn)對(duì)多點(diǎn)的多任務(wù)無(wú)線通信系統(tǒng)。在中央監(jiān)控設(shè)備CMS與遠(yuǎn)程終端RTU(Remote Termial Unit)之間用多臺(tái)中轉(zhuǎn)設(shè)備Tran作為中轉(zhuǎn)站,以便起到暫存數(shù)據(jù)和延伸距離的作用。中轉(zhuǎn)站之間,以單向通信方式進(jìn)行傳遞數(shù)據(jù)。
(1)適用范圍
*傳輸距離遠(yuǎn)的多點(diǎn)多任務(wù)數(shù)據(jù)采集;
*條件惡劣、干擾大、多點(diǎn)多任務(wù)數(shù)據(jù)采集;
*對(duì)時(shí)間要求不高的各種復(fù)雜無(wú)線數(shù)傳;
*智能小區(qū)水、電、煤、曖氣集中抄表系統(tǒng),各種遠(yuǎn)程集中按防報(bào)警系統(tǒng)等。
(2)協(xié)議數(shù)據(jù)包格式
協(xié)議的第一件事就是能夠識(shí)別噪志和有效數(shù)據(jù)。噪聲是以隨機(jī)字節(jié)出現(xiàn)的,沒(méi)有明顯的結(jié)合方式;噪聲源可以產(chǎn)生任意字節(jié)的組合。在無(wú)線通信的過(guò)程中,最好能通過(guò)一種協(xié)議有效地抑制噪聲的產(chǎn)生。
通過(guò)測(cè)試和試驗(yàn)發(fā)現(xiàn),0xFF后跟0xAA、0x55在噪聲中不容易發(fā)生。傳輸協(xié)議應(yīng)該在數(shù)據(jù)包前加開(kāi)始字節(jié),0xFF后跟0xAA、0x55發(fā)送協(xié)議的開(kāi)始應(yīng)該是一個(gè)任意內(nèi)容的字節(jié)(這是因?yàn)榈谝粋€(gè)字節(jié)的數(shù)據(jù)在發(fā)送時(shí)容易丟失),然后是0xFF后跟一個(gè)0xAA、0x55;接收協(xié)議規(guī)定只接收以0xFF后跟0xAA、0x55開(kāi)始的包,于是就可以很方便地把以上系統(tǒng)的數(shù)據(jù)包格式定為:
Lead1 | Lead2 | Lead2 | Header | Length | HostID | Loca | Destination |
Unit | Data1 | Data2 | … | Datan | Checksum |
Lead為引導(dǎo)字節(jié)
Leader1=0xFF;
Leader2=0xAA;
Leader2=0x55;
Header為數(shù)據(jù)包的命令字節(jié),由此確定數(shù)據(jù)包的類型;
Length為數(shù)據(jù)包包含的Length字節(jié)之后的所有字節(jié)的長(zhǎng)度;
HostID為主機(jī)地址;
Local為本地機(jī)地址;
Destination為目標(biāo)地址;
Unit為RTU地址字節(jié);
Data為數(shù)據(jù)包字節(jié);
Checksum為校驗(yàn)字節(jié)。
1.2 星狀點(diǎn)對(duì)多點(diǎn)通信
圖2系統(tǒng)是由一臺(tái)中央監(jiān)控設(shè)備CMS和多臺(tái)遠(yuǎn)程終端設(shè)備MRTU構(gòu)成的點(diǎn)對(duì)多點(diǎn)多任務(wù)無(wú)線通信系統(tǒng)。在中央監(jiān)控設(shè)備CMS與每一臺(tái)遠(yuǎn)程終端RTU都以雙向通信方式進(jìn)行傳遞數(shù)據(jù);特別適用于數(shù)據(jù)量大,對(duì)時(shí)間要求較高的場(chǎng)合。
(1)適用范圍
*傳輸距離較近的地方;
*條件惡劣、干擾大的地方;
*對(duì)時(shí)間要求高、數(shù)據(jù)量大的場(chǎng)合;
*智能小區(qū)水、電、煤、曖氣集中抄表系統(tǒng),各種遠(yuǎn)程集中安防報(bào)警系統(tǒng)等;
*智能家用集中控制系統(tǒng);
*工業(yè)測(cè)控、工業(yè)數(shù)據(jù)采集;
*醫(yī)療器械、健身器材;
*數(shù)據(jù)倉(cāng)庫(kù)、智能商場(chǎng)超市導(dǎo)購(gòu);
*餐飲無(wú)線點(diǎn)菜系統(tǒng);
*PDA無(wú)線數(shù)傳;
*水紋氣象監(jiān)控;
*生物信號(hào)采集;
*油田環(huán)境監(jiān)控;
*銀行智能回單系統(tǒng)等。
(2)協(xié)議數(shù)據(jù)包格式
根據(jù)圖2可以把系統(tǒng)的數(shù)據(jù)包格式定為:
Lead1 | Lead2 | Lead2 | Header | Length | Unit |
Data1 | Data2 | … | Datan | Checksum |
Lead為引導(dǎo)字節(jié)
Leader1=0xFF;
Leader2=0xAA;
Leader2=0x55;
Header為數(shù)據(jù)包的命令字節(jié),由此確定數(shù)據(jù)包的類型;
Length為數(shù)據(jù)包包含的Length字節(jié)之后的所有字節(jié)的長(zhǎng)度;
Unit為RTU地址字節(jié);
Data為數(shù)據(jù)包字節(jié);
Checksum為校驗(yàn)字節(jié)。
2 硬件設(shè)計(jì)
上海桑博電子科技有限公司STR-2 RF模塊的核心部分為nRF401,外加精心設(shè)計(jì)的內(nèi)置天線,具有體積小(37mm47mm),功耗低的特點(diǎn);傳輸距離為200m,最大傳輸速率為20kb/s;外圍接口電路簡(jiǎn)單,可直接與單片機(jī)的通用串行口(UART)口連接。圖3所示為硬件框圖。
STR-2 RF引腳功能如下:
VCC――正電源,接2.7~5.25V;
CS――頻道選擇,CS=0為選擇工作頻道1(即433.92MHz),CS=1為選擇工作頻道2(即433.33MHz);
DOUT――數(shù)據(jù)輸出,連接MCU串口RXD;
DIN――數(shù)據(jù)輸入,連接MCU串口TXD;
GND――電源地;
PWR――節(jié)能控制,PWR=1為正常工作狀態(tài),PWR=0為低功耗狀態(tài);
TXN――發(fā)射接收控制,TXN=1時(shí)模塊為發(fā)射狀態(tài),TXN=0時(shí)模塊為接收狀態(tài);
3 軟件設(shè)計(jì)
在系統(tǒng)中,所有STR-2 RF模塊均采用433.92MHz作為系統(tǒng)工作頻率。下面以星狀點(diǎn)對(duì)多點(diǎn)通信系統(tǒng)為例,詳細(xì)介紹系統(tǒng)的軟件設(shè)計(jì)。
(1)主程序設(shè)計(jì)
為了避免同頻干擾的問(wèn)題,系統(tǒng)采用時(shí)分TDMA(Time Diveision Multiple Access)技術(shù),把系統(tǒng)CMS與任意一臺(tái)RTU之間的通信采用時(shí)分的方式分開(kāi),CMS通過(guò)掃描的方式與各臺(tái)RTU設(shè)備進(jìn)行單臺(tái)通信,這樣系統(tǒng)中的CMS與RTU的通信方式就成為點(diǎn)對(duì)點(diǎn)的通信方式。整個(gè)點(diǎn)對(duì)多點(diǎn)系統(tǒng)的通信就成為若干個(gè)點(diǎn)對(duì)點(diǎn)通信的組合。程序采用C51單片機(jī)語(yǔ)言編寫(xiě),其主控程序流程如圖4、圖5所示。
(2)打包與解包
協(xié)議將主要數(shù)據(jù)分割成一定格式的數(shù)據(jù),并增加一些額外的信息(用于糾錯(cuò)),這個(gè)過(guò)程叫打包;在接收端協(xié)議去掉這些額外信息,只留下初始信息,這個(gè)過(guò)程叫解包。
打包程序如解包程序見(jiàn)網(wǎng)絡(luò)補(bǔ)充版(http://www.dpj.com.cn)。
解包子程序流程如圖6所示。
結(jié)語(yǔ)
本文中的無(wú)線硬件設(shè)計(jì)、軟件設(shè)計(jì)解決方案已被多次運(yùn)用于多種產(chǎn)品、多種系統(tǒng)。目前各種產(chǎn)品、系統(tǒng)運(yùn)行穩(wěn)定,無(wú)線通信誤碼率低、可靠性高、安全性好。文中的軟、硬件設(shè)計(jì)方案,可適用于各種單片機(jī),對(duì)于無(wú)線通信技術(shù)在我國(guó)推廣和廣泛的運(yùn)用有著重要的參考價(jià)值。
評(píng)論