智能電流變送器中HART調制解調器的實(shí)現方法
以MAXQ2000微處理器為核心的增強型智能4~20mA變送器的HART調制解調器如圖3所示。在MAXQ2000中,實(shí)現軟件濾波和頻率編碼/解碼等功能;低功耗的MAX1407實(shí)現A/D轉換,低功耗的MAX1102實(shí)現D/A轉換。
如果系統包含1 200 Hz和2 200 Hz(分別代表1和0)頻率編碼器,同時(shí)要對這些頻率進(jìn)行檢測,可以采用MAXQμC內部的MAC實(shí)現HART調制解調器要求的這些功能。
3.2 頻率編碼器的實(shí)現
要產(chǎn)生所需的正弦波形,可以利用下述差分方程描述的兩極點(diǎn)濾波器形式實(shí)現遞歸數字式諧振器:
式中,常數k等于2 cos(2π×頻率/采樣率)??梢灶A先計算k的兩個(gè)值,并存在ROM中。例如,要用8 kHz采樣率產(chǎn)生1 200 Hz頻率,該值k=2 cos(2π×1 200/8 000)。必須計算能使振蕩器開(kāi)始振蕩的初始激勵。如果Xn-1和Xn-2都為0,接下來(lái)的每個(gè)Xn也都將為0。要啟動(dòng)振蕩器,將Xn-1設為0,Xn-2設置為:
為進(jìn)一步簡(jiǎn)化編碼,首先,初始化兩個(gè)中間變量(X1,X2)。X1初始化為0,X2為初始激勵值(上面的計算結果),以啟動(dòng)振蕩器。這樣,要產(chǎn)生一個(gè)正弦波的采樣,可進(jìn)行下列運算:
每個(gè)新的正弦值都需要一次乘法運算和一次減法運算。利用MAXQμC的單周期硬件MAC,可以采用如下操作產(chǎn)生正弦波:
因為只需要檢測兩種頻率,所以采用改進(jìn)的Goertzel算法。這種算法可以用簡(jiǎn)單的二階濾波器實(shí)現,如圖4所示。
要使用Goertzel算法檢測特定頻率,編譯時(shí)要首先使用下式計算出常數:
隨后,將中間變量D0、D1和D2初始化為0,并對每個(gè)收到的采樣X(jué)進(jìn)行下列計算:
得到足夠多的采樣值以后(采用8 kHz的采樣頻率時(shí),通常為205個(gè)采樣值),用最新計算出的D1和D2值進(jìn)行下列計算:
這時(shí),P包含了輸入信號中測試頻率的平方。要對兩種頻率解碼,用兩個(gè)濾波器處理每個(gè)采樣。每個(gè)濾波器都有自己的k值和自己的一組中間變量,每個(gè)變量都是16位長(cháng),所以,整個(gè)算法需要48字節的中間存儲器空間。
3.3 HART中斷程序
HART通信程序是HART協(xié)議數據鏈路層和應用層的軟件實(shí)現。由于HART通信采取的是主從方式,而像變送器這類(lèi)的現場(chǎng)設備都是從機,因此在初始化中和每次回答完主機命令后,都要把接收中斷打開(kāi),一直等候主機命令。HART通信采用水平和垂直校驗的方法,當檢測到接收數據有差錯時(shí),要等到主設備命令幀發(fā)完后,通知主設備數據接收有誤,主設備則重新發(fā)命令幀,從而保證通信的準確可靠。HART中斷子程序流程如圖5所示。由于HART通信為主從方式,HART幀中每個(gè)字節在物理層傳輸需要9 ms左右,為了保證通信的實(shí)時(shí)性,通信程序采用串行口終端接收/發(fā)送。該中斷所要完成的通信中的主要任務(wù)是,接收和發(fā)送幀、幀的拆分和打包。
結 語(yǔ)
HART協(xié)議作為一個(gè)開(kāi)放性的協(xié)議,現已成為智能儀表事實(shí)上的標準,其特點(diǎn)是在現有的模擬信號傳輸上實(shí)現數字信號通信;嵌入式系統技術(shù)是目前電子產(chǎn)品設計領(lǐng)域最為熱門(mén)的技術(shù)之一。本文介紹了以MAXQ2000嵌入式處理器為核心的HART智能電流變送器,對HART協(xié)議的實(shí)現進(jìn)行了較詳細的敘述。采用嵌入式技術(shù)的HART智能變送器,不僅能解決現場(chǎng)總線(xiàn)兼容原有的DCS(Distribute Control System)問(wèn)題,而且使系統整體的實(shí)時(shí)性、穩定性、抗干擾性及低功耗等性能有了極大的提高。
電流變送器相關(guān)文章:電流變送器原理
評論