本文介紹軟外設(shè)的設(shè)計(jì)思想以及在開發(fā)過程中應(yīng)注意的事項(xiàng),并結(jié)合一個嵌入式系統(tǒng),分析軟外設(shè)對系統(tǒng)的影響以及如何使設(shè)計(jì)合理化。
關(guān)鍵詞:嵌入式系統(tǒng) UART Software Peripherals
一、介紹
應(yīng)該說軟外設(shè)并不是一個新思想,從計(jì)算機(jī)發(fā)明以來,電子系統(tǒng)設(shè)計(jì)人員一直試圖盡可能多地用軟件編程來代替實(shí)際電路,通過這種方式把外設(shè)嵌入進(jìn)系統(tǒng)。但由于CPU速度、計(jì)算能力有限,以及內(nèi)存技術(shù)的發(fā)展不夠成熟,從而束縛了軟外設(shè)的發(fā)展。
近年來,隨著電子技術(shù)的發(fā)展,越來越多的處理器廠家在處理器的設(shè)計(jì)中加大了對軟外設(shè)的支持,象ARM公司宣稱他們的32、64位RISC處理器已經(jīng)能用軟件實(shí)現(xiàn)更多更強(qiáng)的功能,指令集也更為豐富,甚至包括DSP方面的許多功能現(xiàn)在已經(jīng)能夠在CPU上實(shí)現(xiàn)。Motorola公司已經(jīng)開發(fā)出基于SM56PCI接口的用純軟件實(shí)現(xiàn)的調(diào)制解調(diào)器。這些都說明電路設(shè)計(jì)已經(jīng)進(jìn)入了一個嶄新的時期。
目前,電子設(shè)計(jì)中把外設(shè)嵌入進(jìn)系統(tǒng)的方法主要有兩種。方法Ⅰ是采用標(biāo)準(zhǔn)的微處理器+一塊輔助芯片,輔助芯片可以是FPGA或CPLD等可編程邏輯芯片;方法Ⅱ是采用基本的CPU內(nèi)核+附加邏輯單元,這些可以在一塊高密度可編程邏輯芯片上實(shí)現(xiàn),CPU內(nèi)核往往為Altera和Xilinx等FPGA生產(chǎn)廠家提供的軟件模塊。以上兩種方法都需要開發(fā)人員熟悉硬件描述語言,但在實(shí)際應(yīng)用中CPU內(nèi)核以及各種IP核的使用的往往要得到產(chǎn)權(quán)許可,而且可編程邏輯芯片體積大,價格昂貴,故在一些便攜式裝置的研制中不便采用。
軟外設(shè)的設(shè)計(jì)通常是采用標(biāo)準(zhǔn)的微處理器,在滿足系統(tǒng)穩(wěn)定和系統(tǒng)負(fù)荷允許的條件下,設(shè)計(jì)中盡可能多地采用可配置的軟件模塊,用這些可配置的軟件模塊來實(shí)現(xiàn)某種外設(shè)的功能。并且可以配置、升級、重組,從而完成特定的功能。應(yīng)該說明的是,并不是所有外設(shè)的功能都能完全由軟件實(shí)現(xiàn),這種設(shè)計(jì)方法的目的是在系統(tǒng)允許的條件下盡量“以軟代硬”,以盡可能少的硬件開銷取得最佳的性能比。
二、系統(tǒng)要求
下面給出具有軟外設(shè)的嵌入式系統(tǒng)結(jié)構(gòu)圖。

下面給出對嵌入式系統(tǒng)的要求:
(1) 高性能CPU內(nèi)核。軟外設(shè)的必須以高性能CPU內(nèi)核為支持,只有采用高性能CPU內(nèi)核,系統(tǒng)的頻率才能得以提高,軟外設(shè)和CPU之間才能高速傳送數(shù)據(jù),軟外設(shè)才能得以高速運(yùn)行而對系統(tǒng)整體工作不會有太多影響。建議采用帶有流水線、32位以上RISC核的CPU。
(2) 快速的中斷響應(yīng)。軟外設(shè)均采用中斷方式向CPU提出服務(wù)請求??梢栽谄洗鎯ζ髋c內(nèi)部總線之間增加寄存器組來減少系統(tǒng)的中斷響應(yīng)時間。
(3) 附加硬件模塊。正如前面所提,系統(tǒng)有些特性是不能由軟件實(shí)現(xiàn)的,象定時器、中斷控制器。另外在信號處理中由于A/D、D/A轉(zhuǎn)換如果用軟件實(shí)現(xiàn)對系統(tǒng)開銷太大,由硬件實(shí)現(xiàn)較好。
(4) 快速、足夠的存儲器和高性能的運(yùn)算單元。
三、軟外設(shè)的算法設(shè)計(jì)
由于軟外設(shè)要求實(shí)時性強(qiáng),有時需要和別的應(yīng)用程序并行執(zhí)行,在設(shè)計(jì)時可以把軟外設(shè)看作等待服務(wù)的任務(wù),協(xié)調(diào)、安排好這些任務(wù)非常重要,根據(jù)任務(wù)的確定性可以把實(shí)時系統(tǒng)的進(jìn)程調(diào)度策略劃分為兩類:一類是靜態(tài)的,主要負(fù)責(zé)預(yù)先知道發(fā)生時間的任務(wù);要求按進(jìn)度準(zhǔn)點(diǎn)完成的任務(wù);要求固定時間發(fā)生的任務(wù)。對這類調(diào)度策略可以采用Round-robin算法或間隔算法(見3)。另外一類是動態(tài)進(jìn)程調(diào)度策略,負(fù)責(zé)那些不能預(yù)測何時發(fā)生任務(wù);不知執(zhí)行周期有多長的任務(wù)。這是一些具有臨時性的任務(wù),比如含有條件循環(huán)的任務(wù)(不知何時滿足條件)。以上兩種策略分別適用于不同的情況,在一個復(fù)雜的系統(tǒng)中,往往存在幾個要求并行執(zhí)行的軟外設(shè),進(jìn)程的調(diào)度對任務(wù)的同步和系統(tǒng)的優(yōu)化非常重要。
另外為了設(shè)計(jì)的可移植性和簡便,要進(jìn)行模塊化和層次化設(shè)計(jì),復(fù)雜的軟外設(shè)可以看作由幾個具有層次的簡單的模塊構(gòu)成。
四、性能分析
現(xiàn)以示出了一個嵌入式系統(tǒng)的框圖,該系統(tǒng)采用Motorola公司生產(chǎn)的MCF5104型號CPU,接有三個軟外設(shè),分別為UART、LCD和鍵盤控制器?,F(xiàn)在從工作速度和能量損耗方面以UART軟外設(shè)為例,對軟外設(shè)進(jìn)行性能分析。

在UART實(shí)現(xiàn)程序中,共有16條匯編指令,假定每條指令需要一個時鐘周期(即CPI=1),沒有奇偶校驗(yàn)功能。通過改變CPU主頻(變化范圍為30~100),計(jì)算執(zhí)行的時間占有CPU時間的比率,分析UART軟外設(shè)在不同波特率情況下對CPU的負(fù)擔(dān),計(jì)算過程如下:
假定CPU發(fā)送/接收一個字節(jié)的時間為t。UART軟外設(shè)的CPU占有率為T,則
t=指令數(shù)×CPI+中斷響應(yīng)周期×CPU主頻-1。
T=t×波特率。
結(jié)果如表1所示。
表1 UART的CPU占有率
Rate(bit/s) MHz | 19200 | 38400 | 57600 | 1152000 |
30 | 1.534% | 3.070% | 4.605% | 9.215% |
50 | 0.920% | 1.843% | 2.764% | 5.530% |
75 | 0.614% | 1.227% | 1.843% | 3.687% |
100 | 0.460% | 0.921% | 1.380% | 2.764% |
上表中的統(tǒng)計(jì)數(shù)據(jù)是在假定UART工作在全雙工方式(FD)下,沒有檢錯功能得到的,而系統(tǒng)絕大多數(shù)時間是工作在半雙工方式(HD)下的,HD方式下該UART的CPU占有時間率要減少25%。如果加上奇偶校驗(yàn)功能,該軟外設(shè)的CPU占有時間率在FD方式會增加11.45%,HD方式下增加7.60%。
由表1可知,CPU頻率越高,軟外設(shè)對系統(tǒng)的負(fù)擔(dān)越小,另外隨著UART的波特率增加,系統(tǒng)負(fù)擔(dān)加重。建議軟外設(shè)的運(yùn)行占CPU時間不能超過20%,實(shí)驗(yàn)證明,軟外設(shè)的CPU占有率不超過20%的情況下對系統(tǒng)來說是可以承受的。
接下來我們分析該軟外設(shè)的能耗問題。圖三示出了CPU在接有URAT軟外設(shè)或URAT硬件的情況下在不同情況下的CPU消耗電流曲線。
上圖表明:
1.隨著波特率增加,UART軟外設(shè)的能耗增加。
2.隨著CPU主頻增加,UART軟外設(shè)的能耗增加。
3.波特率在小于70Kbit/s時UART軟外設(shè)的能耗低于硬件外設(shè),此時選用軟外設(shè)可以降低能耗,即該軟外設(shè)適合于數(shù)據(jù)量不是很大的場合(如語音通信)。在要求系統(tǒng)傳輸速率極快的情況下(如視頻流傳輸),選用硬件實(shí)現(xiàn)較為合適。
六、結(jié)束語
本文系統(tǒng)地介紹了軟外設(shè)的設(shè)計(jì)思想,并以一個軟外設(shè)為例,分析了它的一些性能指標(biāo)。 軟外設(shè)具有許多優(yōu)點(diǎn):如調(diào)試方便,系統(tǒng)可移植性強(qiáng),能耗小,成本低。很適合在一些要求便攜式、低能耗的場合應(yīng)用。雖然也存在一些缺點(diǎn),如速度慢,并行性差,但隨著CPU相關(guān)技術(shù)的發(fā)展以及算法的完善,這些方面在一定程度上會得到改觀。設(shè)計(jì)人員在設(shè)計(jì)時需要對硬件設(shè)計(jì)和軟件設(shè)計(jì)進(jìn)行折衷考慮。畢竟,軟外設(shè)的出現(xiàn)給嵌入式系統(tǒng)設(shè)計(jì)提供了一種更為靈活的設(shè)計(jì)方案,給設(shè)計(jì)人員也提供了更多的選擇余地,更廣的設(shè)計(jì)空間。
- 嵌入式系(14247)
嵌入式系統(tǒng)中的軟外設(shè)是什么?
嵌入式系統(tǒng)外設(shè)的使用
嵌入式系統(tǒng)EMC的產(chǎn)生原理是什么?
嵌入式系統(tǒng)串行設(shè)備管理怎么實(shí)現(xiàn)?
嵌入式系統(tǒng)和嵌入式電腦有什么區(qū)別?
嵌入式系統(tǒng)概述
嵌入式系統(tǒng)的系統(tǒng)該怎么測試和進(jìn)行可靠性評估?
嵌入式系統(tǒng)的三要素
嵌入式系統(tǒng)的發(fā)展歷史
嵌入式系統(tǒng)的知識體系
嵌入式系統(tǒng)組件的設(shè)計(jì)原則是什么
嵌入式軟PLC系統(tǒng)研究和實(shí)現(xiàn)
嵌入式軟PLC技術(shù)具有哪些優(yōu)點(diǎn)呢
嵌入式軟核NiosⅡ中串口模塊怎么編程?
嵌入式人機(jī)交互界面的研究與實(shí)現(xiàn)
嵌入式車載導(dǎo)航信息系統(tǒng)研究
嵌入式軟件代碼保護(hù)系統(tǒng)是由什么構(gòu)成的?
嵌入式軟件仿真開發(fā)系統(tǒng)的研究
嵌入式軟件測試的研究
ARM嵌入式最小系統(tǒng)的啟動架構(gòu)是什么?
什么是嵌入式系統(tǒng)?
什么是嵌入式操作系統(tǒng)?嵌入式操作系統(tǒng)有何功能
作為研究生自學(xué)嵌入式如何?以及嵌入式的發(fā)展。
在嵌入式中為什么要用到Linux系統(tǒng)呢
基于嵌入式系統(tǒng)硬件平臺的軟件PLC實(shí)現(xiàn)設(shè)計(jì)
基于嵌入式Linux系統(tǒng)的鍵盤驅(qū)動該怎么設(shè)計(jì)?
基于FPGA的嵌入式系統(tǒng)應(yīng)用
如何使用PCS進(jìn)行嵌入式Linux研究?
如何去設(shè)計(jì)并實(shí)現(xiàn)嵌入式軟PLC系統(tǒng)?
如何設(shè)計(jì)嵌入式系統(tǒng)掉電保護(hù)方案?
對嵌入式系統(tǒng)的功耗管理技術(shù)有哪些研究?
怎么實(shí)現(xiàn)嵌入式WiFi技術(shù)研究與通信設(shè)計(jì)?
怎么實(shí)現(xiàn)基于Nios軟核的嵌入式Internet系統(tǒng)設(shè)計(jì)?
怎么設(shè)計(jì)集軟核處理器的嵌入式設(shè)計(jì)平臺?
怎樣去設(shè)計(jì)一種嵌入式實(shí)時系統(tǒng)?
新人求助,軟考的嵌入式系統(tǒng)設(shè)計(jì)師這個證怎么樣
請問如何使用UML來設(shè)計(jì)嵌入式系統(tǒng)?
請問如何實(shí)現(xiàn)片上嵌入式Nios Ⅱ軟核六處理器系統(tǒng)的設(shè)計(jì)?
基于Nios 軟核的嵌入式Internet系統(tǒng)設(shè)計(jì)
16車用嵌入式開放系統(tǒng)的軟構(gòu)件研究
12嵌入式usb主機(jī)系統(tǒng)的研究與設(shè)計(jì)
20軟件項(xiàng)目管理在嵌入式系統(tǒng)中的應(yīng)用研究
21嵌入式Linux系統(tǒng)的移植研究
23基于Nios 軟核的嵌入式Internet系統(tǒng)設(shè)計(jì)
27嵌入式系統(tǒng)USB接口的研究及設(shè)計(jì)
15基于GPRS網(wǎng)絡(luò)的嵌入式系統(tǒng)的研究
17基于ARM-Linux的嵌入式系統(tǒng)GUI開發(fā)研究
15面向嵌入式Linux系統(tǒng)的軟中斷設(shè)計(jì)與實(shí)現(xiàn)
16嵌入式車載導(dǎo)航信息系統(tǒng)研究
13嵌入式軟PLC系統(tǒng)的研究和實(shí)現(xiàn)
37嵌入式系統(tǒng)教學(xué)模式研究
1800嵌入式系統(tǒng)的USB虛擬串口設(shè)計(jì)
1291
嵌入式CPU軟核綜述
53嵌入式系統(tǒng)設(shè)計(jì)中的低功耗技術(shù)
1606基于NIOSⅡ嵌入式軟核處理器的LCD控制方法研究
6基于Rhapsody的嵌入式系統(tǒng)的和諧設(shè)計(jì)方法的研究張磊
2基于ARM嵌入式系統(tǒng)軟PLC的研究
18嵌入式軟PLC系統(tǒng)介紹及其技術(shù)的優(yōu)點(diǎn)分析
4ARM嵌入式最小系統(tǒng)的軟硬件架構(gòu)的改進(jìn)研究
681
基于ARM的嵌入式最小系統(tǒng)的架構(gòu)研究
2368
如何實(shí)現(xiàn)嵌入式軟PLC系統(tǒng)的研究與應(yīng)用
18基于嵌入式系統(tǒng)的圖像處理技術(shù)研究
5嵌入式軟PLC系統(tǒng)的研究與實(shí)現(xiàn)
13基于CoDeSys的嵌入式軟PLC系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
44基于KCF的目標(biāo)跟蹤算法研究及嵌入式系統(tǒng)實(shí)現(xiàn)
8嵌入式軟PLC系統(tǒng)的研究和實(shí)現(xiàn)
4基于嵌入式機(jī)器視覺控制系統(tǒng)的研究
8嵌入式系統(tǒng)
2嵌入式系統(tǒng)簡介
4嵌入式系統(tǒng)介紹
9嵌入式軟件測試研究意義,嵌入式軟件測試的研究
17嵌入式系統(tǒng)
1嵌入式系統(tǒng)設(shè)計(jì)的問答
6基于嵌入式系統(tǒng)的ZigBee芯片的研究與應(yīng)用
0嵌入式fpga是什么意思
2803嵌入式系統(tǒng)的外設(shè)器件選擇
1871
電子發(fā)燒友App



評論