前言
参考文章:
LIN节点结构和主要技术特点
LIN-报文结构
LIN报文是通过帧头(Header)和应答(Response)共同组成的。相比CAN报文发送,只需要输入响应的ID,填充响应的发送数据,即可将数据发送到总线上。LIN总线是区分主机和从机的:主机任务负责发送帧头,从机任务接收帧头并对帧头包含的信息进行判断从而决定是否发送应答。
主机任务只存在于主机,从机任务即可存在从机、又可存在于主机!
一、调度表
调度表规定了总线上帧的传输次序(调度Header)以及各帧在总线上的传输时间。
调度表位于主机节点,主机任务根据应用层需要进行调度。调度表可以有多个,一般情况下,轮到某个调度表执行的时候,从该调度表规定的入口处开始顺序执行,到调度表的最后一个帧时,如果没有新的调度表启动,则返回到当前的调度表第一个帧循环执行;也有可能在执行某个调度表当中发生中断,执行另一个调度表后再返回,如事件触发帧的冲突解决过程就是一个典型的例子,如下图所示。
只有一个调度表时,采用循环执行
三个调度表存在时,顺序执行
切换到另外一个调度表时,一定要等到当前时隙的结束
调度表发生中断
调度表除规定了帧 ID 的传输次序外,还规定了帧时隙(Frame Slot)的大小。
帧时隙是调度表规定的一个帧的帧头起始到下一个的帧的帧头起始的时间。
每个帧的帧时隙都可以不同,帧时隙必须为时基的整数倍 .
时基(Time Base)为LIN子网的最小计时单位,通常设定为 5ms或 10ms。
一个帧时隙对应了调度表的一个入口,如图所示,其中 i = 1~8。
并且起始于时基的开始时刻(称为时基的节拍(Tick)),切换到另外一个调度表时一定要等到当前帧时隙的结束。
其中TFrame_Maximum 为帧在总线上传输的最大时间 。
抖动(Jitter)为帧的同步间隔段的下降沿与帧时隙起始时刻相差的时间 。
二、CANoe 调度表配置
配置调度表:在菜单栏如下位置选择Create Schedule Table,添加帧的调度表。
将需要的Frame拖动到调度表中。
配置时序:选择Nodes/Frames,点击左侧方框中的主节点名称,这里是LIN_Master,并选择调度表中的报文。此时右侧方框如下图所示,根据客户需求分别修改Delay(时隙)、Timebase(基时)、Jitter(偏移)。
三、总结
调度表一般在网络系统设计阶段确定,由主机厂提供。
因为规定了帧的发送顺序,使得总线通信次序具备较大程度的可预见性。调度表的存在,使得LIN通信具有可预测性。