LIN协议驱动器的关键技术及设计原理LIN协议驱动器的关键技术及设计原理引言:LIN总线做为CAN总线的有效补充,在低端车身电子领域替代CAN总线,既能满足功能要求,又能节约成本,在对成本更加敏感的国产车上得到大规模应用。不同于CAN总线有专门的协议驱动器,用户不用管理底层的通信而直接进行应用程序的编写1,LIN总线没有专门的协议驱动器,一般需要在SCI模块的基础上用软件实现其底层通信,笔者为某国产车设计了一款LIN主节点产品,结合LIN2.0规范,首先介绍下LIN协议驱动器的功能,然后从数据链路层、应用层两个方面介绍协议驱动器的关键设计技术。1驱动器功能:LIN规范定义了数据格式、报文格式以及基于时间片的调度通信机制,做为LIN主节点,需要实现的功能包括:1、报文的封装和发送、接收和解析,根据报文格式填充/提取ID和数据;2、通信管理,以调度表的方式控制时间片的轮转和相应帧的发送;3、网络管理,休眠和唤醒;LIN总线采取8N1的SCI数据格式,协议驱动器在SCI的基础上以软件的形式实现。软件就是“数据+操作”2,做为一个可复用、移植性强的软件模块,其数据结构和API函数的设计是软件模块设计的两个重要组成部分,下面从数据链路层和应用层两个方面介绍下协议驱动器的数据结构设计和API函数设计。2数据链路层:数据链路层主要实现LIN报文的发送及接收,报文格式如图1所示:[pic]图1LIN报文格式LIN报文由报文头+响应组成,报文头包括同步间隔、同步字段和标识符三个部分,其中同步间隔为10bit0,同步场为0x55,标识符唯一标识该报文;响应包括数据和校验和两个部分,报文数据长度由应用层设计指定,也可以认为由标识符唯一指定,校验和包括经典校验和和增强型校验和两种方式,均采用带进位加法进行计算,不同之处在于经典校验和只