张 玮,陈永志
石家庄学院 机电学院,河北 石家庄 050000
随着我国经济不断发展,社会持续进步,人民收入日益提高,作为我国国民经济重要产业的汽车工业也迅速发展,乘用车的普及率日渐提升。越来越多的家庭拥有了属于自己的私家车。同时伴随着城镇化进程加快,生活方式的改变,也使得人们的用车频率增加,在车内的时间增长。汽车在带给人们巨大方便的同时,车内环境对人类的影响也日益显著。一方面,人体的舒适温度范围在22 ℃~27 ℃之间,不适宜的温度会影响人体的舒适度进而影响驾驶员的驾驶安全。另一方面乘用车内部空间相对密闭,车内部件释放的有害物质造成的环境污染对人体健康尤其是儿童的健康造成很大的危害。广州曾对2000 辆汽车进行空气质量检测,其中的92.5%存在空气质量问题[1]。尤其是在室外温度较高的情况下,车内的甲醛超标10 倍以上。甲醛对人的眼睛和呼吸道都有强烈的刺激,刺激会导致支气管哮喘和免疫功能异常。甲醛会使人产生头痛头晕等不适症状,会使人困倦,注意力无法集中,不仅影响驾乘人员的身体健康还危害行驶安全[2-5]。因此车内环境的监控对人体健康和道路行驶安全都具有重要的意义。本文针对车内微环境中的温度和甲醛这两个重要的环境参数设计了智能监控系统。
智能环境监控系统包括硬件监测部分和软件控制部分。通过模糊控制算法,解决车内微环境所包含的各个影响因素之间的关系无法进行精确数学模型描述从而导致控制出现变缓和迟滞的问题。本系统使用ARM7 嵌入式处理器和μC/OS-Ⅲ操作系统。设计硬件部分以实现对环境参数的采集、分析、对数据进行处理、存储和发送,并设有报警功能。设计软件部分来实现调度硬件部分完成各项功能[6]。使用LPC2210 作为系统控制端,控制程序在系统环境下编写。系统包含控制端模块、传感器组模块、通信端模块、电源模块等。系统整体结构图如图1 所示。
图1 系统整体结构图Fig.1 Systematic structure
选用PHILIPS 公司的ARM7 系列LPC2210 芯片[7]。此芯片支持实时仿真和嵌入式跟踪。拥有16 kb 的片内静态RAM,外部总线是开放的,外部存储器可被外部存储器接口配置成4 组,每组容量达到16 mb,即便是对代码规模有限制的应用通过16 位Thumb 模式将代码规模降低40%,其性能上的损失也非常小,因此完全可以满足μC/OS-Ⅲ的移植要求。ARM7 系列LPC2210 芯片在使用时需配备两组电源,I/O 口的供电电源为3.3 V,内核与片内的外设供电需1.8 V 的电源提供[8]。因此整个系统设计时要采用3.3 V 电源。
由于ARM 芯片具有的高速、低功耗和低工作电压的特点,决定了它的噪声容限比较低,从而导致了电源的纹波、时钟源的稳定性以及电源监控的可靠性等方面都容易对它的正常工作造成影响,所以在本系统中设计了复位电路,复位电路采用CAT1025JI-30 进行设计,如图2 所示,当按下复位键RST 时,即可输出复位信号。
图2 复位电路Fig.2 Reset circuit
图3 SHT11 接口电路Fig.3 SHT11 interface circuit
温度传感器采用SHT11 数字式温度传感器。它的内部集成了温度传感器、信号放大调理电路和A/D 转换电路,将COM 芯片技术和传感器技术进行了融合,是高度集成的芯片。它的测量温度的范围为-40 ℃~+123.8 ℃,温度测量精度±0.4 ℃,响应时间低于4 S,功耗很低,可以完全浸没。芯片具有精准的温度总标定,标定系数以程序形式存储在OTP 内存里。在测量过程中,会进行自动校准,不需设计外部的模拟电路,系统集成非常便捷、高效,具有完全的互换性。很好克服了传统温度传感器的长期稳定性不好,抗干扰能力较弱、标定复杂等缺点。SHT11 接口电路如图3 所示,可提供二线数字串行接口SCK 和DATA,支持CRC 传输校验,串行时钟输入线SCK 用于微控制器与SHT11 之间的通信同步。
甲醛传感器采用通用型电化学ZE08-CH2O 甲醛模组。该小型化模组是利用电化学原理来探测空气中所存在的CH2O,选择性与稳定性很好。该模块内部集成了NTC 温度传感器,可以对温度进行补偿,能够同时输出数字信号与模拟信号,使用非常方便。甲醛测试模组的工作电压为3.7 V~5.5 V,工作温度-20 ℃~+50 ℃。量程为0~5 ppm,分辨率≤0.01 ppm,具有灵敏度高、分辨率高、稳定性高以及功耗低的特点。接口电路如图4 所示。
图4 ZE08-CH2O 接口电路Fig.4 ZE08-CH2O interface circuit
图5 报警电路Fig.5 Alarm circuit
甲醛浓度超限时发出警报的声光报警电路,采用三极管驱动蜂鸣器来实现警报。芯片的I/O 端口的输出电平的高低控制蜂鸣器是否导通。电路如图5 所示。
影响车内微环境的各种因素在实际情况中具有非线性和时滞性,很难建立精确的数学模型,因此引入模糊控制来解决这个问题。本文以温度因素为例进行说明,系统中温度模糊控制器原理图如图6 所示。
图6 温度模糊控制器原理图Fig.6 Principle of temperature fuzzy controller
模糊控制器使用双输入单输出的方式,将环境温度误差e以及环境温度误差的变化量ec作为输人变量,将u作为输出变量[9]。模糊子集为:E=EC=U={NB,NM,NS,ZE,PS,PM,PB}={负大,负中,负小,零,正小,正中,正大}。温度误差E、温度误差变化量EC及输出变量U的论域值一致,均为:[-3,3]={-3,-2,-1,0,1,2,3}[10]。
依据控制系统的输入/输出特性,为达到消除温度偏差的目的,做出了控制规则表,如表1 所示,规则的表现为“IF E AND EC THEN U”。
表1 模糊控制规则表Table 1 Fuzzy control rules
软件系统包括初始化、参数采集、多传感器数据融合,生成控制命令等。软件主程序流程图如图7 所示。
图7 主程序流程图Fig.7 Main program process
μC/OS-Ⅲ是第三代源代码开放的实时操作系统,具有可以移植、可以固化、可以裁减、高稳定性、高效率、对多任务支持等特点。它的内核是占先式的,总是执行就绪态优先级最高的任务[11]。它可以最多管理64 个任务,对现有的16 位和32 位的MCU/MPU 几乎都可支持。它的目标代码可以被裁剪到小于2 k 字节,数据RAM 空间减小到小于4 k 字节,因此它对硬件的要求就相对较低。它提供标准的API 接口供用户使用,可以让用户对嵌入式系统内的各种资源进行非常方便的管理。它给不同任务之间分配CPU 时间的标准是依据任务的优先级进行的。因为采用了多任务内核运行方式,所以大大降低了软件的设计难度。
无论与处理器相关与否的代码,都被μC/OS-Ⅲ系统所包含,而μC/OS-Ⅲ的系统函数被包含在与处理器无关的代码之中。因此,在移植过程中,只要把μC/OS-Ⅲ.C 文件包含在设计的项目中,就可以把μC/OS-Ⅲ中所有与处理器无关的代码包含到移植的代码中。
在实现车内微环境监控系统的过程中必须要解决多传感器接入问题[12]。因为需要监控的数据不是单一种类的,需要多种不同的传感器来提供。本系统就利用μC/OS-Ⅲ嵌入式操作系统所具有的多任务管理的特点,将每一种传感器作为一个任务来进行管理。温度传感器和甲醛传感器分别作为μC/OS-Ⅲ的两个任务,底层软件按照在服务器接收端的软件的要求把每次采集的所有数据打包,之后依照定义的格式进行发送,最后再将所接收到的数据进行解析处理并存放到现有的数据库或是自动新生成的数据库中。
在程序的设计过程中,要及时把串口0 和串口1 的发送与接受缓冲寄存器清空,防止出现传送和接收数据不稳定的情况出现。
在程序的调试过程中,要把程序里LPC2210 串口的通讯波特率设置为115200,将传感器的波特率设置为9600,否则就会出现编译通过了,但是运行时却出现不了数据的情况。
车内微环境空气质量的监控是改善和解决环境空气质量问题的第一步。本文介绍了系统的整体设计、主控单片机、不同传感器的结构和工作原理、控制算法等。该系统具有性能稳定,反应灵敏,测量准确,结构紧凑,成本低廉等特点,通过使用可以有助于提高车内人员的呼吸安全和驾乘安全。