王炳祥,李先鋒,陳 中
(1.鹽城工學院 信息工程學院,江蘇 鹽城 224051;2.鹽城工學院 電氣工程學院,江蘇 鹽城 224051)
隨著人們環(huán)保意識的不斷增強,環(huán)境監(jiān)測越來越被重視。北京益衫科技公司出品的第4代激光傳感器CP-15-A4,可以監(jiān)測PM2.5、PM10等多種大氣顆粒,同時具有自校正功能[1];而無線模塊傳輸不僅可以節(jié)省成本,還可以降低人為故障率。因此,利用CP-15-A4傳感器通信和無線模塊可發(fā)送幀數(shù)據(jù)的特點,可以進行遠程大氣顆粒檢測系統(tǒng)的設計,實現(xiàn)對大氣顆粒的濃度計算、無線傳輸、數(shù)據(jù)處理和顯示等功能。試驗結果表明,該監(jiān)測系統(tǒng)具有較高的應用價值。
監(jiān)測系統(tǒng)選擇北京益衫科技公司出品的第4代激光傳感器CP-15-A4,以大氣顆粒為檢測對象,以無線模塊為傳輸橋梁,經(jīng)單片機處理后實現(xiàn)大氣顆粒的無線遠程監(jiān)測,其結構框圖如圖1所示。由圖1可知,大氣顆粒遠程監(jiān)測系統(tǒng)由發(fā)射系統(tǒng)和接收系統(tǒng)兩部分組成,發(fā)射系統(tǒng)利用大氣顆粒傳感器CP-15-A4檢測數(shù)據(jù),通過單片機MSP430f169處理后,由無線模塊nRF24L01發(fā)送到接收系統(tǒng);接收系統(tǒng)由無線模塊nRF24L01接收數(shù)據(jù),經(jīng)過單片機MSP430f169處理后再在顯示屏12864上實時顯示。
監(jiān)測及發(fā)射系統(tǒng) 接收系統(tǒng)圖1 系統(tǒng)結構框圖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],具有較強的抗干擾性能和自校驗功能,檢測響應快速、數(shù)據(jù)準確,在環(huán)境監(jiān)測方面有著廣泛的應用。單片機MSP430f169是MSP430系列單片機中的一種,該系列單片機比51系列單片機擁有多性能、低成本、低功耗等特點[3],具有哈佛結構、三級流水線和分支預測、可以嵌套中斷等特征,多應用于醫(yī)療和手持設備及工業(yè)檢測與控制儀器中。
在監(jiān)測系統(tǒng)數(shù)據(jù)傳輸過程中,為了驗證數(shù)據(jù)傳輸?shù)恼_性,需要在系統(tǒng)發(fā)送端和接收端均配置液晶顯示屏。另外,在系統(tǒng)調(diào)試過程中,采用雙重驗證方法,分別驗證CP-15-A4校驗后的數(shù)據(jù)是否和所監(jiān)測的數(shù)據(jù)相等,是否和進口儀器檢測的一致。
CP-15-A4模塊和MCU控制器之間是串行通信,而MSP430單片機對于串行通信有著固定的接口,所以不能采用其他普通端口來實現(xiàn)串行通信[4]。
MSP430單片機有兩個獨立的移位寄存器,從最低位開始發(fā)送和接收數(shù)據(jù),采用串行中斷方式。使用時用戶可以通過軟件設置數(shù)據(jù)位、停止位和波特率等參數(shù),設定后,單片機就能夠實時發(fā)送和接收數(shù)據(jù),并具有喚醒發(fā)送和激活等功能。
CP-15-A4模塊有6個端口,分別是電源、接地、復位、置位、RXD和TXD。其置位端口和復位端口均接高電平,表明是無條件傳輸;TXD端口為發(fā)送端口,將信息以多幀數(shù)據(jù)塊形式傳送到單片機的串行接收端口,波特率設置為9 600 b/s;RXD端口懸空。
CP-15-A4傳感器把監(jiān)測到的室外多種大氣顆粒數(shù)據(jù)發(fā)送到單片機MSP430f169,經(jīng)過處理后一邊發(fā)送到無線模塊nRF24L01,由無線模塊發(fā)送數(shù)據(jù)包,無線傳輸?shù)绞覂?nèi)監(jiān)控系統(tǒng);一邊在發(fā)射系統(tǒng)顯示屏12864上實時顯示,顯示內(nèi)容有大氣顆粒數(shù)值及校驗和等。因此,無線模塊是室外監(jiān)測和室內(nèi)監(jiān)控的橋梁,其通信方式為SPI、波特率為9 600 b/s,可以傳輸數(shù)據(jù)的長度為40 b,且高位先出[5]。
MSP430單片機的SPI通信有3種方式,分別為模擬SPI時序、寄存器方式和中斷方式。由于寄存器和中斷的通信方式必須使用MSP430專用端口,而傳感器采用的是串行通信方式,兩者的專用端口相同;如果無線模塊采用寄存器方式,就占據(jù)了單片機MSP430端口的第二功能,使得大氣顆粒傳感器無法正常工作,所以無線模塊必須采用模擬時序的方法通信[6],且接口方式為無線模塊的IQR接單片機P1.7、MOSI接單片機P3.1、CSN接單片機P3.0、MISO接單片機P3.2、SCK接單片機P3.3、CE接單片機P1.6,3.3 V供電。
液晶顯示電路用于顯示大氣顆粒數(shù)據(jù),采用串行通信方式,電源為3.3 V,其串并行選擇端口為低電平,串同步時鐘信號端口接單片機P5.2端口,讀寫選擇端口接單片機P5.1端口,命令選擇端口接單片機P5.0端口。
在進行系統(tǒng)的硬件設計后,需要進行軟件編程。軟件編程主要包括傳感器軟件編程和無線模塊的軟件編程兩個部分。
根據(jù)監(jiān)測系統(tǒng)中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
由于采用串口通信,傳感器的軟件設計主要有端口和串口初始化、接收數(shù)據(jù)位、波特率修正、串口中斷等。發(fā)生串口中斷時,接收的數(shù)據(jù)(PM2.5濃度、PM10濃度、PM1.0濃度和校驗碼)被送入臨時變量,并清除中斷標志位。接收數(shù)據(jù)完成后經(jīng)過單片機處理方能在顯示屏中顯示。另外,在主程序中可以看到數(shù)據(jù)接收是否完成,若未完成,則持續(xù)等待。同時,由校驗和可以判斷檢測數(shù)據(jù)的正確性,即PM1.0、PM2.5和PM10大氣顆粒濃度的數(shù)據(jù)之和必須與校驗和的數(shù)據(jù)相等,這樣才表明采集的數(shù)據(jù)正確。
CP-15-A4傳感器采用異步串行通信方式與單片機通信[7],其數(shù)據(jù)幀長度為32 B,主要包括起始位、數(shù)據(jù)位和校驗位等。異步串行通信方式運行時序如圖3所示、數(shù)據(jù)格式如圖4所示。
圖3 異步串行通信方式時序圖Fig.3 Sequence diagram of asynchronous serial communication mode
圖4 異步串行通信方式格式圖Fig.4 Format diagram of asynchronous serial communication mode
異步傳輸模式中接收方和發(fā)送方有各自的時鐘來控制數(shù)據(jù)的接收和發(fā)送過程。用戶可以通過軟件設置停止位以及數(shù)據(jù)位的位數(shù),甚至可以設置有無奇偶位、選擇時鐘源的波特率寄存器來確定幀數(shù)據(jù)和位周期。
圖4中,單片機MSP430f169收到CP-15-A4傳感器發(fā)送的有效起始位(SYN)時就可以進行接收操作,并以RXD端口下降沿為標志,由3次采樣多數(shù)表決方法確定下降沿;MSP430f169單片機按照控制寄存器設定的控制方式,接收數(shù)據(jù)幀數(shù)據(jù),包括異步字符SYN、序始字符、標題、幀長度、源地址等信息,直到一幀數(shù)據(jù)采集并發(fā)送完畢。
CP-15-A4傳感器監(jiān)測的數(shù)據(jù)有PM1.0、PM2.5和PM10的大氣顆粒濃度,而0.1 L空氣中質(zhì)量濃度在0.3 μg/m3以上的顆粒物,其個數(shù)等數(shù)值是不開放的,即這些數(shù)據(jù)的輸出為零。
單片機把傳感器輸出的16進制數(shù)據(jù)轉換為10進制數(shù)據(jù)的程序如下:
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大氣顆粒濃度數(shù)據(jù)轉換為十進制數(shù)據(jù)。
無線模塊運行流程如圖5所示。無線模塊是SPI通信方式,采用模擬SPI時序控制,其初始化設置只需要設置端口即可,即把IRQ、MISO設置成輸入,其他端口設置為輸出[8]。
圖5 無線模塊應用流程圖Fig.5 The flow chart of wireless module application
無線模塊發(fā)送部分程序如下:
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); ∥ 數(shù)據(jù)左移
temp?=1;
RF24L01_SCK_1; ∥ 拉高 SCK
if((P3IN&0x04)==0x04)temp++; ∥ 捕獲當前 MISO 位
RF24L01_SCK_0; ∥ 拉低SCK
}
return(temp); ∥ 返回數(shù)據(jù)
}
根據(jù)檢測系統(tǒng)的工作原理及其硬件設計和軟件編程,研制成具體成品,并進行檢測試驗,結果如圖6所示。
由圖6可知,檢測系統(tǒng)發(fā)射板12864液晶顯示和接收板的12864液晶顯示相同,大氣顆粒PM1.0、PM2.5、PM10質(zhì)量濃度分別為107 μg/m3、114 μg/m3、148 μg/m3;而且當大氣顆粒發(fā)生改變時,發(fā)射板和接收板的顯示數(shù)據(jù)也隨之改變。因此,該檢測系統(tǒng)有效。
圖6 實驗效果圖Fig.6 Experimental renderings
為遠程監(jiān)測空氣中PM1.0、PM2.5、PM10濃度,根據(jù)單片機的相關理論和CP-15-A4傳感器的工作原理,采用MSP430f169單片機為主控芯片,以CP-15-A4傳感器檢測大氣顆粒濃度,以無線模塊為傳播媒介,進行了UART通信和SPI通信設計,并在12864液晶屏上顯示結果,實現(xiàn)對空氣環(huán)境中多種大氣顆粒的遠程檢測;最后通過產(chǎn)品研制試驗,驗證了該監(jiān)測系統(tǒng)的有效性,同時也為分析和設計大氣顆粒檢測提供了新的途徑。