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