高级外设总线 (APB) 接口:架构、协议与应用解析(下)
扫描二维码
随时随地手机看文章
一、APB 协议详解
读操作流程
APB 读操作的具体步骤如下:
SETUP 阶段:主设备驱动 PADDR 信号指定要读取的地址,驱动 PSELx 信号选择目标从设备,并将 PWRITE 信号置低表示读操作。此时 PENABLE 信号保持低电平。
ENABLE 阶段:主设备将 PENABLE 信号置高,启动读操作。从设备检测到 PENABLE 信号有效后,将读取的数据驱动到 PRDATA 总线上,并将 PREADY 信号置高表示数据就绪。
数据采集:主设备在检测到 PREADY 信号有效后,从 PRDATA 总线上采集数据,完成读操作。
写操作流程
APB 写操作的步骤如下:
SETUP 阶段:主设备驱动 PADDR 信号指定要写入的地址,驱动 PSELx 信号选择目标从设备,将 PWRITE 信号置高表示写操作,并将写入的数据驱动到 PWDATA 总线上。此时 PENABLE 信号保持低电平。
ENABLE 阶段:主设备将 PENABLE 信号置高,启动写操作。从设备检测到 PENABLE 信号有效后,读取 PWDATA 总线上的数据,并将 PREADY 信号置高表示写操作完成。
操作完成:主设备在检测到 PREADY 信号有效后,认为写操作已完成,可以开始下一个传输周期。
等待状态处理
当从设备需要更多时间来完成操作时 (如访问慢速存储器),可以通过拉低 PREADY 信号来插入等待状态。主设备在 ENABLE 阶段会持续监测 PREADY 信号,只有当 PREADY 信号有效时才会完成当前传输周期。这种机制使 APB 能够适应不同速度的外设,提高了总线的灵活性。
错误处理
APB 协议定义了 PSLVERR 信号用于指示传输过程中是否发生错误。当从设备检测到错误条件时 (如访问非法地址),可以将 PSLVERR 信号置高。主设备在检测到 PSLVERR 信号有效后,可以采取相应的错误处理措施,如重试操作或报告错误。
二、APB 与其他 AMBA 总线的比较
APB vs AHB
设计目标:APB 专为低速外设设计,强调简单性和低功耗;AHB (Advanced High-performance Bus) 则针对高性能应用,支持高速数据传输和突发传输。
传输机制:APB 采用两阶段传输机制,而 AHB 采用多周期传输机制,支持更复杂的传输模式。
信号复杂度:APB 的信号集相对简单,而 AHB 的信号集更复杂,包括更多的控制信号和状态信号。
应用场景:APB 适用于连接 UART、GPIO 等低速外设;AHB 适用于连接 CPU、内存控制器、高速外设等。
APB vs AXI
设计目标:AXI (Advanced eXtensible Interface) 是 AMBA 4.0 规范中引入的新一代总线协议,专为高性能、高带宽应用设计,支持乱序传输和非阻塞事务;APB 则保持了简单性和低功耗的特点。
传输方式:AXI 采用分离的地址和数据通道,支持并发传输;APB 则采用共享总线结构,地址和数据在同一总线上分时传输。
性能:AXI 的性能远高于 APB,适合用于高速数据传输和复杂系统;APB 则适用于对性能要求不高的低速外设。
APB 的优势与局限性
优势:结构简单,实现成本低;功耗低,适合电池供电的嵌入式系统;易于理解和使用,降低了开发难度。
局限性:传输效率较低,不适合高速数据传输;不支持并发传输和乱序处理,难以满足复杂系统的需求。