都說CANFD是兼容CAN的,實際上這句話有個大前提,那就是CAN控制器是完全遵循ISO11898-1規范的。為什么這么說,接下來聽君娓娓道來…
我們先看下CAN的幀結構:
CAN幀結構

從上圖可以看出,標準幀中有個r0位,這個位實際上是個保留位,ISO11898-1中規定:發送方發送r0位固定為顯性,接收方則不對該位顯隱性做判斷。同樣,擴展幀除r0位還有個r1位,也是保留位,其規定與r0位一致。由于ISO11898-1對保留位的規定,導致部分老舊的CAN控制器在發送保留位時,未遵循ISO規范要求,將r0或r1位發送為隱性,而不是顯性,接收方也能正常接收CAN報文。那么CAN控制器發送標準幀r0或擴展幀r1為隱性,在CANFD中會導致什么問題呢?這個就要從CANFD幀結構說起了。
CANFD幀結構

如上圖所示中箭頭方向,在CANFD幀中,原來的CAN標準幀中的r0為此時變為了EDL位(CANFD位),CAN擴展幀中的r1位也同樣變為EDL位。EDL位規定,EDL為隱性時為CANFD幀,顯性為CAN幀。
CAN標準幀r0位和擴展幀r1位發送隱性位帶來的問題那么問題就來了,那些未完全符合ISO11898-1規范的CAN控制器,他們發送CAN幀時R0位為隱性,此時若總線上存在CANFD節點時,就會被CANFD控制器識別為CANFD幀,但是實際上他發送又是CAN幀,這種情況下就導致CANFD控制器接收異常而發送錯誤幀。這種情況下,對于不完全遵循ISO11898-1規范的CAN控制器來說,CANFD就不兼容CAN了。

最后,我們再通過上面這張圖總結下:未符合ISO11898-1規范的CAN控制器,因其發送報文時,標準幀r0位或擴展幀r1位為隱性,在CANFD網絡中,會被CANFD控制器的接收方判別為CANFD幀,從而導致總線錯誤。
解決方法
若總線存在此CAN控制器時,我們可以將CANFD控制器設置為CAN控制器以兼容該CAN節點。
若使用USBCANFD-200U系列CANFD卡,遇到不規范的CAN控制器時,我們可以通過ZCANPRO設置控制器類型為CAN,就可以解決這個問題。
原文標題:【Z站推薦】CANFD真的完全兼容CAN?
文章出處:【微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。
-
CAN
+關注
關注
59文章
3066瀏覽量
472732 -
CAN控制器
+關注
關注
3文章
80瀏覽量
15644 -
CANFD
+關注
關注
0文章
105瀏覽量
5897
原文標題:【Z站推薦】CANFD真的完全兼容CAN?
文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
MCP2510:獨立CAN控制器的技術剖析與應用指南
MCP2515:獨立CAN控制器的深度解析
深入剖析PCA82C250 CAN控制器接口:性能、應用與設計要點
基于ASM1042A系列芯片的CAN協議擴展方案在汽車座椅控制器中的應用探討
ZPS-CANFD總線分析儀:一鍵操作,全面評估CAN/CANFD節點健康狀態
如何使用 M460 系列微控制器 (MCU) 接收和打印 CANFD 總線上的所有消息?
CAN總線控制器:智能設備的“交通指揮官”
CANFD協議轉換器:搭建通訊橋梁
車載通信方案為何選擇CAN/CANFD?
如何使用ZPS-CANFD觀察CAN數據鏈路層的工作過程
CAN控制器在CANFD中會導致什么問題
評論