• 426查看
  • 0回复

[网络开发] CAN总线指定帧唤醒的硬件实现方式

[复制链接]


该用户从未签到

发表于 3-3-2024 09:53:33 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


CAN的指定帧唤醒是一种网络管理的场景,对于我这个偏硬件的工程师来说,网络管理也就是通过CAN来唤醒不同的ECU,而指定帧唤醒就是特定的某些CAN ID的报文能够唤醒ECU。

讲到CAN总线就必须要涉及到跟CAN总线相关的稍微“高级”一点的用法,那就是指定帧、任意帧唤醒的一点知识。最近也是接触到了一些可能需要同一个网络上某些节点唤醒而另外一些节点不用唤醒的案例,但在分配网络管理帧的时候依然遇到一些问题,针对这种最经典的应用案例,在没有广泛了解CAN ID如何分配的前提下,我觉得可能有解决方案,正所谓不知者无畏。





指定帧唤醒的硬件基础

从目前应用最为广泛的带指定帧唤醒的CAN收发器TJA1145的管脚定义如下,其中跟唤醒相关性最强的就是INH脚,规格书上这个注释直译是“禁止输出以切换外部稳压器”,其实不用整这么麻烦,它的用途就是当CAN总线上有唤醒帧的时候,INH会置位变成高电平可以用来使能外部的电源芯片。

CAN总线指定帧唤醒的硬件实现方式w2.jpg

从TJA1145的芯片内部示意图里面可以看到大概的用途,当报文过滤器的的报文与唤醒帧寄存器相匹配的时候,COMPARE LOGIC就会认为检测到唤醒帧,然后就会闭合INH内部的开关,让INH脚输出12V。

CAN总线指定帧唤醒的硬件实现方式w3.jpg

所以从上面看来,CAN唤醒需要硬件配合来实现才行,下图就是比较典型的一种网络管理唤醒的硬件拓扑,首先带唤醒的CAN收发器必须要12V常电供电,另外INH脚需要连接到电源芯片的使能脚,这时当CAN总线上有网络管理帧的时候,INH变成高电平去唤醒电源芯片,就完成了一次完整的网络管理唤醒。

CAN总线指定帧唤醒的硬件实现方式w4.jpg

下图这个是TJA1145芯片手册中推荐的应用电路,基本上跟我画的拓扑差不多,如果有兴趣的话可以直接去网上下载TJA1145的芯片手册去了解一下。

CAN总线指定帧唤醒的硬件实现方式w5.jpg





指定帧唤醒的配置方式

在芯片内部框图可以看到有一个Wakeupframe configuration memory,这个寄存器就是用来配置唤醒报文的。之前我也讲到过CAN报文的格式,其中CAN ID是11位,也就是从0x000~0x7FF这个范围。一般来说定义网络管理帧是各个主机厂自己定义的,常用的包括0x4xx,0x5xx,0x6xx,0x7xx都是有人用的。

CAN总线指定帧唤醒的硬件实现方式w6.jpg

对于配置指定帧的寄存器,分为两个部分,一个是11位的CAN ID区域,一个是11位的ID mask区域。用通俗一点的语言就是CAN ID区域就是用来标注制定帧的具体唤醒ID,而mask区域与之相对应的位里面,如果是0,就表示对应的ID那一位是需要必须满足的,如果是1,就表示对应的ID那一位可以不用关注。因此在规格书上的这个例子就是表示唤醒帧是00110100xxx,后三位xxx可以是0也可以是1,所以网络管理唤醒帧的范围就是从0x1A0到0x1A7。

还是上面这个例子,如果ID mask中放开的位数只有1个,那就表示只有2个ID的报文才能唤醒CAN收发器。假设ID mask是0000000 0100,那对应的制定CAN ID就是0x1A4,0x1A0。我们如果把这2个ID分配成一个收,一个发并且给到同一个ECU,这样的话,我们就能够实现精准的网络管理唤醒,对于同一个网络的不同节点,虽然都支持指定帧唤醒,但是我依然可以用不同的网络管理帧来实现不同的唤醒需求。



总结
      当然这个只是从理论上来说一下网络管理唤醒的理想状态,在实际应用过程中,同一个CAN总线上不同的节点之间一般都是存在相互通讯的需求,只唤醒某些节点必然会导致其他节点校验出来报文丢失的故障,因此实际应用中,配置网络管理通常是直接配置一个网段,例如上面我说到的0x4xx,0x6xx这种。




该用户从未签到

发表于 14-3-2025 14:12:00 | 显示全部楼层
针对CAN总线指定帧唤醒的硬件实现方式,通常涉及以下步骤:

1. ECU硬件设计中集成CAN控制器模块,并配置相应的CAN通信参数。
2. 在ECU内部设置特定CAN ID的帧监听机制。当接收到指定的CAN ID帧时,ECU被唤醒并执行相应动作。
3. 控制器硬件设计时需考虑低功耗模式及唤醒机制,确保在接收到指定帧时能够迅速响应并恢复工作状态。
4. 对于网络管理,需合理分配CAN ID,确保不同节点间通信不受干扰。具体的CAN ID分配应根据网络拓扑、节点数量及通信需求来综合考虑。

在实际应用中,确保硬件设计与软件编程协同工作,以实现稳定可靠的指定帧唤醒功能。对于复杂的应用场景,还需进行充分的测试验证。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 14-3-2025 14:12:00 | 显示全部楼层
针对CAN总线指定帧唤醒的硬件实现方式,通常涉及以下步骤:

1. 在硬件设计中,为ECU配置CAN总线接口。
2. 通过硬件逻辑电路或微控制器中断服务程序来监听特定的CAN ID报文。
3. 当接收到匹配指定CAN ID的报文时,ECU被唤醒,开始正常的工作模式或执行相关任务。

在实际应用中,需要注意以下几点:

* 合理分配CAN ID,确保不同ECU之间的通信互不干扰。
* 硬件设计应具有低功耗模式,以延长电池寿命。
* 在硬件层面进行容错设计,如校验码、重发等机制,确保通信的可靠性。

总之,实现指定帧唤醒的关键在于正确配置ECU的CAN接口和相应的硬件逻辑。这样,当网络中的特定节点发送匹配CAN ID的报文时,ECU能够迅速响应并完成任务。
回复 支持 反对

使用道具 举报

快速发帖

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

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 19-8-2025 10:53 , Processed in 0.342374 second(s), 36 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.