



摘 要: 為方便對(duì)復(fù)雜設(shè)備故障進(jìn)行快速、準(zhǔn)確的檢測(cè),以機(jī)器學(xué)習(xí)語(yǔ)言為基礎(chǔ),進(jìn)行了嵌入式數(shù)據(jù)采集系統(tǒng)能耗優(yōu)化方法研究。主要從操作系統(tǒng)搭建和移植設(shè)計(jì)、數(shù)據(jù)采集模塊設(shè)計(jì)、應(yīng)用層軟件結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)整體性能調(diào)試與優(yōu)化四個(gè)方面提出了符合實(shí)際的系統(tǒng)構(gòu)架設(shè)計(jì)方案,并分析了嵌入式操作系統(tǒng)移植和搭建的過(guò)程,提出了數(shù)據(jù)采集模塊的驅(qū)動(dòng)程序設(shè)計(jì)方案,同時(shí)優(yōu)化分析了軟件和硬件資源,并在實(shí)際的項(xiàng)目檢測(cè)中得到了良好的試驗(yàn)效果。
關(guān)鍵詞: 機(jī)器學(xué)習(xí); 嵌入式操作系統(tǒng); 數(shù)據(jù)采集系統(tǒng); 優(yōu)化設(shè)計(jì)
中圖分類號(hào): TN919?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2016)15?0149?03
Abstract: To rapidly and accurately detect the complex equipment failure in convenient, the energy consumption optimization method of the embedded data acquisition system based on machine learning is studied. The practical system architecture design scheme is proposed in the aspects of operating system construction and transplant design, data acquisition module design, software structure design of application layer, and system overall performance tuning and optimization. The processes of embedded operating system transplant and construction are analyzed, and the driver program design scheme of data acquisition module is put forward. The software and hardware resources are optimized. The better test results were obtained in the practical project test.
Keywords: machine learning; embedded operating system; data acquisition system; optimization design
隨著科學(xué)技術(shù)的飛速發(fā)展,各種因設(shè)備故障導(dǎo)致的安全事故層出不窮,究其主要原因還是由于未能及時(shí)排除機(jī)械設(shè)備內(nèi)部故障造成的。而機(jī)器學(xué)習(xí)算法的出現(xiàn),解決了傳統(tǒng)檢測(cè)數(shù)據(jù)量大、分析復(fù)雜的缺點(diǎn)。因此,本文開展基于機(jī)器學(xué)習(xí)的嵌入式數(shù)據(jù)采集系統(tǒng)能耗優(yōu)化方法研究,以便廣大技術(shù)人員學(xué)習(xí)使用。
1 機(jī)器學(xué)習(xí)與嵌入式數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)總述
1.1 機(jī)器學(xué)習(xí)
機(jī)器學(xué)習(xí)算法作為一種新型的人工智能技術(shù),可以對(duì)海量數(shù)據(jù)進(jìn)行分析、存儲(chǔ),并可對(duì)復(fù)雜問(wèn)題做出智能決策以供技術(shù)人員參考[1?2]。機(jī)器學(xué)習(xí)算法可以模擬人類思考、學(xué)習(xí)及創(chuàng)造的過(guò)程,因此可以從數(shù)據(jù)庫(kù)中計(jì)算出未知的、潛在的概率模型。
1.2 系統(tǒng)總體結(jié)構(gòu)概述
ARM+數(shù)據(jù)采集器系統(tǒng)作為當(dāng)今較為流行的嵌入式數(shù)據(jù)采集系統(tǒng),既克服了開發(fā)復(fù)雜硬件結(jié)構(gòu)帶來(lái)的龐大工作,又彌補(bǔ)了單片機(jī)結(jié)構(gòu)產(chǎn)生的諸多缺陷,因此是較為合理的一種架構(gòu)方案[3?4]。
1.3 硬件設(shè)計(jì)與選型
嵌入式處理器作為嵌入式數(shù)據(jù)采集系統(tǒng)中的控制核心,是各系統(tǒng)運(yùn)行的中樞大腦。本次嵌入式數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)采用的是高速數(shù)據(jù)采集器。
1.4 軟件系統(tǒng)設(shè)計(jì)
嵌入式操作系統(tǒng)EOS作為較為流行的操作系統(tǒng),具有實(shí)時(shí)性強(qiáng)、可裝卸、可開放、網(wǎng)絡(luò)功能強(qiáng)大、代碼固定、交互性強(qiáng)等多項(xiàng)優(yōu)點(diǎn)。結(jié)合實(shí)際需求,最終選擇了Windows CE操作系統(tǒng)平臺(tái)作為設(shè)計(jì)基礎(chǔ)。
2 操作系統(tǒng)搭建和移植
2.1 板級(jí)支持包的研究與移植
(1) 板級(jí)支持包BSP的研究與應(yīng)用
Windows CE的板級(jí)支持包由四個(gè)部分組成,其中最為重要的兩個(gè)部分是設(shè)備驅(qū)動(dòng)和OEM適配層,見圖1。
(2) 串口驅(qū)動(dòng)程序擴(kuò)展
在本次設(shè)計(jì)中,采用了分層架構(gòu)的方法實(shí)現(xiàn)串口驅(qū)動(dòng),驅(qū)動(dòng)模型見圖2。
(3) 系統(tǒng)啟動(dòng)性能優(yōu)化
考慮到開發(fā)成本不足、硬件配置較低等難題,在設(shè)計(jì)時(shí)采用了價(jià)格低廉的NAND FLASH,并重新修改優(yōu)化了NBOOT的分支跳轉(zhuǎn)代碼。優(yōu)化后的啟動(dòng)流程見圖3。
2.2 新增硬件驅(qū)動(dòng)與系統(tǒng)特性
(1) 電源管理與實(shí)時(shí)時(shí)鐘驅(qū)動(dòng)
基于機(jī)器學(xué)習(xí)的嵌入式數(shù)據(jù)采集系統(tǒng)對(duì)能耗有較高的節(jié)能要求,為此在設(shè)計(jì)時(shí)需對(duì)兩部分特性進(jìn)行優(yōu)化:一是系統(tǒng)在關(guān)機(jī)狀態(tài)時(shí)需做到徹底斷電;二是系統(tǒng)在非工作狀態(tài)時(shí)需保持耗能較低的狀態(tài)[5],優(yōu)化流程見圖4。
(2) 面板功能鍵驅(qū)動(dòng)
新設(shè)計(jì)的嵌入式數(shù)據(jù)采集系統(tǒng)為方便用戶使用,特別增加了方向?qū)Ш芥I、翻頁(yè)鍵、幫助鍵等快捷鍵來(lái)提高系統(tǒng)的可用性。
(3) 節(jié)能方案設(shè)計(jì)及Hive技術(shù)應(yīng)用
新型的Hive注冊(cè)表技術(shù)可以在對(duì)系統(tǒng)冷啟動(dòng)的同時(shí),還可以保存用戶的相關(guān)配置信息。其具體的工作原理如圖5所示。
2.3 操作系統(tǒng)定制和搭建
本次設(shè)計(jì)采用Platform Bulider構(gòu)建嵌入式數(shù)據(jù)采集系統(tǒng)平臺(tái)。其中Windows CE在Platform Bulider的定制流程見圖6。
3 數(shù)據(jù)采集模塊設(shè)計(jì)
3.1 硬件工作原理介紹
基于機(jī)器學(xué)習(xí)的嵌入式數(shù)據(jù)采集系統(tǒng)其核心部件是數(shù)據(jù)采集模塊。在設(shè)計(jì)該系統(tǒng)時(shí),采用數(shù)模轉(zhuǎn)換芯片將數(shù)據(jù)直接讀入到FIFO。當(dāng)驅(qū)動(dòng)接收到FIFO發(fā)出的中斷信號(hào)后,系統(tǒng)將自動(dòng)清除數(shù)據(jù)[6]。其中該系統(tǒng)的硬件工作流程見圖7。
3.2 振動(dòng)與加速度測(cè)量驅(qū)動(dòng)設(shè)計(jì)
數(shù)據(jù)采集系統(tǒng)的核心是加速度測(cè)量數(shù)據(jù)采集驅(qū)動(dòng)和ADD驅(qū)動(dòng)。
為保證數(shù)據(jù)采集過(guò)程中的穩(wěn)定性和準(zhǔn)確性,基于機(jī)器學(xué)習(xí)的嵌入式數(shù)據(jù)采集系統(tǒng)需及時(shí)準(zhǔn)確地對(duì)硬件提出的所有中斷請(qǐng)求進(jìn)行響應(yīng),并發(fā)出相應(yīng)控制信號(hào)[7]。為此,專門設(shè)置了基于電平觸發(fā)的中斷響應(yīng)機(jī)制,見圖8。
3.3 I2C總線驅(qū)動(dòng)設(shè)計(jì)
I2C總線驅(qū)動(dòng)設(shè)計(jì)的關(guān)鍵在于要保持硬件應(yīng)答和軟件設(shè)置的握手機(jī)制一致。為此驅(qū)動(dòng)設(shè)計(jì)時(shí)通過(guò)采取超時(shí)處理、加入互斥鎖、信號(hào)量隊(duì)列等機(jī)構(gòu)處理信息采集過(guò)程中出現(xiàn)的各種異常現(xiàn)象。設(shè)計(jì)流程如圖9所示。
4 應(yīng)用層軟件結(jié)構(gòu)設(shè)計(jì)
4.1 數(shù)據(jù)顯示與分析模塊
當(dāng)系統(tǒng)通過(guò)應(yīng)用程序提取出相應(yīng)數(shù)據(jù)時(shí),會(huì)通過(guò)算法庫(kù)對(duì)提取數(shù)據(jù)進(jìn)行包絡(luò)分析、頻譜分析、波形分析等。設(shè)計(jì)人員只需要了解算法庫(kù)的接口函數(shù)即可,其內(nèi)部程序可通過(guò)專業(yè)技術(shù)人員編寫。
4.2 數(shù)據(jù)存儲(chǔ)與通信模塊
在本次設(shè)計(jì)的嵌入式數(shù)據(jù)采集系統(tǒng)中,采用SQLite數(shù)據(jù)庫(kù)作為本系統(tǒng)的存儲(chǔ)模塊,它的資源占用空間很小,較為適合嵌入式系統(tǒng)。
對(duì)于通信模塊,本次設(shè)計(jì)采用Windows CE中自帶的微軟ActiveSync組件進(jìn)行通信。
5 整體性能調(diào)試與優(yōu)化
為了優(yōu)化硬件資源,選擇采用中斷方式優(yōu)化中斷服務(wù)線程。測(cè)試新系統(tǒng)發(fā)現(xiàn),數(shù)據(jù)采集效率得到了明顯提高。
軟件資源控制和調(diào)優(yōu)主要是指解決程序沖突和性能調(diào)優(yōu)。為保證驅(qū)動(dòng)程序的正常運(yùn)行,建議多采用與或非運(yùn)算,而盡量避免直接對(duì)寄存器進(jìn)行賦值。此外,在軟件操作時(shí)需使用正確的編程語(yǔ)言,特別要注意寄存器讀寫緩存、物理地址空間映射、字節(jié)對(duì)齊等細(xì)小問(wèn)題,否則會(huì)出現(xiàn)程序錯(cuò)誤、數(shù)據(jù)采集中斷等結(jié)果。
6 結(jié) 論
本文通過(guò)分析嵌入式數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu),闡明了系統(tǒng)硬件和軟件的設(shè)計(jì)與選型。通過(guò)系統(tǒng)搭建和移植設(shè)計(jì)、數(shù)據(jù)采集模塊設(shè)計(jì)、應(yīng)用層軟件結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)整體性能調(diào)試與優(yōu)化四個(gè)方面,深入開展了基于機(jī)器學(xué)習(xí)的嵌入式數(shù)據(jù)采集系統(tǒng)能耗優(yōu)化方法研究工作。同時(shí)提出了符合實(shí)際的系統(tǒng)構(gòu)架設(shè)計(jì)方案,以及數(shù)據(jù)采集模塊的驅(qū)動(dòng)程序設(shè)計(jì)方案,并對(duì)整個(gè)系統(tǒng)的軟件和硬件資源進(jìn)行了控制與調(diào)優(yōu)分析。
參考文獻(xiàn)
[1] 彭剛,徐慶江,張崇金,等.基于STM32單片機(jī)的RS 485總線分布式數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].伺服控制,2011(2):64?67.
[2] 賀金平.嵌入式linux下DM9000網(wǎng)卡驅(qū)動(dòng)的移植與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2009(17):4561?4563.
[3] 李宏宇,樊留群,趙榮泳,等.基于ARM的嵌入式系統(tǒng)在數(shù)控設(shè)備故障診斷中的應(yīng)用[J].制造業(yè)自動(dòng)化,2004(8):33?36.
[4] 荀泱,周國(guó)榮,袁禹.基于ARM嵌入式系統(tǒng)的電機(jī)故障診斷系統(tǒng)的設(shè)計(jì)[J].可編程控制器與工廠自動(dòng)化,2007(6):101?103.
[5] 張伽偉,周安棟,羅勇.ARM11嵌入式系統(tǒng)Linux下LCD的驅(qū)動(dòng)設(shè)計(jì)[J].液晶與顯示,2011,26(5):660?664.
[6] 劉淼.嵌入式系統(tǒng)接口設(shè)計(jì)與Linux驅(qū)動(dòng)程序開發(fā)[M].北京:北京航空航天大學(xué)出版社,2006.
[7] 連雄偉.數(shù)據(jù)中心基礎(chǔ)設(shè)施能效管理系統(tǒng)關(guān)鍵模塊設(shè)計(jì)與實(shí)現(xiàn)[D].北京:中國(guó)科學(xué)院大學(xué),2014.