刘文英,邹洪波,王 东,刘光宇*
(1.杭州电子科技大学 信息与控制研究所,浙江 杭州 310018;2.集瑞重工研究院,安徽 芜湖 241080)
随着电子设备的不断增加造成导线数量增加,使得在汽车内有限的空间中布线变得日益困难,从某种程度上限制了汽车电子功能的拓展。采用总线技术,并通过电控系统网络化控制[1]能有效减少线束使用,降低车内布线难度。现有LIN 总线组合开关基于SCI/UART 数据格式,采用单主机多从机模式,总线由3 根导线组成(电源、地线和数据线)[2-3]。由于每个组合开关上器件I/O 口数量有限,则能检测的开关量也有限,在应用中若需增加开关量进行功能扩展,需要接入多个组合开关。但由于过多节点将导致网络阻抗过低、降低通讯效率,一个LIN 网络中节点总数不宜超过16[4],使得组合开关的扩展受到限制。随着汽车总线中通讯节点和数据流量持续增加,节点日益复杂,使得汽车总线在重量、布置、成本、通信效率等方面面临困境。
本研究针对现有组合开关不易扩展、应用不灵活等问题,设计一款基于CAN 总线和UART 总线的汽车组合开关。由于采用CAN 总线通讯的组合开关只使用两根线进行通讯,不仅可提高数据传输的可靠性和安装便捷性,同时可减少线束的使用。使用者应用该组合开关时,只需将组合开关主节点连接到车内CAN总线上,根据需要连接部分从节点,便可检测多个开关节点的按键状态。不仅可减少线束使用,方便车内布线,而且易于扩展,可至少连接30个开关节点,扩展的各从节点上的开关信号的对应功能可由使用者根据需要在汽车电控单元自行定义。该组合开关还设计低功耗模式,具有休眠、唤醒功能。
该组合开关由一个主节点和多个开关从节点组成,整体结构如图1 所示。基于STM32 系列微控制器的主节点作为组合开关的核心,负责协调各开关节点与汽车电控单元间的通讯。主节点一方面通过串行通讯总线检测各开关节点的按键状态,并将电控单元的工作指示传送给各开关节点。另一方面通过CAN 总线与汽车电控单元通讯,上传实时检测的按键状态。汽车电控单元根据接收到的按键状态操作相应的设备,并将设备当前的工作状态通过主节点反馈给各开关节点作为工作指示。
图1 组合开关结构框图
主节点是组合开关的核心,由STM32 最小系统、电源模块、CAN 收发单元及串行通讯电平转换电路组成。主节点采用ST 公司Cortex-M3 内核的32 位闪存微处理器STM32F103C8T6[5],其内部集成了CAN 控制器和串行通讯接口。该处理器具有3种低功耗模式:睡眠模式、停止模式和待机模式,在停止模式,其功耗可以低至几十个微安。
整车为组合开关提供的电源为24 V,经过可调输出稳压器LM2576D2T_ADJR4G 降压后给各开关节点及主节点上的5 V 芯片供电。LM2576 的工作电路如图2 所示。LM2576 具有7 V~45 V 宽输入电压范围,TTL 关断能力[6]。其最大输出电流有3 A,这样的带载能力保证系统可以连接至少30个开关节点。组合开关进入休眠模式后,主要功耗为稳压器的静态功耗,为降低系统的休眠功耗,笔者在设计中使用NE555 定时器控制LM2576 的使能引脚,使其在系统休眠期间间歇式工作。在系统进入休眠模式前,STM32 输出NE555 使能信号,使NE555 工作输出一定占空比的定时信号POWER_OFF,控制LM2576 使其定时关断,在其关断期间使用1 000 μF 电容储能为进入休眠状态的组合开关主从节点供电。
图2 电源模块电路
CAN 总线自20 世纪80年代初由Bosch 公司开发以来,迅速得到广泛应用,成为汽车领域应用最广泛的总线标准[7-8]。汽车内部有2 条CAN 通讯线(CANH和CANL)贯通车身,构成CAN 网络的主干通讯通道,所有CAN 节点可以挂接在主通道的任意位置。该组合开关也设计了CAN 总线通讯接口,可以作为一个独立的节点,直接挂在总线上。STM32F103C8T6 内部集成了CAN 控制器,只需外加CAN 收发器即可工作。本研究选用CAN 收发器NCV7340D12R2G[9],该器件具有正常和静默2种工作模式,由8 号引脚控制,在静默模式下其典型功耗仅为10 μA。
主节点与开关节点采用UART 串行通讯,接口采用三线制,分别是5 V 电源线、信号线和地线。为了防止电源线上的传导干扰引入通信线路,本研究使用单独的信号线通讯,另外为了减少线束,收、发数据共用一根信号线。信号线上采用24 V 的电压通信,以提高信号传输过程的抗干扰能力,主节点和开关节点各设计了相应的电平转换电路,将24 V 的信号,分别转换为3.3 V和5 V 的串行通讯信号,送给各自的主控制芯片。
主节点串行接收电平转换电路如图3 所示,VIN为信号线。当开关节点发送信号为5 V 高电平时,经过从节点内部电平转换电路将信号转换为24 V 在信号线上传输,VIN 端为24 V 高电平,此时图3 中三极管Q3、Q4都截止,主节点串行接收引脚USART2_RX上为3.3 V 高电平。反之,所有三极管都导通,USART2_RX 上为低电平。主节点串行发送端到开关节点的接收端也有类似的电平转换电路。这样设计的目的主要是为了使三极管在串行通讯空闲时的高电平下都关断,降低通讯线路上的功耗。
图3 主节点串行接收电平转换电路
开关节点包含串行通讯电平转换电路、按键输入电路及背光灯控制电路。主控芯片采用宏晶公司的51 单片机STC11F02[10]。该芯片成本低且满足低功耗要求,在休眠模式下最低功耗为0.1 μA[11]。除了2个外部中断信号可将CPU 从掉电模式唤醒,还有3个复用引脚信号,分别是2个定时/计数器信号输入引脚INT/T0/P3.4、INT/T1/P3.5和串口接收引 脚INT/RxD/P3.0[12],为开关节点休眠、唤醒功能的硬件设计提供了方便的选择。开关节点的按键检测电路中,通过π 型滤波电路在硬件上提前给按键输入做消抖处理,外加起保护作用的压敏电阻,防静电浪涌和尖脉冲。按键背光灯由51 单片机STC11F02 控制,通过定时器中断在其控制引脚产生PWM 输出,经过硬件上的二阶滤波电路滤掉交流分量,留下直流分量,实现亮度可调。
组合开关主节点通过轮询的方式查询各开关节点的按键状态,每个开关节点都有相应的地址编号。主节点流程图如图4 所示,系统上电后先进行初始化,包括时钟、定时器、外部中断、串行中断、CAN 控制器等。
图4 主节点程序流程图
主节点给开关节点的指令有4种,分别是在线节点查询指令、节点状态查询指令、工作指示指令及休眠指令。组合开关主节点会定时对所有预留的地址口进行在线节点查询,若某地址上有节点,则会收到该地址上开关节点的响应,之后主节点只对在线的节点发送按键状态查询和硬件工作指示指令。休眠命令采用广播的方式,各开关节点收到休眠命令后停止串行通讯,进入休眠状态。主节点重复进行休眠命令广播和在线节点查询,直至确认所有地址口上都无节点在线后才进入休眠状态。需要注意的是由于收、发共用一根信号线,开关节点在收到休眠指令后要先关闭串口,进入掉线状态,以备主节点查询确认是否所有节点都已掉线,开关节点延时待主节点先休眠后,再进入休眠状态,以免提前休眠而被串口接收引脚上的外部中断唤醒。
各开关节点初始化后,通过串行中断接收主节点的指令。开关节点程序流程图如图5 所示。系统收到指令后先校验地址编号,判断若为该节点的地址,则对收到的指令进行解析处理,根据收到的指令类型作相应的响应或操作。当汽车电控单元给组合开关发休眠指令时,组合开关主节点和各开关节点后先后进入休眠状态。系统休眠后既可以通过汽车电控单元发送CAN 信号到STM32F103C8T6 的外部中断由上而下地唤醒组合开关,也可以通过组合开关里的任意开关节点按键按下产生的外部中断,由下而上地唤醒整个系统。
图5 开关节点程序流程图
经过软、硬件结合调试,该组合开关带30个节点时,采用9 600 bit/s 的波特率可以可靠通信,检测到各个开关节点上的按键状态。在系统进入休眠模式时,本研究通过设置使主节点上的 CAN 收发器、STM32F103C 及所有开关节点都进入掉电模式,系统功耗为7.3 mA,而各芯片的待机功耗都为微安级,经测试发现,此时主要为LM2576 的静态功耗。为降低组合开关的休眠功耗,加入NE555 延时调压节能电路。在系统进入休眠模式前,STM32 输出NE555 使能信号,使NE555 工作输出一定占空比的定时信号,控制LM2576 使其定时关断,在其关断期间使用1 000 μF电容储能为进入休眠状态的系统供电。
NE555 工作电路如图6 所示。其中D2、D3为二极管,NE555 使能后,C1、C2通过R2、D2构成的RC 回路充电,当达到THR 的阈值电压时,NE555 的OUT和DISC 引脚输出低电平。之后C1、C2通过R3、D3构成的RC 回路放电,当达到TRIG 信号的阈值低电压时,NE555 的OUT和DISC 引脚输出高电平。通过C1、C2周期性地充、放电,使NE555 输出一定时信号。调节R2、R3的阻值可调节C1、C2充、放电时间,即可设置NE555 输出的定时信号占空比。
图6 NE555 工作电路
经测试,系统休眠功耗与NE555 定时器输出信号的占空比关系如表1 所示。可见占空比越小,即LM2576 间歇性工作的时间越短,组合开关休眠功耗越低。需要注意的是,1 000 μF 电容储能有限,测试发现当NE555 输出占空比小于1/6时,由于供电不足,系统产生掉电复位,不能保持休眠状态,因此目前系统的最低功耗调到了3.8 mA。应用时也可以通过换用更大容值的2 000 μF 储能电容,将系统功耗调至更低的3.2 mA,此时已达到临界值,之后再往下调占空比,系统功耗不会再下降,甚至会由于供电不足唤醒休眠模式。
表1 低功耗测试结果
该组合开关改变了传统的点对点控制方式,主节点与汽车电控单元采用CAN 总线通讯,主节点与从节点采用单信号线通讯,减少线束使用,方便车内布线。不仅易于扩展,可以挂载至少30个开关节点,且在设计的过程中考虑了实际应用的低功耗、低成本的要求,在软件和硬件上进行了有效的低功耗设计和处理。经测试,其性能良好,在休眠模式下功耗设计仅为3.8 mA。
目前在欧美的每辆汽车上都至少有一个CAN 节点,我国在CAN 总线领域起步较晚,但市场潜力很大。现今车身网络大多只应用于中高档车,自主汽车品牌的车辆大多价格低廉,大多数这类汽车还采用传统的点对点控制方式,尚未采用CAN 总线产品,而进一步的发展趋势是把车身网络推广向中档、经济型轿车甚至农用运输车。随着民族品牌的发展,汽车工业的发展和科技水平的提高,产品的不断进步,对CAN 总线应用的需求也越发迫切。基于CAN 总线接口的低功耗、低成本汽车组合开关具有一定的应用价值。
[1]南金瑞,刘波澜.汽车单片机及车载总线技术[M].北京:北京理工大学出版社,2005.
[2]王 鑫.组合开关中灯控开关的失效原因及解决方案[J].汽车电器,2009(9):29-31.
[3]马春红,王旭东,吕宝良,等.基于CAN/LIN 总线的车灯控制系统的设计[J].哈尔滨理工大学学报,2006,11(1):116-119.
[4]东风汽车有限公司.一种基于LIN 总线的新型汽车组合开关:中国,200620099701[P].2006-10-31.
[5]巍 巍,李泽滔.CAN 总线汽车组合开关体系的研究与开发[J].中国西部科技,2009,23(8):36-37.
[6]张 志.CAN/LIN 混合车身网络在东风载货车上的开发及应用[D].北京:清华大学汽车工程学院,2006.
[7]宋 立.基于CAN 总线的车身网络监测系统的设计[D].上海:上海交通大学电子信息与电气工程学院,2008.
[8]付 晓.CANBUS 总线在组合开关及其监控系统中的应用[J].电气开关,2012,50(5):67-68.
[9]凡海峰.基于CAN 总线的汽车车身控制系统研究[D].南京:南京航空航天大学机电学院,2009.
[10]蒋淑霞,韩志刚,周永军.基于CAN/LIN 总线车身网络优化设计与CAN 通信实现[J].仪表技术与传感器,2011(6):48-51.
[11]刘红丽.基于RS485 总线的组合开关保护测控系统[J].电气开关,2010,48(4):75-77.
[12]崔储斌,周孟然.基于ARM 的智能组合开关的研究[J].科技咨询,2008(18):1-3.