- bxCAN 주요기능 소개 - interrupts2024년 10월 08일 07시 44분 51초에 업로드 된 글입니다.작성자: IIIIIIIIIIIIIIIIIIIIl
bxCAN에는 4개의 인터럽트 벡터가 있으며 각 인터럽트 소스는 CAN Interrupt Enable 레지스터(CAN_IER)를 통해 독립적으로 활성화하거나 비활성화할 수 있습니다. 전송 인터럽트는 전송 메일박스가 비었을 때 각각 CAN_TSR 레지스터의 RQCP0, RQCP1, RQCP2 비트가 설정되면서 발생합니다. FIFO 0 인터럽트는 새로운 메시지를 수신할 때 FMP0 비트가 '00'이 아닐 경우 발생하며 FIFO0가 가득 차면 FULL0 비트가 오버런 상태가 되면 FOVR0 비트가 설정됩니다. FIFO 1 인터럽트는 새로운 메시지를 수신할 때 FMP1 비트가 '00'이 아닐 경우 발생하고 FIFO1가 가득 차면 FULL1 비트가 오버런 상태가 되면 FOVR1 비트가 설정됩니다. 마지막으로 오류 및 상태 변경 인터럽트는 오류 조건이 발생할 때 CAN Error Status 레지스터(CAN_ESR)를 참조하여 발생합니다.
Transmit InterruptTransmit Interrupt는 송신과 관련된 특정 이벤트가 발생했을 때 활성화되는 인터럽트입니다. 이 인터럽트는 송신 메일박스가 비어 있을 때 발생하며 CAN_TSR 레지스터의 RQCP[0-2] bit를 설정하여 인터럽트를 발생시킬 수 있습니다.
FIFO0, FIFO1 Interrupt
FIFO0 및 FIFO1 Interrupt는 메시지 수신과 관련된 이벤트가 발생할 때 활성화되는 인터럽트입니다. 각각의 FIFO는 메시지를 수신하는 버퍼로 사용되며 CAN_RFxR 레지스터의 FMP bit를 설정하여 인터럽트를 발생시킵니다.
Status Change Error Interrupt
Status Change Error Interrupt는 오류 상태나 CAN 버스의 상태 변화와 관련된 이벤트가 발생할 때 활성화되는 인터럽트입니다.
참고자료
'네트워크 > CAN 프로토콜' 카테고리의 다른 글
제조사별 CAN 모듈 소개 (0) 2024.10.04 CAN 통신을 이루는 하드웨어 (CAN Controller & CAN Transceiver) (0) 2024.10.04 CAN 2.0A (Standard Format) VS CAN 2.0B (Extended Format) (0) 2024.09.19 CAN 프로토콜 개요 (0) 2024.09.18 다음글이 없습니다.이전글이 없습니다.댓글