LIN通信方式为主从机通信,属于异步通信。
其中帧头+数据帧才算一完整报文,多从机与主机通信数据流(控制+反馈)如下:
一号从机:
第一次进入中断,一号从机判断接收到主机帧头,分析LIN总线帧头ID 是否为该从机控制指令,若是,从机则置位标志位One_Flag = 1;再判断是否接收到主机报文数据,若是,对数据分析处理。
第二次入中断,判断接收到主机帧头,分析LIN总线帧头 ID 是否为反馈指令,若是,则表示从机需要发送数据(主机无报文数据,只提供帧头),打包从机数据,向主机发送数据,清空标志位One_Flag = 0;
此时,主从机通过LIN总线互相通信完成,其中一共有两帧报文:
1. 主机的帧头和主机的数据帧组成的一帧报文
2. 主机的帧头和从机的数据帧组成的一帧报文。
注:只有主机才有发送帧头的权利,从机没有权利,且 完整的报文 = 帧头 + 数据帧
二号从机:
第一次进中断后,分析LIN总线帧头ID 是否为该从机控制指令,若是,从机则置位标志位Two_Flag = 1;其它上述一致。
所以,若向多个(>=2)从机索要数据,至少进行两帧报文传输,一是确定哪个从机,二是发送帧头接收该从机发送的数据,以此组成一完整报文。