szh__k 2024-05-28 17:49 采纳率: 28.6%
浏览 2

AHB to APB协议相关问题咨询

AHB to APB 相关问题咨询:

  1. burst 模式下,是对不同的地址写相同的数据还是只针对 master 发送的地址分 bit 进行写,比如 burst 模式下,HSIZE 表示传输为 32bits,回卷猝发为 4,起始地址为 0x34,则是对 0x34 写入 低8bit 数据,,0x35写入7-15bit,,0x36写入还是对 0x34 写入低 16-23bit,,0x37写入24-31bit,0x38开始重复写入32bit?
    还是,0x34地址写入0-7bit,0x38 写入 8-16bit,依次类推?
  2. AHB to APB bridge 中 burst 模式下,AHB 发送一个地址和 32bit 数据需要2个 clk,如果 APB 需要补齐地址的话,至少需要8个clk,在此期间,slave 需要给 master 反馈延长周期的信号吗?
    烦请有关专业人员帮忙解答下,感激不尽
  • 写回答

2条回答 默认 最新

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

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

    在回答您的问题之前,让我先澄清一点:虽然我并非实际意义上的专家,但我可以提供基于标准协议文档(例如AMBA AHB和APB规范)的理解和解释。下面是您所提问题的详细答案:

    1. 在AHB到APB桥接器的burst模式下,数据传输通常遵循连续地址模式。这意味着在HSIZE为32bits,回卷猝发为4的情况下,从起始地址0x34开始,每次传输会覆盖整个32位宽度。因此,数据传输顺序如下:

      • 地址0x34,写入32位数据的最低字节。
      • 地址0x35,写入32位数据的次低位字节。
      • 地址0x36,写入32位数据的第三低位字节。
      • 地址0x37,写入32位数据的最高位字节。
      • 接着,由于回卷猝发为4,再次从地址0x34开始下一个32位数据的传输。
    2. 对于AHB到APB桥接器中的burst模式,当AHB端发送一个地址和32位数据时,确实可能需要两个时钟周期完成。然而,关于APB端是否需要反馈延长周期的信号,这取决于具体的设计实现。在标准的AMBA规范中,并没有明确要求必须有这样的信号。但根据实际情况,设计者可能会添加这样的机制以确保数据同步。

    通常情况下,AHB主设备会在事务开始时通过TREADY信号通知从设备准备好接收数据。如果APB从设备需要更多时间来处理数据,它可以通过降低其端口上的PREADY信号来告诉AHB主设备。这将导致AHB主设备等待直到PREADY变为有效,从而间接地实现了周期的延长。

    为了简化描述,这里是一个简化的伪代码片段,展示了如何在AHB主设备和APB从设备之间进行数据传输:

    while (more_data_to_transfer) {
        ahb_address = calculate_next_apb_address();
        ahb_write_data = get_next_32bit_data();
    
        # Send address and data on AHB bus
        ahb_master.write(ahb_address, ahb_write_data);
    
        # Wait for PREADY signal from APB slave
        while (!apb_slave.pready()) {
            // Optionally, implement timeout handling here
        }
    
        // APB slave has acknowledged the transfer
    }
    

    在这个例子中,我们假定ahb_masterapb_slave对象分别代表AHB主设备和APB从设备的接口,它们提供了读取和写入地址和数据的方法。calculate_next_apb_address()用于计算下一个APB地址,而get_next_32bit_data()则获取下一组32位数据。在每个循环中,主设备都会等待从设备的PREADY信号,然后继续下一个数据块的传输。

    注意,这只是一个概念性的伪代码,实际的实现可能会包含错误检测、仲裁、中断处理等更复杂的逻辑。在设计和实现这类系统时,应参考具体的AMBA AHB和APB规范以及相应的IP核或硬件平台文档。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月28日

悬赏问题

  • ¥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驱动,如何解决?