<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è) > EDA/PCB > 設計應用 > 基于FPGA的車(chē)電總線(xiàn)接口技術(shù)研究

基于FPGA的車(chē)電總線(xiàn)接口技術(shù)研究

作者: 時(shí)間:2016-10-16 來(lái)源:網(wǎng)絡(luò ) 收藏

為提高集成架構中車(chē)電總線(xiàn)通信速率,結合綜合化處理系統項目要求,采用雙總線(xiàn)結合的方式,利用CAN總線(xiàn)和FlexRay總線(xiàn)實(shí)現功能及搭配上的互補,提出一種基于現場(chǎng)可編程門(mén)陣列(FPGA)的總線(xiàn)接口單元設計方案。通過(guò)FPGA完成CAN總線(xiàn)控制器、FlexRay總線(xiàn)控制器、RapidIO總線(xiàn)接口等模塊功能,實(shí)現高速接口的控制和擴展,并使模塊接口具備可配置能力。測試結果表明,CAN接口及FlexRay接口在指定的波特率下均工作正常,滿(mǎn)足項目要求的各項性能指標。

本文引用地址:http://dyxdggzs.com/article/201610/308393.htm

1 概述

CAN總線(xiàn)是一種有效地支持分布式控制或者實(shí)時(shí)控制的串行通信網(wǎng)絡(luò ),具有多主機、高性能以及高可靠性。然而隨著(zhù)汽車(chē)電子技術(shù)的發(fā)展,早期的CAN總線(xiàn)已經(jīng)不能很好地解決眾多電子設備之間的實(shí)時(shí)通信問(wèn)題。由FlexRay聯(lián)盟制定的FlexRay協(xié)議標準成為一種理想的解決方案。FlexRay通訊協(xié)議運用于可靠的車(chē)內網(wǎng)絡(luò )中,是一種具備故障容錯的高速汽車(chē)總線(xiàn)系統。作為一種靈活的車(chē)載網(wǎng)絡(luò )系統,FlexRay具有高速、可靠及安全的特點(diǎn),它不僅能簡(jiǎn)化車(chē)載通信系統的架構,而且有助于汽車(chē)電子單元獲得更高的穩定性和可靠性。FlexRay在物理上通過(guò)2條分開(kāi)的總線(xiàn)進(jìn)行通信,每一條的數據速率是10 Mb/s。CAN網(wǎng)絡(luò )最高性能極限為1Mb/s,而FlexRay總數據速率可達20Mb/s。FlexRay還能夠提供很多網(wǎng)絡(luò )所不具有的可靠性特點(diǎn),尤其是FlexRay具備的冗余通信能力,通過(guò)硬件可實(shí)現完全復制網(wǎng)絡(luò )配置,并進(jìn)行進(jìn)度監測。CAN總線(xiàn)和FlexRay總線(xiàn)兩者在功能及搭配上可實(shí)現互補。FPGA在數字電路設計上非常靈活且性能強大,在不改變外圍電路的情況下,可以編寫(xiě)不同的片內電路邏輯,以實(shí)現不同功能或進(jìn)行功能擴展。

本文提出的車(chē)電總線(xiàn)接口單元綜合考慮用戶(hù)的具體需求,保留CAN總線(xiàn)作為衛星導航設備接口總線(xiàn),其余接口總線(xiàn)采用高速的FlexRay總線(xiàn),既兼容較低速接口的通信速率要求,又滿(mǎn)足高速總線(xiàn)接口的需要,將CAN和FlexRay總線(xiàn)結合在一起,基于FPGA,使成本與效益最大化。

2 車(chē)電總線(xiàn)架構

本文綜合化處理系統項目中處理系統采用多處理器結構,板間通信數據量較大。若采用PCI總線(xiàn)進(jìn)行信號傳輸則由于PCI總線(xiàn)帶寬有限,當數據量較大時(shí)容易形成通信瓶頸,且PCI總線(xiàn)不支持點(diǎn)對點(diǎn)傳輸。若選用以太網(wǎng),則傳輸速率較低,軟件開(kāi)銷(xiāo)較大,且高帶寬帶來(lái)的高成本使它在系統內互連時(shí)缺乏吸引力。結合項目采用高速實(shí)時(shí)總線(xiàn)的具體要求,最終選擇基于VPX架構的RapidIO總線(xiàn)進(jìn)行通信傳輸。VPX總線(xiàn)采用高速串行總線(xiàn)技術(shù)替代VME總線(xiàn)的并行總線(xiàn)技術(shù),支持更高的背板帶寬。其交換式結構使得系統整體性能不再受主控板的控制,提高了系統的整體性能。通過(guò)串行RapidIO(SRIO)轉換,完成了RapidIO-CAN、RapidIO-FlexRay協(xié)議轉換功能,實(shí)現了車(chē)電總線(xiàn)與任務(wù)總線(xiàn)(RapidIO)的無(wú)縫連接,進(jìn)而滿(mǎn)足了處理系統項目高速、多處理器、實(shí)時(shí)的通信傳輸要求。

2.1 CAN技術(shù)

控制器局部網(wǎng)(ControllerAreaNetwork,CAN)屬于現場(chǎng)總線(xiàn)的范疇,它是一種有效支持分布式控制或實(shí)時(shí)控制的串行通信網(wǎng)絡(luò )。CAN的應用范圍遍及從高速網(wǎng)絡(luò )到低成本的多線(xiàn)路網(wǎng)絡(luò )。

(1) CAN的分層結構

CAN遵從OSI模型,按照OSI基準模型,CAN結構劃分為2層:數據鏈路層和物理層[3-4],如圖1所示。

圖1 CAN分層結構

按照IEEE802.2和802.3標準,數據鏈路層又劃分為邏輯鏈路控制和媒體訪(fǎng)問(wèn)控制;物理層又劃分為物理信令、物理媒體附屬裝置和媒體相關(guān)接口。其中,邏輯鏈路控制子層為數據傳遞和遠程數據請求提供服務(wù);訪(fǎng)問(wèn)媒體控制子層的功能主要是傳送規則,即控制幀結構、執行仲裁、錯誤檢驗、出錯標定和故障界定。

(2) CAN總線(xiàn)的主要特點(diǎn)

CAN為多主工作方式,網(wǎng)絡(luò )上的任意節點(diǎn)在任意時(shí)刻都可以主動(dòng)地向其他節點(diǎn)發(fā)送信息,不分主從,方式靈活。其采用非破壞性的總線(xiàn)仲裁技術(shù),可以進(jìn)行點(diǎn)對點(diǎn)、一點(diǎn)對多點(diǎn)和全域廣播方式傳遞信息,多點(diǎn)同時(shí)發(fā)送信息時(shí),按優(yōu)先級順序通信,節省總線(xiàn)沖突仲裁時(shí)間,避免網(wǎng)絡(luò )癱瘓。報文傳送采用短幀數據結構,傳輸時(shí)間短,抗干擾能力強,檢錯效果好。網(wǎng)絡(luò )節點(diǎn)在錯誤嚴重的情況下可以自動(dòng)關(guān)閉輸出功能,脫離網(wǎng)絡(luò ),實(shí)現了標準化、規范化[6].

2.2 FlexRay技術(shù)

(1) FlexRay分層結構

FlexRay的分層結構由物理層、傳輸層、表示層及應用層組成。物理層定義了信號的實(shí)際傳輸方式,包括在時(shí)域上檢測通信控制器故障的功能;傳輸層是FlexRay協(xié)議的核心,它的功能是從表示層獲得節點(diǎn)要發(fā)送的信息和把網(wǎng)絡(luò )上接收的信息傳送給表示層;表示層完成信息過(guò)濾、信息狀態(tài)處理以及通道控制器與主機的接口;應用層由應用系統定義。

(2) FlexRay節點(diǎn)結構

FlexRay節點(diǎn)的核心是ECU(Electronic Control Unit),是接入車(chē)載網(wǎng)絡(luò )中的獨立完成相應功能的控制單元。主要由電源供給系統、主處理器、固化FlexRay通信控制器、可選的總線(xiàn)監控器和總線(xiàn)驅動(dòng)器組成。主處理器提供和產(chǎn)生數據,并通過(guò)FlexRay通信控制器傳送出去。其中驅動(dòng)器和監控器的個(gè)數對應于通道數,與通信控制器和微處理器相連??偩€(xiàn)驅動(dòng)器連接著(zhù)通信控制器和總線(xiàn),或是連接總線(xiàn)監控器和總線(xiàn)。主處理器把FlexRay控制器分配的時(shí)間槽通知給總線(xiàn)監視器,然后總線(xiàn)監視器就允許FlexRay控制器在這些時(shí)間槽中傳輸數據。數據可以隨時(shí)被接收。結構圖如圖2所示。

圖2 FlexRay節點(diǎn)結構

(3) FlexRay網(wǎng)絡(luò )拓撲結構

FlexRay的網(wǎng)絡(luò )拓撲結構主要分為3種:總線(xiàn)式,星型,總線(xiàn)星型混合型。在星型結構中還存在級聯(lián)方式。通常,FlexRay節點(diǎn)可以支持2個(gè)信道,在雙信道系統中,不是所有節點(diǎn)都必須與2個(gè)信道連接。與總線(xiàn)結構相比,星狀結構的優(yōu)勢在于:它在接收器和發(fā)送器之間提供點(diǎn)到點(diǎn)連接。該優(yōu)勢在高傳輸速率和長(cháng)傳輸線(xiàn)路中尤為明顯。另一個(gè)重要優(yōu)勢是錯誤分離功能。雙通道備用星型結構如圖3所示。

圖3 FlexRay網(wǎng)絡(luò )拓撲結構

(4) FlexRay狀態(tài)

FlexRay的節點(diǎn)有6個(gè)基本的運行狀態(tài):

1)配置狀態(tài)(默認配置/配置):用于各種初始化設置,包括通信周期和數據速率。

2)就緒狀態(tài):用于進(jìn)行內部的通信設置。

3)喚醒狀態(tài):用于喚醒沒(méi)有在通信的節點(diǎn)。當節點(diǎn)的收發(fā)器接受到喚醒特征符后,對主機處理器和通信控制器進(jìn)行上電,喚醒并激活通信控制器、總線(xiàn)驅動(dòng)器和總線(xiàn)監控器。

4)啟動(dòng)狀態(tài):用于啟動(dòng)時(shí)鐘同步,并為通信做準備。只有將節點(diǎn)喚醒后,才能啟動(dòng)節點(diǎn)工作。系統的啟動(dòng)由2個(gè)邏輯步驟組成,冷啟動(dòng)節點(diǎn)啟動(dòng)和其他非冷啟動(dòng)節點(diǎn)通過(guò)接受啟動(dòng)幀與冷啟動(dòng)節點(diǎn)整合到一起。

5)正常狀態(tài)(主動(dòng)/被動(dòng)):可以進(jìn)行通信的狀態(tài)。

6)中斷狀態(tài):表明通信中斷。

FlexRay狀態(tài)圖如圖4所示。

圖4 FlexRay狀態(tài)

3 車(chē)電總線(xiàn)接口單元設計

3.1單元組成

在綜合化處理系統架構中,車(chē)電總線(xiàn)訪(fǎng)問(wèn)可簡(jiǎn)化為下列部分:主控單元,RapidIO交換單元,總線(xiàn)接口單元和車(chē)電總線(xiàn)。主控單元包含處理器和PCIe-SRIO轉接橋。處理器將信號發(fā)送至PCIe-SRIO轉接橋,數據通過(guò)SRIO交換,傳輸至總線(xiàn)接口單元,最終實(shí)現處理器對車(chē)電總線(xiàn)上各傳感器的訪(fǎng)問(wèn)與控制。車(chē)電總線(xiàn)訪(fǎng)問(wèn)的整體架構如圖5所示。

圖5 系統總體架構

總線(xiàn)接口單元采用3U、VPX結構,板卡主要由XILINX的Virtex6系列 XC6VLX75T完成CAN總線(xiàn)控制器、FlexRay總線(xiàn)控制器、RapidIO總線(xiàn)接口等模塊功能,輔之以CAN和FlexRay總線(xiàn)接口PHY、晶振、電壓轉換器等芯片完成總線(xiàn)接口單元設計??偩€(xiàn)接口單元主要完成RapidIO-FlexRay、RapidIO-CAN協(xié)議轉換功能,實(shí)現了車(chē)電總線(xiàn)與任務(wù)總線(xiàn)(RapidIO)的無(wú)縫連接。由于該總線(xiàn)接口模塊不含FlexRay總線(xiàn)監控功能,若要實(shí)現對總線(xiàn)的監控,需在節點(diǎn)上外接監控設備??偩€(xiàn)接口單元功能組成框圖如圖6所示。

圖6單元功能組成框圖

3.2 車(chē)電總線(xiàn)接口設計

3.2.1 CAN總線(xiàn)接口設計

單元模塊通過(guò)FPGA輸出四路GPIO信號,GPIO連接電壓轉換芯片以完成電平轉換,CAN總線(xiàn)信號完成電平轉換后連接CAN芯片,從而輸出CAN總線(xiàn)信號與總線(xiàn)接口單元VPX接插件相連,如圖7所示。

圖7 CAN總線(xiàn)接口硬件組成原理

CAN幀時(shí),處理器驅動(dòng)在內存定義并組織一個(gè)下圖結構體,使用RapidIO中NWRITE-R事務(wù),寫(xiě)入FPGA控制器CAN發(fā)送緩沖區地址,即刻完成發(fā)送;當CAN控制器完成發(fā)送后,將對該處理器產(chǎn)生中斷,告知發(fā)送結果。

當接收CAN幀時(shí),處理器驅動(dòng)在內存定義一個(gè)上圖結構體,并將內存地址使用Rapid IO中NWRITE-R事務(wù),寫(xiě)入FPGA控制器CAN接收緩沖區地址;當CAN控制器接收完一幀后,通過(guò)NWRITE-R事務(wù)寫(xiě)入對該處理器地址空間中并產(chǎn)生中斷,告知發(fā)送結果。圖8是內存數據結構。

圖8 CAN內存數據結構

3.2.2 FlexRay總線(xiàn)接口設計

單元模塊通過(guò)FPGA輸出兩路GPIO信號,GPIO連接電壓轉換芯片以完成電平轉換,FlexRay總線(xiàn)信號完成電平轉換后各輸出兩路連接FlexRay收發(fā)器。由于該XILINX核中只支持FlexRay單信道,因此選擇兩路FlexRay信道形成冗余設計,2組信道都分為A、B2個(gè)通道,滿(mǎn)足FlexRay雙信道的要求。收發(fā)器選用TJA1080,TJA1080收發(fā)器是恩智浦公司出品的一款針對FlexRay的具有高速時(shí)間觸發(fā)通訊系統的收發(fā)芯片,也是全球第一款符合FlexRay協(xié)議2.1規定的FlexRay收發(fā)器,具有高達10Mb/s的數據傳輸速度。每路信號分別通過(guò)JTA1080后,最終輸出四路FlexRay信號,并與總線(xiàn)接口單元VPX接插件相連。詳細結構如圖9所示。

圖9 FlexRay總線(xiàn)接口硬件組成原理

FlexRay每個(gè)數據的數據幀由幀頭、有效數據段、幀尾3個(gè)部分組成。若為發(fā)送,當時(shí)間片快到時(shí),鏈表控制器通過(guò)RioMaster模塊發(fā)送NREAD事務(wù)包請求數據,返回的數據進(jìn)入SendFIFO,由FlexRayIP讀取。若為接收,當時(shí)間片到時(shí),鏈表控制器提供接收的基地址,數據收到后將存放于RecvFIFO中,結合接收基地址,通過(guò)NWRITE-R寫(xiě)入遠端內存,之后發(fā)送Doorbell使處理器產(chǎn)生中斷。其內存數據結構如圖10所示。

圖10 FlexRay內存數據結構

3.3 FPGA邏輯設計

本文設計通過(guò)硬件實(shí)現CAN總線(xiàn)控制器、FlexRay總線(xiàn)控制器、RapidIO總線(xiàn)接口等模塊功能。采用Virtex6系列FPGAXC6VLX75T完成RapidIO-FlexRay、RapidIO-CAN協(xié)議轉換功能。

FPGA單元包含SRIO控制器、microblaze軟核及四路CAN控制器和兩路FlexRay控制器。處理器將信號發(fā)送至PCIe-SRIO轉接橋,經(jīng)過(guò)橋芯片轉換發(fā)送至SRIO交換板。交換板的一端將信號轉發(fā)到SRIO控制器上,SRIO核通過(guò)PLB總線(xiàn)將控制信號發(fā)送至microblaze軟核,經(jīng)過(guò)處理信號通過(guò)PLB總線(xiàn)發(fā)送至四路CAN控制器和兩路FlexRay控制器。每路CAN控制器均連接CAN轉換器ADM3053,每路FlexRay控制器均連接FlexRay收發(fā)器JTA1080。經(jīng)過(guò)轉換器最終分別連接至CAN總線(xiàn)和FlexRay總線(xiàn)上。該邏輯設計的主要特點(diǎn)有3個(gè):

(1)SRIO-PLB橋實(shí)現了總線(xiàn)接口單元模塊的srio總線(xiàn)接入功能。

(2)CAN和FlexRay總線(xiàn)控制器通過(guò)板載收發(fā)器實(shí)現了CAN、FlexRay總線(xiàn)的接入功能。

(3)microblaze軟核實(shí)現了CAN、FlexRay控制器消息和事件的預處理,完成了與SRIO總線(xiàn)的互連,并做了任務(wù)遷移,減輕了主控處理器的壓力。

詳細邏輯結構如圖11所示。

圖11 FPGA模塊內部邏輯結構

4 仿真與驗證

4.1 RapidIO仿真與驗證

在Xilinx的ISE14.1開(kāi)發(fā)環(huán)境下,基于車(chē)電總線(xiàn)接口單元模塊對RapidIO接口進(jìn)行了驗證,利用ModelSim對邏輯設計進(jìn)行仿真,其波形圖如圖12、圖13所示,通過(guò)判斷數據的一致性可以驗證RapidIO總線(xiàn)接口的正確性和有效性。

圖12 RapidIO數據發(fā)送時(shí)序圖

圖13 RapidIO數據接收時(shí)序圖

4.2 FlexRay仿真與驗證

基于車(chē)電總線(xiàn)接口單元模塊對FlexRay接口狀態(tài)機制進(jìn)行了驗證,利用ModelSim對邏輯設計進(jìn)行仿真,其波形圖如圖14所示。

圖14 FlexRay數據收發(fā)時(shí)序圖

從仿真波形中可以清楚地看出FlexRay狀態(tài)機制的變化過(guò)程。當節點(diǎn)的收發(fā)器接收到喚醒特征符后,對主機處理器和通信控制器進(jìn)行上電,喚醒并激活通信控制器、總線(xiàn)驅動(dòng)器和總線(xiàn)監控器。節點(diǎn)0被喚醒后,將返回喚醒完成信號,并處于等待啟動(dòng)狀態(tài)。接著(zhù)節點(diǎn)1收到喚醒信號,返回喚醒完成信號,節點(diǎn)1進(jìn)入啟動(dòng)狀態(tài),節點(diǎn)0也進(jìn)入啟動(dòng)狀態(tài),最終都進(jìn)入主動(dòng)工作狀態(tài),開(kāi)始狀態(tài)機循環(huán),顯示FlexRay總線(xiàn)接口工作正常。

4.3 CAN仿真與驗證

調用FPGA內的CAN核基于車(chē)電總線(xiàn)接口單元模塊對FlexRay接口狀態(tài)機制進(jìn)行驗證,利用ModelSim對邏輯設計進(jìn)行仿真,結果如圖15所示。端口1發(fā)送擴展幀信號,端口0接收,當接收ACK信號時(shí),端口1也接收ACK信號,完成整個(gè)擴展幀的收發(fā)過(guò)程。

圖15 CAN數據收發(fā)時(shí)序圖

圖15說(shuō)明了總線(xiàn)接口單元模塊RapidIO接口、FlexRay接口和CAN接口完成仿真測試,工作正常,完成了RapidIO-FlexRay、RapidIO-CAN的協(xié)議轉換功能。

5 結束語(yǔ)

目前,筆者所在團隊已成功完成核心處理機系統正樣樣機的整體測試及驗證工作。本文設計在該系統中已經(jīng)通過(guò)功能性測試,基于RapidIO的CAN總線(xiàn)控制器在1Mb/s的最大波特率下工作正常,滿(mǎn)足各項功能指標,基于RapidIO的FlexRay總線(xiàn)控制器在10Mb/s的最大波特率下也滿(mǎn)足各項功能指標。下一步的工作將通過(guò)專(zhuān)業(yè)的CAN、FlexRay網(wǎng)絡(luò )測試儀器對本文設計進(jìn)行更全面的性能測試,同時(shí)將著(zhù)重解決FlexRay總線(xiàn)接口的信道冗余問(wèn)題,通過(guò)對FlexRay控制器IP核的升級,使之支持雙信道通信,從而滿(mǎn)足FlexRay真正意義上的雙信道冗余要求。



評論


相關(guān)推薦

技術(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>