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