基于MC9S12DP256B的汽车防抱死系统设计
扫描二维码
随时随地手机看文章
前言
随着汽车行驶速度的提高,道路行车密度的增大,对于汽车行驶安全性能的要求也越来越高。汽车的防抱死制动系统(ABS)应运而生,它是以传统制动系统为基础,采用电子控制技术,在制动时防止车轮抱死的一种机电一体化系统。
基于双CPU结构的防抱死系统
ABS系统设计中主要考虑以下几个问题:首先,由于ABS系统直接关系车辆的安全性能,因而它的故障问题显得极为重要,系统必须保证能及时检测故障并准确判断故障点;其次,ABS系统通常包含电磁阀等感性负载,驱动电流很大,需要适当的驱动电路;此外,为了便于ABS系统与车辆上其他系统进行通信,系统需要预留通信接口。
本文以原有的四传感器四通道(4S/4M)ABS电子控制单元为基础,开发了一个带有鼓掌自检的气压ABS。设计中采用MCU+CPLD的双CPU结构,系统结构如图1(图略,请参看《电子设计应用》2005.8) 所示。
控制CPU采集轮速信号,然后根据设定的减速度和滑移率门限值进行路面识别及制动控制,另外它还负责对轮速传感器进行静态检测。安全CPU (CPLD)则主要负责ABS系统的故障检测工作,判断故障部位,并将相应的故障码传输给控制CPU。产生故障后,由控制CPU统一对故障状态进行处理,包括中断ABS功能,恢复至常规制动,点亮故障显示灯,并将相应的故障代码存储在EEPROM中,需要时可随机通过CAN通信端口传输到上位机或车上其他电子控制系统。
系统硬件设计
ABS系统故障主要为电磁阀故障、轮速信号采集系统的故障、制动管路压力信号采集系统的故障、电源故障和控制器故障。本系统针对这些故障均给出了相应的诊断电路。
MC9S12DP256B和CPLD概述
MC9S12DP256B是基于16位HCS12 CPU及0.25um制造工艺的高速、高性能5.0V FLASH微控制器。该单片机使用了锁相环技术或内部倍频技术,使内部总线速度大大高于时钟产生器的频率,在同样速度下所使用的时钟频率较同类单片机低很多,因而高频噪声低、抗干扰能力强,更适合于汽车内部恶劣的环境。并且包含定时器、 A/D转换、 PWM输出、CAN通讯、EEPROM、SPI、SCI等多个模块,资源丰富,满足系统功能的开发要求。
系统中的CPLD采用XC9572TQ100,此款芯片支持扩展工业温度范围。它不仅工作温度范围更大,从-40C至+100C,而且还符合汽车业界特有的质量认证呢感标准。此外,该芯片的门数和I/O数均符合设计要求,并留有功能扩展的余地。
数字输入通道诊断电路
轮速输入信号正确与否直接影响到ABS系统的工作。为此特地在信号处理电路之前加设数字开关,便于系统检测电路板数字输入通道。采用输入模拟法,由安全CPU(CPLD)向数字通道发出一组标准方波信号输入到控制 CPU的输入捕捉端口进行测量。具体电路如图2 (图略,请参看《电子设计应用》2005.8)所示。
CPLD产生DETECT信号控制数字开关CD4066的通断。ABS上电自检时,DETECT为“0”,开关簖开,轮速信号被屏蔽,此时由 CPLD产生事先定义好的标准方波(频率为100Hz,即每个计数周期 (0.1s)10个脉冲)并输出给主CPU。主CPU通过ECT口捕捉方波进行测量与计算,经与定义的该标准波的频率比较后,如果结果一致则说明数字输入通道正常, 否则说明有故障出现。检测完毕,一切正常后,DETECT变为“1”,开关接通,轮速信号经过信号整形放大单元、由CPLD输出至控制CPU。
电磁阀驱动及其故障检测电路
汽车制动系统中电磁阀的工作电流为1.5-2.5A,而微控制器的输出电流远达不到这一要求,因此采用Freescale公司的高端驱动芯片MC33289来实现电磁阀的驱动。单通道的控制电路如图3(图略,请参看《电子设计应用》2005.8)所示。
由于MC33289的自检功能,应用时可将St引脚直接与CPU相连,一旦电磁阀出现故障,如短路或断路,St即自动置低,CPU接收到信号后立刻停止ABS功能,点亮故障显示灯,同时将相应的故障代码以中断的形式传输给控制CPU。对电磁阀驱动状况的检测通过比较MC33289的输出OUT与输入 IN来完成。在正常情况下同一路的两个逻辑值应相等,同时为“1”或“0”;若不相等,则说明驱动芯片出现故障,CPU必须中断ABS功能,点亮故障显示灯并传输故障码。
故障码存储及传输
MC9S12DP256B自带4KB的EEPROM,地址从0x400到0xFFF。 无须外扩EEPROM,可用于对故障码的存储,便于数据长期保存。
擦、写操作前必须通过设置EEPROM时钟分配寄存器 ECLKDIV,将模块时钟配置在150KHz至200KHz之间。系统中的晶振为16MHz,总线频率8MHz,经计算,取ECLKDIV=0x4A,即预分频因子PRDIV8=1,分频因子EDIV[5:0]=001010,模块的时钟为182KHz。
因为每次写操作均以字进行,所以为安全起见,擦除时每次擦两个字。擦除操作的时序与写操作完全相同,只不过相应地址写入的数据均为“0”。
此外,系统结合自身CAN模块,选用Philips公司的PCA82C250,设置了CAN的接口电路,便于故障码的传输。接口电路如图4(图略,请参看《电子设计应用》2005.8)所示。
系统中的其他电路,像轮速信号处理电路、传感器静态检测电路、电源监控电路等由于篇幅所限,在此不作详细介绍。
系统软件及VHDL语言设计
系统的控制CPU MC9S12DP256B用C和汇编语言进行开发,而CPLD用VHDL语言进行编程。
MC9S12DP256B程序的功能是: 程序存储器及数据存储器的自检; 对轮速传感器进行静态、动态检测;采集轮速信号,计算出车轮速度和减速度,根据控制逻辑输出制动压力调节信号;实时存储故障代码;CAN通信。
CPLD程序的功能是:控制数字开关CD4066的通断;检测数字输入通道;监测电磁阀驱动芯片和电磁阀的工作状态;向控制CPU传送故障情况。 CPLD的设计由四个步骤组成:设计输入、实现、校验和芯片编程。设计中采用VHDL语言文本输入,经综合、仿真、实现后通过并行线缆下载至Xilinx 芯片中。图5和图6(图略,请参看《电子设计应用》2005.8)分别是系统控制CPU及CPLD的流程图。
结语
本系统以其独特的双CPU结构,集防抱死制动、系统故障检测于一体,同时能实现对故障检测码的传输。 同时双CPU均预留了一定的输入/输出端口, 为进一步扩展汽车电子控制装置的功能提供了可能。