メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

複数のCANメッセージを多重化して送信する

この例では、MathWorks ® 仮想 CAN チャネルを使用して、Simulink ® で複数の CAN メッセージを同時に送受信する方法を示します。仮想チャネルはループバック構成で接続されます。

この例では、Vehicle Network Toolbox ™ の CAN ConfigurationCAN PackCAN TransmitCAN Receive、および CAN Unpack ブロックを使用します。さらに、この例では、Mux (Simulink) ブロックを使用して、送信される CAN メッセージを 1 つのベクトルに結合します。CAN Pack ブロックがバスとして出力するように構成されている場合は、代わりに Vector Concatenate (Simulink) ブロックを使用して CAN メッセージを結合します。

多重化されたCANメッセージの送受信

付属のモデルでは次の方法を説明します。

  1. 3 つの信号を生成します。

  2. 信号を、一意の CAN ID を持つ個別の CAN メッセージにパックします。

  3. CAN メッセージを 1 つのベクトルに結合します。

  4. 最初の仮想チャネルを介して CAN メッセージを同時に送信します。

  5. 2 番目の仮想チャネルで CAN メッセージを受信し、CAN ID に基づいて個別にアンパックします。

CANメッセージを処理する

CAN Receive ブロックは、特定のタイムステップで新しいメッセージを受信すると、関数呼び出しトリガーを生成します。この関数呼び出しトリガーは Function-Call Subsystem (Simulink) に接続することができ、信号のデコードと処理を担当することができます。サブシステム内では、個々の CAN メッセージは 3 つの CAN Unpack ブロックで個別にアンパックされ、各ブロックは指定された CAN ID でメッセージをアンパックする役割を担います。

信号データを可視化する

送信前と送信後の 3 つの信号値をプロットします。X 軸はシミュレーションのタイムステップに対応し、Y 軸は信号の値に対応します。上のグラフ (送信信号) と下のグラフ (受信信号) 間の位相シフトは、信号がネットワーク上を移動する際の伝播遅延を表します。

例を拡張する

この例では、MathWorks 仮想 CAN チャネルを使用します。モデルを他のサポートされているハードウェアに接続できます。追加の信号を同時に送信するようにモデルを変更することもできます。