APB

一、什么是APB总线?

APB协议是一种低成本接口,专门用于访问外设的可编程控制寄存器。

该接口采用非流水线式的简单同步协议,每次传输至少需要两个时钟周期才能完成。APB传输由APB桥接器发起(桥接器可称为请求方),外设接口则对请求作出响应(APB外设可称为完成方)。

二、信号描述

信号 位宽 说明
PCLK Clock 1 时钟信号,所有信号均同步与PCLK的上升沿
PRESETn 系统总线复位 1 低电平复位,与系统总线复位信号直接相连
PADDR 请求方 1-32 字节地址
PPROT 请求方 3 保护类型,用于指示事务传输的普通、特权或安全保护级别,以及该事务是数据访问还是指令访问
PNSE 请求方 1 保护类型的层级划分
PSELx 请求方 1 选通信号,请求方为每个完成方生成独立的PSELx信号。PSELx有效时表示对应完成方被选中,且需要进行数据传输
PENABLE 请求方 1 使能信号,用于标识APB传输的第二个及后续周期
PWRITE 请求方 1 传输方向,“1”表示请求方写,“0”表示请求方读
PWDATA 请求方 8/16/32 写数据,由请求方在PWRITE为“1”的写周期期间驱动。
PSTRB 请求方 PWDATA/8 写选通信号,指示写传输过程中需要更新的字节通道(?),每位对应一字节
PREADY 完成方 1 PREADY作为握手信号,由完成方用来延长APB传输(?)
PRDATA 完成方 8/16/32 读数据,由被选中的完成方在PWRITE为低电平的读周期期间驱动
PSLVERR 完成方 1 传输错误信号,可选,由完成方置为高电平,用以指示APB传输中出现错误状态
PWAKEUP 请求方 1 唤醒信号,用于指示与APB接口相关的任何活动
PAUSER 请求方 最大128 用户请求属性
PWUSER 请求方 DATA_WIDTH/2 用户写数据属性
PRUSER 完成方 DATA_WIDTH/2 用户读数据属性
PBUSER 完成方 最大16 用户响应属性

APB协议包含两条独立的数据总线:PRDATA用于读取数据,PWDATA用于写入数据。数据总线宽度可为8位、16位或32位,且读写数据总线必须保持相同位宽。由于读写数据总线未配备独立的握手信号,因此无法实现并发数据传输。

三、传输

3.1 写传输

image

声明

参考自ARM官方的AMBA 5 – Arm®下的APB文档

posted @ 2025-11-07 17:09  Holybanban  阅读(1)  评论(0)    收藏  举报