新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > CAN標準中的時鐘容差修正建議

        CAN標準中的時鐘容差修正建議

        ——
        作者: 時間:2010-01-25 來源:電子產品世界 收藏

          是事件觸發的通信協議,它用標識符(ID)的無損仲裁方法調度不同消息的傳送。仲裁依靠的是位值,因此位值采樣準確性很重要。為在所有節點得到相同的準確的采樣,位時間的同步就是關鍵。正常傳送中也要克服節點間差造成的采樣點變動,減少讀出時的錯誤。但是位時間能否實現同步,取決于的偏差。為此標準規定了容差的計算方法。現在發現,標準規定的計算公式不夠用,它會影響應用的可靠性。特別是汽車工業常用的標準兒939是基于 2.0B的,時鐘容差對CAN 2.OB的影響較大,因此對此加以修正非常重要。對于標準的完整理解不僅與應用有直接關系,對進一步提高CAN性能也會有新的啟示。

        本文引用地址:http://www.104case.com/article/103911.htm

          1 ISO 1 1898-1:2003關于時鐘容差的規定

          ISO 11898-1:2003第12.4.1.2款規定位時間單位為Tq,它是可組態的參數。1位共有NTQ(8~25)個Tq,Tq由振蕩器分頻而得,受硬件的振蕩器與分頻器資源所限,其選擇有限。每1位分成4段:同步段S(Tq)、傳輸段Pr(Tq~8Tq)、緩沖1段P1(Tq~8Tq)和緩沖2段P2(Tq~8 Tq),它們都是可組態的參數。位值的采樣在P1與P2的分界處。CAN將同步分為2種:硬同步和重同步。總線空閑時開始新幀SOF的隱位到顯位的跳變沿(R/D跳變沿)引起硬同步,立即復位本地位時間到S段。在幀傳送中的R/D跳變沿引起重同步,跳變沿落在上一位采樣后的P2段時將該P2縮短,跳變沿落在S后時加長本位P1的長度,此時本地位時間修正的最大絕對量不超過SJW(重同步跳轉寬度)的值。SJW是1個組態參數,在Tq~4 Tq之間。關于CAN位時間與同步的一些較為深入的探討可參見參考文獻。

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

          ①正常傳送時由于CAN填充位規則,重同步的距離最多為10位。為同步正確,有:

          (2×△f)×10×NBTSJW (1)

          其中,NBT為標稱位時間。

          ②出錯時,有錯的節點要發報錯幀。為了區分是本地錯還是全局錯,要考察發出主動報錯標志后的第7位是否還是顯位。由于出錯前可能有6位顯位,所以2個同步段S相隔13位。容許的差小于緩沖段長:

          (2×△f)×(13×NBT-P2)MIN(P1,P2) (2)

          在2個不等式中選最小者為本應用的時鐘容差。例如Tbit=1 000 ns,總線長20 m,收發器的延遲為150 ns時,整個傳輸延遲為Tprop=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 發送器時鐘同步中產生的問題

          CAN總線具有顯位優先于隱位的特性,即當總線上有多個節點同時發送時,只要有1個節點發的是顯位,總線上最終的結果就是顯位。所以當2個相距有一定距離的節點同時發送顯位時,由于傳輸需要時間,在一個節點處看不到另一個節點的R/D跳變沿(如圖1所示,e為同步的相位差),因為總線的電平早已被該節點置為顯位。

          

         

          在這種情況下,節點A、B即使時鐘有差別,也無法建立同步。設A比B快,僅當節點A的同步段S比節點B的同步段S越來越超前,且其超前量大于傳輸時間時,節點B才能看見A的R/D跳變沿,B才會開始進行同步。

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

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

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

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



        關鍵詞: CAN 時鐘

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 黄山市| 韶关市| 天长市| 蓬溪县| 通道| 高青县| 湟中县| 枞阳县| 襄城县| 清涧县| 集安市| 望江县| 新郑市| 尤溪县| 宿松县| 彭泽县| 泰和县| 绥芬河市| 建昌县| 怀柔区| 镇坪县| 桃江县| 枝江市| 包头市| 奎屯市| 南川市| 敖汉旗| 盐亭县| 逊克县| 麦盖提县| 祁东县| 铁岭市| 台江县| 兴隆县| 安多县| 新源县| 曲阳县| 密云县| 河北区| 邮箱| 徐水县|