APB介绍
APB是AMBA协议族的一部分,APB定义了一种低成本接口,针对最小功耗和接口复杂度进行了优化。APB是非pipeline的,用于低带宽需求的外设。
APB信号
Signal | Width | Source | Description |
pclk | 1 | system | 总线时钟,上升沿有效 |
prstn | 1 | system | 总线复位,active low |
psel | 1 | APB bridge | 指示从机被选中 |
paddr | 32 | APB bridge | 总线地址,最大可达32bits位宽 |
pwrite | 1 | APB bridge | 读写方向,写(1),读(0) |
pwdata | 32 | APB bridge | 写数据,最大可达32bits位宽 |
pstrb | 4 | APB bridge | 写数据选通信号,与写数据byte对齐,读传输无效 |
penable | 1 | APB bridge | 使能 |
pprot | 3 | APB bridge | 保护类型 |
prdata | 32 | slave | 读数据,最大可达32bits位宽 |
pready | 1 | slave | ready信号,用于延展APB传输 |
pslverr | 1 | slave | 用于指示传输失败 |
传输
写传输
无等待写传输
T1:写传输设置阶段,发送地址PADDR、数据PWDATA、读写方向PWRITE、选择信号PSEL,在PCLK时钟上升沿被寄存;
T2:使能PENABLE和准备信号PREADY,在T2的时钟上升沿被寄存;
T3:在PCLK上升沿之前保持控制信号和数据信号,直到在PCLK上升沿完成传输。
有等待传输
T1:写传输设置阶段,发送地址PADDR、数据PWDATA、读写方向PWRITE、选择信号PSEL,在PCLK时钟上升沿被寄存;
T2:使能PENABLE,在T2的时钟上升沿被寄存,但PREADY拉低,表示从机要延展传输;
T3:保持控制信号和数据信号;
T4:PREADY信号拉高,在PCLK上升沿被寄存;
T5:在PCLK上升沿之前,保持控制信号和数据信号,完成写传输。
写选通
写选通信号PSTRB,启动数据总线上的稀疏数据传输。每个选通信号对应总线上写数据的一个字节,高电平表示对应的字节是有效数据。读传输时,主机必须将PSTRB所有信号拉低。
读传输
无等待读传输
T1:读传输设置阶段,发送地址PADDR、读写方向PWRITE、选择信号PSEL,在PCLK时钟上升沿被寄存;
T2:使能PENABLE和准备信号PREADY,同时主机发送PRDATA读数据,在T2的时钟上升沿被寄存;
T3:在PCLK上升沿之前保持控制信号和数据信号,直到在PCLK上升沿完成读传输。
有等待读传输
T1:读传输设置阶段,发送地址PADDR、读写方向PWRITE、选择信号PSEL,在PCLK时钟上升沿被寄存;
T2:使能PENABLE,在T2的时钟上升沿被寄存,但从机PREADY拉低,表示从机要延展传输;
T3:保持读控制信号;
T4:从机PREADY信号拉高,同时从机发送读数据PRDATA信号,在PCLK上升沿被寄存;
T5:在PCLK上升沿之前,保持控制信号和数据信号,完成写传输。
错误响应
信号PSLVERR时用来指示APB传输错误。当写处理接收到一个error,不意味着外设的寄存器未发生更新。当读处理接收到一个error意味着可能返回的是一个无效数据。
对于已经存在的或新设计的APB外设,不一定必须指示PSLVERR管脚。如果外设不支持,APB桥的相应PSLVERR端口置为低电平。
写传输错误响应
读传输错误响应
总线间PSLVERR映射关系
APB与AXI映射:
BRESP/RRESP=SLVERR,对于读响应映射到RRESP[1],对于写响应映射到BRESP[1]。
APB与AHB映射:
HRESP=ERROR,PSLVERR对应到HRESP[0]。
保护信号
为支持复杂的系统设计,系统中互连和其它设备通常需要提供保护,防止非法处理。
APB运行状态机