DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1219|回复: 0
打印 上一主题 下一主题

[待整理] 基于MC9S12DP256B的汽车防抱死系统设计

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-27 21:21:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1前言

随着汽车行驶速度的提高,道路行车密度的增大,对于汽车行驶安全性能的要求也越来越高。汽车的防抱死制动系统(ABS)应运而生,它是以传统制动系统为基础,采用电子控制技术,在制动时防止车轮抱死的一种机电一体化系统。

2基于双CPU结构的防抱死系统

ABS系统设计中主要考虑以下几个问题:首先,由于ABS系统直接关系车辆的安全性能,因而它的故障问题显得极为重要,系统必须保证能及时检测故障并准确判断故障点;其次,ABS系统通常包含电磁阀等感性负载,驱动电流很大,需要适当的驱动电路;此外,为了便于ABS系统与车辆上其他系统进行通信,系统需要预留通信接口。

本文以原有的四传感器四通道(4S/4M)ABS电子控制单元为基础,开发了一个带有故障自检的气压ABS。设计中采用MCU+CPLD的双CPU结构,系统结构如图1所示。

                                          图1ABS系统结构框图

控制CPU采集轮速信号,然后根据设定的减速度和滑移率门限值进行路面识别及制动控制,另外它还负责对轮速传感器进行静态检测。安全CPU(CPLD)则主要负责ABS系统的故障检测工作,判断故障部位,并将相应的故障码传输给控制CPU。产生故障后,由控制CPU统一对故障状态进行处理,包括中断ABS功能,恢复至常规制动,点亮故障显示灯,并将相应的故障代码存储在E2PROM中,需要时可随时通过CAN通信端口传输到上位机或车上其他电子控制系统。

3系统硬件设计

ABS系统故障主要为电磁阀故障、轮速信号采集系统的故障、制动管路压力信号采集系统的故障、电源故障和控制器故障。本系统针对这些故障均给出了相应的诊断电路。

4 MC9S12DP256B和CPLD概述

MC9S12DP256B是基于16位HCSl2CPU及0.25?m制造工艺的高速、高性能5.0VFLASH微控制器。该单片机使用了锁相环技术或内部倍频技术,使内部总线速度大大高于时钟产生器的频率,在同样速度下所使用的时钟频率较同类单片机低很多,因而高频噪声低,抗干扰能力强,更适合于汽车内部恶劣的环境。并且包含定时器、A/D转换、PWM输出、CAN通讯、E2PROM、SPI、SCI等多个模块,资源丰富,满足系统功能的开发要求。

系统中的CPLD采用XC9572TQ100,此款芯片支持扩展工业温度范围。它不仅工作温度范围更大,从-40℃~+100℃,而且还符合汽车业界特有的质量认定标准。此外,该芯片的门数和I/O数均符合设计要求,并留有功能扩展的余地。

5 数字输入通道诊断电路

轮速输入信号正确与否直接影响到ABS系统的工作。为此特地在信号处理电路之前加设数字开关,便于系统检测电路板数字输入通道。采用输入模拟法,由安全CPU(CPLD)向数字通道发出一组标准方波信号输入到控制CPU的输入捕捉端口进行测量。具体电路如图2所示。

                                             图2电路板数字输入通道诊断电路

CPLD产生DETECT信号控制数字开关CD4066的通断。ABS上电自检时,DETECT为“0”,开关断开,轮速信号被屏蔽,此时由CPLD产生事先定义好的标准方波(频率为100Hz,即每个计数周期(0.1s)10个脉冲)并输出给主CPU。主CPU通过ECT口捕捉方波进行测量与计算,经与定义的该标准波的频率比较后,如果结果一致则说明数字输入通道正常,否则说明有故障出现。检测完毕,一切正常后,DETECT变为“1”,开关接通,轮速信号经过信号整形放大单元、由CPLD输出至控制CPU。

6电磁阀驱动及其故障检测电路

汽车制动系统中电磁阀的工作电流为1.5~2.5A,而微控制器的输出电流远达不到这一要求,因此采用Freescale公司的高端驱动芯片MC33289来实现电磁阀的驱动。单通道的控制电路如图3所示。

                                              图3电磁阀驱动及故障检测电路

由于MC33289的自检功能,应用时可将St引脚直接与CPU相连,一旦电磁阀出现故障,如短路或断路,St即自动置低,CPU接收到信号后立刻停止ABS功能,点亮故障显示灯,同时将相应的故障代码以中断的形式传输给控制CPU。对电磁阀驱动状况的检测通过比较MC33289的输出OUT与输入IN来完成。在正常情况下同一路的两个逻辑值应相等,同时为“1”或“0”;若不相等,则说明驱动芯片出现故障,CPU必须中断ABS功能,点亮故障显示灯并传输故障码。


7 故障码存储及传输

MC9S12DP256B自带4KB的E2PROM,地址从0x400到0xFFF。无须外扩E2PROM,可用于对故障码的存储,便于数据长期保存。

擦、写操作前必须通过设置E2PROM时钟分配寄存器ECLKDIV,将模块时钟配置在150KHz至200KHz之间。系统中的晶振为16MHz,总线频率8MHz,经计算,取ECLKDIV=0x4A,即预分频因子PRDIV8=1,分频因子EDIV[5:0]=001010,模块的时钟为182KHz。

因为每次写操作均以字进行,所以为安全起见,擦除时每次擦两个字。擦除操作的时序与写操作完全相同,只不过相应地址写入的数据均为“0”。

此外,系统结合自身CAN模块,选用Philips公司的PCA82C250,设置了CAN的接口电路,便于故障码的传输。接口电路如图4所示。

                                            图4CAN接口电路

系统中的其他电路,像轮速信号处理电路、传感器静态检测电路、电源监控电路等由于篇幅所限,在此不作详细介绍。

8 系统软件及VHDL语言设计

系统的控制CPUMC9S12DP256B用C和汇编语言进行开发,而CPLD用VHDL语言进行编程。

MC9S12DP256B程序的功能是:程序存储器及数据存储器的自检;对轮速传感器进行静态、动态检测;采集轮速信号,计算出车轮速度和减速度,根据控制逻辑输出制动压力调节信号;实时存储故障代码;CAN通信。

CPLD程序的功能是:控制数字开关CD4066的通断;检测数字输入通道;监测电磁阀驱动芯片和电磁阀的工作状态;向控制CPU传送故障情况。CPLD的设计由四个步骤组成:设计输入、实现、校验和芯片编程。设计中采用VHDL语言文本输入,经综合、仿真、实现后通过并行线缆下载至Xilinx芯片中。图5和图6分别是系统控制CPU及CPLD的流程图。

                                                         图5控制CPU流程图

                                                      图6CPLD流程图

9 结语

本系统以其独特的双CPU结构,集防抱死制动、系统故障检测于一体,同时能实现对故障码的传输。同时双CPU均预留了一定的输入/输出端口,为进一步扩展汽车电子控制装置的功能提供了可能。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-26 09:37 , 耗时 0.090384 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表