侧边栏壁纸
    • 累计撰写 302 篇文章
    • 累计收到 527 条评论
    SoC架构、通信举例、AHB、APB接口
    我的学记|刘航宇的博客

    SoC架构、通信举例、AHB、APB接口

    刘航宇
    2024-08-23 / 0 评论 / 127 阅读 / 正在检测是否收录...

    典型的SoC包括以下部分

    • 一个或多个处理器内核,可以是MCU、MPU、数字信号处理器或专用指 令集处理器内核;
    • 存储器:可以是RAM、ROM、EEPROM或闪存;
    • 用于提供时间脉冲信号的振荡器和锁相环电路;
    • 由计数器和计时器、电源电路组成的外设;
    • 不同标准的连线接口,如USB、火线、以太网、通用异步收发;
    • 用于在数字信号和模拟信号之间转换的ADC/DAC;
    • 电压调理电路及稳压器。
    在外设内部,各组件通过芯片上的互联总线相互连接。ARM公司推出的 AMBA片上总线主要包括高性能系统总线AHB、通用系统总线ASB、外围互联总线APB、可拓展接口AXI。AHB主要针对高效率、高频宽及快速系统模块;ASB可用于某些高速且不必要使用AHB 总线的场合作为系统总线;APB 主要用于低速、低功率的外围,AXI在AMBA3.0协议中增加,可以用于ARM 和FPGA的高速数据交互。
    基于ARM的SoC

    CPU与SRAM通信

    CPU通过AHB对SRAM进行读写
    地址生成:CPU生成要访问的SRAM地址。
    信号发送:CPU通过AHB总线发送地址信息和读写请求信号。
    数据传输:
    读操作:CPU发送读请求后,SRAM将数据放在数据线上,CPU接收数据。
    写操作:CPU将数据放在数据线上,发送写请求,SRAM接收并存储数据。
    等待确认:操作完成后,SRAM可能通过AHB的握手信号通知CPU操作已完成。

    CPU与I2C接口通信

    CPU通过APB读取I2C的数据
    I2C是一种串行通信协议,通常用于低速外围设备与主控制器之间的通信。APB是一种用于连接低速外设的总线。以下是CPU通过APB读取I2C数据的一般步骤:
    初始化I2C外设:CPU通过APB发送指令初始化I2C外设,设置通信参数如时钟速率、地址等。
    发送启动条件:CPU通过I2C外设发送启动条件,开始通信。
    地址和读写位:CPU发送目标设备的I2C地址以及读写位(读操作为1,写操作为0)。
    数据传输:
    写操作:如果读写位为0,CPU通过APB发送数据到I2C外设,然后发送停止条件结束通信。
    读操作:如果读写位为1,CPU接收来自I2C外设的数据。
    数据接收:在读取操作中,CPU通过APB从I2C外设接收数据。
    发送停止条件:操作完成后,CPU发送停止条件,结束I2C通信。

    AHB从接口


    AHB主接口


    APB桥

    APB桥为AHB的一个从设备,但它在APB中是唯一的主设备,而APB中其它低速和低功率消耗的外围皆为APB桥的从设备。下图是 APB 桥的信号接口:

    APB桥将系统总线传送转换成APB方式的传送,它具备一些这些功能:
       锁存地址,在传送过程中保持地址有效。锁存读写控制信号
       对锁存的地址进行译码并产生选择信号PSELx,在传送过程中只有一个选择信号可以被激活。也就是选择出唯一一个APB从设备以进行读写动作.
       写操作时: 负责将AHB送来的数据送上APB总线。
       读操作时: 负责将APB的数据送上AHB系统总线。
       产生一时序选通信号PENABLE作为数据传递时的启动信号

    APB Slave框图


    如前面所提及,APB 总线中除了 APB bridge 为 M 外,其它的外围皆为 S。因此,APB 从设备比 AHB从设备接口较为简单且非常具弹性: 例如
    a. APB 少了仲裁器及复杂的译码电路,APB 进行写操作时,从设备可以决定:
       : 在 PCLK 上升沿触发, 且 PSEL 为高时锁存数据
       :或在 PENABLE 上升沿, 且 PSEL 为高时锁存数据
      b. PSELx,PADDR和PWRITE信号的组合可以决定哪个寄存器会被写操作更新。
      c. 在读操作的时候,数据可以 PWRITE 在=0,PSELx 和 PENABLE=1 的时候被送到总线上,而PADDR 用于决定哪个寄存器会被读。

    AXI总线

    AXI的三种类型
     AXI(AXI4-Full):用于高性能的存储器映射需求;(占用资源较多,传输大量数据)
     AXI4-Lite:简化版的AXI4接口;(占用资源较少,可用于低吞吐率的存储器的通信)
     AXI4-Stream:用于高速的流数据通信(不使用地址,适用于视频流)
    AXI的工作方式
    AXI4和AXI4-Lite包含5个独立的通道
     读地址通道
     读数据通道
     写地址通道
     写数据通道
     写响应通道

    AXI4:由于读写地址通道是分离的,所以支持双向同时传输;突发长度最大为256;
     AXI4-Lite:和AXI4比较类似,但是不支持突发传输;
     AXI4-Stream:和AXI4的写数据通道比较类似,只有一个单一的数据通道,突发长度不受限制;

    AXI传输对比

    Burst可以减少地址通道的交互,提升单笔传输的效率。
    Outstanding可以较少多笔传输之间的等待,提升多笔传输的效率。

    AMBA中AXI AHP APB比较

    1
    FPGA/数字IC之FIFO深度计算
    下一篇 » 2024-08-23

    评论 (0)

    取消