包乙春,段本成
(1.廣西大學,廣西 南寧 530023;2.柳州供電局,廣西 柳州 545005)
電力監控自動化是電力系統自動化的重要組成部分,是保證電力系統安全運行的重要措施之一。為了保證電力系統的安全運行,了解電力系統運行狀況,需要對電力系統各種運行參數進行在線監測、快速識別故障、實時處理和錄波。這就對電力系統中的監測系統在精度、實時性和可靠性等方面提出了嚴格的要求。本文設計了一套能將PC計算機、PCI總線[1-5]及自動化測量技術融為一體的高精度電力在線監測系統。
近年來,嵌入式技術已被應用于某些電力系統產品中。本文將ARM7系列的一款芯片LPC2132[6]用于電力系統的監測裝置研制中,充分利用ARM強大的功能,采用先進的軟件編程技術、設計出了一種在線電力監測系統由于該系統集多種功能于一體,所以對進一步提高電網的自動化水平、提高供電的安全性和可靠性都將具有十分重要的意義。
電力監測系統的硬件結構由信號前端處理模塊、微處理器、PCI總線接口模塊、顯示模塊、鍵盤模塊等組成,其硬件結構原理圖如圖1所示。

圖1 系統結構圖
微處理器應根據所要完成的數據處理工作的復雜程度來選擇。考慮到本次設計中涉及到大量數據的計算,同時微處理器還要完成與顯示面板、上位機的通訊,因此對微處理器的要求較高。本設計采用荷蘭PHILIPS公司LPC2132作為核心控制器。LPC2132是基于一個支持實時仿真和跟蹤的32位ARM7TDMISTMCPU的微控制器,并帶有64K嵌入的高速Flash存儲器。LPC2132片內集成了數據采集和控制系統中常用的模擬及數字外設功能部件。這些功能部件的高度集成為設計體積小、功耗低、可靠性高的應用系統系統提供了方便。LPC2132芯片最大的特點是,它是一個32位的處理器,可以處理32位數據,也可以處理16位數據和8位數據。由此可見,ARM處理器采用32位的數據結構,所表達的信息量是很大的。也正好滿足系統中計算量大和數據存儲量大的要求。
電力系統中高次諧波以及暫態電能質量指標的測量對模數轉換芯片的要求非常高。根據實測數據,如果采用12位分辨率的模數轉換芯片,僅僅因為A/D轉換精度不夠,對15次諧波而言至少會引起1.67%的誤差[7],而且在實際諧波測量中一般測到30次諧波以上,這樣產生的誤差影響會更大,高次諧波測量數據將沒有可信性。因此本文選用16位并行輸出的A/D芯片AD976,它具有轉換速度快、精度高的特點。
用雙口RAM作為數據緩存器,可以實現ARM和上位機同時對緩存器的讀寫操作,提高通信速率。本系統選用容量大小為4k×16bit的雙口RAM IDT7133作為數據緩存器。采樣的數據放入雙口 RAM,由ARM7計數,雙口RAM半滿后ARM7向上位機發送中斷信號。
目前市場上有一些專用的 PCI接口芯片,如S5933、PLX9054等等,但使用 S5933需要外部擴展FPGA來進行IO接口處理,占用面積較大。而使用含有PCI MegaCore的FPGA芯片可以根據設計的要求自行設計接口功能,不僅降低了成本、提高了電路板的集成度,而且,通過在頂層的測試口,可以大幅度提高接口邏輯的調試速度。
pci_t32是Altera公司提供的最簡單的32位PCI TARGET接口宏核邏輯,支持33MHz和66MHz的PCI時鐘,其外圍接線簡單實用,在PCI總線一側,各信號線符合PCI規范2.2版,系統上電后,通過PCI配置寄存器,雙口RAM被映射到上位機的寄存器空間或I/O空間,上位機通過寄存器操作或I/O操作可以對雙口RAM進行訪問;在擴展總線一側:l_adi[31:0]為地址、數據的輸入端;l_dato[31:0]、l_adro[31:0]分別為數據和地址的輸出端;l_beno[3:0]為字節使能端;l_cmdo[3:0]為命令輸出端;lt_rdyn為目標設備準備好信號線,與雙口RAM的BUSY相連,避免上位機與下位機對雙口RAM的同一地址單元進行操作;lt_irqn為目標設備的中斷請求線,由ARM控制,lt_irqn有效時,上位機執行雙口RAM的猝發讀操作。PCI接口的結構如圖2所示。

圖2 PCI接口結構圖
PCI規范中定義了Memory和I/O兩種讀寫操作模式,而Memory讀寫又分單周期讀寫模式和猝發讀寫模式。本文采用的是Memory的猝發讀模式,所謂猝發讀模式,即在給出首地址后,主設備連續讀取多個數據,而從設備能對自動地址加1。pci_t32的猝發Memory讀操作時序如圖3所示。

圖3 猝發讀操作時序圖
顯示電路和微控制器的連接采用I2C總線,由于LPC2132內部已經有集成I2C總線模塊,故可以容易的實現I2C通訊,顯示驅動器采用具有I2C總線的器件SAA1064,可動態驅動4位8段LED顯示器。它內部具有顯存和自動刷新功能,可免去微控制器的頻繁刷新任務,減少CPU占用時間。鍵盤輸入采用動態掃描中斷工作方式,當查詢到有鍵按下時先識別鍵碼再轉入相應的服務程序。用戶通過鍵盤可以對電力監測參數進行設置。
時鐘模塊電路:LPC2132使用外部11.0592MHz晶振.使用外部11.0592MHz晶振使串口波特率更精確,同時能支持LPC3132微控制器芯片內部PLL及ISP功能。
軟件設計主要包含三部分,ARM的軟件設計、PC機的軟件設計和PCI接口的驅動程序設計。
在ARM的軟件設計中,若用C語言進行開發,程序的可讀性較強,但是由C編譯器形成的匯編語言不一定能合理利用ARM的片內資源;若用匯編語言進行開發,片內資源的利用率較高,但程序的可讀性較差。為了充分利用ARM芯片的內部資源,更好的發揮C語言的可讀性,作者采用混合編程的方式進行軟件設計。
在PC機側,由于涉及到對硬件的操作,故而選用對硬件有較強控制能力的C語言進行開發。

圖4 系統工作流程圖
PCI接口的驅動程序由WinDriver實現。在Windows操作系統中,CPU工作在保護模式下,要實現對系統的硬件資源(如內存、中斷等)的訪問,必須要對相關的設備編寫相應的驅動程序。目前,使用較多的開發工具是JUNGO公司(Jungo Software Technologies)出版的驅動程序開發組件WinDriver。利用WinDriver開發驅動程序,不需熟悉操作系統的內核知識[8]。整個驅動程序中的所有函數都是工作在用戶態的,通過與WinDriver的.VXD和.SYS文件交互來達到驅動硬件的目的。
這里不妨設一個周期內的采樣點數為N。監測系統的工作流程如圖4所示。在圖中,BLOCK0為一個桶形存儲單元,循環存故障前的數據。BLOCK0的容量為N,偏移地址為0~N-1,每采樣一個新點,地址指針自動加1,當指針為N時,指針歸0。
BLOCK1的容量也為N,存放故障后一個周期的數據。上位機在收到ARM的中斷命令后,讀取雙口RAM中的數據。根據故障信息,上位機作出相應的控制決策。
用ARM實現的多路高速電力在線監測系統是有多方面優越性的,其高速數據采集完全可以響應瞬態或暫態發生事件。監測系統的傳輸總線采用PCI總線,提高了系統的通用性及可擴展性,而且使整個系統具有高速、高可靠性等特點,能很好的滿足電力系統在線監測方面的需要。但在系統的工作流程方面仍然存在一些缺陷。例如,如果系統處于錄波狀態時發生了電力系統故障,則此故障無法被識別,故而,對于發生時間相隔很短的兩次故障,監測系統可能會丟失部分數據。在今后的研究中,可以考慮在ARM中嵌入多任務的實時操作系統解決此類問題。
[1]張旭東,付強,何松華,等.基于PCI接口的多通道高速數據采集系統[J].數據采集與處理,2000,15(2):240 -244.
[2]宋克柱,楊小軍,王硯方.基于FPGA的PCI接口設計[J].電子技術應用,2001,9:74 -77.
[3]劉海平,朱仲英.基于FPGA的PCI總線接口設計[J].微型電腦應用,2003,19(9):49 -51.
[4]劉瀟,孟鐵,胡立偉,等.基于PCI總線的諧波檢測數據采集系統[J].2006,9:31 -32.
[5]彭海蘭,張翌暉,蔣志龍.基于PCI總線的高速數據采集系統[J].電網技術,2004,28(4):69 -72.
[6]周立功,張華.深入淺出 ARM7——LPC213x/214x(上冊)[M].北京航空航天大學出版社,2004.2
[7]介海民,鄢圣茂,宋立忠,等.基于DSP的船舶電力監測系統設計[J].艦船電子工程,2007,2:186 -188
[8]姚金,王彥梅,裴林民.基于新型DSP的嵌入式遠程電力監測系統的設計[J].中國儀器儀表,2007,4:43 -45.