典型的SoC包括以下部分
• 一个或多个处理器内核,可以是MCU、MPU、数字信号处理器或专用指 令集处理器内核;
• 存储器:可以是RAM、ROM、EEPROM或闪存;
• 用于提供时间脉冲信号的振荡器和锁相环电路;
• 由计数器和计时器、电源电路组成的外设;
• 不同标准的连线接口,如USB、火线、以太网、通用异步收发;
• 用于在数字信号和模拟信号之间转换的ADC/DAC;
• 电压调理电路及稳压器。
在外设内部,各组件通过芯片上的互联总线相互连接。ARM公司推出的 AMBA片上总线主要包括高性能系统总线AHB、通用系统总线ASB、外围互联总线APB、可拓展接口AXI。AHB主要针对高效率、高频宽及快速系统模块;ASB可用于某些高速且不必要使用AHB 总线的场合作为系统总线;APB 主要用于低速、低功率的外围,AXI在AMBA3.0协议中增加,可以用于ARM 和FPGA的高速数据交互。
基于ARM的SoC
CPU与SRAM通信
CPU通过AHB对SRAM进行读写
地址生成:CPU生成要访问的SRAM地址。
信号发送:CPU通过AHB总线发送地址信息和读写请求信号。
数据传输:
读操作:CPU发送读请求后,SRAM将数据放在数据线上,CPU接收数据。
写操作:CPU将数据放在数据线上,发送写请求,SRAM接收并存储数据。
等待确认:操作完成后,SRAM可能通过AHB的握手信号通知CPU操作已完成。
CPU与I2C接口通信
CPU通过APB读取I2C的数据
I2C是一种串行通信协议,通常用于低速外围设备与主控制器之间的通信。APB是一种用于连接低速外设的总线。以下是CPU通过APB读取I2C数据的一般步骤:
初始化I2C外设:CPU通过APB发送指令初始化I2C外设,设置通信参数如时钟速率、地址等。
发送启动条件:CPU通过I2C外设发送启动条件,开始通信。
地址和读写位:CPU发送目标设备的I2C地址以及读写位(读操作为1,写操作为0)。
数据传输:
写操作:如果读写位为0,CPU通过APB发送数据到I2C外设,然后发送停止条件结束通信。
读操作:如果读写位为1,CPU接收来自I2C外设的数据。
数据接收:在读取操作中,CPU通过APB从I2C外设接收数据。
发送停止条件:操作完成后,CPU发送停止条件,结束I2C通信。
AHB从接口
AHB主接口
APB桥
APB桥为AHB的一个从设备,但它在APB中是唯一的主设备,而APB中其它低速和低功率消耗的外围皆为APB桥的从设备。下图是 APB 桥的信号接口:
APB桥将系统总线传送转换成APB方式的传送,它具备一些这些功能:
锁存地址,在传送过程中保持地址有效。锁存读写控制信号
对锁存的地址进行译码并产生选择信号PSELx,在传送过程中只有一个选择信号可以被激活。也就是选择出唯一一个APB从设备以进行读写动作.
写操作时: 负责将AHB送来的数据送上APB总线。
读操作时: 负责将APB的数据送上AHB系统总线。
产生一时序选通信号PENABLE作为数据传递时的启动信号
APB Slave框图
如前面所提及,APB 总线中除了 APB bridge 为 M 外,其它的外围皆为 S。因此,APB 从设备比 AHB从设备接口较为简单且非常具弹性: 例如
a. APB 少了仲裁器及复杂的译码电路,APB 进行写操作时,从设备可以决定:
: 在 PCLK 上升沿触发, 且 PSEL 为高时锁存数据
:或在 PENABLE 上升沿, 且 PSEL 为高时锁存数据
b. PSELx,PADDR和PWRITE信号的组合可以决定哪个寄存器会被写操作更新。
c. 在读操作的时候,数据可以 PWRITE 在=0,PSELx 和 PENABLE=1 的时候被送到总线上,而PADDR 用于决定哪个寄存器会被读。
AXI总线
AXI的三种类型
AXI(AXI4-Full):用于高性能的存储器映射需求;(占用资源较多,传输大量数据)
AXI4-Lite:简化版的AXI4接口;(占用资源较少,可用于低吞吐率的存储器的通信)
AXI4-Stream:用于高速的流数据通信(不使用地址,适用于视频流)
AXI的工作方式
AXI4和AXI4-Lite包含5个独立的通道
读地址通道
读数据通道
写地址通道
写数据通道
写响应通道
AXI4:由于读写地址通道是分离的,所以支持双向同时传输;突发长度最大为256;
AXI4-Lite:和AXI4比较类似,但是不支持突发传输;
AXI4-Stream:和AXI4的写数据通道比较类似,只有一个单一的数据通道,突发长度不受限制;
AXI传输对比
Burst可以减少地址通道的交互,提升单笔传输的效率。
Outstanding可以较少多笔传输之间的等待,提升多笔传输的效率。
评论 (0)