蔣星亦 時(shí)群 黃州
摘要:以低功耗的微控制器STM32為硬件核心,以LabVIEW2015為軟件開(kāi)發(fā)平臺(tái),設(shè)計(jì)了專門用于恒溫箱的溫度顯示系統(tǒng)。由DS18B20傳感器進(jìn)行溫度采集,通過(guò)RS-232串口實(shí)現(xiàn)數(shù)據(jù)傳輸,用戶可通過(guò)人機(jī)交互界面實(shí)時(shí)監(jiān)測(cè)及設(shè)置溫度。實(shí)驗(yàn)結(jié)果:設(shè)定溫度為17℃,精確度為±0.5℃,系統(tǒng)運(yùn)行良好,通用性較強(qiáng),具有廣泛的用途。
關(guān)鍵詞:LabVIEW;STM32 ;傳感器
中圖分類號(hào):TP319 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)12-0277-03
Abstract: Based on the low-power microcontroller STM32 as the core of hardware, and taking LabVIEW2015 as the software development platform, a temperature display system specially designed for thermostat is designed. The temperature is collected by the DS18B20 sensor and the data transmission is realized through the RS-232 serial port. The user can monitor and set the temperature in real time through the human-computer interaction interface. The experimental results: the set temperature is 17 C, the accuracy is 0.5 degrees C, the system runs well, the versatility is strong, and it has a wide range of uses.
Key words: LabVIEW; STM32; sensors
隨著計(jì)算機(jī)現(xiàn)代檢測(cè)和電子儀器等技術(shù)高速發(fā)展,虛擬儀器成為現(xiàn)今儀器發(fā)展的主流方向,由美國(guó)國(guó)家儀器公司研發(fā)的圖形編輯軟件LabVIEW操作簡(jiǎn)單,在數(shù)據(jù)采集和界面控制方面具有明顯優(yōu)勢(shì)。
為了方便用戶對(duì)恒溫箱溫度的實(shí)時(shí)監(jiān)測(cè)和設(shè)置,設(shè)計(jì)了一種以STM32為硬件核心,由LabVIEW軟件開(kāi)發(fā)的溫度顯示系統(tǒng),并結(jié)合了多種科學(xué)技術(shù),提高溫度采集的精確度和溫度顯示的及時(shí)性。利用圖形化編程語(yǔ)言LabVIEW,將數(shù)據(jù)的采集、處理和顯示推動(dòng)到更高的智能化水平。
1系統(tǒng)總體設(shè)計(jì)
溫度傳感器DS18B20獲取箱內(nèi)溫度數(shù)據(jù)并轉(zhuǎn)換成數(shù)字信號(hào),STM32對(duì)信號(hào)進(jìn)行存儲(chǔ)和處理,再通過(guò)RS-232串行通信接口進(jìn)行上位機(jī)與下位機(jī)之間的數(shù)據(jù)傳輸。利用LabVIEW設(shè)計(jì)的用戶界面包括了登錄、溫度設(shè)置和實(shí)時(shí)溫度顯示及存儲(chǔ),系統(tǒng)框圖如圖1所示。
2系統(tǒng)的硬件
2.1溫度傳感器
本系統(tǒng)選用數(shù)字溫度傳感器DS18B20,其測(cè)量原理是基于溫度系數(shù)晶振振蕩率來(lái)判斷,以確定溫度變化改變振蕩率。 DS18B20 脈沖輸入會(huì)存放在計(jì)數(shù)器 2 中。計(jì)數(shù)器1和溫度寄存器有一個(gè)基數(shù)值,計(jì)數(shù)器1會(huì)根據(jù)振蕩率的變化計(jì)數(shù),低溫度系數(shù)脈沖計(jì)數(shù)器1做減法計(jì)數(shù),溫度寄存器的值會(huì)在計(jì)數(shù)器1減到 0時(shí)加1,然后計(jì)數(shù)器1會(huì)重新開(kāi)始計(jì)數(shù)并且值會(huì)被重置,這個(gè)過(guò)程中計(jì)數(shù)器2也在不斷計(jì)數(shù),當(dāng)計(jì)數(shù)器2的值為0時(shí),測(cè)量過(guò)程結(jié)束,當(dāng)前測(cè)量的溫度數(shù)值就存放在溫度寄存器中。
2.2 STM32控制
本系統(tǒng)使用基于Cortex-M3內(nèi)核的STM32F103系列MCU,其性能高、編程簡(jiǎn)單;該內(nèi)核基于最新的ARMv7構(gòu)架,采用Thumb-2指令集,集成了分支預(yù)測(cè)、單周期乘法、硬件除法等眾多功能。內(nèi)核的內(nèi)部數(shù)據(jù)路徑寬度為32位,寄存器寬度為32位,存儲(chǔ)器接口也是32位,是典型的32位處理器內(nèi)核。內(nèi)核擁有獨(dú)立的指令總線和數(shù)據(jù)總線,取指和數(shù)據(jù)訪問(wèn)可同時(shí)進(jìn)行。
2.3串口通訊
本系統(tǒng)采用RS-232串口通訊接口,下位機(jī)將采集到的溫度值以一序列的位元串來(lái)一個(gè)接一個(gè)傳給上位機(jī),傳輸線少,配線簡(jiǎn)單,傳送距離可以較遠(yuǎn)。
上位機(jī)RS-232串行接口標(biāo)準(zhǔn):在電氣特征上,RS-232采用負(fù)邏輯,要求高低2個(gè)信號(hào)間有較大的幅度,標(biāo)準(zhǔn):邏輯1為-15V~-3V左右,邏輯0為+3V~+15V左右。
在下位機(jī)上自定義RS-232通信協(xié)議的相關(guān)參數(shù):波特率、 數(shù)據(jù)位、 奇偶校驗(yàn)位和停止位等,與上位機(jī)相同。
3軟件設(shè)計(jì)
3.1軟件概述
借用LabVIEW開(kāi)發(fā)平臺(tái),采用模塊化設(shè)計(jì),分為用戶登錄、溫度顯示和溫度設(shè)置三部分。
3.2應(yīng)用方法
3.2.1程序結(jié)構(gòu)
LabVIEW 的所有編程都是使用圖形化編輯語(yǔ)言G 語(yǔ)言,其中邏輯結(jié)構(gòu)就顯得十分重要,通過(guò)不同的結(jié)構(gòu)可以實(shí)現(xiàn)不同的功能,結(jié)構(gòu)中最常用到的是事件結(jié)構(gòu)和條件結(jié)構(gòu)。事件結(jié)構(gòu)是在事件發(fā)生時(shí)實(shí)現(xiàn)條件分支,以達(dá)到處理事件的目的。如果一個(gè)事件并沒(méi)有在指定時(shí)間內(nèi)完成,事件結(jié)構(gòu)也可以執(zhí)行超時(shí)動(dòng)作,超時(shí)的默認(rèn)值為-1,也就代表在不更改超時(shí)值得情況下事件永不超時(shí)。盡管事件結(jié)構(gòu)可以處理多個(gè)事件,但也不能處理一些特殊事件,例如通知事件和過(guò)濾事件。本系統(tǒng)的用戶登錄程序主要是使用了事件結(jié)構(gòu)去執(zhí)行“登錄”和“取消”按鈕的按鈕功能,并且配置了登錄超時(shí)提醒。
條件結(jié)構(gòu)就是當(dāng)系統(tǒng)滿足指定的條件時(shí)就會(huì)執(zhí)行相應(yīng)的指令,為系統(tǒng)提供了選擇條件的功能,類似C語(yǔ)言中的switch語(yǔ)句。與事件結(jié)構(gòu)相似,條件結(jié)構(gòu)雖然可以有多個(gè)條件分支但每次只能執(zhí)行單個(gè)條件分支。
3.2.2數(shù)據(jù)校對(duì)
一個(gè)系統(tǒng)的安全性是十分重要的,用戶名密碼的數(shù)據(jù)比對(duì)就是其中的一個(gè)有力途徑。數(shù)據(jù)的校對(duì)主要是通過(guò)比較函數(shù)實(shí)現(xiàn)的。數(shù)據(jù)的證明是通過(guò)比較函數(shù)實(shí)現(xiàn)的。用戶輸入用戶名和密碼和用戶名密碼已經(jīng)設(shè)置為比較元素,再通過(guò)布爾函數(shù)與函數(shù)進(jìn)行邏輯與,也就是用戶名和密碼必須同時(shí)正確才可以登錄成功進(jìn)入主檢測(cè)程序。邏輯與函數(shù)和條件結(jié)構(gòu)的選擇接線端相連接,這樣就實(shí)現(xiàn)了在用戶名密碼輸入正確進(jìn)入主檢測(cè)程序和輸入錯(cuò)誤重新輸入的功能。
3.2.3 VISA虛擬串口
LabVIEW提供的VISA節(jié)點(diǎn),能連接計(jì)算機(jī)與儀器,其本質(zhì)其實(shí)就是虛擬儀器下的API,通過(guò)調(diào)用底層驅(qū)動(dòng)對(duì)外部?jī)x器實(shí)現(xiàn)互通,便于實(shí)現(xiàn)對(duì)儀器的程序控制,使用簡(jiǎn)單。
VISA配置串口:初始化所選用的串行口,所要設(shè)置的參數(shù)由VISA資源名稱(COM1)、波特率(9600)、數(shù)據(jù)比特(8)、奇偶(None)、停止位(1)。
VISA Write:將寫入緩沖區(qū)的溫度值寫入VISA資源名稱指定的COM1串行接口中。
VISA Read:從VISA資源名稱指定的COM1串行接口中讀取4個(gè)字節(jié)數(shù)據(jù),并使數(shù)據(jù)返回至讀取緩沖區(qū)。
VISA Close:關(guān)閉VISA資源名稱指定COM1串口會(huì)話句柄或事件對(duì)象。
3.2.4數(shù)據(jù)顯示
系統(tǒng)主要是依靠VISA配置串口與單片機(jī)實(shí)現(xiàn)數(shù)據(jù)通信的。當(dāng)檢測(cè)儀檢測(cè)到環(huán)境溫度數(shù)據(jù)后,單片機(jī)通過(guò)VISA串口發(fā)送數(shù)據(jù)到上位機(jī),LabVIEW通過(guò)VISA 讀取控件將采集到的數(shù)據(jù)讀取下來(lái),然后通過(guò)字符串控件顯示出來(lái)。字符串控件主要用于字符和文本輸入和顯示,我們可以設(shè)置字符串顯示的類型,比如 16 個(gè)甚至是密碼格式,系統(tǒng)使用文本格式顯示。同時(shí)將數(shù)據(jù)保存下來(lái),可通過(guò) I/O 選板的相應(yīng)函數(shù)將字符串導(dǎo)出,存儲(chǔ)于文本文件或者是電子表格中。
3.3 界面設(shè)計(jì)
3.3.1 用戶登錄
用戶在輸入正確的賬戶和密碼后,點(diǎn)擊進(jìn)入系統(tǒng),則將進(jìn)入系統(tǒng)顯示界面;若賬戶和密碼錯(cuò)誤,則提示重新輸入。
3.3.2系統(tǒng)界面
系統(tǒng)核心包括三部分:設(shè)定溫度和實(shí)時(shí)溫度顯示框及溫度變化曲線顯示圖,清楚地反應(yīng)溫度變化。
4性能測(cè)試分析
針對(duì)恒溫箱的溫度控制性能,采用專業(yè)的溫度記錄儀,測(cè)試波形如下。LabVIEW界面顯示結(jié)果與之相同,由此說(shuō)明本系統(tǒng)運(yùn)行良好,符合預(yù)期設(shè)計(jì)效果。
5總結(jié)
本設(shè)計(jì)采用STM32單片機(jī)和溫度傳感器DS18B20相結(jié)合,以LabVIEW為軟件開(kāi)發(fā)平臺(tái),設(shè)計(jì)了溫度顯示系統(tǒng)。利用溫度傳感器獲取當(dāng)前溫度數(shù)據(jù),再通過(guò)RS-232串行通信接口送入到上位機(jī),實(shí)現(xiàn)溫度的采集與實(shí)時(shí)監(jiān)測(cè)。
由于LabVIEW強(qiáng)大的圖形處理功能,人性化的操作界面,用戶可通過(guò)波形圖了解所要檢測(cè)箱內(nèi)溫度值變化趨勢(shì),同時(shí)為提高測(cè)量精確度,在STM32其余端口外設(shè)多個(gè)溫度傳感器,實(shí)現(xiàn)多點(diǎn)溫度檢測(cè)。經(jīng)實(shí)際驗(yàn)證,本系統(tǒng)設(shè)計(jì)具有較強(qiáng)的通用性,運(yùn)行穩(wěn)定。但還無(wú)法實(shí)現(xiàn)無(wú)線傳輸和手機(jī)端控制,有待進(jìn)一步優(yōu)化。
參考文獻(xiàn):
[1] 胡仁喜,高海賓. LabVIEW2010中文版虛擬儀器從入門到精通[M].北京:機(jī)械工業(yè)出版社,2012.
[2] 侯明,付興建,吳迎年,等.基于LabVIEW VISA智能車無(wú)線調(diào)試系統(tǒng)[J].國(guó)外電子測(cè)量技術(shù),2012,31(1):67-69,88.
[3] Michael J.Pont. 時(shí)間觸發(fā)嵌入式系統(tǒng)設(shè)計(jì)模式[M]. 北京:中國(guó)電力出版社,2004.
[4] Prata S. C Primer Plus[M].5版.人民郵電出版社,2014.
[5] 姚文詳. ARM CORTEX-M3權(quán)威指南[M]. 北京航空航天大學(xué)出版社,2009.
[6] 彭剛,秦志強(qiáng). 基于ARM Cortex-M3的STM32系列嵌入式微控制器應(yīng)用實(shí)踐[M]. 北京:電子工業(yè)出版社,2011.
[7] 范書瑞,李琦,趙燕飛.Cortex-M3嵌入式處理器原理與應(yīng)用[M]. 北京:電子工業(yè)出版社,2011.
[8] 盧有亮. 基于STM32的嵌入式系統(tǒng)原理與設(shè)計(jì)[M]. 北京:機(jī)械工業(yè)出版社,2014.
[9] 劉同法,陳忠平,彭繼衛(wèi). 單片機(jī)外圍接口電路與工程實(shí)踐[M]. 北京:北京航空航天大學(xué)出版社,2008.
[11] 王永虹,徐煒,郝麗萍. STM32系列ARM Cortex-M3微控制器原理與實(shí)踐[M]. 北京:北京航空航天大學(xué)出版社,2008.