硬件和软件是一颗芯片系统互相依存的两大部分。本文总结了一颗芯片的软硬件组成。作为对芯片的入门级概括吧。
(一)硬件
主控CPU:运算和控制核心。基带芯片基本构架採用微处理器+数字信号处理器(DSP)的结构。微处理器是整颗芯片的控制中心,会执行一个实时嵌入式操作系统(如Nucleus PLUS),DSP子系统负责基带处理。应用处理器则可能包含多颗微处理器,还有GPU。微处理器是ARM的不同系列的产品(也能够是x86架构),能够是64位或者32位。
处理器内部通过“内部总线”将CPU全部单元相连,其位宽能够是8-64位。
总线:计算机的总线按功能能够划分为数据总线、地址总线和控制总线。分别用来数据传输、数据地址和控制信号。CPU内部部件由内部总线互联,外部总线则是CPU、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接。外部设备通过对应的接口电路再与外部总线相连接。从而形成了硬件系统。外部总线通过总线接口单元BLU与CPU内部相连。
片上总线标准高级微控制器总线结构AMBA定义了高性能嵌入式微控制器的通信标准。定义了三组总线:AHB(AMBA高性能总线)、ASB(AMBA系统总线)、和APB(AMBA外设总线)。
AHB总线用于高性能、高时钟工作频率模块。AHB为高性能处理器、片上内存、片外内存提供接口,同一时候桥接慢速外设。DMA、DSP、主存等连在AHB上。ASB总线主要用于高性能系统模块。
ASB是可用于AHB不须要的高性能特性的芯片设计上可选的系统总线。APB总线用于为慢速外设提供总线技术支持。
APB是一种优化的,低功耗的,精简接口总线,能够支持多种不同慢速外设。因为APB是ARM公司最早提出的总线接口,APB能够桥接ARM体系下每一种系统总线。
外设I/Oport和扩展总线:GPIO通用port、UART串口、I2C、SPI 、SDIO、USB等,CPU和外扩的芯片、设备以及两颗CPU之间(如基带处理器和应用处理器之间)进行通信的接口。一般来说。芯片都会支持多种接口。并设计通用的软件驱动平台驱动。
存储部件和存储管理设备:Rom、Ram、Flash及控制器。
处理器系统中可能包括多种类型的存储部件。如Flash、SRAM、SDRAM、ROM以及用于提高系统性能的Cache等等。不同的芯片会採用不同的存储控制组合。參见博文”“
外设: 电源和功耗管理、复位电路和watchdog定时复位电路(前者是系统上电执行、后者是Reset或者超时出错执行)、时钟和计数器、中断控制器、DMA、 输入/输出(如键盘、显示器等)、摄像头等。
一颗ARM9架构芯片主控器及外围硬件设备组成例如以下图所看到的:
(二)软件
芯片上的软件主要包含Boot代码、操作系统、应用程序以及硬件的firmware。
Boot程序引导设备的启动,是设备加电后在操作系统内核执行之前执行的一段小程序。
通过这段小程序,我们能够初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为终于调用操作系统内核准备好正确的环境。
操作系统(英语:Operating System。简称OS)是管理和控制计算机硬件与软件资源的计算机程序,其五大管理功能是:
(1)处理器管理,主要包含进程的控制、同步、通信和调度。
(2)存储器管理,主要包含内存的分配、保护和扩充,地址映射。
(3)设备管理。主要包含设备的分配、处理等。
(4)文件管理,主要包含文件的存储空间管理,文件夹管理,文件的读写和保护。
(5)作业管理,主要包含任务、界面管理。人机交互,语音控制和虚拟现实等。
应用处理器上的操作系统有Android、IOS等,不必多说;基带处理器上则会执行一个RTOS(如Nucleus PLUS)管理整个基带系统上的任务和部件间的通信。
应用程序是为了完毕某项或某几项特定任务而被开发执行于操作系统之上的程序。应用处理器上。结合操作系统API和库函数,用户能够开发各色应用程序;基带处理器上则一般仅仅有少量必要的软件支持。
硬件firmware则是简化软件与硬件的交互,让硬件操纵起来更easy。