摘? 要: 給出了以AVR微控制器" title="微控制器">微控制器為核心的電力機(jī)車" title="電力機(jī)車">電力機(jī)車智能輔保系統(tǒng)的設(shè)計(jì)方案,并介紹了系統(tǒng)硬件及軟件的具體實(shí)現(xiàn)方法。
關(guān)鍵詞: 智能輔保系統(tǒng)? AVR微控制器? 硬件? 軟件
?
電氣機(jī)車輔助系統(tǒng)中有劈相機(jī)、空氣壓縮機(jī)、通風(fēng)機(jī)及制動(dòng)風(fēng)機(jī)等各種類型的電機(jī)。運(yùn)行中為了防止出現(xiàn)短路、過(guò)流" title="過(guò)流">過(guò)流等異常情況而燒毀電機(jī),通常配置輔助保護(hù)系統(tǒng),起到及時(shí)監(jiān)測(cè)電機(jī)故障并加以處理的作用。目前電力機(jī)車上安裝的輔保系統(tǒng)都是模擬電路裝置,系統(tǒng)硬件復(fù)雜,又不方便司機(jī)使用和維修。因此,設(shè)計(jì)一種實(shí)時(shí)性高、性能可靠的智能輔保系統(tǒng)替代原有的模擬電路裝置勢(shì)在必行。本文將介紹筆者開發(fā)的用于韶山型電力機(jī)車的智能輔助保護(hù)系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)。
1 系統(tǒng)的主要功能與設(shè)計(jì)思想
1.1 系統(tǒng)的主要功能
(1)輔機(jī)保護(hù)功能,即在機(jī)車運(yùn)行過(guò)程中,對(duì)輔助系統(tǒng)內(nèi)的各電機(jī)出現(xiàn)的短路故障能及時(shí)給出故障狀態(tài)顯示,在規(guī)定的持續(xù)時(shí)間內(nèi),故障若不消失,對(duì)該電機(jī)能夠?qū)崿F(xiàn)二次保護(hù)控制。
(2)機(jī)車輔助系統(tǒng)內(nèi)的各電機(jī)若出現(xiàn)了過(guò)流或單相故障,能及時(shí)給出相應(yīng)故障狀態(tài)顯示。在規(guī)定的過(guò)流或單相故障持續(xù)時(shí)間內(nèi),檢測(cè)其故障是否消失,如果故障一直未消失,對(duì)該電機(jī)進(jìn)行一次保護(hù)控制。
(3)在對(duì)電機(jī)一次保護(hù)后的規(guī)定時(shí)間內(nèi),若電機(jī)故障仍然未消除,則立即控制主接觸器" title="接觸器">接觸器斷開,實(shí)現(xiàn)對(duì)該電機(jī)的二次保護(hù)控制。
(4)輔助系統(tǒng)的劈相電機(jī)出現(xiàn)啟動(dòng)電阻甩不開的故障時(shí),能夠控制主接觸器斷開,以實(shí)現(xiàn)對(duì)該電機(jī)的二次保護(hù)。
(5)在啟動(dòng)輔助系統(tǒng)各電機(jī)之前,能夠進(jìn)行檢查系統(tǒng)狀態(tài)顯示、輸出控制等功能的實(shí)驗(yàn),確保系統(tǒng)硬件電路的安全性及可靠性。
(6)對(duì)輔助系統(tǒng)各電機(jī)進(jìn)行實(shí)時(shí)故障檢測(cè)的各故障持續(xù)的延時(shí)時(shí)間可以根據(jù)實(shí)際情況進(jìn)行相應(yīng)調(diào)整,但不影響系統(tǒng)功能。
1.2 系統(tǒng)的設(shè)計(jì)思想
以高檔微控制器為核心構(gòu)成智能化輔保系統(tǒng),符合電力機(jī)車發(fā)展的方向,既可充分發(fā)揮軟件的功能,又能簡(jiǎn)化硬件構(gòu)成,無(wú)論在功能上還是在可靠性及安全性上,都可完全替代目前廣泛使用的模擬電路輔保裝置。
1.2.1 系統(tǒng)的微控制器芯片AT90S8535
美國(guó)ATMEL公司推出的90系列單片機(jī)是增強(qiáng)RISC內(nèi)載Flash的高性能八位單片機(jī),通稱為AVR 單片機(jī)[1~2],設(shè)計(jì)上采用低功耗CMOS技術(shù),而且在軟件上有效支持C高級(jí)語(yǔ)言(用IAR系統(tǒng)的ICC90C編譯器編譯)及匯編語(yǔ)言(用AVR匯編器編譯)。
其中,AT90S8535是功能較強(qiáng)的一種型號(hào),它有40引腳PDIP和44引腳PLCC、TQFP等多種封裝形式,具有以下主要特征:
(1)其片內(nèi)帶有一個(gè)8通道的A/D" title="A/D">A/D轉(zhuǎn)換器及一個(gè)模擬比較器。
(2)兩個(gè)帶預(yù)分頻及比較模式的8位定時(shí)器/計(jì)數(shù)器T/C0、T/C1;一個(gè)16位的帶預(yù)分頻及比較模式、捕獲模式及雙工8位、9位或10位的PWM輸出的定時(shí)器/計(jì)數(shù)器T/C1;而且定時(shí)器/計(jì)數(shù)器T/C2可作為帶單獨(dú)晶振的RTC使用。
(3)32條通用I/O線及32個(gè)通用8位寄存器R0~R31,64個(gè)I/O專用寄存器。
(4)片內(nèi)有8K字節(jié)可下載的Flash存儲(chǔ)器,程序下載采用其SPI串行接口,使用壽命為1000次。
(5)有512字節(jié)的EEPROM(使用壽命為10萬(wàn)次)及512字節(jié)的內(nèi)部SRAM。
(6)帶片內(nèi)晶振器的可編程看門狗定時(shí)器;并有三種可通過(guò)軟件選擇的電源節(jié)電模式:閑置模式、掉電模式及省電模式。
(7)供電電壓VCC為4.0~6.0V,可以全靜態(tài)工作,范圍為0~8MHz;具有118條功能強(qiáng)大的指令,大多數(shù)執(zhí)行時(shí)間為單時(shí)鐘周期,指令周期最短僅為125ns。
(8)提供16種不同的內(nèi)、外中斷源(其中有兩個(gè)外部中斷源)。
(9)可編程的全雙工串行通信接口UART及同步串行接口SPI。
以AT90S8535嵌入式高效微控制器構(gòu)成智能化輔保系統(tǒng)的主控制電路,無(wú)需外擴(kuò)多通道A/D轉(zhuǎn)換器及程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器,大大簡(jiǎn)化了系統(tǒng)的硬件。尤其是其內(nèi)部又有硬件看門狗電路及相應(yīng)的看門狗指令控制,提高了系統(tǒng)的可靠性及安全性,選型相對(duì)以往的AT89系列單片機(jī),在性能上要強(qiáng)得多,而且開發(fā)手段更方便。
1.2.2 AT90S8535的ADC的主要特性和工作原理
AT90S8535的優(yōu)越性在于其片內(nèi)有一個(gè)8通道的10位ADC,ADC與一個(gè)模擬多路轉(zhuǎn)換器相連,還包含一個(gè)采樣保持器。該器件的A口的每一引腳(PA0~PA7)均可作為ADC的模擬輸入端,A口不用作模擬輸入的個(gè)別引腳又可作為數(shù)字輸入使用。
ADC有兩個(gè)單獨(dú)的模擬供電引腳AVCC和AGND。使用時(shí),AGND和GND必須相連,AVCC與VCC的電壓必須保持±0.3V的不同,并通過(guò)RC網(wǎng)絡(luò)相連。外部參考基準(zhǔn)電壓通過(guò)AREF引腳加入。
ADC通過(guò)內(nèi)部預(yù)分頻器ADCPS保證將系統(tǒng)時(shí)鐘頻率轉(zhuǎn)化為50~200kHz之間的ADC可接受的時(shí)鐘頻率。ADC一般至少需要13個(gè)時(shí)鐘周期完成一次轉(zhuǎn)換,因此轉(zhuǎn)換時(shí)間范圍為65~260μs。ADC為用戶提供了內(nèi)部中斷方式的處理,可以滿足實(shí)時(shí)性的要求。每次轉(zhuǎn)換完成時(shí),ADC轉(zhuǎn)換器完成中斷就可以被激活。
ADC還有一個(gè)噪音清除器,通過(guò)正確使用,確保在閑置模式轉(zhuǎn)換過(guò)程中減少包括從CPU核中出來(lái)的噪音。
ADC被使能后,可以選擇單一轉(zhuǎn)換和自由運(yùn)行兩種模式之一工作。在單一轉(zhuǎn)換模式下,每次轉(zhuǎn)換由用戶觸發(fā);在自由運(yùn)行模式下,ADC連續(xù)取樣,并更新ADC的數(shù)據(jù)寄存器。建議用戶使用單一轉(zhuǎn)換模式。ADC產(chǎn)生的10位結(jié)果保存在數(shù)據(jù)寄存器ADCL和ADCH中,其內(nèi)部特殊數(shù)據(jù)保護(hù)邏輯要求讀取數(shù)據(jù)時(shí),先讀ADCL,后讀ADCH。
1.3 系統(tǒng)監(jiān)測(cè)對(duì)象
本系統(tǒng)完成的監(jiān)測(cè)對(duì)象主要有:(1)劈相機(jī)三相信號(hào);(2)通風(fēng)機(jī)電機(jī)三相信號(hào);(3)制動(dòng)風(fēng)機(jī)電機(jī)三相信號(hào);(4)各種電機(jī)接觸器信號(hào)。系統(tǒng)通過(guò)輸入電路完成對(duì)這些信號(hào)的調(diào)理,向系統(tǒng)主控制電路提供6路模擬量輸入及5路數(shù)字開關(guān)量輸入,還提供5路條件標(biāo)志。
經(jīng)實(shí)驗(yàn)可知,當(dāng)檢測(cè)到各路電機(jī)對(duì)應(yīng)的模擬量輸入電壓在0.69V~4.5V之間時(shí),可認(rèn)為電機(jī)發(fā)生了過(guò)流故障,而且規(guī)定的過(guò)流故障持續(xù)的時(shí)間隨輸入電壓范圍不同又分為多個(gè)不同區(qū)段,軟件應(yīng)保證按不同的時(shí)間區(qū)段對(duì)電機(jī)進(jìn)行一次保護(hù);輸入電壓若在4.5V以上,可認(rèn)為電機(jī)發(fā)生了短路故障,在0.5秒的持續(xù)時(shí)間內(nèi),故障一直未消除,則對(duì)電機(jī)立即實(shí)施二次保護(hù)控制,防止電機(jī)被燒毀;5路數(shù)字開關(guān)量通道的某路輸入出現(xiàn)高電平時(shí),則認(rèn)為該路電機(jī)發(fā)生了單相故障,在3秒故障持續(xù)時(shí)間內(nèi)故障一直不消失,對(duì)電機(jī)實(shí)施一次保護(hù)控制。無(wú)論單相還是過(guò)流故障,在對(duì)電機(jī)一次保護(hù)后的0.5秒持續(xù)時(shí)間內(nèi)故障仍未消除,則實(shí)施二次保護(hù)控制。通過(guò)上述手段,能起到監(jiān)測(cè)電力機(jī)車輔助系統(tǒng)中的各電機(jī)是否正常工作、當(dāng)出現(xiàn)故障時(shí)及時(shí)發(fā)現(xiàn)并對(duì)電機(jī)加以保護(hù)的作用。
2 系統(tǒng)的硬件和軟件設(shè)計(jì)
2.1 系統(tǒng)的硬件設(shè)計(jì)
系統(tǒng)主要由輸入調(diào)理電路、控制輸出部分及顯示電路、系統(tǒng)主控制電路組成。輸入信號(hào)的調(diào)理電路為系統(tǒng)主電路提供多路模擬量及數(shù)字開關(guān)量輸入通道,設(shè)計(jì)中主要考慮了信號(hào)與現(xiàn)場(chǎng)的隔離和抗干擾。輸出電路完成對(duì)各電機(jī)接觸器及主接觸器的控制,即能對(duì)出現(xiàn)故障的電機(jī)實(shí)現(xiàn)一次保護(hù)或二次保護(hù),并提供各通道電機(jī)故障的顯示,確保電機(jī)的安全。
圖1給出了系統(tǒng)的主電路組成圖。圖中所示的各路信號(hào)分別表示輸出通道、故障顯示通道、開關(guān)數(shù)字量輸入通道及條件標(biāo)志輸入通道。
?
2.2 系統(tǒng)的軟件設(shè)計(jì)
系統(tǒng)軟件采取模塊化結(jié)構(gòu),系統(tǒng)各任務(wù)模塊在功能上應(yīng)盡量保持獨(dú)立。將各任務(wù)模塊放在時(shí)鐘中斷服務(wù)程序中執(zhí)行,就可將系統(tǒng)各監(jiān)測(cè)任務(wù)所需的各不相同的眾多故障持續(xù)延時(shí)時(shí)間轉(zhuǎn)化為執(zhí)行頻率。
2.2.1 數(shù)據(jù)采集程序的設(shè)計(jì)
以通道0為例,系統(tǒng)利用其片內(nèi)10位ADC進(jìn)行模擬量采集的軟件初始化程序段如下:
.include “8535def.inc”
.def count=r14
.def flag=r15?
.def result=r16?
.def temp=r17?
.def ac_temp=r18?
INIT: ldi AL,low(RAMEND)???????????????
out SPL,AL???????????????????????
ldi AL,high(RAMEND)???????????????
out SPH,AL ?????????? ;初始化堆棧指針
ldi count,3? ?????????? ;設(shè)置采集點(diǎn)數(shù)
clr flag?? ??????????????? ;清采集標(biāo)志
ldi ZL,$65
clr ZH???????????????????? ;設(shè)置外部SRAM數(shù)據(jù)緩沖區(qū)首址為$0065H
? ldi result,$8d
? out ADCSR,result??? ;設(shè)置ADEN=1,ADSC=0,ADFR=0,ADIF=0,ADIE=0
;設(shè)置ADPS2=1,ADPS1=0,ADPS0=0
;使ADC預(yù)分頻器選擇分頻系數(shù)為16,設(shè)置ADC時(shí)鐘頻率為115kHz
sbi ADCSR,ADIE?? ? ;ADC 中斷使能
ldi? temp,$00???????????? ;選擇PA0(模擬通道1)
????out? ADMUX,temp??????
? sbi? ADCSR,ADSC?????????? ;啟動(dòng)ADC轉(zhuǎn)換
中斷采集程序段如下:
ACONVERT: ???? inac_temp,SREG? ;臨時(shí)保存狀態(tài)寄存器
? ?? ??????? in BL,ADCL
??????????????????? in BH,ADCH
??????????????????? andi? BH,$03
??????????????????? st Z+,BL??????????? ;保存到數(shù)據(jù)緩沖區(qū)
??????????????????? st Z+,BH
??????????????????? dec count??????????? ;采集點(diǎn)數(shù)到否?
??????????????????? breq? ADC_a
??????????????????? sbi ADCSR,ADSC?????? ;啟動(dòng)下一次A/D轉(zhuǎn)換?
rjmp? XX
ADC_a: ????? ldi flag,$aa???????? ;置采集結(jié)束標(biāo)志
XX: ??? out SREG,ac_temp???? ;恢復(fù)狀態(tài)寄存器
????? ????????????? reti???
對(duì)A/D通道采集的模擬量數(shù)據(jù)采用防脈沖干擾的中值濾波法。
2.2.2 系統(tǒng)軟件的總體設(shè)計(jì)及實(shí)現(xiàn)
為了確保系統(tǒng)的實(shí)時(shí)性,系統(tǒng)的監(jiān)測(cè)掃描時(shí)間片設(shè)為100ms。在SRAM區(qū)設(shè)置標(biāo)志及內(nèi)部軟件計(jì)時(shí)器單元,通過(guò)設(shè)定各路計(jì)時(shí)單元及計(jì)時(shí)啟動(dòng)/結(jié)束標(biāo)志,來(lái)解決出現(xiàn)短路、過(guò)流及單相故障的電機(jī)所需的各不同故障持續(xù)延時(shí)時(shí)間,對(duì)電機(jī)在不同過(guò)流范圍區(qū)段的不同故障持續(xù)延時(shí)時(shí)間也可正確區(qū)分并記錄。這樣系統(tǒng)就不會(huì)因某一任務(wù)的延時(shí)而影響對(duì)系統(tǒng)其它任務(wù)的檢測(cè),實(shí)現(xiàn)了對(duì)各路電機(jī)監(jiān)測(cè)的實(shí)時(shí)多任務(wù)處理。另外注意,對(duì)于與執(zhí)行頻率無(wú)關(guān)的模塊則可放在主程序中執(zhí)行。
圖2、圖3給出了T/C1定時(shí)中斷服務(wù)程序模塊及主程序模塊的流程框圖。
?
?
?
該智能輔保系統(tǒng)樣機(jī)經(jīng)過(guò)現(xiàn)場(chǎng)調(diào)試,目前已投入運(yùn)營(yíng)。實(shí)踐證明,系統(tǒng)穩(wěn)定可靠,效果良好。
?
參考文獻(xiàn)
1 AVR 8-Bit RISC—Data Sheets.ATMEL Corporation[M].1997
2 AVR Enhanced Risc Microcontroller Data Book[M],1997