《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 一種分布式結(jié)構(gòu)飛行控制計(jì)算機(jī)內(nèi)部總線(xiàn)節(jié)點(diǎn)設(shè)計(jì)
一種分布式結(jié)構(gòu)飛行控制計(jì)算機(jī)內(nèi)部總線(xiàn)節(jié)點(diǎn)設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2011年第11期
張志文,陳 欣,呂迅竑
(南京航空航天大學(xué) 自動(dòng)化學(xué)院,江蘇 南京210016)
摘要: 根據(jù)分布式樣例飛行控制計(jì)算機(jī)特點(diǎn)和內(nèi)部數(shù)據(jù)通信需求,提出了以C8051F120單片機(jī)與FlexRay共同組成的內(nèi)部總線(xiàn)通信節(jié)點(diǎn)設(shè)計(jì)方案,完成了通信節(jié)點(diǎn)硬件的詳細(xì)設(shè)計(jì),開(kāi)發(fā)了通信軟件并討論了若干設(shè)計(jì)要點(diǎn)。對(duì)所設(shè)計(jì)的FlexRay通信節(jié)點(diǎn)進(jìn)行了常溫和低溫下的功能和性能測(cè)試,驗(yàn)證了通信效率和可靠性,可滿(mǎn)足新型飛行控制計(jì)算機(jī)的內(nèi)部數(shù)據(jù)通信要求。
中圖分類(lèi)號(hào): TN919;TP399
文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 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


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

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

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

4 FlexRay節(jié)點(diǎn)設(shè)計(jì)
4.1 節(jié)點(diǎn)總體設(shè)計(jì)

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

 

 

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

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

4.4 系統(tǒng)參數(shù)配置
    通過(guò)配置C8051F120中的EMI0CF寄存器,將外部存儲(chǔ)器接口配置到單片機(jī)高端口P4~P7,地址數(shù)據(jù)總線(xiàn)工作在非復(fù)用模式。而MFR4310必須工作在異步存儲(chǔ)器接口(AMI)模式下,此時(shí)MFR4310有12根地址線(xiàn)和16根數(shù)據(jù)線(xiàn)。因此選用C8051F120單片機(jī)的A0~A11作為地址線(xiàn),A12作為MFR4310的片選信號(hào)。從而MFR4310在C8051F120中的存儲(chǔ)地址空間為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àn)協(xié)議提供了大量參數(shù)配置,可以靈活地根據(jù)系統(tǒng)需求進(jìn)行相應(yīng)的調(diào)整,如通信周期大小、宏節(jié)拍MT(Macrotick)的長(zhǎng)度、靜態(tài)段、動(dòng)態(tài)段、標(biāo)識(shí)窗的時(shí)間寬度、負(fù)載段的長(zhǎng)度、同步節(jié)點(diǎn)的選擇、單雙通道選擇、通信速率、靜態(tài)段時(shí)隙的分配、動(dòng)態(tài)段的訪(fǎng)問(wèn)優(yōu)先級(jí)等。
4.5 FlexRay初始化流程
    在FlexRay節(jié)點(diǎn)可以參與到總線(xiàn)上進(jìn)行通信前,需要對(duì)其進(jìn)行一系列的初始化操作,包括FlexRay模塊配置、通信集群協(xié)議參數(shù)配置和信息緩沖器配置等,接著通過(guò)對(duì)相應(yīng)的寄存器進(jìn)行配置完成各緩沖器和FIFO的初始化,并設(shè)置回調(diào)函數(shù)和初始化計(jì)時(shí)器,然后啟動(dòng)節(jié)點(diǎn)開(kāi)始通信。具體的FlexRay初始化流程圖如圖6所示。

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

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

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