中國地質(zhì)調(diào)查局水文地質(zhì)環(huán)境地質(zhì)調(diào)查中心 國土資源部地質(zhì)環(huán)境監(jiān)測技術(shù)重點實驗室 張曉飛 呂中虎韓永溫 孟憲瑋 張 青
溫度是一個非常重要的物理量,溫度控制關(guān)聯(lián)著生產(chǎn)安全、產(chǎn)品質(zhì)量、產(chǎn)品產(chǎn)量等一系列問題,因此對溫度的檢測與控制是工業(yè)生產(chǎn)和自動控制中最重要的環(huán)節(jié)之一[1]。在工業(yè)生產(chǎn)過程中,很多時候都需要對溫度進行嚴格的監(jiān)控,通常的鉑電阻測溫系統(tǒng)如果要獲得高準確度和多傳感器連接,則電路相對復(fù)雜,容易受到干擾[2]。目前有一種新型的數(shù)字化測溫芯片ADT7420,它具有很高的分辨率和準確度,結(jié)構(gòu)簡單,在一定范圍內(nèi)具有替代鉑熱電阻的優(yōu)勢[3]。
本次設(shè)計采用STM32微控制器為采集處理核心,采用ADT7420為溫度檢測單元,采用I2C多路復(fù)用器PCA9544A為中間節(jié)點單元,設(shè)計了一種能最多掛載32個溫度傳感器ADT7420的多點溫度采集系統(tǒng)。
圖1 多點溫度采集系統(tǒng)總體結(jié)構(gòu)圖
如圖1所示,多點溫度采集系統(tǒng)由溫度檢測單元、中間節(jié)點單元和STM32微控制器單元三部分組成。溫度檢測單元采用高精度數(shù)字溫度傳感器ADT7420感知其環(huán)境溫度的變化[4];中間節(jié)點單元采用以I 2C多路復(fù)用器PCA9544A為核心[5],采集系統(tǒng)最多可同時掛接8個中間節(jié)點;STM32微控制器單元是數(shù)據(jù)采集處理的核心[6],其通過I2C總線發(fā)送地址碼來依次選定中間節(jié)點,再發(fā)送命令碼依次選通與中間節(jié)點相連的4個溫度傳感器,從而完成對所有溫度檢測單元的讀寫操作。
設(shè)計中采用高精度數(shù)字溫度傳感器ADT7420檢測環(huán)境溫度的變化。ADT7420是一種具有自校準、16位分辨率、高線性度的數(shù)字溫度傳感器。該芯片內(nèi)置一個帶隙溫度基準源、一個溫度傳感器和一個16位ADC,用來監(jiān)控溫度并進行數(shù)字轉(zhuǎn)換,分辨率為0.0078℃,其在(-20~+105)℃的溫度范圍內(nèi),可達到±0.25℃準確度,在一定范圍內(nèi)具有替代鉑熱電阻的優(yōu)勢[4]。ADT7420具有I2C總線,可以很方便的與中間節(jié)點PCA9544A連接。如圖2所示,ADT7420與PCA9544A采用I 2C總線連接,為了設(shè)計上的方便,將ADT7420的地址線A0和A1均接地。
設(shè)計中采用I 2C多路復(fù)用器PCA9544A作為中間節(jié)點。PCA9544A是NXP公司生產(chǎn)的I2C總線多路復(fù)用器,通過該器件可以將一路I2C總線擴展為4路I2C總線,將1路上行SDA/SCL通道擴展為4路下行通道。通過對該器件內(nèi)部可編程寄存器進行配置,在同一時間可以任意選擇一對SCx/SDx線[5]。該器件通過3個可編程地址引腳A0、A1、A2,允許多達8個設(shè)備掛接在總線上。如圖2所示,PCA9544A與ADT7420采用I2C總線連接,采用這種方式最多可同時掛接32個ADT7420。
圖2 溫度檢測單元和中間節(jié)點單元電路圖
微控制器是多點溫度采集系統(tǒng)的數(shù)據(jù)采集處理的核心部分,該系統(tǒng)中間節(jié)點的選取、溫度檢測單元的選通和溫度的讀取等均通過微控制器的I2C接口來完成。設(shè)計中采用的微控制器是ST公司生產(chǎn)的微控制器芯片STM32F103,如圖3所示,使用其GPIO口與LCD1602和輸入按鍵相接,用于顯示測量結(jié)果及系統(tǒng)參數(shù)的設(shè)定,使用其USART口與U盤存儲模塊相連接,自帶的看門狗電路能保證系統(tǒng)的穩(wěn)定運行,外接的I2C存儲芯片24C02用于存儲輸入的系統(tǒng)參數(shù)等重要信息,保證在掉電過程中這些參數(shù)不至于丟失[6,7]。U盤存儲模塊選用南京沁恒公司生產(chǎn)的U盤文件讀寫模塊,其支持FAT12、FAT16及FAT32文件系統(tǒng),外圍電路簡單、操作方便。
圖3 STM32微控制器聯(lián)結(jié)框圖
多點溫度采集系統(tǒng)的軟件設(shè)計以STM32F103微控制器為基礎(chǔ),采用模塊化思想,通過主程序調(diào)用的形式來實現(xiàn)整個系統(tǒng)的初始化,系統(tǒng)參數(shù)的輸入,多點溫度的采集處理等。系統(tǒng)軟件采用C語言編寫,總體流程如圖4所示[6]。
圖4 多點溫度采集系統(tǒng)軟件流程圖
軟件主體由啟動界面、封面界面、系統(tǒng)參數(shù)設(shè)定界面和數(shù)據(jù)采集界面組成。按照順序,程序先顯示啟動界面,接著顯示進入封面界面,在封面界面中,如果有按鍵按下,則進入?yún)?shù)設(shè)定界面,如3秒內(nèi)沒有按鍵操作則直接按照默認的參數(shù)進入數(shù)據(jù)采集界面。在參數(shù)界面中,通過按鍵進行系統(tǒng)時間、中間節(jié)點個數(shù)、采集時間間隔的設(shè)定,在采集界面中,依據(jù)設(shè)定的參數(shù)調(diào)用溫度數(shù)據(jù)采集模塊完成對各溫度檢測單元ADT7420的溫度采集。
多點溫度采集模塊的程序設(shè)計主要針對中間節(jié)點PCA9544A和溫度檢測單元ADT7420進行操作。溫度采集模塊的程序流程圖如圖5所示,在設(shè)定中間節(jié)點個數(shù)的基礎(chǔ)上,進行I2C總線的初始化,先選取地址最小的中間節(jié)點PCA9544A,接著依次選取下行總行I2C0—I2C2,再依照ADT7420的操作命令依次完成ADT7420的工作模式設(shè)定、溫度的讀取等操作,在完成選定的這個中間節(jié)點上4個溫度檢測單元的操作后,依次選取下一地址的中間節(jié)點,依次對連接在中間節(jié)點上的溫度檢測單元進行模式設(shè)定和溫度讀取的操作,從而完成所有節(jié)點上所有溫度檢測單元的操作[4,5]。
本設(shè)計采用高精度數(shù)字溫度傳感器ADT7420和I2C多路復(fù)用器PCA9544A設(shè)計了一種多點溫度采集系統(tǒng),結(jié)構(gòu)清晰,外接元件少,實用性強,能夠很好地巡回采集多點溫度值,在實際應(yīng)用中工作性能穩(wěn)定,測量溫度準確,精度較高。
[1]張姍姍.基于單片機的溫度采集控制系統(tǒng)設(shè)計[J].信息通信,2012,06(2):69-70.
[2]吳祿慎,李彧雯.基于單片機的多點溫度采集系統(tǒng)設(shè)計[J].飛機設(shè)計,2010,08(5):76-80.
[3]呂中平.基于ADT7420的新型數(shù)字溫度記錄儀[J].計量與測試技術(shù),2012,07(2):6,8.
[4]Analog Devices,Inc.ADT7420 Data Sheet[EB/OL].Rev0,2012-12.
[5]廣州致遠電子有限公司.PCA9544A-I2C總線多路復(fù)用器產(chǎn)品數(shù)據(jù)手冊(中)[EB/OL].V0.00,2009-08-18.
[6]張曉飛,郝文杰,張青等.基于STM 32的裂縫位移監(jiān)測系統(tǒng)[J].微計算機應(yīng)用,2011,05(8):52-59.
[7]孫啟富,孫運強,姚愛琴.基于STM 32的通用智能儀表設(shè)計與應(yīng)用[J].儀表技術(shù)與傳感器,2010,10(3):34-36.