주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

Simulink에서의 주기적 CAN 메시지 송신 동작

이 예제는 Simulink®에서 MathWorks® 가상 CAN 채널을 사용하여 CAN 메시지의 주기적 송신 및 수신 설정 방법을 보여줍니다. 가상 채널들은 루프백 구성으로 연결됩니다.

Vehicle Network Toolbox™는 Controller Area Network(CAN)를 통해 Simulink 모델로 실시간 메시지를 송신 및 수신하기 위한 Simulink 블록을 제공합니다. 이 예제는 CAN 버스를 통해 데이터 전송을 수행하기 위해 CAN Configuration, CAN Pack, CAN Transmit, CAN ReceiveCAN Unpack 블록을 사용합니다.

CAN 메시지 송신 및 수신

두 개의 메시지를 서로 다른 주기로 송신하고, 지정된 메시지만 수신하며, 지정된 ID를 가진 메시지를 언패킹하는 모델을 생성하십시오.

  • CAN Transmit 블록을 사용하여 ID 250의 CAN 메시지를 1초마다 송신합니다.

  • 다른 CAN Transmit 블록을 사용하여 ID 500의 CAN 메시지를 0.5초 간격으로 송신하십시오.

  • CAN Pack 블록 두 개에 신호를 입력하여 50을 한계값으로 하는 자동 증가 카운터를 구성하십시오.

  • 두 개의 CAN Transmit 블록 모두 MathWorks 가상 채널 1에 연결되어 있습니다.

CAN Receive 블록을 사용하여 MathWorks 가상 채널 2로부터 CAN 메시지를 수신합니다. 블록을 다음과 같이 설정하십시오:

  • ID 250과 500의 메시지만 수신하십시오.

  • Receive 블록은 특정 시간 스텝에서 새 메시지를 수신하면 함수 호출 트리거를 생성합니다.

CAN Unpack 블록들은 Function-Call Subsystem (Simulink) 안에 있습니다. 해당 서브시스템은 특정 시간 스텝에서 CAN Receive 블록이 새 메시지를 수신할 때만 실행됩니다.

다른 타임스탬프에서 메시지 시각화

각 언패킹된 메시지에 대한 카운터 값과 타임스탬프를 확인하기 위해 결과를 그래프로 표시하십시오. 그래프의 X축은 시뮬레이션 시간 스텝을 나타냅니다. 타임스탬프 플롯은 메시지가 지정된 시간에 전송되었음을 보여줍니다. 또한 ID 250에 대해 송신된 메시지 수는 ID 500에 대해 송신된 메시지 수의 절반으로 나타납니다. 이는 두 ID에 대해 지정된 주기적 전송률이 다르기 때문입니다.

예시 확장하기

MathWorks 가상 CAN 채널이 이 예제에 사용되었습니다. 그러나 모델을 다른 지원되는 하드웨어에 연결할 수 있습니다. 모델을 수정하여 다른 속도로 송신하거나 주기적 메시지와 비주기적 메시지를 조합하여 송신할 수도 있습니다.

이 예제는 CAN 블록을 사용하지만, 여기서 보여준 개념은 Simulink의 CAN FD 블록에도 적용됩니다.

참고 항목

도움말 항목