當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]CODARTS建模方法在嵌入式軟件開發(fā)中的應(yīng)用

摘要:嵌入式系統(tǒng)的工作環(huán)境基礎(chǔ)上都是并發(fā)和實時的。隨著應(yīng)用需求的增長,嵌入式系統(tǒng)軟件不得不變得越來越復(fù)雜,越來越龐大。CODARTS方法融入了COBRA方法和DARTS方法的優(yōu)點(diǎn),提出了針對并發(fā)和實時系統(tǒng)軟件的設(shè)計方法,為嵌入式軟件開發(fā)工作提供了一條捷徑。本文結(jié)合實時檢測系統(tǒng)的具體應(yīng)用,簡要介紹CODARTS的實際開發(fā)過程。

    關(guān)鍵詞:嵌入式系統(tǒng) CODARTS 并發(fā)性 實時性

隨著半導(dǎo)體制造行業(yè)的迅速發(fā)展,微處理器的價格在實際性能大幅度提升的同時卻在大幅度降低,使得基于嵌入式處理器和微型計算機(jī)系統(tǒng)的實時多任務(wù)系統(tǒng)成為解決諸多應(yīng)用問題的一種高效率、低成本的有效方案。目前,囊括工業(yè)、消費(fèi)電子、醫(yī)療、軍事等許多方面的產(chǎn)品都是基于嵌入式系統(tǒng)的。隨著應(yīng)用需求的日益增長,嵌入式系統(tǒng)的功能越來越強(qiáng)大,系統(tǒng)體系結(jié)構(gòu)越來越復(fù)雜,對系統(tǒng)軟件的要求也很自然的“水漲船高”。由于多數(shù)嵌入式系統(tǒng)工作在并發(fā)性和實時性要求較高的場合,因此,并發(fā)和實時嵌入式系統(tǒng)軟件設(shè)計面臨著巨大的挑戰(zhàn)。國內(nèi)外許多專用人士結(jié)合嵌入式軟件開發(fā)的實踐經(jīng)驗,針對嵌入式系統(tǒng)軟件開發(fā)的特點(diǎn)提出了許多有效的解決辦法,本文所介紹的CODARTS建模方法就是其中的一種。

1 CODARTS方法概述

CODARTS(Concurrent Design Approach for Real-Time System)方法源自20世紀(jì)80年代初,是在解決工業(yè)機(jī)器人控制系統(tǒng)問題中產(chǎn)生的。其前身為DARTS(實時系統(tǒng)結(jié)構(gòu)設(shè)計方法),后來為了解決分布式實時應(yīng)用程序的需要,融入了采用狀態(tài)轉(zhuǎn)換圖對系統(tǒng)行為特征建模等方法,逐步演化成為CODARTS建模方法。

CODARTS方法是一種通用的設(shè)計方法。它借鑒了COBRA(Concurrent Object Based Real-time Analysis)方法對系統(tǒng)進(jìn)行分析建模的思想,強(qiáng)調(diào)將系統(tǒng)分解為多個子系統(tǒng),并將子系統(tǒng)定義為一組由若干對象和功能支持的服務(wù)。在系統(tǒng)劃分完成后,CODARTS使用DARTS方法將任務(wù)結(jié)構(gòu)化作為工作重點(diǎn),提供了任務(wù)結(jié)構(gòu)化標(biāo)準(zhǔn)幫助確定并發(fā)任務(wù)、任務(wù)間接口,使用事件序列圖對整個系統(tǒng)建模,并支持設(shè)計方案的性能分析和軟件的增量式開發(fā)。

CODARTS方法建模的主要步驟如下:

①開發(fā)系統(tǒng)的環(huán)境模型和行為模型,使用COBRA方法對問題域進(jìn)行分析和建模。COBRA方法為依據(jù)系統(tǒng)環(huán)境圖開發(fā)環(huán)境模型提供了系統(tǒng)分解策略。采用COBRA方法將系統(tǒng)分解成為若干子系統(tǒng),并且確定子系統(tǒng)中對象和功能以及它們在外事件序列場景 下進(jìn)行交互的方式。

②應(yīng)用任務(wù)結(jié)構(gòu)化標(biāo)準(zhǔn)確定系統(tǒng)(或子系統(tǒng))中的并發(fā)任務(wù),主要內(nèi)容包括并發(fā)任務(wù)的確定、任務(wù)間通信以及同步接口的確定。

③應(yīng)用模塊結(jié)構(gòu)化標(biāo)準(zhǔn)確定系統(tǒng)中的信息隱藏模塊。信息隱藏模塊的思想為盡可能地減少或消除全局變量,把有可能發(fā)生的變化信息封裝在一個模塊內(nèi)容。

④根據(jù)任務(wù)劃分和信息隱藏模塊劃分構(gòu)建軟件構(gòu)架。

⑤定義組建接口規(guī)范、以增量方式開發(fā)軟件。

2 CODARTS應(yīng)用

下面結(jié)合實例介紹如何在具體應(yīng)用中使用CODARTS進(jìn)行系統(tǒng)分析和建模。

(1)問題域簡要描述

某廠自動化產(chǎn)品檢測生產(chǎn)線要求具備的功能是,通過對該產(chǎn)品在各種工作狀態(tài)中的電壓、電流、壓力、溫度等參數(shù)的檢測來判斷該產(chǎn)品的生產(chǎn)合格情況。其中的智能檢測模塊為主要設(shè)計內(nèi)容。該檢測模塊具有可配置的多通路檢測;能夠和上位PC通過RS485進(jìn)行通信,根據(jù)PC的指令或者本地鍵盤輸入的指令進(jìn)行系統(tǒng)運(yùn)行控制、配置參數(shù)設(shè)定、采樣結(jié)果上傳等;能夠支持本地LCD界面顯示;根據(jù)指令完成手動或者實時自動(按照系統(tǒng)設(shè)定時鐘間隔)參數(shù)采樣和結(jié)果顯示;能夠自動進(jìn)行抗干擾軟件處理。

(2)處理環(huán)境圖

CODARTS方法使用COBRA方法開發(fā)系統(tǒng)環(huán)境模型。系統(tǒng)環(huán)境模型描述了系統(tǒng)運(yùn)行時所處的外部客觀環(huán)境,包括系統(tǒng)的輸入和輸出。其關(guān)鍵問題是確定與系統(tǒng)之間存在接口的外部實體——終端。終端通常代表數(shù)據(jù)源或數(shù)字接收者或兩者的結(jié)合。判斷終端的標(biāo)準(zhǔn)通常是觀察外部實體是否直接與系統(tǒng)連接。根據(jù)問題域的描述,系統(tǒng)外部環(huán)境由上位PC、系統(tǒng)時鐘、電源監(jiān)控、各種工作參數(shù)傳器、本地鍵盤、本地LCD和工作區(qū)解發(fā)開關(guān)組成。由圖1可見,系統(tǒng)環(huán)境外部實體均為真實環(huán)境中的外部I/O設(shè)備。

(3)子系統(tǒng)環(huán)境圖

通常所開發(fā)的系統(tǒng)都是復(fù)雜的,所以COBRA要求將系統(tǒng)分解成為子系統(tǒng),各個子系統(tǒng)之間應(yīng)該是相對獨(dú)立的和松散耦合的。子系統(tǒng)內(nèi)部要求具有較強(qiáng)的內(nèi)聚性,并且要求合理定義子系統(tǒng)之間的接口,這樣子系統(tǒng)可以獨(dú)立進(jìn)行設(shè)計。子系統(tǒng)劃分原則:①子系統(tǒng)可以由一個或多個功能緊密聯(lián)系的對象構(gòu)成;②外部實體僅與一個子系統(tǒng)存在接口;③數(shù)據(jù)存儲應(yīng)該封裝在一個子系統(tǒng)中;④一個控制對象應(yīng)該構(gòu)成一個子系統(tǒng)。按照上面的標(biāo)準(zhǔn),結(jié)合系統(tǒng)環(huán)境圖進(jìn)行分解可以得到子系統(tǒng)環(huán)境圖,如圖2所示。

    系統(tǒng)分解為系統(tǒng)控制和檢測兩個子系統(tǒng)。這兩個子系統(tǒng)之間的接口有兩個,分別是啟動檢測事件和檢測結(jié)果。

(4)建立系統(tǒng)行為模型

行為模型是指描述系統(tǒng)在外部環(huán)境輸入的作用下的響應(yīng)。通常,系統(tǒng)的響應(yīng)是基于系統(tǒng)狀態(tài)的,因此,要用狀態(tài)/數(shù)據(jù)轉(zhuǎn)換圖作為描述系統(tǒng)行為的方法是十分直觀和有效的。圖2中“系統(tǒng)控制”子系統(tǒng)通過控制轉(zhuǎn)化圖進(jìn)行行為建模,如圖3所示。

從圖3中可以看到,“系統(tǒng)控制”子系統(tǒng)的狀態(tài)轉(zhuǎn)化均是基于外部環(huán)境事件和系統(tǒng)內(nèi)部事件觸發(fā)而產(chǎn)生的。因此在開發(fā)了控制狀態(tài)轉(zhuǎn)換圖之后,設(shè)計人員需要考慮來自外部環(huán)境的輸入,即開發(fā)場景。每個場景都是由若干外部事件的序列組成的。采用不同場景作為輸入,可以很好地驗證系統(tǒng)控制狀態(tài)轉(zhuǎn)換的正確性。

(5)劃分對象、確定相應(yīng)功能

對象和功能是系統(tǒng)中最小的具有并發(fā)性的組成成分。將子系統(tǒng)進(jìn)一步細(xì)化成對象和功能,先要確定問題域中的對象,然后確定與這些對象進(jìn)行交互的功能。COBRA建模標(biāo)準(zhǔn)規(guī)定了以下幾個標(biāo)準(zhǔn)的對象:外中設(shè)備I/O對象、用戶角色對象、控制對象、數(shù)據(jù)抽象對象和算法對象。按照這個劃分標(biāo)準(zhǔn),實時檢測系統(tǒng)具有電源監(jiān)控I/O對象、時鐘對象、4個參數(shù)檢測I/O對象、LCD顯示I/O對象和上位PC對象;同時具有本地鍵盤角色對象、系統(tǒng)控制對象、檢測控制對象、抗干擾濾波算法對象。數(shù)據(jù)抽象對象則有檢測通道配置參數(shù)對象和參數(shù)檢測結(jié)構(gòu)對象。

(6)任務(wù)結(jié)構(gòu)化

嵌入式系統(tǒng)多為并發(fā)系統(tǒng),因此將系統(tǒng)劃分為多個任務(wù)可以使系統(tǒng)結(jié)構(gòu)更加清晰,提高系統(tǒng)的執(zhí)行效率,提高任務(wù)調(diào)度靈活性。CODARTS方法的任務(wù)結(jié)構(gòu)化標(biāo)準(zhǔn)可以分為4個主要的類:I/O任務(wù)結(jié)構(gòu)化標(biāo)準(zhǔn)、內(nèi)部任務(wù)結(jié)構(gòu)化標(biāo)準(zhǔn)、任務(wù)內(nèi)聚標(biāo)準(zhǔn)和任務(wù)優(yōu)先級標(biāo)準(zhǔn)。

I/O任務(wù)結(jié)構(gòu)化標(biāo)準(zhǔn)將任務(wù)分成:異步I/O設(shè)備任務(wù)(I/O設(shè)備多采用中斷通知系統(tǒng))、定期I/O任務(wù)(基于系統(tǒng)時鐘)、資源監(jiān)視任務(wù)。由前述分析可以確定:在系統(tǒng)中,手動參數(shù)檢測任務(wù)、PC指令處理任務(wù)、數(shù)據(jù)上傳任務(wù)和參數(shù)設(shè)置任務(wù)為異步I/O設(shè)備任務(wù),自動參數(shù)檢測任務(wù)和LCD顯示任務(wù)為定期I/O任務(wù)。

內(nèi)部任務(wù)結(jié)構(gòu)化標(biāo)準(zhǔn)同樣將內(nèi)部任務(wù)劃分成為定期任務(wù)、異步任務(wù),并增加了控制任務(wù)、用戶角色任務(wù)。其中系統(tǒng)抗干擾數(shù)字濾波任務(wù)屬于定期任務(wù),用戶使用鍵盤進(jìn)行本地輸入控制屬于用戶角色任務(wù),執(zhí)行控制子系統(tǒng)控制狀態(tài)轉(zhuǎn)化任務(wù)則屬于控制任務(wù)。

    對于嵌入式系統(tǒng)而言,實時性要求是非常重要的。根據(jù)具體應(yīng)用情況,通過賦予系統(tǒng)任務(wù)不同的優(yōu)先級別,可以提高系統(tǒng)的整體性能,在一定范圍內(nèi)(一定的硬件平臺基礎(chǔ)上)滿足實時性要求。任務(wù)優(yōu)先級標(biāo)準(zhǔn)將任務(wù)分成時間關(guān)鍵型任務(wù)和非時間關(guān)鍵計算集中型任務(wù)。在本系統(tǒng)中,屬于時間關(guān)鍵型任務(wù)的有6個,分別是手動參數(shù)檢測任務(wù)、PC指令處理任務(wù)、數(shù)據(jù)上傳任務(wù)、參數(shù)設(shè)置任務(wù)、自動參數(shù)檢測任務(wù)和鍵盤輸入處理及響應(yīng)。這6個任務(wù)各自的優(yōu)先權(quán)有所不同。為保證系統(tǒng)采樣的精度,需要以等間隔時間進(jìn)行采樣,因此具有自動參數(shù)檢測任務(wù)高優(yōu)先級,其它5項任務(wù)則具有相對較低的任務(wù)優(yōu)先權(quán)。系統(tǒng)抗干擾數(shù)字濾波任務(wù)則屬于典型的非時間關(guān)鍵計算集中型任務(wù)。

(7)其它

在系統(tǒng)環(huán)境建模、子系統(tǒng)劃分以及任務(wù)結(jié)構(gòu)化的基礎(chǔ)上,將進(jìn)行系統(tǒng)的詳細(xì)設(shè)計。這包括確定任務(wù)具體內(nèi)容、設(shè)計任務(wù)間接口標(biāo)準(zhǔn)、信息隱藏模塊設(shè)計、關(guān)鍵數(shù)據(jù)結(jié)構(gòu)設(shè)計等。

結(jié)語

CODARTS建模方法結(jié)合了COBRA和DARTS方法的優(yōu)點(diǎn),在實際應(yīng)用中,采用將并發(fā)任務(wù)映射并發(fā)對象的手段對問題域進(jìn)行分析和建模,汲取了COBRA的對象結(jié)構(gòu)化標(biāo)準(zhǔn)的優(yōu)勢;同時,采取通過控制/數(shù)據(jù)轉(zhuǎn)換圖像描述系統(tǒng)行為特片的手段同,來保證系統(tǒng)的并發(fā)與實時性要求。

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉