基于CAN总线的汽车车身控制已经有了广泛的应用。但随着车上总线节点的增加以及电子技术向中低档汽车延伸的发展趋势,其相对较高的实现成本就成为一种障碍。成本较低的LIN总线应运而生。LIN总线硬件的实现是基于普通的串行通信接口(SCI),甚至在子节点中可以用普通I/O口加上定时器进行模拟。LIN的目标应用是不需要CAN的性能、带宽及复杂性的低端系统,如车门控制模块、座椅调节、车灯控制和空调系统中传感器和执行器之间的通信。通常LIN子总线是现有的CAN网络的扩充,与CAN网络一起形成汽车的控制网络。当然,由于其成本较低,也可以独立用于不是特别复杂的车身控制网络中。
车灯控制系统对实时性要求不高,但车灯控制模块连接的传感器和执行器较多,因此LIN总线非常适用于这一系统的控制。基于LIN总线的车灯控制系统使用LIN总线实现车灯传感器和控制器之间的通信,其优点是硬件电路简单、控制层次分明、节点成本低。
车灯系统的结构及控制
&nbs
为了解决这个问题,自动灯光控制系统应运而生,如丰田皇冠的自动灯光控制系统和宝马530i的车灯自动照明装置等。整个车灯控制过程实现完全的智能控制,反应灵敏,工作可靠,有效避免了因汽车灯光依赖人工操作而造成的交通事故。
典型的汽车自动灯光系统主要由感光器(即传感器)、电子控制器(简称控制器)和选择开关三大部分组成。感光器装在仪表板顶上,光束透过挡风玻璃进入,感光器内的光敏电阻阻值随着感光强度的变化而变化。控制器装在仪表板内,通过继电器及晶体管放大电路来控制各灯光电路的工作。选择开关装在仪表板上,可以选择自动模式控制车灯,也可以选择手动模式控制车灯系统。
根据实际应用需求,制定出以下车灯控制策略:白天时,各种灯光均应熄灭;黄昏时,由于外面的光线昏暗,将尾灯和驻车灯点亮;夜晚时,由于外面的光线更弱,将远光灯点亮,并将驻车灯熄灭;两车交会车时,为了避免对方驾驶人员眩目,应使近光灯点亮,此时,尾灯仍亮,会车后,将近光灯熄灭,点亮远光灯;夜晚模式下,车辆左转,关远光灯,开近光灯和左侧灯,左转后,关近光灯和左侧灯,开远光灯,右转时,控制方法相似。
为了实现这一车灯控制策略,本设计采用如图1所示的汽车车灯控制系统网络拓扑结构。
图1 汽车车灯控制系统结构图
该网络结构由1个主节点和4个从节点构成(分别为左侧前方车灯、右侧前方车灯、左侧后方车灯和右侧后方车灯)。主节点接收来自传感器和CAN总线的信号,经过一定处理后,发送不同报文帧头,以实现白天、傍晚、晚上、会车、左转和右转各个模式或组合模式下,各从节点车灯的状态控制。从节点1和从节点2包括远光灯、近光灯和测向灯,从节点3和从节点4包括尾灯和驻车灯。此外,如果对于主节点发出的报文帧,从节点没有响应,则主节点上的报错指示灯点亮,并可以显示出是哪个从节点发生了故障。
LIN总线简介
LIN总线是一种低成本的串行通信网络,用于实现汽车中的分布式电子系统控制。LIN 通信基于SCI(UART)数据格式,仅使用一根12V 信号总线,通信速率最高可达20Kb/s。通常一个LIN 网络上节点数目小于12个,总线长度不超过40m。LIN总线采用单主节点/多从节点的通信模式,主节点有一个主发送任务和一个从通信任务。从节点只有一个从通信任务,该通信任务分为发送任务和接收任务。一个LIN 网络上的通信总是由主发送任务发起的。主节点发送一个报文头,该报文头由同步间隔场、同步场和报文标志符场所组成。相应的,在接受并且滤除报文标识符后,一个从任务被激活并且开始本报文帧的应答传输。
作为一种辅助总线,在不需要CAN总线高性能的场合,使用LIN总线可以大大降低成本。
Freescale半导体公司的LIN开发平台(LIN DEMO)系统提供了完整的软件和硬件,用户可以在此平台上很快的搭建起LIN控制网络。其中,软件部分包括了标准的LIN底层驱动软件。本设计正是利用了Freescale LIN API中的标准LIN底层驱动,在MC68HC908GZ60芯片上实现了车灯控制系统的开发。
Freescale LIN API中提供了许多与LIN总线通信相关的函数,利用这些函数,可以很方便地实现LIN通信。
系统硬件设计
汽车车灯控制系统要求当用户按下操作按钮时,车灯能及时地做出相应的响应;同时,当车灯发生故障时,用户能得到相应的故障信息。该控制系统对实时性要求不是很
MC68HC908GZ60芯片(48引脚)具有1个ESCI通道、2个定时器通道、1个CAN通道和15个A/D转换通道。LIN通信仅占用了该芯片的ESCI接口用于与LIN收发器相连;一个定时器通道用于确定LIN通信中的定时;还有很多功能和通道可以用于扩展其他用途。选用LIN总线单线物理接口器件MC33399作为LIN收发器,LIN网络结构如图2所示。
图2 LIN模块硬件结构图
MC33399收发器支持的传输速率为1~20Kb/s,提供了正常和睡眠两种工作模式。INH引脚连接到电源管理芯片的INH引脚,可以控制电源电压调节器的工作模式,减小睡眠时的功耗。EN引脚由GZ60的PTE2引脚控制,当PTE2=1时,MC33399使能,进入工作模式;当PTE2=0时,MC33399禁能,进入睡眠状态,从而达到减小功耗的目的。Tx、Rx引脚分别与GZ60的PTE0、PTE1引脚相连,通过该ECU的ESCI模块来实现LIN总线的收发功能。由于不采用唤醒模式,Wake引脚通过电阻R4接地。其中,只有主节点的LIN引脚需要通过二极管和1kΩ电阻拉高,从节点所需的30kΩ上拉电阻已经集成在MC33399中,所以从节点无须外接上拉电阻,如图3所示。
图3 MC33399接口电路
由于LIN是单线传输协议,总线上传输的数据需要一个共同的基准地,所以在连接各个节点时,要保证各个节点电平的共地性,才能使总线正常可靠地通信。
车灯控制系统中的主节点同时也是CAN/LIN网关,负责将LIN总线数据传输到CAN总线上,GZ60的一个CAN通道用来提供与CAN总线的接口。CAN总线收发器选用Freescale公司的MC33388。该收发器支持的最高CAN速率为125Kb/s,在睡眠模式下,功耗很小。CAN模块的硬件电路如图4所示。
图4 MC33388接口电路
系统的软件结构
基于LIN总线的车灯控制系统的软件结构如图5所示。上电后,各节点控制器对CONFIG、PORT和ESCI模块进行初始化操作,由于LIN总线通信定时由主节点定义,主节点控制器还需要对T1CH0模块初始化。主节点控制器监测各个按键的状态,当有按键被按下后,主节点判断该按键对应的车灯控制模式,然后向LIN总线发送带相应标识符场的报文头(ID∈[10 11 12 13]),启动一次主节点向从节点发送数据的LIN总线通信。等待LIN总线处理该报文帧之后,主节点启动一次从节点向主节点发送数据的LIN总线通信(ID∈[14 15 16 17]),该从节点即为前一次LIN总线通信中,接收到主节点命令的从节点。如果主节点接收到的从节点数据与理论上应该收到的数据不符,主节点上的报错指示灯点亮,并可以显示发生故障的从节点号码。造成从节点故障的原因可能是从节点脱离LIN总线,或者从节点上的执行器发生故障。
图5 基于LIN总线的车灯控制系统软
件流程图应用结果
应用结果表明:LIN总线很好地满足了汽车车灯控制系统对数据信息传输的要求,而且与其他实现方法相比,具有结构简单、配置灵活、降低成本的优点,完全达到了期望的性能和价格要求。