• 検索結果がありません。

構造体

ドキュメント内 GPG-4101 (ページ 42-47)

第 4 章 リファレンス 17

4.4 構造体

1.SIO_CONFIG 構造体

ポートの初期化情報を設定する構造体です。

typedef struct {

unsigned long ulMode;

unsigned long ulLine;

unsigned long ulBps;

unsigned long ulParity;

unsigned long ulSbit;

unsigned long ulClen;

unsigned long ulBaseClock;

unsigned long ulSClockSelect;

unsigned long ulRClockSelect;

unsigned long ulClockOut;

unsigned long dwSchar;

unsigned long ulWriteTimeout;

unsigned long ulReadTimeout;

unsigned long ulEofChar;

unsigned long ulEofLength;

unsigned long ulRxEventTrigger;

unsigned long ulTxStartDelay;

unsigned long ulTxTerminateDelay;

unsigned long ulHalfDuplexPeriod;

void* lpCallbackProc;

unsigned long ulUserData;

} SIO_CONFIG, *PSIO_CONFIG;

メンバ 説明

調歩同期/キャラクタ同期を設定します。

識別子 内容

SIO_ASYNC16 調歩同期(X16 モード) SIO_ASYNC1 調歩同期(X1 モード)

SIO_MONOSYNC キャラクタ同期(Mono-Sync) SIO_BISYNC キャラクタ同期(Bi-Sync)

※調歩同期(X1 モード)は外部からクロックを入力して調歩同期通信を行う ものです。(ボーレートファクタ 1 になります)。

一般の調歩同期通信の場合は、SIO_ASYNC16 を指定してください。

キャラクタ同期の場合、同期解放処理を有効にするかどうかも本メンバで設 定します。(調歩同期/キャラクタ同期設定との OR で指定します。)

識別子 内容

SIO_OUTSYNC_DISABLE 同期解放処理を行いません。

SIO_OUTSYNC_ENABLE 同期解放処理を行います。

同期解放条件は特定の 1 文字パターンが何回連続し たかで設定されます。

ulMode

全二重/半二重(2 線式、4 線式)を設定します。

識別子 内容

ulLine

SIO_FULL_DUPLEX 全二重モード

© 2002, 2011 Interface Corporation. All rights reserved.

43

データラインの切り替えは

SioEnableTransmitter 関数により行います。

SIO_HALF_DUPLEX_AUTO1 半二重(自動制御 1)モード

RS-485 半二重通信の送受信ラインの切り替えを 自動的に行います。

半二重(自動制御 2)モード

RS-232C RS 信号を送信データと同期させま す。データ送信前に RS 信号を ON にし、

データ送信後 RS 信号を OFF にします。

SIO_HALF_DUPLEX_AUTO2

RS-485 RS-485 半二重通信の送受信ラインの 切り替えを自動的に行います。また C 信号を送信データと同期させます。デ ータ送信前に C 信号を ON にし、デー タ送信後 C 信号を OFF にします。

RS-485 半二重の場合、2 線式/4 線式の切り替えも本メンバで行います。

(全二重/半二重設定との OR で指定します。)

識別子 内容

SIO_WIRING_4WIRE 4 線式 SIO_WIRING_2WIRE 2 線式

<2 線式半二重>

下記のような接続で、T ラインのみ接続して送受信を行います。

<4 線式半二重>

下記のような接続で、2 線式と違い T ラインと R ラインを分けて半二重通信を行います。

ボーレート(bps)を設定します。

設定可能範囲は下記のとおりです。

調歩同期 4~128000 キャラクタ同期 80~327680 ulBps

パリティを設定します。

ulParity

識別子 内容

T:送信ライン SG:信号グランド R:受信ライン T:送信ライン SG:信号グランド

© 2002, 2011 Interface Corporation. All rights reserved.

44

SIO_NONE_PARITY パリティなし SIO_ODD_PARITY 奇数パリティ SIO_EVEN_PARITY 偶数パリティ ストップビット長を設定します。

識別子 内容

SIO_ONESTOPBIT 1 bit SIO_ONE5STOPBITS 1.5 bit SIO_TWOSTOPBITS 2 bit ulSbit

データ長(bit)を設定します。

設定可能範囲は 5~8 です。

ulClen

ボーレート基準クロックを設定します。

識別子 内容

SIO_CLK_14_7456 14.7456MHz SIO_CLK_9_8304 9.8304MHz SIO_CLK_4_096 4.096MHz SIO_CLK_12_288 12.288MHz ulBaseClock

送信クロックを内部/外部のどちらから入力するか指定します。

識別子 内容

SIO_SCLK_IN 送信クロックを内部にします。

RS-232C 送信クロックを ST2 端子から入力します。

SIO_SCLK_ST2

RS-485 送信クロックを ST 端子から入力します。

SIO_SCLK_RT 送信クロックを RT 端子から入力します。

ulSClockSelect

受信クロックを内部/外部のどちらから入力するか指定します。

識別子 内容

SIO_RCLK_IN 受信クロックを内部にします。

RS-232C 受信クロックを ST2 端子から入力します。

SIO_RCLK_ST2

RS-485 受信クロックを ST 端子から入力します。

SIO_RCLK_RT 受信クロックを RT 端子から入力します。

ulRClockSelect

クロックをコネクタの ST 端子から出力するかどうかの指定もします。

RS-485 半二重の場合のみ有効です。

識別子 内容

SIO_STCLK_NOOUT クロックを ST 端子から出力しません。

SIO_STCLK_OUT クロックを ST 端子から出力します(常時出力)。

SIO_STCLK_OUT_HANDSHAKE クロックを ST 端子から出力します(送信に同 期)

ulClockOut

同期キャラクタを設定します。

ulMode の設定により内容が異なります。

ulMode 内容

SIO_ASYNC16 SIO_ASYNC1

本パラメータは無効です

SIO_MONOSYNC 下位 8bit が同期キャラクタとなります。

SIO_BISYNC 上位 8bit が同期キャラクタ 1、下位 8bit が同期 キャラクタ 2 となります。

dwSchar

© 2002, 2011 Interface Corporation. All rights reserved.

45

予約です。0 を指定してください。

ulReadTimeout

同期解放条件の特定の 1 文字パターンを指定します。

設定可能範囲は 00h~FFh です。

一般的に同期解放パターンはマーク状態(FFh)を指定します。

SioSend 関数で同期解放文字は自動で付加されません。送信データに付加し てください。

ulEofChar

同期解放文字数を指定します。

設定可能範囲は 1~256 です。

例えば文字数を 2 として同期解放文字が連続した場合、2 文字までは受信デ ータとなり、それ以降は同期解放されて同期確立待ちとなり、その間のデー タは受信されません。

また、同期解放文字はデータとして受信されます。

ulEofLength

受信バッファトリガレベルを設定します。単位はバイトです。

受信バッファサイズがトリガレベルに達したとき、イベントが発生します。

ulRxEventTrigger

送信前切り替え時間を指定します。

(ulLine メンバが SIO_HALF_DUPLEX_AUTO1、SIO_HALF_DUPLEX_AUTO2 の場合 のみ有効)

設定範囲は 0 または 10~999[ms]です。

ulTxStartDelay

送信後切り替え時間を指定します。

(ulLine メンバが SIO_HALF_DUPLEX_AUTO1、SIO_HALF_DUPLEX_AUTO2 の場合 のみ有効)

設定範囲は 0 または 10~999[ms]です。

ulTxTerminateDelay

半二重送信処理呼び出し周期を指定します。

下記の値が設定可能です。

識別子 内容

SIO_PERIOD_10ms 10ms SIO_PERIOD_50ms 50ms SIO_PERIOD_100ms 100ms

半二重(自動制御 1、または自動制御 2)通信時、SioSend 関数が呼ばれると、

バッググラウンドで以下の手順を実行します。

下記処理の各フェーズを呼び出す周期を本メンバにより設定します。周期を 短くすることで半二重送信処理が短くなりますが、送信処理の負荷が高くな ります。

ulHalfDuplexPeriod

RS-232C の半二重送信処理 1.RS 信号を ON にします。

2.送信前切り替え時間待ちます。

3.通信コントローラにデータを書き込みます。

4.全データが回線に送出されるまで待ちます。

5.送信後切り替え時間待ちます。

6.RS 信号を OFF にします。

© 2002, 2011 Interface Corporation. All rights reserved.

46

RS-485 の半二重送信処理 1.データラインを送信に切り替えます。

2.自動制御 2 の場合 C 信号を ON にします。

3.送信前切り替え時間待ちます。

4.通信コントローラにデータを書き込みます。

5.全データが回線に送出されるまで待ちます。

6.送信後切り替え時間待ちます。

7.データラインを受信に切り替えます。

8.自動制御 2 の場合 C 信号を OFF にします。

コールバック関数へのポインタを指定します。

lpCallbackProc

ulUserData コールバック関数の第 2 引数に渡されるパラメータ(ユーザデータ)を指定 します。

© 2002, 2011 Interface Corporation. All rights reserved.

47

ドキュメント内 GPG-4101 (ページ 42-47)

関連したドキュメント