關(guān) 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > CAN總線位定時參數(shù)的確定

        CAN總線位定時參數(shù)的確定

        作者: 時間:2004-12-07 來源:網(wǎng)絡(luò) 收藏
        摘要:通信中,波特率、位周期內(nèi)取樣點(diǎn)數(shù)和位置可以編程設(shè)置,這些設(shè)置為用戶根據(jù)其應(yīng)用優(yōu)化網(wǎng)絡(luò)通信性能提供了方便。優(yōu)化,能夠保證信息同步,保證傳輸延遲和時鐘誤差在極端條件下進(jìn)行恰當(dāng)?shù)腻e誤檢測。本文說明的確定方法。

        關(guān)鍵詞: 同步 延遲

        引言

        是一種有效支持分布式控制和實(shí)時控制的、多主的異步串行通信網(wǎng)絡(luò)。由于CAN具有較強(qiáng)的糾錯能力,支持差分收發(fā),適合高噪聲環(huán)境,具有較遠(yuǎn)的傳輸距離,并且Philips和Intel等半導(dǎo)體公司都有支持CAN通信協(xié)議的集成器件。CAN總線已經(jīng)在各個領(lǐng)域中得到了廣泛應(yīng)用。

        在CAN通信協(xié)議中規(guī)定,通信波特率、每個位周期的取樣位置和個數(shù),都可以自行設(shè)定。這樣的設(shè)計理念,為用戶在自己的應(yīng)用中,優(yōu)化網(wǎng)絡(luò)通訊性能提供了空間。為了通過設(shè)定位定時來優(yōu)化網(wǎng)絡(luò)通信性能,必須清楚位定時參數(shù)與參考時鐘誤差和系統(tǒng)內(nèi)信號延遲的關(guān)系。如果位周期內(nèi)的取樣位置偏后,將能夠容忍較大的信號傳輸延遲,相應(yīng)的,總線傳輸距離可以延長;而如果周期內(nèi)的取樣位置接近中間,則可以容忍系統(tǒng)的節(jié)點(diǎn)間的參考時鐘誤差。但這顯然是矛盾的,為了協(xié)調(diào)這種矛盾,必須對位定時參數(shù)進(jìn)行優(yōu)化位置。

        圖1 位周期結(jié)構(gòu)圖

        通過對CAN總線位定時參數(shù)進(jìn)行研究,找到矛盾的關(guān)鍵所在,就能夠?qū)ζ溥M(jìn)行優(yōu)化,從而提高通信系統(tǒng)的整體性能。下面以Philips公司的獨(dú)立通信控制器SJA1000為例,進(jìn)行研究。

        1 相關(guān)定義

        1.1 位周期的組成

        波特率(fbit)是指單位時間內(nèi)所傳輸?shù)臄?shù)據(jù)位的數(shù)量,一般取單位時間為1s。波特率由通信線上傳輸?shù)囊粋€數(shù)據(jù)位周期的長度(Tbit)決定,如下式所示。

        Fbit=1/Tbit (1)

        根據(jù)Philips公司的獨(dú)立通信控制器,一個位周期由3個部分組成:同步段(tSYNC_SEG)、相位緩沖段1(tTSEG1)和相位緩沖段2(tTSEG2)。

        Tbit=tSYNC_SEG+tTSEG1+tTSEG2 (2)

        所有這些時間段,都有一個共同的時間單元――系統(tǒng)時鐘周期(TSCL)。具體到SJA1000,TSCL由總線時序寄存器的值來確定。SJA1000有2個總線時序寄存器,即總線時序寄存器0(BTR0)和總線時序寄存器1(BTR1)。這2個寄存器有自己不同的功能定義,共同作用決定總線的通信波特率。

        總線時序寄存器0 定義波特率預(yù)設(shè)值BRP(共6位,取值區(qū)間[1,64]和同步跳轉(zhuǎn)寬度SJW(共2位,取值區(qū)間[1,4])的值。位功能說明如表1所列。

        表1

        bit7bit6bit5bit4bit3bit2bit1bit0
        SJW.1SJW.0BRP.5BRP.4BRP.3BRP.2BRP.1BRP.0

        CAN的系統(tǒng)時鐘周期TSCL,可以由BRP的數(shù)值為決定,計算公式如下:

        TSCL=2TCLKBRP=2TCLK(32BRP.5+16BRP.4+

        8BRP.3+4BRP.2+2BRP.1+1BRP.0+1) (3)

        其中TCLK為參考時間的周期。

        TCLK=1/fCLK (4)

        為了補(bǔ)償不同總線控制器的時鐘振蕩器之間的相位偏移,任何總線控制器必須在當(dāng)前傳送的相關(guān)信號邊沿重新同步。同步跳轉(zhuǎn)寬度定義了每一位周期可以被重新同步縮短或延長的時鐘周期的最大數(shù)目。

        tSJW=TSCL(2SJW.1+1SJW.0+1) (5)

        總線時序寄存器1 定義每個位周期長度采樣點(diǎn)的位置和在每個采樣點(diǎn)的采樣數(shù)目。位功能說明如表2所列,其中SAM意義見表3。

        表2

        bitbitbitbitbitbitbitbit
        SAMTSEG2.2TSEG2.1TSEG2.0TSEG1.3TSEG1.2TSEG1.1TSEG1.0

        表3

        功 能
        SAM0三倍:總線采樣三次:建議在中/低速總線(A和B級)使用,有處于過濾總線上毛刺
        1單倍:總線采樣一次;建議使用在高速總線上(SAEC級)

        TSEG1(共4位,取值區(qū)間[1,16])和TSEG2(共3位,取值區(qū)間[1,8])決定了每一位時鐘數(shù)目和采樣點(diǎn)的位置。這里

        tSYNC_SEG=1TSCL(此時間段固定) (6)

        tTSEG1=TSCL(8TSEG1.3+4TSEG1.2+2TSEG1.1+1TESG1.0+1) (7)

        tTSEG2=TSCL(4TSEG2.2+2TSEG2.1+1TESG2.0+1) (8)

        位周期的標(biāo)量值(NBT)定義為,SYNC_SEG(同步段系統(tǒng)時鐘周期數(shù))、TSEG1(相位緩沖段1系統(tǒng)時鐘周期數(shù))、TSEG2(相位緩沖段2系統(tǒng)時鐘周期數(shù))之和。這決定了它的取值區(qū)間為[3,25],在1個取樣點(diǎn)時,最小值一般取4;在3個取樣點(diǎn)時,最小值一般取5。

        NBT=Tbit/TSCL=SYNC_SEG+TSEG1+TSEG2 (9)

        位周期的一般結(jié)構(gòu)如圖1所示。

        1.2 參考時鐘誤差

        在系統(tǒng)中,每一個節(jié)點(diǎn)都有自己獨(dú)立的參考時鐘。由于制造工藝、運(yùn)行時間及環(huán)境溫度的變化,這些時鐘的實(shí)際頻率往往偏離預(yù)期的頻率值。我們稱這種偏差為參考時鐘誤差(Δf)。FCLK,max/min表示參考時鐘頻率的最大值或最小值,fCLK,rat表示參考時鐘頻率的額定值。

        相應(yīng)的系統(tǒng)時鐘周期也會有誤差。TSCL,min表示系統(tǒng)時鐘周期最小值,TSCL,max表示系統(tǒng)時鐘周期最大值,TSCL,rat表示系統(tǒng)時鐘周期額定值。由于Δf1,可以進(jìn)行近似。

        TSCL,min=(TSCL,rat)/(1+Δf)≈TSCL,rat(1-Δf) (11)

        TSCL,max=(TSCL,rat)/(1-Δf)≈TSCL,rat(1+Δf) (12)

        1.3 傳輸延遲

        CAN總線采用無破壞性的基于優(yōu)先權(quán)的仲裁機(jī)制。在這種機(jī)制下,傳輸延遲至關(guān)重要。如果傳輸延遲時間過長,將導(dǎo)致無效的訪問仲裁。傳輸延遲時間由物理總線延時(tBUS)、總線驅(qū)動器延時(ttran)和其它設(shè)備傳輸延遲(toth)共同決定。其它設(shè)備包括通信控制器、隔離光耦等。

        tprop=2(tBUS+ttran+toth)

        傳輸延遲的標(biāo)量值(PROP)可以由公式(14)得到。

        PROP=tprop/TSCL (14)

        1.4 同步

        通過同步機(jī)制,可以消除由于相位誤差帶來的影響,保證信息正確解碼。有兩種同步方式:硬同步和重同步。

        硬同步僅發(fā)生在報文開始時,在一個空閑期間,總線上的所有控制器在一個SYNC_SEG段從隱性位到顯性位的跳變沿上,初始化自己的位周期定時,執(zhí)行一次硬同步。

        重同步發(fā)生在報文位流發(fā)送期間,每一個隱性位到顯性位跳變沿后。重同步根據(jù)引起同步邊沿的相位誤差,要么增加tTSEG1,要么減少tTSEG2,使采樣點(diǎn)處于恰當(dāng)?shù)奈恢谩M竭呇氐南辔徽`e,由相對于同步邊沿的位置而定,以系統(tǒng)時鐘周期(TSCL)。其它定及重同步處理方式如下:

        e=0,同步邊沿發(fā)生在SYNC_SEG內(nèi);

        e>0,同步邊沿發(fā)生在TSEG1內(nèi);

        e0,同步邊沿發(fā)生在TSEG2內(nèi)。

        如果引起重同步的邊沿相位誤差e的幅值小于或等于tSJW編程數(shù)值,則得同步導(dǎo)致位時間縮短或延長,與硬同步的作用一樣;如果e為正值,且幅值大于tSJW,則增加tTSEG1值為tSJW;如果e為負(fù)值,且幅值大于tSJW,則減少值為tSJW。

        2 參數(shù)計算規(guī)則

        參數(shù)確定原則為:保證系統(tǒng)在極端惡劣條件的兩節(jié)點(diǎn)間,能夠正確接收并解碼網(wǎng)絡(luò)上的信息幀。極端惡劣條件是指這兩個節(jié)點(diǎn)的鐘振偏差在系統(tǒng)容忍偏差極限的兩端,并且兩節(jié)點(diǎn)間具有最大的傳輸延遲。在沒有噪音干擾的正常通信情況下,相位誤差累計的最壞情況是,重同步邊沿之間間隔有10個位周期。這是定義SJW最小值的條件。

        在實(shí)際的通信系統(tǒng)中,噪音干擾是不可避免的。由于噪音干擾,可能會導(dǎo)致重同步邊沿之間的間隔超過10個位周期,可能進(jìn)入錯誤處理模式。在這種情況下,由于同步邊沿之間的時間比較長,所以保證每一位都能夠確切地取樣就更加重要。如果不能夠確切地取樣,將會導(dǎo)致檢測到錯誤并進(jìn)行錯誤處理。

        考慮各方面的影響,位定時參數(shù)的設(shè)置公式如下:

        ①1取樣點(diǎn)模式

        ②3取樣點(diǎn)模式

        在計算SJWmin時,取大于計算數(shù)值的最小整數(shù);在計算TSEG2max時,取小于計算數(shù)值的最大整數(shù)。由公式(15)~(18)可見,SJW和TSEG2由NBF、Δf、PROP分別決定。計算得到SJW和TSEG2后,由公式(9)可以得到TSEG1。根據(jù)SJA1000的寄存器說明,可以得到具體寄存器的設(shè)置數(shù)值。

        3 參數(shù)計算步驟及舉例

        某CAN通信系統(tǒng),采用1個取樣點(diǎn)模式,其它參數(shù)指標(biāo)如表4所列。

        表4

        參 數(shù)說 明最小值典型值最大值
        fBit/(kbs-1)通信波特率 250 
        tbit/μs位周期時間 4 
        fCLK/MHzCAN控制器的時鐘頻率  24
        Δf/%時鐘頻率偏差  1.0
        tran/ns總線驅(qū)動器延時3075157
        toth/ns其它設(shè)備延時15 40
        δ/(nsm-1)線路延時5 6.5
        L/m節(jié)點(diǎn)間總線長度3 95
        tBUS/ns計算得到線路延時tBUS=Lδ15 618
        fprop/ns計算得到傳輸延時,公式(13)120 1630

        ①確定可能的BRP、NBT和PROP。

        由公式(1)、(3)、(4)及(9)得到

        NBT=1/(fbitTSCL)=fCLK/(2fbitBRP)

        所以有 NBTBRP=fCLK/2fbit (19)

        將參數(shù)代入公式(19)得到NBTBRP的值為48,而NBT取值為3~25,所以NBT和BRP所有可能的組合如表5所列。

        表5

        fCLKNBTBRPTSCL/nsPROPmaxPROPmin有效性
        24MHz41210001.630.12
        68666.62.450.18
        865003.260.24
        124333.34.890.36
        1632506.520.48
        242166.69.780.72

        ②計算NBTmin和NBTmax。由公式(15-1)、(18-1)、(19)、(14)及(3)推出

        NBT≥

        公式(22)

        代入數(shù)據(jù),計算得到8.31≤NBT≤17.9。原則上選12和16都可以,為了方便取得樣點(diǎn),我們?nèi)≥^大的值16。

        ③根據(jù)公式(15-1)計算SJWmin,如表6所列。

        ④根據(jù)公式(17-1)計算TSEG2min,如表6所列。

        ⑤根據(jù)公式(18-1)計算TSEG2max,如表6所列。

        ⑥確定寄存器設(shè)置數(shù)值,如表7所列。

        表6

        最小值最大值確定值
        SJW{3.23,3.67}max44
        TSEG2{2,SJW}max{8,5.54,4.78}min4
        TSEG1TSEG1=NBT-TSEG2-SYNC_SEG=16-4-111

        表7

        BTR0SHWBRPBTR1SAMTSEG2TSEG1
        C2110000103A00111010

        4 結(jié)論

        在不同的系統(tǒng)應(yīng)用中,可以根據(jù)所使用的時鐘頻率、時鐘信號的頻率偏差、通信波特率及最大傳輸距離等因素,對通信控制器位定時參數(shù)進(jìn)行優(yōu)化確定。確定得到的參數(shù)可以提高通信系統(tǒng)整體性能,這使CAN總線優(yōu)勢更加明顯,以適合更加廣泛的應(yīng)用。



        關(guān)鍵詞: CAN 總線 位定時 參數(shù)

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 宝兴县| 栖霞市| 大邑县| 滦平县| 通渭县| 耒阳市| 平陆县| 商城县| 罗平县| 抚松县| 怀远县| 广河县| 台中县| 尚义县| 贵南县| 牟定县| 延边| 邻水| 田阳县| 长寿区| 凤台县| 山东省| 滦南县| 西吉县| 汕尾市| 阿鲁科尔沁旗| 东丰县| 永宁县| 仙桃市| 宁蒗| 武城县| 石景山区| 汨罗市| 宣武区| 阳信县| 那曲县| 南宫市| 正镶白旗| 土默特左旗| 安仁县| 荔浦县|