- 相關(guān)推薦
基于AT73C500/501專用芯片組的電參量測(cè)量模塊
摘要:介紹美國(guó)Ateml公司新型專用電能量測(cè)量專用芯片組AT73C500/501的性能指標(biāo)和工作原理;給出采用此芯片組的電參數(shù)測(cè)量模塊應(yīng)用設(shè)計(jì)要點(diǎn)和抗干擾設(shè)計(jì)方法,并利用PC機(jī)編寫自動(dòng)參數(shù)校準(zhǔn)軟件,實(shí)現(xiàn)快速精確配置模塊測(cè)量系數(shù);實(shí)現(xiàn)簡(jiǎn)單通用的智能電參量測(cè)量模塊。關(guān)鍵詞:電參量測(cè)量專用芯片組AT73C500/501參數(shù)校準(zhǔn)AVR單片機(jī)
近向年來(lái),國(guó)外許多IC設(shè)計(jì)制造公司推出了系列電參量(針對(duì)工頻電網(wǎng)的電壓、電流、有功、無(wú)功、頻率等參數(shù))測(cè)量的專用芯片,如CS5460A、ADE7755、AT73C500/501等。利用它們可以方便實(shí)現(xiàn)單相、三相電能表的設(shè)計(jì),達(dá)到很高的測(cè)量精度,同時(shí)大幅降低產(chǎn)品成本。
這些不同的電參量測(cè)量芯片功能各有側(cè)重,性能各有所長(zhǎng)。我們?cè)谑褂眠@些芯片過(guò)程中,發(fā)現(xiàn)不少特殊問(wèn)題,并針對(duì)這些特點(diǎn)設(shè)計(jì)了通用的智能電參量測(cè)量模塊。本文根據(jù)實(shí)際應(yīng)用AT73C500/501過(guò)程中出現(xiàn)的問(wèn)題,對(duì)該芯片的應(yīng)用進(jìn)行了深入探討,給出相應(yīng)解決辦法;同時(shí),設(shè)計(jì)了高效的電參量測(cè)量模塊校準(zhǔn)軟件,實(shí)現(xiàn)電參量測(cè)量模塊自動(dòng)、快速生產(chǎn)調(diào)試。
圖1
1AT73C500/501芯片簡(jiǎn)介
1.1芯片性能指標(biāo)
AT73C500/C501為美國(guó)Atmel公司2000年推出的電能測(cè)量專用芯片組。其中AT73C501為A/D變換芯片用于測(cè)量前端信號(hào)采樣;AT73C500為DSP芯片,根據(jù)AT73C501的采樣數(shù)據(jù)完成電參量的計(jì)算。使用這兩種芯片配合工作測(cè)量三相電參數(shù)個(gè)有如下特點(diǎn):
*滿足IEC1036一級(jí)精度要求;
*使用外部溫度補(bǔ)償?shù)膮⒖茧娫,滿足IEC687的0.5和0.2級(jí)精度;
*測(cè)量三相有功功率、無(wú)功功率、視在功率和電能;
*測(cè)量功率因數(shù)、電網(wǎng)頻率、電壓和電流有效值;
*多相或單相運(yùn)行;
*接口靈活,具有8位微處理器接口、8位狀態(tài)輸出、8路脈沖輸出;
*支持增益和相位校準(zhǔn);
*支持低端非線性校準(zhǔn);
*啟動(dòng)電流可編程;
*最大可測(cè)帶寬1kHz;
*單+5V供電;
*校準(zhǔn)數(shù)據(jù)可以從串行EEPROM讀取,也可以由外接微處理器讀取。
1.2AT73C500/501芯片簡(jiǎn)介
AT73C501是28引腳PLCC封裝的六路Sigma-DeltaA/D變換器。AT73C501內(nèi)部包含六路16位A/D變換器、1個(gè)參考電壓發(fā)生器、1個(gè)電源電壓監(jiān)視單元和1個(gè)時(shí)鐘單元。每路A/D變換器都由高性能、過(guò)采樣的Sigma-Delta調(diào)制器和數(shù)字均分濾波器組成。
芯片的AIN1、AIN3、AIN5為電流采樣通道輸入,AIN2、AIN4、AIN6為電壓采樣通道輸入,所有六路A/D輸入都是單端輸入,簡(jiǎn)化了外圍設(shè)計(jì)。其它主要引腳有:
ACK—采樣數(shù)據(jù)輸出準(zhǔn)備好;
OX、XI—接外部晶體3.2768MHz,提供工作時(shí)鐘;
CLK—提供DSPAT73C500工作時(shí)鐘輸出;
CLKR—串行總線數(shù)據(jù)輸出時(shí)鐘;
FSR—輸出采樣的幀信號(hào);
DATA—串行總線采樣數(shù)據(jù)輸出。
AT73C500為44引腳PLCC封裝的新型電能測(cè)量專用DSP芯片,具有一個(gè)高效的數(shù)字信號(hào)處理器(DSP)內(nèi)核,DSP技術(shù)的使用,使AT73C500具有其它電能測(cè)量芯片所沒有的一些特點(diǎn)和復(fù)雜功能。主要引腳如下;
B0~B7—MCU總線;
B8~B15—狀態(tài)、工作模式總線;
IRQ1—接AT73C501的ACK,外部采樣數(shù)據(jù)中斷請(qǐng)求;
CLK—時(shí)鐘輸入,3.2768MHz;
STROBE、BRDY、RD/WR、ADDR0
、ADDR1—AT73C500和外部MCU的數(shù)據(jù)傳輸接口信號(hào);
SOUT0—時(shí)鐘輸出給外部串行EEPROM;
SOUT1—串行輸出,作為AT73C500的片選信號(hào)或外部EEPROM的數(shù)據(jù)輸入(DI);
SIN—串行數(shù)據(jù)輸入,接收AT73C501或外部EEPROM的數(shù)據(jù)輸入(DO);
SCLK—串行位時(shí)鐘輸入來(lái)自AT73C501。
2智能電參量采集模塊設(shè)計(jì)
我們?cè)O(shè)計(jì)的智能電參量采集模塊,用于低壓變壓器在線監(jiān)測(cè)設(shè)備中。測(cè)量模塊作為關(guān)鍵的臺(tái)變運(yùn)行監(jiān)測(cè)部件,要求設(shè)計(jì)成通用性強(qiáng)的采集模塊。這樣,可以方便地和現(xiàn)有的各種設(shè)備接口,擴(kuò)展現(xiàn)有設(shè)備的功能。應(yīng)具有造價(jià)低,可靠性強(qiáng),便于維護(hù)等優(yōu)點(diǎn)。針對(duì)功能需求,在綜合對(duì)比幾種電能量測(cè)量芯片的價(jià)格、性能、系統(tǒng)實(shí)現(xiàn)難易程度等幾方面的基礎(chǔ)上,我們采用AT73C500/501設(shè)計(jì)了智能電參量采集模塊。
2.1智能電參量采集模塊前端原理
電參量采集模塊前端以AT73C500/501為核心,由信號(hào)取樣電路、邏輯電路及其它元器件測(cè)量單元結(jié)構(gòu)共同組成。三相電壓信號(hào)分別使用電阻分壓器的互感器提取。被測(cè)三相電流由一次電流1.5A或6A、二次電流5mA、二次負(fù)荷20Ω的電流互感器轉(zhuǎn)化為電壓信號(hào)。
圖1為測(cè)量采集模塊原理。
選擇AT73C500的工作模式時(shí),由于校準(zhǔn)數(shù)據(jù)直接影響測(cè)量精度,而且每次復(fù)位后AT73C500都要重新讀入校準(zhǔn)數(shù)據(jù),如果AT73C500使用微處理器模式,導(dǎo)入校準(zhǔn)數(shù)據(jù)的握手協(xié)議過(guò)于復(fù)雜,需要單片機(jī)軟件干預(yù);因此從可靠性角度考慮,AT73C500被設(shè)置成EEPROM模式,將校準(zhǔn)數(shù)據(jù)從EEPROMAT93C46中讀出,同時(shí),單片機(jī)也能對(duì)AT93C46內(nèi)的校準(zhǔn)數(shù)據(jù)讀寫。
前端測(cè)量電路工作流程:上電復(fù)位后,單片機(jī)對(duì)AT73C500復(fù)位,然后AT73C500進(jìn)行初始化工作。首先將RD/WR寫高,狀態(tài)/模式總線上的四個(gè)三態(tài)門被選通,AT73C500通過(guò)BUS12至BUS15讀入模式信息。在判斷工作模式為EEPROM模式后,AT73C500向狀態(tài)/模式總線的最低位(BUS8)寫低電平,經(jīng)邏輯譯碼電路(GAL20V8)后產(chǎn)生初始化信號(hào)CS1。CS1信號(hào)選通串行EEPROMAT93C46,AT73C500讀出存儲(chǔ)在AT93C46中的校準(zhǔn)數(shù)據(jù)。校準(zhǔn)數(shù)據(jù)讀出以后,AT73C500向BUS8寫高電平,經(jīng)鎖存后CS1變成高電平,初始化階段結(jié)束,測(cè)量單元開始正常的測(cè)量工作。AT73C501開始通過(guò)同步串行總線向AT73C500傳送采樣結(jié)果。
AT73C500的計(jì)算結(jié)果有兩種輸出方式:一種是以數(shù)據(jù)的形式輸出,另一種是以脈沖的形式輸出。兩種方式共和數(shù)據(jù)總線,因此使用邏輯譯碼電路(GAL20V8)區(qū)分。當(dāng)有一包數(shù)據(jù)要輸出時(shí),AT73C500向狀態(tài)總線的BUS9寫高電平脈沖,經(jīng)鎖存后產(chǎn)生數(shù)據(jù)就緒信號(hào)DATRDY。DATRDY信號(hào)用于智能外接單片機(jī)線上數(shù)據(jù)就緒,此時(shí)ADDR0為低電平,無(wú)脈沖輸出。數(shù)據(jù)輸出結(jié)束后,DATRDY變?yōu)榈碗娖。?shù)據(jù)總線輸出脈沖時(shí),DATRDY始終為低電平;同時(shí),DR/WR為低電平,ADDR0為高電平。
2.2AT73C500數(shù)據(jù)采集接口單元設(shè)計(jì)
2.2.1單片機(jī)選型
對(duì)智能電參量采集模塊的各項(xiàng)數(shù)據(jù)進(jìn)一步加工處理和與外部通信等功能,一般要由單片機(jī)來(lái)完成。前端測(cè)量單元的測(cè)量結(jié)果由AT73C500的數(shù)據(jù)總線送出。AT73C500的數(shù)據(jù)總線為并行總線?偩上數(shù)據(jù)傳輸速度非常快,其中鎖存信號(hào)STROBE的脈寬僅為153ns。基于速度、成本上的考慮,選用美國(guó)Atmel公司的精簡(jiǎn)指令集(RISC)AVR單片機(jī)AT90S8535實(shí)現(xiàn)接口單元的功能。AT90S8535內(nèi)部有8KBFlash程序存儲(chǔ)器,512BSRAM,使用8MHz的晶振,每條指令的執(zhí)行時(shí)間僅為125ns。
2.2.2接口邏輯控制電路
由于AT73C500/501有多種工作模式和數(shù)據(jù)傳輸方式,同時(shí)系統(tǒng)有1片EEPROMAT93C46存儲(chǔ)器,保存校準(zhǔn)參數(shù)信息。AT93C46必須能夠由單片機(jī)讀寫,還要能由AT73C500讀取系數(shù)?紤]到還有其它的復(fù)雜數(shù)據(jù)控制接口信號(hào),因此,采用1片PLDGAL20V8實(shí)現(xiàn)復(fù)雜邏輯功能和數(shù)據(jù)、地址譯碼。圖2為接口邏輯控制電路。
2.2.3單片機(jī)數(shù)據(jù)采集接口單元
測(cè)量單元的測(cè)量結(jié)果通過(guò)并行數(shù)據(jù)總線高速輸出,因此,如何準(zhǔn)確及時(shí)地接收總線上的數(shù)據(jù)是接口單元要解決的首要問(wèn)題。
AT73C500數(shù)據(jù)總線時(shí)序中有兩個(gè)不利于數(shù)據(jù)接收的問(wèn)題。
AT73C500數(shù)據(jù)總線時(shí)序中有兩個(gè)不利于數(shù)據(jù)接收的問(wèn)題。
一是數(shù)據(jù)寫到總線選通STROBE信號(hào)低電平寬度太窄,不利于單片機(jī)捕捉。這個(gè)問(wèn)題即使使用了AVR單片機(jī)依然不能忽視。如果AT90S8535采用查詢普通I/O口的辦法捕捉STROBE脈沖,查詢一次至少要執(zhí)行兩個(gè)單周期指令或執(zhí)行一條兩周期指令,執(zhí)行時(shí)間最少為250ns,超過(guò)了STROBE低電平的寬度(153ns),因此丟失數(shù)據(jù)的可能性非常大。為了準(zhǔn)確地捕捉STROBE信號(hào),該信號(hào)被連接到AT90S8535外中斷0的輸入引腳(1NT0)。當(dāng)INT0引腳上的STROBE信號(hào)觸發(fā)了INT0中斷請(qǐng)求時(shí),通用中斷標(biāo)志寄存器GIFR中的INTF0位被置1,AT90S8535通過(guò)查詢INTF0位,判斷是否出現(xiàn)STROBE信號(hào)。使用這種方法STROBE
低電平狀態(tài)由單片機(jī)硬件捕捉,不存在丟失STROBE事件的可能性,只要在下一次中斷申請(qǐng)出現(xiàn)以前將INTF0位清除即可。
圖3
另一個(gè)不利于數(shù)據(jù)接收的問(wèn)題是,兩個(gè)STROBE信號(hào)之間的時(shí)間過(guò)短,最短時(shí)間間隔只有11個(gè)時(shí)鐘周期(3.2768MHz)。針對(duì)這種情況,考慮到數(shù)據(jù)包有效時(shí)的信號(hào)DATARDY可以利用,將DATARDY接到INT1引腳,利用DATARDY和STROBE的關(guān)系,進(jìn)行數(shù)據(jù)接收,硬件連接如圖3所示。
3智能電參量采集模塊軟件設(shè)計(jì)
電參量采集模塊軟件主要是單片機(jī)AT90S8535的控制軟件。軟件主要的功能是完成對(duì)AT73C500/501的配置,測(cè)量數(shù)據(jù)的處理;同時(shí),利用外部通信接口傳輸采集的數(shù)據(jù),響應(yīng)外部設(shè)備的各種查詢,校準(zhǔn)數(shù)據(jù)設(shè)置操作。程序設(shè)計(jì)的難點(diǎn)在于對(duì)AT73C500測(cè)量數(shù)據(jù)的采集。
采集程序初始化時(shí),只允許INT1中斷(由數(shù)據(jù)包準(zhǔn)備好標(biāo)志DATARDY觸發(fā))。當(dāng)DATARDY有效,進(jìn)入INT1中斷時(shí),在中斷內(nèi)允許INT0中斷(由數(shù)據(jù)寫到總線選通STROBE信號(hào)觸發(fā))。這樣,在INT1中斷程序內(nèi),查詢到STROBE引起的中斷有效標(biāo)志INTF0后,馬上讀出AT73C500寫到總線的數(shù)據(jù)。然后,清除INTF0,等待接收下個(gè)數(shù)據(jù),直到把1個(gè)完整數(shù)據(jù)包16個(gè)字節(jié)全部接收完成,再退出INT1中斷。由于每包數(shù)據(jù)之間有至少20ms的間隔時(shí)間可供AT90S8535處理,這樣接收完成1包數(shù)據(jù)后,在20ms的時(shí)間內(nèi)由AT90S8535完成對(duì)包數(shù)據(jù)的分析,依次完成6包數(shù)據(jù)的接收處理。
關(guān)鍵的數(shù)據(jù)包中斷接收代碼程序如下:
interrupt[EXT_INT1]voidext_int1_isr(void)
{
#asm("cli")//禁止所有中斷
CIMSK=0x40;//禁止int1,允許int0
strobe1:
if(GIFR==0)gotostrobe1;//等待第1個(gè)數(shù)據(jù)選通信號(hào)有效
temp_pack0=PINB;//syncls讀出同步數(shù)據(jù)1
GIFR=0xc0;BRDY=0;
strobe2:
if(GIFR==0)gotostrobe2;//等待第2個(gè)數(shù)據(jù)選通信號(hào)有效
temp_pack1=PINB;//syncms讀出同步數(shù)據(jù)2
GIFR=0xc0;BRDY=0;
…………
strobe16:
if(GIFR==0)gotostrobe16;//等待第16個(gè)數(shù)據(jù)選通信號(hào)有效
temp_pack15=PINB;
BRDY=0;GIMSK=0x80;GIFR=0xc0;//讀寫16個(gè)字節(jié),完成1包數(shù)據(jù)接收
#asm("sei")
}
在設(shè)計(jì)調(diào)試電參量測(cè)量模塊過(guò)程中發(fā)現(xiàn)很多問(wèn)題。最嚴(yán)重的問(wèn)題是在測(cè)量過(guò)程中,當(dāng)在AT73C501信號(hào)輸入端出現(xiàn)電壓類峰脈沖干擾時(shí),AT73C500/501芯片組出現(xiàn)死機(jī)現(xiàn)象。具體表現(xiàn)為AT73C500不再向數(shù)據(jù)總線發(fā)送測(cè)量數(shù)據(jù)。同時(shí)AT73C501迅速升沿發(fā)燙,而此時(shí)芯片組的復(fù)位控制信號(hào)不再起作用,單片機(jī)無(wú)法控制AT73C500/501;只有模塊停電,再上電之后,才能恢復(fù)正常工作。這種故障在實(shí)際的工業(yè)控制中是必須要解決的。
針對(duì)此現(xiàn)象,我們經(jīng)過(guò)反復(fù)實(shí)驗(yàn),采用軟件和硬件相結(jié)合的辦法,圓滿解決了這個(gè)問(wèn)題。
硬件方面:
*在模塊的供電電源上串接電源濾波器,消除從電源側(cè)引入的干擾;
*AT73C501的6路單端A/D輸入端接入EMI磁珠,同時(shí)輸入端并接雙向肖特基保護(hù)管,對(duì)輸入的超出輸入范圍的信號(hào)限幅,保護(hù)內(nèi)部電路;
*AT73C500/501芯片組的供電由晶體管電子開關(guān)控制,在發(fā)生故障時(shí),可由單片機(jī)及時(shí)切斷電路,實(shí)現(xiàn)重新上電。
軟件方面:
*增加軟件看門狗,由AT73C500的數(shù)據(jù)包傳輸中斷不斷清除,一旦出現(xiàn)故障,沒有數(shù)據(jù)包傳輸中斷,則看門狗復(fù)位系統(tǒng);
*軟件對(duì)采集的數(shù)據(jù)進(jìn)行合理性分析,出現(xiàn)異常非法測(cè)量數(shù)據(jù)時(shí),復(fù)位AT73C500/501芯片組;
*軟件定時(shí)對(duì)AT73C500的校準(zhǔn)參數(shù)進(jìn)行重裝載,防止AT73C500內(nèi)部寄存器校準(zhǔn)系統(tǒng)系數(shù)失效。
采用以上措施,使電參量測(cè)量模塊的可靠性大大提高。使因此測(cè)量模塊的現(xiàn)場(chǎng)安裝運(yùn)行的臺(tái)變監(jiān)測(cè)設(shè)備運(yùn)行年1來(lái)年,穩(wěn)定可靠,獲得用戶好評(píng)。
【基于AT73C500/501專用芯片組的電參量測(cè)量模塊】相關(guān)文章:
氣體的狀態(tài)參量08-17
基于DSP的擴(kuò)頻電臺(tái)基帶模塊的設(shè)計(jì)與實(shí)現(xiàn)08-06
基于PLD的嵌入式系統(tǒng)外存模塊設(shè)計(jì)08-06
基于AMBE-2000的多速率語(yǔ)音通信終端模塊08-06
基于Rocket I/O模塊的高速工I/O設(shè)計(jì)04-12
基于MSC1210的多路高精度溫度采集系統(tǒng)模塊08-06