申 超,易靈芝,龍 辛,黃 波,龐 偉,詹 俊
(1.湘潭大學(xué) 信息工程學(xué)院 電氣工程系,湖南 湘潭 411105;2.湘電風(fēng)能有限公司,湖南 湘潭411105;3.長沙優(yōu)利泰克信息技術(shù)有限公司,湖南 長沙 410000)
風(fēng)力發(fā)電作為一種清潔的可再生能源,同時又是新能源發(fā)電技術(shù)中最成熟和最具規(guī)模開發(fā)條件的發(fā)電方式之一,在世界各地得到迅速發(fā)展[1,2]。
風(fēng)力發(fā)電控制系統(tǒng)一般分為3部分:塔基控制系統(tǒng)、機(jī)艙控制系統(tǒng)和輪轂系統(tǒng)控制[3]。機(jī)艙和輪轂之間一般采用CANopen網(wǎng)絡(luò)通信,機(jī)艙和塔基之間傳輸距離遠(yuǎn),傳統(tǒng)的通信方式,如RS485、CAN等都受通信距離以及傳輸頻帶的限制,無法滿足要求,而光纖通信具有帶寬資源豐富、通信容量大、中繼距離長等特點(diǎn),可以保證數(shù)據(jù)的遠(yuǎn)距離實(shí)時傳輸,并且對于電磁的抗干擾能力很強(qiáng),因此對于光纖在機(jī)艙和塔基間通信應(yīng)用的研究是很有必要的[4]。
本文以STM32作為控制平臺,以光纖為介質(zhì),UDP通信協(xié)議格式作為塔基和機(jī)艙的數(shù)據(jù)傳輸方式開發(fā)了光纖通信模塊。為了保證風(fēng)機(jī)控制模塊能訪問到傳輸過程中的數(shù)據(jù),系統(tǒng)采用FPGA實(shí)現(xiàn)了Ethernet CAT 的主從站結(jié)構(gòu)[5]。
在風(fēng)機(jī)控制系統(tǒng)中,塔基和機(jī)艙之間需要長距離傳輸數(shù)據(jù),同時又要求通信網(wǎng)絡(luò)具有較強(qiáng)的抗干擾能力。根據(jù)控制系統(tǒng)的要求,在1ms內(nèi),塔基和機(jī)艙的數(shù)據(jù)至少能交互一次,所以必須在硬件和軟件兩方面做出改進(jìn)。
通過對系統(tǒng)需求的分析,設(shè)計了如圖1所示的硬件架構(gòu)。系統(tǒng)采用STM32F103ZC作為主控芯片,通過FSMC總線拓展了W5100網(wǎng)絡(luò)芯片,實(shí)現(xiàn)光纖數(shù)據(jù)的收發(fā),其中光電轉(zhuǎn)換芯片采用集成的模塊[6]。同時為了保證其余模塊能很好地訪問到光纖模塊上的數(shù)據(jù),系統(tǒng)采用FPGA設(shè)計了Ethernet CAT底板總線,各模塊只需要插在底板上即可實(shí)現(xiàn)數(shù)據(jù)的互相訪問。STM32和FPGA之間同樣采用FSMC總線實(shí)現(xiàn)數(shù)據(jù)的訪問。
圖1 系統(tǒng)硬件架構(gòu)
1.3.1 共享內(nèi)存空間
在硬件上,系統(tǒng)設(shè)計了2kB的共享存儲空間。圖2所示為共享空間劃分,將這片空間分為4塊。由風(fēng)機(jī)的控制系統(tǒng)結(jié)構(gòu)可知,只需要交互S2和CAN1區(qū)域的數(shù)據(jù)即可。
系統(tǒng)硬件設(shè)計時,光纖模塊預(yù)留有4kB的共享空間,前面2kB作為只讀空間,后面2kB作為只寫空間。系統(tǒng)進(jìn)行數(shù)據(jù)交互時,光纖模塊從前面2kB空間讀取數(shù)據(jù),打包發(fā)送出去,同時,把接收到的數(shù)據(jù)解析存入后面2K的空間。對于CPU來說,它讀取后面2 kB空間的數(shù)據(jù)進(jìn)行數(shù)據(jù)處理,同時把需要輸出的數(shù)據(jù)寫入到前面2kB空間。共享內(nèi)存空間讀寫訪問協(xié)議如圖3所示。
圖2 共享空間劃分示意圖
圖3 共享內(nèi)存空間讀寫訪問協(xié)議
為了保證其余模塊能很好地訪問共享空間的數(shù)據(jù),將S1、S2、CAN1、CAN2的空間進(jìn)行分配。其中站頭包括站的ID、狀態(tài)、中斷等,而卡頭包括各模塊的長度、類型、ID等。站頭結(jié)構(gòu)定義如下:
typedef struct Head_Of_Station_Str
{
WORD Station_Is_Written;/*寫入狀態(tài)標(biāo)志*/
WORD ID;
WORD State;/*狀態(tài)*/
WORD Num;/*站的板卡數(shù)量*/
WORD Err_Type;/*站的故障類型*/
WORD Err_Card;/*故障的板卡號*/
WORD Interrupt_Chan;/*中斷通道號*/
}Head_Of_Station;
卡頭結(jié)構(gòu)定義如下:
typedef struct Head_Of_Card_Str
{
WORD Type;
WORD ID;
WORD State;
WORD Err;/*板卡的故障類型*/
}Head_Of_Card;
1.3.2 UDP協(xié)議包定義
光纖通信采用了UDP通信方式,其數(shù)據(jù)包格式如表1所示。其中,前面4個字節(jié)作為通信校驗(yàn)字,以防止外來數(shù)據(jù)的干擾,其余部分的定義如下:
大多數(shù)教師把教學(xué)的百分之九十的精力放在了教學(xué)設(shè)計上,聽課中經(jīng)常發(fā)現(xiàn)教師游戲設(shè)計的精彩多樣,可是到了評價的階段卻是相當(dāng)?shù)牧邌荩皇遣萋实匾粠Ф^。殊不知,教學(xué)評價才是游戲深化、幼兒發(fā)展最直接的因素。
Length(2字節(jié)):數(shù)據(jù)包字節(jié)長度,不包括數(shù)據(jù)包頭和本身字節(jié)。
Command(1字節(jié)):命令字。
ox01 配置信息;
ox02 配置完成;
ox03 正常運(yùn)行時傳送的數(shù)據(jù);
ox04 中斷信息;
oxFF 錯誤信息。
Reserved(1字節(jié)):保留。
DataType(1字節(jié)):傳輸?shù)臄?shù)據(jù)類型,即數(shù)據(jù)來自或者發(fā)往哪一級底板。
ox01 IS_S1_DATA 底板1上的數(shù)據(jù);
ox02 IS_S2_DATA 底板2上的數(shù)據(jù);
ox03 IS_CAN1_DATA CAN的數(shù)據(jù);
ox04 IS_CAN2_DATA CAN的數(shù)據(jù)。
Data:實(shí)際的底板數(shù)據(jù)。
表1 數(shù)據(jù)包格式定義
1.3.3 系統(tǒng)配置過程
如圖4所示為配置信息數(shù)據(jù)流圖。具體步驟如下:
(1)上電初始化,State=0;CPU1將State置為1。
(2)FM讀取到State=1時,將S2的配置數(shù)據(jù)區(qū)域414個字節(jié)通過光纖發(fā)送給FS。
(3)FS接到數(shù)據(jù)包以后,將其寫入S2的共享空間區(qū)域。
(4)CPU2讀到State=1時,解析配置信息并配置各個模塊;配置完成后,置State=2。
(5)FS讀到State=2后,將該狀態(tài)發(fā)給FM。
(6)FS將State=3,F(xiàn)S進(jìn)入正常工作模式。
(7)FM接收到FS發(fā)回的cmd=2后,將State=2寫入S2共享空間區(qū)。
(8)CPU1查詢到State=2后,將State=3,F(xiàn)M也進(jìn)入正常工作模式。
圖4 配置信息的數(shù)據(jù)流圖
1.3.4 系統(tǒng)的運(yùn)行流程
圖5為系統(tǒng)運(yùn)行流程圖。由圖5可知,系統(tǒng)初始化完成以后,進(jìn)行配置信息的發(fā)送和接收;之后分別讀取S2和CAN的數(shù)據(jù),通過光纖發(fā)送出去;同時通過UDP接收服務(wù)函數(shù)讀取,并調(diào)用相應(yīng)的處理函數(shù)。
主循環(huán)程序分為4個主要狀態(tài),自檢狀態(tài)下系統(tǒng)完成所有硬件初始化過程和設(shè)備自檢過程,如系統(tǒng)正常狀態(tài)時將依次完成系統(tǒng)配置和軟件初始化過程,最后切換到正常的工作狀態(tài)。程序如下所示:
while(1)
{
switch(station_state)
{
case STATION_Self_Inspect;
...
break;
case STATION_Configuration:
break;
case STATION_Inialize;
break;
case STATION_Running:
break;
}
圖5 系統(tǒng)運(yùn)行流程圖
系統(tǒng)設(shè)計了兩個光纖模塊,一個作為主模塊,一個作為從模塊,位于不同的底板上面,中間通過多模光纖連接,其參數(shù)設(shè)置如表2所示。通過J-LINK將程序Download進(jìn)入芯片,系統(tǒng)重啟即可進(jìn)行測試。
表2 FM/FS模塊網(wǎng)絡(luò)參數(shù)設(shè)置
圖6為搭建的實(shí)驗(yàn)平臺實(shí)物圖,從上至下依次對應(yīng)圖1中的S1塔基、S2機(jī)艙和S3輪轂。
S1與S2之間采用的即為本文所述光纖通信,為了驗(yàn)證系統(tǒng)作如下兩步實(shí)驗(yàn)。
圖6 硬件系統(tǒng)圖
通過網(wǎng)絡(luò)PING命令,訪問FM/FS模塊,系統(tǒng)模塊返回時間的平均值遠(yuǎn)小于1ms,數(shù)據(jù)丟包率為0%,這表明光纖通訊鏈路正常,且具有良好的穩(wěn)定性和可靠性。同時通過分析抓獲的數(shù)據(jù)包以及調(diào)試信息可知,系統(tǒng)能正常啟動,F(xiàn)S掉電重啟或FM掉電重啟時,系統(tǒng)都能進(jìn)入正常工作狀態(tài),系統(tǒng)穩(wěn)定可靠。
系統(tǒng)正常運(yùn)行時,F(xiàn)M/FS每發(fā)送/接收10 000個包后,往PC上發(fā)一條調(diào)試信息,通過抓包工具Ethereal得到如表3所示數(shù)據(jù)。由表3可知,F(xiàn)M與FS收發(fā)每個包平均所耗時間均在系統(tǒng)設(shè)計要求的范圍內(nèi)。
表3 抓包所得網(wǎng)絡(luò)統(tǒng)計數(shù)據(jù)
通訊模塊利用光纖以太網(wǎng)實(shí)現(xiàn)了機(jī)艙和塔底控制器間的通訊,目前已經(jīng)應(yīng)用到風(fēng)力發(fā)電控制系統(tǒng)中,性能可靠穩(wěn)定。光纖以太網(wǎng)可以滿足風(fēng)力發(fā)電控制系統(tǒng)在工業(yè)現(xiàn)場的需要,由于本通訊模塊低成本和靈活性的特點(diǎn),具有良好的應(yīng)用前景。
[1] 田振宇.淺談風(fēng)力發(fā)電的發(fā)展現(xiàn)狀及前景[J].企業(yè)技術(shù)開發(fā),2011(9):101-102.
[2] 劉琦.中國新能源發(fā)展研究[J].電網(wǎng)與清潔能源,2010,26(1):1-2.
[3] 雷亞洲,Gordon Lightbody.國外風(fēng)力發(fā)電導(dǎo)則及動態(tài)模型簡介[J].電網(wǎng)技術(shù),2005,29(12):27-32.
[4] 劉志亮,鄒見效,徐紅兵.光纖以太網(wǎng)在風(fēng)力發(fā)電控制系統(tǒng)中的應(yīng)用[G]//2008年中國電機(jī)工程學(xué)會年會論文集.西安:中國電機(jī)工程學(xué)會,2008:345-348.
[5] 李木國,王磊,王靜,等.基于EtherCAT的工業(yè)以太網(wǎng)數(shù)據(jù)采集系統(tǒng)[J].計算機(jī)工程,2010(3):237-239.
[6] Douglas E Comer.用 TCP/IP進(jìn)行網(wǎng)際互連(第1卷):原理、協(xié)議與結(jié)構(gòu)[M].第4版.林瑤,張娟,王海,譯.北京:電子工業(yè)出版社,2002.