2013年01月27日

VB2008シリアル送受信処理速度

VisualBasic2008とUSB・シリアル変換ケーブルを使用して、シリアル送受信の処理速度を検証してみました。

使用したシリアルケーブルは下記の製品です。
FTDI USB・シリアル変換ケーブル(FT232R使用)
http://akizukidenshi.com/catalog/g/gM-05841/


【検証方法】
1: USB・シリアル変換ケーブルのTXD-RXDを接続してシリアルデータをループバックさせる。
2: VBアプリで、RTSをOnして、直ぐにシリアルデータを1バイト送信する。
3: 送信後、シリアル受信データをロープ内でポーリングする。
4: シリアルデータを受信したらRTSをOffする。
5: 上記シーケンス動作中のTXDとRTS端子をオシロスコープで観測する。

【PCスペック】
CPU:Core2Duo 2.53GHz OS:Windows Xp Pro
本検証アプリケーション意外では特に重い処理は動いていない状態です。(CPU負荷5%程度)

【結果】
下記に実測波形を紹介します。
何度か計測しましたが、下記の2つが遅延の最大最小の代表波形です。

波形から、送信開始して実際にデータが送信されるまで、16msec~18msecの遅延があり、受信データが発生してアプリケーションで認識できるまで5msec~15msecの遅延があります。

送受信それぞれ20msec程度の遅延がでることを考慮して仕様を検討すれば良さそうです。

<時間軸5ms/div、電圧軸2V/div  赤ライン送信データ、黄ラインRTS信号>
VB2008シリアル送受信処理速度
送信遅延→18msec、受信遅延→5ms

VB2008シリアル送受信処理速度
送信遅延→16msec、受信遅延→15ms


-------- 参考 --------

【Formデザイン】

VB2008シリアル送受信処理速度

通信速度 38400bps
PortはUSBシリアルケーブルのポート名
その他はシリアルコントロール初期値のまま。

【ソースコード】
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        SerialPort1.Open()

        SerialPort1.RtsEnable = True
        SerialPort1.Write("a")

        Do
        Loop Until SerialPort1.ReadExisting = "a"

        SerialPort1.RtsEnable = False

        SerialPort1.Close()
    End Sub
End Class








同じカテゴリー(Windowsアプリ開発)の記事
ノートPC充電80%制御
ノートPC充電80%制御(2017-10-21 00:33)


上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

削除
VB2008シリアル送受信処理速度
    コメント(0)