<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > CAN標準中的時(shí)鐘容差修正建議 - 電子發(fā)燒友網(wǎng)

CAN標準中的時(shí)鐘容差修正建議 - 電子發(fā)燒友網(wǎng)

作者: 時(shí)間:2016-12-13 來(lái)源:網(wǎng)絡(luò ) 收藏
 CAN是事件觸發(fā)的通信協(xié)議,它用標識符(ID)的無(wú)損仲裁方法調度不同消息的傳送。仲裁依靠的是位值,因此位值采樣準確性很重要。為在所有節點(diǎn)得到相同的準確的采樣,位時(shí)間的同步就是關(guān)鍵。正常傳送中也要克服節點(diǎn)間時(shí)鐘差造成的采樣點(diǎn)變動(dòng),減少讀出時(shí)的錯誤。但是位時(shí)間能否實(shí)現同步,取決于時(shí)鐘的偏差。為此CAN標準規定了時(shí)鐘容差的計算方法?,F在發(fā)現,標準規定的計算公式不夠用,它會(huì )影響應用的可靠性。特別是汽車(chē)工業(yè)常用的標準兒939是基于CAN 2.0B的,時(shí)鐘容差對CAN 2.OB的影響較大,因此對此加以修正非常重要。對于標準的完整理解不僅與應用有直接關(guān)系,對進(jìn)一步提高CAN性能也會(huì )有新的啟示。

  1 ISO 1 1898-1:2003關(guān)于時(shí)鐘容差的規定

本文引用地址:http://dyxdggzs.com/article/201612/329404.htm

  ISO 11898-1:2003第12.4.1.2款規定位時(shí)間單位為T(mén)q,它是可組態(tài)的參數。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)的參數。位值的采樣在P1與P2的分界處。CAN將同步分為2種:硬同步和重同步。總線(xiàn)空閑時(shí)開(kāi)始新幀SOF的隱位到顯位的跳變沿 (R/D跳變沿)引起硬同步,立即復位本地位時(shí)間到S段。在幀傳送中的R/D跳變沿引起重同步,跳變沿落在上一位采樣后的P2段時(shí)將該P2縮短,跳變沿落在S后時(shí)加長(cháng)本位P1的長(cháng)度,此時(shí)本地位時(shí)間修正的最大絕對量不超過(guò)SJW(重同步跳轉寬度)的值。SJW是1個(gè)組態(tài)參數,在Tq~4 Tq之間。關(guān)于CAN位時(shí)間與同步的一些較為深入的探討可參見(jiàn)參考文獻。

  在CAN標準中,采用振蕩器容差這一術(shù)語(yǔ)來(lái)代表時(shí)鐘容差。實(shí)際實(shí)現時(shí),有的實(shí)現方案用振蕩器加鎖相環(huán)構成時(shí)鐘,此時(shí)CAN的時(shí)鐘偏差就由2部分構成。為了與標準文字一致,本文不把時(shí)鐘容差與振蕩器容差嚴格區分。將振蕩器的頻率相對誤差表示為△,時(shí),按ISO11898-1的12.4.2.5款規定,它的約束有2條。

 ?、僬魉蜁r(shí)由于CAN填充位規則,重同步的距離最多為10位。為同步正確,有:

  (2×△f)×10×NBT

  其中,NBT為標稱(chēng)位時(shí)間。

 ?、诔鲥e時(shí),有錯的節點(diǎn)要發(fā)報錯幀。為了區分是本地錯還是全局錯,要考察發(fā)出主動(dòng)報錯標志后的第7位是否還是顯位。由于出錯前可能有6位顯位,所以2個(gè)同步段S相隔13位。容許的差小于緩沖段長(cháng):

  (2×△f)×(13×NBT-P2)

  在2個(gè)不等式中選最小者為本應用的時(shí)鐘容差。例如Tbit=1 000 ns,總線(xiàn)長(chá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總線(xiàn)具有顯位優(yōu)先于隱位的特性,即當總線(xiàn)上有多個(gè)節點(diǎn)同時(shí)發(fā)送時(shí),只要有1個(gè)節點(diǎn)發(fā)的是顯位,總線(xiàn)上最終的結果就是顯位。所以當2個(gè)相距有一定距離的節點(diǎn)同時(shí)發(fā)送顯位時(shí),由于傳輸需要時(shí)間,在一個(gè)節點(diǎn)處看不到另一個(gè)節點(diǎn)的R/D跳變沿(如圖1所示,e為同步的相位差),因為總線(xiàn)的電平早已被該節點(diǎn)置為顯位。

  在這種情況下,節點(diǎn)A、B即使時(shí)鐘有差別,也無(wú)法建立同步。設A比B快,僅當節點(diǎn)A的同步段S比節點(diǎn)B的同步段S越來(lái)越超前,且其超前量大于傳輸時(shí)間時(shí),節點(diǎn)B才能看見(jiàn)A的R/D跳變沿,B才會(huì )開(kāi)始進(jìn)行同步。

  現在分析2個(gè)發(fā)送器在仲裁區的同步問(wèn)題。假定它們看到總線(xiàn)空閑并同時(shí)開(kāi)始發(fā)送,它們的ID只是最后1位不同。有文獻介紹發(fā)送節點(diǎn)同步過(guò)程時(shí),假定總線(xiàn)空閑時(shí)有1個(gè)發(fā)送器領(lǐng)先于其他發(fā)送器,且超過(guò)Pr/2段發(fā)送的情況。由于事件發(fā)生的隨機性,這只是特例。對于定時(shí)消息,它們由本節點(diǎn)的時(shí)鐘觸發(fā)。但本地時(shí)鐘問(wèn)并無(wú)同步,它們之間又存在頻率差異,所以定時(shí)消息規定應發(fā)出的時(shí)間的相位差會(huì )周期性地變化。1個(gè)發(fā)送器領(lǐng)先所有其他發(fā)送器的情況也只是特例。在本文假設下,由于在ID前各位出現的R/D跳變沿均未被對方看見(jiàn),它們之間沒(méi)有同步關(guān)系。到最后1位,假定時(shí)鐘慢的節點(diǎn)有顯位而時(shí)鐘快的節點(diǎn)有隱位,并假定ID前 1位是隱位,那么慢節點(diǎn)的R/D跳變沿將可能被快的節點(diǎn)看到。但是,它將有很大的相位差,可能已經(jīng)超過(guò)了重同步跳轉寬度SJW,從而無(wú)法使該快節點(diǎn)正確同步,便會(huì )導致采樣在慢節點(diǎn)送來(lái)的電平尚未穩定的地方產(chǎn)生位值讀錯。

在CAN 2.0B的29位ID的最后1位,即仲裁域的第31位,由于可能還有7個(gè)填充位,即已有37位未進(jìn)行同步。為了采樣正確,未同步時(shí)快慢發(fā)送節點(diǎn)同步段的差應小于重同步跳轉寬度SJW:


  (2×△f)×37×NBT≤SJW (3)

  以前述例子的數據,NBT=8,SJW=1,得△f≤0.001 68,減小了很多。

  由于接近快節點(diǎn)的接收器均能見(jiàn)到快節點(diǎn)的R/D跳變沿,它們已按快節點(diǎn)進(jìn)行了同步。最后,它們要按未曾同步的慢節點(diǎn)進(jìn)行同步,同樣會(huì )遇到相位差很大時(shí)的同步問(wèn)題。如果ID最后第2位已是顯位,那么快節點(diǎn)將見(jiàn)不到慢節點(diǎn)的跳變沿,因為此時(shí)并不存在可供同步的R/D跳變沿,在仲裁域內快節點(diǎn)以及附近已與它同步的接收器將完全無(wú)法與慢節點(diǎn)同步。它們將按自己原來(lái)的相位及位時(shí)間進(jìn)行采樣。最壞的情況下,要再經(jīng)過(guò)7位可以見(jiàn)到慢節點(diǎn)的下一個(gè)R/D跳變沿,如圖2所示。

  在仲裁域內未能見(jiàn)到跳變沿的發(fā)送器此時(shí)已變?yōu)榻邮芷?,雖然如此,若在后面的跳變沿能保證正確同步的話(huà),那么在仲裁域中采樣點(diǎn)的偏移就更小,應該能保證采樣的正確,即仲裁的正確。此時(shí)仲裁域內未同步最多為40位(含可能的8位填充位),隨后最近的跳變沿在6位后,于是為了能正確采樣,應該有:

  (2×△f)×46×NBT≤SJW (4)

  仍以第一部分中例子的數據,NBT=8,SJW=1,可得△f≤0.001 35,又小了一些。如果在某系統中有NBT=25,SJW=1,可得△f≤0.00043。這是相當小的值。

  根據上述分析,最壞的情況是(4)式。對于CAN2.0 A,對應可以導出最壞情況為:

  (2×△f)×21×NBT≤SJW (5)

  如果傳輸時(shí)間比較短,慢節點(diǎn)已按快節點(diǎn)延遲Pr/2后進(jìn)行了同步,那么在慢節點(diǎn)最后勝出的那一位,快節點(diǎn)將見(jiàn)到e=Pr的來(lái)自慢節點(diǎn)的同步沿。為能保證同步,至少應有:

  Pr≤SJW (6)

  如果(6)式滿(mǎn)足,就可以發(fā)生同步。例如在傳輸延遲占位時(shí)間份額小的系統,用原ISO11898-1的算式。使用中,讀取ACK位時(shí),最壞的同步沿將相隔 11位(CRC分界符不在填充位規則內),(1)式還應該修改。如不滿(mǎn)足(6)式,例如高速系統,就應考慮(4)或(5)式。ISO11898-1應添加上述內容。一般地說(shuō),(4)、(5)式比(1)、(2)式要求嚴格,如需要簡(jiǎn)化,用它們就足夠了。例如對于CAN2.0A,用前面例子的數據,NBT=8,SJW=1,由(5)式可得△f≤0.002 97,也優(yōu)于原來(lái)的0.004 90。

  3 ISO 16845:2004應添加的條款

  ISO16845關(guān)于發(fā)送器時(shí)間同步相關(guān)功能的一致性測試條款共9項(8.7.1~8.7.9),其中用于有相位差的重同步僅2項:8.7.4款,當 e<0且|e|≤SJW時(shí)的同步;8.7.5款,當P<0且e>SJW時(shí)的同步。由第2部分的分析可知,發(fā)送器在仲裁中退出的最后一位是需要進(jìn)行同步的,此時(shí)它還是發(fā)送器狀態(tài)。只有同步以后,才能正確采樣,決定是否退出并保證退出以后能正確跟蹤勝出的發(fā)送器。因此,需要添加 e>O,且| e |≤SJW,以及e>0,且| e |>SJW時(shí)的測試條款。這些條款可以參考接收器的相應條款(7.7.3和7.7.4)。

  ISO 16845中的低層測試設備LT是專(zhuān)用設備,它與被測的CAN(稱(chēng)為被測試的實(shí)現IUT)的Tx、Rx相連,LT產(chǎn)生必要的輸入條件到Rx,然后從Tx測取IUT的反應是否合格。非測試輸入時(shí)LT不應影響IUT。以e>O且|e|>SJW時(shí)的測試為例,安排IUT發(fā)1幀在ID域帶填充位為顯位的幀。當發(fā)到第5個(gè)隱位時(shí),LT延遲e將Rx變?yōu)轱@位,然后在延遲后的新采樣點(diǎn)(原P1+SJW)處為Rx建1個(gè)隱位值,此時(shí)IUT的輸出Tx將在LT提供的R/D跳變沿后一位按同步規則提供顯位,如圖3所示。上述測試設計基于如下原理:如果IUT動(dòng)作正常,它將同步于LT提供的R/D跳變沿,并采到LT 提供的隱位,這時(shí)發(fā)出它的下一個(gè)填充位,填充位的R/D跳變沿已被IUT先前的同步所移動(dòng)。如果同步不正常,或者跳轉的量不對,IUT將采到顯位,它會(huì )仲裁失敗而退出,不會(huì )再發(fā)送。測試的P的范圍是(SJW+1)~(NBT-P2-1)。這個(gè)設計不同于標準的7.7.4款。筆者認為7.7.4款的方法是不能達到目的的,該問(wèn)題的詳細討論超出了本文的范圍,不再贅述。

  需要指出的是,8.7.2款中的正在發(fā)送顯位的發(fā)送器,將不對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)作輸出、輸入測試時(shí)的特性,實(shí)際應用時(shí)是分不開(kāi)的,不會(huì )遇到這種情形。

 4 小 結

  CAN的一般技術(shù)資料均提到,高速時(shí)的可靠性要比低速時(shí)的差,應用中能用低速就用低速。從上述位同步時(shí)鐘容差的分析可知,高速時(shí)時(shí)鐘容差小,所以一旦時(shí)鐘有問(wèn)題就會(huì )影響同步與采樣。CAN標準ISO11898-1:2003僅考慮了部分場(chǎng)合的要求,對發(fā)送器仲裁階段未能同步的情況未作考慮,從而給出的容差結果偏寬,設計者有可能依此選用不合適的振蕩源,造成電子控制器(ECU)可靠性不夠。例如,現在已經(jīng)有一些精度接近0.3%~2%的可修正的RC或 CMOS振蕩器,它們價(jià)格低,接近原CAN標準設計的容差,有可能被不適當地選用。所以對標準加以補充是十分必要的。隨著(zhù)CAN應用的擴展,提高CAN工作頻率的努力也在繼續。一方面,有些應用可縮短傳送距離以使傳輸時(shí)間縮短,例如機器人、武器等;另一方面,CAN的性?xún)r(jià)比高,對這類(lèi)應用有吸引力,在傳輸時(shí)間接近臨界情況的場(chǎng)合,更要注意時(shí)鐘容差的問(wèn)題。

  從另一個(gè)角度考慮解決問(wèn)題的可能性是:將仲裁域中及仲裁后的第1個(gè)同步沿發(fā)送器與接收器的同步均設為硬同步。這種做法可以改善同步以后的采樣,但對同步以前的采樣沒(méi)有改善,它們仍然要求較高精度的時(shí)鐘來(lái)保證采樣點(diǎn)在緩沖段P1、P2之內。而且,過(guò)多的硬同步增加了對干擾進(jìn)行不必要同步的機會(huì ),反而不是好事。因此這種方案是無(wú)價(jià)值的。

  從分析可知,當重同步跳轉寬度SJW可選得較大時(shí),容許的時(shí)鐘偏差就較大。不受限制的SJW相當于隨時(shí)執行硬同步,小于P1、P2的SJW就使采樣點(diǎn)的變動(dòng)較小。當總線(xiàn)上由于干擾出現假的R/D跳變沿,就會(huì )引起錯誤的重同步,小的SJW有助于降低讀錯概率。因此,兼顧減少出錯率與降低時(shí)鐘容錯限的要求,關(guān)鍵是設計一種性?xún)r(jià)比好的濾除干擾的辦法。



關(guān)鍵詞: CAN標準時(shí)鐘容

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>