Appia의 IT세상

CAN통신의 Multiplexing이란 본문

Development/Communication

CAN통신의 Multiplexing이란

Appia 2020. 1. 12. 17:26
반응형

CAN에서는 Multiplexing이라는 부분을 제공하고 있습니다. 부분에 대해서 상당히 많은 분들이 혼란 스럽고 때론 부분을 아예 무시해서 사용합니다. 그래서 간단하게 오늘은 Multiplexing 어떻게 CAN 동작하는지, 간단하게 이야기를 드리고 합니다.

 

먼저, 가장 간단하게 이야기를 하면, message에는 signal들이 포함이 되어 있습니다. 하지만, multiplexing 되는 부분이라면, multiplex value 따라서 해당되는 signal들만 전송된다고 보시면 됩니다.

 

그림으로 간단히 이야기 해보면 다음과 같습니다.

위의 그림에 따라 Message가 구성되는 부분들을 살펴보겠습니다. 

 

위의 그림과 같이 Multiplexor 값에 따라 구성하는 Signal 값이 달라지는 것입니다. 다음은 Multiplex 사용하는 Message 메모장에서 복사해왔습니다.

 

BO_ 2398307702 DIAGNOSTICS: 2 CENTRAL_GATEWAY

SG_ DiagnosticSwitch M : 8|8@1+ (1,0) [0|0] "" CRASH_SYSTEM,ENGINE_CONTROL,IGNITION,STEERING_WHEEL

SG_ D_Data_8 m8 : 0|8@1+ (1,0) [0|0] "" CRASH_SYSTEM,ENGINE_CONTROL,IGNITION,STEERING_WHEEL

SG_ D_Data_7 m7 : 0|8@1+ (1,0) [0|0] "" CRASH_SYSTEM,ENGINE_CONTROL,IGNITION,STEERING_WHEEL

SG_ D_Data_6 m6 : 0|8@1+ (1,0) [0|0] "" CRASH_SYSTEM,ENGINE_CONTROL,IGNITION,STEERING_WHEEL

SG_ D_Data_5 m5 : 0|8@1+ (1,0) [0|0] "" CRASH_SYSTEM,ENGINE_CONTROL,IGNITION,STEERING_WHEEL

SG_ D_Data_4 m4 : 0|8@1+ (1,0) [0|0] "" CRASH_SYSTEM,ENGINE_CONTROL,IGNITION,STEERING_WHEEL

SG_ D_Data_3 m3 : 0|8@1+ (1,0) [0|0] "" CRASH_SYSTEM,ENGINE_CONTROL,IGNITION,STEERING_WHEEL

SG_ D_Data_2 m2 : 0|8@1+ (1,0) [0|0] "" CRASH_SYSTEM,ENGINE_CONTROL,IGNITION,STEERING_WHEEL

SG_ D_Data_1 m1 : 0|8@1+ (1,0) [0|0] "" ENGINE_CONTROL,CRASH_SYSTEM,IGNITION,STEERING_WHEEL

 

DiagnosticSwitch 라는 Signal 값에 따라서, D_Data_1 ~ D_Data_8까지 적용되는 Signal 달라진다는 것을 쉽게 이해할 있습니다.

 

실제 위에 부분에 대해서 AUTOSAR 인터페이스나 인터페이스를 만들 매우 용이합니다. 하지만, 제가 위의 설명을 그렸던 그림과 같은 경우라면 그런 부분에서는 사전에 제약을 둬야 합니다. (그냥 필자의 개인 의견입니다.)

 

 

오늘은 간단히 CAN Multiplexing 대해서 살펴봤습니다. 물론, 많은 양의 포스팅은 아니지만, 부분은 상당히 많이 궁금해 하시는 분들이 있을 것이라고 생각이 들어 다음과 같이 포스팅합니다. 궁금하시거나 문의 하신 부분이 있으시면 언제든지 댓글 부탁드립니다.

반응형

'Development > Communication' 카테고리의 다른 글

CAN dbc 파일의 구조(Node, Message, Signal)  (4) 2020.01.08
Comments