.硬件规范:
1.总线形式:一主多从
2.总线通常为12V电压,最高波特率20K,最多容纳16个节点。
- 也有24V,和其他电平
- 需要共地。
3.总线上波形
-
单片机STM32与LIN收发器在LIN_CAN开发板上设计。
-
1K电阻自动控制电路,采用了NPN三极管+PMOS管进行控制,当LIN_RES_CTL为高电平时,MOS导通,12V上拉。当LIN_RES_CTL低电平时,PMOS判断,LIN引脚悬空。
- 与单片机的连接和收发器本身的连接:
单片机使用串口,其TXD-TXD,RXD-RXD 不需要交叉连接。
注:收发器的引脚为开漏模式,所以引脚配置的时候要启用上拉。或者硬件设计加上拉。
注意:由于收发器的特性,通过单片机上发送的数据会和总线耦合后返回到RXD上面。实际处理的时候要注意。
更多关于收发器TJA1020T的可以参考其手册。
.数据规范
总的来说:就是下面的这个波形:
- 断开帧(同步间隔段):STM32单片机可以直接发出或者接收时进行判断。
- 同步段:交替的0/1也就是STM32单片机,发送数据:0x55.
- 受保护ID段+数据段+校验和:就是串口发送数据。
- 总线上所有的:数据都是符合串口的数据(8位数据,1起始,1停止位)。
综上所述:LIN总线了除了断开帧(同步间隔段),其它都可以用串口的方式来处理。
还有就是:由于收发器的特性,发送的数据会和总线耦合后返回到接收端。
.软件规范:
精简来说:就是一个主机进行调度使主机之间进行数据交换。
1.作为主机,需要处理:
a 主机和从机之间的通信
i. 主发送
ii. 主接收
b 从机和从机间的通信
i . 主机启动。 从机进行数据交换。
- 作为从机,需要处理
a 接收主机数据
b 返回到总线数据(也许是给主机,也许是总线上其它的从机,但是形式才是返回数据到数据到总线)