CAN標(biāo)準(zhǔn)中的時(shí)鐘容差修正建議 - 電子發(fā)燒友網(wǎng)
1 ISO 1 1898-1:2003關(guān)于時(shí)鐘容差的規(guī)定
本文引用地址:http://butianyuan.cn/article/201612/329404.htmISO 11898-1:2003第12.4.1.2款規(guī)定位時(shí)間單位為T(mén)q,它是可組態(tài)的參數(shù)。1位共有NTQ(8~25)個(gè)Tq,Tq由振蕩器分頻而得,受硬件的振蕩器與分頻器資源所限,其選擇有限。每1位分成4段:同步段S(Tq)、傳輸段Pr(Tq~8Tq)、緩沖1段P1(Tq~8Tq)和緩沖2段 P2(Tq~8 Tq),它們都是可組態(tài)的參數(shù)。位值的采樣在P1與P2的分界處。CAN將同步分為2種:硬同步和重同步。總線空閑時(shí)開(kāi)始新幀SOF的隱位到顯位的跳變沿 (R/D跳變沿)引起硬同步,立即復(fù)位本地位時(shí)間到S段。在幀傳送中的R/D跳變沿引起重同步,跳變沿落在上一位采樣后的P2段時(shí)將該P(yáng)2縮短,跳變沿落在S后時(shí)加長(zhǎng)本位P1的長(zhǎng)度,此時(shí)本地位時(shí)間修正的最大絕對(duì)量不超過(guò)SJW(重同步跳轉(zhuǎn)寬度)的值。SJW是1個(gè)組態(tài)參數(shù),在Tq~4 Tq之間。關(guān)于CAN位時(shí)間與同步的一些較為深入的探討可參見(jiàn)參考文獻(xiàn)。
在CAN標(biāo)準(zhǔn)中,采用振蕩器容差這一術(shù)語(yǔ)來(lái)代表時(shí)鐘容差。實(shí)際實(shí)現(xiàn)時(shí),有的實(shí)現(xiàn)方案用振蕩器加鎖相環(huán)構(gòu)成時(shí)鐘,此時(shí)CAN的時(shí)鐘偏差就由2部分構(gòu)成。為了與標(biāo)準(zhǔn)文字一致,本文不把時(shí)鐘容差與振蕩器容差嚴(yán)格區(qū)分。將振蕩器的頻率相對(duì)誤差表示為△,時(shí),按ISO11898-1的12.4.2.5款規(guī)定,它的約束有2條。
?、僬魉蜁r(shí)由于CAN填充位規(guī)則,重同步的距離最多為10位。為同步正確,有:
(2×△f)×10×NBT
其中,NBT為標(biāo)稱(chēng)位時(shí)間。
?、诔鲥e(cuò)時(shí),有錯(cuò)的節(jié)點(diǎn)要發(fā)報(bào)錯(cuò)幀。為了區(qū)分是本地錯(cuò)還是全局錯(cuò),要考察發(fā)出主動(dòng)報(bào)錯(cuò)標(biāo)志后的第7位是否還是顯位。由于出錯(cuò)前可能有6位顯位,所以2個(gè)同步段S相隔13位。容許的差小于緩沖段長(zhǎng):
(2×△f)×(13×NBT-P2)
在2個(gè)不等式中選最小者為本應(yīng)用的時(shí)鐘容差。例如Tbit=1 000 ns,總線長(zhǎng)20 m,收發(fā)器的延遲為150 ns時(shí),整個(gè)傳輸延遲為T(mén)prop=500 ns,取Tq=125 ns,算出Pr=4,P1=1,P2=2,SJW=1,NBT=8。由上述二式算出的△f分別為0.006 25和0.004 90,取其中小者0.004 90,即接近0.5%。
2 發(fā)送器時(shí)鐘同步中產(chǎn)生的問(wèn)題
CAN總線具有顯位優(yōu)先于隱位的特性,即當(dāng)總線上有多個(gè)節(jié)點(diǎn)同時(shí)發(fā)送時(shí),只要有1個(gè)節(jié)點(diǎn)發(fā)的是顯位,總線上最終的結(jié)果就是顯位。所以當(dāng)2個(gè)相距有一定距離的節(jié)點(diǎn)同時(shí)發(fā)送顯位時(shí),由于傳輸需要時(shí)間,在一個(gè)節(jié)點(diǎn)處看不到另一個(gè)節(jié)點(diǎn)的R/D跳變沿(如圖1所示,e為同步的相位差),因?yàn)榭偩€的電平早已被該節(jié)點(diǎn)置為顯位。
在這種情況下,節(jié)點(diǎn)A、B即使時(shí)鐘有差別,也無(wú)法建立同步。設(shè)A比B快,僅當(dāng)節(jié)點(diǎn)A的同步段S比節(jié)點(diǎn)B的同步段S越來(lái)越超前,且其超前量大于傳輸時(shí)間時(shí),節(jié)點(diǎn)B才能看見(jiàn)A的R/D跳變沿,B才會(huì)開(kāi)始進(jìn)行同步。
現(xiàn)在分析2個(gè)發(fā)送器在仲裁區(qū)的同步問(wèn)題。假定它們看到總線空閑并同時(shí)開(kāi)始發(fā)送,它們的ID只是最后1位不同。有文獻(xiàn)介紹發(fā)送節(jié)點(diǎn)同步過(guò)程時(shí),假定總線空閑時(shí)有1個(gè)發(fā)送器領(lǐng)先于其他發(fā)送器,且超過(guò)Pr/2段發(fā)送的情況。由于事件發(fā)生的隨機(jī)性,這只是特例。對(duì)于定時(shí)消息,它們由本節(jié)點(diǎn)的時(shí)鐘觸發(fā)。但本地時(shí)鐘問(wèn)并無(wú)同步,它們之間又存在頻率差異,所以定時(shí)消息規(guī)定應(yīng)發(fā)出的時(shí)間的相位差會(huì)周期性地變化。1個(gè)發(fā)送器領(lǐng)先所有其他發(fā)送器的情況也只是特例。在本文假設(shè)下,由于在ID前各位出現(xiàn)的R/D跳變沿均未被對(duì)方看見(jiàn),它們之間沒(méi)有同步關(guān)系。到最后1位,假定時(shí)鐘慢的節(jié)點(diǎn)有顯位而時(shí)鐘快的節(jié)點(diǎn)有隱位,并假定ID前 1位是隱位,那么慢節(jié)點(diǎn)的R/D跳變沿將可能被快的節(jié)點(diǎn)看到。但是,它將有很大的相位差,可能已經(jīng)超過(guò)了重同步跳轉(zhuǎn)寬度SJW,從而無(wú)法使該快節(jié)點(diǎn)正確同步,便會(huì)導(dǎo)致采樣在慢節(jié)點(diǎn)送來(lái)的電平尚未穩(wěn)定的地方產(chǎn)生位值讀錯(cuò)。
在CAN 2.0B的29位ID的最后1位,即仲裁域的第31位,由于可能還有7個(gè)填充位,即已有37位未進(jìn)行同步。為了采樣正確,未同步時(shí)快慢發(fā)送節(jié)點(diǎn)同步段的差應(yīng)小于重同步跳轉(zhuǎn)寬度SJW:
(2×△f)×37×NBT≤SJW (3)
以前述例子的數(shù)據(jù),NBT=8,SJW=1,得△f≤0.001 68,減小了很多。
由于接近快節(jié)點(diǎn)的接收器均能見(jiàn)到快節(jié)點(diǎn)的R/D跳變沿,它們已按快節(jié)點(diǎn)進(jìn)行了同步。最后,它們要按未曾同步的慢節(jié)點(diǎn)進(jìn)行同步,同樣會(huì)遇到相位差很大時(shí)的同步問(wèn)題。如果ID最后第2位已是顯位,那么快節(jié)點(diǎn)將見(jiàn)不到慢節(jié)點(diǎn)的跳變沿,因?yàn)榇藭r(shí)并不存在可供同步的R/D跳變沿,在仲裁域內(nèi)快節(jié)點(diǎn)以及附近已與它同步的接收器將完全無(wú)法與慢節(jié)點(diǎn)同步。它們將按自己原來(lái)的相位及位時(shí)間進(jìn)行采樣。最壞的情況下,要再經(jīng)過(guò)7位可以見(jiàn)到慢節(jié)點(diǎn)的下一個(gè)R/D跳變沿,如圖2所示。
在仲裁域內(nèi)未能見(jiàn)到跳變沿的發(fā)送器此時(shí)已變?yōu)榻邮芷鳎m然如此,若在后面的跳變沿能保證正確同步的話,那么在仲裁域中采樣點(diǎn)的偏移就更小,應(yīng)該能保證采樣的正確,即仲裁的正確。此時(shí)仲裁域內(nèi)未同步最多為40位(含可能的8位填充位),隨后最近的跳變沿在6位后,于是為了能正確采樣,應(yīng)該有:
(2×△f)×46×NBT≤SJW (4)
仍以第一部分中例子的數(shù)據(jù),NBT=8,SJW=1,可得△f≤0.001 35,又小了一些。如果在某系統(tǒng)中有NBT=25,SJW=1,可得△f≤0.00043。這是相當(dāng)小的值。
根據(jù)上述分析,最壞的情況是(4)式。對(duì)于CAN2.0 A,對(duì)應(yīng)可以導(dǎo)出最壞情況為:
(2×△f)×21×NBT≤SJW (5)
如果傳輸時(shí)間比較短,慢節(jié)點(diǎn)已按快節(jié)點(diǎn)延遲Pr/2后進(jìn)行了同步,那么在慢節(jié)點(diǎn)最后勝出的那一位,快節(jié)點(diǎn)將見(jiàn)到e=Pr的來(lái)自慢節(jié)點(diǎn)的同步沿。為能保證同步,至少應(yīng)有:
Pr≤SJW (6)
如果(6)式滿(mǎn)足,就可以發(fā)生同步。例如在傳輸延遲占位時(shí)間份額小的系統(tǒng),用原ISO11898-1的算式。使用中,讀取ACK位時(shí),最壞的同步沿將相隔 11位(CRC分界符不在填充位規(guī)則內(nèi)),(1)式還應(yīng)該修改。如不滿(mǎn)足(6)式,例如高速系統(tǒng),就應(yīng)考慮(4)或(5)式。ISO11898-1應(yīng)添加上述內(nèi)容。一般地說(shuō),(4)、(5)式比(1)、(2)式要求嚴(yán)格,如需要簡(jiǎn)化,用它們就足夠了。例如對(duì)于CAN2.0A,用前面例子的數(shù)據(jù),NBT=8,SJW=1,由(5)式可得△f≤0.002 97,也優(yōu)于原來(lái)的0.004 90。
3 ISO 16845:2004應(yīng)添加的條款
ISO16845關(guān)于發(fā)送器時(shí)間同步相關(guān)功能的一致性測(cè)試條款共9項(xiàng)(8.7.1~8.7.9),其中用于有相位差的重同步僅2項(xiàng):8.7.4款,當(dāng) e<0且|e|≤SJW時(shí)的同步;8.7.5款,當(dāng)P<0且e>SJW時(shí)的同步。由第2部分的分析可知,發(fā)送器在仲裁中退出的最后一位是需要進(jìn)行同步的,此時(shí)它還是發(fā)送器狀態(tài)。只有同步以后,才能正確采樣,決定是否退出并保證退出以后能正確跟蹤勝出的發(fā)送器。因此,需要添加 e>O,且| e |≤SJW,以及e>0,且| e |>SJW時(shí)的測(cè)試條款。這些條款可以參考接收器的相應(yīng)條款(7.7.3和7.7.4)。
ISO 16845中的低層測(cè)試設(shè)備LT是專(zhuān)用設(shè)備,它與被測(cè)的CAN(稱(chēng)為被測(cè)試的實(shí)現(xiàn)IUT)的Tx、Rx相連,LT產(chǎn)生必要的輸入條件到Rx,然后從Tx測(cè)取IUT的反應(yīng)是否合格。非測(cè)試輸入時(shí)LT不應(yīng)影響IUT。以e>O且|e|>SJW時(shí)的測(cè)試為例,安排IUT發(fā)1幀在ID域帶填充位為顯位的幀。當(dāng)發(fā)到第5個(gè)隱位時(shí),LT延遲e將Rx變?yōu)轱@位,然后在延遲后的新采樣點(diǎn)(原P1+SJW)處為Rx建1個(gè)隱位值,此時(shí)IUT的輸出Tx將在LT提供的R/D跳變沿后一位按同步規(guī)則提供顯位,如圖3所示。上述測(cè)試設(shè)計(jì)基于如下原理:如果IUT動(dòng)作正常,它將同步于LT提供的R/D跳變沿,并采到LT 提供的隱位,這時(shí)發(fā)出它的下一個(gè)填充位,填充位的R/D跳變沿已被IUT先前的同步所移動(dòng)。如果同步不正常,或者跳轉(zhuǎn)的量不對(duì),IUT將采到顯位,它會(huì)仲裁失敗而退出,不會(huì)再發(fā)送。測(cè)試的P的范圍是(SJW+1)~(NBT-P2-1)。這個(gè)設(shè)計(jì)不同于標(biāo)準(zhǔn)的7.7.4款。筆者認(rèn)為7.7.4款的方法是不能達(dá)到目的的,該問(wèn)題的詳細(xì)討論超出了本文的范圍,不再贅述。
需要指出的是,8.7.2款中的正在發(fā)送顯位的發(fā)送器,將不對(duì)e>0的R/D跳變沿作同步。這個(gè)要求與本文所述e>0時(shí)的同步問(wèn)題是不同的。本文講的是發(fā)送器發(fā)隱位,它見(jiàn)到了其他發(fā)送器的R/D跳變沿;而8.7.2款只是描述CAN芯片的Tx、Rx分開(kāi)作輸出、輸入測(cè)試時(shí)的特性,實(shí)際應(yīng)用時(shí)是分不開(kāi)的,不會(huì)遇到這種情形。
4 小 結(jié)
CAN的一般技術(shù)資料均提到,高速時(shí)的可靠性要比低速時(shí)的差,應(yīng)用中能用低速就用低速。從上述位同步時(shí)鐘容差的分析可知,高速時(shí)時(shí)鐘容差小,所以一旦時(shí)鐘有問(wèn)題就會(huì)影響同步與采樣。CAN標(biāo)準(zhǔn)ISO11898-1:2003僅考慮了部分場(chǎng)合的要求,對(duì)發(fā)送器仲裁階段未能同步的情況未作考慮,從而給出的容差結(jié)果偏寬,設(shè)計(jì)者有可能依此選用不合適的振蕩源,造成電子控制器(ECU)可靠性不夠。例如,現(xiàn)在已經(jīng)有一些精度接近0.3%~2%的可修正的RC或 CMOS振蕩器,它們價(jià)格低,接近原CAN標(biāo)準(zhǔn)設(shè)計(jì)的容差,有可能被不適當(dāng)?shù)剡x用。所以對(duì)標(biāo)準(zhǔn)加以補(bǔ)充是十分必要的。隨著CAN應(yīng)用的擴(kuò)展,提高CAN工作頻率的努力也在繼續(xù)。一方面,有些應(yīng)用可縮短傳送距離以使傳輸時(shí)間縮短,例如機(jī)器人、武器等;另一方面,CAN的性?xún)r(jià)比高,對(duì)這類(lèi)應(yīng)用有吸引力,在傳輸時(shí)間接近臨界情況的場(chǎng)合,更要注意時(shí)鐘容差的問(wèn)題。
從另一個(gè)角度考慮解決問(wèn)題的可能性是:將仲裁域中及仲裁后的第1個(gè)同步沿發(fā)送器與接收器的同步均設(shè)為硬同步。這種做法可以改善同步以后的采樣,但對(duì)同步以前的采樣沒(méi)有改善,它們?nèi)匀灰筝^高精度的時(shí)鐘來(lái)保證采樣點(diǎn)在緩沖段P1、P2之內(nèi)。而且,過(guò)多的硬同步增加了對(duì)干擾進(jìn)行不必要同步的機(jī)會(huì),反而不是好事。因此這種方案是無(wú)價(jià)值的。
從分析可知,當(dāng)重同步跳轉(zhuǎn)寬度SJW可選得較大時(shí),容許的時(shí)鐘偏差就較大。不受限制的SJW相當(dāng)于隨時(shí)執(zhí)行硬同步,小于P1、P2的SJW就使采樣點(diǎn)的變動(dòng)較小。當(dāng)總線上由于干擾出現(xiàn)假的R/D跳變沿,就會(huì)引起錯(cuò)誤的重同步,小的SJW有助于降低讀錯(cuò)概率。因此,兼顧減少出錯(cuò)率與降低時(shí)鐘容錯(cuò)限的要求,關(guān)鍵是設(shè)計(jì)一種性?xún)r(jià)比好的濾除干擾的辦法。
評(píng)論