[KEKB Bunch Feedback Group]

株式会社デジテックス研究所社製16ビット2チャンネルアクティブI/Oボード17K73用EPICS Device Supportの製作(Japanese)


by とびやま まこと(Makoto Tobiyama)/KEKB ビームモニターグループ

警告
以下の記述に関しては、意図する、しないに関わらず多くの誤り、誤解が含まれていると思われますので、決して信用してはいけません。これを信じて起きた損害に関しては、当方は一切責任を持ちません。


If you need contact with the author, please E-mail makoto.tobiyama@kek.jp.
目次

1.はじめに

17K73はCAMAC版Active I/Oモジュールと同等な機能を提供するVMEボードです。RS-422規格の差動型ラインドライバとラインレシーバを使用して2CHの16ビットデータを長距離伝送できます。VME1幅のモジュールです。


2.VMEバスレジスタ

17K73ボードのI/Oマップは以下の通りです。
アドレスWrite/Readデータ
0x0F0x0E0x0D0x0C0x0B0x0A0x090x080x070x060x050x040x030x020x010x00
0x*******0(W)CH0 送信データ書き込み
(R)CH0 送信データ読み出し
0x*******2(W)CH1 送信データ書き込み
(R)CH1 送信データ読み出し
0x*******4(R)CH0 受信データ読み出し
0x*******6(R)CH1 受信データ読み出し
0x*******8(W)xxxxxxxx pull uppull uppull uppull upxxCH1 ENACH2 ENA
(R)xxxxxxxx pull uppull uppull uppull upxxCH1 ENACH2 ENA
0x*******AN/A未使用
0x*******CN/A未使用
0x*******EN/A未使用
ステータスのenable/disableについては、0がenable、1がdisableです。本17K73ボードはCAMAC版Active I/Oの機能をそのまま実現していますので、送信データレジスタにデータを書き込むとStrobeとXFERが自動的に出力されます。プログラム側でこの動作を考慮する必要はありません。

3.EPICS環境

本デバイスサポートは、EPICS R313改訂版で開発したものです。EPICSそのものに対する説明、入門出家入道遁世については専門家に帰依するなり、コントロールグループのページをご参照なさるなり勝手になさってください。動作はPPC750でのみ確認しています。ロングワードアクセスをしませんので、PPC603でも動作すると思われます。

4.コードの概要

特に目新しい機能は使っていませんので、コードのみを以下に示します。 dbdファイルの中で次のように定義します。
device(longin,VME_IO,devLiAIO,"VMEAIO")
device(longout,VME_IO,devLoAIO,"VMEAIO")
device(mbbiDirect,VME_IO,devMbbiAIO,"VMEAIO")
device(mbboDirect,VME_IO,devMbboAIO,"VMEAIO")

初期化ファイルはdevAIOCnfigで、ベースアドレスが0x23000000で1枚使うとすると、

devAIOConfig(1,0x23000000)

の様に指定します。

5.EPICSデータベースサンプル

このデバイスサポートで使うデータベースをまとめると、以下の様になります。
RecordSignalNameFunctionRemarks
longout0AIO:LCH0Ch0 設定通常使わない
1AIO:LCH1Ch1 設定
longin0AIO:LCH0_RCh0 読み込み
1AIO:LCH1_RCh1 読み込み
2AIO:LCH1OP_RCh0 設定値読み込み
3AIO:LCH1OP_RCh1 設定値読み込み
mbboDirect0AIO:CH0Ch0 設定
1AIO:CH1Ch1 設定
2AIO:STATStatus 設定下位2ビットのみ
mbbiDirect0AIO:CH0_RCh0 読み込み
1AIO:CH1_RCh1 読み込み
2AIO:CH0OP_RCh0 設定値読み込み通常使わない
3AIO:CH1OP_RCh1 読み込み
4AIO:STAT_RStatus 読み込み下位2ビットのみ
サンプルファイルは以下を参照、あるいは直接使ってください。 これをスタートアップファイルに書くときは、以下のようにuserとchanを指定します。
dbLoadRecords("fbppcApp/Db/FBH_AIOT.db","user=FBH:TMP , chan=C0")
2枚以上使うときは、例えば
dbLoadRecords("fbppcApp/Db/FBH_AIOT.db","user=FBH:TMP:X1 , chan=C0")
dbLoadRecords("fbppcApp/Db/FBH_AIOT.db","user=FBH:TMP:X2 , chan=C1")
dbLoadRecords("fbppcApp/Db/FBH_AIOT.db","user=FBH:TMP:X3 , chan=C2")
の様に指定すれば良いことになります。

6.スタートアップファイルサンプル

3枚の17K73ボードを使用する時のスタートアップファイル(の関係部分)は次のようになります。
dbLoadRecords("fbppcApp/Db/FBH_AIOT.db","user=BMH:ATT:H , chan=C0")
dbLoadRecords("fbppcApp/Db/FBH_AIOT.db","user=BMH:ATT:V , chan=C1")
dbLoadRecords("fbppcApp/Db/FBH_AIOT.db","user=BMH:ATT:L , chan=C2")

devAIOConfig(3,0x23000000)

iocInit

7.おわりに

VME Active I/Oモジュール17K73ボードのEPICSデバイスサポートおよびデータベースについて紹介しました。本ボードについてご興味のある方はより詳しい資料がありますので、飛山までご連絡ください。
Makoto Tobiyama
1/Sep/2000

Return to FB Home Page...