張小林++鐘洪++林青++劉佳揚++王宏
摘 要為了實時監(jiān)控硬件平臺產(chǎn)品的運行狀態(tài),尤其是對設(shè)備開機過程故障、運行中故障、突然死機/宕機等情況發(fā)生時,我們有必要對硬件平臺的各個因素進行監(jiān)控記錄。還有為了便于及時了解設(shè)備的運行狀態(tài)和有利于后續(xù)產(chǎn)品故障維修分析,我們有必要進行一種嵌入式智能化監(jiān)控的研究與設(shè)計。
【關(guān)鍵詞】嵌入式 智能化 監(jiān)控 系統(tǒng)
1 前言
為了更好的對系統(tǒng)進行智能化監(jiān)控,我們分析了以下幾個方面需要進行監(jiān)控或欲達到的要求:
系統(tǒng)上電/斷電過程及時間偵測、溫度檢測、濕度檢測;獨立的系統(tǒng)模塊、獨立供電(在無外界供電情況下,最好保證6個月供電);與其他硬件系統(tǒng)通過串口通訊(可設(shè)置比較少用的波特率,要求穩(wěn)定);可搭配液晶模塊,可實時監(jiān)測設(shè)備運行狀態(tài):如CPU/內(nèi)存使用率、CPU溫度、機箱內(nèi)部溫度、網(wǎng)絡(luò)輸入輸出流量;產(chǎn)品硬件開機過程(記錄上電時間,每項自檢完成時間、系統(tǒng)引導(dǎo)正確完成時間等);產(chǎn)品關(guān)機動作(最好能檢測到是由哪觸發(fā)的關(guān)機信號、以及關(guān)機時間);運行狀態(tài):針對CPU/內(nèi)存使用率,CPU溫度,機箱內(nèi)部溫度、濕度,網(wǎng)絡(luò)流量檢測,跌落數(shù)據(jù)檢測(有變化時記錄數(shù)據(jù),保留7天);關(guān)機狀態(tài):針對溫度、濕度(有變化時記錄數(shù)據(jù)。最好能保留6個月);數(shù)據(jù)(信息)獲取方式,一是模塊自行獲取信息,再是可以通過主系統(tǒng)獲取,具體選擇哪種方式或者混合使用,主要從簡單、使用、高可靠性方面設(shè)計考慮。
2 技術(shù)路線
根據(jù)我們對監(jiān)控系統(tǒng)的監(jiān)控需求,我們采用MCU為主模塊控制器,接入溫濕度傳感器(機箱內(nèi)部溫濕度),RTC,F(xiàn)LASH存儲設(shè)備,液晶模塊,通訊串口,電壓監(jiān)控(開/關(guān)機)等外圍設(shè)備。MCU通過串口和主板進行通訊。主板通過檢測SUPERIO寄存器及系統(tǒng)API向MCU提供CPU核電壓、CPU溫度、主板溫度,系統(tǒng)風扇轉(zhuǎn)速、CPU/內(nèi)存使用率、網(wǎng)絡(luò)輸入輸出流量、系統(tǒng)引導(dǎo)正常事件,系統(tǒng)正常關(guān)機事件等信息。
采用外部鋰電池和系統(tǒng)供電可切換供電模式,主板上電后使用系統(tǒng)電力,關(guān)機后使用鋰電池供電。同時提供鋰電池充電及電量檢測模塊。
3 數(shù)據(jù)流向
如圖1所示,MCU中溫濕度傳感器,RTC及電壓監(jiān)控均使用I2C總線進行數(shù)據(jù)傳輸,可以向MCU提供實時時鐘數(shù)據(jù),電壓數(shù)據(jù),重力加速度數(shù)據(jù)及機箱內(nèi)部溫濕度數(shù)據(jù)。MCU定期讀取信息并處理。
主板中的SupeIO輸入輸出接口可以向監(jiān)控中間件提供CPU核電壓,CPU溫度,主板溫度,系統(tǒng)風扇轉(zhuǎn)速等數(shù)據(jù)。OS操作系統(tǒng)可以向中間件提供CPU使用率,內(nèi)存使用率以及網(wǎng)絡(luò)輸入輸出流量等信息。同時中間件在開機之后會向MCU發(fā)送系統(tǒng)開機完成信息,并在正常關(guān)機時檢測到關(guān)機信號向MCU發(fā)送正常關(guān)機事件信息,由監(jiān)控中間件定期通過串口將數(shù)據(jù)輸送到MCU進行處理。
MCU將收到的數(shù)據(jù)進行處理后存儲到FLASH中,并通過液晶模塊顯示出來或者通過接收用戶接口的操作指令進行輸出。同時用戶也可以通過LAN管理口和客戶應(yīng)用程序進行交互,通過客戶應(yīng)用程序向監(jiān)控中間件提供查詢指令,之后監(jiān)控中間件向MCU提交用戶命令,MCU收到命令后通過串口向中間件輸出信息。中間件再將信息轉(zhuǎn)發(fā)給客戶應(yīng)用程序并通過LAN遠程提供給用戶。
監(jiān)控模塊采用雙切換電源進行供電,當系統(tǒng)電源存在時,使用系統(tǒng)電源,并根據(jù)鋰電池電量檢測來判斷是否給鋰電池充電,當系統(tǒng)電源失效時,使用鋰電池進行供電。
4 顯示界面
如圖2所示,研究設(shè)置顯示開機過程,比如BIOS自檢完成,程序加載完成等信息,此過程的顯示內(nèi)容設(shè)計來自中間件或是客戶設(shè)備。監(jiān)測項共顯示8項內(nèi)容,大致分布為左邊四項,右邊四項,年月日時分秒也在此菜單中顯示。也可以根據(jù)客戶需要顯示更多的內(nèi)容。
黑匣子數(shù)據(jù)存取不需要中間件的參與,中間件負責通過串口把采集的數(shù)據(jù)傳給固件,數(shù)據(jù)的存儲由MCU控制spi flash完成,數(shù)據(jù)的讀取由用戶直接通過預(yù)留的串口進行。
存數(shù)據(jù)內(nèi)容和規(guī)范。系統(tǒng)運行時存儲數(shù)據(jù)的時間間隔暫定為每2s一次。系統(tǒng)關(guān)機時每10min存儲一次存儲數(shù)據(jù)的格式:Time,voltage,temp(機箱溫度/CPU溫度),Humidity,使用率(依次為CPU,內(nèi)存,磁盤,網(wǎng)絡(luò))。數(shù)據(jù)以ASCII形式存儲,存儲的的字節(jié)大小固定。
取數(shù)據(jù)內(nèi)容和規(guī)范。通過預(yù)留的串口,用戶輸入相應(yīng)的讀取指令和密碼,開始讀取數(shù)據(jù)。此處的串口需要支持讀取指令和密碼修改指令。串口輸出的數(shù)據(jù)格式和存儲的格式一樣(Time,voltage,temp(機箱溫度/CPU溫度),Humidity,使用率(依次為CPU,內(nèi)存,磁盤,網(wǎng)絡(luò))),全部以ASCII形式輸出。
將系統(tǒng)中獲取的數(shù)據(jù)下發(fā)給MCU。從Linux系統(tǒng)下獲取CPU使用率,內(nèi)存使用率,網(wǎng)絡(luò)使用率,CPU溫度,CPU電壓,風扇轉(zhuǎn)速,按照ASCII形式傳送給MCU。
4 結(jié)語
本系統(tǒng)的設(shè)計是在數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)發(fā)展的前提下,運用當前的嵌入式技術(shù)和日益發(fā)展的智能化技術(shù)的嵌入式智能化監(jiān)控系統(tǒng),具有一定的創(chuàng)新性。該系統(tǒng)由于采用了高性能的帶溫濕度傳感器的MCU和嵌入式Linux操作系統(tǒng),具有一定的可擴展性,可以通過適當?shù)墓δ軘U展來滿足用戶更多更高的要求。此外,本系統(tǒng)具有功能強、穩(wěn)定性好的特點,而且成本低,對嵌入式智能監(jiān)控系統(tǒng)的開發(fā)有一定的借鑒意義。
作者單位
深圳市億威爾信息技術(shù)股份有限公司 廣東省深圳市 518057