单片机/MCU论坛
直播中

李继明

7年用户 1074经验值
私信 关注

请问如何让LIN SLAVE的TX RESPONSE用准确的固定周期发送 ?

我使用 tviibh8m 里面的 LIN SLAVE 示例,自己增加了五个 LIN ID 分别是 0x14、0x15、0x16;0x17、0x18,并将 CANOE 配置成 100 MS 发送 LIN HEADER,但是收到的回应并不总是 100 MS,有办法让它是 100 MS吗 ?


我注意到当我只有发送一个 LIN ID 的 HEADER 时,会固定 100 MS 收到回应,但是当发送多个 LIN ID 的 HEADER 时,就会开始有误差,而非 100 MS
只有一个 LIN ID : 0x14 时,前后两个 LIN 回应的时间差接近 100 MS

发送三个 LIN ID : 0x14 0x15 0x16 时,开始出现误差

我是从 LIN SLAVE 的示例修改过来,只有增加五个 LIN ID,其余保持不变
                                                                                                                                                                                                                                                                                                                                                                                               

回帖(2)

李翰肃

2024-1-25 15:10:13
我认为slave的TX RESPONSE 的发送周期主要还是由 Master 端请求帧的周期决定的
举报

话多显蠢

2024-1-25 17:07:33
要让LIN SLAVE的TX RESPONSE在固定周期内发送,你可以尝试以下几个方法:

1. 确保主控器发送LIN HEADER的间隔是准确的100ms。可以通过在主控器的CANoe配置中设置发送间隔来实现。

2. 检查LIN SLAVE代码中的延时设置。确保在接收到LIN HEADER后,LIN SLAVE的响应发送之前没有其他的延时操作或等待时间。

3. 检查LIN SLAVE的缓冲区设置。确保接收和发送缓冲区的大小足够大,以避免数据堆积导致发送延迟。

4. 检查LIN SLAVE的中断处理。确保中断处理程序能够及时响应并发送TX RESPONSE。

5. 如果你的系统中有其他任务或中断可能会干扰LIN SLAVE的工作,请优化系统的调度和中断处理,以确保LIN SLAVE有足够的时间和资源来发送TX RESPONSE。

请注意,以上方法可能需要根据你的具体情况进行调整和优化,以确保在多个LIN ID的情况下能够实现准确的100ms发送周期。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分