SiTCP-VME変換モジュールの開発 KEK 物構研:中性子 佐藤節夫
発表内容 開発の動機 制御したい古いモジュール&VME規格 SiTCP-VME変換モジュール 構成 使用状況 他への応用 まとめ
開発の動機 古いVMEモジュールを使うことになった。 従来は、独自開発していたUSB-VME変換モジュールで制御を行っていたが、32bit版であったので、最近の64bit版用に変更不可。 SiTCP-VME変換モジュールは従来から作製を試みていたが、うまくいかなかった。再挑戦。 手はんだできるSpartan6-LX9にぎりぎりSiTCPが入ることがわかり、最低限の機能を搭載。
制御したい古いモジュール パルス中性子を使用した実験で欠かせない、時間分析機能を持つ。 32KB x 5個のメモリを持ち、4096ch x 8入力の時間ヒストグラムを VME-J1コネクタから読み書きする。
制御したい古いモジュール VMEのデータ転送タイミング VME規格を完全に準拠するのは大変なので、基本的な機能だけ装備。 アドレス設定後、ASをロー。書き込みならデータを設定してDS0,1をロー。 読み出しならDS0,1をローにしてDTACKに同期してデータを読む。
SiTCP-VME変換モジュール 他の用途のVME基板のおまけの機能として設計した 手はんだできるように、Spartan6-LX9のTQG144パッケージを選んだ
SiTCP-VME変換モジュールの構成 SiTCPが96%占有、2%でVME転送制御ブロックをプログラムした。 古いモジュールの最大データ長の16kBのFIFOを持たせた。 それでも若干遅いので、0データを書き込む命令のために 自動転送モードを付けた。
使用状況 制御プログラムにLabVIEWを採用 5台以上の旧型VMEモジュールを 制御する予定。 横軸:時間分布(TOF)、縦軸:カウント数 16K-byteデータが安定に読める。
データ転送プロトコル 読み出し、send + receive 書き込み、send + 2byte_receive 最大データ長の16kB コマンド:制御コード(8bit)+VMEアドレス(24bit)+転送データ数(32bit)
SiTCP-VME開発から得られたもの 古いVMEモジュールをネットワークを通して使えるようになった。 ネットワークであるため、OSの種類による制限がほとんどなくなった。 Spartan6-LX9でSiTCPが使用できるので、他への応用範囲が広がった。
SiTCP-VMEモジュールの問題点 書き込みを古いVMEの歩調に合わせ、1MB/sに合わせると、何度も数十ms以上待たされ、結局タイムオーバーでうまく送れない。このシステムの最大データ長の16KBのFIFOメモリを持たせた。うまくいっているようであるが、スムーズさに欠けるので、安全のため、全データが0の場合、自動書き込みにし、終了後2バイト受け取る方式にした。
他への応用:SiTCPテスト回路 Avnet社製のスタータキット (Spartan6-LX9使用、7千円) で、新規基板開発の インターフェース として使用している。 新基板のテスト状況 新規開発基板: 10bit-ADC:16ch,50MHz Spartan6-LX16 10nsアクセス512k-byte SRAM x 2 Avnet社製 スタータキット Spartan6-LX9 16端子使用可 左:新基板、右:32chアンプ+テスト信号発生回路
他への応用:SiTCPテスト回路 上:10bit-ADC:16chを50MHzで、 波形観測(1024ch: 2K-byte x 16ch) 下:上記データの波高分布図 (512ch: 2K-byte x 16ch) 上:波形観測(1024ch) 下:上記データの時間分布図(64K-byte x 16ch) 16K-byteデータが安定に読める。64k-byteを読みたいが、 16k-byte以上でちゃんと読めない。>>なぜ?
SiTCPテスト回路から得られたもの 使い古しのスターターキットがSiTCPテスト回路として再生できた。 SiTCP-VMEモジュールプログラムを少し変更しただけでできるので、短期間で開発できた。 新規開発基板の基本機能の確認が実際のマスター回路の開発を待たずにできた。まだ設計中のマスター回路の設計に生かされる。 16ビットのデータ幅に収まれば、簡単なインターフェースの新規基板のテスト回路にも応用できるはずである。
SiTCPテスト回路の問題点 読み出し回路で、64K-byte読み出したいが、labVIEW7.0では1回で16K-byteまでしか読めない。(他のプログラムは良く知らない。) 数回に分けた読み出し方法を試みているが、まだうまくいっていない。しかし、他ではこれで長いデータも取れているので、必ずうまくいくはずである。
まとめ USB-VME変換モジュールに替わり、SiTCP-VME変換モジュールを開発した。