2.22 CAN受信デバッグ【Full-spec emulator】【E1】【E20】

CAN受信デバッグは,RS-CANのチャネル間通信機能を使用し,任意のチャネルに対して連続でCANのフレームを送信することで,チャネルの受信処理のデバッグを簡易に行う機能です。

注意

本機能は,2チャネル以上のRS-CANユニットを搭載しているデバイスに対応しています。
なお,RS-CAN FDユニットを搭載しているデバイスには対応していません(RS-CAN FDユニットは動作モードがクラシカルCANモードの場合はRS-CANとして振る舞いますが,ユニットが異なるため本機能には対応していません)。

 

[使い方]

(1)

CAN受信デバッグ パネルを開く

ソリューション一覧 パネルを開き,CAN受信デバッグの[GO]ボタンをクリックすると,CAN受信デバッグ パネル【Full-spec emulator】【E1】【E20】が開きます。

本機能をご利用頂くことで,マイクロコントローラ単体でのCAN受信処理の動作検証が可能です。

(2)

CAN受信デバッグの準備を行う

CAN受信デバッグ開始前に行う設定を説明します。

(a)

RS-CAN全体の設定を行う

RS-CAN全体の設定として,クロック・ソースの選択,タイムスタンプ機能を使用するかどうか,DLCチェック機能を使用するかどうか,DLC置換機能を使用するかどうかを設定します(「RS-CAN全体設定 ダイアログ【Full-spec emulator】【E1】【E20】」参照)。

それぞれ以下のような意味があります。

<1>

クロック・ソースの選択

以下の図のように,RS-CANにはclk_xincan,clkc,pclkの3系統のクロック入力があります。

図 2.156

RS-CANクロック

 

このうちclk_xincan,clkcは図ののスイッチで各チャネルのボーレート・プリスケーラに入力するクロックを選択する必要があります。

それぞれのクロック入力がマイクロコントローラのどのクロック源に接続されているかはデバイスごとに異なります。詳細は,デバイスのハードウェア・マニュアルを参照してください。

<2>

タイムスタンプ機能

フレーム受信時間のタイムスタンプを受信バッファ,または受信FIFOに格納する機能です。

CAN受信デバッグ時は,タイムスタンプ用タイマの入力クロックはpclkを2分周したものになります。

<3>

DLCチェック機能

RS-CANにてフレーム受信時に,DLC(Data Length Code)によるフィルタを行うかどうかを設定します。

この設定は,チャネルごとではなくRS-CANモジュール全体の設定として効くため,RS-CAN全体の設定として用意しています。

DLCチェック機能を使用すると,受信チャネル設定 ダイアログ【Full-spec emulator】【E1】【E20】の受信ルールで設定したデータ・サイズ以上のフレームが通過するようになります。

お客様のシステムにあわせて設定してください。

<4>

DLC置換機能

DLCチェック機能のフィルタ通過時に,DLCコードを受信ルールに設定されているデータ・サイズの値に置換します。

DLCチェック機能を使用する場合のみ有効です。

備考

DLC置換機能を使用し,受信したフレームのデータ・サイズが受信ルールのデータ・サイズ以上の場合は,DLCを0x0に置換します。

(b)

受信チャネルの設定を行う

CAN受信デバッグの対象となる受信チャネルのチャネル番号,受信スピード,使用する受信バッファ数,使用する受信FIFO番号,受信ルールを受信チャネル設定 ダイアログ【Full-spec emulator】【E1】【E20】で設定します。

詳細は以下のようになります。

<1>

受信チャネル番号の指定

CAN受信デバッグの対象となる受信チャネルのチャネル番号を指定します。

お客様のデバッグしたい受信処理を呼び出すチャネルを指定してください。

<2>

受信スピード

ボーレート・プリスケーラの分周比,プロパゲーション・タイム・セグメントの時間単位,フェーズ・バッファ・セグメントの時間単位,再同期ジャンプ幅の時間単位を設定することで受信スピードを決定します。

 

ボーレート・プリスケーラは,「<1> クロック・ソースの選択」で選択したクロックの分周比を設定します。

この分周したクロックの周期が1時間単位(Tq)となります。

 

RS-CANで1ビットのデータを取得するサンプル時間と,プロパゲーション・タイム・セグメント,フェーズ・バッファ・セグメント,再同期ジャンプ幅の関係は以下のとおりです。この関係により,最終的な受信スピードが決定します。

図 2.157

RS-CAN_1ビット・サンプル時間

 

SS

シンクロナイゼーション・セグメント

インターフレームスペース中に,レセシブからドミナントへのエッジをモニタして同期をとるセグメントです。RS-CANでは1Tq固定です。

TSEG1

プロパゲーション・タイム・セグメント

CANネットワーク上の物理的な遅延を吸収するセグメントです。4〜16Tqの範囲で設定します。

TSEG2

フェーズ・バッファ・セグメント

周波数の誤差によるフェーズ・エラーを補償するセグメントです。2〜8Tqの範囲で設定します。必ずTSEG1より小さい値を設定する必要があります。

SJW

再同期ジャンプ幅

フェーズ・エラーによって起こる位相誤差を補償するために,タイム・セグメントを延長,または短縮する長さです。1〜4Tqの範囲で設定します。必ずTSEG2以下の値を設定する必要があります。

<3>

使用する受信バッファ数

RS-CANではチャネルごとの受信バッファは連続した領域であり,受信バッファ数を指定すると0〜(受信バッファ数-1)番までの受信バッファを指定したことと同じ意味になります。

受信バッファは番号1につき1フレーム分のデータを格納します。

<4>

使用する受信FIFO番号

RS-CANでは受信フレームの格納にFIFOを使用できます。1つのFIFOは128フレーム分のデータを格納できます。

<5>

受信ルール

受信したフレームをどの受信バッファ/FIFOに振り分けるのかのフィルタの設定です。

ID,フレーム種類,データ・サイズによってフィルタリングします。

受信ルールごとにラベルを指定することでどの受信ルールが適用されたのかを判別できます。

(c)

送信チャネルの設定を行う

デバッグ用フレームの送信に使用するチャネル番号とフレームを連続で送信するインターバル時間を送信チャネル設定 ダイアログ【Full-spec emulator】【E1】【E20】で設定します。

詳細は以下のようになります。

<1>

送信チャネル番号の指定

CAN受信デバッグはRS-CANモジュールのチャネル間通信機能を使用するため,フレーム送信用に1チャネル占拠します。

使用していないチャネルか,デバッグ対象でないチャネル番号を指定してください。

<2>

連続送信インターバル時間

連続送信インターバル時間の基準クロックは,「<1> クロック・ソースの選択」の図にあるように,pclkを2分周したものになります。

基準周波数に対する分周比,その分周したクロックを何クロック分使用するか,またそれを10倍するかどうかを指定します。

(d)

送信フレームの設定を行う

送信するフレームを送信フレーム設定 ダイアログ【Full-spec emulator】【E1】【E20】で設定します。

CAN受信デバッグで指定可能なCANフレームは,データ・フレームとリモート・フレームのみです。

デバッグ対象のチャネルに送信したいフレームの種類,ID,データ・サイズ,データを設定してください。

設定したフレームは「<2> 連続送信インターバル時間」で設定したインターバル時間で送信します。

(e)

設定反映するタイミングを指定する

ここまで行ってきた設定を反映させるタイミングを指定します。

CAN受信デバッグ実行直後に設定を反映するか,指定アドレス実行時に反映するかを指定します。

CAN受信デバッグはRS-CANモジュールの設定を変更するため,ユーザ・コード上のRS-CANモジュール設定処理が終わった後に設定を反映するようにしてください。

(3)

CAN受信デバッグを開始する

デバッグを行いたい受信処理の関数にブレークポイントを設定し,パネル上のツールバーから を押下することでCAN受信デバッグを開始します。

(4)

停止後にデバッグする

設定したブレークポイントで停止した後は,通常のデバッグを行うことができます。