亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于事件驅(qū)動的智能儀表嵌入式系統(tǒng)架構(gòu)設計

        2015-01-03 02:24:06郭月明
        石油知識 2015年3期
        關(guān)鍵詞:子層智能儀表儀表

        靳 苗 郭月明 衛(wèi) 乾 唐 杰

        (北京中油瑞飛信息技術(shù)有限責任公司 北京 102200)

        基于事件驅(qū)動的智能儀表嵌入式系統(tǒng)架構(gòu)設計

        靳 苗 郭月明 衛(wèi) 乾 唐 杰

        (北京中油瑞飛信息技術(shù)有限責任公司 北京 102200)

        本文介紹了一種基于事件驅(qū)動的嵌入式系統(tǒng)架構(gòu)設計方法,系統(tǒng)架構(gòu)由硬件抽象層、應用支持子層、應用層、事件驅(qū)動核心等部分組成,各層間逐級調(diào)用,具備普遍的通用性,可以廣泛運行在MSP430、M3、ARM、X86等架構(gòu)上,可有效提高儀表的穩(wěn)定性、簡化后期的維護工作。

        事件驅(qū)動;分層設計;模塊化;函數(shù)庫

        圖1 智能儀表系統(tǒng)功能組件圖

        隨著物聯(lián)網(wǎng)的迅猛發(fā)展,智能儀表設備被廣泛應用在國內(nèi)外自動化領(lǐng)域[1]。但由于自動化行業(yè)所使用儀表的開發(fā)環(huán)境差異較大、產(chǎn)品技術(shù)分支多,導致嵌入式代碼接口不統(tǒng)一、代碼重用性較差,增加了后期技術(shù)溝通的難度。同時,隨著儀表類產(chǎn)品的需求細化、硬件模塊化接口的標準化,對儀表類產(chǎn)品進行統(tǒng)一的嵌入式系統(tǒng)架構(gòu)設計是可行且必要的。

        本文介紹的基于事件驅(qū)動的嵌入式系統(tǒng)架構(gòu)設計方法采用分層設計原則,實現(xiàn)功能模塊化封裝,可最大程度保證系統(tǒng)的穩(wěn)定和接口的統(tǒng)一,方便移植至其它MCU及儀表平臺。同時,用戶通過簡單宏定義即可實現(xiàn)產(chǎn)品必要的功能選擇,抽象各功能組件的接口并實現(xiàn)統(tǒng)一,便于擴展其它功能組件或增加事件處理任務。

        1 系統(tǒng)架構(gòu)功能組件及分層設計

        1.1 系統(tǒng)架構(gòu)功能需求

        根據(jù)目前智能儀表的行業(yè)需求,智能儀表需要實現(xiàn)設備管理、人機交互等功能,按照功能模塊化劃分(圖1)。

        1.2 系統(tǒng)架構(gòu)的分層設計

        1979年,國際標準化組織ISO下設的一個專門委員會為制定“開放系統(tǒng)互聯(lián)”(OSI)的有關(guān)標準,提出了基于功能分層概念的網(wǎng)絡結(jié)構(gòu)七層模型——開放系統(tǒng)互連參考模型(OSI/RM)。盡管OSI/RM是為網(wǎng)絡中系統(tǒng)互連所建立的,但是其分層的設計思想完全可以為智能儀表嵌入式系統(tǒng)架構(gòu)的設計所借鑒。

        根據(jù)工業(yè)自動化行業(yè)智能儀表的功能需求,將代碼進行分層設計,為用戶(嵌入式應用層工程師)提供設備管理接口集、數(shù)據(jù)上傳接口集、人機交互接口集、歷史數(shù)據(jù)管理接口集、傳感器參數(shù)管理接口集、傳感器實時數(shù)據(jù)采集及周邊外設數(shù)據(jù)采集接口集、設備功能模塊電源管理接口集、通訊協(xié)議接口集、校驗算法接口集及濾波算法接口集,同時提供數(shù)據(jù)類型及錯誤碼組件,以縮短產(chǎn)品開發(fā)時間、提高產(chǎn)品開發(fā)效率和質(zhì)量。整個系統(tǒng)由硬件層、硬件驅(qū)動層、硬件抽象層,應用支持子層、儀表組函數(shù)庫、事件驅(qū)動核心、應用層共計7個部分組成,每一層中又可以分為多個獨立的模塊,共同為上層提供服務。

        2 系統(tǒng)各層的工作原理分析與設計

        系統(tǒng)中每層都對下一層進行了封裝,因此在代碼執(zhí)行過程中需要逐級調(diào)用,而不能隔層調(diào)用(圖2)。

        圖2 系統(tǒng)各層間調(diào)用流程圖

        隨著儀表硬件模塊化和接口標準化的落實,為軟件分層模塊化設計奠定了基礎。根據(jù)儀表功能需求,硬件層分為主控模塊、傳感器模塊、HMI模塊及通訊模塊等基本單元。

        2.1 硬件抽象層(HAL)

        2.1.1 硬件抽象層工作原理

        硬件抽象層(HAL)完成了對硬件模塊接口的進一步封裝,其中包括MCU內(nèi)部總線類設備及MCU外部設備,硬件抽象層(HAL)作為BSP的上一層,及應用支持子層的下一層,是整個系統(tǒng)架構(gòu)非常關(guān)鍵的一層,HAL實現(xiàn)了對底層設備的封裝,為應用支持子層及系統(tǒng)架構(gòu)中其它功能模塊提供統(tǒng)一的接口。為實現(xiàn)該功能及代碼的通用性,需要對每一個軟硬件模塊進行唯一編碼,通過設備編碼實現(xiàn)對不同設備的區(qū)別,根據(jù)設備編碼通過回調(diào)函數(shù)的動態(tài)映射實現(xiàn)同一設備不同的操作。

        根據(jù)儀表的特征,可以將對設備的操作抽象成一些子操作接口,將這些子操作統(tǒng)一到一個結(jié)構(gòu)中去來實現(xiàn)對上層接口的統(tǒng)一,如對常規(guī)設備的操作可以抽象成打開、讀、寫、休眠、診斷、關(guān)閉6個子操作接口。在編寫設備抽象層代碼時,必須將BSP層接口抽象出以上6種接口供應用支持子層及其它功能模塊使用,設備操作結(jié)構(gòu)設計如下:

        在實際編寫硬件抽象層驅(qū)動式,可通過open函數(shù)來掛載不同的操作接口。例如應用支持子層如果需要對硬件抽象層傳感器模塊中的某一子設備進行操作時,首先將該子設備的編碼(設備編碼是全局唯一的)傳入open函數(shù),open函數(shù)則根據(jù)唯一編碼查找到該設備的操作接口并將其地址賦值給結(jié)構(gòu)中的接口。

        2.1.2 硬件抽象層中斷處理接口

        為及時響應用戶需求,硬件抽象層可對紅外接口、通訊模塊接口提供了中斷處理機制,涉及中斷處理的模塊有紅外通訊模塊、本地通訊模塊等。在本次系統(tǒng)架構(gòu)設計中,中斷只有定時器中斷和UART數(shù)據(jù)接收中斷兩種:定時器中斷用于驅(qū)動事件運轉(zhuǎn),UART中斷用于搬運UART緩沖區(qū)中的數(shù)據(jù)至數(shù)據(jù)區(qū)。定時器中斷觸發(fā)時和UART中斷觸發(fā)時的事件流程圖分別如圖3、4所示。

        圖3 RTC中斷觸發(fā)時事件流程圖

        圖4 UART中斷觸發(fā)時事件流程圖

        2.2 應用支持子層

        應用支持子層是整個系統(tǒng)的第二樞紐,主要由傳感器操作相關(guān)操作接口、數(shù)據(jù)存取相關(guān)操作接口、數(shù)據(jù)展示相關(guān)操作接口及數(shù)據(jù)傳輸相關(guān)操作接口組成,基本上是圍繞著傳感器進行的。它提供了設備硬件抽象層與應用層之間及儀表組函數(shù)庫之間的連接,在層級職能上該層對硬件抽象做了進一步的封裝,以便于應用層封裝事件操作接口時調(diào)用。

        以傳感器模塊接口為例。根據(jù)硬件模塊化設計的方案可以確定傳感器的操作涉及到實時數(shù)據(jù)讀取、傳感器信息讀取、傳感器診斷,對于MCU來講其實是對SPI接口的一些讀寫操作,而這些讀寫基本操作在HAL中已經(jīng)實現(xiàn),本處需要設計一個接口,用來封裝對傳感器實時數(shù)據(jù)讀取、傳感器信息讀取、工況診斷等操作(圖5)。

        圖5 傳感器模塊應用支持子層接口

        2.3 儀表函數(shù)庫

        儀表函數(shù)庫實現(xiàn)了對儀表類產(chǎn)品軟件模塊的封裝,主要包含通訊協(xié)議模塊、文件系統(tǒng)、設備管理模塊、算法模塊、智能電源管理模塊等,同時包含C語言部分標準函數(shù),該套系統(tǒng)架構(gòu)支持標準C函數(shù)庫中的輸入、輸出函數(shù)及數(shù)學函數(shù)。

        通過代碼庫建設,可以統(tǒng)一代碼規(guī)范、統(tǒng)一常用函數(shù)接口,避免重用性,提高嵌入式軟件工程師的效率。

        2.4 應用層

        不同的設備有不同的應用場景,相同的設備又有不同的應用需求。應用層將實例化出人機交互事件、設備遠程管理事件、數(shù)據(jù)上傳事件、數(shù)據(jù)展示事件、實時數(shù)據(jù)采集事件、外部設備數(shù)據(jù)采集事件及歷史數(shù)據(jù)存取事件等操作接口,在事件驅(qū)動中心中將執(zhí)行上述事件處理函數(shù),應用層及各層之間的關(guān)系如圖6所示。

        如傳感器數(shù)據(jù)上傳事件主要分兩個方面:一是被動上傳,即上位機有需求時啟動上傳,這種方式主要是應用于總分架構(gòu)的總線中;二是主動上傳,這要根據(jù)具體的通訊協(xié)議,如A11通訊協(xié)議。同時在該事件中完成數(shù)據(jù)的合包與發(fā)送,該事件將調(diào)用通訊協(xié)議接口及通訊模塊數(shù)據(jù)發(fā)送接口。

        圖6 應用層與各層之間的關(guān)系圖

        2.5 事件驅(qū)動核心

        事件驅(qū)動核心的主要功能是仲裁系統(tǒng)中各個任務的先后順序(圖7)。事件驅(qū)動核心的“心跳”在硬件抽象層完成,通過定時器時鐘滴答進行判斷或觸發(fā)事件,設計這一部分目的是讓應用層工程師專注于用戶需求,因為大多數(shù)情況下,事件驅(qū)動核心及相關(guān)子層的設計是整個系統(tǒng)的核心任務,可以通過定期的維護和更新這個“內(nèi)核”對產(chǎn)品進行升級。

        基于事件間的驅(qū)動接口可采用結(jié)構(gòu)Event進行封裝,該結(jié)構(gòu)包含了當前事件和上一事件的信息,同時可以在事件之間傳輸數(shù)據(jù)指針,如下所示:

        3 結(jié)語

        本文介紹的分層設計、逐級調(diào)用的代碼架構(gòu)設計方法已經(jīng)在新一代的智能儀表中使用,并取得了明顯的效果。在智能儀表的軟件代碼設計中,利用這種分層的系統(tǒng)架構(gòu)設計有如下優(yōu)點:

        (1)提高軟件質(zhì)量,縮短產(chǎn)品的開發(fā)周期。在儀表開發(fā)期,統(tǒng)一的函數(shù)接口和常用算法的統(tǒng)一管理,大大提高代碼的可重用性,避免重復開發(fā),從而進一步提升開發(fā)人員利用率,縮短了產(chǎn)品的開發(fā)時間。

        (2)簡化設備后期的升級維護。在儀表維護期,清晰的程序結(jié)構(gòu)和統(tǒng)一的接口可有效避免潛伏的BUG、提高產(chǎn)品的穩(wěn)定性,在更改層具體實現(xiàn)代碼時也不必修改其它函數(shù),簡化產(chǎn)品的升級維護工作。

        [1]賈靈,王薪宇,鄭淑軍等.物聯(lián)網(wǎng)/無線傳感網(wǎng)原理與實踐[M].北京:航空航天大學出版社,2011.

        [2]孟彥京,陳卓.事件驅(qū)動的程序設計方法在嵌入式系統(tǒng)中的應用[J].電氣自動化,2009,31(6):62-63,66.

        [3]李臣亮.事件驅(qū)動架構(gòu)及應用[J].軟件世界,2007(21):44-45.

        [4]何鴻君,曹四化,褚祖高,羅莉,寧京宜,董黎明,李朋.一種改進的事件驅(qū)動系統(tǒng)框架[J].國防科技大學學報,2008,30(3):70-75.

        [5]孫秋冬.軟件系統(tǒng)的分層設計[J].計算機工程與應用,2001(7):110-112.

        圖7 壓力對CO2泡沫穩(wěn)泡能力的影響

        由圖6、圖7可知,壓力對泡沫性能影響較溫度更為明顯。隨著壓力增加CO2泡沫的起泡能力和穩(wěn)泡能力都明顯增加,特別是在超臨界條件下,CO2泡沫的起泡能力和穩(wěn)泡能力都明顯增強。在16MPa條件下CO2泡沫起泡體積達到424mL,其半衰期超過52h,說明超臨界條件下CO2泡沫性能要明顯高于常規(guī)泡沫。

        3 泡沫封堵能力實驗

        為考察氣態(tài)、液態(tài)及超臨界態(tài)CO2形成泡沫體系封堵能力,開展了3組不同的實驗。模型滲透率為239×10-3μm2,水驅(qū)穩(wěn)定后采用發(fā)泡劑和CO2混合注入,氣液比為1:1,總注入量為1PV,記錄各階段模型兩端壓差(表1)。

        表1 不同相態(tài)CO2泡沫封堵能力實驗條件及結(jié)果

        從不同相態(tài)下的CO2泡沫封堵能力來看:氣態(tài)CO2形成的泡沫封堵能力最差;液態(tài)CO2與發(fā)泡劑溶液形成的是乳狀液,有一定的封堵能力;超臨界態(tài)CO2形成的泡沫體系封堵能力最好。這與高溫高壓條件下靜態(tài)評價的結(jié)果一致。

        4 結(jié)論與認識

        (1)超臨界條件下CO2起泡速度高于氣態(tài)CO2泡沫,有利于油藏內(nèi)CO2泡沫的形成。

        (2)升高壓力和降低溫度均有利于泡沫的穩(wěn)定,其中壓力升高可顯著提高泡沫的穩(wěn)定性。

        (3)超臨界CO2形成的泡沫體系封堵效果明顯優(yōu)于氣態(tài)、液態(tài)CO2泡沫。

        參考文獻

        [1]王其偉,郭平,周國華等.泡沫體系封堵性能影響因素實驗研究[J].特種油氣藏,2003,10(3):79-81.

        [2]周國華, 宋新旺,王其偉等.泡沫復合驅(qū)在勝利油田的應用[J].石油勘探與開發(fā),2006,33(3):369-372.

        [3]楊昌華,王慶,董俊艷等.高溫高鹽油藏CO2驅(qū)泡沫封竄體系研究與應用[J].石油鉆采工藝,2012,34(5):95-101.

        猜你喜歡
        子層智能儀表儀表
        ◆ 儀表
        建筑與預算(2023年2期)2023-03-10 13:13:36
        ◆ 儀表
        建筑與預算(2022年5期)2022-06-09 00:55:10
        儀表
        建筑與預算(2022年2期)2022-03-08 08:40:56
        智能儀表的抗干擾和故障診斷研究
        智能儀表技術(shù)及工業(yè)自動化應用發(fā)展分析
        復合材料厚層合板力學性能等效方法研究
        智能儀表在動態(tài)稱重系統(tǒng)中的應用
        智能儀表在工業(yè)自動化控制中的運用研究
        電子制作(2017年14期)2017-12-18 07:08:00
        分離載荷近距協(xié)議的數(shù)據(jù)鏈路層仿真研究
        Microchip推出全新零漂移儀表放大器
        喷潮出白浆视频在线观看| 韩国无码av片在线观看网站| 日韩欧美一区二区三区中文精品| 欧美老熟妇欲乱高清视频 | 国产成人综合美国十次| 波多野42部无码喷潮在线| 在线观看av永久免费| 成人精品免费av不卡在线观看| av免费在线国语对白| 在线播放免费人成毛片乱码| 波多野吉衣av无码| 亚洲老熟妇愉情magnet| 久久想要爱蜜臀av一区二区三区| 91精品国产综合久久熟女| 国模冰莲极品自慰人体| 精品国产三级a∨在线观看| 国产白丝在线| av福利资源在线观看| 久久久人妻一区二区三区蜜桃d| 亚洲成熟丰满熟妇高潮xxxxx| 国农村精品国产自线拍| 亚洲综合网一区二区三区| 国产亚洲精品90在线视频| 色婷婷综合久久久久中文字幕| 香蕉色香蕉在线视频| 中文字幕一区二区人妻在线不卡| 国产亚洲视频在线播放| 国产午夜福利在线播放| 国产69精品一区二区三区| 国产精品久久婷婷免费观看| 久久精品亚洲一区二区三区浴池| 亚洲图区欧美| 日本不卡一区二区三区在线| 无码av专区丝袜专区| 国产综合无码一区二区辣椒| 久久精品这里只有精品| 搞黄色很刺激的网站二区| 内射人妻视频国内| 亚洲综合色婷婷七月丁香| 国产精品国产三级国产av剧情| 日韩女优av一区二区|