DIO-32DM-PE

Contec DIO-32DM-PE 取扱説明書

  • こんにちは!このコンテック製デジタル入出力ボードPIO-32DM(PCI)とDIO-32DM-PEのテクニカルリファレンスに関するご質問にお答えします。本資料には、I/Oポートのビット割り当て、レジスタの詳細、データ入出力、割り込み制御、そしてオンボードシステムタイマ機能に関する情報が含まれています。どのようなご質問でもお気軽にお尋ねください。
  • PIO-32DM(PCI)とDIO-32DM-PEの違いは何ですか?
    割り込み機能はどうやって使いますか?
    オンボードシステムタイマの精度と最大カウント値は?
    I/Oアドレスはどこで確認できますか?
    入出力ポートの設定方法は?
テクニカルリファレンス
PCI
対応
非絶縁高速双方向デジタル入出力ボード
PIO-32DM(PCI)
PCI Express
対応
非絶縁型高速双方向デジタル入出力ボード
DIO-32DM-PE
目次
1. はじめに.......................................................................................................................2
1.1. 本資料中の語句について ..................................................................................2
2.
製品固有情報...............................................................................................................2
2.
1. Vendor IDDevice ID ..........................................................................................2
2.
2. リソースの取得方法 ..........................................................................................2
3.
I/Oポートのビット割り付け .....................................................................................3
3.
1. PIO-32DM(PCI), DIO-32DM-PE I/Oアドレスマップ一覧...............................3
4.
I/Oポート、レジスタ詳細 .........................................................................................4
5.
操作手順.......................................................................................................................6
5.
1. データ入出力機能 ..............................................................................................6
5.
1.1. データの入力 ..............................................................................................6
5.
1.2. データの出力 ..............................................................................................6
5.
1.3. ポートの入出力設定 ..................................................................................6
5.
1.4. 出力データのモニタ ..................................................................................7
5.
2. 割り込みコントロール機能 ..............................................................................7
5.
2.1. 割り込みの禁止・許可 ..............................................................................7
5.
2.2. 割り込みステータスと割り込み信号のクリア ......................................7
6.
補足...............................................................................................................................8
6.
1. オンボードシステムタイマ機能 ......................................................................8
テクニカルリファレンス<PIO-32DM(PCI), DIO-32DM-PE>
株式会社コンテック
2/8
2011 5 13
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 Name Device ID
PIO-32DM(PCI) C102h
DIO-32DM-PE A632h
Revision ID : ボード ID の設定スイッチ(SW1)の状態。00h - 0Fh の範囲で反映されます。
上記以外は、PCI ローカルバス仕様に準拠します。
2.2. リソースの取得方法
MS-DOS 環境で PCI バス対応ボードのリソース(I/O ベースアドレス、割り込みレベル、メモリベース
アドレス)を取得するためのライブラリを、ホームページ(http://www.contec.co.jp)で提供しています。
テクニカルリファレンス<PIO-32DM(PCI), DIO-32DM-PE>
株式会社コンテック
3/8
2011 5 13
3. I/Oポートのビット割り付け
3.1. PIO-32DM(PCI), DIO-32DM-PE I/Oアドレスマップ一覧
PIO-32DM(PCI), DIO-32DM-PE 入力ポート
I/O ベース
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+0h
Direct Input Data(1)
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
+02h
Direct Input Data(2)
D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
+04h
|
+12h
Reserved
+14h
IRQ Sense Port(1)
A03 A02 A01 A00 0 0 0 0 0 0 0 0 0 0 0 0
+16h IRQ Sense Port(2)
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+18h
|
+1Ah
Reserved
+1Ch
GP Timer Data (1)
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
+1Eh GP Timer Data (2)
D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
PIO-32DM(PCI), DIO-32DM-PE 出力ポート
I/O ベース
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+0h
Direct Output Data(1)
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
+02h
Direct Output Data(2)
D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
+04h
Input/Output Group Select
- - - - - - - - - - - - - - Gr1 Gr0
+05h
|
+0Eh
Reserved
+10h
IRQ Mask Port(1)
A03 A02 A01 A00 1 1 1 1 1 1 1 1 1 1 1 1
+12h
IRQ Mask Port(2)
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+14h
IRQ Reset Port(1)
A03 A02 A01 A00 1 1 1 1 1 1 1 1 1 1 1 1
+16h IRQ Reset Port(2)
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+18h
|
+1Eh
Reserved
テクニカルリファレンス<PIO-32DM(PCI), DIO-32DM-PE>
株式会社コンテック
4/8
2011 5 13
4. I/Oポート、レジスタ詳細
各ポートの説明は以下のようなっています。
Direct Input/Output Data *1 (+00h Read/Write *2) DWord Word *3
I/O ベース
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+0h
*4
Direct Input Data(1)
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
+02h
*4
Direct Input Data(2)
D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
*1:ポート名称
*2:入出力 Read 入力可能
Write 出力可能
Read/Write 入出力可能
*3:アクセス方式 WORD WORD アクセス
DWORD DWORD アクセス
*4:ポートアドレス
I/O ポート、レジスタ詳細は以下のようなっています。
Direct Input/Output Data (+00h Read/Write) DWord Word
I/O ベース
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+0h
Direct Input Data(1)
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
+02h
Direct Input Data(2)
D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
ターゲットとして直接入出力データをアクセスする場合に使用します。
出力時の入力データはエコーバックです。
Input/Output Select (+04h Write) Word
I/O ベース
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+04h
Input / Output Group Select
- - - - - - - - - - - - - - Gr1 Gr0
入出力グループの選択ビットです(0: 入力 1: 出力)Default [00]ですべて入力に設定されていま
す。
Gr0 DIOAOO(D00) - DIOB07(D15)Gr1 DIOC00(D16) - DIOD07(D31)に対応します。
00 :入力 32
10 :入力 16 /出力 16
10 : Reserved(設定禁止)
11 :出力 32
Interrupt Request Mask Port (+10h Write) Dword
I/O ベース
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+10h
IRQ Mask Port(1)
DIO
A03
DIO
A02
DIO
A01
DIO
A00
1 1 1 1 1 1 1 1 1 1 1 1
+12h
IRQ Mask Port(2)
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
割り込み要求信号のマスクを設定します。(1: 割り込み無効, 0: 割込み有効)
デフォルトはすべて 1(Mask)です。
テクニカルリファレンス<PIO-32DM(PCI), DIO-32DM-PE>
株式会社コンテック
5/8
2011 5 13
Interrupt Request Sense Port (+14h Read) Dword
I/O ベース
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+14h
IRQ Sense Port(1)
DIO
A03
DIO
A02
DIO
A01
DIO
A00
0 0 0 0 0 0 0 0 0 0 0 0
+16h
IRQ Sense Port(2)
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
割り込み要求信号のステータスポートです。割り込み要求のあった信号が[1]になります。
DIOA03-DIOA00: 汎用入出力使用時の割込みビットです。外部信号の立ち上がり信号が入力され
たとき[1]になります。
Interrupt Request Reset Port (+14h Write) Dword
I/O ベース
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+14h
IRQ Reset Port(1)
DIO
A03
DIO
A02
DIO
A01
DIO
A00
0 0 0 0 0 0 0 0 0 0 0 0
+16h
IRQ Reset Port(2)
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
要求のあった割り込み要求信号に[1]を出力することによって[0]にリセットします。
テクニカルリファレンス<PIO-32DM(PCI), DIO-32DM-PE>
株式会社コンテック
6/8
2011 5 13
5. 操作手順
製品の説明書の「第 4 機能の説明」をあわせて参照してください。
制御例は C 言語スタイルで記述しています。OS/開発言語にあった形に変更してご使用ください。
5.1. データ入出力機能
5.1.1. データの入力
入力ポート「I/O ベースアドレス+0h - +2h 」を利用して、データを入力します。
入力データが High のとき、該当するビットは「1」になります
逆に入力データが Low のときは、該当するビットは「0」になります。
<プログラム例>
D00 High かどうかを調べる場合は、次のようになります。ただし、ボードの I/O ベースアドレスは、
port です。
data_in=inpw(port+0x00);
while(data_in & 0x0001)
5.1.2. データの出力
出力ポート「I/O ベースアドレス+0h - +2h 」を利用して、データを出力します。
該当するビットに「1」を出力すると、出力は High になります。
逆に該当するビットに「0」を出力すると、出力は Low になります。
<プログラム例>
D00 のみを High にする場合は、次のようになります。ただし、ボードの I/O ベースアドレスは、port
です。
outpd(port+0x00,0x00000001);
5.1.3. ポートの入出力設定
入力 32 点または、出力 32 点または、入力 16 /出力 16 点に設定することが出来ます。
<プログラム例>
出力 32 点にする場合は、次のようになります。ただし、ボードの I/O ベースアドレスは、port です。
outp(port+0x04,0x3);
テクニカルリファレンス<PIO-32DM(PCI), DIO-32DM-PE>
株式会社コンテック
7/8
2011 5 13
5.1.4. 出力データのモニタ
PIO-32DM(PCI), DIO-32DM-PE は、現在出力されているデータの状態を、出力データに影響を与えるこ
となく読み込むことができます。
データを出力した出力ポートと同 I/O アドレスから入力してください。
<プログラム例>
I/O ベースアドレス+0 ポートに出力したデータをモニタする場合、次のようになります。ただし、ボ
ードの I/O ベースアドレスは、port です。
outpd(port+0x00,0x00000055);
m_data=inpd(port+0x00);
5.2. 割り込みコントロール機能
PIO-32DM(PCI), DIO-32DM-PE は、最大 4 点の入力信号を割り込み要求信号として使用することができ
ます。割り込み要求信号として使用できる入力信号は、A-00 - A-03 です。
入力信号が Low から High に変化したときに、パソコンに対して割り込み要求信号を発生させること
ができます。
5.2.1. 割り込みの禁止・許可
割り込みマスクビットにより、各ビットごとに割り込みの禁止・許可を設定できます。
割り込みマスクビットに 1 を設定すると、対応するビットの入力信号からの割り込みは発生を禁止
になります。
割り込みを発生させたいときは、対応する割り込みマスクビットに 0 を出力して割り込みを許可し
ます。
5.2.2. 割り込みステータスと割り込み信号のクリア
どの入力信号ビットによって割り込みが要求されたのかを知るために、割り込みステータスビットが
あります。
割り込みステータスを入力すると、割り込み要求信号と割り込みステータスは自動的にクリアされま
す。
割り込み処理プログラムの中で必ず割り込みステータスポートを読み込んでください。
<割り込み処理プログラム例>
:
S1=Inpd(port+0x14); /*割り込み要因の確認*/
:
S1=Outpd(port+0x140x0000f000); /*すべての割り込み信号のクリア*/
:
: /* 処理 */
:
テクニカルリファレンス<PIO-32DM(PCI), DIO-32DM-PE>
株式会社コンテック
8/8
2011 5 13
6. 補足
ここでは、API-PAC(W32)でサポートしていないボードの機能や、ボードに関連する補足情報を説明し
ています。
6.1. オンボードシステムタイマ機能
ボード上に常時動作するアップカウンタを搭載しており、カウントデータを入力することで、パソコ
(Windows)のシステムタイマよりも短い間隔の時間を監視することができます。
アップカウンタは 4MHz(250nsec ステップ)のクロックで動作する 32 ットバイナリカウンタで、
00000000h から順次カウントアップしていき、FFFFFFFFh になった後、再び 00000000h になり、この
操作を繰り返します。
アップカウンタは電源投入後から常に動作します。
時間との対応は、カウントデータの 1LSB 250nsec に対応します。最大値 FFFFFFFFh
1,073,741,823,750nsec ( 18 )に相当します。
カウントデータはタイマの動作に影響を与えずに入力することができます。
カウントデータの入力ポートの最下位アドレスへの入力命令を実行した時点で、カウントデータのラ
ッチを行い、そのときのデータが入力できます。
カウントデータの入力は、バイトアクセス、ワードアクセス、ダブルワードアクセスでの操作が可能
です。
<オンボードシステムタイマプログラム例 (ワードアクセス)>
現在のカウントデータを入力します。ただし、ボードの I/O ベースアドレスは、port です。
dwLow = impw(port+0x1c); /* 下位カウントデータの入力 */
dwHigh = impw(port+0x1e); /* 上位カウントデータの入力 */
dwTim = (dwLow | ((dwHigh << 16) & 0xffff0000));
経過時間の計算方法
任意のタイミングで入力したカウントデータ dwTim1, dwTim2 から経過時間をμ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-054
LYFF582
/