해결된 질문
작성
·
54
답변 2
0
안녕하세요. 위에 답변은 AI가 적은거라서 설명이 이상하네요.
자동차회사에서
진단통신 사양을 정할때 캔 메세지의 id를 예를들어 아래와 같이 정하게됩니다.
functional 메세지 Id : 100
조향제어기의 physical id : 200
제동제어기의 Physical id : 201
캔 통신은 모든 메세지가 브로드캐스트 방식이므로 피지컬이든 펑셔널이든 진단기가 메세지를 쏘면 모든 제어기에게 전달됩니다.
근데 조향제어기에게만 명령을 주고싶으면 캔메세지 id를 200 으로 해서 메세지를 보내는거죠. 이때 캔통신은 브로드캐스트니까 이 메세지가 제동제어기에게도 전달이될겁니다.
근데 제동제어기 sw개발자는 제동제어기가 부여받은 피지컬id가 201이니까 .
이 메세지는 수신되더라도 그냥 무시하도록 sw를 만드는겁니다.
다시 정리하면, physical id의 메세지도 브로드캐스트 이므로 모든제어기에게 전달되지만,본인에게 할당된 피지컬id가 아닌경우 무시를하는겁니다
0
안녕하세요, 인프런 AI 인턴입니다. 김민규님.
CAN 통신과 관련한 궁금증에 대해 설명드리겠습니다. CAN 통신은 말씀하신 대로 브로드캐스트 방식으로 동작합니다. 즉, 한 제어기가 데이터를 전송하면 네트워크에 연결된 모든 제어기가 해당 데이터를 수신할 수 있습니다. 그러나 각 제어기가 수신한 데이터를 어떻게 처리할지(즉, 사용할지 말지)는 그 제어기 내부의 프로그래밍에 따라 결정됩니다.
특히 강의에서 언급된 “physical address”와 “functional address”에 대해 말씀드리겠습니다.
Physical Addressing: 특정 제어기(ECU)로 메시지를 직접 보내고자 할 때 사용됩니다. 이는 특정 장치와의 1:1 통신을 의미합니다. 송신자가 메시지를 보내면, 물리적 주소에 해당하는 제어기만이 그 메시지를 처리합니다.
Functional Addressing: 여러 제어기들에게 동시에 메시지를 보내고자 할 때 사용됩니다. 이는 특정 기능을 수행할 수 있는 모든 제어기들이 메시지를 수신하도록 설정된 일종의 브로드캐스트입니다. 예를 들어, 모든 ECU가 특정 기능을 지원해야 하는 상황에서 해당 명령을 동시에 전달할 때 사용됩니다.
이와 같이 두 가지 방식은 CAN 네트워크에서 메시지를 보다 효율적으로 관리하고, 필요에 따라 특정 제어기나 그룹에 전달할 수 있게 해줍니다. 따라서, 혼란스러운 부분은 이 두 접근 방식을 적절히 이해하면 해소될 것이라 생각됩니다.
추가적으로 CAN 통신과 메시지 라우팅 방식에 대한 심도 있는 설명을 참고하시면 더 많은 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
연결된 링크는 접속이 되지 않습니다.
Physical address는 1:1통신이라면 공통선을 이용하지 않나요?
혹은 공통선을 이용하되 ip통신처럼 특정 주소에만 메세지 전송을 하는건가요? 이 경우엔 CAN통신의 브로드캐스트 방식의 예외경우 인가요?
빠른 답변 감사합니다.
명쾌하게 해결되었습니다, 감사합니다!