AMBA协议是一个开放标准的片上互联规范,用于SOC功能模块的连接和管理。目前,已经推出来四代版本的AMBA规范。版本2的AMBA规范定义了3个总线接口:
AHB(advanced high-performance bus):高级高性能总线
ASB(advanced sysytem bus ): 高级系统总线
APB(advanced peripheral bus):高级外设总线
APB总线用在低带宽和不需要高性能总线的外部设备上,采用流水线结构,所有信号仅与时钟上升沿有关。每次传输至少消耗2个周期。
APB 信号:
PCLK:时钟源
PRESETN:系统复位信号,低电平有效
PADDR:地址总线,最大32位
PPROT:保护类型,普通传输,安全传输,数据访问或指令访问
PSELx: 片选信号,每个从设备配有一个
PENABLE: 使能信号,表示数据传输的第二个及之后的周期。
PWRITE: 读写控制信号,高电平为写访问,低电平为读访问
PWDATA: 写数据,
PSTRB: 字节有效信号,每一个字节对应一位,如果数据位为32,则PSTRB为4位
PREADY: 从设备准备好信号,
PRDATA: 读取的数据。在读周期里,从设备驱动该总线,最大32位
PSLVERR: 传输失败信号
APB 写传输
APB 写传输包括两种类型:无等待状态写传输和有等待状态写传输
(1)T1周期
给出PADDR,PWRITE,PSELx,PWDATA信号,也称为建立周期
(2)T2周期及之后
抬高PENBLE信号,等待PREADY信号,如果刚好则是无等待状态传输,否则,PENABLE信号一直保持,直到PREADY信号出现,传输结束,这个是有等待状态传输。
APB读传输
APB 读传输包括两种类型:无等待状态读传输和有等待状态读传输
(1)T1周期
给出PADDR,PWRITE,PSELx信号,
(2)T2周期及以后
抬高PENABLE信号,等待PREADY和PRDATA,如果刚好出现就是无等待读传输,否则PENABLE信号一直保持,直到
PREADY和PRDATA出现,这个是有等待状态读传输。
APB传输状态机
1.IDLE
默认状态,无操作
2.SETUP
建立周期,为一个时钟周期,提供必要的信号.如PSELx信号,PADDR信号等。
3.ACCESS
数据传输,PENABLE拉高,等待PREADY信号。如果PREADY信号为低,则保持当前状态,否则根据是否要接下来继续在当前地址传输数据来确定下一个状态。具体可看下面的状态机图。