包乙春,段本成
(1.廣西大學(xué),廣西 南寧 530023;2.柳州供電局,廣西 柳州 545005)
電力監(jiān)控自動(dòng)化是電力系統(tǒng)自動(dòng)化的重要組成部分,是保證電力系統(tǒng)安全運(yùn)行的重要措施之一。為了保證電力系統(tǒng)的安全運(yùn)行,了解電力系統(tǒng)運(yùn)行狀況,需要對(duì)電力系統(tǒng)各種運(yùn)行參數(shù)進(jìn)行在線監(jiān)測(cè)、快速識(shí)別故障、實(shí)時(shí)處理和錄波。這就對(duì)電力系統(tǒng)中的監(jiān)測(cè)系統(tǒng)在精度、實(shí)時(shí)性和可靠性等方面提出了嚴(yán)格的要求。本文設(shè)計(jì)了一套能將PC計(jì)算機(jī)、PCI總線[1-5]及自動(dòng)化測(cè)量技術(shù)融為一體的高精度電力在線監(jiān)測(cè)系統(tǒng)。
近年來(lái),嵌入式技術(shù)已被應(yīng)用于某些電力系統(tǒng)產(chǎn)品中。本文將ARM7系列的一款芯片LPC2132[6]用于電力系統(tǒng)的監(jiān)測(cè)裝置研制中,充分利用ARM強(qiáng)大的功能,采用先進(jìn)的軟件編程技術(shù)、設(shè)計(jì)出了一種在線電力監(jiān)測(cè)系統(tǒng)由于該系統(tǒng)集多種功能于一體,所以對(duì)進(jìn)一步提高電網(wǎng)的自動(dòng)化水平、提高供電的安全性和可靠性都將具有十分重要的意義。
電力監(jiān)測(cè)系統(tǒng)的硬件結(jié)構(gòu)由信號(hào)前端處理模塊、微處理器、PCI總線接口模塊、顯示模塊、鍵盤(pán)模塊等組成,其硬件結(jié)構(gòu)原理圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
微處理器應(yīng)根據(jù)所要完成的數(shù)據(jù)處理工作的復(fù)雜程度來(lái)選擇??紤]到本次設(shè)計(jì)中涉及到大量數(shù)據(jù)的計(jì)算,同時(shí)微處理器還要完成與顯示面板、上位機(jī)的通訊,因此對(duì)微處理器的要求較高。本設(shè)計(jì)采用荷蘭PHILIPS公司LPC2132作為核心控制器。LPC2132是基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的32位ARM7TDMISTMCPU的微控制器,并帶有64K嵌入的高速Flash存儲(chǔ)器。LPC2132片內(nèi)集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬及數(shù)字外設(shè)功能部件。這些功能部件的高度集成為設(shè)計(jì)體積小、功耗低、可靠性高的應(yīng)用系統(tǒng)系統(tǒng)提供了方便。LPC2132芯片最大的特點(diǎn)是,它是一個(gè)32位的處理器,可以處理32位數(shù)據(jù),也可以處理16位數(shù)據(jù)和8位數(shù)據(jù)。由此可見(jiàn),ARM處理器采用32位的數(shù)據(jù)結(jié)構(gòu),所表達(dá)的信息量是很大的。也正好滿(mǎn)足系統(tǒng)中計(jì)算量大和數(shù)據(jù)存儲(chǔ)量大的要求。
電力系統(tǒng)中高次諧波以及暫態(tài)電能質(zhì)量指標(biāo)的測(cè)量對(duì)模數(shù)轉(zhuǎn)換芯片的要求非常高。根據(jù)實(shí)測(cè)數(shù)據(jù),如果采用12位分辨率的模數(shù)轉(zhuǎn)換芯片,僅僅因?yàn)锳/D轉(zhuǎn)換精度不夠,對(duì)15次諧波而言至少會(huì)引起1.67%的誤差[7],而且在實(shí)際諧波測(cè)量中一般測(cè)到30次諧波以上,這樣產(chǎn)生的誤差影響會(huì)更大,高次諧波測(cè)量數(shù)據(jù)將沒(méi)有可信性。因此本文選用16位并行輸出的A/D芯片AD976,它具有轉(zhuǎn)換速度快、精度高的特點(diǎn)。
用雙口RAM作為數(shù)據(jù)緩存器,可以實(shí)現(xiàn)ARM和上位機(jī)同時(shí)對(duì)緩存器的讀寫(xiě)操作,提高通信速率。本系統(tǒng)選用容量大小為4k×16bit的雙口RAM IDT7133作為數(shù)據(jù)緩存器。采樣的數(shù)據(jù)放入雙口 RAM,由ARM7計(jì)數(shù),雙口RAM半滿(mǎn)后ARM7向上位機(jī)發(fā)送中斷信號(hào)。
目前市場(chǎng)上有一些專(zhuān)用的 PCI接口芯片,如S5933、PLX9054等等,但使用 S5933需要外部擴(kuò)展FPGA來(lái)進(jìn)行IO接口處理,占用面積較大。而使用含有PCI MegaCore的FPGA芯片可以根據(jù)設(shè)計(jì)的要求自行設(shè)計(jì)接口功能,不僅降低了成本、提高了電路板的集成度,而且,通過(guò)在頂層的測(cè)試口,可以大幅度提高接口邏輯的調(diào)試速度。
pci_t32是Altera公司提供的最簡(jiǎn)單的32位PCI TARGET接口宏核邏輯,支持33MHz和66MHz的PCI時(shí)鐘,其外圍接線簡(jiǎn)單實(shí)用,在PCI總線一側(cè),各信號(hào)線符合PCI規(guī)范2.2版,系統(tǒng)上電后,通過(guò)PCI配置寄存器,雙口RAM被映射到上位機(jī)的寄存器空間或I/O空間,上位機(jī)通過(guò)寄存器操作或I/O操作可以對(duì)雙口RAM進(jìn)行訪問(wèn);在擴(kuò)展總線一側(cè):l_adi[31:0]為地址、數(shù)據(jù)的輸入端;l_dato[31:0]、l_adro[31:0]分別為數(shù)據(jù)和地址的輸出端;l_beno[3:0]為字節(jié)使能端;l_cmdo[3:0]為命令輸出端;lt_rdyn為目標(biāo)設(shè)備準(zhǔn)備好信號(hào)線,與雙口RAM的BUSY相連,避免上位機(jī)與下位機(jī)對(duì)雙口RAM的同一地址單元進(jìn)行操作;lt_irqn為目標(biāo)設(shè)備的中斷請(qǐng)求線,由ARM控制,lt_irqn有效時(shí),上位機(jī)執(zhí)行雙口RAM的猝發(fā)讀操作。PCI接口的結(jié)構(gòu)如圖2所示。
圖2 PCI接口結(jié)構(gòu)圖
PCI規(guī)范中定義了Memory和I/O兩種讀寫(xiě)操作模式,而Memory讀寫(xiě)又分單周期讀寫(xiě)模式和猝發(fā)讀寫(xiě)模式。本文采用的是Memory的猝發(fā)讀模式,所謂猝發(fā)讀模式,即在給出首地址后,主設(shè)備連續(xù)讀取多個(gè)數(shù)據(jù),而從設(shè)備能對(duì)自動(dòng)地址加1。pci_t32的猝發(fā)Memory讀操作時(shí)序如圖3所示。
圖3 猝發(fā)讀操作時(shí)序圖
顯示電路和微控制器的連接采用I2C總線,由于LPC2132內(nèi)部已經(jīng)有集成I2C總線模塊,故可以容易的實(shí)現(xiàn)I2C通訊,顯示驅(qū)動(dòng)器采用具有I2C總線的器件SAA1064,可動(dòng)態(tài)驅(qū)動(dòng)4位8段LED顯示器。它內(nèi)部具有顯存和自動(dòng)刷新功能,可免去微控制器的頻繁刷新任務(wù),減少CPU占用時(shí)間。鍵盤(pán)輸入采用動(dòng)態(tài)掃描中斷工作方式,當(dāng)查詢(xún)到有鍵按下時(shí)先識(shí)別鍵碼再轉(zhuǎn)入相應(yīng)的服務(wù)程序。用戶(hù)通過(guò)鍵盤(pán)可以對(duì)電力監(jiān)測(cè)參數(shù)進(jìn)行設(shè)置。
時(shí)鐘模塊電路:LPC2132使用外部11.0592MHz晶振.使用外部11.0592MHz晶振使串口波特率更精確,同時(shí)能支持LPC3132微控制器芯片內(nèi)部PLL及ISP功能。
軟件設(shè)計(jì)主要包含三部分,ARM的軟件設(shè)計(jì)、PC機(jī)的軟件設(shè)計(jì)和PCI接口的驅(qū)動(dòng)程序設(shè)計(jì)。
在ARM的軟件設(shè)計(jì)中,若用C語(yǔ)言進(jìn)行開(kāi)發(fā),程序的可讀性較強(qiáng),但是由C編譯器形成的匯編語(yǔ)言不一定能合理利用ARM的片內(nèi)資源;若用匯編語(yǔ)言進(jìn)行開(kāi)發(fā),片內(nèi)資源的利用率較高,但程序的可讀性較差。為了充分利用ARM芯片的內(nèi)部資源,更好的發(fā)揮C語(yǔ)言的可讀性,作者采用混合編程的方式進(jìn)行軟件設(shè)計(jì)。
在PC機(jī)側(cè),由于涉及到對(duì)硬件的操作,故而選用對(duì)硬件有較強(qiáng)控制能力的C語(yǔ)言進(jìn)行開(kāi)發(fā)。
圖4 系統(tǒng)工作流程圖
PCI接口的驅(qū)動(dòng)程序由WinDriver實(shí)現(xiàn)。在Windows操作系統(tǒng)中,CPU工作在保護(hù)模式下,要實(shí)現(xiàn)對(duì)系統(tǒng)的硬件資源(如內(nèi)存、中斷等)的訪問(wèn),必須要對(duì)相關(guān)的設(shè)備編寫(xiě)相應(yīng)的驅(qū)動(dòng)程序。目前,使用較多的開(kāi)發(fā)工具是JUNGO公司(Jungo Software Technologies)出版的驅(qū)動(dòng)程序開(kāi)發(fā)組件WinDriver。利用WinDriver開(kāi)發(fā)驅(qū)動(dòng)程序,不需熟悉操作系統(tǒng)的內(nèi)核知識(shí)[8]。整個(gè)驅(qū)動(dòng)程序中的所有函數(shù)都是工作在用戶(hù)態(tài)的,通過(guò)與WinDriver的.VXD和.SYS文件交互來(lái)達(dá)到驅(qū)動(dòng)硬件的目的。
這里不妨設(shè)一個(gè)周期內(nèi)的采樣點(diǎn)數(shù)為N。監(jiān)測(cè)系統(tǒng)的工作流程如圖4所示。在圖中,BLOCK0為一個(gè)桶形存儲(chǔ)單元,循環(huán)存故障前的數(shù)據(jù)。BLOCK0的容量為N,偏移地址為0~N-1,每采樣一個(gè)新點(diǎn),地址指針自動(dòng)加1,當(dāng)指針為N時(shí),指針歸0。
BLOCK1的容量也為N,存放故障后一個(gè)周期的數(shù)據(jù)。上位機(jī)在收到ARM的中斷命令后,讀取雙口RAM中的數(shù)據(jù)。根據(jù)故障信息,上位機(jī)作出相應(yīng)的控制決策。
用ARM實(shí)現(xiàn)的多路高速電力在線監(jiān)測(cè)系統(tǒng)是有多方面優(yōu)越性的,其高速數(shù)據(jù)采集完全可以響應(yīng)瞬態(tài)或暫態(tài)發(fā)生事件。監(jiān)測(cè)系統(tǒng)的傳輸總線采用PCI總線,提高了系統(tǒng)的通用性及可擴(kuò)展性,而且使整個(gè)系統(tǒng)具有高速、高可靠性等特點(diǎn),能很好的滿(mǎn)足電力系統(tǒng)在線監(jiān)測(cè)方面的需要。但在系統(tǒng)的工作流程方面仍然存在一些缺陷。例如,如果系統(tǒng)處于錄波狀態(tài)時(shí)發(fā)生了電力系統(tǒng)故障,則此故障無(wú)法被識(shí)別,故而,對(duì)于發(fā)生時(shí)間相隔很短的兩次故障,監(jiān)測(cè)系統(tǒng)可能會(huì)丟失部分?jǐn)?shù)據(jù)。在今后的研究中,可以考慮在ARM中嵌入多任務(wù)的實(shí)時(shí)操作系統(tǒng)解決此類(lèi)問(wèn)題。
[1]張旭東,付強(qiáng),何松華,等.基于PCI接口的多通道高速數(shù)據(jù)采集系統(tǒng)[J].數(shù)據(jù)采集與處理,2000,15(2):240 -244.
[2]宋克柱,楊小軍,王硯方.基于FPGA的PCI接口設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2001,9:74 -77.
[3]劉海平,朱仲英.基于FPGA的PCI總線接口設(shè)計(jì)[J].微型電腦應(yīng)用,2003,19(9):49 -51.
[4]劉瀟,孟鐵,胡立偉,等.基于PCI總線的諧波檢測(cè)數(shù)據(jù)采集系統(tǒng)[J].2006,9:31 -32.
[5]彭海蘭,張翌暉,蔣志龍.基于PCI總線的高速數(shù)據(jù)采集系統(tǒng)[J].電網(wǎng)技術(shù),2004,28(4):69 -72.
[6]周立功,張華.深入淺出 ARM7——LPC213x/214x(上冊(cè))[M].北京航空航天大學(xué)出版社,2004.2
[7]介海民,鄢圣茂,宋立忠,等.基于DSP的船舶電力監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].艦船電子工程,2007,2:186 -188
[8]姚金,王彥梅,裴林民.基于新型DSP的嵌入式遠(yuǎn)程電力監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)[J].中國(guó)儀器儀表,2007,4:43 -45.