基于UC/OS-II的嵌入式構件系統設計
硬件抽象層實現硬件的驅動、I/O控制,可以用于同一種硬件平臺的很多應用中。OS層主要用于與操作系統相關的操作,包括系統任務的創建、消息的創建等。通信層實現數據的傳遞、數據格式的轉換。
用戶接口層提供與底層應用相關的基本操作函數、對外接口函數,實現上下層之間的互操作。應用層位于頂層,用于實現用戶的應用程序。用戶無需關心底層的硬件結構,直接使用用戶接口層提供的基本操作函數,即可編程實現自己需要的功能。
層(即構件子系統)的接口是所包含的構件接口的組合。分層接口從上層看是透明的,對下層則是不透明的。在層接口處定義的構件僅對整個層次結構中該層或者該層之上的構件可見。只要符合一定的條件,每一層都可實現相當程度的復用,只需要替換相關的構件即可。
這里,特別要提到“原型”的概念。在各個層中,每個垂直切片僅實現與切片的目的相關的部分。這種實現方案稱為“迭代式原型(iterative prototyping)”,每個切片稱為一個“原型(prototype)”。實現原型時,每個原型都在其前驅所實現的特性的基礎上進行構造。原型的序列根據邏輯上特性的優先順序來確定。本體系結構引入原型的概念,每個原型包含來自各層的一個或者多個構件,后面的原型構造于先前原型所提供的服務的基礎上。每個原型將實現一種特定的功能,逐漸增加功能,最終實現用戶應用程序。
分層的結構設計保持了頂層與低層很好的一致性,實現了橫向分離;同時,原型的引用使得各層間的連接更為緊密,縱向相連,從而得到集成度更高、更可靠的系統。
3 嵌入式構件系統的實現
3.1 鍵盤構件系統的實現
嵌入式構件從本質上來說,大部分的工作就是對輸入/輸出部分進行處理。其構件主要有鍵盤、前向通道的處理(如A/D處理)、后向通道的處理(如D/A處理)、USB控制、網絡控制、液晶顯示等。輸入/輸出軟件的代碼占據了整個操作系統的相當部分,對嵌入式操作系統來說,這部分的重要性是不言而喻的。其中,鍵盤更是嵌入式應用程序最常用的器件,因此本文以鍵盤為例,依據上述體系結構構建了鍵盤應用模型,配置實現了鍵盤功能。
圖2為鍵盤構件系統分層體系結構。每層左邊顯示的“棒棒糖”形狀表示層的接口,接口是一組可以從外部訪問的類和對象。虛線箭頭表示的是依賴關系,每層都依賴于其下一層的包,且構件與構件之間也存在著依賴關系。上層調用位于下層具體一些的層次中的服務,這種單向依賴使得可以在不同的上下文中使用相同的服務,而無需考慮服務的實現方式。同時,由于低一些的層中提供了定義良好的接口集合,可以用不同的底層實現來替換它們,這樣,整個構件系統就能更方便地移植到其他的物理環境中。

另外,圖2中的寬箭頭表明了數據的傳遞方向,數據在硬件抽象層取得后,逐級向上層傳遞,經過層層處理、轉換,最終到達應用層,被用戶程序所用。而此處,數據的傳輸過程其實也是一個原型的形成過程,即最終實現了一鍵盤響應處理任務。
- 3.2 構件生成集成環境的實現
基于構件系統體系結構,本文擬開發了一構件生成集成環境,如圖3所示。該環境可以實現構件系統的自配置、自拼接、源代碼自生成,結構清晰,使用簡便。隨后在該集成環境上,配置鍵盤構件系統,自動生成源代碼,并在博創ARM300實驗平臺上實現了鍵盤響應,很好地驗證了此體系結構的可行性及優越性。

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