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