車(chē)載網(wǎng)絡(luò )技術(shù)革新-CAN FD淺析
隨著(zhù)電子、半導體、通訊等行業(yè)的快速發(fā)展,汽車(chē)電子智能化的訴求也越來(lái)越強,消費者希望駕駛動(dòng)力性、舒適性、經(jīng)濟性以及娛樂(lè )性更強的汽車(chē)。汽車(chē)制造商為了提高產(chǎn)品競爭力,將越來(lái)越多的電子控制系統加入到汽車(chē)控制中,例如ESP(Electronic Stability Program,電子穩定程序)、PEPS(Passive Entry Passive Start無(wú)鑰匙進(jìn)入和啟動(dòng)系統)等。但是由于CAN總線(xiàn)的最高傳輸速率為1Mbit/s(通常汽車(chē)CAN系統的實(shí)際使用速率最高為500kbit/s),ECU(Electronic Control Unit,電子控制單元)的大量增加使總線(xiàn)負載率急劇增大以致造成網(wǎng)絡(luò )擁堵,影響信息傳輸的可靠性和實(shí)時(shí)性。
不同的汽車(chē),根據其級別、類(lèi)型和配置的不同,ECU的數量和網(wǎng)絡(luò )拓撲都不盡相同。圖1所示的網(wǎng)絡(luò )拓撲為經(jīng)濟型轎車(chē)中常見(jiàn)的網(wǎng)絡(luò )拓撲,因為所有的ECU都在同一個(gè)CAN網(wǎng)段上,其總線(xiàn)負載率可能高達50~60%,而一般情況下,CAN總線(xiàn)負載率在30%左右時(shí)網(wǎng)絡(luò )系統的性能相對較好,否則會(huì )增大報文延遲、降低系統的擴展性,尤其對于實(shí)時(shí)性要求較高的安全系統,高負載率甚至可能影響汽車(chē)行車(chē)安全;另一方面,CAN總線(xiàn)的位填充規則會(huì )對CRC(Cyclical Redundancy Check)造成干擾,引起錯誤幀漏檢,使信息傳輸的可靠性達不到預期的設計要求,因此CAN總線(xiàn)將不能滿(mǎn)足日益增長(cháng)的汽車(chē)網(wǎng)絡(luò )需求。
圖1汽車(chē)CAN總線(xiàn)網(wǎng)絡(luò )拓撲
為解決帶寬與可靠性的需求,有人提出在汽車(chē)網(wǎng)絡(luò )中使用新的總線(xiàn)協(xié)議替代CAN總線(xiàn),例如安全系統中使用FlexRay總線(xiàn)、娛樂(lè )系統中使用MOST總線(xiàn),但需要重新開(kāi)發(fā)控制器軟硬件、重新設計車(chē)載網(wǎng)絡(luò )系統等,這無(wú)疑會(huì )增加汽車(chē)制造商的開(kāi)發(fā)成本,降低其市場(chǎng)競爭力,因此在目前車(chē)載網(wǎng)絡(luò )系統的基礎上對CAN總線(xiàn)進(jìn)行改進(jìn)顯得尤其迫切。
2011年Bosch發(fā)布了CAN替代總線(xiàn)--CAN FD (CAN with Flexible Data-Rate) 1.1版。CAN FD比CAN總線(xiàn)的帶寬更高,具有與CAN總線(xiàn)相似的控制器接口,這種相似性使ECU供應商不需要對ECU的軟件部分做大規模修改,降低了開(kāi)發(fā)難度和成本。CAN FD是CAN總線(xiàn)的升級換代設計,它繼承了CAN總線(xiàn)的主要特性,提高了CAN總線(xiàn)的網(wǎng)絡(luò )通信帶寬,改善了錯誤幀漏檢率,同時(shí)可以保持網(wǎng)絡(luò )系統大部分軟硬件特別是物理層不變。CAN FD協(xié)議充分利用CAN總線(xiàn)的保留位進(jìn)行判斷以及區分不同的幀格式[1]。在現有車(chē)載網(wǎng)絡(luò )中應用CAN FD協(xié)議時(shí),需要加入CAN FD控制器,但是CAN FD也可以參與到原來(lái)的CAN通信網(wǎng)絡(luò )中,提高了網(wǎng)絡(luò )系統的兼容性。
2.CAN FD介紹
引入CAN FD協(xié)議,對當前CAN網(wǎng)絡(luò )系統物理層的改動(dòng)較小,但是可以明顯提高數據的串行通信速率, CAN FD與文獻【2】中提到的方法近似,即通過(guò)改變幀的格式增加總線(xiàn)帶寬:一種方式為加長(cháng)數據場(chǎng)長(cháng)度減少報文數量降低總線(xiàn)負載率;另一種方式為縮短位時(shí)間提高位速率。
CAN FD在數據幀內部采用兩種不同的位速率,即在仲裁段(Arbitration-Phase)采用標準CAN位速率通信,在數據段(Data-Phase)采用高速率通信。
2.1CAN FD的幀格式
(a)標準幀格式
(b)擴展幀格式
數據場(chǎng)數據字節小于16時(shí)CRC為17位
圖2 CAN FD數據幀格式
對比CAN總線(xiàn)幀格式,CAN FD幀增加或改變了一些位的功能,包括:
◆EDL(Extended Data Length)擴展數據長(cháng)度,在標準的CAN幀中,控制場(chǎng)包含的保留位被指定為顯性位發(fā)送,但是在CAN FD幀中,如圖2(a)標準幀IDE位之后的保留位或者圖2(b)擴展幀中RTR位之后的保留位被定義為EDL并以隱性位發(fā)送,EDL主要用于區分標準CAN幀格式和CAN FD的幀格式。由于在CAN FD中EDL總是以隱形位發(fā)送,后面的位r0為顯性位,因此可在BRS(Bit Rate Switch)位速率開(kāi)關(guān)位之前提供一個(gè)重同步沿,這個(gè)沿也可用于在收發(fā)器延遲補償中測量收發(fā)器的延遲;
◆r1,r0,保留位并以顯性位發(fā)送,在CAN FD中接收節點(diǎn)忽略r1和r0位的值;
◆BRS(Bit Rate Switch)位速率轉換開(kāi)關(guān),當BRS為顯性位時(shí)數據段的位速率與仲裁段的位速率一致,當BRS為隱性位時(shí)數據段的位速率高于仲裁段的位速率;
◆ESI(Error State Indicator)錯誤狀態(tài)指示,主動(dòng)錯誤時(shí)發(fā)送顯性位,被動(dòng)錯誤時(shí)發(fā)送隱性位。
CAN FD協(xié)議中沒(méi)有遠程幀,標準CAN幀中的RTR位由保留位r1(顯性位)替代,因此可將CAN遠程幀用于CAN FD系統中。
CAN FD一幀最多可以傳輸64個(gè)字節,因此DLC將重新定義CAN FD的數據長(cháng)度,值的范圍將由原來(lái)的0000b~1000b(覆蓋8個(gè)字節)擴大至0000b~1111b以滿(mǎn)足需求,表1所示為DLC數值與字節數的對應關(guān)系。
表1 DLC值與字節數對應表
2.2CRC算法
CAN總線(xiàn)通常進(jìn)行位填充以保持同步,但是位填充會(huì )干擾CRC的計算,從而造成錯誤漏檢率達不到設計目標。因為有兩種位錯誤在個(gè)別的情況下檢測不出來(lái),一種位錯誤產(chǎn)生位填充條件,另外一種位錯誤失去位填充條件,這兩種位錯誤都會(huì )改變幀位。CAN FD為了避免這種錯誤,對CRC算法做了改進(jìn):將填充位納入到CRC計算中,即CRC以含填充位的位流進(jìn)行計算,以一個(gè)填充位開(kāi)始并且序列每4位插入一個(gè)填充位加以分割,且填充位的值是上一位的反碼。作為格式檢查,如果填充位不是上一位的反碼,就報錯處理。
評論