ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

AMBA总线协议之APB与AHB接口协议

2021-06-20 23:59:04  阅读:454  来源: 互联网

标签:AHB 周期 接口协议 总线 传输 信号 APB


文章目录

概述

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

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

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

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

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

1.AHB接口

AHB的组成

  • Maste(总线主机)r:能够发起读写操作,提供地址和控制信号。同一时间只有1个Master可以处于有效状态并能使用总线;
  • Slave(总线从机):在给定的地址范围内对读写操作作响应,并对Master返回成功、失败或者等待等状态;
  • Arbiter(仲裁器):负责保证总线上一次只有一个Master工作。仲裁协议是规定的,但是仲裁算法可以依据应用决定;
  • Decoder(解码器):负责对地址进行解码,并提供片选信号到个Slave;
  • 每个AHB都需要一个仲裁器和一个中央解码器。

AHB基本信号

信号描述
HCLK时钟信号
HRESETn复位信号,低有效
HADDR[31:0]32位系统地址总线
HTRANS传输类型,包括NONSEQ(连续传输的首个数据)、SEQ(连续传输的中间数据)、IDLE(空闲周期)、BUSY(准备发送数据,但是还没准备好发,即不发送当前这一拍数据)
HWRITE传输方向,信号为高(1)时为写操作,为低(0)时表示读操作
HSIZE[2:0]传输单位
HBURST[2:0]传输的burst(突发)类型,包括SINGLE(单个)、INCR(连续)、WRAP4、INCR4(连续发起4个)等
HWDATA[31:0]写数据总线,从Master到Slave
HREADY传输完成,Slave应答Master是否读写操作完成,信号为高(1)表示传输完成,为低(0)则需要延长传输周期
HRESP[1:0]传输响应,Slave应答当前传输状态,四种不同的响应:OKAY、ERROR、RETRY、SPLIT
HRDATA读数据总线,从Slave读到Master
HSELx从机选择,由译码器控制,每个Slave都有自己独立的从机控制信号,表示当前传输是否发送给选择的从机

AHB基本传输

  • 具有两个阶段:地址周期和数据周期;
  • 地址周期(AP),只有一个周期
  • 数据周期(DP),有HREADY信号决定需要几个周期;
  • 流水线传送
  • 遵循先是地址周期,然后是数据周期
    在这里插入图片描述

图解:

  • 先发送地址和控制信号(HTRANS、HBURST、HSIZE等);
  • 发送地址信号只能是一拍,发送数据可以多拍
  • 有效的写入和读出数据都发生在HREADY信号拉高的周期里。

AHB transfer传输

在这里插入图片描述

图解:

  • 图中HBURST指定的是INCR类型,是连续地发送数据的burst类型;
  • HTRANS中指定了NONSEQ(表示这是连续发送的数据里面的第一个数据)、BUSY(准备发送数据,但是还没准备好发)、SEQ(传输过程里面的数据);
  • HTRANS信号指定为BUSY时,那一拍的数据就不会发送;

AHB burst传输

在这里插入图片描述

图解:

  • HBURST指定的是INCR4类型,表示要连续发送4个数据;
  • 注意图中的读写时序不是表示既可以读又可以写,只是分别表示读和写的时序,读写不同时发生;

2.APB接口

  • 主要应用在低带宽的外设上,如UART、I2C,它的架构不像AHB总线是多主设备的结构;
  • APB总线的唯一主设备是APB桥(与AXI或APB相连),因此不需要仲裁一些request、grant信号。
  • APB协议不是流水操作,固定周期完成一次读或写的操作;
  • 特性:两个时钟周期完成一次传输,无需等待周期和回应信号

基本信号

  • PCLK:时钟信号;
  • PADDR:地址线;
  • PWRITE:读写操作线,为1时写,为0时读;
  • PSEL:
  • PENABLE:允许读写操作信号线;
  • PWDATA/PRDATA:读写数据线。

传输时序图

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

写操作

在这里插入图片描述

注意:

  • 写数据线(PWDATA)是同写信号线变化(PWRITE)的,而不是同PENABLE信号线变化(区别于读操作);
  • PENABLE在写操作周期结束后,会同PSEL一同拉低,除非有需要立即跟随下一次传输;
  • 协议里面规定,为了降低能耗,PADDR(地址线)和PWRTE(写操作线)可以在一次操作后不发生变化,不做跳变,直到下一次读写操作。

读操作

在这里插入图片描述

注意:

  • 读数据信号线是同PENABLE信号线同时跳变;

标签:AHB,周期,接口协议,总线,传输,信号,APB
来源: https://blog.csdn.net/SummerXRT/article/details/118077270

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有