故障码存储及传输
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均预留了一定的输入/输出端口, 为进一步扩展汽车电子控制装置的功能提供了可能。