新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 基于AT73C500/501專用芯片組的電參量測量模塊

基于AT73C500/501專用芯片組的電參量測量模塊

作者: 時間:2004-12-06 來源:網(wǎng)絡(luò) 收藏
摘要:介紹美國Ateml公司新型電能量的性能指標(biāo)和工作原理;給出采用此的電參數(shù)應(yīng)用設(shè)計要點和抗干擾設(shè)計方法,并利用PC機(jī)編寫自動參數(shù)校準(zhǔn)軟件,實現(xiàn)快速精確配置系數(shù);實現(xiàn)簡單通用的智能電測量。

關(guān)鍵詞:測量 參數(shù)校準(zhǔn) AVR單片機(jī)

近向年來,國外許多IC設(shè)計制造公司推出了系列電(針對工頻電網(wǎng)的電壓、電流、有功、無功、頻率等參數(shù))測量的專用芯片,如CS5460A、ADE7755、等。利用它們可以方便實現(xiàn)單相、三相電能表的設(shè)計,達(dá)到很高的測量精度,同時大幅降低產(chǎn)品成本。

這些不同的電參量測量芯片功能各有側(cè)重,性能各有所長。我們在使用這些芯片過程中,發(fā)現(xiàn)不少特殊問題,并針對這些特點設(shè)計了通用的智能電參量測量模塊。本文根據(jù)實際應(yīng)用AT73C500/501過程中出現(xiàn)的問題,對該芯片的應(yīng)用進(jìn)行了深入探討,給出相應(yīng)解決辦法;同時,設(shè)計了高效的電參量測量模塊校準(zhǔn)軟件,實現(xiàn)電參量測量模塊自動、快速生產(chǎn)調(diào)試。

圖1

1 AT73C500/501芯片簡介

1.1 芯片性能指標(biāo)

AT73C500/C501為美國Atmel公司2000年推出的電能測量專用芯片組。其中AT73C501為A/D變換芯片用于測量前端信號采樣;AT73C500為DSP芯片,根據(jù)AT73C501的采樣數(shù)據(jù)完成電參量的計算。使用這兩種芯片配合工作測量三相電參數(shù)個有如下特點:

*滿足IEC1036一級精度要求;

*使用外部溫度補(bǔ)償?shù)膮⒖茧娫?,滿足IEC687的0.5和0.2級精度;

*測量三相有功功率、無功功率、視在功率和電能;

*測量功率因數(shù)、電網(wǎng)頻率、電壓和電流有效值;

*多相或單相運行;

*接口靈活,具有8位微處理器接口、8位狀態(tài)輸出、8路脈沖輸出;

*支持增益和相位校準(zhǔn);

*支持低端非線性校準(zhǔn);

*啟動電流可編程;

*最大可測帶寬1kHz;

*單+5V供電;

*校準(zhǔn)數(shù)據(jù)可以從串行EEPROM讀取,也可以由外接微處理器讀取。

1.2 AT73C500/501芯片簡介

AT73C501是28引腳PLCC封裝的六路Sigma-Delta A/D變換器。AT73C501內(nèi)部包含六路16位A/D變換器、1個參考電壓發(fā)生器、1個電源電壓監(jiān)視單元和1個時鐘單元。每路A/D變換器都由高性能、過采樣的Sigma-Delta調(diào)制器和數(shù)字均分濾波器組成。

芯片的AIN1、AIN3、AIN5為電流采樣通道輸入,AIN2、AIN4、AIN6為電壓采樣通道輸入,所有六路A/D輸入都是單端輸入,簡化了外圍設(shè)計。其它主要引腳有:

ACK―采樣數(shù)據(jù)輸出準(zhǔn)備好;

OX、XI―接外部晶體3.2768MHz,提供工作時鐘;

CLK―提供DSP AT73C500工作時鐘輸出;

CLKR―串行總線數(shù)據(jù)輸出時鐘;

FSR―輸出采樣的幀信號;

DATA―串行總線采樣數(shù)據(jù)輸出。

AT73C500為44引腳PLCC封裝的新型電能測量專用DSP芯片,具有一個高效的數(shù)字信號處理器(DSP)內(nèi)核,DSP技術(shù)的使用,使AT73C500具有其它電能測量芯片所沒有的一些特點和復(fù)雜功能。主要引腳如下;

B0~B7―MCU總線;

B8~B15―狀態(tài)、工作模式總線;

IRQ1―接AT73C501的ACK,外部采樣數(shù)據(jù)中斷請求;

CLK―時鐘輸入,3.2768MHz;

STROBE、BRDY、RD/WR、ADDR0、ADDR1―AT73C500和外部MCU的數(shù)據(jù)傳輸接口信號;

SOUT0―時鐘輸出給外部串行EEPROM;

SOUT1―串行輸出,作為AT73C500的片選信號或外部EEPROM的數(shù)據(jù)輸入(DI);

SIN―串行數(shù)據(jù)輸入,接收AT73C501或外部EEPROM的數(shù)據(jù)輸入(DO);

SCLK―串行位時鐘輸入來自AT73C501。

2 智能電參量采集模塊設(shè)計

我們設(shè)計的智能電參量采集模塊,用于低壓變壓器在線監(jiān)測設(shè)備中。測量模塊作為關(guān)鍵的臺變運行監(jiān)測部件,要求設(shè)計成通用性強(qiáng)的采集模塊。這樣,可以方便地和現(xiàn)有的各種設(shè)備接口,擴(kuò)展現(xiàn)有設(shè)備的功能。應(yīng)具有造價低,可靠性強(qiáng),便于維護(hù)等優(yōu)點。針對功能需求,在綜合對比幾種電能量測量芯片的價格、性能、系統(tǒng)實現(xiàn)難易程度等幾方面的基礎(chǔ)上,我們采用AT73C500/501設(shè)計了智能電參量采集模塊。

2.1 智能電參量采集模塊前端原理

電參量采集模塊前端以AT73C500/501為核心,由信號取樣電路、邏輯電路及其它元器件測量單元結(jié)構(gòu)共同組成。三相電壓信號分別使用電阻分壓器的互感器提取。被測三相電流由一次電流1.5A或6A、二次電流5mA、二次負(fù)荷20Ω的電流互感器轉(zhuǎn)化為電壓信號。

圖1為測量采集模塊原理。

選擇AT73C500的工作模式時,由于校準(zhǔn)數(shù)據(jù)直接影響測量精度,而且每次復(fù)位后AT73C500都要重新讀入校準(zhǔn)數(shù)據(jù),如果AT73C500使用微處理器模式,導(dǎo)入校準(zhǔn)數(shù)據(jù)的握手協(xié)議過于復(fù)雜,需要單片機(jī)軟件干預(yù);因此從可靠性角度考慮,AT73C500被設(shè)置成EEPROM模式,將校準(zhǔn)數(shù)據(jù)從EEPROM AT93C46中讀出,同時,單片機(jī)也能對AT93C46內(nèi)的校準(zhǔn)數(shù)據(jù)讀寫。

前端測量電路工作流程:上電復(fù)位后,單片機(jī)對AT73C500復(fù)位,然后AT73C500進(jìn)行初始化工作。首先將RD/WR寫高,狀態(tài)/模式總線上的四個三態(tài)門被選通,AT73C500通過BUS12至BUS15讀入模式信息。在判斷工作模式為EEPROM模式后,AT73C500向狀態(tài)/模式總線的最低位(BUS8)寫低電平,經(jīng)邏輯譯碼電路(GAL20V8)后產(chǎn)生初始化信號CS1。CS1信號選通串行EEPROM AT93C46,AT73C500讀出存儲在AT93C46中的校準(zhǔn)數(shù)據(jù)。校準(zhǔn)數(shù)據(jù)讀出以后,AT73C500向BUS8寫高電平,經(jīng)鎖存后CS1變成高電平,初始化階段結(jié)束,測量單元開始正常的測量工作。AT73C501開始通過同步串行總線向AT73C500傳送采樣結(jié)果。

AT73C500的計算結(jié)果有兩種輸出方式:一種是以數(shù)據(jù)的形式輸出,另一種是以脈沖的形式輸出。兩種方式共和數(shù)據(jù)總線,因此使用邏輯譯碼電路(GAL20V8)區(qū)分。當(dāng)有一包數(shù)據(jù)要輸出時,AT73C500向狀態(tài)總線的BUS9寫高電平脈沖,經(jīng)鎖存后產(chǎn)生數(shù)據(jù)就緒信號DATRDY。DATRDY信號用于智能外接單片機(jī)線上數(shù)據(jù)就緒,此時ADDR0為低電平,無脈沖輸出。數(shù)據(jù)輸出結(jié)束后,DATRDY變?yōu)榈碗娖?。?shù)據(jù)總線輸出脈沖時,DATRDY始終為低電平;同時,DR/WR為低電平,ADDR0為高電平。

2.2 AT73C500數(shù)據(jù)采集接口單元設(shè)計

2.2.1 單片機(jī)選型

對智能電參量采集模塊的各項數(shù)據(jù)進(jìn)一步加工處理和與外部通信等功能,一般要由單片機(jī)來完成。前端測量單元的測量結(jié)果由AT73C500的數(shù)據(jù)總線送出。AT73C500的數(shù)據(jù)總線為并行總線。總線上數(shù)據(jù)傳輸速度非??欤渲墟i存信號STROBE的脈寬僅為153ns。速度、成本上的考慮,選用美國Atmel公司的精簡指令集(RISC)AVR單片機(jī)AT90S8535實現(xiàn)接口單元的功能。AT90S8535內(nèi)部有8KB Flash程序存儲器,512B SRAM,使用8MHz的晶振,每條指令的執(zhí)行時間僅為125ns。

2.2.2 接口邏輯控制電路

由于AT73C500/501有多種工作模式和數(shù)據(jù)傳輸方式,同時系統(tǒng)有1片EEPROM AT93C46存儲器,保存校準(zhǔn)參數(shù)信息。AT93C46必須能夠由單片機(jī)讀寫,還要能由AT73C500讀取系數(shù)??紤]到還有其它的復(fù)雜數(shù)據(jù)控制接口信號,因此,采用1片PLD GAL20V8實現(xiàn)復(fù)雜邏輯功能和數(shù)據(jù)、地址譯碼。圖2為接口邏輯控制電路。

2.2.3 單片機(jī)數(shù)據(jù)采集接口單元

測量單元的測量結(jié)果通過并行數(shù)據(jù)總線高速輸出,因此,如何準(zhǔn)確及時地接收總線上的數(shù)據(jù)是接口單元要解決的首要問題。

AT73C500數(shù)據(jù)總線時序中有兩個不利于數(shù)據(jù)接收的問題。

AT73C500數(shù)據(jù)總線時序中有兩個不利于數(shù)據(jù)接收的問題。

一是數(shù)據(jù)寫到總線選通STROBE信號低電平寬度太窄,不利于單片機(jī)捕捉。這個問題即使使用了AVR單片機(jī)依然不能忽視。如果AT90S8535采用查詢普通I/O口的辦法捕捉STROBE脈沖,查詢一次至少要執(zhí)行兩個單周期指令或執(zhí)行一條兩周期指令,執(zhí)行時間最少為250ns,超過了STROBE低電平的寬度(153ns),因此丟失數(shù)據(jù)的可能性非常大。為了準(zhǔn)確地捕捉STROBE信號,該信號被連接到AT90S8535外中斷0的輸入引腳(1NT0)。當(dāng)INT0引腳上的STROBE信號觸發(fā)了INT0中斷請求時,通用中斷標(biāo)志寄存器GIFR中的INTF0位被置1,AT90S8535通過查詢INTF0位,判斷是否出現(xiàn)STROBE信號。使用這種方法STROBE低電平狀態(tài)由單片機(jī)硬件捕捉,不存在丟失STROBE事件的可能性,只要在下一次中斷申請出現(xiàn)以前將INTF0位清除即可。

圖3

另一個不利于數(shù)據(jù)接收的問題是,兩個STROBE信號之間的時間過短,最短時間間隔只有11個時鐘周期(3.2768MHz)。針對這種情況,考慮到數(shù)據(jù)包有效時的信號DATARDY可以利用,將DATARDY接到INT1引腳,利用DATARDY和STROBE的關(guān)系,進(jìn)行數(shù)據(jù)接收,硬件連接如圖3所示。

3 智能電參量采集模塊軟件設(shè)計

電參量采集模塊軟件主要是單片機(jī)AT90S8535的控制軟件。軟件主要的功能是完成對AT73C500/501的配置,測量數(shù)據(jù)的處理;同時,利用外部通信接口傳輸采集的數(shù)據(jù),響應(yīng)外部設(shè)備的各種查詢,校準(zhǔn)數(shù)據(jù)設(shè)置操作。程序設(shè)計的難點在于對AT73C500測量數(shù)據(jù)的采集。

采集程序初始化時,只允許INT1中斷(由數(shù)據(jù)包準(zhǔn)備好標(biāo)志DATARDY觸發(fā))。當(dāng)DATARDY有效,進(jìn)入INT1中斷時,在中斷內(nèi)允許INT0中斷(由數(shù)據(jù)寫到總線選通STROBE信號觸發(fā))。這樣,在INT1中斷程序內(nèi),查詢到STROBE引起的中斷有效標(biāo)志INTF0后,馬上讀出AT73C500寫到總線的數(shù)據(jù)。然后,清除INTF0,等待接收下個數(shù)據(jù),直到把1個完整數(shù)據(jù)包16個字節(jié)全部接收完成,再退出INT1中斷。由于每包數(shù)據(jù)之間有至少20ms的間隔時間可供AT90S8535處理,這樣接收完成1包數(shù)據(jù)后,在20ms的時間內(nèi)由AT90S8535完成對包數(shù)據(jù)的分析,依次完成6包數(shù)據(jù)的接收處理。

關(guān)鍵的數(shù)據(jù)包中斷接收代碼程序如下:

interrupt[EXT_INT1]void ext_int1_isr(void)

{

#asm("cli") //禁止所有中斷

CIMSK=0x40; //禁止int1,允許int0

strobe1:

if(GIFR==0)goto strobe1;//等待第1個數(shù)據(jù)選通信號有效

temp_pack0=PINB; //syncls讀出同步數(shù)據(jù)1

GIFR=0xc0;BRDY=0;

strobe2:

if(GIFR==0)goto strobe2;//等待第2個數(shù)據(jù)選通信號有效

temp_pack1=PINB; //syncms讀出同步數(shù)據(jù)2

GIFR=0xc0;BRDY=0;

…………

strobe16:

if(GIFR==0)goto strobe16;//等待第16個數(shù)據(jù)選通信號有效

temp_pack15=PINB;

BRDY=0;GIMSK=0x80;GIFR=0xc0;//讀寫16個字節(jié),完成1包數(shù)據(jù)接收

#asm("sei")

}

在設(shè)計調(diào)試電參量測量模塊過程中發(fā)現(xiàn)很多問題。最嚴(yán)重的問題是在測量過程中,當(dāng)在AT73C501信號輸入端出現(xiàn)電壓類峰脈沖干擾時,AT73C500/501芯片組出現(xiàn)死機(jī)現(xiàn)象。具體表現(xiàn)為AT73C500不再向數(shù)據(jù)總線發(fā)送測量數(shù)據(jù)。同時AT73C501迅速升沿發(fā)燙,而此時芯片組的復(fù)位控制信號不再起作用,單片機(jī)無法控制AT73C500/501;只有模塊停電,再上電之后,才能恢復(fù)正常工作。這種故障在實際的工業(yè)控制中是必須要解決的。

針對此現(xiàn)象,我們經(jīng)過反復(fù)實驗,采用軟件和硬件相結(jié)合的辦法,圓滿解決了這個問題。

硬件方面:

*在模塊的供電電源上串接電源濾波器,消除從電源側(cè)引入的干擾;

*AT73C501的6路單端A/D輸入端接入EMI磁珠,同時輸入端并接雙向肖特基保護(hù)管,對輸入的超出輸入范圍的信號限幅,保護(hù)內(nèi)部電路;

*AT73C500/501芯片組的供電由晶體管電子開關(guān)控制,在發(fā)生故障時,可由單片機(jī)及時切斷電路,實現(xiàn)重新上電。

軟件方面:

*增加軟件看門狗,由AT73C500的數(shù)據(jù)包傳輸中斷不斷清除,一旦出現(xiàn)故障,沒有數(shù)據(jù)包傳輸中斷,則看門狗復(fù)位系統(tǒng);

*軟件對采集的數(shù)據(jù)進(jìn)行合理性分析,出現(xiàn)異常非法測量數(shù)據(jù)時,復(fù)位AT73C500/501芯片組;

*軟件定時對AT73C500的校準(zhǔn)參數(shù)進(jìn)行重裝載,防止AT73C500內(nèi)部寄存器校準(zhǔn)系統(tǒng)系數(shù)失效。

采用以上措施,使電參量測量模塊的可靠性大大提高。使因此測量模塊的現(xiàn)場安裝運行的臺變監(jiān)測設(shè)備運行年1來年,穩(wěn)定可靠,獲得用戶好評。

電能表相關(guān)文章:電能表原理


評論


相關(guān)推薦

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

關(guān)閉