前言
我们一般说的嵌入式分为嵌入式硬件和嵌入式软件。一般针对嵌入式软件的定义:易裁切,可以面向定制化应用。系统软件的这些特性离不开嵌入式硬件的的庞大家族图谱。作为电子专业的大学生,学生时候就是从单片机到stm32再到ARM,今天重新全面的认识这些嵌入式硬件,芯片千千万太多庞大,今天我只梳理最核心的嵌入式处理器芯片和通信芯片,毕竟嵌入式软件的大部分工作也是在这些芯片上运行。
一、处理器架构
从大类来区分处理器芯片的话,首选是从芯片框架来展开,不同框架的芯片会因为其特性具有专门的用途。
处理器架构 | 示例硬件平台 | 主要用途 | 特性 |
---|---|---|---|
ARM | Pi, NVIDIA Jetson, RK3399,Xilinx Zynq | 应用在各种嵌入式系统,包括物联网(IoT)设备、机器人、网络设备等 | 低功耗,高性能,广泛的供应商和设备选择 |
x86 | Intel, Advantech industrial PCs | 应用的嵌入式系统主要在工业PC,网络设备 | 完全的PC兼容性,强大的计算能力,支持广泛的软件 |
MIPS | OpenWrt Router, RouterBOARD | 主要应用在网络设备,如路由器 | 高性能的网络处理能力,低功耗 |
PowerPC | Freescale/NXP QorIQ, | 主要用于工业控制系统和通信领域 | 高性能,可靠的实时处理能力,强大的IO能力 |
二、芯片内部基础单元
了解了处理器框架之后,我们选择ARM框架的平台举例,比如RK3399主控芯片平台内CPU选择了具有使用ARM框架的Cortex-A72和Cortex-A53处理器核心。芯片内继续扩展构成,其基本的逻辑单元有以下部分。
- 内存管理单元(Memory Management Unit, MMU):MMU负责处理虚拟内存和物理内存之间的映射,它对于支持现代操作系统(如Linux)非常重要。
- 缓存(Cache):大多数现代处理器都包括一级(L1)和二级(L2)缓存来加速内存访问。某些处理器甚至包括三级(L3)缓存。
- 浮点单元(Floating Point Unit, FPU):如果处理器需要执行浮点运算,FPU是必需的。有些处理器可能不包括FPU,特别是低成本或低功耗的设计。
- 直接内存访问单元(Direct Memory Access, DMA):DMA控制器可以让硬件设备直接读写内存,无需通过CPU,从而降低CPU的负载。
- 中断控制器(Interrupt Controller):中断控制器负责管理来自外部设备的中断请求。
- 定时器(Timers):定时器用于生成定时信号或测量时间间隔。
- 输入/输出(I/O):嵌入式处理器通常包括一系列的I/O接口,例如GPIO(General Purpose Input/Output),I2C,SPI,UART,Ethernet,USB,PCIe等。
- 电源管理(Power Management):电源管理模块用于控制处理器的电源状态,包括睡眠模式,低功耗模式等。
- 安全模块(Security Module):许多现代的嵌入式处理器包括一个或多个安全模块,用于提供加密,解密,安全启动等功能。
三、芯片内专业模块
随着芯片领域的发展,芯片内部除了继承基本单元外,也会添加一些专用的IP以增强某些特定性能。
- 图形处理单元(GPU, Graphics Processing Unit):GPU用于处理图形和影像,尤其在需要进行大量并行计算时,它能提供高效的性能。例如,Raspberry Pi和NVIDIA Jetson等平台都包含一个GPU。
- 神经网络处理器(NPU, Neural Processing Unit) 或AI加速器:这些专门的硬件加速器被设计用来加速深度学习和其他AI算法。比如,NVIDIA Jetson系列包含了一个深度学习加速器(DLA)。
- 音频编解码器(AAC, Audio Codec):处理音频信号,包括模拟和数字音频。AAC可能包括一个或多个数字音频接口(例如I2S),以及模拟音频输入和输出。
- 视频编解码器(VPU, Video Processing Unit):用于高效的视频压缩和解压缩,它们通常支持多种视频编码标准,如H.264,H.265等。
- 图像信号处理器(ISP, Image Signal Processor):用于处理从图像传感器(如摄像头)收集的原始图像数据。
- 模拟-数字/数字-模拟转换器(ADC/DAC):ADC用于将模拟信号转换为数字信号,DAC执行相反的操作。它们通常用于处理声音,电压,温度等物理量。
- 射频接收/发射(RF Transceiver):用于无线通信,如Wi-Fi,Bluetooth,LTE,5G等。
- 场可编程门阵列(FPGA):一些处理器可能包含一个集成的FPGA,这可以提供更大的硬件灵活性,例如Xilinx的Zynq系列。
如果是用于图像处理的芯片,在设计时会叠加除了ISP等专业IP模块,增强其性能,从而更好的应用于带摄像头的嵌入式设备中。
四、通信芯片
电子与通信不分家,如果你刚好从事通信行业,那就一定了解下面这些芯片。
1.现代无线通信网络
举个简单的栗子:比如在深圳部署LTE或5G网络。传统的方式,就是有一个BBU Hotel(或集中的BBU池)部署在城市中心。这个BBU Hotel包含多个BBU(基带单元Baseband Unit),每个BBU管理多个RRU(远程无线单元Remote Radio Unit)。然后在城市的各个区域,会安装RRU和天线。这些RRU常被安装在建筑物的屋顶等高点上。每个RRU都通过光纤与BBU Hotel中的一个BBU相连。
基带单元(BBU):基带单元是处理信号的数字部分,包括编码、解码、调制、解调等过程。BBU通常被部署在一个集中的地方,可以管理多个RRU。BBU与RRU之间通过高速数字接口(一般是光纤)相连,这个接口通常被称为CPRI或者eCPRI。
远程无线单元(RRU):RRU是基站的射频部分,它接收和发射无线信号。RRU通常被安装在靠近天线的地方,以减少射频信号在馈线上的损失。
2、通信领域芯片
基带处理器(Baseband Processor):基带处理器是移动通信设备中的一个关键组件,主要负责处理无线通信协议栈的底层部分。它执行如解调、解码、编码、调制等操作,同时也处理信号质量、功率控制以及移动性管理等任务。基带处理器需要在高性能和低功耗之间找到平衡。在现代的智能手机和其他移动设备中,基带处理器通常会与应用处理器(AP)集成在一起,形成所谓的SoC(System on Chip)。如高通的Snapdragon系列和华为的海思麒麟系列。
射频芯片(RF Chip):射频芯片是无线通信设备的另一个关键组件,它负责在设备与无线网络之间转换信号。射频芯片包括射频放大器、射频接收器、射频转换器等元件。这些元件需要在效率、功率、尺寸和成本之间找到平衡。射频芯片对于5G、WiFi、Bluetooth等无线技术来说是至关重要的。
网络处理器(Network Processor):网络处理器是网络设备如路由器、交换机、防火墙等的关键组件,主要用于快速处理网络数据包。网络处理器需要在高吞吐量、低延迟和可编程性之间找到平衡。例如思科的Silicon One系列和NXP的QorIQ系列。
3、PowerPC
根据我之前的相关经验,通信芯片一般都是使用PowerPC,如果有志于从事相关领域可以关注以下厂商的代表平台:
制造商 | 描述 | 代表性芯片系列 |
---|---|---|
IBM | IBM是PowerPC架构的主要设计者和生产者,产品线丰富,从嵌入式系统到超级计算机的各种应用均有覆盖。 | Power系列,如Power9, Power10 |
NXP(前摩托罗拉) | NXP的PowerPC处理器主要面向嵌入式市场,特别是汽车电子和通信设备领域。2015年被NXP公司收购Freescale,Freescale的PowerPC处理器在市场中还是比较受欢迎的。 | QorIQ系列,如QorIQ T2080, QorIQ LS2088A MPC系列,如MPC7448, MPC8641D; |
AMCC | AMCC的PowerPC处理器主要针对网络和嵌入式市场,特点是低功耗,高性能和高度集成的系统级封装。 | PowerPC 400系列,如440EP, 460EX |
编者说:作为通信领域的嵌入式开发,一般常涉及三类平台:BP基带处理器、AP应用处理器和CP协处理器。所以在该领域除了接触使用通用微处理和微控制器外,还会遇到网络处理器:例如Broadcom的Trident系列,和NXP的QorIQ系列,以及通信专用芯片:例如射频芯片,基带芯片,同时也会有专门的Xilinx **FPGA(现场可编程门阵列)**的需求。从软件系统开发的角度,相比其他的嵌入式方向,会更加注重通信协议栈实现。
VX公众号:森哥谈成像技术
结尾森哥想说:如果你从事嵌入式相关领域,初时选择一个代表性的平台,熟练的研究其资料,后期跟随项目更换自然就容易触类旁通。不管是从事硬件还是软件,芯片datasheet永远是第一手的资源。硬件设计的第一步是选择芯片平台,软件设计的第一步也是了解其芯片平台,然后才能选择适合的软件系统平台,所以这里结合编者的部分经验进行了总结,希望帮助到你有个系统的了解。