欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > AMBA-APB

AMBA-APB

2025/2/25 17:00:03 来源:https://blog.csdn.net/m0_66578894/article/details/144829170  浏览:    关键词:AMBA-APB

目录

1.APB 协议

2.APB信号列表

3.数据传输

3.1写传输(2种)

3.1.1 无等待状态的写传输

3.1.2有等待状态的写传输

3.2写选通信号 (PSTRB)

字节通道映射

3.3读传输(2种)

3.3.1 无等待状态的读传输

3.3.2有等待状态的读传输

时序说明

3.4错误响应

3.4.1 写传输

3.4.2读传输

4.信号有效性

说明:


1.APB 协议

        APB(高级外设总线)协议是一种低成本接口,针对最低功耗接口复杂性最小化进行了优化。APB 的接口不是流水线化的(一次数据传输必须完全完成后,才能启动下一次数据传输。换句话说,APB的操作是逐步完成的,没有重叠或并行的传输阶段),它是一个简单的同步协议。每次传输至少需要两个时钟周期完成。

        APB 的接口专为访问外设设备的可编程控制寄存器而设计,外设通常通过 APB 桥接到主内存系统。例如,可以使用从 AXI 到 APB 的桥接器将多个 APB 外设连接到 AXI 内存系统中。APB 传输由 APB 桥发起。APB 桥也称为请求方(Requester)。外设接口响应传输请求,外设也被称为完成方(Completer)

2.APB信号列表

信号名称来源宽度描述
PCLK时钟源1 位时钟信号,所有 APB 信号与 PCLK 的上升沿同步。
PRESETn系统总线复位信号1 位复位信号,低电平有效,通常直接连接到系统总线复位信号。
PADDR请求方 (Requester)ADDR_WIDTH (≤32 位)地址总线,用于表示字节地址,必须保持稳定直到传输完成。
PPROT请求方 (Requester)3 位保护类型,包括普通、特权、安全访问和数据/指令访问类型。
PNSE请求方 (Requester)1 位保护类型的扩展信号,支持领域管理扩展 (RME)。
PSELx请求方 (Requester)1 位选择信号,用于选择对应的完成方 (Completer),指示数据传输需要访问该外设。
PENABLE请求方 (Requester)1 位使能信号,指示 APB 传输的第二个周期或后续周期。
PWRITE请求方 (Requester)1 位方向信号,高电平表示写操作,低电平表示读操作。
PWDATA请求方 (Requester)DATA_WIDTH写数据总线,传输写入完成方的数据,可为 8 位、16 位或 32 位。
PRDATA完成方 (Completer)DATA_WIDTH读数据总线,完成方在读周期传输数据,可为 8 位、16 位或 32 位。
PSTRB请求方 (Requester)DATA_WIDTH / 8写选通信号,指示写传输中哪些字节有效。
PREADY完成方 (Completer)1 位准备就绪信号,完成方可延长传输,用于指示当前传输是否可以完成。
PSLVERR完成方 (Completer)1 位(可选)错误信号,高电平表示传输发生错误。
PWAKEUP请求方 (Requester)1 位唤醒信号,指示 APB 接口的活动。
PAUSER请求方 (Requester)USER_REQ_WIDTH用户请求属性信号,最大宽度建议为 128 位。
PWUSER请求方 (Requester)USER_DATA_WIDTH用户写数据属性信号,最大宽度建议为 DATA_WIDTH / 2
PRUSER完成方 (Completer)USER_DATA_WIDTH用户读数据属性信号,最大宽度建议为 DATA_WIDTH / 2
PBUSER完成方 (Completer)USER_RESP_WIDTH用户响应属性信号,最大宽度建议为 16 位。

        APB 协议具有两个独立的数据总线:用于读取数据的 PRDATA和用于写入数据的 PWDATA。这些总线的宽度可以是 8 位、16 位或 32 位。读取数据总线和写入数据总线的宽度必须相同。

        由于读取数据和写入数据总线没有各自独立的握手信号,数据传输无法同时进行,即不能并发传输。APB 使用非流水线的两阶段传输,包括 设置阶段 (Setup Phase)访问阶段 (Access Phase)

        APB 接口具有单一的地址总线 PADDR,用于读和写的传输。PADDR表示字节地址, 可以与数据宽度不对齐,但其结果是不可预测的。例如,响应方(Completer)可能会使用未对齐的地址、对齐的地址,或者发出错误响应信号。

3.数据传输

所有显示的信号都在 PCLK 上升沿采样

3.1写传输(2种)

  • 无等待状态的写传输
  • 有等待状态的写传输
3.1.1 无等待状态的写传输

传输阶段描述:

  1. 设置阶段(Setup phase):

    • 在 T1 时刻开始设置阶段,选择信号 PSEL 被置为有效。
    • 此时,PADDR(地址)、PWRITE(写方向)以及 PWDATA(写数据)必须有效。
  2. 访问阶段(Access phase):

    • 在 T2 时刻,PENABLE 信号被置为有效,进入访问阶段。
    • 在 PCLK 的上升沿,PREADY 由响应方(Completer)置为有效,表示写数据将在 T3 时刻被接收。
    • 在整个传输完成之前,PADDR、PWDATA 以及任何其他控制信号都必须保持稳定。
  3. 传输结束:

    • 传输完成后,PENABLE 信号被释放(无效)。
    • 如果没有向同一外设进行另一轮传输,PSEL 信号也会被释放(无效)。
3.1.2有等待状态的写传输

访问阶段中的延长: 通过控制 PREADY 信号来延长传输时间。

  • 当 PENABLE 信号为高电平(有效)时,响应方可以通过将 PREADY 驱动为低电平(无效)来延长传输时间。

延长期间保持不变的信号:

在 PREADY 信号保持低电平的期间,下列信号保持不变:

  • 地址信号(PADDR)
  • 方向信号(PWRITE)
  • 选择信号(PSELx)
  • 使能信号(PENABLE)
  • 写数据信号(PWDATA)
  • 写选通信号(PSTRB)
  • 保护类型信号(PPROT)
  • 用户请求属性信号(PAUSER)
  • 用户写入数据属性信号(PWUSER)

PREADY 的状态规则:

  • 当 PENABLE 为低电平时,PREADY 信号可以取任意值。
  • 这保证了那些固定两周期访问的外设可以将 PREADY 信号直接连接为高电平。

3.2写选通信号 (PSTRB)

        PSTRB 信号用于在写数据总线上启用稀疏数据传输。每个 PSTRB 对应写数据总线的 1 个字节。当 PSTRB 被拉高时,它表示相应的字节通道包含有效数据。

字节通道映射

  • 每 8 位的写数据总线上有一个写选通信号,因此 PSTRB[n] 对应于 PWDATA[(8n + 7):(8n)]。
  • 图 3-3 显示了在 32 位数据总线上的这种关系。

对于读取传输,发起者(Requester)必须将所有的 PSTRB 信号拉低。

        PSTRB 信号的存在与兼容性: PSTRB 是一个可选信号,一个 APB 外设可能只支持一部分访问类型,具体支持的访问类型需要在文档中说明,这意味着如果文档声明不支持稀疏写入(sparse writes),则所有 PSTRB 信号的组合可能是兼容的。

3.3读传输(2种)

  • 无等待状态
  • 有等待状态

所有信号都在 PCLK 的上升沿进行采样

3.3.1 无等待状态的读传输

无等待状态的读取传输时序

  • 地址信号 PADDR、写入信号 PWRITE、选择信号 PSEL、使能信号 PENABLE 的时序与写传输部分中描述的相同。
  • 对于读取传输,响应方(Completer)必须在读取传输结束前提供数据。

时序说明在无等待状态的读取传输中,数据必须立即响应,不存在额外的延迟等待状态。

3.3.2有等待状态的读传输

图 3-5 展示了 PREADY 信号如何扩展传输。

有等待状态的读取传输时序

  • 在访问阶段,如果 PREADY 被拉低,传输将被延长。
  • PREADY 保持为低电平期间,以下信号保持不变:
    • 地址信号 PADDR
    • 方向信号 PWRITE
    • 选择信号 PSEL
    • 使能信号 PENABLE
    • 保护信号 PPROT
    • 用户信号 PAUSER
      • ​​​​​​122
时序说明
  • 如图 3-5 所示,在有等待状态的读取传输中,PREADY 可以增加两个周期。然而,实际上可以增加任意数量的附加周期,从零个周期开始。

这意味着在等待状态期间,数据传输可以根据外部设备的响应时间灵活调整,直到传输完成。

3.4错误响应

        PSLVERR 可以用于指示 APB 传输中的错误条件。错误条件可能发生在读或写传输中。
        PSLVERR 仅在 APB 传输的最后一个周期有效,即当 PSEL、PENABLE 和 PREADY 都为高电平时。建议当 PSEL、PENABLE 或 PREADY 为低电平时,PSLVERR 被驱动为低电平。

        发生错误的传输可能会或不会改变外围设备的状态,这取决于具体的外围设备设计。当写传输发生错误时,这并不意味着外围设备中的寄存器没有被更新。当读传输发生错误时,可能会返回无效数据。外围设备没有要求在读错误时将数据总线驱动为全零。请求者接收到读传输的错误响应后,仍然可能使用返回的数据。完成者不能依赖错误响应来阻止读取 PRDATA 上的值。

        完成者不需要支持 PSLVERR。如果完成者不支持 PSLVERR,则适当的输入会被连接为低电平。

3.4.1 写传输

 图 3-6 显示了一个写传输失败并以错误完成的示例。 

3.4.2读传输

读传输也可以以错误响应完成,表明没有有效的读数据可用。

 3-7 显示了一个读传输以错误响应完成的示例。

PSLVERR的映射

当进行桥接时:

  • 从AXI到APB:APB上的PSLVERR错误会映射回AXI的RRRESP(读响应)和BRESP(写响应)。
  • 从AHB到APB:APB上的PSLVERR错误会映射回AHB的HRESP(读写响应)。

        这说明了当APB总线发生错误时,PSLVERR信号会通过桥接机制映射到其他总线(如AXI或AHB)的相应错误响应信号。

4.信号有效性

以下是信号有效性要求

信号始终有效当 PSEL 被激活时必须有效当 PSEL 和 PENABLE 被激活时必须有效当 PSEL、PENABLE 和 PREADY 被激活时必须有效说明
PSEL选择信号,指示外设被选中进行操作。
PWAKEUP唤醒信号,可能用于低功耗管理。
PADDR地址
PPROT保护信号,指示访问类型(如读/写、用户/特权模式)。
PNSE非安全标志,可能指示事务是否为非安全模式。
PENABLE指示当前周期是事务的有效部分。
PWRITE事务是写操作(1)还是读操作(0)。
PAUSER暂停或停顿请求信号。
PSTRB字节使能信号,指示数据的哪些字节有效。
PWDATA写数据,在有效的写数据线上传输,仅在写操作时有效。
PWUSER用户定义信号,仅在写操作时有效。
PREADY目标是否准备好完成事务的信号。
PRDATA读数据,仅在读操作时有效。
PSLVERR从设备错误信号,表示事务发生错误。
PRUSER用户定义信号,仅在读操作时有效。
PBUSER用户定义信号,可能用于附加信息传输。
说明:
  • 始终有效: 表示该信号在任何时刻都必须有效。
  • 当 PSEL 被断言时有效: 表示该信号在 PSEL 被断言时必须有效。
  • 当 PSEL 和 PENABLE 被断言时有效: 表示该信号在 PSEL 和 PENABLE 都被断言时必须有效。
  • 当 PSEL、PENABLE 和 PREADY 被断言时有效: 表示该信号在 PSEL、PENABLE 和 PREADY 都被断言时必须有效。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词