雷志軍,李文新,雷志廣,賈露娟
(蘭州空間技術(shù)物理研究所 甘肅 蘭州 730000)
基于FPGA的Flexray IP核通信的研究與實現(xiàn)
雷志軍,李文新,雷志廣,賈露娟
(蘭州空間技術(shù)物理研究所 甘肅 蘭州730000)
目前從航天工程角度來看,CAN和1553B的速率、可靠性和成本指標在航天系統(tǒng)中應(yīng)用最為適宜。但是對于安全等級要求更高的系統(tǒng)則需一個新的標準。尤其是對故障容錯與時間確定性需求不斷增加的系統(tǒng)。FlexRay通過在確定的時隙中傳遞信息,以及在兩個通道上的故障容錯和冗余信息的傳送,滿足了這些新增加的要求。然而,集成著FlexRay IP的芯片目前主要滿足的是汽車安全等級而不能滿足宇航級。通過對集成著FlexRay IP核的CPU進行篩選和加固會導(dǎo)致芯片費用昂貴。基于以上問題,本文選用滿足宇航級的FPGA來實現(xiàn)FlexRay通信控制器,這種方法既可以簡化FlexRay節(jié)點的硬件復(fù)雜度和成本,也為FlexRay的實現(xiàn)新添了一種方法。并且為其在航天領(lǐng)域的應(yīng)用做出相應(yīng)的研究。經(jīng)測試可知兩個節(jié)點可以正常穩(wěn)定通信。
FlexRay IP;通信控制器;FlexRay;FPGA;篩選
目前,星載設(shè)備上通用的總線協(xié)議為CAN和1553B。CAN總線[1]是一種成熟的串行通信總線,它是由德國的BOSCH公司從20世紀80年代初為解決汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通訊協(xié)議。它具有可靠性高[2]、穩(wěn)定性好、抗干擾能力強、通信速率高、維護成本低、實時性強、很好的開放性及數(shù)據(jù)兼容性等優(yōu)點。其最大數(shù)據(jù)吞吐率為1 Mbps。由于CAN總線是基于事件觸發(fā)的,雖然保證了通訊的實時性,但當多個事件同時觸發(fā)時則不能保證信息到達的時間的確定性。
MIL-STD-1553B總線是20世紀70年代由美國空軍提出的一種串行通信總線。其具有雙向輸出特性,實時性和可靠性高[3]。廣泛應(yīng)用在當代的運輸機和相當數(shù)量的民航客機以及軍用飛機上。航天系統(tǒng)也廣泛的應(yīng)用這一總線。1553B總線是一種集中控制、響應(yīng)式多路數(shù)據(jù)傳輸總線??偩€組成包括:一個總線監(jiān)視器(BC)負責總線調(diào)度管理,若干個(0-31)遠程終端(RT)構(gòu)成。其總線傳輸速率為 1 Mbps。雖然1553B有以上優(yōu)點,但是RT與RT之間通信方式復(fù)雜,必須通過BC才能進行通信。
FlexRay總線是在2000年由國際幾大汽車巨頭組織建立了FlexRay聯(lián)盟[4],其目的就是設(shè)計一個新的時間觸發(fā)通訊協(xié)議用于汽車工業(yè)上,并且在速度和穩(wěn)定性上都超過CAN 和TTP[5]。在2009年FlexRay聯(lián)盟解體,并將最后一個版本的通訊協(xié)議稱作——FlexRay;目前FlexRay協(xié)議已經(jīng)成為ISO標準的一員。FlexRay總線支持消息冗余和非冗余2種傳輸[6],在考慮冗余的情況下該總線理論上的最高通信速率達到10 Mbps,是CAN和1553B總線通信速率的10倍。如果不考慮冗余則其傳輸速率可以達到20 Mbps。并且在一個FlexRay通信周期內(nèi)。同時綜合了時分多址和柔性時分多址的總線技術(shù)。例如在一個通信中期中包括有靜態(tài)段、動態(tài)段、符號窗和網(wǎng)絡(luò)空閑時間。靜態(tài)段采用時間觸發(fā)方式來保證信號傳輸?shù)母叨却_定性,補充了CAN總線在多事件同時觸發(fā)時信息到達的不確定性。動態(tài)段則采用事件觸發(fā)方式來增強通信的靈活性。
基于以上原因,本文選擇FlexRay作為研究對象。
單個FlexRay節(jié)點由以下8部分組成:USB BLASTER、RS232、POWER、SDRAM、SRAM、EXTCLK、FPGA和TJA1080。其中USB BLASTER用于下載和調(diào)試程序。PC機通過RS232與FPGA進行信息交互,從而通過PC機輸入命令來控制程序的運行。POWER是整個系統(tǒng)的供電模塊,電源的完整性將影響整個硬件是否能正確運行的關(guān)鍵。SDRAM、SRAM用于存儲應(yīng)用程序、EXT CLK用于同步外部的節(jié)點。FlexRay總線驅(qū)動器TJA1080是FlexRay節(jié)點的最重要的一個部分,F(xiàn)PGA通過它與外部的FlexRay總線進行通信。整體框架如圖1所示。
圖1 系統(tǒng)框架Fig.1 System framework
FlexRay IP核是個復(fù)雜的軟核。FlexRay IP核實現(xiàn)主要由以下6個部分組成:64 bit的時間戳、事件日志、觸發(fā)器、Injector、FlexRay控制器、UART。
圖2 FlexRay IP核的整體框架Fig.2 The overall framework of the IP kernel FlexRay
其中 64 bit的時間戳為各個部分提供了時鐘計數(shù)。Event Logger用來記錄一些通信過程中的信息。Trigger作為FlexRay IP核的重要組成部分,它的作用是檢測一些信號模式的到來。如果一些信號(如上升沿或下降沿等)發(fā)生將觸發(fā)相應(yīng)的信號被發(fā)送。Injector是FlexRay IP核的一個重要組成部分,它可以產(chǎn)生任意的波形并發(fā)送到FlexRay總線上作為無效的信息。FlexRay通信控制器用它產(chǎn)生的波形作為沖突波形來測試節(jié)點的接收是否正常。FlexRay控制器是FlexRay IP核的核心構(gòu)成元素,它對FlexRay協(xié)議V2.1的大部分功能予以實現(xiàn)。UART控制模塊主要用于PC機與FlexRay IP之間的信息交互。FlexRay IP核的整體框架圖2所示。
從圖2可以看出FlexRay IP核主要可以分為兩大部分:VHDL描述的硬件和程序運行控制的C語言。其中用VHDL描述的硬件是FlexRay IP實現(xiàn)通信的最重要也是最核心的一部分,它描述了FlexRay IP的硬件構(gòu)成及各功能模塊的實現(xiàn),其中FlexRay控制器是FlexRay IP構(gòu)成的主要元素,接下來我們將詳細介紹一下FlexRay控制器各個組件的VHDL構(gòu)成的功能。
2.1FlexRay控制器的VHDL實現(xiàn)
FlexRay控制器主要包括控制器主機接口、協(xié)議操作控制器(POC)、Macrotick生成模塊、時鐘同步處理模塊、時鐘同步啟動模塊、(MAC)媒體訪問控制模塊、幀和符號處理模塊、編碼解碼處理模塊。
其中主控制器接口對每個節(jié)點主控制器 (NIOS II軟核)與FlexRay協(xié)議引擎間的數(shù)據(jù)和控制流進行管理。主控制器接口包含兩個主要的接口模塊-協(xié)議數(shù)據(jù)接口protocol data interface和信息數(shù)據(jù)接口message data interface。協(xié)議數(shù)據(jù)接口管理著所有與協(xié)議運行相關(guān)的數(shù)據(jù)交互,而信息數(shù)據(jù)接口管理著所有與信息交互相關(guān)的數(shù)據(jù)交互。
協(xié)議操作控制:每個核心處理器允許對其基本運行狀態(tài)進行變更,以滿足節(jié)點更高模式的改變。如果核心處理器在完全協(xié)調(diào)和同步的情形下發(fā)生變更,正確的協(xié)議狀態(tài)才能出現(xiàn)。POC的目的是響應(yīng)主機指令以及在同步方式中核心處理器變更時做出協(xié)議調(diào)節(jié),并且根據(jù)變更情況向主機提供適當?shù)臓顟B(tài)反饋。在喚醒、啟動和重組規(guī)程中核心處理器的同步是必需的。
Macrotick生成模塊:它是由Microtick時鐘作為原時鐘,并結(jié)合時鐘同步處理模塊產(chǎn)生的誤差來更新Macrotick時鐘的生成。
時鐘同步處理模塊:在一個分布式通信系統(tǒng)中,各個節(jié)點擁有各自的時鐘。即使在最初所有的內(nèi)部時鐘基準是同步的,但由于溫度高低,電壓起伏,及時鐘源(如晶振)公差等原因,各個節(jié)點間的內(nèi)部時鐘基準同樣存在一個短時間的偏差。一個時間觸發(fā)系統(tǒng)的基礎(chǔ)是在集群的每個節(jié)點都擁有近似相同的時間窗口并且該。全局的時間窗口用作各個節(jié)點通信計時的基準。因為FlexRay協(xié)議采用的是一個分布式的時鐘同步機制。集群中各個節(jié)點根據(jù)其他節(jié)點發(fā)出的同步幀信息各自完成與集群的同步。所以此模塊是用來計算一寫頻率和相位偏差的模塊,并將計算的結(jié)果送給Macrotick生成模塊用來調(diào)整Macrotick的大小從而來保證全局的時間窗口“近似相同”。而“近似相同”的意思是不同的兩個節(jié)點間,其全局時間窗口的偏差在規(guī)定的容差范圍內(nèi)。而此偏差的最大值則是平常所稱的精度。
時鐘同步啟動模塊:對于一個時分多址通信方案而言,要求參與該集群通信的所有節(jié)點具有同步和時間對準的能力。一個容錯的分布式啟動策略將用于對所有節(jié)點進行同步,這是正常通信的前提保證。
媒體訪問控制模塊:在FlexRay協(xié)議中,媒介存取控制是基于一個循環(huán)的通信周期的。在一個通信周期中,F(xiàn)lexRay提供了兩個媒介存取方案供選擇。他們是靜態(tài)時分多址存取方式(TDMA)和基于最小時隙的動態(tài)存取方式。
幀和符號處理模塊:幀信息和符號處理(FSP)是幀信息和符號解碼間的主要處理層,幀信息和符號處理通過時分多址存取模式對幀信息和符號的準確時間進行校對,并進一步按照語法檢驗對接收的幀信息進行校驗,以確定其語義正確性。
編碼解碼處理模塊:它有兩種功能,一種是將要發(fā)送的幀轉(zhuǎn)化成NRZ信號并發(fā)送到FlexRay總線上,另一種功能是從FlexRay總線上接收幀信息,并將滿足NRZ信號的邏輯零和一轉(zhuǎn)化成滿足FlexRay的幀格式。
2.2C語言控制實現(xiàn)
C語言的控制也是非常重要的一部分,通過它的編寫可以控制FlexRay IP核正常初始化、控制和通信。下面就對C語言控制進行介紹:
協(xié)議操作控制(POC)是FlexRay IP核最核心的一個部分,F(xiàn)lexRay的各個狀態(tài)之間的轉(zhuǎn)變就是靠POC控制的。當開發(fā)板上電后,協(xié)議會進行default config狀態(tài),在這個狀態(tài)里FlexRay IP會進行一些默認的配置。然后轉(zhuǎn)換到config狀態(tài),這時是用戶進行參數(shù)的配置(如通道的選擇、時鐘同步配置的參數(shù)等)、buffer和 FIFO的初始化等處理。然后是ready狀態(tài),在這個狀態(tài)下如果節(jié)點是冷啟動節(jié)點則有責任去喚醒其它睡眠模式下的節(jié)點(這個過程是 wakeup狀態(tài))。如果這個節(jié)點不是冷啟動節(jié)點,則其將沒有發(fā)送wakeup信號的能力,只要被喚醒的能力。當全部節(jié)點都被喚醒后狀態(tài)會跳轉(zhuǎn)到startup狀態(tài)。在這個狀態(tài)下冷啟動節(jié)點會啟動通信,跟隨冷啟動節(jié)點會首先集成到通信簇里,最后是非冷啟動節(jié)點集成到通信簇里。到目前為止FlexRay便可以正常通信。
實際上,C語言的控制流程也是按照協(xié)議操作控制(POC)的狀態(tài)轉(zhuǎn)變過程進行配置的。圖3是更詳細的C語言實現(xiàn)的控制流程圖。
圖3 C語言實現(xiàn)的控制流程圖Fig.3 C control flow chart language
FlexRay總線開始通信的前提是節(jié)點是否被正確的喚醒和啟動,在FlexRay協(xié)議v2.1中,它是由兩個WUS組成的一個WUP,其中底電平gdWakeupSymbolTxLow的有效取值可在15~60 gdBit,而高電平的取值范圍在45~180 gdBit這個范圍內(nèi)。簇中節(jié)點被喚醒的前提是所有總線驅(qū)動器都已經(jīng)上電。冷啟動節(jié)點有發(fā)送WUS符的責任,當其它節(jié)點的總線驅(qū)動器接收到這個WUS后就會喚醒本節(jié)點。喚醒的仿真波形如下圖所示,它也是由兩個WUS構(gòu)成一個WUP的仿真波形。從圖中可以看出WUP發(fā)送的全過程,及其波形的正確性。
圖4 ModelSim仿真WUP波形Fig.4 ModelSim WUP waveform simulation
經(jīng)過ModelSim仿真后,我們將開始進行硬件的調(diào)試,首先將VHDL實現(xiàn)的FlexRay IP下載到FPGA中,然后調(diào)用NIOS軟件將C語言實現(xiàn)的控制程序下載到FPGA中并全速運行。通過示波器我們可以發(fā)現(xiàn)首先獲取的信號是由冷啟動節(jié)點A發(fā)送的15個WUS構(gòu)成的WUP信號,具體的測試波形如圖5所示。
圖5 示波器測得WUP波形Fig.5 The measured waveform oscilloscope WUP
當節(jié)點B接收到來自冷啟動節(jié)點A的喚醒信號后,跟隨冷啟動節(jié)點B也發(fā)出同樣的喚醒信號到FlexRay總線。這時兩個節(jié)點都已經(jīng)被喚醒并進入啟動階段。在傳輸啟始幀之前冷啟動節(jié)點將先發(fā)送一個CAS(沖突避免標示符)到FlexRay總線。CAS標示符的測試波形如圖6所示。
FlexRay網(wǎng)絡(luò)的起始階段由冷啟動節(jié)點進行初始化,冷啟動節(jié)點有啟動通訊的能力。非冷啟動節(jié)點必須等待其啟始后才能集成到簇中。冷啟動節(jié)點在時間表中指定的位置發(fā)送啟始幀。在網(wǎng)絡(luò)起始階段這些啟始幀是惟一被發(fā)送的幀。并且它們每個周期都被發(fā)送。具體測試到的啟始幀波形如圖7所示。
圖6 示波器下沖突避免標示符(CAS)Fig.6 Oscilloscope conflict avoiding identifier(CAS)
圖7 示波器測得的啟始幀波形Fig.7 Oscilloscope measured starting frame waveforms
經(jīng)過理論的學(xué)習與研究,本文實現(xiàn)了能夠在兩塊FPGA之間進行正常通信的FlexRay節(jié)點。下一步計劃是實現(xiàn)由多個FPGA實現(xiàn)的FlexRay節(jié)點間的通信。并對總線利用率進行理論學(xué)習與驗證。為FlexRay總線在航天中應(yīng)用做前期研究。
[1]劉欣,楊志佳.FlexRay通信控制器收發(fā)功能的研究和實現(xiàn)[J].汽車電子,2007,3(6):266-268.
[2]何仁,李強.汽車線控轉(zhuǎn)向技術(shù)的現(xiàn)狀與發(fā)展趨勢[J].交通運輸工程學(xué)報,2005,5(2):68-72.
[3]袁春柱,劉思遠,楊芳.星載FlexRay總線應(yīng)用層傳輸方法研究[J].航天器工程,2013,22(3):68-70.
[4]陳濤,秦貴和.FlexRay時鐘同步分析[J].計算機工程,2010,14(36):235-237.
[5]程馳,帥志斌,李建秋,等.車載網(wǎng)絡(luò)通訊協(xié)議FlexRay網(wǎng)絡(luò)的分析及搭建[J].汽車安全與節(jié)能學(xué)報,2013,4(1):76-79.
[6]劉思遠,楊芳,汪小潔,等.時間觸發(fā)型FlexRay總線星載應(yīng)用研究[J].航天器工程,2012:6-12.
Research and implement of point to point communicate based on FPGA’s FlexRay IP
LEI Zhi-jun,LI Wen-xin,LEI Zhi-guang,JIA Lu-juan
(Lanzhou Institute of Physics,CAST Lanzhou 730000,China)
At present from the perspective of Aerospace Engineering,CAN and 1553B's rate,reliability and cost index in the application of space system are the most appropriate.But for the system security level required higher needs a new standard. Especially for the fault tolerance and time deterministic demand are increasing system.FlexRay through the transmission of information in determining the time slot,And the transmission of fault tolerance and redundancy information in two on the channel,To meet these new increased demand.However,integrated with FlexRay IP chip at present mainly is to meet the automotive safety level and can not meet the space level.Through screening and reinforcement will lead to expensive of the integrated FlexRay chip IP core CPU.Based on the above problems,this paper used the FPGA to meet aerospace grade to realize FlexRay communication controller,This method can not only simplify the FlexRay node hardware complexity and cost,Also provides for a method of the implementation of FlexRay.And make the appropriate research for its application in the field of space.The test indicated that the two nodes can be normal and stable communication.
flexray IP;communication controller;flexray;FPGA;screening
TN91
A
1674-6236(2016)03-0148-04
2015-03-12稿件編號:201503164
雷志軍(1987—),男,甘肅蘭州人,碩士。研究方向:電子技術(shù)在空間中的應(yīng)用。