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