都知道LIN的结构如上,但有些细节还是要留意的
1.
Break + Sync(0x55) + ID + Data Byte + Check-sum
每一个都是8bit, 所以配上LIN transeiver,是可以用 SCI来模拟 LIN 的
(区别1: LIN idle 是 12V, SCI 3.3V?
区别2: Break其实是11bit/13bit 0,但在单片机设置寄存器的时候,
是有选项让它要SCI先发一个13bit 0 的)
2.
发送数据是从Byte 0 到7, 但是 byte里面则是 先发 bit7 到 bit0;
所以bit26 就是从左到右 byte4 里面 从左到右 第5位
3.
LIN 有 1.0 和 2.0 两个版本, 区别是 checksum的极端方法不一样
LIN 1.0 用得是 classic, checksum 只与 data 有关
byte 0 + byte n + checksum = 0xFF 的整数倍
LIN 20 用得是 enhanced, checksum 与 data 和ID 有关
ID + byte 0 + byte n + checksum = 0xFF 的整数倍
4.
LIN transceiver 就是一个电平转换器?
输入是LIN,输出是TXD和RXD (5V或者3.3V)
所以说在另一边用单片机SCI监听着TXD, 收到 0x00, 0xFF 后, 后面的几位就是 ID , data 和 checksum 了