メインコンテンツ

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

CAN FD Receive

指定されたCAN FDデバイスからCAN FDメッセージを受信する

  • CAN FD Receive block

ライブラリ:
Vehicle Network Toolbox / CAN FD Communication

説明

CAN FD Receive ブロックは CAN ネットワークからメッセージを受信し、Simulink® モデルに配信します。ブロック パラメータに応じて、各タイム ステップで 1 つのメッセージまたはすべてのメッセージを出力します。

メモ

このブロックを使用するには、Vehicle Network Toolbox™ と Simulink ソフトウェアの両方のライセンスが必要です。

CAN FD Receive ブロックには 2 つの出力ポートがあります。

  • f() 出力ポートは、Function-Call subsystem へのトリガーです。ブロックが新しいメッセージを受信すると、このポートから関数呼び出しがトリガーされます。その後、Function-Call Subsystem (Simulink) に接続してメッセージをアンパックし、処理することができます。

  • Msg 出力ポートには、特定のタイムステップで受信した CAN メッセージが含まれます。ブロックはメッセージを Simulink バス信号として出力します。Simulink バス オブジェクトの詳細については、「合成インターフェイス (Simulink)」を参照してください。

CAN FD Receive ブロックは、CAN メッセージを先入れ先出し (FIFO) バッファに格納します。FIFO バッファは、タイムステップごとにキューの順序でメッセージをモデルに配信します。

メモ

同じ PEAK-System デバイス チャネルを使用するモデルでは、複数の CAN FD Receive ブロックを持つことはできません。

その他のサポートされている機能

CAN FD Receive ブロックは、Simulink アクセラレータ モードの使用をサポートします。この機能を使用すると、Simulink モデルの実行を高速化できます。詳細については、高速化 (Simulink)を参照してください。

CAN FD Receive ブロックは、必要なソース コードと依存する共有ライブラリをグループ化するために、packNGo 関数とともにコード生成の使用をサポートします。

コード生成

Vehicle Network Toolbox Simulink ブロックを使用するとコードを生成でき、これらのブロックを含むモデルをアクセラレータ モード、ラピッド アクセラレータ モード、外部モード、およびデプロイ モードで実行できるようになります。

Simulink Coder を使用したコード生成

Vehicle Network Toolbox、Simulink Coder™、および Embedded Coder® ソフトウェアを一緒に使用して、モデルの実装に使用できるコードをホスト側で生成できます。コード生成の詳細については、生成されたコードのコンパイル (Simulink Coder) を参照してください。

共有ライブラリの依存関係

ブロックは移植性が制限されたコードを生成します。ブロックは、DLL などの事前コンパイルされた共有ライブラリを使用して、特定の種類のデバイスの I/O をサポートします。このブロックを使用すると、Simulink Coder でサポートされている packNGo 関数を使用して、モデルのビルド情報を設定および管理できます。packNGo (Simulink Coder) 関数を使用すると、モデル コードと依存する共有ライブラリを zip ファイルにパッケージ化して展開できます。ターゲット システムに MATLAB® がインストールされている必要はありませんが、ターゲット システムは MATLAB でサポートされている必要があります。

packNGo を設定するには:

set_param(gcs,'PostCodeGenCommand','packNGo(buildInfo)');

この例では、gcs は現在構築するモデルです。モデルをビルドすると、モデル名と同じ名前の zip ファイルが作成されます。この zip ファイルを別のマシンに移動し、そこで zip ファイル内のソース コードをビルドして、MATLAB および Simulink から独立して実行できる実行可能ファイルを作成できます。生成されたコードは C コンパイラと C++ コンパイラの両方でコンパイルされます。詳細については、コード コンパイルのカスタマイズ (Simulink Coder)を参照してください。

メモ

Linux® プラットフォームでは、ライブラリを解凍するフォルダーを環境変数 LD_LIBRARY_PATH に追加する必要があります。

端子

出力

すべて展開する

CAN Msg 出力ポートには、特定のタイムステップで受信された 1 つ以上のパックされた CAN メッセージが含まれており、CAN_FD_MESSAGE_BUS として出力されます。出力には、各タイムステップで受信したメッセージ数 の設定に応じて、そのタイムステップの 1 つまたはすべてのメッセージが含まれます。

データ型: CAN_FD_MESSAGE_BUS

f() 出力ポートは、Function-Call subsystem へのトリガーです。ブロックが新しいメッセージを受信すると、このポートから関数呼び出しがトリガーされます。その後、Function-Call Subsystem (Simulink) に接続してメッセージをアンパックし、処理することができます。

データ型: function-call event

パラメーター

すべて展開する

ヒント

CAN FD Receive ブロック パラメータを設定する前に、CAN FD Configuration ブロックを設定してください。

リストから、CAN デバイスと、CAN メッセージを受信するデバイス上のチャネルを選択します。このフィールドには、システムにインストールされているすべてのデバイスが一覧表示されます。ベンダー名、デバイス名、チャネル ID が表示されます。デフォルトは、システムで使用可能な最初のデバイスです。

プログラムでの使用

ブロック パラメーター: Device
型: 文字ベクトル、string

標準 ID のフィルターを選択します。選択肢は、以下のとおりです。

  • Allow all (デフォルト):すべての標準 ID がフィルターを通過できるようにします。

  • Allow only:テキスト フィールドで指定された ID または ID の範囲のみを、単一の ID または ID の配列として許可します。カンマで区切られた、分離した ID や配列を指定することもできます。たとえば、ID 400 ~ 500、および 600 ~ 650 を許可するには、「[[400:500],[600:650]]」と入力します。標準 ID は 0 から 2047 までの正の整数である必要があります。hex2dec 関数を使用して 16 進数値を指定することもできます。

  • Block all:すべての標準 ID がフィルターを通過するのをブロックします。

プログラムでの使用

ブロック パラメーター: StdIDsCombo
型: 文字ベクトル、string
値: 'Allow all' | 'Allow only' | 'Block all'
既定の設定: 'Allow all'

'Allow only' を使用する場合は、次のようにフィルター値を設定します。

ブロック パラメーター: StandardIDs
型: 文字ベクトル、string
値: 整数スカラーまたは行ベクトル

拡張 ID については、このブロックのフィルターを選択します。選択肢は、以下のとおりです。

  • Allow all (デフォルト):すべての拡張 ID がフィルターを通過できるようにします。

  • Allow only:テキスト フィールドで指定された ID のみを許可します。テキスト フィールドで指定された ID または ID の範囲のみを、単一の ID または ID の配列として許可します。カンマで区切られた、分離した ID や配列を指定することもできます。たとえば、ID 3000 ~ 3500、および 3600 ~ 3620 を受け入れるには、「[[3000:3500],[3600:3620]]」と入力します。拡張 ID は 0 から 536870911 までの正の整数である必要があります。hex2dec 関数を使用して 16 進数値を指定することもできます。

  • Block all:すべての拡張 ID がフィルターを通過するのをブロックします。

プログラムでの使用

ブロック パラメーター: ExtIDsCombo
型: 文字ベクトル、string
値: 'Allow all' | 'Allow only' | 'Block all'
既定の設定: 'Allow all'
ブロック パラメーター: ExtendedIDs
型: 文字ベクトル、string
値: 整数スカラーまたは行ベクトル

ブロックのサンプリング時間を指定します。これにより、シミュレーション中にブロックが実行される速度が定義されます。デフォルト値は 0.01 シミュレーション秒です。ブロックが Triggered Subsystem 内にある場合、またはサンプル時間を継承する場合は、サンプル時間として -1 を指定できます。サンプル時間には MATLAB 変数を指定することもできます。詳細については、ハードウェアインターフェースモデルのタイミングを参照してください。

プログラムでの使用

ブロック パラメーター: SampleTime
型: 文字ベクトル、string
値: double
既定の設定: '0.01'

指定されたタイムステップごとにブロックが受信するメッセージの数を選択します。有効な選択肢は次のとおりです。

  • all (デフォルト):CAN FD Receive ブロックは、特定のタイムステップ中に FIFO バッファー内のすべての利用可能なメッセージをモデルに配信します。ブロックは配信されるメッセージごとに 1 つの関数呼び出しを生成します。出力ポートには常に 1 度に 1 つの CAN メッセージが含まれます。

  • 1:CAN FD Receive ブロックは、FIFO バッファからモデルにタイムステップごとに 1 つのメッセージを配信します。

ブロックが次のタイムステップの前にメッセージを受信しない場合は、最後に受信したメッセージを出力します。

プログラムでの使用

ブロック パラメーター: MsgsPerTimestep
型: 文字ベクトル、string
値: 'all' | '1'
既定の設定: 'all'

拡張機能

すべて展開する

バージョン履歴

R2018a で導入