嵌入式系統(tǒng)的硬件基本結構和軟件層次結構
嵌入式系統(tǒng)是專用計算機應用系統(tǒng),它具有一般計算機組成的共性,也是由硬件和軟件組成。本文完整地描述了嵌入式系統(tǒng)的軟硬件各部分的組成結構。
嵌入式系統(tǒng)的硬件基本結構
嵌入式系統(tǒng)的硬件架構,是以嵌入式處理器為中心,由存儲器、I/O設備、通信模塊以及電源等必要的輔助接口組成。嵌入式系統(tǒng)是量身定做的專用計算機應用系統(tǒng),又不同于普通計算機組成,在實際應用中的嵌入式系統(tǒng)硬件配置非常精簡,除了微處理器和基本的外圍電路以外,其余的電路都可根據需要和成本進行裁剪、定制,非常經濟、可靠。
嵌入式系統(tǒng)的硬件核心是嵌入式微處理器,有時為了提高系統(tǒng)的信息處理能力,常外接DSP和DSP協(xié)處理器(也可內部集成),以完成高性能信號處理。
隨著計算機技術、微電子技術、應用技術的不斷發(fā)展及納米芯片加工工藝技術的發(fā)展,以微處理器為核心的集成多種功能的SoC系統(tǒng)芯片已成為嵌入式系統(tǒng)的核心。在嵌入式系統(tǒng)設計中,要盡可能地滿足系統(tǒng)功能接口的SoC芯片。這些SoC集成了大量的外圍USB、、以太網、AD/DA、IIS等功能模塊。
可編程片上系統(tǒng)SOPC( On Programmable )結合了SoC和PLD、各自的技術優(yōu)點,使得系統(tǒng)具有可編程的功能,是可編程邏輯器件在嵌入式應用中的完美體現(xiàn),極大地提高了系統(tǒng)的在線升級、換代能力。
以SoC/SOPC為核心,用最少的外圍部件和連接部件構成一個應用系統(tǒng),滿足系統(tǒng)的功能需求,這也是嵌入式系統(tǒng)發(fā)展的一個方向。
因此,嵌入式設計是以處理器/SoC/SOPC為核心來完成系統(tǒng)設計的,其外圍接口包括存儲設備、通信擴展設備、擴展設備接口和輔助的機電設備(電源、、等),構成硬件系統(tǒng)。
嵌入式系統(tǒng)軟件的層次結構
在設計一個簡單的應用程序時,可以不使用操作系統(tǒng),但在設計較復雜的程序時,可能就需要一個操作系統(tǒng)(OS)來管理和控制內存、多任務、周邊資源等。依據系統(tǒng)所提供的程序界面來編寫應用程序,可大大減少應用程序員的負擔。
對于使用操作系統(tǒng)的嵌入式系統(tǒng)來說,嵌入式系統(tǒng)軟件結構一般包含4個層面:設備驅動層、實時操作系統(tǒng)、應用程序接口API層、實際應用程序層。有些書籍將應用程序接口API歸屬于OS層,嵌入式系統(tǒng)的軟件結構,是按3層劃分的。由于硬件電路的可裁剪性和嵌入式系統(tǒng)本身的特點,其軟件部分也是可裁剪的。
對于功能簡單,僅包括應用程序的嵌入式系統(tǒng),一般不使用操作系統(tǒng),僅有應用程序和設備驅動程序。高性能嵌入式系統(tǒng)的應用越來越廣泛,操作系統(tǒng)的使用成為必然發(fā)展趨勢。本小節(jié)主要講述的是具有操作系統(tǒng)的嵌入式軟件層次。
1.驅動層程序
驅動層程序是嵌入式系統(tǒng)中不可缺少的重要部分,使用任何的外部設備都需要有相應的驅動層程序的支持,它為上層軟件提供了設備的操作接口。上層軟件不會理會設備的具體內部操作,只需調用驅動層程序提供的接口即可。驅動層程序一般包含硬件抽象層HAL、板級支持包BSP和設備驅動程序。
板級支持包實現(xiàn)的功能大體有以下兩個方面:
系統(tǒng)啟動時,完成對硬件的初始化。例如,對系統(tǒng)內存、寄存器以及設備的中斷進行設置。這是比較系統(tǒng)化的工作,它要根據嵌入式開發(fā)所選的CPU類型、硬件以及嵌入式操作系統(tǒng)的初始化等多方面決定BSP應實現(xiàn)什么功能。
為驅動程序提供訪問硬件的手段。驅動程序經常要訪問設備的寄存器,對設備的寄存器進行操作。如果整個系統(tǒng)為統(tǒng)一編址,則開發(fā)人員可直接在驅動程序中用C語言的函數訪問設備寄存器。但是,如果系統(tǒng)為單獨編址,則C語言就不能直接訪問設備中的寄存器,只有匯編語言編寫的函數才能進行對外圍設備寄存器的訪問。BSP就是為上層的驅動程序提供訪問硬件設備寄存器的函數包。