AHB-APB总线协议

AHB-APB总线协议


一、AHB-APB总线介绍

AHB(Advanced High-performance Bus)高速总线,接高速master,APB(Advanced Peripheral Bus)外设总线,用来接低速slave,一个master可以有多个slave,AHB和APB之间通过一个AHB2APB桥转接。AHB总线强大之处在于它可以将微控制器(CPU)、高带宽的片上RAM、高带宽的外部存储器接口、DMA总线控制器,以及各种AHB接口的控制器等连接起来构成一个独立的完整SOC系统。

二、AHB总线设备

AHB主要有四个模块:主设备AHB master、从设备AHB slave、仲裁器arbiter、译码器decoder
AHB与APB通过AHB2APB桥进行信号传输,AHB总线互联如下图
在这里插入图片描述

1、AHB主设备(master)

初始化一次读/写操作
在同一时刻只能允许一个主设备使用总线
可接多个外设如DMA、DSP、CPU、片上RAM等

2、AHB从设备(slave)

响应一次读/写操作
通过地址映射来选择使用哪一个从设备,且仅有选中的从设备响应地址/控制信号
接外部存储器控制器、APB桥、UART接口

3、AHB仲裁器(arbiter)

允许某一个主设备控制总线

4、AHB译码器(decoder)

通过地址译码来决定选择哪一个从设备

5、AHB2APB桥(bridge)

可以锁存所有地址、数据、控制信号
通过二级译码来产生APB从设备选择信号

三、基本AHB信号及传输过程

1、AHB接口信号

AHB接口如下图:
在这里插入图片描述

HCLK:总线时钟
HRESETn:总线复位,低电平有效
HADDR[31:0]:32位系统地址总线
HWDATA[31:0]:写数据总线,从主设备到从设备
HRDATA[31:0]:读数据总线,从从设备到主设备
HTRANS[1:0]:指出当前传输类型
HSIZE[2:0]:指出传输大小
HBURST[2:0]:指出传输burst类型
HRESP[1:0]:从设备发给主设备的总线传输状态
HREADY:为1从设备指出传输结束,为0从设备需延长传输周期
HSELx:选择从设备

2、APB接口信号

在这里插入图片描述

3、AHB 仲裁器信号

在这里插入图片描述

4、地址译码

·由地址译码器来提供选择信号
·且一个从设备应至少占用1kb存储空间
·在从设备中需要一个额外的缺省从设备来映射其他的存储地址
地址译码框图如下:
在这里插入图片描述

在这里插入图片描述

5、传输过程

传输类型由HTRANS信号指出,分四种类型:
IDLE、BUSY、NONSEQ、SEQ

IDLE:主设备占用总线,但没进行传输,两次burst传输中间主设备可发IDLE
BUSY:主设备占用总线,但在burst传输过程中还没有准备好下一次传输,一次burst传输中间主设备可发BUSY
NOSEQ:表明一次单个数据的传输或一次burst传输的第一个数据,地址和控制信号与上一次传输无关
SEQ:表面burst传输下来的数据,地址和上一次传输地址相关

AHB在传输过程中分两个传输阶段,第一个阶段为地址周期(AD),第二个阶段为数据周期(DP)。地址周期只有一个有效周期,数据周期由HBURST信号决定需要几个有效周期。传输过程中先传输有效地址周期,后传输有效数据周期。AHB协议后一次突发传输必须在前次传输完成才能进行。

附:总线协议实现(AHB_Lite)

这里放一个笔者实现的AHB_Lite总线协议,设计实现请参考文档:AHB_Lite总线协议及实现
链接: https://blog.csdn.net/yueqiu693/article/details/119849052.

  • 11
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

俩个圆

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

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

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

打赏作者

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

抵扣说明:

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

余额充值