《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 一種分布式結(jié)構(gòu)飛行控制計算機內(nèi)部總線節(jié)點設(shè)計
一種分布式結(jié)構(gòu)飛行控制計算機內(nèi)部總線節(jié)點設(shè)計
來源:電子技術(shù)應(yīng)用2011年第11期
張志文,陳 欣,呂迅竑
(南京航空航天大學(xué) 自動化學(xué)院,江蘇 南京210016)
摘要: 根據(jù)分布式樣例飛行控制計算機特點和內(nèi)部數(shù)據(jù)通信需求,提出了以C8051F120單片機與FlexRay共同組成的內(nèi)部總線通信節(jié)點設(shè)計方案,完成了通信節(jié)點硬件的詳細設(shè)計,開發(fā)了通信軟件并討論了若干設(shè)計要點。對所設(shè)計的FlexRay通信節(jié)點進行了常溫和低溫下的功能和性能測試,驗證了通信效率和可靠性,可滿足新型飛行控制計算機的內(nèi)部數(shù)據(jù)通信要求。
中圖分類號: TN919;TP399
文獻標識碼: B
文章編號: 0258-7998(2011)11-0040-04
The design of internal bus communication node of a distributed flight control computer
Zhang Zhiwen,Chen Xin,Lv Xunhong
College of Automation Engineering, Nanjing University of Aeronautics and Astronautics, Nanjing 210016,China
Abstract: According to the feature of new distributed flight control computer and the demand of its internal communication, this paper proposes a design of internal bus communication node that consist of C8051F120 MCU and FlexRay, completed design details of the node′s hardware, developed the communication software and discussed several points of design. At last we tested the FlexRay node′s function and performance and verified the efficiency and reliability of FlexRay bus which meet the demand of new distributed flight control computer′s internal communication.
Key words : FlexRay;flight control computer;internal bus;C8051F120;MFR4310


    目前在一類無人機分布結(jié)構(gòu)的飛行控制計算機中廣泛使用CAN作為內(nèi)部通信總線,其總線采用基于事件觸發(fā)的通信機制,速率為1 Mb/s[1]。隨著無人機的不斷發(fā)展,作為飛行控制系統(tǒng)核心的飛行控制計算機對內(nèi)部總線的數(shù)據(jù)傳輸速率和可靠性的要求也越來越高,CAN總線在帶寬和實時性等方面已經(jīng)不能滿足要求。為了解決這個問題,本文分析研究了多種串行通信總線如ARINC429、1553B等,但其通信速率均不能滿足要求[2-3]。而 FlexRay作為一種新興的通信總線,除具有10 Mb/s的通信速率外,其確定性和可靠性能更好地滿足新型分布式結(jié)構(gòu)飛行控制計算機內(nèi)部總線數(shù)據(jù)通信需求。
1 FlexRay通信協(xié)議概述
1.1 FlexRay協(xié)議特性

    FlexRay總線作為一種新型的總線通信協(xié)議,與傳統(tǒng)的CAN相比,在通信速率、確定性、可靠性等方面有著明顯的優(yōu)勢[4-5]:
    (1)更高的傳輸速率。FlexRay提供A/B兩個通信信道,每個信道傳輸速率最高可達到10 Mb/s,與CAN總線相比,它能將可用帶寬提高10~40倍,而且總線利用率可超過90%。
    (2)確定性。FlexRay采用了基于同步時基的媒質(zhì)訪問機制,時基的精確度介于0.5 μs~10 μs之間(通常為1~2 μs)。
    (3)可靠性。FlexRay提供的雙通道通信,可進行冗余消息傳輸,極大地提高了數(shù)據(jù)傳輸可靠性。此外,F(xiàn)lexRay還包含總線監(jiān)控功能,可實時對總線活動進行監(jiān)測控制。
    (4)靈活性。FlexRay提供了大量參數(shù)配置,如通信周期的大小、負載段長度等,可以根據(jù)需要靈活調(diào)整,支持星型、總線型、混合型等多種拓撲結(jié)構(gòu),而CAN僅支持總線型拓撲結(jié)構(gòu)。
1.2 FlexRay總線通信機制
    FlexRay采用基于循環(huán)往復(fù)通信周期的媒質(zhì)訪問機制,每個通信周期包括了靜態(tài)段、動態(tài)段、符號窗口以及網(wǎng)絡(luò)空閑時間四個部分。在周期的靜態(tài)段,F(xiàn)lexRay采用靜態(tài)的時分多路訪問(TDMA)機制;而在周期的動態(tài)段,F(xiàn)lexRay則采用柔性時分多路訪問(FTDMA)機制。
    每個通信周期的靜態(tài)段和動態(tài)段均是由數(shù)個時隙(slot)組成的。在周期的靜態(tài)段,由若干個時間寬度相同的靜態(tài)時隙(Static Slot)組成,每個時隙單獨分配給某一個節(jié)點,在該時隙內(nèi)總線控制權(quán)由此節(jié)點唯一占有,節(jié)點在總線上進行數(shù)據(jù)發(fā)送,即使該節(jié)點在該時隙內(nèi)沒有數(shù)據(jù)需要向總線發(fā)送,其所分配的時隙也不會被其他節(jié)點所占用。在周期的動態(tài)段,引入了一個稱為微時隙(minislot)的概念。如果在某個時隙有消息在總線上發(fā)送,則該動態(tài)時隙的長度等于整個消息所需的若干個微時隙的總長度;如果沒有消息發(fā)送,則該動態(tài)時隙長度等于一個微時隙的長度。在周期的某個時隙內(nèi)部,僅有一個節(jié)點被允許在總線上進行數(shù)據(jù)發(fā)送,且該節(jié)點所要發(fā)送消息的幀標識符與當前的時隙計數(shù)器值必須相等。幀標識符是在系統(tǒng)設(shè)計階段靜態(tài)地分配給各節(jié)點的。由于同一幀標識符不允許被分配給不同的節(jié)點,因此,可以確??偩€上不會發(fā)生媒質(zhì)訪問沖突現(xiàn)象[5]。
2 飛行控制計算機內(nèi)部FlexRay網(wǎng)絡(luò)結(jié)構(gòu)
    樣例飛行控制計算機采用分布式總線網(wǎng)絡(luò)結(jié)構(gòu),主要由CPU單元、模擬量接口單元、開關(guān)量接口單元和串口量接口單元四部分組成。其中,CPU單元主要功能是為實現(xiàn)整個飛行控制系統(tǒng)的控制進行律解算、實現(xiàn)外圍設(shè)備的管理及余度管理,是分布式余度飛行控制計算機的核心主控單元。模擬量接口單元、開關(guān)量接口單元、串行量接口單元為分布式余度飛行控制計算機的數(shù)據(jù)采集及輸出部分,三個功能單元主要負責接收傳感器數(shù)據(jù)及采集外圍設(shè)備的狀態(tài),同時也輸出由中央處理單元解算及處理后的數(shù)據(jù)[6]。系統(tǒng)中每個單元作為一個FlexRay節(jié)點,節(jié)點之間通過FlexRay總線進行數(shù)據(jù)通信交互,如圖1所示。

3 FlexRay通信節(jié)點方案
    FlexRay節(jié)點有三種架構(gòu)方式,目前已經(jīng)實現(xiàn)的有MCU+CC+BD和MCU+BD兩種方式。MCU+CC+BD是最早的FlexRay節(jié)點架構(gòu)方式,在這種方式下MCU是主機處理器,通過配置通信控制器(CC)中的寄存器設(shè)置其工作方式,然后控制它的工作狀態(tài)實現(xiàn)數(shù)據(jù)收發(fā);通信控制器在鏈路層和物理層上實現(xiàn)FlexRay網(wǎng)絡(luò)協(xié)議的可編程組合電路,完成主機控制器和總線驅(qū)動器之間的數(shù)據(jù)交互和流程控制;總線收發(fā)器(BD)將通信控制器與總線相連,通過編碼處理將FlexRay通信控制器要發(fā)送的數(shù)據(jù)發(fā)送到總線上,通過譯碼處理將來自總線的數(shù)據(jù)傳送到FlexRay通信控制器中[7]。而在MCU+BD的方式下,MCU集成了FlexRay通信控制器的主機處理器,整個節(jié)點的集成度有了提高。
    根據(jù)樣例飛行控制計算機系統(tǒng)資源,本設(shè)計采用第一種架構(gòu)方式,MCU采用C8051F120單片機。C8051F120有16 bit地址總線,8 bit數(shù)據(jù)總線,處理器可以采用外部有源晶振或內(nèi)部晶振,內(nèi)部集成有8 448(8 K+256)B的RAM、128 KB外部數(shù)據(jù)區(qū)、64 KB外部程序區(qū);采用流水線指令結(jié)構(gòu):70%指令的執(zhí)行時間為1個或2個系統(tǒng)時鐘周期。通信控制器采用飛思卡爾公司2008年推出的、支持FlexRay協(xié)議2.1A的MFR4310。MFR4310提供兩個獨立的FlexRay通道A/B,可多達254 B數(shù)據(jù)配置的128個消息緩沖器,以及兩個可配置接收先進先出(FIFO)消息緩沖器??偩€收發(fā)器采用恩智浦公司的TJA1080A,其通信速率高達10 Mb/s,并且可工作于總線型和星型兩種拓撲結(jié)構(gòu)。FlexRay通信節(jié)點結(jié)構(gòu)如圖2所示。

4 FlexRay節(jié)點設(shè)計
4.1 節(jié)點總體設(shè)計

    FlexRay總線節(jié)點設(shè)計如圖3所示。C8051F120復(fù)位時從片內(nèi)Flash存儲器執(zhí)行程序,進入正常工作模式。先進行C8051F120系統(tǒng)模塊內(nèi)其他器件的初始化以及系統(tǒng)需要的其他初始化,然后開始FlexRay通信:單片機產(chǎn)生需要發(fā)送的數(shù)據(jù),通過位擴展模塊將數(shù)據(jù)信號送到通信控制器MFR4310中對數(shù)據(jù)信號進行編碼等處理后送到收發(fā)器TJA1080A,收發(fā)器對其進行電平變換,然后再送到總線上與其他節(jié)點進行數(shù)據(jù)交換。

 

 

    C8051F120單片機引入了數(shù)字交叉開關(guān),可通過設(shè)置交叉開關(guān)將片內(nèi)的計數(shù)器/定時器、串行總線、硬件中斷、ADC轉(zhuǎn)換啟動輸入、比較器輸出以及微控制器內(nèi)部的其他數(shù)字信號根據(jù)需要配置到端口P0~P3的I/O引腳;C8051F120共有8個數(shù)字I/O端口,可以將外部存儲器接口按需要配置到低端口或高端口,并可配置地址總線和數(shù)據(jù)總線是否復(fù)用。
4.2 C8051F120與MFR4310接口連接
    C8051F120與MFR4310連接時,將外部存儲器接口配置到高端口P4~P7,地址數(shù)據(jù)總線采用非復(fù)用方式。MFR4310必須選擇AMI(Asynchronous Memory Interface)模式。由于C8051F120為8 bit單片機,而MFR4310數(shù)據(jù)總線為16 bit,所以需要進行位擴展。如圖4所示,MFR4310低8 bit(D0~D7)接單片機P7口,高8 bit D8~D15分別接鎖存器(74HC573)的D0~D7和單片機的P3口。單片機讀寫數(shù)據(jù)的時序為:C8051F120寫數(shù)據(jù)時,P3口的輸出驅(qū)動器使能,寫高8 bit數(shù)據(jù)D8~D15到P3口上,寫低8 bit數(shù)據(jù)D0~D7到P7口,使能A12選通MFR4310,將P7口和P3口的16 bit數(shù)據(jù)D0~D15寫到總線控制器中,寫完數(shù)據(jù)后禁止P3口的輸出驅(qū)動器;C8051F120讀數(shù)據(jù)時,RD#、A12都有效,選通MFR4310,單片機讀低8 bit數(shù)據(jù)D0~D7,然后使A12無效、A13有效,此時74HC573的LE#電平由高變低,鎖存器將對應(yīng)的高8 bit數(shù)據(jù)D8~D15鎖存,然后單片機將讀入高8 bit數(shù)據(jù)。

4.3 TJA1080A與物理層接口連接
    根據(jù)FlexRay電氣物理層協(xié)議要求[8],總線驅(qū)動器TJA1080A與物理層接口的電路如圖5所示。其中T1為共模扼流電感,應(yīng)滿足頻率在20 MHz~50 MHz時,其共模扼流電感的共模衰率最大。為了保證更好的電磁兼容性,在收發(fā)器與物理層之間引入了一個隔離終端,即將終端電阻分成兩個阻值相同的電阻R7和R8。電阻R7與R8的精度控制在1%以內(nèi),使其應(yīng)滿足2|R7-R8|/(R7+R8)≤2%,以保證二者良好匹配,否則匹配性過差會導(dǎo)致信號收發(fā)時產(chǎn)生很高的電磁輻射。

4.4 系統(tǒng)參數(shù)配置
    通過配置C8051F120中的EMI0CF寄存器,將外部存儲器接口配置到單片機高端口P4~P7,地址數(shù)據(jù)總線工作在非復(fù)用模式。而MFR4310必須工作在異步存儲器接口(AMI)模式下,此時MFR4310有12根地址線和16根數(shù)據(jù)線。因此選用C8051F120單片機的A0~A11作為地址線,A12作為MFR4310的片選信號。從而MFR4310在C8051F120中的存儲地址空間為0xE000~EFFF。地址映射部分代碼如下:
    #define CC_base_address 0xE000
    #define CC_FRM_base_address 0x0400
    #define FrMVR 0x0000
    #define FrMCR 0x0001
    ……
    #define FrMBCCSR0 0x0080
    #define FrMBCCFR0 0x0081
    #define FrMBFIDR0 0x0082
    #define FrMBIDXR0 0x0083
    FlexRay總線協(xié)議提供了大量參數(shù)配置,可以靈活地根據(jù)系統(tǒng)需求進行相應(yīng)的調(diào)整,如通信周期大小、宏節(jié)拍MT(Macrotick)的長度、靜態(tài)段、動態(tài)段、標識窗的時間寬度、負載段的長度、同步節(jié)點的選擇、單雙通道選擇、通信速率、靜態(tài)段時隙的分配、動態(tài)段的訪問優(yōu)先級等。
4.5 FlexRay初始化流程
    在FlexRay節(jié)點可以參與到總線上進行通信前,需要對其進行一系列的初始化操作,包括FlexRay模塊配置、通信集群協(xié)議參數(shù)配置和信息緩沖器配置等,接著通過對相應(yīng)的寄存器進行配置完成各緩沖器和FIFO的初始化,并設(shè)置回調(diào)函數(shù)和初始化計時器,然后啟動節(jié)點開始通信。具體的FlexRay初始化流程圖如圖6所示。

5 測試驗證
    對設(shè)計的FlexRay節(jié)點進行了測試驗證,實驗中,將設(shè)計的兩個MFR4310節(jié)點相連進行數(shù)據(jù)通信:MFR4310節(jié)點I在時隙1發(fā)送數(shù)據(jù),在時隙4接收數(shù)據(jù);MFR4310節(jié)點II在時隙4發(fā)送數(shù)據(jù),在時隙1接收數(shù)據(jù)。每個節(jié)點都對接收到的數(shù)據(jù)幀數(shù)、丟幀數(shù)和發(fā)生錯誤幀數(shù)進行計數(shù),兩個MFR4310節(jié)點通過串口將通信結(jié)果輸出到PC機上以供觀測,同時也可以通過示波器直接觀測總線波形進行監(jiān)控。測試方案如圖7所示。

    設(shè)置通信速率為10 Mb/s,每幀消息的負載長度為127字,通信周期為50 Hz,經(jīng)過12 h連續(xù)的通信測試(6 h常溫和6 h-45 ℃的低溫),其中6 h的低溫通信結(jié)果如表1所示。從表中可以看出丟幀數(shù)和錯誤計數(shù)都為0,表明節(jié)點設(shè)計正確,滿足內(nèi)部總線對誤碼率的指標要求,同時也驗證了FlexRay總線在不同溫度環(huán)境下的高速率通信可靠性和安全性。

    FlexRay作為一種新型的高速串行總線標準,已經(jīng)在寶馬X5、X6和7系列轎車上都獲得了成功的應(yīng)用。相比于CAN總線,F(xiàn)lexRay傳輸速率更高,也更安全靈活。本文根據(jù)樣例飛行控制計算機系統(tǒng)資源,設(shè)計了以C8051F120單片機為中央處理單元的FlexRay通信節(jié)點,并對其進行了測試驗證,結(jié)果正確,能滿足系統(tǒng)要求,為以后在新型飛行控制計算機上用FlexRay總線替代CAN打下了堅實基礎(chǔ)。相信將來必定會像CAN總線一樣在工業(yè)控制、航空航天等其他領(lǐng)域得到廣泛的應(yīng)用。
參考文獻
[1] 任立平,周軍.CAN總線高層協(xié)議CANaerospace及其設(shè)計應(yīng)用[J].測控技術(shù),2008,27(2):59-61.
[2] 劉迎歡,羅志強.ARINC429協(xié)議和與之對應(yīng)的俄羅斯標準的比較[J].航空電子技術(shù),2002,33(1):11-16.
[3] 趙睿,秦貴和,范鐵虎.FlexRay通信協(xié)議的總線周期優(yōu)化[J].計算機應(yīng)用研究,2010,27(10):3847-3850.
[4] 劉祥志,毛成勇,張瑞鋒,等.基于FlexRay的線控制動系統(tǒng)的研究[J].山東科學(xué),2010,23(3):35-37.
[5] FlexRay consortium.FlexRay communications systemprotocol specification.Version 2.1,Revision A[EB/OL].www.flexray.com.2005.
[6] 張增安,陳欣,呂迅竑.一種用于無人機的分布式飛行控制系統(tǒng)設(shè)計[J].計算機系統(tǒng)應(yīng)用,2010,19(8):16-20.
[7] 萬苓,孔峰.基于DSP FlexRay節(jié)點的應(yīng)用研究[J].廣西工學(xué)院學(xué)報,2010,21(2):32-35.
[8] FlexRay consortium. FlexRay communications system electrical physical layer specification Version 2.1,Revision.B[EB/OL].www.FlexRay.com.2005.

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