inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

소프트웨어 업데이트 : Re-Programming 과정에 대한 이해

Transfer Data

Transfer data(36) 서비스의 "block sequence counter" 에 대한 질문입니다.

해결된 질문

253

신종혁

작성한 질문수 8

0

강사님,

36 서비스를 사용해서 소프트웨어 업데이트 패키지를 전달할때,

Block Sequence Counter 가 포함되는데요.

Block Sequence Counter 의 범위가 00~FF 밖에 되지 않습니다.

만약 Block 갯수가 255개를 넘어가는 경우에는 다시 00부터 시작하는것이 표준 동작인지요?

 

 

소프트웨어-설계 over-the-air swupdate uds

답변 2

1

윤우주

안녕하세요, 종혁님 !

음 우선 그런 경우를 보지는 못하였지만, 문서에 아래와 같이 표현되어 있습니다.

 

At the value of FF(16) the blockSequenceCounter rolls over and starts at 00(16) with the next TransferData request message.

 

FF다음 Sequence Counter는 00부터 다시 시작하시는 것으로 이해하시면 될 것 같습니다.

감사합니다 ㅎㅎ

0

신종혁

강사님

 

Block Sequence Counter 가 FF 를 초과하는 경우를 보지 못하신 이유가 궁급합니다.

1) 패키지 크기가 크지 않아서

2) block size 를 크게 잡으면 255개를 초과할 일이 없음

생각되는건 위 2가지인데, 혹시 경험을 공유해주실수 있으신가요?

 

질문은 다음과 같습니다.

[1] block size 는 경험적으로 몇으로 설정하시는지와

[2] 업데이트 할 패키지 크기는 보통 몇 MB 정도 되나요?

 

항상 좋은 답변 해주셔서 감사합니다.

 

0

윤우주

우선 패키지 사이즈에 보통이라는 것이 존재하지 않을 거 같아요. 왜냐하면 각 기능들마다 sw 크기가 다를 것이고 메모리 영역을 잡기 나름이기 때문에요..

 

그리고 한 블록에 최대 FFFF까지 보내는데 이게 16k 인데 FF block을 다 써서 보낸다는 가정하에 1GB를 보낸다는 의미인데.,. 임베디드에서 그만큼의 sw를 업데이트 하는 것을 전 보지 못했네요 ㅎㅎ

 

더불어, 이 전 질문에서 연관되는것인데 너무 용량이 크면 compressed해서 패키지를 만들지 않을까 싶기도 하네요,,

 

감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 신종혁님.

소프트웨어 업데이트를 위한 Transfer Data(36) 서비스의 “Block Sequence Counter”에 대해 질문 주셨네요. 이 서비스는 UDS 프로토콜에서 패키지를 전송할 때 사용되며, “Block Sequence Counter”는 각 데이터 블록의 순서 번호를 나타냅니다.

Block Sequence Counter의 범위는 0x00부터 0xFF까지이고, 이에 따라 255개의 블록을 전송할 수 있습니다. 만약 블록 수가 255개를 초과하게 되면, 단순히 0x00부터 다시 시작하는 방식이 UDS 표준 프로토콜에 맞는 동작입니다. 이 점은 데이터 전송의 일부분으로 설계되어 있으며, 수신 측에서는 이 순환되는 카운터를 관리하여 제대로 된 블록 순서인지 검증합니다.

이와 관련해 UDS 제공 기능에 대한 추가적인 설명이 필요하시다면, 기존 인프런 강의 내 질문과 답변 중 유사한 사례를 참고하시면 더욱 이해가 쉬울 것 같습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Substack 1년 제공

1

21

3

특별 학습 자료 프로모션 1년 멤버십 무료 제공 문의드립니다

0

27

2

실제 FK제약조건을 설정하지 않는이유

0

35

2

6:19 다이어그램에서 CANH CANL사이에 SPLIT 핀은 뭐하는 핀인가요?

0

23

0

BCNF 질문

0

49

2

레이어드 아키텍처에서 도메인 중심 패키지 구조를 적용하거나 변화하는 시점이 있을까요?

1

40

2

연관 엔티티 네이밍 규칙

0

40

1

6강 - 해시태그 모델의 샤딩 전략에 대하여, 분산 정도(데이터 편중)와 트랜잭션 성능의 trade off 상황 발생 시에 대한 고민

0

40

2

히스토리 관련 질문

0

58

2

진짜 강의 듣는거 너무 고문

0

114

1

다형성 개념 문의

1

61

3

$36 Service Transfer Data Recovery Mechanism & padding byte

0

124

2

Routine Control Negative Response 질문입니다.

0

142

2

Application -> Bootloader jump

0

128

1

Secondary Bootloader와 first bootloader

0

164

1

UDS Session 및 DTC 설정 관련

0

382

2

$34 Response 질문

0

140

1

31서비스를 사용해서 sig verify 에 대한 응답

0

156

1

34 서비스 응답(74 20 0F FF)에 대한 질문입니다.

0

230

2

Re-programming 시퀀스에 대한 질문입니다.

0

194

3

본 강의는 MCU 를 가정하고 진행되는 것일까요?

0

124

1

Downgrade 방지

1

199

2

진단세션에 대해 제가 맞게 이해한 건지 궁금합니다

1

439

1

JTAG port와 Debug port의 차이가 궁금합니다

1

516

1