RS232 Seri Bağlantı Noktasını Taklit Etmek


84

Dağıtım makinesine RS232 seri bağlantı noktaları üzerinden bağlanan bir dizi donanım sensörüne sahip bir proje geliştiriyorum.

Ama ... Fiziksel bir RS232 seri portu olmayan bir makinede geliştirme yapıyorum, ancak donanım sensörlerinden giriş taklit etmek amacıyla bağlanıp veri çıkışı yapabileceğim sahte seri portlar yapmak istiyorum.

Sahte bir seri bağlantı noktası oluşturmanın ve bunu Windows XP'de kontrol etmenin bir yolunu bilen var mı?


2
Seri bağlantı noktaları kurulu sanal makineleri denediniz mi?
Restuta

4
Ben denemedim. Bir yorumdan ziyade tam bir cevap olması gerektiği gibi görünüyor :)
BefittingTheorem

1
Windows 7 64-bit üzerinde com0com ve Com Port Serial Emulator'ü sorunsuz bir şekilde kullanabildim, harika çalıştı.
JWiley

burada sona olanlar için ben com0com için kısa bir talimat yazdım buraya
Foad

Yanıtlar:


69

Windows için geliştirme yapıyorsanız, aradığınız com0com projesi olabilir.

Bir nullmodem bağlantısı aracılığıyla bağlanan sanal COM bağlantı noktası çiftleri sağlar. Daha sonra favori terminal uygulamanızı veya bir COM portuna veri göndermek ve diğerinden almak istediğiniz her şeyi kullanabilirsiniz.

DÜZENLE:

Thomas'ın belirttiği gibi , projede imzalı bir sürücü bulunmuyor, bu da özellikle belirli Windows sürümlerinde (örneğin Windows 7 x64) sorunlu.

Etrafta imzalı bir sürücü içeren birkaç resmi olmayan com0com sürümü var. Güncel bir sürüm (3.0.0.0), örneğin buradan indirilebilir .


4
com0comProje mükemmel bir açık kaynaklı proje olmasına rağmen , aygıt sürücüsünü dijital imza olmadan kurması gerektiği için, dijital olarak imzalanmış sürücüyü kontrol eden bazı Windows sistemleri, sanal seri portuyla çalışmayacaktır. Sadece insanların bilmesini istiyorum.
Tae-Sung Shin

5
@Thomas: İnternette arama yapmak, sürücünün bazı resmi olmayan imzalı sürümlerinin olduğunu ortaya çıkarır. Bir son verion (3.0.0.0) indirilebilir burada .
Frank Bollack

Çok teşekkürler, bir birayı hak ediyorsunuz!
Pale Ale

bu aslında nasıl yapılır? windows temelleri nelerdir?
Nacht

@Nacht Her sürücü, kendilerine gerçek seri bağlantı noktası "connectet" olsa bile, bazı soyutlamalar yapar. Bu, eğer sürücü yazarsanız, gerçek şeyle iletişim kurmanıza gerek olmadığını fark edeceğiniz anlamına gelir. Daha sonra geçiş tamponunu istediğiniz gibi kullanabilirsiniz. Bu sanal durumda, akışı gerçek bir şeye göndermek yerine başka bir "bağlantı noktasına" veri gönderirsiniz. Bu bağlantı noktası ilkiyle bir çifttir. Her şey veri akışını yansıtıyor gibi görünüyor. Umarım şimdi açıktır.
MrHIDEn

63

Bunun eski bir gönderi olduğunu biliyorum, ancak bu soruya başka birinin gelmesi durumunda, iyi bir seçenek Eterlogic'ten Sanal Seri Bağlantı Noktası Emülatörüdür (VSPE) Çekirdek modu sanal comport aygıtları, yani bağlayıcılar, eşleyiciler, ayırıcılar vb. Oluşturmak için bir API sağlar. .
Ancak , reklamı yetenekleri bazıları gerçekten vardı yetenekleri değil hiç .

EDIT
Çok daha iyi bir seçim , Eltima . Bu ürün tam pişmiş. İyi geliştirici teknik desteği. Ürün, iddia ettiği her şeyi yaptı. Ürün seçenekleri, hem masaüstü uygulamalarını hem de API'lı yazılım geliştirme kitlerini içerir.

Bu ürünlerin hiçbiri açık kaynak veya ücretsiz değildir. Ancak, buradaki diğer yayınların da belirttiği gibi, başka seçenekler de var. İşte çeşitli seri yardımcı programların bir listesi:

com0com (güncel)
com0com - İmzalı Sürücüyle (eski sürüm)
İmzalı Sürücülü com0com için başka bir yer (Pete's Blog)
Taktik Yazılım
Termite
COM Port Seri Emülatörü
Kermit (eski, ancak yine de indirilebilir)
HWVSP3
HHD Yazılımı (ücretsiz sürüm)


35

COM3 VE COM4'ü bir çift olarak taklit etmek için Windows 7 x64'te com0com - Signed Driver ile kullanıyorum .

Ardından COM4'ten almak için COM Dataport Emulator kullanıyorum .

Ardından uygulama im geliştirme (c #) ile COM3'ü açıp verileri COM3'e gönderiyorum.

COM3 aracılığıyla gönderilen veriler COM4 tarafından alınır ve bir yanıtı geri gönderebilen (otomatikleştirilmemiş) 'COM Dataport Emülatörü' tarafından gösterilir.

Bu 2 harika programla Seri RS-232 iletişimini taklit etmeyi başardım.

Umarım yardımcı olur.

Her iki program da ücretsizdir !!!!!


1
Fantastik. Bu bana yardımcı oldu, bu kesin. COM Port Veri Emülatörünü girdimi bekletip sonra geri gönderebileceğim bir yol biliyor musunuz?
bunggo

4

Her zaman donanım rotası vardır. İki USB-seri dönüştürücü satın alın ve bunları bir NULL modem aracılığıyla bağlayın.

Profesyonel ipuçları: 1) Windows, her aygıt uyku veya yeniden başlatma sonrasında adaptörlere yeni COM bağlantı noktaları atayabilir. 2) USB'den seriye yongalarda pazar liderleri Prolific ve FTDI'dır. Her iki şirket de taklitlerle mücadele ediyor ve gelecekteki resmi Windows sürücülerinde engellenebilir. Ancak Linux sürücüleri klonlarla iyi çalışıyor.


3
USB seri adaptörlerinin geleneksel UART'lardan farklı zamanlama / gruplama davranışına sahip olduğunu unutmayın. Bununla birlikte, birinin kullanılma şansı varsa, biriyle test etmek kötü bir fikir değildir. İlk popüler olduklarında, kötü tasarlanmış veya uygulanmış protokoller, bazen tek bir protokolle birlikte kullanıldıklarında kesintiye uğrar veya yavaşladı. Günümüzde, geliştirilmekte olan bir USB'ye bağlı UART ile denenmeden bir şeyin kapıdan çıkması daha az olasıdır; aslında bir PC'de geleneksel bir UART üzerinde denenmesi artık olası değil.
Chris Stratton

3

OP istemediği halde başka bir alternatif:

USB-seri adaptörleri mevcuttur. Adaptörün türüne bağlı olarak nullmodem kabloya da ihtiyacınız olabilir.

Çalışan sürücüler yüklüyse, linux altında kullanımı son derece kolaydır, Windows altında da çalışırlar.

Bu şekilde doğrudan sensörler ile çalışabilirsiniz ve verileri denemek ve taklit etmek zorunda kalmazsınız. Bu şekilde belki bir anemik sistem kurmaktan bile kurtulabilirsiniz. (Öykünülmüş veri girişlerinizin tüm durumları kapsamaması nedeniyle sizi kırılgan bir sisteme götürür.)

Gerçek şeylerle çalışmak genellikle daha iyidir.


Yazılım USB-seri adaptörü için bir isim olması mümkün mü? :) Teşekkürler
alcor

1
screen /dev/ttyUSB0 9600veya minicombu tür bir donanım için yazılıma ihtiyacınız varsa kullanın .
sjas

1

modbus uygulama hata ayıklama çalışması için eltima make virtual serial port kullandım. donanım bağlamadan seri port programını kontrol etmek geliştirme aşamasında gerçekten çok iyi bir uygulamadır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.