深入解析STM32-LIN总线通信协议

.硬件规范:

1.总线形式:一主多从

 2.总线通常为12V电压,最高波特率20K,最多容纳16个节点。

  1. 也有24V,和其他电平
  2. 需要共地。

3.总线上波形

4. 单片机STM32与LIN收发器在LIN_CAN开发板上设计。

  1.  1K电阻自动控制电路,采用了NPN三极管+PMOS管进行控制,当LIN_RES_CTL为高电平时,MOS导通,12V上拉。当LIN_RES_CTL低电平时,PMOS判断,LIN引脚悬空。

2. 与单片机的连接和收发器本身的连接:

   单片机使用串口,其TXD-TXD,RXD-RXD 不需要交叉连接。

    注:收发器的引脚为开漏模式,所以引脚配置的时候要启用上拉。或者硬件设计加上拉。

注意:由于收发器的特性,通过单片机上发送的数据会和总线耦合后返回到RXD上面。实际处理的时候要注意。

更多关于收发器TJA1020T的可以参考其手册。

.数据规范

总的来说:就是下面的这个波形:

  1. 断开帧(同步间隔段):STM32单片机可以直接发出或者接收时进行判断。
  2. 同步段:交替的0/1也就是STM32单片机,发送数据:0x55.
  3. 受保护ID段+数据段+校验和:就是串口发送数据。
  4. 总线上所有的:数据都是符合串口的数据(8位数据,1起始,1停止位)。

综上所述:LIN总线了除了断开帧(同步间隔段),其它都可以用串口的方式来处理。

还有就是:由于收发器的特性,发送的数据会和总线耦合后返回到接收端。

.软件规范:

 精简来说:就是一个主机进行调度使主机之间进行数据交换。

1.作为主机,需要处理:

     a 主机和从机之间的通信

         i.  主发送

         ii.  主接收

    b  从机和从机间的通信

        i . 主机启动。 从机进行数据交换。

  2. 作为从机,需要处理 

        a 接收主机数据

        b 返回到总线数据(也许是给主机,也许是总线上其它的从机,但是形式才是返回数据到数据到总线)

  

物联沃分享整理
物联沃-IOTWORD物联网 » 深入解析STM32-LIN总线通信协议

发表评论