基于FlexRay的飛行仿真計(jì)算機(jī)1553B單元設(shè)計(jì)
MIL—STD—1553B(以下簡稱1553B)總線標(biāo)準(zhǔn)是美國于20世紀(jì)70年代提出的飛機(jī)內(nèi)部電子系統(tǒng)聯(lián)網(wǎng)標(biāo)準(zhǔn),由于具有可靠性高、實(shí)時(shí)性好、使用靈活等優(yōu)點(diǎn),廣泛應(yīng)用在軍用有人和無人機(jī)中。我國于1987年建立了與1553B相應(yīng)的國家軍用標(biāo)準(zhǔn)《數(shù)字式時(shí)分制指令/響應(yīng)型多路傳輸數(shù)據(jù)總線》(GJB 289-1987),并于1997年對原標(biāo)準(zhǔn)進(jìn)行擴(kuò)充和修訂(GJB 289A-1997),一直沿用至今。
本文引用地址:http://butianyuan.cn/article/201610/308371.htmFlexRay總線是一款新型時(shí)間總線,具有高速率,時(shí)間確定性,信道容錯(cuò)冗余功能,完全滿足新型分布式結(jié)構(gòu)飛行仿真計(jì)算機(jī)內(nèi)部總線數(shù)據(jù)通信需求。根據(jù)分布式結(jié)構(gòu)飛行仿真計(jì)算機(jī)對1553B通信接口的需求,本文設(shè)計(jì)了基于FlexRay總線的飛行仿真計(jì)算機(jī)1553B接口單元。
1 分布式飛行仿真計(jì)算機(jī)簡介
典型的基于FlexRay總線的分布式飛行仿真計(jì)算機(jī)由中央處理單元、串口量單元、模擬量單元、開關(guān)量單元及1553B接口單元組成。其中CPU單元是分布式飛行仿真計(jì)算機(jī)的核心主控單元,其功能主要通過CAN總線接收其余四個(gè)功能模塊的上行數(shù)據(jù),經(jīng)控制律解算及邏輯管理后,將數(shù)據(jù)下行傳輸給各功能板。其結(jié)構(gòu)圖如圖1所示,本文設(shè)計(jì)研究一種基于FlexRay新型總線的1553B接口單元。
2 1553B節(jié)點(diǎn)硬件電路設(shè)計(jì)
基于FlexRay總線的飛行仿真計(jì)算機(jī)1553B接口單元以FPGA作為主控制芯片,FPGA采用Altera公司Cvclone III系列的EP3C25Q240芯片。選擇該芯片的原因是由于FPGA硬件連接靈活,編寫程序簡單,且該芯片IO口資源豐富。
圖2為基于FlexRay的飛行仿真機(jī)1553B節(jié)點(diǎn)硬件總體設(shè)計(jì)。如圖2所示,本設(shè)計(jì)采用BU-61580S3作為1553B主控芯片。BU-61580集成了雙通道1553B信號的收/發(fā)器,內(nèi)部有4K字的RAM用于1553B消息存儲,簡化了用戶程序設(shè)計(jì)。采用B3226作為1553B總線變壓器,B3226主要功能是將1553B總線電平標(biāo)準(zhǔn)轉(zhuǎn)換為TTL電平。而由于BU-61580的IO接口為5 V電平接口,而EP3CQ240的IO電平為3.3 V,故在FPGA與BU-61580之間需要通過一個(gè)電平轉(zhuǎn)換模塊進(jìn)行電平匹配。
FlexRay節(jié)點(diǎn)有3種架構(gòu)方式,分別為微處理器(MCU)+通訊控制器(CC)+總線驅(qū)動器(BD),微處理器+總線驅(qū)動器,微處理器3種。其中前兩種架構(gòu)已經(jīng)實(shí)現(xiàn),本設(shè)計(jì)采用微處
理器+通信控制器+總線收發(fā)器的架構(gòu)模式,其中通信控制器采用MFR4310,它是飛思卡爾半導(dǎo)體公司推出的一款面向汽車的FlexRay設(shè)備,它的物理層通道有兩個(gè)獨(dú)立的發(fā)送/接收通道,每個(gè)通道的傳輸速率可達(dá)10Mbit/s。通信控制器兩路通道的總線控制器采用TJA1080,TJA1080是恩智浦半導(dǎo)體公司推出的FlexRay收發(fā)器,它提供了1Mbit/s到10Mbit /s的傳輸率,可以配置成主動星型或者節(jié)點(diǎn)收發(fā)器。
為了保證系統(tǒng)正確無誤運(yùn)行及調(diào)試方便考慮,本設(shè)計(jì)還增加了供電系統(tǒng)、時(shí)鐘系統(tǒng)、調(diào)試及測試接口、外部存儲器系統(tǒng)、復(fù)位及復(fù)位配置系統(tǒng)、RS232總線電路6個(gè)模塊作為輔助功能。
2.1 1553B接口設(shè)計(jì)
2.1. 1 BU-61580與FPGA接口設(shè)計(jì)
BU-61580芯片為DDC公司使用最為廣泛的控制芯片,擁有多種操作模式,如透明模式、緩沖模式,本設(shè)計(jì)采用緩沖模式。如圖3所示,通過將BU-61580的16/8引腳連接至VCC,TRANSPARENT/BUFFERED、ZEROWAIT引腳連接至GND,將BU-61580的工作模式設(shè)置為16位零等待緩沖模式,具體管腳配置見表1。
由于BU-61580的輸入高電平閾值為2 V,輸出高電平為5 V,而FPGA的工作電平為3.3 V,故FPGA的輸出電平可用于驅(qū)動BU-61580,但BU-61580輸出信號至FPGA過程中需要外加電平轉(zhuǎn)換芯片。本設(shè)計(jì)采用的是SN74ALVC164245作為電平轉(zhuǎn)換芯片,該芯片擁有十六位電平轉(zhuǎn)換長度。
BU-61580的時(shí)鐘采用外部有源晶振,CLOCK引腳接16M有源晶振,根據(jù)GJB 289A-97要求,晶振的長期穩(wěn)定性為0.1%,短期穩(wěn)定性為0.01%。
2.1. 2 BU-61580與收發(fā)器接口設(shè)計(jì)
本設(shè)計(jì)采用的隔離變壓器芯片為B-3226,該芯片每個(gè)通道通信可以達(dá)到1 Mbit/s,可以提供很好的通信帶寬,具有強(qiáng)大的容錯(cuò)傳輸功能。耦合變壓器與BU-61580硬件連接如圖4所示,BU-61580內(nèi)部擁有兩路1553B收發(fā)器分別與隔離變壓器B-3226相連,B-3226將1553B電平邏輯轉(zhuǎn)換為TTL邏輯電平,進(jìn)而將處理后的信號送入BU-61580內(nèi)部的收發(fā)器中,實(shí)現(xiàn)一次1553B接收通信。
2.2 FlexRay接口設(shè)計(jì)
本設(shè)計(jì)中,選擇MFR4310作為FlexRay總線主控芯片,該芯片具有兩條通信通道,每條通道速率可配置為:2.5,5,8,10Mbit/s;TJA1080作為獨(dú)立的FlexRay收發(fā)器,具有低電磁輻射特性。外界傳感器數(shù)據(jù)通過1553B總線傳輸至本板卡后,經(jīng)FPGA預(yù)處理后通過FlexRay總線發(fā)送至CPU單元中,從而實(shí)現(xiàn)一次CPU讀取外部傳感器信息。
2.2.1 通信控制器與處理器接口設(shè)計(jì)
MFR4310與處理器擁有3種連接模式,分別為:異步存儲器接口(AMI)、MPC接口、HCS12接口。硬件設(shè)計(jì)通過配置IF_SEL0和IF_SEL1兩個(gè)引腳來選擇哪種接口模式。按照飛思卡爾官方推薦連接電路,MPC接口主要為MFR4310與PowerPC處理所設(shè)計(jì)的接口,而HCS12接口主要為MFR4310與HCS12系列處理器所設(shè)計(jì)的接口,由于本設(shè)計(jì)采用的處理器為FPGA,故采用異步存儲器接口。具體硬件連接圖如圖5所示,AMI接口將通信控制器配置為異步存儲器從設(shè)備,進(jìn)而能夠與多種處理器進(jìn)行數(shù)據(jù)交互,在AMI接口模式下,處理器通過控制CE#、0E#、WE#等信號實(shí)現(xiàn)與MFR4310數(shù)據(jù)交換。
圖5為通信控制器引腳配置連接圖,如圖5所示,由于本設(shè)計(jì)采用AMI模式,需要設(shè)置IF_SEL[0:1]為{2’h10},該值可通過將IF_SEL0引腳下拉、IF_SEL1引腳上拉來實(shí)現(xiàn)。
2.2.2 通信控制器與收發(fā)器接口設(shè)計(jì)
通信控制器與收發(fā)器硬件連接圖如圖6所示,F(xiàn)lexRay模塊內(nèi)部主要由由控制主機(jī)接口(CHI)與協(xié)議引擎(PE)等部分組成,主機(jī)可通過CHI模塊訪問FlexRay功能模塊的配置、控制和狀態(tài)信息機(jī)消息緩沖區(qū)的配置、控制和狀態(tài)信息。這些消息緩沖區(qū)位于FlexRay模塊內(nèi)存(FRM)中,用于存儲發(fā)送和接收的幀頭、有效負(fù)載數(shù)據(jù)、時(shí)序消息等。而PE模塊有TxA和TxB兩個(gè)發(fā)送單元及RxA、RxB兩個(gè)接收單元,分別用于兩個(gè)FlexRay通道發(fā)送和接收幀信息。
通信控制器通過信號引腳TxD、RXD、TXEN與總線收發(fā)器進(jìn)行連接,正常高速通信模式下,當(dāng)MFR4310通訊控制器的TJXEN [1:2]#引腳為高電平時(shí),TJA1080的發(fā)送使能引腳TXEN有效,這時(shí)TJA1080的TXD輸入引腳把從通訊控制器TXD_BG[1:2]引腳輸入的數(shù)字位流,轉(zhuǎn)換成相應(yīng)的模擬總線信號再輸出到FlexRay總線上;同時(shí),TJA1080將FlexRay總線上的模擬總線信號轉(zhuǎn)換成相應(yīng)的數(shù)字位流,從TJA1080的RXD引腳輸送到通訊控制器MFR310的RXD_BG2引腳上,完成總線與MFR4310通信控制器的數(shù)據(jù)通信。
3 軟件驅(qū)動程序設(shè)計(jì)
3.1 1553B總線軟件驅(qū)動設(shè)計(jì)
本設(shè)備1553B協(xié)議芯片工作于BC模式下,而其他傳感器模塊工作于RT模式,即:本設(shè)備工作于主模式,傳感器設(shè)備工作于從模式。當(dāng)本設(shè)備需要傳感器信息時(shí),發(fā)送數(shù)據(jù)請求幀,傳感器模式將相應(yīng)數(shù)據(jù)發(fā)送至本設(shè)備。本設(shè)備要求接受的傳感器信息頻率如表2所示。
從上表可看出,各個(gè)傳感器的頻率并非完全一致。而BU-61580可以通過使用大小周期來支持多種頻率的數(shù)據(jù)傳輸,在自動發(fā)送模式下,可以通過設(shè)置小周期為100 Hz、大周期為50 Hz,進(jìn)而實(shí)現(xiàn)數(shù)據(jù)幀按要求的速率進(jìn)行傳輸。
BU-61580的程序初始化流程如下所示:
1)將該模塊設(shè)置為增強(qiáng)型BC模式,設(shè)置中斷屏蔽寄存器,初始化配置寄存器、時(shí)間標(biāo)簽寄存器;
2)初始化內(nèi)存空間,為3個(gè)傳感器分配內(nèi)存初始地址及內(nèi)存空間;
3)配置復(fù)位寄存器,啟動BC。
3.2 FlexRay總線軟件驅(qū)動設(shè)計(jì)
本設(shè)備接收外部傳感器信息,通過內(nèi)部總線FlexRay發(fā)送至CPU板卡中,進(jìn)而實(shí)現(xiàn)一次總線收發(fā)。FlexRay總線收發(fā)主要由總線控制器實(shí)現(xiàn)的,F(xiàn)lexRay總線控制器具體的通信流程如下。
總線控制器MFR4310的信息緩沖器(Message Buffer,簡稱MB)是用來存儲幀數(shù)據(jù)、配置、控制、狀態(tài)數(shù)據(jù)的結(jié)構(gòu)。當(dāng)總線通信時(shí),MB是暫時(shí)存儲數(shù)據(jù)的物理介質(zhì),當(dāng)數(shù)據(jù)發(fā)送時(shí),應(yīng)用程序?qū)?shù)據(jù)存儲于MB中,當(dāng)周期輪轉(zhuǎn)至發(fā)送時(shí)槽時(shí),硬件節(jié)點(diǎn)將數(shù)據(jù)從MB中取出發(fā)送至另一接收節(jié)點(diǎn)的相應(yīng)MB中,實(shí)現(xiàn)一次數(shù)據(jù)通信。
MB在使用前,必須經(jīng)過初始化。FlexRay網(wǎng)絡(luò)節(jié)點(diǎn)的初始化包括初始化節(jié)點(diǎn)自身和初始化網(wǎng)絡(luò)。初始化自身由3步組成:
1)初始化FlexRay模塊。完成FlexRay模塊基地址存儲映射,重啟FlexRay通信控制器,進(jìn)入配置狀態(tài)(POC:config),由函數(shù)Fr_module_init()完成;
2)FlexRay協(xié)議初始化。該步定義相關(guān)數(shù)據(jù)結(jié)構(gòu),實(shí)現(xiàn)網(wǎng)絡(luò)配置和節(jié)點(diǎn)通信任務(wù)分配,由函數(shù)Fr_poc_configuration()完成;
3)消息緩沖器初始化。初始化FlexRay通信控制器消息緩沖器與通信數(shù)據(jù)報(bào)文的對應(yīng)關(guān)系,由函數(shù)Fr_buffers_init()完成。節(jié)點(diǎn)初始化自身完成后就進(jìn)入通信就緒狀態(tài)(PO C:ready)。之后,進(jìn)入初始化網(wǎng)絡(luò)階段,這階段通過發(fā)送啟動幀完成網(wǎng)絡(luò)啟動。根據(jù)表2的配置,節(jié)點(diǎn)ECU1和ECU2分別在時(shí)槽1和時(shí)槽4發(fā)送啟動信息幀,同時(shí)偵聽網(wǎng)絡(luò)中的啟動幀個(gè)數(shù),直到網(wǎng)絡(luò)中有足夠的啟動幀啟動網(wǎng)絡(luò),數(shù)據(jù)在正常主動狀態(tài)下(POC:nomal active)完成節(jié)點(diǎn)間通信。詳細(xì)流程圖如圖7所示。
4 總線網(wǎng)絡(luò)通信測試與結(jié)果分析
最后對所設(shè)計(jì)的基于FlexRay總線的1553B節(jié)點(diǎn)進(jìn)行測試,其測試平臺如圖8所示。通過NI測試設(shè)備對傳感器數(shù)據(jù)進(jìn)行模擬,進(jìn)而產(chǎn)生一組傳感器數(shù)據(jù),實(shí)現(xiàn)1553B總線通信。
系統(tǒng)上電后,CPU板卡及1553B板卡進(jìn)行寄存器配置,實(shí)現(xiàn)自身初始化,然后CPU板卡作為冷啟動節(jié)點(diǎn)發(fā)送10個(gè)冷啟動幀至FlexRay總線上,進(jìn)行總線組網(wǎng),1553B板卡接收到冷啟動幀后,立即加入FlexRay總線集群中,至此,總線準(zhǔn)備完成。待總線準(zhǔn)備完成,節(jié)點(diǎn)間開始通信,圖9為CPU節(jié)點(diǎn)與1553B節(jié)點(diǎn)間通信波形。
如圖9所示,F(xiàn)lexRay通信周期為16 ms,靜態(tài)時(shí)隙長度為50μs,將CPU板卡與1553B板卡進(jìn)行通信實(shí)驗(yàn)6小時(shí),實(shí)驗(yàn)結(jié)果如表3所示。
通過實(shí)驗(yàn)結(jié)果可以得出,節(jié)點(diǎn)設(shè)計(jì)合理,本設(shè)備可準(zhǔn)確接收外界1553B傳感器信息,并進(jìn)行數(shù)據(jù)處理功能,可為新型分布式無人機(jī)飛行仿真計(jì)算機(jī)提供1553B通信接口。
5 結(jié)束語
1553B作為航空內(nèi)部電子系統(tǒng)聯(lián)網(wǎng)標(biāo)準(zhǔn),可設(shè)計(jì)為飛行仿真計(jì)算機(jī)的外部總線,而FlexRay為新型總線,具有速率快,多冗余等特點(diǎn),可設(shè)計(jì)為飛行仿真計(jì)算機(jī)外部總線。這兩種總線各展所長,為飛行仿真計(jì)算機(jī)提供了快速、穩(wěn)定的數(shù)據(jù)傳輸鏈路。本文設(shè)計(jì)了基于FPGA的1553B總線節(jié)點(diǎn),通過與NI設(shè)備進(jìn)行數(shù)據(jù)通信,結(jié)果正確,能夠滿足飛行仿真計(jì)
算機(jī)數(shù)據(jù)鏈路要求,為以后先進(jìn)飛行仿真計(jì)算機(jī)新型總線FlexRay與1553B總線的應(yīng)用打下了基礎(chǔ)。
評論