问题
典型的Android手机/平板硬件架构是怎么样的?
1 典型Android手机/平板硬件架构图
2 基带处理器 (Baseband Processor)
市场上大多数的手机采用了相互独立的处理单元来分别处理用户界面软件和射频功能。即:应用处理器 (Application Processor,AP) 和基带处理器 (Baseband Processor,BP)
为什么需要两个独立的处理器而不是由一个来完成?这个原因包括法律和技术两个方面:
- 法律要求软件定义无线电 (SDR)设备必须被美国通信委员会(FCC)认证,而这个认证有一个要求就是控制无线信号的软件不可以受到未经授权的更改。基本上,它的意思是终端用户在任何情况下都不允许修改无线调制方式和工作频率。
- 无线功能的很多操作有很强的实时性限制,因此控制无线信号的软件跟用户界面操作系统跑在同一个 CPU上就不是一个很好的选择。可以在AP 休眠的同时保持 BP 继续运行。
因为Android 的 RIL跟其依赖的硬件是紧耦合的关系。简单地说,BP与AP交互的方式主要是基于串口的AT指令集。架构图中可以看到,BP 有它自己的 Flash 和 RAM,这就保证了运行在 BP 上的认证软件与AP上的软件相互隔离。运行在 BP上的实时操作系统 (RTOS)只关注无线协议处理(例如运行 GSM 协议栈)。同样需要知道的是,SIM 卡和 RF 收发器是接到 BP上的。射频收发器处理与铁塔之间的实际射频发送和接收工作,而SIM卡用于蜂窝网络运营商识别手机用户身份。
3 核心器件
虽然我们讨论的很多器件很可能存在,也很有可能不在你的嵌入式系统中,但是有一些器件基本上一定会在Android 系统设备上(当然也可能有些特殊场合会被裁剪掉)。
- RAM
- 存储
- 电源管理IC
- 硬件编解码器
- 触摸屏
- LED
- WiFI
- Bluetooth
- 扬声器
- 话筒
- 摄像头
- 震动器
- GPS
- 各类传感器(加速度、方向、陀螺仪、温度、气压、接近传感器…)
- USB接口
大多数传统的嵌入式系统都包含 Flash,不管是 NOR 还是 NAND,以及基于其之上的 Flash 文件系统,用于管理芯片资源并且实现各种功能。然而目前的主流趋势是改为采用嵌人式多媒体卡(embedded MultiMediaCard,eMMC)。
而且,系统中的存储设备很可能不止有一个。实际上,Android 系统会区分“内部”(internal)存储和“外部” (external)存储。内部存储一般就是指板上的eMMC,而外部存储则是手机或者平板上用于可插拔的 SD卡。内部存储中包含了 Android 系统本身用于引导,以及基本的文件系统操作。而外部存储则主要用于存储图片以及其他多媒体内容。
在电池供电的设备上有电源管理芯片 (PMIC,PowerManagement IC)。PMIC 的作用是管理电池的各个方面,包括稳压和充电。PMIC通常连接到电池上,为板子提供 DC 电源。PMIC 与 SoC 一般通过 SPI、12C 或者 GPIO 连接。当电压过低或者接上充电器时,PMIC 会产生相应的中断。
直接与用于交互的:LED、触摸屏。直接与现实世界交互的:摄像头、各类传感器。连接性器件:USB、WIFI、Bluetooth、GPS、NFC等。