APB接口协议

news2024/10/24 7:34:22

APB

  • 简介
  • 信号
  • 传输时序
    • Write
    • Write stobes
    • Read
    • Error response
      • Write transfer
      • Read transfer
      • Mapping of PSLVERR
      • Protection unit support
  • 状态机

简介

  • APB(Advanced Peripheral Bus)是AMBA总线的一部分,从1998年第一版至今共有3个版本。
AMBA2 APB:定义最基本的信号 interface, 读写 transfer, APB bridge, APB slave.

AMBA3 APB:增加定义信号 PREADY, PSLVERR 来支持 wait state  和 Error reporting  的功能。

AMBA4 APB:增加定义信号 PPROT, PSTRB  来支持 transaction protection 和 sparse data transfer 的功能。
  • APB 是非流水线协议,用于连接低带宽和不需要高性能总线的外围设备,信号传输发生在时钟上升沿,每次传输至少需要两个时钟周期。

  • APB 可以同 AHB、AHB-Lite、AXI、AXI4-Lite互连。

信号

SignalSourceDescription
PCLKClock source时钟,上升沿有效
PRESETnSystem bus equivalent复位,低有效(通常直连系统总线复位信号)
PADDRAPB bridge地址,位宽最高可达32 bits
PPROTAPB bridge保护类型。该信号指示事务的正常、特权或安全保护级别,以及该事务是数据访问还是指令访问。(Protection type. This signal indicates the normal, privileged, or secure protection level of the transaction and whether the transaction is a data access or an instruction access.)
PSELxAPB bridge片选信号,由APB bridge 产生对每个外围从设备的片选信号
PENABLEAPB bridge使能信号,标记传输开始
PWRITEAPB bridge读/写控制信号,高为写操作,低为读操作
PWDATAAPB bridge写数据,位宽最高可达32 bits
PSTRBAPB bridgeWrite strobes. This signal indicates which byte lanes to update during a write transfer. There is one write strobe for each eight bits of the write data bus. Therefore, PSTRB[n] corresponds to PWDATA[(8n + 7):(8n)]. Write strobes must not be active during a read transfer.
PREADYSlave interface标记从机是否已将数据发送到总线,高有效
PRDATASlave interface读数据,位宽最高可达32 bits
PSLVERRSlave interface传输错误指示。非必须,如果外设不包含该引脚,输入APB bridge默认为低

由于APB 协议 读写数据总线不包含握手信号,所以不支持同时读写

传输时序

Write

分无等待和等待两种情况

① With no wait states

  • T1 时刻, APB 将地址信息 PADDR 和写的数据 PWDATA 准备好,拉高 PWRITE 表示进入写,同时拉高 PSEL,从 IDLE 进入 SETUP
  • T2 时刻,拉高 PENABLE,使得状态进入 ACCESS
  • T3 时刻,检测到 PREADY 被拉高,也就是说 Slave 已经正确接收到数据,传输完成;PENABLE 拉低,PSEL 拉低

② With wait states

在这里插入图片描述

  • T3时刻检测到PREADY为0,也就是说Slave还没有接收完数据,所以在此刻,下面信号必须保持,以便Slave能够继续采样;直到PREADY为1 ,说明Slave已正确接收到数据,传输完成,PENABLE 拉低,PSEL 拉低

注意:即使传输结束,也不要立即改变 address 和 data 信号,直到下一次传输才更新地址和数据。这样可以减少功耗

Write stobes

PSTRB信号,用于指示写数据中哪些字节有效,PSTRB[n] 对应 PWDATA[(8n + 7):8n],高有效

在这里插入图片描述

注意:在读操作过程中,所有PSTRB信号要保持低电平

Read

读操作与写操作时序差不多

① With no wait states

在这里插入图片描述

  • T1时刻APB将地址信息PADDR准备好,拉低PWRITE表示进入读,同时拉高PSEL,从IDLE 进入SETUP
  • T2时刻也就是下一个时钟周期拉高PENABLE,使得状态进入ACCESS
  • T3时刻检测到PREADY 被拉高,也就是说Slave已经完成收据发送,PRDATA上就是来自Slave的数据,传输完成;PENABLE拉低,PSEL拉低

② With wait states

在这里插入图片描述

Error response

  • 在读和写的过程,可能出现错误,错误通过PSLVERR信号来指明;

  • APB外围设备不要求必须支持PSLVERR引脚,当不使用该引脚时,应被置低;

  • PSLVERR 只有在传输的最后一个周期有效,且此时 PSEL、PENABLE、PREADY均为高。

Write transfer

在这里插入图片描述

Read transfer

在这里插入图片描述

Mapping of PSLVERR

在这里插入图片描述

Protection unit support

为了支持复杂的系统设计,互连和系统中的其他设备通常都需要提供防止非法交易的保护。对于APB接口,这种保护是由PPROT[2:0]信号提供的。

状态机

在这里插入图片描述

  • IDLE:这个是APB的默认状态,也就是没有传输时候的状态;
  • SETUP:当需要进行一个传输的时候,APB 首先进入这个状态;PSELx信号首先拉高;总线仅仅在SETUP状态停留一个时钟周期,然后接着在下一个时钟的上升沿进入ACCESS状态;
  • ACESS
    • 在SETUP状态转换到ACCESS,PENABLE 信号被拉高;在SETUP状态转换到ACCESS状态这段时间里,address,write,select 和 write data 信号必须保持稳定;
    • 处于ACESS状态下,如果PREADY为0,会让其继续处于ACCESS状态;否则,PREADY为1,如果还有传输则再次进入,SETUP-> ACCESS,如果没有传输,直接回到IDLE;
      write data 信号必须保持稳定;
    • 处于ACESS状态下,如果PREADY为0,会让其继续处于ACCESS状态;否则,PREADY为1,如果还有传输则再次进入,SETUP-> ACCESS,如果没有传输,直接回到IDLE;

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

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

相关文章

【专题】计算机网络概述

1. 计算机网络的作用及其发展史 1.1. 计算机网络的作用 二十一世纪的一些重要特征就是数字化、网络化和信息化,它是一个以网络为核心的信息时代。 网络现在已经成为信息社会的命脉和发展知识经济的重要基础。 信息时代以网络为核心。 (1) 网络 “网络”是一个统称…

UE4 材质学习笔记10(程序化噪波/覆雪树干着色器/岩层着色器)

一.程序化噪波 柏林噪波是一种能生成很好的随机图案的算法,它是一个无限的、不重复的图案,可以采用这种基础图案并以多种方式对其进行修改, 将它缩放并进行多次组合,就可以创建一个分形图案。这些组合的缩放等级称为一个Octave 这…

ArrayList和顺序表(下)

1. Java本身提供的ArrayList 在ArrayList和顺序表(上)那一节里面,我们自己实现了ArrayList的底层大部分代码,在这个基础上,我们就可以开始来了解Java本身提供的ArrayList. 1.1 ArrayList的三种构造方法 方法解释ArrayList()无参构造ArrayList(Collection<? extends E > …

‌ComfyUI 高级实战:实现华为手机的AI消除功能

大家好&#xff0c;我是每天分享AI应用的萤火君&#xff01; 不知道大家是否还记得华为 Pura 70的「AI消除」事件&#xff0c;当时使用 华为Pura 70 系列手机的智能消除功能时&#xff0c;该功能可以被用来消除照片中女性胸口处的衣物&#xff0c;这一功能曾引发广泛的关注和伦…

OpenAI Canvas最新发布,编程和写作迎来全新史诗级加强!

文章目录 零、前言一、GPT-40 with canvas操作指导写作领域加强建议编辑调整长度阅读水平添加最后的润色添加表情 编程领域加强选中代码问问题添加评论&#xff08;添加注释&#xff09;添加日志转换语言代码审查 二、感受 零、前言 最新消息&#xff0c;国庆期间OpenAI有大动…

使用管理员删除垃圾文件

1、先设置为管理员权限 2、执行删除文件命令 使用&#xff1a;del /f /s /q “文件夹位置”例如&#xff1a;del /f /s /q "C:\Program Files (x86)\my_code\.git"

2024深圳秋季糖酒会参会攻略!建议收藏

10月29日-31日&#xff0c;第111届全国糖酒商品交易会将在深圳国际会展中心&#xff08;宝安&#xff09;举办。本届糖酒会将邀请来自超四十个国家和地区的超4200家行业厂商和20万国内外专业观众到会交易交流&#xff0c;为食品酒类行业搭建一个集展示、交易、交流、合作于一体…

IP- guard产品版本升级指引详解

一、IP-guard服务器升级步骤 1、下载升级包(IPgUpgrade版本号.zip) 到IP-guard服务器 2、解压升级包,右键以管理员身份运行 (1)“升级包”解压 (2)右键以管理员身份运行“升级包” ࿰

报表工具如何助力企业报表开发?如何选择最适合的报表工具?一篇文章统统解答!

在当今瞬息万变的商业格局中&#xff0c;企业信息化建设已成为驱动业务飞跃与增强核心竞争力的核心引擎。然而&#xff0c;伴随业务数据的井喷式增长&#xff0c;企业在数据治理与价值挖掘方面遭遇了前所未有的挑战。数据孤岛、处理流程冗长、对业务动态调整反应迟缓&#xff0…

Leetcode 分割等和子集

这段代码的目的是解决 LeetCode 416 问题&#xff1a;分割等和子集&#xff0c;即判断一个只包含正整数的数组&#xff0c;是否能够将其分割成两个子集&#xff0c;使得这两个子集的元素和相等。 算法思想&#xff08;动态规划 - 背包问题&#xff09; 该问题本质上是一个经典…

Facebook减肥产品广告投放攻略

有不少刚开始投放facebook广告的小伙伴会感到疑惑&#xff0c;为什么别人的减肥产品跑的风生水起&#xff0c;销量羡煞旁人&#xff0c;自己的广告要不就是被拒要不就是没有流量&#xff0c;甚至还可能被封号&#xff0c;如果你也有这样的困扰&#xff0c;那一定要看完这篇文章…

组合式API有什么好处

什么是组合式API&#xff1f; 组合式 API (Composition API) 是一系列 API &#xff08;响应式API、生命周期钩子、依赖注入&#xff09;的集合。它不是函数式编程&#xff0c;组合式 API 是以 Vue 中数据可变的、细粒度的响应性系统为基础的&#xff0c;而函数式编程通常强调…

使用Python进行Web开发的15个框架指南

引言 在Python Web开发领域&#xff0c;有许多不同类型的框架可供选择&#xff0c;从轻量级到全功能型&#xff0c;再到专注于异步处理的框架。本文将介绍多个Python Web框架&#xff0c;帮助开发者根据具体需求选择合适的工具。 1.Flask&#xff1a;轻量级Web框架 Flask是一…

【C语言】深入理解指针(三)(下)

本篇文章将讲解以下知识&#xff1a; 1、二维数组传参的本质 2、函数指针变量 3、函数指针数组 1、二维数组传参的本质 有了数组指针的理解&#xff0c;我们就能弄清楚二维数组传参的本质了 例如&#xff1a; 在一维数组中&#xff0c;数组名是数字首元素的地址。但有两个例外…

【进阶OpenCV】 (10)--光流估计--->描绘运动物体轨迹

文章目录 光流估计一、基本原理二、计算步骤三、实现步骤1. 处理第一帧2. 寻找特征点3. 创建全零掩膜4. 流光估计函数介绍5. 主循环处理视频的每一帧5.1 流光估计5.2 绘制轨迹5.3 生成最终图像5.4 更新旧灰度图和旧特征点 6. 释放资源 总结 光流估计 光流估计是计算机视觉中的…

操作系统——磁盘管理

目录 前言基础实例1.1读取磁盘数据计算时间1.2磁盘调度算法1.3单双缓冲区1.4磁盘基础知识 前言 本文简述操作系统中有关磁盘的相关知识点&#xff0c;作为软件设计师考试资料复习 基础 磁盘管理是指对计算机中的磁盘进行有效地管理和使用的过程。磁盘管理包括以下方面&#…

软件测试工程师面试整理 —— 操作系统与网络基础!

在软件测试中&#xff0c;了解操作系统和网络基础知识对于有效地进行测试工作至关重要。无论是在配置测试环境、调试网络问题&#xff0c;还是在进行性能测试和安全测试时&#xff0c;这些知识都是不可或缺的。 1. 操作系统基础 操作系统&#xff08;Operating System, OS&am…

【Redis】网络模型(day10)

在本篇文章中&#xff0c;主要是对五种网络模型进行一个简单的介绍&#xff0c;然后对Redis4.0和6.0的网络模型进行一个概述。 用户空间和内核空间 在Linux系统上&#xff0c;分为用户空间、内核空间和硬件设备。硬件设备主要包括CPU、内存、网卡等物体&#xff0c;内核应用去…

垃圾回收器和垃圾回收机制(简单介绍,用于回忆总结)

文章目录 垃圾回收机制1. 分代收集2. 标记复制3. 标记清除4. 标记压缩&#xff08;整理&#xff09; 垃圾回收器1. Serial / Serial Old2. Parallel Scavenge3. ParNew收集器4. CMS收集器5. G1收集器 参考链接 垃圾回收机制 1. 分代收集 分代收集&#xff08;Generational Co…

吉时利KEITHLEY 2657A源表keithley2651A数字源表

Keithley 2657A 源表是一款高电压、高功率、低电流源测量单元 (SMU) 仪器&#xff0c;可提供前所未有的功率、精度、速度、灵活性和易用性&#xff0c;以提高研发、生产测试和可靠性环境中的生产力。 Keithley 2657A SourceMeter 仪器专门设计用于表征和测试高压电子器件和功率…