CAN總線作為一種常用的通信協(xié)議,在汽車、工業(yè)自動(dòng)化等領(lǐng)域得到廣泛應(yīng)用。然而,由于各種原因,CAN總線在使用過(guò)程中可能會(huì)出現(xiàn)各種故障,本文將繼續(xù)講解CAN總線應(yīng)用過(guò)程中的常見問(wèn)題和解決辦法。
低波特率通信正常,高波特率無(wú)法通信
控制器配置低波特率通信正常而提高通信速率后無(wú)法通信的問(wèn)題,主要是由于終端電阻未匹配導(dǎo)致的。CAN收發(fā)器芯片內(nèi)部的CAN線CANH、CANL引腳是開漏結(jié)構(gòu),如下圖1,總線上的寄生電容在顯性狀態(tài)時(shí)會(huì)被充電,而從顯性狀態(tài)切換到隱性狀態(tài)的時(shí)候,總線上的電容要放電。如果CANH、CANL之間沒(méi)有匹配電阻或者匹配的終端電阻太大,就會(huì)導(dǎo)致電容上的電荷放電速度過(guò)慢,從而在下降沿出現(xiàn)邊沿下降過(guò)緩的現(xiàn)象,如圖2,進(jìn)而導(dǎo)致控制無(wú)法采到正確的電平,引發(fā)通信問(wèn)題。
圖1、CAN收發(fā)器芯片內(nèi)部CANH、CANL結(jié)構(gòu)
圖2、顯性狀態(tài)切換到隱性狀態(tài)邊沿緩慢
解決方法
- 匹配適當(dāng)?shù)慕K端電阻;
- 推薦使用思瑞浦的TPT1462,支持主動(dòng)隱性,在TXD拉高時(shí)顯性狀態(tài)可快速切換至隱性狀態(tài),保證通信正常。
總線電容過(guò)大導(dǎo)致的通訊異常
CAN收發(fā)器為了實(shí)現(xiàn)CAN的仲裁與錯(cuò)誤處理,采用單向驅(qū)動(dòng)結(jié)構(gòu),即CAN波形的上升沿有驅(qū)動(dòng),而下降沿是通過(guò)整條總線與終端電阻放電產(chǎn)生的,所以終端電阻的第一作用是放電。CAN節(jié)點(diǎn)及CAN線束的電容會(huì)影響整個(gè)網(wǎng)絡(luò)的電容,電容越大,下降邊沿越緩,導(dǎo)致接收節(jié)點(diǎn)發(fā)生位采樣錯(cuò)誤,從而產(chǎn)生錯(cuò)誤幀。
解決方法
- 檢查CAN總線上是否有外加電容、是否有保護(hù)器件(TVS等)的寄生電容過(guò)大等問(wèn)題,適當(dāng)去除,以降低電容,建議將單個(gè)CAN節(jié)點(diǎn)電容控制在 40pF~100pF范圍內(nèi);
- 降低工作波特率,波特率降低可以延長(zhǎng)位時(shí)間,減小電容的影響,但若電容過(guò)大,則不一定有效;
- 推薦使用支持CAN SIC的TPT1462,主動(dòng)隱性功能可保證信號(hào)的有效脈寬。
CAN總線波形出現(xiàn)明顯的共模震蕩
共模振蕩通常是由于傳輸線纜和PCB布局走線會(huì)耦合感性負(fù)載,而信號(hào)在感性負(fù)載下傳輸會(huì)出現(xiàn)信號(hào)共模抖動(dòng),可修改終端電阻中點(diǎn)的對(duì)地split電容調(diào)整信號(hào)質(zhì)量,調(diào)整范圍1nF~100nF,推薦值4.7nF。
另外,TPT1044、TPT1057和TPT1462都是思瑞浦基于自主設(shè)計(jì)對(duì)稱性調(diào)節(jié)模塊專利技術(shù)的車規(guī)級(jí)CAN收發(fā)器芯片,可有效調(diào)節(jié)總線共模,確保差分輸出的對(duì)稱性,即使不增加Split電容,也可以達(dá)到傳統(tǒng)CAN收發(fā)器增加Split后的效果。
圖3、調(diào)整split電容或更換TPT1044、TPT1057、TPT1462可有效改善信號(hào)質(zhì)量
圖4、無(wú)split電容時(shí)共模抖動(dòng)
圖5、有split電容下共模無(wú)抖動(dòng)
圖6、TPT1044不增加Split電容下共模無(wú)抖動(dòng)
總線干擾過(guò)大問(wèn)題
CAN總線雖然有強(qiáng)大的抗干擾和糾錯(cuò)重發(fā)機(jī)制,但目前CAN被大量應(yīng)用于新能源汽車、軌道交通、醫(yī)療、煤礦、電機(jī)驅(qū)動(dòng)等行業(yè),而這些場(chǎng)合的電磁環(huán)境比較復(fù)雜,所以如何抗干擾是工程師最為關(guān)心的話題。
為此可采用提高CAN雙絞程度、加單雙屏蔽層、使用CAN隔離模塊、弱電遠(yuǎn)離強(qiáng)電、優(yōu)化布線等方式以提高CAN通信抗干擾能力。同樣在采用不合理的組網(wǎng)方式時(shí),也可能會(huì)導(dǎo)致信號(hào)反射嚴(yán)重引起信號(hào)振鈴,在總線產(chǎn)生振鈴時(shí),其總線差模信號(hào)會(huì)反復(fù)在顯性電平和隱性電平閾值振蕩,導(dǎo)致RXD產(chǎn)生誤翻轉(zhuǎn),從而使接收數(shù)據(jù)受到干擾。
思瑞浦推出基于其自主創(chuàng)新設(shè)計(jì)振鈴抑制電路專利的車規(guī)級(jí)CAN SIC(信號(hào)改善功能,Signal Improvement Capability)TPT1462Q芯片,可有效抑制總線振鈴,允許工程師在多節(jié)點(diǎn)、復(fù)雜拓?fù)淝闆r下有效減少總線中的信號(hào)反射,降低振鈴現(xiàn)象發(fā)生的概率,同時(shí)TPT1462Q具有國(guó)際領(lǐng)先的抗干擾能力,即使在極其惡劣的電磁環(huán)境中,仍能維持CAN正常通信,為汽車安全通訊奠定堅(jiān)實(shí)的基礎(chǔ)。
圖7、常規(guī)CAN總線振鈴干擾波形
圖8、CAN SIC振鈴抑制對(duì)比波形
總線錯(cuò)誤狀態(tài)和分析
按照CAN協(xié)議的規(guī)定,CAN總線上的節(jié)點(diǎn)始終處于以下三種狀態(tài)之一:
- 主動(dòng)錯(cuò)誤狀態(tài);
- 被動(dòng)錯(cuò)誤狀態(tài);
- 總線關(guān)閉狀態(tài);
這些狀態(tài)依靠發(fā)送錯(cuò)誤計(jì)數(shù)和接收錯(cuò)誤計(jì)數(shù)來(lái)管理,錯(cuò)誤類型包括位錯(cuò)誤、ACK錯(cuò)誤、填充錯(cuò)誤、CRC錯(cuò)誤、格式錯(cuò)誤,根據(jù)計(jì)數(shù)值決定進(jìn)入何種狀態(tài)。錯(cuò)誤狀態(tài)和計(jì)數(shù)值的關(guān)系如下圖所示。
圖9、單元的錯(cuò)誤狀態(tài)
節(jié)點(diǎn)處于主動(dòng)錯(cuò)誤狀態(tài)下檢測(cè)到非法幀格式會(huì)主動(dòng)輸出錯(cuò)誤幀,錯(cuò)誤幀由6個(gè)顯性位和8個(gè)隱性位組成;利用該特性可以使用示波器捕捉錯(cuò)誤幀波形,分析錯(cuò)誤類型和原因。
例如CAN的仲裁域波特率為500kbps時(shí),以CANH觸發(fā)為例。選擇觸發(fā)方式為脈寬觸發(fā),觸發(fā)脈寬選擇>11μs(保證大于5個(gè)連續(xù)顯性位),觸發(fā)電平>2.5V,即可抓取錯(cuò)誤幀波形。
圖10、錯(cuò)誤幀波形