본문 바로가기

분류 전체보기85

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.
CAN database(*.dbc) 만드는 방법 1. 데이터 베이스 생성 템플릿을 선택하여 CAN 데이터베이스(.dbc)를 생성 일반적으로 Vector IL basic template 선택하면 됨 2. signal 정의 Symbolic name, bit 수, type (Intel or Motorola), factor, offset 등 정의 3. network node(제어기) 정의 4. message 정의 Symbolic name, DLC, ID, sending node 정의 5. signal을 message에 할당 6. signal의 positioning 확인 (Start bit, Layout) 7. Rx signal 맵핑 8. 데이터베이스 저장 2023. 3. 29.
[UML] 액티비티 다이어그램 (Activity Diagram) 액티비티 다이어그램이란? 프로그램의 작업 흐름을 보여주기 위한 다이어그램 요구사항을 설계로 옮기기 위한 첫 번째 단계로 사용 자연어의 모호함을 제거하고 유스케이스 상세기술을 시각화 시작 - 액션 - 종료 시작점에서 시작하여 액션을 거쳐 종료 액션은 내부적으로 많은 상호작용을 포함하고 있지만 초기 단계에서는 세부 액션을 구현하지 않음 Decision/Merge 노드 각각의 조건에 따르는 흐름을 표현 2개 이상의 흐름으로 분할 가능 병합 시 들어오는 흐름 중 하나라도 활성화 되면 나가는 흐름이 활성화 Fork/Join 노드 병행 처리 가능한 여러 흐름을 만들어냄 모든 흐름은 동시에 진행 Join 노드의 경우 동기적 Join 노드로 들어오는 모든 흐름이 활성화 되야 나가는 흐름이 활성화됨 Swimlan(파티션.. 2023. 3. 18.