基于LIN总线的汽车后视镜控制模块设计
扫描二维码
随时随地手机看文章
摘要 以MC9S12DG128为主控单元、MM908E622为后视镜单元,采用单主多从的总线控制方式,设计了一种基于LIN总线的汽车后视镜控制模块。主控单元以单片机MC9S12DG128为核心,通过LIN收发器MC33661实现对总线数据的收发,同时将液晶触摸信号转换为LIN指令以达到对后视镜单元的整体控制。后视镜单元以MM908E622作为从单元控制器,内置LIN收发器和电机驱动电路,具有优异的调控能力,适用于控制汽车高端后视镜。设计中体现了汽车车身电子的智能化和网络化,在汽车工业中有较高的应用价值。
关键词 LIN;汽车电子;MC9S12DG128;MM908E622;MC33661
随着汽车技术的日益发展,汽车设备的电子化、智能化、网络化是现代汽车发展的重要标志之一。传统汽车后视镜是采用手动方式调整位置。随着技术的发展,目前汽车的后视镜多采用网络控制方式,以减少驾驶员对后视镜模块的频繁操作,提高驾驶舒适性和安全性。采用网络方式控制的后视镜系统,在传统控制系统的基础上增加了两个控制单元和一个控制网络,这样用户可以由车外控制转变为车内控制。LIN总线是一种建立在通用SCI或UART硬件接口上,用于将车辆中分布的智能传感器和执行器连接到车内主控制器的单总线(12 V)串行通信协议。由于目前尚未建立低端多路通信的汽车标准,所以从价格和实用性等因素考虑,LIN在低端网络中具有较强的竞争力,正逐渐发展成为低成本串行通信的行业标准。
1 硬件设计
系统网络结构主要包括一个主节点、一个从节点和多个扩展从节点,主控单元由主控制器和液晶触摸屏构成,负责整个车身电子的控制。从单元由从控制器及后视镜硬件驱动电路构成,负责后视镜的底层控制。主单元与从单元依靠LIN总线进行相互通信。主控制器将触摸屏的控制信号转换成相应的LIN指令发送给从控制器,后视镜控制器接收到相应的指令后,对后视镜进行相应的控制。系统整体结构框图如图1
所示。
1.1 电源模块
电源控制模块将外部波动的车身电源转换成适合MCU工作的电压,为MCU提供稳定的工作电压。设计选取的电源模块为LM7805,负责将车身12 V电源:转换为5 V,所需外围元件较少,内部还有过流、过热及调整管的保护电路,使用方便可靠、且价格便宜。
1.2 液晶模块
液晶模块是整个系统的输入,是用户与系统相互连接的媒介。设计选取的液晶型号为Z2104,该屏幕为电阻屏,内置VCA控制板,与控制器通过串口进行通信,工作电压为12 V。主控制器可以直接通过串口读取液晶屏触摸信号及对液晶屏画面进行控制。主控制器将液晶屏幕的触摸信号转换成LIN总线指令,通过UART/SCI模块发送到LIN总线,同时也能将LIN总线上的数据反馈到液晶屏上。液晶模块是整个系统运行的重要载体。
1.3 后视镜单元
后视镜单元作为LIN网络中的从单元主要由电源模块、微控制器、电机驱动电路等组成。选取Freescale公司生产的高性能汽车型电子型芯片MM908E622作为从单元控制器,内置LIN收发器和电机驱动电路,具有良好的调控能力,适用于控制汽车高端后视镜。
1.4 控制器模块
主控单元采用MCU是Freescale公司推出的HCS12系列单片机,其具有增强型的16位单片机MC9S12DG128,该系列单片机在汽车电子领域有着广泛的应用。HCS12系列单片机的中央处理器CPU12由以下3部分组成:算术逻辑单元ALU、控制单元和寄存器组。CPU外部振荡器频率为8 MHz或者16 MHz,通过内部锁相环(PLE),可以使内部总线速度达到25 MHz。
MC9S12DC128作为HCS12系列的一种,内部资源丰富:(1)时钟和复位模块。(2)存储器。(3)两个8路A/D转换器。(4)增强型捕捉定时器。(5)8路PWM通道。(6)两个异步串行通信接口模块SCI。(7)3个1 Mbit·s-1,CAN2.0A,CAN2.0B兼容模块。(8)SAE J1850网络通讯口。
控制器模块是整个系统的核心,是LIN总线稳定运行的重要保障。而单片机MC9S12DG128作为Freescale公司高性能汽车型电子型芯片,能够满足系统要求。
1.5 MC9S12DG128与MC33661的硬件连接
LIN收发器是LIN主/从协议控制器和LIN物理总线之间的接口,其波特率一般为2.4~20 kbit·s-1。设计选用Freescale公司的MC33 689,是一款通过SPI控制的系统基础芯片,其内部除带有LIN物理层收发器外,还集成了很多在以MCU为基础构成的系统中的常用功能。其与MCU的硬件连接如图2所示。控制器MCU在TXD引脚输入的发送数据流,通过LIN收发器转换成LIN总线信号,并由收发器控制转换速率和波形。
LIN总线的输出引脚通过一个内部终端电阻拉成高电平。收发器在LIN总线的输入引脚检测数据流并通过引脚RXD发送到MCU。LIN总线是一种基于UART/SCI的数据格式,一种新型低成本的串行通信总线。
2 软件设计
2.1 LIN协议
2.1.1 LIN网络结构
从协议通讯的角度看,一个UN网络通常由一个主机任务模块(Master Task)和若干个从机任务模块(Slave Task)组成。主机节点中既有主机任务模块又有从机任务模块;其他节点都只有从机任务模块,如图3所示。在LIN网络中,由主机任务模块决定何时在总线上传输什么报文帧,而从机任务模块则提供每一帧需要传送的数据。主机任务模块和从机任务模块都是帧处理层的组成部分。
2.1.2 LIN报文帧
LIN总线的数据传输采用报文帧的形式进行,一个完整的报文帧由一个帧头和一个响应帧组成。帧头包括一个同步间隔场(Synch Break Field)、一个同步场(Synch Field)、和一个标识符场,而响应帧(Response)则由3~9 Byte场组成:2、4或8 Byte的数据场(Data Field)和一个校验和场(Checksum Field),如图4所示。报文帧的用途由标识符唯一定义,约定的从机任务根据标识符提供的相关的响应帧并发送到总线上,对这个标识符相联的数据感兴趣的从机任务将接收响应帧并校验,校验通过后对数据进行处理。这样的通讯机制带来了理想的效果,在LIN网络中可以直接增加节点而不需要对其他从机节点的硬件和软件进行修改;报文的内容由标识符定义;多个节点可以同时接收一个单独的报文帧,并对报文做出反应。
2.2 后视镜控制系统软件设计
LIN总线的软件设计主要是基于主控芯片MC9SDG128的SCI(Serial Communication Interface)编程,SCI串行通信接口,是MCU与外界进行串行通信的重要方式,同时也是LIN协议实现的重要基础。系统的软件设计主要包括实现控制器与LIN总线通讯的中断程序以及控制器对后视镜单元控制的主程序。为确保通讯的实时性,系统采用高优先级中断来接收LIN总线上的信号。为保证系统的实时性,在中断处理时除了进行一些简单的判断和数据接收外,其他部分都在主程序中处理。系统软件流程图如图5所示。
2.3 LIN指令
由于设计的从控制器内部集成了LIN收发器,这样控制器可以直接从总线上进行读取指令,然后分析指令对底层设备进行相应的控制。 LIN总线的数据格式是固定的,但数据长度及指令的定义由用户自行设定,同时用户可以根据LIN总线协议添加网络子单元。LIN总线中后视镜节点数据格式如表1所示,其数据帧长度为5 Byte,受保护标识符为0x50,读取后视镜运行状态的命令:长度2 Byte0x55,0x92。
2.4 SCI初始化
编程时首先访问波特率寄存器以设置串行通信的波特率,然后在SCI控制寄存器中设置通信格式、是否校验、是否允许SCI发送接收、是否允许中断等。最后通过SCI中断来解决发送数据和接收数据。其中,SCI0模块用于与上位机测控界面的通信,而SCI1模块用于LIN总线通信。
2.5 LIN协议的实现
LIN协议的发送是由报文实现,每个报文由主机节点发出的帧头和主机或从机节点发出的报文响应组成。LIN网络的每次通信都是由主机节点发起,主机节点控制整个网络的通信配置。主机节点的任务是首先发送唤醒总线,然后发送报文帧头中的同步间隔和同步场,使从机与主机同步,然后发送标示符。从机任务接收标示符后对标示符进行滤波确认,当标示符表明节点与本次通信有关时,发送由数据和校验组成的响应。
3 结束语
基于LIN总线的汽车后视镜控制模块控制系统,具有结构简单、性能可靠、功能较齐、价格低廉等特点。此系统利用软件编程实现各种特性,并通过软硬件功能增添新的特性、实现使用同—个硬件或者软件平台下不同的功能模块,具有较强的拓展性和广泛的应用前景。