AMBA 3 APB 协议规范 ARM®
AMBA 3 APB 协议规范
关于该规范
该规范使用于AMBA 3 APB 协议,引用自AMBA 3 (不适用AMBA 2 或更早版本)
使用范围
该规范用来帮助硬件或软件工程师设计使用APB协议的系统或模块
使用该规范
该规范按照以下章节进行组织:
Chapter 1 简介
Chapter 2 传输
Chapter 3 操作状态
Chapter 4 信号描述
目录
第一章 简介 ...................................................................................................................................................................... 2
1.1 关于 AMBA 3 APB ............................................................................................................................................ 2
1.2 AMBA 3 APB 协议规范 v1.0 修改 .................................................................................................................. 2
第二章 传输 ...................................................................................................................................................................... 3
2.1 写传输 ................................................................................................................................................................ 3
2.1.1 无等待状态 ............................................................................................................................................. 3
2.1.2 有等待状态 ............................................................................................................................................. 3
2.2 读传输 ................................................................................................................................................................ 4
2.2.1 无等待状态 ............................................................................................................................................. 4
2.2.2 有等待状态 ............................................................................................................................................. 4
2.3 错误响应 ............................................................................................................................................................ 5
2.3.1 写传输 ..................................................................................................................................................... 5
2.3.2 写传输 ..................................................................................................................................................... 6
2.3.3 PSLVERR 映射 ...................................................................................................................................... 6
第三章 操作状态 .............................................................................................................................................................. 7
3.1 操作状态 ............................................................................................................................................................ 7
第四章 信号描述 .............................................................................................................................................................. 8
4.1 AMBA 3 APB 信号 ............................................................................................................................................ 8
西安 XGY 2010
1
AMBA 3 APB 协议规范 ARM®
第一章 简介
1.1 关于AMBA 3 APB
APB属于AMBA 3 协议系列,它提供了一个低功耗的接口,并降低了接口的复杂性。APB接口用在低带宽和不
需要高性能总线的外围设备上。APB是非流水线结构,所有的信号仅与时钟上升沿相关,这样就可以简化APB
外围设备的设计流程,每个传输至少耗用两个周期。
APB可以与AMBA高级高性能总线(AHB-Lite) 和AMBA 高级可扩展接口(AXI)连接。
1.2 AMBA 3 APB 协议规范v1.0修改
该版本包括:
• 一个准备好信号 PREADY, 来扩展APB传输
• 一个错误信号 PSLVERR, 来指示传输失败
西安 XGY 2010
2
AMBA 3 APB 协议规范 ARM®
第二章 传输
2.1 写传输
写传输包括两种类型:
• 无等待状态
• 有等待状态
2.1.1 无等待状态
图2-1 显示了一个基本的无等待状态的写传输。
图2-1 无等待的写传输
地址、写入数据、写入信号和选择信号都在时钟上升沿后改变。第一个时钟周期叫做Setup phase。下一个时钟
沿后使能信号PENABLE被置位,表示Access phase就位。地址、数据和控制信号在Access phase期间有效。传输
在该周期后结束。使能信号PENABLE, 在传输结束后清空。选择信号PSELx同样被置低,除非紧接着下一传输
开始。
2.1.2 有等待状态
图2-2 展示了PREADY 信号是如何扩展了从器件的传输。在Access phase期间,当PENABLE为高,传输可以通
过拉低PREADY来扩展传输。下述信号仍旧不变:
• 地址:PADDR
• 写信号:PWRITE
• 选择信号:PSEL
• 使能信号:PENABLE
• 写入的数据:PWDATA.
西安 XGY 2010
3
AMBA 3 APB 协议规范 ARM®
图 2-2 具有等待状态的写传输
当PENABLE为低的时候,PREADY可以为任何值。确保外围器件有固定的两个周期来使PREADY为高
提示:
推荐地址和写信号在传输结束后不要立即更改,保持当前状态直到下一个传输,这样可以降低功耗。
2.2 读传输
读传输包括以下两种类型:
• 无等待状态
• 有等待状态
2.2.1 无等待状态
图2-3 显示了一个读传输。从器件必须在读传输结束前提供数据。
图 2-3 无等待状态读传输
2.2.2 有等待状态
图2-4 显示了信号是如何扩展传输的。如果在Access phase期间PREADY信号拉低,则传输被扩展。但下述信号
西安 XGY 2010
4
AMBA 3 APB 协议规范 ARM®
不变:
• 地址:PADDR
• 写信号:PWRITE
• 选择信号:PSEL
• 使能信号:PENABLE.
图2-4 显示了如何使用PREADY信号来添加两个周期,你也可以添加数个周期。
图 2-4 具有等待状态的读传输
2.3 错误响应
你可以使用PSLVERR来指示APB传输错误。当PSEL, PENABLE以及PREADY 都为高时,PSLVERR才在最后
一个周期进行判断。当任何一个PSEL, PENABLE或者PREADY为低时,你可以将PSLVERR拉低,这是推荐,
并不是强制要求。事物处理收到一个错误后,可能或不可能改变外围器件的状态。APB外围设备不要求必须支
持PSLVERR引脚,当不使用该引脚时,应被置低。
2.3.1 写传输
图2-5 是一个写传输失败的例子。
西安 XGY 2010
图 2-5 写传输失败的例子
5
AMBA 3 APB 协议规范 ARM®
2.3.2 写传输
写传输同样可以使用错误响应,图2-6便是一个错误响应的例子
图 2-6 读传输失败的例子
2.3.3 PSLVERR映射
从AHB桥接到APB PSLVERR被映射到HRESP = ERROR(PSLVERR -> HRESP[0])
西安 XGY 2010
6
AMBA 3 APB 协议规范 ARM®
3.1 操作状态
图3-1 显示了APB的操作流程
第三章 操作状态
图 3-1 状态图
状态机按照下面的状态执行:
IDLE
SETUP
这是默认的APB状态
当传输被请求时,总线进入SETUP状态,选择信号 PSELx,被置位。总线仅在SETUP 状态
停留一个时钟周期,并在下一个时钟周期进入ACCESS状态
ACCESS 使能信号PENABLE, 在ACCESS状态中置位。在传输从SETUP状态到ACCESS状态转变的过
程中address, write, select和write data信号必须保持不变。从ACCESS状态退出,由从器件的
PREADY 信号控制:
• 如果PREADY 为低,保持ACCESS状态。
• 如果PREADY 为高,则退出ACCESS状态,如果此时没有其它传输请求,总线返回IDLE
状态,否则进入SETUP状态。
西安 XGY 2010
7
AMBA 3 APB 协议规范 ARM®
4.1 AMBA 3 APB 信号
表4-1 列举了APB 信号描述
第四章 信号描述
表 4-1 APB 信号描述
描述
时钟
APB bridge
APB bridge
来源
时钟源
地址总线。最大可达32位,由外围总线桥单元驱动
复位,APB复位信号低有效。该信号一般直接与系统总线复位信号相连
信号
PCLK
————————————————————————————————————————————————
PRESETn 系统总线
————————————————————————————————————————————————
PADDR APB bridge
————————————————————————————————————————————————
PSELx
————————————————————————————————————————————————
PENABLE
————————————————————————————————————————————————
PWRITE
————————————————————————————————————————————————
PWDATA
————————————————————————————————————————————————
PREADY
————————————————————————————————————————————————
PRDATA
————————————————————————————————————————————————
PSLVERR
准备好,从器件利用该信号来扩展APB传输
方向,高时为写,低时为读
读取的数据。最高可达32位
写入的数据,最高32位
Slave interface
选择信号
使能信号
Slave interface
传输失败
APB bridge
APB bridge
Slave interface
西安 XGY 2010
8