趙 科 楊照中 鞠艷杰
(1.大連交通大學電氣信息學院;2.人工智能四川省重點實驗室;3.中國人民解放軍63981部隊)
基于STM32的分布式多參數監測儀
趙 科1,2楊照中3鞠艷杰1
(1.大連交通大學電氣信息學院;2.人工智能四川省重點實驗室;3.中國人民解放軍63981部隊)
采用STM32主控器采集并處理數據,設計制作分布式多參數監測儀,由相關傳感器檢測溫濕度、煙霧濃度和氣體濃度。分布式多參數監測儀設有CAN接口和無線接口,可實現多監測儀組網,實現數據遠程傳輸和監控。該監測儀具有精度高、響應快及穩定性好等優點,并能通過CAN網絡或無線網絡進行可靠的數據傳輸。
多參數監測儀 STM32主控器 數據無線傳輸 電路
化工企業現場環境復雜,普遍存在有毒有害和易燃氣體,另外化工生產現場環境也需要合適的溫濕度,因此對化工企業環境的一些參數進行監測和控制顯得尤為重要[1]。化工企業工作現場面積較大,而傳統環境監測系統多由人工操控,并且監測范圍僅限于幾個點和工作面,監測頻率也較低,難以保證所測數據的準確性和時效性,難以對環境要素進行全時段和全方位的動態監測[2]。
目前,國內外對環境監測的研究取得了一定成果,但存在只具備個別的監測、監測參數單一、數據采集傳輸速度慢及智能化程度低等缺陷[3]。現場總線控制克服了傳統的多點直通式布線控制的一些缺點,使布線具有簡潔、維修方便、排錯容易及便于管理等優點[4]。對于有毒有害、危險或不宜布線的工作現場,可以通過無線模塊對生產現場參數進行采集、記錄和控制,以保證生產過程的安全可靠、產品質量也能有效提高[5]。溫濕度對各種傳感器的精度也有較大影響,通過采集工業現場環境溫濕度對其他傳感器進行補償和線性化處理,來提高監測儀的精度[6]。因此,需要設計智能化多點多參數環境監測設備。
分布式多參數監測儀通過工業現場總線構造網絡控制,實現集中管理和分布監測,可實現多類型參數的采集組網和多點組網,而且能夠遠程接收監控中心實現對大量的多參數監測儀進行管理的功能,并且能夠對本地監測儀進行調試和配置。在需要更換監測環境參數時,只需更換或增減監測儀的相應傳感器,監測儀就能自動識別并進行配置,工作人員僅需進行簡單的調零和參數設定,不需要更改硬件電路和嵌入式軟件,從而最大程度地節約了開發成本和時間[7,8]。
分布式多參數監測儀采用高性能的STM32主控器,多種傳感器,無線通信和CAN總線,存儲和顯示,以及輸出電路構成系統的硬件電路(圖1),實現多參數采集,多點采集,便于組網,方便分布式控制。利用溫濕度傳感器采集環境溫濕度,并對其他傳感器進行溫濕度補償,采集煙霧濃度和一些氣體濃度并進行調理,送至STM32控制器的A/D轉換器實現模數轉換,通過模塊化編程采用靈活的控制算法控制輸出。通過狀態指示電路和報警電路輸出控制器的工況和報警情況;以太網和RS232串口可以對監測儀進行參數設置、程序調試或作為功能擴展接口。通過CAN總線和無線通信模塊實現遠程主機和從機的通信,實現多地多參數的從機分布控制和主機集中控制相結合。

圖1 分布式多參數監測儀組成框圖
采用STM32作為監測儀的主控器,充分發揮其內核優勢,并方便后期功能擴展和相近傳感器通用驅動,運行速度快,并具有較高的準確性和穩定性。
2.1 最小系統
主控制器采用CortexTM-M3內核架構的低功耗高性能32位STM32F207ZGT6器件,內置SPI、CAN、ETH、FSMC、I2C、USB及RS232等通信接口,內置512KByte只讀存儲器和64KByte靜態隨機存儲器,含有多個計數器/定時器、A/D和D/A轉換器,含多個可配置復用的I/O端口,完全滿足設計要求以及后期的擴展和傳感器互換要求。
主控制器的典型工作電壓3.3V,電源模塊提供穩定的5.0V直流電壓,并采用線性模塊轉換為3.3V供電,電源電路配置有多個保護器件,使電源供電穩定安全。控制器采用8.000MHz晶振提供系統時鐘,32.768kHz晶振提供RTC實時時鐘。為防止程序“跑飛”或系統掉電等意外情況,主控器外加了可手動復位和STWD100“看門狗”自動復位電路,提高了系統的穩定性和可靠性。
2.2 信號采集電路
2.2.1 溫濕度信號采集電路
采用響應快、功耗低且可靠性高的SHT75傳感器進行溫濕度信號采集,該傳感器采用二線串口與主控制器進行通信,接口電路簡單可靠,DATA雙向串行數據端接10kΩ上拉電阻,在SCK串行通信時鐘上升沿時采集雙向串行數據DATA信號,在SCK時鐘下降沿之后DATA信號可以改變狀態。傳感器信號傳輸過程為:傳輸啟動、命令發送、數據測量和休眠。SHT75集成了溫濕度敏感元件、A/D轉換電路、信號處理電路、校準存儲器、循環冗余校驗及串行接口等電路,方便利用STM32的I2C通信接口進行數據通信。SHT75的工作電壓3.3V,平均工作電流28μA,濕度測量精度±1.8%RH,溫度測量精度達±0.3℃,溫度測量范圍-40.0~123.8℃、分辨率可達14位,能夠滿足工業現場要求[9]。
2.2.2 氣體信號采集電路
待測氣體濃度正比于其電化學反應所產生的電流,故可通過測量電流確定氣體濃度。選用高精度、低溫漂且高增益的運放AD8574設計多級前置信號調理電路,實現I/V變換并放大輸出電壓信號,送至主控器的A/D轉換接口實現氣體的信號采集。為提高信噪比,各級放大電路均使用電容濾除高頻干擾。傳感器采用穩定的3.3V供電,并根據溫濕度傳感器采集的環境溫濕度信號,采用最小二乘法對氣體濃度進行線性化處理補償來提高氣體傳感器采集信號的精度[10]。
2.2.3 煙霧信號采集電路
通過主控器控制紅外發光管發光,而煙霧粒子對光線進行吸收和散射,故可以將煙霧信號的變化轉換為接收到的光線強度變化,實現光/電變化。選用低噪聲超高速型放大器ADA4817-1實現I/V變換,最終將煙霧的變化反映到輸出電壓的變化。由于光電接收電路響應的光電流較小,需要多級放大電路,并設計前置各級高通濾波,濾掉各級直流成分,末級采用約為1.6Hz的平滑濾波器,完善檢波輸出電路的電壓信號,最后送至主控器片內A/D進行模數轉換[11]。
2.3 通信接口電路
STM32內置以太網模塊支持IEEE802.3協議的MII和RMII接口,與DP83848IVV以太網收發器接口簡單,配置方便。收發器DP83848IVV的輸出端通過HX1198NL網絡隔離變壓器實現信號傳輸、雜波抑制、阻抗匹配及高電壓隔離等,提高信息的安全性。
STM32控制器USART接口與ADM3251收發器接口電路簡單,內置隔離電源,同時對收發進行了共模和差模保護,提高接口抗干擾性能。使用超級終端可以對程序進行監控與調試下載。
無線模塊NRF24L01通過SPI接口與STM32控制器通信,配置方便,傳輸速度最高可達18MHz,接口電路如圖2所示。該無線模塊采用2.4G的ISM頻段,GFSK調制,內置CRC檢錯機制,可控制點對多點通信,可進行自動應答設置,確保數據傳輸可靠。

圖2 SPI接口電路
SJA1000控制器內置于STM32主控器,與CAN收發器ADM3053接口電路簡單,并有很高的抗干擾能力,完全滿足惡劣工業現場下的信息可靠傳輸。SJA1000控制器的TX端和RX端與ADM3053收發器電氣隔離,并提供隔離電源,提高了CAN節點的EMC性能,接有120Ω終端電阻,防止信號反射。
2.4 人機接口電路
人機接口電路包括狀態指示電路、鍵盤輸入電路、報警電路、驅動電路、顯示電路及存儲電路等。
通過LED燈指示監測儀工況,可以指示電源、無線通信、串口收發、系統運行正常與否及信號超限等。通過SN74ABT245BPW總線收發器提高驅動能力,實現控制器GPIO驅動LED指示燈。
采用薄膜開關鍵盤電路進行數據輸入,實現人機對話。主控制器通過GPIO識別各按鍵碼并執行相應的操作。
報警電路用于監測儀錯誤報警、氣體濃度和溫濕度超上下限報警及自動解除報警等功能。
驅動電路通過STM32控制器輸出PWM信號,驅動報警設備,并進行適當的應急處理,如打開排風扇或啟動給氧設備。
顯示電路選用TFT-LCD屏,ILI9325顯示屏色彩控制器,自帶觸摸功能控制器TH2046,使用16位并行數據接口。通過STM32的FSMC接口與顯示屏接線端相連,FSMC接口可靈活配置,顯示監測儀當前信息,如氣體濃度、煙霧濃度、溫濕度及采集時間等信息,方便一屏多顯。
由于監測儀所用傳感器較多,采集數據較多,程序量較大,需要進行存儲器擴展。通過STM32的FSMC接口進行外部存儲器擴展,方便嵌入式系統移植、存放啟動代碼等[12,13],FSMC接口電路如圖3所示。通過I2C總線擴展了E2PROM存儲器對一些設備地址進行記錄。

圖3 FSMC接口電路
在Keil μVision4環境下利用STM32的固件庫對監測儀系統程序進行模塊化編程,系統程序(圖4)主要包括系統初始化,多參數信號采集、處理、報警,驅動輸出、數據存儲,以及顯示、各通信接口驅動等程序[14,15]。

圖4 系統主程序流程
系統主程序首先對主控器各外設初始化,包括GPIO端口配置,初始化時鐘,以及USART、I2C、ETH、SPI、ADC初始化等,之后進行監測儀工作參數設置校驗,驅動各傳感器進行多參數數據采集,然后處理采集信息并存儲顯示,作出報警判斷并輸出相應驅動信號。使能CAN接口和無線收發模塊,實現遠程數據傳輸和監控,同時接收遠程上位機的調試、參數配置等,實現遠程監控。
由于篇幅所限,只列出通過STM32的FSMC初始化外部SRAM的步驟。
首先,使能FSMC時鐘,并配置FSMC相關的IO及其時鐘使能,程序代碼如下:
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC,ENABLE);//使能FSMC時鐘
GPIO_InitStructure.GPIO_Pin=0xFF33;//PORTD復用推挽輸出,其他端口復用程序類同,略
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//復用推挽輸出
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOD,&GPIO_InitStructure);
readWriteTiming.FSMC_AddressSetupTime=0x00;//地址建立時間為1個HCLK
readWriteTiming.FSMC_AddressHoldTime=0x00;//地址保持時間模式A
readWriteTiming.FSMC_DataSetupTime=0x03;//數據保持時間為3個HCLK
然后,設置FSMC的BANK1區域3。此部分包括設置區域3的存儲器的工作模式、位寬及讀寫時序等,程序代碼如下:
readWriteTiming.FSMC_AccessMode=FSMC_AccessMode_A;//模式A
FSMC_NSInitStructure.FSMC_MemoryDataWidth=FSMC_MemoryDataWidth_16b;//存儲器數據16bit
FSMC_NSInitStructure.FSMC_WriteOperation=FSMC_WriteOperation_Enable;//存儲器寫使能
FSMC_NSInitStructure.FSMC_ExtendedMode=FSMC_ExtendedMode_Disable;//讀寫使用相同時序
FSMC_NORSRAMInit(&FSMC_NSInitStructure);//初始化FSMC配置
最后,使能BANK1區域3,程序代碼如下:
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM3,ENABLE);//使能BANK3
經過測試,基于STM32的分布式多參數監測儀能夠準確采集多種信號參數,通過無線收發模塊或CAN總線實時準確地與監控中心進行遠程數據通信。該監測儀具有穩定性高、結構簡單、成本低、互換性好和遠程通信的特點,可以構成工業現場網絡,實現環境的多參數多區域監測,具有較好的通用性。采用上位機集中管理控制的基于CAN總線接口和無線接口的分布式多參數智能監測儀將具有廣泛的應用前景。
[1] 周美麗,劉生春.易燃易爆氣體濃度智能監測儀的設計[J].延安大學學報(自然科學版),2011,30(1):39~42.
[2] 高肇凌,郭雪,陳艷東,等.無線傳感器網絡在水下防噴器控制系統中的應用[J].石油化工自動化,2016,52(2):25~28.
[3] 權潔,熊書敏,孫曉東,等.基于MSP430的便攜式多參數氣體檢測儀[J].化工自動化及儀表,2015,42(4):388~390.
[4] 張河新,王曉輝,黃曉東.基于STM32和CAN總線的智能數據采集節點設計[J].化工自動化及儀表,2012,39(1):78~80.
[5] 王天杰,原明亭.基于C8051F020的以太網遠程監控系統的設計[J].化工自動化及儀表,2007,34(5):36~39.
[6] 薛玲,孫曼,張志會,等.基于單片機AT89S51的溫濕度控制儀[J].化工自動化及儀表,2010,37(7):66~69.
[7] 朱理望,肖文輝,彭理.一種便攜式危險區域安全監測儀的研究與設計[J].重慶理工大學學報(自然科學版),2016,30(1):70~76.
[8] 郝麗麗,馬小軍,張娟.便攜式多參數環境監測儀的設計[J].計算機測量與控制,2006,14(6):835~837.
[9] 趙科,李常賢,張彤.基于STM32的無線溫濕度控制器[J].化工自動化及儀表,2015,42(6):629~633.
[10] 趙科,時維國,鞠艷杰.基于STM32控制器的氣體探測器[J].化工自動化及儀表,2015,42(12):1310~1313.
[11] 趙科,薛嚴冰,鞠艷杰.基于STM32的分布式煙溫探測器設計[J].化工自動化及儀表,2015,42(7):813~817.
[12] 王蘭英.基于STM32嵌入式系統的uCGUI移植與實現[J].四川理工學院學報(自然科學版),2012,25(1):56~58.
[13] 丁力,宋志平,徐萌萌,等.基于STM32的嵌入式測控系統設計[J].中南大學學報(自然科學版),2013,44(z1):260~265.
[14] 趙振,鄭金吾,賈夢之.嵌入式Linux下AD驅動程序的實現與應用[J].化工自動化及儀表,2013,40(10):1292~1295.
[15] 何泉,賀玉梅.嵌入式Linux下GPIO驅動程序的開發及應用[J].儀器儀表學報,2007,28(z4):271~273.
ZHAO Ke1,2, YANG Zhao-zhong3, JU Yan-jie1
(1.SchoolofElectronicsandInformationEngineering,DalianJiaotongUniversity;2.ArtificialIntelligenceKeyLaboratoryofSichuanProvince; 3.No. 63981TroopofPLA)
Taking STM32 controller as the data acquisition and processing center, a distributed multi-parameter monitor was designed, in which, the sensor employed can detect temperature and humidity and gas concentration and smoke concentration; and the monitor has CAN and wireless communication interface to constitute a multi-sensor network and to transfer and control data remotely. The result shows that, this monitor has high precision, fast response and good stability and it can achieve CAN and wireless data transmission.
multi-parameter monitor, STM32 controller, data wireless transmission, circuit
TH862
A
1000-3932(2017)02-0161-05
2016-04-20,
2016-11-10)
DesignofDistributedMulti-parameterMonitorBasedonSTM32
人工智能四川省重點實驗室開放基金項目(2015RYJ06)。
趙科(1978-),講師,從事智能網絡控制的研究,zhaoke@djtu.edu.cn。