AMBA总线之APB总线协议
简介
AMBA(Advanced Microcontroller Bus Architecture)总线是由ARM公司提出的一种开放性的片上总线标准,它独立于处理器和工艺技术,具有高速度低功耗等特点。
AMBA总线体系包括以下三种总线。
AHB:Advanced High-performance Bus,用于高性能、高时钟工作频率模块。
ASB:Advanced System Bus,用于高性能系统模块。
APB:Advanced Peripheral Bus,用于慢速外设模块。
典型的AMBA总线系统
从AHB/ASB总线到APB总线需要通过桥接器(Bridge)进行互联。
APB总线介绍
应用于慢速外设,如UART、键盘等,不需要AHB总线体系中的Arbiter与Decoder。
Arbiter为仲裁器,决定哪个Master工作。Decoder为译码器,决定Master与哪个Slave进行数据传输。
APB传输时的信号
| pclk | 时钟信号 |
| presetn | 复位信号,低有效 |
| paddr | 地址 |
| psel | 选择salve有效信号 |
| penable | 使能信号,在传输周期起作用 |
| pwrite | 数据读写控制,高电平为写数据,低电平为读数据 |
| prdata | 读数据 |
| pwdata | 写数据 |
APB传输时状态
通过APB总线传输数据时有三个状态:
IDLE:初始化状态,此时pselx=0,penable=0,此时未选中Slave。
SETUP:此时pselx=1,penable=0,在SETUP状态保持一个周期,paddr与pwrite给定。
ENABLE:此时pselx=1,penable=1,在ENABLE状态保持一个周期,paddr与pwrite保持不变。
在经过SETUP与ENABLE状态后传输完成,之后如果没有传输要进行,就进入IDLE状态等待;如果 有连续的传输,则进入SETUP状态。
APB传输时序图