25.canコントローラ - intel...25‒2 第25章:canコントローラ...

16
cv_54025-1.2 © 2012 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html . Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 2012 年 11 月 Subscribe ISO 9001:2008 Registered 25. CAN コントローラ 雌実詩司史仔質寺竺止紫支質斯旨至痔θHPSχ朔腰Cortex™-A9 爾使屍竺寺竺止紫支質 蒔誌紫詞θMPUχ支字斯旨至痔質次旨詞質寺竺止紫支腰採皿索 CAN 寺竺詞思識埼砺 ぁ際傘私使鴫屍詞質磁示式質仔屍止旨θDMAχ思執詞竺実鹿埼昨斯式仔識〛徳ぁ削 2 肴昨思執詞竺実鹿質嗣式仔質資紫詞宍実屍θCANχ思執詞竺実鹿燦蛬盗裁崎哉擦際甑 CAN 思執詞竺実鹿朔腰Bosch ® D_CAN 思執詞竺実鹿昨使執旨祉執旨埼腰ISO 11898-1 檮睛裁崎哉擦際甑 CAN コントローラの機能 CAN 思執詞竺実鹿朔腰通託昨㎏1燦蛬盗裁擦際甑 Bosch 昨司史字支使詞θwww.semiconductors.bosch.deχ埼養ヅ療1作 CAN Pro toc ol Spec i fi ca ti on 2.0 歯実詞 A 採皿索歯実詞 B 削檮睛 鏘彳 1 Mbps 擦埼昨寺竺市鹿痔療1作〛徳鴫実詞 鏘彳 128 〛昨磁紫止実施擦埼鴇莵 ゲ三ワ塡思実詩θECCχ 11 似紫詞昨④╪ゖ慕敕採皿索 29 似紫詞昨荐甍ゖ慕敕 寺竺市鹿痔療1作識実寺飼紫屍質示実詩 彳サ⑪視実祉¹=ぁ昨弸使私使鴫屍詞質磁示式質仔屍止旨θDMAχ思執詞竺実鹿 G湊冨=徳 November 2012 cv_54025-1.2

Upload: others

Post on 31-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 25.CANコントローラ - Intel...25‒2 第25章:CANコントローラ CANコントローラのブロック図およびシステム統合 Cyclone V デバイス・ハンドブック

cv_54025-1.2

© 2012 Altera Corporation. All rights reserved. ALTERA, ARRIare trademarks of Altera Corporation and registered in the U.Strademarks or service marks are the property of their respectivsemiconductor products to current specifications in accordanceservices at any time without notice. Altera assumes no responsdescribed herein except as expressly agreed to in writing by Alon any published information and before placing orders for pr

Cyclone Vデバイス・ハンドブックVolume 3:ハード・プロセッサ・システムのテ2012 年 11 月

November 2012cv_54025-1.2

25. CAN コントローラ

ハードウェア・プロセッサ・システム(HPS)は、Cortex™-A9 マイクロプロセッサ・

ユニット(MPU)サブシステム・ホスト・プロセッサ、および CAN プロトコルで使

用するダイレクト・メモリ・アクセス(DMA)コントローラでのシリアル通信用に 2つのコントローラ・エリア・ネットワーク(CAN)コントローラを提供しています。

CAN コントローラは、Bosch® D_CAN コントローラのインスタンスで、ISO 11898-1 に

対応しています。

CAN コントローラの機能CAN コントローラは、以下の機能を提供します。

■ Bosch のウェブサイト(www.semiconductors.bosch.de)で閲覧可能な CAN Protocol Specification 2.0 パート A およびパート B に対応

■ 最大 1 Mbps までのプログラム可能な通信レート

■ 最大 128 通のメッセージまで保持

■ 誤り訂正コード(ECC)

■ 11 ビットの標準識別子および 29 ビットの拡張識別子

■ プログラム可能なループバック・モード

■ 大規模データ転送用の外部ダイレクト・メモリ・アクセス(DMA)コントローラ

■ 自動再送信

A, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos . Patent and Trademark Office and in other countries. All other words and logos identified as e holders as described at www.altera.com/common/legal.html. Altera warrants performance of its with Altera's standard warranty, but reserves the right to make changes to any products and ibility or liability arising out of the application or use of any information, product, or service tera. Altera customers are advised to obtain the latest version of device specifications before relying oducts or services.

クニカル・リファレンス・マニュアル

Subscribe

ISO 9001:2008 Registered

Page 2: 25.CANコントローラ - Intel...25‒2 第25章:CANコントローラ CANコントローラのブロック図およびシステム統合 Cyclone V デバイス・ハンドブック

25‒2 第 25 章: CAN コントローラCAN コントローラのブロック図およびシステム統合

CAN コントローラのブロック図およびシステム統合図 25–1 に、CAN コントローラのブロック図を示します。

CAN コントローラは、以下のモジュールとインタフェースから構成されています。

■ CAN コア

■ CAN バス・インタフェースに接続します。

■ ISO 11898-1 プロトコルの全ファンクションを処理します。

■ メッセージ・ハンドラ

■ メッセージ RAM および CAN コアの間でのデータ転送を制御するステート・マ

シーンです。

■ 受け入れフィルタリングおよび割り込み生成を処理します。

■ メッセージ RAM

■ 最大 128 のメッセージ・オブジェクトの保存できます。

■ シングル・ビット・エラー訂正とダブル・ビット・エラー検出が可能です。

■ メッセージ RAM インタフェース

■ IF1および IF2の 2 つの独立したインタフェースがあります。

図25‒1. CAN コントローラのブロック図

CAN Controller

CAN Core

MessageRAM

MessageRAM

Interface

MessageHandler

RegisterBlock

Slave Interface

Host Processor(MPU Subsystem)

DMAController

SystemManager

L4 Peripheral Bus

Interrupt Request

DMA PeripheralRequest Interface

CAN Bus InterfaceCAN_TXDCAN_RXD

ECC ControlSignals

Cyclone Vデバイス・ハンドブック 2012年 11 月 Altera CorporationVolume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 3: 25.CANコントローラ - Intel...25‒2 第25章:CANコントローラ CANコントローラのブロック図およびシステム統合 Cyclone V デバイス・ハンドブック

第 25 章: CAN コントローラ 25‒3CAN コントローラの機能の説明

■ レジスタ・ブロック

■ モジュール・セットアップ用と間接メッセージ・オブジェクト・アクセス用

のコントロールおよびステータス・レジスタ(CSR)があります。

■ メッセージ RAM へのホスト・プロセッサ・アクセスはすべて、メッセージ

RAM インタフェースを中継します。

■ CSR アクセス用の Level 4(L4)スレーブ・インタフェース

CAN コントローラの機能の説明CAN コントローラは、CAN プロトコルのバージョン 2.0 パート A およびパート B に

応じて通信を実行します。CAN バスでのすべての通信はメッセージ・オブジェクト

を経由します。CAN コントローラは、メッセージ・オブジェクトをその内部メッ

セージ RAM に格納します。ホスト・プロセッサは、直接メッセージ RAM にアクセ

スできません。そのかわり、IF1および IF2メッセージ・インタフェース・レジスタ

のセットは、ホスト・プロセッサがメッセージにアクセスできるようにします。

メッセージは、メッセージ・ハンドラによってメッセージ RAN および CAN コアの間

を通過します。メッセージ・ハンドラには、受け入れフィルタリング、割り込み生

成、および送信リクエスト生成などのメッセージ・レベルの役割もあります。

メッセージ・オブジェクトメッセージ RAM は、最大 128 のメッセージ・オブジェクトを格納できます。ホス

ト・プロセッサのメッセージ RAM へのアクセスと CAN メッセージ送受信の間に起き

うる衝突を回避するには、ホスト・プロセッサを直接メッセージ・オブジェクトに

アクセスさせないことです。アクセスは、IF1および IF2のメッセージ・インタ

フェース・レジスタを通して処理されます。

表 25–1 に、メッセージ・オブジェクトの構造を示します。最初のロウにはメッセー

ジ・オブジェクトのコントロール・フラグが含まれており、2 番目のロウにはメッ

セージ・オブジェクトのマスクが、3 番目のロウには CAN メッセージがそれぞれ含

まれています。

メッセージ・オブジェクトのコントロール・フラグこの項では、メッセージ・オブジェクトのコントロール・フラグについて説明しま

す。

メッセージ・バリッド(MsgVal)■ 0= メッセージ・オブジェクトはメッセージ・ハンドラに無視されます。

■ 1= メッセージ・オブジェクトはコンフィギュレーションされて、メッセージ・ハ

ンドラで認識される必要があります。

表25‒1. メッセージ・オブジェクト構造MsgVal NewDat MsgLst IntPnd TxIE RxIE RmtEn TxRqst EoB

UMask Msk [28:0] MXtd MDir

ID [28:0] Xtd Dir DLC

[3:0]Data 0 [7:0]

Data 1 [7:0]

Data 2 [7:0]

Data 3 [7:0]

Data 4 [7:0]

Data 5 [7:0]

Data 6 [7:0]

Data 7 [7:0]

2012 年 11 月 Altera Corporation Cyclone Vデバイス・ハンドブックVolume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 4: 25.CANコントローラ - Intel...25‒2 第25章:CANコントローラ CANコントローラのブロック図およびシステム統合 Cyclone V デバイス・ハンドブック

25‒4 第 25 章: CAN コントローラCAN コントローラの機能の説明

ホスト・プロセッサは、CAN コントローラを初期化するために CAN コントロール・

レジスタ(CCTRL)の初期化ビット(Init)をリセットする前に未使用のメッセー

ジ・オブジェクトすべての MsgValビットを 0 に設定する必要があります。メッセー

ジ・オブジェクトをそれ以上使用しない場合、MsgValもゼロに設定する必要があり

ます。

MsgValフィールドは、メッセージ・バリッド・レジスタ(MOVALA、MOVALB、MOVALC、MOVALD、および MOVALX)から直接読み出し可能です。しかし、特別なメッセージ・

オブジェクト用として MsgValフィールドに書き込む場合、ホスト・プロセッサは

メッセージ・インタフェース・レジスタに書き込む必要があります。

新規データ(NewDat)■ 0= どの新規データも、ホスト・プロセッサによってこのフラグがクリアされて以

来、メッセージ・ハンドラによってこのメッセージ・オブジェクトのデータ部分

に書き込まれていません。

■ 1= メッセージ・ハンドラまたはホスト・プロセッサは、新規データをこのメッ

セージ・オブジェクトのデータ部分に書き込みました。

NewDatフィールドは、新しいデータ・レジスタ(MONDA、MONDB、MONDC、MONDD、お

よび MONDX)から直接読み出し可能です。しかし、特別なメッセージ・オブジェクト

用として NewDatフィールドに書き込む場合、ホスト・プロセッサはメッセージ・イ

ンタフェース・レジスタに書き込む必要があります。

メッセージ消失(MsgLst)■ 0= ホスト・プロセッサにこのビットがリセットされて以来メッセージ消失はあり

ません。

■ 1= NewDatビットがまだ設定されているときに、ホスト・プロセッサがメッセージ

を消失してしまったことを示すために、メッセージ・ハンドラは新規メッセージ

をこのオブジェクトに格納します。

MsgLstは、メッセージ方向ビット(Dir)が受信になっているメッセージ・オブジェ

クト中でのみ有効です。

割り込み待機(IntPnd)■ 0= このメッセージ・オブジェクトは割り込みのソースではありません。

■ 1= このメッセージ・オブジェクトは割り込みのソースです。より高い優先度の割

り込みソースが他にない場合、CAN 割り込みレジスタ(CIR)の割り込み識別子

フィールドはこのメッセージ・オブジェクトをポイントします。

IntPndフィールドは、割り込み待機レジスタ(MOIPA、MOIPB、MOIPC、MOIPD、およ

び MOIPX)から直接読み出し可能です。しかし、特別なメッセージ・オブジェクト用

として IntPndフィールドに書き込む場合、ホスト・プロセッサはメッセージ・イン

タフェース・レジスタに書き込む必要があります。

送信割り込みイネーブル(TxIE)■ 0= TxIEはディセーブルされます。フレームの送信後、IntPndは変更されずにその

ままです。

■ 1= TxIEはイネーブルされます。フレームの送信後、IntPndが設定されます。

Cyclone Vデバイス・ハンドブック 2012年 11 月 Altera CorporationVolume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 5: 25.CANコントローラ - Intel...25‒2 第25章:CANコントローラ CANコントローラのブロック図およびシステム統合 Cyclone V デバイス・ハンドブック

第 25 章: CAN コントローラ 25‒5CAN コントローラの機能の説明

受信割り込みイネーブル(RxIE)■ 0= RxIEはディセーブルされます。フレームの受信後、IntPndは変更されずにその

ままです。

■ 1= RxIEはイネーブルされます。フレームの受信後、IntPndが設定されます。

リモート・イネーブル(RmtEn)■ 0= RmtEnはディセーブルされます。リモート・フレームの受信時、TxRqstは変更

されずにそのままです。

■ 1= RmtEnはイネーブルされます。リモート・フレームの受信時、TxRqstが設定さ

れます。

送信リクエスト(TxRqst)■ 0= このメッセージ・オブジェクトは、送信を待機しません。

■ 1= このメッセージ・オブジェクトの送信が要求されて、完了していません。

TxRqstフィールドは、送信リクエスト・レジスタ(MOTRA、MOTRB、MOTRC、MOTRD、および MOTRX)から直接読み出し可能です。しかし、特別なメッセージ・オブジェク

ト用として TxRqstフィールドに書き込む場合、ホスト・プロセッサはメッセージ・

インタフェース・レジスタに書き込む必要があります。

ブロック終端(EoB)■ 0= メッセージ・オブジェクトは FIFO バッファ・ブロックに属しており、FIFO バッ

ファ・ブロックの最後のメッセージ・オブジェクトではありません。

■ 1= FIFO バッファ・ブロックのシングル・メッセージ・オブジェクトまたは最後の

メッセージ・オブジェクトです。

このビットは、FIFO バッファを構成する 2 つ以上のメッセージ・オブジェクト(最

大 128)を連結するために使用されます。(FIFO バッファに属していない)シング

ル・メッセージ・オブジェクトでは、このビットは常に 1 に設定されている必要が

あります。

メッセージ・オブジェクトのマスク・ビットメッセージ・オブジェクトのマスク・ビットは、アービトレーション・ビットと共

に受信メッセージの受け入れフィルタリングに使用されます。

受け入れマスクの使用(UMask)■ 0= マスクを無視します。Msk[28:0]、MXtd、および Mdirは受け入れフィルタリン

グに影響しません。受け入れられる受信メッセージでは、以下の条件すべてを満

たしている必要があります。

■ 受信メッセージが、メッセージ方向が 0(受信)に設定されたデータ・フレー

ムである、またはメッセージ方向が 1(送信)に設定されたリモート・フレー

ムであること。

■ 受信メッセージ識別子が、メッセージ・オブジェクトのメッセージ識別子

(ID[28:0])に一致していること。

■ 受信識別子の拡張ビットが、メッセージ・オブジェクトの識別子の拡張ビッ

ト(Xtd)と一致していること。

2012 年 11 月 Altera Corporation Cyclone Vデバイス・ハンドブックVolume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 6: 25.CANコントローラ - Intel...25‒2 第25章:CANコントローラ CANコントローラのブロック図およびシステム統合 Cyclone V デバイス・ハンドブック

25‒6 第 25 章: CAN コントローラCAN コントローラの機能の説明

■ 1= それぞれのマスク・ビットが受け入れフィルタリング用にセットアップされて

いる場合、受け入れフィルタリング用のマスク(Msk[28:0]、MXtd、および

MDir)を使用します。受け入れられる受信メッセージは、以下の条件をすべて満

たしている必要があります。

■ 受信メッセージが、メッセージ方向が 0(受信)に設定されたデータ・フレー

ムである、または MDirマスク・ビットがイネーブルされている状態でメッ

セージ方向が 1(送信)に設定されたリモート・フレームであること。

■ 受信メッセージ識別子が、Msk[28:0]マスク・ビットがイネーブルされている

メッセージ・オブジェクトのメッセージ識別子(ID[28:0])に一致している

こと。

■ 受信識別子の拡張ビットが、MXtdマスク・ビットがイネーブルされている

メッセージ・オブジェクトの識別子の拡張ビット(Xtd)と一致しているこ

と。

1 UMaskビットが 1 に設定されている場合、メッセージ・オブジェクトのマスク・ビッ

トは、MsgValが 1 に設定される前に、メッセージ・オブジェクトの初期化中にプロ

グラムされる必要があります。

識別子マスク(Msk[28:0])識別子マスクは、ID[28:0]の関連ビットをフィルタします。

■ 0= 関連する識別子ビットは、受け入れフィルタに影響しません。

■ 1= 関連する識別子ビットは、受け入れフィルタで使用されます。

拡張識別子マスク(MXtd)■ 0= 拡張フレーム識別子ビット(Xtd)は、受け入れフィルタに影響しません。

■ 1= 拡張フレーム識別子ビット(Xtd)は、受け入れフィルタで使用されます。

11 ビット(標準)識別子がメッセージ・オブジェクトで使用される場合、受信

データ・フレームの識別子は、ビット ID28~ビット ID18に書き込まれます。受

け入れフィルタでは、Msk28~ Msk18のマスク・ビットと共にこれらのビットの

みが使用されます。

マスク・メッセージ方向(MDir)■ 0= メッセージ方向ビット(Dir)は受け入れフィルタリングに影響しません。

■ 1= メッセージ方向ビット(Dir)は受け入れフィルタリングで使用されます。

(1) アルテラは、MDirを常に 1 に設定しておくことを推奨しています。メッセージ方向ビットを無視するには非常に注意深く処理することが必要で、高度な技術を要します。

CANのメッセージ・ビットアービトレーション・フィールドの ID28-0、Xtd、および Dirは、識別子および送信

メッセージのタイプを定義するために使用され、(マスク・フィールドの Msk28-0、MXtd、および MDirと共に)受信メッセージの受け入れフィルタリングで使用されま

す。データ・フレームを受信するように、あるいはリモート・フレームを送信する

ように方向が設定されている場合、受信メッセージは、一致する識別子のバリッド・

Cyclone Vデバイス・ハンドブック 2012年 11 月 Altera CorporationVolume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 7: 25.CANコントローラ - Intel...25‒2 第25章:CANコントローラ CANコントローラのブロック図およびシステム統合 Cyclone V デバイス・ハンドブック

第 25 章: CAN コントローラ 25‒7CAN コントローラの機能の説明

メッセージ・オブジェクトに格納されます。拡張フレームは、Xtdが 1 に設定されて

いるメッセージ・オブジェクトにのみ格納できて、標準フレームは、Xtdが 0 に設定

されているメッセージ・オブジェクトに格納できます。受信メッセージ(データ・

フレームまたはリモート・フレーム)が 1 つ以上のバリッド・メッセージ・オブ

ジェクトに一致している場合、最小のメッセージ数でオブジェクトに格納されます。

メッセージ識別子(ID[28:0])■ ID28-ID0:29 ビット識別子(拡張フレーム)

■ ID28-ID18:11 ビット識別子(標準フレーム)

拡張フレーム識別子(Xtd)■ 0= 11 ビット(標準)識別子は、このメッセージ・オブジェクトで使用されます。

■ 1= 29 ビット(拡張)識別子は、このメッセージ・オブジェクトで使用されます。

メッセージ方向(Dir)■ 0= 受信方向です。TxRqstが 1 に設定されている場合、このメッセージ・オブジェ

クトの識別子のリモート・フレームが送信されます。一致した識別子のデータ・

フレームの受信時に、そのメッセージはこのメッセージ・オブジェクトに格納さ

れます。

■ 1= 送信方向です。TxRqstが 1 に設定されている場合、それぞれのメッセージ・オ

ブジェクトはデータ・フレームとして送信されます。一致した識別子のリモー

ト・フレームの受信時に、このメッセージ・オブジェクトの TxRqstビットは 1に設定されます(RmtEn = 1 の場合)。

データ長コード(DLC[3:0])DLC は、データ・フレームのデータ・バイト数を指定します。最大バイト数は 8 で

す。

メッセージ・オブジェクトのデータ長コード(DLC)は、すべての CAN デバイスの同

一識別子のすべての関連オブジェクトの中と同じように定義されます。メッセージ・

ハンドラがデータ・フレームを格納する場合、DLCフィールドを受信メッセージで与

えられる値に設定します。

データ・バイト 0~ 7(Data 0[7:0] - Data 7[7:0])CAN データ・フレームのデータ・バイトです。

メッセージ・インタフェース・レジスタメッセージ・インタフェース・レジスタには IF1および IF2の 2 つがあり、ホス

ト・プロセッサまたは DMA コントローラに対して、間接的に任意のメッセージ・オ

ブジェクトにアクセスするための手段を提供します。メッセージ・オブジェクトは、

メッセージ RAM およびメッセージ・バッファ・レジスタ間で、メッセージ間のデー

タ一貫性を維持しながらシングルのアトミック動作として転送されます。

2012 年 11 月 Altera Corporation Cyclone Vデバイス・ハンドブックVolume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 8: 25.CANコントローラ - Intel...25‒2 第25章:CANコントローラ CANコントローラのブロック図およびシステム統合 Cyclone V デバイス・ハンドブック

25‒8 第 25 章: CAN コントローラCAN コントローラの機能の説明

表 25–2 に、各メッセージ・インタフェース・レジスタ・セットの構造を示します。

ここで、x は 1 または 2 のどちらか一方に設定することを示しています。

DMA モード図 25–1 に示すように、CAN コントローラは DMA コントローラのリクエストを発行

して、メッセージ・インタフェース・レジスタ間またはそれらとシステム・メモリ

との間でデータを転送できます。CAN コントローラには、can_if1dmaおよび

can_if2dmaと呼ばれる 2 つの DMA リクエスト・インタフェースがあります。CAN ペリ

フェラル・リクエスト・インタフェースは、FPGA の DMA ペリフェラル・リクエス

ト・インタフェースと共有されます。DMA ペリフェラル・リクエスト・インタ

フェースを使用するには、ホスト・プロセッサがプロトコル・グループ(protogrp)の CAN コントロール・レジスタ(CCTRL)にアクセスする必要があります。ペリフェ

ラル・リクエスト・インタフェースは、システム・マネージャを通して選択されま

す。

f CAN DMA ペリフェラル・リクエスト・インタフェースの選択について詳しくは、

Cyclone V デバイス・ハンドブック Volume 3 の System Manager の章を参照してくださ

い。

DMA サポート機能をアクティベートして転送を初期化するには、メッセージ・イン

タフェース・グループ(msgifgrp)の適切な IF コマンド・レジスタ(IFxCMR)の

DMAactiveビットに 1 を書き込みます。メッセージ・オブジェクト転送の完了後、

CAN コントローラは DMA ペリフェラル・リクエストを発行して次のメッセージ・オ

ブジェクト転送を実行します。リクエストは、メッセージ・インタフェース・レジ

スタに対する最初の読み出しまたは書き込みまでアクティブの状態が維持されます。

f 詳しくは、Cyclone V デバイス・ハンドブック Volume 3 の DMA Controller の章を参照し

てください。

表25‒2. メッセージ・インタフェース・レジスタのセット

レジスタ・タイプ レジスタ 名称 説明

コマンド IFxCMR IFx コマンド・レジスタ

転送方向を指定して、メッセージ・オブジェクトの転送する部分を選択します。

メッセージ・バッファ

IFxMSK IFx マスク・レジスタ

メッセージ・オブジェクトの Msk、MDir、および MXtdマスク・フィールドへのアクセスを提供します。

IFxARBIFx アービトレーション・レジスタ

メッセージ・オブジェクトの ID、Dir、Xtd、および MsgValアービトレーション・フィールドへのアクセスを提供します。

IFxMCTR

IFx メッセージ・コントロール・レジスタ

メッセージ・オブジェクトの DLC、EoB、TxRqst、RmtEn、RxIE、TxIE、UMask、IntPnd、MsgLst、および NewDatフィールドへのアクセスを提供します。

IFxDA IFx データ Aレジスタ

メッセージ・オブジェクトのデータ・バイト 0 ~ 3 へのアクセスを提供します。

IFxDB IFx データ Bレジスタ

メッセージ・オブジェクトのデータ・バイト 4 ~ 7 へのアクセスを提供します。

Cyclone Vデバイス・ハンドブック 2012年 11 月 Altera CorporationVolume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 9: 25.CANコントローラ - Intel...25‒2 第25章:CANコントローラ CANコントローラのブロック図およびシステム統合 Cyclone V デバイス・ハンドブック

第 25 章: CAN コントローラ 25‒9CAN コントローラの機能の説明

自動再送信CAN コントローラは、アービトレーションを失ったフレームまたは送信中にエラー

が発生したフレームを自動再送信する手段を提供します。再送信は、ユーザーが介

入や通知をしなくても自動的に発生します。送信がうまくいった場合には通常の確

認がなされます。

テスト・モードテスト・モードをイネーブルするには、CCTRLレジスタのテスト・モード・イネーブ

ル・ビット(Test)を 1 に設定します。この動作によって、CAN テスト・レジスタ

(CTR)への書き込みアクセスがアクティベートされます。以下の項では、使用可能

なテスト・モードを説明します。

サイレント・モードテスト・レジスタ(CTR)のサイレント・モード(Silent)ビットを 1 にプログラミ

ングすることで、CAN コントローラがサイレント・モードに設定されます。サイレ

ント・モードでは、CAN コントローラはバリッド・データ・フレームおよびバリッ

ド・リモート・フレームを受信することができますが、CAN_TXDピンを High の状態

に保持して CAN バスにデータを送信しません。サイレント・モードは、主要なビッ

トの送信による CAN バスへの影響なしでそのトラフィックを解析するために使用で

きます。ISO 11898-1 では、サイレント・モードはバス・モニタリング・モードと呼

ばれます。

図 25–2 に、サイレント・モードでの CAN コアを示します。

ループバック・モードテスト・レジスタ(CTR)のループバック・モード(LBack)ビットを 1 にプログラ

ミングすることで、CAN コントローラがループバック・モードに設定されます。

ループバック・モードでは、CAN コントローラは、自身の送信メッセージを受信

メッセージとして扱って、それらを受信バッファに格納します(受け入れフィルタ

リングを通過する場合)。

外部シミュレーションと独立させるために、CAN コントローラは、ループバック・

モードでは確認エラーを無視します。このモードでは、CAN コントローラは、送信

(TX)出力から受信(RX)入力に対して内部フィードバックを提供します。入力ピン

の実際の値は CAN コントローラに無視されます。

図25‒2. サイレント・モードでの CAN コア

CAN Controller

CAN_TXD

CAN_RXD

CAN Core

TX

RX

Vcc

2012 年 11 月 Altera Corporation Cyclone Vデバイス・ハンドブックVolume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 10: 25.CANコントローラ - Intel...25‒2 第25章:CANコントローラ CANコントローラのブロック図およびシステム統合 Cyclone V デバイス・ハンドブック

25‒10 第 25 章: CAN コントローラCAN コントローラの機能の説明

図 25–3 に、ループバック・モードでの CAN コアを示します。

組み合わせモードテスト・レジスタ(CTR)のサイレント・モード(Silent)ビットおよびループバッ

ク・モード(LBack)ビットを 1 にプログラミングすることで、CAN コントローラは

ループバックとサイレントの組み合わせモードに設定されます。組み合わせモード

は、CAN バスに接続されているほかのデバイスに影響することなく CAN ハードウェ

アをテストするために使用できます。このモードでは、CAN_RXDピンは CAN コアか

ら接続されておらず、CAN_TXDピンは High に維持されます。

図 25–4 に、組み合わせモードでの CAN コアを示します。

L4 スレーブ・インタフェースホスト・プロセッサは、L4 スレーブ・インタフェースを通して CAN コントローラの

データ、コントロール、およびステータスの情報にアクセスします。スレーブ・イ

ンタフェースは、32 ビット・アクセスのみサポートしています。

1 このインタフェースは、エラー応答をサポートしていません。

クロックCAN コントローラは、l4_sp_clkクロック入力および can_clkクロック入力で動作し

ます。l4_sp_clkクロックは L4 スレーブ・インタフェースによって使用されて、

can_clkは CAN コアを動作するために使用されます。

can_clkクロックは、少なくとも CAN バス・インタフェースの 8 倍の速度にプログラム

されている必要があります。例えば、1 Mbps のボーレートで動作する CAN バス・イ

ンタフェースでは、can_clkクロックは少なくとも 8 MHz に設定されている必要があ

ります。l4_sp_clkクロックは、can_clk周波数以上のクロック周波数で動作できま

す。

図25‒3. ループバック・モードでの CAN コア

図 25‒4. 組み合わせモードでの CAN コア

CAN Controller

CAN_TXD

CAN_RXD

CAN Core

TX

RX

CAN Controller

CAN_TXD

CAN_RXD

CAN Core

TX

RX

Vcc

Cyclone Vデバイス・ハンドブック 2012年 11 月 Altera CorporationVolume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 11: 25.CANコントローラ - Intel...25‒2 第25章:CANコントローラ CANコントローラのブロック図およびシステム統合 Cyclone V デバイス・ハンドブック

第 25 章: CAN コントローラ 25‒11CAN コントローラの機能の説明

f l4_sp_clkクロックおよび can_clkクロックについて詳しくは、Cyclone V デバイス・ハンドブック Volume 3 の Clock Manager の章を参照してください。

リセット各 CAN コントローラは、ソフトウェアまたはハードウェアによってリセットできま

す。

ソフトウェアのリセットソフトウェアは、CAN コントローラ・レジスタ・マップのプロトコル・グループ

(protogrp)の CAN コントロール・レジスタ(CCTRL)の Initビットを設定するこ

とで初期化されます。バスが CAN リンクでオフ状態である場合、このビットは CANプロトコルを通して設定されます。また、このビットは「ハードウェアのリセット」

で説明しているハードウェア・リセット入力を通しても設定されます。

1 2 つのクロック・ドメイン間の同期メカニズムにより、Initビットに書き込まれる値

が読み返せるようになるまでに遅延が生じることがあります。前回書き込まれた値

が受け取られたことを確認するには、Initビットを新規の値に設定する前にそれを

読み出します。

1 バス・オフ・リカバリ・シーケンスは、Initビットの設定またはリセットによる短

縮ができません。バス・オフについて詳しくは、Bosch のウェブサイト

(www.semiconductors.bosch.de)で閲覧可能な CAN Protocol Specification 2.0 パート A お

よびパート B を参照してください。

ハードウェアのリセットそれぞれの CAN コントローラには、個別のリセット信号があります。リセット・マ

ネージャは、コールド・リセットまたはウォーム・リセット時にそれらの信号を駆

動します。リセット信号は、両方のクロック・ドメインに同期して、CAN コント

ローラ内の適切なロジックに適用されます。

f 詳しくは、Cyclone V デバイス・ハンドブック Volume 3 の Reset Manager の章を参照して

ください。

割り込み各 CAN コントローラは、2 つの割り込み信号を生成します。1 つはエラーおよびス

テータス割り込みを示すもので、もう 1 つはメッセージ・オブジェクト割り込みを

示すものです。どちらの割り込み信号もグローバル割り込みコントローラ(GIC)に

接続されます。割り込みは、プロトコル・グループ(protogrp)の CAN コントロー

ル・レジスタ(CCTRL)でイネーブルされます。プロトコル・グループ(protogrp)の CAN 割り込みレジスタ(CIR)は、待機中の最高優先度の割り込みを示します。

エラー割り込み以下のエラー条件において、割り込みが生成されます。

■ バス・オフ — 送信エラー・カウントが 256 以上の場合、プロトコル・グループ

(protogrp)の CAN ステータス・レジスタ(CSTS)のバス・オフ(BOff)ビット

は 1 に設定されます。

2012 年 11 月 Altera Corporation Cyclone Vデバイス・ハンドブックVolume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 12: 25.CANコントローラ - Intel...25‒2 第25章:CANコントローラ CANコントローラのブロック図およびシステム統合 Cyclone V デバイス・ハンドブック

25‒12 第 25 章: CAN コントローラCAN コントローラのプログラミング・モデル

■ エラー警告 — 送信エラー・カウンタまたは受信エラー・カウンタのどちらか一方

が 96 に達している場合、プロトコル・グループ(protogrp)の CAN ステータ

ス・レジスタ(CSTS)のエラー警告ステータス(EWarn)ビットが 1 に設定され

ます。

ステータス割り込み以下のステータス条件において、割り込みが生成されます。

■ 受信 OK—CAN コントローラがメッセージの受信に成功すると、プロトコル・グ

ループ(protogrp)の CAN ステータス・レジスタ(CSTS)の RxOKビットが 1 に

設定されます。

■ 送信 OK—CAN コントローラがメッセージの送信に成功すると、プロトコル・グ

ループ(protogrp)の CAN ステータス・レジスタ(CSTS)の TxOKビットが 1 に

設定されます。

■ ラスト・エラー・コード — メッセージがエラーと共に送受信される場合。エ

ラー・タイプに応じてプロトコル・グループ(protogrp)の CAN ステータス・レ

ジスタ(CSTS)の LECビットが設定されます。

メッセージ・オブジェクト割り込み関連メッセージ・オブジェクトの TxIEビットまたは RxIEビットが 1 に設定されて

いる場合、メッセージ・オブジェクトからの IntPndビットは割り込みを生成できま

す。表 25–3 に、割り込み待機中レジスタのメッセージ・オブジェクトの割り込み情

報の場所を示します。割り込み待機中レジスタは、メッセージ・ハンドラ・グルー

プ(msghandgrp)にあります。

MOIPXレジスタによって、どのメッセージ・オブジェクト・グループに待機中割り込

みがあるかソフトウェアが素早く検出できるようになります。

CAN コントローラのプログラミング・モデルこの項では、CAN コントローラの動作方法について説明します。

ソフトウェアの初期化CAN コントロール・レジスタ(CCTRL)の Initビットを 1 に設定することで、ソフ

トウェアの初期化が開始されます。Initビットが 1 のとき、CAN バスとの間でメッ

セージは転送されず、CAN_TXDの CAN バス出力が High ステートに維持されます。

Initビットを設定しても、コンフィギュレーション・レジスタは何も変わりません。

表25‒3. メッセージ・オブジェクトの割り込みレジスタ

レジスタ タイトル メッセージ・オブジェクト

MOIPA 割り込み待機中 A レジスタ 1 ~ 32MOIPB 割り込み待機中 B レジスタ 33 ~ 64MOIPC 割り込み待機中 C レジスタ 65 ~ 96MOIPD 割り込み待機中 D レジスタ 97 ~ 128

Cyclone Vデバイス・ハンドブック 2012年 11 月 Altera CorporationVolume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 13: 25.CANコントローラ - Intel...25‒2 第25章:CANコントローラ CANコントローラのブロック図およびシステム統合 Cyclone V デバイス・ハンドブック

第 25 章: CAN コントローラ 25‒13CAN コントローラのプログラミング・モデル

CAN コントローラを初期化するには、ホスト・プロセッサは、CAN 通信で使用され

る CAN ビット・タイミング(CBT)レジスタおよびメッセージ・オブジェクトをプロ

グラムする必要があります。メッセージ・オブジェクトが必要ない場合、RAM 初期

化後のデフォルトのように、メッセージ・オブジェクトの MsgValビットを非バリッ

ド(0)に設定すれば十分です。MsgValビットをバリッド(1)に設定する前に、

メッセージ・オブジェクト全体を設定する必要があります。メッセージ・オブジェ

クトは、メッセージ・インタフェース・レジスタ・セットのどちらかを通して設定

されます。

CAN コントロール・レジスタ(CCTRL)のコンフィギュレーション変更イネーブル

(CCE)ビットおよび Initビットがどちらも 1 に設定されている場合、CAN ビット・

タイミング(CBT)レジスタへのアクセスがイネーブルされます。

Initビットを 0 に設定することで、ソフトウェア初期化を終了します。CAN コアは、

バスの動作およびメッセージ転送に関われるようになる前にバスがアイドル状態に

なるまで待機することで、CAN バスのデータ転送に同期します。

メッセージ・オブジェクトの初期化は、CAN コントロール初期化から独立しており

いつでも実行可能ですが、メッセージ・オブジェクトはすべて、メッセージ転送が

開始する前に特定の識別子にコンフィギュレーションされているか非バリッドに設

定されている必要があります。

起動時、メッセージ RAM は初期化される必要があります。RAM を初期化するには、

Initビットを 1 に設定して、プロトコル・グループ(protogrp)の CAN ファンクショ

ン・レジスタ(CFR)の RAMInitビットを 1 に設定します。RAM 初期化が完了する

と、RAMInitビットは 0 に戻ります。RAM 初期化中は、すべてのメッセージ・オブ

ジェクトがゼロにクリアされていて RAM ECC ビットが初期化されます。RAM へのア

クセスは、RAM 初期化前または初期化中には許可されません。

CAN メッセージの転送CAN コントローラが初期化されると、CAN コントローラは CAN バスに同期してメッ

セージの転送を開始します。

メッセージがメッセージ・ハンドラの受け入れフィルタリングを通過してきた場合、

受信されるメッセージは適切なメッセージ・オブジェクトに格納されます。すべて

のアービトレーション・ビット、Xtd、Dir、DLC、8 データ・バイト、マスク・ビッ

トおよびコントロール・ビットの UMask、MXtd、MDir、EoB、MsgLst、RxIE、TxIE、および RmtEnを含むメッセージ全体は、メッセージ・オブジェクトに格納されます。

受信メッセージが格納されている場合、マスクされたアービトレーション・ビット

は、メッセージ・オブジェクト内で変更される可能性があります。

ホスト・プロセッサは、メッセージ・インタフェース・レジスタを使用するときは

いつでも各メッセージを読み出しまたは更新することがあります。メッセージが

RAM との間で転送されると同時にホスト・プロセッサがメモリ・オブジェクトにア

クセスする場合、メッセージ・ハンドラはデータの一貫性を保証します。

転送されるメッセージは、ホスト・プロセッサによって更新されます。パーマネン

トなメッセージ・オブジェクト(コンフィギュレーション中に設定されるアービト

レーション・ビットおよびコントロール・ビットが複数の CAN 転送用に変更されな

いメッセージ・オブジェクト)がメッセージ用に存在する場合、データ・バイトの

み更新される必要があります。それぞれの送信メッセージが同じメッセージ・オブ

ジェクトに割り当てられている場合(メッセージ・オブジェクト数が十分ではない

場合)、このメッセージの送信が要求される前に全メッセージ・オブジェクトをコン

フィギュレーションする必要があります。

2012 年 11 月 Altera Corporation Cyclone Vデバイス・ハンドブックVolume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 14: 25.CANコントローラ - Intel...25‒2 第25章:CANコントローラ CANコントローラのブロック図およびシステム統合 Cyclone V デバイス・ハンドブック

25‒14 第 25 章: CAN コントローラCAN コントローラのプログラミング・モデル

内部での優先度に応じて、メッセージ・オブジェクトが送信されると同時に、任意

の数のメッセージ・オブジェクトの送信が要求される可能性があります。メッセー

ジ・オブジェクト数は 1 ~ 128 で、内部において 1 が最下位、128 が最上位の優先度

です。要求された送信が待機中であっても、メッセージが更新されるか、あるいは

非バリッド(MsgVal=0)として設定される可能性があります。待機中の送信が開始

する前にメッセージが更新されると、古いデータは無視されます。

メッセージ・オブジェクトのコンフィギュレーションに応じて、マッチング識別子

を持っているリモート・フレームの受信によって、メッセージの送信が自動的に要

求されることがあります。リモート・フレームは、CAN ネットワークで特別なメッ

セージを要求するために使用されるフレームです。

1 プログラミングを容易にするために、アルテラは、受信方向と送信方向の動作でそ

れぞれ異なる IF メッセージ・インタフェースを使用することを推奨しています。

フレーム受信のためのメッセージ・オブジェクトのリコンフィギュレーション

データ・フレームを受信するようにメッセージ・オブジェクトをコンフィギュレー

ションするには、Dirフィールドを 0 に設定します。

リモート・フレームを受信するようにメッセージ・オブジェクトをコンフィギュ

レーションするには、Dirフィールドを 1 に、UMaskを 1 に、RmtEnを 0 にそれぞれ

設定します。

オブジェクトが送信されている間にそれが変更されないようにするには、以下のコ

ンフィギュレーション・ビットおよびコントロール・ビットを変更する前に MsgValを 0 に設定する必要があります。

■ ID[28:0]

■ Xtd

■ DLC[3:0]

■ RxIE

■ TxIE

■ RmtEn

■ EoB

■ UMask

■ Msk[28:0]

■ MXtd

■ MDir

メッセージ・オブジェクトの以下のフィールドは、MsgValクリアせずに変更できま

す。

■ Data0[7:0] to Data7[7:0]

■ TxRqst

■ NewDat

■ MsgLst

Cyclone Vデバイス・ハンドブック 2012年 11 月 Altera CorporationVolume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 15: 25.CANコントローラ - Intel...25‒2 第25章:CANコントローラ CANコントローラのブロック図およびシステム統合 Cyclone V デバイス・ハンドブック

第 25 章: CAN コントローラ 25‒15CAN コントローラのアドレス・マップおよびレジスタの定義

■ IntPnd

フレーム送信のためのメッセージ・オブジェクトのリコンフィギュレーション

データ・フレームを送信するようにメッセージ・オブジェクトをコンフィギュレー

ションするには、Dirフィールドを 1 に設定して、UMaskを 0 に設定するか RmtEnを

1 に設定します。

以下のコンフィギュレーション・ビットおよびコントロール・ビットを変更する前

に、MsgValを 0 に設定する必要があります。

■ Dir

■ RxIE

■ TxIE

■ RmtEn

■ EoB

■ UMask

■ Msk[28:0]

■ MXtd

■ MDir

メッセージ・オブジェクトの以下のフィールドは、MsgValをクリアせずに変更でき

ます。

■ ID[28:0]

■ Xtd

■ DLC[3:0]

■ Data0[7:0] to Data7[7:0]

■ TxRqst

■ NewDat

■ MsgLst

■ IntPnd

CAN コントローラのアドレス・マップおよびレジスタの定義f アドレス・マップおよびレジスタの定義は、このハンドブックの volume に付属の

hps.html ファイルにあります。ファイルを開くにはリンクをクリックします。

モジュールの説明およびベース・アドレスを見るには、スクロールして以下のモ

ジュール・インスタンスのリンクをクリックします。

■ can0

■ can1

2012 年 11 月 Altera Corporation Cyclone Vデバイス・ハンドブックVolume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 16: 25.CANコントローラ - Intel...25‒2 第25章:CANコントローラ CANコントローラのブロック図およびシステム統合 Cyclone V デバイス・ハンドブック

25‒16 第 25 章: CAN コントローラ改訂履歴

そしてレジスタおよびフィールドの説明を見るには、スクロールしてレジスタ名を

クリックします。レジスタのアドレスは、各モジュール・インスタンスのベース・

アドレスに相対的なオフセットです。

f すべてのモジュールのベース・アドレスは、Cyclone V デバイス・ハンドブックVolume 3 の Introduction to the Hard Processor System の章にも示されています

改訂履歴表 25–4 に、本資料の改訂履歴を示します。

表25‒4. 改訂履歴

日付 バージョン 変更内容

2012 年 11 月 1.2■ マイナーな更新。

■ リセットの項の拡張。

■ 割り込みの項の拡張。

2012 年 5 月 1.1 ブロック図およびシステム統合、機能の説明、プログラミング・モデル、アドレス・マップとレジスタの定義の各項の追加。

2012 年 1 月 1.0 初版。

Cyclone Vデバイス・ハンドブック 2012年 11 月 Altera CorporationVolume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル