본문 바로가기

자동차 임베디드 SW/CAN통신 & LIN통신23

CAPL - Dbc 속 메세지들에 접근하기 Dbc에 정의된 모든 메세지에 접근하는건 모르겠고. 특정 노드의 tx, rx 메세지들을 for loop 순회로 접근하는건 가능하다. 예를 들어 프로젝트에 import 된 dbc 파일속에 네트워크이름이 Net_A이고 Node_A 가 정의된 경우 아래와 같이 가능. 이때 네트워크 이름 생략하고 노드이름만 바로 써도 된다. 즉 Net_A::Node_A 가 아니라 그냥 Node_A 라고 써도 됨.message * m; int i, mx; mx=elcount(Net_A::Node_A.Tx); for (i = 0; i < mx; ++i) { m.id=Net_A::Node_A.TX[i]; write(DBLookup(m).Name); } 한편, Node_A.tx[] 의 결과값은 메세지의 id 이다. dblookup 함.. 2024. 1. 25.
차량통신 NM의 개념(Network Management) 차량 내에는 여러개의 제어기가 들어있다. 각 제어기들은 전력소모를 줄이기 위해 필요에 따라 sleep,standby 모드 등의 상태로 진입할 수 있다. (간단히 말해서 제어기 전원 off 한다는 얘기다.) 이것을 shut down 이라고 칭하자. 이때, 서로 연관있는 (서로 동작에 영향을 주는) 제어기들은 독단적으로 shutdown 하지말고, 나를 필요로하는 제어기가 없다는게 확인됐을때만 shutdown하자. 이게 nm의 주요컨셉이다. 이러한 목적을 달성하기 위해서 제어기는 각각 자신이 동작하는 동안 nm 메세지를 송신해서 네트워크에 내가 살아있음을 알린다. 이때 해당 제어기와 연관되는 제어기는 누군가가 nm 메세지를 쏘고있다면 자신의 shutdown 조건을 만족했더라도 셧다운 되면 안된다. 자신의 셧다.. 2023. 12. 4.
uds진단통신 0x27 security access 서비스 개념 특정 서비스, 또는 특정 서브펑션에 lock을 걸어놓는다. 그래서 인증 절차를 통과한 경우에만 해당 동작을 수행시킬 수 있도록 하기 위해서 사용되는게 security access 이다. 예를 들어 ecu reset 서비스는 sid가 0x11이다. 이 서비스에 특별히 lock이 걸려있지 않다면 그냥 곧바로 0x11 서비스를 요청하면 제어기가 응답해서 reset을 수행할 것이다. 근데 lock이 걸려있다면, 이 서비스를 실행하기전에 일단 lock을 푸는 절차를 거쳐야한다. 대강의 절차는 이러하다. 1.진단기가 제어기에게 seed 값을 요청 2.제어기는 seed 값을 보내줌(랜덤값) 3.진단기는 이 seed를 사용해서 지정된 알고리즘을 사용해서 key를 만들어낸다. 이 때, key를 만드는 알고리즘은 비밀이다.. 2023. 11. 1.
J1979 개요 및 obd on uds https://www.vector.com/int/en/products/solutions/diagnostic-standards/obdonuds/ 벡터 홈피 참조 J1979는 OBD-II 표준이다. OBD 통신에서 사용되던 여러가지 서비스들을 Uds통신 기반으로 구현되도록 정의하는 표준이 J1979-2 (obd on uds)이다. 기존 uds통신 구현된 것 건드리지않고 obd 기능 추가로 확장해서 구현하면 된다. J1979-3은 전기차용 obd on uds라 할 수 있다. ZEV On Uds 라고 부른다. Z는 Zero Emission 을 의미함(전기차니까) J1979-2는 J1979-3 을 포함한다. J1979-2 , J1979-3 에서는 3Byte의 DTC를 사용한다. 정확히 말하면 기존 uds에서 사용.. 2023. 8. 28.
진단통신 Snapshot Data, Extended Data Snapshot data : 고장이 발생했을때. 고장 발생 당시의 여러가지 데이터를 Snapshot처럼 찍어서 기록해두는 데이터 ex) 차속, 엔진 RPM, 조향각, 배터리전압 , 배터리 온도 등등 Extended Data : 주로 고장발생과 관련된 통계정보를 담고 있는 데이터 ex) 고장 발생 누적횟수 Snapshot Data에 포함되는 데이터들은 모두 진단통신의 DID를 갖는 데이터로 구성됨 각 DTC(Event) 마다 Snapshot data의 형태를 달리 할 수 있다. 예를 들어 DTC Code1번에 대한 Snapshot Data에는 차속, 배터리 전압 을 저장 DTC Code2번에 대한 Snapshot Data에는 엔진 RPM,배터리온도 를 저장 이런식으로 DTC 마다 매핑되는 Snapshot .. 2023. 8. 2.
capl https://stackoverflow.com/questions/34855312/how-to-use-a-common-variable-in-multiple-files-in-capl-how-to-replace-extern How to use a common variable in multiple files in CAPL (How to replace extern) I wanted to use a variable in 5 main CAN files. I have one include file common for all 5 CAN files. So I defined and declared the variable in this include file. But when I read the value of the var.. 2023. 2. 27.
UDS 진단통신 개요 - 명령 , Positive, Negative 메세지 포멧 UDS 통신 SID의 의미 : 요청하는 서비스가 뭔지 알려주는 용도 NRC 의미 : Negative Response Code의 약자 Negative 응답하는 이유를 알려주는 Code 신입사원을 위한 UDS 진단통신 정복하기 유료강의를 제작하였습니다. 무료 샘플강의도 포함되어있으니 보시면 도움 될 겁니다. https://inf.run/Gpj2 자동차 SW - UDS 진단통신 정복하기 강의 - 인프런자동차SW 직무에서 이야기하는 진단통신이 무엇인지, 진단통신 실무자가 무슨 일을 어떻게 하는 건지 아주 명확하게 이해할 수 있어요! 실무자라면 이 강의를 듣고 나서 바로 실제 스펙 문서를 www.inflearn.com 2023. 2. 23.
UDS 진단통신 TP에 대하여(작성중) ISO 15765-2 - Wikipedia 위키 설명이 젤 나은듯 https://m.blog.naver.com/PostView.naver?blogId=suresofttech&logNo=222850407600&proxyReferer= 참고 설명 TP는 트랜스포트 레이어 프로토콜 약자 UDS 통신(ISO-14229)에서 정의하는 서비스들 중에서 필요한 데이터의 총 길이가 8바이트를 초과하는 경우가 있다. Standard CAN 을 쓸 경우 메세지 하나의 최대 길이가 8Byte이다. 그런데 만약 UDS에서 보내려는 메세지 포맷의 길이가 10byte라면 어떻게 해야할까? 이런 문제를 해결하기 위해 사용하는 프로토콜이 TP 이다. (Transport Layer Protocol) 이때 UDS 통신에서 사용하는 tp.. 2023. 2. 22.
신입사원을 위한 UDS 진단통신 개요 알아보기 오늘날의 자동차 안에는 수많은 전자 장치가 들어간다. 그리고 각각의 전자장치들을 컨트롤하는 작은 컴퓨터가 있는데, 자동차업계에서는 이 작은 컴퓨터를 제어기라고 부른다.조향 제어기, 제동제어기, 에어백 제어기 등등.. 각각의 장치마다 그 장치를 컨트롤하는 제어기가 자동차 속에 들어있다. 이러한 제어기는 보통 임베디드(embedded) 제어기 라고 불리는데, 임베디드라는 단어의 뜻은 '내장된' 이라는 뜻이다. 임베디드 제어기 = 내장된 제어기 차량용 임베디드 제어기 = 자동차 속에 내장된 제어기 라고 생각하면 된다. 오늘날의 자동차안에는 이러한 임베디드 제어기가 수십개가 들어가있다. 그런데 우리가 자동차를 타면서 이런 제어기를 본적이 있는가? 없을 것이다. 왜냐면.. 내장(embedded) 돼있으니까!임베디.. 2022. 12. 7.