• 【手撕AHB-APB Bridge】~ AMBA总线 之 APB


    前言

    文章更新原则如下:当日微信公众号首发===>最早次日博客更新(取决于作者时间)

    如果大家想看到第一手的文章请关注 微信公众号 “IC二舅” ,回复关键字有学习资料获取,并且可以一起进群讨论学习!!!

    一. 引入

    APB(Advanced Peripheral Bus) 作为高级外设总线是AMBA协议之一,也是最基本的总线协议。按照ARM官方定义,APB是一种低成本的接口协议,可以实现低功耗以及精简的接口设计,降低接口设计的复杂度。

    APB协议不支持流水线设计,它主要应用在低带宽设计需求的接口中,高性能带宽需求可以使用AXI总线。APB协议的实现与时钟沿对齐,以简化外设接口的设计。每次传输至少需要消耗两个时钟周期。

    在SOC设计中,APB一般作为IP的配置接口,其中包括低速外设如I2C,UART等,可以方便的实现CPU对外设IP的寄存器配置。系统中一般会实现一个AXI2APB或者AHB2APB的转换桥将APB口挂载在系统上。这里不讨论AXI,以AHB2APB为例:
    在这里插入图片描述

    二. APB总览

    APB一般情况下只是一个Slave,如上图所示。APB中最重要的就是需要掌握以下几点:

    • a. APB有哪些信号?
    • b. APB的读写时序图?
    • c. AHB2APB的地址映射关系是什么?
      在这里插入图片描述

    1. APB信号

    在这里插入图片描述
    PCLK和PRESETn表示的是 Global 变量,不论在AHB还是APB中都有的,以下几个信号是APB的信号:
    在这里插入图片描述

    2. APB的读写时序图

    2.1 APB写操作的时序图

    在这里插入图片描述
    完成一次传输需要两个Cycle,一是SETUP cycle,另一个是ENABLE cycle。首先PSEL信号拉高,此时的PENABLE拉低,此时数据已经开始写,但没完成!!!之后第二个周期,PENABLE拉高,完成一次传输。

    2.2 APB读操作的时序图

    在这里插入图片描述
    读操作和写操作比较类似,可以参照写操作!!!

    三. 地址映射关系

    在这里插入图片描述
    逐层传递,解码,储存,通过 两级Mapping(映射)的过程 完成地址映射!!!

    四.实现方式

    如何实现传输2个ahb的pipeline到两个时钟周期的timing呢?

    答:apb通过实现状态机来实现该功能的。
    在这里插入图片描述

    五. 数据流向

    在这里插入图片描述
    APB Slave:左侧的输入信号是来自bridge的,输出只有一个,那就是读出来的数据送给AHB。

    六. Apb到ahb的接口(读数据)

    在这里插入图片描述
    图中的小1表示地址线传输(从AHB向APB),此时PSEL拉高,PENABLE拉低,完成第一个周期,后来PENABLE拉高,完成第二个周期,此时的数据已完成 读取。

    声明

    本人所有系列的文章,仅供学习,不可商用,如有侵权,请告知,立删!!!

    本人主要是记录学习过程,以供自己回头复习,再就是提供给后人参考,不喜勿喷!!!

    如果觉得对你有用的话,记得点赞+收藏+评论!!!

    全网各平台同名===> “IC二舅”

    ====================================================================

    下期预告:

    AMBA总线 之 AHB ,敬请期待!!!

  • 相关阅读:
    卷积神经网络 - 车辆识别
    python中sql拼接时对字段可能为空的处理思路
    基于区块链的隐私保护数据共享
    Java容器之Map
    MVC您正在查找的资源可能被移除
    基于遗传算法的二进制图像重建(Matlab代码实现)
    event事件分发器||静态类型转换
    工厂仪表定时拍照智能AI算法识别内网部署方案
    数据备份管理中的分类定级:方法、标准与策略
    Java开发2年,如今跳槽成功,入职阿里核心部门涨薪20k!
  • 原文地址:https://blog.csdn.net/qq_40549426/article/details/126114279