このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
CAN FD Pack
CAN FDバスのメッセージに個々の信号をパックする

ライブラリ:
Vehicle Network Toolbox /
CAN FD Communication
C2000 Microcontroller Blockset /
Target Communication
Simulink Real-Time /
CAN /
CAN-FD MSG blocks
説明
例
Simulink での CAN FD 通信入門
この例では、MathWorks ® 仮想 CAN FD チャネルを使用して、Simulink ® で CAN FD メッセージの送受信を設定する方法を示します。仮想チャネルはループバック構成で接続されます。
端子
入力
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 で導入ARXML ファイル定義をサポートするために、次のパラメータが更新されます。
Data input as — 新しいオプション
ARXML specified signals
が追加されました。
CANdb file — ブロックマスクで データベース ファイル に名前が変更されました。プログラム名は
CANdbFile
のままです。
パラメーター 入力ポートから CAN 識別子を指定する は、入力ポート CAN Msg ID を追加して、CAN 識別子の動的な指定をサポートします。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)