基于Microchip单片机及收发器实现的低成本LIN总线
摘 要: 介绍了几款MICROCHIP单片机及收发器实现低成本的汽车子网LIN总线节点。基于MICROCHIP单片机内带的增强型通用同步/异步收发器(EUSART)实现LIN的控制器,并用MICROCHIP的MCP2021作为LIN的电平转换器,最终实现一主多从的低成本的LIN网络。
随着汽车总线应用的日益普及以及对汽车成本的要求越来越严格,LIN总线的市场占有率越来越高。本文从低成本的角度来实现LIN总线的节点,具有非常高的实用价值。
1 LIN的基本知识与发展
1.1 LIN的基本知识
局域互连网络LIN(Local Interconnect Network)是低成本的串行通信网络,用于实现汽车中的分布式电子系统控制,是现有多种汽车网络在功能上的补充;同时它也是一个开放的标准,作为CAN总线的子总线,能缓解CAN总线数据拥挤的现状。
由于LIN总线是可靠、低成本、开放标准的网络解决方案,它可以简化现存的多点解决方案,并且能降低在汽车电子领域中的开发、生产、服务和后勤成本。
1.2 LIN的起源与发展
LIN联盟成立于1999年,并发布了LIN 1.0版本。2000年,LIN联盟再次发布了1.1版本。2001年,第一辆采用LIN1.1版本的量产汽车面世。2003年,2.0版本出现。2006年,2.1版本面世并沿用至今。
1.3 LIN的市场
LIN总线产品已经成为汽车总线的第二大市场,预计将成为未来增长最快的一个市场。第一大市场是CAN总线,其在2006年已经达到顶峰。
2 LIN的基本概念
LIN在物理层是单线实现的,一般电压范围在8 V~18 V。LIN网络是单主多从结构,由于只有一个主节点,所以不存在总线仲裁。总线的速度一般在2.4 kbd~19.6 kbd之间。典型节点数为2~10个,由于阻抗匹配的原因,最多不能超过16个。如图1所示。
LIN总线为串行通信方式,编码采用非归零码,8N1(8个数据位,没有校验位,1个停止位)方式,如图2所示。每帧的数据字节数可变,为2~8 B。在数据字节结束后,会发一个校验和来进行校验。
在LIN网络中,主节点的时钟由高精度的晶振产生,从节点一般用RC震荡器产生。在本文中,从节点的时钟可以用MICROCHIP单片机的内部RC震荡器来实现。
3 LIN协议的基本知识
LIN的报文分为两部分,一是主任务,也叫报文头;另一个部分是从任务,也叫响应场。如图3所示。
主任务位于主机节点内部,都是由主节点发出,它负责报文的进度表、发送报文头(HEADER)。从任务位于所有的(即主机和从机)节点中,其中一个(主机节点或从机节点)发送报文的响应(RESP*E)。
3.1 报文头
报文头分为三部分,按顺序分别叫同步间隔、同步字段、标识符字段。
同步间隔是一个长时间的低电平(显性总线电平),低电平时间要大于10个位定时时间,通常为13个位定时时间。在长时间的低电平之后,要跟着一个短时间的高电平(隐性总线电平),一般为1~4个位定时时间。
同步字段包含了时钟的同步信息。它的内容为0x55,表现在8个位定时中有5个下降沿(隐性跳变到显性的边沿)。从节点通过同步字段,可以使自己的总线速率与主节点同步。
标识符字段定义了报文的内容和长度。其中,内容是由6个标识符位和2个奇偶校验位组成,如图4所示。标识符位的第5位和第6位(ID4和ID5)定义了报文数据场的长度。
3.2 响应场
响应场包含数据字段和校验和两部分。
数据字段由8 bit数据的字节组成,传输由最低位(LSB)开始。校验和按照带进位加的方式计算,每个进位都被加到本次计算结果的最低位。
3.3 保留的标识符
标识符为0x3C和0x3D的标识符被用做诊断。其中0x3C是主机请求帧,它可以从主机向从机节点发送命令和数据。0x3D是从机响应帧,它触发一个从机节点(由一个优先的下载帧编址)向主机节点发送数据。
标识符为0x3E是由用户定义的自由用法,标识符为0x3F是为将来使用而严格保留的。
4 MICROCHIP单片机的软硬件实现
4.1 硬件实现
主节点一般采用Flash比较大的MICROCHIP中档8位单片机,或者采用带CAN控制器的高档8位单片机或16位单片机作为控制器。时钟采用高精度石英晶振。物理层的电平转换采用MICROCHIP的收发器MCP2021。
从节点可用低成本的MICROCHIP中、低档8位单片机。时钟用单片机内部自带的RC震荡器。内部RC震荡器在常温25 ℃时,精度为1%,全温度范围(-40 ℃~+125 ℃)内精度为5%[1]。物理层的电平转换采用MICROCHIP的收发器MCP2021。
4.2 软件实现
4.2.1 主节点
主节点完全按照LIN规范实现。主节点的任务就是发送报文头和发送接收数据,实现一个网关的作用。另外,单片机的剩余功能,可以用来做一些A/D和开关量的采集,还可以驱动一些蜂鸣器、小电机或者LED和LCD等器件。主节点发送流程如图5所示。
LIN总
单片机 相关文章:
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)