模块化车身控制器的开发
2014-12-04董庆大吴明瞭
黎 新,陈 晖,董庆大,吴明瞭,李 良,李 敏,姜 凯,张 皓
Li Xin,Chen Hui,Dong Qingda,Wu Mingliao,Li Liang,Li Min,Jiang Kai,Zhang Hao
(东风汽车股份有限公司商品研发院,湖北 武汉 430057)
随着车身上的执行器越来越多,将各种灯具、门锁、刮雨器等整合起来集中控制比单独控制具有相当大的优越性,因此车身控制器逐渐成为汽车的标准配置。虽然车身控制器的控制逻辑并不复杂,但是由于车型不同配置不同,因此车身控制的功能需求也不同,往往需要针对具体车型重新开发配套的车身控制器,不仅开发周期长,而且容易出现软、硬件设计错误,因此需要开发一种通用的可根据需求增减功能的车身控制器。
1 车身控制器开发目标
软、硬件平台化、模块化设计,各种功能可相对独立配置,可按用户需求增减,满足客户不同配置车型。车身控制器的主要功能是采集各种输入信号(包括高有效/低有效开关、模拟量、脉冲信号、CAN/LIN总线报文等),对各种灯具(包括转向灯、室内灯、位置灯、前后雾灯、远近光灯、超车灯、制动灯等)、遥控电动门锁、刮雨器、车窗等车体控制单元进行控制和检测。
实现上述目标的方案是:针对各个被控对象设计相应的输入、输出接口电路和驱动程序,根据具体车型实际配置的被控对象,选择相应的输入、输出接口电路;根据被控对象的具体需求,建立相应的应用层模型。
2 硬件设计
为了能够适应不同配置车型对车身控制的不同功能需求,硬件平台要针对全部功能模块进行单元电路设计,预留足够的接口。若无需某功能,不焊接该单元电路,适当用飞线连接即可。例如,自动上锁功能和安全带未系报警功能要根据车速信号来判断,车速既可以通过采集脉冲推算出来,也可以通过CAN总线接收。这两种方案在不同车型上都有应用,因此控制器 PCB板上预留了脉冲输入电路和CAN收发电路。完整的硬件平台结构如图1所示,电路原理如图2~图10所示。
硬件平台主要包括以下模块:
1)单片机最小系统,由48脚MC9S08DZ60为核心的主控芯片、4MHz晶振和若干电容构成;
2)以TLE4275为核心的电源电路为整机提供5V直流工作电压,由二极管、三极管、电阻、电容等分立器件组成防反接、防浪涌模块;
3)开关信号输入,包括高有效开关和低有效开关单元电路。由于开关信号较多,为了节约单片机I/O口资源,开关信号通过74HC165并转串芯片输入主控芯片;
4)模拟信号输入;
5)脉冲信号整形输入;
6)灯丝检测电路,包括转向灯灯丝开路检测,制动灯、位置灯、后雾灯灯丝开路或短路检测;
7)开关信号输出及功率放大,由于开关信号较多,为了节约单片机I/O口资源,开关信号由主控芯片串行输出,通过74HC595串转并芯片和由BSP75、ULN2803A、VND5E025MK组成的驱动电路控制负载;
8)蜂鸣器及驱动电路,以不同频率和持续时间鸣叫,提醒司乘人员;
9)总线通信电路,包括CAN总线和LIN总线接口电路,既便于车身控制器的调试和标定,又能与其他控制器通信。
3 软件设计
软件架构借鉴AUTOSAR的分层思想,自底向上依次分为驱动层、接口层和应用层。驱动层的作用是:1)完成微控制器内部系统时钟、I/O、CAN/LIN等模块的初始化;2)读写各模块寄存器获取输入信号、输出控制信号;3)提供中断服务。接口层的作用是隐藏操作硬件的细节,屏蔽不同硬件的具体差异,为应用层代码提供统一的调用接口。应用层实现具体的控制逻辑,通过接口层获取各种输入信号,经过计算得出控制信号,再通过接口层间接调用驱动层控制被控对象。
由于硬件平台已经确定,驱动层和接口层基本上不会再有大的变化,可以采用手写代码实现;而应用层正好相反,会因为不同车型配置的不同需求而频繁修改,传统的手写代码的开发方式很难胜任。Matlab软件的Simulink和Stateflow能够以非常直观易懂的图形方式即模型来表达复杂的控制逻辑,并且能在Matlab环境下测试控制逻辑的正确性,还能自动将模型转化为等价C语言代码,因此应用层采用Matlab进行基于模型的开发。每个功能模块封装为一个子系统,如不需要某个功能模块,可将其对应的子系统注释掉,生成的C代码就不包含该模块。
模型搭建测试完毕后生成C代码,与底层、接口层C代码一起添加到CodeWarrior项目中编译为S19文件。通过Freescale专用仿真器可以将S19文件从上位机下载到微控制器芯片里,还可以实现上位机与车身控制器双机联合调试。
4 应用案例
东风A08客车车身控制对象有灯、锁、刮雨器、车窗等。该车门锁要求能够用遥控钥匙开启或关闭,而上述硬件平台不含遥控接收电路,但预留了与专用遥控接收电路板对接的接口,因此上述硬件平台能够满足该车车身控制的需求,不需要重新开发硬件。
该车车身控制逻辑如下。
4.1 灯具控制
4.1.1 转向灯控制
采集转向灯开关和危险警报开关的信号,转向开关接通后,相应方向的转向灯闪烁。危险警报开关按下后,所有转向灯同时闪烁。
4.1.2 室内灯控制
采集门开关信号,任一车门打开,当IGN信号有效时,室内灯常亮;当IGN信号无效时,最多延时5 min自动熄灭。遥控开锁时,当IGN信号无效时,最多延时5 s自动熄灭。全部车门关闭,室内灯熄灭。
4.1.3 位置灯控制
位置灯开关闭合,位置灯开启;位置灯开关断开,位置灯关闭。
4.1.4 雾灯控制
IGN信号和位置灯开启情况下,按下前雾灯开关,控制前雾灯继电器吸合,开启前雾灯;无IGN信号、位置灯关闭或再次按下前雾灯开关,控制前雾灯继电器断开,关闭前雾灯。采集 IGN信号、位置灯信号、前雾灯开关信号和后雾灯开关信号,如果这 4个信号都能检测到,开启后雾灯,否则关闭后雾灯。
其他灯具,如近光灯、远光灯、超车灯、制动灯控制策略类似,都是通过检测IGN信号和相应开关的状态来控制灯具开启或关闭。
4.2 门锁控制
所有门锁电机并联控制,开锁闭锁有遥控、电动和手动3种方式。遥控开锁后30 s未开门,自动闭锁。车速大于15km/h,自动上锁。当钥匙插入点火锁打到ACC档或ON档时或者门未关,遥控功能无效。当车速小于15km/h时,电动开闭锁功能有效。当左前门处于开锁状态时,按电动中控门锁开关,信号持续100 ms及以上,门闭锁;当左前门处于闭锁状态时,按电动中控门锁开关,信号持续100 ms及以上,门开锁。操纵驾驶员侧门栓,其他门跟随驾驶员侧门上锁或开锁。任一车门未关好上锁时,所有转向灯闪烁30s,门锁电机不工作。
4.3 刮雨器和洗涤系统控制
ACC或IGN信号接通时,若刮雨器低速开关闭合,则刮雨器电机低速运转;若刮雨器高速开关闭合,则刮雨器电机高速运转;若刮雨器间歇开关闭合,则刮雨器电机间歇运转,间歇开关为无级变速,间隔时间为1~12 s。若ACC或IGN信号消失或刮雨器开关断开,则刮雨器电机在刮水片到达起始位置时停止运转。ACC或IGN信号接通时,若洗涤开关闭合,刮雨器电机低速运转;洗涤开关断开,刮雨器电机刮刷2次。
4.4 其他辅助功能
ACC关闭情况下,车门开启,位置灯未关,声音报警。检测IGN信号,车速大于15km/h时安全带未系,声音报警。检测车窗按键,控制电机带动车窗升降。
根据上述控制逻辑建立 Simulink模型如图11~图16所示。
5 结束语
通过软、硬件模块化设计和基于Simulink建模实现应用层控制策略来开发通用的车身控制器,根据各种不同的车身控制需求对模块增减功能,可以避免重新开发,提高产品可靠性,加快产品上市。