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転送制御ブロックをプログラムした。 SiTCP書き込みで、待たせると次の転送が非常に遅くなるので、 古いモジュールの最大データ長の16kBのFIFOを持たせた。 それでも若干遅いので、0データを書き込む命令のために 自動転送モードを付けた。 使用状況 制御プログラムにLabVIEWを採用 5台以上の旧型VMEモジュールを 制御する予定。 横軸:時間分布(TOF)、縦軸:カウント数 16K-byteデータが安定に読める。 データ転送プロトコル 書き込み、send + 2byte_receive 読み出し、send + receive 書き込み:コマンド(+データ)を send() + 2byte_receive() 読み出し:コマンドを send() + データを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変換モジュールに替わり、SiTCPVME変換モジュールを開発した。 • SiTCPへの書き込みが遅い。どこか調整すべ きか? • 旧型VMEモジュール5台以上を制御する予定。 テストでは3台が制御できている。 • SiTCPテスト回路に応用でき、すでに成果が出 た。短期間での開発が可能である。
© Copyright 2024 ExpyDoc