目录
读传输
传输在AHB上的时刻T1发起并且地址在T2被APB桥采样。如果传输是到外设总线那么该地址被广播并且产生合适的外设选择信号。在外设总线上的第一个周期成为SETUP周期,当PENABLE信号被断言后,该周期后跟随着ENABLE周期。
在ENABLE周期期间外设必须提供读数据。通常可能会将要读的数据直接发回到AHB,总线主机在ENABLE周期结束时的时钟上升沿采样该数据,在图5.9中为时间T4。
在时钟频率很高的系统中可能需要桥在ENABLE周期结束时寄存读数据然后桥在接下来的周期将该数据驱动回AHB总线主机。尽管对外设总线读传输而言这将要求一个额外的等待状态,但这允许AHB运行在较高的时钟频率,这也导致了系统性能的全面提高。图5.10表示了一次突发读传输。(图中)所有读传输都要求一个等待状态。
写传输
单个到AHB的写传输可以零等待状态发生。APB桥负责采样传输的地址和数据并在APB的写传输期间保持这些数据值。
虽然第一个传输可以零等待状态完成,但之后到外设总线的传输将为每个传输的执行要求一个等待状态。
APB桥需要包含两个地址寄存器,以便APB桥可以采样下一次传输的地址而同时当前传输继续在外设总线上(执行)。
背靠背传输
图5.13表示了许多的背靠背传输。传输序列以一个写操作开始,之后跟随着一个读操作,然后是一个写操作,之后是一个读操作。
图5.13表示了如果一个读传输紧跟在一个写传输之后,那么需要3个等待状态来完成这次读操作。事实上,在基于处理器的设计中一个写传输后跟随着一个读传输并不经常发生因为处理器将在两个传输之间执行指令预取并且指令存储器不太可能挂接在APB总线上。
三态数据总线的实现
建议以分开的读和写数据总线来实现AMBAAPB,这允许使用一个多路复用总线或者或(OR)总线方案来互联许多APB总线上的从机。如果使用了三态总线那么读和写数据总线可以组合成单根总线,因为读和写数据绝不会同时发生。
图5.14表示了不需要特别考虑的因素如果数据总线是使用三态缓冲来实现。如果数据总线在读传输的SETUP周期为三态并且只要总线在空闲状态那么周转的整个时钟周期总是在不同的数据驱动器之间发生。对突发写传输而言没有周转期因为APB桥将在每个传输的SETUP周期驱动数据,然而这非常合理因为APB桥是写传输唯一的数据总线驱动器因此不需要周转期。
图5.14表示了读和写数据总线是如何成功的组合到单根三态数据总线的。