CircLinkARCNETは改良型トークンパッシング方式を使用したプロトコルの名称です。これを使用したARCNETは現在も高い評価を得ており、各種産業マーケットで活躍しています。CircLinkは、日本市場の要求に応じて、更に改良された技術をベースにした技術です。22は、各種マイコンと簡単に接続できるように作られております。SHシリーズをはじめとするRISC型マイコンはバス規定が厳しく、ARCNETコントローラを接続する場合はバスタイミングに十分気をつける必要があります。3を例に、接続時の注意点をまとめてご紹介致します。22の接続SH-1とCOM20020との接続においては以下の2点に注意して下さい。リードサイクルのACタイミング規定2.16ビットCPU接続時のダミーライトアドレス以下に詳細の説明を致します。ホールド時間は非常にタイトです。リードサイクルで以下の2点が問題になることが有ります。ホールド時間の違反は、ウェイトサイクル挿入によるバスサイクル延長を行っても、解決できないことが多い様です。バスクロックが速くなればなるほど、問題になります。ホールド時間を2種類設定できます。ホールド時間の規定が緩和され、上記の問題が対策される場合があります。その反面データのアクセス時間や、nRDの規定パルス幅などが長くなるという欠点もあります。この対策としてウェイトサイクル挿入によるバスサイクル延長を行って下さい。ここで誤解しないで頂きたいのは、高速リード動作モードといっても、アクセス時間やサイクルタイムが高速になるのではなく、RISC型の高速なCPUでも外付けロジック無しで接続できるモードであるということです。実際には、データのアクセス時間が長くなり、ウェイトサイクルの挿入によりnRDのパルス幅などが長くなりますので、高速では有りません。実際のタイミング規定は、COM20020D日本語データシート(REV1.0)の70ページと71ページに記述してありますので、両ページを見比べて頂ければ違いを理解して頂けると思います。1に設定してもライトサイクルのタイミング規定は、緩和されませんのでご注意下さい。ライト動作)を行う必要があります。16ビットCPU接続時のダミーライトアドレスは注意が必要です。奇数アドレスとは、あくまでもCOM20020にとってのアドレスです。Highとなるアドレスのことを奇数アドレスといっています。16ビットCPU接続時には、CPU側のA1ピンをCOM20020のA0ピンにシフトして接続しますので、この場合の奇数アドレスの意味が変わってきます。この場合には、CPUのA1ピンがHighとなるアドレスへダミーライトを行って下さい。このダミーライトによってCPUバスタイプが決定され、それ以降、COM20020のレジスタに対してアクセスが可能になります。22の接続COM20020とSH-2との接続においては以下の2点に注意して下さい。ウエイト挿入によりバスサイクルを拡張する2.16ビットCPU接続時のダミーライトアドレス以下に詳細の説明を致します。ホールド時間は非常にタイトです。リードサイクルで以下の2点が問題になることが有り得ます。ホールド時間の違反は、ウェイトサイクル挿入によるバスサイクル延長を行っても、解決できないことが多い様です。バスクロックが速くなればなるほど、問題になります。ホールド時間を確保するモードが備わっています。ホールド時間を十分に稼ぐことができます。有効にするには、SH-2のBCR2レジスタのSW3~0ビットにて設定します。ARB)といったサイクルタイム(インターバル時間)について、タイミング規定があります。ARBは、サイクルタイム(インターバルタイム)の規定です。具体的には、「COM20020D日本語データシートRev1.0」の66ページ以降のACタイミングチャートで規定されています。nRDタイプ)モードです。その規定は70ページ(リードサイクル)と74ページ(ライトサイクル)に書かれています。いった値で規定されています。ライトサイクル中のnRDまたはnWRのアクティブ幅を延長する為と、COM20022への連続アクセスに対する、インターバル時間を十分にとる為に、ウエイトを挿入しなくてはなりません。COM20020への連続アクセスの組み合わせは、以下の4通りです。)ライトはnWRの立上りが基準となり、リードはnRDの立下りが基準となります。Dはクリアすることできます。Cに付いては、プログラム上で、意図的にウェイトする事が必要です。ARB以上ウェイトしてから、COM20020へのリードを行う様にプログラムを書いて下さい。ウェイト挿入については、SH-2のWCR1レジスタのW33~0ビットにて設定します。ARBとは、COM20020内部のデュアルポートRAMに供給されているクロック信号の周期を表わします。opr)より求められます。0ビットは、セットアップ2レジスタに存在し、クロックてい倍回路(PLL回路)の「てい倍率」を設定します。11:x4)SLOWARBビットは、セットアップ1レジスタに存在し、デュアルポートRAMに供給されているクロック信号のスピードを半分にするかしないかの設定をします。0のままで構いません。ライト動作)を行う必要があります。16ビットCPU接続時のダミーライトアドレスは注意が必要です。奇数アドレスとは、あくまでもCOM20020にとってのアドレスです。Highとなるアドレスのことを奇数アドレスといっています。16ビットCPU接続時には、CPU側のA1ピンをCOM20020のA0ピンにシフトして接続しますので、この場合の奇数アドレスの意味が変わってきます。この場合には、CPUのA1ピンがHighとなるアドレスへダミーライトを行って下さい。このダミーライトによってCPUバスタイプが決定され、それ以降、COM20020のレジスタに対してアクセスが可能になります。22の接続SH-3とCOM20020との接続においては以下の2点に注意して下さい。リードサイクルのACタイミング規定2.16ビットCPU接続時のダミーライトアドレス以下に詳細の説明を致します。リードサイクルのACタイミング規定SH-3データシートのACタイミング規定を調べてみましたところ、SH-1と比較してタイミングが変わっております。それを以下に示します。・ライト(nWE)の立上りにおけるチップセレクト(nCS)のホールド時間これらのタイミング変更により、SH1ではリードサイクル側のセットアップ時間が問題であったのに対し、SH-3ではリードサイクルとライトサイクル共にホールド時間が特に問題となります。1)では対策が不十分です。COM20020Dの高速CPUリード動作モードは、リードサイクルには有効ですが、ライトサイクルについては効果が有りません。よって、高速CPUリード動作モードは使用しないということで問題点をご説明致します。nRD立上りにおける、nCSのホールド時間が規定できない。nRD立上りとnCS立上りの変化タイミングは、T2サイクルのCKIO(バスクロック)立下りであり、両信号は同時に変化します。最大値の規定のみであるので、nRDの立上りが、nCSの立ち上りより遅れることも有り得ます。COM20020では、これを許していません。nWE立上りにおける、nCSのホールド時間が規定できない。nWE立上りとnCS立上りの変化タイミングは、T2サイクルのCKIO(バスクロック)立下りであり、両信号は同時に変化します。最大値の規定のみであるので、nWEの立上りが、nCSの立ち上りより遅れることも有り得ます。COM20020では、これを許していません。2の対策として、外付け回路によりnCSの立上りのみを遅らせることが必要です。ライト動作)を行う必要があります。16ビットCPU接続時のダミーライトアドレスは注意が必要です。奇数アドレスとは、あくまでもCOM20020にとってのアドレスです。Highとなるアドレスのことを奇数アドレスといっています。16ビットCPU接続時には、CPU側のA1ピンをCOM20020のA0ピンにシフトして接続しますので、この場合の奇数アドレスの意味が変わってきます。この場合には、CPUのA1ピンがHighとなるアドレスへダミーライトを行って下さい。このダミーライトによってCPUバスタイプが決定され、それ以降、COM20020のレジスタに対してアクセスが可能になります。125nS0)前提SH4のACタイミングは、バスクロック(CKIO)出力を基準とした遅延時間で規定していますが、最小遅延時間の規定が無いものがあります。この場合には、最小0nSと判断します。SH4のACタイミング規定内のにtRSDにおいて、RD信号はCKIO立下りで変化しますが、RD信号の変化点はCKIO立上りより前になることは有りません。ホールド時間は、2ウェイト挿入によりすべて満足しています。チップセレクトのホールド時間は、両方共違反しています。RBUSTMGビット=1に設定した場合でも、これらホールド時間は0nS以上必要です。チップセレクトは同じタイミング(CKIO立上り)で変化しますのでそれぞれの位置関係は保証されません。よって、ホールド時間0nS以上は保証されません。その他は、2ウェイト挿入により規定値を満足します。チップセレクトのホールド時間対策を行います。ホールド時間違反を解決するためには、アドレスとチップセレクトにラッチICを挿入して、nRD=Lの期間それらを保持しています。これにより、ホールド時間0nS以上は満足できます。ライトサイクル共にきつくなります。ラッチIC挿入前のリード時セットアップ時間は、52.6nSですので、8nS減っても充分にマージンがあります。ラッチ挿入前のライト時セットアップ時間は、23.3nSですので8nS減った場合15.3nSとなり、COM20020Dの規定値15nS以下をギリギリ満足出来ます。CKIO)になります。CKIOは、33MHz(約30.3nS)ですので、2ウェイト挿入後の1バスサイクルは、約181nSとなります。arb(125nS@5Mbps)を満足できます。arbを満足できます。arbを満足できません。41.1nS)のソフトウェア上のウェイトが必要になります。下に示しました様に、COM20020Dに対しライトを行った後、COM20020Dをリードする場合には、ソフトウェア上で42nS以上待った後にリードを行って下さい。arbとは、COM20020内部のデュアルポートRAMに供給されているクロック信号の周期を表わします。opr)より求められます。25nSCKUPビットは、セットアップ2レジスタに存在し、クロックてい倍回路(PLL回路)の「てい倍率」を設定します。x2)SLOWARBビットは、セットアップ1レジスタに存在し、デュアルポートRAMに供給されているクロック信号のスピードを半分にするかしないかの設定をします。0のままで構いません。125nSとなります。5)5V系と3.3V系のレベル変換COM20020D(5V系)とSH4(3.3V系)を接続する場合の一般的な注意を説明します。SH4出力をCOM20020Dに入力する場合には、レベル変換バッファは不要です。D0~D7ピン)逆に、COM20020D出力をSH4に入力する場合には、5V→3.3Vレベル変換用バッファICを挿入しなければなりません。D0~D7ピンがこれに相当します。nWR信号の立下り時に、リンギングが発生する場合には、それらを抑えるためにダンピング抵抗(50Ω前後)を挿入する必要があります。リンギング電圧が0.5Vを超える様でしたら、ダンピング抵抗が必要です。ライト動作)を行う必要があります。16ビットCPU接続時のダミーライトアドレスは注意が必要です。奇数アドレスとは、あくまでもCOM20020Dにとってのアドレスです。Highとなるアドレスのことを奇数アドレスといっています。16ビットCPU接続時には、CPU側のA1ピンをCOM20020DのA0ピンにシフトして接続しますので、この場合の奇数アドレスの意味が変わってきます。この場合には、CPUのA1ピンがHighとなるアドレスへダミーライトを行って下さい。このダミーライトによってCPUバスタイプが決定され、それ以降、COM20020Dのレジスタに対してアクセスが可能になります。32ビットCPU接続時のダミーライトアドレスも同様です。8)バスクロック(CKIO)の上限についての考察この167MHz品CPUにおけるバスクロックの上限は37MHz程度です。それ以上にしますとライトタイミングにおいて、nRD↑からnWE↓までの時間規定(t10)が不足しています。その原因は、バスクロックCKIOの出力ハイレベルパルス幅にあります。SH4の規定では、最小1nSです。これでは、CKIO↑からCKIO↓まで1nSしかなく、変化エッジの違うnRD信号とnWE信号の間隔規定は不利になります。CKIO出力ハイレベルパルス幅があと7nS広げられれば(幅8nS)、バスクロックの上限を50MHzにすることが出来ます。CKIOの出力ハイレベルパルス幅の最小規定は、SH4側の規定でありマイクロチップ社では保証できませんので、システム側の設計によりCKIOの出力ハイレベルパルス幅を8nS以上確保していただくしかありません。FPGAを使用してバスタイミングを生成し直す方法があります。SH4は同期バスですので、COM20020Dの様な非同期バスとの相性はあまり良く有りません。よって、CPLD等と使用して、同期→非同期バス変換を行うことが一番確実な方法と言えるでしょう。マイクロチップ社製の評価ボード「ARC-SH4」では、アルテラ社製CPLDを用いてタイミング調整を行っております。添付させて頂きました回路図は、マイクロチップ社の方で動作確認は行っておりません。従いまして、お客様の方で充分に動作検証を行って頂きます様お願い致します。沈黙をもって答えます。送信元のデバイスは、ネットワーク応答監視タイマのタイムアウトによって送信の失敗を知ります。235バイトまで、ロングパケットは257バイト以上となっています。内部メモリのページ数が少なくても良い場合は、ロングパケットモードを指定して、ダミーデータを加えて送信して下さい。(受信側でもロングパケット受信許可が必要です。)メモリのページ数を多く取りたい場合は、ショートパケット二つに分けて送信して下さい。メッセージのやり取りをする毎に、メッセージをやり取りする2つのノード間の距離に応じた伝搬遅延時間(*)がかかります。伝搬遅延時間は1メートルあたり5ns程度が目安ですので、距離が短い場合は誤差の範囲内といえます。ARCNETデバイスがライン上の信号を受けて応答を返すまでにかかる時間は12.6uS、これに信号の往復時間としてケーブル遅延時間31uSを2回足すと、74.6uSとなります。これは、ネットワーク応答監視タイマ値と同じです。ケーブル遅延が31uSを越えると、このタイマがタイムアウトを起こしてしまいます。時間に関する数値はすべて2.5Mbps時のものです。誰もトークンを持っていない状態となりますので、アイドル状態監視タイマーがタイムアウトをしてリコンフィグレーションが行われます。リコンフィグレーションの終了をもってネットワークは再び安定を取り戻しますが、リコンフィグレーション処理が行われる分、時間をロスすることになります。トークンを持っているかどうかを知る方法はありませんが、トークンを紛失せずにネットワークから離脱する方法は二つあります。1)受信コマンド発行し、さらにその直後に、受信キャンセルコマンドを発行します。High(1)になります。すればトークンを送出した後にネットワークから離脱できます。待って離脱すればトークンを紛失せずに済みます。2)TentativeIDレジスタに自分のIDを書き込み、ダイアグノスティックレジスタのTentIDがたってから28uS待って離脱すれば自分がトークンを送出した直後に離脱出来ます。1)のRIビットと違い、インタラプトを発生できませんのでポーリングをしつづける必要があります。28uSよりあまり長く持ちますと、次のトークンが、自分に回って来てしまいますのでご注意ください。時間に関する数値はすべて2.5Mbps時のものです。いう3ビットの同期符号が付加されて送信されています。