紀(jì)利琴 王健 熊偉
【摘 要】藍(lán)牙通信,作為一種短距離的數(shù)據(jù)通信方式,應(yīng)用非常廣泛。但基于單片機(jī)的藍(lán)牙設(shè)備之間的通信,許多人在實(shí)際開發(fā)、設(shè)計(jì)時(shí),總是遇到不同的問(wèn)題,無(wú)法實(shí)現(xiàn)。本文運(yùn)用51單片機(jī)作為藍(lán)牙設(shè)備的控制器,實(shí)現(xiàn)了基于藍(lán)牙通信的數(shù)據(jù)傳輸,并詳細(xì)介紹了設(shè)計(jì)調(diào)試的過(guò)程,給電子愛好者或設(shè)計(jì)開發(fā)者提供一定的方法及經(jīng)驗(yàn)。
【關(guān)鍵字】藍(lán)牙通信;單片機(jī);配置
中圖分類號(hào): TP368.1文獻(xiàn)標(biāo)識(shí)碼: A文章編號(hào): 2095-2457(2019)19-0042-001
DOI:10.19694/j.cnki.issn2095-2457.2019.19.018
0 引言
目前,使用較為廣泛的短距離無(wú)線數(shù)據(jù)傳輸方式有藍(lán)牙通信(Bluetooth),紅外通信(IrDA)、Zig-Bee通信以及無(wú)線局域網(wǎng)(Wi-Fi)通信等等。其中,藍(lán)牙通信以其體積小、集成度高、開放的標(biāo)準(zhǔn)接口等特點(diǎn),廣泛應(yīng)用于移動(dòng)終端設(shè)備、智能家電、醫(yī)療器械、工業(yè)自動(dòng)控制等領(lǐng)域[1]。然基于藍(lán)牙通信的設(shè)備多以單片機(jī)與PC機(jī)、手機(jī)藍(lán)牙與單片機(jī)、PC機(jī)與PC機(jī)等方式實(shí)現(xiàn),單片機(jī)與單片機(jī)基于藍(lán)牙的通信,理論上可以,但沒(méi)有實(shí)際實(shí)現(xiàn)的例子。本設(shè)計(jì)實(shí)現(xiàn)的即是單片機(jī)與單片機(jī)之間通過(guò)藍(lán)牙的方式進(jìn)行通信。
1 組成框圖
本設(shè)計(jì)組成框圖見圖1所示,其中將一方設(shè)為主機(jī),另一方設(shè)為從機(jī)。主機(jī)在結(jié)構(gòu)上由單片機(jī)和藍(lán)牙通信模塊組成,從機(jī)同樣由單片機(jī)與藍(lán)牙模塊組成,且為了測(cè)試兩則通信的成功與否,在從機(jī)單片機(jī)端,輸出用八個(gè)指示燈指示通信的狀態(tài)。
主機(jī)單片機(jī)和從機(jī)單片機(jī)均為51單片機(jī),藍(lán)牙通信模塊均為HC08。
2 硬件設(shè)計(jì)
主機(jī)由單片機(jī)最小系統(tǒng)模塊和藍(lán)牙模塊組成, 藍(lán)牙HC08模塊與單片機(jī)之間的通信有4根線,2根電源線,2根信號(hào)線。單片機(jī)與藍(lán)牙模塊之間的通信為串行通信,即一個(gè)發(fā)送信號(hào)線、一個(gè)接收信號(hào)線。單片機(jī)與藍(lán)牙模塊連接圖見圖2左圖所示。
從機(jī)由單片機(jī)最小系統(tǒng)電路、藍(lán)牙模塊和輸出指示電路組成。其中單片機(jī)與藍(lán)牙之間的通信與主機(jī)相同,也是由4根線組成。其中輸出指示電路設(shè)置了8個(gè)綠色指示燈。具體電路見圖2右圖所示。
3 軟件設(shè)計(jì)
主機(jī)完成的功能主要是利用串行通信口接收數(shù)據(jù),然后用指示燈指示接收的數(shù)據(jù)。因此主機(jī)軟件設(shè)計(jì)部分主要包括初始化部分、接收數(shù)據(jù)部分、數(shù)據(jù)輸出指示部分。其中初始化主要是完成對(duì)串口的初始化以及設(shè)置指示燈的初始狀態(tài)。設(shè)計(jì)的流程如圖3所示。
從機(jī)部分主要完成的功能是定時(shí)利用串行通信口發(fā)送數(shù)據(jù)。因此軟件設(shè)計(jì)部分主要包括系統(tǒng)初始化、定時(shí)發(fā)送數(shù)據(jù)。其中初始化包括對(duì)串行口的初始化以及定時(shí)器的初始化。流程圖見圖4所示。軟件設(shè)計(jì)時(shí),注意主機(jī)串口通信的波特率設(shè)置一定要與從機(jī)的串口通信波特率一致。
4 系統(tǒng)的調(diào)試
利用藍(lán)牙方式進(jìn)行通信,首先需要對(duì)通信的兩個(gè)藍(lán)牙模塊進(jìn)行設(shè)置,方法為取其中的一個(gè)藍(lán)牙模塊利用USB-TTL轉(zhuǎn)接模塊連接電腦,然后給藍(lán)牙模塊重新復(fù)位,進(jìn)入配置模式(藍(lán)牙上的燈進(jìn)行閃爍),接著在電腦上打開一個(gè)串口調(diào)試助手,設(shè)置波特率、數(shù)據(jù)格式、密碼、地址以及主機(jī)/從機(jī)模式、連接方式(地址連接)以及綁定對(duì)方的地址等。設(shè)置完畢后換取另一個(gè)藍(lán)牙模塊進(jìn)行配置設(shè)置。兩個(gè)模塊設(shè)置時(shí),波特率、數(shù)據(jù)格式、連接方式需要一致,而需要配置的地址不同,且一個(gè)設(shè)置為主機(jī)模式,一個(gè)設(shè)置為從機(jī)模式,并綁定地址時(shí),綁定的是對(duì)方的地址[2]。
配置成功后,將兩個(gè)藍(lán)牙模塊分別連接相應(yīng)的主機(jī)、從機(jī)單片機(jī),上電,進(jìn)行藍(lán)牙配對(duì)。當(dāng)兩個(gè)藍(lán)牙模塊配對(duì)沒(méi)有成功時(shí),兩個(gè)模塊指示燈均閃爍,當(dāng)成功后,藍(lán)牙模塊指示燈常亮,表示建立通信了。
在主機(jī)單片機(jī)、從機(jī)單片機(jī)均下載設(shè)計(jì)好的通信程序后,上電,并使藍(lán)牙模塊配對(duì)成功后,接收機(jī)從機(jī)指示燈指示接收的數(shù)據(jù)。
5 結(jié)論
首先,基于藍(lán)牙方式的通信,需要首先配置藍(lán)牙模塊,注意配置的參數(shù)。其次,在藍(lán)牙設(shè)備與藍(lán)牙設(shè)備配對(duì)連接成功后,兩設(shè)備之間的通信可以看作是串口之間的通信,程序的設(shè)計(jì)按照串口通信程序設(shè)計(jì)即可。最后,使用51單片機(jī)的串口通信,實(shí)現(xiàn)基于藍(lán)牙設(shè)備之間的通信,51單片機(jī)最小系統(tǒng)中采用的晶振頻率為11.0592MHZ,切忌雙方的晶振頻率不一致。
【參考文獻(xiàn)】
[1]李國(guó)瑞.物聯(lián)網(wǎng)中常用的幾種短距離無(wú)線通信技術(shù)[J].信息通信,2017,178:213,214.
[2]曾甜甜.一種基于藍(lán)牙技術(shù)和單片機(jī)的數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].計(jì)算機(jī)與信息技術(shù),2007,23.