張佃青 詹 雄 楊 立 王宇紅 王慧錚
(南瑞集團中電普瑞科技有限公司,北京 102200)
LCD顯示模塊為電力系統(tǒng)控制保護(hù)裝置和其他工業(yè)控制裝置提供了友好的人機接口。電力系統(tǒng)控制保護(hù)裝置集測量、控制、監(jiān)視、保護(hù)、通信等多種功能于一體,是在電力系統(tǒng)或電力設(shè)備發(fā)生故障和不正常運行情況時,用于快速切除故障,消除不正常狀況的重要二次設(shè)備[1]。
繼電保護(hù)新原理的出現(xiàn),靈活交流輸電、直流輸電等新技術(shù)、設(shè)備的大量應(yīng)用,智能化變電站的提出與推廣,對控制保護(hù)裝置的功能、性能提出了更高的要求,對裝置內(nèi)的核心處理器芯片的性能也提出了更高的要求[2-3]。目前控制保護(hù)裝置中廣泛采用高性能DSP、ARM、POWERPC等處理器芯片[2,4-5]。
為了減輕裝置其他CPU的負(fù)擔(dān),目前電力系統(tǒng)控制保護(hù)裝置 LCD顯示的主流方案是單獨配置一套帶有ARM芯片的智能嵌入式LCD模塊,由裝置內(nèi)的通信管理插件通過RS485或CAN等通信方式將顯示內(nèi)容傳給智能LCD模塊。該方案技術(shù)成熟,但系統(tǒng)略顯復(fù)雜,需要開發(fā)處理器芯片以及LCD模塊ARM芯片2種芯片的硬件和軟件,對于軟硬件后期維護(hù)帶來不便。
本文在目前控制保護(hù)裝置中負(fù)責(zé)對外通信的通信管理插件上,在廣泛采用的POWERPC+FPGA硬件架構(gòu)的基礎(chǔ)上,提出了一種LCD顯示方案,POWERPC通過基于Qt開發(fā)的顯示模塊應(yīng)用程序,將顯示數(shù)據(jù)通過LINUX系統(tǒng)LCD驅(qū)動的Framebuffer設(shè)備快速傳輸給FPGA,而FPGA則實現(xiàn)顯存數(shù)據(jù)存儲及LCD控制器功能。該方案取消了獨立顯示系統(tǒng),其CPU開銷小,簡化了LCD顯示系統(tǒng)設(shè)計,使開發(fā)者只需關(guān)注 Qt顯示模塊應(yīng)用程序開發(fā)和維護(hù),不用考慮LCD模塊ARM芯片軟件開發(fā)和維護(hù),為控制保護(hù)裝置提供了一種靈活有效、簡便經(jīng)濟的LCD顯示方案。
控制保護(hù)裝置的具體功能是:接收模擬量數(shù)據(jù)、保護(hù)相關(guān)的開入量,執(zhí)行數(shù)據(jù)運算和邏輯判斷,輸出調(diào)節(jié)指令或保護(hù)動作;提供通信接口、人機接口界面及錄波回放等功能??刂票Wo(hù)裝置系統(tǒng)架構(gòu)采用分布式多處理器并行運算技術(shù)的架構(gòu)[2],如圖 1所示,主要包括DSP插件、智能IO插件、智能模擬量輸入插件、電源插件、通信管理插件和LCD顯示模塊。裝置可以靈活配置DSP插件、智能插件的種類和數(shù)量來滿足不同工程應(yīng)用需求。
圖1 控制保護(hù)裝置系統(tǒng)架構(gòu)框圖
DSP插件的處理器采用定點或浮點DSP,具有強大的數(shù)字信號處理能力,主要功能是通過背板總線從智能IO插件收集開入量信息,從智能模擬量輸入插件獲取電參量采集數(shù)據(jù),執(zhí)行復(fù)雜的電力電子裝置控制調(diào)節(jié)實時算法或繼電保護(hù)邏輯運算,從本插件相關(guān)接口輸出調(diào)節(jié)控制指令或通過智能 IO插件輸出保護(hù)動作指令。在一塊DSP插件還無法完成控制保護(hù)相關(guān)算法時,可以配置多塊DSP插件進(jìn)行并行處理,協(xié)同完成相關(guān)算法。
智能 IO插件包括開入量采集模塊和開關(guān)量輸出模塊兩種。開入量采集模塊對輸入的開關(guān)量采用光耦隔離技術(shù),轉(zhuǎn)換成與插件內(nèi)后級數(shù)字電路相匹配的低壓數(shù)字信號,插件內(nèi)的CPU對各路開關(guān)量數(shù)據(jù)信號進(jìn)行采集和處理,并將開入量狀態(tài)信息通過背板總線傳遞給裝置其他智能插件。開關(guān)量輸出模塊接收相應(yīng)DSP插件的控制命令,輸出信號繼電器或操作繼電器接點信號。操作繼電器接點接入跳、合閘回路,由啟動邏輯和保護(hù)邏輯協(xié)同控制,實現(xiàn)保護(hù)動作指令的可靠輸出。
智能模擬量輸入模塊用于完成對從傳統(tǒng)互感器變換輸出的交流電壓、交流電流信號,或直流電壓信號進(jìn)行隔離、信號調(diào)理及模數(shù)轉(zhuǎn)換,經(jīng)過標(biāo)幺化等數(shù)據(jù)處理,將采集數(shù)據(jù)通過背板總線傳遞給裝置其他智能插件。
通信管理插件負(fù)責(zé)裝置的通信、錄波回放及LCD顯示控制功能等。該插件通過背板總線收集模擬量數(shù)據(jù)和開關(guān)量數(shù)據(jù),收集各插件的狀態(tài)信息,經(jīng)處理器芯片完成錄波回放功能,執(zhí)行協(xié)議轉(zhuǎn)換處理,實現(xiàn)裝置的對外通信;同時該插件通過由FPGA構(gòu)建的LCD控制器完成LCD的顯示控制。
LCD模塊相對簡單,僅包括LCD顯示屏及LCD顯示接口電路。該模塊一般背附在裝置前面板。
電源插件用來給裝置其他插件和 LCD顯示屏提供電源。
在裝置的通信管理插件上予以實現(xiàn)。系統(tǒng)硬件采用POWERPC+FPGA架構(gòu),主要由POWERPC模塊、FPGA模塊、背板總線接口電路和LCD接口電路組成,如圖2所示。
圖2 LCD顯示總體架構(gòu)框圖
該硬件通過背板總線與裝置其他板卡實現(xiàn)內(nèi)部通信,POWERPC通過芯片的LocalBus總線獲取相關(guān)信息,完成103、104或IEC61850等規(guī)約轉(zhuǎn)換,實現(xiàn)裝置的對外通信。同時,PowePC通過基于Qt開發(fā)的顯示模塊應(yīng)用程序,將顯示數(shù)據(jù)由LINUX系統(tǒng)LCD驅(qū)動的Framebuffer設(shè)備通過LocalBus總線快速傳輸給 FPGA。而FPGA則實現(xiàn)顯存數(shù)據(jù)存儲及LCD刷屏及顯示功能。該系統(tǒng)與目前普遍使用的通信管理插件原理上的區(qū)別在于,不再采用 RS485等通信方式與智能 LCD模塊通信,而是通過 LCD接口電路由接插件直接與LCD屏連接。
POWERPC模塊組成如圖3所示,選用Freescale公司的P1020作為處理器,該芯片是專用的網(wǎng)絡(luò)通信處理芯片,雙核,每核時鐘最高頻率各為800MHz[6]。通過內(nèi)部DDR2控制器外擴DDR2存儲器,為程序運行和數(shù)據(jù)動態(tài)處理提供存儲空間,其型號為MT47H64M16HR-3ITE,容量為 64M×32bit,速度為667MHz;通過eSDHC接口外擴SD卡,為應(yīng)用程序、大量數(shù)據(jù)存儲提供空間,其型號為03-SDSDAA-008G,容量為8G;通過LocalBus局部總線外擴Nor Flash存儲器,用來存儲Bootload程序和系統(tǒng)程序,其型號為 S29GL01GP12TFI01,容量為 64M×16bit,同時通過該局部總線與FPGA通信;通過eTSEC接口外擴以太網(wǎng)PHY芯片,實現(xiàn)對外通信。
圖3 POWERPC模塊框圖
FPGA模塊及外圍電路組成如圖4所示,F(xiàn)PGA選用Xilinx公司的Spartan6系列的XC6SLX45,該芯片具有6822個SLICE,43661個邏輯單元,116×18kb的塊RAM,8個DCM時鐘管理單元,2個DDR控制器[7-8]。
圖4 FPGA模塊及外圍電路框圖
DDR存儲器選用 MT46V16M16CY,容量為16M×16bit,用作顯存,存儲容量較一般的 SRAM容量要大,可以滿足分辨率為 640×480及以上的LCD顯存要求。CAN控制器選用SJA1000,用作與裝置其他板卡通信。串行器選用 DS90C383,用來將FPGA輸出的16個TTL電平的RGB信號串行化成4對LVDS信號,用以提高LCD接口信號的電磁兼容性能。看門狗電路選用IMP706,用以監(jiān)視電源電壓的正常情況,監(jiān)視FPGA和POWERPC的程序運行情況。
設(shè)計了以顯示屏分辨率為640×480的LCD顯示功能軟件。LCD顯示部分的系統(tǒng)軟件設(shè)計主要包括基于FPGA的LCD控制器設(shè)計、Linux系統(tǒng)下LCD顯示驅(qū)動程序設(shè)計和LCD顯示應(yīng)用程序設(shè)計。
LCD控制器主要包括與POWERPC接口的數(shù)據(jù)及地址緩存、DDR雙端口控制模塊、LCD刷屏數(shù)據(jù)緩存和LCD接口時序控制等模塊組成,示意圖如圖5所示。
圖5 基于FPGA的LCD控制器功能框圖
DDR控制器由 Xilinx ISE開發(fā)環(huán)境的 CORE Gen模塊中的MIG工具調(diào)用和配置對應(yīng)的DDR控制器IP形成。該控制器支持多端口操作模式[9-10],實際設(shè)計為2個端口,一個端口用于接收POWERPC的顯示RGB數(shù)據(jù),并存入DDR顯存相應(yīng)的單元中,一個端口讀取DDR的顯存數(shù)據(jù),用于LCD刷屏顯示。
DDR SDRAM芯片時鐘頻率可達(dá)到100MHz,但 DDR應(yīng)用的接口帶寬與數(shù)據(jù)的操作方式有很大的關(guān)系。在地址連續(xù)存取方式下,效率高,接口帶寬高,在地址不連續(xù)隨機存取方式下,效率低,接口帶寬也低。為了支持顯示數(shù)據(jù)的隨機存取,設(shè)計了POWERPC接口的數(shù)據(jù)及地址緩存模塊,用以提高POWERPC LocalBus總線訪問速度,以便LocalBus總線可以掛載其他接口數(shù)據(jù)。設(shè)計LCD刷屏數(shù)據(jù)緩存,用來匹配LCD接口控制時序。
圖6給出LCD接口控制時序,其中VSYNC為場同步信號,HSYNC為行同步信號,CK為像素時鐘信號,RGB為像素RGB數(shù)據(jù)。液晶顯示屏的刷新頻率為 60Hz,即 VSYNC為 60Hz,而一場則由480個行同步信號組成,則HSYNC為至少28.8kHz。同理可得 CK至少為 18.5MHz。程序?qū)崿F(xiàn)時,由FPGA的 10MHz時鐘輸入信號經(jīng)過時鐘管理模塊DCM產(chǎn)生一個20MHz的時鐘信號CLK,作為LCD接口的主時鐘。場同步信號 VSYNC、行同步信號HSYNC、像素時鐘CK都由主時鐘CLK產(chǎn)生。
圖6 LCD接口控制時序
LCD顯示驅(qū)動采用Linux內(nèi)核標(biāo)準(zhǔn)FrameBuffer幀緩沖設(shè)備驅(qū)動架構(gòu),如圖7所示,F(xiàn)rameBuffer設(shè)備文件為/dev/fb0。
圖7 FrameBuffer驅(qū)動架構(gòu)
FrameBuffer驅(qū)動采用 OF_Platform機制,在POWERPC設(shè)備樹文件中添加p1020-lcd設(shè)備。
FrameBuffer驅(qū)動加載后,向 Linux內(nèi)核注冊FrameBuffer Platform驅(qū)動,內(nèi)核根據(jù)設(shè)備樹會匹配該設(shè)備,并在Probe函數(shù)中完成LocalBus顯存物理地址映射虛擬地址、FrameBuffer fbinfo幀緩存信息結(jié)構(gòu)體固定及可變屏幕參數(shù)設(shè)置、操作函數(shù) fb_ops結(jié)構(gòu)體注冊、注冊FrameBuffer設(shè)備。
應(yīng)用程序接口函數(shù)在fbmem.c中定義。
LCD顯示應(yīng)用程序整體結(jié)構(gòu)包括主要數(shù)據(jù)采集及處理模塊、共享內(nèi)存模塊、LCD人機接口模塊和組態(tài)模塊,如圖8所示。結(jié)合LINUX系統(tǒng)特點,應(yīng)用程序采用多進(jìn)程、多任務(wù)和共享內(nèi)存數(shù)據(jù)庫,各個進(jìn)程或任務(wù)以共享內(nèi)存數(shù)據(jù)庫為中心進(jìn)行數(shù)據(jù)交互和消息交換。
圖8 LCD顯示應(yīng)用程序整體結(jié)構(gòu)
數(shù)據(jù)采集及處理模塊負(fù)責(zé)與監(jiān)控后臺或裝置內(nèi)部其他插件進(jìn)行數(shù)據(jù)通信,獲取監(jiān)控信息和裝置狀態(tài)信息,并將相關(guān)相關(guān)信息映射到共享內(nèi)存區(qū)。
共享內(nèi)存模塊提供動態(tài)內(nèi)存共享。應(yīng)用進(jìn)程利用接口函數(shù)讀寫數(shù)據(jù)庫對象,在應(yīng)用進(jìn)程間收發(fā)消息;實現(xiàn)了內(nèi)存數(shù)據(jù)實時更新及并發(fā)性協(xié)調(diào),以確保內(nèi)存數(shù)據(jù)的安全性。
組態(tài)模塊使用 Qt的控件庫來創(chuàng)建嵌入式圖元庫,同時通過一個xml格式的配置文件,自動產(chǎn)生不同的組態(tài)畫面,實現(xiàn)圖形組態(tài),以便于LCD人機接口模塊調(diào)用。
LCD人機接口模塊從共享內(nèi)存區(qū)獲得需要可視化的數(shù)據(jù),完成顯示界面的初始化,根據(jù)設(shè)計好的圖形界面生成對應(yīng)的命令序列,通過Qt的LCD接口Framebuffer設(shè)備實現(xiàn)LCD的顯示控制。
通信管理插件程序按照工程應(yīng)用功能要求進(jìn)行設(shè)計,實現(xiàn)了IEC61850 MMS協(xié)議通信、錄波、人機接口等功能。在此基礎(chǔ)上,測試所設(shè)計的插件是否同時滿足通信和LCD顯示的要求。測試插件在不同網(wǎng)絡(luò)通信壓力下CPU的負(fù)荷率及LCD顯示情況,見表1。
表1 不同網(wǎng)絡(luò)通信壓力下CPU負(fù)荷率
測試結(jié)果表明,不同網(wǎng)絡(luò)壓力下,CPU的負(fù)荷率不高于30%,LCD顯示界面清晰,界面切換流暢,插件同時滿足了通信和顯示的要求。
該通信管理插件及 LCD顯示系統(tǒng)通過了第三方測試,已在特高壓串補工程控制保護(hù)裝置中得到應(yīng)用,目前運行穩(wěn)定。
本文基于POWERPC+FPGA的硬件架構(gòu),提出了在電力系統(tǒng)控制保護(hù)裝置通信管理插件上實現(xiàn)LCD顯示的方案,并加以實現(xiàn)。POWERPC通過基于 Qt開發(fā)的顯示模塊應(yīng)用程序,將顯示數(shù)據(jù)通過LINUX系統(tǒng)LCD驅(qū)動的Framebuffer設(shè)備快速傳輸給FPGA,而FPGA則實現(xiàn)顯存數(shù)據(jù)存儲及LCD控制器功能。
該方案取消了獨立顯示系統(tǒng),其CPU開銷小,簡化了LCD顯示系統(tǒng)設(shè)計,為控制保護(hù)裝置提供了一種靈活有效、簡便經(jīng)濟的LCD顯示方案。
[1] 邰能靈, 范春菊, 胡炎. 現(xiàn)代電力系統(tǒng)繼電保護(hù)原理[M]. 北京: 中國電力出版社, 2012.
[2] 李響, 劉國偉, 馮亞東, 等. 新一代控制保護(hù)系統(tǒng)通用硬件平臺設(shè)計與應(yīng)用[J]. 電力系統(tǒng)自動化, 2012,36(14): 52-55.
[3] 李巖, 劉濤, 黎小林, 等. 南澳多端柔性直流輸電工程控制保護(hù)系統(tǒng)體系架構(gòu)[C]//第五屆電能質(zhì)量及柔性輸電技術(shù)研討會論文集, 廣州, 2014: 513-518.
[4] 劉益青, 高偉聰, 魏鵬, 等. 基于MCU+DSP多處理器構(gòu)架的微機保護(hù)硬件平臺設(shè)計[J]. 電力系統(tǒng)保護(hù)與控制, 2010, 38(10): 89-91, 95.
[5] 成敬周, 張舉, 康怡, 等. 基于可編程芯片及數(shù)字信號處理器的微機保護(hù)硬件平臺設(shè)計方案[J]. 電工技術(shù)雜志, 2004, 24(12): 78-82.
[6] Freescale. P1020 QorIO integrated processor reference manual[Z]. 2013.
[7] Xilinx. Spartan-6 family overview[Z]. 2012.
[8] Xilinx. Spartan-6 FPGA data sheet[Z]. 2011.
[9] 吳連慧, 周建江, 夏偉杰. 基于FPGA的DDR3多端口讀寫存儲器管理設(shè)計[J]. 單片機與嵌入式系統(tǒng)應(yīng)用, 2015, 14(1): 71-74.
[10] Xilinx. Spartan-6 FPGA memory interface solutions user giude[Z]. 2011.