王紅亮,吳志宏,王金陵
(中北大學(xué)a.儀器科學(xué)與動(dòng)態(tài)測試教育部重點(diǎn)實(shí)驗(yàn)室;b.電子測試技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,山西 太原030051)
責(zé)任編輯:魏雨博
藍(lán)牙技術(shù)作為一種無線通信技術(shù),可替代在便攜或固定電子設(shè)備間使用的連線,它是為了實(shí)現(xiàn)以無線傳輸替代移動(dòng)設(shè)備使用的電纜而產(chǎn)生的,傳輸范圍一般從10 cm到10 m左右,如果增加傳輸功率,最遠(yuǎn)傳輸范圍可達(dá)100 m左右。藍(lán)牙工作在全球開放的2.4 GHz ISM(工業(yè)、科學(xué)和醫(yī)療)頻段,能夠?qū)崿F(xiàn)單點(diǎn)對(duì)單點(diǎn)和單點(diǎn)對(duì)多點(diǎn)的實(shí)時(shí)數(shù)據(jù)或語音傳輸,采用了快速跳頻及前向糾錯(cuò)方案,以保證鏈路穩(wěn)定和傳輸可靠性。藍(lán)牙技術(shù)具備成本低、功耗低、體積小等技術(shù)特性,適用于一些不方便進(jìn)行電纜布線的工業(yè)測控場合[1]。
為了以相同成本和安全性完成一般電纜的功能,從而使移動(dòng)用戶擺脫電纜束縛,本文設(shè)計(jì)了一套基于藍(lán)牙通用模塊的多路傳感器數(shù)據(jù)傳輸系統(tǒng),應(yīng)用于布線難的工業(yè)應(yīng)用場合[2]。本設(shè)計(jì)利用傳感器采集多路數(shù)據(jù)通過藍(lán)牙模塊發(fā)送到上位機(jī),同時(shí)為了方便利用上位機(jī)實(shí)時(shí)監(jiān)測傳感器數(shù)據(jù),設(shè)計(jì)的軟件使上位機(jī)能實(shí)時(shí)顯示數(shù)據(jù)曲線[3]。
在不方便布線的工業(yè)應(yīng)用場合,采用藍(lán)牙技術(shù)可以很好地解決布線問題。利用藍(lán)牙技術(shù)傳輸數(shù)據(jù)的主要優(yōu)勢是:支持多種設(shè)備傳輸并可穿過實(shí)體墻壁或公文包等,能夠全方向傳輸[4]。由于工作在ISM頻段的無線電設(shè)備有很多種,如家用微波爐、無線局域網(wǎng)等產(chǎn)品,為了很好地抵抗來自這些設(shè)備的干擾,藍(lán)牙采用了跳頻(Frequency Hopping)技術(shù)來擴(kuò)展頻譜(Spread Spectrum),即將2.402~2.480 GHz頻段分成79個(gè)頻點(diǎn),相鄰頻點(diǎn)間隔1 MHz,藍(lán)牙設(shè)備在某個(gè)頻點(diǎn)發(fā)送數(shù)據(jù)之后,再跳到另一個(gè)頻點(diǎn)發(fā)送,而頻點(diǎn)的排列順序則是偽隨機(jī)的,每秒鐘頻率改變1 600次,每個(gè)頻率持續(xù)625μs[5]。與其他短距離無線通信技術(shù)相比,藍(lán)牙跳頻更快、數(shù)據(jù)分組更短,使得基于藍(lán)牙技術(shù)的數(shù)據(jù)傳輸系統(tǒng)更加穩(wěn)定可靠。本系統(tǒng)的系統(tǒng)框圖如圖1所示。
圖1 整體系統(tǒng)框圖
本系統(tǒng)由數(shù)據(jù)接收端和數(shù)據(jù)發(fā)送端兩部分組成,數(shù)據(jù)接收端和發(fā)送端通過藍(lán)牙模塊進(jìn)行無線數(shù)據(jù)傳輸。其中數(shù)據(jù)發(fā)送端的主要功能是接收傳感器所采集的數(shù)據(jù),經(jīng)過單片機(jī)處理后通過藍(lán)牙模塊發(fā)送到接收端。接收端通過串口與上位機(jī)相連,接收到數(shù)據(jù)后傳輸?shù)缴衔粰C(jī)中,上位機(jī)接收串口的數(shù)據(jù)進(jìn)行處理并顯示傳感器數(shù)據(jù)的實(shí)時(shí)曲線。
本設(shè)計(jì)的硬件電路選用MSP430F149作為控制器,選用通用藍(lán)牙模塊GC-02作為數(shù)據(jù)傳輸介質(zhì),選用DS18B20作為傳感器模塊。
德州儀器(TI)推出的MSP430微處理器是一種基于精簡指令集(RISC)的16位混合信號(hào)處理器,專為滿足超低功耗需求而精心設(shè)計(jì)。MSP430微處理器將智能外設(shè)、易用性、低成本以及業(yè)界最低功耗等優(yōu)異特性完美結(jié)合在一起。此處使用MSP430F149作為系統(tǒng)控制單元,對(duì)傳感器采集的信息進(jìn)行處理,配合藍(lán)牙模塊的工作模式,實(shí)時(shí)將多路傳感器采集到的數(shù)據(jù)信息傳輸給藍(lán)牙模塊。本文選用具有線路簡單,易于識(shí)別,讀取容易、小型輕便等優(yōu)點(diǎn)的DS18B20作為數(shù)據(jù)發(fā)送端的溫度傳感器。它具有獨(dú)特的單線接口方式,故在使用中不需要任何外圍器件,與CPU連接時(shí)僅需要單線就可實(shí)現(xiàn)DS18B20與微處理器的雙向通信。
藍(lán)牙系統(tǒng)一般由天線單元、鏈路控制(固件)單元、鏈路管理(軟件)單元和藍(lán)牙軟件(協(xié)議棧)單元4個(gè)功能單元組成。GC-02藍(lán)牙模塊的結(jié)構(gòu)中采用了CSR公司的AUDIO-Flash藍(lán)牙芯片,自帶高效板載天線,最適合工業(yè)數(shù)據(jù)、語音傳輸,是高質(zhì)量的CLASS2藍(lán)牙模塊。其主要特點(diǎn)是:串口數(shù)據(jù)傳輸,最大波特率1.3 Mbit/s,工業(yè)級(jí)無線數(shù)據(jù)采集,一對(duì)一自動(dòng)建鏈,透明串口上傳數(shù)據(jù)至PC、筆記本、PDA、智能手機(jī)等。
發(fā)送端由3部分組成:傳感器DS18B20、單片機(jī)MSP430F149、藍(lán)牙模塊GC-02。核心部件是單片機(jī)和藍(lán)牙模塊,二者之間通過串口寫入指令實(shí)現(xiàn)數(shù)據(jù)通信。發(fā)送模塊上電后,首先單片機(jī)通過串口向藍(lán)牙模塊寫入?yún)?shù)配置命令,配置藍(lán)牙模塊的工作模式和工作參數(shù),由于系統(tǒng)中存在多路傳感器,單片機(jī)需要對(duì)采集到的數(shù)據(jù)進(jìn)行處理以區(qū)分不同傳感器的信息。最后單片機(jī)通過串口將處理過的數(shù)據(jù)發(fā)送到發(fā)送端藍(lán)牙模塊中。由于DS18B20采用單總線協(xié)議,即在一根數(shù)據(jù)線就可實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,但是對(duì)單片機(jī)而言,必須利用軟件來模擬單總線的協(xié)議時(shí)序從而完成對(duì)DS18B20芯片的訪問。因此只需對(duì)時(shí)序定義即可實(shí)現(xiàn)對(duì)傳感器模塊所采集的數(shù)據(jù)信息的接收處理。發(fā)送端的硬件電路連接圖如圖2所示。
圖2 發(fā)送端硬件連接圖
接收端由2部分組成:藍(lán)牙模塊GC-02、串口芯片MAX232。藍(lán)牙模塊可以通過串口與上位機(jī)通信,上位機(jī)通過串口軟件向藍(lán)牙模塊寫入?yún)?shù)配置命令,配置藍(lán)牙模塊的工作模式和工作參數(shù)。當(dāng)接收端接收到發(fā)送端的數(shù)據(jù)時(shí),通過串口傳輸?shù)缴衔粰C(jī)。接收端藍(lán)牙模塊和發(fā)送端藍(lán)牙模塊配對(duì)連接后可以進(jìn)行雙向透明串口傳輸。當(dāng)藍(lán)牙模塊與遠(yuǎn)端藍(lán)牙設(shè)備建立串口鏈路,藍(lán)牙模塊的PIO5會(huì)輸出約200 ms間隔的脈沖信號(hào),此時(shí)PIO5端口的外接指示燈會(huì)快速閃爍,接收端硬件電路連接圖如圖3所示。
圖3 接收端硬件電路連接圖
單片機(jī)程序設(shè)計(jì)主要包括單片機(jī)配置藍(lán)牙模塊命令程序和單片機(jī)讀取傳感器數(shù)據(jù)程序。
2.1.1 配置藍(lán)牙模塊命令程序
預(yù)裝SPPV1.03串口通信固件的藍(lán)牙模塊,可通過串口AT指令方式進(jìn)行參數(shù)配置,使藍(lán)牙模塊工作于從模式、主模式或配置兩個(gè)藍(lán)牙模塊為一對(duì)一透明串口模式。藍(lán)牙模塊上電后處于正常待機(jī)狀態(tài),在與遠(yuǎn)端藍(lán)牙設(shè)備未建立藍(lán)牙串口鏈路時(shí),可通過藍(lán)牙模塊的UART串口輸入“AT模式進(jìn)入指令”和“AT模式進(jìn)入口令”,進(jìn)入?yún)?shù)配置模式;如果藍(lán)牙模塊已經(jīng)與遠(yuǎn)端藍(lán)牙設(shè)備建立串口鏈路,藍(lán)牙模塊的PIO5會(huì)輸出約200 ms間隔的脈沖信號(hào),此時(shí)外接指示燈會(huì)快速閃爍,此時(shí)無法進(jìn)入?yún)?shù)配置模式;如果藍(lán)牙模塊已進(jìn)入?yún)?shù)配置模式,不再與遠(yuǎn)端藍(lán)牙設(shè)備進(jìn)行任何通信。
在系統(tǒng)工作前應(yīng)先對(duì)藍(lán)牙模塊工作模式進(jìn)行設(shè)定,發(fā)送端設(shè)為從端設(shè)備,接收端設(shè)為主端設(shè)備。設(shè)置藍(lán)牙模塊為從端設(shè)備的流程為:設(shè)置藍(lán)牙設(shè)備為從模式,設(shè)置配對(duì)PIN碼,設(shè)置設(shè)備名稱,關(guān)閉串口提示信息,設(shè)置波特率。工作在從模式下的藍(lán)牙模塊始終處于待機(jī)模式,由主端發(fā)起查找、配對(duì)和連接。發(fā)送模塊上電后,單片機(jī)通過串口向藍(lán)牙模塊寫入?yún)?shù)配置命令,設(shè)定藍(lán)牙模塊的工作模式。
2.1.2 傳感器數(shù)據(jù)讀取程序
系統(tǒng)中利用了多路傳感器,需要通過單片機(jī)接收各路數(shù)據(jù)。由于本文通過一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,因此,對(duì)讀寫的數(shù)據(jù)位有嚴(yán)格的時(shí)序要求。由于DS18B20嚴(yán)格的通信協(xié)議從而保證各路數(shù)據(jù)傳輸?shù)耐暾耘c正確性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫時(shí)序。所有時(shí)序都是以主機(jī)為主設(shè)備,單總線器件作為系統(tǒng)的從設(shè)備。而每一次數(shù)據(jù)的傳輸都是從主機(jī)啟動(dòng)寫時(shí)序開始。如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。命令和數(shù)據(jù)的傳輸都是低位在先,高位在后。單片機(jī)在讀取DS18B20的數(shù)據(jù)后將這些數(shù)據(jù)通過串口發(fā)給藍(lán)牙模塊,藍(lán)牙模塊在與接收端建立連接的情況下會(huì)與接收端進(jìn)行透明串口通信,接收端會(huì)接收到這些數(shù)據(jù)并交給上位機(jī)處理。
接收端藍(lán)牙模塊通過串口與上位機(jī)連接,上位機(jī)可通過串口軟件對(duì)藍(lán)牙模塊的工作模式和工作參數(shù)進(jìn)行配置,此處將接收端藍(lán)牙模塊設(shè)置為主端藍(lán)牙設(shè)備。設(shè)藍(lán)牙模塊為主端藍(lán)牙設(shè)備的流程為:設(shè)置藍(lán)牙設(shè)備為主模式,設(shè)置配對(duì)PIN碼,設(shè)置設(shè)備名稱,關(guān)閉串口提示信息,設(shè)置波特率,綁定從端地址。工作在主模式下的藍(lán)牙模塊始終處于主模式,自動(dòng)查找、配對(duì)和連接綁定的從端設(shè)備,一旦連接成功,即可進(jìn)行雙向透明串口傳輸。
本文采用MATLAB軟件編寫串口數(shù)據(jù)的接收程序,程序中建立串口通信并根據(jù)串口的數(shù)據(jù)生成波形的流程圖如圖4所示。
程序開始運(yùn)行后首先為應(yīng)用程序創(chuàng)建串口對(duì)象,然后連接打開串口,打開串口后就可以對(duì)串口屬性進(jìn)行設(shè)置。在能夠有效地進(jìn)行串口通信前,必須設(shè)置正確的串口通信參數(shù)。判斷串口是否收到數(shù)據(jù),如果收到數(shù)據(jù)程序進(jìn)入中斷開始畫波形,如果沒有收到數(shù)據(jù)則繼續(xù)進(jìn)行判斷。
圖4 上位機(jī)軟件流程圖
將接收端藍(lán)牙模塊通過串口與上位機(jī)連接,運(yùn)行上位機(jī),通過上位機(jī)測試系統(tǒng)軟件顯示傳感器采集的信息,得到的波形如圖5所示。圖中橫軸代表時(shí)間(單位:s),縱軸代表傳感器采集的溫度(單位:℃),虛線代表的是未經(jīng)任何處理時(shí),該傳感器在一定的時(shí)間范圍內(nèi)采集到的溫度情況,實(shí)線代表的是用手指觸摸該傳感器采集到的外部溫度數(shù)據(jù)圖。由圖5的實(shí)線可以看出當(dāng)手指接觸外部傳感器時(shí)采集到的溫度不斷上升,拿開手指時(shí),溫度值直線下降,這說明當(dāng)外部環(huán)境改變時(shí),該傳感器可迅速檢測出該信息的變化,而且上位機(jī)能夠及時(shí)顯示出傳感器采集的溫度的變化情況。
圖5 上位機(jī)軟件測試圖
由此可見,采用這種模式建立的傳輸系統(tǒng)反應(yīng)靈敏、穩(wěn)定可靠、通信效率高。本設(shè)計(jì)能夠及時(shí)、準(zhǔn)確地對(duì)外界溫度進(jìn)行采集并通過上位機(jī)顯示,電路能夠?qū)崿F(xiàn)信號(hào)的實(shí)時(shí)傳輸,達(dá)到了實(shí)時(shí)監(jiān)測外界信息的目的。
本系統(tǒng)采用MSP430F149單片機(jī)作為處理器,通用藍(lán)牙模塊GC-02作為傳輸介質(zhì),實(shí)現(xiàn)了實(shí)時(shí)多點(diǎn)通信的通信網(wǎng)絡(luò)系統(tǒng),能夠?qū)崿F(xiàn)實(shí)時(shí)接收并處理傳感器所采集的信息。利用藍(lán)牙技術(shù)的低成本、低功耗、體積小等顯著的優(yōu)點(diǎn),實(shí)現(xiàn)對(duì)現(xiàn)代工業(yè)中的具有綜合功能的智能儀表的實(shí)時(shí)監(jiān)測和控制,實(shí)現(xiàn)現(xiàn)場通信網(wǎng)絡(luò)與控制系統(tǒng)的集成,也可以很好地完成多路大量信號(hào)的準(zhǔn)確、快速、實(shí)時(shí)的采集與預(yù)處理功能。上位機(jī)軟件的加入使操作人員可以在PC機(jī)上實(shí)現(xiàn)更加直觀的監(jiān)控和操作。本網(wǎng)絡(luò)可以應(yīng)用于制造自動(dòng)化最底層的現(xiàn)場設(shè)備或現(xiàn)場儀表互連的通信網(wǎng)絡(luò),大大簡化了這些網(wǎng)絡(luò)安裝布線的復(fù)雜性,在不方便布線的工業(yè)應(yīng)用場合具有很高的應(yīng)用價(jià)值。
[1]欒昌海,王盟.基于藍(lán)牙的多路無線測試系統(tǒng)的研究與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2007,23(11):265-266.
[2]童世華.無線智能家居室內(nèi)終端的設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2012,36(10):27-30.
[3]任小洪,傅成華,胡科.基于藍(lán)牙技術(shù)的無線數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].測控技術(shù),2009,28(1):16-19.
[4]周華蘭,唐明浩.藍(lán)牙技術(shù)在無線分布式測控系統(tǒng)中的應(yīng)用[J].電子技術(shù),2003(4):28-30.
[5]張群,楊絮,張正言,等.藍(lán)牙模塊串口通信的設(shè)計(jì)與實(shí)現(xiàn)[J].實(shí)驗(yàn)室研究與探索,2012,31(3):79-82.