2011年7月16日土曜日

CAN IPのDEBUG 6

VHDL Reference CAN User's Manualに記載されている検証内容を参考にして
simulationを進めているが、3.2.2 biterrorの各項目についてほぼsimulationできた。
ただし、このManualに記載されている項目は規格と矛盾する箇所もあった。 
Test of transmitterの項目14ではError Passive状態時のreserved bitがdominant
場合と、Passive Error Flagの先頭でdominantが検出された場合の動作を検証して
いて後者については、
The transmitter detects a bit error and starts sending a Passive Error Flag again.
となっている。 しかし、規格書には次のような記述がある。
A TRANSMITTER sending a PASSIVE ERROR FLAG and detecting a 'dominant'
bit does not interpret this as a BIT ERROR  (ERROR HANDLING / Error Detection / BIT ERROR)
CAN busに繋がっている全てのnodeの状態がError Passiveとは限らず、Error Active
のnodeも存在する可能性はある筈だ。 Error Passiveが出力するPASSIVE ERROR 
FLAGはRECESSIVE、 Error Activeが出力するACTIVE ERROR FLAGはDOMINANT
でこれらが競合した場合はDOMINANTになる。 従って、Error PassiveのnodeがPASSIVE
ERROR FLAGを出力したのにDOMINANTが検出されたからと言って、それは、bit error
とは言えないと思う。従って、User's Manualの記述は誤りだと思う。 ということで、
この部分は無視することにした。
User's Manual記載の項目以外にも検証項目を幾つか追加した結果、Line coverageは
100%にすることができた。

ただし、改めて規格書を読み返してみると、まだまだ検証できていない項目がある。

0 件のコメント:

コメントを投稿

自作CPUで遊ぶ 25

まだ制御ソフトが完成していないので今まではスピンドルを移動するために一々簡単なプログラムを書いて移動させていたのだが、非常に面倒なのでCNCペンダント的なものを作ることにした。 右側の縦に2つ並んでいるスイッチ...