AHB总线协议整理
来源:互联网 发布:阿里云华东1 编辑:程序博客网 时间:2024/05/21 06:19
这位博注总结的很好啊,
http://blog.163.com/qixin_william/blog/static/240217035201491133626819/
http://blog.163.com/qixin_william/blog/static/240217035201491425318830/
拿过来分析下
- T1时刻之后,master将第一拍地址和控制信号打入总线,因为是一个新的burst的开始,所以transfer的类型是NONSEQ的。 T2上升沿,slave采集到master发出的控制信号。
- 控制信号包括(haddr,htans,hburst)。 slave就是基于这一控制信号,考虑是否在下个周期(T2时刻后的周期,把自己的data放上供给master读取)
- NONSEQ是single模式和burst模式第一拍的必要条件。
- 这里的hburst发出为INCR模式,即为次数不限的递增burst传输。地址根据每拍数据的大小递增,可以传输任意次数。唯一的限制是地址不能超过1K边界.
- 由于master不能在第二个周期里处理第二拍,T2时刻后,所以master使用BUSY transfer来为自己延长一个周期的时间。注意,虽然是延长了一个周期,但是master需要给出第二个transfer的地址和控制信号。在T3时刻Slave的控制信号htrans busy被slave抓到。
- 在T3的上升沿,实际上第一个tranfer(读或者写)完成。
- 这里实际上完成了一次握手,master说我下个周期会很busy,发不出来数据,slave你就不要采了
- 对于无效的周期,实际上和busy一同发出的busy信号也没什么意义了(反正下个周期也不会在完成tranfer了)。
- slave在T3时刻采集到了master发来的BUSY transfer,知道master需要等待一拍,所以,slave会忽略这个BUSY transfer。
- 也就是说,T4时候,总线上 的数据信号是无效的。T4这个时刻只是为了获取下一周期的控制信号
- 虽然master在busy的周期数据是无效的,但是控制还必须有效,这样的话实际上控制信号只是在准备通知slave下一周期,我是否还是无效的,如果有效,我的地址是啥。
- 在等待了一个周期之后,T5时刻完成第二个transfer。一切正常
- 在第五个周期里,slave很忙,将HREADY信号拉低,告诉master需要等待一个周期。然后再T6时刻,master 感受到slave的不ready,就会保持字的状态。
- 。。。。。。。
- 列表内容最后在T8时刻完成最后个transfer。
需要注意的 虽然slave会忽略掉BUSY transfer,但是master也需要给出下一拍的地址可控制信号。
这里没反应出来的是hresp信号,这一信号包含ok,error,retry, split,正常情况下,都会是ok状态
阅读全文
0 0
- AHB总线协议整理
- AHB总线协议
- AHB总线 AXI总线
- AMBA总线协议AHB、APB、AXI对比分析
- AHB总线简介
- AHB总线问答
- APB和AHB总线
- AHB总线问答
- AHB和APB总线
- AHB 总线 与 APB 总线
- AHB总线和APB总线
- AMBA、AHB、APB总线简介
- AMBA、AHB、APB总线简介
- 总线AMBA、APB、AHB介绍
- AMBA、AHB、APB总线简介
- AMBA、AHB、APB总线简介
- AMBA、AHB、APB总线简介
- AMBA、AHB、APB总线简介
- Mysql之存储引擎
- 调试中的一些错误---持续更新
- 2.uC/OS III 内核, 关于临界段
- 在数据库中创建省与市的表格
- FatMouse and Cheese HDU
- AHB总线协议整理
- Android下的Service的基本用法
- javascript深入理解js闭包
- CMake和RPATH
- BZOJ 2938: [Poi2000]病毒 AC自动机
- angularjs和angular4的区别。为什么使用angular4
- minetest源码解析二:GUIEngine初始化、菜单刷新流程以及核心函数介绍
- printf三兄弟
- bzoj 3670 [Noi2014]动物园【kmp】