AMBA: APB Bus Note

AMBA 总线是ARM推出的高级微控制器总线架构

1. APB总线协议概述

APB协议是低成本接口,为低功耗优化,降低了接口复杂性。APB协议不支持流水线,它是一个简单的同步总线协议。每次数据传输至少需要两个时钟周期。

APB协议的设计是用来访问外围设备的可编程控制寄存器,

2. AMBA APB Signals

部分APB的信号接口位宽是可变的,部分信号接口可以使用不同的位宽,当位宽不可变时,就是要使用某种特性。如果特征接口的值为0,意味着信号不会出现在接口上。

下表描述了APB协议的接口信号

Signal Source Width Description
PCLK Clock 1 时钟信号,所有的APB信号接口均在PCLK的上升沿有效
PRESETn 系统总线复位 1 低电平有效的复位信号,正常情况下直接连接系统总线复位信号
PADDR 请求者 地址宽度 地址总线,位宽最高可达32bits
PPROT 请求者 3 保护类型
PSELx 请求者 1
PENABLE 请求者 1 使能信号,描述第二个和随后APB传输时钟
PWRITE 请求者 1 方向,拉高时写使能,拉低时读使能
PWDATA 请求者 数据位宽 写数据,写数据总线总过APB桥驱动,可以为8,16,32位宽
PSTRB 请求者 数据位宽/8
PREADY Completer 1 握手信号
PRDATA Completer DATA_WIDTH 读数据,数据位宽可以为:8,16,32
PSLAVERR Completer 1 传输错误信号,可选的信号,高电平触发,表示传输过程中发生一次错误
PWAKEUP 请求者 1 唤醒
PAUSER 请求者 用户定义宽度 用户请求属性
PWUSER 请求者 用户数据宽度 用户写数据属性
PRUSER Completer 用户数据宽度 用户读数据属性
PBUSER Completer 用户定义宽度 用户相应属性(最大推荐位宽16bit)

2.1 地址总线

2.2 数据总线

APB协议有两个独立的数据总线:

  • 读数据总线
  • 写数据总线

数据总线可以配置位8,16,32位宽,读数据总线与写数据总线的位宽必须保持一致。

由于读、写数据总线没有独立的握手信号,所以读数据和写数据不能同时进行。

3. 数据传输

3.1 写数据传输

本节讨论两种类型的写数据传输:

  • 无等待状态传输
  • 有等待状态传输

所有的信号均是在PCLK的上升沿采样!

####3.1.1 无等待状态

无等待状态传输的时序图如下:

image-20220717190716590 image-20220717203759986
1

0%