基于CP-15-A4传感器的远程大气颗粒检测系统设计
2022-04-24王炳祥李先锋
王炳祥,李先锋,陈 中
(1.盐城工学院 信息工程学院,江苏 盐城 224051;2.盐城工学院 电气工程学院,江苏 盐城 224051)
随着人们环保意识的不断增强,环境监测越来越被重视。北京益衫科技公司出品的第4代激光传感器CP-15-A4,可以监测PM2.5、PM10等多种大气颗粒,同时具有自校正功能[1];而无线模块传输不仅可以节省成本,还可以降低人为故障率。因此,利用CP-15-A4传感器通信和无线模块可发送帧数据的特点,可以进行远程大气颗粒检测系统的设计,实现对大气颗粒的浓度计算、无线传输、数据处理和显示等功能。试验结果表明,该监测系统具有较高的应用价值。
1 检测系统工作原理
监测系统选择北京益衫科技公司出品的第4代激光传感器CP-15-A4,以大气颗粒为检测对象,以无线模块为传输桥梁,经单片机处理后实现大气颗粒的无线远程监测,其结构框图如图1所示。由图1可知,大气颗粒远程监测系统由发射系统和接收系统两部分组成,发射系统利用大气颗粒传感器CP-15-A4检测数据,通过单片机MSP430f169处理后,由无线模块nRF24L01发送到接收系统;接收系统由无线模块nRF24L01接收数据,经过单片机MSP430f169处理后再在显示屏12864上实时显示。
监测及发射系统 接收系统图1 系统结构框图Fig.1 System structure block diagram
图1中的传感器CP-15-A4,标准工作电压为5 V,端口电压为3.3 V,响应时间小于10 s,量程为0~6 mg/m3,能够检测0.3~0.8 μm的大气颗粒[2],具有较强的抗干扰性能和自校验功能,检测响应快速、数据准确,在环境监测方面有着广泛的应用。单片机MSP430f169是MSP430系列单片机中的一种,该系列单片机比51系列单片机拥有多性能、低成本、低功耗等特点[3],具有哈佛结构、三级流水线和分支预测、可以嵌套中断等特征,多应用于医疗和手持设备及工业检测与控制仪器中。
在监测系统数据传输过程中,为了验证数据传输的正确性,需要在系统发送端和接收端均配置液晶显示屏。另外,在系统调试过程中,采用双重验证方法,分别验证CP-15-A4校验后的数据是否和所监测的数据相等,是否和进口仪器检测的一致。
2 检测系统硬件电路设计
2.1 传感器检测电路和单片机接口
CP-15-A4模块和MCU控制器之间是串行通信,而MSP430单片机对于串行通信有着固定的接口,所以不能采用其他普通端口来实现串行通信[4]。
MSP430单片机有两个独立的移位寄存器,从最低位开始发送和接收数据,采用串行中断方式。使用时用户可以通过软件设置数据位、停止位和波特率等参数,设定后,单片机就能够实时发送和接收数据,并具有唤醒发送和激活等功能。
CP-15-A4模块有6个端口,分别是电源、接地、复位、置位、RXD和TXD。其置位端口和复位端口均接高电平,表明是无条件传输;TXD端口为发送端口,将信息以多帧数据块形式传送到单片机的串行接收端口,波特率设置为9 600 b/s;RXD端口悬空。
2.2 无线模块电路和单片机接口
CP-15-A4传感器把监测到的室外多种大气颗粒数据发送到单片机MSP430f169,经过处理后一边发送到无线模块nRF24L01,由无线模块发送数据包,无线传输到室内监控系统;一边在发射系统显示屏12864上实时显示,显示内容有大气颗粒数值及校验和等。因此,无线模块是室外监测和室内监控的桥梁,其通信方式为SPI、波特率为9 600 b/s,可以传输数据的长度为40 b,且高位先出[5]。
MSP430单片机的SPI通信有3种方式,分别为模拟SPI时序、寄存器方式和中断方式。由于寄存器和中断的通信方式必须使用MSP430专用端口,而传感器采用的是串行通信方式,两者的专用端口相同;如果无线模块采用寄存器方式,就占据了单片机MSP430端口的第二功能,使得大气颗粒传感器无法正常工作,所以无线模块必须采用模拟时序的方法通信[6],且接口方式为无线模块的IQR接单片机P1.7、MOSI接单片机P3.1、CSN接单片机P3.0、MISO接单片机P3.2、SCK接单片机P3.3、CE接单片机P1.6,3.3 V供电。
2.3 液晶显示电路和单片机接口
液晶显示电路用于显示大气颗粒数据,采用串行通信方式,电源为3.3 V,其串并行选择端口为低电平,串同步时钟信号端口接单片机P5.2端口,读写选择端口接单片机P5.1端口,命令选择端口接单片机P5.0端口。
3 检测系统软件编程
在进行系统的硬件设计后,需要进行软件编程。软件编程主要包括传感器软件编程和无线模块的软件编程两个部分。
3.1 传感器软件编程
根据监测系统中CP-15-A4传感器的工作原理,可知其运行流程如图2所示。图2中串口通信初始化程序为:
P3SEL |= 0x30; ∥ 选择P3.4和P3.5作UART(串口)通信端
ME1|= UTXE0 + URXE0; ∥ 串口中断0使能
UCTL0 |= CHAR; ∥ 字符的确定
UTCTL0 |= SSEL0; ∥ 时钟源选择
UBR00=0x03; ∥ 波特率的设定
UBR10=0x00; UMCTL0=0x4A; ∥ 波特率修正
UCTL0&= ~SWRST; ∥ 控制位
IE1 |= URXIE0; ∥ 使能0分中断
IFG1&=~ URXIFG0; ∥ 清除标志位
_EINT();
图2 大气颗粒传感器应用流程图Fig.2 The flow chart of application of atmospheric particle sensor
由于采用串口通信,传感器的软件设计主要有端口和串口初始化、接收数据位、波特率修正、串口中断等。发生串口中断时,接收的数据(PM2.5浓度、PM10浓度、PM1.0浓度和校验码)被送入临时变量,并清除中断标志位。接收数据完成后经过单片机处理方能在显示屏中显示。另外,在主程序中可以看到数据接收是否完成,若未完成,则持续等待。同时,由校验和可以判断检测数据的正确性,即PM1.0、PM2.5和PM10大气颗粒浓度的数据之和必须与校验和的数据相等,这样才表明采集的数据正确。
CP-15-A4传感器采用异步串行通信方式与单片机通信[7],其数据帧长度为32 B,主要包括起始位、数据位和校验位等。异步串行通信方式运行时序如图3所示、数据格式如图4所示。
图3 异步串行通信方式时序图Fig.3 Sequence diagram of asynchronous serial communication mode
图4 异步串行通信方式格式图Fig.4 Format diagram of asynchronous serial communication mode
异步传输模式中接收方和发送方有各自的时钟来控制数据的接收和发送过程。用户可以通过软件设置停止位以及数据位的位数,甚至可以设置有无奇偶位、选择时钟源的波特率寄存器来确定帧数据和位周期。
图4中,单片机MSP430f169收到CP-15-A4传感器发送的有效起始位(SYN)时就可以进行接收操作,并以RXD端口下降沿为标志,由3次采样多数表决方法确定下降沿;MSP430f169单片机按照控制寄存器设定的控制方式,接收数据帧数据,包括异步字符SYN、序始字符、标题、帧长度、源地址等信息,直到一帧数据采集并发送完毕。
CP-15-A4传感器监测的数据有PM1.0、PM2.5和PM10的大气颗粒浓度,而0.1 L空气中质量浓度在0.3 μg/m3以上的颗粒物,其个数等数值是不开放的,即这些数据的输出为零。
单片机把传感器输出的16进制数据转换为10进制数据的程序如下:
if(Uart_RecvFlag==1)
{
PM1_0=100*rx_buffer[4]+rx_buffer[5];
PM2_5=100*rx_buffer[6]+rx_buffer[7];
PM10=100*rx_buffer[8]+rx_buffer[9];
.........
上面语句显示,单片机把通过串行通信接收的PM1.0、PM2.5和PM10大气颗粒浓度数据转换为十进制数据。
3.2 无线模块的软件编程
无线模块运行流程如图5所示。无线模块是SPI通信方式,采用模拟SPI时序控制,其初始化设置只需要设置端口即可,即把IRQ、MISO设置成输入,其他端口设置为输出[8]。
图5 无线模块应用流程图Fig.5 The flow chart of wireless module application
无线模块发送部分程序如下:
char SPI_RW(char data)
{
char i,temp=0;
for(i=0;i<8;i++) ∥ 输出 8位
{
if((data & 0x80)==0x80) ∥检测最高位是否为1?
{
RF24L01_MOSI_1; ∥ 输出高电平
}
else
{
RF24L01_MOSI_0; ∥否则输出低电平
}
data = (data ≪ 1); ∥ 数据左移
temp≪=1;
RF24L01_SCK_1; ∥ 拉高 SCK
if((P3IN&0x04)==0x04)temp++; ∥ 捕获当前 MISO 位
RF24L01_SCK_0; ∥ 拉低SCK
}
return(temp); ∥ 返回数据
}
4 检测系统产品验证
根据检测系统的工作原理及其硬件设计和软件编程,研制成具体成品,并进行检测试验,结果如图6所示。
由图6可知,检测系统发射板12864液晶显示和接收板的12864液晶显示相同,大气颗粒PM1.0、PM2.5、PM10质量浓度分别为107 μg/m3、114 μg/m3、148 μg/m3;而且当大气颗粒发生改变时,发射板和接收板的显示数据也随之改变。因此,该检测系统有效。
图6 实验效果图Fig.6 Experimental renderings
5 结论
为远程监测空气中PM1.0、PM2.5、PM10浓度,根据单片机的相关理论和CP-15-A4传感器的工作原理,采用MSP430f169单片机为主控芯片,以CP-15-A4传感器检测大气颗粒浓度,以无线模块为传播媒介,进行了UART通信和SPI通信设计,并在12864液晶屏上显示结果,实现对空气环境中多种大气颗粒的远程检测;最后通过产品研制试验,验证了该监测系统的有效性,同时也为分析和设计大气颗粒检测提供了新的途径。