標籤:arm 晶片 硬體 軟體
硬體和軟體是一顆晶片系統互相依存的兩大部分,本文總結了一顆晶片的軟硬體組成。
(一)硬體
主控CPU:運算和控制核心。基帶晶片基本構架採用微處理器+數位訊號處理器(DSP)的結構,微處理器是整顆晶片的控制中心,會運行一個即時嵌入式作業系統(如Nucleus PLUS),DSP子系統負責基帶處理。應用處理器則可能包括多顆微處理器,還有GPU。微處理器是ARM的不同系列的產品(也可以是x86架構),可以是64位或者32位。
匯流排:電腦的匯流排可以劃分為資料匯流排、地址匯流排和控制匯流排,分別用來傳輸資料、資料地址和控制訊號。它是cpu、記憶體、輸入、輸出裝置傳遞資訊的公用通道,主機的各個組件通過匯流排相串連,外部裝置通過相應的介面電路再與匯流排相串連,從而形成了硬體系統。
片上匯流排標準進階微控制器匯流排結構AMBA定義了高效能嵌入式微控制器的通訊標準。定義了三組匯流排:AHB(AMBA高效能匯流排)、ASB(AMBA系統匯流排)、和APB(AMBA外設匯流排)。AHB匯流排用於高效能、高時鐘工作頻率模組。AHB為高效能處理器、片上記憶體、片外記憶體提供介面,同時橋接慢速外設。DMA、DSP、主存等連在AHB上。ASB匯流排主要用於高效能系統模組。ASB是可用於AHB不需要的高效能特性的晶片設計上可選的系統匯流排。APB匯流排用於為慢速外設提供匯流排支援人員。APB是一種最佳化的,低功耗的,精簡介面匯流排,可以支援多種不同慢速外設。由於APB是ARM公司最早提出的匯流排介面,APB可以橋接ARM體系下每一種系統匯流排。
外設I/O連接埠:GPIO通用連接埠、UART串口、I2C、SPI 、SDIO、USB等,CPU和外擴的晶片、裝置以及兩顆CPU之間(如基帶處理器和應用處理器之間)進行通訊的介面。一般來說,晶片都會支援多種介面,並設計通用的軟體驅動平台驅動。
儲存組件和儲存管理裝置:Rom、Ram、Flash及控制器。處理器系統中可能包含多種類型的儲存組件,如Flash、SRAM、SDRAM、ROM以及用於提高系統效能的Cache等等,不同的晶片會採用不同的儲存控制組合。參見博文”arm架構的晶片memory及智能機儲存組件簡述“
外設: 時鐘、中斷控制器、DMA、 輸入/輸出(如鍵盤、顯示器等)、網路攝影機等。
一顆ARM9架構晶片主控器及外圍硬體裝置群組成如所示:
(二)軟體
晶片上的軟體主要包括Boot代碼、作業系統、應用程式以及硬體的firmware。
Boot程式引導裝置的啟動,是裝置加電後在作業系統核心運行之前啟動並執行一段小程式。通過這段小程式,我們可以初始化硬體裝置、建立記憶體空間的映射圖,從而將系統的軟硬體環境帶到一個合適的狀態,以便為最終叫用作業系統核心準備好正確的環境。
作業系統(英語:Operating System,簡稱OS)是管理和控制電腦硬體與軟體資源的電腦程式,其五大管理功能是:
(1)處理器管理,主要包括進程的控制、同步、通訊和調度。
(2)儲存空間管理,主要包括記憶體的分配、保護和擴充,地址映射。
(3)裝置管理,主要包括裝置的分配、處理等。
(4)檔案管理,主要包括檔案的儲存空間管理,目錄管理,檔案的讀寫和保護。
(5)作業管理,主要包括任務、介面管理,人機互動,語音控制和虛擬現實等。
應用處理器上的作業系統有Android、IOS等,不必多說;基帶處理器上則會運行一個RTOS(如Nucleus PLUS)管理整個基帶系統上的任務和組件間的通訊。
應用程式是為了完成某項或某幾項特定任務而被開發運行於作業系統之上的程式。應用處理器上,結合作業系統API和庫函數,使用者可以開發各色應用程式;基帶處理器上則一般只有少量必要的軟體支援。
硬體firmware則是簡化軟體與硬體的互動,讓硬體操縱起來更容易。