일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- pythongui
- 문자열
- 파워포인트
- 오피스
- office
- VBA
- pyqt5
- html
- git
- 안드로이드
- 파이썬GUI
- 윈도우11
- python
- 윈도우10
- Outlook
- 아웃룩
- Excel
- Windows11
- Android
- windows
- 깃
- 비주얼베이직
- matlab
- 파이썬
- win32com
- Windows10
- 파이썬3
- pandas
- python3
- 엑셀
Appia의 IT세상
CAN통신의 Multiplexing이란 본문
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 |
---|