用于汽车网络的LIN协议分析
来源:21IC 作者:—— 时间:2011-10-24 15:39
校验和错误-每一条消息的内容都是由校验和字节进行保护。
奇偶校验错-命令字节的6个数据位由两个奇偶校验位进行保护,需要重新进行计算这些位并比较。如果错误出现,应当忽略当前命令并且记录下错误。LIN协议中没有直接的错误报告机制,但每一个从节点应当跟踪其自身的错误,主节点可以要求从节点将错误状态作为正常消息协议的一部分来传输。
LIN总线与CAN总线
LIN协议并不直接与CAN总线兼容,但人们期望两者进行相互操作。CAN总线可能用在整个汽车内来实现通信,而LIN总线仅用在汽车的局部电路内,如车门。为了连接两种总线,需要采用CAN-LIN协议接口节点,该节点从LIN总线节点收集信息然后传送到CAN总线上。
低功耗睡眠模式
主节点通过发送标识码0x80指示所有节点进入睡眠模式,睡眠命令后面跟随的数据字节的内容没有定义。收到睡眠命令的从节点应当对本身进行设置,以便当总线发生改变时能唤醒,并关闭自身的电压以使电流消耗最低。当处于睡眠模式时总线将处于高电平并且不消耗电流。
任意一个节点都可以通过发送唤醒信号来唤醒总线。当收到唤醒信号后,一般情况下所有的节点应当激活并等待主节点开始总线轮询。
硬件示例
图3给出了有两个按钮和三个LED组成的硬件示例。每按动十下按钮1 LED1改变一次状态。同样,每按动十下按钮2,LED2改变一次状态。作为标识为ID1的响应,按钮的按动次数被传送到总线上。作为标识为ID4的响应,按钮的按动次数的刷新被传送到总线上。
软件操作
LIN协议程序工作在由RB0触发的中断下以实现总线的睡眠/唤醒。在触发中断时,程序对低电平数据位的长度进行计数,然后读同步字节并确定数据位时间,最后再将其与最初的数据位时间进行比较,以确定最初的低电平时间是否大于10个数据位的时间,大于10为同步中断,小于10为唤醒信号。如果是唤醒信号,程序退出并继续等待同步中断;如果是同步中断,程序就读取命令字节,检查奇偶位并检查动作表(action table)来确定接下来的动作。动作表定义了总线上数据的来源或目的地。
为了初始化LIN协议的从节点句柄(Slavehandler),用户必须调用InitLinSlave程序,这个程序初始化RB0中断引脚和TMR0寄存器。TMR0寄存器用来测量数据位的长度并生成波特率。初始化完成之后,用户可以执行自己的程序。一旦检测到RB0引脚上的下降沿,用户程序就将被中断。当检测到下降沿时,程序就跳转到中断服务程序。必须禁止除了TMR0和RB0中断之外所有的中断源,以便对同步字段进行精确测量。计算出波特率之后,中断服务程序就退出执行。
在下一次RB0中断发生时,LIN协议Slavehandler自动进入接收模式,以接收标识字段或数据字节。如果检测到标识字段的起始位,就对标识字段进行接收和解码。然后,根据收到的标识执行相应的代码,例如存储数据或点亮LED。总线上一个帧传输完成之后,标志FCOMPLETE被置位。这个标志指示所有的数据都已正确接收完毕并可以进行后续的处理。此标志由用户固件清除。
LIN协议从节点句柄Slavehandler最高可以工作在20K的波特率下,需要420字的程序存储空间以及23字节的数据存储空间。
由于其低成本,LIN协议具有在汽车应用中广泛采用的潜力。可以使用内置的RC振荡器并且运行在4MHz的时钟频率下的诸如Microchip的各种器件的微处理器,使得设计师们能以最低的可能成本设计应用系统。
上一篇:基于单片机的环境监测仪设计
下一篇:实现统一通信的可移动性方法研究
- •摩尔斯微电子携手Gateworks,利用Wi-Fi HaLow革新工业连接2025-06-04
- •重磅!中国或禁止政府采购这类芯片和品牌2024-03-25
- •最新PMIC芯片市场竞争格局、供应商及发展趋势2024-03-19
- •出货量翻50多倍!这类芯片涨价20%!村田/ST/微芯/华邦电等最新现货行情 | 周行情137期2024-03-18
- •对标ST!这家国产厂商的该类芯片加速上车2024-03-15
- •马来西亚芯片的崛起2024-03-14
- •这些芯片,将大幅涨价2024-03-11
- •CITE2024开展倒计时 等你来看大模型、芯片、机器人、智能驾驶……2024-03-04
- •裁员潮!这些品类芯片售罄!ST/微芯/华邦等最新现货行情 | 周行情135期2024-03-04
- •装载或超百万辆!这类芯片正在汽车领域加速渗透2024-02-23