GP-IB(CB)F

Contec GP-IB(CB)F, GP-IB(CB)FL, GP-IB(LPCI)F, GP-IB(LPCI)FL, GP-IB(PCI)F, GP-IB(PCI)FL, GPIB-F-LPE, GPIB-FL-LPE 取扱説明書

  • こんにちは!このコンテック製GPIB通信ボードのテクニカルリファレンス文書を読みました。この文書には、ボードのI/Oポート設定、レジスタ操作、割り込み設定、オンボードタイマなど、詳細な情報が記載されています。GPIB通信に関するご質問がありましたら、お気軽にお尋ねください!
  • ボード/カードのリソース(I/Oベースアドレスなど)を取得するにはどうすれば良いですか?
    GPIB通信を行うためのレジスタアクセス方法は?
    オンボードシステムタイマの精度と最大カウント値は?
    ラインステータスレジスタの読み取り方法は?
    割り込み機能の使用方法を教えてください。
テクニカルリファレンス
PCI Express
対応高速型
GPIB
通信ボード
Low Profile
サイズ
GPIB-FL-LPE
PCI Express
対応高機能高速型
GPIB
通信ボード
Low Profile
サイズ
GPIB-F-LPE
PCI
対応高機能高速型
GPIB
通信ボード
GP-IB(PCI)F
PCI
対応低価格高速型
GPIB
通信ボード
GP-IB(PCI)FL
Low Profile PCI
対応高機能高速型
GPIB
通信ボード
GP-IB(LPCI)F
Low Profile PCI
対応低価格高速型
GPIB
通信ボード
GP-IB(LPCI)FL
Compact PCI
対応高機能高速型
GPIB
通信ボード
GP-IB(CPCI)F
CardBus
対応高機能高速型
GPIB
通信ボード
GP-IB(CB)F
CardBus
対応低価格高速型
GPIB
通信ボード
GP-IB(CB)FL
目次
1. はじめに.......................................................................................................................2
1.1. 本資料中の語句について ..................................................................................2
2. 製品固有情報...............................................................................................................2
2.1. Vendor IDDevice ID ..........................................................................................2
2.2. リソースの取得方法 ..........................................................................................2
3. I/Oポートのビット割り付.....................................................................................3
3.1. アドレスマップ一覧(ボード、カード共通) ...................................................3
4. 操作手順.......................................................................................................................5
4.1. GPIB基本機能(+0h - +7h)....................................................................................5
4.1.1. レジスタ書き込み ......................................................................................5
4.1.2. レジスタ読み込み ......................................................................................5
4.2. ラインステータス(+8h - +Bh)...........................................................................6
4.2.1. ラインステータス 1 ...................................................................................6
4.2.2. ラインステータス 2 ...................................................................................6
4.3. 被シリアルポール設定 (+Ch - +Dh)................................................................7
4.4. 割り込み要因設定(+36h - +37h)........................................................................8
4.4.1. 割り込みの禁止・許可 ..............................................................................8
4.4.2. 割り込みの確認 ..........................................................................................8
5. 補足...............................................................................................................................9
5.1. オンボードシステムタイマ機能 ......................................................................9
テクニカルリファレンス< GPIB-F-LPE,GPIB-FL-LPE,
GP-IB(PCI)F/FL,GP-IB(LPCI)F/FL,GP-IB(CPCI)F, GP-IB(CB)F/FL >
2/9
2007 5 7
1. はじめに
本資料では、I/O ポートのビット割り付けおよび各ビットの定義についての説明をしています。
当社サポートソフトウェアを使用しない場合や、Windows 環境以外でアプリケーションを作成する場
合に参照してください。
1.1. 本資料中の語句について
以下にご注意ください。
I/O ベースアドレス:
ボード/カードに割り当てられた I/O リソース(I/O の範)の最も小さい値で、先頭 I/O アドレスと同じ
意味です。一般的にボード/カードの I/O アドレスとは、このアドレスを指します。
2. 製品固有情報
2.1. Vendor IDDevice ID
製品の固有情報は、以下のとおりです。
Vendor ID 1221h
Device ID
Board/Card Name Device ID
GPIB-F-LPE
8604
GPIB-FL-LPE
8614
GP-IB(PCI)F
C104
GP-IB(PCI)FL
C114
GP-IB(LPCI)F
C104
GP-IB(LPCI)FL
C114
GP-IB(CPCI)F
C204
GP-IB(CB)F
C504
GP-IB(CB)FL
C514
Revision ID : ボード ID の設定スイッチ(SW1)の状態。00h - 0Fh の範囲で反映されます。
Revision ID は、ボードのみの設定です。
上記以外は、PCI Express バス仕様<GPIB-F-LPE/GPIB-FL-LPE>PCI ローカルバス仕様
<GP-IB(PCI)F/GP-IB(PCI)FLGP-IB(LPCI)F/GP-IB(LPCI)FL>
カードバス仕様<GP-IB(CB)F/FL>、コンパクト PCI バス仕様<GP-IB(CPCI)F>に準拠します。
2.2. リソースの取得方法
MS-DOS 環境で PCI バス対応ボードのリソース(I/O ベースアドレス、割り込みレベル、メモリベース
アドレス)を取得するためのライブラリを、ホームページ(http://www.contec.co.jp)で提供しています。
テクニカルリファレンス< GPIB-F-LPE,GPIB-FL-LPE,
GP-IB(PCI)F/FL,GP-IB(LPCI)F/FL,GP-IB(CPCI)F, GP-IB(CB)F/FL >
3/9
2007 5 7
3. I/Oポートのビット割り付け
3.1. アドレスマップ一覧(ボード、カード共通)
入力ポート
I/Oベース D7 D6 D5 D4 D3 D2 D1 D0
アドレス +0h データ・イン
DI7 DI6 DI5 DI4 DI3 DI2 DI1 DI0
+1h インタラプト・ステータス1
CPT APT DET END DEC ERR DO DI
+2h インタラプト・ステータス2
INT SRQ1 LOK REM CO LOKC REMC ADSC
シリアル・ポール・ステータス +3h
S8 PEND S6 S5 S4 S3 S2 S1
+4h アドレス・ステータス
CIC ATN SPMS LPAS TPAS LA TA MJMN
+5h コマンド・パス・スルー
CPT7 CPT6 CPT5 CPT4 CPT3 CPT2 CPT1 CPT0
+6h アドレス0
X DT0 DL0 AD5-0 AD4-0 AD3-0 AD2-0 AD1-0
アドレス1 +7h
EOI DT1 DL1 AD5-1 AD4-1 AD3-1 AD2-1 AD1-1
+8h ラインステータス1(データラインの現在値)
DIO7 DIO6 DIO5 DIO4 DIO3 DIO2 DIO1 DIO0
+9h ラインステータス1(コントロールラインの現在値)
EOI SRQ ATN REN IFC NDAC NRFD DAV
+Ah 未使用
X X X X X X X X
+Bh ラインステータス2(コントロールラインのラッチデータ)
EOI SRQ ATN REN IFC NDAC NRFD DAV
+Ch 被シリアルポール設定
X X X X X X ESPAS ESTB
+Dh 未使用
X X X X X X X X
+Eh
|
1Bh
リザーブ
+1Ch
オンボードシステムタイマ
TIM07 TIM06 TIM05 TIM04 TIM03 TIM02 TIM01 TIM00
+1Dh オンボードシステムタイマ
TIM15 TIM14 TIM13 TIM12 TIM11 TIM10 TIM09 TIM08
+1Eh オンボードシステムタイマ
TIM23 TIM22 TIM21 TIM20 TIM19 TIM18 TIM17 TIM16
+1Fh オンボードシステムタイマ
TIM31 TIM30 TIM29 TIM28 TIM27 TIM26 TIM25 TIM24
+20h
|
+35h
リザーブ
+36h 割り込みステータス
I7210 X X X X X X X
+37h 割り込みステータス
X X X X X X IFC SPAS
注意:
X は、未使用レジスタです。
+0h - +7h ポートは uPD7210 互換レジスタで、バイトアクセスのみ可能です。
・ラインステータス、割り込みステータスは、ワードアクセス(2 バイト)のみ可能です。
・被シリアルポール設定は、バイトアクセス、ワードアクセス(2 バイト)が可能です。
・オンボードシステムタイマは、バイトアクセス、ダブルワードアクセス(4 バイ)が可能です。
・ワードアクセスするときは 2 の倍数の I/O アドレスから、ダブルワードアクセスするときは 4 の倍数の I/O アドレスから入力し
てください。
テクニカルリファレンス< GPIB-F-LPE,GPIB-FL-LPE,
GP-IB(PCI)F/FL,GP-IB(LPCI)F/FL,GP-IB(CPCI)F, GP-IB(CB)F/FL >
4/9
2007 5 7
出力ポート
I/Oベース D7 D6 D5 D4 D3 D2 D1 D0
アドレス +0h バイト・アウト
BO7 BO6 BO5 BO4 BO3 BO2 BO1 BO0
+1h インタラプト・マスク1
CPT APT DET END DEC ERR DO DI
+2h インタラプト・マスク2
X SRQ1 DMAO DMAI CO LOKC REMC ADSC
シリアル・ポール・モード +3h
S8 rsv S6 S5 S4 S3 S2 S1
+4h アドレス・モード
ton lon TRM1 TRM0 0 0 ADM1 ADM0
+5h オグジュアリ・モード
COM7 COM6 COM5 COM4 COM3 COM2 COM1 COM0
+6h アドレス0/1
ARS DT DL AD5 AD4 AD3 AD2 AD1
エンド・オブ・ストリング +7h
EC7 EC6 EC5 EC4 EC3 EC2 EC1 EC0
+8h
|
+Bh
リザーブ
+Ch 被シリアルポール設定
X X X X X X ESPAS ESTB
+Dh 未使用
X X X X X X X X
+Eh
|
+35h
リザーブ
+36h 割り込み要因設定
I7210 X X X X X X X
+37h 割り込み要因設定
X X X X X X IFC SPAS
注意:
X は、未使用レジスタです。
+0h - +7h ポートは uPD7210 互換レジスタで、バイトアクセスのみ可能です。
・被シリアルポール設定は、バイトアクセス、ワードアクセス(2 バイト)が可能です。
・割り込み要因設定は、ワードアクセス(2 バイト)のみ可能です。
・ワードアクセスするときは 2 の倍数の I/O アドレスから入力してください。
テクニカルリファレンス< GPIB-F-LPE,GPIB-FL-LPE,
GP-IB(PCI)F/FL,GP-IB(LPCI)F/FL,GP-IB(CPCI)F, GP-IB(CB)F/FL >
5/9
2007 5 7
4. 操作手順
製品添付の説明書の「第 4 機能の説明」をあわせて参照してください。
制御例は C 言語スタイルで記述しています。OS/開発言語にあった形に変更してご使用ください。
4.1. GPIB基本機能(+0h - +7h)
このボード/カードは、uPD7210 チップ互換のレジスタを搭載しており、uPD7210 と同じアクセスで
GPIB 通信を行うことができます。
4.1.1. レジスタ書き込み
レジスタに書き込む場合は次のようになります。
<プログラム例>
IFC 送出
outp(base+0x05,0x1e) ;
4.1.2. レジスタ読み込み
レジスタから読み込む場合は次のようになります。
<プログラム例>
インタラプト・ステータス 1 読み込み
Intstatus1=inp(base +0x01) ;
GPIB 通信を行うためにはGPIB 規格に添ったレジスタアクセスを行う必要があります。
詳細は、GPIB 規格書を御覧頂くか、下記の書物をご参考ください。
PC-9801 GPIB 活用法 磯部 俊夫 工学図書株式会社
テクニカルリファレンス< GPIB-F-LPE,GPIB-FL-LPE,
GP-IB(PCI)F/FL,GP-IB(LPCI)F/FL,GP-IB(CPCI)F, GP-IB(CB)F/FL >
6/9
2007 5 7
4.2. ラインステータス(+8h - +Bh)
このレジスタにアクセスすることでGPIB のバスラインのステータスを監視することができます。
+8h ラインステータス1(データラインの現在値)
DIO7 DIO6 DIO5 DIO4 DIO3 DIO2 DIO1 DIO0
+9h ラインステータス1(コントロールラインの現在値)
EOI SRQ ATN REN IFC NDAC NRFD DAV
+Ah 未使用
X X X X X X X X
+Bh ラインステータス2(コントロールラインのラッチデータ)
EOI SRQ ATN REN IFC NDAC NRFD DAV
4.2.1. ラインステータス 1
バスラインの現在の値を確認できます。
GP-IB(PCI)FLGP-IB(LPCI)FLGP-IB(CB)FL は、データラインの値を取得することはできません。
信号論理は全 Bit 正論理です。(信号ラインが Low ならば 0High ならば 1)
<プログラム例>
Linestatus1=inpw(base +0x08) ;
4.2.2. ラインステータス 2
バス(コントロール)ラインのラッチデータを確認できます。
NDACNRFD は立上がり、その他は立下りで Bit 1 にセットされます。
一度アクセスされるとレジスタの内容はクリアされます。
<プログラム例>
Linestatus2=inpw(base +0x0A) ;
テクニカルリファレンス< GPIB-F-LPE,GPIB-FL-LPE,
GP-IB(PCI)F/FL,GP-IB(LPCI)F/FL,GP-IB(CPCI)F, GP-IB(CB)F/FL >
7/9
2007 5 7
4.3. 被シリアルポール設定 (+Ch - +Dh)
uPD7210 では、シリアルポールを受けたときに、ステータスバイトを 1Byte のみ送出します。
しかし、場合によっては 2Byte 以上のステータスを送出する必要があります。
このレジスタにアクセスすることで、複数 Byte の送出が可能となります。
+Ch 被シリアルポール設定
X X X X X X ESPAS ESTB
+Dh 未使用
X X X X X X X X
ESTB :マルチステータスバイト出力の有効化(1) /無効化(0)。デフォルト 0
(0 にセット) ステータスバイトは 1 バイトしか送信されません。
(1 にセット) ステータスバイトを複数送信可能。
複数バイトのうち最初に OUT したデータにより、一連のステータスバイト出力において SRQ ライ
ンが有効になるかどうかが決定されます。
1 バイト目の rsv(40H)を有効にして OUT した場合、その後のステータスバイトにはすべて rsv が付加
されます。
ESTB を有効にしている場合にはステータスバイトは自動的に出力されないため、割り込みステータ
SPAS の確認後、1 バイト目を含めてステータスバイトを出力する必要があります。
合わせて、SPAS 確認後出力するデータには rsv を付加しないでください。
SPAS 確認後の送信タイミングには DO を使用し、データの出力はシリアルポールモードレジスタに
対し行ってください。
この際、SRQ ラインは 1 バイト目のステータスバイト出力時に落とされます。
ESPASSPAS 割り込みステータスの条件設定。SRQ 送出時のみ(1)/すべてのシリアルポール(0)デフォルト 0
(0 にセット) すべてのシリアルポールで SPAS 割り込みステータスが有効になります。
(1 にセット) SRQ を送出(rsv を有効にしてシリアルポールモードレジスタへ OUT)した後のシリアルポール実行
(1 バイト目のステータスバイト送信) SP
AS 割り込みステータスが有効にります。
<プログラム例>
6 バイトのステータスバイトを送出する場合(ESTB は設定済み、Base=7210 部の先頭 I/O アドレス)
_outp(Base+0x03, Stb[0]); // 1 バイト目のデータを出力(SRQ 送出の決定)
For(n=0:n<=6:n++) //6 回繰り返す。
{
Sts = _inpw(Base+0x36);
While(sts != 0x01){ } // SPAS ステータス変化待ち
Sts = _inp(Base+0x01);
While(sts != 0x02){ } // DO 待ち
_outp(Base+0x03, (Stb[n] & 0xBF));
// 1 バイト目を含めシリアルポールモードレジスタへ任意のデータを OUT
} //(rsv ビットはマスクする)
テクニカルリファレンス< GPIB-F-LPE,GPIB-FL-LPE,
GP-IB(PCI)F/FL,GP-IB(LPCI)F/FL,GP-IB(CPCI)F, GP-IB(CB)F/FL >
8/9
2007 5 7
4.4. 割り込み要因設定(+36h - +37h)
uPD7210 互換レジスタや被シリアルポールレジスタ設定により発生する割り込みの許可を設定します。
+36h 割り込み要因設定
I7210 X X X X X X X
+37h 割り込み要因設定
X X X X X X IFC SPAS
4.4.1. 割り込みの禁止・許可
I7210
uPD7210 で発生した割り込みの許可(1) /禁止(0)。デフォルト 0
IFC
「ラインステータス 2 IFC 01 になった場合に発生する割り込みの許可(1) /禁止(0)デフォルト 0
SPAS シリアルポールが行われた場合に発生する割り込みの許可(1) /禁止(0)。デフォルト 0
ESPAS の設定により、SRQ 送出後のみ有効にできます。
ビットごとに割り込みの禁止・許可を設定できます。
割り込み要因レジスタに 0 を設定すると、対応するビットの入力信号からの割り込み発生は禁止に
なります。
割り込みを発生させたいときは、対応する割り込みマスクビットに 1 を出力して割り込みを許可し
ます。
ここで設定される禁止、許可は、PC への通知の禁止、許可です。
4.4.2 の割り込みの確認用のレジスタには、割り込みが発生した場合、条件で1にセットされます。
<プログラム例>
outpw(base+0x36,0x8000) ; I7210 の割り込みのみ許可
4.4.2. 割り込みの確認
各ビットの割り込みの有無を確認できます。
デフォルトは「0」で、割り込みが発生したとき、各ビットが「1」に設定されます。
4.4.1 で禁止に設定されていても、割り込みが発生した場合、対応するビットは「1」に設定されます。
一度アクセスされるとレジスタの内容はクリアされます。
<プログラム例>
Sts=inpw(base+0x36) ;
テクニカルリファレンス< GPIB-F-LPE,GPIB-FL-LPE,
GP-IB(PCI)F/FL,GP-IB(LPCI)F/FL,GP-IB(CPCI)F, GP-IB(CB)F/FL >
9/9
2007 5 7
5. 補足
ここでは、API-PAC(W32)でサポートしていないボード/カードの機能や、ボード/カードに関連する補
足情報を説明しています。
5.1. オンボードシステムタイマ機能
ボード/カード上に常時動作するアップカウンタを搭載しており、カウントデータを入力することで、
パソコン(Windows)のシステムタイマよりも短い間隔の時間を監視することができます。
アップカウンタは 4MHz(250nsec ステップ)のクロックで動作する 32 ビットバイナリカウンタで、
00000000h から順次カウントアップしていき、FFFFFFFFh になった後、再び 00000000h になり、この
操作を繰り返します。
アップカウンタは電源投入後から常に動作します。
時間との対応は、カウントデータ 1LSB 250nsec に対応します。
最大値 FFFFFFFFh 1,073,741,823,750nsec ( 18 )に相当します。
カウントデータはタイマの動作に影響を与えずに入力することができます。
カウントデータの入力ポートの最下位アドレスへの入力命令を実行した時点で、カウントデータのラ
ッチを行い、そのときのデータが入力できます。
カウントデータの入力は、バイトアクセス、ダブルワードアクセスでの操作が可能です。
<オンボードシステムタイマプログラム例 (ダブルワードアクセス)>
現在のカウントデータを入力します。ただし、ボード/カードの I/O ベースアドレスは、Base です。
dwTim = impd(base+0x1c);
経過時間の計算方法
任意のタイミングで入力したカウントデータ dwTim1dwTim2 から経過時間をμsec 単位で計算します。
(dwTim1:計測開始時のカウントデータ、dwTim2:計測停止時のカウントデータ、dwLap:経過時間[μsec])
if(dwTim2 >= dwTim1){
dwLap = (DWORD)((dwTim2 - dwTim1) >> 2); /* 結果をμsec 単位にする */
}
else{ /* カウントデータが FFFFFFFFh から 00000000h
境界をまたぐ場合 */
dwLap = (DWORD)((0xffffffff - dwTim1 + dwTim2) >> 2);
}
以上
A-48-074
LYFJ942
/