您好、欢迎来到现金彩票网!
当前位置:刘伯温论坛 > 突发传输 >

AHB总线问答

发布时间:2019-05-27 00:50 来源:未知 编辑:admin

  AHB规范中要求所有在地址传输相位内的控制(除了HADDR和HTRANS)在突发传输周期中保持稳定。

  尽管HLOCK信号不是一个地址传输相位内的信号,但是它却直接控制HMASTLOCK信号,而该信号是在地址传输相位的。

  所以HLOCK信号必须在整个突发传输周期中维持为高,并且只能在最后一个地址传输相位之后改变,HMASTLOCK信号随之改变。

  仲裁:主设备可以在被分配到总线而有不需要使用总线的时候进行一个不是IDLE的传输吗?

  是的。主设备可以在被分配到总线而有不需要使用总线的时候进行一个不是IDLE的传输。但是请注意,在这种情况下任然建议主设备继续维持请求信号,以便仲裁器不会在传输过程中将总线使用权分配给另一个优先级更低的主设备。

  仲裁:如果一个主设备当前被默认分配到了总线使用权,那么它在开始一个非IDLE传输之前需要维持HBUSREQ多少个周期?

  在每个传输周期中的地址传输相位开始的时候,仲裁器都会对将要驱动地址信号线的主设备的HLOCK信号采样,如果HLOCK信号在此时有效那么仲裁器就会拉高HMASTLOCK并维持整个传输周期中的地址传输相位阶段。

  地址总线,HADDR,本是不需要作为仲裁器的输入信号的,但是在有些设计中却可以用于帮助仲裁器决定改变总线使用权的恰当时机。例如,仲裁器可以设计成当突发传输到达4字边界的时候改变总线使用权。

  从设备给出SPLIT,RETRY 或ERROR 响应总会引起突发传输提前结束,而这是不受仲裁器控制的,因此(仲裁器)必须予以支持。

  未定义长度的INCR 突发传输的结束点并不能预测到,所以还没有有效的方法设计仲裁器以保证在将总线授予另一个主设备时突发传输已经结束。

  定长的INCRx 和WRAPx突发传输能够计数它们传输的节拍,所以仲裁器可以允许他们传输结束。但是由于AHB仲裁的同步时序,所以没有办法避免在突发传输第一次传输发起之后就立即结束突发传输的可能性。

  仲裁器只有通过对HBURST 信号的采样才知道一个定长的突发传输正在进行。但是HBURST 信号第一次可以被采样到的店是在突发传输第一节拍的第一个时钟周期之后,而在那时,仲裁器很可能已经决定将总线授予另一个主设备并相应要改变HGRANT 信号。在这种情况下,只有一条从HBURST 到HGRANT 的组合路径能够帮助及时检测到突发传输以避免提前结束,但是组合路径在AHB 总线中是不允许的。

  在一个锁定传输中,HLOCK 信号必须至少在地址传输相位之前一个周期拉高。这样才能保证仲裁器在地址传输相位开始的时候,采样到的HLOCK 信号为高。

  主设备应该在锁定传输中最后一次传输的地址传输相位发起之后释放HLOCK 信号。

  对于一个未定义长度的突发传输(INCR),主设备必须保持HBUSREQ 信号为高一直到突发传输中的最后一次传输的地址传输相位发起之后。这将意味着如果倒数第二次传输是一个零等待状态,那么主设备可能会在未定义长度突发传输之后还被授予总线都多一次额外的传输。

  对于定长突发传输,主设备可以在第一次获得总线发起传输之后就释放HBUSREQ 信号。只所以可以这样做是因为仲裁器能够对突发传输中的传输节拍计数并保持主设备一直被授予总线知道突发传输的结束。

  但是,仲裁器并没有强制要求必须允许突发传输的结束。所以,如果仲裁器在突发传输结束之前就改变了HGRANT 信号,那么主设备必须再次拉高HBUSREQ 信号。

  仲裁器总会授予主设备在锁定传输周期之后一个额外的传输,所以主设备能够保证在锁定传输周期之后HMASTLOCK 信号为低的时候执行一次传输。而这恰巧又是在锁定传输的最后一次传输的数据相位上。

  此时,仲裁器可以将改变HGRANT 信号授予另一个主设备,但是如果在最后一次锁定传输的数据相位上收到一个RETRY 响应,那么仲裁器将会继续驱动HGRANT 信号以确保那个执行锁定传输的主设备继续获得总线;如果在最后一次锁定传输的数据相位上收到一个SPLIT 响应,那么仲裁器将会将总线授予一个虚拟的主设备。

  如果系统视图访问一个断电的或者时钟停止的从设备,你必须确保这次访问能够唤醒电源供电或恢复时钟,或者配置AHB 译码器所有这种类型的访问重定向到一个虚拟从设备,这样以避免系统访问一个无效的从设备时永远等停在那里。

  这种方式的重定向需要确保随机IDLE地址的访问将会有HREADY 为高,HRESP=OKAY 的默认响应,但是对于真正的访问(NONSEQ 或者SEQ)将会有ERROR 响应。

  突发传输提前结束或是因为仲裁器在突发传输过程中改变HGRANT 信号,或是因为从设备在任一传输节拍中给出非OKAY 响应。注意虽然主设备不能决定一个定长的突发传输直到主设备被仲裁器或者从设备提示要这样做。

  一般来说,AHB 主设备不应该在HREADY 信号为低的时候改变控制信号,但是在以下情况,允许改变HTRANS 信号:

  AHB 主设备在执行一个内部操作并且没有发起一次总线传输。但是在AHB 等待状态下(HREADY 为低),主设备可能会决定需要一次总线传输然后在下一个周期将HTRANS 改为NONSEQ。

  HTRANS 在此时正是给予主设备一定时间以完成其内部操作,而这可能是与HREADY 信号无关的(例如,AHB 中的等待状态)。因此HTRANS 信号可以在下一个周期改变为任意合法的值,如,在突发传输需要继续时改为SEQ,在突发传输结束时改为IDLE,在需要发起一个单独的传输时改为NONSEQ。

  正如AHB 规范中所述,主设备必须在双周期响应SPLIT和RETRY的第二个周期保持HTRANS为IDLE,所以HTRANS 会在第二个周期中从第一个周期中的值改变为IDLE。

  主设备允许在回应ERROR 响应时改变HTRANS 信号,就像回应SPLIT/RETRY响应一样,并且取消当前突发传输中的后续传输(即使HTRANS当前表示的是定长突发传输)。在这种情况下,HTRANS 信号在第响应的二个周期改变为IDLE。或者主设备也可以允许继续当前传输。

  可以的。如果地址和控制信号表示的是一个IDLE 传输,那么主设备可以在HREADY 为低的时候将传输改为一个真正的传输(NONSEQ)。

  但是如果主设备当前正表示一个真正的传输(NONSEQ或者SEQ),那么主设备不能在传输等待中取消这次传输,除非主设备接收到SPLIT。RETRY或者ERROR 响应。

  任何不支持SPLIT 响应的从设备都可以直接连到AHB 主设备上。如果从设备确实有使用SPLIT 响应,那么一个简化版的中采取还是需要的。

  如果一个AHB 主设备直接连到AHB 从设备,那么必须确保从设备在复位的时候维持HREADY 信号为高,并且从设备选择信号HSEL 永远维持为高。

  是的。所有从设备都必须支持BUSY 传输类型以确保它能够与任何主设备兼容。

  是的。地址应高根据传输宽度(HSIZE)对齐,即使是IDLE 传输。这会避免在仿真的时候,总线监视器发出的警告。

  AHB 规范中提供了最多16 个主设备,然而,这还包括一个虚拟主设备,即真正的总线 个。习惯上总线 被分配给虚拟总线主机。

  桥接器应该简单的将整个32-bit 的数据都传输过去。但是请注意,当进行小于32-bit的数据传输时,确保外设正处在APB 数据总线上的正确比特位上。

  从设备同时需要将HREADY 信号作为一个输入信号,以便能够判断上一次选择的从设备在什么时候完成它的最后一次传输,以及当前从设备的数据传输相位即将开始。

  每一个AHB 从设备都应该有一个HREADY 输出信号(习惯上命名为HREADYOUT)连接到从设备主设备多路器上多路器的输出信号就是全局HREADY 信号,它将连接到AHB 系统上的所有主设备并且同时作为HREADY 输入信号反馈输入到所有的从设备。

  如果整个4G byte空间都被定义使用到了,那么默认从设备是不需要的。但是,如果在整个存储地址空间分配上存在未定义的区域,那么确保在访问不存在的地址空间时AHB 系统不会发生死锁是很重要的。默认主设备的功能是非常简单的,并且同时在译码器中就实现了。

  任何存在支持SPLIT 响应的从设备的AHB 系统都是需要有虚拟主设备的。应为如果所有其它主设备都接收到了SPLIT 响应,那么系统会将总线使用权分配给虚拟主设备。

  虚拟主设备中不需要什么逻辑,它的实现只需要简单的将其输入信号连接到地址/控制多路器的虚拟主机位置。虚拟主机需要驱动HTRANS 为IDLE,HLOCK 为低,所有其它主设备输出信号驱动为合法状态。

  如果主设备表示它想进行NOSEQ,SEQ 或者BUSY 传输,那么它就不允许在扩展的传输中(当HREADY 为低时)改变地址总线上的值,除非它接收到了ERROR,RETRY 或者SPLIT 响应。如果主设备表示它想进行一个IDLE 传输,那么它可以改变地址信号。

  总体:有规定需要HPROT,HSIZE 和HWRITE 信号在突发传输中需要保持恒定吗?

  总体:规范里面建议只有16个等待状态,如果需要16个以上的等待周期该怎么做?

  对于一些从设备而言,16个以上的等待周期是可以接受的。例如,一个串行的ROM,它只在系统商店初始化的时候会被访问时会插入大量的等待状态,但是在系统完成上电初始化之后,它并不影响系统性能和延时的计算。

  对于另一些从设备,存在多项选择。SPLIT 或者RETRY 响应可以用于表示从设备暂时还不能执行数据传输请求,或者从设备被访问时,给出一个中断响应,或者在查询一个状态寄存器之后能访问。这两种情况都表示从设备不能够在可接受的等待周期中给出应答。

http://aw2400.net/tufachuanshu/96.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有