メニュー
▼ アクセス(地図)
▼ Windowsアプリ開発 ▼ マイコン開発 ▼ CGI・PHP制作 |
▼ サイトマップ(全投稿記事)
▼ タイトル(画像一覧) ▼ 事業内容 |
お問い合わせメールフォームが開きます。
2013年01月27日
VB2008シリアル送受信処理速度
VisualBasic2008とUSB・シリアル変換ケーブルを使用して、シリアル送受信の処理速度を検証してみました。
使用したシリアルケーブルは下記の製品です。
【検証方法】
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信号>
送信遅延→18msec、受信遅延→5ms
送信遅延→16msec、受信遅延→15ms
-------- 参考 --------
【Formデザイン】
通信速度 38400bps
Portは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信号>
送信遅延→18msec、受信遅延→5ms
送信遅延→16msec、受信遅延→15ms
-------- 参考 --------
【Formデザイン】
通信速度 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 = TrueSerialPort1.Write("a")
DoLoop Until SerialPort1.ReadExisting = "a"
SerialPort1.RtsEnable = False
SerialPort1.Close()End SubEnd Class