LIN总线在电动车窗系统控制中的应用
引言
LIN总线是一种用于汽车分布电子系统的新型低成本串行通讯网络,其目标是为现有汽车网络(例如CAN总线)提供辅助功能。LIN总线瞄准一些低端应用,在这些应用中每个节点的通讯成本都必须大大低于CAN,而且不需要CAN的高性能、高带宽和多功能等。它相对于CAN的成本节省主要是由于采用单线传输、硅片中硬件或软件的低实现成本,以及无需在从属节点中使用石英或陶瓷谐振器等。
相对于发动机和底盘系统控制,车身附件系统控制对安全性和可靠性等要求并不高,而车身附件所具有的各种开关,正是车辆线束复杂的重要原因。LIN总线能大量节省线束,以及易于升级换代和便于实现诊断功能的特点,正使它成为车身电子最重要的发展方向。作为车身附件的重要组成部分,同时驾驶员车门可以对其他成员车门进行控制,电动车窗采用LIN总线控制方式无疑很好的选择。
LIN总线的通信过程
相对于CAN总线的各节点发送消息的无序性,LIN总线网络中存在一个主节点,它是所有节点通信的发起者,虽然通信速率较低(1-20Kbps),但它本质属于延迟时间确定性网络。需要通信时,主节点线发送一个Break(一般长度大于或等于11bit位),主要目的是为了产生一个帧格式错误(FrameError)。然后主节点将发送1字节的同步场(0x55),以便各从节点充分地同步,而后将发送1字节的ID位,从节点在收到ID后,根据协议解析出是否向总线上发送数据或接受数据或不做任何响应。LIN总线数据一般为0-8字节(LIN1.3及以前版本数据字节数位0、2、4、8byte)。在主节点或从节点发送完数据后,将发送1字节的数据校验(Checksum),接受数据节点将依据其判断数据的正确性,从而确定是否接受发来的数据。
![](http://m.amcfsurvey.com/editerupload/fetch/20140414/239760_1_0.jpg)
图1LIN总线的数据帧结构
车门模块网络的工作原理
由于驾驶员车门除了要控制本车门上的车窗升降,还需控制乘客车门上的车窗升降,所以将驾驶员车门的车窗控制模块作为主节点,其他乘客车门的车窗控制模块作为从节点。考虑成本和软件设计的方便性,乘客车门的车窗控制模块采用了相同的硬件。在本次设计中,驾驶员车门模块控制器上采用了Freescale的8位单片机——MC68HC908QC16,同时考虑到数量对成本的影响,且QC16与其低级产品(QC4、QC2)的价格相差不多,从节点我们也采用了与主节点相同的芯片。从下文可以看出,这种选择是合适的。再考虑到要最大限度地节省线束的原因,在整个车窗控制网络中采取了分布式的驱动控制方式。即主节点的摇窗电机的驱动由主节点独立控制,从节点的驱动也由从节点各自实现。
相对于传统的SCI,QC16所带有的ESCI(enhancedSCI)为LIN网络设计提供了更大的方便,包括自由选择Break的长短和更为灵活的波特率设计等。LIN收发器芯片我们采用Freescale的兼容LIN2.0协议的MC33661通信芯片。考虑到总线对电源的要求和系统成本,电源芯片采用了LM2931。
在此LIN网络中,主节点(驾驶员车门模块)的主要任务是采集四个车窗的上升和下降信号,另加一个儿童锁(用以锁止从节点车窗控制器的工作)和一个点火开关信号,同时控制整个网络通信的发起,即各数据帧之间的时间间隔。在硬件设计中,每个微动开关都占用一个I/O口,默认无效的状态为高电平,我们采取了内部拉高的方式。当按下或拔起相应的开关时,对应的I/O输入端变为低电平。为了实现驾驶员车窗的自动下降功能,将其对应的输入接到了定时器模块的输入捕捉通道上,这样就可以通过捕捉下降沿来开始计时,从而区别出手动和自动状态(按键时间300ms,自动)。对于点火开关信号,设计要求为只有在点火开关的信号有效时,各车窗才可以升降,而在点火开关关闭的60s内,仍认为其处于有效状态。另外,还需将点火开关和儿童锁信号的有效性通过LIN总线数据位的某些数据值体现出来,从节点通过判断这些数据位的数值便可得到相应的状态信息,从而控制相应的电机动作。
评论