CAN报文发送类型
报文发送类型有周期型Cycle、事件型Event、周期事件型CycleEvent(简称CE)、激活型IfActive
周期型Cycle最简单,就是按照固定周期循环发送的报文。
事件型Event平时不发送,当事件发生的时候才发送一段时间后停发。
周期事件型CE就有点复杂了,他有两个周期,快发周期和慢发周期,平时按照慢发周期(譬如100ms),事件发生的时候按照快发周期(譬如20ms)发一段时间后切换回慢发周期。
激活型IfActive平时不发送,状态激活的时候才发送。
CAN信号发送类型
信号发送类型有周期型Cycle、变化重复发送型OnChangeWithRepetition、变化不重复发送型OnChangeWithoutRepetition、写入重复发送型OnWriteWithRepetition、写入不重复发送型OnWriteWithoutRepetition、激活重复发送型IfActiveWithRepetition、激活不重复发送型IfActive
周期型Cycle也称Pending,就是按照固定周期循环发送的信号,一般在周期型发送的报文里面。
变化重复发送型OnChangeWithRepetition也称OnChange,数据有变化的时候才发送,会按照指定周期重复发送一段时间后停发。
变化不重复发送型OnChangeWithoutRepetition数据有变化的时候发送,但不会重复发送。
写入重复发送型OnWriteWithRepetition也称OnWrite或者Triggered,写入(一般就是发生事件)就会发送,会按照指定周期重复发送一段时间后停发。
写入不重复发送型OnWriteWithoutRepetition也称TriggeredWithoutRepetition写入(一般就是发生事件)就会发送,但不会重复发送。
激活不重复发送型IfActiveWithoutRepetition也称IfActive,激活状态下才会发送,会按照指定周期重复发送一段时间后停发。
激活重复发送型IfActiveWithRepetition激活状态下才会发送,但不会重复发送。
CAN信号恢复默认值方式
信号恢复默认值在不同的报文里面有不同的方式
周期型报文Cycle不涉及这个
事件型报文Event里面的信号每次停发之后都会变成默认值
激活型报文IfActive和周期事件型报文CycleEvent里面的信号按照恢复默认值方式分为保持型和非保持型。拿周期事件型报文来举例,如果里面的信号是保持型,事件发生时信号值会变成一个非默认值,事件结束后信号数值依然会保持为这个非默认值。如果里面的信号是非保持型,事件发生时信号值会变成一个非默认值,事件结束后信号数值就会恢复默认值。