摘要:介紹一種基于MSP430系列超低功耗單片機的多參數環境監測儀,詳細闡明了環境參數傳感器的選取、監測儀軟硬件的設計與實現方法。該儀器充分利用MSP430單片機自身資源,具有小型便攜、高性能、低功耗、可編程等優點,可廣泛應用于諸多領域的環境參數監測與保護。
本文以智能建筑為應用背景,介紹一種通用性很強的便攜式多參數環境監測儀。它以MSP430F437超低功耗單片機為核心,配置新式的微型低功耗傳感器,實現了建筑物內溫度、濕度、光照度、有害氣體濃度等參數的采集處理、存儲、通信等功能。文中詳細闡明了傳感器的選取、硬件結構、軟件流程等相關技術,并指出該儀器的特點和優勢。
1 傳感器的選取
傳感器是決定監測儀精度的關鍵元件。傳感器的選擇主要依據工作環境、測量精度、線性度、互換性、靈敏度、響應速度、穩定性、功耗、體積大小以及易于與MCU接口等。本監測儀選用的各類傳感器分別為:集成溫度傳感器TMP35、集成濕度傳感器HM1500、熱線型半導體氣敏傳感器MR511以及集成光照度傳感器TSL253。與同類產品相比,它們在上述方面有一定的優點,很適合便攜式儀表使用。
TMP35電壓輸出量與被測溫度T成線性關系,其式如(1);HM1500輸出量為電壓,與被測濕度%RH成正比,且與溫度T有關系,其式如(2);MR511內有溫度補償,其輸出電壓與被測氣體濃度C成近似線性關系(線性度≤±5%),其式如(3),式中Nc為器件靈敏度,環境濕度為Vc的值有影響;TSL253電壓輸出量與被測光照度Ee成正比,且與溫度T有關,其式如(4),式中Ne為傳感器的靈敏等。
VT=[10×T](mV) (1)
VRH=[600×(%RH+38.5)/(39.1-0.056T)](mV) (2)
Vc=[Nc×C](mV) (3)
Vec=[(Nc×Ee) ×(1.05-0.002T)](mV) (4)
上述各式說明,高精度的監測必須考慮傳感器的非線性、溫濕度影響、測量誤差及環境誤差等問題,尤其要著重解決測量中的非線性及溫濕度補償。在布置印刷電路板時盡量減少引線電阻和分布電容以降低測量誤差。在電路設計上要加線性化處理電路及溫濕度補償電路,或借助于單片機系統,由軟件查表等方法進行處理、修正(用軟件實現傳感器的校正補償功能可降低儀器功耗)。如有可能可用標準測量儀進行校準,以提高測量精度。
圖1 監測儀硬件電路原理圖
2 硬件設計
監測儀主要由MSP430單片機、測量轉換、鍵盤顯示、串口通信、電池電源等部分組成。電路中器件很少,功耗較低且功能強大。具體硬件電路原理圖如圖1所示。
2.1 MSP430單片機
單片機系統是監測儀的核心,它完成儀器的功能設定、測量對象選擇、信號處理存儲、狀態信息顯示、數據通訊等功能。相對于MCS51、MCS96及PIC[1]等系列,TI公司帶閃速存儲器的MSP430F系列超低功耗單片機有著很大的優勢。MSP430F單片機有多種型號,其功能組合各異,能滿足不同應用場合的要求。本設計采用MSP430F437,它的要特點[2]如下:
·工作電壓低(1.8~3.6V),電流?。?80μA/1MHz/活動模式),5種低功耗模式;
·16位RISC架構,27條精簡指令,125ns指令周期;
·豐富的中斷源并可任意嵌套,用中斷請求將系統從備用狀態喚醒僅需6μs;
·片內看門狗及上電復位電路,可選時鐘源(XTAL1、XTAL2或內部DCO);
·具有中斷功能的內部比較器A;
·雙向并行I/O口P1和P2(有中斷功能)及P3~P6口,多數口有復用功能;
·兩個16位定時器A、B,均各帶3個比較/捕獲模塊,每個模塊可獨立編程,用于產生定時脈沖,捕獲外部事件;
·片內集成4×32段LCD液晶驅動器,其外部引線復用P3~P5口;
·通用通信模塊UARST0,軟件可選同步/異步方式;
·具有自動循環采集功能的8通道12位ADC12,自帶采樣保持器和可選電壓基準;
·JTAG接口或片內BOOT ROM使程序下載調試極其簡便,程序代碼由安全熔絲保護。
圖2 地址位多通信協議圖
MSP430F437不需加裝存儲器,片內自帶1K字節RAM及在線可擦除編程32K字節主Flash+256字節信息Flash。片內Flash模塊包含3個控制寄存器、時序發生器、擦除/編程電壓發生器及Flash存儲器本身。其中主Flash分為每段512字節的段0~63,信息Flash分為每段128字節的段A、B。MSP430F437存儲器可放大型數表,有高效的查表處理方法。本監測儀安排段0~23為程序代碼區、段24為LCD顯示字型表、段25~31存放校正和補償表格、段32~63為用戶采集數據保存區、段A+B存放各類參數。
在電路中,其他主要模塊的功能分配為:16位定時器A的比較/捕獲模塊0實現實現時分秒計時,比較/捕獲模塊1控制A/D采樣周期;16位定時器B可實現PWM輸出,預留作控制口;ADC12用于環境參數測量;比較器A作電池欠壓監測;復用P3~P5口驅動LCD液晶顯示器;通用通信模塊UARST0實現RS485串行通信;預留JTAG接口以方便用戶對儀器更新升級。
2.2 測量轉換
MSP430F437的ADC12轉換模塊具有高速通用的特點,12位的轉換精度保證一般采樣的分辨率要求。它的8個外部模擬采樣通道可任意配置,轉換參考電平VR+和VR-來自內部或外部,也可以是兩者的組合;內嵌的采樣/保持電路給用戶提供了對采樣時序的各種選擇,采樣時序可通過軟件位、3種內部或外部信號來直接控制。ADC12有4種工作模式??梢栽趩瓮ǖ郎蠈崿F單次轉換或多次轉換,序列通道上實現單次轉換或重單次轉換或多次轉換,在序列通道上實現單次轉換或重復轉換。對于序列通道轉換,采樣順序完全由用戶定義。
ADC12轉換結果保存在16個轉換存儲寄存器ADC12MEM0~ADC12MEM15中。其值如(5)式:
NADC=4096×(Vin-VR-)/(VR+-VR-) (5)
每個存儲寄存器有各自相應的控制寄存器ADC12CTL0~ADC12CTL15,可用軟件獨立配置采樣通道號及轉換所需參考電平。
本監測儀中,各環境參數傳感器的輸出經U2前置放大后,送入A0~A3模擬輸入端。4路信號的轉換參考電平均取VR+=2.5V和VR-=0V。ADC12工作模式設為序列通道單次轉換,每次轉換由定時器A比較/捕獲模塊1的定時輸出OUT1啟動。序列單次轉換完成后,將置位ADC12中斷請求。
序列通道為ADC12MEM0~ADC12MEM12,對應的控制寄存器ADC12CTL0~ADC12CTL12中通道重復配置A0~A3。這樣等時間間隔內每個環境參數可連續采樣3次,然后在ADC12中斷服務程序內使用中值濾波得到轉換結果。
需要指出的是,ADC12的轉換內核與參考電平發生器可分別進入省電模式,為低功耗設計提供便利,而且進一步降低功耗、延長傳感元件的使用壽命。測量電路的電源設置為單獨可控,由U3的OUT2輸出供給,并通過單片機的P2.0來切合。
2.3 鍵盤顯示
MSP430F437有6個帶復用功能的P1~P6雙和同I/O口。其中P1、P2設置成輸入時,引腳上任何狀態變化都會觸發中斷。本設計將P3~P5復用于LCD驅動,P1.0~P1.4作3×2快速鍵盤。
為讀取按鍵值,首先設置端口功能,P1.0~P1.2為輸出口,依次輸出低電平;P1.3、P1.4為輸入口,開放中斷,選定下降沿觸發。當有鍵按下時,在P1口中斷服務程序內,完成去抖動延時、鍵值讀取等功能,得到的鍵值交后續程序處理。
片內LCD驅動器可工作于靜態及2~4多選四種模式,最多可接4~32=128段液晶。圖1中R33、R23、R13、R03引腳設定模擬偏置電壓,提供驅動能力,典型接線為電阻分壓VR33=VCC、VR23=2/3Vcc、VR13=1/3cc、VR03=0V;S0~S31為段輸出(每段3μA);COM0~COM3為公共輸出,接LCD背極。對LCD的軟件控制極其簡單,它有一個控制寄存器LCDCTL,定義工作模式及電流消耗。20個顯示存儲器LCDM(使用16個)存放128段要顯示的狀態信息,其內容可采用高效的尋址方式查顯示字型表獲得。
單片機根據控制鍵的命令信息,可分別選擇儀器“測量/通信”使用方式、“單次/循環”采集類型,并可按鍵校時、設置參數、啟動采集、數據存儲確定等。LCD顯示屏可由定制、時分、超量程和電池欠電告警組成1×32段,剩余3×32為多用顯示區,可依次顯示操作提示、工作狀態、環境參數測量結果,從而大大方便了用戶。
2.4 串口通信
為了對采集到的數據進行深入處理(如統計分析、打印存檔、繪制曲線圖表等),需將數據從檢測儀送至計算機。數據傳輸使用MSP430F437的標準USART通信模塊(復位SYNC=0選擇異步功能),并外接低功耗器件MAX485E,構成一個半雙工RS485串行通信口。
為提高通信的可靠性,便于儀器與其它智能設備組網實現控制功能,本監測儀使用異步通信的地址位多機通信格式。異步幀由1起始位、8數據位、1地址位、1停止位組成,波特率編程為9600bps。USART通信模塊的地址位多要通信協議如圖2所示。
通信時,先置RS485處于接收狀態,并置接收喚醒中斷允許位URXWIE=1(此時只有地址字符能觸發接收中斷)。當接收一個地址位置的字符時,通信模塊的接收器被激活,字符送入URXBUF,同時接收中斷標志URXIFG置位。在串口接收中斷服務程序內可以檢驗收到的地址,如果匹配,置URXWIE=0,單片機將讀取數據塊的后續數據;如果地址不匹配,則等待下一地址字符的到來。
RS485接收到主機命令后,轉入發送狀態,先置控制字符址位的TXWake=1。當地址字符的8位數據從UTXBUF傳送至發送器時,TXWake位裝入待發送字符的地址位,每一字符發送完,TXWake位被自動清除,引起發送中斷UTXIFG。在串口發送中斷服務程序內,用戶可依次發送完整數據塊,再重置RS485接收狀態。
2.5 電源控制
本儀器采用1節3.6V/4Ah鋰離子電池。為保證多路供電及模擬信號測量的精度,設計了以ADP3302AR1雙低壓差線性電源穩壓芯片(U3)為主的電源控制電路,完成以下功能;
·電源通斷。按鍵盤“ON”鍵,U3的SD1腳為高電平,OUT1腳輸出儀器所需主電源Vcc,單片機P1.5腳送來高電平互鎖信號,使“ON”鍵松開后,OUT1維持輸出;按鍵盤“OFF”鍵,單片機P1.5腳送出低電平,關斷OUT1腳輸出;U3的OUT2腳輸出模擬測量電路所需的3V,測量電源可單獨切合,由單片機P2.0腳的電平控制。
·電池電壓監測。U3的加載電壓應不低于3V,否則不能正常工作。單片機的片內比較器A有多個基準,選擇其中之一0.5×Vcc=1.5V,電池正極通過分壓電阻直連比較器輸入腳CA0。當電池電壓低于設定值時,觸發比較器A中斷,在中斷服務程序內,驅動LCD告警顯示,提示用戶對電流進行充電(使用外部充電適配器)。
·自動關機。每次測試完畢,如果不再操作,則通過定時器比較/捕獲0中斷計時;5分鐘后,單片機P1.5腳送出低電平,OUT1腳輸出0V,從而切斷儀器電源實現自動關機。
3 軟件設計
檢測儀的軟件用MSP430匯編語言編制。為了方便程序調度和提高可靠性,軟件采用模塊化結構,主要由初始化程序、主程序、子程序、參數表格等組成。
3.1軟件功能與特點
單片機系統上電后,進入初始化程序,完成片內各模塊的設置、清LCD存儲器、端口設定等初始化工作,然后轉入主程序,開啟中斷,循環設置低功耗模式并執行空操作。
本軟件設計的一大特點是采用中斷事件驅動技術,其目的在于降低功耗。在主程序設置LPM0低功耗模式(55μA)后,CPU即補禁止,外圍模塊維持活動,并等待各類中斷事件。如有中斷,CPU被喚醒并執行各種中斷服務子程序完成事件處理。
每次執行完中斷服務子程序返回,在主程序中又重置LPM0低功耗模式,并等待下一個中斷事件的到來,如此往復,可使系統多數時間處于低功耗運行。
本設計另一特點是利用MSP430F437的高效查表功能,編制了氣體濃度測量的非線性校正和濕度補償表格,極大地提高了程序運行速度和采集精度。表格的生成是在有限個數據基礎上,通過拉格朗日插值進行曲線擬合[3]獲得。具體步驟如下:
(1)在濕度5%RH情況下,測量典型氣敏傳感器在不同氣體濃度點C時,ADC12轉換存儲寄存器中對應的數字量結果Nc。測試中,在10~300ppm范圍內等距離取10個濃度點;
(2)使用曲線擬合的方法,并結合關系式(3),擬合出5%RH時數字量Nc與氣體濃度C間的連續曲線,將曲線按1ppm的間隔離散化后,存入段25中;
(3)分別在20%RH、35%RH、50%RH、65%RH、80%RH、95%RH的濕度下,重復上述測量與數據處理過程,形成6條不同濕度下的Nc-C的非線性曲線,存在段26~31中。
需要注意:正常時采樣得到數字量Nc和當前濕度值后,先查該濕度所在范圍對應的上下兩條曲線,即根據Nc并使用線性插值得到上下兩個氣體濃度值,再根據當前濕度并使用線性插值得到濕度補償后的最終氣體濃度值。
3.2 軟件流程舉例
本檢測儀的程序眾多。限于篇幅,僅介紹有特色的Flash數據保存于程序以及較為關鍵的ADC12子程序。
MSP430F437可通過JTAG接口或片內BOOT ROM下載調試修改程序,甚至允許用戶程序在運行中將采集處理的數據快速安全地保存到Flash存儲器中,而無須任何外接器件。數據保存要用快速的段寫入方法和寫字節序列模式,寫入電流小(3mA),寫入速度快(≤25ms/512字節,遠超過串行EEPROM的頁寫速度5ms/16字節),10萬寫入次數,100年數據保存。每次采集處理完畢,即將16字節/批數據“批號-時間-環境參數”存入段32~63。圖3為16字節數據存入的程序框圖,其中Lock、Busy、SEG WRT、WRT、Wait是Flash控制寄存器內涉及編程的各控制位或狀態位。
ADC12子程序用于環境參數測量。當按下測量鍵或采樣時間到,定時器A的OUT1啟動序列通道單次轉換,ADC12自行按A0~A3的采樣順序循環采集各環境參數,并將轉換結果保存到存儲寄存器ADC12MEM0~ADC12MEM11中。序列轉換完成后,將置位ADC12中斷請求標志ADCIFG。
單片機響應中斷進入ADC12子程序后,先關閉測量電源以降低功耗,再讀取存儲寄存器ADC12MEM0~ADC12MEM11中的轉換結果,并使用中值濾波得到各環境參數對應的測量數字值。結合關系式(1)(2)(4)依次計算溫度、濕度、光照度的最終結果;對于氣體濃度,則使用上述查表格的過程得到結果。各環境參數的測量結果緩存至RAM區,查顯示字型表得顯示代碼并存入LCD存儲器,最后判定各環境參數是否超限并刷新LCD存儲器中告警部分。
相關推薦
便攜式多參數環境監測儀電路設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A6/7C/wKgZomUMPgSAKSYAAAAm6SupuQM425.png)
14個環境監測系統設計案例
2019第十一屆中國北京國際環境監測儀器展覽會
一種多功能實時生理參數監測儀的設計
一種新穎便攜式機箱的結構設計
便攜式原油水分化驗儀器 便攜式煤焦油水分檢測儀
便攜式水質多參數測定儀 孚派特
便攜式邏輯分析儀電路設計
多參數水質分析儀有什么用途?
環境監測設備
AMEYA360設計方案丨便攜式超聲儀解決方案
MY-I.MX12UL遠程實時環境監測儀應用
MY-I.MX6UL遠程實時環境監測儀應用
TQ335XB遠程實時環境監測儀應用
TQ335XB遠程實時環境監測儀應用
ZIT6000便攜式逆變器檢測儀入門手冊
【"盈鵬飛嵌入式i.mx6ull-IoT開發板"試用體驗】便攜式多參數健康監測儀
【分享】基于STM32的便攜式二氧化碳監測儀設計
人體生理參數監測儀設計方案
人體生理參數監測儀設計方案分析
低功耗技術能推動便攜式市場發展嗎
使用STM32CubeMX快速開發基于STM32的室內智能環境監測儀
關于用LABVIEW做環境監測儀打包運行出錯的問題
基于MSP430FR59的便攜式無線醫療健康監測電路該如何去設計?
基于嵌入式CPU卡的醫用便攜式監護儀怎么實現?
基于嵌入式系統的便攜式多參數健康監護儀設計
如何利用FCU1104去設計一種空氣環境監測管理系統
如何去實現一種基于WiFi和STM32的家居環境監測系統設計
如何設計C8051F330便攜式生理參數監測儀?
怎么利用嵌入式CPU卡設計醫用便攜式監護儀?
怎樣去開發一種基于RT-Thread的環境監測裝置
怎樣去設計一個基于嵌入式系統的電能質量參數監測儀
無線環境監測系統怎么實現?
求一種便攜式醫療系統無線監控電路的解決方案
深度分析固定式便攜式氧氣檢測儀的優缺點
電能質量監測儀有哪些較高的實際應用價值呢?
轉:基于雙核心嵌入式平臺的便攜式多線檢測儀
隧道用便攜式硫化氫氣體檢測儀規格型號介紹
手持農業氣象環境監測儀HM-QX6
光伏電站環境監測儀HM-GF08
泵吸式揚塵在線監測儀
升級款泵吸式揚塵監測儀
小型環境監測站
便攜式智能巖體聲發射監測儀的設計
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于Cortex-M3的便攜式農業環境監測儀
![](https://skin.elecfans.com/images/2021-soft/load.png)
環境監測儀是一款可監測農業環境氣象要素的農業儀器
![](https://skin.elecfans.com/images/2021-soft/eye.png)
通過農業環境監測儀可提升作物的生長環境
![](https://skin.elecfans.com/images/2021-soft/eye.png)
田間環境監測系統的功能特點及技術參數
![](https://skin.elecfans.com/images/2021-soft/eye.png)
光伏電站環境監測儀的功能特點是怎樣的
![](https://skin.elecfans.com/images/2021-soft/eye.png)
溫室環境監測儀的功能特點
![](https://skin.elecfans.com/images/2021-soft/eye.png)
農業氣象環境監測儀的性能
![](https://skin.elecfans.com/images/2021-soft/eye.png)
光伏環境監測儀的功能特點
![](https://skin.elecfans.com/images/2021-soft/eye.png)
網格化微型監測儀在大氣環境監測中的應用
![](https://skin.elecfans.com/images/2021-soft/eye.png)
基于EFM32系列MCU的便攜式心臟監測儀設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
評論