蒙曉燕
(內(nèi)蒙古機電職業(yè)技術(shù)學院,內(nèi)蒙古 呼和浩特 010070)
嵌入式系統(tǒng)關(guān)鍵是以應用為主,將計算機技術(shù)作為基礎,充分滿足用戶對成本與功能、體積與功耗等多方面要求的系統(tǒng)。但在過去開發(fā)嵌入式系統(tǒng)軟件的時候,全部軟件涵蓋操作系統(tǒng)、應用程序與硬件底層,是共同開發(fā)的,不能分開。伴隨嵌入式系統(tǒng)軟件規(guī)模越來越復雜,越來越龐大,該種開發(fā)模式愈發(fā)暴露出更多的缺點和不足。由于該模式針對不一樣的硬件平臺需要重新開始,接著開發(fā)出新的軟件就其要實現(xiàn)的功能大部分相差無幾甚而相同,但限制了軟件的反復使用,與此同時還增加了開發(fā)時間與開發(fā)成本。
伴隨社會經(jīng)濟的持續(xù)發(fā)展與進步,開始涌現(xiàn)出了各種各樣的高新技術(shù),這些高新技術(shù)在很大程度上有效改善了傳統(tǒng)勞動力生產(chǎn)的模式,促使人們在工作崗位上可以更好地釋放出自己的潛在能力。與此同時,流水線形式的生產(chǎn)模式能夠大大提高相關(guān)人員工作熟練程度,有效地減少了在實際工作中不必要出現(xiàn)的經(jīng)濟損失,不僅提高了生產(chǎn)力,還提升了經(jīng)濟效益與社會效益。
分工合作這一概念同樣適用于嵌入式軟件開發(fā)領域。首先,相鄰的兩個軟件模塊可以彼此緊密聯(lián)系;其次,好似金字塔結(jié)構(gòu),下層軟件層并不了解還存在高層次軟件層。因此,僅需要滿足上述兩個特點,即為架構(gòu)分層,此為軟件架構(gòu)分層思想基礎[1]。軟件架構(gòu)分層發(fā)揮著重要作用,特別是在開發(fā)階段,采取架構(gòu)分層理念,可以發(fā)揮出顯著的優(yōu)勢,因此需要相關(guān)人員做出更加深入的研究和探討。
在軟件開發(fā)中運用分層技術(shù),實則是合理對用戶的一切需求展開分析與梳理,把軟件系統(tǒng)內(nèi)每一個功能領域抽象化,明確系統(tǒng)內(nèi)部每一個層次間的關(guān)系,繼而簡化模塊開發(fā)過程,把系統(tǒng)開發(fā)問題變成了簡單軟件設計方面的問題。與此同時,其也能夠支持系統(tǒng)包含的全部功能。在開展軟件系統(tǒng)開發(fā)工作的時候,系統(tǒng)場景通常都是非常復雜的,為有效處理問題必須精細化分層,同時每一個層次間的關(guān)系、接口對接關(guān)系更難設計。分層方式有很多,但軟件開發(fā)尚未制定出相應的標準。將實現(xiàn)計算機軟件全部功能作為基礎,要處理每個層次間的問題,將軟件實現(xiàn)過程簡化,與此同時可以隨時為上層提供服務。假設某個層次產(chǎn)生問題,那么僅會對其上一層次和下一層次帶來影響,而不會影響到整個系統(tǒng)。再者,所有層次內(nèi)部在分層時,可以最大限度地實現(xiàn)軟件的一切功能。
通常而言,使用嵌入式系統(tǒng)能夠把計算機軟件開發(fā)由技術(shù)層面劃分成硬件平臺與設備驅(qū)動層等多個方面,具體如下:(1)應用層。該層通常開展客戶應用需求類工作,涵蓋用戶功能和人機算法等各種開發(fā)工作。(2)硬件平臺。通常涵蓋了計算機軟件的主要部分,如嵌入式微處理器,這種處理器有著很多的外接端口,有利于展開對接。同時也有一部分周邊功能電路部分,比方說液晶顯示屏和開關(guān)等。(3)設備驅(qū)動。實現(xiàn)微處理器內(nèi)外部硬件API,可以有效給底部算法提供API,涵蓋了定時器與SPI等微處理器片內(nèi)外部驅(qū)動和API功能的實現(xiàn),也涵蓋了微處理器片外外設溫度傳感器等驅(qū)動與API功能實現(xiàn)。通常而言,設備驅(qū)動為單獨的部分,將操作平臺底層硬件語言作為基礎構(gòu)建硬件抽象層,可有效給上層應用提供對接端口。(4)調(diào)動系統(tǒng)。在編寫階段能夠合理運用嵌入式操作系統(tǒng)作為基礎加以編寫。通常而言,一般可以劃分成如下幾個部分,即嵌入式操作系統(tǒng)以及基礎應用裁剪。又或是能夠基于已有的調(diào)度器展開如管理等專用系統(tǒng)的編寫工作。
嵌入式軟件開發(fā)過程中采用架構(gòu)分層旨在有效關(guān)注“面”,特別是開發(fā)軟件的時候,可能會遭到各種各樣十分復雜的問題,不僅對于軟件開發(fā)進度有很大的影響,還有可能會加大相關(guān)人員的工作量。因此必須要對多種抽象且復雜的問題加以分解,繼而針對性處理發(fā)生的問題,以此提高軟件實用性,加強用戶使用體驗。
(1)相關(guān)工作人員能夠嚴格按照專業(yè)進行明確分工,全身心關(guān)注在某個層次。(2)經(jīng)過層次間的隔離,可以快速用新的實現(xiàn)取代原本某層次的實現(xiàn),僅需要前后提供的服務接口一致,就可以替換。(3)能夠有效避免各層之間的依賴性。(4)易于制定出層標準。(5)可以有效提升軟件復用性,減少系統(tǒng)軟件開發(fā)周期,增強系統(tǒng)軟件質(zhì)量。
嵌入式軟件架構(gòu)分層的缺點表現(xiàn)在:(1)分層無法封裝全部功能,一部分復雜業(yè)務,假設出現(xiàn)功能變動,就會牽扯到全部的層。(2)穿過層次調(diào)用,可能會降低效率,對水平分布的層級分劃,降低效率十分顯著[2]。
嵌入式軟件架構(gòu)分層一般在邏輯方面展開垂直層次劃分,于物理上展開水平層次劃分。此次闡述的架構(gòu)分層設計方式即分別由兩個角度進行雙向劃分,也就是邏輯層與物理層,邏輯層面被叫作分層構(gòu)建,物理層面被叫作交互分層。分層構(gòu)建根據(jù)由下至上按秩序涵蓋了驅(qū)動與基礎層、中間與應用層;而交互分層涵蓋了人機界面和控制層、實體與接口層。
交互分層每一個層次之間的關(guān)系見圖1所示,界面層承擔的職責為人機交互;控制層承擔協(xié)調(diào)的工作,接收控制命令,對實體展開有效操縱;實體層承擔運用邏輯和數(shù)據(jù)的責任,接口層承擔外部系統(tǒng)接口封裝的工作。而構(gòu)建分層中,每一個層次間的關(guān)系就是:驅(qū)動層承擔封裝硬件邏輯的工作;基礎層用來將驅(qū)動封裝當作基礎服務單元;中間層則是用來將應用與基礎環(huán)境相關(guān)隔離,面向應用提供適當?shù)姆?;應用層就是面對應用提供服務,涵蓋和硬件沒有關(guān)系的內(nèi)容,關(guān)鍵是對處理數(shù)據(jù)和控制原理等的輸出。在這些層次之中,驅(qū)動與基礎層受環(huán)境影響,而應用層與邏輯息息相關(guān),和環(huán)境毫無關(guān)系[3]。各層次間無法產(chǎn)生循環(huán)依賴性,倘若發(fā)生了循環(huán)依賴性的現(xiàn)象,那么需要使用兩種方式進行處理,一種就是進行共享數(shù)據(jù)區(qū)構(gòu)建;另外一種就是使用觀察者模式。
圖1 交互分層關(guān)系
在進行層次正交分析以前,需要對軟件兩個不一樣的維度分層中,層次的內(nèi)容與層次劃分加以有效確定,如此才能夠明確每一個層次間的關(guān)系。而層次劃分原則是:(1)參照正交分層;(2)相同類型開發(fā)關(guān)注點可分成一層;(3)常常一并復用的分成一層;(4)時常共同變化的劃分成一個層次;(5)和外部接口的需要分為一層[4]。
本文將電機監(jiān)控系統(tǒng)嵌入式應用軟件架構(gòu)分層當成例子加以闡述說明:電機監(jiān)控系統(tǒng)是計算機加以控制,而控制單元關(guān)鍵是以鍵區(qū)、網(wǎng)絡以及顯示屏構(gòu)建而成;通常使用電流接觸器與奧騰轉(zhuǎn)化器開展監(jiān)控活動,以電機提供動力方面的支持,經(jīng)過鍵區(qū)和顯示屏實現(xiàn)監(jiān)控活動,促使監(jiān)控活動順利進行。
相關(guān)操作人員依托鍵區(qū)控制電機,通過材料成分表加以處理,經(jīng)過奧騰轉(zhuǎn)化器進行實體監(jiān)控。實體電機把實際狀態(tài)傳遞至電流接觸器,再傳輸?shù)讲牧铣煞直?,與此同時在顯示屏上顯現(xiàn)出實況。合理運用材料成分表能夠以網(wǎng)絡和計算機進行連接,同時采用計算機進行具體監(jiān)控活動[5]。
經(jīng)過運用嵌入式軟件架構(gòu)分層,可以了解到該種技術(shù)具備結(jié)構(gòu)清楚、邏輯純粹且分工清晰等特點,能夠有效提高軟件開發(fā)工作效率,與此同時可以提升工作進度,對于后續(xù)工作水平提高與優(yōu)化升級等而言是非常容易進行的。
綜上所言,經(jīng)過闡述嵌入式軟件架構(gòu)分層內(nèi)在涵義且經(jīng)過討論架構(gòu)分層設計,能夠從中了解到在開發(fā)嵌入式軟件的時候,結(jié)合架構(gòu)分層技術(shù)具有明顯的拓展性,可以充分累積成熟的軟件功能模塊,繼而大大削弱后續(xù)對嵌入式系統(tǒng)維護的困難程度,提高軟件系統(tǒng)經(jīng)濟性以及實用性。與此同時,在軟件開發(fā)過程中運用架構(gòu)分層設計,能夠有效提高軟件項目開發(fā)效率,確保軟件質(zhì)量,提高軟件競爭力,為人們提供更加優(yōu)質(zhì)的服務。