작성
·
52
0
강사님,
36 서비스를 사용해서 소프트웨어 업데이트 패키지를 전달할때,
Block Sequence Counter 가 포함되는데요.
Block Sequence Counter 의 범위가 00~FF 밖에 되지 않습니다.
만약 Block 갯수가 255개를 넘어가는 경우에는 다시 00부터 시작하는것이 표준 동작인지요?
답변 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부터 다시 시작하시는 것으로 이해하시면 될 것 같습니다.
감사합니다 ㅎㅎ
우선 패키지 사이즈에 보통이라는 것이 존재하지 않을 거 같아요. 왜냐하면 각 기능들마다 sw 크기가 다를 것이고 메모리 영역을 잡기 나름이기 때문에요..
그리고 한 블록에 최대 FFFF까지 보내는데 이게 16k 인데 FF block을 다 써서 보낸다는 가정하에 1GB를 보낸다는 의미인데.,. 임베디드에서 그만큼의 sw를 업데이트 하는 것을 전 보지 못했네요 ㅎㅎ
더불어, 이 전 질문에서 연관되는것인데 너무 용량이 크면 compressed해서 패키지를 만들지 않을까 싶기도 하네요,,
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 신종혁님.
소프트웨어 업데이트를 위한 Transfer Data(36) 서비스의 “Block Sequence Counter”에 대해 질문 주셨네요. 이 서비스는 UDS 프로토콜에서 패키지를 전송할 때 사용되며, “Block Sequence Counter”는 각 데이터 블록의 순서 번호를 나타냅니다.
Block Sequence Counter의 범위는 0x00부터 0xFF까지이고, 이에 따라 255개의 블록을 전송할 수 있습니다. 만약 블록 수가 255개를 초과하게 되면, 단순히 0x00부터 다시 시작하는 방식이 UDS 표준 프로토콜에 맞는 동작입니다. 이 점은 데이터 전송의 일부분으로 설계되어 있으며, 수신 측에서는 이 순환되는 카운터를 관리하여 제대로 된 블록 순서인지 검증합니다.
이와 관련해 UDS 제공 기능에 대한 추가적인 설명이 필요하시다면, 기존 인프런 강의 내 질문과 답변 중 유사한 사례를 참고하시면 더욱 이해가 쉬울 것 같습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
강사님
Block Sequence Counter 가 FF 를 초과하는 경우를 보지 못하신 이유가 궁급합니다.
1) 패키지 크기가 크지 않아서
2) block size 를 크게 잡으면 255개를 초과할 일이 없음
생각되는건 위 2가지인데, 혹시 경험을 공유해주실수 있으신가요?
질문은 다음과 같습니다.
[1] block size 는 경험적으로 몇으로 설정하시는지와
[2] 업데이트 할 패키지 크기는 보통 몇 MB 정도 되나요?
항상 좋은 답변 해주셔서 감사합니다.