|
2001/8/3 |
FAQ1 新機能 |
FAQ2 改良機能 |
● CPU I/Fのどこが改良されたのか? |
FAQ3 PPP |
● PPPの切断、異常の判断は? |
FAQ4 TCP |
● どうすればTCPのステートが遷移するのか? |
FAQ5 物理レイヤインターフェイス |
● モデムの制御方法は? |
FAQ6 MPUインターフェイス |
● 双方向バスの切り替りタイミングは? |
本FAQでは特に記載のない限り、拡張iAPIレジスタマップを用いて説明します。 |
FAQ1 新機能 |
● 新しいMPU I/Fモードとは? | |||||||||||||||
S-7601Aでは新たにSPIシリアルモードが追加されました。SPIシリアルモードでは、クロックフォーマットとビットフォーマットが選択可能です。
S-7600Aは68kパラレルとx80パラレルの2つのパラレルモードとSIIシリアルの1つのシリアルモードをサポートします。S-7601Aではさらにシリアルを強化し、計4つのインターフェイスをサポートします。各モードはS-7600Aと同様に、PSX、C86端子で以下のように選択することができます。
既に、S-7600Aをご使用のお客様が、同様にS-7601AでもSIIシリアルをご使用される場合には、C86端子が”0”であることをご留意下さい。S-7600AではC86端子がDon’t Careになっています。 |
FAQ2 改良機能 |
●MPU I/Fのどこが改良されたのか? | ||||||||
パラレルモードのイネーブル(制御)パルス幅とシリアルモードのシステムサイクル時間のMax値(1.9CLK)の制限がなくなりました。 | ||||||||
パラレルモードでのアドレスとデータのホールド時間が0ns(Min.)になりました。 | ||||||||
補足説明
S-7600A/01Aでは、アドレスとデータについてセットアップ時間とホールド時間を規定しています。S-7601Aでは各々のホールド時間を0ns(Min.)にすることで、プロセッサとの接続性を改善しています。 なお、アドレスのセットアップ・ホールド時間の規定は、以下のようになります。
|
● 物理レイアインターフェイス(シリアルポート)のどこが強化されたのか? |
DCD信号の入力レベルが変化すると、ポート割り込み(PInt)を発生させることができるようになりました。これによって、物理レイアの状態がよりタイムリーに確認することが可能となりました。 |
● 5Vインターフェイスはどの端子について有効なのか? |
入力端子と入出力端子について5Vインターフェイスが可能です。ただし、入出力端子については、入力状態のみとなりますのでご注意下さい。 |
FAQ3 PPP |
●PPPの切断、異常の判断は? |
PPP割り込みコードレジスタ[PPP_Int_Code]を使用します。
PPP接続確立はステータスコードの0x09で確認できます。PPP切断はステータスコードの0x0Aで確認できます。ピアからPPP切断を要求された場合、ステータスコードは0x04 - 0x0A - 0x01と遷移します。この場合、0x0Aか0x01であればPPP切断と判断できます。ステータスコードの0x01, 0x02, 0x05, 0x08は異常系のPPP切断を示します。多くのダイアルアップサーバはPPP切断するとダイアルアップ接続そのものを切断します。また、アプリケーションはタイマーなどを用いて接続要求への応答を監視して、アプリケーションが定めた規定時間内に0x09に遷移しない場合は、異常と判断すべきです。アプリケーション仕様で決定することがらですが、PPP切断または異常と判断したらハードウエアリセットか少なくともソフトウエアリセットすることをお勧めします。その後、必要ならあらためてダイアルアップ接続してください。 |
●PPP接続・切断時の書き込み手順は? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
以下にPPP接続・切断時の書き込み手順を紹介します。
PPPの接続・切断は、PPPコントロール/ステータスレジスタ[PPP_Ctrl_Stat]を使用します。
(注)これらは一例ですので、実際の手順はアプリケーション仕様に従い決定してください。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(1) PPP接続時の書き込み手順例 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(2)PPP切断時の書き込み手順例 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(3)PPP切断時の書き込み(ピアからの切断、異常系の切断)手順例 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
●どのようにローカルIPアドレス(自己IPアドレス)が割り付けられるのか? |
ローカルIPアドレスレジスタ[Local_IP_Addr]を設定してからPPP接続を行うと、S-7601AはNCPフェーズでまずその設定値のIPアドレスを設定要求します。ピアがそれをACKすればローカルIPアドレスは設定値になります。ピアにフローティングIPアドレス割り付けの機能がある場合は、S-7601Aからの設定要求をNAKして、ローカルIPアドレスを割り付ける場合もあります。
このレジスタをデフォルト値としてPPP接続を行うと、S-7601AはNCPフェーズで0.0.0.0のIPアドレスを設定要求します。ピアは必ずこれをNAKしてローカルIPアドレスを割り付けます。 PPP接続確立を確認してから、このレジスタを読み出すと最終的にネゴシエーションされたなローカルIPアドレスを示します。 <FAQ1の自動IP割り付けを参照> |
FAQ4 TCP |
●どうすればTCPのステートが遷移するのか? |
アプリケーションからTCPのステートを遷移させるには、ソケットアクティブレジスタ[Socket_Activate]を使用します。
ソケットアクティブレジスタでソケットをアクティブ(”0”から”1”)にすることで、TCPクライアントモードではSYNフラグを送信してCLOSEDからSYN_SENTに遷移(アクティブオープン)します。TCPサーバモードではCLOSEDからLISTENへ遷移(パッシプオープン)してSYNフラグを待ち受けます。 ESTABLISHEDからFIN_WAIT1、CLOSE_WAITからLAST_ACKはソケットアクティブレジスタでソケットを非アクティブ(”1”から”0”)にすることで行います。このときFINフラグを送信します。また、FINフラグを受信したことによりCLOSE_WAITになった場合も、ソケットアクティブレジスタに"0"を書き込み、S-7601AからFINフラグを送信してそのコネクションをクローズします。しかし、コネクションが異常、 S-7601AがTCPモードのソケットのタイムアウト状態、ソケットステータス0レジスタのSnd_Empビットが"0"のときなどはFINフラグを送信しない場合があります。そのときは、ソケットをリセットしてCLOSEDとしてください。 S-7601AからFINフラグを送信した結果、ピアからFINフラグを受信し、TIME_WAITになった場合、2MSL時間(S-7601Aでは約6分)経過すると自動的にCLOSEDとなります。アプリケーションが2MSL時間を待てない場合、ソケットをリセットしてCLOSEDとすることは事実上容認されています。また、RSTフラグを受信するなど、そのコネクションを異常と判断したら、ソケットをリセットしてCLOSEDとしてください。 |
FAQ5 物理レイヤインターフェイス |
●モデムの制御方法は? |
S-7601Aの物理レイアインターフェイス(シリアルポート)は以下の二つから制御が可能です。 ? S-7601Aのネットワークスタックからの制御 ? MPUインターフェイスを経由してホストMPUからの制御 モデムを制御する場合には、?のホストMPUからの制御を選択します。この切り替えはシリアルポートコンフィグレジスタ[SP_Config]のSCTLビットにより行います。 アプリケーションがモデム、ダイアルアップ関連の制御を行うときはこのビットを”0”にします。PPP,TCP,UDPの通信をすることきは”1”にしてネットワークスタックから物理レイアインターフェイス(シリアルポート)を制御します。 |
●ボーレイトの設定方法は? |
シリアルポートボーレート分周レジスタ[SP_BAUD_Rate_Div]を使用します。 以下の式を使って設定値を計算します。
例えば、S-7601Aクロックレートが256kHzで、64Kbpsのボーレートの通信をする場合、プログラム値は以下の通りです。
またボーレート精度を2%以内の精度で合わせこむ必要があります。そのためS-7601Aクロックレートとボーレートの比を整数倍の近く必要があります。例えば、S-7601Aクロックレートが76800Hzで9600bpsの通信をする場合、
|
FAQ6 MPUインターフェイス |
● 双方向バスの切り替りタイミングは? |
S-7601Aのデータバス(SD7-0)は以下の論理で入出力が切り替えられます。
|
● BUSYX信号の役割は? |
S-7601Aの68Kパラレル、x80パラレル、SIIシリアルの3つのモードでは、BUSYX信号の状態を監視して、次の処理を行う必要があります。SPIシリアルではBUSYX信号を監視する必要がありません。ただし、S-7601Aのクロック周波数をSPIシリアルのSCK周波数の2倍以上にする必要があります。
BUSYX信号はS-7601Aの内部回路とMPUインターフェイスのデータ通信のために必要となります。
|