楊 龍,劉清惓
(南京信息工程大學電子與信息工程學院,信號與信息處理系,南京210044)
多路溫濕度傳感器采集及顯示系統設計*
楊 龍,劉清惓*
(南京信息工程大學電子與信息工程學院,信號與信息處理系,南京210044)
針對地面氣象站多點觀測以及氣象探測飛機機載拖拽式測量場合,提出一種基于鉑電阻和HIH-5031的溫、濕度采集電路,通過FPGA實現多路數據匯總至嵌入式顯示終端,終端擁有基于Qt/E的實時波形顯示軟件,并使用SQLite3數據庫存儲溫、濕度數據。經過與光學冷鏡式露點傳感器的對比測試,驗證了其濕度誤差小于1%,溫度誤差遠小于0.2℃,且傳感器電路響應速度快,實時波形顯示界面準確、穩(wěn)定,可用于地面氣象站多點觀測和機載拖拽式的測量場合。
濕度傳感器;溫度傳感器;FPGA;ARM-LINUX;Qt/Embedded;
在氣象探測領域,獲取溫度和濕度數據對于氣象災害預警、精確數值預報、人工影響天氣和氣候變化監(jiān)測都是極其重要的。在某些應用場合,測量現場需要查看溫、濕度數據走勢并存儲下來,這些場合需要使用便攜式的顯示終端。在地面氣象站的多點觀測,以及在氣象探測飛機機載拖拽式測量中,使用PC觀測和存儲實時數據,儀器體積、重量和功耗都難以滿足不斷提高的需求。本文提出了一種基于HIH-5031濕度傳感器和鉑電阻溫度傳感器的前端采集方案,通過FPGA匯總多路前端傳來的溫度和濕度數據,經FPGA處理后發(fā)送至基于ARM11處理器的顯示終端,ARM11處理器終端運行嵌入式Linux系統,通過運行Qt/E程序來實現實時數據波形的顯示,便于及時觀測溫、濕度的變化趨勢,該系統中安裝有SQLite3數據庫,用于存儲接收到的傳感器數據。
整個系統主要由3部分組成:多路溫濕度采集前端、多路傳輸匯總電路和便攜式顯示終端。溫濕度采集前端基于STM32微處理器,采用模數轉換器采集HIH-5031濕度傳感器和鉑電阻溫度傳感器的電壓值,轉換成對應溫度和濕度,通過RS232協議將數據發(fā)送至FPGA;FPGA實現對多路數據的收集并處理,將處理后的數據以RS232協議發(fā)送至便攜式顯示終端;顯示終端采用的是ARM11處理器,搭載嵌入式Linux操作系統,運行Qt/E應用程序,實現溫度和濕度數據的實時波形顯示,并將原始數據存儲成數據庫文件,軟件支持將數據庫文件導出成文本文件。所有文件均存儲在存儲卡上,以便在PC等終端上查看。系統總體框圖如圖1所示。

圖1 系統總體框圖
溫濕度采集前端采用了32位基于ARM Cortex -M3內核的STM32f103微處理器,多路傳輸匯總電路中使用的FPGA芯片是Altera公司的Cyclone II芯片,便攜式顯示終端使用了三星公司的ARM11架構的S3C6410處理器芯片。
2.1 溫濕度采集電路設計
戶外氣象站和高空氣象探測需要傳感器長期穩(wěn)定且在-50℃到+50℃環(huán)境下擁有良好性能。HIH-5031是帶外殼、防冷凝的集成電路濕度傳感器,對灰塵、污物、油類和一般的化學環(huán)境擁有出色的抵抗性能。相較于熱敏電阻、熱電偶和集成溫度傳感器,選用穩(wěn)定性較好的鉑(Pt100)電阻作為感溫元件。
為獲取高精度的溫濕度數據,本系統采用高分辨率、高采樣速率、低噪聲的24位模數轉換芯片AD7193進行數據采集。AD7193內部的Σ-Δ調制器以高速的采樣頻率對輸入模擬信號進行采樣。AD7193擁有4個獨立通道,滿足本設計對通道數、速度、精度的需求。溫濕度采集前端電路原理框圖如圖2所示。

圖2 前端采集電路原理框圖
采用AD7193的通道1測量ADR443的輸出電壓值,通道2測量HIH-5031的輸出電壓值Vout。在25℃環(huán)境下,HIH-5031的輸出電壓為式(1),其中Vin的電壓值來自于ADR443基準電壓源芯片,RHraw為相對濕度值。

式(1)是環(huán)境溫度在25℃時使用的,實際應用中應考慮溫度的變化,對環(huán)境溫度補償后的實際濕度為式(2)

式中:T為溫度值(℃),RHcompensated為真實濕度值[1]。
溫度測量采用鉑電阻(Pt100)溫度傳感器,利用AD7193的高精度特性,通道三測量鉑電阻的電壓值,通道四測量100 Ω精密電阻的電壓值,STM32處理器依據上述電壓測量值計算出鉑電阻的阻值,根據鉑電阻阻值分度表,換算出溫度值[2]。該電路方案可以減小由于ADR443長期使用所帶來的漂移影響。
2.2 多路傳輸匯總電路設計
多路采集的方案有利于準確反應所測環(huán)境參數的實際分布情況,并可提出個別傳感器的偶然誤差數據。FPGA采用CycloneII EP2C8芯片,采用50 MHz時鐘源,擁有8 256個邏輯單元,最多182個用戶管腳,FPGA芯片具有模塊化編程和數據處理能力,滿足本設計對RS232串口數量和數據處理速度的需求。
2.3 便攜式顯示終端硬件電路設計
便攜式顯示終端硬件部分主要為:ARM11內核架構的S3C6410微處理器,CPU最高工作頻率為667 MHz,兩片128 M的DDR RAM,256 M的Nand Flash,7.0英寸的電阻觸摸顯示屏,RS232串口等電路模塊。便攜式顯示終端使用存儲卡存儲數據,方便數據的存儲、拷貝。
3.1 溫濕度采集前端軟件實現
使用MDK集成開發(fā)環(huán)境編寫STM32程序,程序主要包括AD7193采集溫濕度數據和向FPGA發(fā)送數據兩部分。
STM32初始化主要包括時鐘、端口、串口和中斷等模塊的初始化,AD7193初始化主要包括設置AD7193為連續(xù)采樣模式、增益倍數、滿量程校準,零墊片校準等。AD7193初始化的設置是為了竟可能小的降低ADC測量誤差[3]。HIH-5031的電壓輸出是通過和ADR443輸出的3 V經ADC內部轉化的數據輸出編碼比例計算得出。ADR443輸出串聯鉑電阻和100 Ω精密電阻,鉑電阻兩端電壓是通過和100Ω精密電阻電壓經ADC內轉化的數據輸出編碼的比例計算,通過這種方式間接測量出鉑電阻的阻值。將所測得的數據經計算得出溫度和濕度數值,通過RS232接口發(fā)送到FPGA,數據幀包含幀頭、地址、數據、幀尾等信息。
3.2 FPGA多通道處理部分軟件實現
FPGA匯集來自多個傳感器前端的數據,多路數據經過整合處理后,通過RS232接口發(fā)送至便攜式顯示終端。FPGA采用Verilog HDL語言進行編程,軟件主要分為3個模塊,一是數據接收模塊,用于提取8位有效數據;二是數據發(fā)送模塊,發(fā)送數據內容為一位起始位,8位數據位,1位停止位,無校驗位[4];三是頂層匯總模塊,用于匯總數據和協調各模塊的工作。數據傳輸波特率為9 600 bit/s,FPGA程序模塊圖框圖如圖3所示[5]。

圖3 FPGA程序模塊圖
由于Qt天然的跨平臺、簡潔的開發(fā)方式以及原生支持擴展組態(tài),本設計采用Qt/E開發(fā)嵌入式軟件[6]。嵌入式軟件主要實現了溫度和濕度實時波形顯示,數據的存儲、回調,數據庫文件導出為文本文件,數據庫文件和文本文件存儲在SD卡中。
4.1 實時曲線顯示界面設計方案
顯示界面包括曲線顯示部分、實時數據顯示、波特率選擇和按鍵部分。按鍵功能包括溫濕度切換、暫停、清除數據、查看數據庫和退出。軟件將最近30 s內接收自FPGA的數據顯示為波形。PC端開發(fā)軟件為arm-qtopia-2.2.0,程序的編寫調試在Fedora14系統中完成。圖4為溫度波形顯示界面,點擊濕度圖標可切換至濕度波形的顯示。

圖4 實時波形顯示界面
4.2 實時曲線的繪制
以前的工具開發(fā)包使用的回調和消息映射機制易崩潰、不夠穩(wěn)定,而Qt所支持的信號與槽的機制增強了對象間通信的穩(wěn)定性,使GUI對用戶的動作能做出迅速的響應。本設計通過串口實現數據的接收,首先需要打開串口設備,建立監(jiān)聽機制[7]。建立串口信號與槽函數的連接,代碼如下[8]:

Qt/Embedded中使用 QPainter類創(chuàng)建用戶圖形,使用QPainter創(chuàng)建用戶圖形時需要將代碼放入paintEvent()的畫圖事件函數中,QPainter類提供了低級的畫圖函數,例如畫線,畫矩形等。
通常繪制實時波形的方法是直接用QPainter類在畫圖區(qū)域畫出所需圖形,在下一時刻擦除上次的圖形并繪制所需的圖形,但是,這樣做會帶來屏幕的閃爍。為了消除閃爍帶來的影響,采用了雙緩沖的設計方案。雙緩沖技術就是在內存中開辟一塊緩沖區(qū),這塊緩沖區(qū)可看做一幅位圖,先將需要繪制的圖形繪制到緩沖區(qū)的位圖上,然后將繪制好的位圖顯示到窗口中[9]。源代碼如下:

Qt/E不同于PC端的軟件,其并未提供用于實時波形顯示的坐標軸控件,為獲得滿足需求的顯示效果和精度,需要時間軸具備較高精度的滾動功能,豎軸具備自動調節(jié)顯示范圍的能力。
時間軸滾動顯示實現方法是,定義長度為60的二維數組,分別存放數字0~59和數字所對應的橫向像素值,像素值用于確定數字應該顯示的位置,顯示波形時,重新計算出0~59所對應的像素數值,以實現時間軸滾動顯示。時間軸時基采用操作系統時間,用QTime::currentTime()獲得,可精確到毫秒。豎軸的自動調節(jié)功能實現方法是,選取需要顯示為波形的數據中的最大值和最小值,通過選取的最值確定豎軸合理的范圍。
曲線的繪制采用QPoint類,將需要顯示的數據表示為像素點,通過drawPolyline()函數將像素點繪成曲線。經過多次實驗對比,實時顯示波形的誤差小于1 s/h,滿足應用需求。
4.3 數據的存儲和查看
本設計使用SQLite3數據庫對數據進行存儲,SQLite3數據庫是根據嵌入式設備的特點專門開發(fā)的一款小型嵌入式數據庫系統。點擊實時波形顯示界面中的“查看數據庫”按鈕,即可進入數據查詢界面,圖5為數據查詢系統界面。

圖5 數據查詢系統界面
使用SQLite3數據庫前需要在Fedora14系統中安裝數據庫。首先解壓源碼包,執(zhí)行configure文件,生成Makefile文件,執(zhí)行make命令(系統中需要安裝armlinuxgcc交叉編譯工具),生成sqlite3可執(zhí)行文件,將其拷貝到ARMLinux系統的/bin或者/ usr/bin目錄下,并添加可執(zhí)行權限。將./lib目錄下的libsqlite3.a、libsqlite3.so.0.8.6拷貝到ARMLinux系統的/lib目錄下。編寫程序時,需要添加sqlite3.h文件的路徑[10]。
數據庫文件用日期和時間來命名,Qt中用QDateTime::currentDataeTime()獲得系統的當前日期,用QTime::currentTime()獲得系統的當前時間。
顯示數據庫數據使用了QTable類,該類提供了表格的功能,如圖5中所示。點擊“選擇文件”按鈕,可以選擇打開已存儲的數據庫文件,由于嵌入式Qt不提供QFileDialog類,編寫程序時需要編寫一個文件對話框的類。使用QTextStream類將數據庫文件數據導入到文本文件中,部分源代碼如下[11]:

在常溫環(huán)境下,本設計傳感器所測數據與計量級光電式露點傳感器的測量數據作對比,選用了Michell公司的OPTIDEW VISION光電原理的冷鏡式露點傳感器。經過多次實驗,將兩種儀器的測量結果進行對比,溫、濕度對比圖如圖6、圖7所示。將光電式露點傳感器所測得的數據記為“實際濕度”,將本設計傳感器測得數據記為“測量濕度”[12]。

圖6 溫度對比圖

圖7 濕度對比圖
根據圖6、圖7所示,溫度傳感器誤差小于0.2℃,濕度傳感器誤差小于1%,由于冷鏡式露點傳感器響應速度慢于本設計溫濕度傳感器的響應速度,且溫度只保留小數點后一位有效數字,所以實際溫度誤差遠小于0.2℃。濕度誤差小于1%。
本文所設計的多通道便攜式溫濕度傳感器系統指標性能方面達到應用要求。
本文提出了一種基于鉑電阻、HIH-5031、FPGA和Qt/E的多通道溫濕度采集、顯示和存儲系統,由HIH-5031濕度傳感器、PT100電阻溫度傳感器、STM32、AD7193、FPGA和ARM11處理器等主要器件組成??蓪崿F多路快速測量大氣溫度和濕度數據,運行Qt/E程序,可在ARM-LINUX設備上實時顯示波形曲線,并使用SQLite3數據庫將數據存儲在SD存儲卡上。與傳統的地面及氣象探測飛機機載系統相比,該方案不但實現多通道高精度傳感器測量,而且體積、重量、功耗、便攜性均有顯著提升,可用于地面氣象站的多點觀測,以及氣象探測飛機機載拖拽式測量中。
[1] 李安玲,何強,陳寶軍,等.HIH-4000濕度傳感器在糧情監(jiān)控中的應用[J].糧油食品科技,2008,16(5):25-27.
[2] 陳雷,鄭德忠,陳爽.基于Pt100的多功能無線測溫方案[J].制造業(yè)自動化,2012,34(10):23-26.
[3] 王勇軍,李翔.VRS51L3074和AD7193的高分辨率數據采集系統[J].單片機與嵌入式系統應用,2012,(9):46-48.
[4] 郭樹濤,靖永志.基于FPGA的串口通信設計[J].北京電子科技學院學報,2006,14(4):74-78.
[5] 張羽,胡玉貴,殷圭喜,等.基于FPGA的多串口擴展實現[J].電子器件,2009,32(1):233-236.
[6] 李斌,陳富林,李森,等.基于ARMLinux的可編程自動化控制器的設計[J].科學技術與工程,2011,11(36):9067-9070.
[7] 安吉宇,于濤,李擁軍,等.基于Qt的Linux組態(tài)軟件研究與開發(fā)[J].電子器件,2006,29(2):532-535.
[8] 李招峰,劉建設,金華標.基于QT/E的串口通信故障及其解決方案[J].計算機技術與發(fā)展,2012,22(6):254-257
[9] 葛琦.嵌入式Linux的Qt/Embedded無閃爍繪圖[J].電腦知識與技術,2009,5(16):4291-4293.
[10]堯有平,薛小波.基于ARMLinux的SQLite嵌入式數據庫的研究[J].微計算機信息,2008,24(2-2):64-66.
[11]狄輝輝,李京華,劉景桑,等.基于Qt/E的嵌入式實時曲線顯示界面設計與實現[J].電子測量技術,2011,34(12):76-79.
[12]謝軍,劉清惓.基于MEMS和數字信號處理器的露點傳感器設計[J].制造業(yè)自動化,2013,35(2):133-138.

楊 龍(1989- ),男,碩士生,主要研究方向為傳感器外圍電路設計、嵌入式系 統 軟 件 設 計,yanglongvc@ 163.com;

劉清惓(1979- ),男,博士,2002年獲東南大學碩士學位,2006年獲加州大學戴維斯分校博士學位。目前任南京信息工程大學教授、博士生導師。主要研究方向為MEMS傳感器技術、氣象探測,q.liu@ieee.org。
Design of Multi-Channel Temperature and Humidity Sensors Acquisition and Display System*
YANG Long,LIU Qingquan*
(School of Electronic and Information Engineering,Nanjing University of Information Science and Technology,Nanjing 210044,China)
According to the measurement ocassion of Ground Stations multi-point observations and meteorological observation aircraft airborne towed,a temperature and humidity acquisition circuit based on platinum resistance and HIH-5030 is proposed.In this system,Embedded software which has real-time waveform display software based on Qt/E can firstly be taken to collect multiple data by FPGA,and then,SQLite3 datebase is used to storage temperature and humidity data.Humidity error of this new system is less than 1%and temperature error is less than 0.2℃compared with optical chilled mirror dew point sensor.Moreover,this sensor circuit can get fast response speed,as well as accurate and stable real-time waveform interface,so that it can be used in the measurement ocassion of Ground Stations multi-point observations and airborne towed.
humidity sensor;temperature sensor;FPGA;ARM-LINUX;Qt/Embedded
10.3969/j.issn.1005-9490.2014.02.028
TP212.9
A
1005-9490(2014)02-0297-05
項目來源:國家公益性行業(yè)(氣象)科研專項重點項目(GYHY200906037,GYHY201106048);國家自然科學基金項目(41075026,412475042);江蘇高校優(yōu)勢學科建設工程項目;江蘇省科技支撐計劃重點項目(BE2011006)
2014-01-09修改日期:2014-02-20
EEACC:7230;7320