电子产业一站式赋能平台

PCB联盟网

搜索
查看: 78|回复: 0
收起左侧

CAN总线如何区分和识别帧类型

[复制链接]

1001

主题

1001

帖子

8807

积分

高级会员

Rank: 5Rank: 5

积分
8807
发表于 2025-4-3 08:01:00 | 显示全部楼层 |阅读模式

rqej1rs5dsu64014262045.gif

rqej1rs5dsu64014262045.gif
6 E0 y6 o* A6 X/ X: c6 a! g' S( E
点击上方蓝色字体,关注我们+ Q, d: m: A6 R( M% z. Q! l

0 V6 L2 k$ t+ T2 I! D" a; T* ^; X- \& k' r6 |% F$ z
要确定 CAN 帧的类型,需要分析其结构和特定字段。+ h4 {2 ?9 n; ^# s
$ |* w; A* z4 {4 a  y# T. W

u2exeu330gm64014262145.png

u2exeu330gm64014262145.png

6 y& U. _: Q$ E+ b# v
4 V$ u2 Z" g1 o: ^以下是详细步骤: ( I$ ^4 R: O' ?6 l3 X
' o+ u$ D- x8 m/ o
第一步:识别是数据/远程帧还是错误/过载帧; X2 Z  s8 h# X" a: L
  • 数据和远程帧:以帧开始(SOF)位开始,随后是标识符(ID)字段。
  • 错误和过载帧:没有 ID 字段,具有特定的标志和分隔符序列。
    / q9 Z, \8 n2 v第二步:区分数据帧和远程帧
    , I6 Y( e7 P" |& _对于数据和远程帧,检查控制字段中的远程传输请求(RTR)位:& n0 z3 l) l' [6 ]
  • 如果 RTR 为 0,则为数据帧。
  • 如果 RTR 为 1,则为远程帧。
    ) f# {2 d4 G" }% K% c第三步:区分标准帧和扩展帧# _/ x% i" w" g$ v  Y; a, x% f$ o
    CAN 帧可以是标准帧(11 位 ID)或扩展帧(29 位 ID)。通过控制字段中的标识扩展(IDE)位区分:
    , v# L2 j3 p4 w# E
  • IDE 为 0:标准帧。
    # k' ^5 O6 B8 v% n4 _
  • IDE 为 1:扩展帧。
    / V' \% y) m3 M% @7 d7 ]3 i2 |

    4 V$ N3 p5 O- |. x1 Y2 C' F( V' I2 d第四步:区分错误帧和过载帧
      C! p7 s2 @7 u: h4 B7 d6 m. M错误帧和过载帧有相似的位模式:6 位标志后跟 8 位分隔符。具体的区分如下:
    # a4 Q' N. l0 b1 X. ]8 X- c& Q
  • 错误帧活动错误帧:6 位显性位后跟 8 位隐性位。被动错误帧:6 位隐性位后跟 8 位隐性位。
  • 过载帧:6 位显性位后跟 8 位隐性位。6 i4 l0 W( x& S; s( {& z/ O
    要进一步区分活动错误帧和过载帧,需要考虑传输的时机:  h. m* S, f. R8 }
  • 如果该序列出现在数据或远程帧的传输期间,可能是错误帧。
  • 如果出现在完整帧后的间隙期间,可能是过载帧。
    ! k% |7 ^+ ^* J2 m9 {; B2 i

    ( W8 ?7 M- l) n( |" S' D确定 CAN 帧的类型对于理解和管理 CAN 总线通信至关重要。
    - t' p1 B# r: v' ]/ b0 [9 b5 J1 e) o* G! y5 D- ^4 c" b7 p
    通过检查特定位和传输时机,可以准确识别帧是数据帧、远程帧、错误帧还是过载帧。此知识对于故障排除和优化基于 CAN 的系统至关重要。: L0 m, p$ o/ l3 `( Y/ F

    lky0mgvajw564014262245.jpg

    lky0mgvajw564014262245.jpg
    & ^# p3 d. d* e7 {  \0 j% m

    hqmhfa2lae564014262345.gif

    hqmhfa2lae564014262345.gif
    ( X. A4 v' P0 ~
    点击阅读原文,更精彩~
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表