藍(lán)牙無線手操器的設(shè)計(jì)與開發(fā)
1.引言
本文引用地址:http://2s4d.com/article/158190.htm工業(yè)現(xiàn)場設(shè)備的工作環(huán)境復(fù)雜多變,有些地方工作人員甚至難以接近,特別是一些工業(yè)環(huán)境禁止使用電纜(如超凈或真空封閉的房間)或者很難使用電纜來傳送數(shù)據(jù)(如高速旋轉(zhuǎn)的設(shè)備、高空設(shè)備、不適于布線的強(qiáng)腐蝕惡劣環(huán)境),這時采用藍(lán)牙等無線通信技術(shù)來對現(xiàn)場設(shè)備進(jìn)行數(shù)據(jù)采集與參數(shù)設(shè)置能有效解決上述問題。為此本文設(shè)計(jì)了基于藍(lán)牙無線通信協(xié)議的手操器,該手操器具有體積小、操作方便、性能完善和組網(wǎng)靈活等特點(diǎn),目前已獲得實(shí)用新型專利,并有效應(yīng)用于工業(yè)現(xiàn)場的數(shù)據(jù)采集和控制系統(tǒng)中。
2 總體設(shè)計(jì)
2.1 功能分析
2.2 系統(tǒng)設(shè)計(jì)
圖1 數(shù)據(jù)采集系統(tǒng)拓?fù)浣Y(jié)構(gòu)圖
本文設(shè)計(jì)藍(lán)牙手操器現(xiàn)應(yīng)用于圖1所示的無線監(jiān)控系統(tǒng)中。整個系統(tǒng)分為兩部分:藍(lán)牙無線手操器作為主設(shè)備,而其他的四個現(xiàn)場設(shè)備作為從設(shè)備。從設(shè)備負(fù)責(zé)信號轉(zhuǎn)換、數(shù)據(jù)采集和數(shù)據(jù)傳輸。信號轉(zhuǎn)換,這一部分電路的作用是把相應(yīng)的物理信號量轉(zhuǎn)換為電壓信號,然后對其進(jìn)行放大和濾波處理,處理的結(jié)果作為數(shù)據(jù)采集電路的輸入信號;數(shù)據(jù)采集,把信號轉(zhuǎn)換電路輸出的模擬信號轉(zhuǎn)換為數(shù)字信號(數(shù)字序列),然后把數(shù)字信號輸出給CPU,以便進(jìn)行相應(yīng)的處理;數(shù)據(jù)傳輸,在控制系統(tǒng)中,智能傳感器采集并整理好的數(shù)據(jù),需要傳輸給系統(tǒng)的監(jiān)控系統(tǒng),在本系統(tǒng)中所有的藍(lán)牙協(xié)議都固化在芯片中,芯片通過UART接口與應(yīng)用系統(tǒng)相連接。由于片內(nèi)嵌入了CPU,所以,嵌入式藍(lán)牙系統(tǒng)實(shí)際上是一個智能終端,適合于任何具有CPU器件的系統(tǒng)。本系統(tǒng)中的智能傳感器和藍(lán)牙無線手操器都是通過增加一個單芯片藍(lán)牙器件,以組成一個以藍(lán)牙為通信方式的設(shè)備。
藍(lán)牙手操器作為便攜式監(jiān)控設(shè)備通信是系統(tǒng)的一個主要功能,除此之外還需要實(shí)現(xiàn)系統(tǒng)的其他功能如菜單顯示、鍵盤輸入以及數(shù)據(jù)處理等功能。由于CPU串行結(jié)構(gòu)的特點(diǎn),當(dāng)系統(tǒng)需要同時啟用通信功能和其它重要功能時(如實(shí)施數(shù)據(jù)處理等操作), 就需要使用適當(dāng)?shù)姆椒ㄟM(jìn)行協(xié)調(diào)。在本設(shè)計(jì)中采用了UC/OS-II操作系統(tǒng),通過該系統(tǒng)來建立多個任務(wù)進(jìn)程,各個任務(wù)之間的切換通過操作系統(tǒng)的調(diào)度功能來完成。其次,對于現(xiàn)場的智能傳感器來說,傳輸數(shù)據(jù)量一般不是很大(如壓力、溫度等傳感器),因此藍(lán)牙手操器并不需要很大的存儲容量,但必須考慮用于設(shè)備維護(hù)和數(shù)據(jù)處理的存儲空間,所以本文設(shè)計(jì)了兩套數(shù)據(jù)存儲系統(tǒng),一種是針對動態(tài)數(shù)據(jù)(如發(fā)送和接收的數(shù)據(jù))使用片內(nèi)RAM,另一種則針對工程人員需要掉電保存的重要資料,該部分由非易失性數(shù)據(jù)存儲空間來實(shí)現(xiàn)。再者,由于藍(lán)牙手操器作為主設(shè)備其藍(lán)牙模塊的配置與現(xiàn)場設(shè)備不同,手操器的藍(lán)牙模塊必須設(shè)置成主動鏈接單元,并能在其覆蓋范圍內(nèi)自動搜尋其他帶有藍(lán)牙模塊的現(xiàn)場設(shè)備,若有,則通過了鑒權(quán)和認(rèn)證后建立鏈接,實(shí)現(xiàn)藍(lán)牙現(xiàn)場設(shè)備之間的數(shù)據(jù)通信。最后,為了使現(xiàn)場操作人員能觀察系統(tǒng)的運(yùn)行情況,采用一塊小型液晶屏以顯示各模塊的工作狀態(tài),并可通過鍵盤輸入控制命令。
以下將從軟件硬件兩方面具體闡述實(shí)現(xiàn)方案。
3 藍(lán)牙無線手操器的開發(fā)
3.1 硬件設(shè)計(jì)
.3.1.1 微處理器C8051F020
.C8051F020 系列單片機(jī)是Cygnal 公司新推出的一種混合信號系統(tǒng)級單片機(jī)。其含有64kB 片內(nèi)Flash 程序存儲器,4352B 的RAM、8 個I/O 端口共64 根I/O 口線、5 個16 位通用定時器、看門狗定時器等部分。與以前的51 系列單片機(jī)相比,C8051F020增添了許多功能,同時其可靠性和速度也有了很大提高。本系統(tǒng)中,F(xiàn)lash、RAM 及顯示屏共用數(shù)據(jù)總線,地址總線Flash 和RAM 分別共用。各個芯片的片選信號用P0 口的高位接口。
.3.1.2 藍(lán)牙模塊
.藍(lán)牙通信模塊型號為BCM04, 通信距離是10 米。藍(lán)牙模塊本身帶有微處理器及EEPROM、ROM 和RAM, 整個模塊有四個接口分別是AUD、SPI、URAT、PIO口和天線接口。本文采用藍(lán)牙模塊進(jìn)行通信時,其工作電壓為3.3V, 藍(lán)牙的通信方式為異步串行通信(URAT), 可與處理器的串口直接連接,對應(yīng)的處理器管腳為P00 和P01, 通用串口(UART)波特率設(shè)置成38400b ps。
.3.1.3 顯示屏
.設(shè)計(jì)中采用的顯示屏是由北京蓬遠(yuǎn)公司生產(chǎn)的液晶屏顯示屏PDA32024 0A。PDA320240A 液晶顯示屏是一種精度高的點(diǎn)陣顯示器,具有體積小、重量輕和顯示靈活等優(yōu)點(diǎn)。它具有兩種顯示方式:文本顯示和圖形顯示。為了向用戶提供更為簡單的操作界面,許多顯示屏的輔助功能塊都已經(jīng)集成化,對于PDA320240A 只需要對18 根信號線進(jìn)行操作,就可以完成相應(yīng)得顯示功能。
.3.1.4 鍵盤模塊
.鍵盤采用4* 6矩陣式鍵盤,其接口引腳與處理器的P2 和P3 口相連。鍵盤共設(shè)有22 個按鍵,10 個數(shù)字鍵0~9、4 個方向鍵及確定、刪除等8 個其他按鍵,通常,矩陣鍵盤在判斷有無按鍵動作時,有中斷和查詢兩種方式,本文采用查詢方式實(shí)現(xiàn)。如有按鍵動作則進(jìn)行行列掃描后計(jì)算鍵值,并通過鍵值映射表查找出對應(yīng)的功能處理函數(shù)進(jìn)行處理。
3.2 軟件設(shè)計(jì) 軟件結(jié)構(gòu)框圖如圖3 所示,軟件部分主要分為三部分:操作系統(tǒng),通信,菜單顯示。
藍(lán)牙手操器的硬件結(jié)構(gòu)框圖如圖2 所示,包括微控制器C8051F020、藍(lán)牙通信模塊、液晶屏顯示模塊、鍵盤。電源選用電池供電,該電源經(jīng)過電平轉(zhuǎn)換,為微處理器、存儲器、
藍(lán)牙通信模塊等提供所需的+3.3V 和+1.8V 電源。下面將對各個模塊分別介紹。
除底層硬件的驅(qū)動程序外,整個軟件程序建立在UC/OS 操作系統(tǒng)上,該操作系統(tǒng)具有足夠的穩(wěn)定性和安全性。根據(jù)系統(tǒng)功能要求建立了六個用戶任務(wù),即串口任務(wù),藍(lán)牙接收和發(fā)送任務(wù),菜單顯示任務(wù),鍵盤任務(wù)。每個任務(wù)由三個組成部分構(gòu)成:任務(wù)程序代碼、任務(wù)堆棧和任務(wù)控制塊。其中,任務(wù)控制塊用來保存任務(wù)屬性;任務(wù)堆棧用來保存任務(wù)工作環(huán)境;任務(wù)程序代碼是任務(wù)的執(zhí)行部分。在建立任務(wù)的時候需要為任務(wù)堆棧分配堆??臻g和任務(wù)優(yōu)先級。各個任務(wù)之間的數(shù)據(jù)傳遞采用消息郵箱和消息隊(duì)列實(shí)現(xiàn)。
通信部分涉及到單片機(jī)串口和藍(lán)牙模塊之間的通信。手操器啟動后,需要向藍(lán)牙模塊發(fā)送HCI(主機(jī)控制器接口)指令以便初始化藍(lán)牙模塊,這些指令包括藍(lán)牙通信接口波特率設(shè)置、數(shù)據(jù)接收準(zhǔn)備、設(shè)備查詢、藍(lán)牙鏈路連接等指令。處理器對藍(lán)牙的操作和控制主要是通過串口通信方式來完成。當(dāng)確定藍(lán)牙信息接收完畢后,解出有效數(shù)據(jù)存放在已經(jīng)開辟好的循環(huán)緩沖區(qū)內(nèi)。這些數(shù)據(jù)分為數(shù)據(jù)信息和事件信息。數(shù)據(jù)信息,則存放在相應(yīng)設(shè)備的消息隊(duì)列中以便顯示菜單調(diào)用。事件信息,清除該信息不作處理。
在顯示界面中設(shè)置了兩級菜單,手操器啟動后,會自動搜索周圍的其他藍(lán)牙設(shè)備并獲得對方藍(lán)牙地址從而建立鏈接,此后需要在手操器中建立一個臨節(jié)點(diǎn)列表,并通過主菜單顯示周圍存在的藍(lán)牙設(shè)備。在主菜單中工程人員可以根據(jù)具體需要選擇被監(jiān)控設(shè)備,而子菜單中則設(shè)置了讀寫設(shè)備參數(shù)選項(xiàng),每個設(shè)備對應(yīng)的參數(shù)不同,所以需要對不同的設(shè)備參數(shù)設(shè)置不同的控制命令。
4 藍(lán)牙手操器應(yīng)用實(shí)例
圖4 藍(lán)牙手操器應(yīng)用實(shí)例圖
如圖4 所示,以藍(lán)牙閥門定位器作說明示例。藍(lán)牙閥門定位器由我校與四聯(lián)集團(tuán)共同研發(fā)(采用總線供電),在閥門定位器中的藍(lán)牙通信卡設(shè)置為被動鏈接模式,設(shè)備啟動后閥門定位器會周期性的采集閥位值并存儲在該設(shè)備的緩沖區(qū)內(nèi),當(dāng)藍(lán)牙手操器搜索到閥門定位器后向閥門定位器發(fā)送鏈接指令,建立鏈接后,藍(lán)牙手操器將獲得一個鏈接句柄。此后進(jìn)入如圖5 所示的監(jiān)控界面,可以執(zhí)行讀閥位值、閥位上限、以及寫上限三項(xiàng)功能。每項(xiàng)功能在執(zhí)行時,都由手操器發(fā)送一條控制指令,該指令由串口發(fā)給藍(lán)牙模塊,其中包括藍(lán)牙鏈接句柄、功能代碼(0x01-0x03 分別針對以上的三項(xiàng)功能)以及CRC 校驗(yàn)域。閥門定位器收到控制指令后先判斷鏈接句柄,判斷是否接收該指令,其后根據(jù)功能代碼分別執(zhí)行對應(yīng)的任務(wù)。圖4 中為通過藍(lán)牙手操器讀取的閥門定位器的閥位值。此外,該手操器還可對藍(lán)牙電磁流量計(jì),藍(lán)牙溫度變送器等設(shè)備進(jìn)行操作。
5 結(jié)論
經(jīng)過現(xiàn)場測試表明,本文設(shè)計(jì)的藍(lán)牙手操器系統(tǒng)穩(wěn)定、使用方便、實(shí)用性強(qiáng),有一定的抗干擾能力,可根據(jù)需要進(jìn)行軟件升級,能有效地與工業(yè)現(xiàn)場設(shè)備進(jìn)行無線互聯(lián),實(shí)現(xiàn)對工業(yè)現(xiàn)場數(shù)據(jù)采集和處理功能,為工程人員監(jiān)控現(xiàn)場設(shè)備提供了一種新方法。本文作者創(chuàng)新點(diǎn): 本文介紹了基于藍(lán)牙通信協(xié)議的手操器在工業(yè)現(xiàn)場的設(shè)計(jì)與應(yīng)用。該藍(lán)牙手操器使用新華龍C8051F020 芯片和BCM04 藍(lán)牙模塊為主要功能結(jié)構(gòu)模塊,與現(xiàn)場藍(lán)牙設(shè)備建立一對一或一對多的通信系統(tǒng),并可通過該手操器采集和處理現(xiàn)場數(shù)據(jù)以及校正現(xiàn)場設(shè)備的功能參數(shù)。
評論