日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]面向?qū)ο蟮那度胧较到y(tǒng)開發(fā)技術

摘要  為了改善目前嵌入式系統(tǒng)中的代碼數(shù)量廈復雜度越來越高,維護效率低下,不能滿足某些高級應用的要求等現(xiàn)狀,提出一套新的基于面向?qū)ο?/strong>的嵌入式系統(tǒng)開發(fā)技術。介紹面向?qū)ο笄度胧介_發(fā)的應用現(xiàn)狀和模塊體系結(jié)構(gòu);針對面向?qū)ο缶幊趟鶐淼母嗟倪\行時間和資源需求進行性能分析。結(jié)合面向?qū)ο蠛偷讓诱Z言應用,可以取得性能和可行性的平衡優(yōu)勢。
關鍵詞 嵌入式系統(tǒng) 面向?qū)ο筌浖陀?設計模式

引 言
    嵌入式系統(tǒng)不以獨立設備的物理形態(tài)出現(xiàn),嵌入式系統(tǒng)的部件根據(jù)主體設備以及應用的需要.嵌入在主體設備內(nèi)部,發(fā)揮著運算、處理、存儲以及控制等作用。從體系結(jié)構(gòu)看,嵌入式系統(tǒng)主要以嵌人式處理器、支撐硬件和嵌入式軟件組成。嵌入式系統(tǒng)的發(fā)展已有30多年的歷史,早期的嵌入式系統(tǒng)以單個芯片為核心,大部分應用于工業(yè)控制系統(tǒng)中;后來發(fā)展為以嵌入式CPU為基礎、以嵌入式操作系統(tǒng)為核心的嵌入式系統(tǒng);進入20世紀90年代以后,Internet的應用迅速普及,廣泛滲透到社會、經(jīng)濟、交通、通信等相關行業(yè),計算機與通信一體化的趨勢日趨明顯?;贗nternet的嵌入式系統(tǒng)再度成為一個研究熱點。在人們的日常生活中,已經(jīng)普遍使用的手機、PDA、手持設備和掌上電腦等信息電器就是嵌入式系統(tǒng)應用正在迅速發(fā)展的一個證明。

    面向?qū)ο蟮幕舅枷刖褪浅绦虮豢醋魇窍嗷f(xié)作的對象集合,每個對象都是某個類的實例,所有的類構(gòu)成一個通過繼承關系相聯(lián)系的層次結(jié)構(gòu)。程序設計是以對象為中心,以消息為驅(qū)動。程序一般由類的定義和類的使用組成。面向?qū)ο蟮慕?,就是把系統(tǒng)看作是相互協(xié)作的對象。這些對象是結(jié)構(gòu)和行為的封裝,都屬于某個類。那些類具有某種層次化的結(jié)構(gòu)。系統(tǒng)的所有功能通過對象之間相互發(fā)送消息來獲得。

    面向?qū)ο蠹夹g有以下優(yōu)點:
    ①維護簡單。模塊化是面向?qū)ο缶幊讨械囊粋€特征。實體被表示為類和同一名字空間中具有相同功能的類,可以在名字空間中添加一個類而不會影響該名字空間的其他成員。
    ②可擴充。面向?qū)ο缶幊虖谋举|(zhì)上支持擴充性。如果有一個具有某種功能的類,就可以很快地擴充這個類,創(chuàng)建一個具有擴充功能的類。
    ③代碼重用。由于功能是被封裝在類中的,并且類是作為一個獨立實體而存在的,提供一個標準類庫就非常簡單。

    面向?qū)ο蟮姆椒朔嗽熊浖到y(tǒng)規(guī)模龐大、研制周期長、維護費用高、軟件系統(tǒng)過于復雜、應用軟件不易集成等困難。面向?qū)ο蠹夹g在軟件設計當中占有非常重要的地位,但面向?qū)ο蟛⒉皇荂++等語言的專利。實際上,在諸如操作系統(tǒng)等系統(tǒng)軟件當中,面向?qū)ο蠹夹g的使用是非常廣泛的。利用C等高級語言實現(xiàn)面向?qū)ο蠹夹g,不僅結(jié)構(gòu)清晰,而且在執(zhí)行效率等方面也有C++等語言無法比擬的優(yōu)勢。

1 面向?qū)ο笄度胧郊夹g分析
1.1 面向?qū)ο笄度胧郊夹g現(xiàn)狀

    目前,面向?qū)ο蠹夹g在嵌入式系統(tǒng)中的應用雖然有限,但是已經(jīng)得到了充分的發(fā)展。EC++是1996年在日本成立的Embedded C技術委員會針對嵌入式應用制定的減小代碼尺寸的C++標準;EC++引人嵌入式系統(tǒng),使得嵌入式開發(fā)和個人計算機、小型機等之間在開發(fā)上的差別逐漸消除。軟件工程中的很多經(jīng)驗方法乃至庫函數(shù)可以移植到嵌入式系統(tǒng)。EC++的使用使軟硬件開發(fā)可以分工,從事嵌入式軟件開發(fā)不再必須精通系統(tǒng)硬件和相應匯編指令集。相信使用C編程的開發(fā)者對這個優(yōu)點都有感受,而EC++更為突出。

    目前,在圖形用戶界面GUI、Web Server圖像處理技術、數(shù)據(jù)采集等方面已經(jīng)有著很成熟的面向?qū)ο箝_發(fā)模式;采用設備輸入輸出接口等抽象層,融合網(wǎng)絡、驅(qū)動等底層操作,抽象成為上層開發(fā)的統(tǒng)一接口,提高可移植性和擴展性,方便后期維護和代碼重用。

1.2面向?qū)ο笄度胧郊夹g的總體設計思想

    面向?qū)ο笄度胧郊夹g的總體設計思想是所有操作由對象和消息驅(qū)動(或者事件驅(qū)動)。通過對現(xiàn)有面向?qū)ο蠹夹g的分析,對多種嵌入式應用系統(tǒng)的開發(fā)技術要求進行總結(jié),抽象出各種接口和組件類。各個組件、接口、數(shù)據(jù)都被設計成為對象。對象之間通過消息通信形成整體,構(gòu)成系統(tǒng)。在分析和設計的過程中,采用OOA/OOD進行分析設計,形成一個層次清楚、移植性好、易于擴展和重定義的系統(tǒng)結(jié)構(gòu)。

    從圖1中可以看出,在整個模塊與體系結(jié)構(gòu)中面向?qū)ο蠹夹g的重要作用。

    目前,嵌入式系統(tǒng)大都采取分層結(jié)構(gòu)設計,并允許根據(jù)需要對不同的層次進行重寫和替換。抽象接口是在抽象層定義的,不依賴于任何特殊硬件。所有頂層的操作和輸入處理都建立在抽象接口之上。這種分層結(jié)構(gòu)實際上就是一種面向?qū)ο蟮某绦蚪Y(jié)構(gòu),目的是將底層實際的不同驅(qū)動抽象成對上層的統(tǒng)一接口。進程管理、線程管理、內(nèi)存管理、設備管理等也可以抽象成為統(tǒng)一的接口,方便嵌入式系統(tǒng)的開發(fā)。

    采用上述分層方法,使用標準C或者標準C++編寫上層的應用程序,把與硬件及操作系統(tǒng)相關的接口完全封裝起來,對上層應用程序編寫著來講,完全感覺不到底層的變化。硬件變化或操作系統(tǒng)改變只需將硬件依賴型接口內(nèi)部改變即可,這樣就能滿足程序運行于不同操作系統(tǒng)上的需要,并且可以是在不同系統(tǒng)下采用統(tǒng)一的接口。

2 面向?qū)ο笄度胧皆O計與模型的實際應用
    數(shù)字視頻監(jiān)控系統(tǒng)是以計算機為核心,結(jié)合視頻處理、通信、網(wǎng)絡和存儲技術的一種監(jiān)控系統(tǒng)。數(shù)字視頻監(jiān)控系統(tǒng)具有以往傳統(tǒng)的電視監(jiān)控系統(tǒng)等所有的功能,并且在遠距離、性能方面相比具有很大的優(yōu)勢。它與計算機相結(jié)合,使得異地、遠距離監(jiān)控變得非常方便;與網(wǎng)絡、通信的結(jié)合,形成更有實用價值、功能更加強大的網(wǎng)絡通信管理系統(tǒng)。信息化的時代要求信息的處理隨時隨地,而數(shù)字視頻監(jiān)控系統(tǒng)正是這種特點和趨勢的具體體現(xiàn)。

    已經(jīng)實現(xiàn)的SuperVisionl.0為了保證具有良好的靈活性和可擴展性,在開發(fā)中使用了許多面向?qū)ο蠹夹g。根據(jù)實際生活以及監(jiān)控系統(tǒng)的需要,分析數(shù)字視頻監(jiān)控系統(tǒng)中可能出現(xiàn)的異常情況,重點在于運動檢測,異常報警處理方面的設計,以及整個工程的速度性能的考慮。設計靜止物體緩慢變化、光線緩慢變化以及消除噪聲和干擾等多種具有不同應用需求的動態(tài)檢測算法,同時提出不同靈敏度的“階梯思想”;設計遠程控制與本地控制并行處理的機制算法,構(gòu)建本地的Web服務器,方便用戶快捷方便地控制;設計整個監(jiān)控系統(tǒng)結(jié)構(gòu)整合的算法,保證視頻、圖像的捕捉,異常監(jiān)測,報警機制(包括E-Mail、Ftp、電話、紀錄備份、Web訪問)與記錄回放等的協(xié)調(diào)工作;在內(nèi)容存儲上,采用高效的MPEG-4的壓縮算法,圖片采用BMF,JPEG的方式,方便運動檢測和網(wǎng)絡的傳輸;友好的人機界面提供便利的操作,滿足視頻監(jiān)控系統(tǒng)中實時傳輸、處理和回放等需求。

2.1 系統(tǒng)實現(xiàn)流程及結(jié)構(gòu)分析

    目前,流行的嵌入式軟件大都是采取分層結(jié)構(gòu)設計的。SuperVision1.O也采用了這種分層的結(jié)構(gòu)設計,并允許根據(jù)需要對不同的層次進行重寫和替換,抽象接口是在抽象層定義的,不依賴于任何特殊硬件。所有頂層的操作和處理都建立在抽象接口之上。這種分層結(jié)構(gòu)實際上就是一種面向?qū)ο蟮某绦蚪Y(jié)構(gòu),目的是將底層實際的不同驅(qū)動或者實現(xiàn)抽象成對上層的統(tǒng)一接口。在實現(xiàn)中底層部分主要針對視頻采集和壓縮算法的接口統(tǒng)一實現(xiàn),針對不同的驅(qū)動和壓縮得到統(tǒng)一的上層接口,方便擴展和修改。上層中的報警機制(包括E-Mail、FTP、電話,紀錄備份和Web訪問)采用對象的特點,把每個報警方法都抽象成為對象,針對每種不同的程序?qū)崿F(xiàn)統(tǒng)一使用接口。系統(tǒng)流程如圖2所示。

    報警機制部分主要實現(xiàn)遠程控制和實時數(shù)據(jù)傳輸部分功能部分功能。
    ①遠程控制:采用Server/Browser結(jié)構(gòu),使客戶端能夠在網(wǎng)上任何節(jié)點接入,實現(xiàn)客戶端發(fā)布的零配置,同時實現(xiàn)用戶驗證機制,確保安全。實現(xiàn)的主要功能包括:開啟/停止監(jiān)控系統(tǒng)的實時報警,實時更新監(jiān)控圖像,獲取系統(tǒng)歷史記錄。
    ②實時數(shù)據(jù)傳輸:提供可調(diào)用并且通用的接口函數(shù),由報警子系統(tǒng)調(diào)用。通過多種方式把各種實時數(shù)據(jù)傳送出去,包括http、FTP和E-ail。

2.2統(tǒng)一接口實例

    試想如果一個城市的消防車去鄰近的城市救火,卻發(fā)現(xiàn)無法和這個城市的消防栓對接,這是多么可怕的災難?美國人在上個世紀初就有了統(tǒng)一接口的思想,現(xiàn)在再強調(diào)這個也不為過。其目的就是實現(xiàn)系統(tǒng)軟件中,不修改任何的軟件代碼,就可以換上其他規(guī)格甚至其他廠家的同類型產(chǎn)品。開發(fā)人員可以很方便根據(jù)統(tǒng)一的接口擴展和移植相關代碼。無論如何,美國人的這個近乎異想天開的想法,現(xiàn)在正在慢慢地轉(zhuǎn)變成為現(xiàn)實。沒有PC兼容的規(guī)范,沒有API接口,很難想象微軟的軟件可以像現(xiàn)在這樣大行其道。

    該系統(tǒng)的模塊設計考慮和采用了統(tǒng)一接口的思想。它接收系統(tǒng)產(chǎn)生的報警消息產(chǎn)生相應的消息隊列,對所有的消息進行分類送相應的系統(tǒng)模塊進行處理,根據(jù)對應的模塊類別調(diào)用相應的處理方法,并記錄處理信息。當工作失敗時自動進行相應的事務處理。

    視頻采集可以基于采集卡的SDK接口函數(shù),也可以基于Microsoft的DirectShow技術開發(fā)的音視頻訊號捕捉接口,或者基于底層的驅(qū)動等方法來實現(xiàn)。采用統(tǒng)一接口的思想可以將各種實現(xiàn)策略抽象成為對上層的統(tǒng)一接口。具體的調(diào)用采用面向?qū)ο蟮奶攸c、調(diào)用相應的接口實現(xiàn)策略。
    CaptureProc重要接口定義如下:
    Class CaDtureProc{
    String Type;                    //區(qū)別接口類別
    b001 mnuStartCapture();         //開始錄像
    b001 mnuStopCapture();          //停止錄像
    bool TakePicture();             //捕獲圖像
    bool Setting();                 //相關設置選項
   Shc)wConfiglareDialog(&.type);  //根據(jù)類型不同給出不同的設置界面

};

    報警機制(包括E-mail、FTP、電話、紀錄備份和Web訪問)同樣可以采用面向?qū)ο蟮奶攸c,把每個報警方法都抽象成為對象,針對每種不同的程序?qū)崿F(xiàn)統(tǒng)一使用接口,方便代碼編寫和擴展。在實現(xiàn)中包括Cmail、Cftp、Ctel、Cweb四個類,對應的接口統(tǒng)一定義為啟動、設置、關閉等抽象函數(shù)。根據(jù)用戶所設置的參數(shù)形式,系統(tǒng)在消息的驅(qū)動下,根據(jù)定義的具體對象調(diào)用相應的方法。將結(jié)果和變化輸出到指定的設備和存儲體中,用戶就可以方便及時地得到信息和觀察到運行過程和結(jié)果。系統(tǒng)設計中除了采用前面提到的設計模式外,還采用了對象樹等模式,方便分析整個系統(tǒng)的運行和完善情況。

3 面向?qū)ο笄度胧郊夹g的性能研究
    當系統(tǒng)的分析與設計采用面向?qū)ο蠓椒〞r,并不意味著所使用的編程語言也一定是面向?qū)ο蟮?。事實上,這種分析設計方法的具體實現(xiàn)可以使用任何編程語言(如匯編語言或C語言);但是,在程序設計上要盡可能地使用面向?qū)ο蟮乃枷?,如體現(xiàn)程序結(jié)構(gòu)方面的封裝性、消息傳遞等。這樣才會使程序結(jié)構(gòu)清晰,便于應付隨著需求變化而產(chǎn)生的不斷更新和系統(tǒng)維護。

    過去嵌入式系統(tǒng)分析和設計方面的主要問題為:①分析設計沒有一個統(tǒng)一的標準;②分析設計方法不統(tǒng)一;③從分析設計到制作和編程沒有一個始終一貫的工程化方法,使得產(chǎn)品形成的每一個過程人為因素影響十分嚴重;④分析設計的成果不能被開發(fā)類似項目或產(chǎn)品時重用。以上4個方面的問題成為多年來制約嵌入式系統(tǒng)發(fā)展的主要瓶頸,使得大部分從事嵌入式系統(tǒng)應用開發(fā)的組織和團體,基本上是采用小組甚至是作坊式的運作模式。這樣,開發(fā)較復雜或大型系統(tǒng)的工作變得十分困難甚至無法進行,或因為系統(tǒng)需求的不斷變化或小組成員的流動導致項目失敗。目前,面向?qū)ο蠹夹g正是建立在對真實世界抽象思維的基礎上,面向?qū)ο蟮那度胧较到y(tǒng)建模同任何軟件密集型系統(tǒng)建模一樣,從系統(tǒng)中的類建模開始。為了解類的結(jié)構(gòu),首先對系統(tǒng)工作過程作一個總體陳述,對嵌入式系統(tǒng)需求、分析、設計、制作、測試和維護過程的結(jié)構(gòu)特征和行為特征統(tǒng)一的工程化描述方法,改變以往的嵌入式軟件開發(fā)現(xiàn)狀。

    SuperVisionl.0采用了面向?qū)ο笤O計方法,因為嵌入式開發(fā)中硬件條件的限制,相對于PC機上的面向?qū)ο缶幊逃懈嗟睦щy,下面就探討一下在嵌入式開發(fā)中的OOP的難點和解決方法。面向?qū)ο缶幊绦枰嗟倪\行時間和資源需求,如果不采用面向?qū)ο缶幊?,則面臨嵌入式開發(fā)中的代碼數(shù)量、復雜度越來越高帶來的維護效率下降的問題。

    從圖3可以看出C++語法的概況。

    底層的代碼在面向?qū)ο缶幾g器中使用時并沒有更高額的代價損耗,因此,在嵌人式開發(fā)時可以不使用資源代價比較高的而又不是很重要的部分,而是采用底層的代碼實現(xiàn),或者改善面向?qū)ο蟮木幾g器,變相利用底層的優(yōu)點彌補面向?qū)ο蟪绦蛟O計的缺陷。這樣嵌入式系統(tǒng)在性能優(yōu)勢和程序方便性、可維護性、可移植性上能夠得到統(tǒng)一。 

4 結(jié)論和展望
    采用面向?qū)ο笏枷牒颓度胧杰浖攸c相結(jié)合,在綜合運用,如多級抽象類型定義,不依靠具體程序設計語言的更高抽象層次上,對對象進行抽象描述,隱藏具體實現(xiàn)細節(jié),使程序結(jié)構(gòu)易于擴充,縮短開發(fā)周期。目前這種方法還處于發(fā)展階段,各種新的領域仍在不斷的出現(xiàn),原有的方法也在不斷的檢驗和改進,面向?qū)ο蟮那度胧介_發(fā)技術的重要意義已經(jīng)不容置疑,擺脫了以往結(jié)構(gòu)化范式的影響。面向?qū)ο笄度胧介_發(fā)技術在SuperVisionl.0系統(tǒng)中得到驗證,并根據(jù)具體的面向?qū)ο?/strong>編程的性能特點調(diào)整資源分配策略。 

    從目前國內(nèi)外IT行業(yè)來看,嵌入式系統(tǒng)及其產(chǎn)品將在Internet衍生出來的新型市場中起到重要的作用,后PC時代帶來的沖擊將是未來市場的新景觀。

本站聲明: 本文章由作者或相關機構(gòu)授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。

關鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅(qū)動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關鍵字: LED 驅(qū)動電源 開關電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅(qū)動電源
關閉