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