AMBA协议笔记(APB)

这篇具有很好参考价值的文章主要介绍了AMBA协议笔记(APB)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

AMBA协议笔记(APB)

Chapter 1 概述

APB(Advanced Peripheral Bus),是低功耗减少接口复杂度的优化接口协议。APB接口是低带宽不需高性能流水线的接口协议,同时APB也具有非流水线的协议。

所有信号都只在时钟的上升沿跳变,目的是为了简化设计流程中的APB外设融合每次传输至少需要两个cycles。APB可以与AHB,AXI连接,可以使用APB进行程序级的控制寄存器和外设。

Chapter 2 信号描述
信号 来源 描述
PCLK 系统时钟 时钟。传输发生在时钟上升沿
PRESETn 等效的系统总线 复位信号。低电平有效,通常与系统的复位信号直接连接
PADDR APB桥 地址,APB地址线,位宽最高32bit,由外设驱动
PSELx APB桥 选择信号,APB产生,用来选择外设。该信号表明外设从设备被选择,进行数据传输。每个从设备具都有一个PSELx信号
PENABLE APB桥 使能信号,表示传输的第二个cycle和接下来的cycle传输有效
PWRITE APB桥 方向信号,为高时表示APB写,为低时表示APB读
PWDARA APB桥 写数据,在写cycle由外部设备驱动,最高32bits
PREADY 从接口 就绪信号,表明从设备已就绪,进行接下来的传输
PRDATA 从接口 读数据,在读cycle被选中的从设备驱动此信号,位宽最高32bits
PSLVERR 从接口 表示传输失败,APB从设备不要求支持此信号
Chapter 3 传输

3.1 写传输

  • 没有等待状态的写传输

apb的pready,协议,学习,网络协议,硬件工程,fpga开发

传输开始时钟上升沿(T1),PADDR,PWRITE,PSEL,PWDATA改变。传输的第一个阶段称为Setup phase。在随后的一个时钟周期,当PENABLE拉高后(T2),表示进入Access Phase(因为是无等待阶段的写操作,所以PREADY默认拉高的)。PADDR,PWRITE,PSEL,PWDATA信号在Access Phase保持不变。在Access Phase结束后表示此次传输完成。

传输完成后PENABLE信号拉低(T3)。如果接下来对同一个外设进行传输,则PSEL信号保持为高(Setup Phase),否则拉低。

  • 有等待阶段的写传输
    apb的pready,协议,学习,网络协议,硬件工程,fpga开发

在Access Phase阶段,从端发送的PREADY可以延长此阶段(T2~T4)。此时,PENABLE为高,当PREADY为低时,各控制信号(PWRITE,PSEL,PENABLE),数据信号(PADDR,PWDATA)保持不变,一直等到PREADY为高时,完成此次传输。当PENABLE为低时,PREADY可以为任意值。

注:推荐PADDR和PWRITE信号保持不变直到下一个传输开始,这有助于降低功耗

3.2 读传输

  • 没有有等待阶段的读

apb的pready,协议,学习,网络协议,硬件工程,fpga开发

Setup Phase与Write相似,不同的是PWRITE为低,表示APB读,PRDATA为读数据,从从设备接收读数据。在Acess Phase(T2),PENABLE拉高,PREADY拉高,完成握手,然后从设备发送读数据Data1,读传输结束。

  • 有等待阶段的读

apb的pready,协议,学习,网络协议,硬件工程,fpga开发

与带有等待阶段的写相似,在进入Access Phase时(T2),如果从端PREADY为低,则其他控制信号(PWRITE,PSEL,PENABLE),数据信号(PADDR,PRDATA)保持不变,一直等到PREADY为高(可以延长任意时钟周期),PRDATA接收从从端读取的数据Data1,传输结束。

3.3 错误反馈

可以使用PSLAERR表明APB传输的过程中发生了错误。错误的情形可以发生在读和写过程中。PSLVERR只能在APB传输的第二个cycle拉高,即Access Phase阶段,也就是PSLE,PENABLE,PREADY都为高时

传输收到一个错误时,从设备的状态可能发生或者没有发生变化(如读/写传输过程发生错误,则无法保证读/写的数据正确性,具有不确定性)。也就是说,在一个写传输过程中发生了错误,并不意味着从设备中寄存器的值没有更新。在读传输的过程中发生了错误也可能返回的是非法的读数值。这里并没有要求从设备在读传输发生错误时将数据总线设置为0。

APB从设备并没有要求支持PSLVERR管脚(信号),这对于现有的和新的APB设计通用。(此特性非强制实现

写传输

apb的pready,协议,学习,网络协议,硬件工程,fpga开发

在上述的写传输过程中,Access Phase阶段,T3时,PREADY拉高,同时从设备将PSLVERR拉高,表明此次传输发生错误。此时Addr1的数据可能为Data1也可能不是Data1,具有不确定性。

读传输

apb的pready,协议,学习,网络协议,硬件工程,fpga开发

在读传输的Access Phase阶段,T4周期内,PREADY拉高,从设备发送PSLVERR为高,表明此次读传输发生错误,PRDATA读到的数据可能是非法值(不确定性)。

PSLVERR的映射关系

PSLEERR与AHB,AXI协议中错误信号存在映射关系[后续补充]。

Chapter 4 操作状态

apb的pready,协议,学习,网络协议,硬件工程,fpga开发

状态机包括以下几种状态:

IDLE:APB的默认状态。

SETUP:当有传输需求总线进入SETUP状态(PSELx拉高,选中要进行传输的从设备,进入SETUP状态)。总线总是保持SETUP状态一个周期,然后在下个始终在后期上升沿进入ACCESS状态。

ACCESS:PENABLE拉高时,进入ACCESS状态。在总线由SETUP到ACCESS过程中,PADDR,PWRITE,PSEL,PWDATA必须保持不变。离开ACCESS状态是由从设备PREADY进行控制

  • 如果PREADY为低,则从设备总线保持ACCESS状态。(PSELx==1,PENABLE==1,PREADY==0)
  • 如果PREADY为高,则退出ACCESS状态。如果接下来有传输,则总线直接进入SETUP状态。如果接下来没有传输,则进入IDLE状态。

参考资料:AMBA 3 APB Protocol v1.0 Specification文章来源地址https://www.toymoban.com/news/detail-686959.html

到了这里,关于AMBA协议笔记(APB)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AMBA总线协议AXI——学习笔记

    2023.3.25 2023.4.23 AXI :高级可拓展接口 高性能、高带宽、低延迟 单向通道体系结构 独立的地址和数据通道 支持多项数据交换。通过 并行执行burst操作 ,极大地提高了数据吞吐能力。 AXI4 :高性能内存映射需求(如读写DDR、使用BRAM控制器读写BRAM等),为了区别,有时候也叫这

    2023年04月23日
    浏览(53)
  • stm32 APB1和APB2的区别

    APB1外设时钟使能寄存器(RCC_APB1ENR) 低速APB使能,最大允许频率36MHz APB2外设时钟使能寄存器(RCC_APB2ENR) 高速APB使能,最大允许频率72MHz 这里的外设是相对Cortex M3的内核来讲的。这两个寄存器都是32的,占用四个字节。这两个寄存器都位于结构体RCC_TypeDef中,名字叫APB1ENR和APB2ENR。操

    2024年02月11日
    浏览(31)
  • APB 基本原理

    APB是AMBA总线体系中的一员,因其具备低功耗、接口和控制简单的特点,广泛被运用于低带宽和不带总线的高性能外设接口,ASIC芯片中寄存器访问。 APB的传输信号只与时钟上升沿有关,故其具备以下优点: 易于实现高频操作; 性能与时钟占空比无关; 静态时序分析简单;

    2024年02月06日
    浏览(48)
  • APB总线

    1 apb 协议的特点:低成本 低功耗 低带宽 无流水 完成一次传输最少需要两个周期 2 端口定义: penable : 使能型号,高电平表示传输开始 pready: 表示slave 还没准备好响应主机,可以用来延长传输 pslerr: 表示传输失败 psel: 片选信号 pwrtie: 片选信号有效后,可对外设进行读写操作

    2024年02月10日
    浏览(33)
  • APB-UART-1

    uart(universal asynchronous reciver and transmitter) 通用异步收发器,是一种通用串行数据总线,用于异步通信,将数据的二进制位一位一位的进行传输。 该总线双向通信,可以实现全双工传输(rxd txd可同时工作)和接受。 同步通信和异步通信 发送方和接收方按照同一个时钟节拍工

    2024年02月13日
    浏览(28)
  • APB-UART(1)

    UART是现在MCU常用外设,它具有应用简单(只有几个寄存器),应用广泛,接线简单等优点,对电平进行转换后,通信距离较长。 单位:bps(位每秒),指发送一位所占用的时间 发送FIFO是一个8位宽、32位深的FIFO存储缓冲器。通过APB接口写入的CPU数据存储在FIFO中,直到被发送

    2024年02月02日
    浏览(28)
  • APB总线详解及手撕代码

    本文的参考资料为官方文档AMBA™3 APB Protocol specification 文档下载地址: https://pan.baidu.com/s/1Vsj4RdyCLan6jE-quAsEuw?pwd=w5bi 提取码:w5bi 介绍总线具体握手规则之前,需要先熟悉一下APB总线端口,APB的端口如下: 大体可以分为以下三组: 系统信号 :PCLK(系统时钟)、PRESETn(系统复

    2024年01月25日
    浏览(26)
  • DW_apb_i2c 使用介绍1

    目录 2.0 DW_apb_i2c 版本 2.1 DW_apb_i2c 逻辑设计架构 2.2 DW_apb_i2c 特点  2.3 DW_apb_i2c 功能使用介绍 2.3.1 工作模式 2.3.2 开始信号 2.3.3 停止信号 2.3.4 从机地址模式 2.3.5 输入滤波功能 2.3.6 SCL速率配置 2.3.6.1 SCL 配置寄存器 2.3.6.2 SCL 计算公式  2.3.6.3 SCL 实例计算 2.3.7 总线清除功能 2.

    2024年02月15日
    浏览(35)
  • APB接口的24小时钟表计数器

    //2022-3-19 soc设计 //APB接口的钟表计数器模块 //题目1:APB接口的模6计数器/模10计数器模块 // 设计内容: //APB2.0 接口 //支持异步复位(低电平有效) //支持软件同步复位(高电平有效) //支持计数暂停(高电平有效) //钟表计数器的显示按照每秒更新 //钟表计数器按照24小时循

    2023年04月08日
    浏览(29)
  • stm32中的AHB、APB1、APB2分别属于计算机三大总线数据总线、地址总线和控制总线中的哪一种?

    最近在看计算机体系结构和stm32,对于AHB、APB1、APB2总线找不到在计算机体系结构中的属于,于是深入探究了AHB、APB1、APB2和计算机三大总线数据总线、地址总线和控制总线的关系。 AHB=Advanced High Performance Bus,译作高级高性能总线。AHB 用于高性能模块(如CPU、DMA和DSP等)之间的连

    2024年02月10日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包