基于UC/OS-II的嵌入式構(gòu)件系統(tǒng)設(shè)計
硬件抽象層實現(xiàn)硬件的驅(qū)動、I/O控制,可以用于同一種硬件平臺的很多應(yīng)用中。OS層主要用于與操作系統(tǒng)相關(guān)的操作,包括系統(tǒng)任務(wù)的創(chuàng)建、消息的創(chuàng)建等。通信層實現(xiàn)數(shù)據(jù)的傳遞、數(shù)據(jù)格式的轉(zhuǎn)換。
用戶接口層提供與底層應(yīng)用相關(guān)的基本操作函數(shù)、對外接口函數(shù),實現(xiàn)上下層之間的互操作。應(yīng)用層位于頂層,用于實現(xiàn)用戶的應(yīng)用程序。用戶無需關(guān)心底層的硬件結(jié)構(gòu),直接使用用戶接口層提供的基本操作函數(shù),即可編程實現(xiàn)自己需要的功能。
層(即構(gòu)件子系統(tǒng))的接口是所包含的構(gòu)件接口的組合。分層接口從上層看是透明的,對下層則是不透明的。在層接口處定義的構(gòu)件僅對整個層次結(jié)構(gòu)中該層或者該層之上的構(gòu)件可見。只要符合一定的條件,每一層都可實現(xiàn)相當(dāng)程度的復(fù)用,只需要替換相關(guān)的構(gòu)件即可。
這里,特別要提到“原型”的概念。在各個層中,每個垂直切片僅實現(xiàn)與切片的目的相關(guān)的部分。這種實現(xiàn)方案稱為“迭代式原型(iterative prototyping)”,每個切片稱為一個“原型(prototype)”。實現(xiàn)原型時,每個原型都在其前驅(qū)所實現(xiàn)的特性的基礎(chǔ)上進(jìn)行構(gòu)造。原型的序列根據(jù)邏輯上特性的優(yōu)先順序來確定。本體系結(jié)構(gòu)引入原型的概念,每個原型包含來自各層的一個或者多個構(gòu)件,后面的原型構(gòu)造于先前原型所提供的服務(wù)的基礎(chǔ)上。每個原型將實現(xiàn)一種特定的功能,逐漸增加功能,最終實現(xiàn)用戶應(yīng)用程序。
分層的結(jié)構(gòu)設(shè)計保持了頂層與低層很好的一致性,實現(xiàn)了橫向分離;同時,原型的引用使得各層間的連接更為緊密,縱向相連,從而得到集成度更高、更可靠的系統(tǒng)。
3 嵌入式構(gòu)件系統(tǒng)的實現(xiàn)
3.1 鍵盤構(gòu)件系統(tǒng)的實現(xiàn)
嵌入式構(gòu)件從本質(zhì)上來說,大部分的工作就是對輸入/輸出部分進(jìn)行處理。其構(gòu)件主要有鍵盤、前向通道的處理(如A/D處理)、后向通道的處理(如D/A處理)、USB控制、網(wǎng)絡(luò)控制、液晶顯示等。輸入/輸出軟件的代碼占據(jù)了整個操作系統(tǒng)的相當(dāng)部分,對嵌入式操作系統(tǒng)來說,這部分的重要性是不言而喻的。其中,鍵盤更是嵌入式應(yīng)用程序最常用的器件,因此本文以鍵盤為例,依據(jù)上述體系結(jié)構(gòu)構(gòu)建了鍵盤應(yīng)用模型,配置實現(xiàn)了鍵盤功能。
圖2為鍵盤構(gòu)件系統(tǒng)分層體系結(jié)構(gòu)。每層左邊顯示的“棒棒糖”形狀表示層的接口,接口是一組可以從外部訪問的類和對象。虛線箭頭表示的是依賴關(guān)系,每層都依賴于其下一層的包,且構(gòu)件與構(gòu)件之間也存在著依賴關(guān)系。上層調(diào)用位于下層具體一些的層次中的服務(wù),這種單向依賴使得可以在不同的上下文中使用相同的服務(wù),而無需考慮服務(wù)的實現(xiàn)方式。同時,由于低一些的層中提供了定義良好的接口集合,可以用不同的底層實現(xiàn)來替換它們,這樣,整個構(gòu)件系統(tǒng)就能更方便地移植到其他的物理環(huán)境中。
另外,圖2中的寬箭頭表明了數(shù)據(jù)的傳遞方向,數(shù)據(jù)在硬件抽象層取得后,逐級向上層傳遞,經(jīng)過層層處理、轉(zhuǎn)換,最終到達(dá)應(yīng)用層,被用戶程序所用。而此處,數(shù)據(jù)的傳輸過程其實也是一個原型的形成過程,即最終實現(xiàn)了一鍵盤響應(yīng)處理任務(wù)。
- 3.2 構(gòu)件生成集成環(huán)境的實現(xiàn)
基于構(gòu)件系統(tǒng)體系結(jié)構(gòu),本文擬開發(fā)了一構(gòu)件生成集成環(huán)境,如圖3所示。該環(huán)境可以實現(xiàn)構(gòu)件系統(tǒng)的自配置、自拼接、源代碼自生成,結(jié)構(gòu)清晰,使用簡便。隨后在該集成環(huán)境上,配置鍵盤構(gòu)件系統(tǒng),自動生成源代碼,并在博創(chuàng)ARM300實驗平臺上實現(xiàn)了鍵盤響應(yīng),很好地驗證了此體系結(jié)構(gòu)的可行性及優(yōu)越性。
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
結(jié)語
本文擴展了通用軟件構(gòu)件的概念,提出了適用于嵌入式系統(tǒng)的構(gòu)件模型;并在此基礎(chǔ)上設(shè)計了嵌入式軟件6層體系結(jié)構(gòu),采用了分層的結(jié)構(gòu)設(shè)計,實現(xiàn)了橫向分離,而“原型”的引用使得各層縱向相連。此體系結(jié)構(gòu)不僅實現(xiàn)了軟硬件分離,同時也實現(xiàn)了功能的分離,有利于實現(xiàn)穩(wěn)定性好的嵌入式系統(tǒng)。最后,本文在鍵盤應(yīng)用實例中驗證了其可行性。隨著嵌入式系統(tǒng)的硬件發(fā)展,以及基于構(gòu)件的軟件設(shè)計方法自身的不斷完善,基于構(gòu)件的軟件設(shè)計方法必將是未來的發(fā)展方向。 linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
本文擴展了通用軟件構(gòu)件的概念,提出了適用于嵌入式系統(tǒng)的構(gòu)件模型;并在此基礎(chǔ)上設(shè)計了嵌入式軟件6層體系結(jié)構(gòu),采用了分層的結(jié)構(gòu)設(shè)計,實現(xiàn)了橫向分離,而“原型”的引用使得各層縱向相連。此體系結(jié)構(gòu)不僅實現(xiàn)了軟硬件分離,同時也實現(xiàn)了功能的分離,有利于實現(xiàn)穩(wěn)定性好的嵌入式系統(tǒng)。最后,本文在鍵盤應(yīng)用實例中驗證了其可行性。隨著嵌入式系統(tǒng)的硬件發(fā)展,以及基于構(gòu)件的軟件設(shè)計方法自身的不斷完善,基于構(gòu)件的軟件設(shè)計方法必將是未來的發(fā)展方向。 linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論