汎用IO通信テスト入力タイミングスイープ
テンプレート説明
2信号間のタイミングオフセットを段階的にスイープし、タイミング差に対するテスト対象機器の応答を確認します。
-
1
2信号の同時出力
信号Aと信号B(IOまたはUART)を同時に出力します。信号Bはオフセット分だけ遅延させ、テスト対象機器に2信号の時間差を与えます。 -
2
応答の照合
①の出力完了後、GPIの現在レベルまたはUARTレスポンスを取得し、パターン定義の期待値と照合します。 -
3
全パターン実行とマージン特定
①②をオフセット違いの全パターンで繰り返し、最後にPASS/FAIL件数を集計して許容できるタイミングマージンを把握します。
・スロット1:DIOユニット(TC-IFDIO) ※1
・GPI/GPO:RIOユニット(TC-IFRIO)も利用できます。※2 ※3
・UART通信:DIFユニット(TC-IFDIF)またはCOMユニット(TC-IFCOM)でも利用できます。※2
※1 ユニットを別スロットへ変更する場合、ユニット設定のスロット割り付け変更を行うことで、設定値などを引き継ぎ可能です。
※2 スロットにユニットを取り付け・配線し、スクリプトのスロット設定を変更してください。
※3 RIOユニットは周期を100µs以上で設定ください。
接続図
TC-3000のGPO1(信号A)とGPO2(信号B)を同時に出力し、GPI1でテスト対象機器の応答を受け取ります。
※ 図はIO_IOモードの構成例です。
※必ずGNDは接続してください。
タイミングイメージ
信号Aを基準として、信号Bのオフセット Δt をステップごとに増やしていく一連の波形を示します。
SWEEP_MODE="IO_IO"、PULSE_ON_MS=0.5、PERIOD_MS=10、3ステップ実行の例。
設定変数
全設定変数を記載しています。実機の仕様に合わせて変更してください。
|
変数名 |
内容 |
初期値 |
||||||||
|
|
GPO/GPIで使用するユニットのスロット番号。使用するユニットに応じて変更。 |
|
||||||||
|
|
UART送受信で使用するユニットのスロット番号。使用するユニットに応じて変更。 |
|
||||||||
|
|
信号A出力チャネル(基準タイミング) |
|
||||||||
|
|
信号B出力チャネル(オフセット分遅延して出力) |
|
||||||||
|
|
IO応答入力チャネル |
|
||||||||
|
|
UARTチャネル番号(IO_UART出力/UART_RESP送受信に使用) |
|
||||||||
|
|
信号A/信号Bのパルス幅 (ms) |
|
||||||||
|
|
1パターンあたりの出力時間 (ms)。オフセット最大値+パルス幅より大きく設定する必要があります。 |
|
||||||||
|
|
UART受信タイムアウト (ms) |
|
||||||||
|
|
次のパターンを実行する前の待機時間 (ms)。 |
|
||||||||
|
|
出力モードの選択。
|
|
||||||||
|
|
応答確認方法の選択。
|
|
||||||||
|
|
IO_UARTモードで信号Bとして送信するUARTコマンド |
|
||||||||
|
|
UART_RESPモードで各パターン後にテスト対象機器へ送信する確認コマンド |
|
||||||||
|
|
SWEEP_MODEごとのタイミングスイープパターン定義テーブル。各エントリに下記フィールドを持ちます。
|
サンプル有 |
判定条件
各オフセットパターン実行後に取得した値が以下の条件を満たした場合にPASSと判定します。
|
判定項目 |
合格条件 |
|
GPI現在レベル(GPI_LEVEL時) |
出力完了後に読み取ったGPI値が、パターン定義のGPI期待値と一致すること |
|
UARTレスポンス(UART_RESP時) |
確認コマンドに対する受信バイト列が、パターン定義のUARTレスポンス期待値と一致すること |
|
UART受信(UART_RESP時) |
UART受信タイムアウト以内にレスポンスを受信できること |
テーブル設定例
テンプレート初期値のスイープパターン定義テーブルの記述例を示します。実機のタイミング仕様に合わせてオフセット値と期待値を編集してください。
例1:IO_IO モード(patterns_io_io)
2チャネルGPOをオフセット付きで同時出力し、GPI応答レベルを確認するパターン例です。オフセットを段階的に増加させ、マージン境界を特定します。
local patterns_io_io = {
-- offset_ms io_expected uart_expected
{ offset_ms = 0.000, io_expected = 1, uart_expected = "\x04\x80\x00\x00" },
{ offset_ms = 0.050, io_expected = 1, uart_expected = "\x04\x80\x00\x00" },
{ offset_ms = 0.100, io_expected = 1, uart_expected = "\x04\x80\x00\x00" },
{ offset_ms = 0.200, io_expected = 1, uart_expected = "\x04\x80\x00\x00" },
{ offset_ms = 0.300, io_expected = 0, uart_expected = "\x04\x80\x01\x00" }, -- マージン境界(NG想定)
{ offset_ms = 0.500, io_expected = 0, uart_expected = "\x04\x80\x01\x00" },
}
例2:IO_UART モード(patterns_io_uart)
GPOとUARTをオフセット付きで同時出力するパターン例です。
local patterns_io_uart = {
-- offset_ms io_expected uart_expected
{ offset_ms = 0.000, io_expected = 1, uart_expected = "\x04\x80\x00\x00" },
{ offset_ms = 0.100, io_expected = 1, uart_expected = "\x04\x80\x00\x00" },
{ offset_ms = 0.200, io_expected = 0, uart_expected = "\x04\x80\x01\x00" }, -- マージン境界(NG想定)
{ offset_ms = 0.300, io_expected = 0, uart_expected = "\x04\x80\x01\x00" },
}