AHB信号
AHB系统在内核时钟HCLK信号驱动下运行,AHB总线上连接的寄存器访问均在AHB的上升沿触发。AHB总线信号中有一个低电平有效的复位信号HRESETn,即HRESETn信号为低电平时,AHB系统立即复位。
典型AHB系统主要信号如下:
HREADYOUT信号与HREADY信号在不是同一个信号线。
AHB基本操作
单主机多从机AHB总线系统实例
AHB传输过程采用流水线结构,即当前传输的地址区间可以与上一次传输的数据区间重叠。
如图:
HREADY信号是与数据区间信号配合使用的,HESL信号是与地址区间信号配合使用。
HREADYOUT信号由AHB从机发出,用于表示从机是否已经准备好接收或者发送数据,准备好是高电平,否则是低电平。
HREADY信号是一个系统范围内的信号,用于指示当前AHB总线上是否有未完成的传输。当所有从机都准备好接收或者发送数据,HREADY信号为高电平;有一个从机没准备好,HREADY就置为低电平。
HREADY信号由从机多路复用器根据所有从机的HREADYOUT信号生成的。
AHB从机数据流水线传输时序波形如下:
某个从机在发送地址区间信号时,对应从机的HSEL信号变成高电平,发送结束变成低电平。
某个从机在发送数据区间信号时,对应HREADYOUT信号变成低电平,发送结束变成高电平。
所有从机的HREADYOUT信号都是高电平时,HREADY为低电平,表示数据区间信号空闲。有一个从机的HREADYOUT信号为低电平时,HREADY为高电平,表示总线上有数据区间信号。
最小AHB系统
最小AHB系统所需的AHB基础组件:
如果AHB系统分为多个子系统,则可能需要多个AHB解码器
多总线主机的处理
具有两个AHB主机和两个AHB从机的AHB系统如下:
总线仲裁器控制多个主机通过多路复用器共用一根总线。
AHB主机发送数据之前,应先通过HBUSREQ信号发送总线请求,仲裁器授权后,会通过HGRANT信号握手回应:
● AHB主机必须先向仲裁器发送总线请求信号HBUSREQ。
● 在仲裁器完成仲裁后,如果允许数据传输,则会将总线授权信号HGRANT返回给对应AHB主机。
● 数据在当前连接总线上传输。
● 数据传输过程中如果HGRANT信号被取消,主机必须停止发起新的传输。
为了解决多个AHB总线主机试图同时访问某个AHB总线从机的冲突,每个连接到AHB从机的主机端口都有一个仲裁器。如果某AHB总线主机欲传输数据到某从机,而该从机正在与其他主机进行数据传输,此时该主机会将数据保存到输入级缓冲器中,待该从机的传输结束后再进行传输。在这种情况下,不再需要使用HBUSREQ和HGRANT信号了。
使用总线矩阵,不同的AHB总线主机可以同时访问不同AHB总线从机,这可以大幅提高数据传输带宽。