ＤＡＳｍｉｎｉ E５００シリーズ
５００シリーズ
基本サブルーチン仕様書
for
LINUX
UNIX
Windows
作成
作成
作成
作成
作成

平成１５年５月６日
平成１５年７月２５日
平成１５年９月１７日
平成１６年５月２４日
平成１６年７月２１日

システムデザインサービス株式会社

目

次

改訂履歴................................
改訂履歴................................................................
................................................................................................
..........................................................................
..........................................3.......... 3
第１章 概 要 ................................................................
................................................................................................
.................................................................
................................. 4
第２章 DASmini 関数の説明 ................................................................
...........................................................................
...........................................5........... 5
第３章 DASmini 関数の使用方法 ................................................................
....................................................................
....................................7.... 7
3.1

inet_io_open ................................................................
..............................................................................................
..............................................................8.............................. 8

3.2

inet_io_close ................................................................
..............................................................................................
..............................................................9.............................. 9

3.3

inet_io_packet ................................................................
.........................................................................................
......................................................... 10

3.4

inet_io_cond ................................................................
............................................................................................
............................................................ 11

3.5

inet_io_stat ................................................................
.............................................................................................
............................................................. 12

3.6

inet_io_stop ................................................................
.............................................................................................
............................................................. 13

3.7

inet_io_init ................................................................
..............................................................................................
.............................................................. 14

3.8

inet_io_info ................................................................
.............................................................................................
............................................................. 15

3.9

inet_io_error................................
inet_io_error................................................................
............................................................................................
............................................................ 17

3.10

inet_io_blkf ................................................................
.............................................................................................
............................................................. 18

3.11 inet_io_adstart................................
inet_io_adstart ................................................................
..........................................................................................
.......................................................... 19
3.12 inet_io_adread ................................................................
..........................................................................................
.......................................................... 20
3.13 inet_io_adfile ................................................................
............................................................................................
............................................................ 22
3.14 inet_io_pre................................
inet_io_pre ................................................................
................................................................................................
................................................................ 23
3.15 inet_io_pre2 ................................................................
..............................................................................................
.............................................................. 24
・サブルーチン実行基本フロー................................
・サブルーチン実行基本フロー ................................................................
............................................................................
............................................ 25

第４章 DASmini アーギュメント説明................................
アーギュメント説明 ...........................................................
........................................................... 26
4-1 mode................................
mode................................................................
................................................................................................
...........................................................................
........................................... 27
4-2 stat ................................................................
................................................................................................
.............................................................................
............................................. 28
4-3 dmatime ................................................................
................................................................................................
.....................................................................
..................................... 28
4-4 attn（未使用）
attn（未使用） ................................................................
...........................................................................................
........................................................... 28
4-5 gain（未使用）gain（未使用） ................................................................
...........................................................................................
........................................................... 28
4-6 trgslp................................
trgslp ................................................................
................................................................................................
..........................................................................
.......................................... 29
4-7 clkmode ................................................................
................................................................................................
......................................................................
...................................... 29
4-8 clock ................................................................
................................................................................................
...........................................................................
........................................... 29
4-9 frame1 ................................................................
................................................................................................
........................................................................
........................................ 30
4-10 frame2 ................................................................
................................................................................................
........................................................................
........................................ 30
4-11 frame3................................
frame3................................................................
................................................................................................
.........................................................................
......................................... 30
4-12 frame4 ................................................................
................................................................................................
........................................................................
........................................ 30
4-13 frame5 ................................................................
................................................................................................
........................................................................
........................................ 311

4-14 mutelevel ................................................................
................................................................................................
....................................................................
.................................... 31
4-15 trglevel................................
trglevel................................................................
................................................................................................
........................................................................
........................................ 31
4-16 trgsrc ................................................................
................................................................................................
..........................................................................
.......................................... 31
4-17 trgch ................................................................
................................................................................................
...........................................................................
........................................... 31
4-18 channels................................
channels................................................................
................................................................................................
......................................................................
...................................... 32
4-19 chanum【chanum【256】256】 ................................................................
..........................................................................................
.......................................................... 32
4-20 master,ext_parm,dmasize,pre_mem_size
master,ext_parm,dmasize,pre_mem_size ....................................................
.................................................... 32

第５章 DASmini ソフトウェア作成 ..............................................................
.............................................................. 33
5-1 インストール................................
インストール................................................................
...............................................................................................
............................................................... 33
5-2 キット内容 ................................................................
................................................................................................
..................................................................
.................................. 33
5-3 ユーザープログラムへの組み込み ................................................................
................................................................ 34
5-4 サンプルソフト使用方法................................
サンプルソフト使用方法................................................................
..............................................................................
.............................................. 35

2

改訂履歴
・ 平成 15 年 5 月 6 日 初版作成
・ 平成 15 年７月 25 日 改訂
・ 平成 15 年 9 月 17 日 inet_io_blkf（）関数説明を修正
・ 平成 16 年 5 月 24 日 サブルーチン実行基本フローの inet_io_packet()->inet_io_blkf()の順番を inet_io_blkf()->inet_io_packet()に変更
・ 平成 16 年 7 月 21 日

frame1 の設定範囲を訂正
０〜4294967295 −＞ ０〜 268435455 に訂正
frame2 の設定範囲を訂正＜プリトリガ時＞
訂正前 ０ ＜ 設定値 ＜ FIFOサイズ／チャンネル数−100
訂正後 ０ ＜ 設定値 ＜ （FIFOサイズ／２）／チャンネル数−100＜ポストトリガ時＞
訂正前 ０ ＜ 設定値 ＜ １６７７７７２１６
訂正後 ０ ＜ 設定値 ＜ １６７７７２１６3

第１章 概 要
本サブルーチンは、DASmini E500シリーズをＰＣ上で使用するためのプログラムです。
本サブルーチンは、DASmini を使用するための基本操作を行うプログラムから構成されており、AD 入力及びそれらに付随する設定をサブルーチンコールによって行います。

アナログ入力DASmini

ハードウェアインタフェースボード

ネットワーク ドライバ
ＰＣ

DASmini
基本サブルーチン
ソフトウェア
ユーザープログラム

4

第２章 DASmini 関数の説明
・inet_io_open()
DASminiと接続されているデバイスをオープンします。
・inet_io_close()
DASminiと接続されているデバイスをクローズします。
・inet_io_packet()
DASminiに対して動作を指示します。
・inet_io_cond()
DASminiの状態（トリガ等）を取得します。
・inet_io_stat()
DASminiがAD/DA動作中にエラーが発生した時、DASminiのエラーステータ
スを読み取ります。
・inet_io_stop()
DASminiの計測動作を中止させ、コマンド待ちの状態となります。
動作設定内容は保持されます。
・inet_io_init()
DASminiを初期状態に戻します。
動作設定内容は無効となり、新たに動作指示を行う必要があります。
・inet_io_info()
DASminiのインフォメーションを得ます。
・inet_io_error()
サブルーチン呼び出しでエラーが発生した場合、エラー内容を返します。
・inet_io_blkf()
データ転送のブロックサイズを設定します。
・inet_io_adstart()
DASminiに対してAD（入力）動作を開始させます。
・inet_io_adread()
DASminiからのADデータをメモリ上に読み込みます。
・inet_io_adfile()
DASminiからのADデータをファイルに書き込みます。

5

・inet_io_pre()プリトリガが動作を行なった時、計測チャンネル数に対してのトリガ以前何
データが無効データかホストに知らせます。
・inet_io_pre2()
プリトリガが動作を行なった時、１チャンネルに対してのトリガ以前何デー
タが無効データか、及びトリガ位置のずれデータ数をホストに知らせます。

6

第３章 DASmini 関数の使用方法
関数の使用方法・コントロールブロック
DASminiを制御するための環境エリアとして本関数が使用する構造体をコントロー
ルブロックと呼びます。コントロールブロックはDASmini一台に対し、ひとつのコン
トロールブロックが必要になります。あらかじめ、ユーザーは構造体をstatic変数として定義する必要があります。このコントロールブロックに対するユーザーの書き込みは一切不要です。

・DASminiアーギュメント
DASminiに対して動作を指示する構造体でinet_io_packet()関数等で使用します。
内容は第４章で説明します。
コントロールブロック及びDASminiアーギュメントは、pci_sad.hファイルにその他の定義と共に納められています。ユーザーは、本関数を使用する場合pci_sad.hファイ
ルをインクルードして使用します。

7

3.1

inet_io_open
機能：DASminiと接続されているデバイスをオープンします。
他の関数は、本関数呼び出し後動作可能になります。
形式：
int inet_io_open(cblock, dasarg, ip_address);
CBLK *cblock;
PCISAD_ARG *dasarg;
char *ip_address;
引数：
cblockコントロールブロックのポインタ

dasarg

DASminiアーギュメントのポインタ

ip_address

Host NameかIP ADDRESSを直接指定します。
キャラクタのポインタ

戻り値：
0

正常終了

-1

異常終了

8

3.2

inet_io_close
機能：DASminiと接続されているデバイスをクローズします。
形式：
int inet_io_close(cblock);
CBLK *cblock;
引数：
cblockコントロールブロックのポインタ

戻り値：
0

正常終了

-1

異常終了

9

3.3

inet_io_packet
機能：DASminiに対して動作を指示します。設定内容に関しては、第４章のDAS
miniアーギュメント説明を参照願います。
形式：
int inet_io_packet(cblock, dasarg);
CBLK *cblock;
PCISAD_ARG *dasarg;
引数：
cblockコントロールブロックのポインタ

dasarg

DASminiアーギュメントのポインタ

戻り値：
0
-1
-2
-4
-5
-6
-7,-8

正常終了
modeの設定エラー
clockの設定エラー
clkmodeの設定エラー
channelsの設定エラー
chanum[256]の設定エラー
パケットコマンドエラー

10

3.4

inet_io_cond
機能： DASminiの状態を取得します。
このステータスはいつでも読み出すことが出来るため、ステータス情報の正当性は、inet_io_adstart()関数の呼び出し後、AD動作が完了するまでの期
間となります。
形式：
int inet_io_cond(cblock,data);

CBLK
int*cblock;*data;

cblockdata

コントロールブロックのポインタ
ステータスを格納する変数のポインタ
DASminiの状態を返します。各ビット毎に意味を持ちます。

引数：31~16 15 14 13 12** * * *

11
Ｎ
Ｅ
Ｍ

10
*

9
*

8
*

7
E
N

6 5
* T
R
G

4
*

3 ~0
*

＊ 印のビットは不定データとなります。
Bit11: NEM
DASminiのFifoが空でない時に １ となります。
Bit7: EN
DASminiが計測中に １ となり、計測終了すると
ます。

０ となり

Bit5: TRG
計測スタート時に ０ クリアされ、トリガを使用するモードの時に、トリガを受信すると １ となります。
リトリガモードの場合は、１回目のトリガで １ となりますので、２回目以降のトリガのステータスとしては使用できません。
２回目以降のトリガの判断は、NEMビットを使用し、１フレーム分のデータを読み込んでも、NEMビットが １ の場合は次のトリガを受信して、データが格納されたと判断します。
戻り値：
0
-1

正常終了
異常終了

11

3.5

inet_io_stat
機能：DASminiに動作エラーが発生した時のステータスを取得します。
データ転送関数inet_io_adread()などの制御関数でエラーが発生した場合、
inet_io_stat()でエラーの詳細を突き止めます。
尚、一度通知したエラーは通知したときにクリアされます。

形式：
int inet_io_stat(cblock, dasarg);
CBLK *cblock;
PCISAD_ARG *dasarg;
引数：
cblockコントロールブロックのポインタ

dasargdasminiアーギュメントのポインタ

戻り値：
0
正常終了
-1
異常終了
8000（HEX） SDS_PCI_FIFO_OVERFLOW
8001（HEX） SDS_PCI_OVER_SAMPLING
8002（HEX） SDS_PCI_ADDA_ABORT
8003（HEX） SDS_PCI_TIMEOUT

12

3.6

inet_io_stop
機能：DASminiの計測を強制終了させます。設定されたパラメータは保持されますので、inet_io_packet()にて再度パラメータを設定する必要はありません。
但し、DASmini内のメモリー内に取り込まれているデータは消去されます。
また、この関数を実行する時はinet_io_blkf関数で指定した
形式：
int inet_io_stop(cblock, dasarg);
CBLK *cblock;
PCISAD_ARG *dasarg;
引数：
cblockコントロールブロック

dasarg

DASmini

戻り値：
0

正常終了

-1

異常終了

アーギュメント13

3.7

inet_io_init
機能：DASminiを初期状態に戻し、設定されているパラメータは消去されます。
計測中は、強制終了しDASmini内のメモリー内に取り込まれているデータは消去されます。

形式：
int inet_io_init(cblock);
CBLK *cblock;

引数：
cblockコントロールブロックのポインタ

戻り値：
0

正常終了

-1

異常終了

14

3.8

inet_io_info
機能：DASminiの内部情報を得ます。
形式：
int inet_io_info(cblock, statptr, size);
CBLK *cblock;
PCISAD_INFO *statptr;
int size
引数：
cblockコントロールブロックのポインタ

statptr

情報データのポインタ

size

読み込む情報量 (word))
通常はboard_idまでが有効ですので、９を設定してください。

戻り値：
0

正常終了

-1

異常終了

PCISAD_INFO {int
unsigned shortunsigned int
unsigned int
unsigned int
unsigned shortunsigned short}fifo;
fifo_wide;
input_channel;
output_channel;board_id;
module_input;
module_output;

1）） fifoDASminiに実装されているFIFOのワードサイズが入ります。。
標準は３３５５４４３２
2）） fifo_wide
DASminiに実装されているFIFOのビット長が入ります。
現在は固定長の１６が入っています。

15

3）） input_channel
DASminiの最大ADチャネル数が入ります。
標準は １６4）） output_channel
DASminiの最大DAチャネル数が入ります。
標準は ０5）） board_id
常に ０
6）） module_input
未使用（拡張用）
7）） module_output
未使用（拡張用）

163.9

inet_io_error
機能：サブルーチン呼び出しでエラーが発生した場合エラー内容を文字列で返します。
形式：
char *inet_io_error(cblock);
CBLK *cblock;
引数：
cblockコントロールブロックのポインタ

戻り値：
文字列へのポインタ

17

3.10

inet_io_blkf
機能： １チャンネルに対する1回のinet_io_adread()のデータの転送数 （ブロック数）
を指定します。inet_io_adstart()の前に、1度だけ指定してください。データ転送中に変更した場合は、保持されますが、次のinet_io_adstart()から有効となります。
形式：
int inet_io_blkf(cblock, size)
CBLK *cblock;int size;
引数：
cblocksize

コントロールブロックのポインタ
１チャンネルに対しての、１回のブロック（データ転送）
サイズを指定します。単位はワードです。
設定範囲 ： １〜DASminiﾒﾓﾘｰｻｲｽﾞ／２／計測ﾁｬﾝﾈﾙ数
標準： DASminiﾒﾓﾘｰｻｲｽﾞ = 33554432（32MW）
オプション： DASminiﾒﾓﾘｰｻｲｽﾞ = 67108864（64MW）
設定制限 ： ﾄﾗﾝｼﾞｪﾝﾄ計測（AD終了後、データを取り込む）
で、計測を行う場合は、size×計測ﾁｬﾝﾈﾙ数が８の倍数である必要があります。

戻り値：
0

正常終了

-1

異常終了

補足： DASmini内部には、ハードウェアのメモリー及びファームウェアの中間バッファがあります。転送効率を上げるため、ファームウェアはホストからのデータ転送要求がなくても、データの先読みを行います。Sizeの設定はこの時の、データの先読みデータ量の指定も兼ねております。
よってAD動作の場合、size×計測チャンネル数指定とinet_io_adread()の読み込み数（count）が一致しない場合例１の様な転送となります。
例１ ｻﾝﾌﾟﾙｸﾛｯｸ=１Hz、size=2、計測ﾁｬﾝﾈﾙ数=10、count=10
ﾁｬﾝﾈﾙに対して２データずつ読み込みを行うため、
inet_io_adread（）を連続に行った場合に、戻り時間が約２秒、１秒
以下、約２秒、１秒以下のくり返しとなる。
例２ ｻﾝﾌﾟﾙｸﾛｯｸ=１Hz、size=1、計測ﾁｬﾝﾈﾙ数=10、count=10
ﾁｬﾝﾈﾙに対して１データずつ読み込みを行うため、
inet_io_adread（）の戻り時間が約１秒のくり返しとなる。

18

3.11

inet_io_adstart
機能：DASminiのAD（入力）動作（計測）を開始させます。
形式：
int inet_io_adstart(cblock);
CBLK *cblock;
引数：
cblockコントロールブロック

戻り値：
0

正常終了

-1

異常終了

19

3.12

inet_io_adread
機能：DASminiからのADデータをメモリ上に読み込みます。
形式：
int inet_io_adread(cblock,buffer,count);
CBLK *cblock;short *buffer;int count;
引数：
cblockコントロールブロックのポインタ

buffer

ADデータを格納するバッファのポインタ

count

読み込むADデータ（１６ビットデータ）数
基本的には、データ転送の効率を上げるために、下記の設定にしてください。
inet_io_blkf()で設定したsize×計測チャンネル数
ただし、データ転送の効率の問題ですので、必ず一致させる
必要はありません。途中及び最後等に上記と異なるサイズで転送を行っても問題ありません。

戻り値：
0

正常終了

0以外

異常終了

詳細：この関数の第 3 パラメータ count は一回に buffer に読み込むデータ数を設定します。
設定する値として 0 以外の値で blkf に関係なく自由な値が設定できます。
ただしこの関数を一回以上実行した時の count の合計数は、総データ量（frame1×channels）と一致させて下さい。
例えば総データ量が 4096 の場合、count=1000 で 4 回実行して最後にcount=96 実行して終了します。
実際には DASmini とのデータ転送は blkf に合わせて内部でキューイング
して行っています。
例えば総データ量が 4096(2ch,frame1=2048)で blkf=1000 の場合
DASmini から 2000 データ Read
inet_io_adread(,,1000)
inet_io_adread(,,1000)
20

DASmini から 2000 データ Read
inet_io_adread(,,1000)
inet_io_adread(,,1000)
DASmini から 96 データ Read
inet_io_adread(,,96)という手順でデータ転送を行います。
尚 frame1=0 の場合は最後の DASmini からの Read は 2000 データ
Read して inet_io_adread(,,96)で 96 データ buffer に渡します。

21

3.13

inet_io_adfile
機能：DASminiからADデータをファイルに書き込みます。
形式：
int inet_io_adfile(cblock, buffer,size, file_name, frame);
CBLK *cblock;short *buffer;
int size;char *file_name;unsigned int frame;
引数：
cblockコントロールブロックのポインタ

buffer

テンポラリバッファのポインタ

size

テンポラリバッファのサイズ（word）

file_name

書き込むファイル名（キャラクタのポインタ）

frame

トータル書き込み数（word）

戻り値：
0

正常終了

-1

異常終了

22

3.14

inet_io_pre機能：
プリトリガAD動作完了後、トリガ以前の無効データ数を得ます。
predataは設定されたプリトリガサイズに対し、トータルチャンネルにて無効であったデータ数を返します。プリトリガデータが全て有効であれば0を返します。プリトリガモード計測は、プリトリガサイズに満たないでトリガが入った場合、不足分のデータを無効データとします。また、データ転送は無効データも送られてきます。DASminiはinet_io_pre2（）関数を使用して
ください。
形式：
int inet_io_pre(cblock,predata);
CBLK
int

*cblock;*predata;

cblockpredata

コントロールブロックのポインタ
無効データ数を格納する変数のポインタ

引数：

戻り値：
0

正常終了

-1

異常終了

23

3.15

inet_io_pre2

機能：
プリトリガAD動作完了後、１チャンネルに対する、トリガ以前の無効デー
タ数とトリガ位置のずれデータ数を得ます。
predataは設定されたプリトリガサイズに対し、無効であったデータ数を返します。プリトリガデータが全て有効であれば0を返します。
形式：
int inet_io_pre(cblock,predata,adjust);
CBLK
int
int

*cblock;*predata;*adjust;cblockpredataadjustコントロールブロックのポインタ
無効データ数を格納する変数のポインタ
ずれデータ数を格納する変数のポインタ

引数：

戻り値：
0

正常終了

-1

異常終了

DASmini のプリトリガーAD 変換の動作はパケットで指定された presize に満たない場合でも、トリガーを検出すると有効と見なします。inet_io_adread()関数では
presize 前からのデータを返します。この無効のデータ数を知るための情報です。
predataは設定されたプリトリガサイズに対し、無効であったデータ数（１チャンネル分）を返します。プリトリガデータが全て有効であれば0を返します。
また、書き込みタイミングとサンプリング周波数の関係でトリガポイントがずれる場合があります。adjustはずれたデータ量（１チャンネル分）を示します。
0=ずれ無し。n=n データ分トリガー位置が前方にずれた。presize が n 分少なくなった事を示します。よって、実際のトリガポイントのデータは設定値のポイント（presize）より、adjust 分前にある事となります。

24

・サブルーチン実行基本フロー＜内容＞
inet_io_open（）

ﾃﾞﾊﾞｲｽのｵｰﾌﾟﾝ

inet_io_init()

DASmini ｲﾆｼｬﾗｲｽﾞ

DASmini_arg の各メンバーに計測条件設定

計測条件設定準備

inet_io_blkf()

ﾃﾞｰﾀ転送ﾌﾞﾛｯｸｻｲｽﾞ設定

inet_io_packet()

計測条件設定inet_io_adstart()

AD 動作起動NO

ﾄﾘｶﾞを使用する計測ﾓｰﾄﾞ
YES
inet_io_cond()

inet_io_adread()

トリガ受信の確認

inet_io_adfile()

AD ﾃﾞｰﾀの読み込み

NO
プリトリガモード計測
YES
inet_io_pre2()

不定データの確認

inet_io_stat()

ｴﾗｰの確認

inet_io_close()

ﾃﾞﾊﾞｲｽのｸﾛｰｽﾞ

25

第４章 DASmini アーギュメント説明
DASminiを動作させるには、inet_io_packet関数を使用して行います。
inet_io_packet関数の第２パラメータがDASminiの動作内容になっています。

struct PCISAD16_arg{
unsigned short mode;
unsigned short stat;
unsigned short dastime;
unsigned short attn;
unsigned short gain;
unsigned short trgslp;
unsigned short clkmode;
int
fifo;
float
clock;
int
frame1;int
frame2;int
frame3;int
frame4;int
frame5;
unsigned int
mutelevel;
unsigned short trglevel;
unsigned short trgsrc;
unsigned short trgch;
unsigned short channels;
unsigned short chanum[256];
unsigned short master;
unsigned short ext_parm;int
dmasize;int
pre_mem_size;}PCISAD_ARG；

26

4-1

mode
DASminiに対する動作を指定します。
値

Define名
ADNORM

動作（DEC）
0
ADノントリガスタートモード

ADTRG

1

ADノーマルトリガスタートモード

ADPRE

2

ADプリトリガスタートモード

ADRET

3

ADノーマルリトリガスタートモード

ADPOST

10

ADポストトリガスタートモード

ADREPOST11

ADポストリトリガスタートモード

27

4-2

stat
ステータスコマンドを実行させた時にDASminiから送られたステータスが格納されるメンバーです。

4-3

値
（HEX）
0

ステータス

8000
8001
8002
8003

SDS_PCI_FIFO_OVERFLOW

正常
SDS_PCI_OVER_SAMPLING
SDS_PCI_ADDA_ABORTSDS_PCI_TIMEOUT

dmatimeinet_io_adread,inet_io_dawrite,inet_io_adfile,inet_io_dafile時の転送タイム
アウト時間を設定します。
inet_io_blkfで設定する転送数に合わせてください。
例：blkf=1000000, Sampling Clock=10000Hzの場合
blkf / Sampling Clock = 100秒以上の値を設定。

4-4

値

動作

0

基本サブルーチンのデフォルト値になります。

1〜n

秒単位になります。

attn（未使用）（未使用）
常に０を設定してください。（不定でも問題なし）

4-5

gain（未使用）（未使用）
常に０を設定してください。（不定でも問題なし）

28

4-6

trgslp

各トリガモードを選択した場合有効になりトリガのスロープ指示を行い
ます。

4-7

値

動作

0以外

立ち上がりでトリガ

0

立ち下がりでトリガ

clkmodeサンプリングクロックのソースを指定します。

4-8

Define名

値

動作

INTCLK1

内部クロックを使用

EXTCLK

2

外部からクロックを入力する

EXTDIV3

外部からクロックを分周する

clock

内部クロック及び外部分周を指定した場合有効で、内部クロックを指定した場合は周波数をHz単位で指定し、外部分周を指定した場合は分周値を設定します。また、内部クロックを指定した場合は、実際にサンプリング
周波数として設定された値が戻されます。サンプリングクロックは内部
クロックベース（8.000MHz,8.192MHz）を分周して作成します。分周の余りがでる場合は近似値が自動に設定されますので、その設定した周波数値を返します。
＜内部クロック＞
設定範囲
０．５Hz〜最大サンプリング周波数＜外部分周＞
設定範囲
２〜６５５３６29

4-9

frame1
AD又はDAする１チャンネルに対するデータ量を指定します。単位はワードです。
但し、 ０ を設定すると、無限取り込みモードとなります。また、プリトリガ
モードの場合はframe2の値も含んで設定してください。
設定範囲
０〜２６８４３５４５５

4-10 frame2
プリトリガ動作もしくはポストトリガ動作を指定した場合有効です。
＜プリトリガの時＞
プリトリガ動作の時は１チャンネルに対する、トリガ以前のデータ量を指定します。単位はワードです。
設定範囲
０ ＜ 設定値 ＜ （FIFOサイズ／２）／チャンネル数−100
注）FIFOサイズ全てはプリトリガサイズに指定できません。
トリガ受信時のDASmini内部セットアップ時間が必要ですの
で、チャンネルあたり、100データ使用できないと考えてください。
１チャンネルに対するトリガ以後の計測データ数 ＝ frame1 − frame2の関係になります。
＜ポストトリガの時＞
ポストトリガ動作の時は遅延サンプルクロック数を指定します。
遅延時間はサンプルクロックの指定により、変ります。
１ の場合１サンプル遅延
設定範囲
０ ＜ 設定値 ＜ １６７７７２１６

4-11 frame3
未使用
常に １ を設定してください。
4-12 frame4
未使用
常に １ を設定してください。

30

4-13 frame5
modeがADRETRG及びADREPOSTのときトリガ回数を指定します。
設定範囲 １〜６５５３６

4-14 mutelevel
未使用。
4-15 trglevel
トリガモードを指定した場合有効でトリガがかかる電圧を指定します。
設定範囲
０〜１２７（DEC）
０〜７F（HEX）
値

電圧

±５V

±１０V

HEX
0x7F
0x7E

DEC
127
126

+FS(63/64 )v+FS(62/64 )v+4.92V
+4.84V

+9.84V
+9.68V

0x41
0x40
0x3F

65
64
63

+FS(1/64)v
0v-FS(1/64)v+0.08V
0V-0.08V+0.16V
0V-0.16V

0x01
0x00

１
0

-FS(63/64)v-FS(64/64)v-4.92V-5V-9.84V-10V＊）1LSB=2FS/128

入力電圧±５Vの時は 0.078125V
入力電圧±１０Vの時は 0.15625V

4-16 trgsrc
トリガを使用するモードを指定した場合有功となり、トリガのソースを指定
します。
値
動作
0

AD入力チャンネルトリガ

1

外部トリガ端子4-17 trgch
trgsrc にて、AD 入力チャンネルトリガを指定した場合有効となり、トリガとするチャンネル番号を指定します。
値
1〜16

動作
AD入力チャンネル番号31

4-18 channels
AD又はDAするチャンネル数を指定します。
範囲

1〜256

4-19 chanum【【256】】ランダムチャンネルの指定を行います。AD 又は DA するチャンネル番号を指定します｡指定した順番でデータ転送が行われます。
範囲 １〜２５６
chanum[０]chanum[１]

1 番目のチャンネル番号
２番目のチャンネル番号

chanum[255]256 番目のチャンネル番号4-20 master,ext_parm,dmasize,pre_mem_size
未使用
DASmini−E シリーズでは、このメンバーは使用しません。

32

第５章 DASmini ソフトウェア作成
5-1 インストール
提供メディアからキットを適当なディレクトリにコピーしてください。
UNIX (LINUX)の場合
提供メディアからキットを適当なディレクトリにコピーしてください。
FloppyDiskの場合のコピー方法
mount /mnt/floppy
tar xvf /mnt/floopy/kit.tar
Windowsの場合
適当なディレクトリ（例えばD:¥das5x0）を作成して提供メディアから¥das5x0
以下のディレクトリを作成したディレクトリにコピーしてください。
5-2 キット内容
キットにはDASminiを動作させるための基本サブルーチン及びサンプル
ソフトが入っています。
ディレクトリ構成は以下のようになっています。
kit/inetlib/ sample/
また各ディレクトリには以下のファイルがあります。
inetlib/ ・・・基本サブルーチンディレクトリ
inet_sad_lib.c ・・・基本サブルーチンソースファイル
pci_sad.h・・・基本サブルーチンインクルードファイル
pci_sad_reg.h ・・・基本サブルーチンインクルードファイル
sadtp.h・・・ユーザープログラムインクルードファイル
sample/ ・・・サンプルソフトディレクトリ
Makefile
・・・UNIX(LINUIX)用サンプルソフトメイクファイル
Mk.cmd・・・Windows用サンプルソフトメイクファイル
apl90.c・・・サンプルソフトソースファイル
sad・・・サンプルソフト実行ファイル33

5-3 ユーザープログラムへの組み込み
DASmini-ModelEシリーズのアプリケーションを作成する場合はインクルード
ファイル"pci_sad.h"をユーザープログラムへ追加してください。
そしてリンク時に基本サブルーチン"inet_sad_lib.c"をリンクしてください。
UNIX(LINUX)の場合はコンパイルオプションは特にありません。サンプルのMakefileを参照してください。
Windowsの場合はWINNTをdefineしてwsock32.libとuser32.libをリンクしてください。サンプルのmk.cmdを参照してください。

34

5-4 サンプルソフト使用方法
基本サブルーチンを使用したサンプルプログラムの使用方法を説明します。
ファイル名はdasです。
構文

das mode[,parameter_file][,data_file] [hostname]modeはDASminiに対する動作の指定です。
INIT
DASminiにイニシャライズコマンドを送ります。
STOP
DASminiにストップコマンドを送ります。
STATus DASminiのステータスを表示します。
INFO
DASminiの内部情報を表示します。
COND
DASminiの動作状態を表示します。
ADNorm ADノントリガスタートモードを起動します。
ADTrg
ADトリガスタートモードを起動します。
ADRET
ADリトリガスタートモードを起動します。
ADPRe
ADプリトリガスタートモードを起動します。
ADPOst ADポストトリガスタートモードを起動します。
ADREPost ADリポストトリガスタートモードを起動します。

小文字の部分は省略可能です。また、入力は大文字、小文字いずれも対応します。
parameter_fileはサンプリング周波数やデータ量などの情報を含んだファイルです。ファイルがすでに存在している場合はそのファイルを読み込み、存在しない場合はパラメータ入力を促しファイルを作成します。
parameter_fileを指定しない場合は"def.par"というファイルが作成されます。
data_fileはADする場合ADデータを格納するファイルになり、DAをする
場合転送するDAデータのファイルになります。
data_fileを指定しなかった場合はADの場合バッファに読み込まれるだけです。
DAの場合12bitのインクリメントパターンを出力します。
HostnameはDASminiのホスト名もしくはIPアドレスを指定します。

35

パラメータファイルの作成指定したパラメータがない場合パラメータファイルを作成する為に入力を促してきます｡
次に各入力について述べます｡① AD 及び DA 共に出力されます｡[1] Use internal clock[2] Use external clock[3] Use prescale external clock
Select no.
計測するクロックソースを内部,外部又はプリスケール（分周）外部クロックにするか指定します｡
内部の場合 1,外部の場合 2,プリスケール（分周）外部クロックの場合 3 を入力します｡②-1 内部クロックを指定した場合出力されます｡[1] Hzunit[2] KHzunit[3] uSEC
unit
Select no.
計測するクロックの周波数をどの単位で入力するか指定します｡Hz で入力したい場合 1,KHz で入力したい場合 2,μSEC で入力したい場合 3
Input(Hz/KHz/μsec)rateと出力されたら計測したい値を入力してリターンキーを押します｡②-2 プリスケール外部クロックを指定した場合､出力されます｡
Input prescale counter
プリスケール値（分周値）を入力します｡③ トリガを使用するモードを指定した場合出力されます｡
トリガソースを指定します。
[1] Use external trigger[2] Use channel trigger
Select no.
TRIG IN 端子を使用する場合は１、入力チャンネルを使用する場合は２を入力します。但し、ＡＤモジュールがない場合は必ず１を設定してください。
③-1 ③にて２（チャンネルトリガ）を指定した場合に出力されます。
Select channel no.[1-1024]
トリガに使用するＡＤチャンネル番号を指定します。
（指定ＡＤチャンネルは他のチャンネルと同様に計測にも使用できます）

36

④ トリガモードを指定した場合出力されます｡[1]Use positive edge trigger[2]Use negative edge trigger
Select no.
トリガの立ち上がり,立ち下がりの指定をします｡立ち上がりでトリガする
場合 1、 立ち下がりでトリガする場合 2 を設定します。
次に、トリガレベルを聞いきますので、０~１２７の値を設定します。
（下記の表を参照）
Set trigger level.[0-127]
設定値

電圧

±５V

±１０V

DEC
127
126
｜
65
64
63
｜
１
0

+FS(63/64 )v+FS(62/64 )v｜+FS(1/64)v
0v-FS(1/64)v｜-FS(63/64)v-FS(64/64)v+4.92V
+4.84V｜+0.08V
0V-0.08V
｜-4.92V-5V+9.84V
+9.68V｜+0.16V
0V-0.16V
｜-9.84V-10V＊）1LSB=2FS/128

入力電圧±５Vの時は 0.078125V
入力電圧±１０Vの時は 0.15625V⑤-1 AD リポストトリガモードを指定した場合出力されます｡
Input posttrg size
トリガから、遅延するクロック数を設定します。サンプリングクロック設定に関連します。
Input re-posttrg count
くり返し回数を設定します。
⑤-2 AD ポストトリガモードを指定した場合出力されます｡
Input posttrg size
トリガから、遅延するクロック数を設定します。サンプリングクロック設定に関連します。

37

⑤-3 AD プリトリガモードを指定した場合出力されます｡
Input pretrg size
トリガ以前にほしい１チャンネルに対するデータ量を指定します｡⑤-4 AD リトリガモードを指定した場合出力されます｡
Input re-trg count
くり返し回数を設定します。
⑤-５ DA モードを指定した場合出力されます｡
Input auto start size
DA を起動する前に転送する１チャンネルに対するデータ量を指定します｡⑥ AD 及び DA 共に出力されます｡
Input frame size
AD 及び DA する１チャンネルに対するデータ量を指定します｡⑦ AD 及び DA 共に出力されます｡
Normal Randum channel NO. ？ Yes=0／NO=1
ランダムチャンネル設定を標準（１チャンネルから順番）で自動設定するか、
１チャンネルずる手動に入力するかを選択します。標準の場合は０、手動設定の場合は１手動設定を選択した場合は、チャンネル数分、１番目から順に設定チャンネル番
号を聞いてきます。
Input ＊th channel number

以上の入力を終了すると、計測を開始します。

38