CAN總線應(yīng)用環(huán)境復(fù)雜多樣,可能會(huì)出現(xiàn)各種異常情況。本文列舉了常見(jiàn)的CAN接口異常情況及解決方法,幫您更加高效地分析及解決CAN接口應(yīng)用問(wèn)題。
一、常見(jiàn)異常及解決方法
1.兩個(gè)節(jié)點(diǎn)近距離測(cè)試,低波特率通信正常,高波特率無(wú)法通信。
可能原因:未加終端電阻。由于CAN收發(fā)芯片內(nèi)部CANH、CANL引腳為開(kāi)漏驅(qū)動(dòng),如圖1,在顯性狀態(tài)期間,總線的寄生電容會(huì)被充電,而在恢復(fù)到隱性狀態(tài)時(shí),這些電容需要放電。如果CANH、CANL之間沒(méi)有放置任何阻性負(fù)載,電容只能通過(guò)收發(fā)器內(nèi)部阻值較大的差分電阻放電。如果放電速度過(guò)慢,就會(huì)出現(xiàn)通信問(wèn)題。
解決方法:增加終端電阻。
圖1 CAN收發(fā)器結(jié)構(gòu)示意圖
2.組網(wǎng)節(jié)點(diǎn)數(shù)少,通信正常,增加節(jié)點(diǎn)后,通信異常。
可能原因:總線電容過(guò)大??偩€電容過(guò)大會(huì)影響CAN差分波形上升下降速度,如圖2。
解決方法:
a. 檢查CAN節(jié)點(diǎn)接口的外圍電路,是否有外加電容、TVS管等器件,適當(dāng)去除,以降低電容;
b. 降低工作波特率。波特率降低可以延長(zhǎng)位時(shí)間,減小電容的影響,但若電容過(guò)大,則不一定有效。
圖2 總線電容影響波形圖
3.應(yīng)用中易損壞,更換模塊后正常。
可能原因:保護(hù)不足。CAN模塊由于體積受限,內(nèi)部保護(hù)電路等級(jí)不高。在一些環(huán)境惡劣的應(yīng)用現(xiàn)場(chǎng),干擾能量過(guò)大易造成損壞。
解決方法:根據(jù)損壞情況適當(dāng)增加保護(hù)電路。圖3是推薦的典型保護(hù)電路圖,電源端口有TVS保護(hù),CAN接口有三級(jí)電路保護(hù),可以抑制大能量的雷擊浪涌。
圖3 典型保護(hù)電路
4.5V模塊匹配3.3V MCU,錯(cuò)誤幀多或發(fā)不出數(shù)據(jù)。
可能原因:電平不匹配。5V模塊匹配3.3V MCU在測(cè)試中可能并無(wú)異常,但由于某些參數(shù)的微小變化,就會(huì)導(dǎo)致電平不能正常識(shí)別。圖4標(biāo)示了模塊TXD輸入高電平的最低值0.7VCC,如小于該值,則存在風(fēng)險(xiǎn)。
解決方法:選擇3.3V模塊匹配3.3V MCU,或增加電平轉(zhuǎn)換電路。
圖4 CAN模塊輸入?yún)?shù)
5.近距離通信正常,遠(yuǎn)距離無(wú)法通信。
可能原因:a. CAN速率過(guò)高。由于CAN總線的仲裁機(jī)理,其對(duì)延時(shí)有著非常嚴(yán)格的要求。線纜延時(shí)的存在,使得導(dǎo)線長(zhǎng)度制約著實(shí)際應(yīng)用中CAN的最高工作速率。CAN速率與通信距離成反比,速率越高,通信距離越短。b. 線纜阻抗大,遠(yuǎn)端信號(hào)幅值過(guò)低。
解決方法:
a.降低速率,或縮短總線長(zhǎng)度,可參考圖5線纜長(zhǎng)度與波特率的關(guān)系;
b.換用阻抗小的電線纜,或適當(dāng)增大終端電阻值,可參考圖6線纜長(zhǎng)度與直流參數(shù)推薦。