首页 > 代码库 > 基带处理器和应用处理器的核间通信
基带处理器和应用处理器的核间通信
当前的手机架构使用着多种处理器间通信方式,目前分离式AP、CP流行的接口有SPI、I2C、UART、USB和双端口互联等,SoC式则采用共享内存。控制命令以消息的格式在基带处理器和AP处理器间传送,完成通话、短消息、移动上网等功能,通信协议包括传统AT命令、MBIM等。一般来说,芯片都会支持多种接口,并设计通用的软件驱动平台驱动。
1,GPIO:通用输入输出控制线(General Purpose Input/Output)
当微控制器或芯片组没有足够的I/O端口,或当系统需要采用远端串行通信或控制时,GPIO产品能够提供额外的控制和监视功能。如拨打电话时AP通过GPIO唤醒BP,来电时也通过GPIO唤醒AP。
2,UART:通用异步接收/发送装置(Universal Asynchronous Receiver/Transmitter)
UART用于异步通信、双向通信,可以实现全双工传输和接收,其典型数据传输速率约为 1.5Mbps,而高速UART 则支持高达5Mbps的速率。这种数据传输速率还是不能满足高带宽处理器间通信的要求,2G网络中芯片间的物理交互(数据传输、AT命令等)可通过UART实现。
3,I2C:Inter-Integrated Circuit
I2C总线是一种设备互联的通用总线,两条信号线-一条传递时钟信号、另一条传输双向数据信号,传输过程由I2C协议控制.尽管最新 I2C 规范提出了吞吐量高达3.4Mbps的高速模式,但目前可用的大多数设备只能支持400Kbps到1Mbps的数据传输速率。
4,SPI: 串行外围设备接口(Serial Peripheral interface)
SPI 能支持 20Mbps 以上的数据传输速率,但其没有统一的规范,因此主要取决于采用什么样的处理器。若采用基带处理器,SPI一般可支持约16Mbps的数据传输速率。由于众多基带处理器制造商推出各自的专利产品,因此不同基带处理器上不同的SPI接口会对设计人员提出不同的挑战,难以将两个不同基带处理器成功配对,以实现最佳SPI速度。
5,USB: 通用串行总线(Universal Serial Bus)
比较流行的一种互连技术是采用通用串行总线 (USB)接口。大多数处理器都具备全速USB(FS-USB)性能,FS-USB的最大数据传输速率为12Mbps,由于USB协议本身的数据包开销较高,因此其实际吞吐量约为 6Mbps。USB1.1可满足EDGE的速率要求、2.0以后可满足3G、HSPA的速率要求,但USB方案要求基带处理器必须具有USB接口,而应用处理器能够支持USB HOST或者USB OTG设备,软件处理相对比较复杂且USB功耗相对较大因为USB主机即便在不传输数据时也始终保持工作状态(USB-ULPI/HSIC 接口降低了功耗)。
6,双端口互联
空口技术的数据传输率越来越高,LTE下行速率可达Gbit,因此尽管集中精力在提高处理器能力与无线数据传输速率,但处理器间通信一直是一个很大的瓶颈。随着手机技术日益复杂,处理器间传输的数据量肯定会不断加大。解决处理器间互连问题的一种潜在解决方案就是采用多端口互连技术--缓冲多端口器件作为两个CPU之间的互连机制,能支持两者之间的高速数据传输,而且也有助于降低处理器间通信 (IPC) 的功耗。
双端口存储器的存取时间仅为 40ns,能支持高达 400Mbps的数据传输速度。多端口解决方案支持处理器间的无源通信。由于多端口互连机制作为缓冲,因此接收方处理器可在收到多端口互连中断之间一直处于睡眠模式,只在需要接收数据的时候再进入工作状态,从而降低功耗。
图1 核间通信技术对比
7,单芯片ShareMemory:内存共享
将所有芯核集成在一个单芯片中,AP、BP的分工依然明确,两者之间的通信可依靠内存共享快速、有效的进行,很好得解决了处理器之间通信(数据交换)的问题,对大数据传输有很大的优势,但其技术难度较为复杂。