LIN 的调度表周期和应用任务周期不一致的问题分析
背景:
客户使用CANoe工程的LDF周期为80ms,实际客户输入LDF周期为50ms。需求中短按标志位要求置位一个周期,当使用长周期的调度表时会偶发短按标志位完成从0到1再到0的过程,表现就是偶发无短按报文发出。
软件设计:
针对客户输入的不同周期的LDF调度表对发送的报文帧数做出有效补偿。举例说明,客户输入的 LDF调度表周期为80ms,软件的任务周期为50ms,可以使用连续发送两帧的方式去实现补偿。应用层只管数据逻辑置位,驱动层负责数据逻辑复位。实现细节:
根据驱动层的PID控制软件的行为,应用层检测到短按的时候加锁,驱动层发送完的时候解锁。
后记:
LIN驱动的物理层中使用的是frameid,根据收到的帧头做出判断逻辑保证frame发送行为和 LDF周期表动态绑定。