FAQ
CANについて
- 制御ステータスレジスタ(CSR)のHALTビットが“HALT=1->0”になる時間を教えてください。
- CANのI/Oレジスタファイル_io_canct0.cを使用してプログラミングをしましたが、CANが動作しないのはなぜですか? (対象:MB90495Gseries)
- CANで使用するレジスタ(R/W)に対して、マイコン故障確認のために値を書き込み・読み出しを行っているが、読み出し値が異なるのはなぜですか。
- Fujitsu CANマイコンのビット時間セグメントでは、PROP_SEGとPHASE_SEG1をTSEG1として規定しており、ボッシュの定義と異なりますが問題はないですか?
- IPT (Information Processing Time)はどこの時間で、いくつですか?
- 通信レート125kbps、タイムセグメント1(Tseg1) =4、タイムセグメント2(Tseg2)=3、最同期ジャンプ幅(SJW)=3、サンプルポイント62%(BTR0=8F、BTR1=23)の条件でCAN通信を行いましたが、ICEでの通信はNGで、何が問題ですか? (対象:MB90540/545series)
- データ受信専用のノードの場合は、マイコンのTX端子をOPENで使用することは可能ですか?
- メッセージを送信した際にCRCエラーが発生した場合、受信側はACKを返さないと思いますが、その後の自動送信リトライの回数を指定することはできますか?
- 受信エラーカウンタが128以上の時に正常受信がおこなわれると、"119~127の値になる"と規定されていますが、実際のカウンタ値はいくつになりますか?
- 送信エラーカウンタが“256”以上になり、バスオフになる際のエラーカウンタの値はいくつですか?
- “データレジスタへの書込みは、ワード単位で行わなければなりません。”とありますが、バイト及びロング単位で書込みを行った場合はどうなりますか?
- CAN通信ライン短絡中のエラーフレームについて、17bit分の“L”がTx端子から出力されているが、なぜですか? また、この後に25bit分の“H”が出力される理由も教えてください。
- インターフレームスペースのバスアイドルは、「0~無限」が規格値となっていますが、富士通のCANマイコンではいくつになっていますか?
- CANダイレクトモードレジスタ(CDMR)にて、CANに変調クロック供給禁止設定にしていますが、初期値は“0”で変調クロック設定になっています。ソフトで"1"の非変調クロックに変更する必要がありますか? (対象:MB90340series)
- CANコントローラの強制初期化について、単独ではCANコントローラの初期化は不可と思われるが、初期化する方法はありますか?
- メッセージバッファのデータを読み出しを行っている時に、このバッファIDのデータ受信があると読み出しているデータは破壊されますか?
- BVALRレジスタがRMW命令の使用を禁止されていますが、なぜですか?
- マイコンがスタンバイ状態に遷移した場合、「HALTビットに“1”を立ててバスオフする必要がある」とマニュアルに記載がありますが、周辺が動作しているスリープモードでもバスオフにする必要がありますか?
- データが9バイトのメッセージを受信した場合、富士通CANマイコンではどのような動作になりますか?
- Hit&Away現象回避の目的にて、メッセージバッファ0以外を使用してデータ受信後、当該メッセージバッファを無効にした場合の挙動について教えて下さい。
- 「バスオフ時にHALT=1に遷移する以前にHALT=0の書込みは不可」を誤って行なってしまった場合の回避策はありますか?
- CANアプリソフト動作時に割込み処理を行なった場合のみ、動作が不安定になる原因は? (ノードステータス状態遷移割込み使用している条件。)
- RX端子にてCRCデリミタ受信後、TX端子にACKスロットを返信する最大の時間は?
- CANデータ受信時に受信シフトレジスタからデータレジスタまでに格納される時間は?
- CANのレジスタにて「DLCR0~7」及び「DTR0~7」が”ワード書込み”指定になっていますが、読込時はバイト読込で良いでしょうか?
- CSRレジスタのNSビット(ノードステータスビット)とNTビット(ノードステータス状態遷移ビット)のディレイ時間は?
- DTRにオーバライトが発生した時点からオーバライトフラグがセットされるまでの時間は?
- 受信のみのノードはバスオフにすることはないですか? 特に、エラー送信時のビットエラーによりバスオフ遷移はありますか?
- フラッシュマイコン品~フラッシュマイコン品間のCAN通信時は問題無いが、エバ品~フラッシュマイコン品間では送受信エラーが発生します。考えられる原因は?
1. 制御ステータスレジスタ(CSR)のHALTビットが“HALT=1->0”になる時間を教えてください。
“HALT=1->0”になる時間は、11ビットのレセッシブが128回必要です。150bit+IMT=154bitごとに1回11ビットのレセッシブが存在します。そのため、もし128回の11ビットのレセッシブを受ける最大の時間は、(154+11-1)×128=20,992bit。つまり、1Mbpsの時、20,992usの時間がmaxです。
“HALT=0->1”になる時間は、送信中にエラーがあった時、エラー出力はしますが、Haltに遷移する時間に依存しないため、データの最大長+エラー出力されるまでの150bit+IMT=154bit間が最長時間になります。つまり、1Mbpsの時は、154usの時間がmaxです。
2. CANのI/Oレジスタファイル_io_canct0.cを使用してプログラミングをしましたが、CANが動作しないのはなぜですか? (対象:MB90495Gseries)
MB90495GではCANのI/Oヘッダファイル_io_canct0.cではなく、_io_canct1.cを使用して下さい。
3. CANで使用するレジスタ(R/W)に対して、マイコン故障確認のために値を書き込み・読み出しを行っているが、読み出し値が異なるのはなぜですか。
TCANR、TCR、RCR、RRTRR、ROVRR、RIER、LEIR等のレジスタは“1”の設定はできません。(ソフト上で設定してもセットされません。)しかしながら、0への設定は可能です。マニュアルによっては、[“1”設定は影響がありません。]や[無視されます]と記載されておりますので、マニュアルにおいて、それぞれの対象レジスタのコメントを参照願います。
4. Fujitsu CANマイコンのビット時間セグメントでは、PROP_SEGとPHASE_SEG1をTSEG1として規定しており、ボッシュの定義と異なりますが問題はないですか?
PROP_SEGは伝送路の位相遅延を吸収するセグメントでシステムに依存する固定値です。個別にPROP_SEGを設定する必要はないため、問題はありません。
5. IPT (Information Processing Time)はどこの時間で、いくつですか?
IPTはデータサンプリングから次に出力するビットのレベルを決める時間です。Fujitsu製CANでは2TQ(単位時間)です。
6. 通信レート125kbps、タイムセグメント1(Tseg1)=4、タイムセグメント2(Tseg2)=3、最同期ジャンプ幅(SJW)=3、サンプルポイント62%(BTR0=8F、BTR1=23)の条件でCAN通信を行いましたが、ICEでの通信はNGで、何が問題ですか? (対象:MB90540/545series)
EVA品がG無品を使用した場合、1≦PCS≦63の時、TSEG1≧RSJW, TSEG2≧RSJW+2TQの条件を満足していないのでCAN通信ができません。G付EVA品を使用して下さい。
7. データ受信専用のノードの場合は、マイコンのTX端子をOPENで使用することは可能ですか?
受信専用のノードの場合でも、1)ACKの送信、2)エラーフレームの送信、の送信がありますのでTX端子OPENでは使用できません(Trに接続が必要です)。
8. メッセージを送信した際にCRCエラーが発生した場合、受信側はACKを返さないと思いますが、その後の自動送信リトライの回数を指定することはできますか?
送信エラー発生時の再送信回数は、バスオフになるまで送信をリトライします。このリトライ回数は、送信を開始する前のエラーカウンタ値に依存します。もし途中で停止する場合は、エラーステータス状態を確認して、ソフトで停止する必要があります。
9. 受信エラーカウンタが128以上の時に正常受信がおこなわれると、“119~127の値になる”と規定されていますが、実際のカウンタ値はいくつになりますか?
当社のCANマイコンでは、「119」固定となります。
10. 送信エラーカウンタが“256”以上になり、バスオフになる際のエラーカウンタの値はいくつですか?
バスオフ状態に遷移する際のエラーカウンタの値は、[エラー発生時のエラーカウンタ値]+[8]-[256]となります。
11. “データレジスタへの書込みは、ワード単位で行わなければなりません。”とありますが、バイト及びロング単位で書込みを行った場合はどうなりますか?
データレジスタへの書込みはワード単位になりますので、下位バイトへの書込み時に上位バイトは不定データを書き込みます。つまり、上位バイトへの書込みは無視されます。ロング単位の書込みは、問題ありません。
12. CAN通信ライン短絡中のエラーフレームについて、17bit分の“L”がTx端子から出力されていますが、なぜですか? また、この後に25bit分の“H”が出力される理由も教えてください。
17bit分の“L”出力は、次のような内訳になっていると考えられます。スタートビット(1bit)+CAN通信ライン短絡によるビットエラー(1bit毎に8カウントup×16bit分=128カウント)が16回続き、エラーパッシブに遷移して、エラーフレームの出力を停止していることが考えられます。 25bit分の“H”出力は、「エラーパッシブエラー信号(25bit)+エラーデリミタ(8bit)+IMT(3bit)+サスペンド(8bit)」となっていることが考えられます。
13. インターフレームスペースのバスアイドルは、「0~無限」が規格値となっていますが、富士通のCANマイコンではいくつになっていますか?
富士通製CANマイコンでは、「11bit」が規格値となっております。
14. CANダイレクトモードレジスタ(CDMR)にて、CANに変調クロック供給禁止設定にしていますが、初期値は“0”で変調クロック設定になっています。ソフトで“1”の非変調クロックに変更する必要がありますか? (対象:MB90340series)
CDMRレジスタの初期値は“0”になっており、変調クロックを使用する設定になっています。CANには非変調クロックでのみ対応しておりますので、ソフトにて必ず“1”に設定願います。
15. CANコントローラの強制初期化について、単独ではCANコントローラの初期化は不可と思われるが、初期化する方法はありますか?
CANバスへのエントリーについては、HALTビットによって行われます。そのため、CANバスへエントリー中に強制停止をする場合は、HALTビットによって行っていただく必要があります。つまり、HALT=1により、CANマクロの強制停止が行われ、次にHALT=0によって、エラーカウンタが初期化され、エラーアクティブ状態に遷移します。
16. メッセージバッファのデータを読み出しを行っている時に、このバッファIDのデータ受信があると読み出しているデータは破壊されますか?
メッセージバッファからデータを読み出し中に、同バッファにデータ受信された場合、データ読み出し(CPU)はホールドされ、CANのメッセージバッファへのデータ格納が優先されます。従いまして、データが破壊されることはありません。
17. BVALRレジスタがRMW命令の使用を禁止されておりますが、なぜですか?
BVALに“0”をライトした場合、送信中及び受信バッファへの書込み中の時は即BVALは“0”になりません。その状態でリードモディファイライト命令を実行してしまうとクリアしたBVALが再び“1”にセットされてしまいます。
クリアしたはずのBVALが"0"になっていれば、リードモディファイライトを実行しても問題ありません。
18. マイコンがスタンバイ状態に遷移した場合、「HALTビットに“1”を立ててバスオフする必要がある」とマニュアルに記載がありますが、周辺が動作しているスリープモードでもバスオフにする必要がありますか?
スリープモードはPLLスリープとメインスリープがありますが、内部動作周波数が変化するメインスリープモードの場合は注意が必要です。CPUの内部動作周波数でCAN転送レートを設定しておりますので、スリープモード時も内部動作周波数が変化しない場合は、バスオフを行う必要はありませんが、PLL動作からメインスリープに遷移する場合は、バスオフにする必要があります。
19. データが9バイトのメッセージを受信した場合、富士通CANマイコンではどのような動作になりますか?
DLC>8の場合、DLC=8として受信動作します。データが9バイトとするとF-CANの場合、9バイト目はCRCデータとしてチェックされますのでこの場合、CRCエラーになり、エラーフレームが送信されます。
20. Hit&Away現象回避の目的にて、メッセージバッファ0以外を使用してデータ受信後、当該メッセージバッファを無効にした場合の挙動について教えて下さい。
当該メッセージバッファを無効にした以降のデータは無視されます。データレジスタには格納されません。
21. 「バスオフ時にHALT=1に遷移する以前にHALT=0の書込みは不可」を誤って行なってしまった場合の回避策はありますか?
次に訪れるサンプリングポイント以降にHALT=0書き込みであれば回避可能です。
具体的には“1ビット+RSJW+20ns”になります。
22. CANアプリソフト動作時に割込み処理を行なった場合のみ、動作が不安定になる原因は? (ノードステータス状態遷移割込み使用している条件。)
CSRレジスタのNTビットがクリアされていないと予測します。
23. RX端子にてCRCデリミタ受信後、TX端子にACKスロットを返信する最大の時間は?
最大1サイクルとなります。
24. CANデータ受信時に受信シフトレジスタからデータレジスタまでに格納される時間は?
7サイクル程度になります。
25. CANのレジスタにて「DLCR0~7」及び「DTR0~7」が“ワード書込み”指定になっていますが、込時はバイト読込で良いですか?
バイト読み込みにしても構いません。
26. CSRレジスタのNSビット(ノードステータスビット)とNTビット(ノードステータス状態遷移ビット)のディレイ時間は?
1マシンサイクル以内です
27. DTRにオーバライトが発生した時点からオーバライトフラグがセットされるまでの時間は?
9マシンサイクルになります。
28. 受信のみのノードはバスオフにすることはないですか? 特に、エラー送信時のビットエラーによりバスオフ遷移はあるのか?
受信のみのノードであればバスオフに遷移することはありません。それは、パッシブエラーフラグ(6ビットのレセシブビット)を出力していてドミナントを検出してもビットエラーは発生しないからです。(ボッシュ規格書のBIT ERRORの項目に記述がありますのでご参照ください。)
29. フラッシュマイコン品~フラッシュマイコン品間のCAN通信時は問題無いが、エバ品~フラッシュマイコン品間では送受信エラーが発生します。考えられる原因は?
エバ品の発振子がICE上に接続されているのが原因と思われます。エバ品の発振子も評価ボード上に接続の上、確認願います。
