- [ 네트워크/STMicroelectronics bxCAN ]CAN control and status registers - CAN transmit status register (CAN_TSR)2024-10-11 13:11:34CAN Transmit Status Register(CAN_TSR)는 송신 메일박스의 상태를 모니터링하는 데 사용되는 레지스터로 송신 메일박스의 상태 및 오류를 확인하는 데 필요한 다양한 플래그와 정보를 포함하고 있습니다. 주요 필드와 기능은 다음과 같습니다. LOW2, LOW1, LOW0:여러 메일박스가 대기 중일 때 최저 우선 순위 메일박스를 나타내는 비트로 단일 메일박스가 대기 중이면 이 비트들은 0으로 설정됩니다. TME2, TME1, TME0:해당 메일박스가 비어 있음을 나타내는 비트로 각각의 비트는 해당 메일박스(0, 1, 2)가 전송 요청을 대기하고 있지 않음을 나타냅니다. 즉 송신이 비어 있는 경우에 설정됩니다.CODE:비어 있는 메일박스의 번호를 나타내거나 최저 우선 순위 메일박스 번호를..
- [ 네트워크/STMicroelectronics bxCAN ]CAN control and status registers - CAN master status register (CAN_MSR)2024-10-11 13:11:24CAN Master Status Register (CAN_MSR)는 CAN 모듈의 상태를 모니터링하고 다양한 제어 정보를 제공하는 레지스터로 CAN 모듈의 상태를 실시간으로 파악하는 데 유용하며 슬립 모드 및 초기화 모드의 전환 상태를 관리합니다. 주요 필드와 기능은 다음과 같습니다. RX (Receive Signal):CAN_RX 핀의 실제 수신 신호 값을 모니터링합니다. 비트가 1로 설정되면 CAN 하드웨어가 수신 데이터를 받고 있음을 나타냅니다.SAMP (Last Sample Point):SAMP 비트는 CAN 통신에서 마지막으로 읽은 수신 데이터의 상태를 나타내며 이를 통해 수신된 비트가 정확한지 확인하고 데이터의 신뢰성을 높이는 데 도움을 줍니다.RXM (Receive Mode):CAN 하드웨어..
- [ 네트워크/STMicroelectronics bxCAN ]CAN control and status registers - CAN master control register (CAN_MCR)2024-10-11 13:11:15CAN master control register(CAN_MCR)는 CAN의 작업 모드를 관리하며 다양한 레지스터 비트를 통해 제어 기능을 수행하는 레지스터로 CAN 모듈의 초기화, 동작 모드, 시간 설정 등의 기능을 포함하고 있습니다. 주요 필드와 기능은 다음과 같습니다.DBF (Debug Freeze):디버깅 모드에서 CAN의 송수신을 일시적으로 중지하는 용도로 사용됩니다. 비트가 1로 설정되면 CAN의 송수신은 멈추지만 수신 FIFO의 데이터는 정상적으로 접근하고 제어할 수 있습니다. 비트가 0으로 설정되면 CAN은 디버깅 중에도 정상적으로 작동합니다.TTCM (Time Triggered Communication Mode):CAN의 시간 기반 통신을 설정하는 데 사용됩니다. 이 모드에서는 내부 타이..
- [ 네트워크/CAN 프로토콜 ]bxCAN 주요기능 소개 - interrupts2024-10-08 07:44:51bxCAN에는 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 비트가 설정됩니다. 마지막으로 오류..
- [ 네트워크/STMicroelectronics bxCAN ]bxCAN 주요기능 소개 - Error management2024-10-08 07:44:43Error management는 Transmit Error Counter(TEC)와 Receive Error Counter(REC)를 사용합니다. 해당 값들은 오류 상태에 따라 증가하거나 감소하며 각각 CAN_ESR 레지스터에 저장됩니다. 소프트웨어는 TEC REC 값을 읽어 오류 여부를 판단할 수 있습니다. 그리고 하드웨어는 현재 오류 상태에 대한 자세한 정보를 CAN_ESR 레지스터에 제공합니다.Transmit Error Counter (TEC) : 송신 오류의 수를 나타내며 송신 중 발생한 오류가 증가할 때마다 카운터 값이 증가합니다. 이 카운터는 송신이 성공적으로 이루어지면 감소할 수 있습니다. TEC 값이 특정 임계치를 초과하면 CAN 모듈은 오류 상태로 진입할 수 있으며 이를 통해 소프트웨어..
- [ 네트워크/STMicroelectronics bxCAN ]bxCAN 주요기능 소개 - Message storage2024-10-07 13:33:37CAN 메시지와 소프트웨어 간의 인터페이스는 mailbox라는 개념을 통해 구현됩니다. CAN mailbox는 메시지를 저장하고 관리하는 데이터 구조로 각 mailbox는 메시지와 관련된 모든 정보를 포함하며 identifier, data, control, status and time stamp information 등과 같은 정보들이 포함됩니다. 우리가 일반적으로 사용하는 Gmail과 같은 이메일과 비슷한 개념이라고 생각하면 이해하기 쉽습니다.Transmit mailbox소프트웨어는 전송할 메시지를 비어있는 transmit mailbox에 설정을 진행하는 데 이때 identifier, data, control, status and time stamp information 등과 같은 제어 정보가 포함됩..
- [ 네트워크/STMicroelectronics bxCAN ]bxCAN 주요기능 소개 - Identifier filtering2024-10-07 13:33:31CAN 프로토콜에서 메시지의 identifier는 내용에 따라 결정되며 송신자는 메시지를 모든 수신자에게 broadcasts됩니다.. 수신자는 identifier에 따라 메시지를 필요로 하는지 판단하고 필요하면 SRAM에 저장합니다. bxCAN Controller는 28개의 filter banks를 제공하여 hardware filtering을 통해 CPU 자원을 절약합니다. 각 filter bank는 두 개의 32-bit registers로 구성됩니다. filter banks에 저장된 값은 작동 비트 폭을 설정할 수 있습니다. 32비트 필터 또는 16비트 필터를 사용할 수 있으며 이는 각 filter banks마다 독립적으로 설정할 수 있습니다. 따라서 CAN 프로토콜에서 메시지 ID는 노드의 주소와는 ..
- [ 네트워크/STMicroelectronics bxCAN ]bxCAN 주요기능 소개 - Transmission handling, Time triggered communication mode, Reception handling2024-10-07 13:33:21Transmission handlingCAN 메시지를 전송하려면 애플리케이션이 빈 전송 메일박스를 선택하고 식별자, 데이터 길이 코드(DLC), 데이터를 설정한 후 CAN_TIxR 레지스터의 TXRQ 비트를 설정해야 합니다. TXRQ 비트 설정 후 메일박스는 대기 상태로 들어가고 가장 높은 우선 순위를 갖게 되면 전송이 시작됩니다. 전송이 완료되면 메일박스는 다시 빈 상태가 되며 성공적인 전송은 CAN_TSR 레지스터의 RQCP 및 TXOK 비트로 표시됩니다. 전송 실패 시 원인은 ALST 비트(중재 손실) 또는 TERR 비트(전송 오류 감지)로 나타납니다. Transmit prioritydescription By identifier여러 개의 전송 메일박스가 대기 중일 때 전송 순서는 메일박스에 저장된 ..
- [ 네트워크/STMicroelectronics bxCAN ]STMicroelectronics bxCAN 소개2024-10-06 18:29:09bxCAN이란?다양한 제조사에서 만들고 있는 다양한 CAN 모듈이 존재하지만 저비용, 일반 유저가 접근하기 쉬운 STM32 bxCAN 모듈을 대상으로 주요 기능을 다루도록 하겠습니다. 다른 제조사에서 만든 모듈의 경우에도 유사한 구조를 나타내고 있어 하나의 모듈만 잘 이해하여도 다른 제조사에서 만든 CAN 모듈을 이해할 수 있습니다. STM32 칩에서 CAN 통신을 지원하는 칩의 경우 bxCAN 컨트롤러가 마이크로컨트롤러에 내장되어 있으며 CAN 프로토콜 2.0A와 2.0B 표준을 지원합니다. 최대 통신 속도 1 Mb/s를 지원하며 표준 ID와 확장 ID를 사용하는 메시지를 모두 지원하며 3개의 전송 메일박스를 갖추고 있어 전송 메시지의 우선 순위를 소프트웨어로 제어할 수 있습니다. 수신 측면에서는 수신..
- [ 네트워크/CAN 프로토콜 ]제조사별 CAN 모듈 소개2024-10-04 12:36:38주요 차량용 반도체를 생산하는 제조업체로는 Infineon, NXP, STMicroelectronics, TI, Renesas 등이 있습니다. 따라서 다양한 마이크로컨트롤러가 존재하고 서로 다른 이름으로 참조되는 CAN 컨트롤러가 존재합니다. 모든 CAN 컨트롤러 제조업체는 표준에서 요구하는 동일한 기능을 보장하지만 CAN 주변 장치의 실제 구현은 제조업체에 따라 다릅니다. NXP에서는 생산한 MCU에서는 FlexCAN 컨트롤러라고 하며 Infineon Technologies에서 생산한 MCU에서는 MCMCAN 컨트롤러로 표현됩니다. STMicroelectronics에서 생산한 MCU에서는 bxCAN(Basic Extended CAN) 컨트롤러로 표현됩니다. 각 MCU에는 해당 CAN 컨트롤러에서 여러 ..