基于51單片機實現短距離無線通信
4.1 PTR2000模塊程序設計
單片機和PC機端軟件配合設置PTR2000的狀態(發射或接收),選擇固定的通信頻道1(CS=0),并讓PTR2000模塊一直處于正常工作狀態(PWM=1)。無線通信實現過程如下:
(1)發送在發送數據之前,應將PTR2000模塊置于發射模式,即TXEN=1。然后等待至少5 ms后(接收到發射的切換時間)才可發射數據。發送結束后,應將模塊置于接收狀態,即TXEN=0。
(2)接收應將PTR2000置于接收模式,即TXEN=0。單片機不發送的絕大部分時間都處于接收狀態。當單片機端發送時,PC機端應為接收;當PC機端發送時,單片機端應為接收。
4.2 串行無線通信協議設計
無線通信中,由于外部環境的干擾,通常誤碼率較高,因此通信協議的設計對保證通信的可靠性十分重要。協議的設計主要是幀結構的設計,在該無線通信系統中,存在指令幀和數據幀。數據幀的內容包括起始字節、數據長度字節、數據字節、結束字節和校驗和字節,如表2所示。
起始字節定義為“$”字符,其數值為0x24;結束字節定義為“*”字符,其數值為0x2A。
采用校驗和的方法進行幀的校驗,將所有字節相加,然后將結果截短到所需的位長。發送端對待發送的數據進行校驗和計算,將校驗和值放在數據后一起發送;在接收端,對接收到的數據進行校驗和計算,然后與收到的校驗和字節比較,進行誤碼判斷。
對于單片機,指令幀主要有3種:PC機發送給單片機的請求發送指令、錯誤/超時重發指令、單片機發給PC機的發送完畢指令。在該系統設計中指令幀采用數據幀的格式,將其中的。數據字節固定為一個字節,根據定義的字節判斷數據狀態。
4.3 程序流程
單片機開始需將無線數據傳輸模塊PTR2000設置處于接收狀態,通過串口中斷識別由PC機通過無線信道傳輸來的指令,根據接收指令的內容采集數據并啟動發送。發送前需將PTR2000模塊設置為發射狀態,且等待5 ms才可發送,發送完畢后,向PC機端發送“發送結束指令”,并將PTR2000模塊重設為接收狀態。圖4為系統軟件設計流程圖。
5 結束語
單片機無線通信系統設計基于PTR2000無線數據傳輸解決方案,可實現小于300 m的短距離通信,通過實驗驗證該無線數據傳輸系統運行良好,單片機控制得相當準確。在應用時將系統作為一個模塊可方便地移植,以便構建更為復雜的無線通信網絡,可應用于小型無線網絡、無線抄表、小區傳呼、工業數據采集系統、安全防火系統等領域,具有一定實用價值。
評論