- 相關推薦
嵌入式系統中“軟外設”的研究
作者Email: sunchengli@sjzue.edu.cn
摘要:隨著CPU的性能的不斷提升,處理速度越來越快,運算能力不斷增強,在許多嵌入式系統的開發中逐漸出現了軟外設(Software Peripherals)。所謂軟外設是指以軟件編程為手段,模擬CPU的外圍設備的功能,真正達到以軟代硬的目的。軟外設的出現給產品的開發帶來了極大的靈活性,不但使系統體積變得更小,而且使系統的升級換代變得更為方便,從而真正實現SOC。
本文介紹軟外設的設計思想以及在開發過程中應注意的事項,并結合一個嵌入式系統,分析軟外設對系統的影響以及如何使設計合理化。
關鍵詞:嵌入式系統 UART Software Peripherals
一、介紹
應該說軟外設并不是一個新思想,從計算機發明以來,電子系統設計人員一直試圖盡可能多地用軟件編程來代替實際電路,通過這種方式把外設嵌入進系統。但由于CPU速度、計算能力有限,以及內存技術的發展不夠成熟,從而束縛了軟外設的發展。
近年來,隨著電子技術的發展,越來越多的處理器廠家在處理器的設計中加大了對軟外設的支持,象ARM公司宣稱他們的32、64位RISC處理器已經能用軟件實現更多更強的功能,指令集也更為豐富,甚至包括DSP方面的許多功能現在已經能夠在CPU上實現。Motorola公司已經開發出基于SM56PCI接口的用純軟件實現的調制解調器。這些都說明電路設計已經進入了一個嶄新的時期。
目前,電子設計中把外設嵌入進系統的方法主要有兩種。方法Ⅰ是采用標準的微處理器+一塊輔助芯片,輔助芯片可以是FPGA或CPLD等可編程邏輯芯片;方法Ⅱ是采用基本的CPU內核+附加邏輯單元,這些可以在一塊高密度可編程邏輯芯片上實現,CPU內核往往為Altera和Xilinx等FPGA生產廠家提供的軟件模塊。以上兩種方法都需要開發人員熟悉硬件描述語言,但在實際應用中CPU內核以及各種IP核的使用的往往要得到產權許可,而且可編程邏輯芯片體積大,價格昂貴,故在一些便攜式裝置的研制中不便采用。
軟外設的設計通常是采用標準的微處理器,在滿足系統穩定和系統負荷允許的條件下,設計中盡可能多地采用可配置的軟件模塊,用這些可配置的軟件模塊來實現某種外設的功能。并且可以配置、升級、重組,從而完成特定的功能。應該說明的是,并不是所有外設的功能都能完全由軟件實現,這種設計方法的目的是在系統允許的條件下盡量“以軟代硬”,以盡可能少的硬件開銷取得最佳的性能比。
二、系統要求
下面給出具有軟外設的嵌入式系統結構圖。
下面給出對嵌入式系統的要求:
(1)高性能CPU內核。軟外設的必須以高性能CPU內核為支持,只有采用高性能CPU內核,系統的頻率才能得以提高,軟外設和CPU之間才能高速傳送數據,軟外設才能得以高速運行而對系統整體工作不會有太多影響。建議采用帶有流水線、32位以上RISC核的CPU。
(2)快速的中斷響應。軟外設均采用中斷方式向CPU提出服務請求。可以在片上存儲器與內部總線之間增加寄存器組來減少系統的中斷響應時間。
(3)附加硬件模塊。正如前面所提,系統有些特性是不能由軟件實現的,象定時器、中斷控制器。另外在信號處理中由于A/D、D/A轉換如果用軟件實現對系統開銷太大,由硬件實現較好。
(4)快速、足夠的存儲器和高性能的運算單元。
三、軟外設的算法設計
由于軟外設要求實時性強,有時需要和別的應用程序并行執行,在設計時可以把軟外設看作等待服務的任務,協調、安排好這些任務非常重要,根據任務的確定性可以把實時系統的進程調度策略劃分為兩類:一類是靜態的,主要負責預先知道發生時間的任務;要求按進度準點完成的任務;要求固定時間發生的任務。對這類調度策略可以采用Round-robin算法或間隔算法(見3)。另外一類是動態進程調度策略,負責那些不能預測何時發生任務;不知執行周期有多長的任務。這是一些具有臨時性的任務,比如含有條件循環的任務(不知何時滿足條件)。以上兩種策略分別適用于不同的情況,在一個復雜的系統中,往往存在幾個要求并行執行的軟外設,進程的調度對任務的同步和系統的優化非常重要。
另外為了設計的可移植性和簡便,要進行模塊化和層次化設計,復雜的軟外設可以看作由幾個具有層次的簡單的模塊構成。
四、性能分析
現以示出了一個嵌入式系統的框圖,該系統采用Motorola公司生產的MCF5104型號CPU,接有三個軟外設,分別為UART、LCD和鍵盤控制器。現在從工作速度和能量損耗方面以UART軟外設為例,對軟外設進行性能分析。
在UART實現程序中,共有16條匯編指令,假定每條指令需要一個時鐘周期(即CPI=1),沒有奇偶校驗功能。通過改變CPU主頻(變化范圍為30~100),計算執行的時間占有CPU時間的比率,分析UART軟外設在不同波特率情況下對CPU的負擔,計算過程如下:
假定CPU發送/接收一個字節的時間為t。UART軟外設的CPU占有率為T,則
t=指令數×CPI+中斷響應周期×CPU主頻-1。
T=t×波特率。
結果如表1所示。
表1 UART的CPU占有率
Rate(bit/s)
MHz
19200
38400
57600
1152000
30
1.534
【嵌入式系統中“軟外設”的研究】相關文章:
嵌入式系統中的CACHE問題03-19
嵌入式系統中的Flash存儲管理03-18
UML 在嵌入式系統設計中的應用03-18
嵌入式系統中的內存壓縮技術03-18
嵌入式系統中的線性Flash文件系統設計03-21
嵌入式系統中的PS/2接口設計11-22
液晶顯示在嵌入式系統中的應用03-21