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