硬件和软件是一颗芯片系统互相依存的两大部分,本文总结了一颗芯片的软硬件组成,作为对芯片的入门级概括吧。

(一)硬件
主控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/O端口和扩展总线:GPIO通用端口、UART串口、I2C、SPI 、SDIO、USB等,CPU和外扩的芯片、设备以及两颗CPU之间(如基带处理器和应用处理器之间)进行通信的接口。一般来说,芯片都会支持多种接口,并设计通用的软件驱动平台驱动。

存储部件和存储管理设备:Rom、Ram、Flash及控制器。处理器系统中可能包含多种类型的存储部件,如Flash、SRAM、SDRAM、ROM以及用于提高系统性能的Cache等等,不同的芯片会采用不同的存储控制组合。参见博文”arm架构的芯片memory及智能机存储部件简述“

外设: 电源和功耗管理、复位电路和watchdog定时复位电路(前者是系统上电运行、后者是Reset或者超时出错运行)、时钟和计数器、中断控制器、DMA、 输入/输出(如键盘、显示器等)、摄像头等。

一颗ARM9架构芯片主控器及外围硬件设备组成如下图所示:
%title插图%num

(二)软件
芯片上的软件主要包括Boot代码、操作系统、应用程序以及硬件的firmware。

Boot程序引导设备的启动,是设备加电后在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为*终调用操作系统内核准备好正确的环境。

操作系统(英语:Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,其五大管理功能是:

(1)处理器管理,主要包括进程的控制、同步、通信和调度。

(2)存储器管理,主要包括内存的分配、保护和扩充,地址映射。

(3)设备管理,主要包括设备的分配、处理等。

(4)文件管理,主要包括文件的存储空间管理,目录管理,文件的读写和保护。

(5)作业管理,主要包括任务、界面管理,人机交互,语音控制和虚拟现实等。

应用处理器上的操作系统有Android、IOS等,不必多说;基带处理器上则会运行一个RTOS(如Nucleus PLUS)管理整个基带系统上的任务和部件间的通信。

应用程序是为了完成某项或某几项特定任务而被开发运行于操作系统之上的程序。应用处理器上,结合操作系统API和库函数,用户可以开发各色应用程序;基带处理器上则一般只有少量必要的软件支持。

硬件firmware则是简化软件与硬件的交互,让硬件操纵起来更容易。