??? 摘 要: 利用ADI公司的AD?滋C845芯片,提高了系統(tǒng)集成度,采用硬件獨特設(shè)計以及軟件濾波、軟件非線性補償算法,設(shè)計并實現(xiàn)了一種精度達10-5以上的高精度數(shù)字式應(yīng)力傳感器,滿足在一些高精度測量領(lǐng)域的需求。同時,豐富、簡便的軟件通信協(xié)議" title="通信協(xié)議">通信協(xié)議使傳感器在使用過程中的校準、去皮重、軟件濾波、多傳感器同時工作(陣列方式)時的地址設(shè)置變的非常方便、快捷。
??? 關(guān)鍵詞: ADμC845? 高精度測量? 軟件濾波? 補償算法? 通信協(xié)議
?
??? 隨著計算機技術(shù)和集成電路技術(shù)的發(fā)展,人們對傳感器的要求也隨之提高,近年來出現(xiàn)的數(shù)字傳感器" title="數(shù)字傳感器">數(shù)字傳感器就是一個很典型的例子。
??? 目前批量生產(chǎn)的模擬式應(yīng)力、應(yīng)變傳感器的轉(zhuǎn)換精度一般在萬分之三至萬分之一,甚至更高。而一些比較常用的應(yīng)力、應(yīng)變數(shù)字傳感器中集成電路芯片內(nèi)置的A/D" title="A/D">A/D轉(zhuǎn)換器通常是14位的,其極限量化誤差在±(1/2)×2-14左右,即絕對值相當于2-14,也就是說,A/D的最后一位通常是靠不住的。因此這類芯片的轉(zhuǎn)換精度可以達到十進制的萬分之1.2。從上面分析可以看出,靠這類芯片無法保證原模擬式傳感器的轉(zhuǎn)換精度,因為量化誤差已經(jīng)與模擬傳感器" title="模擬傳感器">模擬傳感器的誤差處在一個數(shù)量級。而數(shù)字化后的傳感器精度如果低于原模擬傳感器的精度,這種轉(zhuǎn)換就已失去意義。
??? 此前也有一些利用24位的A/D(如AD7730等)與CPU的組合,設(shè)計出數(shù)字傳感器,但其系統(tǒng)集成度明顯較低,可靠性也因此降低,而成本則高于本設(shè)計。
??? 本文采用ADμC845芯片,利用其內(nèi)置的24位A/D、串行口,配以外部232/485芯片、外部數(shù)據(jù)平滑濾波算法及通信協(xié)議,設(shè)計了一種集成度較高、能輸出232/485數(shù)字量的高精度數(shù)字式應(yīng)力傳感器,其量化誤差在±(1/2)×2-24左右,即相當于2-24,低于1ppm(百萬分之一);不僅如此,本設(shè)計更大的優(yōu)點是可以將模擬傳感器的剩余非線性補償?shù)?,使其性能更加?yōu)越;同時,采用數(shù)據(jù)平滑濾波又增加了輸出數(shù)據(jù)的穩(wěn)定性。通過通信協(xié)議,可以對傳感器的輸出做零點校準、滿刻度校準、去皮重、軟件濾波、多傳感器同時工作等多種設(shè)置,也可以非常方便地讀出傳感器當前的各種狀態(tài),如A/D是否溢出、是否計量達到設(shè)定值等,使傳感器成為真正意義上的數(shù)字傳感器。此外,還為使用者提供了若干個I/O" title="I/O">I/O狀態(tài)端子,將動態(tài)計量過程特征量通過這些端子表現(xiàn)出來,成為執(zhí)行機構(gòu)實施控制的依據(jù),從而具有了控制的功能。
1 硬件組成及工作原理
1.1 ADμC845原理框圖
??? 圖1所示為ADμC845的原理框圖。
???????????????????
1.2 ADμC845的優(yōu)勢
??? ADμC845是51系列兼容的8位單片機,選擇該芯片做為數(shù)字傳感器的核心主要基于其眾多特點中的幾個突出性能:
??? (1)24位∑-Δ A/D轉(zhuǎn)換器(∑-ΔA/D轉(zhuǎn)換器的工作原理在諸多參考文獻中已有敘述[1]),具有差分模擬輸入、24位無失碼、21位有效分辨率、±0.0018%線性誤差等特點。由于采用∑-Δ轉(zhuǎn)換技術(shù),量化噪聲被移至A/D轉(zhuǎn)換的頻帶以外,因此特別適合用于寬動態(tài)范圍內(nèi)的低頻信號A/D轉(zhuǎn)換,具有優(yōu)良的抗噪聲性能。為高精度、低噪聲地轉(zhuǎn)換模擬信號提供了條件。
??? (2)62KB FLASH程序存儲器、4KB FLASH數(shù)據(jù)存儲器,可以支持51系列嵌入式操作系統(tǒng)以及豐富的通信規(guī)約、復(fù)雜的功能。
??? (3)內(nèi)置看門狗定時器(Watchdog Timer),節(jié)省外部資源,使工作更可靠。
??? (4)內(nèi)置溫度傳感器,該芯片已經(jīng)具有低溫漂的特性(0.5ppm/℃),但為了滿足更高性能的要求,利用內(nèi)置的溫度傳感器,可對寬溫度范圍工作時的系統(tǒng)進行溫度補償,進一步提高測量精度。
??? (5)低功耗。休眠模式下電流低于20μA。
??? (6)寬溫度范圍,該芯片有兩種工作溫度范圍:-40℃~+85℃和-40℃~+125℃,完全滿足工業(yè)級的需求。
??? 以上特點,使ADμC845具有了很多其他芯片組合在一起的優(yōu)點,因而集成度更高、可靠性更好。
1.3 數(shù)字傳感器工作原理
????? ADμC845的優(yōu)勢使系統(tǒng)硬件變得簡單,從而大大提高了系統(tǒng)的可靠性。其原理框圖如圖2所示。
???????????????
??? 模擬傳感器橋?qū)⒂嬃繎?yīng)變信號直接送給ADμC845的內(nèi)置A/D轉(zhuǎn)換器,A/D轉(zhuǎn)換后的數(shù)據(jù)經(jīng)片內(nèi)固化兩級濾波、再經(jīng)軟件濾波進一步處理后由RS232或RS485芯片按一定協(xié)議輸出,供外部電路處理。
??? 其中:
??? (1)切換電路用于232/485模式切換,可以通過設(shè)置選擇;長距離傳輸時采用485模式。
??? (2)保護電路(含TVS管和光隔)用于保護通信芯片及CPU不受外部突發(fā)干擾的損害。
??? (3)端子不僅包括電源、通信信號(RS232時為TX、RX、GND;RS485為A、B),也包括可選的I/O端子以便完成一些控制功能。當需要根據(jù)不同的計量信號而對外部設(shè)備進行控制時,可用這些端子的輸出作為控制信號,其中有3個是達到不同預(yù)設(shè)(動態(tài))計量值的變位(0/1)端子,計量超差端子等。
??? 需要特別指出的是:
??? (1)模擬電源與基準電源的處理:通常的做法是將模擬電源(橋的激勵電源)、數(shù)字電源、A/D參考電源分開,但在實際測試中發(fā)現(xiàn),將模擬電源與參考電源共用一個電源時效果會更好。其理由就是這種接法在電源電壓略有波動時,橋的激勵電源與參考電壓發(fā)生同步變化,在采樣值上這種波動就被抵消了,從而使A/D轉(zhuǎn)換的值更趨于穩(wěn)定。
??? (2)為使硬件工作穩(wěn)定,ADμC845附近的走線,特別是電源、地線及I/O線的屏蔽等均要考慮[2]。
??? (3)串行通信接口:可根據(jù)不同需求選擇232接口或485接口,并通過軟件設(shè)置來改變。
2 軟件編程
2.1 多任務(wù)描述
??? 采用多任務(wù)機制,將圖3各功能用子任務(wù)的形式運行,提高了系統(tǒng)的實時性和可靠性。
???????????????????
??? 其中:
??? 主任務(wù)——創(chuàng)建子任務(wù)并對各項子任務(wù)進行協(xié)調(diào);
??? 采樣及非線性補償任務(wù)——完成A/D轉(zhuǎn)換及片內(nèi)數(shù)字、片外軟件濾波、模擬傳感器的非線性補償;
??? 溫度采樣任務(wù)——實現(xiàn)溫度采樣及溫度補償;
??? 通信及參數(shù)設(shè)置任務(wù)——實現(xiàn)不同速率的串行通信及各種參數(shù)的設(shè)置;
??? 控制信號輸出任務(wù)——實時輸出I/O變位信息。
2.2 數(shù)字濾波
2.2.1 片內(nèi)固化的兩級濾波
??? 芯片內(nèi)部自帶兩級數(shù)字濾波器,濾波方式、數(shù)據(jù)輸出速率可通過對濾波寄存器編程進行選擇。第一級濾波器是SINC3濾波(三階梳狀濾波),具有斬波和非斬波兩種工作方式,能消除量化噪聲;第二級濾波器是FIR濾波(有限階躍響應(yīng)濾波),具有三種工作方式:①直通方式,②低通濾波器方式,③快速階躍方式??筛鶕?jù)不同需求選擇。
?為了提高對不同對象的測量數(shù)據(jù)的可靠性,系統(tǒng)又通過編程增加了如下濾波方法。
2.2.2 軟件濾波
??? (1)遞推平均濾波法(又稱滑動平均濾波法)
??? 其濾波原理如式(1)
??? ?
式(1)中,x(i)、x(k)、x(n+k)為不同點的采樣值,y(k)為第k點的濾波輸出值。
??? 這種濾波是配合片內(nèi)的SINC3濾波,對周期性的干擾(如傳感器外部布線干擾)等有良好的抑制效果。
??? (2)一階滯后濾波法
??? 其濾波原理如式(2)
???
式(2)中,x(i)、x(k)、x(n+k)的含義同式(1),y(k)為第k點的濾波輸出值。
??? 這種濾波的原理是考慮到了測量過程中前后兩次采樣值有比較大的相關(guān)性,發(fā)生劇烈跳變的可能性不大,因此是一種加權(quán)式的平均方式。式中“a”即相當于權(quán)重值。
??? 無論是片內(nèi)還是軟件濾波,均可以經(jīng)外部通信端口由軟件進行選擇,針對現(xiàn)場不同的環(huán)境選擇不同的輸出精度和輸出速率。
3 非線性補償
??? 對于模擬傳感器普遍存在的非線性,可以用硬件補償及軟件補償法進行修正[2][3],傳感器廠家通常使用硬件補償法進行出廠前的修正。本系統(tǒng)主要用軟件法修正誤差。
??? 有些傳感器的非線性特性可以用函數(shù)關(guān)系來表示。如式(3)表示的即為電阻式單臂應(yīng)變電橋。
???
式中,E為供橋電壓;K為靈敏系數(shù);ε著為應(yīng)變參數(shù),與外部受力呈線性關(guān)系;Ug是橋的輸出電壓。
??? 從式(3)中可以看出,ε著與Ug存在明顯的非線性。對于此種類型的傳感器,可以把其運算規(guī)則(特性關(guān)系的反函數(shù))存入AD?滋C845中,這樣每測得一個傳感器的輸出量,就可以通過預(yù)存在ADμC845中的運算規(guī)則計算得到最終經(jīng)過補償?shù)谋粶y物理量[2]。
??? 對不易采用反函數(shù)計算補償?shù)膫鞲衅鳎到y(tǒng)采用了最小二乘法。具體算法如下:
??? 最小二乘法的一元線性回歸的數(shù)學(xué)模型為[3]:
???
式中X,Y為滿足線性數(shù)學(xué)模型的變量;a,b為待定常數(shù)和系數(shù);ε為測量的隨機誤差。
??? 當對不同的Xi(i=1,2,…n)值分別進行n(n>2)次測量時,得到的結(jié)果是式(4)所示的n個測量方程,以最小二乘法對式(4)中的參數(shù)a,b的值進行估計如下:
??? ?
??? 當然,如果在補償過程中個別點的誤差比較大或有些要求極高的場合,也可以采用分段補償?shù)霓k法[4]。在寬溫度范圍下做高精度測量時,可利用ADμC845的內(nèi)置溫度傳感器采用逐點描述法在量程內(nèi)進行溫度補償。
4 通信協(xié)議及典型功能
4.1 串行口
??? 為了使本傳感器能夠適應(yīng)多種情況下的測量需要,在軟件上做了比較細致的工作。串行通信口既做為ISP(在線編程)口來設(shè)置內(nèi)部參數(shù),也做為串行數(shù)據(jù)輸出口。
4.2 通信協(xié)議及功能
??? 仿照國外流行的數(shù)字傳感器通信協(xié)議(如德國HBM公司的AED_Panel32),抽取部分使用的命令,形成了一個協(xié)議子集,共有命令36條(原協(xié)議命令105條),通信格式如下:
??? 命令(參數(shù)1)<參數(shù)2>;
??? 其中“命令”由三個大寫英文字母組成,參數(shù)1、2一般由10進制數(shù)組成(個別例外),如:“ADR01”表示目前指向地址為“01”的數(shù)字傳感器,其地址范圍從00~99?!癇DR9600”則表示設(shè)置下面的所有傳感器的通信波特率為9 600b/s。
??? 另外還規(guī)定了對傳感器進行校準及計量目標值設(shè)定等通信命令,使傳感器真正實用化。
?規(guī)約命令分類:非線性修正、通信參數(shù)設(shè)置、地址設(shè)置、濾波器設(shè)置、計量校準(包括零點和滿偏校準)、計量過程參數(shù)設(shè)置(快投、慢投等)、工作狀態(tài)傳遞(計量、ISP狀態(tài)等)。
??? 在485通信模式下,設(shè)置及校準完好的多個傳感器可以同時以“掛燈籠”方式工作,系統(tǒng)最多可以容納100個傳感器,通信波特率可以達到115 200b/s。在計量過程中,不僅能通過串行口源源不斷地給出計量值和自身的工作狀態(tài),還可以通過輔助I/O端子,輸出控制輔助信息,便于使用者直接對執(zhí)行機構(gòu)(如電機、閥門等)實施控制。
5 測試
??? 系統(tǒng)設(shè)計完成后,對出廠前的應(yīng)變片式模擬傳感器(量程500kg、標定精度萬分之2)做了數(shù)字化處理,并在BFSM型力標準機上進行了測試。
5.1 系統(tǒng)設(shè)置
??? 系統(tǒng)的具體設(shè)置如下:
??? (1)片內(nèi)A/D采用連續(xù)采樣;
??? (2)片內(nèi)濾波第一階采用斬波方式、第二階采用低通濾波器方式;
??? (3)軟件濾波采用一階滯后濾波法;
??? (4)非線性補償:這里采用最小二乘法補償,在T=300K的恒溫下,做多點擬和,計算出式(4)中的a、b的值,并記入采樣及非線性補償任務(wù)中備用;
??? (5)通信采用485方式;
??? (6)加載及卸載均按照0~500kg內(nèi)均勻設(shè)點的方式(0、40、80、120、160、…、480kg)。
5.2 測量方法
??? (1)精度方面的測量,在上述的標準砝碼點上與理論值及標定精度值進行比對;
??? (2)非線性補償?shù)臏y量,在上述各點上進行測試,并使軟件中最小二乘法補償開關(guān)分別處于接通和斷開狀態(tài),觀察不同的結(jié)果。
5.3 測試結(jié)果
??? 測試結(jié)果表明:
??? (1)按照模擬傳感器的測試記錄,標定有萬分之2精度的傳感器經(jīng)過轉(zhuǎn)換及數(shù)字化后,在上述的標定點上的測量結(jié)果與原傳感器出廠記錄完全相同,即不產(chǎn)生附加誤差。
??? (2)在非線性測量點上,當不使用最小二乘法補償時,最大非線性誤差(380kg點上)為萬分之1.7,在同樣條件下,使用最小二乘法補償,最大非線性誤差減小為萬分之0.6。
??? (3)輔助I/O點的使用??蓪?個I/O點(主要為輸出點)分別設(shè)為運行、快速投料、慢速投料、卸料。在啟動測量時“運行”有效、經(jīng)延遲后“快速投料”及“慢速投料”均有效,達到某設(shè)定值時“快速投料”失效,達到另外的(較大)設(shè)定值時,“慢速投料”失效,經(jīng)計量慣性而達到預(yù)設(shè)計量目標值并穩(wěn)定后,“卸料”有效。當然,也可以根據(jù)要求將各I/O設(shè)定為其他方式。
??? 總之,通過實際的測試,證明系統(tǒng)完全達到了設(shè)計目標——數(shù)字傳感器不僅可以實現(xiàn)被測量的數(shù)字化,更重要的是通過軟件可以補償傳感器殘留的非線性,使其性能提高1個數(shù)量級,以實現(xiàn)精度更高的測量。在輔助I/O的協(xié)助下,還可以實現(xiàn)多種控制功能,使其更加智能化。
參考文獻
[1] AD7730/AD7730L Bridge Transducer ADC.Analog Device?Inc,1998.
[2] 周勝海.傳感器非線性的硬件校正方法[J].傳感器技術(shù),2002,21(5).
[3] 賈智偉.傳感器信號的非線性補償[J].傳感器技術(shù),2002,21(5).
[4] 朱慶保.傳感器特性曲線的自適應(yīng)分段最佳擬合及應(yīng)用[J].傳感器技術(shù),2002,21(1).
[5] 王化祥.傳感器原理及應(yīng)用(修訂版)[M].天津:天津大學(xué)出版社,1999.