论文部分内容阅读
摘 要: 针对国内现有的基于单片机或工控机数据采集系统的不足,尤其是8位/16位单片机数据采集的局限性,介绍一种基于ARM(Advanced RISC Machines)平台的车内空气污染物数据采集系统。它结合了国内外先进的传感器数据采集技术,具有耗能低、体积小、性能高,软、硬件扩充灵活的特点,其通用性、模块化和可扩展性能满足车内空气污染物检测系统设备研发的要求。
关键词: 空气质量;ARM;传感器;嵌入式
进入21世纪,汽车污染日益成为全球性问题。随着汽车数量越来越多、使用范围越来越广,它对世界环境的负面效应也越来越大,尤其是危害城市环境,引发人类呼吸系统疾病。特别是最近发生在我国的雾霾天气,严重的危害了人们的身体健康。2007年,国家环境保护总局就颁布了《车内挥发性有机物和醛酮类物质采样测定方法》[1],不过该检测方法只是对于汽车静态检测,不能满足目前实时动态检测的要求。所以,对于汽车车内的空气质量进行实时检测的呼声也越来越高。汽车车内空气污染主要包括以下三种来源[2]:一是汽车生产时座椅、棚顶、仪表盘等处所用的胶水、纺织品、塑料配件等各种车内装饰材料挥发出来的有毒气体,包括苯、甲醛、丙酮等;二是汽车使用时从外界进入车内的汽车尾气,如一氧化碳,氮氧化合物,碳氢化合物,醛,含铅化合物,粉尘等;三是人为原因,如人体排放物,或长时间未对汽车室内进行打扫所产生湿气,霉菌等。
目前,国内针对以上所述空气污染物的检测并不完善,有的检测系统仅能检测常见且单一的污染物。而且很多检测系统采用的平台也各不相同;有的采用比较低廉的单片机平台,虽然在价格上比较便宜,但是处理速度较慢,无法满足现在复杂的汽车室内环境变化。有的采用比较昂贵的工控机为开发平台,相比之下软件硬件容易扩充,但体积庞大、无法在汽车驾驶室内安置。
在研究汽车驾驶室空间及目前车内污染物检测装置发展的前提下,本文设计一种方便可控、高性能的基于ARM7的汽车室内空气污染物数据采集监测装置。按照《车内空气污染物测量方法》以及《环境空气质量标准》[3]所提出的最新PM2.5的标准,对甲醛,苯,一氧化碳,二氧化硫,含铅化合物,粉尘浓度,温湿度等重要因素进行实时采集,通过高性能处理器进行数据处理,通过液晶屏显示检测数据及蜂鸣报警器来提醒司机采取措施。
1 检测系统硬件设计
1.1 运用平台
检测系统硬件部分采用的处理器是STM32F107VCT6,该处理器基于ARM V7架构的Cortex-M3内核,主频72Mhz,内部含有256K字节的FLASH和64K和SRAM.是专为嵌入式应用而设计的处理器。该处理器具备2个RS-232/485/串口、双10/100Mbps以太网端口、2个USB 接口及用于数据存储扩充的SD卡接口,另外处理器还拥有了8 个DI/DO 通道,可以十分便捷的用来处理I/O 端口的事件。
1.2 信号采集
使用STM32F107VCT6处理器来采集多路传感器的数据信号,数据信号经串口传输给STM32F107VCT6,其硬件电路如图1所示。
图1 模拟信号采集电路设计图
1.3 数据存储器
由于车内空气污染物自动检测系统采集的数据众多,采集系统选用高容量大的CF卡存储数据。对于STM32F107VCT6处理器,本身带有CF卡存储扩展口。可以及时的存储收集到采集的数据。
1.4 传感器的选型
该车内空气污染物检测系统采用的各类型传感器有甲醛传感器,苯类传感器,一氧化碳传感器,二氧化硫传感器,粉尘传感器,温湿度传感器,下面列举其中两种传感器,其型号及参数如下:
1.4.1 甲醛传感器
YL003甲醛气体传感器用于家庭及工业对甲醛有机挥发性、有毒有害、甲醛类及其他挥发性气体的检测[4]。特别适用于工业型气体检测报警仪及家用气体检测报警器等产品,用于检测挥发性气体气体浓度及危害。
特性参数:
注意事项:
1)气敏元件开始工作时,需预热3-5分钟后方可使用。
2)不能在腐蚀性气体环境下工作。
1.4.2 一氧化碳传感器
MQ309A是一种SnO2半导体气体传感器,它在探测CO气体方面有很好的性能。它是一种采用定期改变工作温度进行检测的微型敏感元件,具有高的灵敏度和选择性,湿度对它的影响很小。
标准工作条件:
2 系统软件设计
2.1 软件开发平台
选择目前开源性强,支持多任务,多用户,运行稳定的Linux操作系统。在Linux操作系统下使用C语言开发本系统,C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化,加之其代码可移植性好,高效率的运行方式,方便的升级维护手段,种种优点决定了C语言十分适合本系统软件开发。
2.2 软件具体设计
采用了模块化的设计方法对该系统进行应用软件的设计。其主要模块有初始化模块,系统预热模块,数据采集模块,数据处理模块,数据显示模块等。
1)初始化模块
为应用软件的运行做准备,检查系统的各硬件部分,提前读取设置参数和暂存的数据,对硬件接口进行初始化,设置数据缓冲区等。
2)系统预热模块
由于本检测系统涉及的传感器较多,在传感器开始检测前,需要对系统进行预热,预热时间为15秒。
3)数据采集模块
数据采集通过串口来进行,对传感器采集过来的数据格式进行处理,获取相应的测量数据,根据上诉传感器定好的标准标参数进行计算数据。
4)数据处理模块
由于本检测系统具有实时性,对处理后的数据需要及时的显示出来。但在汽车行驶的时候,不确定因素很多。所以对于数据处理模块的稳定性要求特别严格,所以该数据处理模块加在具有保护的屏蔽盒内。
5)数据显示模块
采用ARMJISHU公司提供的3.2/2.8TFTLCD触摸屏,STM32F107VCT6处理器自带的触摸屏接口,引出LCD控制器和触摸屏的全部信号。触摸屏显示分辨率64万色可以逼真的显示图片,文字和菜单等。配合触摸屏功能实现灵活的控制。
2.3 具体模块实现
2.3.1 数据采集模块
本模块主要是通过串口来实现数据采集功能和数据通信功能,所以必须先开发串口驱动程序。STM32的USART为通用同步异步收发器,支持同步单向通信和半双工单线通信。STM32F10
7VCT6提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互联网),智能卡协议和IrDA(红外数据组织)SIRENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。还可以使用DMA方式,实现高速数据通信。
一般有两种工作方式:查询和中断。
1)查询:串口程序不断地循环查询,看看当前有没有数据要它传送。如果有,就帮助传送(可以从PC到STM32板子,也可以从STM32板子到PC)。
关键词: 空气质量;ARM;传感器;嵌入式
进入21世纪,汽车污染日益成为全球性问题。随着汽车数量越来越多、使用范围越来越广,它对世界环境的负面效应也越来越大,尤其是危害城市环境,引发人类呼吸系统疾病。特别是最近发生在我国的雾霾天气,严重的危害了人们的身体健康。2007年,国家环境保护总局就颁布了《车内挥发性有机物和醛酮类物质采样测定方法》[1],不过该检测方法只是对于汽车静态检测,不能满足目前实时动态检测的要求。所以,对于汽车车内的空气质量进行实时检测的呼声也越来越高。汽车车内空气污染主要包括以下三种来源[2]:一是汽车生产时座椅、棚顶、仪表盘等处所用的胶水、纺织品、塑料配件等各种车内装饰材料挥发出来的有毒气体,包括苯、甲醛、丙酮等;二是汽车使用时从外界进入车内的汽车尾气,如一氧化碳,氮氧化合物,碳氢化合物,醛,含铅化合物,粉尘等;三是人为原因,如人体排放物,或长时间未对汽车室内进行打扫所产生湿气,霉菌等。
目前,国内针对以上所述空气污染物的检测并不完善,有的检测系统仅能检测常见且单一的污染物。而且很多检测系统采用的平台也各不相同;有的采用比较低廉的单片机平台,虽然在价格上比较便宜,但是处理速度较慢,无法满足现在复杂的汽车室内环境变化。有的采用比较昂贵的工控机为开发平台,相比之下软件硬件容易扩充,但体积庞大、无法在汽车驾驶室内安置。
在研究汽车驾驶室空间及目前车内污染物检测装置发展的前提下,本文设计一种方便可控、高性能的基于ARM7的汽车室内空气污染物数据采集监测装置。按照《车内空气污染物测量方法》以及《环境空气质量标准》[3]所提出的最新PM2.5的标准,对甲醛,苯,一氧化碳,二氧化硫,含铅化合物,粉尘浓度,温湿度等重要因素进行实时采集,通过高性能处理器进行数据处理,通过液晶屏显示检测数据及蜂鸣报警器来提醒司机采取措施。
1 检测系统硬件设计
1.1 运用平台
检测系统硬件部分采用的处理器是STM32F107VCT6,该处理器基于ARM V7架构的Cortex-M3内核,主频72Mhz,内部含有256K字节的FLASH和64K和SRAM.是专为嵌入式应用而设计的处理器。该处理器具备2个RS-232/485/串口、双10/100Mbps以太网端口、2个USB 接口及用于数据存储扩充的SD卡接口,另外处理器还拥有了8 个DI/DO 通道,可以十分便捷的用来处理I/O 端口的事件。
1.2 信号采集
使用STM32F107VCT6处理器来采集多路传感器的数据信号,数据信号经串口传输给STM32F107VCT6,其硬件电路如图1所示。
图1 模拟信号采集电路设计图
1.3 数据存储器
由于车内空气污染物自动检测系统采集的数据众多,采集系统选用高容量大的CF卡存储数据。对于STM32F107VCT6处理器,本身带有CF卡存储扩展口。可以及时的存储收集到采集的数据。
1.4 传感器的选型
该车内空气污染物检测系统采用的各类型传感器有甲醛传感器,苯类传感器,一氧化碳传感器,二氧化硫传感器,粉尘传感器,温湿度传感器,下面列举其中两种传感器,其型号及参数如下:
1.4.1 甲醛传感器
YL003甲醛气体传感器用于家庭及工业对甲醛有机挥发性、有毒有害、甲醛类及其他挥发性气体的检测[4]。特别适用于工业型气体检测报警仪及家用气体检测报警器等产品,用于检测挥发性气体气体浓度及危害。
特性参数:
注意事项:
1)气敏元件开始工作时,需预热3-5分钟后方可使用。
2)不能在腐蚀性气体环境下工作。
1.4.2 一氧化碳传感器
MQ309A是一种SnO2半导体气体传感器,它在探测CO气体方面有很好的性能。它是一种采用定期改变工作温度进行检测的微型敏感元件,具有高的灵敏度和选择性,湿度对它的影响很小。
标准工作条件:
2 系统软件设计
2.1 软件开发平台
选择目前开源性强,支持多任务,多用户,运行稳定的Linux操作系统。在Linux操作系统下使用C语言开发本系统,C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化,加之其代码可移植性好,高效率的运行方式,方便的升级维护手段,种种优点决定了C语言十分适合本系统软件开发。
2.2 软件具体设计
采用了模块化的设计方法对该系统进行应用软件的设计。其主要模块有初始化模块,系统预热模块,数据采集模块,数据处理模块,数据显示模块等。
1)初始化模块
为应用软件的运行做准备,检查系统的各硬件部分,提前读取设置参数和暂存的数据,对硬件接口进行初始化,设置数据缓冲区等。
2)系统预热模块
由于本检测系统涉及的传感器较多,在传感器开始检测前,需要对系统进行预热,预热时间为15秒。
3)数据采集模块
数据采集通过串口来进行,对传感器采集过来的数据格式进行处理,获取相应的测量数据,根据上诉传感器定好的标准标参数进行计算数据。
4)数据处理模块
由于本检测系统具有实时性,对处理后的数据需要及时的显示出来。但在汽车行驶的时候,不确定因素很多。所以对于数据处理模块的稳定性要求特别严格,所以该数据处理模块加在具有保护的屏蔽盒内。
5)数据显示模块
采用ARMJISHU公司提供的3.2/2.8TFTLCD触摸屏,STM32F107VCT6处理器自带的触摸屏接口,引出LCD控制器和触摸屏的全部信号。触摸屏显示分辨率64万色可以逼真的显示图片,文字和菜单等。配合触摸屏功能实现灵活的控制。
2.3 具体模块实现
2.3.1 数据采集模块
本模块主要是通过串口来实现数据采集功能和数据通信功能,所以必须先开发串口驱动程序。STM32的USART为通用同步异步收发器,支持同步单向通信和半双工单线通信。STM32F10
7VCT6提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互联网),智能卡协议和IrDA(红外数据组织)SIRENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。还可以使用DMA方式,实现高速数据通信。
一般有两种工作方式:查询和中断。
1)查询:串口程序不断地循环查询,看看当前有没有数据要它传送。如果有,就帮助传送(可以从PC到STM32板子,也可以从STM32板子到PC)。