基于單片機(jī)和串行總線技術(shù)的熱量表設(shè)計
監(jiān)控電路
作為戶用熱量表,通常供電為電池,需要實時檢測電池電壓是否低于正常范圍,不在正常范圍,監(jiān)控電路及時檢測并給MCU發(fā)出信號,提示更換電池。與此同時,MCU立即保存有關(guān)數(shù)據(jù)。另外,對于磁干擾,監(jiān)控電路及時檢測給出指示。
微控制器
微控制器框圖如圖3。
圖3 微控制器原理框圖
微控制器以低功耗,電氣連接最少,各功能模快之間相互干擾小的原則進(jìn)行設(shè)計。眾所周知,串行總線技術(shù)如I2C,從早期大量應(yīng)用于視頻、音像系統(tǒng),現(xiàn)在已應(yīng)用于測控領(lǐng)域。其規(guī)范的完整性,結(jié)構(gòu)的獨立性和用戶使用的“傻瓜”化等顯著特點,促使具有串行總線接口功能的MCU及其外圍器件不斷出現(xiàn)。用具有串行總線接口器件設(shè)計的電路,能夠?qū)崿F(xiàn)電氣連接簡單,低功耗,模塊化。
為此,MCU選用Microchip 公司的PIC16F873,它具有I2C,SPI接口,2.7~5.5V的工作電壓。片內(nèi)FLASH、EEROM為程序和數(shù)據(jù)的保存提供方便,具有的休眠功能使其功耗更低。
A/D轉(zhuǎn)換選用AD7705,它有兩路差分輸入,滿足兩路溫度測量,差分輸入經(jīng)內(nèi)部可編程放大及16位A/D轉(zhuǎn)換器輸出數(shù)字量。AD7705與單片機(jī)之間通過SPI串行總線進(jìn)行控制字(放大倍數(shù)、轉(zhuǎn)換通道、采樣速率等設(shè)置)和數(shù)據(jù)(A/D轉(zhuǎn)換結(jié)果)的傳輸。
時鐘選用DS1337,為熱量表提供工作時間數(shù)據(jù),時鐘與單片之間通過I2C串行總線進(jìn)行時鐘和日歷數(shù)據(jù)的傳輸。按鍵設(shè)計為一鍵巡視,即單片機(jī)根據(jù)按鍵次數(shù)通過串行3總線在LCD顯示各測量參數(shù)。無按鍵時LCD處于關(guān)閉狀態(tài)。當(dāng)有按鍵按下或有流量脈沖信號時喚醒休眠中的單片機(jī),使其進(jìn)行相應(yīng)的工作,工作完成后自行進(jìn)入休眠。這樣可降低功耗。
軟件設(shè)計
軟件設(shè)計采用模塊化設(shè)計,分為:主程序、中斷服務(wù)程序和若干子程序。其流程示于圖4。
圖4 流程圖
主程序完成單片機(jī)的初始化,以及通過串行總線完成A/D轉(zhuǎn)換和時鐘的初時化。完成這些工作后單片機(jī)進(jìn)入休眠,等待中斷。當(dāng)有中斷信號即刻進(jìn)入中斷服務(wù)程序,通過對中斷信號的判斷決定下一步執(zhí)行何種處理。若為流量則進(jìn)行熱量的計算,首先檢測進(jìn)出口溫度并對其進(jìn)行線性化處理,根據(jù)溫度查表或插值計算對應(yīng)焓值,最后根據(jù)公式計算熱交換系統(tǒng)所釋放的熱量,為一個流量脈沖所代表的質(zhì)量,累計熱量Q=SDQ。
若為按鍵,則根椐按鍵次數(shù)顯示相應(yīng)的參數(shù)。若為電池欠電壓,則轉(zhuǎn)向保存相關(guān)數(shù)據(jù)的處理程序,確保重要數(shù)據(jù)如累計熱量、累計工作時間等不被丟失,并及時提示更換電池。若為磁干擾則作出相應(yīng)的處理和給出指示。
結(jié)語
應(yīng)用單片機(jī)技術(shù)和串行總線技術(shù)所設(shè)計的熱量表,性能穩(wěn)定功耗低,能夠檢測顯示熱載體流過熱交換體的進(jìn)出口溫度,流體體積,并可顯示釋放的熱量。熱量表具有傳感器故障和磁干擾監(jiān)控功能。該熱量表經(jīng)計量部門檢定準(zhǔn)確度等級優(yōu)于3級。可應(yīng)用于居住環(huán)境供暖的計量。為供熱合理收費提供依據(jù)。
參考文獻(xiàn):
[1].Microchip datasheethttp://www.dzsc.com/datasheet/Microchip+_1097736.html.
[2].PIC16F873datasheethttp://www.dzsc.com/datasheet/PIC16F873_1.html.
[3].AD7705datasheethttp://www.dzsc.com/datasheet/AD7705_249855.html.
[4].DS1337datasheethttp://www.dzsc.com/datasheet/DS1337_1090248.html.
評論