APB Read Transfer 과정
1. Setup 단계
- 읽기 전송을 시작하기 위한 초기 설정 단계입니다. 마스터가 슬레이브에게 접근할 주소를 지정하고 읽기 명령을 설정합니다.
- 신호:
- PADDR: 마스터가 읽고자 하는 슬레이브의 레지스터 주소를 설정합니다.
- PSEL: 마스터는 특정 슬레이브를 선택하기 위해 PSEL 신호를 활성화합니다. 슬레이브는 이 신호가 활성화되면 자신이 선택되었음을 인지합니다.
- PWRITE: 읽기 동작이므로 PWRITE 신호는 0으로 설정됩니다. 이 신호는 쓰기(1) 또는 읽기(0) 동작을 결정합니다.
2. Access 단계
- Access 단계는 트랜잭션이 유효해지며, 실제로 데이터가 슬레이브에서 마스터로 전송되는 단계입니다. 마스터는 PENABLE 신호를 활성화하고, 슬레이브는 요청된 데이터를 PRDATA 버스를 통해 마스터에게 전달합니다.
- 신호:
- PENABLE: 마스터는 트랜잭션을 진행하기 위해 PENABLE 신호를 활성화합니다.
- PRDATA: 슬레이브는 마스터가 요청한 주소의 데이터를 PRDATA 버스를 통해 전송합니다.
- PREADY: 슬레이브는 PREADY 신호를 통해 마스터에게 데이터를 준비했음을 알립니다. 이 신호가 1일 때 마스터는 데이터를 읽을 수 있습니다.
3. Completion 단계
- 트랜잭션이 완료되면 마스터는 트랜잭션을 종료하고 슬레이브는 데이터를 성공적으로 전송했음을 확인합니다.
- 신호:
- PENABLE: 마스터는 트랜잭션이 종료되었음을 알리기 위해 PENABLE 신호를 비활성화(0)합니다.
- PSEL: 마스터는 슬레이브 선택을 해제하기 위해 PSEL 신호를 비활성화합니다.
- PREADY: 슬레이브가 준비 상태에서 벗어나면 PREADY 신호를 비활성화할 수 있습니다.
APB Read Transfer 신호 타이밍 요약
- Cycle 1 (Setup 단계):
- PADDR: 마스터가 읽고자 하는 슬레이브 주소를 설정.
- PSEL: 슬레이브 선택 신호가 활성화됨.
- PWRITE: 읽기 작업이므로 0으로 설정.
- Cycle 2 (Access 단계):
- PENABLE: 활성화(1)되어 트랜잭션이 시작됨.
- PREADY: 슬레이브가 데이터를 전송할 준비가 완료되면 1이 됨.
- PRDATA: 슬레이브는 해당 주소에서 읽은 데이터를 PRDATA 버스로 마스터에게 전송.
- Cycle 3 (Completion 단계):
- PENABLE: 비활성화(0)되어 트랜잭션이 종료됨.
- PSEL: 비활성화(0), 트랜잭션이 종료되었음을 나타냄.
- PREADY: 슬레이브는 PREADY를 1로 유지하며 전송 완료를 확인함.
APB Read Transfer의 주요 특징
- 단순한 트랜잭션 구조: APB 프로토콜에서의 읽기 동작은 2개의 클럭 사이클을 필요로 합니다. 첫 번째 사이클에서는 주소 설정과 슬레이브 선택이 이루어지고, 두 번째 사이클에서는 데이터 전송이 이루어집니다.
- 비파이프라인 처리: APB는 파이프라인 처리를 지원하지 않기 때문에, 한 번에 하나의 트랜잭션만 처리됩니다. 마스터는 하나의 트랜잭션이 완료된 후에야 다음 트랜잭션을 시작할 수 있습니다.
- 데이터 전송의 단순성: 읽기 전송은 마스터가 슬레이브의 특정 주소에 접근하여 데이터를 읽어오는 방식으로, 슬레이브는 요청된 데이터를 PRDATA 버스를 통해 전송하고, 마스터는 이를 수신하여 처리합니다.
- PREADY 신호의 역할: PREADY 신호는 슬레이브가 데이터를 읽어올 준비가 되었는지를 나타냅니다. 슬레이브가 준비되지 않았다면 PREADY 신호는 0으로 유지되며, 준비가 완료되면 1로 설정됩니다. PREADY가 1이 되면 트랜잭션이 진행됩니다.
* https://verificationforall.wordpress.com/apb-protocol/