スパルタンU USB-GPIFボード ASB-004/ASB-004R

  
EPN-001の制御例 〜あらゆる機器をネットワークに〜

2002/09/19-


SEIKO EPSON社の組込み用ネットワークコントローラ S1S60000の評価基板であるEPN-001Aとの接続が可能です.


             ▼ASB-004とEPN-001の接続  ▼コンパクトな設計も可能 (EPSON社製)
    

SEIKO EPSON社
の組込み用ネットワークコントローラ S1S60000は,家電や産業機器などあらゆる機器を,ネットワークに接続します.ロイヤリティーフリーなプロトコルスタック内蔵しており,開発工数/コストを大幅に削減することができます.実際に機器に実装される場合には,EPN-001よりも,コンパクトに設計することが可能です.

USB-GPIFボードとEPN-001の接続では,パソコンのUSB通信を利用しています.この環境は開発/デバッグ作業を円滑に行うためのものです.次のブロック図の点線で囲まれている部分は,マイコンのエミュレーション動作として考えることが可能です.


ASB-004とEPN-001の使用例について,以下に説明します.これらの情報はSEIKO EPSON社が提供する S1S60000の仕様書やサンプルプログラムを参考に作成しました.快適に評価して頂くためにより多くのサンプル回路/プログラムを公開する予定です.→ダウンロードページ


FPGAの内部回路と動作
ASB-004のUSB通信を利用し,EPN-001を制御するための回路です.EPN-001上のディップスイッチの設定は次表のようにして下さい.
DSW
8 ON バス幅16ビット
7 ON Littleエンディアン
6 ON 割り込みLow
5 OFF 常時OFF
4 ON 分離バス
3 ON Type 3 / Generic
2 OFF
1 OFF

USB経由でFPGAコンフィグレーションする場合,CPLD内部回路を書き換えることでソフトウェアでFPGAを初期化できるようになります.→参考ページ

C言語のライブラリに_inpw_outpwという,1ワードのデータをポートに入出力する関数があります.これに似せた関数を,EPN-001の制御に使用します.次表のように,1バイトを順に4回,32ビットを送信することで,ポートへの読み書きができるようにします.リード/ライトの2バイト目の下位4ビット(0xAX,0x5X)はポート番号とします.

ステータス/コマンドポート(0x00),データポート(0x02),フラグポート(0x04)なので,アクセス可能なポート番号は0,2,4のみです.仮に,enp_inpw( 0x1 )とすれば,HA2=0,HA1=0,HA0=1となります.このポート番号/アドレスでは,S1S60000にとって該当しないので,実際には無効です.

リード時は4バイト(32ビット)が返信されます.この4バイトのうち,3バイト目と4バイト目がネットワークコントローラから得たデータとなります.ライト時はPCから与える4バイトのうち,3バイト目と4バイト目がネットワークコントローラへ出力するデータとなります.


PC→ASB-004 (32bit) ASB-004→PC (32bit)
リード 0x16,0xAX, 0xXX,0xXX 0x16,0x00,HD[15:8],HD[7:0]
ライト 0x16,0x5X, 0x12,0x34 --------------------
リセット 0x16,0x1B, 0xXX,0xXX --------------------

接続が正常に行われたか確認します.通信ソフトを使って,0x16,0x1B,0xXX,0xXXを入力するとEPN-001はリセットされ,一瞬,LEDの消灯を確認することができます.ポート番号 0 のデータを読込むには,0x16,0xA0,0xXX,0xXXをバイナリデータとして送信します.受信データとして,4バイトが表示されます.



PCから4バイトのデータを送信すると,S1S60000に与えられるコントロール信号線のパターンは次のようになります.ASB-004の回路を変更すれば,Type3以外の設定でも利用することができます.
HA(ポート番号)は0,2,4の入力で,LSBであるHA0がLとなります.
S1S60000ホストインターフェース信号線
HWR0# HWR1# HRD0# HRD1# HA0 HCS#
リード / epn_inpw L L H H L L
ライト / epn_outpw H H L L L L

参考ソフトや回路はダウンロードページにて公開しております.

アクセスタイミング
ASB-004とEPN-001を接続し,リード ( enp_inpw ) や,ライト ( epn_outpw ) によるホストインターフェース信号のタイミングについて説明します.パターンは上で述べたType3とします.次に示すタイミングチャートはASB-004のGPIFから出力するホストインターフェース信号のものです.DATA_OUTとHDはFPGA内部の信号です.
 ポートからデータを得る  epn_inpw( WORD data )

クロックは18.432MHzで,1周期は 約 54.2 nsとなります.

(1)PCから与えられるポート選択番号HA[2:0]へ出力します.
(2)S1S60000のHDATA[15:0]を,DATA_OUT[15:0]に取り込みます.

アクセス条件(HCS#,HA,HRD#,HWR#)の成立は,任意です.S1S60000非アクセス状態を検出するとバス駆動が解除されます.よって,内部バスクロックが50MHz時において,45ns以上の仕様なので,ASB-004がS1S60000に与えるアクセス状態として,充分に確定していることになります.


 ポートにデータを出す  epn_outpw( BYTE port, WORD data )

(1)PCから与えられるポート選択番号HA[2:0]へ出力します.
(2)HCS#を下げ,54ns後にトライステートであるHD[15:0]はバスの方向をS1S60000側とします.
 この54ns間は,FPGAは出力することになり,それ以外はハイインピーダンス(入力)となります.

リード同様に,非アクセス状態になった時点で,S1S60000はWrite Dataを有効とします.S1S60000は50MHzで動作しているために,アクセス条件が成立し,非アクセス状態が確定するまでデータを上書きし続けます.つまり,最後に取り込まれたデータが有効となります.




TCP/IP UDP 通信実験用ソフト
EPN-001をネットワーク経由で制御するためには,TCP/IPやUDP通信のソフトが必要となります.簡単な実験に利用できるソフトを作成しましたのでご利用ください.


ASB-004とEPN-001による通信実験レポート

■UDP通信を利用して,EPN-001(ネットワークコントローラ)とASB-004から日付を取得
■内蔵レジスタの書換え
■GPIOの制御
■EEPROMの書換え

▼今しばらくお待ちください
■TCP/IP通信を利用して,FPGAのコンフィグレーション
■SNMP

メールでのご質問はこちらへどうぞ

HDLのホームページへ