1引言
近年來,,近距離的數(shù)字化智能數(shù)據(jù)采集與控制系統(tǒng)得到了普遍應(yīng)用,流行的結(jié)構(gòu)是以PC機(jī),、筆記本電腦,、工控機(jī)等作為上位機(jī),以單片機(jī),、嵌入式系統(tǒng)作為下位機(jī),,通過串行通信、488總線,、CAN總線,、以太網(wǎng)等多種方式進(jìn)行數(shù)據(jù)傳輸。這些有線數(shù)據(jù)傳輸系統(tǒng)具有布線不便,、通信電纜容易受損等弊端,。
隨著無線數(shù)據(jù)通信技術(shù)的日益成熟,在工業(yè)控制,、檢測與測量領(lǐng)域,,無線自動化(WirelessAutomation)已經(jīng)成為人們關(guān)注的焦點(diǎn),迫切需要低成本,、高可靠,、低功耗的無線數(shù)據(jù)傳輸方案代替有線系統(tǒng)。藍(lán)牙作為一種電纜替代技術(shù),,可以方便地實(shí)現(xiàn)設(shè)備之間的無線連接,,具有低成本、低功耗,、高速率,、抗干擾能力強(qiáng)、組網(wǎng)靈活等特點(diǎn),,是實(shí)現(xiàn)近距離無線數(shù)據(jù)傳輸?shù)睦硐脒x擇[1],。當(dāng)前主要的掌上電腦(PocketPC)和智能手機(jī)(Smartphone)均支持藍(lán)牙協(xié)議。
同時,,隨著掌上終端處理能力的不斷增強(qiáng),,以掌上終端作為上位機(jī)控制中心成為可能,掌上終端攜帶方便,,尤其適用于野外或復(fù)雜條件下的現(xiàn)場控制,。
本文基于掌上智能終端實(shí)現(xiàn)對分布式數(shù)據(jù)采集系統(tǒng)的藍(lán)牙無線控制,在掌上終端的主流操作系統(tǒng)WindowsMobile上實(shí)現(xiàn)基于不同藍(lán)牙協(xié)議棧的終端設(shè)備控制與數(shù)據(jù)通信,,完成數(shù)據(jù)的實(shí)時無線傳輸,。能夠設(shè)置多個采集終端的數(shù)據(jù)采集參數(shù)并實(shí)時無線回收數(shù)據(jù),保證數(shù)據(jù)采集的實(shí)時性、數(shù)據(jù)可靠性和軟件系統(tǒng)穩(wěn)定性,。
2掌上終端控制的藍(lán)牙微微網(wǎng)無線數(shù)據(jù)采集系統(tǒng)
2.1系統(tǒng)結(jié)構(gòu)
如圖1所示,,多個藍(lán)牙無線數(shù)據(jù)采集器組成藍(lán)牙微微網(wǎng),與掌上終端通過藍(lán)牙連接進(jìn)行控制信令傳輸及數(shù)據(jù)通信,。掌上終端識別網(wǎng)內(nèi)的數(shù)據(jù)采集器,,發(fā)送控制命令并實(shí)時顯示回收的數(shù)據(jù)。藍(lán)牙無線數(shù)據(jù)采集器在掌上終端的控制下設(shè)置數(shù)據(jù)采集參數(shù),,啟動或停止數(shù)據(jù)采集,,實(shí)時采集所需要的現(xiàn)場信號,并通過藍(lán)牙微微網(wǎng),,將數(shù)據(jù)無線回傳至掌上系統(tǒng),。
圖1掌上終端控制的藍(lán)牙微微網(wǎng)無線數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)圖
2.2藍(lán)牙無線數(shù)據(jù)采集器
各數(shù)據(jù)采集器通過距離、壓力,、溫度等傳感器將目標(biāo)物理量轉(zhuǎn)換為電信號,,并由A/D轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號。數(shù)據(jù)采集器上配接藍(lán)牙模塊,,通過UART與藍(lán)牙模塊連接,,數(shù)據(jù)的收發(fā)通過讀寫UART寄存器來完成。采集器通過藍(lán)牙鏈路接收來自掌上控制器的命令及采集參數(shù),,并將各時刻的數(shù)據(jù)組織為幀結(jié)構(gòu),,發(fā)送至掌上控制終端。
2.3掌上智能控制終端系統(tǒng)
掌上終端代替PC機(jī),、筆記本電腦,、工控機(jī)等作為現(xiàn)場數(shù)據(jù)采集系統(tǒng)的上位機(jī),是現(xiàn)場數(shù)據(jù)采集與控制中心及數(shù)據(jù)接收中心,,主要任務(wù)包括:藍(lán)牙數(shù)據(jù)采集器管理及傳感器校正、數(shù)據(jù)采集器參數(shù)設(shè)置,、數(shù)據(jù)采集控制,、無線數(shù)據(jù)接收、實(shí)時顯示與數(shù)據(jù)存儲,、回放,。
基于掌上智能終端內(nèi)嵌的藍(lán)牙模塊,調(diào)用相應(yīng)的協(xié)議棧庫函數(shù)即可完成藍(lán)牙的相關(guān)操作,。數(shù)據(jù)采集器管理模塊負(fù)責(zé)設(shè)備查找與設(shè)備安全認(rèn)證,;采集參數(shù)攝制及控制模塊向采集器發(fā)送工作控制命令;無線數(shù)據(jù)接收模塊實(shí)時接收采集器數(shù)據(jù)并提供圖形化顯示,;實(shí)時采集的數(shù)據(jù)按照約定格式存放在指定文件中,,并根據(jù)需要提供歷史數(shù)據(jù)回放。
2.4藍(lán)牙微微網(wǎng)無線數(shù)據(jù)通信
藍(lán)牙是一種短距離低功耗無線傳輸技術(shù),工作于2.4GHz的ISM頻段[2],。藍(lán)牙通信協(xié)議棧分為四層,,其中核心層為基帶協(xié)議層(BaseBand)鏈路管理協(xié)議(LMP)、邏輯鏈接控制和適配協(xié)議(L2CAP)以及服務(wù)發(fā)現(xiàn)協(xié)議(SDP),,核心層之上為電纜替代協(xié)議(RFCOMM)與電話傳送控制協(xié)議(TCS-Binary)[2],。本系統(tǒng)藍(lán)牙無線傳輸工作在RFCOMM協(xié)議上,利用SerialPortProfile將藍(lán)牙設(shè)備虛擬成串口設(shè)備,,數(shù)據(jù)的傳輸操作與串口操作相同,,開發(fā)方便。
3掌上控制系統(tǒng)的工作流程
掌上控制系統(tǒng)的主要功能包括采集參數(shù)設(shè)置,、采集器系統(tǒng)自檢,、傳感器校正、采集控制以及數(shù)據(jù)回顯,。參數(shù)設(shè)置模塊設(shè)置采樣間隔,、保存文件路徑、工程信息等參數(shù),;采集器系統(tǒng)自檢模塊以預(yù)采集的方式啟動采集器,,檢測整個系統(tǒng)軟硬件工作狀態(tài);傳感器校正模塊實(shí)現(xiàn)各傳感器的零漂糾正及系數(shù)率定,;采集控制模塊控制采集器的數(shù)據(jù)采樣啟動與結(jié)束,,接收并處理數(shù)據(jù),完成數(shù)據(jù)的實(shí)時顯示及保存,;數(shù)據(jù)回顯模塊從文件讀取歷史數(shù)據(jù)并顯示,。
4主要功能實(shí)現(xiàn)
4.1數(shù)據(jù)幀藍(lán)牙
數(shù)據(jù)通信中,命令幀結(jié)構(gòu)與數(shù)據(jù)幀的約定如下:命令幀由兩位命令標(biāo)識,、四位命令參數(shù)和兩位結(jié)束符組成,,如IT0001ZZ,IT代表設(shè)置采樣間隔命令,,0001約定為采樣間隔為0.01ms,,ZZ為統(tǒng)一結(jié)束符。數(shù)據(jù)幀由兩位機(jī)器識別碼,、兩位數(shù)據(jù)和兩位結(jié)束符組成,,如A1HLZZ;其中H表示16進(jìn)制數(shù)據(jù)的高位,L代表低位,。
每次采集傳輸數(shù)據(jù)時,,終端無間隔采集并傳送5組數(shù)據(jù),在掌上控制終端進(jìn)行中值濾波,,以減小誤差,。
4.2藍(lán)牙設(shè)備發(fā)現(xiàn)與連接實(shí)現(xiàn)
4.2.1基于微軟協(xié)議棧的藍(lán)牙傳輸
實(shí)現(xiàn)基于微軟的藍(lán)牙驅(qū)動,,開發(fā)簡單。通過使用Socket實(shí)現(xiàn)通信連接,。
發(fā)現(xiàn)設(shè)備需要用到三個Winsock的API,,分別是WSALookupServiceBegin、WSALookupServiceNext和WSALookupServiceEnd,。頭文件為Winsock2.h,,庫文件為Ws2_32.lib。
使用Socket設(shè)備發(fā)現(xiàn)的代碼如下:
WSALookupServiceBegin(&querySet,LUP_CONTAINERS,&hLookup);WSALookupServiceNext(hLookup,flags,&dwSize,pwsaResults)WSALookupServiceEnd(hLookup);
利用pwsaResults返回的藍(lán)牙物理地址與GUID做為socket連接參數(shù),,可與目的設(shè)備進(jìn)行連接,。代碼如下:
SOCKETm_socketClient=socket(AF_BT,SOCK_STREAM,
BTHPROTO_RFCOMM);connect(m_socketClient,(SOCKADDR*)&sa,sizeof(sa))進(jìn)行設(shè)備連接。連接成功后,,可用下列代碼進(jìn)行數(shù)據(jù)收發(fā):
recv(p->m_socketClient,buf,1024,0);send(m_socketClient,(char*)buf,nSize,0);
4.2.2基于widcomm協(xié)議棧的藍(lán)牙傳輸實(shí)現(xiàn)
使用如下語句啟動查詢:
StartInquiry();
VoidOnDeviceResponded(BD_ADDRbda,DEV_CLASSdevClass,BD_NAMEbdName,BOOLbConnected)
bda為返回設(shè)備地址,,bdName為返回設(shè)備名稱。當(dāng)查詢時間結(jié)束時,,響應(yīng)查詢定時器函數(shù),,開啟服務(wù)查找線程:
StartDiscovery(m_BdAddr,m_pServiceGuid);
Widcomm提供了各種協(xié)議的不同連接方式,基于RFCOMM協(xié)議的SPP連接代碼如下:
CSppClient::CreateConnection(m_BdAddr,m_serviceName);
當(dāng)設(shè)備連接成功,,可以返回相關(guān)狀態(tài):
VoidOnClientStateChange(BD_ADDRbda,DEV_CLASSdev_class,BD_NAMEname,shortcom_port,SPP_STATE_CODEstate)
使用函數(shù)返回的com_port為串口號建立串口操作
CreateFile(buff,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL),。
4.3設(shè)備安全認(rèn)證
無線信道具有開放性的特點(diǎn),在有效的距離范圍內(nèi)任何符合頻率的接收機(jī)都能將信號捕獲,。所以,,無線數(shù)據(jù)傳輸?shù)陌踩允窍到y(tǒng)設(shè)計(jì)的重點(diǎn)問題之一。本系統(tǒng)通過三種途徑確保無線數(shù)傳的安全,。
一是利用藍(lán)牙標(biāo)準(zhǔn)中的信道標(biāo)準(zhǔn)來保障,。藍(lán)牙的工作頻率為2.4GHZ,覆蓋范圍是相隔1MHz的79個通道(從2.402GHz到2.480GHz)[2],。數(shù)據(jù)傳輸技術(shù)使用短封包,,運(yùn)用了跳頻展頻技術(shù),跳頻頻率為1600次/秒,,這樣從物理層上防止了偷聽和避免了干擾,。但是這對使用藍(lán)牙設(shè)備的竊聽和干擾是無效的。
二是使用藍(lán)牙系統(tǒng)中的PIN碼,。如果傳輸設(shè)備都沒有PIN的認(rèn)證,任何一個藍(lán)牙設(shè)備均可以連接獲取數(shù)據(jù)的傳輸,。設(shè)置PIN碼之后,,只有通過PIN碼認(rèn)證的設(shè)備,才能進(jìn)行藍(lán)牙設(shè)備的連接和數(shù)據(jù)傳輸,。
三是通過認(rèn)證命令實(shí)現(xiàn)應(yīng)用層安全認(rèn)證,,由移動終端發(fā)起設(shè)備認(rèn)證命令,,等待藍(lán)牙數(shù)據(jù)采集器返回就緒狀態(tài)碼,掌上終端將生成的認(rèn)證碼A裝入特定格式的幀發(fā)送至采集器,,采集器通過算法得到認(rèn)證碼B并返回發(fā)送,,如果認(rèn)證碼均正確,則互發(fā)確認(rèn)消息,,通過設(shè)備認(rèn)證,。
4.4輪詢模式下的偽同步與實(shí)時
同步傳輸?shù)亩嗑€程實(shí)現(xiàn)掌上終端控制系統(tǒng)與藍(lán)牙數(shù)據(jù)采集器的連接可采用兩種方式:基于輪詢連接的偽同步模式與實(shí)時同步連接傳輸。輪詢模式是掌上控制終端與各采集器分時連接,,同步模式是掌上控制終端與所有采集器同時連接,,實(shí)現(xiàn)同步控制并完成數(shù)據(jù)傳輸。
兩種連接模式均利用Windows多線程機(jī)制實(shí)現(xiàn),。為每一個數(shù)據(jù)采集器開啟獨(dú)立線程,,完成數(shù)據(jù)處理。兩種模式均通過事件機(jī)制(Event)進(jìn)行控制,,對于輪詢模式,,初始化時所有數(shù)據(jù)采集處理線程處于掛起狀態(tài),主程序依次觸發(fā)事件喚醒相應(yīng)線程進(jìn)行數(shù)據(jù)采集處理,。同步模式工作時,,主程序同時觸發(fā)所有事件,喚醒所有處理線程進(jìn)行采集處理,,每處理完一個數(shù)據(jù)采集器的數(shù)據(jù),,所有的線程同步一次,從而實(shí)現(xiàn)數(shù)據(jù)在時間上的同步,。
在待采集數(shù)據(jù)變化緩慢的情況下,,如在溫室內(nèi)監(jiān)測氣溫與濕度,采樣率低,,采用輪詢模式可以縮短連接時間,,降低設(shè)備功耗,延長工作時間,。而同步模式適用于數(shù)據(jù)變化相對較快,,對各個數(shù)據(jù)采集器同步要求高的情況。
5測試結(jié)果
掌上系統(tǒng)能夠無線連接控制4個數(shù)據(jù)采集終端,,實(shí)時接收并顯示各數(shù)據(jù)采集器的數(shù)據(jù).在實(shí)時接收并繪制數(shù)據(jù)曲線的同時,,可隨時執(zhí)行數(shù)據(jù)回顯功能,實(shí)現(xiàn)曲線縮放,。
掌上終端采用華碩A626,,基于內(nèi)置的藍(lán)牙模塊,與藍(lán)牙數(shù)據(jù)采集器的通信距離達(dá)10m,;如果將數(shù)據(jù)采集模塊藍(lán)牙芯片更換至Class3級別,,則傳輸距離可達(dá)到100m,。本系統(tǒng)傳輸數(shù)據(jù)量不大,系統(tǒng)通信速率為9.6kbps,,可以更好地利用藍(lán)牙的省電模式,。當(dāng)連接4個藍(lán)牙數(shù)據(jù)采集器,每個采集器發(fā)送時間間隔為10ms時,,掌上控制終端同時接收沒有出現(xiàn)丟包,。
6結(jié)論
論文基于掌上終端開發(fā)了現(xiàn)場數(shù)據(jù)采集的藍(lán)牙無線控制系統(tǒng),解決了藍(lán)牙微微網(wǎng)連接,、安全認(rèn)證,、同步處理接收等關(guān)鍵問題,實(shí)現(xiàn)了上位機(jī)的可移動化,、便攜化,。克服了有線數(shù)據(jù)采集控制系統(tǒng)的連線不便,、安裝復(fù)雜等缺點(diǎn),,可廣泛應(yīng)用于工業(yè)現(xiàn)場控制,醫(yī)療監(jiān)測,,智能家居等多種不適宜布線的場所
本文作者創(chuàng)新點(diǎn):使用移動終端作為上位機(jī),,通過藍(lán)牙微微網(wǎng)技術(shù)以及其他關(guān)鍵技術(shù)同步控制多個下位機(jī),并能實(shí)時處理,、存儲并顯示接收數(shù)據(jù),。
參考文獻(xiàn)
[1]何戟,李孝安,段渭軍,基于藍(lán)牙的移動數(shù)據(jù)采集處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J],計(jì)算機(jī)應(yīng)用研究,2006年11期
[2]BluetoothSIG,BluetoothProtocolCoreVersion2.0+EDR[S].2004
[3]陳莉,錢東平,趙東杰,藍(lán)牙技術(shù)在地下水監(jiān)測系統(tǒng)中的應(yīng)用[J],微計(jì)算機(jī)信息,2007年26期
[4]吳建,通用型工業(yè)數(shù)據(jù)采集平臺的設(shè)計(jì)與開發(fā)[J],,微計(jì)算機(jī)信息,,2008年24卷第3-3期
[5]王宏,用于局域監(jiān)測控制系統(tǒng)的無線數(shù)據(jù)傳輸解決方案[J],計(jì)算機(jī)應(yīng)用與軟件,2008年2期