人们在选购家用轿车时,对舒适性的要求在不断提高,舒适性能已成为购车因素的一项重要指标。传统的汽车方向盘只具备控制转向和喇叭的功能,而随着汽车车身电子的发展,方向盘上正逐渐集成许多用于控制其他功能的按键,如控制收音机的按钮、控制DVD或者CD播放的按钮、手机蓝牙免提、自动巡航控制等,甚至还预留了用户可配置功能的按键,即学习型按键。
方向盘按键的设计风格体现了每种车型不同的个性,因此方向盘的按键控制设计正受到越来越多车厂的关注。考虑到汽车方向盘按键控制器受到安装空间、多重命令和设计成本等诸多因素的限制,同时LIN(Local Interconnect Network)总线在车身电子低速应用领域具有可靠性高、节省线束的优势,我们选用飞思卡尔半导体公司的MC9S08SC4作为主控制器,设计了一种基于LIN总线的汽车方向盘按键控制器。
按键控制器设计难点
汽车方向盘按键控制器的设计主要有以下三个难点。
1 安装空间限制
由于按键控制器被安装在方向盘面板附近的位置,因此需要在设计时尽可能减小印制板的面积,以方便嵌入到方向盘下方狭小的空间,并且要避免与其他模块(如ABS)安装的位置发生冲突。
2 线束数量限制
方向盘按键控制器在为驾驶员带来操控舒适性和驾驶乐趣的同时,需要及时处理各按键发出的多重控制命令,并将这些命令发送给相应的控制模块,以完成如CD/DVD播放、定速巡航控制或手机电话的免提功能等。如果使用线束方式将按键控制器分别与被控模块相连,势必增加线束的成本、布线复杂度和整车重量,因此采用汽车总线的方式实现与各被控模块之间的通信是高性价比的理想选择。
3 成本限制
从原理上讲,按键控制器只是将按键操作转化为对应的命令并以最低廉可靠的方式传给各功能模块。尽可能减少外围元器件的个数,以及尽可能利用微控制器提供的片上资源来实现系统功能是设计关键所在。
按键控制器硬件系统设计
按键控制器系统主要由输入信号调理电路、主控单片机、LIN总线收发器和按键背光输出驱动电路组成,系统框图如图1所示。输入信号调理电路主要对按键信号进行锁存、去抖等处理,处理后的模拟信号送入单片机的AD单元进行数字化转换,数字信号则送入单片机中断接口。主控单片机主要完成按键信号的检查、LED背光的控制以及LIN通信。LIN总线收发器配合LIN控制器完成与各控制模块的总线通信。下面着重对主控单片机和LIN总线收发器的选型予以阐述。
图1 按键控制器系统框图
的控制以及LIN通信。LIN总线收发器配合LIN控制器完成与各控制模块的总线通信。下面着重对主控单片机和LIN总线收发器的选型予以阐述。
1 主控单片机
按键控制器的设计存在安装空间、线束数量、成本等诸多限制,关键元器件的选型必须综合考虑这些因素,力求性价比最优。飞思卡尔半导体公司基于增强型HCS08核的8位高性能单片机MC9S08S C4采用16-TSSOP封装,外形尺寸仅仅6.40mm×5.00mm,用于方向盘键盘控制器设计将大幅减少PCB面积。另一方面,MC9S08SC4内部自带一个时钟发生器,校准后能实现全温度和全电压范围内最大误差不超过±2%的精度,足以满足时钟精度要求最高的LIN通信应用。因此,可以直接使用内部数字时钟提供LIN通信和整个系统所需的时钟信号,省去了芯片外部的时钟振荡器,从而达到节省印制板面积和系统成本的目的。
MC9S08S C4内部集成有LIN控制器,对于汽车方向盘按键所要负责的多种控制功能,通过LIN总线可以节省线束成本、减轻重量,也便于功能的升级和裁剪。LIN总线作为一种低成本、高可靠性的汽车总线系统,已在车身电子系统中得到广泛的应用。虽然LIN控制器可以使用普通的串行口控制器UART实现,但是MC9S08S C4内部的串行口控制器SCI模块不仅能实现UART的功能,而且还集成了与LIN通信相关的某些硬件特性(例如,对于LIN通信中非常特殊的Break域的产生和检测过程)。这种硬件集成的LIN通信的功能,相比使用普通UART控制器可帮助用户降低LIN通信软件设计复杂度,加快产品研发周期和上市时间。
在汽车方向盘按键控制系统中,系统掉电之前的一些数据(例如,最后的音量信息或者定速巡航的速度信息)都需要在下一次上电之后恢复。如果采用传统的方法即增加一片EEPROM来保存相应的数据,则会带来增加印制板面积和成本的双重压力。如果单片机片上的Flash能够模拟EEPROM的操作实现数据的存储,那么将是最理想的解决方式。而MC9S08SC4内部FLASH控制器自带高压泵支持FLASH编程和擦除所需要的电压,同时支持较高的重复编程和擦除操作,也可以动态地保存参数到FLASH中,因此MC9S08SC4内部FLASH存储器能够模拟EEPROM的操作实现数据的存储,省去了EEPROM芯片。
2 LIN总线收发器
LIN总线收发器是LIN控制器和LIN物理总线之间的接口,其选型应从LIN协议版本、静态功耗、成本等方面综合考虑。在本设计中选用的LIN收发器是恩智浦半导体公司的TJA1021。TJA1021支持最新的LIN2.1协议,数据传输速率从1~20kbps,输入电平兼容3.3V和5V器件,具有极低的电磁发射和高抗电磁干扰性,在睡眠模式下供电电流只有10μA左右,可实现本地或远程唤醒,LIN总线对电池和地自动短路保护。TJA1021应用电路如图2所示,具有4种工作模式:正常工作模式、睡眠模式、待机模式以及启动模式。当VBAT上电,且控制信号NSLP为低电平,TJA1021即进入启动模式。正常启动以后,若NSLP被置为高电平并超过2μs,TJA1021则进入正常工作模式。此时,若NSLP被置为低电平并超过2μs,TJA1021则进入睡眠模式。睡眠模式下,如果RXD信号由悬浮状态变为低电平,则说明检测到唤醒信号(TXD信号输出状态为弱下拉则为本地唤醒,强下拉则为远程唤醒),TJA1021将自动进入待机模式。V15为齐纳二极管,用来抑制汽车电源瞬态过压以保护收发器的正常工作。
图2
按键控制器软件系统设计
在由方向盘按键控制器、收音机功能模块、车载DVD或者CD功能模块、自动巡航控制模块等组成的LIN总线系统中,方向盘按键控制器为主节点,其余为从节点。按键控制器软件主程序是采用循环方式不断扫描按键矩阵,当某个按键状态发生变化时,就调用LIN发送函数,通过LIN总线输出相应的指令。主程序软件包括协议层软件、接口层软件和应用层软件三部分。协议层软件负责底层通信协议的实现及总线信号的产生,接口层软件提供应用程序接口,应用层软件负责具体功能的控制。
1 协议层软件
协议层是整个系统LIN协议实现的核心,负责物理链路的控制和使用,它接收来自接口层函数的调用,主要完成多字节数据的发送。在本设计中,多字节发送函数为void_send_data(u8*temp,u8num),待发送的数据数组通过指针temp传递,num为要发送的数据字节数,发送程序流程图如图3(a)所示。
2 接口层软件
接口层是协议层与应用层联系的桥梁,负责将应用层的命令转换为协议层的数据格式,然后通过协议层将这些数据发送到总线,在本设计中,接口层多字节发送函数为void_u8_data_wr(data_handleuuu,u8*ptr),程序流程如图3(b)所示。
图3 多字节发送流程图
3 应用层软件
应用层软件主要分为3个基本模块:总线通信模块void_LIN_send(void)、键盘状态检测模块voidkey_scan(void)和键盘处理模块voidprocess_(void)。程序开始运行时,先对LIN总线进行初始化,初始化完毕就转入键盘状态扫描函数key_scan()。该函数监测键盘状态标志,如果状态改变就调用LIN_send()把对应命令发送到总线上。
试验测试
根据上述方案,设计了一款简易的按键控制器,配置了3个按键来模拟方向盘按键的功能,并进行了通信试验和初步的抗干扰试验,印制电路板(PCB)如图4所示。测试方法如下:
图4 按键控制器PCB图
将按键控制器的LIN线、地线分别和自制的LIN总线测试台LIN线、地线相连,供电电压为直流12V。当任意按键按下时,控制器作为主节点主动向LIN总线发送“#F0”指令,如果LIN总线测试台接收到该命令字就启动蜂鸣器报警,同时发光二极管闪烁。实际测试表明按键控制器LIN通信功能正常。由于汽车电磁环境恶劣,因此LIN通信系统的抗干扰能力尤为重要。按键控制器在BZ-5型汽车电火花干扰试验台上进行了抗干扰试验,试验中LIN通信功能正常,达到了设计目标。