信号列表
PCLK: 总线时钟
PRESETn:总线reset信号
PADDR[31:0] : 地址
PSELx: 连接slave端的片选信号
PENABLE:指示APB传输的第二个周期(传输数据 的周期)
PWRITE:指示读写
PRDATA:读得的数据
PWDATA:写入的数据
状态机
SETUP状态:当检测到需要进行数据传输时,进入setup状态,选通所需的PSELx信号。总线永远只会在setup状态停留一个时钟周期,下一个时钟上升沿总是转移到ENABLE状态。
ENABLE状态:在该状态下,PENABLE会拉高,setup状态时总线上的PADDR,PWRITE,PSELx信号会在enable状态保持不变。总线也只会在enable状态停留一个时钟周期,随后根据是否还有数据传输,转移到SETUp状态或IDLE状态。
时序
读时序:T2和T3分别对应了读时序下SETUP状态和ENABLE状态的开始。其中地址,片选,读写信号在两个状态保持不变,penable信号仅在ENABLE状态拉高,同时读得的数据也是在ENABLE状态下出现在总线上。由于总线要求slave在ENABLE状态中提供数据,为了得到稳定数据,需要在ENABLE状态结束时的时钟上升沿对读出数据进行采样。
写时序:注意在ENABLE状态结束时,PSELx信号和PENABLE信号都需要拉低,除非紧接着要进入的是对同一个slave的写操作。如果是这样,PSEL信号可以保持不变,但PENABLE信号还是需要拉低。
为了节能,地址和写信号可以在本次传输结束和下一次传输开始前保持不变。