藍牙透傳的串行通信電路設計研究

時間:2022-09-16 11:16:51

導語:藍牙透傳的串行通信電路設計研究一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

藍牙透傳的串行通信電路設計研究

摘要:設計串行通信電路,實現手機藍牙與基于51單片機的藍牙模塊之間的數據透傳功能。該功能實現的過程是,手機上的數據經藍牙透傳無線通信方式發送至單片機開發板上,單片機將接收到的8位數據顯示在單片機開發板的發光二極管(LED)上,同時將接收到的數據通過藍牙模塊發送至手機App客戶端上,以確認發送數據的正確性。

關鍵詞:藍牙數據透傳;串行異步通信;數據交互;51單片機

藍牙技術是基于WPAN(wirelesspersonalareanetwork)的無線網絡連接技術,可在固定設備與移動設備之間建立短程收發連接[1]。它屬于一種短距離通信技術,應用前景良好。尤其在智能家具、智能穿戴設備的設計中,操作易行的藍牙數據交互方式受到了消費者的青睞[2]。目前,基于MCS-51系列單片機的產品占有一部分市場,與其配套的各類開發系統和軟件也在不斷完善。本次研究將針對串行通信電路進行設計,擬實現基于STC89C52的藍牙數據透傳與串行通信功能。

1電路設計

系統涉及硬件部分和電路部分。其中,硬件部分包括手機用戶端和51單片機開發板及藍牙模塊。電路部分為手機藍牙與基于51單片機的藍牙模塊通信電路。其設計框圖如圖1所示。手機與藍牙模塊之間采用無線通信透傳模式,最大通信距離為50m。藍牙模塊與開發板之間采用串口通信方式。

2藍牙數據透傳方式

2.1數據透傳的概念。藍牙透傳即透明傳輸,是藍牙模塊的一種工作方式,一般應用于串口模塊雙向通信[3-4]。現有的藍牙串口透傳模塊可供用戶更好地開發藍牙無線傳輸產品,其透傳協議沒有封裝,不需要處理,也沒有藍牙底層協議棧操作要求。用戶可以參考手冊直接使用硬件提供的API(applicationprograminterface)接口來實現數據透傳,而不需要更深入地了解藍牙技術[5]。2.2藍牙標準及參數配置。目前市面上的產品已經開始應用藍牙5.0和藍牙4.2技術。藍牙技術主要應用于有較大數據吞吐量和抗干擾能力比較強的傳輸場合,如手機通訊設備和音頻數據傳輸設備。JDY-10M透傳模塊基于藍牙4.0標準,工作頻段為2.4GHz范圍,具有成本低、功耗小、尺寸小、信號強、數據傳輸穩定等特性。相比于之前的低版本模塊,藍牙4.0版本透傳模塊具有傳輸功耗更低、傳輸距離更遠、傳輸穩定性更好的特點。低功耗藍牙設計的作用,在于用深度睡眠狀態來代替傳統藍牙的空閑狀態。在深度睡眠狀態下主機長時間處于超低功耗的循環狀態,只在需要運作時由核心控制器來啟動。因此,這樣的設計可實現低功耗模式[5]。以上低成本、低功耗的優點,表明JDY-10M透傳模塊比較適用于DIY開發。AT指令集用于設置藍牙模塊參數,可將USB轉TTL工具的VCC、GND、TX、RX等接口與藍牙模塊對應的管腳相連接。用PC機將藍牙模塊的傳輸模式設置為透傳模式,其命令參數為:AT+CLAS-SA0(每條命令結尾+換行符)。因在單片機串行通信代碼中選用的波特率為4800bps,故需將藍牙模塊串口通信波特率設置為4800bps,其命令參數為:AT+BAUD5。串口助手與藍牙模塊參數設置界面如圖2所示,具體指令可參考JDY-10M組網模塊中文手冊。

3STC89C52單片機的串口通信設計

STC89C52單片機是51單片機的增強型,設計中使用STC89C52單片機作為接收終端。51單片機內部有一個全雙工串行口[6-7],能同時接收和發送數據。SBUF寄存器包括2個物理結構相互獨立的數據接收器、發送緩沖器,通過指令對SBUF寄存器的讀寫可同時發送和接收,對應的IO口為RXD(P3.0)、TXD(P3.1)。采用異步通信方式,在12MHz晶振頻率下,配置通信波特率為4800bps,寄存器SMOD位為1,即寄存器PCON=0x80倍增。在方式2下,定時器T1的初值可自動重裝載,定時更加準確,因此波特率發生器工作方式選擇T1的方式2。串行通信工作方式選擇波特率可變的方式1,即寄存器SCON=0x50。利用中斷方式編程,串行中斷函數的方式編程需設置允許接收,即REN=1。波特率按式(1)來計算:S=2SMOD32f12(256-X)(1)式中:S為波特率;f為晶振頻率;X為定時器T1的初值。

4代碼設計與實現

選用普中科技51單片機開發板作為數據接收的載體,將編寫好的C代碼HEX文件燒寫在STC89C52中。主程序與中斷服務程序流程如圖3所示,對應的中斷服務函數如下:voidUsart()interrupt4{unsignedcharreceive;receive=SBUF;//將接收SBUF接收到的數據傳給變量receiveRI=0;//消除接收中斷標志位數據P2=receive;//請收到的數據賦值給P2的LEDSBUF=receive;//將接收到的數據傳給發送SBUFwhile(!TI);//等待發送完畢TI=0;//發送中斷標志位清零,為下次發送作準備}通過串口調試助手,先將藍牙模塊配置設為數據透傳模式,波特率為4800bps。然后,將藍牙模塊與MCS51單片機的對應管腳相連,進行硬件搭建。在搭建好的硬件上,通電,打開手機藍牙測試App,搜索藍牙模塊,點擊配對。這時,界面會顯示藍牙模塊的MAC地址和狀態已連接。選擇十六進制發送,輸入十六進制數55,點擊發送。此時,可以在開發板上看到0x55在LED上的顯示效果。同時,在App接收界面會收到單片機返回的十六進制數55,以確認發送數據的正確性。由此實現藍牙數據透傳和串口通信的功能,其實測效果如圖4所示。

5調試及分析

設置藍牙模塊參數,默認波特率為115200,發送命令AT+BAUD,確認波特率為4800bps。當設置完成后,需要重啟藍牙模塊。串行編程中,波特率是否需要倍增,可先將SMOD設為0,用式(1)計算后確定。當初值X得出小數X.5的形式時,就需要倍增,倍增后定時器的初值約等于整數;否則,單片機接收到的數據為誤碼,不能被LED正確顯示,也不能被手機客戶端正確接收。6結語針對STC89C52單片機進行串行通信電路設計,實現了藍牙透傳功能。本次設計中,可將手機上的數據經藍牙透傳無線通信方式發送至STC89C52單片機上,并通過LED顯示接收到的8位數據;同時,單片機將串口接收到的數據通過藍牙模塊返回至手機App客戶端上,以確認發送數據的正確性。

參考文獻

[1]張凌,姚萌.藍牙通信過程解析與研究[J].計算機應用研究,2002(9):146-150.

[2]汪振飛,劉軍.基于藍牙技術的單片機與計算機無線通信系統[J].科技創新導報,2007(35):11-12.

[3]王東波,秦會斌,董勝奎.基于MCS-51和藍牙的家庭智能照明系統設計[J].無線互聯科技,2013(7):199-200.

[4]張文海.基于物聯網的智能家居安防系統設計[D].西安:西安電子科技大學,2015:1-5.

[5]馬建倉,羅亞軍,趙玉亭.藍牙核心技術及應用[M].北京:科學出版社,2003:2-8.

[6]馬忠梅,籍順心,張凱,等.單片機的C語言應用程序設計[M].4版.北京:北京航空航天大學出版社,2007:193-197.

[7]邱春玲,李肅義,張春生,等.單片機與嵌入式系統基礎[M].北京:機械工業出版社,2016:100-112.

作者:朱艷生 劉金亭 武文杰 陳旺 單位:1.重慶郵電大學移通學院通信與物聯網工程學院 2.西華師范大學電子信息工程學院