Contec CNT-3208M-PE, CNT32-8M(PCI) 取扱説明書

  • このドキュメントは、コンテック社の高速アップダウンカウンタボードCNT-3208M-PEとCNT32-8M(PCI)のテクニカルリファレンスです。I/Oポートの設定、コマンドの使い方、割り込み処理など、詳細な情報が記載されています。このドキュメントの内容を理解しており、デバイスに関するご質問にお答えできます。
  • Vendor IDとDevice IDは何ですか?
    I/Oアドレスはどのように割り当てられていますか?
    カウンタのスタート/ストップはどうやって制御しますか?
    割り込み機能はありますか?
テクニカルリファレンス
PCI Express
対応
8ch 32
ビット高速アップダウンカウンタボード
CNT-3208M-PE
8ch 32
ビット高速アップダウンカウンタボード
CNT32-8M(PCI)
目次
1. はじめに.......................................................................................................................2
1.1. 本資料中の語句について ..................................................................................2
2. 製品固有情報...............................................................................................................2
2.1. Vendor IDDevice ID ..........................................................................................2
2.2. リソースの取得方法 ..........................................................................................2
3. I/Oポートのビット割り付.....................................................................................3
3.1. I/Oアドレスマップ一覧 ......................................................................................3
4. 操作手順.......................................................................................................................4
4.1. 出力ポートの説明 ..............................................................................................4
4.2. 入力ポートの説明 ..............................................................................................7
4.3. オペレーションコマンドの説明 ......................................................................9
4.4. コマンドの説明 ..................................................................................................9
5. 制御フロー.................................................................................................................17
6. 補足.............................................................................................................................19
6.1. オンボードシステムタイマ機能 ....................................................................19
テクニカルリファレンス< CNT-3208M-PE, CNT32-8M(PCI)>
2/19
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 Name Device ID
CNT-3208M-PE 8615h
CNT32-8M(PCI) C105h
Revision ID :ボード ID の設定スイッチ(SW1)の状態。00h - 0Fh の範囲で反映されます。
上記以外は、PCI Express バス仕様<CNT-3208M-PE>/PCI ローカルバス仕様<CNT32-8M(PCI)>に準拠し
ます。
2.2. リソースの取得方法
MS-DOS 環境で PCI バス対応ボードのリソース(I/O ベースアドレス、割り込みレベル、メモリベース
アドレス)を取得するためのライブラリを、ホームページ(http://www.contec.co.jp)で提供しています。
テクニカルリファレンス< CNT-3208M-PE, CNT32-8M(PCI)>
3/19
2007 5 7
3. I/Oポートのビット割り付け
3.1. I/Oアドレスマップ一覧
連続する 32 ポート分の I/O アドレスを占有します。入出力ポートそれぞれにレジスタを持っており、
このレジスタ群はコマンドで振り分けられています。
各レジスタの設定方法は、まず設定 I/O アドレス+8 ポートに各コマンドを OUT し、該当するレジスタ
を設定可能状態とします。そして、出力なら+C ポート、+E ポートでレジスタにデータを OUT して設
定し、入力なら+C ポート、+E ポートを読み込みます。
各レジスタを設定するときは、同じコマンドであっても、毎回必ず出力ポート+8 にコマンドを出力し
てください。
入力ポート
I/Oベース In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+00h
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
Direct
Counter
Data(1)
+02h D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
Direct
Counter
Data(2)
+04h - - - - - - - - Ch7 Ch6 Ch5 Ch4 Ch3 Ch2 Ch1 Ch0
Counter Select
Enable
Status
+06h - - - - - - - - - - - - - - - - Reserved
+08h - - - - - - - - - - - - - - - - Reserved
+0Ah - - - - - - - - - - - - - - - - Reserved
+0Ch D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
Command
Input Data(1)
+0Eh D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
Command
Input Data (2)
+10h - - - - - - - - - - - - - - - - Reserved
+12h - - - - - - - - - - - - - - - - Reserved
+14h
Ch7
Comp0
Ch6
Comp0
Ch5
Comp0
Ch4
Comp0
Ch3
Comp0
Ch2
Comp0
Ch1
Comp0
Ch0
Comp0
0 0 0 0 0 0 0 0
IRQ Sense
Port(1)
+16h 0 0 0
Alarm
Error
Timer
Carry/
Borrow
AI
Error
Digital
Filter
Error
Ch7
Comp1
Ch6
Comp1
Ch5
Comp1
Ch4
Comp1
Ch3
Comp1
Ch2
Comp1
Ch1
Comp1
Ch0
Comp1
IRQ Sense
Port(2)
+18h - - - - - - - - - - - - - - - - Reserved
+1Ah - - - - - - - - - - - - - - - - Reserved
+1Ch D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
GP Timer
Data (1)
+1Eh D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
GP Timer
Data (2)
出力ポート
I/Oベース Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+00h - - - - - - - - - - - - - Sel3 Sel2 Sel1
Read Channel
Select
+02h - - - - - - - - Ch7 Ch6 Ch5 Ch4 Ch3 Ch2 Ch1 Ch0
Direct
Counter
Latch
Select
+04h - - - - - - - - Ch7 Ch6 Ch5 Ch4 Ch3 Ch2 Ch1 Ch0
Counter Select
Enable
+06h - - - - - - - - - - - - - - - - Reserved
+08h - - - - - - - - - D06 D05 D04 D03 D02 D01 D00
Command
Select
+0Ah - - - - - - - - - - - - - - - - Reserved
+0Ch D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
Command
Output
Data(1)
+0Eh D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
Command
Output
Data(2)
+10h
Ch7
Comp0
Ch6
Comp0
Ch5
Comp0
Ch4
Comp0
Ch3
Comp0
Ch2
Comp0
Ch1
Comp0
Ch0
Comp0
1 1 1 1 1 1 1 1
IRQ Mask
Port(1)
+12h 1 1 1
Alarm
Error
Timer
Carry/
Borrow
AI
Error
Digital
Filter
Error
Ch7
Comp1
Ch6
Comp1
Ch5
Comp1
Ch4
Comp1
Ch3
Comp1
Ch2
Comp1
Ch1
Comp1
Ch0
Comp1
IRQ Mask
Port(2)
+14h
Ch7
Comp0
Ch6
Comp0
Ch5
Comp0
Ch4
Comp0
Ch3
Comp0
Ch2
Comp0
Ch1
Comp0
Ch0
Comp0
1 1 1 1 1 1 1 1
IRQ Reset
Port(1)
+16h 1 1 1
Alarm
Error
Timer
Carry/
Borrow
AI
Error
Digital
Filter
Error
Ch7
Comp1
Ch6
Comp1
Ch5
Comp1
Ch4
Comp1
Ch3
Comp1
Ch2
Comp1
Ch1
Comp1
Ch0
Comp1
IRQ Reset
Port(2)
+18h - - - - - - - - - - - - - - - - Reserved
+1Ah - - - - - - - - - - - - - - - - Reserved
+1Ch - - - - - - - - - - - - - - - - Reserved
+1Eh - - - - - - - - - - - - - - - - Reserved
テクニカルリファレンス< CNT-3208M-PE, CNT32-8M(PCI)>
4/19
2007 5 7
4. 操作手順
製品説明書の「第 4 機能の説明」をあわせて参照してください。
ポートにより Counter 動作中にアクセスできないポートがあります。
Counter 動作中に変更不可のポート ×Counter
4.1. 出力ポートの説明
Read Channel Select (+00h Write) Word
I/Oベース Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+00h - - - - - - - - - - - - - Sel2 Sel1 Sel0
読み出しを行うチャネル番号を出力します。その後、
+00h
Read
することによってラッチしたカウ
ントデータを読むことができます。
D03 - D00 : Read Channel Select
000 : Channel 0 100 : Channel 4
001 : Channel 1 101 : Channel 5
010 : Channel 2 110 : Channel 6
011 : Channel 3 111 : Channel 7
Direct Counter Latch Select (+02h Write ) Word
I/Oベース Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+02h - - - - - - - - Ch7 Ch6 Ch5 Ch4 Ch3 Ch2 Ch1 Ch0
対応ビットを
[1]
にするとそのチャネルのカウンタ値がラッチされます。
D7 - D0 : Latch Channel Select
[使用例. Channel をラッチし、Channel0 のラッチしたカウントデータを読む場合]
outpd Address + 0H, 00FF0000H
Countdata = INPD ( Address + 0H )
テクニカルリファレンス< CNT-3208M-PE, CNT32-8M(PCI)>
5/19
2007 5 7
Counter Select Enable (+04h Write) Word
I/Oベース Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+04h - - - - - - - - Ch7 Ch6 Ch5 Ch4 Ch3 Ch2 Ch1 Ch0
カウンタ条件の選択、および各レジスタの設定後、その条件の有効
/
無効を設定します。
(1 :
有効
0 :
無効
)
・カウンタ条件がソフトウェアスタートの場合、このビットを
[1]
にするとカウンタがスタートします
それ以外の場合、このビットが
[1]
になった後に成立したスタート条件でカウンタがスタートします
・カウンタ条件がソフトウェアストップの場合、このビットを
[0]
にするとカウンタがストップします
それ以外の場合、成立したストップ条件でカウンタがストップし、このビットは
[0]
にセットされま
す。
ただし、ソフトウェアストップの優先順位は他の条件より高く、他のストップ条件が設定されてい
てもこのビットを
[0]
にすると強制停止になります。
D7 - D0 : Counter Select Enable (Channel7 - 0)
[使用例. Channel7 のみカウンタスタートする場合]
outpw Address + 4H, 80H
Command Select (+08h Write) Word ×Counter(Command により)
I/Oベース Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+08h - - - - - - - - - D06 D05 D04 D03 D02 D01 D00
カウンタ条件
/
比較レジスタ
/
ステータスの設定を行うコマンドの設定ポートです。
Command Output Data (+0Ch Write) DWord ×Counter(Command により)
I/Oベース Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+0Ch D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
+0Eh D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
+08h
で設定したコマンドに対してデータを出力します。
データの詳細については「各コマンドの説明」を参照してください。
[使用例. Channel 7 のプリセットデータに 1000 を設定する場合]
outpw Address + 8H, 17H
outpd Address + CH, 000003E8H
テクニカルリファレンス< CNT-3208M-PE, CNT32-8M(PCI)>
6/19
2007 5 7
IRQ Mask Port (+10h Write) DWord
I/Oベース Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+10h
Ch7
Comp0
Ch6
Comp0
Ch5
Comp0
Ch4
Comp0
Ch3
Comp0
Ch2
Comp0
Ch1
Comp0
Ch0
Comp0
1 1 1 1 1 1 1 1
+12h 1 1 1
Alarm
Error
Timer
Carry/B
orrow
AI
Error
Digital
Filter
Error
Ch7
Comp1
Ch6
Comp1
Ch5
Comp1
Ch4
Comp1
Ch3
Comp1
Ch2
Comp1
Ch1
Comp1
Ch0
Comp1
割り込み要求信号のマスクを設定します。
(1 :
割り込み無効
0 :
割り込み有効
)
デフォルトはすべて
1(Mask)
です。
割り込み要求信号の詳細は入力ポー
(Interrupt Request Sense Port)
を参照してください。
[使用例. Channel Comp0,Comp1 を有効に設定する場合]
outpd Address + 10H, FF0000FFH
IRQ Reset Port (+14h Write) DWord
I/Oベース Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+14h
Ch7
Comp0
Ch6
Comp0
Ch5
Comp0
Ch4
Comp0
Ch3
Comp0
Ch2
Comp0
Ch1
Comp0
Ch0
Comp0
1 1 1 1 1 1 1 1
+16h 1 1 1
Alarm
Error
Timer
Carry/B
orrow
AI
Error
Digital
Filter
Error
Ch7
Comp1
Ch6
Comp1
Ch5
Comp1
Ch4
Comp1
Ch3
Comp1
Ch2
Comp1
Ch1
Comp1
Ch0
Comp1
要求のあった割り込み要求信号に
[1]
を出力することによって
[0]
にリセットします。
割り込み要求信号の詳細は入力ポー
(Interrupt Request Sense Port)
を参照してください。
[使用例. Channel Comp0,Comp1 をリセットする場合]
outpd Address + 10H, 00FFFF00H
テクニカルリファレンス< CNT-3208M-PE, CNT32-8M(PCI)>
7/19
2007 5 7
4.2. 入力ポートの説明
Direct Counter Data (+00h Read) DWord
I/Oベース In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+00h D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
+02h D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
ターゲットとして直接カウンタデータをアクセスする場合に使用します。
FIFO
格納のデータではな
く生データです。
[使用例. Channel をラッチし、Channel0 のラッチしたカウントデータを読む場合]
DWord アクセス
outpd Address + 0H, FF0000H
Countdata = inpd ( Address + 0 )
Counter Select Enable Status (+04h Read) Word
I/Oベース In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+04h - - - - - - - - Ch7 Ch6 Ch5 Ch4 Ch3 Ch2 Ch1 Ch0
このポートを
Read
することによってカウンタの状態を確認することができます。カウンタ動作中の
channel
[1]
となります。カウンタ停止中は
[0]
です。
D7 - D0 : Counter Select Enable (Channel7 - 0)
テクニカルリファレンス< CNT-3208M-PE, CNT32-8M(PCI)>
8/19
2007 5 7
Command Input Data (+0Ch Read ) DWord
I/Oベース In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+0Ch D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
+0Eh D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
+08h
で設定したコマンドに対してデータを入力します。
データの詳細については「各コマンドの説明」を参照してください。
Interrupt Request Sense Port (+14h Read ) DWord
I/Oベース In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+14h
Ch7
Comp0
Ch6
Comp0
Ch5
Comp0
Ch4
Comp0
Ch3
Comp0
Ch2
Comp0
Ch1
Comp0
Ch0
Comp0
0 0 0 0 0 0 0 0
+16h 0 0 0
Alarm
Error
Timer
Carry/B
orrow
AI
Error
Digital
Filter
Error
Ch7
Comp1
Ch6
Comp1
Ch5
Comp1
Ch4
Comp1
Ch3
Comp1
Ch2
Comp1
Ch1
Comp1
Ch0
Comp1
割り込み要求信号のステータスポートです。割り込み要求のあった信号が
[1]
になります。
Ch0-Ch7Comp0 : カウンタ値と比較値 0 が一致したとき[1]になります。
Ch0-Ch7Comp1 : カウンタ値と比較値 1 が一致したとき[1]になります。
Alarm Error : 差動入力端子の+側と-側がともに HI レベルが入力された(断線検
)とき[1]になります。
Digital Filter Error : デジタルフィルタ設定値より高速なパルスが入力されたとき[1]にな
ります。
AI Error(異常入力エラー) : A /B 相が同時に変化したとき[1]になります。
Carry/Borrow : カウンタで Carry/Borrow が発生したとき[1]になります。
Timer : タイマ割り込みが発生したとき[1]になります。
GP Timer Data (+1Ch Read ) DWord
I/Oベース In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+1Ch D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
+1Eh D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
GPTimer(
オンボードシステムタイマ
)
の読み出しポートです。
テクニカルリファレンス< CNT-3208M-PE, CNT32-8M(PCI)>
9/19
2007 5 7
4.3. オペレーションコマンドの説明
コマンドにより Counter 動作中にアクセスできないものがあります
Counter 動作中に変更不可のコマンド : ×Counter
出力コマンド
コマンド
[h]
機能
コマンド
[h]
機能
コマンド
[h]
機能
コマンド
[h]
機能
00 Reserved 10
CH0 プリセットデータ
20
CH0 比較レジスタ 1
30
CH0Z 相入力設定
01 Reserved 11
CH1 プリセットデータ
21
CH1 比較レジスタ 1
31
CH1Z 相入力設定
02 Reserved 12
CH2 プリセットデータ
22
CH2 比較レジスタ 1
32
CH2Z 相入力設定
03 Reserved 13
CH3 プリセットデータ
23
CH3 比較レジスタ 1
33
CH3Z 相入力設定
04 Reserved 14
CH4 プリセットデータ
24
CH4 比較レジスタ 1
34
CH4Z 相入力設定
05 Reserved 15
CH5 プリセットデータ
25
CH5 比較レジスタ 1
35
CH5Z 相入力設定
06 Reserved 16
CH6 プリセットデータ
26
CH6 比較レジスタ 1
36
CH6Z 相入力設定
07
タイマ設定
17
CH7 プリセットデータ
27
CH7 比較レジスタ 1
37
CH7Z 相入力設定
08
CH0 カウンタモード
18
CH0 比較レジスタ 0
28
CH0 制御出力信号設定
38
カウント一致ステータスクリア
09
CH1 カウンタモード
19
CH1 比較レジスタ 0
29
CH1 制御出力信号設定
39
エラーステータスクリア
0A
CH2 カウンタモード
1A
CH2 比較レジスタ 0
2A
CH2 制御出力信号設定
3A
キャリーボローステータスクリア
0B
CH3 カウンタモード
1B
CH3 比較レジスタ 0
2B
CH3 制御出力信号設定
3B
汎用出力データ設定
0C
CH4 カウンタモード
1C
CH4 比較レジスタ 0
2C
CH4 制御出力信号設定
3C
ソフトプリロード
0D
CH5 カウンタモード
1D
CH5 比較レジスタ 0
2D
CH5 制御出力信号設定
3D
ソフトゼロクリア
0E
CH6 カウンタモード
1E
CH6 比較レジスタ 0
2E
CH6 制御出力信号設定
3E
テストパルス設定
0F
CH7 カウンタモード
1F
CH7 比較レジスタ 0
2F
CH7 制御出力信号設定
3F Reserved
入力コマンド
コマンド
[h]
機能
38
カウント一致ステータス
39
エラーステータス
3A
キャリーボローステータス
3B
汎用出力データリードバック
3F
カウンタステータス
40
汎用入力データ
4.4. コマンドの説明
タイマ設定 (07h) DWord×Counter
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
- - - - - - - - - - - - - - - D16
タイマ割り込み用クロックの設定とタイマのスタ-ト
/
ストップを行います。
D16 タイマのスタ-ト/ストップビットです。
1 : タイマスタート
0 : タイマストップ
D15 - D00 最小単位は、0.1ms 単位で 0.1ms - 6553.5ms まで設定可能です。タイマ精度は 1
目のみ最大+0.1ms-0 の誤差が生じます。
テクニカルリファレンス< CNT-3208M-PE, CNT32-8M(PCI)>
10/19
2007 5 7
カウンタモード (08h - 0Fh) DWord×Counter
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
D15 D14 D13 D12 0 0 0 D08 0 D06 D05 D04 D03 D02 D01 D00
D31 D30 D29 D28 D27 D26 0 0 D23 D22 D21 D20 D19 D18 D17 D16
カウンタスタート
/
ストップ
/
外部入力信号
/
Z相入力論理
/
デジタルフィルタ
/
動作モードなど各条件
の設定を行います。
D31 - D30 カウンタスタート条件を設定します。
00 : ソフトウェア
01 : Reserved
10 : 外部 TTL レベル入力立ち上がり[外部入力信号で外部カウンタスタート/ストッ
プが選択された場合のみ有効です。]
11 : 外部 TTL レベル入力立ち下がり[外部入力信号で外部カウンタスタート/ストッ
プが選択された場合のみ有効です。]
D29 - D28 カウンタストップ条件を設定します。
00 : ソフトウェア
01 : Reserved
10 : 外部 TTL レベル入力立ち上がり[外部入力信号で外部カウンタスタート/ストッ
プが選択された場合のみ有効です。]
11 : 外部 TTL レベル入力立ち下がり[外部入力信号で外部カウンタスタート/ストッ
プが選択された場合のみ有効です。]
D27 - D26 外部入力信号の選択を設定します。
00 : 汎用入力
01 : 外部カウンタスタート/ストップ
10 : プリセットロード
11 : カウンタゼロクリア
D25 - D24 0 固定
D23 - D20 プリセットロード条件の選択を設定します。該当ビットに1を設定するとプリセッ
トロード条件となります。ただし、ソフトウェア設定はこの設定条件に関らずプリセ
ットロードが可能です。
D23 : 外部 TT
L レベル入力立ち下がり[外部入力信号でプリセットロードが選択さ
れた場合のみ有効です。]
D22 : 外部 TTL レベル入力立ち上がり[外部入力信号でプリセットロードが選択され
た場合のみ有効です。]
D21 : カウント一 1
D20 : カウント一 0
テクニカルリファレンス< CNT-3208M-PE, CNT32-8M(PCI)>
11/19
2007 5 7
D19 - D16 カウンタゼロクリア条件の選択を設定します。該当ビットに1を設定するとカウン
タゼロクリア条件となります。ただし、ソフトウェア、Z 相入力はこの設定条件に関
らずゼロクリアが可能です。
D19 : 外部 TTL レベル入力立ち下がり[外部入力信号でカウンタゼロクリアが選択さ
れた場合のみ有効です。]
D18 : 外部 TTL レベル入力立ち上がり[外部入力信号でカウンタゼロクリアが選択さ
れた場合のみ有効です。]
D17 : カウント一 1
D16 : カウント一 0
D15 - D12 デジタルフィルタの選択ポートです。
設定データ範囲 : 0.1us - 1.628ms または未使用
0000 : 未使用 1000 : 12.8us EX. 0.1us 設定時
0001 : 0.1us 1001 : 25.6us - 75ns のパルス幅を持つ信号に対してフィルタエ
ラーが起ち、カウントしません。
0010 : 0.2us 1010 : 51.2us 75ns - 100ns のパルス幅を持つ信号に対してフィ
ルタエラーが起つこともあり、カウントすること
もあります。
0011 : 0.4us 1011 : 102.6us 100ns - のパルス幅を持つ信号に対してフィルタ
エラーは起たず、正常にカウントします。
0100 : 0.8us 1100 : 204.8us
0101 : 1.6us 1101 : 409.6us
0110 : 3.2us 1110 : 819.2us
0111 : 6.4us 1111 : 1.6384ms
D11 - D09 0 固定
D08 Z 相入力の論理(/)を設定します。
0 : 正論理(High アクティブ)
1 : 負論理(Low アクティブ)
D07 0 固定
D06 カウンタへのパルス入力を設定します。
0 : 差動入力
1 : TTL レベル入力
D
05 カウント方向の切り替えを設定します。
0 : CW 方向 Down/CCW 方向 Up
1 : CW 方向 Up/CCW 方向 Down
D04 - D00 カウンタ動作モードの選択ポートです。
00000 : 2 相入力、同期クリア、1 逓倍モード
00001 : 2 相入力、同期クリア、2 逓倍モード
00010 : 2 相入力、同期クリア、4 逓倍モード
00100 : 2 相入力、非同期クリア、1 逓倍モード
00101 : 2 相入力、非同期クリア、2 逓倍モード
00110 : 2 相入力、非同期クリア、4 逓倍モード
01100 : 単相入力、非同期クリア、1 逓倍モード
10100 : ゲートコントロール付き単相入力、非同期クリア、1 逓倍モード
10101 : ゲートコントロール付き単相入力、非同期クリア、2 逓倍モード
テクニカルリファレンス< CNT-3208M-PE, CNT32-8M(PCI)>
12/19
2007 5 7
プリセットデータ (10h - 17h) DWord
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
Ch0 - Ch7
のプリセットレジスタにデータを設定します。
本コマンドでデータを設定するとプリセットレジスタデータを書き換えます。
比較レジスタ 0 (18h - 1Fh) DWord
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
Ch0 - Ch7
の比較レジスタ
0
にデータを設定します。
比較レジスタ 1 (20h - 27h) DWord
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
Ch0 - Ch7
の比較レジスタ
1
にデータを設定します。
制御出力信号設定 (28h - 2Fh) DWord
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
- - - - - - - - D07 D06 D05 D04 D03 D02 D01 D00
出力信号
/
ワンショットパルス幅の設定を行います。
D07 - D05 ワンショットパルス幅を設定します。
000 : 10us 011 : 10ms
001 : 100us 100 : 100ms
010 : 1ms 101 - 111 : Reserved
D04 - D00 外部出力信号の選択を設定します該当ビットに1を設定するとその要因により外
部へワンショットパルスを出力します。全てのビット0とした場合は汎用出力とな
り、レベル出力となります(/負論理の切り替えはボード上スイッチにて行う)
D04 : アラームエラー
D03 : 異常入力エラー
D02 : デジタルフィルタエラー
D01 : カウント一致 1
D00 : カウント一致 0
Z 相入力設定 (30h - 37h) Word
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
- - - - - - - - - - - - - - D01 D00
Z
相有効条件の設定を行います。
D01 - D00 Z 相入力の有効/無効を設定します。
00 : 前回設定有効
01 : Z 相入力無効 Z相がない場合、この値に設定す
10 : 次に来る Z 相の入力 1 回だけ有効
11 : Z 相毎回有効
テクニカルリファレンス< CNT-3208M-PE, CNT32-8M(PCI)>
13/19
2007 5 7
カウント一致ステータス (38h) DWord
In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
条件が成立したビットが
[1]
になります。
[Read]
D31 : カウント一致 1DOWN (Ch 7) D23 : カウント一 0DOWN (Ch 7) D15 : カウント一致 1UP (Ch 7) D07 : カウント一致 0UP (Ch 7)
D30 : カウント一致 1DOWN (Ch 6) D22 : カウント一 0DOWN (Ch 6) D14 : カウント一致 1UP (Ch 6) D06 : カウント一致 0UP (Ch 6)
D29 : カウント一致 1DOWN (Ch 5) D21 : カウント一 0DOWN (Ch 5) D13 : カウント一致 1UP (Ch 5) D05 : カウント一致 0UP (Ch 5)
D28 : カウント一致 1DOWN (Ch 4) D20 : カウント一 0DOWN (Ch 4) D12 : カウント一致 1UP (Ch 4) D04 : カウント一致 0UP (Ch 4)
D27 : カウント一致 1DOWN (Ch 3) D19 : カウント一 0DOWN (Ch 3) D11 : カウント一致 1UP (Ch 3) D03 : カウント一致 0UP (Ch 3)
D26 : カウント一致 1DOWN (Ch 2) D18 : カウント一 0DOWN (Ch 2) D10 : カウント一致 1UP (Ch 2) D02 : カウント一致 0UP (Ch 2)
D25 : カウント一致 1DOWN (Ch 1) D17 : カウント一 0DOWN (Ch 1) D09 : カウント一致 1UP (Ch 1) D01 : カウント一致 0UP (Ch 1)
D24 : カウント一致 1DOWN (Ch 0) D16 : カウント一 0DOWN (Ch 0) D08:カウント一 1UP (Ch 0) D00 : カウント一致 0UP (Ch 0)
カウント一致ステータスクリア (38h) DWord
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
対応ビットに
[1]
を出力することによって
[0]
にリセットします。
[Write]
D31 : カウント一致 1DOWN (Ch 7) D23 : カウント一 0DOWN (Ch 7) D15 : カウント一致 1UP (Ch 7) D07 : カウント一致 0UP (Ch 7)
D30 : カウント一致 1DOWN (Ch 6) D22 : カウント一 0DOWN (Ch 6) D14 : カウント一致 1UP (Ch 6) D06 : カウント一致 0UP (Ch 6)
D29 : カウント一致 1DOWN (Ch 5) D21 : カウント一 0DOWN (Ch 5) D13 : カウント一致 1UP (Ch 5) D05 : カウント一致 0UP (Ch 5)
D28 : カウント一致 1DOWN (Ch 4) D20 : カウント一 0DOWN (Ch 4) D12 : カウント一致 1UP (Ch 4) D04 : カウント一致 0UP (Ch 4)
D27 : カウント一致 1DOWN (Ch 3) D19 : カウント一 0DOWN (Ch 3) D11 : カウント一致 1UP (Ch 3) D03 : カウント一致 0UP (Ch 3)
D26 : カウント一致 1DOWN (Ch 2) D18 : カウント一 0DOWN (Ch 2) D10 : カウント一致 1UP (Ch 2) D02 : カウント一致 0UP (Ch 2)
D25 : カウント一致 1DOWN (Ch 1) D17 : カウント一 0DOWN (Ch 1) D09 : カウント一致 1UP (Ch 1) D01 : カウント一致 0UP (Ch 1)
D24 : カウント一致 1DOWN (Ch 0) D16 : カウント一 0DOWN (Ch 0) D08 : カウント一致 1UP (Ch 0) D00 : カウント一致 0UP (Ch 0)
テクニカルリファレンス< CNT-3208M-PE, CNT32-8M(PCI)>
14/19
2007 5 7
エラーステータス (39h) Word
In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
- - - - - - - - D23 D22 D21 D20 D19 D18 D17 D16
条件が成立したビットが
[1]
になります。
[Read]
アラームエラーステータスはアラームエラー状態中
1
”となり、アラーム解除されれば
0
”とな
ります。
デジタルフィルタエラー、異常入力エラーステータスはエラー状態になったときに“
1
”となりラ
ッチされます。クリアすることにより“
0
”となり、再びエラー状態になると“
1
”となります。
D23 : アラームエラー (Channel 7) D15 : デジタルフィルタエラー (Channel 7) D07 : 異常入力エラー (Channel 7)
D22 : アラームエラー (Channel 6) D14 : デジタルフィルタエラー (Channel 6) D06 : 異常入力エラー (Channel 6)
D21 : アラームエラー (Channel 5) D13 : デジタルフィルタエラー (Channel 5) D05 : 異常入力エラー (Channel 5)
D20 : アラームエラー (Channel 4) D12 : デジタルフィルタエラー (Channel 4) D04 : 異常入力エラー (Channel 4)
D19 : アラームエラー (Channel 3) D11 : デジタルフィルタエラー (Channel 3) D03 : 異常入力エラー (Channel 3)
D18 : アラームエラー (Channel 2) D10 : デジタルフィルタエラー (Channel 2) D02 : 異常入力エラー (Channel 2)
D17 : アラームエラー (Channel 1) D09 : デジタルフィルタエラー (Channel 1) D01 : 異常入力エラー (Channel 1)
D16 : アラームエラー (Channel 0) D08 : デジタルフィルタエラー (Channel 0) D00 : 異常入力エラー (Channel 0)
エラーステータスクリア (39h) Word
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
対応ビットに
[1]
を出力することによって
[0]
にリセットします。
[Write]
D15 : デジタルフィルタエラー (Channel 7) D07 : 異常入力エラー (Channel 7)
D14 : デジタルフィルタエラー (Channel 6) D06 : 異常入力エラー (Channel 6)
D13 : デジタルフィルタエラー (Channel 5) D05 : 異常入力エラー (Channel 5)
D12 : デジタルフィルタエラー (Channel 4) D04 : 異常入力エラー (Channel 4)
D11 : デジタルフィルタエラー (Channel 3) D03 : 異常入力エラー (Channel 3)
D10 : デジタルフィルタエラー (Channel 2) D02 : 異常入力エラー (Channel 2)
D09 : デジタルフィルタエラー (Channel 1) D01 : 異常入力エラー (Channel 1)
D08 : デジタルフィルタエラー (Channel 0) D00 : 異常入力エラー (Channel 0)
キャリーボローステータス (3Ah) Word
In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
条件が成立したビットが
[1]
になります。
[Read]
D15 : Borrow (Channel 7) D07 : Carry (Channel 7)
D14 : Borrow (Channel 6) D06 : Carry (Channel 6)
D13 : Borrow (Channel 5) D05 : Carry (Channel 5)
D12 : Borrow (Channel 4) D04 : Carry (Channel 4)
D11 : Borrow (Channel 3) D03 : Carry (Channel 3)
D10 : Borrow (Channel 2) D02 : Carry (Channel 2)
D09 : Borrow (Channel 1) D01 : Carry (Channel 1)
D08 : Borrow (Channel 0) D00 : Carry (Channel 0)
キャリーボローステータスクリア (3Ah) Word
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
対応ビットに
[1]
を出力することによって
[0]
にリセットします。
[Write]
D15 : Borrow (Channel 7) D07 : Carry (Channel 7)
D14 : Borrow (Channel 6) D06 : Carry (Channel 6)
D13 : Borrow (Channel 5) D05 : Carry (Channel 5)
D12 : Borrow (Channel 4) D04 : Carry (Channel 4)
D11 : Borrow (Channel 3) D03 : Carry (Channel 3)
D10 : Borrow (Channel 2) D02 : Carry (Channel 2)
D09 : Borrow (Channel 1) D01 : Carry (Channel 1)
D08 : Borrow (Channel 0) D00 : Carry (Channel 0)
テクニカルリファレンス< CNT-3208M-PE, CNT32-8M(PCI)>
15/19
2007 5 7
汎用出力データ設定 (3Bh) Word
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
- - - - - - - - Ch7 Ch6 Ch5 Ch4 Ch3 Ch2 Ch1 Ch0
カウンタ動作モード設定において外部出力信号を汎用出力に選択した場合、このポートは出力デー
タポートになります。
汎用出力データリードバック (3Bh) Word
In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
- - - - - - - - Ch7 Ch6 Ch5 Ch4 Ch3 Ch2 Ch1 Ch0
カウンタ動作モード設定において外部出力信号を汎用出力に選択した場合、このポートは出力デー
タ読み出しポートになります。
ソフトプリロード (3Ch) Word
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
- - - - - - - - Ch7 Ch6 Ch5 Ch4 Ch3 Ch2 Ch1 Ch0
Ch0 - Ch7
[1]
を出力すると、プリセットレジスタからカウンタにロードされます。
ソフトゼロクリア (3Dh) Word
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
- - - - - - - - Ch7 Ch6 Ch5 Ch4 Ch3 Ch2 Ch1 Ch0
Ch0 - Ch7
[1]
を出力すると、カウンタ値がゼロクリアされます。
テストパルス出力 (3Eh) Word
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
- - - - - - - - - - - - - - D01 D00
自己診断用パルス出力の設定をします。出力周波数は
100ΚΗ
z
固定です。
D01 出力パルスの有効/無効の設定をします。
0 : テストパルスを出力しない
1 : テストパルスを出力する
D00 出力パルス信号の内部/外部の設定をします。
0 : テストパルスを外部結線で使用
1 : 内部で使用(CH0 - CH7 全チャネルに 2 相パルスを出力します)
テストパルスを内部出力
OUT 先頭アドレス 8, 3Eh
OUT 先頭アドレス C, 03h
テクニカルリファレンス< CNT-3208M-PE, CNT32-8M(PCI)>
16/19
2007 5 7
カウンタステータス (3Fh) DWord
In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
カウンタ動作中のステータスポートになります。
Channel 7 Channel 5 Channel 3 Channel 1
D31 : Z D23 : Z D15 : Z D07 : Z
D30 : A D22 : A D14 : A D06 : A
D29 : B D21 : B D13 : B D05 : B
D28 : U/D D20 : U/D D12 : U/D D04 : U/D
Channel 6 Channel 4 Channel2 Channel 0
D27 : Z D19 : Z D11 : Z D03 : Z
D26 : A D18 : A D10 : A D02 : A
D25 : B D17 : B D09 : B D01 : B
D24 : U/D D16 : U/D D08 : U/D D00 : U/D
汎用入力データ (40h) Word
In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
- - - - - - - - Ch7 Ch6 Ch5 Ch4 Ch3 Ch2 Ch1 Ch0
カウンタ動作モード設定において外部入力信号が汎用入力を選択した場合、このポートは入力デー
タポートになります。(正論理)
外部入力信号を汎用入力以外に設定した場合でもそのときの入力レベルを読めます。入力レベルが
HI レベルのとき 1LO レベルのとき 0 となります。
テクニカルリファレンス< CNT-3208M-PE, CNT32-8M(PCI)>
17/19
2007 5 7
5. 制御フロー
基本的な制御フローの一例を示します。
END
Start
カウンタ
開始条件成立?
初期設定
カウンタ値の取り込み
カウンタ
終了条件成立
?
カウンタ終
動作モード設定
プリセットレジスタ設定
比較レジスタ
0
設定
比較レジスタ 1 設定
制御入出力設定
カウント一致イベント設定
カウンタ開始条件設定
カウンタ終了条件設定
割り込み設定
カウント一致イベントなど
カウント一致
/
割り込みなどのイベント
発生により外部へアクセス。
No
Yes
Yes
No
テクニカルリファレンス< CNT-3208M-PE, CNT32-8M(PCI)>
18/19
2007 5 7
【サンプルプログラム例】
/*-----------------------------------------------------------------------------
CNT32-8M(PCI) Sample Input Counter 0ch Ver. 1.00
-----------------------------------------------------------------------------*/
/* ----- Initialize -------------------------------------------------------- */
outpw(address+0x08, 0x0008); /*
動作モード設定
*/
outpd(address+0x0c, 0x00000022); /*
差動入力、
CW=UP
2
相入力、同期、
4
逓倍
*/
outpw(address+0x08, 0x0010); /*
プリセットレジスタ設定
*/
outpd(address+0x0c, 0x00000000); /*
データ
"00000000"
設定
*/
// outpw(address+0x08, 0x0018); /*
比較レジスタ
0
設定
(
未使用の場合は設定不要
)*/
// outpd(address+0x0c, 0x00001000); /*
データ
"00001000"
設定
*/
// outpw(address+0x08, 0x0020); /*
比較レジスタ1設定
(
未使用の場合は設定不要
)*/
// outpd(address+0x0c, 0x00002000); /*
データ
"00002000"
設定
*/
// outpw(address+0x08, 0x0028); /*
制御出力設定
(
未使用の場合は設定不要
)*/
// outpd(address+0x0c, 0x00000000); /*
ワンショットパルス
10us
、汎用出力
*/
outpw(address+0x08, 0x0030); /* Z
相入力設定
*/
outpd(address+0x0c, 0x00000001); /*
無効
*/
outpw(address+0x08, 0x003c); /*
プリセットデータロード
*/
outpd(address+0x0c, 0x000000ff); /*
全チャネルロード
*/
/* ----------- Counter Start ---------------------------------------------- */
outpw(address+0x04, 0x0001); /* Ch0
のみスタート
*/
/* ----------- Test Pulse Output ------------------------------------------ */
// outpw(address+0x08, 0x003e); /*
テストパルス設定コマンド
(
未使用の場合は設定不要
)*/
// outpd(address+0x0c, 0x0003); /*
テストパルスを内部に出力
(
未使用の場合は設定不要
)*/
/* ----- Read Data -------------------------------------------------------- */
while (1) {
outpw(address+0x02, 0x00ff); /*
全チャネルラッチ
*/
outpw(address+0x00, 0x0000); /*
チャネル
0
のカウン
ト値読み出しを指定
*/
cntdata = inpd(address+0x00); /*
カウント値を読み出し
(DWord
アクセス以外不可
)*/
outpw(address+0x08, 0x003f); /*
ステータスリードコマンド指定
*/
stsdata = inpd(address+0x0c); /*
ステータスを読み出し
*/
printf("CountData StatusData"); /*
カウント値、ステータス表示
*/
printf("%08ld %02x ", cntdata, stsdata );
}
テクニカルリファレンス< CNT-3208M-PE, CNT32-8M(PCI)>
19/19
2007 5 7
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-076
LYFJ962
/