APB3协议


注:这里还是以APB 3协议为基础介绍。截止2021年8月,目前APB4进行更新,新增了两个信号(PPROT 和 PSTRB),APB5版本也做了一些小的变动。

简介

AMBA高级处理器总线架构,不同的速率要求构成了高性能SOC设计的通信标准:

  • AHB高级高性能总线
  • APB高级外围总线
  • AXI高级可拓展接口

AHB:主要是针对高速率、高频宽及快速系统模块所设计的总线,可以连接在如微处理器、芯片上或芯片外的内存模块和DMA等高效率总线;

APB:主要应用在低速且低频率的外围,可针对外围设备做功率消耗及复杂接口的最佳化;APB在AHB和低带宽的外围设备之间提供了通信桥梁,所以APB是AHB的耳机拓展总线;

AXI:高速度、高带宽、管道化互联、单向通道,只需要首地址、读写并行、支持乱序、支持非对齐操作、
在这里插入图片描述
APB的特点:

  • 主要应用在低带宽的外设上,如UART、I2C,它的架构不像AHB总线是多主设备的结构;
  • APB总线的唯一主设备是APB桥(与AXI或AHB相连),因此不需要仲裁一些request、grant信号。
  • APB协议不是流水操作,两个周期完成一次读或写的操作;
  • APB的支持最大32-bit的数据位宽。
  • APB有两个独立的数据通道:读通道和写通道。由于APB的两个通道没有自己的握手信号(vaild/ ready),因此两个通道不会同时使用,即不支持读写并行操作 。
  • APB 3根据PREADY信号是否拉高,决定传输是否具有等待周期。

在这里插入图片描述

注意:

  • 主设备:APB Bridge。锁存所有的地址、数据和控制信号;进行二级译码来产生APB Slave选择信号
  • 从设备:其他模块都是APB Slave,比如I2C、URAT等

基本信号

信号来源描述
PCLK时钟源时钟信号
PRESETN系统总线APB接口异步复位信号,但必须等待PCLK的上升沿
PADDRAPB桥 (master)地址线
PWRITEAPB桥(master)读写操作线,为1时写,为0时读;
PSELxAPB桥的译码器APB外围片选信号,抬高后进入SETUP状态,检查地址和控制信号,至少保持2个时钟周期
PENABLEAPB桥 (master)允许读写操作信号线;
PWDATAAPB桥(master)master通过PWDATA线将数据写到slave,数据最大支持32bit
PRDATASlavemaster通过PRDATA线将数据从slave读取回来,数据最大支持32bit
PREADYSlaveAPB slave的响应信号,使能信号PENABLE,会 在ACCESS状态中置位
PSLVERRSlave若拉高,则表示APB数据传输失败。 APB的外围设备可以不使用这根线

注意:

  • APB 3版本增加了PREADY和PSLVERR(即slave error)两个信号控制;
  • APB 4版本增加了PPORT(protect singal)和PSTRB( strobe signal)信号;

具体可以看文档中的描述:
在这里插入图片描述

在这里插入图片描述

APB桥将系统总线传送转换成APB方式的传送,它具备一些这些功能:

  • 锁存地址:在传送过程中保持地址有效,锁存读写控制信号;

  • 对锁存的地址进行译码,产生APB Slave选择信号(PSELx),在传送过程中只有一个选择信号可以被激活。也就是选择出唯一的一个APB从设备以进行读写动作;

  • 产生时序选通信号PENABLE作为数据传递时的启动信号,但是注意APB3是需要PENABLE为高的同时PREADY也为高,才能开始传输。
    在这里插入图片描述

  • APB 没有仲裁器及复杂的译码电路,APB 进行写操作时,从设备相应PREADY信号可以决定:

    1. 在 PCLK 上升沿触发,且 PSEL 为高时锁存数据
    2. 在 PENABLE 上升沿,且 PSEL 为高时锁存数据
  • 写操作时,PADDR信号决定了哪个寄存器会被写操作更新;

  • 在读操作(PWRITE =0)的时候,数据可以在 PSELx 和 PENABLE为高的时候被送到总线上,而PADDR 用于决定哪个寄存器会被读操作更新。


传输时序图

传输状态如下:

  • 系统初始化为IDLE状态,此时没有传输操作,也没有选中任何模块;
  • 当有传输要进行时,PSELx 拉高,但PENABLE为低,系统进入SETUP状态,并且会在SETUP状态停留一个周期。
  • 当PCLK的下一个上升沿到来时,系统会进入ACCESS状态;
  • 系统进入ENABLE状态时,SETUP状态的PADDR、PSELx、PWRITE不变,将PENABLE信号拉高。传输只会在ACCESS状态维持一个周期。
  • 之后若是还有传输进行,就进入SETUP状态;若没有,则进入IDLE 状态。

APB3协议增加了PREADY信号控制:
在传输从SETUP状态到ACCESS状态转变的过程中address, write, select和write data信号必须保持不变。从ACCESS状态退出,由从器件的PREADY 信号控制:

  • PREADY 为低,保持ACCESS状态。
  • PREADY 为高,则退出ACCESS状态,如果此时没有其它传输请求,总线返回IDLE状态,否则进入SETUP状态。

在这里插入图片描述


写操作

1. 没有等待的写操作

在这里插入图片描述
当进入access状态时,如果PREADY信号为高,那么传输就不会等待,会立即在PENABLE拉高的周期内完成传输。

注意:

  • 写数据线(PWDATA)是同写信号线变化(PWRITE)的,而不是同PENABLE信号线变化(区别于读操作);
  • PENABLE在写操作周期结束后,会同PSEL一同拉低;
  • 协议规定,传输结束后PADDR和PWRITE信号线可以不用立即拉低,知道下一个传输到来再改变,这样可以省点。

2. 有等待的写操作

在这里插入图片描述
pready 信号可以延长传输的周期。当总线进入ACCESS状态时,也就是PENABLE拉高时,PREADY为低,那么此时传输的周期会拉长。直到PENABLE拉高,在一个周期时间内完成传输。
注意:
在ACCESS状态下,当PREADY为低,此时其他信号线(addr、write、sel、enable和wdata)要保持不变。


读操作

1.无等待的读

在这里插入图片描述
同上面写操作一样,当总线为ACCESS状态时,如果PREADY保持为高,传输会立即进行,在一个时钟周期内完成传输。

注意:

  • 读数据信号线是在PENABLE信号线跳变后,在短暂的延时后跳变的。所以,注意在验证APB总线协议时,读操作在PENABLE跳变后,加上短暂的延时(如100ps),再读取数据;

2.有等待的读

在这里插入图片描述
同有等待的写操作一样,直到PREADY拉高,才能开始传输,并在一个时钟周期内完成传输。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小verifier

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值