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