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