인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

nookk님의 프로필 이미지

작성한 질문수

UDS 진단통신을 통한 SW 업데이트(SW ReProgramming)

SW reprogramming 과정에서 질문

해결된 질문

작성

·

44

1

안녕하세요, SW Reprogramming 과정에서 궁금한 점이 있어 질문을 드리게되었습니다.

Transfer Data (0x36) 과 Request Transfer Exit(0x37) 이후에 Routine Control Service (0x31)를 이용하여 다운로드가 정상적으로 진행되었는지 확인하는 과정에서 진단기의 결과값을 제어기에게 전달하는 2가지 방법에 대해 질문드릴 점이 있습니다.

  1. 2가지 방법 중, 한가지는 Hex 파일의 마지막 2byte는 진단기의 Input들의 결과 값을 적어 보낸다고 하셨는데, 나머지 1가지 방법에서는 Parameter에 담아 보낸다고 하셨습니다.

    그렇다면, 후자의 경우에는 Hex 파일의 마지막 2byte에는 결과 값이 적혀있는 것이 아닌, Data 값이 적혀있을 것으로 예상이 되는데, 혹시 이 상황에서는 제어기가 마지막 2byte를 결과 값으로 판단하고 그 2byte를 제외한 Input 값을 계산할 수도 있을까요? 아니면 Parameter에 실어 보낸 경우에는 제어기가 Hex 파일에 있는 모든 값을 Data 값으로 판단하는 것일까요?

  2. 말씀주신 결과 값이 2byte라 하셨는데, 대부분 2byte로 사용하는 것일까요?

 

항상 좋은 강의 해주신 덕분에 많은 도움을 받습니다.

감사합니다!

답변 1

1

존버매니아님의 프로필 이미지
존버매니아
지식공유자

안녕하세요.
1번 질문) 해당 부분(SW 다운로드 검증절차)는 표준에서 정확한 방법을 정의 한 건 아니라서

OEM에서 사양으로 정할 부분입니다.
그리고 OEM에서 사양이 정해지면, 부트로더를 그 사양에 맞게 구현하는 것입니다.

그래서, 1번 질문에서 검증 결과 값을 메세지 파라미터로 보내는게 사양이라면,
애초에 부트로더 SW 구현하는 사람이 그에 맞게 SW를 구현해야 하므로,
Hex파일에 있는 모든 값을 인풋으로 판단하게 부트로더를 구현해야 할 것입니다.

2번 질문)

이것도 정답이 딱 정해져 있는게 아니라서 천편일률 적으로 답하기가 어렵습니다.
2byte는 설명의 편의상 제가 예시를 든 것이고.. 4byte, 32byte를 쓰는 경우도 있구요.
보안성을 강화하기 위해서 검증결과값 계산할때 암호키를 사용해서 암호화 하는 방식을 사용하기도 합니다.

이 부분은 사양마다 워낙 다른 부분이라 일괄적으로 답을 드릴 수가 없고.. 대강의 과정만 제가 이해하기 쉽게 예시로 든 것입니다.

 

 

※ 1번 질문을 제가 제대로 이해하고 답변 드리는건지 모르겠네요.. 답변이 됐을까요??

 

 

nookk님의 프로필 이미지
nookk
질문자

넵, 두 질문에 대해서 궁금점을 해소 시켜 주신 것 같습니다.

OEM에 따라 달라지는 부분이기 때문에 1번에서 파라미터에 값을 담아 보낸다면 HEX 파일의 모든 값을 인풋으로 판단하게 부트로더를 구현해야 해야 되겠군요,,

감사합니다!!

nookk님의 프로필 이미지

작성한 질문수

질문하기