短距離無(wú)線(xiàn)電遙控有很大的應(yīng)用需求,但由于射頻電路的設(shè)計(jì)和調(diào)試較為復(fù)雜,對(duì)人員和設(shè)備的要求較高。因而限制了其使用范圍。
藍(lán)牙技術(shù)提供低成本,短距離的無(wú)線(xiàn)通信。支持點(diǎn)對(duì)點(diǎn),一點(diǎn)對(duì)多點(diǎn)的雙向數(shù)字傳輸。工作在2.402~2.480GHz的ISM頻段。數(shù)據(jù)速率 1Mb/s,糾錯(cuò)編碼采用1/3率的重復(fù)碼,2/3率的漢明碼,跳頻頻率數(shù)79個(gè)頻點(diǎn),跳頻速率1600次/秒,發(fā)射距離 Class2級(jí)的模塊為10m左右,Class 1 級(jí)的模塊可達(dá)100m。
將藍(lán)牙模塊用于無(wú)線(xiàn)電遙控系統(tǒng),把無(wú)線(xiàn)射頻部分的工作交由藍(lán)牙模塊完成。使遙控系統(tǒng)設(shè)計(jì)變得簡(jiǎn)單方便。
無(wú)線(xiàn)遙控發(fā)射機(jī)
無(wú)線(xiàn)遙控系統(tǒng)中發(fā)射機(jī)的組成框圖如圖1所示。
圖1 發(fā)射機(jī)的組成框圖
它有三路模擬量(操縱桿)輸入、六路開(kāi)關(guān)量(按鍵)輸入。微控制器選用TI公司的MSP430F2274單片機(jī),主要優(yōu)點(diǎn)是低功耗。藍(lán)牙模塊使用的是Stollmann公司BlueRS+ Class1模塊。
發(fā)射指令編碼:六個(gè)開(kāi)關(guān)量全部狀態(tài)的組合有64組碼。由于實(shí)際有效編碼的組數(shù)遠(yuǎn)小于全部狀態(tài)組合碼數(shù)。并且用2字節(jié)(16bit)的長(zhǎng)度表示開(kāi)關(guān)狀態(tài)有效組合編碼,故采用加大碼組間漢明距離,使用具有糾錯(cuò)功能的分組碼作為開(kāi)關(guān)狀態(tài)的傳輸編碼。
發(fā)射機(jī)指令編碼每20ms發(fā)送一幀。每幀數(shù)據(jù)的格式如圖2所示。
圖2 發(fā)射機(jī)指令幀
一幀數(shù)據(jù)18字節(jié)。幀頭字段占4字節(jié),其中第4字節(jié)是幀序號(hào),以256為模;模擬1、模擬2和模擬3這三個(gè)字段各占2字節(jié),分別是1號(hào)、2號(hào)和3號(hào)操縱桿的位置信息的數(shù)字量編碼; 開(kāi)關(guān)1字段占2字節(jié),是表示六路開(kāi)關(guān)狀態(tài)的編碼;開(kāi)關(guān)2和開(kāi)關(guān)3字段分別是開(kāi)關(guān)1字段的重復(fù),目的是增加抗干擾能力。接收機(jī)在對(duì)該信息解碼時(shí),接收到的開(kāi)關(guān)1、開(kāi)關(guān)2和開(kāi)關(guān)3這三組碼中只要有一組碼的誤碼沒(méi)有超出可糾錯(cuò)的范圍,即可正確執(zhí)行相應(yīng)動(dòng)作。不必再等待接收下幀數(shù)據(jù),可減少延遲時(shí)間。
藍(lán)牙模塊與微控制器的連接如圖3所示。微控制器把代表指令編碼的組幀信息傳送給相連的藍(lán)牙模塊,由該藍(lán)牙模塊經(jīng)由無(wú)線(xiàn)信道發(fā)送到與接收機(jī)相連的另一只藍(lán)牙模塊,由它將數(shù)據(jù)傳給接收機(jī)的微控制器。
圖3 藍(lán)牙模塊與微控制器的連接
發(fā)射機(jī)微控制器程序
發(fā)射機(jī)程序框圖如圖4所示,微控制器執(zhí)行讀開(kāi)關(guān)狀態(tài)、開(kāi)關(guān)編碼、讀操縱桿、組幀等指令所需要的時(shí)間很短,多數(shù)時(shí)間是等待20ms定時(shí)。當(dāng)20ms定時(shí)器中斷時(shí)就設(shè)置定時(shí)標(biāo)志有效。主程序見(jiàn)到定時(shí)標(biāo)志有效,就將已準(zhǔn)備好的組幀數(shù)據(jù)移到發(fā)送緩沖區(qū),并且啟動(dòng)串口開(kāi)始發(fā)送數(shù)據(jù)。串口發(fā)送使用中斷方式。
(a)中斷程序框圖
(b)主程序框圖
圖4 遙控發(fā)射機(jī)程序框圖
發(fā)射機(jī)設(shè)計(jì)為每20ms發(fā)送一幀遙控指令,是為了和遙控對(duì)象中的一種模型舵機(jī)相配合。
微控制器與藍(lán)牙模塊使用串口通信,波特率選為9600b/s。一幀數(shù)據(jù)長(zhǎng)18字節(jié),發(fā)送占用時(shí)間約:
18字節(jié)×10位×(1/9600)秒≈18.75ms
需傳送信息(遙控指令編碼)的信道編碼及其糾錯(cuò)、跳頻時(shí)序控制等工作則由藍(lán)牙模塊在其內(nèi)嵌的藍(lán)牙協(xié)議操作之下完成。
接收機(jī)
遙控接收機(jī)的組成原理框圖如圖5,藍(lán)牙模塊與微控制器相連,藍(lán)牙模塊收到的遙控發(fā)射機(jī)發(fā)出的含有遙控指令編碼信息的數(shù)據(jù)傳給微控制器。由微控制器對(duì)該指令編碼進(jìn)行譯碼、變換后經(jīng)由相應(yīng)的驅(qū)動(dòng)電路隔離和放大,然后控制對(duì)應(yīng)的被控對(duì)象動(dòng)作。
圖5 接收機(jī)的組成
遙控接收機(jī)的微控制器收到的信息理論上應(yīng)是和圖2所示相同的發(fā)射機(jī)指令編碼數(shù)據(jù)。但由于數(shù)據(jù)在傳輸過(guò)程中經(jīng)由射頻無(wú)線(xiàn)傳輸,更有可能因干擾等原因出現(xiàn)誤碼,使得接收到的信息與發(fā)送方的信息不一致,這就需要再次對(duì)收到的編碼信息進(jìn)行糾錯(cuò)處理。對(duì)開(kāi)關(guān)量信息采取加大碼組間漢明距離的方法增加糾錯(cuò)能力。而對(duì)操縱桿位置這類(lèi)模擬量則是采取連續(xù)多次滑動(dòng)濾波的方法來(lái)減小誤碼的影響。
結(jié)語(yǔ)
實(shí)測(cè)在收發(fā)相距70m,且無(wú)遮擋的情況下,接收機(jī)未出現(xiàn)拒動(dòng)或誤動(dòng)的情形。距離100m時(shí)工作不可靠。從發(fā)射機(jī)按下開(kāi)關(guān)到接收機(jī)對(duì)應(yīng)端口響應(yīng)動(dòng)作,其延時(shí)約50~70ms。
由于是短距離遙控,操作者能目視被控對(duì)象的響應(yīng)狀態(tài)。為簡(jiǎn)單起見(jiàn),僅用前向信道傳送遙控指令。未使用反向信道。