引言
溫度測(cè)量在現(xiàn)代工業(yè)生產(chǎn)過(guò)程中發(fā)揮著重要的作用,無(wú)論對(duì)于大型企業(yè)還是眾多的小型工廠,往往需要監(jiān)測(cè)多個(gè)設(shè)備的幾十個(gè)溫度值。在分布式溫度采集系統(tǒng)中.通常采用單片機(jī)作為系統(tǒng)的控制器。系統(tǒng)T作時(shí)依次采集每一個(gè)探測(cè)器的溫度值并存儲(chǔ)。如果監(jiān)測(cè)到某個(gè)探測(cè)點(diǎn)的溫度有異常。系統(tǒng)就會(huì)根據(jù)用戶的需要做出相應(yīng)的反映。然而.當(dāng)監(jiān)測(cè)點(diǎn)數(shù)量很多時(shí),單片機(jī)輪流地采集完每一個(gè)監(jiān)測(cè)點(diǎn)的溫度值會(huì)花費(fèi)相對(duì)較長(zhǎng)的時(shí)間,如果這個(gè)過(guò)程中有某個(gè)測(cè)量點(diǎn)溫度異常將不能實(shí)時(shí)地反映到系統(tǒng)中.使得溫度采集系統(tǒng)的實(shí)時(shí)性降低。
現(xiàn)場(chǎng)可編程門陣列(FPGA)是美國(guó)Xilinx公司在20世紀(jì)80年代中期率先推出的一種高密度可編程邏輯器件.它既具有PLD可編程的靈活性,又有掩膜門陣列(GA)高集成度和通用性,單片F(xiàn)PGA的集成規(guī)模已達(dá)到幾百萬(wàn)門.其工作頻率已超過(guò)300MHz。本文以FPGA作為分布式溫度采集系統(tǒng)的控制器。與以往利用單片機(jī)作為控制器的系統(tǒng)相比。提高了系統(tǒng)整體的實(shí)時(shí)性和穩(wěn)定性。
本系統(tǒng)中溫度傳感器采用的MAXIM公司的1-wire器件DS18B20.DS18B20溫度傳感器由于其結(jié)構(gòu)簡(jiǎn)單、安裝方便、功耗低、測(cè)溫范圍寬而被廣泛的應(yīng)用于化工、糧食、環(huán)境監(jiān)測(cè)等需要實(shí)現(xiàn)多點(diǎn)測(cè)溫的地方:1-Wire技術(shù)采用一根信號(hào)線進(jìn)行雙向數(shù)據(jù)傳輸.一個(gè)控制器可以控制一個(gè)或多個(gè)從機(jī)設(shè)備與其他標(biāo)準(zhǔn)串行數(shù)據(jù)通信方式如SPI、I2C相比.單總線具有節(jié)省系統(tǒng)I/O口線資源、結(jié)構(gòu)簡(jiǎn)單、成本低廉、便于總線擴(kuò)展和維護(hù)等諸多優(yōu)點(diǎn)。
由于1-Wire總線只有一根信號(hào)線.所以要完成通信就要在一根信號(hào)線上實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸。1-Wire通信協(xié)議對(duì)時(shí)序的要求非常嚴(yán)格。協(xié)議中一共規(guī)定了五種類型的通信時(shí)序,分別為初始化(復(fù)位)時(shí)序、寫“1”時(shí)序、寫“0”時(shí)序、讀“1”時(shí)序和讀“0”時(shí)序.如圖1所示。所有通信都由這五種典型時(shí)序組合完成.就是說(shuō)要控制好這五種時(shí)序.才能實(shí)現(xiàn)對(duì)1-Wire器件的控制。
圖1單總線通信協(xié)議時(shí)序圖
2 實(shí)時(shí)分布式溫度采集系統(tǒng)設(shè)計(jì)
大多數(shù)基于DS18B20的溫度采集系統(tǒng)采用單片機(jī)作為控制器.可以監(jiān)測(cè)多個(gè)溫度點(diǎn)的溫度。雖然監(jiān)測(cè)點(diǎn)的數(shù)目可以很多。但是卻無(wú)法做到同時(shí)對(duì)每一個(gè)監(jiān)測(cè)點(diǎn)進(jìn)行監(jiān)測(cè)。原因在于單片機(jī)在一個(gè)時(shí)間周期只能執(zhí)行一條指令,無(wú)法實(shí)現(xiàn)并行的動(dòng)作了。然而采用FPGA作為控制器將大大提升溫度監(jiān)測(cè)系統(tǒng)的實(shí)時(shí)性,F(xiàn)PGA的動(dòng)作是由時(shí)鐘來(lái)驅(qū)動(dòng)的,因此可以在同一時(shí)鐘可完成多個(gè)動(dòng)作。FPGA可以并行地處理數(shù)據(jù),這是單片機(jī)無(wú)法做到的。本文設(shè)計(jì)的溫度監(jiān)測(cè)系統(tǒng)就是利用了FPGA的這個(gè)優(yōu)勢(shì).實(shí)現(xiàn)了對(duì)多個(gè)監(jiān)測(cè)點(diǎn)實(shí)時(shí)進(jìn)行監(jiān)測(cè)。
2.1系統(tǒng)硬件設(shè)計(jì)存器
FPGA選用Altera公司主流Cyclone系列高性價(jià)比的EPIC6Q240C8N。測(cè)溫系統(tǒng)的原理圖如圖2所示,由FPGA、顯示部分、按鍵部分和采集部分組成。雖然單總線允許在總線上掛載多個(gè)1-wire器件并實(shí)現(xiàn)多點(diǎn)控制,但這樣卻無(wú)法同時(shí)對(duì)每一個(gè)1-wire器件實(shí)現(xiàn)控制。所以本系統(tǒng)的采集部分使每個(gè)DS18B20都單獨(dú)享有一條總線,每條總線都與FPGA的一個(gè)I/O口相連。系統(tǒng)選用的FPGA一共有240個(gè)管腳,不算電源和配置管腳,可用的I/O管腳達(dá)到了179個(gè),除去顯示和按鍵部分所用的I/O管腳,理論上還可以掛載百個(gè)DS18B20。
按鍵部分的設(shè)計(jì)提供人機(jī)交互,可以設(shè)定最低溫度警告數(shù)值和最高溫度警告數(shù)值,通過(guò)按鍵可以瀏覽每一個(gè)溫度點(diǎn)的測(cè)量值。顯示部分負(fù)責(zé)顯示每一個(gè)測(cè)量點(diǎn)的標(biāo)號(hào)和對(duì)應(yīng)的溫度值。FPGA負(fù)責(zé)控制溫度的采集,并將每一個(gè)測(cè)量點(diǎn)的溫度與設(shè)定好的最低溫度和最高溫度進(jìn)行實(shí)時(shí)比較,一旦監(jiān)測(cè)點(diǎn)的溫度超標(biāo)將立刻發(fā)出警報(bào)提示。
圖2 測(cè)溫系統(tǒng)原理圖
2.2 軟件編程設(shè)計(jì)
本系統(tǒng)是連續(xù)實(shí)時(shí)采集溫度的.所以需要有一個(gè)核心控制部分來(lái)實(shí)現(xiàn)對(duì)DS18B20發(fā)送復(fù)位、溫度轉(zhuǎn)換和溫度讀取指令的功能。控制部分采用有限狀態(tài)機(jī)來(lái)實(shí)現(xiàn),狀態(tài)與狀態(tài)之間的轉(zhuǎn)換需要一定的轉(zhuǎn)移條件,這個(gè)轉(zhuǎn)移條件可以是一個(gè)定義的信號(hào)量,當(dāng)信號(hào)量的數(shù)值改變時(shí),狀態(tài)機(jī)就通過(guò)信號(hào)量的數(shù)值來(lái)決定轉(zhuǎn)換到哪一個(gè)狀態(tài)。
根據(jù)有限狀態(tài)機(jī)與溫度采集控制器的對(duì)應(yīng)關(guān)系.可以參照控制器的操作控制步來(lái)確定有限狀態(tài)機(jī)的狀態(tài)。設(shè)發(fā)送復(fù)位指令的狀態(tài)值為“000”.發(fā)送跳過(guò)ROM指令的狀態(tài)值為“001”.發(fā)送轉(zhuǎn)換溫度指令的狀態(tài)值為“01l”.發(fā)送讀取暫存指令的狀態(tài)值為“101”.讀取溫度數(shù)據(jù)的狀態(tài)值為“100”。狀態(tài)機(jī)的狀態(tài)都確定以后。便做出有限狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移圖,如圖3所示。
圖3溫度采集控制部分的MDS圖
根據(jù)以上的分析,接下來(lái)用VHDL語(yǔ)言編寫描述有限狀態(tài)機(jī)功能的程序。程序使用兩個(gè)進(jìn)程來(lái)描述有限狀態(tài)機(jī)的功能:state_transfer進(jìn)程用來(lái)描述有限狀態(tài)機(jī)中的次態(tài)邏輯和狀態(tài)寄存器.通過(guò)CASE語(yǔ)句,根據(jù)次態(tài)邏輯值實(shí)現(xiàn)狀態(tài)值的改變;output_logic進(jìn)程用來(lái)描述有限狀態(tài)機(jī)中的輸出邏輯,通過(guò)IF語(yǔ)句判斷狀態(tài)值然后轉(zhuǎn)入相應(yīng)的指令程序。
3 基于FPGA與基于單片機(jī)控制DS18B20
3.1 保證時(shí)序精確
單片機(jī)作為基于DS18B20的溫度監(jiān)控系統(tǒng)的控制器,用匯編語(yǔ)言編寫程序,很容易控制時(shí)間,因?yàn)槲覀冎烂織l語(yǔ)句的執(zhí)行時(shí)間,每段宏的執(zhí)行時(shí)間,每段子程序加調(diào)用語(yǔ)句所消耗的時(shí)間。但是當(dāng)系統(tǒng)進(jìn)入中斷,時(shí)序的控制就無(wú)法保證精確。
3.2 查找序列號(hào)
單片機(jī)的管腳有限,所以要用單片機(jī)檢測(cè)多個(gè)溫度點(diǎn),就需要將多個(gè)DS18B20掛在一條總線上。很顯然,序列號(hào)許配工作需要額外的時(shí)間,而且在讀取一個(gè)測(cè)溫點(diǎn)溫度值的過(guò)程中,其它的測(cè)溫點(diǎn)也都完成了測(cè)溫并等待讀取,這無(wú)疑降低了測(cè)溫的效率。
用FPGA代替單片機(jī),以上問(wèn)題就不存在了。首先FPGA具有豐富的管腳資源,可以讓每個(gè)傳感器都單獨(dú)使用一根數(shù)據(jù)線。這樣不但可以實(shí)現(xiàn)同時(shí)讀取每一個(gè)傳感器的溫度值,而且可以不用進(jìn)行序列號(hào)的匹配。大大提高了整個(gè)系統(tǒng)測(cè)溫的效率,維護(hù)更加方便快捷。
3.3 成本考慮
單片機(jī)技術(shù)如今已經(jīng)非常成熟。應(yīng)用領(lǐng)域也非常廣泛.價(jià)錢也非常便宜。普通的型號(hào)價(jià)格在l美元左右,最高端的型號(hào)也只有10美元。因此用單片機(jī)作為控制器.整體系統(tǒng)的成本相對(duì)較低。雖然FPGA如今也已經(jīng)得到了廣泛的普及,但是價(jià)格還是相對(duì)較高,因此用FPGA作為系統(tǒng)的控制器威本就相對(duì)高一些。
4 結(jié)論
使用FPGA作為DS18B20的控制器.可以保證時(shí)序上精確符合單總線通信協(xié)議.系統(tǒng)運(yùn)行時(shí)控制部分、顯示部分、人機(jī)交互部分可以并行地運(yùn)行互不干擾,提高了整體系統(tǒng)的實(shí)時(shí)性與穩(wěn)定性:與用單片機(jī)作為控制器的系統(tǒng)做出比較.分析了兩者作為控制器的優(yōu)缺點(diǎn)。
基于FPGA和DS18B20的分布式溫度采集系統(tǒng).可實(shí)現(xiàn)同時(shí)監(jiān)測(cè)多個(gè)溫度點(diǎn),并無(wú)需知道每一個(gè)傳感器的序列號(hào),大大提高了溫度采集系統(tǒng)的實(shí)時(shí)性和可靠性。雖然基于FPGA的系統(tǒng)成本相對(duì)較高.但為分布式溫度采集實(shí)時(shí)性要求較高的應(yīng)用場(chǎng)合提出了解決辦法。
本文創(chuàng)新點(diǎn):基于FPGA和DS18B20的分布式溫度采集系統(tǒng),可以實(shí)現(xiàn)同時(shí)監(jiān)測(cè)多個(gè)檢測(cè)點(diǎn)的溫度,并無(wú)需知道每一個(gè)傳感器的序列號(hào),大大提高了溫度采集系統(tǒng)的實(shí)時(shí)性和可靠性。為分布式溫度采集實(shí)時(shí)性要求較高的應(yīng)用場(chǎng)合提出了解決辦法。項(xiàng)目經(jīng)濟(jì)效益:硬件成本約6000元,推廣價(jià)格約8500元。
責(zé)任編輯:gt
-
FPGA
+關(guān)注
關(guān)注
1643文章
21950瀏覽量
613739 -
溫度傳感器
+關(guān)注
關(guān)注
48文章
3021瀏覽量
158009 -
總線
+關(guān)注
關(guān)注
10文章
2946瀏覽量
89313
發(fā)布評(píng)論請(qǐng)先 登錄
基于STM32的DS18B20溫度傳感器設(shè)計(jì)

基于單總線數(shù)字溫度傳感器DS18B20的測(cè)溫系統(tǒng)方案
基于DS18B20數(shù)字溫度傳感器的設(shè)計(jì)方案
DS18B20溫度傳感器是什么
DS18B20溫度傳感器實(shí)驗(yàn)
新型溫度傳感器DS18B20高精度測(cè)溫的實(shí)現(xiàn)
基于PC機(jī)的DS18B20溫度采集系統(tǒng)
數(shù)字溫度傳感器DS18B20的設(shè)計(jì)及應(yīng)用

DS18B20完成溫度檢測(cè)的技巧

基于ARM和DS18B20的溫度監(jiān)測(cè)系統(tǒng)
智能溫度傳感器DS18B20的原理與應(yīng)用
DS18B20溫度傳感器的溫度程序和驅(qū)動(dòng)以及案例實(shí)現(xiàn)資料說(shuō)明

ds18b20的特性_ds18b20溫度傳感器應(yīng)用

評(píng)論