본문 바로가기

자동차 임베디드 SW118

vector Hexview 개요 vector에서 제공하는 툴중에 Hexview라는 프로그램이 있다. 정식으로 돈 받고 따로 파는 sw라기보다는 다른 sw 구매할때 같이 들어있는 경우가 있음. 제일 기본적인 기능은 .hex 열어서 보여주는 기능임. 이것 외에도 여러가지 유용한 기능들이 있다. hex파일 상에 어드레스 빈 공간을 특정패턴으로 채워주는 기능 (fill) (이 기능을 사용해서 hex파일 내부에서 띄엄띄엄 떨어져있는 블록들을 하나의 블록으로 합칠 수 있음) 특정 사이즈의 오프셋만큼 옮기는 기능 ex)0번지부터 100번지까지 쓰여져있던 데이터를 데이터는 그대로인데 어드레스만 400~500번지로 이동 영역지정해서 해당 영역에 해당되는 crc값 출력 여러개의 hex 파일을 하나로 합치기(merge) hex 파일의 내용을 c파일에 ar.. 2023. 1. 6.
신입사원을 위한 UDS 진단통신 개요 알아보기 오늘날의 자동차 안에는 수많은 전자 장치가 들어간다. 그리고 각각의 전자장치들을 컨트롤하는 작은 컴퓨터가 있는데, 자동차업계에서는 이 작은 컴퓨터를 제어기라고 부른다.조향 제어기, 제동제어기, 에어백 제어기 등등.. 각각의 장치마다 그 장치를 컨트롤하는 제어기가 자동차 속에 들어있다. 이러한 제어기는 보통 임베디드(embedded) 제어기 라고 불리는데, 임베디드라는 단어의 뜻은 '내장된' 이라는 뜻이다. 임베디드 제어기 = 내장된 제어기 차량용 임베디드 제어기 = 자동차 속에 내장된 제어기 라고 생각하면 된다. 오늘날의 자동차안에는 이러한 임베디드 제어기가 수십개가 들어가있다. 그런데 우리가 자동차를 타면서 이런 제어기를 본적이 있는가? 없을 것이다. 왜냐면.. 내장(embedded) 돼있으니까!임베디.. 2022. 12. 7.
Autosar DEM 모듈 개요 제어기의 고장 진단과 관련된 기능을 제공하는 모듈이다. UDS나 OBD 같은 진단통신과 연관이 깊다. DEM Event 각각의 고장을 Dem Event 라고 정의한다. 예를 들어 배터리 고전압, 배터리 저전압, 캔버스오프 라는 3개의 고장이 있다면 dem에 3개의 event를 정의하는 것이다. 각 event는 여러가지 파라미터를 갖는다. Operation Cycle 해당 이벤트에 설정된 operation cycle을 활성화시킨 상태에서만 이벤트에 대한 명령들이 유효하게 된다. operation cycle을 활성화(시작)하는 방법은 SetOperationCycle 함수를 사용하면 된다. DTC 매핑 각 Event는 DTC에 매핑될 수 있다. Event와 DTC는 N:1 관계이다. Freeze Frame F.. 2022. 11. 29.
E2E 프로토콜 개요 E2E 차량 통신 E2E 자동차 통신 E2E란 무엇인가 결론부터 요약하면 기억해야할 용어는 4가지이다. CRC. Counter. Profile. Data ID 설명 시작 E2E는 End To End communication protection 의 약자인데 여기서 END란 하나의 제어기 어플리케이션을 의미한다. 제어기와 제어기 간 메세지를 주고 받을때, 메세지 전송과정에서 데이터변조, 같은 메세지 반복 , 메세지 누락, 메세지순서 변경 등을 감지할 수 있는 로직을 정의한 것이 E2E Protocol이다. E2E Protocol 의 핵심 용어는 CRC와 Counter이다. CRC는 데이터통신에서 일반적으로 널리 쓰이는 그 CRC이다. 데이터 변조를 감지하는 기능을 제공한다. (Cyclic Redundancy.. 2022. 10. 27.
ccp 와 xcp 개요 차량제어기를 개발하는 과정에서 sw가 정상적으로 실행되고 있는지를 확인하기 위하여 sw가 실행중인 상태에서 변수의 값을 확인하는 경우가 있다. 또는 개발과정에서 특정 변수의 값을 우리가 임의로 변경해야하는 경우도 있다. pc로 sw를 개발할때는 중간중간에 print함수를 찍어서 변수 값을 확인할 수도 있고 혹은 디버깅 모드를 사용해서 변수값을 확인 할 수 있다. 하지만 차량제어기는 pc와 달리 개발하는 환경과 개발된 sw가 실행되는 환경이 다르다. sw 개발은 pc에서 하지만 개발된 sw는 차량제어기에서 실행이된다. 우리는 제어기상에서 실행중인 sw의 변수값을 확인하거나 조작하고 싶은데 우리 제어기에는 컴퓨터나 마우스가 없어서 이를 확인할 방법이 없다. 그래서 별도의 디버깅 장비(디버거)를 제어기에 연결.. 2022. 10. 8.
INCA.CANape.CANoe 라이센스 정책 자동차업계 CCP, XCP 관련 시뮬레이션 툴로 대표적인 것이 ETAS의 INCA VECTOR의 CANAPE가 있다. CANoe는 XCP에 특화된건 아니고 캔통신관련 전반적으로 강력한 기능 제공 INCA와 CANAPE와 CANOE는 모두 PC에서 실행되는 SW의 이름이다. 이 SW 를 사용하려면 별도의 Hw 장비가 필요하다. INCA는 ES58XX (Ex. 582.1 581.4) Canoe, Canape는 VNZXXX (Ex. Vn1640) 인카의 sw 라이센스는 PC의 MAC 주소 기반이다. 인카 sw 구매하면 인카 사용하려는 컴퓨터의 mac 주소를 바탕으로 라이센스 파일 발급해준다. 해당 mac 주소를 갖고 있는 pc에서 INCA 실행 후 상단에 Utility 메뉴에서 라이센스 매니저를 켠다. 그러고.. 2022. 10. 6.
이슈.오토사 can 메세지 송신 누락 오토사 프로젝트에 periodic 캔 메세지가 전송되도록 기능구현을 완료했다. 근데 원래 보내야할 메세지가 30개인데 10여개의 메세지만 전송되는 현상이 있었다. 참고로 tx confirm은 폴링 방식으로 하였다. 이게 정확하게 어떤 메커니즘으로 이런현상이 발생한건지 아직 명확하게 파악을 못했는데 해결책은 can_mainfunction_Write 의 주기를 빠르게 하는 것이었다. 근데 내가 전송해야하는 메세지 중에 주기가 제일 빠른게 10ms였고, can mainfunction 주기는 5ms 니까 내 생각엔 별 문제가 없다고 생각했는데 어쨋거나 메인펑션 주기를 1ms로 줄였더니 누락되어 전송되지않던 메세지들이 정상적으로 송신되었다. 2022. 10. 5.
이슈- Aurix 트레소스 Can Clock Enable하기 신규보드에 can 통신을 뚫고 있는데 아무리 봐도 셋팅을 잘못한게 없는데 Comm 모듈에 Full communication 요청을해도 Full Communication으로 진입을 하지 않았다. det를 켜보니 init function도 아니고 특이하게도 can sm mainfunction에서 det가 발생하고 있었다. 그 내용을 보니 can controller를 enable 시켜놓고 컨트롤러가 정상적으로 동작 가능할 때까지 기다리는 부분인데 그 쪽에서 타임아웃이 자꾸 나는거다. 내가 의문이었던건 캔 컨트롤러 enable을 왜 can_init 함수가 아니라 can sm mainfunction에서 호출하느냐였다. 그래서 지금 뭐하는 상황인건지 이해가 안됐다. 알고보니까 mcal can 모듈은 can_init.. 2022. 10. 4.
이슈 - Autosar OS Error E_OS_DISABLEDINT 커뮤니케이션 관련 Driver Init 작업중에 OS의 Error Hook이 발생하였다. 에러의 종류는 "E_OS_DISABEDINT" 이 에러가 무엇인지는 오토사 문서에 나와있는데 A Service of the OS is called insied an interrupt disable/enable pair. 해석하자면, OS의 Service Function은 OS System Timer 인터럽트가 Enable이 되어있는 상태에서 호출되어야 한다. 그런데 인터럽트를 disable 한 상태에서 OS Service를 호출하면 에러 훅이 발생하고 ,그 때의 에러타입이 E_OS_DISABLEDINT 이다. 이 에러가 발생한 연유를 알아보니.. 오토사 모듈들은 각각 Exclusive Area라는 것이 있는데(없는 .. 2022. 9. 30.