持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第15天!
AMBA总线概述
系统总线简介
- 系统芯片中各个模块之间需要有接口来连接
- 总线作为子系统之间共享的通信链路
- 优点
- 低成本
- 方便医用
- 缺点
- 会造成性能瓶颈
AMBA 2.0
- Advanced Microcontroller Bus Architecture
- 片上总线的标准(SoC片上的总线结构)
- 定义了三种总线
- AHB(Advanced High-Performance Bus):高级高性能总线
- ASB(Advanced System Bus)【很少用】
- APB(Advanced Peripheral Bus):高级外设总线,低功耗,低速外挂Slave接口
AMBA发展史
- AMBA1.0
- ASB和APB
- AMBA2.0
- AHB,ASB和APB
- AMBA 3.0
- AMBA Advanced eXtensible Interface (AXI)
- AMBA 4.0 -...
APB
- 高速总线,高性能
- 2级流水线操作
- 可支持多个总线主设备(最多16个)
- 支持burst传输(连续传输,eg:连续写操作,如果连续写4个数,就是4beat)
- 总线带宽: 8,16,32,64,128bits[其中32bit常见,随着高性能处理器的发展,64bits比较常见]
- 上升沿操作
- 对于一个新设计建议使用 AHB
ASB(用得较少)
- 高速总线
- 流水线操作
- 支持多个总线设备
- 支持burst传输
- 总线带宽:8,16,32bits
- 三态、双向总线【SPI,I2C,SD接口常见都是双向的】
- (不适合做DFT)
- 下降沿或者上升沿触发
APB
- 低速总线、低功耗
- 接口简单
- 在Bridge中锁存地址信号和控制信号
- 适用于多种外设
- 上升沿触发
AHB组成部分
- AHB主设备(Master)
- 初始化一次读/写操作
- 某一时刻只允许一个主设备使用总线
- CPU,DMA,DSP,LCDC...
- AHB 从设备(slave)
- 响应一次读写操作
- 通过地址映射到来选择使用哪一个从设备
- 外部存储控制器EMI,APB bridge
- APB 仲裁器(arbiter)
- 允许某一个主设备控制总线
- 在AMBA协议中没有定义仲裁算法
- AHB译码器(decoder)
- 通过地址译码来决定选择哪一个从设备
APB组成部分
-
AHB2APB Bridge
- 可以锁存所有的地址、数据和控制信号
- 进行二级译码来产生APB从设备选择信号
-
APB总线上的所有模块都是APB从设备【APB是状态机控制的,分为两拍:第一拍是psel,第二拍是Penable信号。】
-
不是流水线方式
-
接口是零功耗(功耗很低)
AMBA协议其他有关问题
- 与工艺无关(TSMC台积电;SMIC中芯国际)
- 没有定义电气特性
- 仅在时钟周期级定义时序
- 提取时序参数依赖于所采用的工艺和工作频率
DMA: slave;使用slave端口配置DMA的端口行为 master: 直接对Memory的访问