• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 分析基于μC/OS-II的嵌入式構件系統設計

    分析基于μC/OS-II的嵌入式構件系統設計

    作者: 時間:2012-01-04 來源:網絡 收藏

    μ 是一個源碼公開、可移植、可固化、可裁剪、占先式的實時多任務操作,它適用于多種微處理器,微控制器和數字處理芯片。在所有實時操作中,μ的源代碼幾乎是最整潔、編寫最一致的。自1992年問世以來,μ已經被應用到數以百計的產品中。本文嘗試將化軟件思想引入軟件中,提出了一種適用于軟件的的軟件體系結構,并且在常用輸入設備鍵盤的應用實踐中,驗證了此體系結構的可行性。

    本文引用地址:http://www.czjhyjcfj.com/article/149906.htm

    1 技術

    1.1 構 件

    構件可以視為一個通過接口對外界提供服務或向外界請求服務的黑盒,多個構件可以組成一個更高層次的構件,構件比對象提供了更高的抽象。構件是二進制可替換的,這個特點使它們與“類”有著顯著的不同。當創建了一個構件的修訂版本時,它可以替代同一構件的原先版本,而不必重新編譯其他構件。通常,只要一個構件滿足相同的接口,就可替換另一個構件,而不必對其他構件做任何修改。因此,構件能夠很好地解決更新、維護、分布和復用等諸多問題。

    構件基本特征:可復用性、可封裝性、組裝性、可定制性、自治性、粗粒度、集成特征、接口連接機制。目前,構建模型大致可分為2類:在面向對象的程序設計中,構件即對象;在軟件體系結構中,構件即結構單元。

    1.2 嵌入式構件

    1.2.1 嵌入式構件模型

    嵌入式構件為實現一定嵌入式功能的一組封裝的、規范的、可重用的、具有嵌入特性的軟件單元,是組成嵌入式系統的功能單位。它是被標準化的、具有重用性、支持QoS的、能夠提供實時應用的軟件資源。

    每個嵌入式構件由4部分構成:構件體、屬性、接口、依賴關系。圖1為基本構件的示意圖。構件體實現構件的基本功能;屬性描述了構件的基本信息;接口將構件與外界連接,為外界提供服務,每一種接口對應一個不同的服務;依賴關系標識構件間的所有關系,用于實現構件間的拼接。

    1.2.2 嵌入式構件屬性

    屬性是描述構件某個方面特征的元數據。屬性定義了構件查找的方法,可以根據任意一條屬性記錄快速找到符合條件的構件。由于嵌入式構件的特殊性,可以將嵌入式軟件構件的屬性分為3種:描述屬性、約束屬性和服務質量(QoS)屬性。

    (1)描述屬性

    描述屬性指的是一般構件都具有的公共屬性。

    (2)約束屬性

    約束屬性描述構件所依賴的環境。約束屬性分為2類:描述絕大多數構件都具有的公有約束屬性和描述單獨構件特殊需求的專有約束屬性。公有約束屬性包括CPU類型、操作系統、依賴的類庫等。

    (3)QoS屬性

    QoS屬性是嵌入式軟件構件最重要的要素。為了選取合適的構件來開發嵌入式系統,必須考慮構件的QoS屬性,以*估它所提供的性能指標。常見的QoS屬性包括平均執行時間、最差執行時間、最優執行時間、內存消耗、功耗、健壯性、可靠性和安全性等。

    2 嵌入式軟件構件設計

    2.1 μC/OS—II嵌入式實時操作系統

    μC/0S—II實時性強,可靠性高,對處理器以及ROM、RAM資源的要求不高;另外,它的代碼大部分用ANSI C語言編寫,只有少部分微處理器專用的代碼用匯編語言編寫,有利于程序的移植。

    2.2 構件的嵌入式軟件體系結構

    一個構件系統的體系結構由一系列定義的構件框架和針對該框架設計的構件間的相互作用關系組成。體系結構是所要實現系統的整體規劃,它為構件的組裝提供基礎框架和接口規范。

    目前,嵌入式構件技術研究的核心之一是構件模型和軟件體系結構(軟件構架)這兩個相互關聯的問題。不同的構件只能在相應的軟件構架中使用,因此構件的應用軟件設計也可認為是基于體系結構(構架)的軟件設計,也稱之為基于“構件一構架”的應用軟件設計。

    根據上述的嵌入式基本構件模型,本文提出了一適用于嵌入式系統的軟件體系結構。其中,定義“構件系統”為一特定應用,實現某一具體功能。另外,定義“構件子系統”。它類似于UML中的包概念,代表元素的邏輯分組,將具體的應用從實際問題中抽象出來,同時對各個關注區域進行相對分離,這樣做可以獨立地各個關注點,從而可以更好地系統的結構。一個構件子系統可以包含一個構件或者是多個構件的集合。

    硬件抽象層實現硬件的驅動、I/O控制,可以用于同一種硬件平臺的很多應用中。OS層主要用于與操作系統相關的操作,包括系統任務的創建、消息的創建等。通信層實現數據的傳遞、數據格式的轉換。

    用戶接口層提供與底層應用相關的基本操作函數、對外接口函數,實現上下層之間的互操作。應用層位于頂層,用于實現用戶的應用程序。用戶無需關心底層的硬件結構,直接使用用戶接口層提供的基本操作函數,即可編程實現自己需要的功能。

    分層的結構設計保持了頂層與低層很好的一致性,實現了橫向分離;同時,原型的引用使得各層間的連接更為緊密,縱向相連,從而得到集成度更高、更可靠的系統。

    3 嵌入式構件系統的實現

    3.1 鍵盤構件系統的實現

    嵌入式構件從本質上來說,大部分的工作就是對輸入/輸出部分進行處理。其構件主要有鍵盤、前向通道的處理(如A/D處理)、后向通道的處理(如D/A處理)、USB控制、網絡控制、液晶顯示等。輸入/輸出軟件的代碼占據了整個操作系統的相當部分,對嵌入式操作系統來說,這部分的重要性是不言而喻的。其中,鍵盤更是嵌入式應用程序最常用的器件,因此本文以鍵盤為例,依據上述體系結構構建了鍵盤應用模型,配置實現了鍵盤功能。

    圖2為鍵盤構件系統分層體系結構。每層左邊顯示的“棒棒糖”形狀表示層的接口,接口是一組可以從外部訪問的類和對象。虛線箭頭表示的是依賴關系,每層都依賴于其下一層的包,且構件與構件之間也存在著依賴關系。上層調用位于下層具體一些的層次中的服務,這種單向依賴使得可以在不同的上下文中使用相同的服務,而無需考慮服務的實現方式。

    另外,圖2中的寬箭頭表明了數據的傳遞方向,數據在硬件抽象層取得后,逐級向上層傳遞,經過層層處理、轉換,最終到達應用層,被用戶程序所用。而此處,數據的傳輸過程其實也是一個原型的形成過程,即最終實現了一鍵盤響應處理任務。

    3.2 構件生成集成環境的實現

    基于構件系統體系結構,本文擬開發了一構件生成集成環境,如圖3所示。該環境可以實現構件系統的自配置、自拼接、源代碼自生成,結構清晰,使用簡便。隨后在該集成環境上,配置鍵盤構件系統,自動生成源代碼,并在博創ARM300實驗平臺上實現了鍵盤響應,很好地驗證了此體系結構的可行性及優越性。

    本文擴展了通用軟件構件的概念,提出了適用于嵌入式系統的構件模型;并在此基礎上設計了嵌入式軟件6層體系結構,采用了分層的結構設計,實現了橫向分離,而“原型”的引用使得各層縱向相連。此體系結構不僅實現了軟硬件分離,同時也實現了功能的分離,有利于實現穩定性好的嵌入式系統。最后,本文在鍵盤應用實例中驗證了其可行性。隨著嵌入式系統的硬件發展,以及基于構件的軟件設計方法自身的不斷完善,基于構件的軟件設計方法必將是未來的發展方向。

    linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 醴陵市| 郑州市| 五原县| 澜沧| 山西省| 邮箱| 娄底市| 拉萨市| 隆昌县| 沙河市| 新丰县| 德格县| 缙云县| 四会市| 宜城市| 贞丰县| 资中县| 鹤峰县| 蕲春县| 石柱| 正蓝旗| 和平区| 诸城市| 环江| 隆林| 台北县| 海淀区| 静安区| 建湖县| 洞口县| 当阳市| 阳春市| 丹阳市| 永登县| 蓝山县| 屯昌县| 商城县| 肇庆市| 吴川市| 南召县| 双桥区|