1 概述
隨著我國裝備制造業的發展,嵌入式系統已經成為制造業的核心技術。它被廣泛地應用到工業控制、仿真系統、醫療儀器、信息家電、通信設備等眾多領域。目前,圍繞嵌入式系統展開研究和開發,已經成為計算機軟硬件技術發展最活躍的方向之一。
嵌入式系統不同于通常純粹的軟件系統或硬件系統,而是軟件與硬件通過在一起的,有些功能既可以用軟件實現,也可以通過硬件實現。另外,嵌入式系統設計所面臨的挑戰不僅涉及到計算機軟件和硬件,也會涉及到許多非計算機工程中的問題,諸如機械尺寸問題、功耗問題和制造成本問題等。即使是計算機工程方面的問題,大部分系統在實時性、可靠性和多速率等問題方面也都有特別要求。
目前,實現嵌入式系統的硬件方法主要有:定制邏輯(ASIC)、現場可編程門陣列(FPGA)和嵌入式微處理器三種。在實際系統實施中,絕大多數系統是采用嵌入式微處理器方式,如單片機、單板機或嵌入式微處理器芯片等。這是因為用微處理器實現嵌入式系統是一種十分有效的方法,它使得在不同價位上設計不同特性的產品系列成為可能,并且能夠擴充新特性以滿足飛速發展變化的市場需求。
2 嵌入式系統設計面臨的問題和解決辦法
過去嵌入式系統分析和設計方面的主要問題為:①分析設計沒有一個統一的標準;②分析設計方法不統一;③從分析設計到制作和編程沒有一個始終一貫的工程化方法,使得產品形成的每一個過程人為因素影響十分嚴重;④分析設計的成果不能被開發類似項目或產品的重用。以上4個方面的問題成為多年來制約嵌入式系統發展的主要瓶頸,使得大部分從事嵌入式系統應用開發的組織和團體,基本上是采用小組甚至是作坊式的動作模式。這使得開發較復雜或大型系統的工作變得十分困難甚至無法進行,或因為系統需求的不斷變化或小組成員的流動導致項目失敗。我們知道,人類之間要想達成對任何事件的交流,前提是實現對該事物形態(或表現形式)和行為的標準化,之后才可能實現對該事物形態(或表現形式)和行為的標準化,之后才可能實現對其的存儲、處理和交流。嵌入式系統制作過程產品以上4方面問題的主要原因是沒有一個對嵌入式系統需求、分析、設計、制作、測試和維護過程的結構特征和行業特征統一的工程化描述方法。目前,面向對象技術正是建立在對真實世界抽象思維的基礎上,統一建模語言(UML)為這種思維提供了可視化工具,解決了以上難題。使用UML對嵌入式系統建模,不僅可以使系統分析設計實現標準化,而且完全可以實現系統分析、設計和制作、測試分別由不同的項目成員在統一、一貫的方式下完成,也使得系統分析和設計模型在相似系統中重用成為可能。
3 系統建模
面向對象的嵌入式系統建模同任何軟件密集型系統建模一樣,從系統中的類建模開始。為了解類的結構,首先對系統工作過程作一個總體陳述。無論是采用問題空間詞匯抽象方法還是采用用例(use case)驅動建模方法,目標都是找到系統以類或對象作為構造塊的類圖。如果采用用例驅動的系統分析方法,該內容也可以用用例視圖加以模型規格說明,然后使其作為系統白盒測試依據。由于使用用例視圖做的規格說明篇幅比較大,本文僅用文字描述說明這部分內容。
本文所例舉的系統為一小型變頻調速器系統。對任何一個三相交流電機,在輸入單相交流電源的情況下,實現6Hz到[9Hz,50Hz]區間內任一頻率的穩步啟動運轉。系統用戶界面包括2位數碼顯示器、一個運行/停止指示器、電源開/關指示器、6個按鈕鍵盤和電源開關。2位顯示器用于顯示電機當前正在運轉的頻率,6個按鍵分別代表啟動、停機、正點動、反點動、頻率加和頻率減。啟動命令使電機從6Hz以每步0.2Hz的步長穩步提升到當前設置頻率上后在該頻率上穩定運轉;正點動命令使電機穩定在6Hz上正向運轉;反點動命令時,電機轉動頻率與正點動上同,但旋轉方向相反;頻率加命令在電機運轉時使電機以1Hz/s的速率增加運轉頻率和當前預置頻率,在電機停止時僅改變預置頻率;頻率減命令與頻率加命令相反;停機命令則無論電機運行在什么狀態下,都使電機停止運轉。
系統類圖如圖1所示。圖中有2個硬件類Button*和Light*,1個主動類Microcontrollor和3個一般類Convertor、Watchdog和Display。Button*類代表所有按鈕;Light*類代表2個發光數碼管和1個運行指示燈;主動類Microcontrollor是系統主控模塊,完成所有對象的調度和管理;3個一般類為3個功能獨立的程序模塊。
圖2為系統實施圖。微處理器節點是系統的主控節點,采用Atmel 89C52。其內部8KB Flash ROM和128B RAM資源已能滿足系統需要,因此不再增加外部存儲器。與其它節點的連接完全通過其本身的串并接口就可完成。按鈕節點代表所有按鈕,在系統變化時也可以用鍵盤取代,本例為6個單獨機械按鈕。顯示節點代表系統顯示部分,本例為2個數碼管和1個表示電同運行狀態的發光二極管。運行監控節點具有兩部分功能,其一是通過WatchDog技術監視微處理器的運行狀況,另一個是監視變換器輸出的脈沖寬度。變換器邛樹熊設計為專用電路,通過微處理器并行口接受三相正弦脈沖,根據電機功率轉換成本相電機線圈所需要的脈沖電壓。三相電機節點不屬于嵌入式系統本身,但為了說明本嵌入式系統與控制對象關系而布置在同一實施圖中。
圖3為系統有限狀態機行為模型。系統開機上電后,經過初始化處理自動進入到等待狀態,在等待狀態,Microcontrollor對象根據用戶鍵盤按鈕命令,調度相應的操作對象。當用戶發出正或反點動命令時,系統進入點動運行態,此時Convertor對象輸出6Hz正或反相序三相脈沖。當用戶松開正或反點動按鈕時,系統返回等待狀態。在系統預置頻率設定正確的情況下,用戶按啟動按鈕時,系統先進入到啟動運行態。在此狀態時系統從6Hz開始按每步0.2Hz的步長穩步增加電機運轉頻率,直到達到預置頻率時進入到穩定運行態。在穩定運行態用戶可以改變預置頻率,步長為1Hz。每次預置頻率的改變事件,都會產生從穩定運行態到啟動運行態的交替變動。當系統運行出現故障時,進入到故障處理狀態處理,完成后自動返回到等待狀態。
4 系統實現
4.1 數據處理
由于本文例舉的系統為一小型變頻調速嵌入式系統,所有三相正弦波形的PWM脈沖都由Atmel 89C52的P1.0~P1.5端口輸出。當把任何頻率正弦波形分解成N等分時(N為6的整數倍),則要用N個等幅而不等寬的矩形脈沖來等效,每個脈沖區間如圖4。每個頻率正弦波劃分為6個相序,每個相序為60°。每個相序分為N/6個區間,每區間分為7個小區間。每個區間采用中心對稱脈沖波形,因此在每個小脈沖邊沿只有一相功率驅動開關換相而使驅動電源電流平衡變化。在任何一相換相時,由軟件自動加死區保護(死區時間一相上下臂開關同時關閉,如圖4中豎雙線間部分),以免功率驅動開關在換相瞬間上下臂同時導通而損壞元件。
雖然對于不同頻率每個相序內脈沖區間數和占空比有所不同,但輸出的波形卻是相同的。又因為每個區間的7個小區間波形是中心對稱的,因此在輸出最后3個小波形時,只要把前3個小波形的占空時間和輸出波形數據倒讀并輸出就可以完成。另外,每個脈沖區間僅需要4個占空定時T區間,t2,t3,t4(見下節說明),并且每個相序僅需要4個脈沖波形數據就可以了。三相正弦波區間數據關系如表1.
表1 三相正弦波區間數據關系
相序 | I | II | III | IV | V | VI |
電壓關系 | Ua>Ub>Uc | Ub>Ua>Uc | Ub>Uc>Ua | Uc>Ub>Ua | Uc>Ua>Ub | Ua>Uc>Ub |
波形數據 | 2AH,29H,19H,15 | 2AH,26H,25H,15 | 2AH,26H,16H,15 | 2AH,1AH,16H,15H | 2AH,1AH,19H,15H | 2AH,29H,19H,15 |
區間數 | N/6 | N/6 | N/6 | N/6 | N/6 | N/6 |
小區間定時 | t4,t3,t2,t1,t2,t3,t4 |
4.2 系統資源配置
當系統的分析與設計采用面向對象方法時,并不意味著所使用的編程語言也一定是面向對象的。事實上,這種分析設計方法的具體實現可以使用任何編程語言(如匯編語言或C語言);但是,在程序設計上要盡可能地使用面向對象的思想,如體現程序結構方面的封裝性、消息傳遞等。這種才會使程序結構清晰,便于應付隨著需求變化而產生的不斷更新和系統維護。
在實現本系統時,系統最重要的資源是程序存儲器和定時器。由于采用了上小節所討論的數據處理技術,大大壓縮了數據空間。在實現時,把6Hz~50Hz頻率空間劃分成7個大的區段,使每個區間的脈沖周期在900μs左右,區間周期定時使用單片機內部的T2定時器的常數自動重裝入方式。由于區間周期與輸出頻率關系是確定的(T區間=1/Nf頻率),片內T0定時器用于區間內小區間t2、t3、t4定時,而t1定時由t1=T區間-2×t2-2×t3-t4計算得到。T1定時器用于監視系統輸出的脈沖寬度,當P1口任何一端輸出脈沖寬度超過1000μs時,系統通過中斷進入故障處理狀態。另外,系統還設一WatchDog電路X5045,監視系統程序運行情況。當程序運行異常時,系統通過復位進入到故障處理狀態。系統的顯示接口通過單片機串行接口實現。
5 討論
由于嵌入式系統的實現工具基本上都是非面向對象的,因此如何使面向對象的分析設計與非面向對象的實現工具之間的銜接就成為了一個值得探討的問題。另外,嵌入式系統一般都具有不同于大型軟件系統的具體要求,如實時性、可靠性、機械尺寸、能耗(如電池供電)要求等,因此在實現系統時還應根據開發者的經驗進行特別處理。但是,采用面向對象建模后再實現系統實現的方法,為系統建立了可視化的組織結構和行業結構,實現了用戶需求的可視化表示,縮短了系統的開發周期,很好地適應了用戶需求的變化。
- 面向對象(9918)
- 設計方法(9080)
相關推薦
嵌入式系統11個必須了解的知識
嵌入式系統EMC的產生原理是什么?
嵌入式系統與嵌入式操作系統對比分析哪個好
嵌入式系統交叉調試原理和方法
嵌入式系統是什么 什么叫嵌入式系統
嵌入式系統是什么 什么叫嵌入式系統
嵌入式系統有何特殊之處
嵌入式系統模塊化設計有什么方法?
嵌入式系統特點是什么
嵌入式系統特點詳解 嵌入式系統的六大特點
嵌入式系統特點詳解 嵌入式系統的六大特點
嵌入式系統特點詳解 嵌入式系統的六大特點
嵌入式系統電子的實時性是什么?
嵌入式系統的三要素
嵌入式系統的發展歷史
嵌入式系統的基本組成是什么
嵌入式系統的實時性與快速性有關
嵌入式系統的描述與設計
嵌入式系統的特點具體有哪些呢
嵌入式系統的特點大揭秘?
嵌入式系統的特點是什么
嵌入式系統硬件抽象層的設計思想簡析
嵌入式linux系統GUI的實現方法是什么?
嵌入式一些日常小技巧分享
嵌入式基礎教程之嵌入式系統組成
嵌入式學習資料
嵌入式實時系統的關鍵技術是什么?
嵌入式實時系統設計模式是什么?
嵌入式開發教程之程序設計與開發維護
嵌入式操作系統怎么選擇?
嵌入式編程中C語言的模塊化和模擬面向對象的相關資料推薦
Java在嵌入式應用開發扮演什么角色
LabVIEW面向對象的ActorFramework(1)
Linux作為嵌入式操作系統的優勢是什么?如何建立嵌入式Linux?
Python在開發實時嵌入式系統中的作用
《ARM嵌入式系統基礎教程》下載
三種常用的嵌入式操作系統是什么
什么是嵌入式系統面向低功耗的協同設計系統?
什么是嵌入式編程
什么是嵌入式?什么是嵌入式系統?大家一起來討論
從嵌入式系統到嵌入式操作系統需要經歷什么?
關于嵌入式固件開發方法的探討
基于嵌入式操作系統的開發方法有哪些?
基于FPGA的嵌入式系統應用
基于UML嵌入式軟件的指紋門禁系統開發應用
如何系統的學習嵌入式?
如何將嵌入式操作系統μC/OS-Ⅱ面向數控系統改進?
如何理解嵌入式系統
常用的嵌入式操作系統有什么?
怎么利用面向對象方法得到嵌入式硬件系統模型?
求分享一種支持汽車電子的嵌入式編程接口庫的內容和設計方法
汽車嵌入式系統的發展如何?
汽車電子在嵌入式系統的應用
淺析RT-Thread嵌入式操作系統的系統架構及文件結構
物聯網嵌入式系統
物聯網嵌入式系統
請教嵌入式系統交叉調試原理和方法是什么?
請問嵌入式系統中的遠程調試方法有哪些?
請問怎么設計一種面向嵌入式存儲器測試和修復的IIP?
請問該怎么用面向對象方法設計嵌入式軟件?
高速閃存MCU在廣泛嵌入式有什么應用?
面向對象的嵌入式系統設計方法1
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于OOPN的嵌入式系統的建模研究與實現
![](https://skin.elecfans.com/images/2021-soft/load.png)
XMLHttP對象在嵌入式Web實時系統中的應用
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A6/11/wKgZomUMO5OAPH79AAAX2LMrmSA605.jpg)
面向對象的嵌入式系統開發技術
![](https://skin.elecfans.com/images/2021-soft/load.png)
評論