鐘鐵君 ,李華旺 ,常 亮
(1.中國(guó)科學(xué)院上海微系統(tǒng)與信息技術(shù)研究所上海200050;2.上海微小衛(wèi)星工程中心上海201203;
3.中國(guó)科學(xué)院大學(xué)北京101407)
目前國(guó)內(nèi)在航天器上采用的總線主要是CAN總線和1533B總線等傳統(tǒng)總線,隨著中國(guó)航天和空間技術(shù)的快速發(fā)展,航天器對(duì)其內(nèi)部總線的通信性能提出了越來(lái)越高的要求,傳統(tǒng)總線的工作方式的已經(jīng)難以滿足航天器對(duì)其內(nèi)部通信系統(tǒng)提出的新要求[1]。普通以太網(wǎng)雖然具有穩(wěn)定、可靠,通信速率高、成本低等特點(diǎn),但其采用CSMA/CD(Carrier Sense Multiple Access with Collision Detection,沖突檢測(cè)載波監(jiān)聽(tīng)多點(diǎn)訪問(wèn))介質(zhì)訪問(wèn)控制方式[2],導(dǎo)致傳輸延遲和傳送時(shí)間的不確定性,因此普通以太網(wǎng)并不適合航天器上的安全關(guān)鍵場(chǎng)合[3-4]。為了滿足安全關(guān)鍵場(chǎng)合對(duì)高實(shí)時(shí)性的需求,目前已經(jīng)出現(xiàn)了EtherCat,TTEthernet等多種以太網(wǎng)實(shí)時(shí)性的技術(shù)解決方案[5-7]。
相對(duì)于幾種主流的實(shí)時(shí)以太網(wǎng),Powerlink具有開(kāi)放性好,速度快,性能卓越等特點(diǎn)[8],且支持多種硬件平臺(tái)實(shí)現(xiàn),其中,采用FPGA為硬件平臺(tái)可獲得相對(duì)更高的實(shí)時(shí)性能,因此,本文以FPGA為核心設(shè)計(jì)實(shí)現(xiàn)了一個(gè)嵌入式以太網(wǎng)通信系統(tǒng),并以此為硬件平臺(tái)運(yùn)行Powerlink協(xié)議,通過(guò)實(shí)際測(cè)試驗(yàn)證了系統(tǒng)設(shè)計(jì)的正確性。
Powerlink基于標(biāo)準(zhǔn)的OSI模型,它規(guī)定了OSI模型七層協(xié)議中的三層:物理層、數(shù)據(jù)鏈路層以及應(yīng)用層[9]。
Powerlink的OSI參考模型如圖1所示[10],除了物理層之外,每層建立在下一層的基礎(chǔ)之上。Powerlink協(xié)議棧是建立在快速以太網(wǎng)IEEE802.3標(biāo)準(zhǔn)基礎(chǔ)之上的,它采用Ethernet標(biāo)準(zhǔn)網(wǎng)絡(luò)的物理層和 MAC(Media Access Control,媒體訪問(wèn)控制),通過(guò)修改數(shù)據(jù)鏈路層,使用時(shí)間槽網(wǎng)絡(luò)通信管理機(jī)制SCNM達(dá)到實(shí)時(shí)控制。其應(yīng)用層遵循廣泛使用的CANopen協(xié)議標(biāo)準(zhǔn)[11]。Powerlink協(xié)議支持標(biāo)準(zhǔn)以太網(wǎng)的通信接入,并能很方便的與TCP、UDP以及IP協(xié)議等結(jié)合工作。
以實(shí)時(shí)性,確定性為目標(biāo)Powerlink性能十分優(yōu)越,通信系統(tǒng)的循環(huán)周期最小可達(dá)數(shù)十μs,每個(gè)節(jié)點(diǎn)最大可支持1 490 Bytes的數(shù)據(jù)幀傳輸。
圖1 Powerlink的OSI參考模型
SCNM機(jī)制通過(guò)配置主站和從站兩種不同的節(jié)點(diǎn)來(lái)避免標(biāo)準(zhǔn)以太網(wǎng)采用的CSMA/CD機(jī)制產(chǎn)生的數(shù)據(jù)碰撞,其中,管理節(jié)點(diǎn)(Manage Node)MN負(fù)責(zé)對(duì)總線的使用權(quán)進(jìn)行分配,避免產(chǎn)生沖突,實(shí)現(xiàn)實(shí)時(shí)通信。同一時(shí)刻只允許一個(gè)活動(dòng)的MN節(jié)點(diǎn)存在,根據(jù)具體的應(yīng)用場(chǎng)景可以設(shè)置冗余的MN,其余的節(jié)點(diǎn)在網(wǎng)絡(luò)中作為受控節(jié)點(diǎn)(Control Node)CN運(yùn)行[12],其數(shù)據(jù)收發(fā)完全由管理結(jié)點(diǎn)控制。網(wǎng)絡(luò)通信階段,MN為每個(gè)CN分配一個(gè)固定的時(shí)隙,確保在同一時(shí)刻僅有一個(gè)CN能夠?qū)W(wǎng)絡(luò)媒體進(jìn)行訪問(wèn),有效地避免了沖突。
Powerlink有兩種通信機(jī)制:基于請(qǐng)求/應(yīng)答模式(Preq/Pres模式)和基于定時(shí)主動(dòng)上送模式(PRC)模式[13-14]。
1)請(qǐng)求/應(yīng)答模式
該模式下主站(MN)根據(jù)預(yù)先設(shè)置的節(jié)點(diǎn)號(hào)依次對(duì)所有從站(CN)進(jìn)行輪詢?cè)L問(wèn)。首先MN發(fā)送同步幀SOC對(duì)所有節(jié)點(diǎn)進(jìn)行同步,然后,MN發(fā)送單向Preq數(shù)據(jù)幀給第一個(gè)CN,CN收到PReq數(shù)據(jù)幀后向整個(gè)網(wǎng)絡(luò)廣播一個(gè)Pres數(shù)據(jù)楨,網(wǎng)絡(luò)中其他CN對(duì)該幀進(jìn)行監(jiān)控并選擇是否接收,如此主站和從站完成了一次信息交互,重復(fù)這個(gè)過(guò)程,直至輪詢完所有節(jié)點(diǎn)。網(wǎng)絡(luò)中所有節(jié)點(diǎn)完成一次通信所需的時(shí)間為一個(gè)循環(huán)周期。該模式的性能取決于物理層的傳輸速度和通信數(shù)據(jù)幀的大小。
2)定時(shí)主動(dòng)上報(bào)模式
該模式下,MN將配置各個(gè)CN在循環(huán)周期上報(bào)數(shù)據(jù)的時(shí)刻。在MN廣播發(fā)送Preq數(shù)據(jù)幀后,各CN以廣播的方式在指定的時(shí)間上發(fā)送Pres報(bào)文。該模式下MN僅需發(fā)送一次Preq數(shù)據(jù)幀,因此,這種模式相比于基于請(qǐng)求/應(yīng)答模式有更好的性能。
文中以Microblaze為核心,通過(guò)調(diào)用IP核在FPGA內(nèi)部搭建包括存儲(chǔ)器、Powerlink MAC,節(jié)點(diǎn)撥碼開(kāi)關(guān)等多種外設(shè)的SOPC系統(tǒng),利用片上PLB總線進(jìn)行連接整合,外接以太網(wǎng)PHY芯片實(shí)現(xiàn)協(xié)議棧物理層的功能,通過(guò)RJ45接口連接到PC機(jī),構(gòu)建出完整的嵌入式網(wǎng)絡(luò)通信系統(tǒng)[15]。系統(tǒng)整體框圖如圖2所示。
文中設(shè)計(jì)的基于FPGA的Powerlink硬件系統(tǒng)的基本架構(gòu)如圖3所示。
Mircoblaze軟核CPU是目前處理性能最好,使用最廣泛的軟核處理器之一。在本系統(tǒng)中,Mircoblaze為Powerlink協(xié)議棧提供硬件運(yùn)行平臺(tái),控制Powerlink實(shí)時(shí)以太網(wǎng)的數(shù)據(jù)傳輸。
圖2 通信系統(tǒng)框圖
圖3 系統(tǒng)架構(gòu)
Powerlink MAC主要負(fù)責(zé)控制與鏈接物理層的物理介質(zhì),提供MII/RMII等標(biāo)準(zhǔn)接口實(shí)現(xiàn)與外界PHY芯片的連接,同時(shí)提供MDIO/MDC接口來(lái)訪問(wèn)PHY芯片的內(nèi)部寄存器,管理PHY芯片。
PHY芯片用來(lái)實(shí)現(xiàn)Powerlink協(xié)議棧的物理層功能,是直接面向?qū)嶋H承擔(dān)數(shù)據(jù)傳輸?shù)奈锢砻浇?,并且為?shù)據(jù)鏈路層提供一個(gè)傳輸原始比特?cái)?shù)據(jù)流的物理連接。
SRAM存儲(chǔ)器主要負(fù)責(zé)存儲(chǔ)協(xié)議棧的源代碼以及對(duì)MAC的數(shù)據(jù)暫存。
撥碼開(kāi)關(guān)用來(lái)設(shè)置節(jié)點(diǎn)的節(jié)點(diǎn)號(hào),Powerlink是通過(guò)節(jié)點(diǎn)號(hào)來(lái)尋址的,因此可以通過(guò)撥碼開(kāi)關(guān)來(lái)設(shè)置每個(gè)節(jié)點(diǎn)自己的NodeID。
本文采取的通過(guò)在FPGA中構(gòu)建一個(gè)軟核處理器來(lái)運(yùn)行Powerlink協(xié)議棧的設(shè)計(jì)方法,相對(duì)于其他解決方案,具有靈活度高,成本低,實(shí)現(xiàn)容易等特點(diǎn),而且能滿足絕大部分的應(yīng)用場(chǎng)合。在這個(gè)系統(tǒng)中,SRAM、撥碼開(kāi)關(guān)等作為CPU的外部設(shè)備,Microblaze會(huì)給每一個(gè)設(shè)備分配一個(gè)地址,在CPU中可以直接對(duì)地址進(jìn)行操作,訪問(wèn)各個(gè)外部設(shè)備。此外,根據(jù)具體應(yīng)用場(chǎng)景,可以添加一些新的邏輯功能,編寫一個(gè)外部設(shè)備,掛到總線上。
Powerlink以快速以太網(wǎng)標(biāo)準(zhǔn)IEEE802.3為基礎(chǔ)。一個(gè)完整的Powerlink通信周期分為同步階段和異步階段兩個(gè)階段,在Powerlink循環(huán)的同步段,管理節(jié)點(diǎn)MN對(duì)控制節(jié)點(diǎn)CN進(jìn)行周期性的輪詢?cè)L問(wèn)。異步段用于傳輸非周期性的、沒(méi)有太高實(shí)時(shí)性要求的數(shù)據(jù),其應(yīng)用層通信規(guī)范改編自CANopen協(xié)議標(biāo)準(zhǔn)。CANopen協(xié)議有主要有3個(gè)部分:用于交換周期性數(shù)據(jù)的過(guò)程數(shù)據(jù)對(duì)象PDO、用于配置對(duì)象字典的服務(wù)數(shù)據(jù)對(duì)象SDO以及保存對(duì)象參數(shù)的對(duì)象字典OD。
Powerlink是唯一個(gè)真正基于標(biāo)準(zhǔn)的以太網(wǎng)硬件平臺(tái),并且與標(biāo)準(zhǔn)以太網(wǎng)完全兼容的純軟件解決方案,軟件結(jié)構(gòu)如圖4所示。
圖4 Powerlink軟件結(jié)構(gòu)
Powerlink API層為用戶提供應(yīng)用程序和協(xié)議棧間的一個(gè)簡(jiǎn)單的接口。應(yīng)用程序通過(guò)使用API層的函數(shù)初始化Powerlink協(xié)議棧并執(zhí)行不同的任務(wù)。
Powerlink協(xié)議棧可處理硬實(shí)時(shí)任務(wù)和低優(yōu)先級(jí)任務(wù),其中硬實(shí)時(shí)任務(wù)用于處理循環(huán)事件,低優(yōu)先級(jí)任務(wù)負(fù)責(zé)異步事件的處理以及協(xié)議棧參數(shù)配置,這些任務(wù)之間的通信被封裝在通信抽象層,便于對(duì)新平臺(tái)的移植和優(yōu)化。
Powerlink對(duì)象字典用于對(duì)協(xié)議棧參數(shù)的配置,配置的過(guò)程可以在協(xié)議棧的初始化階段調(diào)用相應(yīng)的API函數(shù)執(zhí)行,也可以在協(xié)議棧運(yùn)行期間通過(guò)SDO的遠(yuǎn)程傳輸來(lái)配置。
Powerlink網(wǎng)絡(luò)管理模塊通過(guò)NMT(Network managemengt)狀態(tài)機(jī)來(lái)實(shí)現(xiàn),NMT狀態(tài)機(jī)決定通信單元的行為。主要包括通用初始化NMT狀態(tài)機(jī)、MN NMT狀態(tài)機(jī)和CN NMT狀態(tài)機(jī)。
圖5 系統(tǒng)測(cè)試連接圖
為了驗(yàn)證系統(tǒng)設(shè)計(jì)的正確性,利用裝有Wireshark網(wǎng)絡(luò)診斷工具和windows操作系統(tǒng)的PC機(jī)上建立主站,在FPGA上建立從站,用網(wǎng)線將主站和從站連接起來(lái),進(jìn)行測(cè)試驗(yàn)證,主站和從站的通信方式采用請(qǐng)求/應(yīng)答模式。系統(tǒng)測(cè)試連接圖由圖5所示。
運(yùn)行Powerlink網(wǎng)絡(luò),需要設(shè)置網(wǎng)絡(luò)的循環(huán)周期,循環(huán)周期的長(zhǎng)短很大程度上取決于主站硬件處理器的性能,如果有操作系統(tǒng),和操作系統(tǒng)的實(shí)時(shí)性也有關(guān)。例如在VxWorks上,可以達(dá)到幾十至幾百微秒的循環(huán)周期;在Linux+實(shí)時(shí)補(bǔ)丁下,可以達(dá)到幾百毫秒的循環(huán)周期;在Windows下,最短循環(huán)周期在2 ms以上。因此,本次設(shè)置的網(wǎng)絡(luò)循環(huán)周期為3 ms。
當(dāng)Powerlink協(xié)議正常運(yùn)行時(shí),PC機(jī)上能夠抓取到通信過(guò)程產(chǎn)生的數(shù)據(jù)包。圖6為PC機(jī)上Wireshark成功抓取到的數(shù)據(jù)包。由圖可知在t1=3.452 432、t2=3.455 431和t3=3.458 434的時(shí)刻,主站發(fā)出了一個(gè)preq數(shù)據(jù)楨,根據(jù)Powerlink協(xié)議通信原理,該系統(tǒng)的循環(huán)周期為t2-t1或t3-t2約等于3 ms,與系統(tǒng)配置的循環(huán)周期相等,驗(yàn)證了系統(tǒng)設(shè)計(jì)的正確性。
圖6 Wireshark軟件通信測(cè)試
文中對(duì)Powerlink實(shí)時(shí)以太網(wǎng)進(jìn)行了理論研究,在此基礎(chǔ)上,基于SOPC的方式實(shí)現(xiàn)了一個(gè)Powerlink網(wǎng)絡(luò)通信系統(tǒng),可以根據(jù)具體的應(yīng)用場(chǎng)景靈活的進(jìn)行增添裁剪,克服了原有普通以太網(wǎng)CSMA/CD訪問(wèn)沖突檢測(cè)機(jī)制帶來(lái)的時(shí)間延遲和不確定性的問(wèn)題。通過(guò)實(shí)際測(cè)試可以得出,Powerlink實(shí)時(shí)以太網(wǎng)具有很高的實(shí)時(shí)性、可靠性、實(shí)現(xiàn)起來(lái)具有很高的靈活性且符合航天業(yè)務(wù)的發(fā)展對(duì)通信系統(tǒng)的要求,這為我國(guó)在空間應(yīng)用中大規(guī)模使用以太網(wǎng)提供了一種有效的思路。
[1]邱愛(ài)華,張濤,顧逸東.航天器可應(yīng)用實(shí)時(shí)以太網(wǎng)分析[J].空間科學(xué)學(xué)報(bào),2015,35(3):368-380.
[2]曹云鵬.以太網(wǎng)MAC層協(xié)議研究與FPGA實(shí)現(xiàn)[D].蘇州:蘇州大學(xué),2011.
[3]李嬋娟.安全關(guān)鍵實(shí)時(shí)通信協(xié)議研究[D].蘭州:蘭州大學(xué),2011.
[4]孔繁青,郭永林.我國(guó)空間站信息系統(tǒng)的綜合技術(shù)研究[J].載人航天,2011,17(2):45-49.
[5]姚勝東.工業(yè)以太網(wǎng)現(xiàn)場(chǎng)總線EtherCAT的應(yīng)用[J].儀表技術(shù),2014(8):4-6.
[6]羅安心.基于時(shí)間觸發(fā)以太網(wǎng)的同步算法研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2013.
[7]劉成,王彤,李錚,等.時(shí)間觸發(fā)AFDX網(wǎng)絡(luò)的設(shè)計(jì)和實(shí)時(shí)性分析[J].北京航空航天大學(xué)學(xué)報(bào),2013,39(6):728-733.
[8]Erwinski K,Paprocki M,Grzesiak L M,et al.Application of Ethernet Powerlink for Communication in a Linux RTAI Open CNC system[J].IEEE Transactions on Industrial Electronics,2013,60(2):628-636.
[9]胡書(shū)立,王清理.POWERLINK總線技術(shù)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(10):3821-3827.
[10]陳在平,孫遜,賈超.POWERLINK物理層通信的實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2015(6):1420-1424.
[11]王永興.基于CANopen的多協(xié)議轉(zhuǎn)換與傳輸機(jī)制研究[D].武漢:武漢理工大學(xué),2011.
[12]趙粹臣.Ethernet POWERLINK通信協(xié)議的實(shí)時(shí)性研究與硬實(shí)時(shí)優(yōu)化設(shè)計(jì)[D].沈陽(yáng):沈陽(yáng)理工大學(xué),2014.
[13]趙鳳鳴.Ethernet POWERLINK實(shí)時(shí)以太網(wǎng)分析[D].包頭:內(nèi)蒙古科技大學(xué),2012.
[14]趙涌,李延軍,彭文才,等.Powerlink實(shí)時(shí)以太網(wǎng)的實(shí)現(xiàn)與測(cè)試[J].水電自動(dòng)化與大壩監(jiān)測(cè),2015(1):52-55.
[15]梁綏澤,朱同文.基于FPGA的Ethernet Powerlink通信節(jié)點(diǎn)的設(shè)計(jì)與實(shí)現(xiàn)[J].無(wú)線互聯(lián)科技,2015(7):3-4.
[16]蘇玉烽.千兆網(wǎng)絡(luò)通信系統(tǒng)的FPGA設(shè)計(jì)實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2012.