電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 62|回復(fù): 0
收起左側(cè)

CAN總線上是否可以同時(shí)存在標(biāo)準(zhǔn)幀和擴(kuò)展幀?

[復(fù)制鏈接]

660

主題

660

帖子

4567

積分

四級(jí)會(huì)員

Rank: 4

積分
4567
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-12-8 08:01:00 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
( L7 i) R: |& J
點(diǎn)擊上方藍(lán)色字體,關(guān)注我們0 u. F& I# f$ e; h1 u: _: |0 d
來源于小伙伴提問。9 E( ~% q; g8 \
6 ^0 P) U9 E4 C2 K) V2 _4 V3 c

; r, H. D' h' A% }5 E4 d1 W5 L0 a) J4 V5 D
標(biāo)準(zhǔn)幀和擴(kuò)展幀在CAN總線上的共存完全支持,但前提是硬件和軟件配置正確。
1 _- k2 ~8 r+ U. L! \9 H( t7 X% i
: O; v0 m) J$ y7 K. D在你的實(shí)驗(yàn)中,擴(kuò)展幀接收不穩(wěn)定的可能原因包括仲裁失敗、過濾器配置錯(cuò)誤、硬件兼容性問題、總線負(fù)載過高或軟件邏輯問題。
2 Q) y, |; d  E  N3 c4 Q16 U4 W  m  y7 a  z- S$ V
CAN協(xié)議支持標(biāo)準(zhǔn)幀和擴(kuò)展幀的共存2 h8 q% o# C  p: o  v6 [8 |5 @3 W& p
1.1 標(biāo)準(zhǔn)幀和擴(kuò)展幀的定義
. A" c' p% Y7 W+ r/ v
  • 標(biāo)準(zhǔn)幀(Standard Frame,CAN 2.0A)使用11位的標(biāo)識(shí)符(Identifier),數(shù)據(jù)幀格式較短。
  • 擴(kuò)展幀(Extended Frame,CAN 2.0B)使用29位的標(biāo)識(shí)符,包含額外的18位擴(kuò)展標(biāo)識(shí)符,數(shù)據(jù)幀格式更長(zhǎng)。
    1 _- ~, c2 ^+ `+ ]
    9 H5 |% R. B- ^3 A2 o  G
    1.2 幀格式差異9 b$ O! y& y3 p2 A$ e
    擴(kuò)展幀與標(biāo)準(zhǔn)幀的關(guān)鍵差異在于 IDE位(Identifier Extension Bit):( q/ K4 z7 j" C* Z2 A
    標(biāo)準(zhǔn)幀的IDE位為0,表示未擴(kuò)展。* o3 p: p! K  _8 c' {- k
      F! {( x' k! d) `6 ^& }' K
    擴(kuò)展幀的IDE位為1,后面跟隨擴(kuò)展標(biāo)識(shí)符。0 ]3 A1 v6 W' o0 f3 {

    2 C% `$ k  I! Y, \/ x 3 F6 P# [. B$ N1 k% ^' ?

    ( [& X/ c( ?" T  L" @" s2 \2 q
    . [8 b9 c( s! Q5 H
    - |+ A& S8 d' @+ l( H" m1 C( O: h- S1 O: ?  p3 y6 G
    標(biāo)準(zhǔn)幀和擴(kuò)展幀在總線上通過仲裁階段正常共存。CAN協(xié)議的仲裁機(jī)制基于標(biāo)識(shí)符優(yōu)先級(jí),較低的二進(jìn)制值標(biāo)識(shí)符(更多0)具有較高優(yōu)先級(jí)。, u2 p. Z9 I" ?4 F' ~  k; X7 q
    2! `! p5 j$ J' R, c, u+ i2 j6 I
    導(dǎo)致擴(kuò)展幀接收不穩(wěn)定的可能原因+ h; @, b1 P( l% V! M4 C
    2.1 仲裁失敗$ M/ X! g- @* O4 M, h4 v+ j& D
    在標(biāo)準(zhǔn)幀和擴(kuò)展幀共存時(shí),仲裁過程可能導(dǎo)致擴(kuò)展幀發(fā)送失敗或接收中斷:擴(kuò)展幀標(biāo)識(shí)符更長(zhǎng)(29位),在仲裁時(shí)優(yōu)先級(jí)通常低于標(biāo)準(zhǔn)幀(11位標(biāo)識(shí)符)。9 }9 P# a( g3 `0 P& ?- N. N
    ; Z$ n' m  \* Y% W3 G  P* m; P
    如果標(biāo)準(zhǔn)幀頻繁發(fā)送,擴(kuò)展幀可能因無法贏得總線仲裁而延遲或丟失。
    * x. m  F  p- z8 a1 ~解決方法:降低標(biāo)準(zhǔn)幀發(fā)送頻率,確?偩負(fù)載較低(推薦總線負(fù)載率 為擴(kuò)展幀分配較高優(yōu)先級(jí)(標(biāo)識(shí)符值較。。) F3 L+ D" N. z* Y: ^; P

    * m& x, L/ V+ R1 a6 Y8 D- a4 d2.2 過濾器設(shè)置問題- @7 }! L; f: ]; k" S; z
    CAN控制器的硬件過濾器用于篩選接收的幀。" o! a' ~3 N1 D7 W- x2 U) k+ _5 |7 ^7 ?
    ' {! t$ b5 z3 |: M% X' W) ^: Y
    如果過濾器配置錯(cuò)誤,可能導(dǎo)致擴(kuò)展幀未被正確接收:
    + d5 o% B8 k+ M. D5 b7 s; o' d
  • 有些控制器僅能啟用部分硬件過濾器,并可能默認(rèn)支持標(biāo)準(zhǔn)幀優(yōu)先。
  • 如果過濾器未正確設(shè)置為支持?jǐn)U展幀(如未啟用擴(kuò)展幀掩碼),擴(kuò)展幀可能被丟棄。
      z+ r$ s2 Q0 F: H) a5 B

    ! {8 D- ~$ Y, v# T解決方法:檢查并配置CAN控制器的接收過濾器和屏蔽位,確保啟用擴(kuò)展幀接收。在代碼中明確設(shè)置全接收模式(即關(guān)閉過濾器,僅用于調(diào)試)。% z+ ~& g, j8 D' I) L5 D/ M3 T

    7 b3 I) C% j: M5 z+ N4 m2.3 硬件兼容性問題) f7 z& ~8 [2 S% u1 Z2 N4 S/ c1 |) E
    某些早期CAN控制器可能只支持CAN 2.0A(僅標(biāo)準(zhǔn)幀),接收擴(kuò)展幀時(shí)可能報(bào)錯(cuò)或忽略。
    4 I9 O/ q! Z- E; _: T$ u: B" n" h3 k1 H( A3 h8 F) Q6 @8 x6 e
    檢查實(shí)驗(yàn)環(huán)境中使用的硬件和驅(qū)動(dòng)是否完全支持CAN 2.0B規(guī)范(支持標(biāo)準(zhǔn)幀和擴(kuò)展幀)。1 J) A  ?! ?7 i6 l- V

    " C+ M- M, N2 H: \解決方法:確認(rèn)實(shí)驗(yàn)設(shè)備(如收發(fā)器、控制器)和上位機(jī)工具是否支持?jǐn)U展幀。更新硬件固件和驅(qū)動(dòng)版本。* n0 h7 s  w  M" s
    9 [2 }* j" |+ S) d* m7 q
    2.4 總線負(fù)載過高. y/ C+ N4 v- ^- w) G: w
    擴(kuò)展幀的數(shù)據(jù)量大,幀傳輸時(shí)間比標(biāo)準(zhǔn)幀長(zhǎng)。在總線負(fù)載較高時(shí),擴(kuò)展幀更容易出現(xiàn)延遲或丟失:CAN總線速率固定(如500 kbps),高頻率的數(shù)據(jù)幀可能導(dǎo)致緩沖區(qū)溢出。特別是標(biāo)準(zhǔn)幀發(fā)送頻率高時(shí),擴(kuò)展幀更難競(jìng)爭(zhēng)到總線時(shí)間片。+ U1 c. b# {# \) ~7 y! s- \

    3 V5 P* q. n$ i解決方法:減少總線負(fù)載,確保發(fā)送幀頻率適中。增加CAN網(wǎng)絡(luò)的波特率(如從250 kbps提高到500 kbps或1 Mbps)。2 Z* Y1 R7 b8 l( S8 o7 b5 |
    + Z7 x8 z9 e, k- c$ D$ a
    2.5 軟件處理不當(dāng)
    3 r3 q, F! l+ X& s, d+ }# N! X* T6 z軟件可能存在錯(cuò)誤,如擴(kuò)展幀未正確解碼、接收中斷優(yōu)先級(jí)設(shè)置不當(dāng)或緩沖區(qū)配置不足。! i& X" z" P8 c7 ^% l8 Y5 E

    / G/ X6 ?1 J. Q1 c2 W( T7 c上位機(jī)工具可能無法正確區(qū)分或顯示擴(kuò)展幀。
    , A" V, s2 F! v2 Q( {& f5 q* G$ b$ a' d: L
    解決方法:調(diào)試并檢查代碼邏輯,確保CAN協(xié)議棧正確處理標(biāo)準(zhǔn)幀和擴(kuò)展幀。使用更專業(yè)的上位機(jī)工具(如CANoe、PCAN-View)進(jìn)行幀分析。0 N# A/ L) w- q$ v0 ~' ?
    3! R. w1 D1 Y4 h5 D
    實(shí)驗(yàn)建議與優(yōu)化( R* O$ T  j, `
  • 分離測(cè)試標(biāo)準(zhǔn)幀和擴(kuò)展幀:?jiǎn)为?dú)發(fā)送標(biāo)準(zhǔn)幀和擴(kuò)展幀,確保兩者在獨(dú)立情況下均能正常工作。
  • 優(yōu)化總線負(fù)載:監(jiān)測(cè)總線負(fù)載(使用專業(yè)工具如CANalyzer)并調(diào)整幀發(fā)送頻率,避免過載。
  • 調(diào)整優(yōu)先級(jí):分配較低優(yōu)先級(jí)給標(biāo)準(zhǔn)幀,確保擴(kuò)展幀能夠爭(zhēng)奪總線仲裁。
  • 檢查硬件和配置:驗(yàn)證控制器、驅(qū)動(dòng)程序和上位機(jī)工具是否完全支持CAN 2.0B。
  • 使用示波器或邏輯分析儀:捕獲總線信號(hào),分析幀格式和錯(cuò)誤標(biāo)志(如ACK Error、Bit Error),定位問題根源。- e: c$ ]) U- l1 D  e" t2 a
    $ U4 G( n" ]! }) S4 i. E

    4 g1 i1 G8 q2 h6 S- g5 I
    8 }+ z7 O3 ?' @; h- g. X: y 8 P& H. ]. X' P; I' B1 M
    點(diǎn)擊閱讀原文,更精彩~
  • 發(fā)表回復(fù)

    本版積分規(guī)則


    聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表