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

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

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

很多工程師在選擇波特率時(shí)非常頭疼,一文讀懂如何快速解決特殊波特率計(jì)算的問題

AGk5_ZLG_zhiyua ? 來源:未知 ? 作者:電子大兵 ? 2017-08-30 11:04 ? 次閱讀

影響CAN總線穩(wěn)定的因素有很多,其中波特率是一項(xiàng)非常重要的指標(biāo),很多工程師在選擇波特率時(shí)非常頭疼。今天我們就來說說該如何快速解決特殊波特率計(jì)算的問題。

CAN總線采用的是異步串行通信,也就是沒有單獨(dú)的時(shí)鐘線來保證各個(gè)收發(fā)器之間時(shí)鐘的一致,每個(gè)收發(fā)器是按事先設(shè)置的波特率來對總線上的電平進(jìn)行分位。因此波特率設(shè)置準(zhǔn)確對CAN總線的穩(wěn)定通信來說非常重要。

CAN總線里我們可以通過對CAN節(jié)點(diǎn)里的位定時(shí)寄存器的控制來實(shí)現(xiàn)不同波特率的通信。CAN協(xié)議里將一個(gè)位時(shí)間分為同步段、傳播段、相位緩沖段1和相位緩沖段2。每個(gè)段的時(shí)間長度都可以用一個(gè)整數(shù)的基本時(shí)間單位表示,該基本時(shí)間單位由系統(tǒng)的時(shí)鐘振蕩器分頻得到。

同步段位于一個(gè)位的起始位置,CAN-bus規(guī)定跳變沿為同步信號,但是發(fā)送節(jié)點(diǎn)發(fā)送一個(gè)位跟接收節(jié)點(diǎn)接收到這個(gè)位之間存在網(wǎng)絡(luò)傳播延遲,傳播段則是為了補(bǔ)償這段傳播延遲,由于采樣點(diǎn)位置在相位緩沖段1跟相位緩沖段2之間,通過設(shè)置相位緩沖段1和相位緩沖段2的值,可以調(diào)整采樣點(diǎn)位置,保證每個(gè)位采樣點(diǎn)一致。緩沖段的長度調(diào)節(jié)范圍則是由同步跳轉(zhuǎn)寬度(SJW)決定。

圖1 CAN位時(shí)間結(jié)構(gòu)圖

簡單的了解了CAN總線位時(shí)間的分段后,我們來看看一個(gè)節(jié)點(diǎn)的波特率到底要如何設(shè)置。如圖2是某ARM內(nèi)核的CAN位時(shí)間特性寄存器 (CAN_BTR)。

圖2 某ARM內(nèi)核位時(shí)間特性寄存器結(jié)構(gòu)圖

SILM(靜默模式)跟LBKM(回環(huán)模式)用于調(diào)試;

SJW:同步跳轉(zhuǎn)寬度;

TS2/TS1:位時(shí)間里兩個(gè)時(shí)間段的分配;

BRP:波特率分頻器,該區(qū)域定義了基本時(shí)間單元的長度;

例如某著名車廠CAN通信標(biāo)準(zhǔn)里規(guī)定,通信速率為125 kbps時(shí),應(yīng)該采用單次采樣,采樣點(diǎn)位置設(shè)置在70%~77%之間。其位定時(shí)參數(shù)取值可見表1與表2。

表1 LS_CAN通信速率與采樣點(diǎn)參數(shù)

表2 LS_CAN可選時(shí)間份額與同步跳轉(zhuǎn)帶寬

采樣點(diǎn):采樣點(diǎn)不能太靠前也不能太靠后,否則如果剛好處于一個(gè)位的上升沿或者下降沿區(qū)間,會造成識別錯(cuò)誤,所以根據(jù)CIA105的規(guī)范,采樣點(diǎn)在87.5%左右比較合適。但是一般我們可根據(jù)實(shí)際情況選取75%~85%之間;

同步跳轉(zhuǎn)寬度(SJW):SJW的值直接影響到重同步時(shí)相位緩沖段的可調(diào)節(jié)的范圍,SJW的值可以在1~4之間選擇,我們選擇3、4可以使總線獲得更寬的波特率容忍度;

采樣次數(shù):分為單次采樣跟三次采樣,三次采樣在設(shè)計(jì)之初雖然是為了過濾掉總線上毛刺,但是采用三次采樣經(jīng)常會影響SJW的跳轉(zhuǎn),所以實(shí)際應(yīng)用中我們一般都會采用單次采樣。

了解設(shè)置波特率的原則后,我們采用ZLG致遠(yuǎn)電子的波特率計(jì)算軟件,對25kbps波特率的設(shè)置參數(shù)進(jìn)行計(jì)算,計(jì)算結(jié)果如圖3。

圖3 25kbps波特率計(jì)算參數(shù)

根據(jù)上面提到的原則,我們選取采樣點(diǎn)為75%,SJW為4,時(shí)間份額為14的一組參數(shù),采用ZLG的CAN卡做驗(yàn)證。

  • 自動波特率識別:采用CANScope自動偵測波特率的功能,對CAN卡的波特率進(jìn)行識別,識別結(jié)果為25kbps;

圖4 自動偵測波特率

  • 采樣點(diǎn)測試:采用CANScope對當(dāng)前波特率下CAN卡的采樣點(diǎn)進(jìn)行測試,測試結(jié)果為75%;

圖5 采樣點(diǎn)測試

  • 位寬容忍度測試:采用CANScope對當(dāng)前波特率下CAN卡進(jìn)行位寬容忍度測試,測試其對波特率的容忍度情況,測試結(jié)果為24kbps~26kbps,容忍度情況較好;

圖6 位寬容忍度測試

  • 位時(shí)間測試:用CANScope的眼圖功能對當(dāng)前波特率下CAN卡進(jìn)行位時(shí)間測試,位時(shí)間為40us,與25kbps波特率的位時(shí)間相符。

圖7 眼圖測試位時(shí)間

通過對波特率計(jì)算器計(jì)算出來的波特率寄存器設(shè)置參數(shù)進(jìn)行驗(yàn)證,發(fā)現(xiàn)測試結(jié)果跟我們的預(yù)期結(jié)果一致,因此在使用特殊波特率時(shí),我們可以借助波特率計(jì)算器來快速計(jì)算出位定時(shí)寄存器的參數(shù)值。下面我們給出一些可參考的特殊波特率的參數(shù):

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

    關(guān)注

    145

    文章

    1908

    瀏覽量

    130502
  • 波特率
    +關(guān)注

    關(guān)注

    2

    文章

    293

    瀏覽量

    33998

原文標(biāo)題:【解惑】非標(biāo)準(zhǔn)的CAN波特率怎么計(jì)算

文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠(yuǎn)電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    can波特率計(jì)算

    can波特率其實(shí)并不難計(jì)算,這里給出了can波特率的簡單計(jì)算,并給出了實(shí)例STM32的CAN波特率計(jì)算
    發(fā)表于 12-14 17:02 ?1.2w次閱讀
    can<b class='flag-5'>波特率</b><b class='flag-5'>計(jì)算</b>

    什么是串口波特率?串口波特率的分類及應(yīng)用詳解

    什么是串口波特率串口波特率是指串口通信系統(tǒng)中傳輸數(shù)據(jù)的速率。UART串口通信中,數(shù)據(jù)以位(bit)的形式傳輸,波特率是指每秒鐘傳輸?shù)奈粩?shù)。
    的頭像 發(fā)表于 08-08 10:09 ?5550次閱讀
    什么是串口<b class='flag-5'>波特率</b>?串口<b class='flag-5'>波特率</b>的分類及應(yīng)用詳解

    非標(biāo)準(zhǔn)CAN波特率計(jì)算

    影響CAN總線穩(wěn)定的因素有很多,其中波特率項(xiàng)非常重要的指標(biāo),很多工程師
    發(fā)表于 07-29 08:00

    51波特率初值計(jì)算

    51波特率初值計(jì)算
    發(fā)表于 04-26 16:36 ?44次下載

    51波特率計(jì)算

    51波特率計(jì)算
    發(fā)表于 12-17 16:33 ?1次下載

    51波特率計(jì)算

    51波特率計(jì)算
    發(fā)表于 12-28 11:07 ?2次下載

    CAN特殊波特率如何計(jì)算

    CAN總線采用的是異步串行通信,也就是沒有單獨(dú)的時(shí)鐘線來保證各個(gè)收發(fā)器之間時(shí)鐘的致,每個(gè)收發(fā)器是按事先設(shè)置的波特率來對總線上的電平進(jìn)行分位。因此波特率設(shè)置準(zhǔn)確對CAN總線的穩(wěn)定通信來說非常
    發(fā)表于 08-17 18:19 ?7031次閱讀
    CAN<b class='flag-5'>特殊</b><b class='flag-5'>波特率</b>如何<b class='flag-5'>計(jì)算</b>

    波特率計(jì)算公式_波特率和字節(jié)的關(guān)系

    本文首先闡述了波特率計(jì)算公式,另外還介紹了波特率和字節(jié)的關(guān)系。
    發(fā)表于 04-21 14:21 ?4.7w次閱讀

    串口波特率計(jì)算詳解

    STM32下波特率計(jì)算詳解波特率計(jì)算????STM32下的波特率和串口外設(shè)時(shí)鐘息息相關(guān),USART 1的時(shí)鐘來源于APB2,USART 2
    發(fā)表于 12-05 09:06 ?22次下載
    串口<b class='flag-5'>波特率</b><b class='flag-5'>計(jì)算</b>詳解

    STM32下波特率計(jì)算詳解

    波特率計(jì)算 STM32下的波特率和串口外設(shè)時(shí)鐘息息相關(guān),USART 1的時(shí)鐘來源于APB2,USART 2-5的時(shí)鐘來源于APB1。STM32中,有個(gè)
    發(fā)表于 02-11 10:46 ?20次下載
    STM32下<b class='flag-5'>波特率</b><b class='flag-5'>計(jì)算</b>詳解

    波特率是什么?波特率設(shè)計(jì)

    從宏觀理解,波特率表征了串口的傳輸速度。
    的頭像 發(fā)表于 06-05 15:19 ?2.4w次閱讀
    <b class='flag-5'>波特率</b>是什么?<b class='flag-5'>波特率</b>設(shè)計(jì)

    什么是波特率?為什么要設(shè)置波特率

    歡迎來到東用知識小課堂!、什么是波特率?波特率(BaudRate)單位bps是用于衡量串口通信速度的單位,它表示每秒鐘發(fā)送的比特?cái)?shù)。如果個(gè)串口的
    的頭像 發(fā)表于 04-08 00:00 ?6390次閱讀
    什么是<b class='flag-5'>波特率</b>?為什么要設(shè)置<b class='flag-5'>波特率</b>?

    什么是波特率?波特率是如何影響CAN總線長度的?

    信息通信通道中傳輸?shù)乃俾时环Q為波特率。通俗地說,波特率是數(shù)據(jù)在網(wǎng)絡(luò)上傳輸?shù)乃俣?速率。這是以比特/秒表示的。因此,秒鐘內(nèi)在通信網(wǎng)絡(luò)上傳輸?shù)谋忍財(cái)?shù)就是
    的頭像 發(fā)表于 08-14 15:23 ?5600次閱讀
    什么是<b class='flag-5'>波特率</b>?<b class='flag-5'>波特率</b>是如何影響CAN總線長度的?

    什么是串口波特率?串口通信為什么要設(shè)置波特率?

    電子設(shè)備的世界中,數(shù)據(jù)是通過各種方式進(jìn)行傳輸?shù)?。其中,串口通信?b class='flag-5'>一種常見的數(shù)據(jù)傳輸方式,它以其簡單、可靠和廣泛的特性,成為了電子設(shè)備間通信的重要手段。而在串口通信中,有個(gè)非常重要的
    的頭像 發(fā)表于 11-03 08:21 ?4288次閱讀
    什么是串口<b class='flag-5'>波特率</b>?串口通信為什么要設(shè)置<b class='flag-5'>波特率</b>?

    什么是串口波特率?串口通信為什么要設(shè)置波特率?

    什么是串口波特率?串口通信為什么要設(shè)置波特率?波特率與比特的關(guān)系 如何選擇串口波特率?? 串口
    的頭像 發(fā)表于 01-22 16:10 ?1745次閱讀