해결된 질문
작성
·
341
답변 2
1
제가 이분야에 초보이긴 합니다만 플롯 형태의 변수가 제대로 표현이 안되니 factor 로 자리수 표현을 해준다는 말을 드린게 완전 이해를 못한거라 생각하신듯 하네요
지금 제가 보고있는 iso14229 는 gm 기준의 문서인데 사내에서 캡쳐해서 같이 첨부하긴 했는데 그림자체가 안올라갔군요...
설명이 이해 안된게 아니라요 다른 방식의 전송이라고 해서 mostSB leastSB 라 썻던거에요...
결국 강사님이 기준으로 하시고 강의를 작성하신 iso14229는 다른 OEM 인거겠군요
우야든둥 강의는 친절하셔서 좋았습니다.
감사합니다.__) 꾸벅
1
안녕하세요 Factor는 자릿수를 나타내는게 아니라 크기가 큰 데이터를 통신으로 전송할 때,
데이터를 절약하기 위한 기법 중 한가지 입니다. 제가 예시를 0.1 , 0.01 이라고 들어서 그렇게 오해할 수 있을 거 같네요.
질문자님이 말씀하신 예시는 예를 들어
12.34 라는 값을 보내야한다면
앞 바이트에 12를 적고 뒤 바이트에 34를 적어서 보낸다는 말씀 맞으신가요?
강의에서 얘기했듯이 Data Identifier는 표준이 따로 있는 것이 아니라 해당 제조사에서 자신들의 뜻에 맞게 규칙을 정해서 만드는 것입니다.
그러니 실수 데이터를 표현할 때 "앞 바이트는 소수점 앞자리, 뒤 바이트는 소수점 뒷자리로 표현하자!"
라고 약속을 할 수도 있는 것입니다.
Data Identifier의 룰은 표준이 따로 없기 때문에 어떻게 그렇게 사용하는게 틀린게 아닙니다.
암튼 그거랑 별개로 factor 는 자릿수를 나타내는게 아닌데 제가 예를 0.1로 들어서 그렇게 이해하신거 같습니다. factor는 내가 실제로 표현하고 싶은 데이터를 나타내려면 bit가 많이 필요한데, 데이터를 통신으로 내보낼때 bit 수를 최대한 줄이기 위해 사용하는 기법일 뿐입니다 . 꼭 실수형 데이터에만 적용되는건 아닙니다.
factor를 적용하는 규칙은 간단합니다.
보내는 사람은 내가 실제로 보내고싶은 값을 그대로 전송하는게 아니라
(실제 원하는 값 / factor) <- 이 값을 보냅니다.
받는 사람은 통신으로 (수신받은 값 * Factor) 로 해석합니다.
예를 들어 제가 보내려는 데이터가 5000이라고 하겠습니다.
정수형 데이터로 5000을 표현하려면 13bit가 필요합니다.
근데 13bit를 다 쓰기엔 여유가 없어서 예를 들어 4bit만으로 데이터를 전송하고 싶은 상황을 생각해봅시다.
그때 활용할 수 있는 방법 중 하나가 factor라는건데
이 경우 factor를 500이라고 정하고
보내는 사람은 내가 보내려는 실제값을 factor로 나눈 값을 보내고,
받는 살마은 받은값에 factor를 곱해서 이해하는 것입니다.
제가 5000을 보내고 싶으면 실제로 5000을 보내는게 아니라 factor로 나눠서
10 을 보내고, 받는 사람은 10을 받으면 받은 데이터에 500을 곱해서 5천이라고 해석하는거죠.
이렇게하면 실제로 통신으로 전달되는 데이터는 5000 이 아니라 10이기 때문에 비트를 아낄 수 있는거죠.
근데 이 경우 문제가 되는건 factor가 500이면 표현할 수 있는 숫자가 500,1000,1500,2000... 처럼
500단위로 밖에 표현을 못 하는 문제가 있는거죠..
혹시 제 설명이 이해가 되시나요??