邵文學(xué)++張鳳登
摘 要:隨著人們對(duì)空氣中PM2.5等污染元素的日益關(guān)注,空氣質(zhì)量的好壞已經(jīng)成為人們生活質(zhì)量的衡量標(biāo)準(zhǔn)。為了滿足用戶對(duì)PM2.5檢測(cè)的功能需求,提出了一種基于STM32和CAN總線協(xié)議的PM2.5檢測(cè)系統(tǒng),該系統(tǒng)通過(guò)CAN總線實(shí)現(xiàn)數(shù)據(jù)在各系統(tǒng)中的實(shí)時(shí)高效傳輸。對(duì)整個(gè)系統(tǒng)精度進(jìn)行試驗(yàn)驗(yàn)證,將PM2.5測(cè)量結(jié)果與現(xiàn)有測(cè)量產(chǎn)品進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)精度高、性能穩(wěn)定,能快速高效地讓用戶知曉空氣質(zhì)量,可以應(yīng)用于家居和工廠等領(lǐng)域。
關(guān)鍵詞關(guān)鍵詞:PM2.5;STM32;CAN總線
DOIDOI:10.11907/rjdk.162065
中圖分類號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):16727800(2016)011011803
0 引言
近幾年,空氣質(zhì)量問(wèn)題越來(lái)越受到人們的關(guān)注。基于STM32的空氣檢測(cè)儀具有高效、便捷、實(shí)時(shí)檢測(cè)等優(yōu)點(diǎn),能夠?qū)崟r(shí)對(duì)環(huán)境質(zhì)量進(jìn)行監(jiān)控并報(bào)警PM2.5的值,將CAN總線應(yīng)用于智能家居或者工廠能夠有效地體現(xiàn)出這些優(yōu)勢(shì)。
本文設(shè)計(jì)了基于STM32和CAN總線的PM2.5檢測(cè)系統(tǒng),通過(guò)液晶顯示屏來(lái)顯示監(jiān)測(cè)到的PM2.5值,可以高效地反映實(shí)時(shí)空氣質(zhì)量[3]。
1 系統(tǒng)總體設(shè)計(jì)
PM2.5監(jiān)測(cè)系統(tǒng)主要由PM2.5濃度測(cè)量模塊、液晶顯示模塊、CAN通信模塊組成,其主控電路由STM32F103C8T8和其外圍電路組成。PM2.5測(cè)量模塊采用夏普一代PM2.5檢測(cè)傳感器,它將采集到的模擬信號(hào)傳輸給主控芯片,主控芯片經(jīng)過(guò)AD轉(zhuǎn)換獲得PM2.5的值,再經(jīng)過(guò)主控芯片相關(guān)處理后通過(guò)CAN通信模塊傳輸至CAN網(wǎng)絡(luò),與此同時(shí),若未接收來(lái)自CAN網(wǎng)絡(luò)的PM2.5信號(hào),則通過(guò)液晶顯示模塊顯示接收到的來(lái)自CAN網(wǎng)絡(luò)的值,反之,則顯示其自身PM2.5傳感器檢測(cè)到的PM2.5值。系統(tǒng)整體結(jié)構(gòu)如圖1所示[5]。
2 硬件設(shè)計(jì)
2.1 STM32F103C8T8微處理器
STM32F103C8T8是一個(gè)32位的微處理器,采用ARMv7的Cortex-M3內(nèi)核,其時(shí)鐘頻率高達(dá)72MHz,使用3.3V供電,具有豐富的外設(shè),內(nèi)置有CAN控制器,本次設(shè)計(jì)的PM2.5監(jiān)測(cè)系統(tǒng)需要設(shè)計(jì)一個(gè)CAN節(jié)點(diǎn),CAN控制器內(nèi)置,只需要外接一個(gè)CAN收發(fā)器即可,簡(jiǎn)化了系統(tǒng)實(shí)現(xiàn)過(guò)程[5]。
BxCAN(Basic Extended CAN)是STM32內(nèi)置的CAN控制器,它支持CAN協(xié)議2.0A和2.0B,bxCAN接口,可以自動(dòng)地接收和發(fā)送CAN報(bào)文,支持標(biāo)準(zhǔn)標(biāo)識(shí)符和擴(kuò)展標(biāo)識(shí)符[1]。具有3個(gè)發(fā)送郵箱,發(fā)送報(bào)文的優(yōu)先級(jí)可以使用軟件配置,可以記錄發(fā)送的時(shí)間。有兩個(gè)3級(jí)深度的接收FIFO,可以使用過(guò)濾發(fā)送只接收或不接收某些ID的報(bào)文[2]。
2.2 PM2.5傳感器
本系統(tǒng)采用夏普的GP2Y1010AU0F。PM2.5傳感器的原理:PM2.5傳感器中存在一個(gè)發(fā)光二極管,當(dāng)灰塵通過(guò)傳感器時(shí)二極管射出的光就會(huì)折射回來(lái),通過(guò)檢測(cè)折射的光線來(lái)檢測(cè)PM2.5的濃度[7]。
GP2Y1010AU0F優(yōu)點(diǎn)是體積較小、功耗低而且可以檢測(cè)非常細(xì)小的顆粒,同時(shí)該傳感器檢測(cè)時(shí)間較短,塵埃被檢測(cè)到只需一個(gè)脈沖的時(shí)間,且還能區(qū)分煙和塵埃的區(qū)別[4]。
2.3 液晶顯示器
液晶顯示屏選用的是Nokia5110,該屏具有易于使用、功耗低、價(jià)格便宜等優(yōu)點(diǎn)。
2.4 CAN外圍收發(fā)器電路
TJA1050是Philips公司推出的總線收發(fā)器,應(yīng)用在通信速率為60kbps~1Mbps的高速自動(dòng)化系統(tǒng)中。TJA1050是CAN控制器和物理總線之間的接口,可以為CAN控制器提供不同的發(fā)送/接收功能,輸入電平與3.3V以及5V的器件兼容,至少可以連接110個(gè)節(jié)點(diǎn)。它有兩種工作模式,當(dāng)STB接地時(shí),TJA1050進(jìn)入高速模式,如果接的是高電平,則進(jìn)入待機(jī)模式,發(fā)送器被關(guān)閉,其電路原理如圖2所示。
其中,TXD端口和 RXD端口與STM32F103C8T8的PA12口和PA11口相連接。CANH 端口與CANH端口與物理總線相連接,之間接一個(gè)120Ω的終端電阻,從而組成一個(gè)CAN通信模塊。
3 軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)主要包括:初始化、PM2.5值的讀取、PM2.5值的顯示和CAN通信程序。其主體流程如圖3所示。
3.1 系統(tǒng)初始化
對(duì)整個(gè)系統(tǒng)進(jìn)行初始化配置,它包括系統(tǒng)時(shí)鐘、串口、AD、GP2Y1010AU0F、液晶初始化和CAN等的初始化配置[10]。其中在CAN模式的配置中需要配置工作時(shí)的波特率,在設(shè)計(jì)中只需配置采樣點(diǎn)的位置即可,Tq=1,TBS1=5,TBS2=3,分頻器BRP=8。在APB1頻率為36MHz的條件下CAN通信的波特率=36 000/[(1+5+3)*8]=500Kbit/s。
3.2 數(shù)據(jù)采集與打包發(fā)送
首先,判斷GP2Y1010AU0F采集數(shù)據(jù)后經(jīng)過(guò)AD轉(zhuǎn)換后的值是否讀取成功,若讀取數(shù)據(jù)成功,則調(diào)用用戶函數(shù)CAN_SetMsg()將采集到的數(shù)據(jù)打包成報(bào)文,再調(diào)用庫(kù)函數(shù)CAN_Transmit()將該報(bào)文廣播到CAN網(wǎng)絡(luò)上。
3.3 PM2.5值采集、數(shù)據(jù)處理與實(shí)時(shí)顯示
PM2.5檢測(cè)部分的軟件設(shè)計(jì):除了各部分的初始化外,最重要的就是單片機(jī)對(duì)于采集后的數(shù)據(jù)進(jìn)行處理,為了能夠有效并實(shí)時(shí)地檢測(cè)PM2.5的值,單片機(jī)必須要能夠?qū)崟r(shí)對(duì)PM2.5傳感器測(cè)得值進(jìn)行采集、處理、顯示[6]。起初調(diào)試時(shí)將數(shù)據(jù)處理和數(shù)據(jù)顯示都放到了程序的主函數(shù)中,雖然在電腦的串口顯示程序中AD所采集的數(shù)據(jù)能夠?qū)崟r(shí)上傳,但是在屏上顯示的數(shù)據(jù)變化太快肉眼無(wú)法看清,加上延時(shí)函數(shù)后,顯示問(wèn)題雖然解決,卻影響了數(shù)據(jù)采集,因此將數(shù)據(jù)采集和顯示放在了中斷函數(shù)中,這樣可解決這個(gè)問(wèn)題。
程序采用定時(shí)中斷采集的方法,定時(shí)時(shí)間為10ms左右,根據(jù)調(diào)試時(shí)單片機(jī)所測(cè)得的數(shù)據(jù),觀察可知10ms定時(shí)所采集的數(shù)據(jù)較為合適。
采集的數(shù)據(jù)需要進(jìn)行處理,發(fā)現(xiàn)PM2.5傳感器輸出的電壓值,在一個(gè)周期中有一個(gè)最大值,與其余的較大值有很大差值。當(dāng)有煙霧時(shí),變化巨大的只有那個(gè)最大值,所以只有對(duì)其最大值進(jìn)行數(shù)據(jù)分析才能夠準(zhǔn)確地知道PM2.5的濃度。在中斷程序設(shè)計(jì)中,首先對(duì)PM2.5輸出的模擬量進(jìn)行采集,對(duì)采集的電壓值進(jìn)行大小排序,保存每組40個(gè)數(shù)據(jù)中的最大值一共保存5組,對(duì)這5組數(shù)據(jù)進(jìn)行平均濾波,將處理后的數(shù)據(jù)跟無(wú)塵時(shí)的數(shù)據(jù)進(jìn)行比較,保存大于無(wú)塵時(shí)的數(shù)據(jù),然后再通過(guò)液晶顯示。這種數(shù)據(jù)處理方式不僅增加了整個(gè)系統(tǒng)的穩(wěn)定性,而且對(duì)于空氣質(zhì)量的檢測(cè)也較為精準(zhǔn)。
顯示時(shí)首先判斷是否接收到CAN網(wǎng)絡(luò)里的數(shù)據(jù),采用中斷接收方式。若接收成功,則輪詢標(biāo)志變量flag變?yōu)?,表示成功接收到了數(shù)據(jù),液晶實(shí)時(shí)顯示接收到的數(shù)據(jù);反之,則液晶實(shí)時(shí)顯示自身PM2.5傳感器采集到的數(shù)據(jù)。
4 調(diào)試與仿真
本次設(shè)計(jì)使用了Keil μVision4進(jìn)行軟件調(diào)試,使用Altium Designer畫出系統(tǒng)原理圖的pcb線路板,進(jìn)行打樣;將元器件焊好,用JTAG將程序燒錄好進(jìn)行實(shí)物調(diào)試[8],使用Vector公司所生產(chǎn)的CANoe進(jìn)行節(jié)點(diǎn)調(diào)試,如圖4所示。
測(cè)試結(jié)果表明,該節(jié)點(diǎn)能夠?qū)崿F(xiàn)數(shù)據(jù)的接收和發(fā)送,最后進(jìn)行有煙和無(wú)煙的實(shí)物調(diào)試,其調(diào)試結(jié)果如圖5所示,左邊實(shí)現(xiàn)的是無(wú)煙時(shí),顯示PM2.5值,右邊實(shí)現(xiàn)的是有煙時(shí)[9]。
5 結(jié)語(yǔ)
本文進(jìn)行了基于STM32和CAN總線協(xié)議的PM2.5檢測(cè)系統(tǒng)設(shè)計(jì),經(jīng)過(guò)軟件和硬件調(diào)試,能夠很好地實(shí)現(xiàn)設(shè)計(jì)要求。實(shí)驗(yàn)表明,該系統(tǒng)精度高、性能穩(wěn)定、實(shí)時(shí)性好,在智能家居或者工廠中具有很好的應(yīng)用前景。
參考文獻(xiàn):
[1] 饒運(yùn)濤.現(xiàn)場(chǎng)總線CAN原理與應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2003.
[2] 初秀榮.基于CAN現(xiàn)場(chǎng)總線測(cè)控網(wǎng)絡(luò)系統(tǒng)研究[D].青島:青島大學(xué),2007.
[3] 王寅,王卉.PM2.5現(xiàn)狀及其檢測(cè)技術(shù)[J].資源節(jié)約與環(huán)保,2014(12):138139.
[4] 王昊,孔令榮.PM2.5濃度無(wú)線檢測(cè)系統(tǒng)設(shè)計(jì)[J].電子科技,2015,28(7):133136.
[5] 周航慈.單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)[M].北京:北京航空航天出版社, 2005:2532.
[6] 張旭,亓學(xué)廣,李世光,等.基于STM32電力數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].電子測(cè)量技術(shù),2010,33(11):9093.
[7] 程軍.傳感器及實(shí)用檢測(cè)技術(shù)[M].西安:西安電子科技大學(xué)出版社,2005:3645.
[8] 何希才.傳感器及其應(yīng)用實(shí)例[M].北京:機(jī)械工業(yè)出版社,2005:8998.
[9] 楊世興.監(jiān)測(cè)監(jiān)控系統(tǒng)原理與實(shí)用設(shè)計(jì)[M].北京:中國(guó)電力出版社,2004:4556.
[10] 格列波夫.氣體凈化設(shè)備的監(jiān)測(cè)和自動(dòng)控制[M].北京:中國(guó)科學(xué)技術(shù)出版社,2006:96102.
(責(zé)任編輯:孫 娟)