接觸過CAN總線的小伙伴都知道,在實際項目中CAN總線都需要在首尾兩端各并上一個120Ω的電阻,那么問題來了,為什么一定要120Ω,其他阻值不行嗎?
我們以TJA1044內(nèi)部架構(gòu)圖為例進(jìn)行展開。
CAN總線:顯性代表0,隱性代表1。當(dāng)總線為隱性時:TJA1044內(nèi)部的上下兩個管Q1和Q2都會截止,CANH和CANL處于無源狀態(tài),壓差為0V。當(dāng)總線為顯性時:TJA1044內(nèi)部的上下兩個管Q1和Q2都會導(dǎo)通,CANH和CANL之間差生壓差。如果總線上沒有負(fù)載的時候,而且總線處于隱性時,那總線的差分阻值就會很大,致使外部很微小的能量都可以讓總線進(jìn)入顯性,主要原因在于一般收發(fā)器的顯性最小門限電壓只有500mV左右。所以為了提高總線的抗干擾能力,就需要增加一個終端電阻,但是,這個阻值盡量?。ㄍ瑫r也要考慮不能有過大的電流)。
除此之外,總線上的寄生電容也要考慮在內(nèi)。總線顯性時,電容充電,總線隱性時,電容放電,如果總線沒有并任何的電阻的話,總線只能通過向兩端的收發(fā)器進(jìn)行放電了,這就影響了兩個轉(zhuǎn)態(tài)(隱性和顯性)之間的轉(zhuǎn)換時間,從而出現(xiàn)波形異常(爬坡),如上圖所示。當(dāng)信號在高速傳輸?shù)穆窂街腥绻龅阶杩共贿B續(xù)的情況,就會造成信號發(fā)射,也就是我們說的阻抗不連續(xù),這個現(xiàn)象可以比喻成汽車在道路上行駛的時候遇到道路變窄時,汽車就很容易堵塞。
那加入終端電阻就可以消除或者減小這個信號反射的影響,主要靠終端電阻吸收信號的能量,使得能量不在總線上亂竄。那為什么是120Ω?其實在ISO 11898-2標(biāo)準(zhǔn)文件中就明確定義出,120Ω是通過大量的實驗測試得出的最合理的阻值,如下圖所示:
如果想驗證實際項目中總線需要多大的終端電阻,可以通過下面手段進(jìn)行測試。
在總線上并聯(lián)可調(diào)電阻,通過調(diào)節(jié)可調(diào)電阻,進(jìn)而觀察波形即可。那這個終端電阻的封裝是不是可以隨意定?當(dāng)然不行!這個終端電阻我們在選型時必須要考慮到接口短路的情況,也就是說在短路發(fā)生時,CAN總線的節(jié)點(diǎn)也必須能夠承受的住短路的風(fēng)險,假設(shè)CANH和電源18V發(fā)生了短路,那這個短路電流會直接通過CANH流向CANL,但是一般的CAN收發(fā)器能承受的電流也就幾十ma(收發(fā)器內(nèi)部有限流措施),就比如TJA1145就只有50mA。根據(jù)P=I²*R,可以得到50ma*50ma*120Ω=0.3W。考慮到環(huán)境存在高溫的情況,所以電阻的功率選擇在0.25W是合適的,也就是常見的1206封裝,少數(shù)有0805和0603封裝的。