基于ADuC7061的高精度PLC模擬前端設(shè)計(jì)
摘要:針對于工業(yè)PLC模擬信號的采集和輸出,本文提出了一種基于ADuC7061的高精度模擬前端設(shè)計(jì)方案。該系統(tǒng)支持雙通道的PLC模擬信號輸入并提供一路PLC標(biāo)準(zhǔn)電流輸出。該系統(tǒng)在-10~70范圍內(nèi)達(dá)到0.2%的電壓測量精度和0.2%的電流輸出精度。硬件部分以ADuC7061作為測量和控制核心,配合外圍模擬調(diào)理電路完成模擬信號的調(diào)理、檢測和輸出,并通過隔離的SPI進(jìn)行數(shù)據(jù)通信。軟件部分包括模擬信號采集轉(zhuǎn)換和通信,可以根據(jù)溫度變化自動校準(zhǔn)。本設(shè)計(jì)具有精度高,軟件靈活,接口通用的特點(diǎn),可以作為PLC模擬前端,廣泛應(yīng)用于工業(yè)現(xiàn)場。
關(guān)鍵詞:ADuC7061;模擬前端;信號調(diào)理;電流源;高精度
在工業(yè)控制系統(tǒng)中除了遇到開關(guān)量信號外,還會遇到另一類物理量,即模擬量,例如:角度、溫度、壓力、電壓、電流等等,它們都是連續(xù)變化的物理量。可編程序控制器PLC是以微處理器為基礎(chǔ)的通用工業(yè)控制裝置。傳統(tǒng)的PLC是為開關(guān)量控制而設(shè)計(jì),而現(xiàn)代的PLC已經(jīng)具備了處理模擬量的功能。在工業(yè)控制系統(tǒng)中,模擬量輸入信號的采集和處理是較為常見的控制內(nèi)容,同時(shí)根據(jù)控制策略PLC能夠輸出模擬信號。
因此從工業(yè)應(yīng)用的實(shí)際情況來看,現(xiàn)代的PLC不僅要能夠采集外部輸入的模擬信號,同時(shí)也應(yīng)有能力輸出模擬信號。并且隨著微電子技術(shù)的發(fā)展,模擬AD、DA的性能越來也高,對于模擬信號檢測的精度要求也在逐年遞增。所以本文針對這種即要采集模擬輸入又要輸出模擬量的應(yīng)用場合,提出一種高精度模擬前端的系統(tǒng)方案。
1 系統(tǒng)需求分析
常見的PLC的模擬信號有以下幾種:0~5 V,0~10 V,±5 V,±10 V,4~20 mA,信號的頻率范圍為DC~500 Hz。本系統(tǒng)的輸入能夠兼容以上5種輸入量,并提供4~20 mA輸出信號量輸出??紤]到實(shí)際應(yīng)用環(huán)境中的溫度影響,如果直接使用低溫漂高精度的模擬IC,系統(tǒng)的成本會非常高;如果采用帶有溫度自校準(zhǔn)的方案,可以選用價(jià)格更合理的模擬前端芯片完成設(shè)計(jì),但是需要額外的MCU進(jìn)行運(yùn)算和控制。信號輸
出需要額外的DAC配合調(diào)理電路實(shí)現(xiàn)。
由以上的分析可知,需要有一款即集成有高精度ADC和DAC,又帶有MCU的模擬微控制器。ADI公司的ADuC7061剛好可以滿足系統(tǒng)的需求:集成兩個(gè)獨(dú)立的的8kSPS、24位高性能多通道∑-△型模數(shù)轉(zhuǎn)換器(ADC);集成32位ARM7TDMI微控制器;片上提供一個(gè)單通道14bitDAC;集成SPI控制器。使用ADuC7061作為核心,配合外部電路可以即滿足模擬通道的精度要求,又可以實(shí)現(xiàn)靈活的數(shù)據(jù)傳輸和控制。
該方案優(yōu)點(diǎn):可以進(jìn)行溫度校正;原本的ADC,DAC和MCU只需要一塊ADuC7061即可實(shí)現(xiàn),即節(jié)約PCB面積又降低成本;對外的數(shù)據(jù)傳輸接口可以共用一個(gè)SPI,可以通過制定靈活的數(shù)據(jù)傳輸協(xié)議,實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)傳輸和控制功能。
2 總體結(jié)構(gòu)設(shè)計(jì)
該系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。系統(tǒng)與外部是電氣隔離的:通過隔離的24VDC-DC完成電源部分的隔離;通過SPI隔離驅(qū)動電路完成數(shù)據(jù)接口的電氣隔離。兩路輸入調(diào)理電路是完全一樣的,功能包括輸入信號調(diào)理和自校準(zhǔn)實(shí)現(xiàn)。系統(tǒng)的4~20 mA輸出,是將ADuC7061內(nèi)部14位DAC的輸出電壓經(jīng)過V-I轉(zhuǎn)換電路實(shí)現(xiàn)的。系統(tǒng)通過隔離的SPI與外部通信。
3 主要模塊設(shè)計(jì)
下面分別介紹系統(tǒng)主要模塊的設(shè)計(jì),分為ADuC7061核心電路、輸入調(diào)理電路和輸出V-I轉(zhuǎn)換電路。
3.1 輸入調(diào)理電路
系統(tǒng)的模擬輸入可以兼容4~20 mA電流信號,或者是0~5 V、0~10 V、±5 V和±10 V的電壓信號。其中4~20 mA電流信號可以通過并聯(lián)一個(gè)250 Ω低溫漂(25 ppm/℃)電阻負(fù)載變送為1~5 V電壓信號??紤]到ADuC7061的24位∑-△型ADC輸入電壓范圍0.1~1.8 V,所以前面提到的各種信號都要調(diào)理到0.1~1.8 V的范圍內(nèi)。在本系統(tǒng)中,采用一種基于AD8295的信號調(diào)理電路,如圖2中所示。
其中基本的信號調(diào)理功能由AD8295 IN-AMP(儀用放大器)和AD8295 A1(運(yùn)算放大器放)實(shí)現(xiàn),這個(gè)電路可以將單端和差分信號都調(diào)理成為差分信號。由于ADC也是差分輸入,輸入信號的共模量只需要電壓穩(wěn)定即可,具體分析如下:
ADuC7061集成的24位∑-△型ADC在差分輸入配置下,要求共模電壓VCOM>0.5 V,系統(tǒng)采用的共模電壓是將模擬參考2.5 V通過2個(gè)1%電阻分壓到1 V的。從上面兩個(gè)方程可以看出,無論輸入信號是差分電壓,還是單端輸入,都可以將信號轉(zhuǎn)換成為一個(gè)以1 V為基準(zhǔn)的差分電壓信號。對于系統(tǒng)輸入的0~5 V、0~10 V、±5 V和±10 V都可以通過同一個(gè)電路拓?fù)浣Y(jié)構(gòu)來實(shí)現(xiàn),考慮到精度要求,唯一需要改變的就是RG的阻值。當(dāng)RG開路,G=1,支持0~10 V和±10 V輸入;RG為49.4 kΩ,G=2,支持0~5 V和±5 V輸入。
經(jīng)過儀用放大器和運(yùn)放調(diào)理得到的信號DIFF+和DIFF-是一個(gè)以1V為基準(zhǔn),最大差分電壓可以達(dá)到10 V的差分信號。這個(gè)差分信號電壓過大,遠(yuǎn)遠(yuǎn)超過ADC輸入電壓規(guī)定的范圍。經(jīng)過圖2中由R1、R2和R3構(gòu)成的無源差分衰減器減小10倍,得到一個(gè)以1 V為基準(zhǔn),最大差分電壓為1 V的差分信號ADC_IN+和ADC_IN-,然后送給后一級的ADuC7061的ADC采集。差分信號衰減倍數(shù)計(jì)算方程為:
輸入調(diào)理電路要實(shí)現(xiàn)的另外一個(gè)重要的功能就是自動校準(zhǔn),首先需要分析輸入電壓和24位ADC輸出碼值的關(guān)系:
化簡后得到:;系統(tǒng)ADC測量得到的是CODEADC,需要得到的最終數(shù)據(jù)是CODEvin并用計(jì)算輸入電壓。
本系統(tǒng)中的電阻分壓網(wǎng)絡(luò)使信號衰減10倍,理想情況下上K=0.1,B=0。但是實(shí)際使用中,由于電阻本身的溫漂,導(dǎo)致K隨著溫度會增加。并且運(yùn)放、基準(zhǔn)源和ADC并不是理想的,同樣會有溫度漂移。但這個(gè)溫度漂移可以通過額外的溫度校正來補(bǔ)償。
AD8295 A2與SW1、SW2和SW3(注釋見圖2)一起構(gòu)成校正電路。首先將SW1切換到AGND,使AGND通過SW1和SW2連到IN+,SW3連到AGND,此時(shí)Vin=0,校準(zhǔn)零點(diǎn)漂移B記錄ADC輸出二進(jìn)制碼值記錄為B,得到:
然后將模擬參考電壓2.5 V通過A2跟隨通過SW1和SW2供給IN+,SW3切換到IN-。此時(shí)Vin=Vref,校準(zhǔn)斜率K,記錄ADC輸出二進(jìn)制碼值記錄為A,得到:
系統(tǒng)校正之后只需要保存A和B兩個(gè)整數(shù)即可,但是由于系統(tǒng)K=0.1,所以計(jì)算所得的CODEvin長度為32位。
這種校正的方案有兩個(gè)顯著的優(yōu)點(diǎn):1)校準(zhǔn)斜率過程中取輸入Vin=Vref,此時(shí)校準(zhǔn)得到的K,精度只與ADC的INL參數(shù)有關(guān),與參考電壓Vref本身的精度無關(guān),減少了校準(zhǔn)過程中引入的額外誤差:2)校準(zhǔn)的中間變量A和B都用24位二進(jìn)制整數(shù)表示,只在最后做兩次浮點(diǎn)運(yùn)算,簡化中間過程中的浮點(diǎn)預(yù)算的次數(shù),減少截?cái)嗾`差對系統(tǒng)測量結(jié)果的影響。
3.2 輸出V-I轉(zhuǎn)換電路
4~20 mA輸出電路的原理圖如圖3所示,ADuC7061的14位DAC能夠輸出0~2.5 V電壓信號,通過V-I轉(zhuǎn)換電路使輸入的0.4~2.0 V電壓信號線性變?yōu)?~20 mA電流輸出。
這個(gè)電路是從Howland電流源電路基本拓?fù)浣Y(jié)構(gòu)改進(jìn)而來的,采用Q1-2N7002代替運(yùn)放作為功率輸出,這個(gè)電路對R1~R4和RF的電阻值大小有如下要求:R1=R2=R3=R4=100 kΩ;且R1≥RF,在這種情況下可以忽略R1~R4臂上流過的電流。通過虛短和虛斷對電路分析得到:,RF=100 Ω。在此基礎(chǔ)上增加的改進(jìn)有兩點(diǎn),在電路中加入了CF和RP:其中CF用來改進(jìn)電流輸出的頻率響應(yīng)特性;RP用來平衡運(yùn)放本身的電壓偏置和電流偏置,RP大小隨著每一塊運(yùn)放芯片的電壓、電流偏置值的不同需要單獨(dú)調(diào)整。
3.3 ADuC7061核心電路
如圖4所示,作為測量和控制的核心,ADuC7061核心電路包括以下3部分:ADuC7061核心單元;外部看門狗ADM6320;隔離的SPI驅(qū)動ADuM 7441。從圖1和圖4可以看出,輸入信號調(diào)理電路作為片內(nèi)ADC的前級驅(qū)動,輸出電壓信號直接與芯片內(nèi)部的兩個(gè)獨(dú)立ADC相連。ADuC7061采用內(nèi)部的PLL使ARM內(nèi)核工作在10 MHz的頻率下。復(fù)位引腳與外部看門狗ADM6320相連,通過P2.0的定時(shí)喂狗提高系統(tǒng)運(yùn)行的可靠性,并使系統(tǒng)可靠上電復(fù)位。系統(tǒng)通過片內(nèi)SPI硬件控制器與外部通信,系統(tǒng)工作在從模式下,SPI時(shí)鐘頻率最高支持到5 M。外部通過IO控制外部模擬開關(guān)完成自動校準(zhǔn)。
4 系統(tǒng)軟件設(shè)計(jì)
由于系統(tǒng)有一個(gè)ARM7TDMI的主控ADuC7061,因此該系統(tǒng)可以實(shí)現(xiàn)比較復(fù)雜測量功能和實(shí)現(xiàn)適應(yīng)溫度變化的自動校準(zhǔn)策略。系統(tǒng)軟件分為兩個(gè)部分,測量任務(wù)和定時(shí)中斷任務(wù),任務(wù)的流程圖如圖5所示。
系統(tǒng)上電啟動之后,配置完系統(tǒng)外設(shè),然后對兩路模擬輸入通道完成自動校準(zhǔn),并將校準(zhǔn)使用到的變量保存到非易失性存儲器中。然后進(jìn)入自動測量主循環(huán)中,由于有ARM7主控,外部可以通過SPI靈活的配置每個(gè)ADC通道的參數(shù)。在本系統(tǒng)中,可以通過SPI控制通道采樣率,以提高∑-△型ADC的有效位數(shù),進(jìn)一步提高系統(tǒng)精度。系統(tǒng)的在定時(shí)器中斷時(shí)問設(shè)定為1 s,每秒鐘通過ADuC7061內(nèi)部集成的溫度傳感器測量當(dāng)前溫度,當(dāng)檢測到累計(jì)溫度變化超過閾值時(shí),通知設(shè)置校準(zhǔn)標(biāo)志位,讓系統(tǒng)在下一次測量前自動完成一次通道校準(zhǔn),實(shí)現(xiàn)對溫度的補(bǔ)償。
5 測量結(jié)果以及誤差分析
為了保證系統(tǒng)的精度,電路采用4層PCB實(shí)現(xiàn),并提供大面積的模擬地平面以降低噪聲干擾。對該系統(tǒng)的測試包括兩部分,首先是測試輸入電壓測量精度,其次是電流輸出精度。由于輸入電壓信號為DC~500 Hz信號,而且ADuC7061中的∑-△型ADC的有效位數(shù)隨著采樣頻率的降低而增加。所以為了測量系統(tǒng)的絕對誤差,將采樣率設(shè)置為1 k,輸入信號為-10~+10 V間隔1 V的直流電平,在零點(diǎn)附近增加了±0.5 V和±50 mV的電壓輸入,被測電壓基準(zhǔn)通過FLUKE5700A給出,將結(jié)果通過SPI輸出到電腦中記錄結(jié)果,進(jìn)行誤差分析,誤差測試結(jié)果如圖6所示。
可以看出系統(tǒng)自動校準(zhǔn)后,精度可以達(dá)到0.05%,達(dá)到了設(shè)計(jì)的預(yù)期。從圖6中可以看出,在輸入小電壓范圍內(nèi),系統(tǒng)的主要誤差來源是系統(tǒng)噪聲,這個(gè)噪聲直接決定小信號輸入下的系統(tǒng)精度。
4~20 mA電流輸出誤差測量中,負(fù)載電阻250 Ω,并聯(lián)負(fù)載電容10 nF。電流測量儀器使用的是普源DM3058,輸出電流設(shè)定值通過SPI發(fā)送給系統(tǒng),輸出電流誤差結(jié)果如圖7所示。
從圖7可以看出,系統(tǒng)電流輸出誤差最大為0.2%。系統(tǒng)的誤差都是正值,說明誤差是V-I變換電路中兩個(gè)臂上流經(jīng)的電流造成的,因?yàn)閮蓚€(gè)臂上流經(jīng)的電流值是輸出電流的千分之一,與誤差在同一個(gè)數(shù)量級上,雖然系統(tǒng)已經(jīng)達(dá)到了設(shè)計(jì)的目標(biāo),但是考慮到進(jìn)一步提高系統(tǒng)精度,這個(gè)誤差可以通過軟件校準(zhǔn)的方式,使用最小二乘法建立系統(tǒng)輸入輸出函數(shù)關(guān)系,可以進(jìn)一步提高精度。
6 結(jié)論
本系統(tǒng)以ADuC7061為控制核心,采用改進(jìn)的模擬調(diào)理電路,配合自動校準(zhǔn)策略,完成高精度的電壓采集功能。通過采用改進(jìn)的Howland電流源電路完成4~20mA電流輸出功能。配合外部的4線SPI完成系統(tǒng)對外通信,作為一個(gè)帶有SPI接口的PLC模擬前端,起到模擬信號采集和電流輸出的功能。該系統(tǒng)模擬測量精度高,軟件靈活,接口通用,具有很高的實(shí)用價(jià)值,不僅可以作為PLC的模擬前端,也為其他模擬前端設(shè)計(jì)提出了很有價(jià)值的參考。
評論