ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

AMBA总线协议之一【APB总线协议】

2022-03-01 10:33:08  阅读:366  来源: 互联网

标签:SETUP 总线 传输 IDLE APB AMBA


APB总线协议

1、AMBA总线介绍

AMBA(Advanced Microcontroller Bus Architecture) 总线是由ARM公司提出的一种开放性的片上总线标准,它独立于处理器和工艺技术,具有高速度低功耗等特点。
Soc系统芯片的各个模块需要接口来连接,而AMBA总线作为子系统之间共享数据通路,AMBA总线主要包括以下三种总线:

  • ASB: Advanced System Bus 用于高性能系统模块。
  • APB: Advanced Peripheral Bus, 用于慢速外设模块
  • AHB: Advanced High-performance Bus, 用于高性能、高时钟工作频率模块。
  • AXI: A High Performance Protocol, 新一代高性能总线,目前已经发表AMBA AXI-4协议。

在这里插入图片描述

2、APB总线概述与特点

APB里面唯一的主模块就是APB桥,主要应用于慢速外设Uart, 键盘等。主要特性包括:

  • 两个时钟周期传输,无需等待周期和回应信号;
  • 控制逻辑简单;只有四个控制信号。
  • 低速总线,低功耗。
  • 上升沿触发
  • 适用于多种外设

2.1 信号说明

在这里插入图片描述

2.2 微控制器典型应用

基于AMBA的微控制器通常由高性能系统组成,能够维持外部内存带宽,在APB总线上CPU和直接内存访问(DMA)设备挂载,加上一个桥接到更窄的APB低带宽外围设备所在的总线。如图1为典型的AMBA系统中的APB。

  • 可以锁存所有的地址、数据和控制信号
  • 进行二级译码来产生APB从设备选择信号
  • APB总线上所有其他模块都是APB从设备

在这里插入图片描述

3、APB总线传输

3.1 状态机

  • IDLE: 系统初始化为IDLE状态,此时没有传输操作,也没有选中任何从模块。
  • SETUP:当有传输要进行时,PSELx=1,PENABLE=0,系统进入SETUP状态,并只会在SETUP 状态停留一个周期。当PCLK的下一个上升沿时到来时,系统进入ENABLE 状态。
  • ENABLE: 系统进入ENABLE状态时,维持之前在SETUP 状态的PADDR、PSEL、PWRITE不变,并 将PENABLE置为1。传输也只会在ENABLE状态维持一个周期,在经过SETUP与ENABLE状态之后就已完成。
    之后如果没有传输要进行,就进入IDLE状态等待;如果有连续的传输,则进入SETUP状态。
    在这里插入图片描述

3.2 写操作时序

  • 在 T1 时,有限状态机进入预设的 IDLE 状态;
  • T2 时刻 APB 将地址信息 PADDR 和写的数据 PWDATA 准备好,拉高 PWRITE 表示进入写,同时拉高 PSEL,从 IDLE 进入 SETUP;
  • T3 时刻也就是下一个时钟周期拉高 PENABLE,使得状态进入 ACCESS;
  • T4 时刻检测到 PREADY 被拉高,也就是说 Slave 已经正确接收到数据,传输完成;PENABLE 拉低,PSEL 拉低。为了减少功率的消耗,APB 的数据地址和读写控制信号在下一笔数据传递前,将不会作任何改变。
    在这里插入图片描述

3.3 读操作时序

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

在这里插入图片描述

3.4 Error Respond

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

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

写失败后时序
下面这个是写失败后的时序:
在这里插入图片描述
读失败后的操作时序如下图,读失败后,PRDATA数据不再有效。

在这里插入图片描述

标签:SETUP,总线,传输,IDLE,APB,AMBA
来源: https://blog.csdn.net/sinat_43629962/article/details/123184114

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有