LIN总线多从机与主机通信(控制+反馈)

时间:2024-02-23 16:41:37

概念

首先要明确以下两点:

  • LIN 总线通信方式为主从机通信,属于异步通信
  • 帧头 + 数据帧”才算一完整报文

 

设计方案

多从机与主机通信数据流(控制+反馈)如下:

  • 一号从机:
  1. 第一次进入中断,一号从机判断接收到主机帧头,分析 LIN 总线帧头 ID 是否为该从机控制指令,若是,从机则置位标志位 One_Flag = 1再判断是否接收到主机报文数据,若是,对数据分析处理。
  2. 第二次入中断,判断接收到主机帧头,分析 LIN 总线帧头 ID 是否为反馈指令,若是,则表示从机需要发送数据(主机无报文数据,提供帧头),打包从机数据,向主机发送数据,清空标志位 One_Flag = 0

此时,主从机通过 LIN 总线互相通信完成,其中一共有两帧报文:

1. 主机的帧头和主机的数据帧组成的一帧报文

2. 主机的帧头和从机的数据帧组成的一帧报文。

注:只有主机才有发送帧头的权利,从机没有权利,且 完整的报文 = 帧头 + 数据帧

  • 二号从机:
  1. 第一次进中断后,分析LIN总线帧头ID 是否为该从机控制指令,若是,从机则置位标志位 Two_Flag = 1;其它上述一致。

 


 

总结

所以,若向多个(>=2)从机索要数据,至少进行两帧报文传输,一是确定哪个从机,二是发送帧头接收该从机发送的数据,以此组成一完整报文。