調(diào)用接口異常是什么意思
CAN總線應(yīng)用環(huán)境復(fù)雜多樣,可能會(huì)出現(xiàn)各種異常情況。本文列舉了常見的CAN接口異常情況及解決方法,幫您更加高效地分析及解決CAN接口應(yīng)用問題。
1、兩個(gè)節(jié)點(diǎn)近距離測試,低波特率通信正常,高波特率無法通信。
可能原因:未加終端電阻。由于CAN收發(fā)芯片內(nèi)部CANH、CANL引腳為開漏驅(qū)動(dòng),如圖1,在顯性狀態(tài)期間,總線的寄生電容會(huì)被充電,而在恢復(fù)到隱性狀態(tài)時(shí),這些電容需要放電。如果CANH、CANL之間沒有放置任何阻性負(fù)載,電容只能通過收發(fā)器內(nèi)部阻值較大的差分電阻放電。如果放電速度過慢,就會(huì)出現(xiàn)通信問題。
解決方法:增加終端電阻。
圖1 CAN收發(fā)器結(jié)構(gòu)示意圖
2、組網(wǎng)節(jié)點(diǎn)數(shù)少,通信正常,增加節(jié)點(diǎn)后,通信異常。
可能原因:總線電容過大??偩€電容過大會(huì)影響CAN差分波形上升下降速度,如圖2。
解決方法:a. 檢查CAN節(jié)點(diǎn)接口的外圍電路,是否有外加電容、TVS管等器件,適當(dāng)去除,以降低電容。b. 降低工作波特率。波特率降低可以延長位時(shí)間,減小電容的影響,但若電容過大,則不一定有效。
圖2 總線電容影響波形圖
3、應(yīng)用中易損壞,更換模塊后正常。
可能原因:保護(hù)不足。CAN模塊由于體積受限,內(nèi)部保護(hù)電路等級不高。在一些環(huán)境惡劣的應(yīng)用現(xiàn)場,干擾能量過大易造成損壞。
解決方法:根據(jù)損壞情況適當(dāng)增加保護(hù)電路。圖3是推薦的典型保護(hù)電路圖,電源端口有TVS保護(hù),CAN接口有三級電路保護(hù),可以抑制大能量的雷擊浪涌。
圖3 典型保護(hù)電路
4、5V模塊匹配3.3V MCU,錯(cuò)誤幀多或發(fā)不出數(shù)據(jù)。
可能原因:電平不匹配。5V模塊匹配3.3V MCU在測試中可能并無異常,但由于某些參數(shù)的微小變化,就會(huì)導(dǎo)致電平不能正常識別。圖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)距離無法通信。
可能原因:a. CAN速率過高。由于CAN總線的仲裁機(jī)理,其對延時(shí)有著非常嚴(yán)格的要求。線纜延時(shí)的存在,使得導(dǎo)線長度制約著實(shí)際應(yīng)用中CAN的最高工作速率。CAN速率與通信距離成反比,速率越高,通信距離越短。b. 線纜阻抗大,遠(yuǎn)端信號幅值過低。
解決方法:a.降低速率,或縮短總線長度,可參考圖5線纜長度與波特率的關(guān)系。b.換用阻抗小的電線纜,或適當(dāng)增大終端電阻值,可參考圖6線纜長度與直流參數(shù)推薦。
圖5 線纜長度與波特率的關(guān)系
圖6 線纜長度與直流參數(shù)推薦
當(dāng)通過現(xiàn)有信息無法判斷問題所在時(shí),則需要對CAN接口進(jìn)行測試,定位問題點(diǎn)。已推測出問題所在時(shí),也可以對CAN接口進(jìn)行測試,以驗(yàn)證推測與解決效果。
1、阻抗測量
在產(chǎn)品斷電、或從PCB卸下后,使用數(shù)字萬用表測量模塊各引腳阻抗是否異常,如圖7。若出現(xiàn)短路情況,說明模塊或相關(guān)聯(lián)電路有損壞現(xiàn)象。
測試時(shí),TXD、RXD、VCC以GND為參考;CANH、CANL以CANG為參考。
圖7 阻抗測量示意
2、檢測模塊供電電壓
產(chǎn)品上電,使用數(shù)字萬用表測量模塊VCC-GND之間電壓,電壓應(yīng)該在模塊正常供電范圍內(nèi),如圖8。若電壓值明顯低于正常范圍,且模塊發(fā)熱嚴(yán)重,則內(nèi)部可能存在短路情況。若模塊發(fā)熱量正常(常規(guī)溫升15℃),則需要檢查外部供電電路是否異常。
圖8 供電測試示意圖
3、檢測發(fā)送波形
使用示波器測試TXD引腳,以及CANH、CANL的差分波形,檢查波形的幅值大小、波特率、波形質(zhì)量、TXD和CAN差分波形是否對應(yīng)等,如圖9、圖10。
圖9 發(fā)送波形測試示意圖
圖10 TXD與CAN差分波形
4、檢測接收波形
使用示波器測試RXD引腳,以及CANH、CANL的差分波形,檢查波形的幅值大小、波特率、波形質(zhì)量、RXD和CAN差分波形是否對應(yīng)等,如圖11、圖12。
圖11 接收波形測試示意圖
圖12 CAN差分與RXD波形圖
5、檢測CAN總線波形
使用示波器測試CANH、CANL的波形,檢查顯性電平、隱性電平、位時(shí)間等參數(shù)是否正確。如圖13、圖14。
圖13 CAN總線波形測試示意圖
圖14 CANH、CANL總線波形
如果經(jīng)過以上測試,均未發(fā)現(xiàn)CAN收發(fā)器異常情況,則可基本排除硬件問題,進(jìn)一步分析需要進(jìn)行軟件層面的故障排查。