單片機(jī)協(xié)處理器在電力測(cè)量及保護(hù)系統(tǒng)中的應(yīng)用
在電力測(cè)量及保護(hù)系統(tǒng)中,通常是由單片機(jī)構(gòu)成數(shù)個(gè)乃至數(shù)十個(gè)前端處理器。它們通過(guò)串行通信與微機(jī)構(gòu)成的中央處理器相連接,形成一個(gè)完整的系統(tǒng),以實(shí)現(xiàn)對(duì)電力系統(tǒng)的遙測(cè)、遙信、遙調(diào)、遙控等功能。
前端處理器的核心就是單片機(jī),從目前的情況來(lái)看,以Intel公司的16位單片機(jī)80C196系列(KB、KC等)應(yīng)用最廣。單片機(jī)要處理的問(wèn)題很多。如I/O量、A/D模數(shù)轉(zhuǎn)換、鍵盤(pán)、通信、顯示等,處理一圈所花費(fèi)的時(shí)間常稱(chēng)之為前端處理器的運(yùn)行周期。在整個(gè)系統(tǒng)中,前端處理器的數(shù)量較多,中央處理器對(duì)其進(jìn)行巡檢時(shí)會(huì)花去較多的時(shí)間。若能將前端處理器的運(yùn)行周期縮短,毫無(wú)疑問(wèn)能提高整個(gè)系統(tǒng)的運(yùn)行及處理速度,使系統(tǒng)的性能得以改善。
被處理的各量中,以模擬量的處理較為復(fù)雜且耗時(shí)較長(zhǎng)。模擬量的處理內(nèi)容較多,如模擬量周期(即工頻)的測(cè)定、模擬通道的選擇(多個(gè)模擬量同一時(shí)刻選通一個(gè))、A/D轉(zhuǎn)換及存儲(chǔ)等,有時(shí)還須采樣/保持控制等。如能將模擬量交給一個(gè)協(xié)處理器去處理,勢(shì)必會(huì)減輕主處理器的負(fù)擔(dān),縮短主處理器的運(yùn)行周期,同時(shí)還能為增強(qiáng)某些功能需求創(chuàng)造條件。模擬量的計(jì)算通常是用傅氏算法,其精度又與模擬信號(hào)一周期內(nèi)采樣點(diǎn)的多少有關(guān)。采樣點(diǎn)多,精度就高,但耗費(fèi)的時(shí)間也多。若前端處理器采用單一的CPU,由于受到時(shí)間和模擬通道數(shù)量的限制,采樣點(diǎn)大約在12~24點(diǎn)。若采用協(xié)處理器,采樣點(diǎn)可多至30~36點(diǎn),模擬通道多至16個(gè),也同樣可正常工作。由于主處理器與協(xié)處理器的軟件各自獨(dú)立,使得在編制軟件思想清晰,容易理順。
一、硬件
圖1給出了前端處理器中采用協(xié)處理器的硬件略圖(只畫(huà)出有關(guān)部分)。它的主處理器仍采用了當(dāng)前流行的16位單片機(jī)80C196KB(IC6),協(xié)處理器采用了W78E51單片機(jī)(IC3)。W78E51的指令及性能同89C51,只是它的工作頻率可以達(dá)到40MHz。由于有兩個(gè)CPU同時(shí)運(yùn)行,而且它們之間還有數(shù)據(jù)交換,如何去協(xié)調(diào)它們的工作是至關(guān)重要的,這需要通過(guò)硬件和軟件的設(shè)計(jì)來(lái)加強(qiáng)保證。
圖1中,IC1是8選1的模擬通道芯片MAX338,若通道數(shù)量超過(guò)8,可選用MAX306,其通道數(shù)量可達(dá)16個(gè)。IC2為12位帶采樣保持功能的A/D模數(shù)變換芯片AD1674。IC4為地址鎖存片74LS373,IC5為RAM存儲(chǔ)芯片6264,它們附屬于IC3,作為IC3的片外數(shù)據(jù)存儲(chǔ)器。
硬件的工作過(guò)程是:工頻電壓或電流經(jīng)處理后(經(jīng)傳感器或者電壓/電流互感器、放大器、濾波器等處理)變?yōu)橄鄳?yīng)的模擬信號(hào),分別從CI1的8個(gè)輸入端(IN1~I(xiàn)N8)輸入,具體選通哪路則取決于A0~A2的二進(jìn)制數(shù)。而A0~A2又是由IC3的P10~P12決定。被選中通道的模擬量由IC1的OUT輸出,經(jīng)跟隨器后進(jìn)入IC2進(jìn)行A/D變換,由R/C、A0控制變換的過(guò)程,STA給出變換結(jié)束的信號(hào),它們分別由IC3的P15~P17實(shí)施控制和測(cè)試。變換完成的數(shù)字量為12位,分兩次輸出,第一次為高8位(DB11~DB4),第二次為低8位(DB3~DB0,后加4個(gè)0)。這些數(shù)據(jù)經(jīng)整理后依次存入數(shù)據(jù)存儲(chǔ)器IC5中。IC3的P14是IC2的片選信號(hào),P33是IC4、IC5的片選信號(hào),通常為高電平,選不中。當(dāng)進(jìn)行A/D變換時(shí),須先將P14置低電平,選中該片,變換完成后,再置加高電平。當(dāng)向IC5存、取數(shù)據(jù)時(shí),須通過(guò)P33進(jìn)行控制,過(guò)程同上。這樣,可以防止A/D變換、IC5存取數(shù)據(jù)、IC3通過(guò)P0口向IC6傳送數(shù)據(jù)這三者之間的相互交叉干擾。
周期值的測(cè)量是由一模擬通道提供工頻信號(hào),經(jīng)斯密特觸發(fā)器至IC3的P13進(jìn)行。P13相鄰兩次電平下降的時(shí)間隔即可周期值。
IC3的P30、P31與IC6的P10、P11構(gòu)成握手信號(hào),將存放IC5中的各量依次取出,由IC3的P0口傳至IC6的P0口,并存入指定的區(qū)間,再進(jìn)行傅氏運(yùn)算、處理和控制。IC5中存儲(chǔ)的數(shù)據(jù)個(gè)數(shù)是1周期內(nèi)各采樣點(diǎn)的、各通道測(cè)得的數(shù)據(jù)個(gè)數(shù)的總和。設(shè)采樣點(diǎn)為Rn,通道數(shù)為Rm,再加上前述的周期值(各量均為2字節(jié)),總的字節(jié)數(shù)C=2RnRm+2。當(dāng)Rn=32,Rm=8,則C=2×32×8+2=514字節(jié)。當(dāng)少于200字節(jié)時(shí),也即采樣點(diǎn)、通道數(shù)較少時(shí),如Rn=16,Rm=6,IC3可用W78E52代替。W78E52可以利用片內(nèi)的256個(gè)RAM來(lái)存儲(chǔ)數(shù)據(jù)而省去片外的數(shù)據(jù)存儲(chǔ)器,在硬件上更為簡(jiǎn)潔。
二、軟件
圖2是協(xié)處理器主程序軟件框圖。首先對(duì)有關(guān)的量進(jìn)行說(shuō)明:T0和T1是W78E51片內(nèi)的兩個(gè)定時(shí)器。T、Ta和Tb均為2字節(jié)寄存器,T用來(lái)存儲(chǔ)測(cè)量出的周期值;Ta存儲(chǔ)兩相鄰采樣點(diǎn)的時(shí)間間隔,因本例中采樣點(diǎn)為32,將T右移5位即得Ta值;Tb是Ta對(duì)應(yīng)的溢出值,用來(lái)產(chǎn)生T0中斷。注意:以上諸量都須機(jī)器周期來(lái)表示,本例中采用24MHz晶振,一個(gè)機(jī)器周期的時(shí)間為0.5μs。Rm是模擬通道數(shù),范圍是1~8。Rn是采樣點(diǎn)數(shù),范圍是1~32。
工作過(guò)程簡(jiǎn)述如下:當(dāng)P13電位下跌時(shí),周期測(cè)試開(kāi)始,到第二次P13下跌時(shí),周期測(cè)試結(jié)束(區(qū)間為AA~AD)。兩次下跌的時(shí)間間隔即為工頻的周期,具有準(zhǔn)確的跟蹤特性。在周期測(cè)試開(kāi)始后4μs,T0溢出產(chǎn)生中斷,執(zhí)行中斷子程序,總共32次。中斷子程序都是在AD~AC間執(zhí)行的,也即在第一周期內(nèi)所有需要測(cè)量的量都已測(cè)出。從AD往后便是第二周期,主要用來(lái)計(jì)算Ta、Tb的值,并將IC5內(nèi)的數(shù)據(jù)傳送出去。由此可見(jiàn),協(xié)處理器的運(yùn)行為2個(gè)周期,約40ms。應(yīng)說(shuō)明的是:在上電的第一個(gè)周期內(nèi),因周期值還未測(cè)出,故須對(duì)Tb值先行設(shè)置。圖3是中斷子程序軟件框圖。
8個(gè)通道的A/D轉(zhuǎn)換數(shù)據(jù)是先存入片內(nèi)的RAM。這樣來(lái)得快,以減少通道之間的相差(鄰近通道之間的相差約為0.4°),之后,再一次性地由片內(nèi)RAM轉(zhuǎn)存于片外RAM。執(zhí)行一次T0中斷子程序的時(shí)間約為256μs。當(dāng)采樣點(diǎn)為32時(shí),時(shí)間間隔為625μs,綽綽有余。若將采樣點(diǎn)增至36,通道增至16個(gè),則采樣點(diǎn)間隔約為555μs,執(zhí)行中斷子程序的時(shí)間約為445μs,仍有足夠的余量。
軟件可以用匯編語(yǔ)言ASM51編寫(xiě),也可以用對(duì)應(yīng)的高級(jí)語(yǔ)言PL/M51或C51編寫(xiě),但前者代碼率高一些。
結(jié)束語(yǔ)
以上是協(xié)處理器的一般用法,在此基礎(chǔ)上是否能進(jìn)一步縮短運(yùn)行周期和提高測(cè)量精度,是一個(gè)值得研究的課題。提高主處理器IC6和協(xié)處理器IC3的工作頻率(如IC6采用16MHz,IC3采用36MHz)可以提高CPU的運(yùn)行速度,以達(dá)到縮短運(yùn)行周期的目的。但有兩點(diǎn)需要注意:一是CPU的外圍芯片的速度必須跟得上;二是頻率提高后,輻射增強(qiáng),交叉干擾變得明顯。因面,在印刷電路板的設(shè)計(jì)上須謹(jǐn)慎處理。
提高測(cè)量精度可以從3個(gè)方面著手。一是提高A/D轉(zhuǎn)換精度,采用14位A/D變換芯片。不過(guò),位數(shù)越多,變換所需的時(shí)間也越長(zhǎng)。這在單一CPU中因時(shí)間限制,效果不好,而在協(xié)處理器中卻容易實(shí)現(xiàn)。這里還有一個(gè)附帶的問(wèn)題,目前大都采用開(kāi)關(guān)式穩(wěn)壓電源,耗電量省,但工作頻率高,噪波大,通常有5~10mV,這無(wú)疑限制了精度的提高。因而,必須有一套優(yōu)良的電源濾波系統(tǒng),將噪波濾到1mV以下。有時(shí)這部分的電源干擾采用串聯(lián)式穩(wěn)壓電源,其噪波可以做到0.5mV以下。
二是采用同時(shí)式采樣保持電路。在前述電路中,8個(gè)模擬通道的采樣并不是同時(shí)進(jìn)行而是按序進(jìn)行的,后面的通道對(duì)前面的通道而言有一個(gè)時(shí)間上的滯后,這會(huì)給測(cè)量帶來(lái)某些誤差。常用的方法是將各模擬量的位置進(jìn)行調(diào)整,將關(guān)系密切的量逐個(gè)緊排,以減少滯后帶來(lái)的影響。當(dāng)然,提高協(xié)處理器的速度和采用高速A/D變換器也有助于滯后的減小(可做到0.2°以內(nèi))。然而,最終解決這個(gè)問(wèn)題的辦法是采用同時(shí)式采樣保持電路,也即在圖1的IC1前加入8片采樣保持芯片,并由IC3實(shí)施控制。
三是各模擬量輸入通道(包括傳感器或電壓/電流互感器、放大器、濾波電路等)均會(huì)形成一定的附加相移。若各通道的附加相移相等,則對(duì)測(cè)量的精度不會(huì)有影響。輸入工頻三相電A,B,C,各相相差應(yīng)為120°,由于附加相移不相等,顯然會(huì)給測(cè)量帶來(lái)影響,尤以測(cè)功率時(shí)明顯。因而,應(yīng)對(duì)各模擬通道的附加相移進(jìn)行測(cè)量調(diào)整,使其盡可能相等。
評(píng)論