采用主從方式實(shí)現(xiàn)點(diǎn)對多點(diǎn)的無線數(shù)傳設(shè)計
摘要:針對無線傳輸容易發(fā)生頻段沖突,數(shù)據(jù)丟包等現(xiàn)象,采用主從分布式、雙無線收發(fā)芯片、跳頻技術(shù)及隨機(jī)延時的思想實(shí)現(xiàn)點(diǎn)對多點(diǎn)的無線數(shù)傳系統(tǒng)設(shè)計,提高無線數(shù)據(jù)傳輸?shù)臏?zhǔn)確性、實(shí)時性和可靠性。該系統(tǒng)由單片機(jī)、主無線模塊和從無線模塊等組成,具有成本低廉,實(shí)現(xiàn)簡單等優(yōu)點(diǎn)。
關(guān)鍵詞:主從分布式;點(diǎn)對多點(diǎn);無線數(shù)據(jù)傳輸;跳頻技術(shù)
0 引言
隨著嵌入式技術(shù)、集成電路、自動化控制及無線通信技術(shù)的迅速發(fā)展,各種終端設(shè)備之間的聯(lián)系已經(jīng)從電線與接口的束縛解放了出來。無線通信技術(shù)與有線通信技術(shù)相比,有成本低、攜帶方便、不必穿墻鉆孔布線、搭建網(wǎng)絡(luò)簡單快捷等優(yōu)點(diǎn)。特別是在有線網(wǎng)絡(luò)不通暢或由于現(xiàn)場環(huán)境因素的限制不便架設(shè)線路的情況下,使用無線通信技術(shù)進(jìn)行數(shù)據(jù)采集、傳輸顯得更加實(shí)用、高效、快捷。
無線設(shè)備間的互連操作隨處可見,其核心問題是設(shè)備間通信。如何實(shí)現(xiàn)一個接收端與多個發(fā)送端之間的數(shù)據(jù)傳輸以及如何更有效的解決無線通信時的防碰撞問題,本文采用主從分布式、雙無線收發(fā)芯片、跳頻技術(shù)及隨機(jī)延時的思想實(shí)現(xiàn)點(diǎn)對多點(diǎn)的無線數(shù)傳系統(tǒng)設(shè)計,提高無線數(shù)據(jù)傳輸?shù)臏?zhǔn)確性、實(shí)時性和可靠性。
1 系統(tǒng)的基本結(jié)構(gòu)
點(diǎn)對多點(diǎn)無線數(shù)傳系統(tǒng)的結(jié)構(gòu)框圖如圖1所示,由一臺主無線模塊和多個從無線模塊構(gòu)成,可以實(shí)現(xiàn)無線數(shù)據(jù)的雙向傳輸。每個從無線模塊都有獨(dú)立的CPU,與主無線模塊的通信互不影響,不會因某個無線模塊的故障而使整個系統(tǒng)失去控制,不僅能提高系統(tǒng)的可用性,更便于維護(hù)。
主無線數(shù)傳模塊:負(fù)責(zé)將外圍設(shè)備或PC的測控(查詢和設(shè)置)指令發(fā)送給從無線數(shù)傳模塊,并對外圍設(shè)備返回的應(yīng)答數(shù)據(jù)(正常數(shù)據(jù))或外圍設(shè)備主動上傳的報警數(shù)據(jù)(異常數(shù)據(jù))進(jìn)行適當(dāng)處理(校驗(yàn)、拆包、組包等),通過RS 232總線或RS 485總線傳給外圍設(shè)備或PC。
從無線數(shù)傳模塊:負(fù)責(zé)將主無線數(shù)傳模塊傳送來的測控指令通過RS 232總線或RS 485總線傳給外圍設(shè)備,及將外圍設(shè)備的應(yīng)答數(shù)據(jù)或報警數(shù)據(jù)傳送給主無線數(shù)傳模塊傳。
2 系統(tǒng)的硬件設(shè)計
無線數(shù)傳系統(tǒng)的硬件框圖如圖2所示,本系統(tǒng)采用目前比較流行的低功耗、抗干擾能力強(qiáng)、誤碼低的射頻收發(fā)芯片CC1100,51單片機(jī)處理器,RS 232總線/RS485總線,電源模塊,撥碼開關(guān)等研制無線數(shù)傳模塊。為避免PC機(jī)與多外圍設(shè)備或外圍設(shè)備之間的數(shù)據(jù)碰撞,采用一主多從模式,并在主無線模塊上接兩片射頻收發(fā)芯片,其中一片用于正常數(shù)據(jù)的傳輸,另一片用于異常或報警數(shù)據(jù)的傳輸,保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性與可靠性。而從無線模塊上只接一片射頻收發(fā)芯片,兼顧正常和異常數(shù)據(jù)的傳輸。
3 系統(tǒng)的軟件設(shè)計
3.1 單片機(jī)通信程序設(shè)計
在點(diǎn)對多點(diǎn)的無線數(shù)傳系統(tǒng)中,無線通信軟件設(shè)計特別重要,軟件設(shè)計的好壞直接關(guān)系到數(shù)據(jù)通信的準(zhǔn)確性及實(shí)時性、系統(tǒng)的可靠性等。采用KeilC、匯編語言及C語言相結(jié)合開發(fā)。用匯編語言編寫部分與硬件相關(guān)的程序代碼,最大限度地發(fā)揮硬件的功能,能夠根據(jù)特定的應(yīng)用,而對代碼做優(yōu)化處理,從而提高程序的運(yùn)行速度。軟件開發(fā)的主體部分用C語言編寫程序代碼,如頻率的設(shè)置、資源/重要變量的初始化、數(shù)據(jù)的解析處理等,具有項(xiàng)目開發(fā)周期短、可讀性強(qiáng)、可移植性好等特點(diǎn)。
為了避免同頻干擾的問題,系統(tǒng)采用時分技術(shù)將系統(tǒng)主無線數(shù)傳模塊與任一從無線模塊之間的通信采用時分的方式分開,每個從無線數(shù)傳模塊都有一個獨(dú)立的ID(地址),采用帶地址碼的數(shù)據(jù)幀發(fā)送數(shù)據(jù)或命令。
無線數(shù)傳通信框圖如圖3所示,其中A:正常操作,指令B:報警數(shù)據(jù)上傳。正常通信時,主無線數(shù)傳模塊通過頻段1(正常通道)與從無線模塊實(shí)現(xiàn)數(shù)據(jù)的交換,從無線模塊只有收到地址域與本身ID相匹配的指令才與主無線模塊通信,否則總是處于監(jiān)聽狀態(tài)。報警通信時,從無線數(shù)傳模塊通過頻段2(報警通道)與主無線模塊實(shí)現(xiàn)數(shù)據(jù)的交換,此時從無線數(shù)傳模塊需要從頻段1跳頻到頻段2,當(dāng)報警數(shù)據(jù)傳輸完成,再從頻段2跳頻到頻段1,保證正常通信的暢通。
由于有報警數(shù)據(jù)的主動上傳,不可避免的會出現(xiàn)頻段沖突,采用“隨機(jī)延時”防碰撞協(xié)議,實(shí)現(xiàn)點(diǎn)對多點(diǎn)通信。具體做法:當(dāng)從無線數(shù)傳模塊上傳報警數(shù)據(jù)后,規(guī)定時間內(nèi)未接收到主無線數(shù)傳模塊的應(yīng)答,則調(diào)用隨機(jī)延時程序,延時一段時間再發(fā)送,否則直接跳頻,保證正
常數(shù)據(jù)的通信。
無線數(shù)傳模塊接收串口數(shù)據(jù)的處理流程如圖4所示,為保證系統(tǒng)能正常運(yùn)行,任一條指令或數(shù)據(jù),在規(guī)定時間內(nèi)未應(yīng)答,可以重發(fā)3次,一旦超過了重發(fā)次數(shù),就放棄此條指令或數(shù)據(jù),進(jìn)入下一條指令或數(shù)據(jù)的通信。
3.2 PC機(jī)串行通信程序設(shè)計
串口自動測試系統(tǒng)基于Access數(shù)據(jù)庫、VB開發(fā),提供一個C/S結(jié)構(gòu)的測試軟件。PC機(jī)采用VB軟件開發(fā),VB提供了串行端口控件MSComm來為應(yīng)用程序提供串行通信,該控件屏蔽了通信過程中的底層操作,程序員應(yīng)用時可以設(shè)置、監(jiān)視MSComm控件的屬性和事件,結(jié)合Timer控件即可完成對串行口的初始化和數(shù)據(jù)的輸入輸出工作。測試系統(tǒng)可檢查無線模塊收、發(fā)處理是否正確,軟件功能是否正常等,只需觀察計算機(jī)保存的測試結(jié)果,可實(shí)現(xiàn)對無線數(shù)傳系統(tǒng)的智能測試。
點(diǎn)對多點(diǎn)無線數(shù)傳模塊的PC機(jī)端程序界面如圖5所示,從圖中可以看出,系統(tǒng)具有以下功能:參數(shù)設(shè)置(串口、數(shù)據(jù)幀格式);數(shù)據(jù)接收(接收外圍設(shè)備傳來的數(shù)據(jù));數(shù)據(jù)發(fā)送(PC向外圍設(shè)備發(fā)送的數(shù)據(jù));數(shù)據(jù)的保存(將外圍設(shè)備傳來的數(shù)據(jù)保存在Access數(shù)據(jù)庫中);計算系統(tǒng)的正確率;數(shù)據(jù)的顯示等。
4 結(jié)語
本文所設(shè)計的一點(diǎn)對多點(diǎn)的無線數(shù)傳系統(tǒng),具有良好的準(zhǔn)確性、實(shí)時性、可靠性。通過實(shí)驗(yàn)測得:在空曠傳輸有效距離最遠(yuǎn)可達(dá)1 000 m;當(dāng)中間有門或者其他障礙物阻隔時,接收距離會下降,最遠(yuǎn)可達(dá)200 m。在有效距離內(nèi),系統(tǒng)傳輸?shù)恼_率能達(dá)到99.9%,可靠性較好,完全可以應(yīng)用于相關(guān)測控領(lǐng)域。