新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > AVR單片機在多回路數(shù)據(jù)采集器中的應(yīng)用

AVR單片機在多回路數(shù)據(jù)采集器中的應(yīng)用

作者: 時間:2012-01-09 來源:網(wǎng)絡(luò) 收藏

1 引言

AVR系列單片機[1]是ATMEL公司于1997年推出的具備高速處理能力的單片機,它采用Harvard總線結(jié)構(gòu),程序存儲器和數(shù)據(jù)存儲器分離,可對具有相同地址的程序存儲器和數(shù)據(jù)存儲器進行獨立尋址的功能。具有良好的集成性能,具備在線編程接口等功能,在自動控制、智能儀表、系統(tǒng)、家用電器等中有廣泛的應(yīng)用。

ATmega系列單片機屬于AVR中的高檔產(chǎn)品,它承襲了AT90所具有的特點,并在AT90的基礎(chǔ)上,增強了更多的接口功能,而且在省電性能、穩(wěn)定性、抗干擾性及靈活性方面都更加周全和完善。ATmega128單片機是目前ATmega系列單片機中功能最強的一個型號,最高工作頻率可達16MHZ,具有高速運行處理能力。它的芯片內(nèi)部集成了較大容量的存儲器和豐富強大的硬件接口電路,并且軟件上有效支持C高級語言及匯編語言。針對目前國內(nèi)工業(yè)電力監(jiān)控行業(yè)中多用戶的需求,研發(fā)了一種基于ATmega128單片機的多回路、高精度、快速器,主要是監(jiān)測電流、報警、狀態(tài)信息,再根據(jù)這些信息形成反饋控制信息,具備遠程操作能力,不僅可以用于新的電力監(jiān)控系統(tǒng)中,而且可以方便的取代原有網(wǎng)絡(luò)系統(tǒng)中的設(shè)備,具有廣闊的市場前景。該數(shù)據(jù)采集器的關(guān)鍵技術(shù)在于ATmega128微處理器芯片內(nèi)的硬件接口設(shè)計及AD采集處理軟件編程。

2 ATmega128單片機的主要特征及其片內(nèi)A/D轉(zhuǎn)換器

ATmega128是一款采用低功耗CMOS工藝生產(chǎn)的基于AVR RISC 結(jié)構(gòu)的8位單片機,其主要性能有:高性能、低功率的8位AVR微控制器,先進的RISC精簡指令集結(jié)構(gòu)。ATmega128單片機芯片內(nèi)集成了較大容量的非易失性程序和數(shù)據(jù)存儲器以及工作存儲器;豐富強大的外部接口性能;特殊的微控制處理器性能。其主要優(yōu)點是芯片本身自帶看門狗電路,片內(nèi)程序Flash及8通道復(fù)用的10位;通用I/O接口具有很強的驅(qū)動能力,可省去一部分驅(qū)動電路,節(jié)約了系統(tǒng)成本;附帶同步串行接口SPI,可以實現(xiàn)與PC機的聯(lián)網(wǎng)通訊功能;采用符合IEEEstd.1149.1標準的JTAG測試接口來實現(xiàn)程序的下載和系統(tǒng)的調(diào)試,因而系統(tǒng)的開發(fā)調(diào)試十分方便;即使已被應(yīng)用于現(xiàn)場,也可以隨時進行一定程序的修改。

ATmega128有一個10位的逐次比較的,ADC與一個8通道的模擬多路復(fù)用器連接,能夠?qū)σ訮ORTC口作為ADC輸入引腳的8路單端電壓輸入進行采樣。ADC包括采樣保持電路,以確保輸入電壓在ADC轉(zhuǎn)換過程中保持恒定。ADC還有一個噪聲抑制器,在休眠模式下進行A/D轉(zhuǎn)換時,應(yīng)用該特性可以降低由MCU內(nèi)核和I/O外圍設(shè)備引入的噪聲。ADC功能單元有獨立的專用模擬電源引腳AVCC供電。AVCC和VCC的電壓差別不能大于0.3V。ADC轉(zhuǎn)換的參考電源可采用芯片內(nèi)部的參考電源,或采用AVCC,也可采用外部的參考電源,外部參考電源由引腳AREF接入,同時AREF引腳外部并接一個電容來提高ADC的抗噪性能。ADC還包含一個預(yù)分頻器,可以對輸入的系統(tǒng)時鐘進行分頻,以獲得適合的ADC時鐘。一次常規(guī)的A/D轉(zhuǎn)換需要13個ADC時鐘周期,ADC為用戶提供了內(nèi)部中斷方式的處理,可以滿足實時性的要求。

近年來ATmega128單片機以優(yōu)良而穩(wěn)定的性能廣泛應(yīng)用于各種電力系統(tǒng)智能自動化儀表中。

3 多回路數(shù)據(jù)采集器的總體結(jié)構(gòu)

多回路數(shù)據(jù)采集器系統(tǒng)主要由微處理器、AD采集處理部分、參數(shù)設(shè)置、輸出單元、LED顯示和通訊接口等功能模塊組成。

考慮到模擬信號及開關(guān)量信號的數(shù)目、速度、精度的要求,系統(tǒng)結(jié)構(gòu)的精簡、成本以及今后軟硬件的升級需要,該采集器系統(tǒng)的微處理器功能模塊由ATmega128單片機來實現(xiàn)。 AD采集處理部分是本系統(tǒng)設(shè)計的關(guān)鍵部分,它需要采集8路輸入信號,每路輸入信號有:1個電流有效值(0~6A),兩個有源開關(guān)量輸入(報警信號和狀態(tài)信號輸入)。參數(shù)設(shè)置部分主要設(shè)置本設(shè)備地址和通訊波特率,可設(shè)置本設(shè)備地址范圍為1~63,通訊波特率范圍為4800~38400波特,以滿足用戶多種不同需求。這一功能由軟件編程來實現(xiàn)。輸出單元同樣有8路輸出,每路有2個開關(guān)量輸出,用繼電器提供兩個無源觸點來實現(xiàn)。為了避免外部干擾對信號影響,信號的輸入和輸出單元使用高速光電耦合電路。顯示部分用LED顯示報警信號與狀態(tài)檢測信號輸入、系統(tǒng)電源的通斷信號以及通訊信號的工作情況。通訊接口單元采用RS485接口電路,是一種RS232/RS485轉(zhuǎn)換器。該數(shù)據(jù)采集器系統(tǒng)與PC機通過采用ModBus/RTU協(xié)議實現(xiàn)通信聯(lián)網(wǎng)功能。


4 系統(tǒng)AD采集處理的實現(xiàn)

4.1 A/D轉(zhuǎn)換器的硬件接口連接

以ATmega128單片機為核心的多回路數(shù)據(jù)采集器的A/D轉(zhuǎn)換器的硬件接口電路框圖如圖1所示。ATmega128單片機的內(nèi)部資源非常豐富,有128KB的閃速存儲器可以編程,4K字節(jié)的SRAM和4K字節(jié)的EEPROM來存儲變量,一般情況下,不需要擴展外部的ROM和RAM。

系統(tǒng)的硬件制板主要分為一塊CPU主控板和八塊I/O接口板。CPU主控板主要包括八路電流信號的采集模塊、參數(shù)設(shè)置模塊、電源模塊、通訊接口模塊及JTAG接口模塊等。將八路開關(guān)量的輸入和輸出單元分別制成八塊I/O接口板,每塊I/O接口板包括兩個有源開關(guān)量信號和兩個繼電器觸點輸出信號。I/O接口板采用與CPU主控板可脫卸方式連接,主要優(yōu)點在于實際使用時可靈活選配,方便實用,節(jié)省了硬件成本,且儀器出故障時便于維修更換。

由于電力系統(tǒng)中要測量的常常是大電流,被測的電流需經(jīng)過一級變壓器后才能接入CPU主板,成為主板中電流互感器的模擬輸入信號。模擬信號經(jīng)過CD4051多路開關(guān),并由LF124四運算放大器將模擬電流小信號放大。每路的最大輸入電流允許為6A。放大后的模擬信號利用微處理器提供的內(nèi)部ADC進行模數(shù)轉(zhuǎn)換處理,并將10位轉(zhuǎn)換結(jié)果放在ADC數(shù)據(jù)寄存器ADCH和ADCL中。在連續(xù)采樣模式下,ADC連續(xù)取樣,并不斷更新ADC數(shù)據(jù)寄存器。本系統(tǒng)的關(guān)鍵技術(shù)在于八路模擬信號共用同一個放大電路,既可解決一致性問題,又可節(jié)約硬件成本。同時八路模擬輸入信號全部用模擬多路開關(guān)進行隔離,避免信號之間的相互干擾。為了確保采集的速度,需ATmega128微處理器對八路模擬信號進行連續(xù)高速巡回檢測,并在模擬多路開關(guān)切換時進行軟件消抖。由于系統(tǒng)被測交流電流變化緩慢,在組成對模擬信號的自動巡回檢測模塊時,沒有加入采樣/保持器電路。對八路模擬信號還采用數(shù)字濾波和分段線性補償?shù)溶浖夹g(shù),增強抗干擾性,使信號采樣保持在最佳線性狀態(tài),以保證測量的精確度。

所有輸入、輸出開關(guān)量信號都采用光電隔離器實現(xiàn)系統(tǒng)與現(xiàn)場信號的隔離,提高系統(tǒng)的

抗干擾能力。I/O接口板中報警和狀態(tài)信號燈工作時電源供電都為DC24V,LED顯示對報警和狀態(tài)信號有無進行實時的狀態(tài)報告。I/O接口板提供的2個繼電器觸點輸出信號,有信號輸出時,繼電器觸點將閉合。其中繼電器采用OMRON G6B-114AP,體積小,觸點允許接通的最大信號為:5A,250V(交流)或 5A ,30V(直流)。

一般微處理器本身不具備串行通信接口功能,因此,可以通過外接串行接口電路加以擴展。在采集器的通訊接口電路設(shè)計中,系統(tǒng)的通訊接口電路部分需要配備有RS485接口,接口芯片采用Sipex的工業(yè)級帶高靜電保護的芯片SP485EEN,使通信更可靠。該系統(tǒng)具備遠程操作能力,可以實現(xiàn)遠程輸入/輸出。

4.2 數(shù)據(jù)采集和AD處理的軟件實現(xiàn)

數(shù)據(jù)采集是該多回路數(shù)據(jù)采集器軟件編程部分的主要模塊,在循環(huán)執(zhí)行數(shù)據(jù)采集程序的同時,還間隔地調(diào)用了時鐘定時中斷子程序,數(shù)字濾波子程序和分段線性補償子程序等。系統(tǒng)上電執(zhí)行初始化程序,復(fù)位個端口。通過操作按鍵確定了采集系統(tǒng)時間段的初始時間之后,系統(tǒng)開始對0~7通道間隔1s時間采集一次電流值,調(diào)用數(shù)字濾波子程序進行濾波得到精確的數(shù)值。再通過數(shù)據(jù)轉(zhuǎn)換和處理后送微處理器的數(shù)據(jù)存儲器,等待PC機的讀取。

數(shù)據(jù)采集處理的實現(xiàn)采用C編輯器——ICCAVR編程,以下是系統(tǒng)查詢讀AD子程序和AD處理的部分程序。

1.查詢讀AD子程序

#define ADC_VREF_TYPE 0x00 // Read the AD conversion result

unsigned int read_adc(unsigned char adc_input)

{ ADMUX=adc_input|ADC_VREF_TYPE; // Start the AD conversion

ADCSRA|=0x40; // Wait for the AD conversion to complete

while ((ADCSRA 0x10)==0);

ADCSRA|=0x10;

return ADCW; }

2.AD處理程序

while (ad_end) // ad_end是位標志,=1表明AD轉(zhuǎn)換完畢

{ if (temp>2) //采集3組AD值

{ PORTG |=0x08; // PORTG.3=1 ; 關(guān)閉多路開關(guān)

ad_ii=ad_i;

ad_ii++;

if(ad_ii>7)ad_ii=0;

PORTF =0xF1;

PORTF |=adtondao[ad_ii]; //切換AD通道

PORTG =0XF7; /*PORTG.3=0; 打開多路開關(guān)*/

data_cl(); //本組(第三組)AD計算子程序 ad_end=0;

data[2]=adresult.adzhi;

data_cl2(); //3組AD數(shù)字濾波程序

temp=0;

ad_i=ad_ii; }

else

{ data_cl(); //計算一組AD值

ad_end=0;

data[temp-1]=adresult.adzhi; //存AD值 } }

5 結(jié)束語

ATmega128微處理器本身帶有多路10位精度的逐次比較式A/D轉(zhuǎn)換器,在該多回路數(shù)據(jù)采集器系統(tǒng)中可以顯著地降低成本。由于ATmega128的A/D轉(zhuǎn)換器轉(zhuǎn)換速度比較高,可以采取一些數(shù)字濾波算法來得到較為精確和穩(wěn)定的轉(zhuǎn)換結(jié)果。利用C語言編程,使該多回路數(shù)據(jù)采集器系統(tǒng)的硬件設(shè)計變得簡單,AD采集處理編程也容易,大大縮短了開發(fā)周期。采集器樣機經(jīng)廠家與標準0.2級電流表對照試驗,多路電流測量都已超過0.5級表的標準;由于它直接對交流信號波形進行采樣運算,因此其精度、響應(yīng)速度比采用直流采樣方法的高,而且系統(tǒng)更新、維護方便,為今后開發(fā)系列化產(chǎn)品打下了良好的基礎(chǔ)。

參考文獻:

[1]耿德根、宋建國,AVR高速嵌入式單片機原理及應(yīng)用[M],北京:北京航空航天大學(xué)出版社,2001.

[2]常廣、王毅,電力系統(tǒng)在數(shù)據(jù)采集系統(tǒng)的研制[J],微計算機信息,2003,(2):31-32.

[3]馮健、張化光,高速實時數(shù)據(jù)采集裝置及其測量方法[J],儀器儀表學(xué)報,2005,(8):256-257.

分頻器相關(guān)文章:分頻器原理
隔離器相關(guān)文章:隔離器原理


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉