小母狗 文爱 CAN报文的发送类型Cyclic、OnChange、OnWrite、IfActive…,你齐搞领路了吗?
发布日期:2025-07-01 07:04 点击次数:123
咱们在用CANoe进行CAN总线的测试时小母狗 文爱,会发现CAN报文的发送类型有许多种,有些类型不太容易判辨,有些类型之间又容易欺侮,一不谨防就会用错,今天咱们就来先容下CAN报文的发送类型。
CAN报文的发送类型分为基本发送类型和夹杂发送类型两大类。
基本发送类型包括Cyclic周期发送、OnChange变化时发送、OnWrite写入时发送和IfActive灵验时发送。
基本发送类型中的Cyclic称为周期型,而其他3个类型称为事件型(event)。
夹杂发送类型即是指基本类型中的周期型与事件型的组合,包括Cyclic and OnChange、Cyclic and OnWrite、Cyclic and IfActive。
1.基本发送类型
1.1 Cyclic周期发送
周期发送是指报文独处于信号,按照固定的周期发送,也即是报文的发送与报文中的信号变化没干系系。
周期性发送报文是咱们最常用的报文,这类报文中包含的庸碌齐是需要时时使用大略变化频率较高的信号,比如车速、转速等信号。
图片
Cyclic周期性发送报文示例如上图示例所示,ID为201的报文按照200ms的固定周期发送车速信号,车速信号在这个技能会有些变化,从52->51->52->53>,然而不管信号奈何变化,报文周期齐是6.8-6.6=7.0-6.8=7.2-7.0=200ms。
周期型报文就像大城市的公交汽车,报文中的信号就像是搭车的东说念主员,一朝公交汽车发车周期详情了,比如10分钟,则每断绝10分钟齐会有一辆车从始发站启动后发出,不管车上有几个东说念主,齐会依期发送。
图片
周期型报文(公交车)按固定时刻发送,即使信号为0(空车)也要发送
1.2 OnChange变化时发送
变化时发送是指当报文中的信号变化时,报文才会发送。
这类报文中包含的庸碌齐是变化频率不高的信号,比如通过中控屏进行的按键调理信号,OnChange报文的见识是为了简约总线资源。
图片
OnChange变化时发送报文示例
如上图示例所示,ID为368的报文为OnChange变化时发送的报文,假如现时的背光亮度为30,此时总线上莫得368报文;
此时通过中控屏的触摸按键将背光建造改为32,则中控屏会发出一帧ID为368,背光信号为32的报文。
1.3 OnWrite写入时发送
写入时发送是指当报文中的信号被再行写入时,报文才会发送。这里的再行写入主若是指在测试软件中对信号的再行建造写入,在ECU中也不错觉得是利用层对底层通讯信号的写入。
OnWrite与OnChange的主要区别是OnWrite再行写入不一定即是数值的转变,也不错保合手不变。
如故以中控屏的背光建造为例,比如背光原本为30,不错再次建造为32,建造后又赓续建造了两次,但齐是32,并莫得转变这个值。
图片
OnWrite写入时发送报文示例
以上示例中,临了两帧的背光信号齐是32,对比第2帧并莫得转变,然而中控屏依然会发出这两帧,因为齐是写入的操作。
这里要细心的是发送时刻齐是及时当场的时刻(中控按键说明的时刻),并莫得固定发送周期。
1.4 IfActive灵验时发送
灵验时发送是指当报文中的信号为灵验值时,报文会以一个快速的周期(cycle time fast)发送,当信号变为无效时,报文就不再发送。
无效值Inactive Value也即是默许值,比如BCM的报文ID是380,其中的DoorOpen门开信号的无效值是0,示意门关,灵验值是1示意门开,快速周期为100ms。
驱动气象为门关,总线上莫得报文,当门开灵验,即门开信号为1时,380报文立即以100ms为周期发送报文;当门关后,即门开信号为0时,报文立即停发。
图片
IfActive灵验时发送报文示例
以上示例中,报文是以快速周期100ms发送的,不发送时就示意门开信号为0(无效)。
OnChange、OnWrite和IfActive齐属于事件型报文,这类报文就像在出租车站点恭候的出租车,没东说念主打车的时候不需要起程,只须乘客打车时才会起程,不然无数的空载出租车在说念路上行驶,不仅莫得作用,反而容易挤占说念路资源,形成说念路拥堵。
图片
事件型报文(出租车)莫得信号触发(无东说念主打车)时不需要发出
1.5 Repetitions重叠发送参数
关于基本型中的OnChange、OnWrite来说,它们天然不是周期发送,然而并不是说只可发一次,也不错发送屡次。关于IfActive来说,也不错按快速周期发送的同期截至发送次数。而发送次数是通过界说Repetitions重叠次数来结束的。
是以基本型中又生息出3个子类型OnChangeWithRepetition、OnWriteWithRepetition和IfActiveWithRepetition。
比如在OnChangeWithRepetition子类型中,如果建造了Repetitions=3,则报文会运动发送三次,三次之间的时刻不小于最小报文发送的蔓延时刻Delay time。
图片
OnChangeWithRepetition示例细心运动发送报文的时刻断绝齐比拟短,然而也不可小于最小报文发送的蔓延时刻Delay time,示例中的断绝为100ms。
再比如在IfActiveWithRepetition子类型中,Repetitions=2,快速发送周期cycle time fast=100ms,则报文只发送两帧。
图片
IfActiveWithRepetition示例
细心此时报文的发送周期是按照cycle time fast快速周期时刻100ms发送,天然与上头的断绝时刻100ms十分,然而含义不同。
2.夹杂型
2.1 Cyclic and OnChange
周期和变化时发送是指报文平时是周期性发送,当报文中的信号变化时,此报文会罕见的发送一次,原本的周期不变。
图片
Cyclic and OnChange示例
如上图示例所示,其中的第3帧即是罕见发送的帧,它的发送时刻为6.920s,是个及时的当场时刻,不是按照周期发送的。
2.2 Cyclic and OnWrite
周期和写入时发送是指报文平时是周期性发送,当报文中的信号被再行写入时,此报文会罕见的发送一次,原本的周期不变。
图片
Cyclic and OnWrite示例如上图示例所示,其中的第3帧和第5帧即是写入时罕见发送的帧,它们的发送时刻永别为6.920s和7.110s,齐是及时的当场时刻,不是按照周期发送的。
细心第5帧的再行写入数据仍然是32,莫得转变,这亦然OnWrite与OnChange的主要区别。
2.3 Cyclic and IfActive
周期和灵验时发送是指报文平时是按闲居周期cyclic time发送,当报文中的信号为灵验值时,报文会按IfActive报文的快速周期cyclic time fast发送,比及信号变为无效值时,报文又会收复到原本的闲居周期发送。
图片
Cyclic and IfActive示例如上图示例所示,其中前4帧是按闲居周期1s发送,信号为无效值0;从第5帧驱动,当信号变为灵验值1时,则按照快速周期100ms发送,是以中间4帧是快速发送。背面4帧,信号又收复为无效值0,周期也收复为闲居周期1s。
快速周期时刻 cycle time fast这个参数仅在IfActive超过组合的类型中使用。
夹杂型的报文就像旅游景点的接驳班车,平时东说念主少时(基本不变),不错慢周期发车;比及节沐日乘客一霎许多(变化)时就临时改为快速发车。这么平时不错较少的占用说念路资源,沐日历间又不错处置临时客流量大的问题。
图片
夹杂型的报文(接驳班车)发送周期平时慢,伏击时快
图片
信号触发(东说念主流量变化)时需要快速的把音书发送出去
3利用实例
在实践使用时,有些信号波及到彼此同步的问题,比如面目和中控的背光建造。
传统居品中,面目的按键不错建造面目屏的背光亮度,中控按键不错建造中控屏的背光亮度。在智能座舱的架构中,但愿面目和中控的背光能一体化联动,同步变化。也即是通过面目或中控齐不错建造车内屏幕的长入亮度,这时就需要面目和中控信号同步,彼此发送背光亮度信息。
如果面目和中控齐按周期报文发送,两者是不错及时同步,一方发现对方的需求与我方不同期,与对方同步即可。
五月桃色网但这种形状也有盘曲,即是对软件处理的时序条目很高,比如在中控系统上进行手动建造后,在中控发出新的报文给面目时,面目在未收到新报文前如故将包含旧数值的报文发给中控系统,而中控系统误以为这个旧报文是面目的新建造,就会导致面目和中控两者不息地向对方同步,堕入死轮回,背光一直在跳变,无法达成妥当气象。
这种情况条目软件上必须在数据变化发送时作念对方报文的延时处理,也即是短时刻内不接受对方的报文,以辞让被对方旧的数据干涉。
还有一种简化的本领即是一方为周期型发送,另一方为事件型发送。比如面目(假定ID=350)为周期发送,发送周期为500ms;中控为OnChange有变化时发送,变化时重叠发送3帧,则报文如下:
图片
面目中控背光同步发送由上图示例可知:
1-4帧为面目发送的周期帧,周期为500ms,背光为30;
5、6、7三帧为中控发送的事件帧,运动发了三帧,断绝为100ms,背光改为32;
8、9帧为面目收到中控发来的事件型报文后,同步更新本身的背光亮度值后发出的周期帧,周期仍然是500ms。
这种形状将面目的背光信号定为周期型发送,不错保证较好的同步及时性,将中控定为事件型形状发送,不错幸免两者参预死轮回的可能。然而中控会有被面目的旧信号隐敝的可能,是以中控中仍需要作念报文的延时处理,然而举座上来看,这种形状风险更低、处理更神圣。
小结:
CAN总线的报文发送类型主要包括周期型和事件型,周期型即是按照固定周期发送,与具体发送的信号无关。事件型不按周期发送,是按照信号的特色发送,具体分为信号变化时发送、信号写入时发送和信号灵验时发送。周期型与事件型还不错永别组合成夹杂型。
周期型的特色是妥当、可靠,及时同步效用好,但占用总线资源多;事件型的同步效用没那么好小母狗 文爱,然而占用总线资源少!
本站仅提供存储劳动,悉数内容均由用户发布,如发现存害或侵权内容,请点击举报。