车窗控制系统是汽车的重要组成部分,传统的车窗控制采用的是线束控制,较为简单,并且线束和相关的设备都比较庞大。为了摆脱这种局面,汽车电子技术逐步向整车集成电子化、智能化方向发展,而总线式网络控制技术正是目前汽车网络控制所采用的主要方式。
根据美国SAE(汽车工程师协会)划分的汽车数据传输分类,汽车车窗控制系统属于A类的面向传感器/执行器控制的低速网络。数据传输位速率通常只有1 b/s~10 kb/s。而在这种速率上采用LIN总线方式的网络控制,正好可以满足其要求,并且LIN总线能节省大量的线束、便于维护和实现汽车诊断功能。本文提出了一种将LIN总线运用到车窗控制系统中的设计方案,并给出系统硬件及软件的实现方法。
1 车窗控制系统的网络结构设计
本设计主要实现4个车窗的升降功能及车窗防堵转。驾驶员侧车窗开关总成可以控制全车4个车窗的手动升降和自动升降,驾驶员侧车窗安全锁开关可以使能或禁止其他车窗的升降,其他3个车窗的分开关也可以控制各自车窗的升降。
车窗控制系统采用了LIN总线构建的控制网络,并按照LIN2.0协议规范来编写控制程序。网络框架如图1所示。一个驾驶员侧主节点通过LIN总线和4个车窗从节点进行通信,通信速率为19 200 b/s,4个车窗从节点上带有电机驱动电路,可以驱动车窗电机的运行。
2 硬件系统设计
从LIN总线的通信方式来说,对硬件的要求并不高,它由基于UART接口的低成本硬件实现,几乎所有的微控制器都具有LIN通信的条件,但对于芯片的选择还需要考虑到性价比和稳定性,这在实际的产品制造中相当重要。
2.1 微控制器的选择
主节点微控制器的功能主要是对按键进行检测,并按LIN2.0协议的帧格式发送相应控制命令,同时还需具有休眠功能,在无操作时最大限度地节省汽车能源。在本次设计中选择了MICroChip公司的PIC16F系列微控制器PIC16F887,具有8 KB Flash、368 B SAM、256 B ROM、增强型USART 模块(支持RS-485、RS-232和LIN 2.0,自动波特率检测,遇到起始位时自动唤醒)、节能休眠模式。其抗干扰能力完全能在汽车复杂电磁环境中正常工作[1]。
从节点选用PIC16F883,其主要性能和PIC16F887相同,片内容量和引脚数要少于PIC16F887,为28个引脚,不过能满足从节点车窗控制的要求。
2.2 LIN通信接口及电源系统
LIN总线驱动电路采用了Microchip公司的MCP2021,该器件遵循LIN1.3、LIN2.0和2.1总线规范,并符合SAE J2602规范。宽供电电压,连续情况下可为6.0 V~18.0 V,扩展的温度范围为-40 ℃~+125 ℃,可以与标准的UART器件接口。MCP2021内部包含一个电压调整电路,在温度范围内,可输出电压为5.0 V,50 mA电源,误差为±3%。稳压器采用LDO设计,具有短路保护功能,在输出电压降到3.5 V以下时将关闭输出。MCP2021还具有热关断保护功能。经过特别设计的稳压器可在汽车环境下工作,在电池反向连接、+43 V瞬变负载突降和双电池启动情况下不至毁坏[2]。
MCP2021在单片机和LIN半双工总线之间提供了物理接口,它针对的是串行总线速度达20 kb/s的汽车及工业应用。MCP2021在单片机和串行网络总线之间提供了半双工、双向通信接口。将CMOS/TTL电平转换为LIN逻辑电平。
LIN2.0规范要求系统中所有节点的收发器通过LIN引脚连接。以地为参考,从LIN总线到供电电池间的外部终端电阻最大为510Ω。510 Ω电阻对应 1个主节点和 16个从节点。
LIN接口及电源系统如图2所示。二极管D2用于防止系统电源反接输入对器件产生的破坏,二极管D3和电阻R31构成上拉以满足LIN2.0规范中对主节点的要求,从节点则不需要D3和R31构成上拉。24 V瞬态抑制二极管TVS3和TVS4可对器件进行保护,C3、C4为外部电源滤波电容,C6是负载电容。
2.3 从节点电机驱动及A/D采样电路
目前汽车上的车窗电机可以采用电机驱动IC来实现控制,但成本相对较高。因此,在从节点电机驱动中采用两个单刀双掷继电器组成一个闭合回路,以控制直流电机的正反转从而实现开闭窗操作。具体电机驱动电路如图3所示。通过微控制器的RB2和RB3输出控制信号,以导通三极管来推动继电器动作实现开启和闭合。二极管D3和D4用于保护继电器不被电感释放的反向电流冲击,电阻R4为电流采样电阻,用于车窗上升到顶或下降到底的情况下,电机发生堵转时采样电机的堵转电流。微控制器通过A/D采样值的变化量来判断是否停止电机动作。
图4为从节点主控芯片的复位电路及A/D采样电路,电阻R1和R2为分压电阻,D1和D2为钳制二极管,将输入电压范围钳制在-0.7 V~+5.7 V,以防止芯片端口电压过高损坏。C6、D9和R15构成复位保护电路,AD IN为A/D采样输入通道。