NEC ELECTRONICS NEC ELECTRONICS
NEC electronics NEC electronics NEC
ホーム
アプリケーション
製品情報
先端技術
サポート
WEBショップ
ニュース&イベント
会社案内
header
GO
詳細検索機能/特性検索
サイトマップ お問い合わせ

CAN

目次

    
FAQ-ID = v85can-nnnn
0002: CAN:メッセージ送受信の完了の確認方法 [V850/SF1]
0003: CAN:割り込みを使わずに送受信の完了を確認する方法 [V850/SF1]
0004: CAN:内部レジスタのアドレスが複数あるのは? [V850/SF1]
0005: CAN:各レジスタの設定について教えて [V850/SF1]
0006: CAN:バス・オフの発生と検出方法は? [V850/SF1]
0007: CAN:受信メッセージが抜ける [V850/SF1]
v85can
-0002
CAN:メッセージ送受信の完了の確認方法 [V850/SF1]
Q1
V850/SF1の FCANコントローラでメッセージ送受信の完了を確認する方法について
完了時に INTCTn または INTCRn へ割り込みが発生するようにするためには、 割り込み許可の設定として CnIEE_INT0 及び E_INT1、更に M_CTRLnIE、 のすべてに設定が必要でしょうか?
A1
FCAN部分からの割り込み (INTCTnINTCRn) 発生に関しては、これらにすべて設定する必要があります。
ただし、CPU で実際に割り込みを発生させるには、さらに割り込み制御レジスタ (CANIC3CANIC2等) のマスク (CANMK3CANMK2等) をクリアする必要があります。

これで、CPU が割り込み許可状態になったら FCANの送受信完了で INTCTnINTCRn の割り込みが発生して CPU が割り込みハンドラに処理を移します。
この情報はお役にたちましたか?
back to top  

v85can
-0003
CAN:割り込みを使わずに送受信の完了を確認する方法 [V850/SF1]
Q1
割り込みを使わずに送受信の完了を確認する方法を教えてください。
A1
(1)の設定の内で M_CTRLnIE をクリアしたり、CANIC のマスクをセットすると CPUに割り込みを発生しません。
ここで、CnINTPCnINT1/0 ビットで保留された割り込みを調べてください。
その上で、ビットが立っていたらそれをクリアしてください。
この場合、CnIEE_INT0 及び E_INT1 は必ず許可しておく必要があります。
この情報はお役にたちましたか?
back to top  

v85can
-0004
CAN:内部レジスタのアドレスが複数あるのは? [V850/SF1]
Q1
V850/SF1ユーザーズ・マニュアル・ハードウエア編で、内部レジスタのアドレス表現が xxnFF804H n=3,7,B のように記述されていますが、nの値は何を表すのでしょうか?
A1
これは単に FCAN のレジスタがアドレスとして n=3, 7, B のアドレスに見えるというだけです。
通常の使用では n=3 と考えていただければ結構です。
これは FCAN の I/F が外部バスを経由して接続されており、外部のアドレスとしてすべてが準備されていないためにイメージが見えるものです。
この情報はお役にたちましたか?
back to top  

v85can
-0005
CAN:各レジスタの設定について教えて [V850/SF1]
Q1
次の条件で、各レジスタ(CGCSCnBRPCnSYNC)の設定について教えてください。
  クロック       :16MHz
  ボー・レート     :500kbps
  サンプル・ポイント :75%程度
A1
(1) CGCSレジスタ
MCPnフラグで、CANメモリ・アクセス・コントローラのベース・クロックfMEMを設定します。
たとえば、MCPn=0(fMEM=fxx)で16MHzを入力すれば、fMEM=16MHzとなります(fxx:メイン・クロック周波数)。
fMEMは、ボー・レート・ジェネレータ部とグローバル・タイマ・システム・クロック生成部に供給されます。CANの基本ボー・レート設定に関係するのは、前者のボー・レート・ジェネレータ部です。後者は、タイム・スタンプ機能という、CANプロトコルを利用したオプション機能です。

(2) CnBRPレジスタ
CANビット・レート・プリスケーラ出力のCANモジュール・クロックfBTLを設定します。
このレジスタで、バスのタイプ(ハイ・スピード/ロウ・スピード)と、プロトコルで定義されるTQ(Time Quanta)の設定をします。500kbpsの場合、データ・ビット幅を8TQとします。よって、1TQ=500kHz×8=4MHz=fBTLです。
上記MCPnの設定で、16MHzをベース・クロックとして供給としたとき、BRPn=1(fMEM/4)を設定すれば、4MHzになります。同時にBTYPE=1を設定して、ハイ・スピード・モード(>125kbps)にしておきます。

(3) CnSYNCレジスタ
ビット時間やSP(Sample Point)、SJW(同期ジャンプ幅)を設定して、CANグローバル周波数を定義します。
500kbpsの場合、(2)でデータ・ビット幅を8TQとしましたので、DBTn=7(fBTL×8)となります。
SP=75%であれば、6TQですので、SPTn=5(fBTL×6)を設定します。
なお、プロトコル上、SJWは4TQまで設定できますが、この例では(DBT-SPT)=2ですので、上限は1です。
この情報はお役にたちましたか?
back to top  

v85can
-0006
CAN:バス・オフの発生と検出方法は? [V850/SF1]
Q1
CAN通信でバス・オフの状態を CANn コントロール・レジスタのバス・オフ・フラグ (BOFF) で検出しようとしていますが、その状態を作り出す方法はありますか?
A1
バス・オフを発生させる方法としては、トランシーバなどとの接続を切り離し、 マイコンの CANRX 端子をハイ・レベルにプルアップして送信する方法があります。
検出方法は割り込みハンドラ (INTCE1または INTCE2)処理ルーチン内で BOFFフラグをチェックする方法がよいかと思います。
この情報はお役にたちましたか?
back to top  

v85can
-0007
CAN:受信メッセージが抜ける [V850/SF1]
Q1
一定周期で非同期に送受信を行い、相手からの送信がこちらの受信前に連続する場合、 こちらの受信メッセージの順番が入れ替わる (抜けるか見逃す) 現象が発生します。
A1
発生している現象 (受信メッセージが抜ける) から、 受信メッセージ・バッファへのオーバライトが発生していることが予想されます。
受信処理内で、DNビットをクリア後、メッセージ受信があると、 M_STATnレジスタの DNビットがセットされ、オーバライトが発生します。
これは M_CTRLnレジスタの MOVRビットで見ることができます。

受信処理内の最後に M_STATnレジスタの DNビットのチェックを行い、 DNビットが 0 でなければ再度受信データの取得を行うようにしてください。
また、CnCTRLレジスタの OVMビットを新規メッセージのオーバライトを許可の設定 (0) にしてください。
この情報はお役にたちましたか?
back to top  









































 ご利用にあたって  個人情報保護について  RSS       © 1995-2008  NEC Electronics Corporation