LIN总线报文传输是由报文帧的格式形成和控制。报文帧由主机任务向从机任务传送同步和标识符信息,并将一个从机任务的信息传送给其他从机任务。主机任务位于主机节点内部,它负责报文的进度表、发送报文头(HEADER)。从机任务位于所有的节点中(即主机和从机),其中一个发送报文的响应(RESPE)。
一个报文帧(见图1)是由一个主机节点发送的报文头和一个主机或从机节点发送的响应组成。
报文帧的报文头包括一个同步间隔场(SYNCHBREAK FIELD)、一个同步场(SYNCH FIELD)和一个标识符场(IDENTITY FIELD)。报文帧的响应(RESPE)则由3~9个字节场组成:2,4或8字节的数据场(DATA FIELD)和1个字节的校验和场(CHECKSUM FIELD)。字节场由字节间空间分隔,报文帧的报文头和响应是由一个帧内响应空间分隔。最小的字节间空间和帧内响应空间是0。
2 车灯系统的硬件电路设计
2.1 车灯系统方案介绍
整个车灯系统共包括五个模块(见图2):一个主机节点,负责扫描来自操作面板开关信息(如近光灯,雾灯,转向灯)和来自CAN网络的开关信息(如刹车灯)。并通过LIN总线将其发送给四个从机节点;四个从机节点包括车头和车尾各两个控制节点,负责接收来自LIN总线的开关信息,控制车灯负载动作,并采集由驱动芯片反馈的车灯故障信息,通过LIN总线反馈给主机,由主机节点负责故障信息的处理和显示。
2.2 硬件选择及说明
主机和从机MCU分别选用FREESCALE的MC9S08DZ60和MC9S08SG04芯片。DZ60芯片内部集成一个CAN控制器和两个SCI模块,可以作为车灯控制模块和其他车身网络连接的CAN/LIN网关,实现整车网络通讯的统一。SG04是FREESCALE公司开发的专门用于车身底端网络控制节点的汽车级低成本芯片,内部集成一个SCI模块、两个PWM模块和多个A/D转换模块,可直接作为LIN网络的从机节点并能方便的实现对车灯负载的控制及对模拟负载故障信息的采集。
LIN收发器选用InfineonTLE6258系列收发器。TLE6258是单线收发器,适用于LIN协议,发送速率可达20 Kb/s,功耗低,具有短路保护和过温保护功能,适用于汽车和工业应用。为了减小电流损耗,TLE6258提供了一种空闲模式,在空闲模式下,TLE6258退出总线活动,电流降到最低,从而达到减小功率损耗的目的。在正常工作模式下,通过对ENN引脚置1进入空闲模式;在空闲模式下,通过在总线上发送唤醒帧,可把主机或从机从空闲模式唤醒,返回到正常工作模式。进入正常模式后,ENN引脚复位为0,释放RxD引脚到传输数据状态。
功率驱动芯片选用Infineon的BTS系列驱动芯片:BTS3D用于驱动大灯,如近光灯、雾灯,BTS724G用于驱动小灯,如转向灯、位灯。BTS3D是N沟道FET功率管,内部集成充电泵,电流驱动,并且具有负载电流检测的故障反馈功能,包括过载、过温和短路检测,BTS3D为单通道输入输出,可实现对负载电流的模拟量诊断反馈;BTS724G是电源MOSFET高位开关,带四通道输入输出,且每一对输入输出相互独立,可输出数字量诊断反馈信号。如图3,图4以近光灯、转向灯和位灯为例分别显示了大灯驱动电路设计和小灯的驱动电路设计。
3 车灯系统的软件设计
系统的软件设计包括三个相对独立的模块设计:主机对来自操作面板和CAN总线的开关信息扫描模块;主机和从机节点之间信息的通讯模块;各从机节点对车灯负载的动作控制及故障信息采集模块。其中后两个模块的设计是整个系统软件设计部分的核心。
3.1 LIN通讯模块设计
LIN通讯网络包含五个节点:一个主机节点和四个从机节点,其中主机节点负责向四个从机节点发送控制车灯亮灭的开关信息,并定时询问各个从机节点,接收各从机节点响应的故障信息;四个从机节点分别控制汽车右前方、右后方、左前方、左后方四个方位的车灯负载动作,并同步采集各个车灯的故障信息,等待主机节点询问时将其发送给主机。定义五个标识符ID_0~ID_4,分别表示主机节点和四个从机节点的专属地址,用于控制报文准确地传输到目的节点,当主机向各个从机节点询问故障信息时,只有专属地址与当前报文标识符一致的子节点响应报文,将故障信息发送给主机节点;定义标识符ID_5表示所有子节点共属地址,当主机发送车灯开关信息时,保证所有子节点都响应当前报文,并根据开关信息控制车灯负载动作。
LIN网络主机节点包含主机任务,负责对报文传输进行调度。LIN通讯协议中没有定义仲裁机制,因此任何从机任务想要发送报文必须通过主机任务的调度:主机任务发送报文头,标识符匹配的从机任务发送响应帧。LIN网络中每一个节点都包含从机任务。主机节点中的从机任务负责将车灯的开关信息发送给各从机节点,接收来自从机节点的响应帧;从机节点中的从机任务负责将从机检测到的故障信息发送给主机节点,接收主机节点发送的开关信息。开关信息,和故障信息各占用一个字节从属LIN报文帧的数据场,其定义格式如图5,其中开关信息占用一个数据字节,包含所有的车灯开关信息,逻辑“O”表示相应位中车灯开关闭合,逻辑“1”表示相应位中车灯开关断开;每个从机节点的车灯故障信息占用一个数据字节,图5中显示的是右前方车灯的故障信息,故障信息的编码如图中所示。
3.2 车灯负载智能驱动软件设计
车灯负载故障最容易发生在开启的一瞬间,为了减少大灯(近光灯)开启时的瞬间电流过冲,延长大灯的使用寿命,在开启时采用PwM控制方式,开启时逐步提高PWM占空比直到100%,使近光灯的电压逐步上升到电源电压,近光灯的控制开关采用BTS3D芯片,其内部集成的电流反馈功能,能根据实际通过车灯的电流输出一个与之成正比的反馈电流,图3中反馈引脚IS端的外围电路设计是将电流输出转换为O~5V电压输出供从机MCU的A/D采样。在系统运行时根据命令开通控制开关后,将启动A/D实时采集电压反馈,如果采样值低于设定值则认定为车灯断路故障,如果采样值大于设定值则认定为过载或短路故障,从机MCU将迅速关闭开关以保护该器件,并生成相应的故障信息待主机询问时将其反馈给主机节点,主机节点解码故障信息并通过发光二极管显示出来。近光灯的软件设计流程如图6所示。
3.3 抗干扰冗余软件设计
汽车运行时的工况极其恶劣,发电机的供电电压在较大范围内波动以及发动机点火瞬间高频电磁干扰等对车身网络系统而言都是很大的干扰;汽车使用过程中,由于线路绝缘磨损或者接插件不可靠等因素,可能出现LIN子节点从网络中断开或者短路等情况。据此,将总线故障划分为瞬间干扰故障和永久性故障,并进行了相应的可靠性冗余设计:在硬件上采用汽车级的高性能芯片,在软件通讯设计上对子节点的命令及状态信息采取反馈机制:主机将开关信息发送给各从机节点后,启动500 ms定时器,计时时间到后主机依次询问各子节点,请求其反馈各自的状态信息。在这种机制下,一旦子节点在通讯中出现:没有反馈命令和状态;数据帧校验和错误;子节点接收到的命令与主节点发送的命令不一致等情况,主节点马上重新发送命令,确保各个子节点信息接收的正确性。如果某一个从机节点长时间没有反馈信息,则可认定此节点已从网络中丢失,主机节点生成相应故障信息,并通过发光二极管显示出来;如果LIN总线与地短接,LIN总线一直成显性状态(低电平状态),则主机不能接收到任何从机节点的反馈信息,主机将关闭LIN收发器,保护此器件,并将故障显示给驾驶员。
4 结 语
提出一个基于LIN总线的车灯控制系统方案,实验证明总线化的控制系统方案较传统的集中式控制方案具有布线简单,结构清晰,不同控制模块间的独立性强,便于以后的系统检修及系统的升级扩展等优点,具有一定的可行性。
上一篇:基于USB接口设备的固件程序设计
下一篇:Bus总线布线时如何做到等长
推荐阅读最新更新时间:2024-05-02 21:25