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

基于OOPN的嵌入式系統(tǒng)的建模研究與實現(xiàn)

XMLHttP對象在嵌入式Web實時系統(tǒng)中的應(yīng)用


面向對象的嵌入式系統(tǒng)開發(fā)技術(shù)

評論