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