摘 要:首先介紹了軟硬件協(xié)同設(shè)計方法的發(fā)展過程和狀態(tài)監(jiān)測裝置開發(fā)的背景資料,然后利用該方法設(shè)計了一款新型的高性能狀態(tài)監(jiān)測裝置,并分別從硬件和軟件2個角度對設(shè)計方法進行了深入說明。該裝置已成功集成于水電機組在線監(jiān)測系統(tǒng)中,實際應用證實了它具有性能高、穩(wěn)定性好、擴展性強等優(yōu)點,同時該設(shè)計方法對于電力場合其它類似應用亦有較大的借鑒意義。
關(guān)鍵詞:軟硬件協(xié)同; SoPC; 狀態(tài)監(jiān)測; Linux; FPGA; PLC
中圖分類號:TN91934 文獻標識碼:A 文章編號:1004373X(2012)22000103
軟硬件協(xié)同設(shè)計(Hardware/Software Codesign)是在20世紀90年代興起的跨領(lǐng)域交叉學科[1]。隨著超大規(guī)模集成電路制造工藝的進步,單個芯片所能提供的晶體管數(shù)量已經(jīng)超過了大多數(shù)電子系統(tǒng)的需求,專用集成電路(Application Specific Integrated Circuit,ASIC)設(shè)計逐漸進入了片上系統(tǒng)(System on Chip,SoC)設(shè)計的時代。
片上可編程系統(tǒng)(System on a Programmable Chip,SoPC)是Altera公司提出來的一種靈活、高效的SoC解決方案。它是一種特殊的嵌入式系統(tǒng):首先,它是系統(tǒng)芯片SoC,即單個芯片能完成系統(tǒng)的主要邏輯功能;其次,它是可編程系統(tǒng),具有靈活的設(shè)計方式,可裁剪、可升級、可擴充,并具備軟硬件在系統(tǒng)可編程的功能[23]。
由此可見,軟硬件協(xié)同設(shè)計是電子系統(tǒng)復雜化后的一種設(shè)計新趨勢,其中SoPC是這一趨勢的典型代表。SoPC技術(shù)為嵌入式系統(tǒng)設(shè)計提供了一種更為方便、靈活和可靠的軟硬件協(xié)同實現(xiàn)方式。本文利用基于SoPC的軟硬件協(xié)同設(shè)計方法實現(xiàn)了水電機組在線監(jiān)測系統(tǒng)中的狀態(tài)監(jiān)測裝置,是軟硬件協(xié)同設(shè)計技術(shù)在電力場合的嵌入式裝置開發(fā)中的創(chuàng)新式的嘗試。
1 基于SoPC的軟硬件協(xié)同設(shè)計
1.1 設(shè)計思想
基于SoPC的軟硬件協(xié)同設(shè)計的核心是系統(tǒng)功能集成,設(shè)計思想較傳統(tǒng)方法有了根本改變,即從以功能設(shè)計為基礎(chǔ)的傳統(tǒng)流程轉(zhuǎn)變到以功能組裝為基礎(chǔ)的全新流程。軟硬件協(xié)同設(shè)計在實際應用中表現(xiàn)為軟硬件協(xié)同設(shè)計平臺的開發(fā),首先對不同的任務目標找到最恰當?shù)脑O(shè)計方案,然后進行軟硬件劃分,產(chǎn)生硬件描述、軟件描述和軟硬件邊界描述3個部分。軟硬件劃分是軟硬件協(xié)同設(shè)計的關(guān)鍵步驟,其基本任務是在滿足某些約束的條件下,將系統(tǒng)功能行為“最優(yōu)地”分配到一定的軟硬件系統(tǒng)結(jié)構(gòu)上進行設(shè)計規(guī)劃[4]。
1.2 設(shè)計流程
軟硬件協(xié)同設(shè)計就是同時設(shè)計系統(tǒng)中的軟件和硬件部分,來滿足系統(tǒng)的性能指標。面向SoPC的軟硬件協(xié)同設(shè)計流程從目標系統(tǒng)構(gòu)思開始。對一個給定的目標系統(tǒng),經(jīng)過構(gòu)思,完成其系統(tǒng)整體描述,然后交給軟硬件協(xié)同設(shè)計的開發(fā)集成環(huán)境,由計算機自動完成剩余的全部工作。一般而言,還要經(jīng)過模塊的行為描述、對模塊的有效性檢查、軟硬件劃分、硬件綜合、軟件編譯、軟硬件集成,軟硬件協(xié)同仿真與驗證等各個階段。軟硬件協(xié)同設(shè)計流程如圖1所示。
數(shù)據(jù)采集分析是狀態(tài)監(jiān)測裝置的實現(xiàn)基礎(chǔ)和核心功能,它設(shè)計的優(yōu)劣直接影響著狀態(tài)監(jiān)測裝置的參數(shù)指標的好壞,而本文中采用的基于SoPC嵌入式軟硬件協(xié)同設(shè)計很好地實現(xiàn)了該部分的功能,本章著重介紹該部分功能的硬件設(shè)計思路。采用可編程邏輯器件(FPGA)設(shè)計數(shù)據(jù)采集系統(tǒng),具有集成度高、工作頻率快、編程配置靈活、抗干擾能力強等一系列優(yōu)點。此外,還可以在FPGA芯片內(nèi)進行采集控制、緩沖、信號處理、傳輸控制、通信。本裝置中正是按照上述的軟硬件協(xié)同設(shè)計思路合理分割功能,較高性能地實現(xiàn)了在線的多路狀態(tài)監(jiān)測。
2.1 采集控制IP設(shè)計
采集控制IP主要以下幾部分:采集控制邏輯,各種寄存器,數(shù)據(jù)緩存RAM塊,時間戳計數(shù)器,PLB_EMC接口伺服邏輯。工作時鐘為10 MHz。經(jīng)后期軟件驗證,該模塊的采樣頻率最高可達12 kHz,同時可最多對84路模擬量進行采樣。
2.2 信號分析IP設(shè)計
為節(jié)約CPU資源,減輕軟件開發(fā)負擔,本系統(tǒng)中信號分析采用FPGA硬件邏輯完成,信號分析IP直接從原始信號數(shù)據(jù)計算得到直流,基波以及各次諧波的幅值和相位等特征量,具有運算時間固定,速度快,不易出錯,不占用CPU軟件資源等優(yōu)點。設(shè)計框圖如圖2所示。主要包括數(shù)據(jù)流控制邏輯,F(xiàn)FT運算IP,幅頻相頻計算模塊,均值和峰峰值計算模塊,分析結(jié)果存儲緩沖RAM,PLB_EMC接口伺服邏輯。
其中FFT運算和幅值相位計算采用了Xilinx的IP,為節(jié)省FPGA邏輯資源,4 096點FFT采用基2(Radix2)算法簡化版,突發(fā)輸入輸出模式,在速度達到的情況下盡可能的縮減面積。
在完成了信號分析IP的邏輯后,進行了仿真工作,仿真數(shù)據(jù)由Matlab模擬計算得到,通過TestBench送給分析模塊進行仿真,仿真環(huán)境為Mentor Graphics公司的ModelSim 6.3g。下面是一些具體的仿真結(jié)果以及和Matlab仿真的對比。
在Matlab中產(chǎn)生一個正弦信號,并做4 096點FFT,計算結(jié)果如圖2所示。
圖2 4 096 FFT歸一化結(jié)果圖3是FFT工作的時序圖,可以看到在選擇了基2(Radix2)算法簡化版,突發(fā)輸入輸出模式后,4 096點FFT的計算時間為533.24 μs,較軟件算法快很多,從而使系統(tǒng)能勝任大數(shù)據(jù)量(84路16位數(shù)據(jù))高分辨率(4 096點)信號分析。
圖3 FFT分析仿真結(jié)果圖2和圖3是對模擬數(shù)據(jù)進行Matlab仿真和ModelSim仿真二者結(jié)果的比較,可以看到原始計算結(jié)果有一定的誤差,歸一化后完全一致,產(chǎn)生誤差的主要原因是在Matlab中的FFT是浮點數(shù)計算,而在FPGA中的FFT選擇的是定點數(shù)計算。仿真結(jié)果表明此模塊可以完成信號分析的功能,且分析結(jié)果達到較高精度。
3 裝置軟件設(shè)計
裝置的軟件結(jié)構(gòu)如圖4所示,主要由以下幾個部分組成:嵌入式Linux操作系統(tǒng)、設(shè)備驅(qū)動程序(SJ90Drv.o)、數(shù)據(jù)采集控制與處理程序(SJ90IOAcc)、系統(tǒng)組態(tài)配置與監(jiān)視分析程序(SJ90Logo)、通信接口程序(SJ90Comm)、CAN網(wǎng)驅(qū)動和I2C驅(qū)動[5]。
(1) 嵌入式Linux操作系統(tǒng):主要負責進程管理、進程間通信、內(nèi)存管理、實現(xiàn)文件系統(tǒng)、提供I/O接口及對其他資源進行管理;
(2) 設(shè)備驅(qū)動程序(SJ90Drv.o):運行于系統(tǒng)內(nèi)核空間,將緩存的存貯空間映射為字符設(shè)備,響應設(shè)備中斷,建立采集數(shù)據(jù)交換緩沖存貯,提供用戶程序與操作系統(tǒng)的接口,完成用戶空間和內(nèi)核空間的數(shù)據(jù)交換;
(3) 數(shù)據(jù)采集控制與處理程序(SJ90IOAcc):主要負責建立共享內(nèi)存,管理系統(tǒng)配置信息、實時數(shù)據(jù),提供連續(xù)、自主的在線數(shù)據(jù)采集控制、信號處理、報警檢測、歷史數(shù)據(jù)存貯和故障錄波存貯等功能,通過設(shè)備讀寫和NetLink通信接口與內(nèi)核態(tài)設(shè)備驅(qū)動程序進行數(shù)據(jù)交換;
(4) 系統(tǒng)組態(tài)配置與監(jiān)視分析程序(SJ90Logo):基于MiniGUI圖形環(huán)境,提供可視化的系統(tǒng)參數(shù)配置(含機組、傳感器、通道、測點信息配置等)功能,提供多種實時數(shù)據(jù)監(jiān)視圖表、歷史趨勢分析圖表和時頻振擺分析圖表;
(5) 數(shù)據(jù)通信接口程序(SJ90Comm):實現(xiàn)本系統(tǒng)與其他系統(tǒng)的數(shù)據(jù)交換,系統(tǒng)提供串口和網(wǎng)絡2種方式傳送數(shù)據(jù),支持的協(xié)議分別為MODBUS_RTU和MODBUS_TCP;
(6) CAN網(wǎng)驅(qū)動和I2C驅(qū)動:運行于系統(tǒng)內(nèi)核空間,提供用戶程序與操作系統(tǒng)的接口,完成用戶空間和內(nèi)核空間的數(shù)據(jù)交換;CAN網(wǎng)驅(qū)動獲取開關(guān)量以及慢變量信號;I2C驅(qū)動完成硬件點燈以及報警等功能。
4 結(jié) 語
基于SoPC的軟硬件協(xié)同設(shè)計在圖像處理、無線通信、軍事武器等場合已經(jīng)有了較多應用,本文則將該設(shè)計方法應用于狀態(tài)監(jiān)測裝置中,并通過該設(shè)計方法最大限度地提升和優(yōu)化了該采集系統(tǒng)的性能。筆者認為該設(shè)計方法同樣適合于電力行業(yè)中其他一些實時性強、運算量大、功能復雜的多路采集分析裝置中, 以該設(shè)計思路替代以往的CPU+DSP,CPU+FPGA等多處理器芯片的設(shè)計方法,可實現(xiàn)系統(tǒng)級優(yōu)化設(shè)計。
參 考 文 獻
[1] 趙川,徐濤,孫曉光.高性能處理系統(tǒng)的軟硬件協(xié)同設(shè)計研究[J].計算機工程與科學,2009,31(1):2023.
[2] 葛保建.基于SoPC的軟硬件協(xié)同設(shè)計平臺的研究與實現(xiàn)[D].武漢:武漢科技大學,2008.
[3] 李志軍,陳麗娟,劉建霞.實現(xiàn)SoPC的嵌入式軟硬件協(xié)同設(shè)計平臺[J].單片機與嵌入式系統(tǒng)應用,2011,19(5):810.
[4] 唐思章,黃勇.SoPC與嵌入式系統(tǒng)軟硬件協(xié)同設(shè)計[J].單片機與嵌入式系統(tǒng)應用,2005,13(12):58.
[5] 郭濤,田澤.SoC設(shè)計中基于Linux協(xié)同驗證的研究和實現(xiàn)[J].軟件導刊,2009,8(5):1921.
[6] 朱浩,陳喜陽,李友平,等.水電機組在線監(jiān)測中同步整周期采樣實現(xiàn)策略[J].電力系統(tǒng)自動化,2007,31(4):8084.
[7] 潘偉峰,張茂春,夏淵,等.SJ90振動擺度監(jiān)測裝置及其在水電機組在線監(jiān)測系統(tǒng)的應用[J].水電自動化與大壩監(jiān)測,2009,33(1):3033.
[8] 馬國俊.SoC技術(shù)及設(shè)計方法研究[J].自動化與儀器儀表,2012,13(1):68.
[9] 湯惟,保建.基于FPGA的SoPC軟硬件協(xié)同設(shè)計[J].江漢大學學報,2007,35(3):4952.
[10] 王攀科,程波,周維超.自定制IP在SoPC系統(tǒng)中的實現(xiàn)及性能分析[J].儀器儀表用戶,2009,16(1):6970.
[11] 施沖,潘偉峰,朱浩,等.SJ90振動擺度監(jiān)測裝置在水電機組在線監(jiān)測系統(tǒng)中的應用[J].水電廠自動化,2007,10(4):226231.
作者簡介: 于 海 男,1980年出生,江蘇鹽城人,博士,工程師。主要研究方向為電力系統(tǒng)自動化。
姚啟桂 男,1983年出生,安徽阜陽人,碩士,工程師。主要研究方向為電力系統(tǒng)自動化。
虞 躍 男,1982年出生,江蘇金壇人,碩士,工程師。主要研究方向為電力系統(tǒng)自動化。
朱 浩 男,1974年出生,江蘇徐州人,碩士,高級工程師。主要研究方向為水電廠自動化、水電機組狀態(tài)監(jiān)測。2012年11月15日第35卷第22期