鄭麗娟,王 梅,王 寧
(河北科技大學 信息科學與工程學院,河北 石家莊 050018)
?
基于FPGA的多路溫度采集系統設計
鄭麗娟,王梅,王寧
(河北科技大學 信息科學與工程學院,河北 石家莊 050018)
摘要:在現代生活中,溫度是非常重要的測控參數,為了有效采集并監測室內溫度,文中結合FPGA的特點,采用智能溫度傳感器DS18B20作為溫度采集的器件,通過對四路溫度進行采集、存儲、顯示和串口傳輸,做了系統的硬件、軟件和界面設計,完成了整套溫度采集系統。最后在上位機上顯示各路溫度,并對超出設定溫度做報警提示。實驗證明,該系統穩定可靠,具有一定的應用價值。
關鍵詞:數字溫度傳感器;溫度采集;串口;VB6.0
在現代工業生產和生活中,溫度是實時接觸的物理量,溫度的監測就顯得尤為重要。傳統的溫度采集大多采用單片機作主控芯片,但隨著采集系統對速度性能要求越來越高,相比傳統的溫度采集系統,FPGA 的優勢就凸顯出來了。FPGA的內部程序是并行運行的,在同一時鐘周期內可以進行多個操作[1],體積小,管腳多。系統采用DALLAS半導體公司生產的一線總線智能溫度傳感器,用獨特的單線通訊方式,實現微處理器與DS1820的雙向通訊。為提高溫度采集的速度,本設計不在一根數據線連接多個DS18B20采集多點溫度,而是采用多端口并行驅動的方法,使每一個DS18B20 的數據線分別連接到FPGA的不同I/O 端口。與其他系統相比,該系統測溫更加簡單、精度高、抗干擾能力強、工作穩定可靠,在現實應用中有很好的測溫效果,可以應用在諸多領域。
DS18B20的特點如下:
(1)測溫范圍是-55 ℃~+125 ℃。
(2)符合TTL電平,不需任何的外圍元器件,可直接和微處理器的I/O口相連。
(3)每個傳感器都有唯一產品序列號,可實現單線多掛接。
(4)溫度轉換分辨率為9~12 bit。在12位溫度轉換分辨率的情況下,轉換時間為750 ms。
DS18B20的內部功能模塊主要有64位ROM、高速暫存寄存器、溫度傳感器和非易失性報警觸發器和配置寄存器構成。
傳感器收到溫度轉換命令后,便開始啟動轉換。轉換完成后的溫度值是以帶符號擴展的16位二進制的形式存儲在高速暫存存儲器的byte0和byte1兩個字節中。FPGA可通過單總線接口讀到該數據。若測溫結果為正,則高5位S均為0,只要將數據輸出結果乘以0.0625就可得到實際溫度。若測溫結果為負,則高5位S均為1,數據輸出值需取反加1,再乘0.0625便可得到實際溫度。
由于DS18B20采用1—Wire總線協議,因此,對讀寫的數據位有著嚴格的時序要求。其工作步驟分三步:首先要初始化;然后執行其ROM操作命令;最后執行DS18B20的功能操作命令。
DS18B20的ROM操作命令[3]有:搜索ROM命令(F0H)、讀ROM命令(33H)、匹配ROM命令(55H)、跳過ROM命令(CCH)、報警搜索命令(ECH)。功能操作命令有:溫度數據轉換命令(44H)、讀暫存器命令(BEH)、寫寄存器命令(4EH)、復制寄存器命令(48H)、調回寄存器(B8H)、讀取供電方式命令(B4H)。
該協議定義信號的時序:初始化時序,讀、寫時序。這些時序都是把FPGA作主設備,DS18B20作從設備。
溫度采集系統由以下幾個部分組成:溫度采集、存儲、顯示、傳輸和上位機顯示等。系統總體結構框圖如圖1所示。

圖1 系統整體結構
利用DS18B20數據接口的特點和FPGA的高速并行處理來對室內溫度進行采集。FPGA發送各種指令,在時鐘的驅動下,不斷向溫度傳感器發初始化、溫度轉換等指令,嚴格地控制各傳感器工作。用 QuartusⅡ軟件自帶的參數化模塊庫定制四個FIFO,存儲測量的溫度數據,再把這些數據進行處理,并將其中一路溫度在數碼管上顯示,用來檢測此路溫度和上位機顯示的是否一致,最后通過RS232串口將采集到的數據傳送給上位機。系統采用多端口并行驅動的方法來采集四路溫度[4],實現對這四個DS18B20 進行同步操作。 每一路都可以獨立完成各自功能,這樣省去了查詢總線器件序列號的操作,使軟件編程簡單化,節省了存儲空間。
選用Altera公司的Cyclone系列芯片,芯片型號為EPlC3T144C8,采用TQFP封裝形式。
此系統的硬件設計是在Altium Desiger10的平臺上完成的。它是由FPGA最小系統電路及傳感器連接電路、顯示電路、串口電路這些外圍電路組成。
時鐘采用50 MHz片外晶振,電源是5 V供電,經穩壓后得到3.3 V和1.5 V電壓。溫度傳感器供電采用DS18B20外部電源供電方式。設計采用4位八段式的共陽LED數碼管,由于所需驅動電流較大,用9012 PNP三極管進行驅動,利用三極管的開關特性,當在三極管的基極輸入低電平時,開關閉合,位選端輸入1,數碼管亮。在串口電路設計中,RS232接口的信號電平值在5~15 V之間。該信號電平采用負邏輯,即:邏輯“l”,-5 V~-15 V;邏輯“0”,+5 V~+15 V。因為RS232的電平與電路板之間表示的邏輯狀態不同,須使用電平轉換電路才能與TTL電路連接。本設計選用美信公司的MAX3232芯片,具有價格低、功耗低等優點,外接0.1 μF的電容來實現TTL電平和RS232電平轉換。
在原理圖和器件封裝完成之后就可以生成相應的PCB,按照規則對這些元器件進行合理的布局、布線,最后敷銅并檢查。
軟件設計平臺是Altera公司的Quartus II,其設計輸入有硬件描述語言和原理圖輸入兩種方法。采用兩種方法相結合設計,在利用Quartus II自帶的宏功能模塊基礎上再設計其他模塊。
由于系統采用50 M晶振,而溫度傳感器卻是以μs來計數的,所以先對系統50 M的基準時鐘分頻來產生DS18B20所需的1 M時鐘信號,仿真如圖2所示。

圖2 分頻仿真
由于每個IO口上只接有一個溫度傳感器,不需要讀取其序列號,只需嚴格按照DS18B20的時序用Verilog HDL語言進行編程[5],在端口定義時,DQ的端口類型為inout。流程圖如圖3[6]所示。

圖3 DS18B20的工作流程圖
本文調用宏模塊來設計四個同步FIFO,設置數據寬度為32 bits,深度為32words,作為四個通道的緩存器分別對四路溫度進行緩存,如圖4所示。

圖4 FIFO模塊
并行采集的四路溫度每路輸出16位二進制數據,并把結果分別存儲到各自的FIFO中,從FIFO出來的數據送到此模塊,并取低10位數據分離為SM1、SM2、SM3、SM4這四個字符,分別為溫度值的十位、個位、十分位、百分位。設計采用動態掃描的方式,把要顯示的數字譯成段碼的形式在數碼管上顯示。此模塊用來測試其中一路溫度與串口調試出的結果是否一致,在實際中可以根據實際情況來確定是否使用數碼管[8]。
目前串行數據的傳輸大都采用異步通訊的方式,數據傳輸通常以字符為單位組成幀進行傳送,設計采用1位起始位、8位數據位和2位停止位來傳輸。
串行發送包括波特率發生和串口數據發送兩個模塊。波特率發生模塊負責用50 MHz的晶振來產生9 600 bit/s的時鐘信號,而串口數據發送模塊負責發送數據。數據傳送時先發起始位,其邏輯為0,再由低到高依次發送8個數據位,最后發停止位,其邏輯為1。串行發送電路的仿真圖如圖5所示。

圖5 串口仿真
設計采用Visual Basic 6.0開發環境[9],VB提供了許多可視化控件,給用戶提供極大方便。由于VB可以自動生成程序結構框架,用戶只要自己在框架中添加代碼便可設計出想要的界面,操作簡單。
VB 6.0提供了通信控件MSComm[10],可實現串行數據的發送、接收,每一路的溫度都設置了不同的報警溫度,當采集的溫度超過報警溫度,顯示異常;當低于報警溫度,顯示正常。設計此界面的步驟如下:(1)新建一個工程;(2)創建窗體;(3)放置所需控件;(4)設置控件的屬性;(5)添加代碼程序;(6)保存文件,調試并運行。
經過QuartusⅡ編譯、仿真、調試之后,進行投板制作,焊接各個元器件及芯片,用萬用表和示波器進行測試,最后將程序下載到板子上。系統上電后,在FPGA的控制下DS18B20不斷地進行溫度采集、存儲、傳輸,最后在上位機編程界面上顯示四個通道的結果和整個系統的實物,如圖6所示。數碼管上的溫度顯示的是第一通道的溫度,與上位機上的第一通道溫度一致。

圖6 系統實現
本文利用FPGA和DS18B20設計并實現了一種用于檢測室溫的多路數字溫度采集的設備,并行采集的方法節約了時間。基于QuartusII開發平臺,用Verilog語言和原理圖相結合模塊化的完成軟件程序設計,最后下載驗證。實現的系統簡單可靠,抗干擾能力強。系統可以應用在一些糧倉、蔬菜大棚、生產車間、煤礦、路面等一些需要實時監測溫度的場合,在一些生產條件惡劣的環境中也可以發揮此系統的優勢。
參考文獻:
[1]胡建革,宋海聲,陶中幸.基于FPGA 的數據采集與顯示系統的設計[J].儀表技術與傳感器,2012,(3):53-55.
[2]杜建華,張認成.基于低壓電力載波通信的溫度采集系統[J].儀表技術與傳感器,2007,(5):31-34.
[3]沈莉麗, 陳鐘榮.基于CPLD和DS18B20的多路溫度檢測系統設計[J].電子器件,2008,31(4):1252-1255.
[4]張俊生.基于DS18B20 多點測溫系統的改進[J].科技資訊,2008,(34):5-6.
[5]袁寶紅,付奎,張德祥.基于 FPGA 和 LabVIEW 的 USB 數據采集與傳輸系統[J].儀表技術與傳感器,2013,(9):24-27.
[6]冀勇鋼,楊赫天. 基于單總線溫度傳感器的多點測溫系統設計[J]. 現代電子技術,2010,(12):23-25.
[7]劉華.多通道數據采集系統設計[J].電子科技,2012,25(6):24-26.
[8]陳敏.基于 FPGA 的蔬菜大棚無線溫度測控系統設計[D].太原:中北大學,2011.
[9]冉偉剛.溫室大棚數據采集系統[D].蘭州:蘭州大學,2010.
[10]黃天強. 基于VB6.0的RS232串口通信研究與實現[J]. 科技信息,2010,(31):67.
馮曉培(1989-),女,河南鄭州人,碩士研究生,研究方向為電力電子與電力傳動。
李秋如(1991-),女,廣東佛山人,碩士研究生,研究方向為電力電子與電力傳動。
郭思遠(1989-),男,河南信陽人,碩士研究生,研究方向為電力電子與電力傳動。
設計應用
Design of Multi-Channel Temperature Acquisition System Based on FPGA
ZHENG Li-juan, WANG Mei, WANG Ning
(College of information science and engineering, Hebei University Of Science and Technology,
Shijiazhuang,Hebei 050018,China)
Abstract:In modern life, temperature is a very important control parameter. In order to effectively collect and monitor the indoor temperature, a whole set of multi-channel temperature acquisition system based on FPGA and smart temperature sensor DS18B20 is presented in this article. The system collects, stores and displays information of four temperatures, which is then transmitted to the PC via serial port. The whole design includes hardware, software and interface design. The system finally displays the temperature in the computer, and will alarm if temperature exceed the set value. Experimental results show that the system is reliable and has a certain value.
Key words:digital temperature sensor; temperature acquisition; serial; VB6.0
中圖分類號:TP212
文獻標識碼:A
文章編號:1009-3664(2015)02-0047-03
作者簡介:鄭麗娟(1988-),女,碩士研究生,研究方向為數字交換與傳輸。 陳小琴(1989-),女,山西朔州人,碩士研究生,研究方向為電力電子與電力傳動。
收稿日期:2014-12-5 2014-12-20