メインコンテンツ

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

CAN FD Pack

R2025a

CAN FDバスのメッセージに個々の信号をパックする

  • CAN FD Pack block

ライブラリ:
Vehicle Network Toolbox / CAN FD Communication
C2000 Microcontroller Blockset / Target Communication
Simulink Real-Time / CAN / CAN-FD MSG blocks

説明

CAN FD Pack ブロックは、シミュレーション中に指定された間隔で信号データをメッセージに読み込みます。

このブロックを使用するには、Simulink® ソフトウェアのライセンスも必要です。

CAN FD Pack ブロックは次をサポートします。

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

ヒント

  • J1939 メッセージを操作するには、このブロックの代わりに J1939 通信ブロック ライブラリ内のブロックを使用します。 J1939通信 を参照してください。

例

端子

入力

すべて展開する

CAN FD Pack ブロックには、デフォルトで 1 つの入力ポートがあります。ブロック入力の数は動的であり、ブロックに指定する信号の数によって異なります。たとえば、メッセージに 4 つの信号がある場合、ブロックには 4 つの入力ポートを設定できます。

このブロックは、single、double、int8、int16、int32、int64、uint8、uint16、uint32、uint64、boolean の入力信号データ型をサポートします。ブロックは固定小数点データ型をサポートしていません。

ヒント

信号のない長さがゼロのメッセージがある場合でも、サンプル時間を定義するために、入力ポートにダミー データを提供する必要があります。この場合、データ値自体は無視されます。

CAN Msg ID 入力ポートを使用すると、CAN メッセージ ID を動的に指定できます。このポートは、入力端子から CAN 識別子を指定 パラメータが選択されている場合にのみ存在します。詳細については、CAN Pack ブロック入力ポートによる CAN ID の動的変更を参照してください。

出力

すべて展開する

このブロックには 1 つの出力ポート (Msg) があります。CAN FD Pack ブロックは指定された入力信号を受け取り、それを CAN FD メッセージにパックして、Simulink CAN_FD_MESSAGE_BUS 信号として出力します。Simulink バス オブジェクトの詳細については、「合成インターフェイス (Simulink)」を参照してください。

パラメーター

すべて展開する

  • raw data:uint8 ベクトル配列としてデータを入力します。このオプションを選択した場合は、メッセージ フィールドのみを指定します。その他の信号パラメータ フィールドはすべて使用できません。このオプションは、ブロック上の入力ポートを 1 つだけ開きます。

    変換式は次のとおりです。

    raw_value = (physical_value - Offset) / Factor
    ここで、physical_value は信号の元の値であり、raw_value はパックされた信号値です。

  • manually specified signals:データ信号の定義を指定できます。このオプションを選択した場合は、信号 テーブルを使用して信号を作成します。ブロック入力の数は、指定する信号の数によって異なります。

  • CANdb specified signals:メッセージと信号の定義を含む CAN データベース ファイルを指定できます。このオプションを選択した場合は、CANdb ファイルを選択します。ブロック入力の数は、選択したメッセージの CANdb ファイルで指定された信号の数によって異なります。

  • ARXML specified signals:信号定義用の ARXML ファイルを指定できます。これにより、一部のリモート オプションが無効になります。ARXML ファイルからデータを読み取った後、manually specified signals に切り替えてテーブルをさらに変更できます。

    詳細については、Simulink における CAN の ARXML ファイル サポートを参照してください。

プログラムでの使用

ブロック パラメーター: DataFormat
型: string | character vector
値: 'raw data' | 'manually specified signals' | 'CANdb specified signals' 'ARXML specified signals'
既定の設定: 'raw data'

このオプションは、データの入力形式 パラメータを CANdb specified signals または ARXML specified signals として指定した場合に使用できます。システム上のデータベース ファイルを見つけるには、参照 をクリックします。データベース ファイルで指定されたメッセージ リストは、ダイアログ ボックスの メッセージ セクションに表示されます。データベース ファイルは、選択したメッセージの 信号 テーブルにもデータを入力します。等号、アンパサンドなどの英数字以外の文字を含むファイル名は、有効なデータベース ファイル名ではありません。データベース名にピリオドを使用できます。データベース ファイルを使用する前に、英数字以外の文字で名前を変更してください。

プログラムでの使用

ブロック パラメーター: CANdbFile
型: string | character vector

このオプションは、データの入力形式 フィールドにデータベースを指定し、データベース ファイル フィールドにデータベース ファイルを指定する場合に使用できます。メッセージを選択すると、信号 テーブルに信号の詳細が表示されます。

プログラムでの使用

ブロック パラメーター: MsgList
型: string | character vector

CAN FD メッセージの名前を指定します。既定値は CAN Msg です。このオプションは、生データを入力するか、信号を手動で指定する場合に使用できます。データベース ファイルからの信号を使用することを選択した場合、このオプションは使用できません。

プログラムでの使用

ブロック パラメーター: MsgName
型: string | character vector

メッセージ プロトコル モードを指定します。

プログラムでの使用

ブロック パラメーター: ProtocolMode
型: string | character vector
値: 'CAN FD' | 'CAN'
既定の設定: 'CAN FD'

CAN メッセージ識別子が Standard タイプか Extended タイプかを指定します。既定値は Standard です。標準識別子は 11 ビットの識別子であり、拡張識別子は 29 ビットの識別子です。このオプションは、生データを入力するか、信号を手動で指定する場合に使用できます。データベースで指定された信号の場合、識別子タイプ はデータベースからタイプを継承します。

プログラムでの使用

ブロック パラメーター: MsgIDType
型: string | character vector
値: 'Standard (11-bit identifier)' | 'Extended (29-bit identifier)'
既定の設定: 'Standard (11-bit identifier)'

メッセージ ID を指定します。この数値は、標準識別子の場合は 0 ~ 2047 の正の整数、拡張識別子の場合は 0 ~ 536870911 の正の整数である必要があります。hex2dec 関数を使用して 16 進数値を指定することもできます。このオプションは、生データを入力するか、信号を手動で指定する場合に使用できます。

プログラムでの使用

ブロック パラメーター: MsgIdentifier
型: string | character vector
値: '0' から '536870911'

選択すると、ブロックの入力ポートを通じて値を指定して、CAN 識別子 (CAN ID) を動的に制御できます。このオプションを選択すると、CAN Msg ID という名前の入力ポートが追加されます。

プログラムでの使用

ブロック パラメーター: CANIDInput
型: string | character vector
値: 'off' | 'on'
既定の設定: 'off'

メッセージの長さを指定します。CAN メッセージの場合、値は 0 ~ 8 バイトになります。CAN FD の場合、値は 0 ~ 8、12、16、20、24、32、48、または 64 バイトになります。データ入力にデータベース指定の信号を使用している場合は、データベース ファイルによってメッセージの長さが定義されます。このオプションは、生データを入力するか、信号を手動で指定する場合に使用できます。

プログラムでの使用

ブロック パラメーター: MsgLength
型: string | character vector
値: '0' から '8'、'12'、'16'、'20'、'24'、'32'、'48'、'64'
既定の設定: '8'

(CAN FD プロトコル モードでは無効です。)CAN メッセージをリモート フレームとして指定します。

プログラムでの使用

ブロック パラメーター: Remote
型: string | character vector
値: 'off' | 'on'
既定の設定: 'off'

(CAN プロトコル モードでは無効です。)ビット レート切り換えを有効にします。

プログラムでの使用

ブロック パラメーター: BRSSwitch
型: string | character vector
値: 'off' | 'on'
既定の設定: 'off'

信号テーブルに信号を追加します。

プログラムでの使用

なし

選択した信号を信号テーブルから削除します。

プログラムでの使用

なし

このテーブルは、信号を手動で指定するか、データベース ファイルを使用して信号を定義する場合に表示されます。

データベース ファイルを使用している場合は、ファイル内のデータがこのテーブルに入力され、フィールドを編集することはできません。信号情報を編集するには、手動で指定した信号に切り替えます。

信号を手動で指定することを選択した場合は、このテーブルで信号を作成します。作成する各信号には次の値があります。

名前

信号のわかりやすい名前を指定します。モデル内の Simulink ブロックにこの名前が表示されます。既定値は Signal [row number] です。

Start bit

データの開始ビットを指定します。スタート ビットは、メッセージ データの先頭から数えて最下位ビットです。CAN の場合、スタート ビットは、メッセージ内のビット数内で 0 ~ 63 の整数である必要があります (CAN FD の場合、スタート ビットは 0 ~ 511 です)。(メッセージの長さはバイト単位で指定されることに注意してください。)

Length (bits)

メッセージ内で信号が占めるビット数を指定します。長さは 1 から 64 までの整数である必要があります。メッセージ内のすべての信号の長さの合計は、メッセージの長さのビット数に制限されます。つまり、すべての信号は累積的にメッセージの長さ内に収まる必要があります。(メッセージ長はバイト単位で指定され、信号長はビット単位で指定されることに注意してください。)

バイト順

次のいずれかのオプションを選択します。

  • LE:バイト順序はリトルエンディアン形式 (Intel®) です。この形式では、最下位ビットから最上位ビットまでのビットをカウントします。たとえば、スタート ビットを 20 にして 1 バイトのデータをリトルエンディアン形式でパックすると、データ ビット テーブルは次の図のようになります。

    最下位ビットから最上位アドレスまでカウントされるリトルエンディアンバイトオーダー

  • BE:バイト順序はビッグエンディアン形式 (Motorola®) です。この形式では、最下位ビットから最上位ビットまでのビットをカウントします。たとえば、開始ビットを 20 にして 1 バイトのデータをビッグ エンディアン形式でパックすると、データ ビット テーブルは次の図のようになります。

    ビッグエンディアンバイトオーダーは最下位ビットから最下位アドレスまでカウントされます

詳細については、CANフレーム構造、バイト順序、ビットカウントを参照してください。

Data type

信号が割り当てられたビット内のデータをどのように解釈するかを指定します。次の中から選択してください:

  • signed (既定)

  • unsigned

  • single

  • double

    メモ: メッセージのバイト境界に正確に揃わない double 信号がある場合、Embedded Coder® を含むコードを生成するには、[構成パラメーター] ダイアログの ハードウェア実行 ペインで デバイスの詳細 の下の long long のサポート をチェックする必要があります。

Multiplex type

ブロックが各タイム ステップで信号をメッセージにパックする方法を指定します。

  • Standard:信号は各タイムステップでパックされます。

  • Multiplexor:Multiplexor 信号、またはモード信号がパックされています。メッセージごとに 1 つの Multiplexor 信号のみ指定できます。

  • Multiplexed:実行時の Multiplexor 信号 (モード信号) の値が、この信号に設定された Multiplex value と一致する場合、信号はパックされます。

たとえば、メッセージには次のタイプと値を持つ 4 つの信号があります。

信号名マルチプレックスタイプマルチプレックス値
Signal-A標準適用不可
Signal-B多重化1
Signal-C多重化0
Signal-Dマルチプレクサ適用不可

この例では以下のようになります。

  • ブロックは、すべてのタイム ステップで Signal-A (標準信号) と Signal-D (マルチプレクサ信号) をパックします。

  • 特定のタイム ステップで Signal-D の値が 1 の場合、ブロックはそのタイム ステップで Signal-B を Signal-A および Signal-D とともにパックします。

  • 特定のタイム ステップで Signal-D の値が 0 の場合、ブロックはそのタイム ステップで Signal-C を Signal-A および Signal-D とともにパックします。

  • Signal-D の値が 1 または 0 でない場合、ブロックはその時間ステップで多重化された信号のいずれもパックしません。

Multiplex value

このオプションは、Multiplex type を Multiplexed として選択した場合にのみ使用できます。ここで指定する値は、ブロックが Multiplexed 信号をパックするために、実行時の Multiplexor 信号値と一致する必要があります。Multiplex value は正の整数またはゼロでなければなりません。

要素

物理値 (信号値) をメッセージにパックされた生の値に変換するために適用する Factor 値を指定します。物理値がメッセージにパックされた生の値に変換される方法については、Data input as パラメータ変換式を参照してください。

オフセット

物理値 (信号値) をメッセージにパックされた生の値に変換するために適用する オフセット 値を指定します。物理値がメッセージにパックされた生の値に変換される方法については、Data input as パラメータ変換式を参照してください。

Min、Max

信号値の範囲を定義します。デフォルト設定はそれぞれ -Inf (負の無限大) と Inf です。データベースで指定された信号の場合、これらの設定はデータベース ファイルから読み取られます。manually specified signals の場合、信号の最小および最大の物理値を指定できます。デフォルトでは、これらの設定を超える信号値はクリップされません。

プログラムでの使用

ブロック パラメーター: SignalInfo
型: string | character vector

拡張機能

すべて展開する

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2018a で導入

すべて展開する