ARCNET, CircLink

ARCNETは改良型トークンパッシング方式を使用したプロトコルの名称です。これを使用したARCNETは現在も高い評価を得ており、各種産業マーケットで活躍しています。またCircLinkは、日本市場の要求に応じて、更に改良された技術をベースにした技術です。

ARCNET FAQ

▼SHシリーズマイコンとCOM20019/ 20/ 22の接続
▼SH1とCOM20019/ 20/ 22の接続
▼SH2とCOM20019/ 20/ 22の接続
▼SH3とCOM20019/ 20/ 22の接続
▼SH4とCOM20019/ 20/ 22の接続
▼ARCNETプロトコル
▼COM200xx ビットの説明 コンフィグレーション・レジスタ
▼COM200xx ビットの説明 ダイアグノスティック・レジスタ
▼COM200xx ソフトの作り方 初期化ルーチン
▼COM200xx ソフトの作り方 送信処理
▼COM200xx ソフトの作り方 受信処理
▼COM200xx ソフトの作り方 割り込み処理
▼COM200xx ソフトの作り方 その他
▼COM200xx バックプレーンモード
▼ARCSCOPE
▼TMC2005(HUBチップ)
▼配線&ネットワークの拡張 ツイストペア・同軸線


SHシリーズマイコンとCOM20019/ 20/ 22の接続

99.10.20 東洋マイクロシステムズ ARCNET部技術発行
(SH4との接続に関しては '01.3.21 東洋マイクロシステムズ ARCNET部技術発行)

ARCNETコントローラCOM20019/ 20/ 22は、各種マイコンと簡単に接続できるように作られております。しかし、SHシリーズをはじめとするRISC型マイコンはバス規定が厳しく、ARCNETコントローラを接続する場合はバスタイミングに十分気をつける必要があります。ここでは、SH-1, 2, 3を例に、接続時の注意点をまとめてご紹介致します。なお、ARCNETコントローラの代表としてCOM20020 Rev.Dを例にとりますが、COM20019/ 22も同様です。


SH1とCOM20019/ 20/ 22の接続

SH-1とCOM20020との接続においては以下の2点に注意して下さい。
1.ライト/ リードサイクルのACタイミング規定
2.16ビットCPU接続時のダミーライトアドレス
以下に詳細の説明を致します。

1.ライト/ リードサイクルのACタイミング規定

SH-1をはじめとするRISC型CPUのバスタイミングにおいて、アドレス、チップセレクトのセットアップ/ ホールド時間は非常にタイトです。特にリードサイクルで以下の2点が問題になることが有ります。

・nRD 立下りにおける A0-A2, nCS のセットアップ時間
・nRD 立上りにおける A0-A2, nCS のホールド時間

これらセットアップ/ ホールド時間の違反は、ウェイトサイクル挿入によるバスサイクル延長を行っても、解決できないことが多い様です。また、バスクロックが速くなればなるほど、問題になります。

COM20020のRev.Dでは、ビット設定により、リードサイクルについてのみ、セットアップ/ ホールド時間を2種類設定できます。セットアップ2レジスタのRBUSTMGビット= 1に設定すると高速CPU対応(高速リード動作)モードになり、セットアップ/ ホールド時間の規定が緩和され、上記の問題が対策される場合があります。しかし、その反面データのアクセス時間や、nRDの規定パルス幅などが長くなるという欠点もあります。この対策としてウェイトサイクル挿入によるバスサイクル延長を行って下さい。

ここで誤解しないで頂きたいのは、高速リード動作モードといっても、アクセス時間やサイクルタイムが高速になるのではなく、RISC型の高速なCPUでも外付けロジック無しで接続できるモードであるということです。実際には、データのアクセス時間が長くなり、ウェイトサイクルの挿入によりnRDのパルス幅などが長くなりますので、高速では有りません。実際のタイミング規定は、COM20020D日本語データシート(REV1.0)の70ページと71ページに記述してありますので、両ページを見比べて頂ければ違いを理解して頂けると思います。尚、RBUSTMGビット= 1に設定してもライトサイクルのタイミング規定は、緩和されませんのでご注意下さい。


2.16ビットCPU接続時のダミーライトアドレス

COM20020のCPUインタフェースモード設定のために、ハードウェアリセット解除後、COM20020にアクセスする前に、奇数アドレスに対しダミーライト(nCS=H でのライト動作)を行う必要があります。

但し、16ビットCPU接続時のダミーライトアドレスは注意が必要です。奇数アドレスとは、あくまでもCOM20020にとってのアドレスです。つまり、COM20020のA0ピン= Highとなるアドレスのことを奇数アドレスといっています。16ビットCPU接続時には、CPU側のA1ピンをCOM20020のA0ピンにシフトして接続しますので、この場合の奇数アドレスの意味が変わってきます。この場合には、CPUのA1ピンがHighとなるアドレスへダミーライトを行って下さい。例えば、16進アドレスの XXX2h, 6h, Ah, Ehです。このダミーライトによってCPUバスタイプが決定され、それ以降、COM20020のレジスタに対してアクセスが可能になります。


SH2とCOM20019/ 20/ 22の接続

COM20020とSH-2との接続においては以下の2点に注意して下さい。
1.ライト/ リードサイクルのACタイミング規定
  1-a) nCSアサート期間拡張を有効にする
  1-b) ウエイト挿入によりバスサイクルを拡張する
2.16ビットCPU接続時のダミーライトアドレス
以下に詳細の説明を致します。

1.ライト/ リードサイクルのACタイミング規定

  1-a) nCSアサート期間拡張を有効にする

一般にRISC型CPUのバスタイミングにおいて、アドレス、チップセレクトのセットアップ/ ホールド時間は非常にタイトです。特にリードサイクルで以下の2点が問題になることが有り得ます。

・nRD 立下りにおける A0-A2, nCS のセットアップ時間
・nRD 立上りにおける A0-A2, nCS のホールド時間

これらセットアップ/ ホールド時間の違反は、ウェイトサイクル挿入によるバスサイクル延長を行っても、解決できないことが多い様です。また、バスクロックが速くなればなるほど、問題になります。

しかしながら、SH-2においては、これらセットアップ/ ホールド時間を確保するモードが備わっています。このモードを "nCSアサート期間拡張" と呼んでいます。この、"nCSアサート期間拡張" という機能により、SH-2はバスサイクルの前後にアイドルサイクルを自動挿入し、上記セットアップ/ ホールド時間を十分に稼ぐことができます。
(SH-1やSH-3にはこの機能がありません)

"nCSアサート期間拡張" を有効にするには、SH-2のBCR2レジスタのSW3~0ビットにて設定します。
(SH-2データシートP.180, P.197)


  1-b) ウエイト挿入によりバスサイクルを拡張する

 COM20020への連続アクセスにおける4T ARB(5T ARB)といったサイクルタイム(インターバル時間)について、タイミング規定があります。

5T ARBや4T ARBは、サイクルタイム(インターバルタイム)の規定です。具体的には、「COM20020D日本語データシートRev1.0」の66ページ以降のACタイミングチャートで規定されています。

SH-2を接続するときのCPUインタフェースモードは、ノン・マルチプレクスバスかつ80xx系(nWR, nRDタイプ)モードです。その規定は70ページ(リードサイクル)と74ページ(ライトサイクル)に書かれています。リードサイクル/ ライトサイクル共に、タイミング規定を記入してある表中の t5:Cycle Time と表の下の注釈 Note2 と Note3 で4T ARB 又は、5T ARB といった値で規定されています。
(nBUSTMGピン= High, RBUSTMGビット= 0の場合)

COM20020に対してのリード/ ライトサイクル中のnRDまたはnWRのアクティブ幅を延長する為と、COM20022への連続アクセスに対する、インターバル時間を十分にとる為に、ウエイトを挿入しなくてはなりません。

COM20020への連続アクセスの組み合わせは、以下の4通りです。
A.ライト→ライト(nWR↑~次のnWR↑)
B.リード→リード(nRD↓~次のnRD↓)
C.ライト→リード(nWR↑~次のnRD↓)
D.リード→ライト(nRD↓~次のnWR↑)
(注 ↑:立ち上り, ↓:立ち下り を示す。)

ライトはnWRの立上りが基準となり、リードはnRDの立下りが基準となります。

上記A~Dは、最大5T ARB(250nS@2.5Mbps,SLOWARBビット= 0)以上必要です。従ってウェイト挿入により、バスサイクルを5T ARB以上にすれば、上のA, B, Dはクリアすることできます。しかし、Cに付いては、プログラム上で、意図的にウェイトする事が必要です。COM20020へのライトを行った後、5T ARB以上ウェイトしてから、COM20020へのリードを行う様にプログラムを書いて下さい。
ウェイト挿入については、SH-2のWCR1レジスタのW33~0ビットにて設定します。(SH-2データシートP.181)

※T ARBとは、COM20020内部のデュアルポートRAMに供給されているクロック信号の周期を表わします。またT ARBは、最大内部動作クロックの周期
(T opr)より求められます。

XTAL1周波数 CKUP1, 0-bit T opr 最大伝送レート SLOWARB-bit T ARB
20MHz 0, 0 50nS 2.5Mbps 0 50nS
20MHz 0, 1 25nS 5.0Mbps 0 25nS
20MHz 1, 1 12.5nS 10Mbps 1 25nS

CKUP1, 0ビットは、セットアップ2レジスタに存在し、クロックてい倍回路(PLL回路)の「てい倍率」を設定します。(00:x1, 01:x2, 11:x4)SLOWARBビットは、セットアップ1レジスタに存在し、デュアルポートRAMに供給されているクロック信号のスピードを半分にするかしないかの設定をします。
T opr= 50nS/ 25nSでは、SLOWARB= 0のままで構いません。(0:フルスピード, 1:ハーフスピード)


2.16ビットCPU接続時のダミーライトアドレス

COM20020のCPUインタフェースモード設定のために、ハードウェアリセット解除後、COM20020にアクセスする前に、奇数アドレスに対しダミーライト(nCS=H でのライト動作)を行う必要があります。

但し、16ビットCPU接続時のダミーライトアドレスは注意が必要です。奇数アドレスとは、あくまでもCOM20020にとってのアドレスです。つまり、COM20020のA0ピン= Highとなるアドレスのことを奇数アドレスといっています。16ビットCPU接続時には、CPU側のA1ピンをCOM20020のA0ピンにシフトして接続しますので、この場合の奇数アドレスの意味が変わってきます。この場合には、CPUのA1ピンがHighとなるアドレスへダミーライトを行って下さい。例えば、16進アドレスの XXX2h, 6h, Ah, Ehです。このダミーライトによってCPUバスタイプが決定され、それ以降、COM20020のレジスタに対してアクセスが可能になります。


SH3とCOM20019/ 20/ 22の接続

SH-3とCOM20020との接続においては以下の2点に注意して下さい。
1.ライト/ リードサイクルのACタイミング規定
2.16ビットCPU接続時のダミーライトアドレス
以下に詳細の説明を致します。

1.ライト/ リードサイクルのACタイミング規定

SH-3データシートのACタイミング規定を調べてみましたところ、SH-1と比較してタイミングが変わっております。
それを以下に示します。

・リード(nRD)の立下りにおけるチップセレクト(nCS)のセットアップ時間
・リード(nRD)の立上りにおけるチップセレクト(nCS)のホールド時間
・ライト(nWE)の立上りにおけるチップセレクト(nCS)のホールド時間

これらのタイミング変更により、SH1ではリードサイクル側のセットアップ時間が問題であったのに対し、SH-3ではリードサイクルとライトサイクル共にホールド時間が特に問題となります。

またSH-3では、nWEとnRDのタイミングが同一になってしまった為、リードサイクルのみの、セットアップ/ ホールド時間対策をしても、ライトサイクルではセットアップ/ ホールド時間対策ができないので、高速CPUリード動作モード(RBUSTMGビット= 1)では対策が不十分です。COM20020Dの高速CPUリード動作モードは、リードサイクルには有効ですが、ライトサイクルについては効果が有りません。よって、高速CPUリード動作モードは使用しないということで問題点をご説明致します。

問題1: nRD立上りにおける、nCSのホールド時間が規定できない。

nRD立上りとnCS立上りの変化タイミングは、T2サイクルのCKIO(バスクロック)立下りであり、両信号は同時に変化します。SH-3データシートP.16-23の図16. 18中のtCSD2とtRSD を比較して下さい。tCSD2とtRSD は最大値の規定のみであるので、nRDの立上りが、nCSの立ち上りより遅れることも有り得ます。COM20020では、これを許していません。(同時はOKです)

問題2: nWE立上りにおける、nCSのホールド時間が規定できない。

nWE立上りとnCS立上りの変化タイミングは、T2サイクルのCKIO(バスクロック)立下りであり、両信号は同時に変化します。(リードと同様)SH-3データシートP.16-23の図16. 18中のtCSD2とtWED を比較して下さい。tCSD2とtWED は最大値の規定のみであるので、nWEの立上りが、nCSの立ち上りより遅れることも有り得ます。COM20020では、これを許していません。(同時はOKです)

以上の、問題1, 2の対策として、外付け回路によりnCSの立上りのみを遅らせることが必要です。(あまり遅らせ過ぎますと、セットアップ時間がきつくなります)


2.16ビットCPU接続時のダミーライトアドレス

COM20020のCPUインタフェースモード設定のために、ハードウェアリセット解除後、COM20020にアクセスする前に、奇数アドレスに対しダミーライト(nCS=H でのライト動作)を行う必要があります。

但し、16ビットCPU接続時のダミーライトアドレスは注意が必要です。奇数アドレスとは、あくまでもCOM20020にとってのアドレスです。つまり、COM20020のA0ピン= Highとなるアドレスのことを奇数アドレスといっています。16ビットCPU接続時には、CPU側のA1ピンをCOM20020のA0ピンにシフトして接続しますので、この場合の奇数アドレスの意味が変わってきます。この場合には、CPUのA1ピンがHighとなるアドレスへダミーライトを行って下さい。例えば、16進アドレスの XXX2h, 6h, Ah, Ehです。このダミーライトによってCPUバスタイプが決定され、それ以降、COM20020のレジスタに対してアクセスが可能になります。


SH4とCOM20019/ 20/ 22の接続

CPU型名 : SH4-167MHz品(SH7750:HD6417750F167)
バスクロック : 33MHz(CKIO出力の周波数)
COM20020のXTAL1 : 20MHz
転送レート : 5Mbps
・SH4バスタイミング設定: アドレスセットアップ挿入(AnS=1)
ホールドタイム挿入   (AnH=1)
・COM20020Dへのアクセス時にWAITを2つ挿入(2WAIT)
・COM20020DのSLOWARBビット= 0
・COM20020DのRBUSTMGビット= 1
・COM20020DのCKUPビット= 1
・COM20020Dの内部動作 40MHz&SLOWARB=0
→Tarb= 25nS →5T arb= 125nS

0)前提

SH4のACタイミングは、バスクロック(CKIO)出力を基準とした遅延時間で規定していますが、最小遅延時間の規定が無いものがあります。この場合には、最小0nSと判断します。例えば、SH4のACタイミング規定内のにtRSDにおいて、RD信号はCKIO立下りで変化しますが、RD信号の変化点はCKIO立上りより前になることは有りません。
(tRSDは最大8nSという規定であり、最小時間の規定が無い為)


1)ライトタイミング(CKIO= 33MHz時)

nWE信号に対するアドレス, チップセレクトとデータのセットアップ/ ホールド時間は、2ウェイト挿入によりすべて満足しています。


2)リードタイミング(CKIO= 33MHz時)

nRD信号立上りに対するアドレス, チップセレクトのホールド時間は、両方共違反しています。RBUSTMGビット=1に設定した場合でも、これらホールド時間は0nS以上必要です。しかし、nRD立上りとアドレス, チップセレクトは同じタイミング(CKIO立上り)で変化しますのでそれぞれの位置関係は保証されません。よって、ホールド時間0nS以上は保証されません。その他は、2ウェイト挿入により規定値を満足します。


3)リードタイミング違反の対策(添付参考回路図"SH433-20.pdf"を参照)

RBUSTMGビット= 1に設定し、アドレス, チップセレクトのホールド時間対策を行います。ホールド時間違反を解決するためには、アドレスとチップセレクトにラッチICを挿入して、nRD=Lの期間それらを保持しています。これにより、ホールド時間0nS以上は満足できます。

しかし、このラッチIC(TC74LCX573)のD→Q伝播遅延時間分(最大8nS)セットアップ時間側がリード, ライトサイクル共にきつくなります。しかしながら、ラッチIC挿入前のリード時セットアップ時間は、52.6nSですので、8nS減っても充分にマージンがあります。ラッチ挿入前のライト時セットアップ時間は、23.3nSですので8nS減った場合15.3nSとなり、COM20020Dの規定値15nS以下をギリギリ満足出来ます。


4)連続アクセス時のインターバル時間

COM20020Dに対するアクセスサイクルにおいて、2ウェイト挿入しますと1バスサイクルは6クロック(6 x CKIO)になります。CKIOは、33MHz(約30.3nS)ですので、2ウェイト挿入後の1バスサイクルは、約181nSとなります。これによりnRD→nRDインターバルとnWR→nWRインターバルは、共に約181nSとなり、5T arb(125nS@5Mbps)を満足できます。
(nWRは立上りが基準、nRDは立下りが基準となります)

また、nRD→nWRインターバルは、約175nSとなり、5T arbを満足できます。
(6*tcyc+ tCKOHmin- tRSDmax= 6*30.3+1- 8=144.5nS)

残りのnWR→nRDインターバルは、約84nSとなるため、5T arbを満足できません。
(3*tcyc+ tCKOLmin- tWEDFmax= 3*30.3+1- 8= 83.9nS)

よって、約42nS(125- 83.9= 41.1nS)のソフトウェア上のウェイトが必要になります。
下に示しました様に、COM20020Dに対しライトを行った後、COM20020Dをリードする場合には、ソフトウェア上で42nS以上待った後にリードを行って下さい。

※COM20020Dライト→ 42nS以上ウェイト→ COM20020Dリード

T arbとは、COM20020内部のデュアルポートRAMに供給されているクロック信号の周期を表わします。またT arbは、最大内部動作クロックの周期(T opr)より求められます。

XTAL1周波数 CKUP-bit T opr 最大伝送レート SLOWARB-bit T arb
20MHz 0 50nS 2.5Mbps 0 50nS
20MHz 1 25nS 5.0Mbps 0 25nS

CKUPビットは、セットアップ2レジスタに存在し、クロックてい倍回路(PLL回路)の「てい倍率」を設定します。(0: x1, 1: x2)SLOWARBビットは、セットアップ1レジスタに存在し、デュアルポートRAMに供給されているクロック信号のスピードを半分にするかしないかの設定をします。(0: フルスピード, 1: ハーフスピード)但し、COM20020Dでは、SLOWARB= 0のままで構いません。

従って、T opr= 25nSの場合、T arb= 25nS, 5T arb= 5 x 25nS= 125nS
となります。


5)5V系と3.3V系のレベル変換

COM20020D(5V系)とSH4(3.3V系)を接続する場合の一般的な注意を説明します。
SH4出力をCOM20020Dに入力する場合には、レベル変換バッファは不要です。(但しプルアップ内蔵ピンはバッファ必要:A1, D0~D7ピン)
逆に、COM20020D出力をSH4に入力する場合には、5V→3.3Vレベル変換用バッファICを挿入しなければなりません。COM20020DのnINTR, D0~D7ピンがこれに相当します。


6)ダンピング抵抗

COM20020DのnRD, nWR信号の立下り時に、リンギングが発生する場合には、それらを抑えるためにダンピング抵抗(50Ω前後)を挿入する必要があります。リンギング電圧が0.5Vを超える様でしたら、ダンピング抵抗が必要です。


7)16ビット幅以上のCPU接続時のダミーライトアドレス

COM20020DのCPUインタフェースモード設定のために、ハードウェアリセット解除後、COM20020Dにアクセスする前に、奇数アドレスに対しダミーライト(nCS= H でのライト動作)を行う必要があります。

但し、16ビットCPU接続時のダミーライトアドレスは注意が必要です。奇数アドレスとは、あくまでもCOM20020Dにとってのアドレスです。つまり、COM20020DのA0ピン= Highとなるアドレスのことを奇数アドレスといっています。16ビットCPU接続時には、CPU側のA1ピンをCOM20020DのA0ピンにシフトして接続しますので、この場合の奇数アドレスの意味が変わってきます。この場合には、CPUのA1ピンがHighとなるアドレスへダミーライトを行って下さい。例えば、16進アドレスのXXX2h, 6h, Ah, Ehです。このダミーライトによってCPUバスタイプが決定され、それ以降、COM20020Dのレジスタに対してアクセスが可能になります。

32ビットCPU接続時のダミーライトアドレスも同様です。この場合には、COM20020DのA0ピンはCPU側のA2ピンに接続しますので、ダミーライトアドレスは16進アドレスのXXX4h, Chになります。


8)バスクロック(CKIO)の上限についての考察

この167MHz品CPUにおけるバスクロックの上限は37MHz程度です。それ以上にしますとライトタイミングにおいて、nRD↑からnWE↓までの時間規定(t10)が不足しています。その原因は、バスクロックCKIOの出力ハイレベルパルス幅にあります。SH4の規定では、最小1nSです。これでは、CKIO↑からCKIO↓まで1nSしかなく、変化エッジの違うnRD信号とnWE信号の間隔規定は不利になります。

例えば、CKIO出力ハイレベルパルス幅があと7nS広げられれば(幅8nS)、バスクロックの上限を50MHzにすることが出来ます。しかし、CKIOの出力ハイレベルパルス幅の最小規定は、SH4側の規定でありマイクロチップ社では保証できませんので、システム側の設計によりCKIOの出力ハイレベルパルス幅を8nS以上確保していただくしかありません。

この他でバスクロックを上げる方法として、CPLD/ FPGAを使用してバスタイミングを生成し直す方法があります。SH4は同期バスですので、COM20020Dの様な非同期バスとの相性はあまり良く有りません。よって、CPLD等と使用して、同期→非同期バス変換を行うことが一番確実な方法と言えるでしょう。マイクロチップ社製の評価ボード「ARC-SH4」では、アルテラ社製CPLDを用いてタイミング調整を行っております。

【ご注意】
添付させて頂きました回路図は、マイクロチップ社の方で動作確認は行っておりません。従いまして、お客様の方で充分に動作検証を行って頂きます様お願い致します。



ARCNETプロトコル

CRCエラー時
◇質問 データパケットを受信して、バイト数とCRCチェックでエラーであったら、送信元へ何か返しますか?
◇回答 沈黙をもって答えます。送信元のデバイスは、ネットワーク応答監視タイマのタイムアウトによって送信の失敗を知ります。
256バイトデータの送信
◇質問 ARCNETで256バイトデータを送信したいのですが、ショートパケットは 235バイトまで、ロングパケットは257バイト以上となっています。どうすればよいでしょうか?
◇回答 内部メモリのページ数が少なくても良い場合は、ロングパケットモードを指定して、ダミーデータを加えて送信して下さい。(受信側でもロングパケット受信許可が必要です。)メモリのページ数を多く取りたい場合は、ショートパケット二つに分けて送信して下さい。
ケーブル遅延 No.1
◇質問 ネットワーク性能計算時にケーブル遅延を考慮しなくて良いのでしょうか?
◇回答 メッセージのやり取りをする毎に、メッセージをやり取りする2つのノード間の距離に応じた伝搬遅延時間(*)がかかります。伝搬遅延時間は1メートルあたり5ns程度が目安ですので、距離が短い場合は誤差の範囲内といえます。
* ARCNET Technical Manual §5のTptおよびTpm
ケーブル遅延 No.2
◇質問 ケーブル遅延時間が31uSを越えてはいけない理由はなんでしょうか?
◇回答 ARCNETデバイスがライン上の信号を受けて応答を返すまでにかかる時間は12.6uS、これに信号の往復時間としてケーブル遅延時間31uSを2回足すと、74.6uSとなります。これは、ネットワーク応答監視タイマ値と同じです。もし、ケーブル遅延が31uSを越えると、このタイマがタイムアウトを起こしてしまいます。
* 時間に関する数値はすべて2.5Mbps時のものです。他の伝送レートでは 数値を2.5/ R倍して下さい。
(R= 伝送レート, R Mbps)
ネットワークからの離脱
◇質問 ネットワークからノードを離脱させる場合、もしそのノードがトークンを持っていると、ネットワーク上からトークンが無くなってしまうのでしょうか?またノードがトークンを持っているかどうかを知る方法はありますか?
◇回答 誰もトークンを持っていない状態となりますので、アイドル状態監視タイマーがタイムアウトをしてリコンフィグレーションが行われます。リコンフィグレーションの終了をもってネットワークは再び安定を取り戻しますが、リコンフィグレーション処理が行われる分、時間をロスすることになります。トークンを持っているかどうかを知る方法はありませんが、トークンを紛失せずにネットワークから離脱する方法は二つあります。

1)
受信コマンド発行し、さらにその直後に、受信キャンセルコマンドを発行します。この時、RIビットは受信コマンド発行によりLow(0)となり、受信キャンセルコマンド、または受信正常終了により High(1)になります。受信キャンセルコマンドが有効になるのは、トークンを受信した時ですので、RI がたってから28uS(tta + ITT)まってTXENビットとを "0" にすればトークンを送出した後にネットワークから離脱できます。また、受信終了の場合は、他のノードがトークンを持っていますので、そのトークンを自分が受け取る前に離脱すれば良く、結局どちらの場合でも、RI ビットがたってから28uS 待って離脱すればトークンを紛失せずに済みます。

2)
TentativeIDレジスタに自分のIDを書き込み、ダイアグノスティックレジスタのTentIDがたってから28uS待って離脱すれば自分がトークンを送出した直後に離脱出来ます。但し、1)のRIビットと違い、インタラプトを発生できませんのでポーリングをしつづける必要があります。28uSよりあまり長く持ちますと、次のトークンが、自分に回って来てしまいますのでご注意ください。
* 時間に関する数値はすべて2.5Mbps時のものです。他の伝送レートでは 数値を2.5/ R倍して下さい。
(R= 伝送レート, R Mbps)
パケット所要時間
◇質問 パケット所要時間で 4.4×BuS(B:data byte数)という式が出てきますが、4.4 はどのように算出されたのでしょうか?
◇回答 ARCNETの各データは、その先頭に "110" という3ビットの同期符号が付加されて送信されています。
11bit × 400nS = 4.4uSです。
* 時間に関する数値はすべて2.5Mbps 時のものです。他の伝送レートでは 数値を2.5/ R倍して下さい。
(R= 伝送レート, R Mbps)
FBE
◇質問 ノード#1、#2、#3の三台でトークンが巡回している時、ノード#2が、存在はしているがTXENビットが "0" のためネットワークに参加をしていないノード#4 へパケットを送ろうとした場合、
1) ノード#2 からFBE は出ますか?
2) ノード#4 は自分宛のFBE をみて、DUPID ビットを立てますか?
◇回答 1)
FBEは出ますが、#4 はTXEN ビットが "0" のため応答を返すことができません。結果、ノード#2 のネットワーク応答監視タイマがタイムアウトをし、ノード#2 は送信エラー(TA= 1, TMA= 0)と認識をします。
2)
DUPIDは、自分宛のトークン(ITT)でのみたち、FBEでは立ちません。
SID
◇質問 パケット送信時に、メモリ上のパケットデータのSIDとして自分のID以外の値を書いたらどうなりますか?
◇回答 送信時のSIDは、IDレジスタから直接読み込みますので、メモリ上のSIDは無視されます。
リコンフィグレーション タイマー
◇質問 ARCNET Technical Manual P.57のフローを見ると、リコンフィグレーションタイマーがスタートするのはトークンを受け取った後の様ですが、もしそうならTXEN= 0 のまま ID に 0 以外を書き込んだ場合、後からTXEN= 1 にしても、もうバーストを出すチャンスが無いのでしょうか?
◇回答 リコンフィグレーションタイマーは、自分宛のトークンを受け取ると840mS のカウントをゼロに戻して再び数え始め、また受け取れない場合には840mS おきにタイムアウトを起こします。従ってご質問のケースでは、TXEN= 1 としてから840mS 以内のどこかでバーストが送出されます。(どこで出るかは分かりません)
* 時間に関する数値はすべて2.5Mbps 時のものです。他の伝送レートでは 数値を2.5/ R倍して下さい。
(R= 伝送レート, R Mbps)
正しいタイマ値
◇質問 ネットワーク応答監視タイマの 78uS は74.6uS 、アイドル状態監視タイマーの86uS は78.2uS のそれぞれ間違いではないでしょうか?
◇回答 ご指摘の通り、タイマー値自体はそれぞれ 74.6uS、78.2uS が正解ですが、その前後に内部処理の期間があり、外部からみたチップの動作間隔としては、78uS、86uS と考えた方が簡単になります。
* 時間に関する数値はすべて2.5Mbps 時のものです。他の伝送レートでは 数値を2.5/ R倍して下さい。
(R= 伝送レート, R Mbps)
ネットワーク応答監視タイマー
◇質問 次のノードにトークンを送信し、本タイマのタイムアウトが発生した場合どうなりますか?
◇回答 NextID 番号をインクリメント(+1)してから再びトークンを送出します。この動作は、実際にネットワーク上に存在するノードが見つかるまで繰り返されます。これをリコン動作と呼びます。またこのタイムアウトによってリコンフラグは立ちません。
アイドル状態監視タイマー
◇質問 本タイムアウト発生時、チップの動作はどうなりますか?
◇回答 まずステータスレジスタのRECON ビットを立てます。次に(255-ID)×146uS 待って、その間にライン上に動作が検出出来なければ、NIDに自分のIDを入れたトークンを送出して、いわゆるリコン動作を開始します。
* 時間に関する数値はすべて2.5Mbps 時のものです。他の伝送レートでは 数値を2.5/ R倍して下さい。
(R= 伝送レート, R Mbps)

COM200xx チップの規格

16ビットバスへの接続
◇質問 16ビットバスのCPUを用いたところ、偶数番地のレジスタにアクセスする事が出来ません。
◇回答 16ビットバスに接続すると、上位または、下位の8ビットデータが無視されるため、CPUから見ると偶数または、奇数の番地しかアクセスできなくなります。ソフトウェアからみたCOM200xxの各レジスタのアドレスを1つおきにして、偶数または、奇数番地のみにして下さい。
5Mbpsでの処理時間
◇質問 5Mbpsでの送信時間やネットワーク性能の計算方法を教えてください。
◇回答 算出方法といたしましては、アークネットテクニカルマニュアル P8~11の所要時間 × 2.5/ R(R:伝送レート, R Mbps)となります。早い話、2.5Mbps 時の半分です。
チップターンアラウンド時間
◇質問 チップターンアラウンド時間はtypcal 値でしょうか? min,max はありますか?
◇回答 typcal 12.6uS,min 12.0uS,max 13.6uSです。
* 時間に関する数値はすべて2.5Mbps 時のものです。他の伝送レートでは 数値を2.5/ R倍して下さい。
(R= 伝送レート, R Mbps)
伝送レート
◇質問 セットアップレジスタのクロックプリスケーラで、伝送レートを2.5Mbps から1.25Mbps にすると、PULSE1, PULSE2の幅も変わりますか?それとも、周期が2倍になるだけでしょうか?
◇回答 プリスケーラは、RAM アクセス回路以外の全ての回路のクロックを遅くしますので、PULSE1, PULSE2のパルス幅も周期も全て2倍になります。
PULSE2端子の接地
◇質問 TXEN の極性を反転させるためにPULSE2 端子を接地する時、直接接地するのでしょうか?抵抗を接続するなら何オームまで可能でしょうか?また、この設定はどのタイミングで有効になりますか?
◇回答 直接接地してください。抵抗を通すときは、数キロオーム以下にして下さい。この極性設定の手順はパワーオン時にのみ行われ、ハードリセット解除後は変更できません。
RXINのタイミング
◇質問 RXIN のパルス幅の max値、周期の min, max 値の規定はないのでしょうか?
◇回答 データシートでは規定していませんが、目安として、パルス幅350nS max。周期は、400nS 周期からの各ビットのズレ(ビットジッタ)が±100nS以下である事。と、お考え下さい。
* 時間に関する数値はすべて2.5Mbps時のものです。他の伝送レートでは 数値を2.5/ R倍して下さい。
(R= 伝送レート, R Mbps)
CPUインタフェースの設定
◇質問 COM200xxとメモリが同じアドレス空間にあり、CPUインタフェース設定のために奇数アドレスへの書き込みを行う事が出来ません。
◇回答 COM200xxのCS 端子がHigh の期間に、最低一度の奇数アドレス書き込みがあればよく、他にどのようなアクセスがあっても構いません。CS 端子がLowでのアクセスがあると、その時点で設定は固定され、以後ハードリセット以外では変更できません。
CPU判定不良
◇質問 CPUバスタイプで、インテル系マルチプレクスタイプはデフォルトとなっていますが、8051タイプのCPUでうまく動作しません。
◇回答 マルチプレクスタイプは確かにデフォルトですが、AO/ MUX端子を接地する必要があります。
Revisionの確認
◇質問 手持ちの20020がRevision D であることはどうやって確認できますか?
◇回答 チップ表面のマーキングの2段目にあるDate Codeの先頭が "D" になっていれば Revision D です。
読み書き不良
◇質問 レジスタへの読み書きが正常に行えません。
◇回答 CPUバスタイプ認識のためのダミーアクセスを行っているでしょうか?またチップへの電源、グランドは十分でしょうか?
サイクルタイム
◇質問 データシートによると、アドレスポインタ下位レジスタへの書き込みのWR、またはDSの立ち上がりエッジから、次のアクセスサイクルでの立ち上がりエッジまで、最小4T 要るそうですが、これを守らないとどうなりますか?
◇回答 誤った値が読み出せたり、誤ったポインタへデータが書かれたりします。4T は必ずお守りください。
タイマと伝送レート
◇質問 ET1, 2 による各タイマの変更と、CKP0, 1, 2 によるボーレートの変更との関係がよくわかりません。
◇回答 ET1, 2 によるタイマの変更は、タイムアウト時間を延ばしてネットワークの最大延長距離をの延ばす場合に用います。ボーレートには影響しません。
一方CKP0, 1, 2 によるボーレートの変更は、チップ内部のプリスケーラでクロックを分周して速度を落としますので、タイマの動作速度も変わります。ボーレートを1/ 2にすると、クロックが1/ 2となり、タイムアウト時間が2倍になります。
アドレスポインタレジスタ
◇質問 アドレスポインタ上位レジスタに80H を書き込んだ直後に読み出すと8FH になっています。何故でしょうか?
◇回答 アドレスポインタレジスタから読める値は、チップ内部のメモリアドレスカウンタの値となっています。そのカウンタに任意の値を書き込むには、アドレスポインタ下位レジスタへの書き込みをしなければなりません。上位側だけ書き換える場合も、下位側への書き込みをセットで行ってください。
スローアービトレーション
◇質問 スローアービトレーションの設定で、アクセスタイムは変化しますか?
◇回答 サイクルタイムが2倍になるだけで、アクセスタイムへの影響はありません。
RevB,D の互換 No.1
◇質問 COM20020 RevB の基板にCOM20020 RevD を差したら動作しますか?
◇回答 上位コンパチ品ですので動作します。
RevB,D の互換 No.2
◇質問 COM20020 RevB の基板にCOM20020 RevD を差したら動作しなくなりました。
◇回答 RevD は RevB よりも微細化の進んだプロセスを用いて作られていますので、CPUインタフェース関係の端子(nRD/ nDS, nWR/ DIR, nCS)がノイズに多少敏感にできています。基板上のパターンの引き回しに問題があると、正しく動作できない場合があります。
一斉同報機能
◇質問 一斉同報機能はありますか?また、同報データの受信を確認する方法はありますか?
◇回答 パケットの宛先ID(DID)を "00" にすることで一斉同報(ブロードキャスト)します。ただし相手側に届いたかどうかの確認は行えませんので、確認が必要な場合は 1 対 1 で送信するか、アプリケーションソフトの方で対処してください。なお受信側はステータスビット RI により受信を確認できます。
消費電流値
◇質問 TXEN bitを "0" に落とした場合、消費電流はどのくらい減らせますか?
◇回答 COM200xx自体の消費電流値には変化ありませんが、外部のラインドライバが OFF されることにより、システムの消費電流は下がります。ただ当然のことながら、TXENが "0" のままではネットワークに参加することはできません。
パラメータシート
◇質問 輸出貿易管理令の該当/ 非該当に関する『パラメータシート(該非判定書)』の発行は可能でしょうか?
◇回答 発行可能です。弊社までお問い合わせ願います。

COM200xx ビットの説明 コンフィグレーション・レジスタ

Reset bit(bit7)
◇質問 ソフトリセットをするとき、このビットに "1" を書き込むだけでよいでしょうか?
◇回答 Reset bit に "1" が書かれている間ソフトリセット状態が持続します。Reset bit に "0" を書き込むことで解除されます。

COM200xx ビットの説明 ダイアグノスティック・レジスタ

読み出しクリア
◇質問 ダイアグノスティック・レジスタの各ビットは読み出すことで "0" にクリアされるとのことですが、読み出している途中でクリアされてしまうのでしょうか?
◇回答 クリアのタイミングは読み出し終了の直後ですので大丈夫です。なお読み出しではクリアできないビットもあります。
NEWNXTID : NextIDレジスタの読み出しでクリア
EXCNAK : Clear flagコマンドでクリア
NewNextID bit(bit1)
◇質問 NewNextID bitが "1" になる条件を教えてください。
◇回答 通常はリコンフィグレーション処理の中で、トークンを渡す相手を見つけたときにセットされます。従って、再構築前と再構築後とでNextIDレジスタが変わらない場合であっても、リコンフィグレーションが発生すればこのビットは立ちます。 部分的な再構築(トークンを投げた相手が何も反応しないと、次の相手を求めて次々とトークンを投げる動作)の場合も、トークンを渡す相手を発見したときにセットされます。
EXCNAK bit(bit3)
◇質問 Exccssive NAK が発生した場合、発行中の送信コマンドはどうなりますか?
◇回答 Excessive NAK は、NAK 回数が設定値(128 or 4)に達した事を示すステータスでしかなく、COM200xx 自体はそれ以降も同じ動作を継続します。必要に応じて送信キャンセルコマンドを発行してください。
MYRECON bit(bit7)
◇質問 MYRECON とRECON は違うのですか?
◇回答 MYRECON▼
自分が原因でリコンフィグレーションを起こしたことを意味します。
ネットワークへ新たに参加する、あるいは再参加するために、既存のネットワークを破壊してリコンフィグレーションを促す動作をリコンバーストと呼び、ビットパターン "111111110" を765回(約2.7mS)送信します。リコンバーストはソフトウェアリセットの解除、または840mS のネットワーク状態監視タイマーのタイムアウトにより起動され、MYRECON ビットはこのときセットされます。

RECON▼
ネットワーク全体が一旦沈黙したため再構築が必要となったことを意味します。沈黙の原因は色々ありますが、最もよく見られるケースは、新たに参加したノードから送信されるリコンバーストです。他には、トークンを保有するノードが離脱してしまったとき、ACK/ NAKがノイズ等で化けたときなどです。

沈黙の判定は86uSのアイドル状態監視タイマが行っていて、これがタイムアウトすることで再構築(リコンフィグレーション)が始まります。なおRECON ビットはこのタイムアウトの直後にセットされます。

通常は下のような流れで処理が行われます。
1) 840mSタイマがタイムアウト
2) リコンバースト(バーストを送信したノードのみMYRECON が "1" に)
3) ネットワーク全体が沈黙
4) 86uSタイマがタイムアウト(全ノードでRECON が "1" に)
5) 再構築
TA bit(bit0)
◇質問 このビットが送信コマンド発行後に0 になるまで、どのくらい時間がかかりますか?
◇回答 送信コマンド発行の直後に0 になります。
TMA bit(bit1)
◇質問 TMA bitのみが立ち、TA bitが立たない事はありますか?
◇回答 内部動作の順序では、TMA bit->TA bitの順でセットされますので、ステータスを読み出すタイミングによってはあります。これは過渡的なものであって、もう一度読み出せば TA bit も立っているはずです。ですのでTA bit で送信終了の判断をすることをお奨めします。
Test bit(bit3)
◇質問 このビットはどのように使用するのでしょうか?
◇回答 このビットは、コマンドによりON/ OFFされますので、基本的なチップ動作の確認が出来ます。コマンド "0000t111" の、t の値がTestbitにセットされます。

COM200xx ソフトの作り方 初期化ルーチン

プロセッサタイプの決定 01
◇質問 初期化の手順で、『COM200xxと同じ領域内の他のI/ O の奇数番地への書き込み』(プロセッサ・インタフェース・モードが決定する)とありますが、どの番地に何を書き込めばよいのでしょうか?
◇回答 COM200xx へのCSが出ない奇数番地への書き込みをしてください。プロセッサタイプを決めるためのダミーの書き込みですので、書き込む内容は何でも構いません。
プロセッサタイプの決定 02
◇質問 プロセッサタイプの決定は、「COM200xxをアクセスする前」ならば、何時でもよいのでしょうか?
◇回答 COM200xx をアクセスする前に行えば、いつでも構いません。
RESETビットについて
◇質問 ソフトウェアリセット命令を行う場合は、RESETビットに "1" を書き込んだ後すぐ "0" を書き込む方法でよいのでしょうか?
◇回答 Yes, それで構いません。
RESETビットが "1" の間はずっとソフトウェアリセット状態が続きます。
ノードIDのSET 01
◇質問 ノードIDのセットは、他のレジスタを設定した後で行えばよいのでしょうか?
◇回答 CKP [2:0] やBACKPLANE などの通信に関わる基本設定を行ったあとで行うのが一般的です。ただしノードIDレジスタの値がゼロの間はソフトウェアリセット状態が続いていますので、マスク・レジスタ(EFビットが "1" の場合)及びコマンド・レジスタへの書き込みはできません(無視されます)。
ノードIDのSET 02
◇質問 他のノードとID番号が重ならないようにする設定方法はありますか?
◇回答 オフラインの状態(TXEN=0)で自ノードIDをセットし、トークンが一周する間(最大で840mS)にDUPIDビットが新たに "1" にならないことを確認します。その後TXENビットに "1" を書き込んでネットワークへ参加してください。
もっともこの方法では、同じノードIDを持ったノードが同時に参加してくるケースにまでは対応できませんので、Ethernet のMACアドレスと同様に、ノードIDには重複のないユニークな値を割り当てることを強くお奨めします。
RCVACT, TOKENの質問 No.1
◇質問 初期化を行ったところ、RCVACT,TOKEN がともに "1" になりません。初期化処理を間違えたのでしょうか?
◇回答 RCVACT,TOKEN がともに "0" の時は、このノード以外のノードが存在していないと思われます。以下の事項の確認をしてください。
・コネクタの接続
・他のノードの参加状況(TXENが0ではないか? ソフトウェアリセットの状態になっていないか?)
RCVACT, TOKENの質問 No.2
◇質問 オフライン(TXEN= 0)の状態のままで、既に1台のノードが参加するネットワークに(物理的な)接続をした場合、RCVACT,TOKEN ビットには何が見えますか?
◇回答 接続のタイミングによって異なります。
単独で参加中のノードは、NextIDをインクリメントしながらトークンを送信し続けていますので、普通はRCVACT,TOKEN ビットには1, 1 が見えます。ただ時々(840mS毎)バーストを送信しますので、その後の沈黙期間、つまりそのノードが(255-NID)*146uSタイマの処理をしている間はRCVACT,TOKEN ビットには 0, 0 が見えます。
RECON処理について 01
◇質問 初期化処理終了後、RECONビットをクリアしても RECON= 1 で、またダイアグノスティック・レジスタを読み出しても、しばらくするとMYRECON= 1 が読めてしまいます。何故でしょうか?
◇回答 "RECON", "MYRICON" が共に "1" の時は、このノードの他にノードが存在しないと思われます。
以下の事項を確認してください。
・ノードIDの衝突
・コネクタの接続の確認
・他のノードがネットワークに参加しているか?
・終端抵抗の異常
RECON処理について 02
◇質問 ハード的な不具合や通信設定のミスで MYRECON が発生しました。ネットワークから離脱する方法を教えて下さい。
◇回答 MYRECONビットが何度か立つようであれば、自分が異常という可能性が高いです。TXEN ビットを "0" にして、オフライン状態にしてください。
TXENビットについて 01
◇質問 TXENを 1 にセットするタイミングはいつが良いでしょうか?
◇回答 衝突の無いノードID値を自ノードIDレジスタに設定したのち、TXEN ビットを "1" にセットしてネットワークへ参加をするのが一般的です。

COM200xx ソフトの作り方 送信処理

TAビットについて 01
◇質問 TAビットは送信元が送信パケットを送り終わった時点で立つのでしょうか?それとも、相手先からの ACK,NAK を受けた時点でしょうか?
◇回答 まずはじめに、TAビットは送信完了を示すものではなく、失敗も含めて送信が終了したことを示します。以下の4つの条件のいずれかで立ちます。
1) 通常パケット送信後にACK応答を受信した場合
2) FBE送信後のNo Activity(78uS)タイムアウト
3) 通常パケット送信後のNo Activity(78uS)タイムアウト
4) ブロードキャストパケット送信直後
なお、1) の場合のみ、送信の成功を示すTMAビットも "1" が立ちます。
TAビットについて 02
◇質問 送信終了(正常)時、"TA", "TMA" ビットは "0"-> "1" となりますが、双方のビットの時間のズレはどの程度でしょうか?
◇回答 約4uSです。しかし、TMAが "0" か "1" かを決定後、TAが "1" となります。そして、TAがインタラプトの要因となっています。従って、TA= 1 の時はすでにTMAは決定しています。
TA,TMAビットのリセット時間
◇質問 送信コマンド発行後、ステータスレジスタの TA,TMAビットがに "0" リセットされるのを確認するとありますが、
1) "0" にリセットされるまでの時間
2) "0" にリセット後、TAビットがセットされるまでの時間
これらはどのくらいでしょうか?
◇回答 1) 約100nS後リセットされます。
2) ネットワーク環境、送信バイトの大きさに異なりますが、最短で
?? FBE 15.6uS
?? Tta 12.6uS
?? ACK  6.8uS
?? Tta 12.6uS
?? PAC 33.2uS + 4.4 × BuS(B:バイト数)
?? Tta 12.6uS
+) ACK  6.8uS
-----------------------------------------
?????? 100.2uS + 4.4 × BuS  かかります。

なおブロードキャスト送信の場合は、最短で、33.2uS + 4.4 × BuSとなります。
送信コマンドの連続発行
◇質問 送信コマンドを続けて発行しては駄目ですか?
◇回答 TA=0 の場合送信コマンドを発行すると、送信中の RAMページポインタが書き換わってしまい送信データの内容が正しく送信されない恐れがあります。TA= 1 を確認後、送信コマンドを発行してください。
接続ノードのチェック
◇質問 接続されているノードを調べるため、全てのノードに順番にデータを送信して返事を待ち、チェックするようにしていますが接続されていないノードに送信した場合、TAが立ちません。どの様に検出し、どう処置すればよいでしょうか?
◇回答 ARCNETで送信先が存在しない場合、TA は立ち TMA は立ちません。送信で TA が立たないという事は、送信先が存在しているが受信コマンドが発行されていない(= NAK 応答を返されている)か、ネットワーク全体がリコンフィグレーション処理に進んでいるのではないかと思われます。
二重送信の原因
◇質問 ARCNETでは、データパケット中にブロック番号をもっていないようですが、送信したノードがノイズ等の障害によりACK を受け取れなかった場合、送信ノードの再送により受信ノードは同一のデータを重複して受信する事になるのでしょうか?同一データパケットの受信により不具合が生じるならソフト上で対策する必要があるのでしょうか?
◇回答 ARCNETコントローラでは、パケット数をカウントしていませんので、ドライバーソフトあるいは、アプリケーションソフトで管理する必要があります。なお、パケットの欠落はプロトコル上あり得ません。
送信中のリコンフィグレーション
◇質問 データを送信している最中にリコンフィグレーションが起きた場合(他のノードが立ち上がった場合等)、送信中のデータは失われてしまうのでしょうか?
また、ステータスレジスタに Reconfiguration フラグがありますが、このビットが立った場合は再送しなければならないのでしょうか?
◇回答 データを送信中にリコンフィグレーションが起きた場合、送信中のデータは失われませんが、TA= 1,TMA= 0 により、送信失敗となる場合があるので、その時は再送処理を行わなければなりません。
全クライアントへデータ送信
◇質問 各クライアントに同一のデータを送信したい場合、ブロードキャスト送信にすれば良いのでしょうか?
◇回答 DID = "00" がブロードキャスト・パケットとなり、受信局でブロードキャストパケットの受信が許可されていれば受信可能です。

COM200xx ソフトの作り方 受信処理

受信許可命令
◇質問 受信許可命令以外のページNo. データを受信した場合は、送信元へ "NAK" を返信するか?
◇回答 受信許可命令は1つずつ発行します。よって、許可されたページに受信が完了するまで新しく受信許可命令を発行できません(送信要求命令も同様)。
また、ページ番号は送信と受信に全く関係が無く、送信要求されたページの内容が、相手ノードの受信許可されたページへコピーされるだけです。NAK 応答の発生は、送信された FBE の受信先が受信許可の状態でない場合です。
パケット受信時のエラーチェック
◇質問 パケット受信時のエラーチェックでエラー検出された場合、ホストCPU がそれを知る手段は無いのか?
◇回答 パケット単位の転送であるため、受信ノードでは正常に受信した時だけ完了(RI)をステータスとしてインタラプトをあげますが、エラーの場合は全く知る事が出来ません。
トークンの受信
◇質問 トークンが相手先で正しく受信されなかった事を、送り元はどのように検出するのでしょうか?
◇回答 ネットワーク応答監視タイマのタイムアウト(78uS)で検出します。トークンを宛先が正しく受信した場合は、宛先側のノードはその次のノードへトークンをパスするか、或いはFBEまたはブロードキャストパケットを送信します。その際の信号レベルの変化を検出して、送り元のノードはトークンが宛先に正しく届いたと判断します。
送信データ転送中の受信
◇質問 送信のため、送信データをCPU側から内蔵RAMへ書き込んでいる時、
1) 受信は可能でしょうか?
2) 可能な場合、アドレス・ポインタ上位レジスタのRDDATA の値が変わってしまうのでしょうか?
3) 不可能な場合、送信データの書き込み中はユーザー側で受信禁止の処理をしなければいけないのでしょうか?
◇回答 1)
受信コマンドが発行されていれば、通常と変わらず受信をします。
2)
受信によってアドレス・ポインタ上位および下位レジスタの値が変わることはありません。CPU側から見えるアドレス・ポインタとは別に、チップ内部に受信/ 送信のためのアドレス・ポインタが用意されているためです。
3)
受信禁止の処理は必要ありません。送信データの書き込みが終わった後に受信データの読み出しを行って頂ければ良いと思います。
ブロードキャストの受信
◇質問 ブロードキャストパケットを受信した場合、受信許可命令によって指定したページは無視されてデータを取り込むのか?
◇回答 ブロードキャストは、ブロードキャスト受信許可があれば、受信してしまいます。

COM200xx ソフトの作り方 割り込み処理

割り込みについて 01
◇質問 1つの割り込みが要因が発生し、割り込み処理中に他の割り込み要因が発生した場合、
1) 後続の割り込みはキューイングされ、割り込み処理完了後に再び割り込みが発生するのでしょうか?
2) 後続の割り込みは直ちにステータスレジスタに反映され、別の割り込みとはならないのでしょうか?
◇回答 割り込みのキューイングは行われません。割り込み要因の発生は直ちにステータスレジスタに反映されます。割り込み処理中に余計なINTR が出て欲しくない場合は、割り込みマスクレジスタを使って一時的にマスクをしてください。
割り込みについて 02
◇質問 COM200xx 日本語データシートのシーケンシャル・アクセス・メモリの項に「割り込み処理の中で、ポインタの値が書き変わる事があります。」とありますが、それは何故でしょうか?
◇回答 読み出し/ 書き込み中に割り込み処理等による別の読み出し/ 書き出しを行うと、アドレスポインタは当然の事ながら変わります。アドレスポインタは1つであり、チップはその管理を一切行いませんので、ユーザー側で管理をする必要があります。

具体的な管理の仕方ですが、
1)読み出し/ 書き出し中は割り込みをマスクする。
2)割り込み発生時にはその時点でのポインタを待避(ストア)し、割り込み処理終了時に復元(リストア)する。
等が考えられます。
EXCNAK割り込みについて
◇質問 COM200xx 日本語データシートに「FBEに対して、NAK 応答が128回繰り返されると、EXCNAK ビットがセットされて、割り込みが発生する。」とあります。このビットはダイアグノスティック・レジスタに存在しますが、割り込みが発生した時は、ステータスレジスタだけ読んでも駄目なのですね?
またダイアグノスティック・レジスタの各ビットのうち、割り込み要因となるビットはどれでしょうか?
◇回答 割り込みルーチンで、FBEの128回不通信をチェックするためには、ダイアグノスティック・レジスタを確認する必要があります。
ダイアグノスティック・レジスタの各ビットのうちで割り込み要因となるのは、EXCNAK とNEW-NXTID の2つです。
送信割り込みのタイミング
◇質問 送信終了時の TA による割り込みは、TMA フラグとは無関係に発生するのでしょうか?
また、ACK, NAK 等の受信を待たずに発生するのでしょうか?
◇回答 TA ビットは、TMA ビットと無関係に発生します。
ARCNETテクニカル・マニュアル ARCNETデバイスの内部動作のフローを参照してください。

COM200xx ソフトの作り方 その他

RECON, MYRECONセット条件
◇質問 ステータス・レジスタの RECON ビット、及びダイアグノスティック・レジスタの MYRECON ビットがセットされるタイミング(状態)を詳しく教えてください。
◇回答 RECON ビットがセットされるのは、86uSのアイドル時間(Idle Time)を検出した結果、146uS ×(255 - ID値)のタイマーをスタートする直前となります。
86uSのアイドル時間の検出はリコンフィグレーション・バーストの発生や、トークンを持ったノードの脱落等によって起こります。
MYRECON ビットがセットされるのは、自分に対するトークンが回って来ない事による、840mSのリコンフィグレーション時間(Reconfiguration time)を検出した結果、2.7mSのリコンフィグレーション・バースト信号を送信する直前となります。
メモリ内 D1,ID値の意味
◇質問 COM20020 RevD データシートの8-2.初期化の順序において、(内蔵メモリへ書き込まれる
(アドレス000H <- D1H)
(アドレス001H <- ID値)
と、ありますが、これは何を意味しているのでしょうか?
◇回答 内部マイクロシーケンサーが、自己診断の終了結果としてこれらの書き込みを行う事を説明したものです。
AUTOINCをセットした場合
◇質問 アドレスポインタ上位レジスタの AUTOINC を "1" にセットすると、データレジスタ経由で内蔵RAM に連続書き込み、及び読み出しが可能になるのでしょうか?
◇回答 AUTOINCビットは、連続書き込み、或いは連続読み出しのために用意されています。
メモリの読み出し不良?
◇質問 内蔵RAMを読み出したところ、どうもひとつ前のポインタに格納された内容が読めているようです。
チップの不良なのでしょうか?
◇回答 アドレスポインタ上位レジスタのRDDATAの設定は正しいでしょうか?
COM200xx は、データレジスタ経由で内蔵RAM へアクセスするシーケンシャル・アクセス方式(間接アクセス)を採用しています。その関係でデータレジスタへアクセスする前には予め書き込みor読み出しの方向をRDDATA によって指定する必要があります。
ステータス変化の最大遅延
◇質問 コマンド発行とステータス変化までの最大遅延時間を教えて下さい。
1) TA= 1 の時、送信コマンド発行から TA= 0 までの時間。
2) RI= 1 の時、受信コマンド発行から RI= 0 までの時間。
3) TA= 0 の時、受信キャンセル発行から TA= 1 までの時間。
4) RI= 0 の時、受信キャンセル発行からRI= 1 までの時間。
5) POR= 1, EXCNAK= 1 の時、クリアフラグ発行からクリアまでの時間。
6) RECON= 1 の時、クリアフラグ発行からクリアまでの時間。
◇回答 1) 約100nS
2) 約100nS
3) 約100nS + (トークンが自ノードへ戻ってくるまでの時間)
4) 約100nS + (トークンが自ノードへ戻ってくるまでの時間)
5) 約100nS
6) 約100nS
内蔵RAMのパケットフォーマット
◇質問 内蔵RAM に書き込むパケットのフォーマットについて
1) 宛先IDなどのヘッダ部分はページごとに必要でしょうか?
2) AUTOINC にした場合、アドレス 0FFH(ショートパケット時)の次のアドレスはどこになるでしょうか?
3) 送信時の先頭データのアドレスは、COUNTの値でよいのでしょうか?
◇回答 1) パケットのヘッダ情報 SID, DID, COUNT(ロングパケット時は、"00" + "COUNT")は、各ページごとに用意してください。
2) 0FFH の次は 100H です。つまり、次のページへ行ってしまいます。
3) その通りです。COUNTには、256から送りたいデータバイト数を引いた値をセットしてください。

COM200xx バックプレーンモード

RECON, MYRECONセット条件
◇質問 バックプレーンモードとノーマルモードの機能の違いは何でしょうか?
◇回答 PULSE1, PULSE2, RXIN の3端子の動作が違ってきます。ノーマルモードでは、トランシーバとして専用ハイブリッドICの使用を前提としているため、それに最適の構成として、PULSE1, PULSE2 からは100nS 幅のデータが位相をずらして負論理で出力され、RXIN は正論理でデータを受けます。 それに対し、バックプレーンモードではトランシーバ無しで COM200xx が直接、送受信出来る様に構成されているため、PLUSE1 からのみ200nS幅(伝送レート= 2.5Mbps時)でデータが負論理出力され、RXIN は負論理でデータを受けます。また、パルス幅は以下の式の様に変化します。
PULSE1 Pulse Width = 200nS ×(2.5/ R)R:伝送レート(Mbps)

PULSE2 端子

RECON, MYRECON セット条件
◇質問 バックプレーンモード時のPULSE2 端子には何が出力されるのでしょうか?
◇回答 POWER ON 時にPULSE2をOPEN にしておけば、バックプレーンモードでは内部クロック(通常は、クリスタルの1/ 4, セットアップレジスタのプリスケーラビットによって変化)が出力されます。
但し、このクロックは、ハードリセット期間及びハードリセット後、バックプレーンモードを指定するまでの期間は出力されません。また、データ受信中は同期のために停止したり、位相がずれたりしますので、有効な使い道は特にありません。

HYC5000のVref 端子

RECON, MYRECONセット条件
◇質問 HYC5000のVref 端子(1番ピン)は未接続でよいか?
◇回答 内部で定電圧を与えていますので、通常は開放で構いません。

Vref 端子の調整方法

RECON, MYRECONセット条件
◇質問 Vref 端子の調整方法と、その効果/ 影響について教えてください。
◇回答 HYC製品のVref(基準電圧)は、以下の方法で調整することができます。
1) Vref を上げたい -> Vref 端子にプルアップ抵抗を付ける
2) Vref を下げたい -> Vref 端子にプルダウン抵抗を付ける

効果と影響
1) Vref を上げる
効果:反射ノイズに強くなるため、最短ノード間距離を標準よりも短くできる。
影響:微弱レベルの信号を受信できなくなるため、最長ケーブル長が標準より短くなる。
2) Vref を下げる
効果:微弱レベルの信号を受信できるようになるため、最長ケーブル長を標準よりも長くできる。
影響:反射ノイズに弱くなるため、最短ノード間距離が標準よりも長くなる。

電源オフ時のインピーダンス

RECON, MYRECONセット条件
◇質問 HYC5000 をノード数16~20 程度で使用したいのですが、どの様な制約があるでしょうか?また簡単なテスト方法を教えて下さい。
◇回答 ノード数が増えた際に問題となるのは、信号レベルの減衰と反射ノイズの増大です。この2つの問題による影響を少なくするためには、
1) ノード間距離を短くしすぎない(反射ノイズ対策)
2) 総延長距離をできるだけ短くする(減衰対策)
上記2点の対策を両方行うことが重要です。
参考データとして、マイクロチップ社125Ω ツイストペア線を用いて、ノード間最短距離を5m とした際の、マイクロチップ社でのHYC5000 評価結果を示します。
【 10Mbps 】
総延長距離65m、ノード数14台
【 5/ 2.5Mbps 】
総延長距離100m、ノード数20台

次に簡単なテスト方法ですが、アクティブノード2台とダミーノード20台程度を用意して、様々なケーブリング条件下で2ノード間の通信が正常に行われることを確認して下さい。電源電圧、温度を振ればより正確な評価となります。また敷設時は評価結果をもとに十分なマージンを確保して下さい。
(20ノードを接続するには最短ノード間距離の目安を5m として下さい)
【減衰の評価方法】
|<-長めの距離->|
■-------------□--□--□--□--□--□--□--□--□--□--■

【反射の評価方法】
□--□--□--□--□--|<--長めの距離-->|
□--□--□--□--□--■-------------■--□--□--□--□--□

または、
■--|<--長めの距離-->|
■--■-------------□--□--□--□--□--□--□--□--□--□

■アクティブノード
□ダミーノード
◇質問 入手の容易な放送機器用の同軸ケーブル(5C/ 2V, 3C/ 2V)を伝送メディアとして使用する場合、終端抵抗は何Ω にしたら良いでしょうか?
◇回答 終端抵抗は、原則として伝送メディアの特性インピーダンスに合ったものを使用します。よって、5C/ 2V, 3C/ 2Vでは75Ω をご使用下さい。
◇質問 伝送距離数 Km に対応するトランシーバの製品化予定はありますか?
◇回答 残念ながら、現在のところ予定しておりません。 長距離の通信に関しましては光ファイバを使用していただくか、ノード間にリピーターを設置していただくことを御提案させていただいております。低速度の通信であれば、ある程度の長い距離に対応したトランシーバの開発は可能なのですが、部品コスト・技術の両面で難しいのが現状です。個別にご相談させて下さい。
◇質問 同軸ケーブルがツイストペアケーブルと同等またはそれ以上の性能が得られるような説明でしたが、一般的に平衡のほうが不平衡より安定した伝送が行えると思います。何故、同軸ケーブルでツイストペアケーブルと同等またはそれ以上の性能が出るのでしょうか?
◇回答 同軸ケーブルはツイストペアケーブルと比較して反射及びノイズに対して弱い面があります。その反面、ツイストペアケーブルと比較して減衰特性が良く長距離化 に適していると言えます。
参考として、転送速度= 2.5Mbps、最短ノード間距離= 50cm の条件下で通信評価を行った際の結果を示します。
- ツイストペア線(マイクロチップ社 ARC-Cab/ 125T):80m/ 8ノード
- 同軸線(マイクロチップ社RG62) :280m/ 4ノード
◇質問 HYC9068 の製造中止により、同軸ケーブルでの 1 対1 接続で600m を維持したいと考えています。HYC5000で 1 対1 接続で2.5Mbpsで接続する時、TMCの同軸ケーブルRG62 の最大延距離は何m でしょうか?
◇回答 RG62ケーブル2.5Mbps、1 対1 接続の場合、最大延長距離は550m となります。
(※上記数値は参考値となります)

ARCSCOPE

動作可能機種とOS
◇質問 ARCSCOPE(Relese2.X)の動作可能機種とOS環境を教えてください。
◇回答 ARCSCOPE(Relese2.X)をご使用にあたっての動作環境と致しましては、PC本体:AT互換機, Pentium 500MHz 以上を推奨、OS:Windows 9X(但し、Win2000, XPは除く)です。
Windows2000, XPをご使用の場合、ARCSCOPE(Relese3.X)をご利用下さい。但し、サポートカードは、ARC-PCI22, ARC-PCM のみで、ARC-AT はサポート外となります。
Captureが動作しない
◇質問 ARCSCOPE を立ち上げ後、Map画面で "ALL" を選択後、Monitor ではパケットの送受信が行われているのが見えるのですが、Capture でパケットが収集出来ません。
その際にMonitor 画面でRECON を確認しましたが、RECON は発生していませんでした。
◇回答 Capture では割り込み処理を行っているため(Monitorでは割り込みを使っていない)。考えられる原因として、Setup で設定したIRQ値と、ボードのIRQ値が合っていないと思われます。

TMC2005 (HUBチップ)

COM200xxとトランシーバとの接続
◇質問 COM200xx とTMC2005 とHYC5000との接続は?
◇回答 接続方法については、TMC2005データシート(P.8~P.15)に各種トランシーバを例に掲載しておりますので、そちら後ご参照下さい。
HUBのカスケード接続
◇質問 カスケード接続をするときの注意点教えてください。
◇回答 HUBポートを使ってカスケード接続をする際には、最も離れたノード間で何台のTMC2005が存在するかを考慮する必要があります。TMC2005は、ポートの入出力の間に、伝送レート2.5Mbps 時で最大650nS の遅延が生じます。これは約135m のケーブルの伝播遅延に相当します。例えば、最も離れたノード間にTMC2005が直列に20台存在したとすると、ケーブル換算で、
135m × 20 = 2.7km を 6.4km から引いた長さ 3.7km が実際のケーブルとして使用できる長さとなります。

配線&ネットワークの拡張 ツイストペア・同軸線

ARCNET用ケーブルの規格
◇質問 ARCNETでのネットワークを構築する場合には、どのような規格のケーブルを使えばよいのでしょうか?
◇回答 マイクロチップ社で推奨しておりますケーブルの仕様を以下に示します。

ツイストペア線の場合
・導体抵抗       : 93.8Ω/ Km 以下 (at 20℃)
・特性インピーダンス  : 標準 125Ω (at 2.5MHz)
・減衰量        : 標準 25dB/ km (at 2.5MHz, at 20℃)

同軸ケーブルの場合
・導体抵抗       : 54Ω/ Km 以下 (at 20℃)
・特性インピーダンス  : 標準 93±5Ω (at 2.5MHz)
・減衰量        : 標準 19dB/ km (at 2.5MHz, at 20℃)
絶縁型メディアドライバ HYC シリーズを使用時の周辺回路
◇質問 メディアドライバHYCシリーズを使用して同軸ケーブルを接続する場合、推奨回路ではコネクタとドライバの間に5.6kΩ(1/ 2W)×2個と、1kV 耐圧のコンデンサが付いていますが、これらの値は変更可能でしょうか?
◇回答 5.6kΩ × 2個を 11.2kΩ × 1個に変更しても問題ありません。また、コンデンサの耐圧はサージや、ノイズからの保護のための基準値ですので、変更する事は可能です。
自己送信について
◇質問 ARCNETのドライバの接続の場合、自己の送信は受信できるのでしょうか?
◇回答 ARCNETは、半二重のため、自己の送受信は出来ません。

製品のお問い合わせ

製品の購入や仕様等に関するお問い合わせはこちらから。

お問い合わせ