AMBA(Advanced Microcontroller Bus Architecture)는 SoC내에서 여러 Block들 사이의 통신을 나타내는 ARM사에서 개발한 프로토콜이다.
APB(Advanced Peripheral Bus)는 AMBA Protocols 중 하나로, 주로 주변 장치와의 통신을 위해 사용된다.
PWRITE신호가 1이면 write, 0이면 read동작을 수행한다.
PSEL신호에 따라 어떤 Slave device가 선택될지 달라진다.
PENABLE과 PREADY가 모두 High일 때 데이터를 write한다.
PENABLE과 PREADY가 모두 High일 때 데이터를 read한다.
IDLE, SETUP, ACCESS 3개의 State가 있으며, PREADY가 0이면 ACCESS State에서 1이 될 때까지 기다린다.
PREADY신호가 1이되면 SETUP 또는 IDLE state로 이동한다.