0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于獨(dú)立通信控制器SJA1000實(shí)現(xiàn)對(duì)CAN總線位定時(shí)參數(shù)進(jìn)行研究

電子設(shè)計(jì) ? 來源:?jiǎn)纹瑱C(jī)與嵌入式系統(tǒng)應(yīng)用 ? 作者:吳永 ? 2021-03-31 09:57 ? 次閱讀

引言

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

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

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

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

1 相關(guān)定義

1.1 位周期的組成

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

Fbit=1/Tbit (1)

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

Tbit=tSYNC_SEG+tTSEG1+tTSEG2 (2)

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

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

基于獨(dú)立通信控制器SJA1000實(shí)現(xiàn)對(duì)CAN總線位定時(shí)參數(shù)進(jìn)行研究

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

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

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

其中TCLK為參考時(shí)間的周期。

TCLK=1/fCLK (4)

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

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

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

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

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

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

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

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

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

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

1.2 參考時(shí)鐘誤差

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

相應(yīng)的系統(tǒng)時(shí)鐘周期也會(huì)有誤差。TSCL,min表示系統(tǒng)時(shí)鐘周期最小值,TSCL,max表示系統(tǒng)時(shí)鐘周期最大值,TSCL,rat表示系統(tǒng)時(shí)鐘周期額定值。由于Δf《《1,可以進(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)重要。如果傳輸延遲時(shí)間過長(zhǎng),將導(dǎo)致無效的訪問仲裁。傳輸延遲時(shí)間由物理總線延時(shí)(tBUS)、總線驅(qū)動(dòng)器延時(shí)(ttran)和其它設(shè)備傳輸延遲(toth)共同決定。其它設(shè)備包括通信控制器、隔離光耦等。

tprop=2×(tBUS+ttran+toth)

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

PROP=tprop/TSCL (14)

1.4 同步

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

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

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

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

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

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

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

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

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

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

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

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

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

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

表4

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

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

NBT=1/(fbit·TSCL)=fCLK/(2fbit·BRP)

所以有 NBT·BRP=fCLK/2fbit (19)

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

表5

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

NBT≥

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

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

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

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

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

4 結(jié)論

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

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16103

    瀏覽量

    177067
  • CAN總線
    +關(guān)注

    關(guān)注

    145

    文章

    1911

    瀏覽量

    130560
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    CAN總線通信系統(tǒng)的研究與設(shè)計(jì)

    MCS-51單片機(jī)組成CAN通信系統(tǒng)需要擴(kuò)展CAN控制器,本系統(tǒng)采用的CAN控制器
    的頭像 發(fā)表于 01-09 08:23 ?6161次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b><b class='flag-5'>通信</b>系統(tǒng)的<b class='flag-5'>研究</b>與設(shè)計(jì)

    CAN控制器SJA1000及其應(yīng)用

    CAN控制器SJA1000及其應(yīng)用摘要:介紹CAN控制器SJA1000的特點(diǎn)、內(nèi)部結(jié)構(gòu)以及
    發(fā)表于 10-03 14:15

    SJA1000CAN 總線系統(tǒng)節(jié)點(diǎn)的應(yīng)用

    介紹CAN 總線控制器SJA1000; 給出其在CAN 總線系統(tǒng)節(jié)點(diǎn)中的應(yīng)用方法、節(jié)點(diǎn)電路原理圖
    發(fā)表于 05-13 16:43 ?62次下載

    SJA1000獨(dú)立CAN控制器應(yīng)用指南

    SJA1000 是一個(gè)獨(dú)立CAN 控制器它在汽車和普通的工業(yè)應(yīng)用上有先進(jìn)的特征由于它和PCA82C200 在硬件和軟件都兼容因此它將會(huì)替代PCA82C200
    發(fā)表于 11-18 12:00 ?102次下載

    SJA1000控制器在多電機(jī)綜合保護(hù)中的應(yīng)用

    介紹了基于獨(dú)立CAN總線控制器SJA1000的井下多電機(jī)綜合保護(hù)的設(shè)計(jì)過程。圍繞綜合保護(hù)
    發(fā)表于 12-08 16:43 ?45次下載

    SHARC DSP與SJA1000CAN總線接口設(shè)計(jì)

    SHARC DSP與SJA1000CAN總線接口設(shè)計(jì) 本文討論了DSP與CAN控制器SJA1000
    發(fā)表于 09-27 16:10 ?1402次閱讀
    SHARC DSP與<b class='flag-5'>SJA1000</b>的<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>接口設(shè)計(jì)

    SJA1000 獨(dú)立CAN 控制器應(yīng)用指南

    SJA1000 獨(dú)立CAN 控制器應(yīng)用指南。
    發(fā)表于 05-06 11:29 ?31次下載

    CAN總線控制器SJA1000的初始化程序設(shè)計(jì)

    CAN總線控制器SJA1000的初始化程序設(shè)計(jì)。
    發(fā)表于 05-06 11:29 ?12次下載

    基于DSP與SJA1000CAN總線系統(tǒng)設(shè)計(jì)方案

    協(xié)議所要求的全部必要功能,因此,CAN控制器與其它微處理的接口設(shè)計(jì)成為設(shè)計(jì)CAN總線系統(tǒng)的首要工作。本文重點(diǎn)介紹以SHARC DSP為核心
    發(fā)表于 10-23 15:48 ?13次下載
    基于DSP與<b class='flag-5'>SJA1000</b>的<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>系統(tǒng)設(shè)計(jì)方案

    DSP與CAN控制器SJA1000總線接口的差別

    SJA1000簡(jiǎn)介 SJA1000是一種獨(dú)立CAN控制器,用于移動(dòng)目標(biāo)和一般工業(yè)環(huán)境中的控制器
    發(fā)表于 10-30 15:00 ?5次下載

    SJA1000獨(dú)立CAN控制器的應(yīng)用指南資料免費(fèi)下載

    SJA1000 是一個(gè)獨(dú)立CAN 控制器它在汽車和普通的工業(yè)應(yīng)用上有先進(jìn)的特征由于它和PCA82C200 在硬件和軟件都兼容因此它將會(huì)替代PCA82C200
    發(fā)表于 11-26 16:36 ?38次下載
    <b class='flag-5'>SJA1000</b><b class='flag-5'>獨(dú)立</b><b class='flag-5'>CAN</b><b class='flag-5'>控制器</b>的應(yīng)用指南資料免費(fèi)下載

    基于FPGA的VHDL語言設(shè)計(jì)控制器SJA1000的IP軟核設(shè)計(jì)

    分析了CAN控制器SJA1000的特點(diǎn)及CAN協(xié)議通信格式。設(shè)計(jì)了控制器
    發(fā)表于 04-12 10:55 ?3063次閱讀
    基于FPGA的VHDL語言設(shè)計(jì)<b class='flag-5'>控制器</b><b class='flag-5'>SJA1000</b>的IP軟核設(shè)計(jì)

    SJA1000獨(dú)立CAN控制器中文手冊(cè)

    SJA1000 是一種獨(dú)立控制器 用于移動(dòng)目標(biāo)和一般工業(yè)環(huán)境中的區(qū)域網(wǎng)絡(luò)控制 CAN 它是 PHILIPS 半導(dǎo)體 PCA82C200
    發(fā)表于 04-07 09:03 ?11次下載

    SJA1000獨(dú)立CAN控制器中文資料

    電子發(fā)燒友網(wǎng)站提供《SJA1000獨(dú)立CAN控制器中文資料.pdf》資料免費(fèi)下載
    發(fā)表于 10-13 10:51 ?3次下載
    <b class='flag-5'>SJA1000</b><b class='flag-5'>獨(dú)立</b><b class='flag-5'>CAN</b><b class='flag-5'>控制器</b>中文資料

    SJA1000獨(dú)立CAN控制器英文資料

    電子發(fā)燒友網(wǎng)站提供《SJA1000獨(dú)立CAN控制器英文資料.pdf》資料免費(fèi)下載
    發(fā)表于 10-13 10:53 ?1次下載
    <b class='flag-5'>SJA1000</b><b class='flag-5'>獨(dú)立</b><b class='flag-5'>CAN</b><b class='flag-5'>控制器</b>英文資料