RS232 직렬 포트 위조


82

RS232 직렬 포트를 통해 배포 시스템에 연결되는 여러 하드웨어 센서가있는 프로젝트를 개발 중입니다.

하지만 ... 저는 물리적 인 RS232 직렬 포트가없는 컴퓨터에서 개발 중이지만 하드웨어 센서에서 입력을 위조 할 목적으로 연결하고 데이터를 출력 할 수있는 가짜 직렬 포트를 만들고 싶습니다.

가짜 직렬 포트를 만들고 Windows XP에서 제어하는 ​​방법을 아는 사람이 있습니까?


2
직렬 포트가 설치된 가상 머신을 사용해 보셨습니까?
Restuta

4
나는 그것을 시도하지 않았습니다. 소리는 오히려 :) 의견보다 완전한 답을 할 필요가 좋아
BefittingTheorem

1
Windows 7 64 비트에서 com0com과 Com Port Serial Emulator를 문제없이 사용할 수있었습니다.
JWiley

여기서 끝나는 사람들을 위해 com0com에 대한 간단한 지침을 여기에
Foad 19 년

답변:


68

Windows 용으로 개발중인 경우 com0com 프로젝트가 원하는 것일 수 있습니다.

널 모뎀 연결을 통해 연결된 가상 COM 포트 쌍을 제공합니다. 그런 다음 좋아하는 터미널 응용 프로그램 또는 원하는 모든 것을 사용하여 하나의 COM 포트로 데이터를 보내고 다른 포트에서받을 수 있습니다.

편집하다:

토마스는 지적이 프로젝트는 특정 Windows 버전 (예를 들어, 윈도우 7의 x64)에 특히 문제가 서명 된 드라이버의 부족.

서명 된 드라이버가 포함 된 비공식 com0com 버전 이 몇 가지 있습니다. 최신 버전 (3.0.0.0)은 여기 에서 다운로드 할 수 있습니다 .


4
비록 com0com이 디지털 서명없이 장치 드라이버를 설치해야합니다 같은 프로젝트는, 훌륭한 오픈 소스 프로젝트, 디지털 서명 된 드라이버를 확인 일부 Windows 시스템하지 않습니다 가상 직렬 포트와 함께 작동합니다. 사람들이 알고 싶어요.
태 성 신

5
@Thomas : 인터넷을 검색하면 비공식적으로 서명 된 드라이버 버전이 있다는 것을 알 수 있습니다. 최신 버전 (3.0.0.0)은 여기 에서 다운로드 할 수 있습니다 .
Frank Bollack 2013

많은 감사합니다, 당신은 맥주를 마실 자격이 있습니다!
Pale Ale 2013 년

그래도 실제로 어떻게 수행됩니까? Windows 기본 사항은 무엇입니까?
Nacht 2014

@Nacht 모든 드라이버는 실제 직렬 포트 "커넥트"가 있어도 일부 추상화를 만듭니다. 즉, 드라이버를 작성하면 실제와 통신 할 필요가 없음을 알 수 있습니다. 원하는대로 trasmition 버퍼를 사용할 수 있습니다. 이 가상의 경우 실제 스트림을 보내는 대신 다른 "포트"로 데이터를 보냅니다. 그 포트는 첫 번째 포트와 쌍입니다. 모든 것이 미러링 데이터 스트림처럼 보입니다. 이제 분명해 졌으면합니다.
MrHIDEn

63

나는 이것이 이전 게시물입니다 알지만, 경우에 다른 사람이이 질문에 발생, 하나의 좋은 옵션에서 가상 시리얼 포트 에뮬레이터 (VSPE)입니다 Eterlogic 그것은 커널 모드 가상 처신 장치, 즉, 커넥터, 매퍼, 스플리터 등을 만들기위한 API를 제공은 .
그러나 , 광고 된 기능 중 일부는 정말이었다 기능을하지 전혀 .

편집
훨씬 더 나은 선택 , Eltima . 이 제품은 완전히 구워졌습니다. 좋은 개발자 기술 지원. 제품은 주장하는 모든 것을 수행했습니다. 제품 옵션에는 데스크톱 애플리케이션과 API가있는 소프트웨어 개발 키트가 모두 포함됩니다.

이러한 제품은 오픈 소스도 아니고 무료도 아닙니다. 그러나 여기에 다른 게시물이 지적했듯이 다른 옵션이 있습니다. 다음은 다양한 직렬 유틸리티 목록입니다.

com0com (현재)
com0com-서명 된 드라이버 포함 (이전 버전)
서명 된 드라이버 포함 com0com (Pete 's Blog)
전술 소프트웨어
Termite
COM 포트 직렬 에뮬레이터
Kermit (구식이지만 여전히 다운로드 가능)
HWVSP3
HHD 소프트웨어 (무료 버전)


34

내가 사용 com0com을 - 서명 된 드라이버로 , 윈도우 7의 x64에 한 쌍으로 COM3과 COM4를 에뮬레이션 할 수 있습니다.

그런 다음 COM 데이터 포트 에뮬레이터 를 사용 하여 COM4에서 수신합니다.

그런 다음 im developping (c #) 앱으로 COM3을 열고 COM3에 데이터를 보냅니다.

COM3을 통해 전송 된 데이터는 COM4에 의해 수신되고 'COM Dataport Emulator'에 의해 표시되며 응답을 다시 보낼 수도 있습니다 (자동화되지 않음).

그래서이 두 가지 훌륭한 프로그램으로 직렬 RS-232 통신을 에뮬레이션했습니다.

도움이되기를 바랍니다.

두 프로그램 모두 무료 !!!!!


1
환상적입니다. 이것은 저를 도왔습니다, 그것은 확실합니다. COM Port Data Emulator가 내 입력을 기다린 다음 다시 보낼 수있는 방법을 알고 있습니까?
bunggo

3

OP가 요청하지 않았지만 다른 대안 :

USB- 직렬 어댑터가 있습니다. 어댑터 유형에 따라 널 모뎀 케이블도 필요할 수 있습니다.

작동하는 드라이버가 설치되어 있으면 Linux에서 사용하기가 매우 쉽고 Windows에서도 작동합니다.

이렇게하면 센서로 직접 작업 할 수 있으며 데이터를 에뮬레이션 할 필요가 없습니다. 그렇게하면 빈혈 시스템을 구축하지 않아도됩니다. (에뮬레이트 된 데이터 입력이 모든 경우를 포함하지 않기 때문에 취약한 시스템으로 이어집니다.)

실제 물건으로 작업하는 것이 더 낫습니다.


소프트웨어 USB- 직렬 어댑터의 이름을 가질 수 있습니까? :) 감사합니다
alcor

1
screen /dev/ttyUSB0 9600또는 minicom그러한 하드웨어에 대한 소프트웨어가 필요한 경우 사용 하십시오.
sjas

3

항상 하드웨어 경로가 있습니다. 두 개의 USB- 직렬 변환기를 구입하고 NULL 모뎀을 통해 연결하십시오.

전문가 팁 : 1) Windows는 모든 장치가 잠자거나 재부팅 된 후 어댑터에 새 COM 포트를 할당 할 수 있습니다. 2) USB- 시리얼 칩의 시장 리더는 Prolific과 FTDI입니다. 두 회사 모두 모조품과 싸우고 있으며 향후 공식 Windows 드라이버에서 차단 될 수 있습니다. 그러나 Linux 드라이버는 클론과 잘 작동합니다.


3
USB 직렬 어댑터는 기존 UART와 타이밍 / 번칭 동작이 다릅니다. 그러나 하나를 사용하여 테스트하는 것은 사용 가능성이 있다면 나쁜 생각이 아닙니다. 처음 인기를 얻었을 때, 잘못 설계되거나 구현 된 프로토콜은 종종 하나와 함께 사용할 때 중단되거나 크롤링 속도가 느려집니다. 오늘날 개발중인 USB 연결 UART로 시도하지 않고 무언가가 나올 가능성이 적습니다. 실제로 PC의 기존 UART에서 시도되는 것은 지금은 거의 불가능합니다.
Chris Stratton

1

내 modbus 응용 프로그램 디버그 작업을 위해 eltima make 가상 직렬 포트를 사용했습니다. 하드웨어를 연결하지 않고 시리얼 포트 프로그램을 확인하는 것은 개발 단계에서 정말 좋은 응용 프로그램입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.