隨著電子、半導體、通訊等行業的快速發展,汽車電子智能化的訴求也越來越強,消費者希望駕駛動力性、舒適性、經濟性以及娛樂性更強的汽車。汽車制造商為了提高產品競爭力,將越來越多的電子控制系統加入到汽車控制中,例如ESP(Electronic Stability Program,電子穩定程序)、PEPS(Passive Entry Passive Start無鑰匙進入和啟動系統)等。但是由于CAN總線的最高傳輸速率為1Mbit/s(通常汽車CAN系統的實際使用速率最高為500kbit/s),ECU(Electronic Control Unit,電子控制單元)的大量增加使總線負載率急劇增大以致造成網絡擁堵,影響信息傳輸的可靠性和實時性。
不同的汽車,根據其級別、類型和配置的不同,ECU的數量和網絡拓撲都不盡相同。圖1所示的網絡拓撲為經濟型轎車中常見的網絡拓撲,因為所有的ECU都在同一個CAN網段上,其總線負載率可能高達50~60%,而一般情況下,CAN總線負載率在30%左右時網絡系統的性能相對較好,否則會增大報文延遲、降低系統的擴展性,尤其對于實時性要求較高的安全系統,高負載率甚至可能影響汽車行車安全;另一方面,CAN總線的位填充規則會對CRC(Cyclical Redundancy Check)造成干擾,引起錯誤幀漏檢,使信息傳輸的可靠性達不到預期的設計要求,因此CAN總線將不能滿足日益增長的汽車網絡需求。
圖1汽車CAN總線網絡拓撲
為解決帶寬與可靠性的需求,有人提出在汽車網絡中使用新的總線協議替代CAN總線,例如安全系統中使用FlexRay總線、娛樂系統中使用MOST總線,但需要重新開發控制器軟硬件、重新設計車載網絡系統等,這無疑會增加汽車制造商的開發成本,降低其市場競爭力,因此在目前車載網絡系統的基礎上對CAN總線進行改進顯得尤其迫切。
2011年Bosch發布了CAN替代總線--CAN FD (CAN with Flexible Data-Rate) 1.1版。CAN FD比CAN總線的帶寬更高,具有與CAN總線相似的控制器接口,這種相似性使ECU供應商不需要對ECU的軟件部分做大規模修改,降低了開發難度和成本。CAN FD是CAN總線的升級換代設計,它繼承了CAN總線的主要特性,提高了CAN總線的網絡通信帶寬,改善了錯誤幀漏檢率,同時可以保持網絡系統大部分軟硬件特別是物理層不變。CAN FD協議充分利用CAN總線的保留位進行判斷以及區分不同的幀格式[1]。在現有車載網絡中應用CAN FD協議時,需要加入CAN FD控制器,但是CAN FD也可以參與到原來的CAN通信網絡中,提高了網絡系統的兼容性。
2.CAN FD介紹
引入CAN FD協議,對當前CAN網絡系統物理層的改動較小,但是可以明顯提高數據的串行通信速率, CAN FD與文獻【2】中提到的方法近似,即通過改變幀的格式增加總線帶寬:一種方式為加長數據場長度減少報文數量降低總線負載率;另一種方式為縮短位時間提高位速率。
CAN FD在數據幀內部采用兩種不同的位速率,即在仲裁段(Arbitration-Phase)采用標準CAN位速率通信,在數據段(Data-Phase)采用高速率通信。
2.1CAN FD的幀格式
(a)標準幀格式
(b)擴展幀格式
數據場數據字節小于16時CRC為17位
圖2 CAN FD數據幀格式
對比CAN總線幀格式,CAN FD幀增加或改變了一些位的功能,包括:
◆EDL(Extended Data Length)擴展數據長度,在標準的CAN幀中,控制場包含的保留位被指定為顯性位發送,但是在CAN FD幀中,如圖2(a)標準幀IDE位之后的保留位或者圖2(b)擴展幀中RTR位之后的保留位被定義為EDL并以隱性位發送,EDL主要用于區分標準CAN幀格式和CAN FD的幀格式。由于在CAN FD中EDL總是以隱形位發送,后面的位r0為顯性位,因此可在BRS(Bit Rate Switch)位速率開關位之前提供一個重同步沿,這個沿也可用于在收發器延遲補償中測量收發器的延遲;
◆r1,r0,保留位并以顯性位發送,在CAN FD中接收節點忽略r1和r0位的值;
◆BRS(Bit Rate Switch)位速率轉換開關,當BRS為顯性位時數據段的位速率與仲裁段的位速率一致,當BRS為隱性位時數據段的位速率高于仲裁段的位速率;
◆ESI(Error State Indicator)錯誤狀態指示,主動錯誤時發送顯性位,被動錯誤時發送隱性位。
CAN FD協議中沒有遠程幀,標準CAN幀中的RTR位由保留位r1(顯性位)替代,因此可將CAN遠程幀用于CAN FD系統中。
CAN FD一幀最多可以傳輸64個字節,因此DLC將重新定義CAN FD的數據長度,值的范圍將由原來的0000b~1000b(覆蓋8個字節)擴大至0000b~1111b以滿足需求,表1所示為DLC數值與字節數的對應關系。
表1 DLC值與字節數對應表
2.2CRC算法
CAN總線通常進行位填充以保持同步,但是位填充會干擾CRC的計算,從而造成錯誤漏檢率達不到設計目標。因為有兩種位錯誤在個別的情況下檢測不出來,一種位錯誤產生位填充條件,另外一種位錯誤失去位填充條件,這兩種位錯誤都會改變幀位。CAN FD為了避免這種錯誤,對CRC算法做了改進:將填充位納入到CRC計算中,即CRC以含填充位的位流進行計算,以一個填充位開始并且序列每4位插入一個填充位加以分割,且填充位的值是上一位的反碼。作為格式檢查,如果填充位不是上一位的反碼,就報錯處理。
CAN FD保留了所有的CAN錯誤界定機制,包括錯誤幀、錯誤計數器、主動錯誤/被動錯誤狀態等。文獻【3】中提到相對于標準CAN,CAN FD允許更長的數據場,因此選擇兩種新BCH型CRC多項式:數據場長度小于16個字節采用g17,數據場長度多于16個字節時采用g21,海明距離HD=6。
通過幀控制場的EDL位確定幀格式后發送DLC,并從g17、g21以及標準CAN幀多項式中選擇正確的多項式計算CRC序列。接收節點也選擇相應的多項式計算CRC序列并決定是否對發送幀進行應答。
2.3CAN FD位時間轉換
CAN FD有兩套位時間配置寄存器,應用于仲裁段的第一套的位時間較長,而應用于數據段的第二套位時間較短。首先對BRS位進行采樣,如果顯示隱性位,即在BRS采樣點轉換成較短的位時間機制,并在CRC界定符位的采樣點轉換回第一套位時間機制。為保證其他節點同步CAN FD選擇在采樣點進行位時間轉換。
2.4收發器延遲補償
目前應用的CAN收發器存在回路延遲,延遲時間最高可達255ns。CAN FD協議中,幀的數據段位時間有可能小于255ns,如果當采樣點到來時發送節點還沒有收到其發出的位,發送節點就會報錯,因此 CAN FD通過可選擇性的收發器延遲補償機制避免這種情況發生。發送節點將這種補償機制應用到幀的高速數據段,接收節點不需要收發器延遲補償。
在收發器延遲補償機制中,定義一個次級采樣點SSP(Second Sample Point)并在接收位的SSP處比發送的位值進行比較檢查位錯誤,同時忽略原來采樣點的位值。CAN FD協議控制器在位速率轉換之前的EDL位到r0位的下降沿上測量收發器的回路延遲Trv_Delay,延遲Trv_Delay通過計數器測量,起始于CAN_tx的r0下降沿終止于CAN_rx的r0下降沿。
Trv_Delay加上一個可變的偏移量(例如1/2高速位時間)即為SSP的位置。如果SSP發生在發送位發送結束后,那么將發送位緩存等待SSP到達再進行位錯誤檢查。如果在SSP處檢測到位錯誤,那么將這個位錯誤的信息緩存,直到下一個采樣點到達時才對位錯誤做處理,此時位速率轉換回仲裁段的低速率進行數據傳輸。如果直到CRC界定符的采樣點到達都沒有檢測到位錯誤,CAN FD協議控制器轉換位速率并返回到標準位錯誤檢測模式。
2.5硬件支持
在CAN總線基礎上發展起來的CAN FD協議,實際應用時需要對原來的CAN網絡物理層做一些改變,對軟件和應用程序的修改較小。一般地要在車載CAN網絡中進行CAN FD通信時,需要添加CAN FD控制器。目前CAN FD控制器還沒有產品問世,Bosch在實驗室中將CAN IP模塊嵌入FPGA中實現了CAN FD控制器的功能,這種方法目前也主要用于仿真驗證和實驗室測試。CAN IP模塊如圖3所示,它由2個CAN FD IP core在FPGA上運行,上層由CPU控制。
圖3 CAN IP Module結構圖
NXP宣布將在2013年上半年發布TJA1145 FD收發器的樣片,這款收發器支持CAN局部網絡(PN, Partial Networking)并且配置了額外的寄存器可以忽略CAN FD消息,這為CAN FD節點和傳統的CAN節點兼容于一個網絡提供了條件,即CAN FD節點通信時,CAN節點進入睡眠狀態,CAN FD通信結束后由一個CAN喚醒消息將CAN節點喚醒。同時NXP宣布將在2013年第三季度發布SJA1145樣片,這是一款集成片上收發器的CAN FD協議控制器,支持64個字節的傳輸負載和2M的傳輸速率,但是SJA1145需要精確的外部時鐘。Etas和Vector等工具廠商也躍躍欲試,發布了其支持CAN FD總線通信的工具及其發展計劃。
3.CAN FD應用意義
CAN FD可以有效提高車載網絡的數據傳輸速率,并且保持現有軟硬件不做大的改變。圖4為Bosch提供的位速率增長曲線,從曲線可以看出當仲裁段的位速率一定時,隨著數據段速率的增大數據幀的平均位速率是逐漸增大的,隨著幀數據場長度的增加平均位速率也是變大的。當仲裁段位速率選定1Mbit/s、數據場長度為64個字節、數據段的位速率為8Mbit/s時,CAN FD總線的帶寬可以提高到5 Mbit/s多,這是相當可觀的[4]。
圖4 CAN FD數據幀平均位速率
Bosch還提供了一組數據:在軟件下載時標準CAN幀速率為500Kbit/s時,傳輸4個8字節的CAN幀并包括15%的填充位,其在總線上耗時1021μs;而如果傳輸1個32字節的CAN FD幀并包括15%的填充位其在總線上耗時僅為229μs,節省了3/4的傳輸時間。同時由于數據場的加長,即使長報文也無需分成多包發送,有利于總線傳輸層管理。
CAN FD顯著提高了車載CAN網絡的帶寬,更長的數據場長度可以避免使用多包傳輸。CAN FD的成本與CAN總線基本接近,并且對目前的軟件和應用程序改動較小,CAN FD保留了車載CAN網絡的物理層和拓撲結構,能夠提供CAN總線網絡的無縫升級,這些優越性為CAN FD提供了良好的發展前景。
4.結語
CAN FD是一種新協議,它保持了CAN協議的核心特征,并且擁有更高的帶寬以及更長的數據長度,CAN FD在車載網絡中可以沿用CAN總線的收發器,隨著技術的發展也可以采用專用收發器,當采用CAN總線收發器時,其傳輸速率期望值為2.5 Mbit/s,相當于低速的FlexRay車載網絡[5]。目前CAN FD還處于引入階段,CAN FD通信可以用于特定用途,例如軟件下載,此時其他不支持CAN FD的節點就保持睡眠狀態。采用CAN FD協議的ECU無需改變應用程序以及CAN物理層便可用于現有網絡系統,CAN網絡向CAN FD網絡過渡是簡單方便而且易于實現的。
-
半導體
+關注
關注
334文章
27290瀏覽量
218086 -
車載網絡
+關注
關注
6文章
159瀏覽量
31767 -
汽車網絡
+關注
關注
0文章
63瀏覽量
14763
發布評論請先 登錄
相關推薦
評論