AMBA总线协议学习笔记——APB
AMBA总线协议学习笔记——APB背景常用接口信号介绍APB从机设计APB主机设计参考背景APB 是 AMBA 家族中的低功耗、低成本外设总线协议非流水线、同步设计每次传输至少需要 2 个时钟周期。APB2协议主要定义了基本的总线接口没有握手协议只有基本的读写传输。APB3增加了PREADYPSLVERR信号。PREADY用于表示APB传输的完成可以实现slave的等待功能。PSLVERR用以指示slave的错误状态。APB4增加了PPROTPSTRB。PPROT信号实现安全和非安全的数据传输可实现系统在不同安全属性的控制传输保证系统的安全性。PSTRB信号用于实现部分数据的写操作可以指示一笔传输中的一部分数据有效。APB5增加了WAKEUPUSERPAIRTY等信号。wake-up用于实现低功耗的控制通过控制时钟只在传输的时候开启减少动态功耗的消耗。user则增加了基本信号之后的用户自定义信号。parity主要针对安全系统设计中的保护功能。APB5只是提一下还没用过不是很懂常用接口信号介绍PCLK时钟所有APB信号都是上升沿触发PRESETn复位低电平有效通常直接与系统总线的复位信号相连resetPADDR地址读写共用位宽一般设为32 bit或64 bitPSELx有多个slave的情况下对其进行选择PENABLE指示 APB 传输的第二个和后续周期。PENABLE在写操作周期结束后会同PSEL一同拉低除非又需要立即跟随下一次传输。PWRITE高电平表示写低电平表示读PWDATAPWRITE为时有效表示写数据可以是816 或32 bits wide.PRDATAPWRITE为0时有效表示读数据可以是816 或32 bits wide.为了省电地址信号和写信号、读信号在一次传输过后不会改变直到下一次传输发生。PWDATA将在PENABLE的下个周期被驱动PRDATA将在PENABLE的下个周期被采样。APB3中增加了PREADY使读写操作也由原来的基础传输多了有等待的传输。当PSEL和PENABLE都为高的时候slave 把 PREADY拉低了说明slave没有准备好需要等待一段时间。APB3中还增加了PSLVERR实现slave反馈给master error response的功能使读写操作也由原来的基础传输多了有错误标志的传输。读取和写入事务都可能发生错误使用pslverr来指示APB传输上的错误情况。当pselpenable和pready均为高电平时仅在APB传输的最后一个周期内才认为pslverr有效其他时间不考虑pslverr。若pslverr信号置高则表示此次传输失败但并不表示此次写寄存器失败寄存器的值还是可能跟新。如果是多数据也并不意味着 rdata 全是0PPROT通过控制总线上的访问权限来提供安全保护。共3bit分别表示简言之0位指示是普通还是特权1位指示是安全还是非安全2指示是数据还是指令。PS当任何一个PSEL, PENABLE或者PREADY为低时可以将PSLVERR拉低这是推荐并不是强制要求。APB外围设备不要求必须支持PSLVERR引脚当不使用该引脚时应被置低。13.PSTRB写字节选通信号可以使写数据总线上的数据片段化即指示数据总线上那几个字节数据有效使写数据总线上的稀疏数据传输成为可能。由于数据位最大为32bit即4个字节。因此PSTRB位宽为4位每一位对应一个字节设置为1时指示该字节数据有效。需注意在读操作中PSTRB所有位必须设置为低电平。当置为高电平时写选通脉冲指示写数据总线的相应字节通道包含有效信息。写数据总线的每八位有一个写选通脉冲因此 PSTRB [n] 对应于PWDATA [(8n 7) : ( 8n)]APB从机设计APB从机主要需要做以下几件事看到 PSEL PENABLE PWRITE → 采样 PWDATA/PSTRB写寄存器看到 PSEL PENABLE !PWRITE → 驱动 PRDATA需要等待时 → 拉低 PREADY否则拉高 PREADY可选pslverr置位PSLVERR 在传输完成拍PSEL PENABLE PREADY置位具体置位原因由外设根据自身功能定义常见于非法地址、权限违规、不支持的操作等场景非法地址访问如访问了外设地址空间中不存在的寄存器地址、地址越界超出外设实现的寄存器范围非法操作类型如对只读寄存器发起写操作、对不支持稀疏写PSTRB的外设发起了部分字节写访问权限违规如Non-secure 访问PPROT[1]1尝试访问 Secure 寄存器、Normal 模式PPROT[0]0尝试访问 Privileged 寄存器外设状态不允许如对配置寄存器写入非法值如保留字段、外设处于低功耗/时钟关闭状态无法响应注意PSLVERR 置位 ≠ 操作未发生协议原文“Transactions that receive an error might or might not have changed the state of the peripheral. This is peripheral-specific and either state is acceptable.”“A Requester which receives an error response to a read transfer might still use the data. A Completer cannot rely on the error response to prevent the reading of a value on PRDATA.”即写 PSLVERR寄存器可能已经被更新规范允许这种实现。比如CPU发起一个写操作外设返回了一个SLVERR。这个写操作可能根本没生效寄存器没变也可能生效了一半部分位写了部分没写。对设计的影响这意味着软件驱动不能因为收到了错误就认为“肯定没写进去”也不能认为“肯定写进去了”。软件的正确处理方式是重新读取该寄存器来确认而不是凭错误码做状态缓存。读 PSLVERRPRDATA 上的数据可能无效但master可能仍然使用它slave不能依赖 PSLVERR 来阻止读操作对设计的影响Slave硬件不能把“返回错误”当作“把PRDATA清零”的理由。即即使slave端打算返回读错误也必须把PRDATA驱动到一个确定的值可以是0也可以是当前寄存器的值不能出现高阻态X或未定义的毛刺。否则如果master直接使用了prdata的值且该值为x或z态可能会导致芯片挂死。APB主机设计设计流程概览需求分析 → 接口定义 →状态机设计→ 信号生成 → 握手控制 → 错误处理 → 验证状态机设计——核心实现APB的状态机是标准的Mealy型FSM状态机按以下状态运行IDLE空闲 — APB 接口的默认状态。SETUP建立 — 当需要发起传输时接口进入 SETUP 状态此时相应的选择信号 PSELx 被置位。接口在 SETUP 状态仅保持一个时钟周期并在下一个时钟上升沿无条件进入 ACCESS 状态。ACCESS访问 — 使能信号 PENABLE 在 ACCESS 状态中被置位。以下信号在 SETUP 到 ACCESS 的跳变过程中、以及 ACCESS 状态内的各周期之间必须保持不变PADDRPPROTPWRITEPWDATA仅写传输PSTRBPAUSERPWUSER即所有控制信号已经在 SETUP 阶段给出进入 ACCESS 时直接锁存不动。ACCESS 等待期间PREADY0信号继续冻结直到 PREADY1 的那一拍ACCESS 状态的退出由 Completer 的 PREADY 信号控制若 Completer 将 PREADY 保持为 LOW接口保持在 ACCESS 状态。若 Completer 将 PREADY 驱动为 HIGH则退出 ACCESS 状态如果没有更多传输总线返回 IDLE如果还有后续传输总线直接进入 SETUP 状态。 SETUP阶段必须维持至少1个时钟周期。注意规范明确SETUP 状态只持续 1 个时钟周期无条件进入 ACCESSACCESS阶段可以通过PREADY延长PREADY 0 → 保持 ACCESS 状态所有信号不变PREADY 1 → 退出 ACCESS传输完成状态转换时PENABLE的建立时间要满足时序要求参考[1]: AMBA总线协议的总结 - APB

相关新闻

Paimon数据湖核心原理与生产实践:流批一体的LSM存储引擎详解

Paimon数据湖核心原理与生产实践:流批一体的LSM存储引擎详解

1. 项目概述:为什么我们需要关注Paimon数据湖?如果你最近在数据架构圈子里待过,大概率会听到“Paimon”这个名字。它不是什么新出的游戏角色,而是Apache软件基金会孵化中的一个项目,一个旨在解决流批一体数据湖存储难题…

2026/8/24 8:03:54 阅读更多 →
彻底解决Linux下virt-manager界面乱码:从字体安装到locale配置

彻底解决Linux下virt-manager界面乱码:从字体安装到locale配置

1. 问题缘起:当virt-manager的界面变成“天书”如果你和我一样,在Linux环境下使用KVM(Kernel-based Virtual Machine)进行虚拟化操作,那么virt-manager这个图形化管理工具大概率是你的老朋友。它直观、易用&#xff0c…

2026/8/24 8:03:54 阅读更多 →
Elasticsearch索引定义全解析:从核心概念到生产级配置实战

Elasticsearch索引定义全解析:从核心概念到生产级配置实战

1. 项目概述:为什么索引是Elasticsearch的基石如果你用过数据库,肯定对“索引”这个词不陌生。但在Elasticsearch(后面简称ES)里,索引(Index)这个概念被赋予了更核心、更丰富的内涵。它不仅仅是…

2026/8/24 8:03:54 阅读更多 →

最新新闻

Path of Building:流放之路Build规划与数值试算,从安装到导出配置

Path of Building:流放之路Build规划与数值试算,从安装到导出配置

Path of Building:流放之路Build规划与数值试算,从安装到导出配置 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding Path of Building(P…

2026/8/24 13:24:20 阅读更多 →
GPSBabel 安装配置实战:GPX/KML GPS 数据转换指南

GPSBabel 安装配置实战:GPX/KML GPS 数据转换指南

GPSBabel 安装配置实战:GPX/KML GPS 数据转换指南 【免费下载链接】gpsbabel GPSBabel: convert, manipulate, and transfer data from GPS programs or GPS receivers. Open Source and supported on MacOS, Windows, Linux, and more. Pointy clicky GUI or a com…

2026/8/24 13:24:20 阅读更多 →
GPU 卸载研究笔记:llama.cpp 的做法与我们的差异

GPU 卸载研究笔记:llama.cpp 的做法与我们的差异

GPU 卸载研究笔记:llama.cpp 的做法与我们的差异 —— 为什么 llama 卸载快、我们上传慢(30-98 秒/张量)、如何改进2026-08-11 研究记录。参考:llama.cpp 源码(D:\svn\ucp\ai\main\llama.cpp)静态阅读。 背…

2026/8/24 13:24:19 阅读更多 →
停车对接积分系统,商场会员小程序标配

停车对接积分系统,商场会员小程序标配

会员小程序已是标配。购物中心、商业街都在用。 付完就积上,积分还能抵停车,人会为了权益再进场。 会员、停车、活动,本来就该在一套里。 📝 停车对接积分系统,商场会员小程序该有的: 1️⃣【支付即积分】微…

2026/8/24 13:24:18 阅读更多 →
03-create-hdl-files

03-create-hdl-files

aiv new:创建 HDL 文件 创建文件 AIV工具会自动根据创建HDL文件的后缀名找到对应的模版,并把模版中的变量进行替换生成目标文件。 aiv new rtl\control.sv aiv new rtl\legacy.v aiv new include\types.svh当前内置模板覆盖 .v、.sv、.vh 和 .svh。AIV 优先从目标文…

2026/8/24 13:24:17 阅读更多 →
3 分钟完成 Windows + Office 本地 KMS 激活:写给新手的实用指南

3 分钟完成 Windows + Office 本地 KMS 激活:写给新手的实用指南

3 分钟完成 Windows Office 本地 KMS 激活:写给新手的实用指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO KMS_VL_ALL_AIO 是一个本地 KMS 激活脚本:一个 .cmd 文件…

2026/8/24 13:23:17 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力;确需渲染 HTML 时,先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述:Windows登录密码的“黑匣子”每次你按下CtrlAltDel,输入密码,然后看到那个熟悉的桌面,这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者,我经常被问到:“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述:AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时,遇到一个典型案例:候选人在视频面试中无意提到竞争对手产品名称,系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →