AHB总线问答
应用于:AHB
AHB规范中要求所有在地址传输相位内的控制(除了HADDR和HTRANS)在突发传输周期中保持稳定。
尽管HLOCK信号不是一个地址传输相位内的信号,但是它却直接控制HMASTLOCK信号,而该信号是在地址传输相位的。
所以HLOCK信号必须在整个突发传输周期中维持为高,并且只能在最后一个地址传输相位之后改变,HMASTLOCK信号随之改变。
仲裁:主设备可以在被分配到总线而有不需要使用总线的时候进行一个不是IDLE的传输吗?
应用于:AHB
是的。主设备可以在被分配到总线而有不需要使用总线的时候进行一个不是IDLE的传输。但是请注意,在这种情况下任然建议主设备继续维持请求信号,以便仲裁器不会在传输过程中将总线使用权分配给另一个优先级更低的主设备。
仲裁:如果一个主设备当前被默认分配到了总线使用权,那么它在开始一个非IDLE传输之前需要维持HBUSREQ多少个周期?
应用于:AHB
不需要。主设备可以立即开始一次非IDLE传输。
仲裁:HLOCK信号和HMASTLOCK信号之间有什么关系?
应用于:AHB
在每个传输周期中的地址传输相位开始的时候,仲裁器都会对将要驱动地址信号线的主设备的HLOCK信号采样,如果HLOCK信号在此时有效那么仲裁器就会拉高HMASTLOCK并维持整个传输周期中的地址传输相位阶段。
仲裁:HGRANT信号可以在什么什么改变?
应用于:AHB
HGRANT信号可以在任意周期改变,并有可能是一下几种情况:
- HGRANT信号有效,然后在当前传输周期完成之前移除。这是有可能的并且是允许的,因为HGRANT信号只在HREADY信号为高的时候被主设备采样。
- 主设备可以不需要申请而得到总线使用权。
- 以上两点意味着主设备可能在申请总线的同时获得总线使用权。这发生在在主设备在同一个周期申请总线并同时被仲裁器分配总线使用权。
仲裁:为什么HADDR信号有时候是仲裁器的输入信号?
应用于:AHB
地址总线,HADDR,本是不需要作为仲裁器的输入信号的,但是在有些设计中却可以用于帮助仲裁器决定改变总线使用权的恰当时机。例如,仲裁器可以设计成当突发传输到达4字边界的时候改变总线使用权。
仲裁器可以设计成总是允许突发传输完成吗?
应用于:AHB
应用于:AMBA AHB
从设备给出SPLIT,RETRY 或ERROR 响应总会引起突发传输提前结束,而这是不受仲裁器控制的,因此(仲裁器)必须予以支持。
未定义长度的INCR 突发传输的结束点并不能预测到,所以还没有有效的方法设计仲裁器以保证在将总线授予另一个主设备时突发传输已经结束。
定长的INCRx 和WRAPx突发传输能够计数它们传输的节拍,所以仲裁器可以允许他们传输结束。但是由于AHB仲裁的同步时序,所以没有办法避免在突发传输第一次传输发起之后就立即结束突发传输的可能性。
仲裁器只有通过对HBURST 信号的采样才知道一个定长的突发传输正在进行。但是HBURST 信号第一次可以被采样到的店是在突发传输第一节拍的第一个时钟周期之后,而在那时,仲裁器很可能已经决定将总线授予另一个主设备并相应要改变HGRANT 信号。在这种情况下,只有一条从HBURST 到HGRANT 的组合路径能够帮助及时检测到突发传输以避免提前结束,但是组合路径在AHB 总线中是不允许的。
主设备应该在一个锁定传输中什么时候拉高是释放HLOCK 信号?
应用于:AHB
在一个锁定传输中,HLOCK 信号必须至少在地址传输相位之前一个周期拉高。这样才能保证仲裁器在地址传输相位开始的时候,采样到的HLOCK 信号为高。
主设备应该在锁定传输中最后一次传输的地址传输相位发起之后释放HLOCK 信号。
主设备应该在什么时候释放HBUSREQ 信号?
应用于:AHB
对于一个未定义长度的突发传输(INCR),主设备必须保持HBUSREQ 信号为高一直到突发传输中的最后一次传输的地址传输相位发起之后。这将意味着如果倒数第二次传输是一个零等待状态,那么主设备可能会在未定义长度突发传输之后还被授予总线都多一次额外的传输。
对于定长突发传输,主设备可以在第一次获得总线发起传输之后就释放HBUSREQ 信号。只所以可以这样做是因为仲裁器能够对突发传输中的传输节拍计数并保持主设备一直被授予总线知道突发传输的结束。
但是,仲裁器并没有强制要求必须允许突发传输的结束。所以,如果仲裁器在突发传输结束之前就改变了HGRANT 信号,那么主设备必须再次拉高HBUSREQ 信号。
仲裁器在一次锁定传输之后什么时候会将总线授予另一个主设备?
应用于:AHB
仲裁器总会授予主设备在锁定传输周期之后一个额外的传输,所以主设备能够保证在锁定传输周期之后HMASTLOCK 信号为低的时
AHB总线问 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)