RS232シリアルポートの偽造


84

私は、RS232シリアルポートを介して展開マシンに接続する多数のハードウェアセンサーを備えたプロジェクトを開発しています。

しかし...私は物理的なRS232シリアルポートのないマシンで開発していますが、ハードウェアセンサーからの入力を偽造することを目的として、接続してデータを出力できる偽のシリアルポートを作成したいと思います。

偽のシリアルポートを作成してWindowsXPで制御する方法を知っている人はいますか?


2
シリアルポートがインストールされた仮想マシンを試しましたか?
Restuta 2009年

4
私はそれを試していません。コメントではなく完全な回答である必要があるようです:)
BefittingTheorem

1
com0comとComPort SerialEmulatorをWindows764ビットで問題なく使用できました。うまく機能しました。
JWiley 2014年

ここで終わる人のために私はcom0comの簡単な命令を書いたここで
FOAD

回答:


69

Windows用に開発している場合、com0comプロジェクトはあなたが探しているものかもしれません。

ヌルモデム接続を介してリンクされた仮想COMポートのペアを提供します。次に、お気に入りのターミナルアプリケーションなどを使用して、一方のCOMポートにデータを送信し、もう一方のCOMポートからデータを受信できます。

編集:

以下のようトーマスが指摘したプロジェクトは、特定のWindowsバージョン(例えばWindows 7のx64の)上で特に問題となる署名されたドライバーの欠けています。

署名されたドライバーが含まれている非公式のcom0comバージョンがいくつかあります。最近のバージョン(3.0.0.0)の1つは、たとえばここからダウンロードできます


4
が、com0comプロジェクトが優れたオープンソースプロジェクトである、それはデジタル署名せずにデバイスドライバをインストールする必要がありますように、デジタル署名されたドライバをチェックする一部のWindowsシステムでは、仮想シリアルポートでは動作しません。人々に知ってもらいたいだけです。
泰-宋新

5
@Thomas:ネットを検索すると、ドライバーの非公式の署名付きバージョンがいくつかあることがわかります。最近のバージョン(3.0.0.0)の1つは、ここからダウンロードできます
フランクボラック2013

どうもありがとう、あなたはビールに値する!
ペールエール

しかし、これは実際にどのように行われるのですか?Windowsの基本は何ですか?
nacht 2014

@Nachtすべてのドライバーは、実際のシリアルポート「接続」が存在する場合でも、ある程度の抽象化を行います。つまり、ドライバーを作成する場合、本物と通信する必要がないことに気付くでしょう。あなたが望むようにtrasmitionバッファを使うことができるより。この仮想の場合、本物にストリームを送信する代わりに、別の「ポート」にデータを送信します。そのポートは最初のポートとペアになっています。全体がデータストリームのミラーリングのように見えます。私はそれが今はっきりしていることを望みます。
MrHIDEn 2015

63

私は、これは古い記事ですけど、場合に他の誰かがこの質問時に起こる、1つの良いオプションがから仮想シリアルポートエミュレータ(VSPE)であるEterlogic これは、カーネルモードの仮想コンポートデバイス、すなわちコネクタ、マッパー、スプリッタなどを作成するためのAPIを提供します。
ただしアドバタイズされた機能の一部は、実際に はまったく機能 はありませでした

編集
はるかに良い選択 Eltima。この商品は完全に焼き上げられています。優れた開発者テクニカルサポート。製品はそれがすることを主張したすべてをしました。製品オプションには、デスクトップアプリケーションと、APIを備えたソフトウェア開発キットの両方が含まれます。

これらの製品はどちらもオープンソースでも無料でもありません。ただし、ここで他の投稿が指摘しているように、他のオプションがあります。さまざまなシリアルユーティリティのリストは次のとおりです。

com0com (現在)
com0com-署名付きドライバー付き(旧バージョン)
署名付きドライバー付きcom0comのさらに別の場所 (Peteのブログ)
戦術ソフトウェア
Termite
COMポートシリアルエミュレーター
Kermit(廃止されましたが、まだダウンロード可能)
HWVSP3
HHDソフトウェア(無料版)


35

私はcom0comを使用しています-署名付きドライバーを使用して、Windows 7 x64で、COM3とCOM4をペアとしてエミュレートします。

次に、COMデータポートエミュレータを使用してCOM4から受信します。

次に、開発中のアプリ(c#)でCOM3を開き、COM3にデータを送信します。

COM3を介して送信されたデータは、COM4によって受信され、「COMデータポートエミュレーター」によって表示されます。「COMデータポートエミュレーター」は、応答を送り返すこともできます(自動化されていません)。

したがって、この2つの優れたプログラムを使用して、シリアルRS-232通信をエミュレートすることができました。

それが役に立てば幸い。

どちらのプログラムも無料です!!!!!


1
素晴らしい。これは私を助けました、それは確かです。COMポートデータエミュレーターに入力を待機させ、それを送り返す方法を知っていますか?
bunggo 2016年

4

ハードウェアルートは常にあります。USBからシリアルへのコンバーターを2つ購入し、NULLモデム経由で接続します。

プロのヒント:1)Windowsは、デバイスがスリープまたは再起動するたびに、新しいCOMポートをアダプタに割り当てる場合があります。2)USBからシリアルへのチップのマーケットリーダーはProlificとFTDIです。両社はノックオフと戦っており、将来の公式Windowsドライバーでブロックされる可能性があります。ただし、Linuxドライバーはクローンで正常に動作します。


3
USBシリアルアダプタは、従来のUARTとは異なるタイミング/バンチング動作をすることに注意してください。ただし、1つを使用してテストすることは、1つが使用される可能性がある場合は悪い考えではありません。それらが最初に普及したとき、不十分に設計または実装されたプロトコルは、プロトコルと一緒に使用すると、壊れたり、クロールが遅くなったりすることがありました。今日、開発中のUSB接続UARTで試さずに、何かが戸外に出る可能性は低くなっています。実際、PC上の従来のUARTで試されることは、今ではありそうもないことです。
クリス・ストラットン

3

OPがそれを要求しなかったとしても、別の選択肢:

USB-シリアルアダプタが存在します。アダプターのタイプによっては、ヌルモデムケーブルも必要になる場合があります。

動作するドライバがインストールされている場合は、Linuxでの使用が非常に簡単で、Windowsでも動作します。

そうすれば、センサーを直接操作でき、データをエミュレートする必要がありません。そうすれば、貧血システムを構築する手間を省くことができます。(エミュレートされたデータ入力がすべてのケースをカバーしていないため、脆弱なシステムにつながります。)

多くの場合、本物を扱う方が良いでしょう。


ソフトウェアのUSB-シリアルアダプタの名前を付けることはできますか?:)ありがとう
alcor 2016

1
screen /dev/ttyUSB0 9600またはminicom、そのようなハードウェア用のソフトウェアが必要な場合に使用します。
sjas 2016

1

modbusアプリケーションのデバッグ作業にeltimamake仮想シリアルポートを使用しました。ハードウェアを接続せずにシリアルポートプログラムをチェックすることは、開発段階で非常に優れたアプリケーションです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.