AHB总线—wrap burst的理解

文章详细介绍了AHB总线的Burst传输模式,包括Incrementingbursts和Wrappingbursts。Incrementingbursts是顺序地址增加,而Wrappingbursts在越界时会回绕。以HSIZE=010(word)和HBURST=WRAP4为例,展示了如何计算Wrappingbursts模式下的传输地址,解释了地址计算规则和数据传输过程。

一、Burst operation

  • AHB总线支持4、8和16拍的burst、未定义长度的burst以及单次传输。Burst传输包括 incrementing bursts和wrapping bursts。
  • HBURST[2:0]控制Burst类型
HBURST[2:0] 类型 描述
b000 SINGLE Single burst
b001 INCR Incrementing burst of undefined length
b010 WRAP4 4-beat wrapping burst
b011 INCR4 4-beat incrementing burst
b100 WRAP8 8-beat wrapping burst
b101 INCR8 8-beat incrementing burst
b110 WRAP16 16-beat wrapping burst
b111 INCR16 16-beat incrementing burst
### AHB总线中Signal和Burst连接的工作原理与实现方式 #### 信号的作用及其分类 在ARM的AMBA AHB(Advanced High-performance Bus)总线架构中,信号被分为几类以支持高效的数据传输。其中关键的信号包括但不限于`HADDR`、`HSIZE`、`HBURST`、`HPROT`以及`HWRITE`等[^3]。 - **HADDR**: 表示传输的目标地址。 - **HSIZE**: 定义每次传输的数据大小(字节级别),可以是8位、16位或32位等。 - **HBURST**: 描述突发传输模式,决定了后续传输如何进行地址更新。常见的突发类型有INCR(增量)、WRAP4/8/16(循环突发)等。 - **HPROT**: 提供保护信息,用于指示访问属性,比如特权级、缓存行为等。 - **HWRITE**: 指明当前操作是写入还是读取。 这些信号共同协作来定义每一次事务的具体细节,并通过组合不同的参数值适应多种应用场景需求。 #### Burst传输机制详解 对于连续的大批量数据交换而言,采用单一固定目标位置逐次单独请求显然效率低下;因此引入了burst概念——允许一次性发起多次关联紧密的小规模传送动作集合而成的整体过程称为一个完整的burst transaction。在此过程中: - Master设备会预先设定好初始条件并启动整个序列; - Slave端一旦检测到来自Master侧发出的相关标志,则明白自己正处于某个更大型号活动的一部分当中而非孤立事件之中; - 接下来按照既定规则维持原有配置不变的同时仅改变部分字段内容完成剩余环节直至结束为止[^2]。 具体来说,在每一个独立阶段内部除了可能依据特定策略调整实际物理定位之外其余各方面均需保持稳定状态直到全部子项处理完毕之后才会重新评估是否需要更改全局设置或者切换至其他任务流程之上继续前进下去。 以下是伪代码展示了一个简单的AHB burst逻辑框架: ```c // 初始化第一个beat的信息 set_initial_values(); for(int i=0;i<total_beats;i++) { send_data_to_slave(); if(i != total_beats -1){ prepare_next_address(); // 根据HBURST类型计算下一个地址 } } ``` 此段程序片段展示了在一个典型的burst周期里是如何逐步推进各个组成部分之间的相互作用关系链路结构图谱形式呈现出来以便于理解掌握其内在规律特点所在之处更为清晰直观可见一斑而已矣乎哉! ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值