• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      新型電源裝置的嵌入式監(jiān)控系統(tǒng)的設(shè)計與實(shí)現(xiàn)

      2013-11-30 05:28:40徐紅艷佃松宜
      計算機(jī)工程與設(shè)計 2013年12期
      關(guān)鍵詞:共享內(nèi)存線程嵌入式

      徐紅艷,佃松宜,鄧 翔,王 琪

      (四川大學(xué) 電氣信息學(xué)院,四川 成都610065)

      0 引 言

      高壓直流供電系統(tǒng) (high voltage direct current power system,HVDCPS)給數(shù)據(jù)中心和通信機(jī)房設(shè)備供電時,在供電可靠性、降低能耗和成本、便于日常維護(hù)等方面比傳統(tǒng)不間斷電源系統(tǒng)顯現(xiàn)出較大優(yōu)勢,因而受到業(yè)界廣泛關(guān)注。2012年國際國內(nèi)相關(guān)標(biāo)準(zhǔn)也已頒布實(shí)施[1,2]。作者所在課題組成功研制出通信用240VHVDCPS新型電源裝置。

      電源監(jiān)控是通信用電源裝置中進(jìn)行實(shí)時監(jiān)控、自動監(jiān)測、故障早期預(yù)警和優(yōu)化運(yùn)行等的關(guān)鍵技術(shù)。該技術(shù)目前的發(fā)展趨勢是高可靠性、高實(shí)時性、可擴(kuò)展、易維護(hù)以及友好人機(jī)交互圖形用戶界面[3]。這就要求監(jiān)控系統(tǒng)對監(jiān)控對象的狀態(tài)變化和用戶操作做出更加快速的響應(yīng),能夠不間斷、穩(wěn)定、可靠、實(shí)時地對通信電源設(shè)備進(jìn)行監(jiān)測與預(yù)警。嵌入式技術(shù)的應(yīng)用讓這種需求成為可能。本系統(tǒng)從技術(shù)需求出發(fā),基于ARM平臺和Qt開發(fā)工具,采用三級集散式監(jiān)控結(jié)構(gòu),應(yīng)用計算機(jī)控制和總線通信技術(shù),模塊化設(shè)計,實(shí)現(xiàn)對新型電源裝置的嵌入式實(shí)時監(jiān)控。

      1 監(jiān)控系統(tǒng)功能的需求分析

      監(jiān)控系統(tǒng)需要檢測的信號有:交流輸入、整流模塊、母線和負(fù)載支路的各種電壓和電流,蓄電池組和各單體電池的電壓、電流和溫度,以及系統(tǒng)其它狀態(tài)量等。

      根據(jù)相關(guān)標(biāo)準(zhǔn)技術(shù)要求和系統(tǒng)實(shí)際需求,監(jiān)控系統(tǒng)應(yīng)具有的功能概況如下:

      (1)監(jiān)測交直流電壓和電流,對異常狀況進(jìn)行保護(hù)并報警。

      (2)實(shí)時檢測蓄電池組及各單體電池的電壓和溫度,對異常狀況進(jìn)行保護(hù)并報警。對蓄電池進(jìn)行管理,在均充與浮充之間智能切換。

      (3)檢測母線和各負(fù)載支路的絕緣狀態(tài),絕緣下降至不符合要求時進(jìn)行告警。

      (4)記錄系統(tǒng)歷史數(shù)據(jù),以及系統(tǒng)正常工作時的關(guān)鍵參數(shù)動態(tài)曲線顯示。

      (5)提供人機(jī)接口,通過真彩顯示屏和觸摸屏,實(shí)時顯示系統(tǒng)運(yùn)行參數(shù),可進(jìn)行系統(tǒng)模塊配置、參數(shù)設(shè)置和系統(tǒng)維護(hù)等。

      (6)支持遠(yuǎn)程監(jiān)控功能。

      2 系統(tǒng)整體結(jié)構(gòu)設(shè)計

      本監(jiān)控系統(tǒng)由ARM主控模塊、電池管理模塊、絕緣監(jiān)測模塊和配電監(jiān)控模塊4個模塊組成。ARM主控模塊協(xié)調(diào)其它各模塊,對系統(tǒng)整體性能進(jìn)行優(yōu)化分析;電池管理模塊,絕緣監(jiān)測模塊和配電監(jiān)控模塊可獨(dú)立運(yùn)行,對電源系統(tǒng)各個部分進(jìn)行獨(dú)立控制。當(dāng)某一模塊出現(xiàn)故障不會導(dǎo)致系統(tǒng)其它功能喪失;當(dāng)系統(tǒng)要增加設(shè)備時,可增加功能模塊的數(shù)目,易于擴(kuò)展;當(dāng)某一模塊出現(xiàn)故障時,可以在不影響整個系統(tǒng)運(yùn)行的情況下更換模塊,迅速排除故障。系統(tǒng)整體結(jié)構(gòu)如圖1所示。

      圖1 監(jiān)控系統(tǒng)整體結(jié)構(gòu)

      系統(tǒng)采用分布式檢測結(jié)構(gòu)。電流電壓等傳感器和其它轉(zhuǎn)換電路在底層通過各模擬量、數(shù)字量采集模塊,再通過4條CAN總線向ARM主控制器上傳。另外,上層也可以通過數(shù)字量輸出模塊來直接控制繼電器和相關(guān)開關(guān)器件的開斷。整流模塊中的DSP控制器通過CAN總線接受ARM主控制器的管理。

      監(jiān)控系統(tǒng)中ARM處理平臺選用Atmel公司的AT91SAM9G45處理器,處理器頻率達(dá)到400MHz,帶有一個7寸LCD顯示屏和一個觸摸屏[4]。選用抗電磁干擾能力強(qiáng)的CAN總線實(shí)現(xiàn)數(shù)據(jù)通信[5]。操作系統(tǒng)選用嵌入式Linux,并在其上移植Qt/Embedded庫。

      3 監(jiān)控系統(tǒng)軟件設(shè)計

      3.1 軟件平臺的搭建

      系統(tǒng)軟件平臺的搭建比較復(fù)雜,包括虛擬機(jī)的安裝、交叉編譯環(huán)境的建立、Linux內(nèi)核的移植、文件系統(tǒng)的制作、NFS系統(tǒng)的搭建、Qt和Qwt的安裝以及Qt、Qwt和tslib向開發(fā)板的移植等。

      本系統(tǒng)程序的開發(fā)是在裝有Ubuntu 11.10版本Linux操作系統(tǒng)的宿主機(jī)上完成的。在宿主機(jī)上建立Qt/Embedded開發(fā)環(huán)境是開發(fā)GUI程序的首要步驟[6]。

      3.2 程序設(shè)計

      本監(jiān)控系統(tǒng)程序由數(shù)據(jù)采集與控制程序和人機(jī)交互界面程序兩部分組成,并通過Linux進(jìn)程間共享內(nèi)存的方式完成數(shù)據(jù)的傳遞,實(shí)現(xiàn)原理如圖2所示。

      圖2 共享內(nèi)存方式原理

      管道和消息隊(duì)列等通信方式,需要在內(nèi)核和用戶空間進(jìn)行四次數(shù)據(jù)拷貝。而共享內(nèi)存只拷貝兩次:一次從輸入文件到共享內(nèi)存區(qū);另一次從共享內(nèi)存區(qū)到輸出文件。因此,共享內(nèi)存是一種較快的進(jìn)程通信方式。系統(tǒng)使用mmap(內(nèi)存映射)方式傳遞數(shù)據(jù),mmap()系統(tǒng)調(diào)用使得進(jìn)程之間通過映射同一個普通文件實(shí)現(xiàn)共享內(nèi)存[7]。共享內(nèi)存區(qū)由一個進(jìn)程創(chuàng)建,其余進(jìn)程也可以訪問這塊內(nèi)存,直接讀寫數(shù)據(jù),數(shù)據(jù)不需要在進(jìn)程間進(jìn)行復(fù)制操作。為了達(dá)到進(jìn)程間的同步及互斥,需要與其它通信機(jī)制結(jié)合使用[8]。

      設(shè)計中采用Mutex技術(shù)實(shí)現(xiàn)進(jìn)程同步[9]。當(dāng)一個線程嘗試操作共享內(nèi)存區(qū)域前,先檢查是否已被Mutex鎖定。如果已被鎖定,則進(jìn)入等待狀態(tài),同時啟動超時計數(shù)器,當(dāng)線程等待超時完畢,則重新嘗試訪問共享內(nèi)存區(qū)域;如果未被鎖定,則創(chuàng)建一個Mutex,以鎖定共享內(nèi)存,同時啟動超時計數(shù)器,然后開始操作共享內(nèi)存,當(dāng)線程的鎖定超時完畢,則對Mutex執(zhí)行解鎖,以釋放共享區(qū)域的操作權(quán)限,以避免死鎖。

      3.2.1 數(shù)據(jù)采集

      本嵌入式系統(tǒng)采用多線程和多進(jìn)程技術(shù)實(shí)現(xiàn)數(shù)據(jù)采集、控制、數(shù)據(jù)處理等同時進(jìn)行,從而提高程序的處理效率。程序流程圖如圖3所示。

      圖3 數(shù)據(jù)采集程序流程

      監(jiān)控系統(tǒng)在Linux下建立一個讀取CAN數(shù)據(jù)采集模塊的程序。系統(tǒng)首先進(jìn)行初始化,建立共享內(nèi)存,然后打開串口設(shè)備和CAN接口設(shè)備,并設(shè)置初始值。主節(jié)點(diǎn)(ARM主控模塊)向從節(jié)點(diǎn) (CAN數(shù)據(jù)采集模塊)發(fā)送請求數(shù)據(jù)命令,各數(shù)據(jù)采集模塊通過CAN總線將數(shù)據(jù)上傳到ARM主控模塊的接收緩存區(qū)。ARM主控模塊從緩存區(qū)讀取數(shù)據(jù),根據(jù)幀頭判斷數(shù)據(jù)類型和數(shù)據(jù)長度并進(jìn)行處理,將數(shù)據(jù)保存在共享內(nèi)存中。

      系統(tǒng)創(chuàng)建一個線程通過事件驅(qū)動實(shí)現(xiàn)數(shù)據(jù)接收,并將數(shù)據(jù)保存在緩沖區(qū)中,防止因數(shù)據(jù)量過大造成界面假死[10]。Qt自身擁有QThread線程類,并提供創(chuàng)建新線程的方法。線程通過重載QThread::run()函數(shù)完成其操作。通過調(diào)用QThread::start()開啟線程,線程一直循環(huán)讀取共享內(nèi)存中的數(shù)據(jù),為界面刷新提供即時數(shù)據(jù)。Qt線程中無法直接操作主進(jìn)程中的GUI控件,即無法在線程中對一個具體的標(biāo)簽或者文本欄做修改,只能依靠 “信號與槽”的方式,每當(dāng)線程完整的讀一次共享內(nèi)存中的結(jié)構(gòu)體,就發(fā)出信號。

      不同的界面需要刷新的數(shù)據(jù)不同,因此線程必須針對不同界面定義相應(yīng)的信號。本文采用自定義結(jié)構(gòu)化消息的方式來實(shí)現(xiàn)采集數(shù)據(jù)的異步顯示。自定義的結(jié)構(gòu)化消息包括消息編碼、通道編碼、數(shù)據(jù)類型、采集內(nèi)容。系統(tǒng)所有的采集數(shù)據(jù)在發(fā)送前按照統(tǒng)一的消息結(jié)構(gòu)進(jìn)行組包,然后發(fā)送到數(shù)據(jù)接收線程;數(shù)據(jù)接收線程按照消息編碼進(jìn)行分揀,分別調(diào)用對應(yīng)的消息處理函數(shù)進(jìn)行解包、數(shù)據(jù)轉(zhuǎn)換和動態(tài)顯示。

      3.2.2 現(xiàn)場數(shù)據(jù)預(yù)處理

      為防止干擾信號引起錯誤報警,對現(xiàn)場采集數(shù)據(jù)進(jìn)行數(shù)字濾波預(yù)處理。以直流母線電壓為例介紹軟件濾波器的設(shè)計過程。

      電池并聯(lián)在直流母線上,因此直流母線電壓等于電池電壓。根據(jù)電池充、放電特性,直流母線電壓的波動頻率在1Hz以下,留有一定裕量將截止頻率設(shè)為10Hz。系統(tǒng)采樣頻率為100Hz,采用文獻(xiàn)[11]的方法計算出對應(yīng)的離散傳遞函數(shù)為

      根據(jù)傳遞函數(shù)式 (1)可得

      按照式 (2)實(shí)現(xiàn)濾波器方法如下:

      3.2.3 數(shù)據(jù)存儲與管理

      在主控程序中實(shí)現(xiàn)對數(shù)據(jù)庫的操作,數(shù)據(jù)庫主要對實(shí)時數(shù)據(jù)進(jìn)行保存和處理,對歷史數(shù)據(jù)進(jìn)行維護(hù)和訪問,完成數(shù)據(jù)的查詢、修改、設(shè)置、瀏覽等功能。電源監(jiān)控軟件在運(yùn)行時,自動建立一個SQLite數(shù)據(jù)庫,然后在數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表,數(shù)據(jù)表中創(chuàng)建報警、日期、蓄電池狀態(tài)等字段。對于大批量數(shù)據(jù),引用數(shù)據(jù)庫中 “事務(wù)”的概念,將其當(dāng)做一次事務(wù)從而大大加快批量數(shù)據(jù)的操作速度。數(shù)據(jù)保存在以 “.db”為后綴的數(shù)據(jù)庫文件中方便備份和轉(zhuǎn)移,只需要拷貝該數(shù)據(jù)庫文件就可實(shí)現(xiàn)整個數(shù)據(jù)庫的備份。

      3.2.4 人機(jī)界面設(shè)計

      采用Qt Designer工具繪制用戶界面[12],利用獨(dú)有的布局系統(tǒng)使窗口和組件自動根據(jù)屏幕空間的大小改變布局。根據(jù)監(jiān)控系統(tǒng)的基本功能,制定了圖4所示電源監(jiān)控系統(tǒng) 的界面應(yīng)用程序開發(fā)框架方案。

      圖4 基于Qt/Embedded的界面應(yīng)用程序開發(fā)框架

      監(jiān)控系統(tǒng)的主界面包括設(shè)置、操作、狀態(tài)、系統(tǒng)信息、歷史記錄、通信連接、時間、語言、幫助等界面。各界面又包含其它子界面。為了便于界面修改且易于靈活擴(kuò)展,將主界面 (MainWindow)分成3個子項(xiàng):TitleBar、CenterView、StatuBar,同時這3個子項(xiàng)內(nèi)部管理各自的視圖。MainWindow通知TitleBar切換頁面,TitleBar負(fù)責(zé)切換主窗口和其他各界面;CenterView通知MainWindow頁面切換后做必要的處理,負(fù)責(zé)內(nèi)部頁面的切換邏輯以及當(dāng)界面切換時通過信號告訴MainWindow做相應(yīng)反應(yīng)。當(dāng)某個界面只需由TitleBar和CenterView組成時,可發(fā)送信號隱藏StatuBar。

      3.2.5 Qwt繪制動態(tài)曲線

      本文采用Qwt工具庫完成電源電壓、電流、溫度等動態(tài)曲線的繪制。下面是曲線類的關(guān)鍵代碼:

      Qwt畫曲線是先建立畫圖區(qū)域qwtPlot,然后往上面添加曲線和點(diǎn),在一個特定區(qū)間所計算的數(shù)目越大畫出來的曲線越平滑。曲線需繪制在畫布上,它繼承自QwtPlot-Curve類。由于是實(shí)時顯示,圖形與橫坐標(biāo)隨著時間平移,利用QObject的timerEvent()函數(shù)來實(shí)現(xiàn)此功能[13]。每經(jīng)過一定的周期,圖形的橫坐標(biāo)發(fā)生平移,曲線需要重繪,時間間隔由QTimerEvent類型的參數(shù)決定,將默認(rèn)值設(shè)為每秒刷新一次。

      除了要動態(tài)監(jiān)控波形外,還需要對電源電壓、電流及溫度波形進(jìn)行分析,以測評效果的優(yōu)劣,所以波形的滾動縮放查看效果是必不可少的。這個功能主要用QwtPlotZoomer類來實(shí)現(xiàn),下面是實(shí)現(xiàn)曲線滾動縮放的關(guān)鍵代碼:

      4 測試結(jié)果

      將整個工程交叉編譯并下載到目標(biāo)機(jī)上運(yùn)行。在測試過程中,主要觀察了監(jiān)控系統(tǒng)的狀態(tài)主界面以及實(shí)時曲線界面。經(jīng)過長期運(yùn)行測試,在未出現(xiàn)市電異?;驍嚯妶缶那闆r下,狀態(tài)主界面顯示如圖5所示,狀態(tài)主界面顯示了整個電源裝置各主要組成部分的運(yùn)行狀態(tài),點(diǎn)擊圖標(biāo)可以切換到其它界面了解各組成部分的狀態(tài)或進(jìn)行設(shè)置等相關(guān)操作。界面之間可以自如切換和刷新各種數(shù)據(jù)。

      圖5 狀態(tài)主界面

      圖6 為直流母線電壓的實(shí)時曲線波形。由波形可以看出,在開機(jī)至1秒后,整流模塊的電壓能夠迅速上升到240 V的標(biāo)稱電壓值。另外系統(tǒng)達(dá)到穩(wěn)態(tài)之后,輸出電壓的平均值穩(wěn)定在239.5V,滿足直流母線電壓240±2.4V的要求。

      圖6 直流母線電壓實(shí)時曲線

      5 結(jié)束語

      本文給出了新型電源監(jiān)控系統(tǒng)的功能需求分析和整體結(jié)構(gòu),基于ARM9+Linux+CAN總線的平臺,使用Qt編程技術(shù),充分利用 “信號與槽”的獨(dú)特機(jī)制和豐富的控件資源。采用進(jìn)程間共享內(nèi)存和Mutex技術(shù)實(shí)現(xiàn)進(jìn)程同步來完成數(shù)據(jù)的傳遞,有效提高進(jìn)程間數(shù)據(jù)通信效率;采用軟件濾波方法對現(xiàn)場數(shù)據(jù)進(jìn)行預(yù)處理,并通過SQLite數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)存儲管理。經(jīng)測試,本嵌入式監(jiān)控系統(tǒng)能夠穩(wěn)定運(yùn)行于課題組開發(fā)的240VHVDCPS新型電源中,實(shí)現(xiàn)了可靠、實(shí)時地對電源設(shè)備各種狀態(tài)參數(shù)進(jìn)行嵌入式監(jiān)測與預(yù)警,人機(jī)交互界面友好,對類似電源裝置或其它工業(yè)嵌入式監(jiān)控系統(tǒng)有一定的借鑒作用和較好的應(yīng)用前景。

      [1]ITU-TL.1200,Direct current power feeding interface up to 400 V at the input to telecommunication and ICT equipment[S].2012.

      [2]YD/T 2378-2011,240Vdirect current power supply system for telecommunication[S].2011(in Chinese).[YD/T 2378-2011,通信用240V直流供電系統(tǒng)[S].2011.]

      [3]ZHOU Xiaoming.Study of network monitoring of UPS power based on ARM[D].Huainan:Anhui University of Technology,2009(in Chinese).[周曉明.基于ARM的UPS電源網(wǎng)絡(luò)監(jiān)控系統(tǒng)的研究[D].淮南:安徽理工大學(xué),2009.]

      [4]LIU Liang,LAI Wanchang,LI Ming.Design and implementation of image transfer system with GPRS based on ARM9[J].Computer Engineering and Design,2010,31 (7):1477-1480(in Chinese).[劉良,賴萬昌,黎明.基于ARM9的GPRS圖像傳輸系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].計算機(jī)工程與設(shè)計,2010,31(7):1477-1480.]

      [5]YUE Xiumei,MA Xuejun,KANG Yong.Design on monitoring system of high-power inverter based on CAN bus[J].Electrical Measurement &Instrumentation,2008,45 (10):37-40(in Chinese).[岳秀梅,馬學(xué)軍,康勇.基于CAN總線的大功率逆變電源監(jiān)控系統(tǒng)設(shè)計[J].電測與儀表,2008,45 (10):37-40.]

      [6]ZHANG Genbao,PANG Sujuan.An embedded image processing system based on Qt[J].Advances in FCCS,2012:311-316.

      [7]WU Zhen,CHEN Yaowu.A kind of message-based interprocess communication[J].Chinese Journal of Electron Devices,2006,29(4):1218-1226(in Chinese).[吳震,陳耀武.一種基于消息的進(jìn)程間通信機(jī)制[J].電子器件,2006,29 (4):1218-1226.]

      [8]CHEN Liding,LV Shenglin.Design of lower computer in environment monitoring system based on multilthread[J].Industry and Mine Automation,2010,12(12):13-16(in Chinese).[陳立定,呂盛林.基于多線程的環(huán)境監(jiān)控系統(tǒng)下位機(jī)的設(shè)計[J].工礦自動化,2010,12 (12):13-16.]

      [9]SUN Yingying,ZHENG Kougen.File monitoring system based on minifilter[J].Journal of Computer Applications,2011,30 (11):3115-3117(in Chinese).[孫瑩瑩,鄭扣根.基于微過濾驅(qū)動的文件監(jiān)控系統(tǒng)[J].計算機(jī)應(yīng)用,2011,30 (11):3115-3117.]

      [10]GAO Qiang,XU Yong.Design of on-board HMI terminal based on Qt/E and ARM[J].Computer Measurement &Control,2012,20(1):236-238(in Chinese).[高強(qiáng),許勇.基于ARM和Qt/E的車載HMI終端的設(shè)計[J].計算機(jī)測量與控制,2012,20(1):236-238.]

      [11]CHEN Yong,DU Liang,SONG Ninghua.Fast design method of soft filter[J].Journal of Yancheng Institute of Technology,2006,19 (2):25-27 (in Chinese).[陳勇,堵亮,宋寧化.軟件濾波器的快速設(shè)計以及用C語言實(shí)現(xiàn)濾波器的功能[J].鹽城工業(yè)學(xué)報,2006,19 (2):25-27.]

      [12]CHEN Xi,LV Xianghua,LIU Yan.Design of new modular industrial controller based on embedded Linux[J].Instrument Technique and Sensor,2010 (11):27-29 (in Chinese).[陳曦,呂湘曄,劉艷.基于嵌入式Linux新型模塊化工業(yè)控制器設(shè)計[J].儀表技術(shù)與傳感器,2010 (11):27-29.]

      [13]SUN Yifan,GUO Tangyong,ZOU Tong,et al.Developing seismic data processing system using Qt library[J].Journal of Geodesy and Geodynamics,2010,31 (6):138-141(in Chinese).[孫一帆,郭唐永,鄒彤,等.使用Qt庫開發(fā)地震數(shù)據(jù)處理系統(tǒng)的分析與設(shè)計[J].大地測量與地球動力學(xué),2010,31(6):138-141.]

      猜你喜歡
      共享內(nèi)存線程嵌入式
      通過QT實(shí)現(xiàn)進(jìn)程間的通信
      搭建基于Qt的嵌入式開發(fā)平臺
      基于PCI總線的多處理器協(xié)同機(jī)制研究
      淺談linux多線程協(xié)作
      嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
      QNX下PEX8311多路實(shí)時數(shù)據(jù)采集的驅(qū)動設(shè)計
      電子世界(2014年21期)2014-04-29 06:41:36
      Altera加入嵌入式視覺聯(lián)盟
      倍福 CX8091嵌入式控制器
      自動化博覽(2014年4期)2014-02-28 22:31:15
      一種高效RTAI 共享內(nèi)存管理層的研究與實(shí)現(xiàn)*
      Linux線程實(shí)現(xiàn)技術(shù)研究
      巴里| 化州市| 柳河县| 广昌县| 长治市| 三穗县| 崇仁县| 无棣县| 石林| 郧西县| 乌兰县| 敦化市| 油尖旺区| 寿光市| 巫山县| 秀山| 忻州市| 明溪县| 信宜市| 德州市| 理塘县| 玉林市| 甘肃省| 台南县| 双城市| 德令哈市| 娄底市| 安陆市| 上饶市| 囊谦县| 岳池县| 澄迈县| 西平县| 桐城市| 原平市| 郁南县| 泰安市| 宝坻区| 潼南县| 衡南县| 通化县|