SiTCP-VME変換モジュールの開発

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テスト回路に応用でき、すでに成果が出
た。短期間での開発が可能である。