每日一看哦。

AMBA总线架构是什么 chi总线和amba区别_数据

AMBA总线架构是什么 chi总线和amba区别_AMBA总线架构是什么_02

目录

每日一看哦。

一、AMBA总线

2,AMBA 2.0协议

2.1AMBA总线的特性

AHB总线:

ASB总线(不重要,因为现在很多都已经不再使用该总线了):

APB总线:

2.2 AMBA总线的组成

AHB总线的组成部分:

APB的组成部分:

2.2AMABA协议的其他问题

3,AMBA 3.0协议

二、ACE协议

三、CHI协议


一、AMBA总线

系统总线:系统芯片中各个模块之间需要有接口进行连接;而总线作为子系统之间共享的通信链路

AMBA总线属于系统总线的一种。其中学习AMBA总线应从以下几个方面了解:分别是APB/AHB/AXI/ACE/CHI。

优点:低成本、方便易用;缺点:会造成性能瓶颈

AMBA总线发展史:1.0,2.0,3.0,4.0....

一个典型的AMBA系统

AMBA总线架构是什么 chi总线和amba区别_单片机_03

拓展: 

ARM:第一种指的是ARM公司,第二种指的是一类处理器的总称。这里指的是处理器。

  • 任何一款ARM芯片由ARM内核和外设组成。
  • 内核包括:寄存器、总线(即今天学习的AMBA也属于其中一类),指令集、中断逻辑、存储器映射规则和调试组件等。
  • 外设:包括AD转换器,计时器,存储器,I2C,UART等

DMA:称为直接存储器。

用途:用于外设和存储器之间或者存储器和存储器之间的高速数据传输。

特点(原博不见了,如果侵权请联系):

  • 可以不需要CPU干预,数据可以之间在DMA内快速的移动
  • 两个DMA控制器有12个通道,其中DMA1具有7个通道,DMA2具有5个通道;且每个通道都专门用于一个或者多个外设对DMA访问的请求。
  • 为了防止出现多个外设或DMA同时向某一个DMA发送请求,而DMA无法判决的情况,因此需要仲裁器协调各个DMA请求的优先权。
  • 典型的DMA应用场景

AMBA总线架构是什么 chi总线和amba区别_AMBA总线架构是什么_04

步骤:其中,图中的M、S表示master、slave。图中DMA到CPU箭头上的INT的意思是中断。

  1. CPU检查DMA的状态是否可用,即当status为0时表示DMA是空闲的可用的
  2. CPU设置(source address(数据原始地址))、(destination address(数据目的地址))(size(要传送数据的大小)
  3. CPU完成其工作,启动DMA,CPU完成工作后即对于这部分而言是空闲的,数据传输的过程由DMA自行处理即可。
  4. DMA把数据从memory 1(memory2)传输给 memory 2 (memory1)。
  5. 上述数据传输完成后,DMA向CPU发出中断请求
  6. CPU检查DMA状态,有数据传输请求时重复1-5过程

参考链接:

DMA基础

2,AMBA 2.0协议

首先2.0是片上总线的标准,其次定义了三种总线,分别为AHB,ASB,APB。AHB为高速总线,ASB一般不使用,APB为慢速总线,一般用于外接其他慢速总线,如I2C,UART、SPI等。

2.1AMBA总线的特性

AHB总线:

  • 高速总线,具备高性能,能达到100MHZ传输速度
  • 2级流水线操作
  • 可支持多个总线主设备(最多16个设备)
  • 支持burst传输
  • 总线带宽:8,16,32,64,128bits。即一个时钟周期内传输的数据量,一般为32bits
  • 为上升沿触发操作。一般都为上升沿操作,主要原因是因为制造时基本都是硅芯片,而硅芯片与电容的充放电有关。电容的充电过程相当于从低电平到高电平的过程,放电过程相当于从高电平到低电平的过程。由于电容的物理特性,电容的充电过程时间相比于放电较短,因此数据的建立时间就比较好控制,所以一般都为上升沿触发。
  • 对于一个新设计建设使用AHB。

ASB总线(不重要,因为现在很多都已经不再使用该总线了):

  • 高速总线
  • 流水线操作
  • 支持多个总线主设备
  • 支持burst传输
  • 总线带宽:8,16,32bits
  • 三态、双向总线(双向总线指的是类似于I2C,只用一根数据线完成数据的发送和接收,即半双工通信方式,称为双向总线,通信方式为串口通信),不适用于做DFT(触发器)
  • 下降沿或上升沿触发

APB总线:

  • 低速总线、低功耗
  • 接口相比于前两种简单
  • 在bridge中锁存地址信号和控制信号
  • 适用于多种外设,如在“一个典型的ARMA系统”的图中所示,可以接I2C/SPI等较为低速的总线外设
  • 为上升沿触发

2.2 AMBA总线的组成

AHB总线的组成部分:

  • AHB主设备(master)
  1. 初始化一次读/写操作
  2. 某一时刻只允许一个主设备使用总线
  3. 在AMBA系统中,所有设备都可以作为主设备,而且最多可以有16个主设备,如CPU,DMA,DSP,LCDC等。但在数据传输的过程中只能有一个主设备。
  • AHB从设备(salve)
  1. 相应主设备的一次读/写操作
  2. 通过地址映射来选择使用哪一个设备
  3. 外部存储器控制器、APB bridge
  • AHB仲裁器(arbiter)
  1. 只允许一个主设备控制总线
  2. 在AMBA协议中没有定义冲裁算法,一般是cpu作为主设备使用仲裁算法来实现仲裁功能
  • AHB译码器(decoder)
  1. 通过地址译码器来决定选择哪一个从设备

APB的组成部分:

  • APB总线上所有的模块都是APB从设备,即只有slave,没有master
  • AHB2APB bridge是完成高性能总线即AHB到APB总线的桥接器。
  • AHB2APB Bridge的规则
  1. 可以锁存所有的地址、数据和控制信号。其中锁存的是AHB地址以及控制信号,并使之在整个APB传输器件有效。
  2. AHB和APB的时钟是同步时钟,APB时钟和AHB时钟的分频关系由PCLKEN信号决定。
  3. 支持一个slave,因此只产生一个选择信号PSEL
  4. 对于写传输,驱动数据到APB总线上;对于读传输,驱动APB数据到系统总线上。
  5. 支持APB模块的使能信号(APBACTIVE)。
  6. 支持输入输出数据寄存或者不寄存,由模块参数控制。
  7. 支持APB总线字节选通信号(pstrb[3:0]),保护控制信号(pprot[3:0])。

参考链接:

设计AHB2APB同步桥_小小verifier的博客

  • 该协议与工艺无关,不关心生产出来的芯片是7nm还是10nm这类问题,只规定了相关的协议和时序
  • 也没有定义电气特性
  • 仅仅在时钟周期级定义了时序,而提取时序参数依赖于所采用的工艺和频率(这话疑问,和建立保持时间有关系吗?有关系的话有何关系?)

3,AMBA 3.0协议

增加了AXI协议层,以及AHB-lite总线(轻量型)。

参考视频:

https://www.bilibili.com/video/BV1K34y1B7hR?spm_id_from=333.999.0.0