導(dǎo)讀:CAN總線可謂是非常常用的總線了,但是你有想過(guò)為什么其最高速率只有1Mbps嗎,而不是2Mbps,或者是更高呢?
1、物理定律限制
保證CAN通信安全最大的特點(diǎn)是它的發(fā)送錯(cuò)誤自監(jiān)測(cè)要求:發(fā)送器將要發(fā)送的位電平與總線上檢測(cè)到的位電平進(jìn)行比較。如下圖綠色字。
這使得所有發(fā)送回路必須是帶反饋功能的。即發(fā)送節(jié)點(diǎn)發(fā)出一個(gè)數(shù)據(jù)位,傳播到最遠(yuǎn)的接收節(jié)點(diǎn),等待接收節(jié)點(diǎn)應(yīng)答一個(gè)數(shù)據(jù)位,再傳播到發(fā)送端。電信號(hào)在這個(gè)回路上傳播是有時(shí)間的。物理學(xué)研究結(jié)果,銅線中的電信號(hào)傳播速度大約為2.310(8次方)m/s。
那么,對(duì)于40米長(zhǎng)的電纜,來(lái)回有5ns/m × 40m × 2 = 400ns*的延遲,加上***1.25倍***的設(shè)計(jì)余量,就是**400ns1.25=500ns***,
也就是最大2Mbps。如果是20米長(zhǎng)的電纜,最大4Mbps。但是電纜太短,通信系統(tǒng)的空間規(guī)模就越小。考慮CAN的使用環(huán)境,最大按40ms設(shè)計(jì)。
2、時(shí)鐘源振蕩器頻率限制
按設(shè)計(jì)tbit=8Tq,最小的PSEG1=2, PSEG2=2, PTS=4tbit計(jì)算,如果最大波特率1MHz, 振蕩器頻率≥8×1MHz= 8MHz。如果最大波特率2MHz, 振蕩器頻率≥8×2MHz=16MHz。可見(jiàn),波特率要求越高,時(shí)鐘源振蕩器頻率也要越高。
3、時(shí)鐘源振蕩器頻率誤差的限制
一項(xiàng)新技術(shù)能否普及,成本是很關(guān)鍵的因素。為了節(jié)省線纜成本,CAN通信采用異步傳輸方式,時(shí)鐘信號(hào)由網(wǎng)絡(luò)上每個(gè)ECU自己承擔(dān)。為了保證收發(fā)時(shí)序的同步,所有時(shí)鐘信號(hào)的頻率誤差必須在一定范圍內(nèi)。理論上,通信速率越高,每個(gè)位的時(shí)間越短,則時(shí)鐘頻率也要越高,且誤差越小。首先,CAN在設(shè)計(jì)之初就排除了頻率誤差較大的RC振蕩器(誤差在1%以上)。剩下的有陶瓷諧振器和晶體諧振器(俗稱(chēng)晶振),晶振的頻率誤差更低但是價(jià)格也貴。
“石英晶體振蕩器的核心元件是石英晶體諧振器。陶瓷振蕩器的核心元件是陶瓷諧振器。石英晶體諧振器的頻率穩(wěn)定度高達(dá)百萬(wàn)分之幾(ppm),做成振蕩器其頻率穩(wěn)定度可達(dá)-6量級(jí)。如果是溫補(bǔ)振蕩器也可達(dá)-7量級(jí)。如果是恒溫振蕩器可做到-8~-9量級(jí),多層恒溫振蕩器更可達(dá)到-9量級(jí)。做為系統(tǒng)時(shí)鐘,可以達(dá)到幾百年不差一秒。用作導(dǎo)彈或航天中,可做到飛行上萬(wàn)公里,誤差不到一米。而陶瓷諧振器頻率穩(wěn)定度只有千分之幾。與石英晶體諧振器比顯然差了很多。但陶瓷諧振器的特點(diǎn)是起振容易,且價(jià)格低廉。用在對(duì)時(shí)鐘要求不太高的電路中比石英晶體諧振器在性價(jià)比上有優(yōu)勢(shì)。”
根據(jù)ISO11898-1-2003標(biāo)準(zhǔn)描述,選用N位填充時(shí),頻率誤差df公式如下,
式1),分母中的13意思是選擇5位填充,2*(N+1)+1=2*(5+1)+1。可見(jiàn)填充位的位數(shù)N越大,對(duì)振蕩器的精度要求越高。
分析一下:
設(shè)計(jì)tbit=8Tq,最小的PSEG1=2, PSEG2=2, PTS=4,
帶入公式1,df≤2/(2*(13*8-2)=0.98%=9800ppm。
可見(jiàn),對(duì)于這個(gè)誤差陶瓷諧振器完全滿足。
4、總線傳輸延遲的考慮
在第一個(gè)原因里只考慮了總線上信號(hào)的傳播延遲,事實(shí)上發(fā)送單元,接收單元的芯片處理信號(hào)本身也要時(shí)間。則按照單程5ns/m × 40m = 200ns的時(shí)間還不夠。按照傳播延遲通常有2個(gè)Tq考慮,tbit=8Tq,最小的PSEG1=2, PSEG2=2, PTS=4, 對(duì)于1Mbps, Tq=125us, 2Tq=250us
對(duì)于2Mbps, Tq=62.5us,2Tq=125us
顯然,1MHz的波特率能覆蓋住這個(gè)傳輸延遲時(shí)間。
以下,ISO11898-5-2007標(biāo)準(zhǔn)限制了這個(gè)最大時(shí)間是255ns。
弄明白了嘛,以上四個(gè)原因說(shuō)明了CAN2.0 最大波特率是1Mbps。
來(lái)源:南工問(wèn)天