首页 > 其他分享 >APB总线总结

APB总线总结

时间:2024-09-13 21:03:41浏览次数:10  
标签:总结 PREADY 总线 传输 PENABLE APB PPROT PSLVERR

APB总结

一、简介

APB提供了一个低功耗的接口,并降低了接口的复杂性。APB接口用在低带宽和不需要高性能总线的外围设备上。APB是非流水线结构,所有的信号仅与时钟上升沿相关,这样就可以简化APB外围设备的设计流程,每个传输至少耗用两个周期。

二、信号列表

信号名 来源 描述
PCLK 时钟源 时钟
PRESETn 系统 复位,低有效
PADDR APB桥 地址总线,最大32位
PSELx APB桥 选择
PENABLE APB桥 使能,该信号指示APB的第二个周期及以后的阶段
PWRITE APB桥 读写方向,高为写,低为读
PWDATA APB桥 写数据,最高32位
PSTRB APB桥 写掩码,PSTRB[n]对应PWDATA[(8n + 7):(8n)]。读传输不必
PPROT APB桥 保护类型。有normal,privileged,secure三种保护类型
PREADY 从机 准备。从设备利用该信号进行拓展APB传输
PRDATA 从机 读数据,最高32位
PSLVERR 从机 传输失败

三、传输

3.1 写传输

写传输有两种,一种等待模式,一种非等待模式

3.1.1 非等待模式

image-20240912140820955

T1时刻为设置阶段。选择信号PSEL置位,意味着PADDRPWRITEPWDATA有效。

T2时刻为访问阶段。当PENABLE被置位后,表示传输进行中。PREADY标志传输完成。在传输完成前,PADDRPWDATA以及其他控制信号必须保持稳定。

传输结束后,如果没有紧接着对该外设的下次传输,则PENABLE拉低,PSEL也拉低。

3.1.2 等待模式

image-20240912141549511

等待模式展示了从设备如何利用PREADY 信号延长传输。在访问阶段,当PENABLE为高电平时,可以通过驱动 PREADY 为低电平来延长传输。以下信号在附加循环中保持不变:PADDR PWRITE PSEL PWDATA PENABLE

PENABLE低电平时,PREADY可以取任何值。这确保了固定两周期访问的外设可以将 PREADY 连接到高电平。 Note:建议在传输后不要立即更改地址和写入信号,而是保持稳定直到发生另一次访问。这降低了功耗。

3.2 写掩码

高有效,一位对应一个字节

image-20240912143213541

3.3 读传输

读也分两种,等待模式和非等待模式。

3.3.1 非等待模式

image-20240912143457010

类似写传输。从设备必须在读取传输结束之前提供数据。

3.3.2 等待模式

类似写传输,

以下信号在附加循环中保持不变:PADDR PWRITE PSEL PENABLE(比写传输少了一个WDATA)。

image-20240912143710376

3.4 错误响应

可以使用 PSLVERR 来指示 APB 传输的错误情况。读取和写入事务都可能发生错误情况。

PSLVERR 仅在 APB 传输的最后一个周期内有效,此时PSELPENABLEPREADY 均为高电平。 建议(但不是必须)在未采样时将 PSLVERR 驱动为低电平。即当PSELPENABLEPREADY 中的任何一个为低时。收到错误的事务可能会也可能不会改变外围设备的状态。这是特定于外设的,两者都可以接受。

当写事务收到错误时,这并不意味着外设内的寄存器尚未更新。收到错误的读取事务可能会返回无效数据,对于读取错误,外设不需要将数据总线驱动为全0。

APB 外设不需要支持 PSLVERR 引脚。如果外设不包括该引脚,则APB桥的相应输入被连接到低电平。

3.4.1 写错误

image-20240912145431570

3.4.2 读错误

image-20240912145515225

3.4.3 PSLVERR映射

当不同协议桥接时,

从AXI到APB: PSLVERR -> RRESP读/BRESP写

从AHB到APB: PSLVERR -> HRESP

3.5 保护机制支持

为了支持复杂的系统设计,系统中的互连和其他设备通常需要针对非法传输的保护机制。APB由PPROT[2:0]支持。

PPROT 保护 描述 备注
PPROT[0] normal或privileged privileged等级更高 低为normal,高为privileged
PPROT[1] secure或non-secure 提供需求更大的保护等级区分度 低为secure,高为non-secure
PPROT[2] data或instruction 指示类型,但仅作为提示,不一定准确 低为data,高为non-instruction

提示:PPROT的主要用途是作为安全和非安全传输的指示。使用PPROT[2]和PPROT[0]的不同解释是可以自定义的。

四、操作状态

image-20240912150442917

状态机通过以下状态运行:

  1. IDLE :APB 的初始状态。

  2. SETUP :当需要传输时,总线进入 SETUP 状态,此时相应的选择信号PSELx被置位。总线只在一个时钟周期内保持在 SETUP 状态,并且总是在时钟的下一个上升沿移动到 ACCESS 状态。

  3. ACCESS :使能信号 PENABLE 在 ACCESS 状态下有效。地址、写、选择和写数据信号在从 SETUP 到 ACCESS 状态的转换期间必须保持稳定。退出 ACCESS 状态由从机的 PREADY 信号控制:

    • 如果 PREADY 被从设备保持为低电平,则外围总线保持在ACCESS状态。
    • 如果 PREADY 被从设备驱动为高电平,则退出 ACCESS 状态,如果不需要更多传输,则总线返回 IDLE 状态。或者,如果另一个传输紧随其后,则总线直接移动到 SETUP 状态。

标签:总结,PREADY,总线,传输,PENABLE,APB,PPROT,PSLVERR
From: https://www.cnblogs.com/HiDark/p/18412864

相关文章

  • KVM总结
    总结自用目录0.什么是虚拟化技术?1.为什么要用虚拟化(虚拟化技术的作用和优势)2.KVM如何做CPU虚拟化3.内存虚拟化4.磁盘使用raw/qcow2有什么区别?5.半虚拟化和全虚拟化的区别是什么?kvm和Xen有何区别?分别属于哪种?6.如果对一个VM进程使用kill-9将会发生什么?7.kvm各模式说明8.KVM框架......
  • [linux 驱动]i2c总线设备驱动详解与实战
    目录1描述2结构体2.1bus_type2.2i2c_bus_type2.2.1i2c_device_match2.2.2i2c_device_probe2.2.3i2c_device_remove2.2.4i2c_device_shutdown2.2i2c_adapter2.3i2c_algorithm2.4i2c_driver2.5i2c_client3i2c核心3.1注册i2c适配器3.2注册i2c设备......
  • USB总线-Linux内核USB3.0设备控制器中断处理程序分析(九)
    1.概述USB设备枚举、请求处理、数据交互都涉及USB设备控制器中断。当有事件发生时,USB设备控制器首先将事件信息通过DMA写入到事件缓冲区中,然后向CPU发出中断,随后CPU调用中断处理函数开始处理中断事件。2.事件dwc3USB设备控制器事件使用dwc3_event数据结构描述,由4个字节组成。......
  • 期望概率DP总结
    主要是codeforces上的。毕竟时间不一样了,要从luogu转来cf咯。B.DreamoonandWiFi在这道题发现一个重要的问题,当题目输出精度有较高要求时,输出多位,比如这道题里出现了1e-9,那么输出10位小数。C.Journey这道题输出同样需要使用printf输出更多的小数位,cout真的不能再用了Codef......
  • Linux字符设备驱动:分层/分离思想、总线设备驱动模型和设备树
    本文章参考韦东山嵌入式Linux应用开发完全手册......
  • JAVA时间转换总结
    JAVA时间转换总结 1.格式化时间Date~2022-03-2403:30:13SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");StringdateStr=format.format(newDate());2.格式化时间2022-03-24T03:30:13.000000~2022-03-2403:30:13......
  • NMAP日常常用命令总结
    1.nmap-sT192.168.96.4//TCP连接扫描,不安全,慢2.nmap-sS192.168.96.4//SYN扫描,使用最频繁,安全,快3.nmap-Pn192.168.96.4//目标机禁用ping,绕过ping扫描4.nmap-sU192.168.96.4//UDP扫描,慢,可得到有价值的服务器程序5.nmap-sI僵尸ip目标ip//使用僵尸机对......
  • USB总线-Linux内核USB3.0主机控制器驱动框架分析(十二)
    1.概述如下图所示,Linux内核中USB主机体系结构由五部分组成,分别为ApplicationSoftware、USBClassDriver、USBCore((USBDriver)、USBHostControllerDriver、USBHostController。应用程序处于用户空间,通过系统调用访问ClassDriver,从而间接的访问USB设备,如主机端的应用程......
  • 面试总结003
    1、阐述你们自动化测试的流程思路:结合项目实际工作流程背景描述:我们公司是基于python语言设计的一个自动化测试框架来实现自动化测试流程介绍(本质)会按照已有框架,去配置测试用例实现自动化,不需要额外进行编码(详细流程)需求评审后,开发前后端负责商定接口设计文档出来,然后开......
  • Android系列基础知识总结
    四大组件ActivityActivity生命周期不同场景下Activity生命周期的变化过程启动Activity:onCreate()—>onStart()—>onResume(),Activity进入运行状态。Activity退居后台:当前Activity转到新的Activity界面或按Home键回到主屏:onPause()—>onStop(),进入停滞状态。Activity......