車載網(wǎng)絡(luò)技術(shù)革新-CAN FD淺析
CAN FD保留了所有的CAN錯(cuò)誤界定機(jī)制,包括錯(cuò)誤幀、錯(cuò)誤計(jì)數(shù)器、主動(dòng)錯(cuò)誤/被動(dòng)錯(cuò)誤狀態(tài)等。文獻(xiàn)【3】中提到相對(duì)于標(biāo)準(zhǔn)CAN,CAN FD允許更長(zhǎng)的數(shù)據(jù)場(chǎng),因此選擇兩種新BCH型CRC多項(xiàng)式:數(shù)據(jù)場(chǎng)長(zhǎng)度小于16個(gè)字節(jié)采用g17,數(shù)據(jù)場(chǎng)長(zhǎng)度多于16個(gè)字節(jié)時(shí)采用g21,海明距離HD=6。本文引用地址:http://m.butianyuan.cn/article/201612/331249.htm
通過幀控制場(chǎng)的EDL位確定幀格式后發(fā)送DLC,并從g17、g21以及標(biāo)準(zhǔn)CAN幀多項(xiàng)式中選擇正確的多項(xiàng)式計(jì)算CRC序列。接收節(jié)點(diǎn)也選擇相應(yīng)的多項(xiàng)式計(jì)算CRC序列并決定是否對(duì)發(fā)送幀進(jìn)行應(yīng)答。
2.3CAN FD位時(shí)間轉(zhuǎn)換
CAN FD有兩套位時(shí)間配置寄存器,應(yīng)用于仲裁段的第一套的位時(shí)間較長(zhǎng),而應(yīng)用于數(shù)據(jù)段的第二套位時(shí)間較短。首先對(duì)BRS位進(jìn)行采樣,如果顯示隱性位,即在BRS采樣點(diǎn)轉(zhuǎn)換成較短的位時(shí)間機(jī)制,并在CRC界定符位的采樣點(diǎn)轉(zhuǎn)換回第一套位時(shí)間機(jī)制。為保證其他節(jié)點(diǎn)同步CAN FD選擇在采樣點(diǎn)進(jìn)行位時(shí)間轉(zhuǎn)換。
2.4收發(fā)器延遲補(bǔ)償
目前應(yīng)用的CAN收發(fā)器存在回路延遲,延遲時(shí)間最高可達(dá)255ns。CAN FD協(xié)議中,幀的數(shù)據(jù)段位時(shí)間有可能小于255ns,如果當(dāng)采樣點(diǎn)到來時(shí)發(fā)送節(jié)點(diǎn)還沒有收到其發(fā)出的位,發(fā)送節(jié)點(diǎn)就會(huì)報(bào)錯(cuò),因此 CAN FD通過可選擇性的收發(fā)器延遲補(bǔ)償機(jī)制避免這種情況發(fā)生。發(fā)送節(jié)點(diǎn)將這種補(bǔ)償機(jī)制應(yīng)用到幀的高速數(shù)據(jù)段,接收節(jié)點(diǎn)不需要收發(fā)器延遲補(bǔ)償。
在收發(fā)器延遲補(bǔ)償機(jī)制中,定義一個(gè)次級(jí)采樣點(diǎn)SSP(Second Sample Point)并在接收位的SSP處比發(fā)送的位值進(jìn)行比較檢查位錯(cuò)誤,同時(shí)忽略原來采樣點(diǎn)的位值。CAN FD協(xié)議控制器在位速率轉(zhuǎn)換之前的EDL位到r0位的下降沿上測(cè)量收發(fā)器的回路延遲Trv_Delay,延遲Trv_Delay通過計(jì)數(shù)器測(cè)量,起始于CAN_tx的r0下降沿終止于CAN_rx的r0下降沿。
Trv_Delay加上一個(gè)可變的偏移量(例如1/2高速位時(shí)間)即為SSP的位置。如果SSP發(fā)生在發(fā)送位發(fā)送結(jié)束后,那么將發(fā)送位緩存等待SSP到達(dá)再進(jìn)行位錯(cuò)誤檢查。如果在SSP處檢測(cè)到位錯(cuò)誤,那么將這個(gè)位錯(cuò)誤的信息緩存,直到下一個(gè)采樣點(diǎn)到達(dá)時(shí)才對(duì)位錯(cuò)誤做處理,此時(shí)位速率轉(zhuǎn)換回仲裁段的低速率進(jìn)行數(shù)據(jù)傳輸。如果直到CRC界定符的采樣點(diǎn)到達(dá)都沒有檢測(cè)到位錯(cuò)誤,CAN FD協(xié)議控制器轉(zhuǎn)換位速率并返回到標(biāo)準(zhǔn)位錯(cuò)誤檢測(cè)模式。
2.5硬件支持
在CAN總線基礎(chǔ)上發(fā)展起來的CAN FD協(xié)議,實(shí)際應(yīng)用時(shí)需要對(duì)原來的CAN網(wǎng)絡(luò)物理層做一些改變,對(duì)軟件和應(yīng)用程序的修改較小。一般地要在車載CAN網(wǎng)絡(luò)中進(jìn)行CAN FD通信時(shí),需要添加CAN FD控制器。目前CAN FD控制器還沒有產(chǎn)品問世,Bosch在實(shí)驗(yàn)室中將CAN IP模塊嵌入FPGA中實(shí)現(xiàn)了CAN FD控制器的功能,這種方法目前也主要用于仿真驗(yàn)證和實(shí)驗(yàn)室測(cè)試。CAN IP模塊如圖3所示,它由2個(gè)CAN FD IP core在FPGA上運(yùn)行,上層由CPU控制。
圖3 CAN IP Module結(jié)構(gòu)圖
NXP宣布將在2013年上半年發(fā)布TJA1145 FD收發(fā)器的樣片,這款收發(fā)器支持CAN局部網(wǎng)絡(luò)(PN, Partial Networking)并且配置了額外的寄存器可以忽略CAN FD消息,這為CAN FD節(jié)點(diǎn)和傳統(tǒng)的CAN節(jié)點(diǎn)兼容于一個(gè)網(wǎng)絡(luò)提供了條件,即CAN FD節(jié)點(diǎn)通信時(shí),CAN節(jié)點(diǎn)進(jìn)入睡眠狀態(tài),CAN FD通信結(jié)束后由一個(gè)CAN喚醒消息將CAN節(jié)點(diǎn)喚醒。同時(shí)NXP宣布將在2013年第三季度發(fā)布SJA1145樣片,這是一款集成片上收發(fā)器的CAN FD協(xié)議控制器,支持64個(gè)字節(jié)的傳輸負(fù)載和2M的傳輸速率,但是SJA1145需要精確的外部時(shí)鐘。Etas和Vector等工具廠商也躍躍欲試,發(fā)布了其支持CAN FD總線通信的工具及其發(fā)展計(jì)劃。
3.CAN FD應(yīng)用意義
CAN FD可以有效提高車載網(wǎng)絡(luò)的數(shù)據(jù)傳輸速率,并且保持現(xiàn)有軟硬件不做大的改變。圖4為Bosch提供的位速率增長(zhǎng)曲線,從曲線可以看出當(dāng)仲裁段的位速率一定時(shí),隨著數(shù)據(jù)段速率的增大數(shù)據(jù)幀的平均位速率是逐漸增大的,隨著幀數(shù)據(jù)場(chǎng)長(zhǎng)度的增加平均位速率也是變大的。當(dāng)仲裁段位速率選定1Mbit/s、數(shù)據(jù)場(chǎng)長(zhǎng)度為64個(gè)字節(jié)、數(shù)據(jù)段的位速率為8Mbit/s時(shí),CAN FD總線的帶寬可以提高到5 Mbit/s多,這是相當(dāng)可觀的[4]。
圖4 CAN FD數(shù)據(jù)幀平均位速率
Bosch還提供了一組數(shù)據(jù):在軟件下載時(shí)標(biāo)準(zhǔn)CAN幀速率為500Kbit/s時(shí),傳輸4個(gè)8字節(jié)的CAN幀并包括15%的填充位,其在總線上耗時(shí)1021μs;而如果傳輸1個(gè)32字節(jié)的CAN FD幀并包括15%的填充位其在總線上耗時(shí)僅為229μs,節(jié)省了3/4的傳輸時(shí)間。同時(shí)由于數(shù)據(jù)場(chǎng)的加長(zhǎng),即使長(zhǎng)報(bào)文也無需分成多包發(fā)送,有利于總線傳輸層管理。
CAN FD顯著提高了車載CAN網(wǎng)絡(luò)的帶寬,更長(zhǎng)的數(shù)據(jù)場(chǎng)長(zhǎng)度可以避免使用多包傳輸。CAN FD的成本與CAN總線基本接近,并且對(duì)目前的軟件和應(yīng)用程序改動(dòng)較小,CAN FD保留了車載CAN網(wǎng)絡(luò)的物理層和拓?fù)浣Y(jié)構(gòu),能夠提供CAN總線網(wǎng)絡(luò)的無縫升級(jí),這些優(yōu)越性為CAN FD提供了良好的發(fā)展前景。
4.結(jié)語
CAN FD是一種新協(xié)議,它保持了CAN協(xié)議的核心特征,并且擁有更高的帶寬以及更長(zhǎng)的數(shù)據(jù)長(zhǎng)度,CAN FD在車載網(wǎng)絡(luò)中可以沿用CAN總線的收發(fā)器,隨著技術(shù)的發(fā)展也可以采用專用收發(fā)器,當(dāng)采用CAN總線收發(fā)器時(shí),其傳輸速率期望值為2.5 Mbit/s,相當(dāng)于低速的FlexRay車載網(wǎng)絡(luò)[5]。目前CAN FD還處于引入階段,CAN FD通信可以用于特定用途,例如軟件下載,此時(shí)其他不支持CAN FD的節(jié)點(diǎn)就保持睡眠狀態(tài)。采用CAN FD協(xié)議的ECU無需改變應(yīng)用程序以及CAN物理層便可用于現(xiàn)有網(wǎng)絡(luò)系統(tǒng),CAN網(wǎng)絡(luò)向CAN FD網(wǎng)絡(luò)過渡是簡(jiǎn)單方便而且易于實(shí)現(xiàn)的。
參考文獻(xiàn)
[1] Robert Bosch GmbH.CAN with Flexible Data-Rate, Version 1.1; Date Aug.2011,http://www.semiconductors.bosch.de/media/...pdf/canliteratur/can_fd.pdf
[2] G. Cena, A. Valenzano. Overclocking of Controller Area Networks. IEE Electronics Letters, vol. 35, 1999, pp. 1923-1925, No. 22, 28th October.
[3] CRC for CAN with flexible data rate(CAN FD)[EB/OL]. [2012-02-21].http://www.bosch-semicon-ductors.de/media/pdf/ipmodules_1/Whitepaper_CRC_CAN_FD_20111128.pdf.
[4] VeCo12_8_NewBusSystems_3_Lindenkreuz_Lecture.pdf
[5] Florian Hartwich, Robert Bosch GmbH.CAN with Flexible Data-Rate. The 13th International CAN Conference 2012.
評(píng)論