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