《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于SoC FPGA的光伏電力通信管理機系統(tǒng)
基于SoC FPGA的光伏電力通信管理機系統(tǒng)
2018年電子技術(shù)應(yīng)用第2期
張 琳1,,梅雪松2,陳 勇1
1.電子科技大學(xué) 微電子與固體電子學(xué)院,,四川 成都610000,;2.湖北追日電氣股份有限公司,湖北 襄陽441000
摘要: 介紹了一種基于SoC FPGA的光伏電力通信管理機系統(tǒng)的設(shè)計方法,。該系統(tǒng)采用新型的集成有ARM硬核處理器的SoC FPGA作為主控芯片,,將傳統(tǒng)通信管理機的運算和通信工作進行合理劃分,并由FPGA和ARM處理器協(xié)同實現(xiàn),。通過采用軟硬件相結(jié)合的設(shè)計方式,,本系統(tǒng)能夠簡化電路設(shè)計,降低通信事務(wù)對CPU的中斷數(shù)量,,增加支持MODBUS協(xié)議的RS485端口總量,,并通過獨立的NIOS II備用系統(tǒng)保證了系統(tǒng)在災(zāi)難情況下的可恢復(fù)性等,,所以更加適合光伏電力系統(tǒng)中多設(shè)備、大數(shù)據(jù)量的應(yīng)用,。
中圖分類號: TN876.7
文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.172636
中文引用格式: 張琳,,梅雪松,陳勇. 基于SoC FPGA的光伏電力通信管理機系統(tǒng)[J].電子技術(shù)應(yīng)用,,2018,,44(2):32-35,43.
英文引用格式: Zhang Lin,,Mei Xuesong,,Chen Yong. Photovoltaic power communication management system based on SoC FPGA[J]. Application of Electronic Technique,2018,,44(2):32-35,,43.

Photovoltaic power communication management system based on SoC FPGA
Zhang Lin1,Mei Xuesong2,,Chen Yong1
1.School of Microelectronics and Solid-State Electronics,,University of Electronics Science and Technology of China, Chengdu 610000,,China,; 2.Surpass Sun Electric Co.,Ltd.,,Xiangyang 441000,,China
Abstract: A design method of photovoltaic power communication management system based on SoC FPGA is introduced in this paper. The system uses the new-type SoC FPGA integrated with ARM hardcore process as its main control chip, which divides the work of operation and communication of traditional communication management unit reasonably and is implemented by FPGA and ARM processor. By adopting the design of combining hardware with software, this system can simplify the circuit design, reduce the number of CPU interrupts for communication transactions, increase the total number of RS485 ports which support MODBUS protocol,and the system is recoverable in a disaster situation through the independent NIOS II backup system, etc, so it is more suitable for the application of multiple devices and massive data in photovoltaic power system.
Key words : communication management unit,;SoC FPGA,;photovoltaic power systems;collaborative design

0 引言

    光伏發(fā)電站利用大量的光伏電池板完成從光能到直流電能的轉(zhuǎn)換,,再將直流電能使用逆變器轉(zhuǎn)換為50 Hz的交流電,,輸送到電網(wǎng)中。整個光伏電站中電能控制及轉(zhuǎn)換設(shè)備需求量巨大,。通信管理機作為電站中連接各個設(shè)備和電站中控臺的設(shè)備,,通過控制平臺控制下行的Rtu設(shè)備,實現(xiàn)遙信,、遙測,、遙控等信息的采集,將消息反饋回調(diào)度中心,,然后控制中心管理員通過對消息的處理分析,,選擇將執(zhí)行的命令,達到遠(yuǎn)動輸出調(diào)度命令的目標(biāo)[1-2]

    目前廣泛采用的通信管理機實現(xiàn)方案主要有3種:PowerPC處理器+串口擴展芯片架構(gòu),、ARM處理器架構(gòu),、ARM處理器+FPGA架構(gòu)。其中:(1)PowerPC處理器+串口擴展芯片架構(gòu)使用帶通信協(xié)處理器的PowerPC處理器作為系統(tǒng)的核心,,使用串口通信擴展芯片為PowerPC擴展出最多16個串口[3]。所有數(shù)據(jù)處理和運算全部由PowerPC處理器完成,,在所有串口全部使用的情況下,,整個系統(tǒng)運行較為緩慢,數(shù)據(jù)的實時性難以保證,。(2)使用單獨ARM處理器作為核心實現(xiàn)的通信管理機結(jié)構(gòu)簡單,,但是能夠支持的串口數(shù)量受到ARM處理器本身集成的串口數(shù)量限制,一般都不超過6個[4],,無法滿足光伏電站中海量設(shè)備的需求,。(3)ARM處理器+FPGA架構(gòu)利用FPGA完成串口擴展,基于ARM處理器完成數(shù)據(jù)的處理和網(wǎng)絡(luò)協(xié)議的實現(xiàn),,它本質(zhì)上和基于PowerPC+串口擴展芯片的方案一致,。該種方案增加了系統(tǒng)的復(fù)雜度,但單性能上提升并不明顯,。以上3種方案都存在的問題是系統(tǒng)有且僅有一個核心單元,,一旦系統(tǒng)宕機,就不得不重啟系統(tǒng),,在系統(tǒng)未恢復(fù)的情況下,,整個系統(tǒng)與電站中心控制臺處于完全斷開的狀態(tài),無法接收中心控制臺的控制指令,。

    本文基于Intel全新的SoC FPGA芯片,,將原本采用分立的FPGA和ARM處理器實現(xiàn)的系統(tǒng)使用單一的SoC FPGA芯片實現(xiàn),并在FPGA上搭建了冗余監(jiān)控系統(tǒng),。在提高系統(tǒng)性能的同時,,保證了系統(tǒng)的在線可恢復(fù)性。

1 系統(tǒng)建模

    Intel Cyclone V SoC FPGA芯片5CSEMA4U23C6芯片是一款在單一芯片上集成了高性能的雙核ARM Cortex-A9 CPU和FPGA的SoC芯片,,它是本系統(tǒng)的核心單元,。

    在本系統(tǒng)中,SoC FPGA芯片上的FPGA部分主要負(fù)責(zé)UART接口的擴展以及MODBUS協(xié)議的加速,。

    在電力系統(tǒng)中,,幾乎所有設(shè)備都支持標(biāo)準(zhǔn)的RS485接口,并使用MODBUS協(xié)議與其他設(shè)備進行通信,。光伏電站中,,因為設(shè)備多、數(shù)據(jù)量大,,通信管理機的一個RS485端口在同一時刻只能和一臺設(shè)備通信,,因此導(dǎo)致數(shù)據(jù)傳輸速度出現(xiàn)瓶頸,。為了解決這個問題,往往采用多個MODBUS網(wǎng)絡(luò)端口來實現(xiàn)眾多設(shè)備的管理[2],。

    眾多電力設(shè)備的數(shù)據(jù)在被通信管理機采集之后最終需要通過以太網(wǎng)接口與電站的中控后臺進行數(shù)據(jù)交互,,該數(shù)據(jù)交互主要通過IEC104協(xié)議實現(xiàn),而IEC104協(xié)議的實現(xiàn)是通過SoC FPGA中的硬件處理系統(tǒng)(Hard Process System,,HPS)運行成熟的Linux操作系統(tǒng)來完成的,。

2 硬件電路方案設(shè)計

2.1 SoC FPGA 配置電路設(shè)計

    為了使系統(tǒng)支持遠(yuǎn)程在線升級,本系統(tǒng)設(shè)置SoC FPGA的FPGA部分接收HPS部分的配置數(shù)據(jù),。HPS部分可以接收串口或者網(wǎng)口傳輸?shù)腇PGA配置文件,。運行時SoC FPGA的HPS部分先啟動并運行Linux操作系統(tǒng),Linux操作系統(tǒng)啟動完畢之后進行FPGA部分的配置,。如果需要遠(yuǎn)程更新FPGA的配置數(shù)據(jù),,只需要通過網(wǎng)口將新的FPGA配置內(nèi)容傳輸?shù)讲僮飨到y(tǒng)所管理的磁盤上替換原來的配置文件,則系統(tǒng)下一次啟動時就可以使用新的配置文件來配置FPGA,。

2.2 SoC FPGA啟動電路設(shè)計

    SoC FPGA中的HPS部分運行Linux操作系統(tǒng),,HPS支持從SD卡、QSPI Flash,、NAND Flash存儲器中啟動,。NAND Flash和QSPI Flash存儲器一般都采用焊接的方式安裝在電路板上,而SD卡則是可拆卸并單獨在PC上讀寫的,。在工業(yè)現(xiàn)場,,如果設(shè)備系統(tǒng)一旦損壞,需要重新燒錄系統(tǒng)時,,QSPI Flash和NAND Flash由于焊接在PCB板上,,只能使用PC在線燒寫,而SD卡則可以采用預(yù)先燒錄好系統(tǒng)的SD卡進行更換,,因此節(jié)省了現(xiàn)場維修的工作量,。

2.3 RS485接口電路設(shè)計

    通信管理機作為一個工業(yè)設(shè)備,其通信接口可能承受各種沖擊,,包括強共模電壓,、高壓靜電、雷擊等[4],,因此通信接口的防護措施至關(guān)重要,。在本系統(tǒng)中,使用RSM3485模塊完成TTL電平到RS485電平的雙向轉(zhuǎn)換,。RSM3485模塊實現(xiàn)標(biāo)準(zhǔn)RS485接口,,具有ESD保護、短路或斷路失效保護功能,內(nèi)置120 kΩ上下拉電阻,,雙絞線輸出,,提供接觸情況下±4 kV和空氣放電情況下±8 kV的ESD放電功能,同時設(shè)計防雷電路,,預(yù)防在雷擊的情況下?lián)p壞通信接口[5],,該接口電路圖如圖1所示。

qrs3-t1.gif

2.4 以太網(wǎng)接口方案設(shè)計

    電力系統(tǒng)通信管理機都要求提供主備雙網(wǎng)口,,以保證在其中一個網(wǎng)口出現(xiàn)故障時,,另一個網(wǎng)口能夠繼續(xù)傳輸必要數(shù)據(jù)。5CSEMA4U23C6芯片默認(rèn)提供了兩個千兆以太網(wǎng)MAC,,但是這兩個MAC都是由HPS部分管理的,為了保證網(wǎng)口的可靠性,,即使在ARM部分系統(tǒng)宕機的情況下,,備用網(wǎng)口也能正常工作,設(shè)計時僅使用一個MAC層,,并由HPS驅(qū)動,,另一個網(wǎng)口使用NIOS II軟核控制集成的以太網(wǎng)通信芯片W5500實現(xiàn)。

    W5500芯片是一個全硬件實現(xiàn)的單芯片TCP/IP協(xié)議芯片,,支持8個Socket端口,,使用非常方便可靠。使用NIOS II 控制W5500完成以太網(wǎng)傳輸,,即使HPS工作異常,,F(xiàn)PGA中的NIOS II CPU還可以繼續(xù)通過W5500進行數(shù)據(jù)的收發(fā),保證備用網(wǎng)口的穩(wěn)定運行,。

3 SoC FPGA應(yīng)用架構(gòu)設(shè)計

    由于SoC FPGA作為一種創(chuàng)新的架構(gòu),,集成了FPGA和高性能HPS,因此在設(shè)計時,,可以充分利用HPS強大的數(shù)據(jù)處理能力,、FPGA側(cè)靈活的定制特性以及HPS和FPGA之間高速通信橋,將各種工作根據(jù)其特性合理分配給FPGA或者HPS,,通過兩者協(xié)作,,以實現(xiàn)最高的性能。

    FPGA側(cè)主要實現(xiàn)UART通信接口的擴展和基于NIOS II 處理器的備用系統(tǒng),。HPS端主要實現(xiàn)大量數(shù)據(jù)處理和通信規(guī)約之間的轉(zhuǎn)換,。圖2為SoC FPGA上的功能劃分框圖。

qrs3-t2.gif

3.1 FPGA邏輯設(shè)計

    FPGA側(cè)邏輯部分實現(xiàn)16個支持MODBUS幀自動識別的UART通信控制單元,,如圖3所示,。每個單元由CRC校驗邏輯、串口數(shù)據(jù)收發(fā)緩存、核心控制狀態(tài)機和MODBUS幀識別邏輯組成,。各單元在核心控制狀態(tài)機的控制下自動完成MODBUS數(shù)據(jù)幀的收發(fā)和數(shù)據(jù)校驗碼的生成[6],,并經(jīng)由Avalon MM Slave接口與HPS傳輸MODBUS接收和需要發(fā)送的數(shù)據(jù)。

qrs3-t3.gif

    圖4為支持MODBUS幀自動識別的增強型UART通信控制單元接收數(shù)據(jù)時的工作狀態(tài)轉(zhuǎn)移圖,。整個狀態(tài)機由空閑狀態(tài)(IDLE),、接收數(shù)據(jù)狀態(tài)(GET_DATA)、接收超時狀態(tài)(TIMEOUT),、接收字節(jié)數(shù)據(jù)完成狀態(tài)(GET_BYTE),、幀傳輸完成狀態(tài)(FRAME_DONE)組成。

qrs3-t4.gif

    當(dāng)主機發(fā)出MODBUS請求幀后,,本模塊進入接收數(shù)據(jù)狀態(tài)(GET_DATA),,每接收到一個字節(jié),就跳轉(zhuǎn)進入接收字節(jié)完成狀態(tài)(GET_BYTE),,當(dāng)幀結(jié)束判定信號有效時,,表明一幀數(shù)據(jù)接收完成,此時進入幀接收完成狀態(tài),。通過比對接收到的數(shù)據(jù)幀中CRC數(shù)據(jù)字段和FPGA中CRC校驗單元對該幀產(chǎn)生的校驗數(shù)據(jù),,確定當(dāng)前幀是否正確。然后通過FPGA與HPS互聯(lián)橋向HPS發(fā)出中斷請求,,并報告當(dāng)前幀的校驗結(jié)果,,HPS側(cè)的Linux驅(qū)動程序則會根據(jù)校驗結(jié)果完成相應(yīng)的處理,如果校驗正確,,則讀取該幀數(shù)據(jù)并遞交給上層MODBUS協(xié)議層進行進一步解析處理,,如果該幀錯誤,則丟棄該幀,,并進入錯誤處理程序,。

3.2 Linux軟件設(shè)計

    SoC FPGA芯片中的HPS運行Linux操作系統(tǒng),在Linux系統(tǒng)上運行通信管理機的應(yīng)用程序,。該應(yīng)用程序主要包括三大部分,,分別為MODBUS協(xié)議主站、IEC104協(xié)議從站,、MODBUS和IEC104協(xié)議間規(guī)約轉(zhuǎn)換程序,。其中,MODBUS協(xié)議主站運行開源的Libmodbus協(xié)議棧,,完成MODBUS指令和數(shù)據(jù)的收發(fā),。

    Libmodbus協(xié)議棧是一個免費開源的MODBUS協(xié)議棧,支持MODBUS協(xié)議主站和從站功能,。由于本系統(tǒng)在FPGA側(cè)使用硬件邏輯電路已經(jīng)實現(xiàn)了MODBUS協(xié)議的部分功能,,如幀結(jié)束判定,、CRC校驗等。因此,,對Libmodbus協(xié)議棧進行了一定的刪減優(yōu)化,,去掉了底層數(shù)據(jù)幀接收和校驗的部分,僅使用其指令和數(shù)據(jù)解析部分,,這也是本系統(tǒng)的優(yōu)勢,,通過FPGA側(cè)硬件實現(xiàn)MODBUS協(xié)議底層內(nèi)容,降低了處理器的工作量,,使得處理器能夠輕松完成對多達16個基于MODBUS協(xié)議的端口的支持,。

    為了方便實現(xiàn)對FPGA側(cè)的16端口個MODBUS加速器的控制,在Linux側(cè)單獨開設(shè)一個進程用于16端口MODBUS加速器的控制,,當(dāng)該任務(wù)被調(diào)度并得到執(zhí)行機會后,,開始依次查詢當(dāng)前端口的狀態(tài),然后根據(jù)得到的端口狀態(tài)執(zhí)行相應(yīng)的處理代碼,。該程序流程如圖5所示,。

qrs3-t5.gif

    空閑態(tài):當(dāng)查詢到一個端口的狀態(tài)為空閑時,表明此端口已經(jīng)正確地完成了一輪數(shù)據(jù)收發(fā),,在新的通信命令到來之前,該端口將處于空閑狀態(tài),,即不需要發(fā)送數(shù)據(jù),,也不需要接收數(shù)據(jù),MODBUS端口是處于空閑狀態(tài)的,。

    接收成功:當(dāng)查詢到某個端口成功接收到返回的數(shù)據(jù)后,,則開始進行接收數(shù)據(jù)的處理工作,完成之后,,進入下一個端口的狀態(tài)查詢工作,。

    接收超時:當(dāng)查詢到某個端口在設(shè)定的響應(yīng)時間內(nèi)無響應(yīng)時,則返回接收超時狀態(tài),。若檢測到超時狀態(tài),,系統(tǒng)開始進行超時處理工作。接收超時處理完成后,,進入下一個端口的狀態(tài)查詢工作,。

    接收錯誤:當(dāng)查詢到某個端口接收數(shù)據(jù)出錯時,則進行接收錯誤處理工作,。當(dāng)接收錯誤處理完成后,,進入下一個端口的狀態(tài)查詢工作。該部分任務(wù)代碼框架如下所示:

    for(i=0;i<=15;i++)

    {

       port_state=mdp_state_read(port_num),;//讀取指定端口狀態(tài)

       switch(port_state)

       {

        case NO_STATE:break,;//無就緒端口

        case RX_DONE://接收數(shù)據(jù)成功

        …//接收到數(shù)據(jù)處理代碼模塊

           break;

           case RX_TIMEOUT://接收超時

           …//接收超時端口處理代碼模塊

           break;

           case RX_ERROR://接收錯誤

           …//接收錯誤端口處理代碼模塊

           break;

           default:

           printf("default %d\n\n",port_num);//默認(rèn)為讀錯

誤處理,,將狀態(tài)寄存器設(shè)置為錯誤標(biāo)志

           FPGA_WR16((port_num<<8 | 128), 1);

    }//讀到第16個端口后,回到0號口讀取

        if(port_num == 15)  port_num = 0;

        else  port_num ++; //端口號自加1

    }

    usleep(30000); //釋放CPU權(quán)限

3.3 NIOS II備用系統(tǒng)軟件設(shè)計

    通常狀態(tài)下NIOS II CPU處于待機狀態(tài),,若NIOS II CPU在設(shè)定的時間內(nèi)沒有接收到狀態(tài)消息,,則表明HPS系統(tǒng)側(cè)軟件系統(tǒng)崩潰,NIOS II CPU再通過和HPS互聯(lián)的狀態(tài)指示信號確認(rèn)當(dāng)前是操作系統(tǒng)宕機或應(yīng)用程序異常,。如果是應(yīng)用程序異常,,則觸發(fā)Linux側(cè)安全監(jiān)視軟件重啟應(yīng)用程序;如果是操作系統(tǒng)異常,,則啟動備用網(wǎng)口上報當(dāng)前系統(tǒng)故障信息到電站中心控制臺,,并通過硬件復(fù)位來重啟HPS。圖6為NIOS II 備用系統(tǒng)的程序流程圖,。

qrs3-t6.gif

4 系統(tǒng)性能分析

    表1為以16個RS485端口,,每個端口每500 ms完成一次對總線上設(shè)備的數(shù)據(jù)讀取,每次通信數(shù)據(jù)幀長度平均為64 B為例,,分析1 s內(nèi)本系統(tǒng)方案(簡稱SoC FPGA方案)和PowerPC+串口擴展芯片ST16C2550方案(簡稱PowerPC方案)在串口芯片數(shù)量,、CPU的CRC運算事務(wù)、CPU處理中斷次數(shù),、備用網(wǎng)口的獨立性等幾個方面的差異,。

qrs3-b1.gif

5 結(jié)論

    本文設(shè)計的基于Intel SoC FPGA的光伏電力通信管理機系統(tǒng)充分發(fā)揮了FPGA在處理多路并行數(shù)據(jù)通信方面的優(yōu)勢,極大地降低了傳統(tǒng)方案中嵌入式處理器在管理通信事務(wù)時的中斷開銷,,并提升了單個系統(tǒng)中支持MODBUS協(xié)議的RS485端口總量,,能有效簡化光伏電站的通信網(wǎng)絡(luò)布局布線。同時,,由于FPGA的可編程特性,,在不改變硬件電路的前提下,通過對FPGA重新編程的方式,,實現(xiàn)了系統(tǒng)的升級,,解決了光伏電力系統(tǒng)中多設(shè)備、大數(shù)據(jù)量的難題,,增加了系統(tǒng)的應(yīng)用范圍,。

參考文獻

[1] 李樹奇,李國營,,林俊杰.通信管理機在變電站的應(yīng)用[J].信息通信,,2011(6):188,190.

[2] 姚志璋,,張羽翹,,吳敏.光伏電站中的通信技術(shù)[J].農(nóng)村電氣化,2014(7):51-53.

[3] 何寶林,,李明剛,,劉波.MPC850在通信管理器的應(yīng)用[J].現(xiàn)代電子技術(shù),,2005,28(1):71-73.

[4] 路小俊,,吳在軍,,鄭建勇,等.基于ARM平臺及嵌入式實時操作系統(tǒng)的通信管理機[J].電力自動化設(shè)備,,2005,,25(5):46-49.

[5] 魯錦鋒,王蒙,,張婷,,等.光伏匯流箱中RS485通訊抗干擾方法分析[J].電子產(chǎn)品世界,2016,,23(11):57-58.

[6] 于正林,,張龍,黃勇.Modbus通信協(xié)議的FPGA實現(xiàn)[J].現(xiàn)代電子技術(shù),,2010,,33(11):203-207.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。