SoC总线之AMBA-apb4 v2.0总线介绍

时间:2024-05-18 18:23:49

1.1 概述   

高级外围总线(APB)是AMBA的一部分。 它定义了一种低成本接口,该接口经过优化以最小化功耗并降低接口复杂性
   APB协议不是流水线,请使用它连接到不需要高性能AXI协议的低带宽外围设备
   APB协议将信号转换与时钟的上升沿相关联,以简化APB外设到任何设计流程中的集成。 每次传输至少需要两个周期。

APB: mainly used for access to registers and peripherals

SoC总线之AMBA-apb4 v2.0总线介绍
1.2 APB修订版

1998年发布的APB规范修订版已过时,并由以下三个修订版取代:

•AMBA 2 APB规范

•AMBA 3 APB协议规范v1.0

•AMBA APB协议规范v2.0。

1.2.1 AMBA 2 APB规范

   AMBA 2 APB规范在AMBA规范修订版2(ARM IHI 0011A)中进行了详细说明。
   该规范定义了接口信号,基本的读取和写入传输以及APB bridge和APB slave的两个APB组件。
   规范的该版本称为APB2。

1.2.2 AMBA 3 APB协议规范v1.0

AMBA 3 APB协议规范v1.0定义了以下附加功能:

    •等待状态-wait state。 
   •错误报告 -error report。 
   以下接口信号支持此功能:

   PREADY就绪信号,指示APB传输已完成。
   PSLVERR错误信号,指示传输失败。

   规范的该版本称为APB3。

1.2.3 AMBA APB协议规范v2.0

   AMBA APB协议规范v2.0定义了以下附加功能:

   •transaction proprotection。 
   •sparse data transfer。 
   以下接口信号支持此功能:

   PPROT一种保护信号,用于支持APB上的非安全交易和安全交易。
   PSTRB一个写选通信号,用于在写数据总线上进行sparse data transfer。
   规范的该版本称为APB4。

 

2.1信号描述

SoC总线之AMBA-apb4 v2.0总线介绍

2.1.1数据总线

注意:APB协议有两条独立的数据总线,一条用于读取数据,另一条用于写入数据。 总线的最大宽度为32位。 由于总线没有自己的握手信号,因此不可能同时在两个总线上进行数据传输。

3.基本传输

3.1 写传输

3.1.1无等待写传输

SoC总线之AMBA-apb4 v2.0总线介绍

如上图3.1所示,

    在T1处,写传输从地址PADDR,写数据PWDATA,写信号PWRITE和选择信号PSEL开始,并记录在PCLK的上升沿。 这称为写传输的设置阶段。
   在T2,在PCLK的上升沿记录使能信号PENABLE和就绪信号PREADY。
   置位后,PENABLE指示传输访问阶段的开始。
   置位后,PREADY表示从机可以在PCLK的下一个上升沿完成传输。
   地址PADDR,写数据PWDATA和控制信号都保持有效,直到在访问阶段结束的T3传输完成为止。
   在传输结束时,使能信号PENABLE被置为无效。 选择信号PSEL也被置为无效,除非在紧接着该传输之后是另一传输到同一外设。

 

3.1.2有等待写传输

SoC总线之AMBA-apb4 v2.0总线介绍

 

  图3-2显示了从机如何使用PREADY信号扩展传输。
  在access阶段,当PENABLE为高电平时,从机通过驱动PREADY为低电平来扩展传输。 当PREADY保持为低电平时,以下信号保持不变:

•地址,PADDR

•写信号,PWRITE

•选择信号,PSEL

•使能信号,PENABLE

•写数据,PWDATA

•写选通脉冲,PSTRB

•保护类型,PPROT。
 

当PENABLE为低电平时,PREADY可以取任何值。 这样可确保具有固定两个周期访问权限的外围设备可以设置PREADY 为高。

建议:建议在传输后不要立即更改地址和写入信号,但要保持稳定,直到发生另一次访问为止。 这减少了功耗。

3.2写选通-write strobes

写选通信号PSTRB允许在写数据总线上进行选通数据传输。 每个写选通信号对应于写数据总线的一个字节。 当置为高电平时,写选通信号指示写数据总线的相应字节通道包含有效信息。
   写数据总线的每八位有一个写选通脉冲,因此PSTRB [n]对应于PWDATA [(8n + 7):( 8n)]。 图3-3显示了32位数据总线上的这种关系。

SoC总线之AMBA-apb4 v2.0总线介绍

注意:对于读传输,总线主机必须将PSTRB的所有位驱动为低电平。

3.3 读传输

3.3.1无等待读传输

SoC总线之AMBA-apb4 v2.0总线介绍

图3-4显示了读取传输。 地址,写入,选择和使能信号的时序如图3.1的写入传输中所述。 从机必须在读取传输结束之前提供数据。

3.3.2 有等待读传输

SoC总线之AMBA-apb4 v2.0总线介绍

图3-5显示了PREADY信号如何扩展传输。 如果在access阶段将PREADY驱动为LOW,则传输将延长。

该协议确保以下内容在其他周期中保持不变:

•地址,PADDR

•写信号,PWRITE

•选择信号,PSEL

•使能信号,PENABLE

•保护类型,PPROT。
   图3-5显示了使用PREADY信号添加了两个周期。 但是,可以添加任意数量的附加循环等待。

3.4错误响应-error response

   可以使用PSLVERR来指示APB传输上的错误情况。 读取和写入事务都可能发生错误情况。
   当PSEL,PENABLE和PREADY均为高电平时,仅在APB传输的最后一个周期内才认为PSLVERR有效。
   建议(但不是强制性)在不采样时将PSLVERR驱动为低电平。 也就是说,当PSEL,PENABLE或PREADY中的任何一个为低电平时。
   接收到错误的事务可能会或可能不会更改外围设备的状态。这是特定于外围设备的,可以接受。 当写事务接收到错误时,这并不意味着外围设备内的寄存器尚未更新。 收到错误的读取事务可能返回无效数据。 对于读取错误,不需要外设将数据总线驱动为全0。
   不需要APB外设支持PSLVERR引脚。 对于现有和新的APB外设设计都是如此。 如果外设不包含此引脚,则APB桥接器的适当输入连接为LOW。

3.4.1有错误的写传输

SoC总线之AMBA-apb4 v2.0总线介绍

 

3.4.2有错误的读传输

SoC总线之AMBA-apb4 v2.0总线介绍

 

3.4.3 PSLVERR信号的映射

桥接时:

从AXI到APB APB错误被映射回RRESP / BRESP = SLVERR。 这是通过将PSLVERR映射到AXI信号RRESP [1](用于读取)和BRESP [1](用于写入)来实现的。
   对于读写,从AHB到APB,PSLVERR映射回HRESP = ERROR。 这是通过将PSLVERR映射到AHB信号HRESP [0]来实现的。

 

3.5保护单元支持

为了支持复杂的系统设计,互连系统和系统中的其他设备通常都必须提供防止非法交易的保护。 对于APB接口,此保护由PPROT [2:0]信号提供。

访问保护的三个级别是:

1.普通或特权,PPROT [0]=0表示普通访问  =1 表示特权访问。
  一些主控使用它来指示其处理模式。 特权处理模式通常在系统内具有更高级别的访问权限。

2.安全或不安全,PPROT [1]=0表示安全访问   =1表示不安全访问。
   这用于需要更大程度区分处理模式的系统中。
   注意:配置此位后,当它为高电平时,该事务被视为不安全;而当它为低电平时,该事务被视为安全。

3.数据或指令,PPROT [2]=0表示数据访问  =1表示指令访问。
   该位指示事务是数据访问还是指令访问。

注意:此指示仅作为提示,并非在所有情况下都是准确的。 例如,交易包含指令和数据项的混合。 建议默认情况下,除非明确将其称为指令访问,否则将访问标记为数据访问。

SoC总线之AMBA-apb4 v2.0总线介绍

 

PPROT的主要用途是作为安全或非安全交易的标识符。 可以使用对PPROT [0]和PPROT [2]标识符的不同解释。

4.运行状态

4.1状态图

SoC总线之AMBA-apb4 v2.0总线介绍

 

状态机通过以下状态进行操作:

1.IDLE------

这是APB的默认状态。
  2.SETUP ---------

当需要传输时,总线进入设置状态,在此状态下,相应的选择信号PSELx被置位。 总线仅在一个时钟周期内保持SETUP状态,并始终在时钟的下一个上升沿移至ACCESS状态。
  3. ACCESS----------

使能信号PENABLE处于ACCESS状态。 从SETUP到ACCESS状态的转换期间,地址,写入,选择和写入数据信号必须保持稳定。
   从ACCESS状态的退出由来自从机的PREADY信号控制:

   •如果从机将PREADY保持为LOW,则外围总线保持在ACCESS状态。
   •如果从机将PREADY驱动为HIGH,则退出ACCESS状态,并且如果不需要更多传输,总线将返回IDLE状态。
   或者,如果随后进行另一次传输,则总线直接移动到SETUP状态。