<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于串行總線的熱量表設(shè)計(jì)

          基于串行總線的熱量表設(shè)計(jì)

          作者:甘肅省科學(xué)院傳感技術(shù)研究所 蔣炳軍 徐武德 時間:2004-08-09 來源:電子產(chǎn)品世界 收藏

          2004年A版

          摘  要:用帶有串行總線接口的MCU及器件設(shè)計(jì)電路,達(dá)到電路簡單和穩(wěn)定可靠的熱量測量。

          關(guān)鍵詞:;串行總線

            我國居民取暖計(jì)量收費(fèi)已是大勢所趨,但也是一個熱點(diǎn)、難點(diǎn)問題。計(jì)量準(zhǔn)確與否直接關(guān)系到熱量的合理收費(fèi)和用戶的切身利益,也關(guān)系到供熱事業(yè)的生存和發(fā)展。是用于測量熱交換系統(tǒng)中載熱流體釋放熱量多少的計(jì)量器具,用法定計(jì)量單位顯示熱量。

          熱量表

            將經(jīng)過嚴(yán)格配對的溫度傳感器,分別安裝于熱交換回路的入口和出口的管道上;流量傳感器安裝于出口或入口管道上。配對溫度傳感器檢測熱交換系統(tǒng)進(jìn)口和出口流體的溫度,流量傳感器檢測流經(jīng)熱交換系統(tǒng)的流量。微控制器將采集到的溫度、流量數(shù)據(jù)進(jìn)行處理,計(jì)算出熱交換系統(tǒng)所釋放的熱量,并進(jìn)行存儲或顯示。熱量表主要由溫度檢測、流量檢測和微控制器組成。

            熱量的計(jì)算公式為:

                =

            式中Q載熱液體釋放的熱量(KJ),qm流經(jīng)熱量表載熱液體的質(zhì)量流量(Kg/s),hi,h0熱交換系統(tǒng)入口溫度和出口溫度對應(yīng)的載熱液體的焓值(KJ/Kg),t時間(s)。

            從上式可以看出,要計(jì)算熱量,必須首先檢測進(jìn)出口溫度,然后根據(jù)溫度查表計(jì)算對應(yīng)的熱焓值。熱焓值在不同溫度下其值不同,既是溫差相同,但進(jìn)出口溫度不同,所釋放的熱量也不相同。

          熱量表電路設(shè)計(jì)

          溫度檢測電路

            溫度傳感器選鉑電阻PT1000,鉑電阻溫度傳感器化學(xué)性質(zhì)穩(wěn)定,準(zhǔn)確度高,使用方便,不需冷端補(bǔ)償。熱量表測溫范圍不大(0~95℃),能夠滿足要求。溫度-電壓轉(zhuǎn)換采用橋路方式實(shí)現(xiàn),電路如圖2。

            橋路電源Vref由MAX6192-2.5V 基準(zhǔn)電壓源提供,溫漂5ppm/℃。橋臂電阻R1、R2、R4選用同溫度系數(shù)的精密電阻,減少環(huán)境溫度變化引起橋路輸出的漂移。另外,為減少鉑電阻自熱溫升,R1、R2阻值選用49K,橋臂電流為0.05mA ,這樣因自熱溫升而產(chǎn)生的測量誤差可忽略不計(jì)。鉑電阻的非線性通過軟件的方式進(jìn)行線性處理。

          流量檢測

            流量傳感器選用遠(yuǎn)傳熱水流量計(jì),工作溫度0~95℃ ,傳感器為磁敏感器件。當(dāng)熱水流過并達(dá)到1升或10升時發(fā)出脈沖,該脈沖經(jīng)過濾波處理送給微控制器,作為流量質(zhì)量累計(jì)和熱量計(jì)算的基本質(zhì)量體積單位,即1升/每脈沖或10升/每脈沖。

          監(jiān)控電路

            作為戶用熱量表,通常供電為電池,需要實(shí)時檢測電池電壓是否低于正常范圍,不在正常范圍,監(jiān)控電路及時檢測并給MCU發(fā)出信號,提示更換電池。與此同時,MCU立即保存有關(guān)數(shù)據(jù)。另外,對于磁干擾,監(jiān)控電路及時檢測給出指示。

          微控制器

            微控制器以低功耗,電氣連接最少,各功能??熘g相互干擾小的原則進(jìn)行設(shè)計(jì)。眾所周知,串行總線技術(shù)如I2C,從早期大量應(yīng)用于視頻、音像系統(tǒng),現(xiàn)在已應(yīng)用于測控領(lǐng)域。其規(guī)范的完整性,結(jié)構(gòu)的獨(dú)立性和用戶使用的“傻瓜”化等顯著特點(diǎn),促使具有串行總線接口功能的MCU及其外圍器件不斷出現(xiàn)。用具有串行總線接口器件設(shè)計(jì)的電路,能夠?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ī)根據(jù)按鍵次數(shù)通過串行3總線在LCD顯示各測量參數(shù)。無按鍵時LCD處于關(guān)閉狀態(tài)。當(dāng)有按鍵按下或有流量脈沖信號時喚醒休眠中的單片機(jī),使其進(jìn)行相應(yīng)的工作,工作完成后自行進(jìn)入休眠。這樣可降低功耗。

          軟件設(shè)計(jì)

            軟件設(shè)計(jì)采用模塊化設(shè)計(jì),分為:主程序、中斷服務(wù)程序和若干子程序。

            主程序完成單片機(jī)的初始化,以及通過串行總線完成A/D轉(zhuǎn)換和時鐘的初時化。完成這些工作后單片機(jī)進(jìn)入休眠,等待中斷。當(dāng)有中斷信號即刻進(jìn)入中斷服務(wù)程序,通過對中斷信號的判斷決定下一步執(zhí)行何種處理。若為流量則進(jìn)行熱量的計(jì)算,首先檢測進(jìn)出口溫度并對其進(jìn)行線性化處理,根據(jù)溫度查表或插值計(jì)算對應(yīng)焓值,最后根據(jù)公式計(jì)算熱交換系統(tǒng)所釋放的熱量,為一個流量脈沖所代表的質(zhì)量,累計(jì)熱量Q=SDQ。

            若為按鍵,則根椐按鍵次數(shù)顯示相應(yīng)的參數(shù)。若為電池欠電壓,則轉(zhuǎn)向保存相關(guān)數(shù)據(jù)的處理程序,確保重要數(shù)據(jù)如累計(jì)熱量、累計(jì)工作時間等不被丟失,并及時提示更換電池。若為磁干擾則作出相應(yīng)的處理和給出指示。

          結(jié)語

          應(yīng)用單片機(jī)技術(shù)和串行總線技術(shù)所設(shè)計(jì)的熱量表,性能穩(wěn)定功耗低,能夠檢測顯示熱載體流過熱交換體的進(jìn)出口溫度,流體體積,并可顯示釋放的熱量。熱量表具有傳感器故障和磁干擾監(jiān)控功能。該熱量表經(jīng)計(jì)量部門檢定準(zhǔn)確度等級優(yōu)于3級??蓱?yīng)用于居住環(huán)境供暖的計(jì)量。為供熱合理收費(fèi)提供依據(jù)。■



          關(guān)鍵詞: 熱量表 元件 制造

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();