szh__k 2024-05-29 15:20 采纳率: 28.6%
浏览 4

AHB总线协议相关问题请教

在AHB协议中,burst模式下,master发送的地址是按照HSIZE进行递增的,
则master在将地址传输给slave时,发送的地址是20,22,24,需要slave自己补充中间缺少的21,23,25地址?
还是将中间的地址也补充上,给slave发送20,21,22,23,24,25这样的地址?

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-29 15:20
    关注

    引自免费微信小程序:皆我百晓生

    在AHB(Advanced High-performance Bus)协议中,当Master在burst(连续访问)模式下与Slave通信时,并不会像您所描述的那样发送所有地址。实际上,AHB burst模式允许Master在一个事务中连续访问多个数据字节,而不需要为每个单独的数据字节发送一个新的地址。

    例如,如果您有一个HSIZE(Half-Word Size,半字大小)为4的AHB接口,这意味着每次可以传输两个字节(一个半字)。在这种情况下,Master会在一个事务开始时发送第一个地址,然后会自动按顺序访问后续地址,直到完成规定的burst长度。对于HSIZE为4的burst,Master会发送以下地址序列:

    1. 第一次传输:地址A (例如20)
    2. 自动增加地址:地址A + HSIZE = A + 4 (例如24)
    3. 继续增加地址:地址A + 2 * HSIZE = A + 8 (例如28)

    这样,Master实际上只发送了起始地址A,而后续地址是由硬件自动递增的,不需要显式地发送中间地址。因此,在您的例子中,Master只会发送地址20,然后硬件会自动处理后续地址的递增,不需要发送21、23等地址。

    总结一下,AHB burst模式下的地址处理方式如下:

    • Master发送一个起始地址。
    • 硬件自动递增地址,根据HSIZE决定步长(对于HSIZE为4,每次递增4个地址)。
    • Master在一个事务中连续读写指定数量的数据。

    请注意,这仅适用于AHB协议中的连续访问(burst)模式。在其他非-burst模式(如单周期访问)中,Master可能需要为每个独立的数据字节发送新的地址。在实际编程或设计中,要确保遵守特定版本的AHB规范,因为不同的AHB版本可能会有细微差异。

    评论 编辑记录

报告相同问题?

问题事件

  • 修改了问题 5月29日
  • 创建了问题 5月29日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?