1 系统组成及硬件设计
该系统由红外CO气体传感器、MSP430单片机、CAN总线接口及远程监控系统组成。该系统在检测现场通过单片机处理检测的数据、控制LCD显示、声光报警,同时还配备CAN总线控制器,可以轻松获取浓度、温度以及报警记录等相关信息,实现了智能化的工业现场、远程同时监控功能。系统的组成框图如图1所示。
1.1 传感器的原理及选择
每种物质都有特定的吸收光谱(如CO气体在光波波长4.5μm处有一个极强的吸收峰),该特性可用于测量。可根据各种气体光谱曲线上某些特定波长处吸收峰值的变化判断气体的浓度。当红外光通过待测气体时,这些气体分子对特定波长红外光有吸收作用,吸收规律遵循朗泊-比尔定律
式中,I为透射光的能量,L/mol·cm;Io为红外辐射被气体吸收的能量,L/mol.cm;K为与气体及辐射波长有关的常数,L/mol·cm:C为被测气体的浓度.mol/L;L为辐射通过气体层的厚度,cm。
由式(1)可知,通过检测红外辐射经气体吸收后的辐射强度,就可计算出被测气体的浓度。采用SM-C0 H/M传感器,该系列模拟输出型CO采用双光束非分光红外线(NDIR)检测技术.具有抗其他气体干扰、保养维护简便、稳定性好、自带温度补偿、Modbus ASCII协议数字输出和模拟输出等优点。适用于泄漏报警、现场施工防护、简单气体分析气体、在线监测、工业过程分析等场合。
1.2 MSP430单片机工作原理及数据处理
MSP430单片机超低功耗Flash型16位单片机。根据系统功能及外围电路接口要求,选用MSP430F449型单片机,该单片机具有丰富的内部硬件资源;内置的温度传感器用于检测环境温度,补偿红外传感器检测的数据;其内置A/D转换器用于将传感器输出的模拟量转换为数字量;通过硬件乘法器,实现对被测量的A/D采样数据进行高速数字滤波和温度补偿等运算。数字滤波法采用去极值平均滤波法。在脉冲干扰较严重的场合,如采用一般的平均值法,则干扰将会平均到结果中去,不易消除由干扰引起的误差。首先把Ⅳ次采样值按大小顺序排成一列,采用“冒泡排序法”,可去掉N个数据中的最大值和最小值,再计算(N-2)个数据的平均值,即为去极值平均滤波法。温度补偿的处理方法;传感器的静态特性为线性时,则温度补偿前的特性可表示为:
式中,x为传感器的输入量,y为输出量,Y为特性曲线在y轴上的截距(即环境温度引起的输出增益),k为比例系
温度补偿公式法的步骤如下:
(1)给定(m+1)个温度值:T0,T1,T2,…,Tn,…,Tm,测出每一温度下传感器静态特性曲线在y轴上的截距Y0,Y1,Y2,…,Yn,…Ym;
(2)将Y表示成以温度T为自变量的n次代数多项式(n<m)
用最小二乘曲线拟合法确定a0,a1,a2,…an。
(3)在测得每一个y值及相应T值时,首先计算出Y值,然后再求出x值
采用数字滤波和温度补偿算法可使测量更精确,受环境温度影响减少到最小。
1.3 按键、LCD显示及报警系统
按键用于设定系统时间、声光报警值以及对应的CAN总线通信地址等参数,如果按键较少采用一端口对应一按键,使用捕获中断。如果按键较多,则可采用行列式键盘以节省端口资源。LCD显示采用LSD12864CT显示模块,该模块由一组行驱动信号IC3及两组列驱动信号IC2(控制左半屏)和IC1(控制右半屏)组成,其显示点阵是128x64,可显示图形或汉字。其内部集成行、列驱动及显示器缓冲区RAM的接口,同时硬件可设置显示屏的结构、数据传输方式、显示窗口的长宽等。MSP430F449内部自带60 KB Flash用于记录红外测量数据超限时刻和对应的设置值,保存CAN接口相关参数。当CO浓度超出设定范围时,由声光报警装置提醒井下工作人员。
1.4 CAN总线接口设计
该系统CAN接口由独立的CAN总线控制器SJA1000、CAN数据收发器TJA1050组成。SJA1000是独立CAN控制器,主要用于移动目标和一般工业环境中区域网络控制。SJA1000的AD0-AD7接MSP430的P2端口,P3.4和P3.5分别控制SJA1000的读写操作。MSP430初始化SJA1000,通过控制SJA1000实现数据的收发。TJA1050是控制器区域网络(CAN)协议控制器和物理总线之间的接口,是一种标准的高速CAN收发器。TJA1050可为总线提供差动发送功能,为CAN控制器SJA1000提供差动接收功能。TJA1050提供CAN节点接口,实现CAN总线数据的传输。其中CANH和CANL接到外部CAN总线网络上。MSP430、SJA1000与TJA1050的连接电路如图2所示。
2 系统软件设计
系统上电复位后首先初始化,主要包括系统硬件初始化及从MSP430 Flash中读取CAN相关参数,并进行设置;然后系统进行按键扫描:如有键按下则进行相应的操作,如设置时间和CO报警浓度值、修改CAN参数、查阅报警记录等;若无键按下,则采集CO浓度并进行软件处理,软件处理包括数字滤波和温度补偿,用以校准浓度数据。若CO浓度超限,则声光报警通知井下工作人员并记录报警时刻和报警值到存储器中,若浓度正常则循环检测并显示。系统软件流程如图3所示。气体浓度数据的远程传输由CAN总线接口完成。当上位机给该站发送报文时,即要求本站传送数据时,系统才向上位机传送数据,这样可减轻单片机的负担,降低功耗。因此,CAN通信程序流程大致为:当检测仪接收到有效的报文时产生接收中断,在中断服务子程序中,以CAN报文形式发送C0浓度数据,采用非中断方式发送报文,具体工作流程如图4所示。
上位机采用Delphi编写的Windows下的可视化操作界面。Delphi是一种采用事件驱动方式、面向对象的可视化高级编程语言,该系统的通讯软件设计采用Delphi7.0。在Del-phi可利用的众多串行通信控件中,SPComm控件是最简单、功能比较强大的一种。该控件具有丰富的与串口通信密切相关的属性及事件,提供对串口的各种操作。通过Delphi的设计可在上位机中直观显示当前时间、气体浓度。通过串口通讯还可执行远程操作。采用采样定时器可每隔一段时间刷新显示的数据,从而及时检测数据变化。