ZHCAA54B January   2022  – June 2022 TCAN1145-Q1 , TCAN1146-Q1

 

  1.   摘要
  2.   商标
  3. 1简介 – 局部联网
  4. 2局部联网应用
    1. 2.1 工作模式和局部联网
    2. 2.2 睡眠模式和局部联网
    3. 2.3 唤醒帧
    4. 2.4 传统高速 CAN、CAN FD 和 PN
    5. 2.5 混合网络信息
  5. 3CAN 帧和唤醒帧
    1. 3.1 CAN 帧结构
    2. 3.2 唤醒帧
      1. 3.2.1 ID 字段匹配
      2. 3.2.2 数据长度代码 (DLC) 匹配
      3. 3.2.3 数据匹配
      4. 3.2.4 CRC 匹配
      5. 3.2.5 Acknowledge 字段匹配
    3. 3.3 错误计数器
    4. 3.4 选择性唤醒 FD 被动
  6. 4选择性唤醒寄存器
  7. 5配置局部联网功能
    1. 5.1 有效 CAN 消息 ID 示例
    2. 5.2 有效数据示例
  8. 6总结
  9. 7参考文献
  10. 8修订历史记录

有效数据示例

在本示例中,CAN ID 不太重要,因为 ID 掩码位 0 被标记为忽略。数据是必须匹配的部分。以下步骤概述了针对该行为配置器件,然后将该器件转换为睡眠状态所需的过程。请注意,启用选择性唤醒后,除非达到某种类型的错误阈值(例如解码错误),否则只有特定或所需的 WUF 才能唤醒器件。
表 5-3 有效数据示例
参数 示例值
所需的 WUF ID 标准 ID(11 位)0x122/123
ID 掩码 0×001(匹配除位 0 以外的所有位,1 = 忽略,0 = 必须匹配)
总线仲裁速率/CAN FD 速率 500kbps/2Mbps
忽略 CAN FD
WUF DLC 2 字节(DLC:0×2)
要唤醒至的 WUF 数据位 字节 0[1]、字节 1[7]

对示例参数值进行分解后,WUF ID 为 0×123 或 0×122。写入寄存器的值与输入两者中的哪一个无关,因为会使用 ID 掩码将位 0 标记为忽略。通过将 ID 掩码的位 0 设置为 1,我们使器件忽略该位,这意味着器件将接受 0×122 或 0×123 ID。本例中的 CAN FD 总线的仲裁和数据速率分别为 500kbps 和 2Mbps。该理论总线是 CAN FD 总线,因此我们希望做到在某些节点处于睡眠状态时产生常规 CAN FD 流量,从而将 SW_PASSIVE 设置为 1b。

图 5-2 有效数据示例:数据有效负载验证

该示例的一处更改是对数据有效负载进行一些验证。请注意,数据有效负载检查需要 DLC 完全匹配,但检查 WUF 数据位的方式仅是按位或。例如,会根据有效负载检查设置为 1 的位,如果任何单个(或更多)位匹配,则将其视为匹配。同样,如果将 WUF 数据掩码设置为 0×FF,则任何包含等于 1 的位的值都将匹配。如果将 WUF 数据掩码设置为 0×00,则该特定字节本质上会被忽略,无法匹配,即使接收到的数据是 0×00 也是如此。会将该或运算应用于所有配置的数据字节(由 DLC 字段设置)。表 5-4 提供了一个示例,用于说明如何针对该行为对器件进行编程。

表 5-4 有效数据编程
步骤 说明 寄存器 寄存器(十六进制) 数据(十六进制) 原始十六进制值
0 禁用选择性唤醒 SW_CONFIG_4 0×47 0×00 0×8F、0×00
1 写入所需的 WUF ID (0×123) SW_ID1 0×30 0×00 0×61、0×00
2 写入所需的 WUF ID (0×123) SW_ID2 0×31 0×00 0×63、0×00
3 写入所需的 WUF ID (0×123) SW_ID3 0×32 0×04 0×65、0×04
4 写入所需的 WUF ID (0×123) SW_ID4 0×33 0×8C 0×67、0×8C
5 将 ID 掩码写入 (0×001) SW_ID_MASK1 SW_ID_MASK1 0×34 0×00 0×69、0×00
6 将 ID 掩码写入 (0×001) SW_ID_MASK2 SW_ID_MASK2 0×35 0×00 0×6B、0×00
7 将 ID 掩码写入 (0×001) SW_ID_MASK3 SW_ID_MASK3 0×36 0×00 0×6D、0×00
8 将 ID 掩码写入 (0×001) SW_ID_MASK4 SW_ID_MASK4 0×37 0×00 0×6F、0×00
9 写入 ID 掩码 (0×001)、DLC (2) 和 DATA_MASK_EN (1) SW_ID_MASK_DLC 0×38 0×25 0×71、0×25
10 写入数据 0 (0×01) DATA_0 0×39 0×01 0×73、0×01
11 写入数据 1 (0×80) DATA_1 0×40 0×80 0×75、0×80
12 配置仲裁速度、FD:CAN 比率和 SW_FD_PASSIVE (1) SW_CONFIG_1 0×44 0×D0 0×89、0×D0
13 将帧溢出设置为 255(唤醒前的最大错误数) SW_CONFIG_3 0×46 0×FE 0×8D、0×FE
14 设置 SWCFG 位(配置完成) SW_CONFIG_4 0×47 0×80 0×8F、0×80
15 启用选择性唤醒并进入睡眠状态 MODE_CNTRL 0×10 0×81 0×21、0×81