电子产业一站式赋能平台

PCB联盟网

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

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

[复制链接]

979

主题

979

帖子

8343

积分

高级会员

Rank: 5Rank: 5

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

rqej1rs5dsu64014262045.gif

rqej1rs5dsu64014262045.gif

+ u5 b6 b) x( o$ ~, ^  R6 y点击上方蓝色字体,关注我们
8 L; P6 I: G. }& k5 s. V- a! V1 h" v9 w

$ X7 V) {0 h" o要确定 CAN 帧的类型,需要分析其结构和特定字段。3 {8 n/ G; d' e% [2 G9 v/ v
& i2 m3 T, d( g; M. H. V

u2exeu330gm64014262145.png

u2exeu330gm64014262145.png
. @% G. [+ q3 q4 R4 ~2 ?
+ @: N! \2 T6 D! F" r6 z  {
以下是详细步骤: $ G5 Z* V3 E+ p( k; D. U
& r* _$ `4 C) Y4 I; ^$ h
第一步:识别是数据/远程帧还是错误/过载帧
7 M2 }7 b3 c! t  C+ @
  • 数据和远程帧:以帧开始(SOF)位开始,随后是标识符(ID)字段。
  • 错误和过载帧:没有 ID 字段,具有特定的标志和分隔符序列。1 _$ T2 W$ b0 N( F. w) x! ]
    第二步:区分数据帧和远程帧
    . [1 O% r; c5 Q4 }4 B0 Q/ Y对于数据和远程帧,检查控制字段中的远程传输请求(RTR)位:9 b  C6 v4 w0 m+ I2 j0 i, b% K
  • 如果 RTR 为 0,则为数据帧。
  • 如果 RTR 为 1,则为远程帧。$ a  t& o9 f# O# P* x% f% y
    第三步:区分标准帧和扩展帧
    ( d9 s: a; g" B' q7 h6 S" d/ FCAN 帧可以是标准帧(11 位 ID)或扩展帧(29 位 ID)。通过控制字段中的标识扩展(IDE)位区分:
    5 f" W3 x2 N8 x5 Y0 o
  • IDE 为 0:标准帧。
    ( u7 I6 {! m4 C, K* Y+ N
  • IDE 为 1:扩展帧。
    7 s9 z7 d7 d- P5 \7 \8 Y

    2 L6 ~0 n8 a, \. o- u# J& @第四步:区分错误帧和过载帧! u4 w4 b% k! Z" V
    错误帧和过载帧有相似的位模式:6 位标志后跟 8 位分隔符。具体的区分如下:* S+ Z" [! m- b3 Y- ]+ N
  • 错误帧活动错误帧:6 位显性位后跟 8 位隐性位。被动错误帧:6 位隐性位后跟 8 位隐性位。
  • 过载帧:6 位显性位后跟 8 位隐性位。2 O0 t, b/ V; R7 q8 k, T2 ]3 C2 n
    要进一步区分活动错误帧和过载帧,需要考虑传输的时机:1 N! v7 T% ~5 _* n- n- ^
  • 如果该序列出现在数据或远程帧的传输期间,可能是错误帧。
  • 如果出现在完整帧后的间隙期间,可能是过载帧。
    . i! r9 S2 U+ [" E

      X" x6 d# x0 i; @确定 CAN 帧的类型对于理解和管理 CAN 总线通信至关重要。: v3 N7 C# |% p; B5 w* V- Z
    7 \' l$ x# @; @% |
    通过检查特定位和传输时机,可以准确识别帧是数据帧、远程帧、错误帧还是过载帧。此知识对于故障排除和优化基于 CAN 的系统至关重要。
    - Z! @) ^( c% d" Z. t4 e2 R

    lky0mgvajw564014262245.jpg

    lky0mgvajw564014262245.jpg

    $ Z! ~2 Q$ U7 S7 S

    hqmhfa2lae564014262345.gif

    hqmhfa2lae564014262345.gif
    . A9 ~: A- n3 Y' J+ E6 L# J4 x  g
    点击阅读原文,更精彩~
  • 回复

    使用道具 举报

    发表回复

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

    本版积分规则


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