AMBA总线协议(10)——APB

news2025/1/17 2:51:24

一、前言

        在之前的文章中,我们详细地介绍了AHB的相关内容,在这篇文章里我们会开始APB总线的学习,由于APB总线协议的内容真的非常少(手册才34页,比起那些动辄成百上千页的手册来说真的太友好啦),我们会在这一篇文章中全部讲完。

文章合集:AMBA总线协议(0)——目录与传送门

二、什么是APB总线

         APB 的全称:Advanced Peripheral Bus。
        AMBA 中的 APB 总线主要用在低速且低功率消耗的外设,且可针对外设作功率消耗及复杂接口的优化。
        在 APB 总线中,唯一的主机为 APB bridge(APB桥),其它一些低速和低功率的外设皆为 从机。因此, APB 总线不需要有一个像 AHB 一样的仲裁器及其它复杂的线路,也就是说 APB 总线的整个架构较 AHB 简单许多。
        为了使APB容易被整合进大部分的设计流程中, APB规定所有信号必须在时钟上升沿触发时进行传递。这样的设计方式可改善高速电路的效率,且 EDA 对这种设计方式的处理技术较为成熟,也容易实现,例如在静态时序分析及可测性设计的考虑。全部的数据和信号都在上升沿触发来进行传递的设计方式,在以周期为基底的仿真器中也能有较好的模拟表现;除此之外,一般特定应用集成电路链接库(ASIC library)在上升沿触发的反向器设计通常有较佳的表现,也就是说使用集成电路链接库的设计者将得到较好的电路效能。
        APB还具有如下的优点:   
        (1)在高频操作时性能得到提高;
        (2)性能独立于时钟的占空比;
        (3)静态通过使用单时钟边沿简化了静态时序分析;
        (4)自动测试插件无需特别考虑因素;
        (5)许多特定用途集成电路(ASIC)库有较好的上升沿寄存器选择;
        (6)便于与基于周期的仿真器集成。
        APB 的这些改变也使得它简化了到新的高级高性能总线(AHB)的接口。

三、APB 传输

1、APB 写传输

        APB写传输包括两种类型:无等待状态写传输和有等待状态写传输:

1.1 无等待状态写传输

         在时钟上升沿后,改变地址、数据、写信号和选择信号

        (1)T1周期:写传输开始于地址总线信号 PADDR、写数据信号 PWDATA、访问方向信号 PWRITE 和选择信号 PSEL。这些信号在 PCLK 的上升沿寄存。T1 周期称为写传输的建立周期。

        (2)T2周期:在 PCLK 的上升沿寄存使能信号 PENABLE 和准备信号 PREADY。

        ① 当确认时,使能信号 PENABLE 表示传输访问周期的开始。

        ② 当确认时,准备信号 PREADY 表示在 PCLK 的下一个上升沿从设备可以完成传输。

        (3)地址总线信号 PADDR、写数据信号 PWDATA 和控制信号一直保持有效,直到在 T3周期完成传输后,结束访问周期。

        (4)在输出结束后,使能信号 PENABLE 变成无效。选择信号 PSEL 也变成无效,除非相同的外设立即开始下一个传输,这些信号才重新有效。

1.2 有等待状态写传输

        上图说明了从设备如何使用准备信号 PREADY 扩展传输。在访问周期,当使能信号 PENABLE 为高时,可以通过拉低准备信号 PREADY 来扩展传输。

        下面这些信号保持不变:

        (1)地址信号,PADDR

        (2)访问方向信号,PWRITE 

        (3)选择信号,PSEL

        (4)使能信号,PENABLE

        (5)写数据信号,PWDATA

        (6)写选通信号,PSTRB

        (7)保护类型信号,PPROT

        当使能信号 PENABLE 为低时,准备信号 PREADY 可以为任意值。确保外部器件使用两个固定的周期来使使能信号 PREADY 为高。

注意:建议在传输后不要立即更改地址和写信号,而是保持稳定,直到发生另一次访问。这降低了功耗。

2、APB 读传输

        APB 读传输包括无等待状态读传输和有等待状态读传输:

2.1 无等待状态读传输

        上图显示了无等待状态读传输。图中给出了地址信号 PADDR、访问方向信号 PWRITE、选择信号 PSEL 和使能信号 PENABLE 的。在读传输结束以前,从设备必须主动提供数据。

2.2 有等待状态读传输

        下图展示了PREADY信号如何扩展传输。如果在访问阶段PREADY被驱动为低,则传输被扩展。该协议确保以下内容在其他周期中保持不变:

        (1)地址信号:PADDR

        (2)访问方向信号:PWRITE

        (3)选择信号:PSEL

        (4)使能信号:PENABLE

        (5)保护类型信号:PPROT

3、错误传输 

        在传输过程中,可以使用 PSLVERR 信号表示 APB 传输的错误条件。在读和写的交易过程中,可能发生错误条件。

        在一个 APB 传输中的最后一个周期,当PSEL、PENABLE和PREADY信号都为高时,PSLVERR信号才是有效的。

        当外设接收到一个错误的交易时,外设的状态可能发生改变。当接收到一个错误时,写交易并不意味着没有更新外设内的寄存器;当接收到一个错误时,读交易能够返回无效的数据。对于一个读错误,并不要求外设将数据总线驱动为0 。

3.1 读传输和写传输的错误响应

(1)读传输错误

(2)写传输错误 

 3.2 PSLVERR 映射

(1)从 AXI 到 APB

        将一个 APB 错误映射到 RRESP/BRESP = SLVERR,通过PSLVERR 映射到 RRESP[1] 信号(用于读)和 BRESP[1] 信号(用于写)来实现该映射。

(2)从 AHB 到 APB

        用于读和写,将 PSLVERR 信号映射到 HRESP = SLVERR,通过将 PSLVERR 信号映射到AHB 信号 HRESP[0]来实现该映射。

四、操作状态

 1、IDLE(初始状态)

        表示空闲,这是默认的APB状态。

2、SETUP(建立状态)

        表示建立。当请求传输时,总线进入 SETUP状态,设置选择 PSELx。总线仅在 SETUP 状态停留一个时钟周期,并在下一个时钟周期进入 ACCESS状态。

3、ACCESS(访问状态)

        表示访问,这里多提一句,这是AMBA 3 的协议,在AMBA 2 中这个状态为ENABLE状态,所以如果看到 ENABLE 状态,这是因为使用的是AMBA 2的文档。在ACCESS 状态中使能信号 PENABLE 置为1。在从 SETUP 状态到 ACCESS 状态转变的过程中,地址信号、写信号、选择信号和写数据信号保持不变。是否从 ACCESS 状态退出,由器件的准备信号 PREADY 控制。

(1)如果准备信号 PREADY为低,保持 ACCESS 不变。

(2)如果准备信号 PREADY为高,则退出 ACCESS 状态。如果此时没有其他传输请求,总线返回 IDLE 状态,否则进入 SETUP状态。

五、总结

        在本文中,我们介绍了 AMBA APB 协议,分别介绍了APB传输(读传输,写参数,错误传输),其中读写又可以分别分成有等待状态和无等待状态,最后介绍了APB的操作状态。APB相对于AHB来说会简单很多,但是也是非常有用的。至此我们已经介绍了APB和AHB,接下来还有本系列最后的AXI协议,也是本系列最重要的部分。(毕竟笔者是学FPGA的,前者只是用于Soc,但AXI哪里都有)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/926495.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Terraform学习】使用 Terraform 创建应用程序负载均衡器(Terraform-AWS最佳实战学习)

使用 Terraform 创建应用程序负载均衡器 实验步骤 前提条件 安装 Terraform: 地址 下载仓库代码模版 本实验代码位于 task_elb 文件夹中。 变量文件 variables.tf 在上面的代码中,您将声明,aws_access_key,aws_secret_key…

Visio

Visio 简介Office Tool Plus教程 简介 Visio(Microsoft Visio)是微软公司开发的一款流程图和图表绘制软件。它主要用于创建各种类型的图表、流程图、组织结构图、平面图、网络图等,以帮助用户可视化和呈现复杂的信息、流程和关系。 Office …

智信数科SMS短信平台安装教程

智信SMS客户端下载 使用智信SMS短信平台前,需要前往公司官网或者百度网盘共享地址下载最新版本的短信平台。 下载地址一:公司官网 下载地址二:百度网盘共享(推荐) 智信SMS客户端安装 安装前,确保您已经正…

抖音seo短视频矩阵系统源码开发源代码分享--开源-可二开

适用于抖音短视频seo矩阵系统,抖音矩阵系统源码,短视频seo矩阵系统源码,短视频矩阵源码开发,支持二次开发,开源定制,招商加盟SaaS研发等。 功能开发设计 1. AI视频批量剪辑(文字转语音&#x…

Node基础--Node中的文件系统

我们学习了npm,这是Node中使用很频繁且重要的内容,下面一起来看看Node中的文件系统。 1.buffer缓冲区 (1).概述 从结构上看Buffer非常像一个数组,我们知道在javaScript中,数组是一个比较强大的内容。但是这里也存在着一个比较大的问题,如果你需要存在一张图,这一个时候需…

【音视频】 视频的播放和暂停,当播放到末尾时触发 ended 事件,循环播放,播放速度

video 也可以 播放 MP3 音频&#xff0c;当不想让 视频显示出来的话&#xff0c;可以 给 video 设置宽和高 1rpx &#xff0c;不可以隐藏 <template><view class"form2box"><u-navbar leftClick"leftClick"><view slot"left&q…

抖音短视频seo矩阵系统源码开发代码分享--开源

前言&#xff1a; 适用于抖音seo源码&#xff0c;抖音矩阵源码&#xff0c;抖音短视频seo源码&#xff0c;抖音短视频矩阵源码开发与实践等。 产品开发代码展示&#xff1a; <?php /** * Created by PhpStorm. * User: ikinvin * Date: 2021/2/24 * Time: 11:32 AM …

Ingress 响应超时504故障排除

Ingress 响应超时504故障排除 1. 故障现象: 在阿里云的ACK新上了一套系统.该系统有个将查询结果导出为excle并下载的功能,当第一次下载时等待1分钟后就跳出504,点击返回后再次下载可以正常下载. 2. 分析判断 根据504的页面应该是和Ingress配置相关和超时时间长短有关 3. …

【1448. 统计二叉树中好节点的数目】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给你一棵根为 root 的二叉树&#xff0c;请你返回二叉树中好节点的数目。 「好节点」X 定义为&#xff1a;从根到该节点 X 所经过的节点中&#xff0c;没有任何节点的值大于 X 的值。 示例 1&#…

vue实现富文本

效果图展示 一、安装依赖 npm install vue-quill-editor --save二、具体使用 html <template><!-- 富文本 --><quill-editorref"myQuillEditor"v-model"content":options"editorOption"blur"onEditorBlur($event)"…

力扣:73. 矩阵置零(Python3)

题目&#xff1a; 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚…

net start mysql 提示:服务名无效 请键入NET HELPING 2185

解决办法&#xff1a; 使用windowr打开运行&#xff0c;输入services.msc, 可以看到名称是mysql80&#xff0c;而且服务已经启动

Vite知识体系

一、浅谈构建工具 1、前端工程的痛点 &#xff08;1&#xff09;前端项目的组成部分&#xff08;核心要素--文件资源&#xff09; ①逻辑代码&#xff1a;js、ts、jsx ②样式代码&#xff1a;css、scss、less ③静态资源&#xff1a;jpg、png、webp &#xff08;2&#xff0…

【打印流】常用方法以及应用场景

打印流常用方法以及应用场景 1.打印流是什么&#xff1f; 可以实现更方便、更高效地写数据&#xff0c;分为字节打印流PrintStream和字符打印流PrintWriter&#xff0c;使用方便&#xff0c;性能高效&#xff0c;底层封装了高效流 字节打印流PrintStream&#xff1a;继承Out…

自己搭建Minecraft服务器并通过cpolar内网穿透实现与公网小伙伴联机我的世界

文章目录 1. Java环境搭建2.安装我的世界Minecraft服务3. 启动我的世界服务4.局域网测试连接我的世界服务器5. 安装cpolar内网穿透6. 创建隧道映射内网端口7. 测试公网远程联机8. 配置固定TCP端口地址8.1 保留一个固定tcp地址8.2 配置固定tcp地址 9. 使用固定公网地址远程联机 …

Python遥感图像处理应用篇037 GDAL+Scikit-image遥感图像主成分分析PCA

1.计算效果图 使用多波段遥感图像进行主成分分析,这里使用了6个波段的数据计算和显示效果图如下:左边是原图像IR+R+G显示图,右边是计算得到的3个主成分组合显示的RGB图像。 2.计算方法详解 使用GDAL库读取和保存遥感图像,使用numpy对图像数据进行相应的变换和计算,使用…

App Inventor 2 开发 ChatGPT 对话App

ChatGPT大家应该不会陌生&#xff0c;它的回答内容非常的专业及深入&#xff0c;具有实际的可指导性。我们通过App Inventor 2开发一个简单的对话App&#xff0c;先看效果&#xff1a; App Inventor 2 ChatGPT教育领域对话演示 代码块如下&#xff1a; 用到的核心组件“ChatBot…

人工智能浅浅的入门

目录 人工智能——让机器具备人的思维 一、人工智能三学派&#xff08;主流方向——连接主义&#xff09; 1.行为主义 2.符号主义 3.连接主义 二、连接主义的神经网络设计过程 1.举例&#xff1a;神经元 2.大致过程 三、人工智能的理解与涉及的重要点 1.个人观点 2.M…

牛客网Verilog刷题 | 入门特别版本

文章目录 1、 VL1 输出12、VL2 wire连线3、 VL3 多wire连接4、VL4 反相器5、VL5 与门6、VL6 NOR 门7、VL7 XOR 门8、VL8 逻辑运算10、VL10 逻辑运算211、VL11 多位信号12、VL12 信号顺序调整13、VL13 位运算与逻辑运算14、VL14 对信号按位操作15、VL15 信号级联合并16、VL16 信…

【redis问题】Caused by: io.netty.channel

遇到的问题&#xff1a; 在使用 RedisTemplate 连接 Redis 进行操作的时候&#xff0c;发生了如下报错&#xff1a; 测试代码为&#xff1a; 配置文件&#xff1a; 问题根源&#xff1a; redis没有添加端口映射解决方案&#xff1a; 删除原来的redis容器&#xff0c;添加新…