藍牙透傳的串行通信電路設計研究
時間:2022-09-16 11:16:51
導語:藍牙透傳的串行通信電路設計研究一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
摘要:設計串行通信電路,實現(xiàn)手機藍牙與基于51單片機的藍牙模塊之間的數(shù)據(jù)透傳功能。該功能實現(xiàn)的過程是,手機上的數(shù)據(jù)經(jīng)藍牙透傳無線通信方式發(fā)送至單片機開發(fā)板上,單片機將接收到的8位數(shù)據(jù)顯示在單片機開發(fā)板的發(fā)光二極管(LED)上,同時將接收到的數(shù)據(jù)通過藍牙模塊發(fā)送至手機App客戶端上,以確認發(fā)送數(shù)據(jù)的正確性。
關(guān)鍵詞:藍牙數(shù)據(jù)透傳;串行異步通信;數(shù)據(jù)交互;51單片機
藍牙技術(shù)是基于WPAN(wirelesspersonalareanetwork)的無線網(wǎng)絡連接技術(shù),可在固定設備與移動設備之間建立短程收發(fā)連接[1]。它屬于一種短距離通信技術(shù),應用前景良好。尤其在智能家具、智能穿戴設備的設計中,操作易行的藍牙數(shù)據(jù)交互方式受到了消費者的青睞[2]。目前,基于MCS-51系列單片機的產(chǎn)品占有一部分市場,與其配套的各類開發(fā)系統(tǒng)和軟件也在不斷完善。本次研究將針對串行通信電路進行設計,擬實現(xiàn)基于STC89C52的藍牙數(shù)據(jù)透傳與串行通信功能。
1電路設計
系統(tǒng)涉及硬件部分和電路部分。其中,硬件部分包括手機用戶端和51單片機開發(fā)板及藍牙模塊。電路部分為手機藍牙與基于51單片機的藍牙模塊通信電路。其設計框圖如圖1所示。手機與藍牙模塊之間采用無線通信透傳模式,最大通信距離為50m。藍牙模塊與開發(fā)板之間采用串口通信方式。
2藍牙數(shù)據(jù)透傳方式
2.1數(shù)據(jù)透傳的概念。藍牙透傳即透明傳輸,是藍牙模塊的一種工作方式,一般應用于串口模塊雙向通信[3-4]。現(xiàn)有的藍牙串口透傳模塊可供用戶更好地開發(fā)藍牙無線傳輸產(chǎn)品,其透傳協(xié)議沒有封裝,不需要處理,也沒有藍牙底層協(xié)議棧操作要求。用戶可以參考手冊直接使用硬件提供的API(applicationprograminterface)接口來實現(xiàn)數(shù)據(jù)透傳,而不需要更深入地了解藍牙技術(shù)[5]。2.2藍牙標準及參數(shù)配置。目前市面上的產(chǎn)品已經(jīng)開始應用藍牙5.0和藍牙4.2技術(shù)。藍牙技術(shù)主要應用于有較大數(shù)據(jù)吞吐量和抗干擾能力比較強的傳輸場合,如手機通訊設備和音頻數(shù)據(jù)傳輸設備。JDY-10M透傳模塊基于藍牙4.0標準,工作頻段為2.4GHz范圍,具有成本低、功耗小、尺寸小、信號強、數(shù)據(jù)傳輸穩(wěn)定等特性。相比于之前的低版本模塊,藍牙4.0版本透傳模塊具有傳輸功耗更低、傳輸距離更遠、傳輸穩(wěn)定性更好的特點。低功耗藍牙設計的作用,在于用深度睡眠狀態(tài)來代替?zhèn)鹘y(tǒng)藍牙的空閑狀態(tài)。在深度睡眠狀態(tài)下主機長時間處于超低功耗的循環(huán)狀態(tài),只在需要運作時由核心控制器來啟動。因此,這樣的設計可實現(xiàn)低功耗模式[5]。以上低成本、低功耗的優(yōu)點,表明JDY-10M透傳模塊比較適用于DIY開發(fā)。AT指令集用于設置藍牙模塊參數(shù),可將USB轉(zhuǎn)TTL工具的VCC、GND、TX、RX等接口與藍牙模塊對應的管腳相連接。用PC機將藍牙模塊的傳輸模式設置為透傳模式,其命令參數(shù)為:AT+CLAS-SA0(每條命令結(jié)尾+換行符)。因在單片機串行通信代碼中選用的波特率為4800bps,故需將藍牙模塊串口通信波特率設置為4800bps,其命令參數(shù)為:AT+BAUD5。串口助手與藍牙模塊參數(shù)設置界面如圖2所示,具體指令可參考JDY-10M組網(wǎng)模塊中文手冊。
3STC89C52單片機的串口通信設計
STC89C52單片機是51單片機的增強型,設計中使用STC89C52單片機作為接收終端。51單片機內(nèi)部有一個全雙工串行口[6-7],能同時接收和發(fā)送數(shù)據(jù)。SBUF寄存器包括2個物理結(jié)構(gòu)相互獨立的數(shù)據(jù)接收器、發(fā)送緩沖器,通過指令對SBUF寄存器的讀寫可同時發(fā)送和接收,對應的IO口為RXD(P3.0)、TXD(P3.1)。采用異步通信方式,在12MHz晶振頻率下,配置通信波特率為4800bps,寄存器SMOD位為1,即寄存器PCON=0x80倍增。在方式2下,定時器T1的初值可自動重裝載,定時更加準確,因此波特率發(fā)生器工作方式選擇T1的方式2。串行通信工作方式選擇波特率可變的方式1,即寄存器SCON=0x50。利用中斷方式編程,串行中斷函數(shù)的方式編程需設置允許接收,即REN=1。波特率按式(1)來計算:S=2SMOD32f12(256-X)(1)式中:S為波特率;f為晶振頻率;X為定時器T1的初值。
4代碼設計與實現(xiàn)
選用普中科技51單片機開發(fā)板作為數(shù)據(jù)接收的載體,將編寫好的C代碼HEX文件燒寫在STC89C52中。主程序與中斷服務程序流程如圖3所示,對應的中斷服務函數(shù)如下:voidUsart()interrupt4{unsignedcharreceive;receive=SBUF;//將接收SBUF接收到的數(shù)據(jù)傳給變量receiveRI=0;//消除接收中斷標志位數(shù)據(jù)P2=receive;//請收到的數(shù)據(jù)賦值給P2的LEDSBUF=receive;//將接收到的數(shù)據(jù)傳給發(fā)送SBUFwhile(!TI);//等待發(fā)送完畢TI=0;//發(fā)送中斷標志位清零,為下次發(fā)送作準備}通過串口調(diào)試助手,先將藍牙模塊配置設為數(shù)據(jù)透傳模式,波特率為4800bps。然后,將藍牙模塊與MCS51單片機的對應管腳相連,進行硬件搭建。在搭建好的硬件上,通電,打開手機藍牙測試App,搜索藍牙模塊,點擊配對。這時,界面會顯示藍牙模塊的MAC地址和狀態(tài)已連接。選擇十六進制發(fā)送,輸入十六進制數(shù)55,點擊發(fā)送。此時,可以在開發(fā)板上看到0x55在LED上的顯示效果。同時,在App接收界面會收到單片機返回的十六進制數(shù)55,以確認發(fā)送數(shù)據(jù)的正確性。由此實現(xiàn)藍牙數(shù)據(jù)透傳和串口通信的功能,其實測效果如圖4所示。
5調(diào)試及分析
設置藍牙模塊參數(shù),默認波特率為115200,發(fā)送命令AT+BAUD,確認波特率為4800bps。當設置完成后,需要重啟藍牙模塊。串行編程中,波特率是否需要倍增,可先將SMOD設為0,用式(1)計算后確定。當初值X得出小數(shù)X.5的形式時,就需要倍增,倍增后定時器的初值約等于整數(shù);否則,單片機接收到的數(shù)據(jù)為誤碼,不能被LED正確顯示,也不能被手機客戶端正確接收。6結(jié)語針對STC89C52單片機進行串行通信電路設計,實現(xiàn)了藍牙透傳功能。本次設計中,可將手機上的數(shù)據(jù)經(jīng)藍牙透傳無線通信方式發(fā)送至STC89C52單片機上,并通過LED顯示接收到的8位數(shù)據(jù);同時,單片機將串口接收到的數(shù)據(jù)通過藍牙模塊返回至手機App客戶端上,以確認發(fā)送數(shù)據(jù)的正確性。
參考文獻
[1]張凌,姚萌.藍牙通信過程解析與研究[J].計算機應用研究,2002(9):146-150.
[2]汪振飛,劉軍.基于藍牙技術(shù)的單片機與計算機無線通信系統(tǒng)[J].科技創(chuàng)新導報,2007(35):11-12.
[3]王東波,秦會斌,董勝奎.基于MCS-51和藍牙的家庭智能照明系統(tǒng)設計[J].無線互聯(lián)科技,2013(7):199-200.
[4]張文海.基于物聯(lián)網(wǎng)的智能家居安防系統(tǒng)設計[D].西安:西安電子科技大學,2015:1-5.
[5]馬建倉,羅亞軍,趙玉亭.藍牙核心技術(shù)及應用[M].北京:科學出版社,2003:2-8.
[6]馬忠梅,籍順心,張凱,等.單片機的C語言應用程序設計[M].4版.北京:北京航空航天大學出版社,2007:193-197.
[7]邱春玲,李肅義,張春生,等.單片機與嵌入式系統(tǒng)基礎[M].北京:機械工業(yè)出版社,2016:100-112.
作者:朱艷生 劉金亭 武文杰 陳旺 單位:1.重慶郵電大學移通學院通信與物聯(lián)網(wǎng)工程學院 2.西華師范大學電子信息工程學院
相關(guān)文章
精品范文
1藍牙傳輸