軟硬件協(xié)同設(shè)計(jì)(Hardware/Software Co-deaign)是在20世紀(jì)90年代興起的跨領(lǐng)域交叉學(xué)科。隨著超大規(guī)模集成電路制造工藝的進(jìn)步,,單個(gè)芯片所能提供的晶體管數(shù)量已經(jīng)超過了大多數(shù)電子系統(tǒng)的需求,,專用集成電路(Application Specific Integrated Circuit,ASIC)設(shè)計(jì)逐漸進(jìn)入了片上系統(tǒng)(System on Chip,,SoC)設(shè)計(jì)的時(shí)代,。
片上可編程系統(tǒng)(System on a Programmable Chip,SoPC)是Altera公司提出來(lái)的一種靈活,、高效的SoC解決方案,。它是一種特殊的嵌入式系統(tǒng);首先,,它是系統(tǒng)芯片SoC,,即單個(gè)芯片能完成系統(tǒng)的主要邏輯功能;其次,,它是可編程系統(tǒng),,具有靈活的設(shè)計(jì)方式,可裁剪,、可升級(jí),、可擴(kuò)充,并具備軟硬件在系統(tǒng)可編程的功能,。
由此可見,,軟硬件協(xié)同設(shè)計(jì)是電子系統(tǒng)復(fù)雜化后的一種設(shè)計(jì)新趨勢(shì),其中SoPC是這一趨勢(shì)的典型代表,。SoPC技術(shù)為嵌入式系統(tǒng)設(shè)計(jì)提供了一種更為方便,、靈活和可靠的軟硬件協(xié)同實(shí)現(xiàn)方式。本文利用基于SoPC的軟硬件協(xié)同設(shè)計(jì)方法實(shí)現(xiàn)了水電機(jī)組在線監(jiān)測(cè)系統(tǒng)中的狀態(tài)監(jiān)測(cè)裝置,,是軟硬件協(xié)同設(shè)計(jì)技術(shù)在電力場(chǎng)合的嵌入式裝置開發(fā)中的創(chuàng)新式的嘗試,。
1 基于SoPC的軟硬件協(xié)同設(shè)計(jì)
1.1 設(shè)計(jì)思想
基于SoPC的軟硬件協(xié)同設(shè)計(jì)的核心是系統(tǒng)功能集成,設(shè)計(jì)思想較傳統(tǒng)方法有了根本改變,即從以功能設(shè)計(jì)為基礎(chǔ)的傳統(tǒng)流程轉(zhuǎn)變到以功能組裝為基礎(chǔ)的全新流程,。軟硬件協(xié)同設(shè)計(jì)在實(shí)際應(yīng)用中表現(xiàn)為軟硬件協(xié)同設(shè)計(jì)平臺(tái)的開發(fā),,首先對(duì)不同的任務(wù)目標(biāo)找到最恰當(dāng)?shù)脑O(shè)計(jì)方案,然后進(jìn)行軟硬件劃分,,產(chǎn)生硬件描述,、軟件描述和軟硬件邊界描述3個(gè)部分。軟硬件劃分是軟硬件協(xié)同設(shè)計(jì)的關(guān)鍵步驟,,其基本任務(wù)是在滿足某些約束的條件下,,將系統(tǒng)功能行為“最優(yōu)地”分配到一定的軟硬件系統(tǒng)結(jié)構(gòu)上進(jìn)行設(shè)計(jì)規(guī)劃。
1.2 設(shè)計(jì)流程
軟硬件協(xié)同設(shè)計(jì)就是同時(shí)設(shè)計(jì)系統(tǒng)中的軟件和硬件部分,,來(lái)滿足系統(tǒng)的性能指標(biāo),。面向SoPC的軟硬件協(xié)同設(shè)計(jì)流程從目標(biāo)系統(tǒng)構(gòu)思開始。對(duì)一個(gè)給定的目標(biāo)系統(tǒng),,經(jīng)過構(gòu)思,,完成其系統(tǒng)整體描述,然后交給軟硬件協(xié)同設(shè)計(jì)的開發(fā)集成環(huán)境,,由計(jì)算機(jī)自動(dòng)完成剩余的全部工作,。一般而言,還要經(jīng)過模塊的行為描述,、對(duì)模塊的有效性檢查,、軟硬件劃分、硬件綜合,、軟件編譯,、軟硬件集成,軟硬件協(xié)同仿真與驗(yàn)證等各個(gè)階段,。軟硬件協(xié)同設(shè)計(jì)流程如圖1所示,。
2 裝置硬件設(shè)計(jì)
數(shù)據(jù)采集分析是狀態(tài)監(jiān)測(cè)裝置的實(shí)現(xiàn)基礎(chǔ)和核心功能,它設(shè)計(jì)的優(yōu)劣直接影響著狀態(tài)監(jiān)測(cè)裝置的參數(shù)指標(biāo)的好壞,,而本文中采用的基于SoPC嵌入式軟硬件協(xié)同設(shè)計(jì)很好地實(shí)現(xiàn)了該部分的功能,,本章著重介紹該部分功能的硬件設(shè)計(jì)思路。采用可編程邏輯器件(FPGA)設(shè)計(jì)數(shù)據(jù)采集系統(tǒng),,具有集成度高,、工作頻率快、編程配置靈活,、抗干擾能力強(qiáng)等一系列優(yōu)點(diǎn),。此外,還可以在FPGA芯片內(nèi)進(jìn)行采集控制、緩沖、信號(hào)處理、傳輸控制,、通信,。本裝置中正是按照上述的軟硬件協(xié)同設(shè)計(jì)思路合理分割功能,,較高性能地實(shí)現(xiàn)了在線的多路狀態(tài)監(jiān)測(cè)。
2. 1 采集控制IP設(shè)計(jì)
采集控制IP主要以下幾部分:采集控制邏輯,,各種寄存器,,數(shù)據(jù)緩存RAM塊,時(shí)間戳計(jì)數(shù)器,,PLB_EMC接口伺服邏輯,。工作時(shí)鐘為10 MHz。經(jīng)后期軟件驗(yàn)證,,該模塊的采樣頻率最高可達(dá)12 kHz,,同時(shí)可最多對(duì)84路模擬量進(jìn)行采樣,。
2.2 信號(hào)分析IP設(shè)計(jì)
為節(jié)約CPU資源,,減輕軟件開發(fā)負(fù)擔(dān),本系統(tǒng)中信號(hào)分析采用FPGA硬件邏輯完成,,信號(hào)分析IP直接從原始信號(hào)數(shù)據(jù)計(jì)算得到直流,,基波以及各次諧波的幅值和相位等特征量,具有運(yùn)算時(shí)間固定,,速度快,,不易出錯(cuò),不占用CPU軟件資源等優(yōu)點(diǎn),。設(shè)計(jì)框圖如圖2所示,。主要包括數(shù)據(jù)流控制邏輯,F(xiàn)FT運(yùn)算IP,,幅頻相頻計(jì)算模塊,,均值和峰峰值計(jì)算模塊,分析結(jié)果存儲(chǔ)緩沖RAM,,PLB_EMC接口伺服邏輯,。
其中FFT運(yùn)算和幅值相位計(jì)算采用了Xilinx的IP,為節(jié)省FPGA邏輯資源,,4 096點(diǎn)FFT采用基-2(Radix-2)算法簡(jiǎn)化版,,突發(fā)輸入輸出模式,在速度達(dá)到的情況下盡可能的縮減面積,。
在完成了信號(hào)分析IP的邏輯后,,進(jìn)行了仿真工作,仿真數(shù)據(jù)由Matlab模擬計(jì)算得到,,通過TestBench送給分析模塊進(jìn)行仿真,,仿真環(huán)境為Mentor Graphics公司的ModelSim 6.3g,。下面是一些具體的仿真結(jié)果以及和Matlab仿真的對(duì)比。
在Matlab中產(chǎn)生一個(gè)正弦信號(hào),,并做4 096點(diǎn)FFT,,計(jì)算結(jié)果如圖2所示。
圖3是FFT工作的時(shí)序圖,,可以看到在選擇了基-2(Radix-2)算法簡(jiǎn)化版,,突發(fā)輸入輸出模式后,4 096點(diǎn)FFT的計(jì)算時(shí)間為533.24 μs,,較軟件算法快很多,,從而使系統(tǒng)能勝任大數(shù)據(jù)量(84路16位數(shù)據(jù))高分辨率(4 096點(diǎn))信號(hào)分析。
圖2和圖3是對(duì)模擬數(shù)據(jù)進(jìn)行Matlab仿真和ModelSim仿真二者結(jié)果的比較,,可以看到原始計(jì)算結(jié)果有一定的誤差,,歸一化后完全一致,產(chǎn)生誤差的主要原因是在Matlab中的FFT是浮點(diǎn)數(shù)計(jì)算,,而在FPGA中的FFT選擇的是定點(diǎn)數(shù)計(jì)算,。仿真結(jié)果表明此模塊可以完成信號(hào)分析的功能,且分析結(jié)果達(dá)到較高精度,。
3 裝置軟件設(shè)計(jì)
裝置的軟件結(jié)構(gòu)如圖4所示,,主要由以下幾個(gè)部分組成:嵌入式Linux操作系統(tǒng)、設(shè)備驅(qū)動(dòng)程序(SJ90Dry.o),、數(shù)據(jù)采集控制與處理程序(SJ90IOAcc),、系統(tǒng)組態(tài)配置與監(jiān)視分析程序(SJ90Logo)、通信接口程序(SJ90Comm),、CAN網(wǎng)驅(qū)動(dòng)和I2C驅(qū)動(dòng),。
其中:
(1)嵌入式Linux操作系統(tǒng):主要負(fù)責(zé)進(jìn)程管理、進(jìn)程間通信,、內(nèi)存管理,、實(shí)現(xiàn)文件系統(tǒng)、提供I/O接口及對(duì)其他資源進(jìn)行管理,;
(2)設(shè)備驅(qū)動(dòng)程序(SJ90Dry.o):運(yùn)行于系統(tǒng)內(nèi)核空間,,將緩存的存貯空間映射為字符設(shè)備,響應(yīng)設(shè)備中斷,,建立采集數(shù)據(jù)交換緩沖存貯,,提供用戶程序與操作系統(tǒng)的接口,完成用戶空間和內(nèi)核空間的數(shù)據(jù)交換,;
(3)數(shù)據(jù)采集控翻與處理程序(SJ90IOAcc):主要負(fù)責(zé)建立共享內(nèi)存,,管理系統(tǒng)配置信息,實(shí)時(shí)數(shù)據(jù),,提供連續(xù),、自主的在線數(shù)據(jù)采集控制,、信號(hào)處理、報(bào)警檢測(cè),、歷史數(shù)據(jù)存貯和故障錄波存貯等功能,,通過設(shè)備讀寫和NetLink通信接口與內(nèi)核態(tài)設(shè)備驅(qū)動(dòng)程序進(jìn)行數(shù)據(jù)交換;
(4)系統(tǒng)組態(tài)配置與監(jiān)視分析程序(SJ90Logo):基于MiniGUI圖形環(huán)境,,提供可視化的系統(tǒng)參數(shù)配置(含機(jī)組,、傳感器、通道,、測(cè)點(diǎn)信息配置等)功能,,提供多種實(shí)時(shí)數(shù)據(jù)監(jiān)視圖表、歷史趨勢(shì)分析圖表和時(shí)頻振擺分析圖表,;
(5)數(shù)據(jù)通信接口程序(SJ90Comm):實(shí)現(xiàn)本系統(tǒng)與其他系統(tǒng)的數(shù)據(jù)交換,,系統(tǒng)提供串口和網(wǎng)絡(luò)2種方式傳送數(shù)據(jù),支持的協(xié)議分別為MODB US_RTU和MODBUS_TCP,;
(6)CAN網(wǎng)驅(qū)動(dòng)和I2C驅(qū)動(dòng):運(yùn)行于系統(tǒng)內(nèi)核空間,,提供用戶程序與操作系統(tǒng)的接口,完成用戶空間和內(nèi)核空間的數(shù)據(jù)交換,;CAN網(wǎng)驅(qū)動(dòng)獲取開關(guān)量以及慢變量信號(hào),;I2C驅(qū)動(dòng)完成硬件點(diǎn)燈以及報(bào)警等功能。
4 結(jié)語(yǔ)
基于SoPC的軟硬件協(xié)同設(shè)計(jì)在圖像處理,、無(wú)線通信、軍事武器等場(chǎng)合已經(jīng)有了較多應(yīng)用,,本文則將該設(shè)計(jì)方法應(yīng)用于狀態(tài)監(jiān)測(cè)裝置中,,并通過該設(shè)計(jì)方法最大限度地提升和優(yōu)化了該采集系統(tǒng)的性能。筆者認(rèn)為該設(shè)計(jì)方法同樣適合于電力行業(yè)中其他一些實(shí)時(shí)性強(qiáng),、運(yùn)算量大,、功能復(fù)雜的多路采集分析裝置中,以該設(shè)計(jì)思路替代以往的CPU+DSP,,CPU+FPGA等多處理器芯片的設(shè)計(jì)方法,,可實(shí)現(xiàn)系統(tǒng)級(jí)優(yōu)化設(shè)計(jì)。