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

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > HART協(xié)議簡介及在智能電磁流量計中的應(yīng)用

          HART協(xié)議簡介及在智能電磁流量計中的應(yīng)用

          作者: 時間:2017-01-09 來源:網(wǎng)絡(luò) 收藏






          圖2 HART接口電路




          3.2 HT2012 與外部接口



            HART數(shù)字信號規(guī)范是峰值為1mA、平均值為0mA正弦交流電流信號,此信號經(jīng)線路阻抗轉(zhuǎn)化為正弦交流電壓信號,而HT2012 輸入和輸出信號是0~5V 的方波信號,因此在HT2012 和外部的HART 信號之間還需要有濾波電路和整形電路。



            如圖3所示,由TLC27 組成的濾波器是帶通濾波器,用來減少接收信號的噪聲干擾。濾波器還用來消除波形中的尖峰,從而使接收到的信號變得平緩。TLC37 組成的數(shù)字方波產(chǎn)生回路把經(jīng)過TLC27 濾波后的正弦波轉(zhuǎn)變成相應(yīng)的方波,以便于HT2012 接收。



            如圖4所示,緩沖器74HC126 的作用是使方波的上升沿和下降沿趨于平緩,使信號滿足HART 物理層規(guī)范所要求的信號波形上升沿和下沿的時要求,因為較平緩的上升沿和下降沿時間可以降低與其它網(wǎng)絡(luò)間的串?dāng)_。



            HT2012需要外部提供460.8kHz的時鐘信號,且要求時鐘頻率的誤差是±0.1%,若直接入一個460.8kHz的晶振不僅會引起系統(tǒng)功耗的增加,而且該晶振屬于非標(biāo)準(zhǔn)晶振,需專門定制。為了解決這一問題,在系統(tǒng)中采用一片1.8432MHz的晶振以產(chǎn)生時鐘信號,再經(jīng)分頻器CD4013進(jìn)行4分頗,可輸出1.8432MHz /4=460.8kHz的分頻信號供HT2012使用。



            AD421其內(nèi)部的電壓調(diào)節(jié)器與外部的場效應(yīng)管DN25D對輸入到AD421的電壓進(jìn)行調(diào)整,可提供+3.3V電壓作為其他設(shè)備的電源。HART發(fā)出的FSK信號,經(jīng)過一個電容耦合送到AD421中,轉(zhuǎn)換成相應(yīng)的±0.5mA正弦電流信號,實現(xiàn)電壓信號到電流信號的轉(zhuǎn)換,同時,疊加在4~20mA的電流上送給接收設(shè)備,實現(xiàn)了HART協(xié)議的信息的交換。本電路耦合電容取為0. 0033μF。

          4 HART通訊協(xié)議的軟件實現(xiàn)



          4.1 智能電磁流量計串口中斷程序[5]



            在串行口中斷服務(wù)程序中,首先保護(hù)現(xiàn)場,然后判斷是接收中斷還是發(fā)送中斷,若為接收中斷則執(zhí)行接收服務(wù)子程序,否則執(zhí)行發(fā)送服務(wù)子程序。中斷處理結(jié)束后,恢復(fù)現(xiàn)場并返回系統(tǒng)主程序。HART通信采用水平和垂直校驗的方法。當(dāng)檢測到接收數(shù)據(jù)有差錯時,則等到主設(shè)備命令幀發(fā)完后,通知主設(shè)備數(shù)據(jù)接收有誤。主設(shè)備則重新發(fā)命令幀,從而保證通信的準(zhǔn)確可靠。HART串口中斷子程序流程圖如圖5所示。



          評論


          技術(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); })();