鐘鐵君 ,李華旺 ,常 亮
(1.中國科學院上海微系統(tǒng)與信息技術研究所上海200050;2.上海微小衛(wèi)星工程中心上海201203;
3.中國科學院大學北京101407)
目前國內在航天器上采用的總線主要是CAN總線和1533B總線等傳統(tǒng)總線,隨著中國航天和空間技術的快速發(fā)展,航天器對其內部總線的通信性能提出了越來越高的要求,傳統(tǒng)總線的工作方式的已經難以滿足航天器對其內部通信系統(tǒng)提出的新要求[1]。普通以太網雖然具有穩(wěn)定、可靠,通信速率高、成本低等特點,但其采用CSMA/CD(Carrier Sense Multiple Access with Collision Detection,沖突檢測載波監(jiān)聽多點訪問)介質訪問控制方式[2],導致傳輸延遲和傳送時間的不確定性,因此普通以太網并不適合航天器上的安全關鍵場合[3-4]。為了滿足安全關鍵場合對高實時性的需求,目前已經出現了EtherCat,TTEthernet等多種以太網實時性的技術解決方案[5-7]。
相對于幾種主流的實時以太網,Powerlink具有開放性好,速度快,性能卓越等特點[8],且支持多種硬件平臺實現,其中,采用FPGA為硬件平臺可獲得相對更高的實時性能,因此,本文以FPGA為核心設計實現了一個嵌入式以太網通信系統(tǒng),并以此為硬件平臺運行Powerlink協(xié)議,通過實際測試驗證了系統(tǒng)設計的正確性。
Powerlink基于標準的OSI模型,它規(guī)定了OSI模型七層協(xié)議中的三層:物理層、數據鏈路層以及應用層[9]。
Powerlink的OSI參考模型如圖1所示[10],除了物理層之外,每層建立在下一層的基礎之上。Powerlink協(xié)議棧是建立在快速以太網IEEE802.3標準基礎之上的,它采用Ethernet標準網絡的物理層和 MAC(Media Access Control,媒體訪問控制),通過修改數據鏈路層,使用時間槽網絡通信管理機制SCNM達到實時控制。其應用層遵循廣泛使用的CANopen協(xié)議標準[11]。Powerlink協(xié)議支持標準以太網的通信接入,并能很方便的與TCP、UDP以及IP協(xié)議等結合工作。
以實時性,確定性為目標Powerlink性能十分優(yōu)越,通信系統(tǒng)的循環(huán)周期最小可達數十μs,每個節(jié)點最大可支持1 490 Bytes的數據幀傳輸。

圖1 Powerlink的OSI參考模型
SCNM機制通過配置主站和從站兩種不同的節(jié)點來避免標準以太網采用的CSMA/CD機制產生的數據碰撞,其中,管理節(jié)點(Manage Node)MN負責對總線的使用權進行分配,避免產生沖突,實現實時通信。同一時刻只允許一個活動的MN節(jié)點存在,根據具體的應用場景可以設置冗余的MN,其余的節(jié)點在網絡中作為受控節(jié)點(Control Node)CN運行[12],其數據收發(fā)完全由管理結點控制。網絡通信階段,MN為每個CN分配一個固定的時隙,確保在同一時刻僅有一個CN能夠對網絡媒體進行訪問,有效地避免了沖突。
Powerlink有兩種通信機制:基于請求/應答模式(Preq/Pres模式)和基于定時主動上送模式(PRC)模式[13-14]。
1)請求/應答模式
該模式下主站(MN)根據預先設置的節(jié)點號依次對所有從站(CN)進行輪詢訪問。首先MN發(fā)送同步幀SOC對所有節(jié)點進行同步,然后,MN發(fā)送單向Preq數據幀給第一個CN,CN收到PReq數據幀后向整個網絡廣播一個Pres數據楨,網絡中其他CN對該幀進行監(jiān)控并選擇是否接收,如此主站和從站完成了一次信息交互,重復這個過程,直至輪詢完所有節(jié)點。網絡中所有節(jié)點完成一次通信所需的時間為一個循環(huán)周期。該模式的性能取決于物理層的傳輸速度和通信數據幀的大小。
2)定時主動上報模式
該模式下,MN將配置各個CN在循環(huán)周期上報數據的時刻。在MN廣播發(fā)送Preq數據幀后,各CN以廣播的方式在指定的時間上發(fā)送Pres報文。該模式下MN僅需發(fā)送一次Preq數據幀,因此,這種模式相比于基于請求/應答模式有更好的性能。
文中以Microblaze為核心,通過調用IP核在FPGA內部搭建包括存儲器、Powerlink MAC,節(jié)點撥碼開關等多種外設的SOPC系統(tǒng),利用片上PLB總線進行連接整合,外接以太網PHY芯片實現協(xié)議棧物理層的功能,通過RJ45接口連接到PC機,構建出完整的嵌入式網絡通信系統(tǒng)[15]。系統(tǒng)整體框圖如圖2所示。
文中設計的基于FPGA的Powerlink硬件系統(tǒng)的基本架構如圖3所示。
Mircoblaze軟核CPU是目前處理性能最好,使用最廣泛的軟核處理器之一。在本系統(tǒng)中,Mircoblaze為Powerlink協(xié)議棧提供硬件運行平臺,控制Powerlink實時以太網的數據傳輸。

圖2 通信系統(tǒng)框圖

圖3 系統(tǒng)架構
Powerlink MAC主要負責控制與鏈接物理層的物理介質,提供MII/RMII等標準接口實現與外界PHY芯片的連接,同時提供MDIO/MDC接口來訪問PHY芯片的內部寄存器,管理PHY芯片。
PHY芯片用來實現Powerlink協(xié)議棧的物理層功能,是直接面向實際承擔數據傳輸的物理媒介,并且為數據鏈路層提供一個傳輸原始比特數據流的物理連接。
SRAM存儲器主要負責存儲協(xié)議棧的源代碼以及對MAC的數據暫存。
撥碼開關用來設置節(jié)點的節(jié)點號,Powerlink是通過節(jié)點號來尋址的,因此可以通過撥碼開關來設置每個節(jié)點自己的NodeID。
本文采取的通過在FPGA中構建一個軟核處理器來運行Powerlink協(xié)議棧的設計方法,相對于其他解決方案,具有靈活度高,成本低,實現容易等特點,而且能滿足絕大部分的應用場合。在這個系統(tǒng)中,SRAM、撥碼開關等作為CPU的外部設備,Microblaze會給每一個設備分配一個地址,在CPU中可以直接對地址進行操作,訪問各個外部設備。此外,根據具體應用場景,可以添加一些新的邏輯功能,編寫一個外部設備,掛到總線上。
Powerlink以快速以太網標準IEEE802.3為基礎。一個完整的Powerlink通信周期分為同步階段和異步階段兩個階段,在Powerlink循環(huán)的同步段,管理節(jié)點MN對控制節(jié)點CN進行周期性的輪詢訪問。異步段用于傳輸非周期性的、沒有太高實時性要求的數據,其應用層通信規(guī)范改編自CANopen協(xié)議標準。CANopen協(xié)議有主要有3個部分:用于交換周期性數據的過程數據對象PDO、用于配置對象字典的服務數據對象SDO以及保存對象參數的對象字典OD。
Powerlink是唯一個真正基于標準的以太網硬件平臺,并且與標準以太網完全兼容的純軟件解決方案,軟件結構如圖4所示。

圖4 Powerlink軟件結構
Powerlink API層為用戶提供應用程序和協(xié)議棧間的一個簡單的接口。應用程序通過使用API層的函數初始化Powerlink協(xié)議棧并執(zhí)行不同的任務。
Powerlink協(xié)議棧可處理硬實時任務和低優(yōu)先級任務,其中硬實時任務用于處理循環(huán)事件,低優(yōu)先級任務負責異步事件的處理以及協(xié)議棧參數配置,這些任務之間的通信被封裝在通信抽象層,便于對新平臺的移植和優(yōu)化。
Powerlink對象字典用于對協(xié)議棧參數的配置,配置的過程可以在協(xié)議棧的初始化階段調用相應的API函數執(zhí)行,也可以在協(xié)議棧運行期間通過SDO的遠程傳輸來配置。
Powerlink網絡管理模塊通過NMT(Network managemengt)狀態(tài)機來實現,NMT狀態(tài)機決定通信單元的行為。主要包括通用初始化NMT狀態(tài)機、MN NMT狀態(tài)機和CN NMT狀態(tài)機。

圖5 系統(tǒng)測試連接圖
為了驗證系統(tǒng)設計的正確性,利用裝有Wireshark網絡診斷工具和windows操作系統(tǒng)的PC機上建立主站,在FPGA上建立從站,用網線將主站和從站連接起來,進行測試驗證,主站和從站的通信方式采用請求/應答模式。系統(tǒng)測試連接圖由圖5所示。
運行Powerlink網絡,需要設置網絡的循環(huán)周期,循環(huán)周期的長短很大程度上取決于主站硬件處理器的性能,如果有操作系統(tǒng),和操作系統(tǒng)的實時性也有關。例如在VxWorks上,可以達到幾十至幾百微秒的循環(huán)周期;在Linux+實時補丁下,可以達到幾百毫秒的循環(huán)周期;在Windows下,最短循環(huán)周期在2 ms以上。因此,本次設置的網絡循環(huán)周期為3 ms。
當Powerlink協(xié)議正常運行時,PC機上能夠抓取到通信過程產生的數據包。圖6為PC機上Wireshark成功抓取到的數據包。由圖可知在t1=3.452 432、t2=3.455 431和t3=3.458 434的時刻,主站發(fā)出了一個preq數據楨,根據Powerlink協(xié)議通信原理,該系統(tǒng)的循環(huán)周期為t2-t1或t3-t2約等于3 ms,與系統(tǒng)配置的循環(huán)周期相等,驗證了系統(tǒng)設計的正確性。

圖6 Wireshark軟件通信測試
文中對Powerlink實時以太網進行了理論研究,在此基礎上,基于SOPC的方式實現了一個Powerlink網絡通信系統(tǒng),可以根據具體的應用場景靈活的進行增添裁剪,克服了原有普通以太網CSMA/CD訪問沖突檢測機制帶來的時間延遲和不確定性的問題。通過實際測試可以得出,Powerlink實時以太網具有很高的實時性、可靠性、實現起來具有很高的靈活性且符合航天業(yè)務的發(fā)展對通信系統(tǒng)的要求,這為我國在空間應用中大規(guī)模使用以太網提供了一種有效的思路。
[1]邱愛華,張濤,顧逸東.航天器可應用實時以太網分析[J].空間科學學報,2015,35(3):368-380.
[2]曹云鵬.以太網MAC層協(xié)議研究與FPGA實現[D].蘇州:蘇州大學,2011.
[3]李嬋娟.安全關鍵實時通信協(xié)議研究[D].蘭州:蘭州大學,2011.
[4]孔繁青,郭永林.我國空間站信息系統(tǒng)的綜合技術研究[J].載人航天,2011,17(2):45-49.
[5]姚勝東.工業(yè)以太網現場總線EtherCAT的應用[J].儀表技術,2014(8):4-6.
[6]羅安心.基于時間觸發(fā)以太網的同步算法研究與實現[D].成都:電子科技大學,2013.
[7]劉成,王彤,李錚,等.時間觸發(fā)AFDX網絡的設計和實時性分析[J].北京航空航天大學學報,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]胡書立,王清理.POWERLINK總線技術的研究與實現[J].計算機工程與設計,2012,33(10):3821-3827.
[10]陳在平,孫遜,賈超.POWERLINK物理層通信的實現[J].計算機工程與設計,2015(6):1420-1424.
[11]王永興.基于CANopen的多協(xié)議轉換與傳輸機制研究[D].武漢:武漢理工大學,2011.
[12]趙粹臣.Ethernet POWERLINK通信協(xié)議的實時性研究與硬實時優(yōu)化設計[D].沈陽:沈陽理工大學,2014.
[13]趙鳳鳴.Ethernet POWERLINK實時以太網分析[D].包頭:內蒙古科技大學,2012.
[14]趙涌,李延軍,彭文才,等.Powerlink實時以太網的實現與測試[J].水電自動化與大壩監(jiān)測,2015(1):52-55.
[15]梁綏澤,朱同文.基于FPGA的Ethernet Powerlink通信節(jié)點的設計與實現[J].無線互聯科技,2015(7):3-4.
[16]蘇玉烽.千兆網絡通信系統(tǒng)的FPGA設計實現[D].西安:西安電子科技大學,2012.