본문 바로가기

CAN7

03. CAN 메시지 구조 CAN 프레임이란 CAN 프레임은 서로 다른 노드가 CAN 네트워크를 통해 전송되는 데이터 단위입니다. 노드가 전송하는 메시지의 구조라 볼 수 있습니다. CAN 프레임에는 메시지 ID, 데이터, 데이터 유효성을 검증하기 위한 CRC 등이 들어갑니다. CAN 프레임은 크게 표준(Standard) 포맷(버전 2.0A)과 확장(Extended) 포맷(버전 2.0B)으로 나눌 수 있습니다. 표준 포맷은 메시지 ID의 길이가 11bit로 최대 2048개의 메시지 ID를 가질 수 있습니다. 2048개의 메시지가 충분하지 않은 경우 확장포맷을 사용하면 됩니다. 확장 포맷은 메시지의 길이가 29 bit로 2의 29승 개의 메시지 ID를 가질 수 있습니다. CAN 프레임 종류 CAN 프레임에 종류로는 데이터 전송에 사용.. 2023. 4. 5.
02. CAN의 버스 접근 방법 CAN Bus Access CAN은 공용의 선인 버스를 이용하여 통신하는 버스 네트워킹 방식을 사용합니다. CAN 통신은 하나의 버스를 여러 개의 노드(제어기)가 공유하기 때문에 버스에 접근하는 규칙이 필요합니다. 2개 이상의 제어기가 버스를 이용하여 메시지를 보내려할 때 어떤 메시지를 전송할지 결정되어야 합니다. CAN Bus Access Rules 먼저, 버스를 이용하여 메시지를 보내려는 노드는 버스가 사용중인지 확입합니다. 그리고 버스가 사용중이지 않은 IDLE 상태가 될 때까지 기다립니다. IDLE 상태 여부는 버스에 11 bit 연속으로 1이 나왔는지로 판단할 수 있습니다. 버스에 11bit 연속으로 1(Recessive bit)이 나오면 아무도 버스를 사용하지 않고 있는 IDLE 상태입니다. .. 2023. 4. 2.
01. CAN 통신이란? CAN 통신 개요 CAN 통신 배경 CAN (Controller Area Network)은 차량에 들어가는 제어기(Controller) 간 통신을 위해 개발되었습니다. 제어기는 차량에 들어가는 전자 장치를 제어하기 위한 소형 컴퓨터입니다. 자동차에 전자제어를 이용한 편의기능이 증가하면서 차량에 들어가는 제어기의 수도 많아졌습니다. 이에 제어기 간 통신의 필요성도 증가하였습니다. CAN은 이러한 필요성에 의해 1983년 보쉬 사에서 만들어졌습니다. 이후에도 여러 차례 CAN 스펙이 나왔고 가장 최신 스펙은 1991년에 개발된 CAN 2.0입니다. CAN은 버스 네트워킹을 사용 CAN 통신은 버스라는 공용 선을 이용하여 통신합니다. 버스 네트워킹을 사용함으로써 전선의 양을 줄일 수 있고 네트워크에 제어기 추가 및 제거하기 쉽.. 2023. 4. 1.
CAPL 시그널 읽고 쓰는 방법 CAPL에서 시그널 값을 읽거나 쓰려면 $를 사용하면 됩니다. 예를 들어 sigSpeed라는 시그널 값을 읽으려면 다음과 같이 작성합니다. double speed; speed =$sigSpeed;// speed = getSignal(sigSpeed); 혹은 getSignal()을 사용하여도 값을 읽어 올 수 있습니다. 시그널에 값을 쓸 때도 마찬가지로 $를 사용하면 됩니다. $sigSpeed = 110.2;// setSignal(sigSpeed, 110.2); setSignal()을 사용하여 값을 쓸 수 있습니다. 시그널 이름은 중복될 수 있기 때문에 이름이 중복되는 경우는 ::를 사용하여 메시지와 노드를 적어줘야 합니다. 예를 들어, sigSpeed가 msgA에도 있고 msgB에도 있는 경우 다음과 같.. 2023. 4. 1.
CAPL 연산자 정리 CAPL Operator는 대부분 C 언어의 Operator와 유사합니다. CAPL에는 다음과 같은 Operator를 지원합니다. Operator Description Example + - Addition, subtraction * / Multiplication, division ++ -- Increment or decrement by 1 a++; // increments a by 1 % Modulo division (returns integer remainder of a division) a = 4 % 3; // a is 1 = Greater than; greater than or equal to returns TRUE or FALSE == != Compare for equality or inequal.. 2023. 3. 30.
CAPL 이벤트 종류 CAPL (Communication Access Programming Language)이란? CAPL은 CAN 네트워크를 제어하고 시뮬레이션하는 데 사용되는 스크립트 언어입니다.이를 활용하여 CAN 신호 생성, 버스 노드 시뮬레이션 등을 할 수 있습니다. CAPL은 Event-driven 방식으로 동작하여 주요 이벤트가 발생했을 때 이를 처리하는 방식으로 사용됩니다. CAPL이 제공하는 주요 이벤트는 다음과 같습니다. CAPL 이벤트 종류 Start of measurement 프로그램 시작 시 자동으로 실행되는 이벤트 변수 초기화 환경 셋업 등에 많이 사용됨 on start { write("Start CANoe\n"); } Message received 대상 메시지가 들어왔을 때 아래 예시는 0x123 .. 2023. 3. 29.