*All photos and content in this article are copyrighted by Arm Ltd.
This is a personal compilation for students and practitioners entering digital design. Content may be removed or modified at any time at the request of the copyright holder, Arm Ltd.
Copyright © 2003-2023 Arm Ltd. All rights reserved.
AMBA APB SPEC
ARM 홈페이지에서 다운로드하실 수 있습니다. 아래 이미지를 누르면 다운로드 가능한 ARM 공식 홈페이지로 이동합니다.
APB Revisions
APB Specification Rev E
AMBA 2 APB Specification (Issue A)
AMBA 3 APB Specification (Issue B)
- wait states (PREADY)
- Error response (PSLVERR)
AMBA APB4 Specification (Issue C)
- Transaction protection (PPROT)
- Sparse data transfer (PSTRB)
AMBA APB5 Specification (Issue D)
- Wakeup signaling
- User signaling
- Parity protection and check signals
AMBA APB5 Specification (Issue E)
- Realm Management Extension (RME) support
AMBA APB protocol이란?
AMBA는 Advanced Microcontroller Bus Architeture, APB는 Advanced Peripheral Bus의 약자입니다.
최소한의 전력 소모와 간소화된 인터페이스 복잡성에 최적화된 저비용 인터페이스입니다. 뜻 그대로 Peripheral 주변기기들을 컨트롤할 때 주로 사용되는 인터페이스입니다. APB 인터페이스는 동기식이며, piplined 되지 않고 간단합니다. 모든 전송은 최소 두 사이클을 필요로 합니다. APB 인터페이스는 주변 장치의 프로그래밍 가능한 제어 레지스터에 접근하기 위해 설계되었습니다. APB 주변 장치들은 일반적으로 APB 브리지를 사용하여 주 메모리 시스템에 연결됩니다. 예를 들어, AXI에서 APB로의 브리지를 사용하여 APB 주변 장치들을 AXI 메모리 시스템에 연결할 수 있습니다.
읽기 데이터와 쓰기 데이터 버스에는 개별적인 handshake 신호가 없으므로 데이터 전송이 동시에 이루어질 수 없습니다.
AMBA APB Signals
주요 신호
Signal | Source | Width | Description |
PCLK | Clock | 1 | Clock. APB 신호는 PCLK의 상승엣지 타이밍에 맞춰 작동됩니다. |
PRESETn | System bus reset | 1 | Reset. active-Low입니다. |
PADDR | Requester(Master) | ADDR_WIDTH | Address. APB의 주소 버스입니다. 최대 32비트까지 지원합니다. |
PSELx | Requester(Master) | 1 | Select. APB Completer(Slave)를 선택하는 신호입니다. 'x'의 갯의 Completer(Slave) 중 데이터 전송을 하고자 하는 Completer(Slave)를 선택할때 쓰입니다. |
PENABLE | Requester(Master) | 1 | Enable. |
PWRITE | Requester(Master) | 1 | Direction. Write은 High(1), READ는 Low(0) |
PWDATA | Requester(Master) | DATA_WIDTH | Write data. PWRITE이 High(1)일때, wirte data를 전송합니다. |
PRDATA | Completer(Slave) | DATA_WIDTH | Read data. PWRITE이 Low(1)일때, read data를 전송합니다. |
PREADY | Completer(Slave) | 1 | Ready. High(1)일때, Completer(Slave)가 준비됬음을 알립니다. Low(0)일때, 전송을 연장합니다. |
옵션(선택) 신호
Signal | Source | Width | Description |
PSLVERR | Completer(Slave) | 1 | Transfer error. 옵션이며, High(1)일때, Completer(Slave)가 오류상태임을 알립니다. |
PPROT | Requester(Master) | 3 | Protection type. normal, privileged, or secure protection level를 나타냅니다. transaction이 data access인지 instruction(명령어) access인지 나타냅니다. |
PNSE | Requester(Master) | 1 | Extension to protection type. |
PSTRB | Requester(Master) | DATA_WIDTH/8 | Write strobe. PSTRB는 쓰기 전송 중에 업데이트할 byte lanes을 지정합니다. write data bus의 8비트마다 하나의 write strobe가 있습니다 읽기 전송 중에는 PSTRB가 활성화(High)되어서는 안 됩니다. |
PWAKEUP | Requester(Master) | 1 | Wake-up. |
PAUSER | Requester(Master) | USER_REQ_WIDTH | User request attribute. 권장 최대 너비는 128bits입니다. |
PWUSER | Requester(Master) | USER_REQ_WIDTH | User write data attribute. 권장 최대 너비는 DATA_WIDTH/2 입니다. |
PRUSER | Completer(Slave) | USER_REQ_WIDTH | User read data attribute. 권장 최대 너비는 DATA_WIDTH/2 입니다. |
PBUSER | Completer(Slave) | USER_REQ_WIDTH | User response attribute. 권장 최대 너비는 16bits입니다. |
AMBA APB Basic transfers
Basic Write transfers
T1~T2
PSEL (HIGH)
PENABLE (LOW)
PADDR (ADDR)
PWDATA (WDATA)
T2~T3
PENABLE (LOW >> HIGH)
PREADY (HIGH)
T3~T4
ADDR에 WDATA 쓰기 수행
기본적인 쓰기 transfer입니다. 2 사이클이 소모됩니다. 만약에 PREADY신호가 T2~T3사이에 어설트(High)되지 않으면 APB신호들은 바뀌지 않고 대기합니다. 아래 그림을 참고바랍니다.
Basic Read transfers
T1~T2
PSEL (HIGH)
PENABLE (LOW)
PADDR (ADDR)
T2~T3
PENABLE (LOW >> HIGH)
PREADY (HIGH)
ADDR에 해당하는 DATA를 PRDATA로 출력(읽기 수행)
기본적인 읽기 transfer입니다. 2 사이클이 소모됩니다. 만약에 PREADY신호가 T2~T3사이에 어설트(High)되지 않으면 APB신호들은 바뀌지 않고 대기합니다. 아래 그림을 참고바랍니다.
Operating states
IDLE
APB protocol의 기본상태입니다. 한국어로는 유후상태라고 합니다.
SETUP
Transfer(전송)이 필요한 경우 setup으로 이동합니다. 해당 상태에는 PSELx = 1(High), PENABLE = 0(Low) 됩니다.
ACCESS
PENABLE = 1(High) 어설트됩니다.
PREADY가 0(Low)인 경우 Access 상태를 유지 PREADY가 1(HIGH)인 경우 다음 Transfer(전송)이 있으면 Setup으로 다음 Transfer(전송)이 없으면 IDLE로 이동합니다.
결론
AMBA APB에 대하여 알아보고 주요신호와 기본적인 읽기 쓰기 Transfer에 대하여 알아보았습니다. 여기서 알아본 내용은 APB에 대한 기본적인 내용입니다. 꼭 숙지하시는걸 추천드립니다. 추가로 옵션(선택)신호와 관련된 내용이 필요하신분은 ARM에서 제공하는 공식 SPEC문서에 자세히 설명되어있습니다. 실제 실무에서 APB의 옵션(선택)신호들을 모두 사용하는 경우가 많지는 않습니다. 필요에 따라 사용합니다.
'Knowledge > Protocol' 카테고리의 다른 글
CSMA/CA + AMP이란? (0) | 2024.11.01 |
---|---|
[AXI] AMBA AXI이란? (0) | 2023.07.22 |
Jamming signal이란? (0) | 2023.07.10 |
CSMA/CD란? (0) | 2023.07.10 |
[Ethernet] Auto-Negotiation이란? (0) | 2023.07.04 |