嵌入式系統中“軟外設”的研究
本文介紹軟外設的設計思想以及在開(kāi)發(fā)過(guò)程中應注意的事項,并結合一個(gè)嵌入式系統,分析軟外設對系統的影響以及如何使設計合理化。
一 介紹
應該說(shuō)軟外設并不是一個(gè)新思想,從計算機發(fā)明以來(lái),電子系統設計人員一直試圖盡可能多地用軟件編程來(lái)代替實(shí)際電路,通過(guò)這種方式把外設嵌入進(jìn)系統。但由于CPU速度、計算能力有限,以及內存技術(shù)的發(fā)展不夠成熟,從而束縛了軟外設的發(fā)展。
近年來(lái),隨著(zhù)電子技術(shù)的發(fā)展,越來(lái)越多的處理器廠(chǎng)家在處理器的設計中加大了對軟外設的支持,象ARM公司宣稱(chēng)他們的32、64位RISC處理器已經(jīng)能用軟件實(shí)現更多更強的功能,指令集也更為豐富,甚至包括DSP方面的許多功能現在已經(jīng)能夠在CPU上實(shí)現。Motoro la公司已經(jīng)開(kāi)發(fā)出基于SM56PCI接口的用純軟件實(shí)現的調制解調器。這些都說(shuō)明電路設計已經(jīng)進(jìn)入了一個(gè)嶄新的時(shí)期。
目前,電子設計中把外設嵌入進(jìn)系統的方法主要有兩種。方法Ⅰ是采用標準的微處理器+一塊輔助芯片,輔助芯片可以是FPGA或CPLD等可編程邏輯芯片;方法Ⅱ是采用基本的CPU內核+附加邏輯單元,這些可以在一塊高密度可編程邏輯芯片上實(shí)現,CPU內核往往為Altera和Xilinx等FPGA生產(chǎn)廠(chǎng)家提供的軟件模塊。以上兩種方法都需要開(kāi)發(fā)人員熟悉硬件描述語(yǔ)言,但在實(shí)際應用中CPU內核以及各種IP核的使用的往往要得到產(chǎn)權許可,而且可編程邏輯芯片體積大,價(jià)格昂貴,故在一些便攜式裝置的研制中不便采用。
軟外設的設計通常是采用標準的微處理器,在滿(mǎn)足系統穩定和系統負荷允許的條件下,設計中盡可能多地采用可配置的軟件模塊,用這些可配置的軟件模塊來(lái)實(shí)現某種外設的功能。并且可以配置、升級、重組,從而完成特定的功能。應該說(shuō)明的是,并不是所有外設的功能都能完全由軟件實(shí)現,這種設計方法的目的是在系統允許的條件下盡量“以軟代硬”,以盡可能少的硬件開(kāi)銷(xiāo)取得最佳的性能比。
二 系統要求
下面給出對嵌入式系統的要求:
?。?) 高性能CPU內核。軟外設的必須以高性能CPU內核為支持,只有采用高性能CPU內核,系統的頻率才能得以提高,軟外設和CPU之間才能高速傳送數據,軟外設才能得以高速運行而對系統整體工作不會(huì )有太多影響。建議采用帶有流水線(xiàn)、32位以上RISC核的CPU。
?。?) 快速的中斷響應。軟外設均采用中斷方式向CPU提出服務(wù)請求??梢栽谄洗鎯ζ髋c內部總線(xiàn)之間增加寄存器組來(lái)減少系統的中斷響應時(shí)間。
?。?) 附加硬件模塊。正如前面所提,系統有些特性是不能由軟件實(shí)現的,象定時(shí)器、中斷控制器。另外在信號處理中由于A(yíng)/D、D/A轉換如果用軟件實(shí)現對系統開(kāi)銷(xiāo)太大,由硬件實(shí)現較好。
?。?) 快速、足夠的存儲器和高性能的運算單元。
三 軟外設的算法設計
由于軟外設要求實(shí)時(shí)性強,有時(shí)需要和別的應用程序并行執行,在設計時(shí)可以把軟外設看作等待服務(wù)的任務(wù),協(xié)調、安排好這些任務(wù)非常重要,根據任務(wù)的確定性可以把實(shí)時(shí)系統的進(jìn)程調度策略劃分為兩類(lèi):一類(lèi)是靜態(tài)的,主要負責預先知道發(fā)生時(shí)間的任務(wù);要求按進(jìn)度準點(diǎn)完成的任務(wù);要求固定時(shí)間發(fā)生的任務(wù)。對這類(lèi)調度策略可以采用Round-robin算法或間隔算法(見(jiàn)3)。另外一類(lèi)是動(dòng)態(tài)進(jìn)程調度策略,負責那些不能預測何時(shí)發(fā)生任務(wù);不知執行周期有多長(cháng)的任務(wù)。這是一些具有臨時(shí)性的任務(wù),比如含有條件循環(huán)的任務(wù)(不知何時(shí)滿(mǎn)足條件)。以上兩種策略分別適用于不同的情況,在一個(gè)復雜的系統中,往往存在幾個(gè)要求并行執行的軟外設,進(jìn)程的調度對任務(wù)的同步和系統的優(yōu)化非常重要。
另外為了設計的可移植性和簡(jiǎn)便,要進(jìn)行模塊化和層次化設計,復雜的軟外設可以看作由幾個(gè)具有層次的簡(jiǎn)單的模塊構成。
四 性能分析
現以示出了一個(gè)嵌入式系統的框圖,該系統采用Motorola公司生產(chǎn)的MCF5104型號CPU,接有三個(gè)軟外設,分別為UART、LCD和鍵盤(pán)控制器?,F在從工作速度和能量損耗方面以UART軟外設為例,對軟外設進(jìn)行性能分析。
在UART實(shí)現程序中,共有16條匯編指令,假定每條指令需要一個(gè)時(shí)鐘周期(即CPI=1),沒(méi)有奇偶校驗功能。通過(guò)改變CPU主頻(變化范圍為30~100),計算執行的時(shí)間占有CPU時(shí)間的比率,分析UART軟外設在不同波特率情況下對CPU的負擔,計算過(guò)程如下:
假定CPU發(fā)送/接收一個(gè)字節的時(shí)間為t。UART軟外設的CPU占有率為T(mén),則
t=指令數
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論