基于M68HC08的LIN节点设计与实现

时间:2007-09-24
摘要: 基于LIN(Local Interconnect Network)汽车总线技术和M68HC08微控制器的基本特点,设计了基于M68HC08微控制器的LIN主从节点硬件电路,详细阐述了基于设计的主从节点LIN报文的发送, 并根据长安SC6350汽车的电器特点,实现了一个基于CAN/LIN总线的实际的车身电器控制网络。
关键词: LIN  M68HC08微控制器  主节点  从节点 

引言

随着汽车电子业的飞速发展,车辆上的电子装置越来越多,电子装置之间的控制也越来越复杂。传统的布线连接方式,不仅使线束变得更加粗大、质量增加,使车内可利用的空间变小,且由于线路复杂,故障率增加,还会给维修带来很大的不便。通过车用现场总线技术建立车身控制局域网,对汽车电子装置、电器设备进行管理和控制,实现分布式多路传输,大大简化汽车的线束,减轻线束的质量,提高了系统工作的可靠性、稳定性。

LIN(Local Interconnect Network)是由汽车厂商专门为汽车开发的一种低成本串行通信网络,用于实现汽车中的分布式电子系统控制,其主要目的是为现有的汽车控制网络CAN(Control Area Network)提供辅助功能。在对CAN总线通信要求低的场合,诸如智能传感器和制动装置之间的通信,使用LIN总线可大大降低成本。

1 LIN总线介绍

LIN是一个串行通讯协议,它有效地支持汽车应用中分布式机械电子节点的控制。LIN总线控制方式是带单主机节点和一组从机节点的A 类(<10kbit/s(低速))多点总线。

1.1       LIN总线特点

(1) 采用低成本单线12V进行数据传输,线的驱动和接收特性符合改进的IS09141单线标准;(2) 传输速率可达20kbit/s;(3) 采用单主/多从结构,不需要总线仲裁,由主节点来控制总线的访问;(4) 基于通用UART/SCI的硬件接口,可使用低成本的半导体工艺实现,几乎所有的微控制器都有LIN必需的硬件;(5) 从节点不需要晶振或陶瓷振荡器就可实现自同步,从而减少了从节点的硬件成本;(6) 能保证差状况下信号传送的等待时间,可避免总线访问冲突。

1.2       LIN总线通信机制

LIN总线是基于SCI(UART)数据格式,采用单主控制器/多从设备的模式,仅使用一根12V信号总线。一个LIN网络由一个主节点、一个或多个从节点组成。所有节点都有一个从通讯任务,该通讯任务按功能分为发送任务和接收任务。主节点还有一个主发送任务,一个LIN网络上的通讯总是由主发送任务所发起的。主控制器发送一个起始报文,从控制单元在接受并且滤除消息标志符后,一个从任务被激活并且开始本消息的应答。

1.3       LIN报文帧

报文帧由主机任务向从机任务传送同步和标识符信息,并将一个从机任务的信息传送到所有其他从机任务。主机任务位于主机节点内部,它负责报文的进度表、发送报文头(HEADER)。从机任务位于所有的(即主机和从机)节点中其中一个主机节点或从机节点发送报文的响应(RESPONSE)。

一个报文帧(图1)是由一个主机节点发送的报文头和一个主机或从机节点发送的响应组成。报文帧的报文头包括一个同步间隔场(SYNCH BREAK FIELD)、一个同步场(SYNCH FIELD)和一个标识符场。报文帧的响应(RESPONSE)则由3个到9个字节场组成:2、4或8字节的数据场(DATA FIELD)和一个校验和场(CHECKSUM FIELD)。字节场由字节间空间分隔。报文帧的报文头和响应是由一个帧内响应空间分隔,的字节间空间和帧内响应空间是0。


图1  LIN报文帧

2             LIN节点设计

2.1       M68HC08系列芯片简介

Motorola 的M68HC08是一种高性能的8位单片机系列,具有速度快、功能强和价格低等特点。它的CPU与M68HC05单片机向上兼容,具有16位变址寄存器和堆栈指针,有200余条指令和10余种寻址方式,快指令周期仅为0.125μS。

2.2       LIN主节点设计

本设计选用M68HC08系列的MC68HC908GZ32作为LIN主节点的MCU,其电路原理如图2所示。选用MC68HC908GZ32,主要因为它具有如下其特点:

·32 Kbytes FLASH,1536 bytes RAM

·8-MHz内部总线频率

·丰富的I/O资源

·两个双通道16bit定时接口模块(TIM)

·一个MSCAN08 (Motorola 可升级的CAN)控制器模块

·一个串行外围接口(SPI)模块

·一个增强型串行通信接口(ESCI)模块

ESCI模块可以使MCU和外围设备及其它MCU异步通信,故它可以作为LIN的主结点。由于MC68HC908GZ32内部带有CAN控制器(MSCAN08),因此它除了能够作为LIN的主节点,还可以作为CAN/LIN网关。

本设计选用64脚QFP封装的GZ32芯片,VDD,VDDA,VDDAD均由+5V供电,TXD、RXD引脚分别接LIN的收发器(TJA1020)的TXD、RXD引脚,经过收发器LIN引脚出来的信号就是+12V的LIN信号了。GZ32的CANRX与CANTX引脚分别接CAN收发器(TJA1050)的RXD和TXD,经过收发器CANL和CANH引脚出来的就是具有差分信号的CAN信号。GZ32其它的大部分引脚都可以做I/O口使用,满足车身电器控制的需要。

         

图2  LIN主节点的电路原理图

主节点可以采用查询或中断的方式发送主机任务,本设计采用中断的方式发送主机任务。首先发送同步间隔(13个bit的显性电平加1个bit的隐性电平),GZ32里面专门用中止位(SBK)来发送同步间隔。将寄存器SCC2中的发送中止位SBK置1即会装载中止符(全0)置发送移位寄存器,再将SBK置0,移位寄存器中止一个中止符且至少发送1个逻辑1,构成13个bit的低电平和1个bit的高电平。同步间隔是区别全零数据字节的关键,必须按照这种方式发送才能把它与全零字节区别开来。然后按照SCI串行格式发送同步场0x55和标志符场。如果主节点还有从机发送任务,还需要按照SCI串行格式发送数据场和校验和场。

2.3 LIN从节点设计

本设计选用M68HC08系列的MC68HC908QL4作为LIN从节点的MCU,其电路原理图如图3所示,选用MC68HC908QL4,主要因为其具有如下特点:

·4096 bytes FLASH, 128 bytes RAM

·5-V 和 3.3-V 工作电压

·5 V时内部总线频率为8-MHz ,3.3 V 时为4-MHz

·一个双通道16bit定时接口模块(TIM)

·13个双向输入输出口,1个只输入口

·一个LIN从机接口控制器(SLIC)模块

SLIC模块用来提供LIN总线上从机的连通性,与通用I/O口共享其引脚。它有以下特点:

·自动的波特率设置和LIN信息帧同步

·自动识别和确认LIN信息的同步间隔和同步场

·自动计算校验和场和确认错误

·无错误的情况下每个标准LIN信息帧可有多2个中断

·高速的LIN可以从83.33 kbps 到 120.00 kbps

本设计选用16脚TSSOP封装的QL4芯片,VDD接+5V电源,SLCTX、SLCRX引脚分别接LIN的收发器(TJA1020)的TXD、RXD引脚。经过收发器LIN引脚进来+12V的LIN信号,经过收发器转换成+5V的接受和发送信号,分别传到QL4的接受和发送引脚。


图3  LIN从节点电路原理图

从节点在初始化完成后,其它操作都在中断里面完成。SLIC状态向量寄存器(SLCSV)提供一个索引偏移量直接反映LIN模块当前的工作状态,它可以和用户提供的跳转表一起用来快速进入一个中断服务子程序。LIN模块的所有状态在SLCSV里面都有相应的值对应,其值不仅反映LIN模块状态的索引偏移量,还反映中断的优先级。

3             LIN节点在车身控制中的应用示例

“长安之星”SC6350汽车是长安公司推出的具有轿车性能的微型客车,其车身电器包括:前后车灯、雨刮电机、升降车窗、中控门锁、空调、车身仪表等,共达近百个。因为用电器比较多,主体设计采用CAN/LIN结合的网络方式,按照用电器的就近原则,将整个车身网络分成五个部分,如图4所示。


图4 长安SC6350车身网络图

汽车前端放置高低速CAN网关(采用MC9S12DG128微控制器),其高速CAN与对信号的传输实时性要求很高的用电器如AMT、ABS、Engine相连,其低速CAN与组合开关和大部分用电器的开关相连。汽车前面两侧放置两块GZ32电路板,它控制汽车前面两侧的车灯和一些电机,同时它还作为LIN网络中的LIN主节点。LIN网络从节点(QL4电路板)放置在汽车后面两侧,控制汽车后面的车灯和电机。由于汽车后部的用电器比较少,需要使用的I/O口就比较少,正好符合QL4 I/O口比较少的特点。

长安SC6350汽车后部的用电器包括后左转向灯、后右转向灯、后左雾灯、后右雾灯、左后制动灯、右后制动灯、驻车制动指示灯、左牌照灯、右牌照灯、后刮水电机、后除霜器等。我们将它们分成左右两组,分别接到两侧的QL4电路板上。GZ32发送报文头和响应场,QL4接收主机发送的LIN报文帧,将数据场各bit所携带的信息提取出来,驱动车灯和电机。由于用电器比较少,数据场只需要2个字节就足够。数据场的字节分配如图5所示,各个bit反映相关用电器的状态,1 表示灯亮和电机工作(电机采用直流电机,上电即可工作,故也只有0/1两种状态),0表示灯灭和电机不工作。


                          

   图5    LIN数据场字节分配

两个LIN从机分别接在两个LIN主机上,而且它们都是只接收报文帧,不用发送响应场,故可用相同的标志符0x1C。另外还有睡眠和唤醒2个命令帧,分别用LIN总线保留的标识符0x3C和0x00来识别。

4    结束语

  本文作者的创新点在于:根据LIN总线特点,设计了MCU+LIN接口芯片的LIN节点硬件结构,实现了主机/从机任务的LIN网络通讯,并根据长安SC6350微车制定了LIN应用层协议,构建了一个基于CAN/LIN总线的车身网络(该车身网络已经通过国家863项目组的验收),为我国汽车LIN总线A类网络高层通讯协议的制定奠定了基础。


  

参考文献:

[1]. M68HC08 datasheet https://www.dzsc.com/datasheet/M68HC08_1098043.html.
[2]. M68HC05 datasheet https://www.dzsc.com/datasheet/M68HC05_1124298.html.
[3]. MC68HC908GZ32 datasheet https://www.dzsc.com/datasheet/MC68HC908GZ32_1020280.html.
[4]. TJA1020 datasheet https://www.dzsc.com/datasheet/TJA1020_649185.html.
[5]. TJA1050 datasheet https://www.dzsc.com/datasheet/TJA1050_649182.html.
[6]. MC68HC908QL4 datasheet https://www.dzsc.com/datasheet/MC68HC908QL4_1021484.html.
[7]. TSSOP datasheet https://www.dzsc.com/datasheet/TSSOP_1539100.html.
[8]. MC9S12DG128 datasheet https://www.dzsc.com/datasheet/MC9S12DG128_210898.html.


上一篇:基于单片机的光纤光栅解调器
下一篇:USB技术在情报指挥系统维修模拟器中的应用

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料