首页 > 其他分享 >AMBA总线协议(一)——一文看懂APB总线协议

AMBA总线协议(一)——一文看懂APB总线协议

时间:2023-10-29 18:36:59浏览次数:29  
标签:AHB 总线 信号 APB 数据 AMBA

0.AMBA总线概括

AMBA(Advanced Microcontroller Bus Architecture) 总线是由ARM公司提出的一种开放性的片上总线标准,它独立于处理器和工艺技术,具有高速度低功耗等特点。

系统芯片中各个模块之间需要有接口来连接;

总线作为子系统之间共享的通信链路;

其优点:低成本,方便易用

缺点:容易有性能瓶颈

AMBA总线的发展历史:

AMBA 1.0 : ASB, APB
AMBA 2.0 : AHB, ASB, APB
AMBA 3.0 : AMBA Advanced eXiensibele Interface (AXI)
AMBA 4.0 : ...

AMBA总线体系包括以下三种总线:

  1. AHB:Advanced High-performance Bus,用于高性能、高时钟工作频率模块。
  2. ASB:Advanced System Bus,用于高性能系统模块。
  3. APB:Advanced Peripheral Bus,用于慢速外设模块。

下面给出一个典型的AMBA系统:
image

以一个SOC系统架构设计为例:
image

从AHB/ASB总线到APB总线需要通过 桥接器(Bridge) 进行互联。

1.APB总线介绍

应用于慢速外设,如UART、键盘等,不需要AHB总线体系中的Arbiter与Decoder。
Arbiter为仲裁器,决定哪个Master工作。Decoder为译码器,决定Master与哪个Slave进行数据传输。

1.1 接口主要信号

image

可以看出,APB总线接口主要有 系统信号,地址信号,方向信号,数据信号,传输阶段控制信号

2.APB总线传输介绍(时序部分)

2.1 状态机

image

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

2.2 写操作

下图表示APB基本的写操作
image

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

2.3 读操作

image

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

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

3.APB到AHB的接口

3.1 读操作

image

在频率很高的情况下,在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 写操作

image

APB总线上的单块数据写操作不需要等待周期。APB桥的责任是对地址和数据进行采样,并在写操作的过程中保持它们的值。

T1:AHB 开始作数据地址和读写控制信号的传递(HADDR 和 HWRITE)

T2:APB bridge 栓取住 AHB 送来的数据地址及读写控制信号,同时进入到 APB 有限状态机的 ENABLE状态

T3~:其后的读和写动作跟之前所介绍的 APB 读写动作一模一样,在这里我们不再加以详述。

下图是突发写传输时序图:

image

虽然第一个传输可以零状态等待状态玩抽,但之后到外设总线的传输将为每个传输的执行要求一个等待状态。

APB桥中需要有 2 个地址寄存器,当处理一个数据块写操作时,可以寄存下一个数据块的地址。

3.3 背靠背操作

下图给出了背靠背传输的时序,分别写,读,写,读

image

如果写操作之后跟随着读操作,那么需要 3 个等待周期来完成读操作。通常的情况下,不会有读操作之后紧跟着写操作的发生,因为两者之间 CPU 会进行指令读取。

标签:AHB,总线,信号,APB,数据,AMBA
From: https://www.cnblogs.com/linhaostudy/p/17796166.html

相关文章

  • BootstrapBlazor组件库,Table组件导出数据到剪切板
    BootstrapBlazor组件库,Table组件导出数据到剪切板解决方案使用ClipboardService将Table数据导出到剪切板中,并且可以直接粘贴到Excel。这里我直接采用ExportButtonDropdownTemplate添加了2个新的导出选项,一个是导出当前页,一个是导出所有页。Razor代码<TableTItem="Foo"......
  • BootstrapBlazor组件库,Clipboard剪切板服务
    BootstrapBlazor组件库,Clipboard剪切板服务组件介绍本Blazor组件依赖于BootstrapBlazor组件库。使用该组件之前需要先安装BootstrapBlazor组件库。可以通过nuget命令行安装dotnetaddpackageBootstrapBlazor--version7.x或者双击项目名称直接添加ItemGroup<ItemGroup......
  • MCP2515国产替代兼容方案DPC15完全PIN对PIN支持spi通信的CAN总线控制芯片
    说明DPC15是一款独立控制器局域网络(ControllerAreaNetwork,CAN)协议控制器,完全支持CANV2.0B技术规范。该器件能发送和接收标准和扩展数据顿以及远程帧。MCP2515自带的两个验收屏蔽寄存器和六个验收滤波寄存器可以过滤掉不想要的报文,因此减少了主单片机(MCU)的开销。DPC15......
  • APB Slave Design
    APBSlaveDesignmoduleapb_slave#(REG1_ADDR=8'h00,REG2_ADDR=8'h04,REG3_ADDR=8'h08)(//inputsignalsinputpclk,inputpresetn,inputpsel,inputpenable,inputpwrite,input[31:0]pwdata,input[31......
  • 【通信传输协议】总线协议之SPI
    一、SPI简介串行外设接口serialperipheralinterfacce,是摩托罗拉公司最先推出的一种同步串行传输规范。高速、全双工、同步的串行通信总线。SPI有主从两种模式,通常由一主多从模块组成。SPI通信需要至少4根线,单向传输时3根,MISO(主设备入)、MOSI(主设备出)、SCLK和CS/SS(片选)。 ......
  • CAN 总线介绍
    简介高速CAN(经典CAN):ISO11898低速CAN:ISO11519CANFD:兼容经典CAN 使用场景 多主机场景,每个设备都可以主动发送数据物理层  帧格式can总线规定了数据在物理层上传输的帧格式识别码:表示这个数据帧是发送给哪个设备RTR位:为0表示数据帧,为1表示远程请求帧(无数据码)I......
  • 事件总线-(EventBus)
    自定义事件总线自定义事件总线属于一种观察者模式,其中包括三个角色:口发布者(Publisher):发出事件(Event);口订阅者(Subscriber):订阅事件(Event),并且会进行响应(Handler);口事件总线(EventBus):无论是发布者还是订阅者都是通过事件总线作为中台的; 当然我们可以选择一些第三方的库:口Vue2默认......
  • 8088/8086微处理器与总线学习笔记总结
    目录一、微处理器与总线1.微处理器的概述1.1运算器1.2控制器1.2.1指令控制1.2.2时序控制1.2.3操作控制二、8086/8088微处理器1.8086/8088CPU的指令特点1.1指令流水线1.2内存的分段管理技术1.3支持多处理器系统2.8088/8086的外部引脚及其功能3.8086/8088的功能结构3.1内部......
  • 1553B总线测试仪
    1553B总线测试仪-天津光达航电科技有限公司在测试模拟1553B总线的标准化测试仪器,该仪器是通过简单直观的管理工具实现复杂的MIL-STD-1553的测试及模拟功能,主要包括对MIL-STD-1553B总线的在线仿真测试实时显示、数据分析、数据存盘、数据回放等功能,满足了设备检测和故障定位的需要,......
  • Vue学习笔记(十):全局事件总线
      之前博客中介绍了prop和调用事件的方式在父-子组件之间进行数据,这种方式在只有一层嵌套层时可以使用,但是路过存在多层嵌套,多层多个“兄弟”组件之间传递数据,就非常麻烦。对此,vue中提供了一种全局事件总线机制,数据传递是通过一个空的Vue实例作为中央事件总线,通过它......