隨著半導體制造行業的迅速發展,微處理器的價格在實際性能大幅度提升的同時卻在大幅度降低,使得基于嵌入式處理器和微型計算機系統的實時多任務系統成為解決諸多應用問題的一種高效率、低成本的有效方案。目前,囊括工業、消費電子、醫療、軍事等許多方面的產品都是基于嵌入式系統的。隨著應用需求的日益增長,嵌入式系統的功能越來越強大,系統體系結構越來越復雜,對系統軟件的要求也很自然的“水漲船高”。由于多數嵌入式系統工作在并發性和實時性要求較高的場合,因此,并發和實時嵌入式系統軟件設計面臨著巨大的挑戰。國內外許多專用人士結合嵌入式軟件開發的實踐經驗,針對嵌入式系統軟件開發的特點提出了許多有效的解決辦法,本文所介紹的CODARTS建模方法就是其中的一種。
1 CODARTS方法概述
CODARTS(Concurrent Design Approach for Real-Time System)方法源自20世紀80年代初,是在解決工業機器人控制系統問題中產生的。其前身為DARTS(實時系統結構設計方法),后來為了解決分布式實時應用程序的需要,融入了采用狀態轉換圖對系統行為特征建模等方法,逐步演化成為CODARTS建模方法。
CODARTS方法是一種通用的設計方法。它借鑒了COBRA(Concurrent Object Based Real-time Analysis)方法對系統進行分析建模的思想,強調將系統分解為多個子系統,并將子系統定義為一組由若干對象和功能支持的服務。在系統劃分完成后,CODARTS使用DARTS方法將任務結構化作為工作重點,提供了任務結構化標準幫助確定并發任務、任務間接口,使用事件序列圖對整個系統建模,并支持設計方案的性能分析和軟件的增量式開發。
CODARTS方法建模的主要步驟如下:
①開發系統的環境模型和行為模型,使用COBRA方法對問題域進行分析和建模。COBRA方法為依據系統環境圖開發環境模型提供了系統分解策略。采用COBRA方法將系統分解成為若干子系統,并且確定子系統中對象和功能以及它們在外事件序列場景 下進行交互的方式。
②應用任務結構化標準確定系統(或子系統)中的并發任務,主要內容包括并發任務的確定、任務間通信以及同步接口的確定。
③應用模塊結構化標準確定系統中的信息隱藏模塊。信息隱藏模塊的思想為盡可能地減少或消除全局變量,把有可能發生的變化信息封裝在一個模塊內容。
④根據任務劃分和信息隱藏模塊劃分構建軟件構架。
⑤定義組建接口規范、以增量方式開發軟件。
2 CODARTS應用
下面結合實例介紹如何在具體應用中使用CODARTS進行系統分析和建模。
(1)問題域簡要描述
某廠自動化產品檢測生產線要求具備的功能是,通過對該產品在各種工作狀態中的電壓、電流、壓力、溫度等參數的檢測來判斷該產品的生產合格情況。其中的智能檢測模塊為主要設計內容。該檢測模塊具有可配置的多通路檢測;能夠和上位PC通過RS485進行通信,根據PC的指令或者本地鍵盤輸入的指令進行系統運行控制、配置參數設定、采樣結果上傳等;能夠支持本地LCD界面顯示;根據指令完成手動或者實時自動(按照系統設定時鐘間隔)參數采樣和結果顯示;能夠自動進行抗干擾軟件處理。
(2)處理環境圖
CODARTS方法使用COBRA方法開發系統環境模型。系統環境模型描述了系統運行時所處的外部客觀環境,包括系統的輸入和輸出。其關鍵問題是確定與系統之間存在接口的外部實體——終端。終端通常代表數據源或數字接收者或兩者的結合。判斷終端的標準通常是觀察外部實體是否直接與系統連接。根據問題域的描述,系統外部環境由上位PC、系統時鐘、電源監控、各種工作參數傳器、本地鍵盤、本地LCD和工作區解發開關組成。由圖1可見,系統環境外部實體均為真實環境中的外部I/O設備。
(3)子系統環境圖
通常所開發的系統都是復雜的,所以COBRA要求將系統分解成為子系統,各個子系統之間應該是相對獨立的和松散耦合的。子系統內部要求具有較強的內聚性,并且要求合理定義子系統之間的接口,這樣子系統可以獨立進行設計。子系統劃分原則:①子系統可以由一個或多個功能緊密聯系的對象構成;②外部實體僅與一個子系統存在接口;③數據存儲應該封裝在一個子系統中;④一個控制對象應該構成一個子系統。按照上面的標準,結合系統環境圖進行分解可以得到子系統環境圖,如圖2所示。
系統分解為系統控制和檢測兩個子系統。這兩個子系統之間的接口有兩個,分別是啟動檢測事件和檢測結果。
(4)建立系統行為模型
行為模型是指描述系統在外部環境輸入的作用下的響應。通常,系統的響應是基于系統狀態的,因此,要用狀態/數據轉換圖作為描述系統行為的方法是十分直觀和有效的。圖2中“系統控制”子系統通過控制轉化圖進行行為建模,如圖3所示。
從圖3中可以看到,“系統控制”子系統的狀態轉化均是基于外部環境事件和系統內部事件觸發而產生的。因此在開發了控制狀態轉換圖之后,設計人員需要考慮來自外部環境的輸入,即開發場景。每個場景都是由若干外部事件的序列組成的。采用不同場景作為輸入,可以很好地驗證系統控制狀態轉換的正確性。
(5)劃分對象、確定相應功能
對象和功能是系統中最小的具有并發性的組成成分。將子系統進一步細化成對象和功能,先要確定問題域中的對象,然后確定與這些對象進行交互的功能。COBRA建模標準規定了以下幾個標準的對象:外中設備I/O對象、用戶角色對象、控制對象、數據抽象對象和算法對象。按照這個劃分標準,實時檢測系統具有電源監控I/O對象、時鐘對象、4個參數檢測I/O對象、LCD顯示I/O對象和上位PC對象;同時具有本地鍵盤角色對象、系統控制對象、檢測控制對象、抗干擾濾波算法對象。數據抽象對象則有檢測通道配置參數對象和參數檢測結構對象。
(6)任務結構化
嵌入式系統多為并發系統,因此將系統劃分為多個任務可以使系統結構更加清晰,提高系統的執行效率,提高任務調度靈活性。CODARTS方法的任務結構化標準可以分為4個主要的類:I/O任務結構化標準、內部任務結構化標準、任務內聚標準和任務優先級標準。
I/O任務結構化標準將任務分成:異步I/O設備任務(I/O設備多采用中斷通知系統)、定期I/O任務(基于系統時鐘)、資源監視任務。由前述分析可以確定:在系統中,手動參數檢測任務、PC指令處理任務、數據上傳任務和參數設置任務為異步I/O設備任務,自動參數檢測任務和LCD顯示任務為定期I/O任務。
內部任務結構化標準同樣將內部任務劃分成為定期任務、異步任務,并增加了控制任務、用戶角色任務。其中系統抗干擾數字濾波任務屬于定期任務,用戶使用鍵盤進行本地輸入控制屬于用戶角色任務,執行控制子系統控制狀態轉化任務則屬于控制任務。
對于嵌入式系統而言,實時性要求是非常重要的。根據具體應用情況,通過賦予系統任務不同的優先級別,可以提高系統的整體性能,在一定范圍內(一定的硬件平臺基礎上)滿足實時性要求。任務優先級標準將任務分成時間關鍵型任務和非時間關鍵計算集中型任務。在本系統中,屬于時間關鍵型任務的有6個,分別是手動參數檢測任務、PC指令處理任務、數據上傳任務、參數設置任務、自動參數檢測任務和鍵盤輸入處理及響應。這6個任務各自的優先權有所不同。為保證系統采樣的精度,需要以等間隔時間進行采樣,因此具有自動參數檢測任務高優先級,其它5項任務則具有相對較低的任務優先權。系統抗干擾數字濾波任務則屬于典型的非時間關鍵計算集中型任務。
(7)其它
在系統環境建模、子系統劃分以及任務結構化的基礎上,將進行系統的詳細設計。這包括確定任務具體內容、設計任務間接口標準、信息隱藏模塊設計、關鍵數據結構設計等。
結語
CODARTS建模方法結合了COBRA和DARTS方法的優點,在實際應用中,采用將并發任務映射并發對象的手段對問題域進行分析和建模,汲取了COBRA的對象結構化標準的優勢;同時,采取通過控制/數據轉換圖像描述系統行為特片的手段同,來保證系統的并發與實時性要求。
- CODA(5630)
嵌入式軟件開發中redlib與newlib的區別是什么
嵌入式軟件開發中的程序架構
嵌入式軟件開發好學嗎?
嵌入式軟件開發字符串拷貝函數strcpy該如何去實現呢
嵌入式軟件開發工具
嵌入式軟件開發工程師 — IT圈的高富帥!
嵌入式軟件開發工程師培訓 嵌入式系統主要特點
嵌入式軟件開發工程師培訓 嵌入式系統主要特點
嵌入式軟件開發工程師培訓 嵌入式系統主要特點
嵌入式軟件開發應該掌握哪些知識?
嵌入式軟件開發是做什么的
嵌入式軟件開發是做什么的?
嵌入式軟件開發的特點有哪些呢
嵌入式軟件開發要掌握哪些基本技能
嵌入式軟件開發需要學習什么?
嵌入式ARM之嵌入式軟件開發的測試與編碼
嵌入式Linux操作系統及其上應用軟件開發目標是什么
嵌入式開發發展前景 嵌入式軟件開發工程師前景
CW32嵌入式軟件開發的必備知識
RTOS是嵌入式系統的軟件開發平臺
不容錯過的嵌入式軟件開發經驗分享
從事嵌入式軟件開發有什么好處
做harmonyos嵌入式軟件開發,從最基礎的底層知識開始,需要學習哪些知識
公司招聘嵌入式軟件開發,求推薦!
基于MCU的嵌入式軟件開發
基于UML嵌入式軟件的指紋門禁系統開發應用
基于模型的嵌入式軟件開發設計
如何學習嵌入式軟件開發
學嵌入式軟件開發需要些什么知識?
廣東外企嵌入式軟件開發的職位
怎么解決在使用stm32+ucos進行嵌入式軟件開發中遇到的系統重啟現象?
武漢外企嵌入式軟件開發的職位
誠聘嵌入式軟件開發
誠聘嵌入式軟件開發
CODARTS建模方法在嵌入式軟件開發中的應用
10嵌入式系統軟件開發環境中調試器的設計
29嵌入式軟件開發與Embedded-GIS
36基于嵌入式系統的軟件開發
51嵌入式軟件開發流程及ARM的中斷調試方法介紹
6019Eclipse嵌入式軟件開發平臺
55嵌入式軟件開發中構件技術的研究
32基于SCADE的嵌入式軟件開發方法研究
10嵌入式軟件開發概述
3嵌入式軟件開發的優勢分析
5804嵌入式通信軟件開發設計
0從事嵌入式軟件開發的優缺點
1536嵌入式軟件開發編程規范介紹
4994詳解嵌入式軟件開發到FPGA開發
6993關于嵌入式Linux軟件開發的常用知識
1885嵌入式開發中常用的軟件架構
6354
嵌入式軟件開發基礎實驗報告中斷實驗
17嵌入式軟件開發基礎實驗報告數碼管顯示
3嵌入式軟件開發基礎實驗報告實時時鐘
9嵌入式軟件開發基礎實驗報告4×4鍵盤控制
10嵌入式開發中軟件架構存在的意義
2887
嵌入式軟件開發工程師與FPGA開發工程師
26嵌入式軟件開發之程序架構(一)
9關于做嵌入式軟件開發和普通桌面軟件開發的區別問題
4嵌入式軟件開發環境
7嵌入式軟件開發是什么??
8從事嵌入式軟件開發的好處是什么
26嵌入式軟件開發做什么?嵌入式開發培訓學哪些
19嵌入式軟件開發的特點、設計流程、嵌入式軟件的結構
38嵌入式軟件開發入門
17嵌入式軟件開發和軟件開發的區別
3829嵌入式軟件開發與AI整合
1934
電子發燒友App



評論