<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > CAN總線(xiàn)A320模擬器硬件仿真方案研究解析

CAN總線(xiàn)A320模擬器硬件仿真方案研究解析

作者: 時(shí)間:2016-12-13 來(lái)源:網(wǎng)絡(luò ) 收藏
  根據國家建設民航強國的需要,國內對飛機模擬機的需求不斷增大,但目前國內模擬機研制規模不能滿(mǎn)足日益增長(cháng)的市場(chǎng)需求,若引進(jìn)國外模擬機,則不僅成本高昂,且不利于技術(shù)掌握,因此擴大模擬機自主研發(fā)規模成為必然趨勢??紤]到各種機型的駕駛艙功能的共性,即系統模塊多、通信頻繁、結構復雜而導致模塊間布線(xiàn)繁雜,以及由此產(chǎn)生的干擾等問(wèn)題,提出一種駕駛艙硬件仿真方案,該方案可以滿(mǎn)足駕駛艙各模塊間穩定通信,且簡(jiǎn)化布線(xiàn)。

  1 方案確立

本文引用地址:http://dyxdggzs.com/article/201612/329527.htm

  駕駛艙仿真主要以報文的形式承載各系統模塊的操作信息,通過(guò)上位機完成邏輯運算,實(shí)現駕駛艙功能仿真。駕駛艙仿真設計的原則是穩定,即整個(gè)駕駛艙網(wǎng)絡(luò )應具備一定的容錯能力,在數據傳輸過(guò)程中若產(chǎn)生沖突競爭,則應有一種機制解決沖突,且不丟失數據,而CAN(Co-ntroller Area Network)是一種有效支持分布式控制或實(shí)時(shí)控制的串行通信網(wǎng)絡(luò ),具有突出的可靠性、實(shí)時(shí)性和靈活性,基于此選取CAN總線(xiàn)作為整個(gè)駕駛艙網(wǎng)絡(luò )通信方案。由于飛機駕駛艙結構復雜、功能繁多,所以需對駕駛艙進(jìn)行功能模塊劃分,各模塊間通過(guò)CAN總線(xiàn)進(jìn)行通信,以下即從系統總體設計、CAN節點(diǎn)通信接口硬件設計和數據傳輸軟件設計3個(gè)方面詳細闡述該方案。

  2 系統總體設計

  飛機駕駛艙中的顯示部分主要有電子飛行儀表系統(Electronic Flight Instrument System,EFIS),飛機電子中央監控(Electronic Centralized Aircraft Monito-ring,ECAM),分別由3臺觸摸屏顯示器顯示,其顯示邏輯統一由上位機控制。操作部分有頂版、中央操縱

  臺、遮光板,側桿,這4部分全部由硬件實(shí)現,基于區域劃分的原則將其進(jìn)行模塊劃分,每二模塊為一節點(diǎn)。整體架構如圖1所示。

  

  由于各節點(diǎn)間存在邏輯控制關(guān)系,所以采用多主方式通信,CAN總線(xiàn)網(wǎng)絡(luò )上任一節點(diǎn)均可作為主節點(diǎn)向其他節點(diǎn)發(fā)送數據。上位機作為其中一個(gè)節點(diǎn),通過(guò)CAN總線(xiàn)智能適配卡與網(wǎng)絡(luò )上的各節點(diǎn)進(jìn)行通信,負責主要的邏輯運算和駕駛艙顯示功能的控制,其他節點(diǎn)不僅完成操作動(dòng)作的采集,還根據邏輯要求互相控制。

  3 CAN節點(diǎn)通信接口硬件電路設計

  由于駕駛艙各節點(diǎn)間的控制邏輯復雜,數據量大,通信頻繁,故對各節點(diǎn)主控芯片的存儲容量有較高的要求,且對CAN總線(xiàn)網(wǎng)絡(luò )中數據傳輸的穩定性也有較高要求。選取C80C51F040作主控芯片,因其擁有4 352 B RAM以及64 KB的FLASH,滿(mǎn)足程序應用需要。它內部集成CAN控制器,它兼容CAN技術(shù)規范2.0A和2.0B,主要由CAN內核、消息RAM(獨立于CIP51的RAM)、消息處理單元和控制寄存器組成。CAN內核由CAN協(xié)議控制器和負責報文收發(fā)的串行/并行轉換RX/TX移位寄存器組成。消息RAM用于存儲報文目標和每個(gè)目標的仲裁掩碼。這種CAN處理器有32個(gè)隨意配置為發(fā)送和接收的報文目標,并且每一個(gè)報文目標都有自己的識別掩碼,所有的數據傳輸和接收濾波都是由CAN控制器完成,而不是由CIP51完成。C8051F04O所具備的完善的CAN總線(xiàn)控制器和獨立的CAN信息緩沖區,可以解決MCU(Micro Control Unit)與CAN總線(xiàn)之間串/并轉換、不同節點(diǎn)間波特率誤差的校正、以及MCU與CAN總線(xiàn)通信的沖突競爭和同步等問(wèn)題,為CAN總線(xiàn)網(wǎng)絡(luò )具有較高穩定性提供了可靠的保障。

  CAN總線(xiàn)的收發(fā)器選用TI公司的SN65HVD230芯片,該芯片正常模式下的低電流設計使得芯片的發(fā)熱量小(典型數值為370μA),而且其優(yōu)化的驅動(dòng)器設計使得信號質(zhì)量得到進(jìn)一步改善;為進(jìn)一步提高系統抗干擾能力,在主控芯片C80C51F040和收發(fā)器SN65HVD230之聞加入光耦6N137進(jìn)行電氣隔離,由于通信信號傳輸到導線(xiàn)的端點(diǎn)時(shí)會(huì )發(fā)生反射,反射信號會(huì )干擾正常信號的傳輸,因而總線(xiàn)兩端接有終端電阻以消除反射信號,有效隔離CAN總線(xiàn)上的干擾信號,提高了系統可靠性。如圖2所示。

  

  4 數據傳輸軟件設計

  在CAN總線(xiàn)上發(fā)送的每一條報文都具有惟一的一個(gè)11位或29位數字ID,當發(fā)生沖突時(shí),仲裁器就根據ID值的大小決定優(yōu)先級最高的ID發(fā)送,其他的退出總線(xiàn)。CAN總線(xiàn)狀態(tài)取決于二進(jìn)制數0而不是1,即信號是線(xiàn)“與”關(guān)系:當一個(gè)節點(diǎn)發(fā)送1,另一個(gè)節點(diǎn)發(fā)送0時(shí),其他節點(diǎn)接收到的是信號0。所以ID值越小,該保報文擁有的優(yōu)先權越高。

  4.1 CAN通信協(xié)議設計

  通信協(xié)議設計主要包括兩部分,確定報文ID和定義報文所含8位數據的每位具體含義。由于報文ID決定其優(yōu)先級,所以需要根據實(shí)際邏輯確定每一報文的優(yōu)先級,鑒于駕駛艙操作部分部件少于1 000件,所以采用標準格式幀,11位的標識符可以表達211-1等于2 047種報文,滿(mǎn)足實(shí)際需求。每個(gè)報文含有8字節數據,由于上位機負責主要邏輯運算,所以上位機應能根據每一個(gè)報文內容精確定位駕駛艙被操作部件,定義其格式如圖3所示。

  

  協(xié)議采用Data0~Data4五個(gè)字節承載所有信息,信息內容包括板號(Penal Number)、件號(Component Number)、部件類(lèi)別(Component Sort)、部件狀態(tài)值(整數部分和小數部分)和小數標志位(Dot)。經(jīng)過(guò)整合,共有32塊面板,所以使用5位二進(jìn)制表示面板號,板號(PN0~PN4)對應Data3.3~Data3.7;每塊面板上的部件數均少于128,跳開(kāi)關(guān)面板上部件最多,為125個(gè),所以采用7位二進(jìn)制表示件號,件號(CN0~CN6)對應Data4.O~Data4.6;根據部件輸出狀態(tài)將其分為5類(lèi),分別是按鈕、波段開(kāi)關(guān)、電位器、顯示屏和跳開(kāi)關(guān),所以用3位二進(jìn)制表示件類(lèi)別,部件類(lèi)別(CS0~CS2)對應Data3.O~Data3.2;部件狀態(tài)值整數部分(Int0~Int15)對應Data1.0~Data1.7和Data2.0~Data2.7,狀態(tài)值小數部分(Dec0~Dec7)對應Data0.0~Data0.7,小數標志位(Dot)對應data4.7。

  4.2 通信實(shí)現

  CAN總線(xiàn)節點(diǎn)數據傳輸的實(shí)現主要分為三部分,分別是初始化設置、發(fā)送數據和接收數據。初始化CAN控制器的一般步驟如下:

  (1)將SFRPAGE寄存器設置為CAN0_PAGE;

  (2)將CAN0CN寄存器中的INIT和CCE位設置為1;

  (3)設置位定時(shí)寄存器和BRP擴展寄存器中的時(shí)序參數;

  (4)初始化每個(gè)消息對象或將其MsgVal位設置為無(wú)效;

  (5)將INIT位清零。接收數據有查詢(xún)和中斷兩種方式,本文在設計時(shí)采用中斷方式。接收數據程序流程圖如圖4所示。

  

  當總線(xiàn)上有數據傳入時(shí)程序進(jìn)入中斷,讀取中斷寄存器的值,該值對應32個(gè)消息對象中的其中一個(gè)消息號,將該消息號寫(xiě)入IFx命令請求寄存器,讀取IFx報文控制寄存器,查看標志位NewData,值為1表示有新數據,值為0表示沒(méi)有新數據,讀取完當前數據后查看數據塊結束標識位Eob,值為1表示數據塊結束,當前數據接收完成;值為0,表示數據塊沒(méi)有結束,將消息號增一,繼續接收下一個(gè)消息對象中的數據,直至接收完成。發(fā)送數據時(shí)需配置寄存器,設定報文ID,此外還需在將數據寫(xiě)入數據寄存器的時(shí)候,先寫(xiě)高位后寫(xiě)低位,即先對CANODATH賦值,再對CANODATL賦值,最后將消息號寫(xiě)入IFx命令請求寄存器即啟動(dòng)數據傳送。

  5 結語(yǔ)

  實(shí)際測試表明,模塊間通信穩定,抗干擾性強,且布線(xiàn)簡(jiǎn)潔。該方案已經(jīng)應用于機載電子系統故障診斷模擬機,雖然該模擬機是針對A320機型,但是該方案也可擴展應用到其他機型的模擬機,具有廣闊的應用前景。



關(guān)鍵詞: CAN總線(xiàn)A320模擬

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>