"); //-->
摘 要: 设计了一种新型汽车空调节能控制器。通过检测汽车行驶时的不同车况,准确有效地控制汽车空调器压缩机的接通或断开,可以相对提升汽车的加速功率,把汽车减速时耗掉的机械能转化成空调器的制冷能。与传统汽车空调控制器相比,达到了节能改良目的。
关键词: 汽车空调;ADXL202加速度传感器;DS18B20集成温度传感器;STC12C5410AD单片机;A/D转换
安全、节能、环保和智能已经成为汽车发展四个永恒的主题[1]。空调器已成为汽车不可缺少的装置,然而汽车发动机作为空调器的主要原动力,在行驶中空调器工作的同时必然消耗汽车发动机的部分功率,因而增加了发动机的负荷,显然对汽车的加速、油耗性能有影响。当空调器的消耗功率相对于汽车的发动机的有效输出功率较大时,空调器使用中对汽车的加速性能就有比较显著的影响[2]。当汽车处于长时间爬坡而且坡度较大时,有经验的驾驶员往往先把空调器关掉以减轻发动机的负荷。
传统中低档次汽车空调器的温度控制方法是依靠简单的检测蒸发器的温度以控制压缩机的起、停来达到控制车室温度的目的。由于汽车行驶过程中车室冷空气流失或者经常性地停车无法避免车门频繁打开造成冷能量损失,有可能存在设定控制蒸发器的目标值温度已经达到时,而车室的温度设定目标值仍未达到的现象。此时压缩机终因蒸发器的控制温度已达到而停止工作,因而出现制冷效果不理想的弊端。相反的情况,当蒸发器的控制目标值温度值没有达到,而车室的温度设定目标值已经达到,又会出现制冷过度的现象。而每当出现这种情况时,只有通过人工调整设定温度予以补偿来达到控制温度的目的[3]。
为改善汽车空调器的温度控制方法,增加一个加速度传感器和车室温度传感器时刻监控汽车的运行状态、车室温度及蒸发器温度。三者统一协调实时地控制压缩机起停。实践证明此方法可行,可以节能、改善汽车加速性能。
1 硬件设计
1.1 ADXL202加速度传感器
ADXL202是一种低成本、低功耗、功能完善的双轴加速度传感器[4],既能测动态加速度,又能测静态加速度,利用传感器的动态和静态特性可以准确测量出汽车行驶中的各种状态:水平加速、爬坡、下坡等,依据汽车的行使状态更能准确发出控制操作。可以输出数字信号,其脉宽占空比与两根传感器感应轴各自所承受的加速度成正比。这些信号可以直接传输给单片机,而不需A/D转换或附加其他电路。通过调节外接电阻RSET使输出信号脉冲周期设定在0.5~10ms范围内,在0g加速度时的输出占空比为50%。如果需要与加速度成正比的模拟电压信号,则可从XFILT和YFILT引脚输出。
ADXL202采用QC-14封装,引脚排列如图1所示,它有两个电源端(VDD)和两个接地端(COM),VTP为测试端,供厂家测试芯片用。ST为自检端,可进行功能自检,T端接电阻RSET,用于设定输出脉冲的周期。XFILT、YFILT端分别接X通道、Y通道的滤波电容CX、CY。XOUT、YOUT依此为X通道、Y通道的占空比输出端,NC为空置脚。
设输出信号的周期为T,其高电平持续时间为T1,占空比为D,利用下式求出被测加速度值(g=9.8m/s2):
其中,R=125MΩ,T的单位为s。利用单片机定时计数器可分别测出T1、T的值,进而求出加速度的值。
1.2 基于DS18B20的温度传感器
DS18B20是美国DALLS公司最新推出的传感器,用来检测车室温度,具有以下优点:
(1)采用DALLS公司独特的“单线”总线技术,通过串行通讯接口(I/O)直接输出被测温度,适合各种单片机或系统机型。
(2)测温范围是-55℃~+125℃,在-10℃~+85℃范围内,可确保测量误差不超过±0.5℃。
(3)温度分辨率可编程。DS18B20的数字温度输出有9、10、11、和12位二进制表示,未编程时默认精度为12位,通过对便笺式RAM中CONFIG寄存器的可编程温度分辨率位R0、R1进行编程,可设定不同的温度分辨率及最大转换时间,如表1所示。
在芯片出厂时R1和R0均被配置为“1”,即工作在12位模式下。当DS18B20接收到温度转换命令(44H)后,开始启动转换,转换完成后的温度值就以16位带符号扩展的二进制补码形式存在便笺RAM的第0、1字节。在执行读便笺RAM命令后,可将这两个字节的温度值通过单线总线传送给CPU,高字节中的符号代表温度值为正还是为负。
以12位转化为例,其中,高5位为扩展符号位,如果测得的温度大于0,这5位为0,只要将测得的温度乘以0.0625即可得到实际温度;如果小于0,这5位为1,测到的温度值需要取反加一后再乘以0.0625即可得到实际温度。
(3)内含64位经过激光修正的只读存储器ROM,扣除8位产品系列号和8位循环冗余校验码CRC后,产品序列号占48位。出厂前就作为DS18B20唯一的产品序号存入其ROM中。在构成大型温度控制系统时,允许在单线总线上挂接多个DS18B20。
(4)内含寄生电源。该器件既可由单线总线供电,也可选用外部+3.3V~+5V电源(允许电压范围是+3.0V~+5.5V),进行温度/数字转换时的工作电流约为1mA,待机电流仅为0.75μA,典型功耗为+3.3mW~+5mW。
(5)具有电源反接保护电路。当电源电压的极性接反时,能保护DS18B20不会因发热而烧坏,但此时芯片无法工作。
DS18B20引脚排列如图2所示。1脚为接地端,2脚为数据输入/输出端(即单线总线),它属于漏极开路输出,外接上拉电阻后常态下呈高电平。3脚接电源(VDD),不用时需接地。
1.3 基于采用负温度系数(NTC)的温度传感器
蒸发器温度的测量传感器采用原车的具有负温度系数(NTC)的传感器,其温度范围较宽,温度和电阻值的变化曲线接近线性,有利于温度的测量。
温度测量电路采用简单的电阻串联分压式,如图3所示。
系统装置中Rt的标称阻值为1.5kΩ,实测0℃时的电阻值为4.65kΩ,本系统蒸发器温度控制在3℃~5℃之间,电阻Rt值在4.36kΩ~3.62kΩ之间变化。图中R1和R2不能太大,否则经A/D转换后得到的数据量变化不大会影响测量的分辨率;R1和R2也不能太小,否则会使流过Rt的电流增大,造成Rt本身功耗增大而影响测量精度。系统装置中R1取10kΩ小型金属膜电阻,R2选取1kΩ的精密可调电位器,用于温度的调零整定。
1.4 基于模块MAX 7219的显示电路
MAX7219模块用来实时显示加速度、温度(10ms刷新一次)和温度设定值显示。MAX7219是8位串行共阴数码管动态扫描驱动电路,其峰值电流可达40mA,最高串行扫描速率为10MHz,典型扫描速率为1.3MHz,仅使用单片机3个I/O口,即可完成对8位LED数码的显示控制和驱动。线路简单,控制方便,外围电路仅需要一个电阻设定峰值段电流,同时可以通过软件设定其显示亮度;还可以通过级联,完成对多于8位的数码管的控制显示。值得一提的是,当工作于关闭(SHUTDOWN)方式时,不仅单片机仍可以对其传输数据和修改控制方式,而且芯片耗电仅为150μA。
图4是MAX7219的应用电路。LOAD端是片选端,低电平有效,上升沿锁存接收的最后16位串行数据。CLK端是串行时钟输入端。DIN端是串行数据输入端(高位先入),在时钟脉冲上升沿后数据有效,下降沿后无效,因此一个时钟脉冲对应一位二进制数据。Dout端是串行数据输出端,用于级联输出。ISET端是峰值段电流设定端,外接上拉电阻。Sega~Segdp端是段输出,接各数码管的a~dp段。dig0~dig7是位输出线。
1.5 基于STC12C5410AD的主电路设计
总体硬件框图如图5所示。主电路的设计主要是以STC12C5410AD为控制核心的处理器及其辅助电路的设计,其中包括ADXL202加速度传感器、DS18B20线性数字温度传感器、NTC热敏电阻传感器、基于MAX7219串行数码管驱动接口电路的设计。在STC12C5410AD的内部中具有10KB的Flash程序存储器,512B的数据存储器和2KB的E2PROM用户数据存储器,8路10位精度可编程A/D转换电路,内部复位监视电路和看门狗电路。从实际设计要求出发,充分利用其内部的硬件电路,可以简化电路的复杂程度,提高系统的稳定性。其外围接口辅助电路的设计,有以下几点需要注意。
(1)利用单片机的定时器、中断功能,单片机INT0、INT1工作于外部下降沿触发中断状态,T0、T1分别定时,从而测出加速度传感器输出的脉宽值,再经过单片机计算得到加速度的瞬时采样值。硬件连接如图6所示。
(2)蒸发器温度的测量使用原车NTC负温特性的热敏电阻,使用单片机8路扩展功能中的1路A/D转换端口,依据硬件设计安排,选P1.7作为A/D转换端口。因为蒸发器温度的控制仅在3℃~5℃比较小的范围内,温度和电压的变化接近线性。本系统采用10位精度A/D转换编程,因此,在没有采取温度补偿措施下仍能准确测出蒸发器的实际温度,满足系统控制要求。
(3)利用单片机内部Flash数据存储器掉电记忆功能,把设定的控制温度保存,避免单片机掉电时数据丢失。
(4)启用单片机内部看门狗功能,提高系统的软件抗干扰能力。
(5)MAX7219的引脚18(Isei)为硬件亮度调节控制端,用于设定段电流峰值,通过在+VCC和该引脚间接一电阻实现。一般参考资料均描述为10kΩ左右,但在实际应用中发现,此电阻选30kΩ左右比较妥当,既可以保证显示亮度,同时又可以保证显示的可靠性,否则会出现无法正常显示的问题。据估计,其原因是在10kΩ条件下,段电流过大,导致上电复位期间系统电流过大,从而引起系统电压跌落,使系统复位而引起工作失常。
(6)STC12C5410AD的工作电压为3.4V~5.5V。本系统单片机、传感器、辅助电路工作电压均为+5V。驱动空调压缩机电磁离合器的执行器件选取10A/12VDC的直流继电器,实际压缩机电磁离合器的工作电流仅3A~5A左右,因此继电器完全满足系统控制输出负荷,主电源取自原车的12V蓄电池电源,一路直接驱动执行继电器控制压缩机电磁离合器的接通与断开,另一路经稳压滤波后供给单片机、外围辅助和接口电路。因为在汽车上的干扰源比较严重,为确保系统稳定可靠工作,电源须经过严格稳压和滤波处理。电源前端串接一高频扼流电感L,目的是阻碍汽车发动机工作时火花塞产生的电磁脉冲进入电源影响系统工作,+12V电源经高频扼流电感L后,经过C2、C3组成的低频和高频滤波,再经三端稳压器件(LM7805)稳压输出+5V稳压电源,经C4、C5低通和高通滤波后供给系统工作电源,如图7所示。
2 软件设计
2.1 主程序与STC12C5410AD的初始化
由于目前流行的绝大多数仿真器均不支持STC类增强型内核为8051的单片机的仿真,因此对基于STC12C5410AD开发的应用程序进行汇编(或编译)时,必须首先对STC12C5410AD的特殊功能寄存器(SFR)进行定义,否则无法生成所需的机器代码。从这个意义上说,这也是STC12C5410AD的初始化工作之一。由于无法仿真调试,程序的调试过程只能通过把应用程序下载到单片机应用板上演示方能实现。因此程序的调试工作是个反复而耗费时间的过程,需要编程者有足够的耐心。软件流程图如图8所示,并作以下几点说明:
(1)具备4位数码管温度、加速度动态刷新显示,包括符号位和小数点位。
(2)设定控制温度有断电记忆功能。
(3)空调器压缩机运行或停止受控于车室温度和汽车的运行状态。
该控制过程是:把一段时间内采样的加速度代数值相加,加速度的代数和就反映汽车行驶的状态。如果加速度的代数和等于零则代表汽车处在停止或匀速运行状态,大于零则代表汽车处于爬坡或加速的前进状态,小于零则代表汽车处于减速或下坡的运行状态。人为设定一个大于零的加速度控制目标值,控制目标值可通过外部多路开关来选择。假如此时驾驶室温度未达到设定温度目标控制值,压缩机还在工作中,如果汽车正处于加速状态并且此时单片机检测到的加速度代数和已经大于或等于设定的目标控制值,则延时断开压缩机。延时时间由加速度代数和与设定的加速度控制目标值比较的大小数值量级决定,数值量大,延时时间短,反之则长。
(4)人工选择设定车室控制温度,由外部键控选择,加速度启控值由外部多路开关选择。
(5)启用单片机内部看门狗功能。
2.2 系统软件的规划
系统程序主要包括以下功能模块:
(1)DS18B20温度传感器接口模块,分为初始化子程序、写入子程序及读取子程序等部分。
(2)基于MAX7219的显示模块,分为MAX7219的初始化子程序、写入子程序及显示子程序部分。
(3)加速度传感器测量模块,分为ADXL202的加速度数据处理子程序、加速度平均值子程序。
(4)蒸发器温度测量模块。
(5)设定的温度数据读、写Flash数据存储器模块。
(6)按键设置和控制输出模块
以上程序比较复杂,限于篇幅,在此不再赘述。
单片机控制空调节能系统装置目前已在深圳某公司生产。在实际应用中,系统运行可靠稳定,且具备节能及相对提升汽车加速性能的效果,同时还增加了汽车加速度和温度实时显示功能。虽然此装置节油效果不是很明显(实测根据改良车型不同节油效率在2~10%之间),然而该装置通过适时巧妙地控制空调压缩机的接通或断开,能够相对提升汽车加速性能。
参考文献
[1] 陈志恒,胡宁.汽车电控技术[M].北京:高等教育出版社,2003.
[2] 孙重祥,曾志斌.汽车空调的使用维护和检修方法[J].汽车电器,2005,(7):39-41.
[3] 洪华.基于单片机控制的汽车空调控制器系统[J].家电科技,2005,(1):60-62.
[4] 沙占友.集成传感器应用[M].北京:中国电力出版社,2005.
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。