信号采集包含CAN总线数据采集和传感器数据采集。通过模拟量信号分压,脉冲信号滤波整形,开关信号光电隔离,微处理器采集传感器信号,同时通过收发器读取CAN总线信号,然后进行信号处理,再通过控制器驱动步进电机,LCD液晶屏及其他器件。在实际车载环境中,该系统设计遵循SAE J1939协议在CAN总线上获取发动机转速、水温和故障代码信息,车速、油量、机油压力、制动气压等信息则以模拟量和脉冲量形式从相应传感器读取。
2.1 MC9S12HZ256微控制器
MC9S12HZ256是飞思卡尔公司生产的MC9S12系列面向汽车仪表应用的增强型16位单片机微控制器(MCU)。其集成度高,片内资源丰富,功能强大,接口模块包括SPI、SCI、FC、A/D、PWM等。采用增强型16位S12CPU,加入锁相环电路,可产生高于外部晶振频率的时钟信号,片内总线时钟频率最高达25 MHz;具有12.KB RAM、2 KB的EEPROM;2个异步串行通信接口(SCI),1个同步串行设备接口(SPI),1个FC总线接口(12C);1个8通道16位定时器(TIM),1个16通道10位模数转换器(
ATD),1个6通道脉冲宽度调制器(PWM),2个CAN控制器模块(兼容CAN 2.0 A/B)。此外,这款MCU还集成1个32x4的液晶驱动模块(LCD)。再有该单片机的背景调试模式(BDM)和CodeWarrior开发环境,使应用该款单片机的总线式汽车数字仪表的外围硬件电路相对简化,开发过程简单、方便。
2.2 步进电机及其驱动
步进电机是将电脉冲信号转换成相应的角位移或线位移的转换器,且其转速或线速度与脉冲频率成正比。步进电机可以用脉冲信号直接进行开环定位控制,无需位置或速度传感器。VID29系列步进电机内置减速比180/1的齿轮系,可工作于5~10 V的脉冲下。在微步模式下,1个脉冲可使转子转动15°,相应输出轴转动(1/12)°,最大角速度600°/s。每片VId66-06仪表步进电机驱动芯片可同时驱动4路步进电机以微步模式工作,工作原理如图2所示。每个步进电机只需2路控制信号。在输入信号F(SCX)的上升沿驱动电机输出轴转动1个微步,即(1/12)°,输入信号“CW/CCW”(顺时针/逆时针)控制步进电机输出轴转向。
2.3 CAN节点设计
主控器件MC9S12H256集成有支持CAN2.0A/B的CAN控制器,并集成CAN协议的物理层和数据链路层功能,可完成对数据通信的成帧处理,包括位填充、数据块编码、CRC校验和优先级判别等。选用CAN收发器PCA82C250,该收发器适用于汽车中高速(高达l Mb/s)CAN总线数据传输。设置终端电阻(一般为120 Ω)与CAN控制器与物理总线间的接口,以提升总线的差动发送和接收功能。图3为CAN接口电路。
2.4 脉冲信号处理
霍尔式车速传感器的输出信号为矩形波。磁电式车速传感器的输出信号为正弦波,信号频率与车速均成正比。速度信号经处理电路转换为单片机能够处理的矩形波信号,测量车速即测量矩形波频率。
周期法是利用标准时钟信号序列填充被测信号的一个或多个周期。通过计数标准时钟脉冲个数来计算被测信号周期的测量方法。被测信号周期为T,参考时基信号周期为τ,标准脉冲个数为n,被填充的被测信号周期个数为N,则有:
测量误差主要来自2部分:一部分是标准时基的相对误差dτ/τ,由于标准时基是由单片机内部的石英晶振产生的,这部分误差通常在10-6以下,可忽略;另一部分是计数误差dn/n,该误差产生的原理如图4所示。
时基信号序列的最后一个正跳变未处在被填充的被测信号范围内,可产生的最大计数误差为-1。这部分误差在低速时很小,在高速时稍大。以车辆特征系数(车辆行驶每公里里程时速度传感器的转数)为l 320,8脉冲车速传感器为例,标准时基信号周期为50 μs,车速为100 km/h时。最大相对误差为1.47%,车速为180 km/h时,最大相对误差为2.64%。完全符合汽车摩托车仪表标准QC/T727-2004中对车速表误差的基本要求。适当降低时基信号周期τ和高速时增加N值可减小误差。周期法计算车速V:
式中,Z为轮速传感器旋转一周输出脉冲个数;Ω为车辆特征系数,即汽车每行驶1 km轮速传感器的转数。