AMBA总线—APB总线协议详解

一、APB总线介绍

关于总线的一些概念:
  总线:计算机内部和计算机之间传输数据的共用通道。

  总线位宽:总线能够一次性传送的二进制数据位数,例如8bit、16bit、32bit、64bit等。

  总线工作频率:即时钟频率(时钟是系统的心脏)。

  总线带宽:总线数据的传输速率(单位时间内,总线上传送的数据量。即每秒钟传送MB的最大稳态数据传输率),主要用来衡量同步通信工作效率

例题:假设总线的时钟频率是 100MHz,总线的传输周期为4个时钟周期,总线宽度为32位,试求总线上的数据传输率。如要提高数据传输率,可采取什么措施?

解:总线的时钟频率为100MHz,即一个时钟周期为0.01us
总线的传输周期为0.01us × 4=0.04us
由于总线的宽度为32bit=4B(字节)
故总线的数据传输率4B / (0.04us) = 100MBps = 100MB/s (p = per, ”每”)
//100*(32/8)/4=100MB/s

总线带宽的两种计算方法 第一种:带宽 = 时钟频率 × 数据位数 第二种:带宽 = 数据位数 / 总线传输周期,总线传输周期 = n×时钟周期,时钟周期 =
1 / 时钟频率 其中n是题目中规定的总线传输周期对应的时钟周期的个数,这种方法也适用于计算数据传输率

  波特率:单位时间内传送二进制数据的位数,主要用来衡量异步串行通信的数据传输速率,单位用bps(位/秒)表示,记作波特。

例题:在异步串行传输系统中,假设每秒传输120个数据帧,其字符格式规定包含1个起始位,7个数据位,1个奇校验位,1个终止位,计算波特率。

解:一帧包含1+7+1+1=10
故波特率为10 × 120 = 1200bps = 1200波特

1.1.什么是APB总线

APB的全称:Advanced Peripheral Bus,即先进外设接口 。AMBA 中的 APB 总线主要用在低速且低功率消耗的外围,在 APB 总线中,唯一的 M 为 APB bridge,其它一些低速和低功率的外围皆为 S。因此 APB 总线不需要有一个像 AHB 一样的仲裁器及其它复杂的线路,也就是说 APB 总线的整个架构较 AHB 简单许多。

为了使APB容易被整合进大部分的设计流程中, APB规订所有信号必须在时钟上升沿触发时进行传递。

通常APB总线的组成可看做是由APB BridgeAPB上的从设备两部分组成。

  1. APB Bridge可以所存总线所有地址、数据和控制信号;并进行二级译码来产生APB从设备选择信号
  2. APB上所有的其他模块都是APB从设备。

1.2.典型的基于 AMBA 总线的系统架构

在这里插入图片描述
APB 总线是 AHB 或者 ASB 系统总线的扩展,便于外设链接到系统总线上。AHB 和 APB 之间有一条桥来链接。

1.3.APB信号列表(重点)

在这里插入图片描述
由上表可以看出,APB信号主要有系统信号(PCLK、PRESETn)、地址信号(PADDR[31:0])、方向信号(PWRITE)、数据信号(WDATA[31:0]、PRDATA[31:0])和传输阶段控制信号(PSELx、PENABLE)五部分组成。

二、APB总线传输(时序)

2.1.APB 状态机

在这里插入图片描述
从状态机看,APB对每一笔数据的传送,均需花 2 个周期的时间,且 APB 的数据传递不适用在有流水线架构的模块设计中

在这里插入图片描述

2.2.写操作(重要)

在这里插入图片描述
  在 T1 时,有限状态机进入预设的 IDLE 状态;
  在 T2 时,数据地址、读写控制信号和写入的数据会在频率正沿触发时,开始作写的数据传递准备,这个周期也就是刚才所提及SETUP状态。译码电路在此状态会根据数据地址去译码出所要写入APB Slave,此时所对应到 S 的 PSEL 信号将由 0 变 1;
  在 T3 时,有限状态机会进入 ENABLE 状态,PENABLE 信号在此状态会被设成 1;
  在 T4 频率正沿触发时,PENABLE 信号将由 1 变 0,而 PSEL 信号在若没有其它数据的写入动作时,也将由 1 变 0。为了减少功率的消耗,APB 的数据地址和读写控制信号在下一笔数据传递前,将不会作任何改变。

2.3.读操作(重要)

在这里插入图片描述
  由图中可发现除了写信号是倒过来有效外,APB 读操作时序图和写操作时序图非常相似,在这里我们就不再作详细的解释。

  要特别注意的是,在 T3 后,也就是在进入 ENABLE 周期后,APB 从必须要将 M 所要读取的数据准备好,以便 M 可以在 ENABLE 周期末被 T4 正时钟沿触发时正确的将数据读取

2.4.APB模块接口(重要)

  上文中已经提到,APB由APB BridgeAPB上的从设备两部分组成。

2.4.1.APB Bridge框图

  APB桥为AHB的一个从设备,但它在APB中是唯一的主设备,而APB中其它低速和低功率消耗的外围皆为APB桥的从设备。下图是 APB 桥的信号接口:
在这里插入图片描述
APB桥将系统总线传送转换成APB方式的传送,它具备一些这些功能:

  •    锁存地址,在传送过程中保持地址有效。锁存读写控制信号
  •    对锁存的地址进行译码并产生选择信号PSELx,在传送过程中只有一个选择信号可以被激活。也就是选择出唯一一个APB从设备以进行读写动作.
  •    写操作时: 负责将AHB送来的数据送上APB总线。
  •    读操作时: 负责将APB的数据送上AHB系统总线。
  •    产生一时序选通信号PENABLE作为数据传递时的启动信号

关于APB Bridge的时序图在此不做详述。

2.4.2.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 用于决定哪个寄存器会被读。

三、APB到AHB的接口

3.1.读操作

在这里插入图片描述
  在频率很高的情况下,在ENABLE CYCLE中可能数据不能够直接映射到AHB总线,需要在APB桥中在T4的时候打一下锁住,并在T5的时候才被AHB主采样。虽然需要多一个等待周期(一共2个,HREADY反压两拍),但是由于频率提升了因此总的性能也提升了。
  T1:在 AHB 总线开始传送;
  T2:地址被 APB 总线采样。如果该传送是针对外设的话,这个地址就会被译码成选择信号发往外设。T2就是 AHB 的SETUP CYCLE。
  T3:APB 的 ENALBE CYCLE,PENABLE 拉高,数据被读出。
  T4:读出的数据直接映射到 AHB 总线上,在上升沿被 AHB 主采样

下图是批量读操作(非高频),每一组数据都只需要一个等待周期:
在这里插入图片描述

3.2.写操作

以下进一步说明 AHB 和 APB 之间数据传递的情形, 如图 所示:
在这里插入图片描述
  APB总线上的单块数据写操作不需要等待周期。APB桥的责任是对地址和数据进行采样,并在写操作的过程中保持它们的值。
  T1:AHB 开始作数据地址和读写控制信号的传递(HADDR 和 HWRITE)
  T2:APB bridge 栓取住 AHB 送来的数据地址及读写控制信号,同时进入到 APB 有限状态机的 ENABLE状态
  T3~:其后的读和写动作跟之前所介绍的 APB 读写动作一模一样,在这里我们不再加以详述。

下图是批量写操作的图:
在这里插入图片描述
  当批量写操作的时候,第一块数据不需要等待周期,之后的每一块数据都需要一个等待周期。 APB桥中需要有 2 个地址寄存器,当处理一个数据块写操作时,可以寄存下一个数据块的地址。

3.3.读写交替传送

下图画出了读写交替传送的时序,先是写,再读,再写,再读。
在这里插入图片描述
如果写操作之后跟随着读操作,那么需要 3 个等待周期来完成读操作。通常的情况下,不会有读操作之后紧跟着写操作的发生,因为两者之间 CPU 会进行指令读取。

  • 39
    点赞
  • 372
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: AMBA(Advanced Microcontroller Bus Architecture)总线协议是由ARM(Advanced RISC Machines)公司开发的一种用于芯片之间通信的总线标准。AMBA总线协议官方文档是官方发布的关于AMBA总线协议的技术指南和规范文档。 AMBA总线协议官方文档详细介绍了AMBA总线的结构、信号定义、通信协议以及时序要求等重要内容。这个文档是设计人员在开发使用AMBA总线协议的芯片时的重要参考资料。 在AMBA总线协议官方文档中,首先介绍了AMBA总线的结构。AMBA总线由多个不同层次的总线构成,包括AMBA高级系统总线(AXI)、AMBA高级可选总线(AHB)和AMBA简化总线APB)。文档会详细描述各个总线之间的关系以及其功能特点。 其次,AMBA总线协议官方文档会具体列出每个信号的定义和用途。这些信号包括地址线、数据线、控制线等,用于在芯片之间传递指令、数据和控制信息。了解这些信号的定义和使用方法对于正确实现AMBA总线协议至关重要。 此外,AMBA总线协议官方文档还会详细讲解通信协议和时序要求。通信协议包括读写操作的具体要求、数据传输的流程等。时序要求则指定了每个信号在通信过程中的稳定时间和延迟要求,保证数据的正确传输。 总之,AMBA总线协议官方文档是学习和理解AMBA总线协议的重要指南。对于设计人员来说,仔细研读该文档能够确保正确实现AMBA总线协议,提高芯片的可靠性和性能。 ### 回答2: AMBA(Advanced Microcontroller Bus Architecture)总线协议是由ARM公司开发的一套用于芯片系统总线架构的开放式标准,旨在解决嵌入式系统中芯片之间的通信问题。AMBA总线协议官方文档提供了关于AMBA协议的详细说明和规范,帮助开发者在设计和实现AMBA总线协议的芯片系统时遵循标准。 AMBA总线协议官方文档主要包含以下内容: 1. AMBA总线架构:文档详细介绍了AMBA总线的整体架构,包括主控制器、从设备、总线信号、时序等方面的设计。 2. AMBA总线信号和时序:文档提供了AMBA总线中各个信号和时序的定义和要求,包括时钟信号、复位信号、读写信号、传输确认信号等等。 3. AMBA协议协同工作规范:文档说明了AMBA协议中各个组件之间的协同工作原则和要求,如主设备和从设备之间的通信规范、传输数据的规范等。 4. AMBA总线接口规范:文档详细定义了AMBA总线接口的相关规范,包括数据接收和发送的规范、错误处理机制的规范等。 5. AMBA总线配置和调试:文档提供了AMBA总线配置和调试的相关指导,包括如何设置总线的地址映射、访问权限、中断系统等。 总之,AMBA总线协议官方文档是开发者在设计和实现支持AMBA总线协议的芯片系统时必备的参考资料。文档提供了明确的规范和指导,帮助开发者按照标准化的方式进行设计和开发,确保系统之间的通信和协同工作的正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值