新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA的車電總線接口技術(shù)研究

基于FPGA的車電總線接口技術(shù)研究

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

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

本文引用地址:http://m.butianyuan.cn/article/201610/308393.htm

1 概述

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

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

2 車電總線架構(gòu)

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

2.1 CAN技術(shù)

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

(1) CAN的分層結(jié)構(gòu)

CAN遵從OSI模型,按照OSI基準模型,CAN結(jié)構(gòu)劃分為2層:數(shù)據(jù)鏈路層和物理層[3-4],如圖1所示。

圖1 CAN分層結(jié)構(gòu)

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

(2) CAN總線的主要特點

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

2.2 FlexRay技術(shù)

(1) FlexRay分層結(jié)構(gòu)

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

(2) FlexRay節(jié)點結(jié)構(gòu)

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

圖2 FlexRay節(jié)點結(jié)構(gòu)

(3) FlexRay網(wǎng)絡(luò)拓撲結(jié)構(gòu)

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

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

(4) FlexRay狀態(tài)

FlexRay的節(jié)點有6個基本的運行狀態(tài):

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

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

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

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

5)正常狀態(tài)(主動/被動):可以進行通信的狀態(tài)。

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

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

圖4 FlexRay狀態(tài)

3 車電總線接口單元設(shè)計

3.1單元組成

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

圖5 系統(tǒng)總體架構(gòu)

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

圖6單元功能組成框圖

3.2 車電總線接口設(shè)計

3.2.1 CAN總線接口設(shè)計

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

圖7 CAN總線接口硬件組成原理

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

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

圖8 CAN內(nèi)存數(shù)據(jù)結(jié)構(gòu)

3.2.2 FlexRay總線接口設(shè)計

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

圖9 FlexRay總線接口硬件組成原理

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

圖10 FlexRay內(nèi)存數(shù)據(jù)結(jié)構(gòu)

3.3 FPGA邏輯設(shè)計

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

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

(1)SRIO-PLB橋?qū)崿F(xiàn)了總線接口單元模塊的srio總線接入功能。

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

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

詳細邏輯結(jié)構(gòu)如圖11所示。

圖11 FPGA模塊內(nèi)部邏輯結(jié)構(gòu)

4 仿真與驗證

4.1 RapidIO仿真與驗證

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

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

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

4.2 FlexRay仿真與驗證

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

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

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

4.3 CAN仿真與驗證

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

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

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

5 結(jié)束語

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



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉