新聞中心

EEPW首頁 > 測試測量 > 設計應用 > 基于I2C總線的鍋爐溫度測量系統(tǒng)的設計與實現(xiàn)

基于I2C總線的鍋爐溫度測量系統(tǒng)的設計與實現(xiàn)

作者: 時間:2016-12-26 來源:網(wǎng)絡 收藏
單片機作為典型的嵌入式控制器,具有集成度高、處理功能強、運行速度快、體積小、擴展靈活等優(yōu)勢,在儀器儀表、家用電器、過程控制等領域被廣泛應用。鍋爐溫度是工業(yè)過程中最常見的工藝參數(shù)之一,其測量過程的抗干擾能力和測量值的精度是影響對鍋爐溫度控制效果的重要因素。為使系統(tǒng)更智能化,一般選擇單片機為系統(tǒng)控制核心。但是,傳統(tǒng)的單片機測量系統(tǒng)中實現(xiàn)A/D轉(zhuǎn)換結果輸出以及各器件之間的數(shù)據(jù)傳遞大多采用并行的通信方式,這種數(shù)據(jù)交換方式占用了大量的I/O資源,系統(tǒng)結構也因此變得復雜。同時大量的硬件連線也會帶來很多干擾因素,降低了鍋爐溫度值的測量精度。為了解決傳統(tǒng)設計中存在的問題,本文提出使用Philips公司推出的I2C總線(Inter Integrated Circuit Bus)標準來設計系統(tǒng),大大簡化了系統(tǒng)硬件結構,釋放了單片機I/O資源,也提高了系統(tǒng)的擴展性和抗干擾能力。


1 系統(tǒng)總體設計方案

基于I2C總線的鍋爐溫度測量系統(tǒng)結構如圖1所示,系統(tǒng)主要由溫度傳感器及信號調(diào)節(jié)電路、A/D轉(zhuǎn)換器、微控制器、液晶顯示、報警電路、存儲器電路等組成。系統(tǒng)首先通過溫度傳感器獲得鍋爐溫度值,調(diào)節(jié)電路把傳感器的輸出信號轉(zhuǎn)換為0~5 V的電壓值,標準電壓值送入A/D轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號,并送入單片機數(shù)據(jù)處理,單片機將接收到的鍋爐溫度值存儲到非易失性的E2PROM,液晶顯示器1602將顯示鍋爐的實時溫度,單片機還將當前鍋爐溫度與預先設定的溫度范圍進行比較。當溫度高于設定溫度最大值或小于溫度極小值時,系統(tǒng)將自動報警。

鍋爐溫度測量系統(tǒng)是基于I2C總線標準設計的,主要通信部件之間只需要兩條總線,一條是雙向串行數(shù)據(jù)線SDA,另一條是串行時鐘線SCL。AT89S51不具備I2C總線接口,本設計使用了兩個普通I/O口來模擬I2C標準中SDA和SCL的工作,圖2是測量系統(tǒng)I2C總線串行通信線路圖,系統(tǒng)的多個I2C器件全部通過SDA和SCL連接并進行數(shù)據(jù)交換,不同器件之間通過總線競爭獲得數(shù)據(jù)交換的權利。


2 硬件電路設計

本文引用地址:http://m.butianyuan.cn/article/201612/333778.htm

 微控制器模塊使用AT89S51單片機,主要實現(xiàn)數(shù)據(jù)的采集、處理和控制顯示等功能,單片機最小系統(tǒng)包括時鐘電路和復位電路。設計使用單片機的P1.0產(chǎn)生I2C總線中的SCL時鐘信號,P1.1模擬SDA數(shù)據(jù)信號線,進行數(shù)據(jù)的雙向傳遞。SCL和SDA引腳內(nèi)部漏極開路,設計時要外加約5 ?贅的上拉電阻。系統(tǒng)的硬件電路如圖3所示。

A/D轉(zhuǎn)換模塊采用具有I2C接口的8 bit CMOS可編程轉(zhuǎn)換器PCF8591,該芯片同時集成了A/D轉(zhuǎn)換和D/A轉(zhuǎn)換功能,這里使用其逐次比較型A/D轉(zhuǎn)換功能。與傳統(tǒng)的ADC0809轉(zhuǎn)換輸出需要8根并口數(shù)據(jù)線相比,PCF8591為系統(tǒng)節(jié)省了6根數(shù)據(jù)線。典型的I2C總線接口器件的總線地址由器件地址、引腳地址、方向位組成[1]。在鍋爐溫度測量系統(tǒng)中,為簡化設計把PCF8591的A0、A1、A2三個地址引腳接地。根據(jù)其硬件設計,確定PCF8591的總線地址為91H,根據(jù)系統(tǒng)所需功能,確定其控制寄存器的值為00H,單片機從PCF8591中讀取A/D轉(zhuǎn)換值。通道輸入的模擬電壓U和轉(zhuǎn)換結果D之間的關系為D=255U/5。在使用I2C總線的系統(tǒng)中,主控器發(fā)出的第一個字節(jié)信息為器件地址信息,控制寄存器信息是主控器對PCF8591訪問時發(fā)出的第二個字節(jié)信息。

存儲器模塊采用ATMEL公司推出低功耗CMOS串行帶I2C接口的E2PROM芯片AT24C01[2],主要實現(xiàn)溫度值的存儲。單片機從PCF8591讀取A/D轉(zhuǎn)換結果后,把溫度值存儲到E2PROM。此時,AT24C01地址為A0H,當系統(tǒng)需要從E2PROM讀取溫度值時,AT24C01地址為A1H。與一般存儲器擴展相比,采用AT24C01為系統(tǒng)節(jié)省了6根數(shù)據(jù)線及大量的地址線,使得系統(tǒng)結構更簡化,測量過程的干擾因素也大大減少。

系統(tǒng)工作時,AT89S51發(fā)出地址信息,PCF8591和AT24C01把自身的地址與接收到的地址信息進行比較,相同則為被訪問器件,并準備數(shù)據(jù)的發(fā)送和接收。

溫度傳感器采用恒流源輸出的AD590,不需進行冷端補償,可進行遠距離傳送,有較好的抗干擾能力。信號調(diào)節(jié)電路模塊將AD590輸出的電流信號轉(zhuǎn)換為0~5 V的電壓信號,為A/D轉(zhuǎn)換做準備。

顯示模塊使用液晶顯示屏LCD1602,可以顯示16×2個字符,1602的三個功能控制引腳RS、RW、E由單片機的P0.5、P0.6、P0.7三個I/O控制,數(shù)據(jù)接口D0~D7則由P2口的8 bit來控制。與采用LED顯示器相比,液晶顯示器的硬件連線更少,電路焊接因此變得簡單。

聲光報警模塊由LED、蜂鳴器和電阻組成。光、聲音報警分別由單片機的P1.2和P1.3控制,為提高驅(qū)動能力,發(fā)光二極管和蜂鳴器均由NPN三極管驅(qū)動。

3 系統(tǒng)軟件設計實現(xiàn)

本系統(tǒng)的軟件設計部分采用C語言編程實現(xiàn),使用的軟件是KeiluVision3,從功能上看,系統(tǒng)軟件主要包括主程序、數(shù)據(jù)處理子程序、讀A/D轉(zhuǎn)換結果、溫度比較及報警輸出子程序、讀寫E2PROM子程序、顯示子程序等,系統(tǒng)主程序流程圖如圖4所示。

系統(tǒng)主程序主要完成系統(tǒng)的初始化,及各功能模塊函數(shù)的調(diào)用、等待中斷。采樣時間選擇500 ms,使用單片機內(nèi)部定時器T0實現(xiàn),因此要對T0的工作方式、計時初值、中斷允許、開始計時等進行初始化,T0每50 ms中斷一次,中斷10次即開始一次溫度采樣。

數(shù)據(jù)處理子程序?qū)Σ杉絾纹瑱C內(nèi)的鍋爐溫度值進行處理,包括四次均值濾波和標度變換部分。
I2C總線通信的編程是系統(tǒng)軟件設計的關鍵,AT89S51不具有I2C接口,I2C總線信號將通過兩個獨立I/O進行軟件模擬。這部分總線數(shù)據(jù)通信程序編寫思路為:先由單片機發(fā)出起始信號,接著通過SDA發(fā)出I2C器件的總線地址。與該地址相同的器件發(fā)出應答,應答正確后,再由單片機通過SDA向應答器件寫數(shù)據(jù)或從應答器件中讀取對應地址的數(shù)據(jù),一次數(shù)據(jù)通信結束時要由單片機發(fā)出結束信號。

起始信號程序如下:
Start( )
{ SDA=1;
_NOP_( );
SCL=1; //I2C啟動總線時,SCL維持高電平
FOR(I=0;I++;I<5)
_NOP_( );
SDA=0; //I2C啟動總線時,SDA產(chǎn)生高電平到
低電平的跳變
FOR(I=0;I++;I<4)
_NOP_( );
SCL=0;//準備發(fā)送或接收數(shù)據(jù)
_NOP_( );
}
結束信號程序如下:
Stop( )
{CLR SDA;
_NOP_( );
_NOP_( );
SCL=1; //I2C總線停止時,SCL維持高電平
FOR(I=0;I++;I<5)
_NOP_( );
SDA=1; //I2C總線停止時,SDA產(chǎn)生低電平到
高電平的跳變
FOR(I=0;I++;I<4)
_NOP_( );
}

編寫讀取PCF8591的A/D轉(zhuǎn)換結果子程序時,流程為:啟動起始信號,發(fā)器件地址,PCF8591應答,正確則接著發(fā)送控制字節(jié),PCF8591應答,正確則傳送A/D轉(zhuǎn)換后的數(shù)字量,數(shù)據(jù)傳送完則發(fā)出結束信號。

本文提出了一種基于日趨流行的I2C總線的鍋爐溫度測量系統(tǒng)設計方法,經(jīng)過實際測試,系統(tǒng)運行良好,開發(fā)周期縮短。與其他傳統(tǒng)設計方法相比,該系統(tǒng)具有簡化硬件設計、節(jié)省控制器I/O資源、擴展方便、便于實現(xiàn)等優(yōu)勢,提高了測量系統(tǒng)的抗干擾能力和測量精度,具有一定的實用價值。



評論


技術專區(qū)

關閉