2026/4/5 13:50:35
网站建设
项目流程
音乐网站整站程序,网站建设需要哪些职位,淘宝推广费用一般多少,爱企查商标查询概述AMBA#xff08;Advanced Microcontroller Bus Architecture#xff09;作为ARM的片上互连总线规范#xff0c;其演进史本质是一部SoC设计复杂度增长史。下图所示AMBA1~4的演进史。图表 1‑1 AMBA系统的演进AMBA1主要组成有ASB(Advanced System Bus)和APB(Advanced Peri…概述AMBAAdvanced Microcontroller Bus Architecture作为ARM的片上互连总线规范其演进史本质是一部SoC设计复杂度增长史。下图所示AMBA1~4的演进史。图表 1‑1 AMBA系统的演进AMBA1主要组成有ASB(Advanced System Bus)和APB(Advanced Peripheral Bus)系统和外设总线。ASB由于使用一种双向三态总线后期不再使用。APB为低带宽应用场景设计仅支持单次(single)传输目标是信号简单低带宽低功耗。ASB/APB属于一种高性能总线桥低性能总线的经典结构。AMBA2 引入AHB(Advanced High-performance Bus)作为ASB替代。AHB支持高带宽和高性能的传输支持突发(Burst)传输、分层仲裁架构适用于早期大规模、复杂的多核SoC系统。许多应用Cortex-M系列CPU的MCU系统主要使用AHB作为系统总线。AMBA3 引入AXI3(Advanced eXtensible Interface)不使用共享总线(Bus)每个主设备通过独立通道点对点直连从设备或通过互连矩阵Crossbar/NOC消除竞争主设备数量可扩展至数十个。在支持Burst feature的基础上AXI分离出5个独立通道读地址/读数据/写地址/写数据/写响应实现读写可并行允许主机发起多笔未完成的传输无等待响应即可发下一请求配合乱序完成Out-of-Order机制极大提升总线利用率。另外添加AHB_lite不使用仲裁的单Master简化版总线增加PREADY和PSLVERR信号支持ready/valid握手机制和错误反馈的APB3为CoreSight调试架构设计实现嵌入式系统的可见性的ATB(Advanced Trace Bus)。AMBA4将AXI3升级为AXI4作为绝大多数新系统的高性能总线另外引入不支持burst面向寄存器配置的AXI4 Lite和无地址线面向数据流传输的AXI4 Stream。添加ACE(AXI Coherency Extensions)在AXI4基础上增加snoop通道支持多核间的缓存一致性允许CPU核窥探其他核的缓存状态ACE-Lite用于仅需观察一致性如GPU读取CPU缓存但不需维护自身一致性的设备。AMBA5引入CHI(Coherent Hub Interface)是一种基于数据包的协议将通信分层为协议层、链路层和物理层适配片上网络(NoC)。升级AXI5/ACE5增加原子操作(在存储端进行)、数据校验、远程存储、TraceTag等特性。以下重点介绍APB、AHB、AXI。APB(3.0)协议介绍及分析APB的全称Advanced Peripheral Bus即先进外设接口。对于APB总线来说唯一的 Master 为 APB bridge或NIC Switch其它均为Slave。因此APB总线不需要有一个像AHB一样的仲裁器及其它复杂的线路整个总线架构较简单。APB总线特点APB总线只有一个master其他的都是slave。APB 总线传输是对数据目标的读写操作总是至少需要 2个总线周期。可在高频下工作协议简单无复杂的时序只有三个控制信号PSELPWRITEPENABLE同步总线总线上所有的transaction读写操作都依赖于时钟的上升沿一主多从一般情况下APB挂在AHB/AXI总线系统下通过AHB-APB Bridge或NIC将事务在AHB总线系统之间进行转化此时Bridgre即为APB的master其他的外围设备均为slave。APB主要用于低带宽的周边外设之间的连接例如UART、I2C等APB信号APB3信号如下。另外APB4/5新增StrbProtNse(保护类型拓展)WakeupUser校验等功能信号。2‑1 APB3信号信号I/O描述PCLKI时钟源来的总线时钟上升沿采样PRESETnI复位源来的低电平有效异步复位PADDR[31:0]I地址总线PSELxI选择信号x为编号高电平选中SlavePENABLEI使能信号高电平表示传输进入数据阶段PWRITEI1写0读PWDATA[31:0]I写数据总线PRDATA[31:0]O读数据总线PREADYO3.0Slave反压上游PSLVERRO3.0, 表示传输失败APB状态机APB3传输状态机如下所示图表 2‑1 APB3传输状态机简要分析IDLE态下Master通过PSELx信号选择Slave进入SETUP态。接着Master拉高PENABLE在下一个时钟的上升沿进入 ACCESS 状态。在 SETUP 状态转换到 ACCESS 状态这段时间里PADDRPWRITEPSELx和 PWDATA信号必须保持稳定。ACCESS状态的跳转取决于Slave的PREADY信号状态如果 PREADY为0表示slave还没有准备接受传输的数据或者没有准备好输出的数据会让其继续处于 ACCESS 状态。如果PREADY为1表示slave已完成数据可以跳转到其他状态。这里APB3.0允许一个传输完成后不返回IDLE态直接进入下一个传输的SETUP状态。即如果后面有连续的下一笔数据传输则直接跳转到SETUP如果没有直接回到 IDLE。需要强调的是这里的连续数据传输指的是Master一直选择同一个Slave传输数据是一种多个独立单次传输紧密排列前传输完成后立即开始下一个的背靠背传输和Burst不是一个概念。SETUP 状态分析SETUP 态属于历史遗留。考虑到一个周期可能无法完成从Master 向Slave写入数据的整个操作流程。因此采用两拍的方式第一拍告知传输 称为setup phase第二拍才真正的完成数据的传输称为access phase。APB3传输无等待的写传输如下图是一个无等待的APB3写传输包含完整的三个状态。T0IDLET1SETUPT2ACCESST3IDLE从机PREADY 的置起表示其通知主机能够接受写传输之后由于不再有传输跳回 IDLE 态。图表 2‑2从机无等待的写传输有等待的写传输如下图和无等待写只有一个区别PENABLE 置起而Slave 不回 READY 传输一直被Slave 反压停在SETUP 态直到从机READY 好接受数据。图表 2‑3 有等待的写无等待的读传输如下图类似写区别是PWRITE 表读传输。图表 2‑4无等待的读传输有等待的读传输如下图类似。图表 2‑5有等待的读传输错误响应PSLVERR仅在APB传输的最后一个周期被视为有效此时PSEL、PENABLE和PREADY信号均为高电平。ARM建议但非强制在PSEL、PENABLE或PREADY为低电平时将PSLVERR驱动为低电平。PSLVERR只是一个关于传输状态的响应信号接收到错误响应的事务可能已经或可能未改变外设的状态。这取决于具体外设两种状态都是可以接受的。也可以不使用PSLVERRMaster 端可接低电平。图表 2‑6 写Error图表 2‑7读Error使用桥接时AXI-APBPSLVERR 映射至 RRESP、BRESP。AHB-APBPSLVERR 映射至 HRESP。APB4 feature 补充PSTRB类似AXI Strb。PPROT和AXI 相同的3bit PROT 信号。PNSE引入该信号以支持Arm-v9Arm Realm Management ExtensionRME系统架构。图表 2‑8 PNSE与PPROT[1]的组合及对应的物理地址空间PWAKE低功耗接口有一定使用规则。USER功能安全支持奇偶校验和错误校验码。信号有效性规则图表 2‑9 有效性规则APB4和APB3以及APB3和APB2的兼容性问题以APB4的slave和APB3的master为例这个时候应该把PSTRB信号固定为全1PPROT信号则取决于Slave是如何使用该信号的根据不同的场景固定为不同的值。而APB3的slave和APB4的master相连接这个时候实际上需要一个转接桥因为本身可能只想写某一个字节而slave此时不支持也不知道那就需要一个中间逻辑将pwdata变成想要的值。比如读回来时32h2345想将最高字节改写为6此时只写一个32h6000PSTRB为1000标志别的字节不要动。这个时候就需要一个中间逻辑将写的数据变成32h6345。实际上写起来也很麻烦因此此时最好将APB3的slave改成APB4协议。至于APB3和APB2不建议一起用因为APB2没有PREADY反压机制因此实际使用起来完全不一样强行一起用会有巨大的坑。新英雄呱呱呱~