KiNOKO-DAQ 関連情報 掲示板

このスレッドに記事を投稿する
前のスレッド | 次のスレッド | 掲示版ホーム

universe II を用いた例
2014 年 2 月 26 日 19 時 44 分
投稿者: 金田雅司

サンリツオートメーション社製の VME/CPU ボード (Universe II を使用)上で KiNOKO を使用したいと考えています。Universe II を使用したオンボードPC上で KiNOKO を使っている例をご存じでしたら教えていただけますでしょうか。



2014 年 2 月 28 日 0 時 6 分
投稿者: 榎本三四郎

自分が知る範囲では、UniverseII を KiNOKO で使った例はないと思います。以前何かの関係でちょっと調べた際、UniverseII を使うこと自体は難しくないという印象を持ったのですが、実機がないため開発は行いませんでした。確か、Linux 用のドライバがすでにどこかで開発されていたと思うので、KiNOKO で使うためには、kinoko/src/kernel/room にある controller-Kinoko-Vmedrv.cc の中身をそのドライバに合わせて書き換えるだけですむと思います。ドライバにアクセスするライブラリもあるなら、controller-Force-FGA5x00.cc の方が参考になるかもしれません。もし興味がありましたら大体のところを書いてみることはできると思いますが、実機が手元にないため、試験以降の部分をお願いしなければならなくなってしまいます。それでもよろしければお知らせください。



2014 年 3 月 2 日 0 時 58 分
投稿者: 金田雅司

回答ありがとうございます。

VMEオンボードPCは手元にありますので、試験については喜んでさせていただきます。
よろしくお願いします。

私の連絡先については、掲示板ではなく別途お知らせした方がよいでしょうか。



2014 年 3 月 5 日 23 時 35 分
投稿者: 榎本三四郎

まず最初にやることは、既に配布されているドライバを動かしてみることです。もしそれが利用可能と確認できれば、KiNOKO からそのライブラリを使うようにするのは難しいことではありません。

Linux で UniverseII を使うのに使われているソフトウェアとして vmelinux (www.vmelinux.org) がすぐに見つかりますが、これを試してみてもらえないでしょうか?

と書きながらざっと見たところ、最近はあまりメンテナンスされていないようです。最新のもので 2001 年に配布された Linux Kernel 2.2/2.4 用のものでした。とりあえず手元の環境(kernel 3.2.0)でコンパイルが通るように書き換えてみたので、必要ならこちらも試してみてください。ドライバソースの先頭付近に Vendor ID と Device ID を書く場所があるので、そこに使っているデバイスの ID を書いてからコンパイルしてください。ID は、"lspci -v" コマンドで調べることができます。

もし公開すると差し支える情報があったり、掲示板の更新チェックが面倒な場合はメールでの連絡でも構いません。掲示板に「管理者にメールを送る」リンクからメールアドレスが分かるようにしてあります。


添付ファイル: vmelinux-1.1-linux3-1.0.tgz (40.6 kb)



2014 年 4 月 14 日 10 時 9 分
投稿者: 金田雅司

いろいろテストをしていて返信が遅くなりました。ドライバについてテストした結果を報告します。

研究室で所有している SVA041にインストールされている linux のバージョンは

uname -a

Linux ----- 2.6.18-348.3.1.el5 #1 SMP Mon Mar 11 15:49:17 EDT 2013 i686 i686 i386 GNU/Linux

です。(マイン名は-----に変えています)
頂いたドライバは 3.0以降用でしたので、このマシンではコンパイルが通りませんでした。
このSVA041は、研究室の他のメンバーも過去にドライバのテストをしていて、universeII というドライバがインストールされていました(sourceforge からダウンロードできます。)
universeII のマニュアルによると、このドライバでは little/big endian の変換を行っていないため byte swapping を自分で(ソフトで)行う必要がありました。

このドライバと付属のライブラリをつかったVMEメモリの読み書きテストには、REPIC I/O register RPV-130 と CAEN 32ch QDC V792 を使いました。
値の読み書きには、universeII のパッケージに入っている vmedebug.cpp をコンパイルして使用しています。


RPV-130 の場合は、VMEメモリへの読み書きのテストを行い、共に動作していることを確認しました。

V792 の場合はデータをきちんと入っているかの確認が難しいため、ヒットのデータ(D32)が空の場合にマニュアルにあるフォーマット通りのデータであることを確認し、その他のコントロールレジスタの読み出しの確認を行いました。



2014 年 4 月 23 日 9 時 54 分
投稿者: 榎本三四郎

遅くなってすいません。KiNOKO に、SourceForge にある UniverseII のライブラリに
インターフェースするコードを追加してみました。

とりあえず実装したのは、
*) メモリマッピング
*) DMA 読み出し
*) 割り込み処理
です。したがって、以下のものはまだ実装されていません:
*) PIO 読み出しおよび書き込み
*) DMA 書き込み
ただし、これらの機能が使われるのは稀なので、とりあえずはこの状態で試験してみて
いただきたいと思います(いまのところ KiNOKO ではこれらの機能は使われていません)。

エンディアンは悩ましい問題です。メモリマッピングはOSやデバイスドライバで透過的
なので、ハードウェアが対処してくれないと、本当にユーザーレベルで対処しなければ
なりません。たとえ変換が実際に必要なくても、可能性に対処するために、エンディアン
変換が必要ないVMEシステムを使う場合でも常にチェックしなくてはならず、読み出し
における若干の余分な処理になってしまいます(マップされたポインタにアクセス
する度にエンディアン変換が必要かの変数をチェックしなければならない)。
また、このために、全ての KiNOKO のモジュールドライバを書き換える必要もあります。

とりあえず、RPV130 と V792 は、エンディアンチェックと変換を行うコードを
挿入しました。ほかのものにも順次対応していきたいと思います。書き換え自体は
簡単なので、他に使っているモジュールがあれば、すぐに対応できます。


変更後の KiNOKO を添付しますので、動作確認をお願いします。UniverseII 
についてくる vmelib を KiNOKO に教えるため、configure-for スクリプトの
先頭付近にある UNIVERSEII_VME_PATH 変数を自分の環境に合わせて書き換えてから
configure-for を実行してください。読み出しスクリプトで使うために、
VmeController の名前として "UniverseII" を指定してください。

前に書いたとおり、コンパイルを通しただけで実際に走らせていないので、
まず間違いなく不具合があると思います。お手数をおかけしますが、よろしく
お願いします。





添付ファイル: kinoko-2014-04-22.tar.gz (2763 kb)

2014 年 7 月 12 日 15 時 26 分
投稿者: 金田雅司

榎本様

対応ありがとうございます。
まとまった時間がなかなかとれなく、テストが遅くなりました。

必要とされる他のパッケージを入れた後、UNIVERSE2_VME_PATHの値を設定し
configure-for を走らせたあと make してみると

 make[3]: *** `all' に必要なターゲット `controller-UniverseII.o' を make するルールがありません. 中止.

といわれるので、/home/daq/kinoko/src/kernel/lib-common/room を見てみると controller-UniverseII.cc と controller-UniverseII.hh がありませんでした。
このディレクトリの Makefile に書いてある、その他の controller-*.o については対応する .cc と .hh がありました。

よろしくお願いします。



2014 年 7 月 12 日 15 時 54 分
投稿者: 榎本三四郎

すいません、リポジトリにファイルを追加するのを忘れていました。
controller-UniverseII.hh と .cc を添付しますので、
kinoko/src/kernel/lib-common/room にコピーしてコンパイルを
しなおしてみてください。

来週いっぱい大学を離れますので、このあとの返信が遅れるかも
しれません。申し訳ありませんが、ご了承ください。


添付ファイル: controller-UniverseII.tgz (2.3 kb)


このスレッドに記事を投稿する