Làm giả một cổng nối tiếp RS232


82

Tôi đang phát triển một dự án có một số cảm biến phần cứng kết nối với máy triển khai thông qua các cổng nối tiếp RS232.

Nhưng ... tôi đang phát triển trên một máy không có cổng nối tiếp RS232 vật lý, nhưng tôi muốn tạo các cổng nối tiếp giả để tôi có thể kết nối và xuất dữ liệu với mục đích giả mạo đầu vào từ cảm biến phần cứng.

Có ai biết cách tạo cổng nối tiếp giả và điều khiển nó trên Windows XP không?


2
Bạn đã thử các máy ảo có cài đặt cổng nối tiếp chưa?
Restuta

4
Tôi chưa thử điều đó. Những âm thanh như nó cần phải được một câu trả lời đầy đủ chứ không phải là một lời nhận xét :)
BefittingTheorem

1
Tôi đã có thể sử dụng com0com và Com Port Serial Emulator trên Windows 7 64-bit mà không gặp vấn đề gì, hoạt động rất tốt.
JWiley

cho những người kết thúc ở đây, tôi đã viết một hướng dẫn ngắn gọn cho com0com ở đây
Foad

Câu trả lời:


68

Nếu bạn đang phát triển cho Windows, thì dự án com0com có thể là thứ bạn đang tìm kiếm.

Nó cung cấp các cặp cổng COM ảo được liên kết thông qua kết nối nullmodem. Sau đó, bạn có thể sử dụng ứng dụng đầu cuối yêu thích của mình hoặc bất kỳ thứ gì bạn muốn để gửi dữ liệu đến một cổng COM và nhận từ cổng kia.

BIÊN TẬP:

Như Thomas đã chỉ ra rằng dự án thiếu trình điều khiển có chữ ký, điều này đặc biệt có vấn đề trên một số phiên bản Windows nhất định (ví dụ: Windows 7 x64).

Có một vài phiên bản com0com không chính thức xung quanh có chứa một trình điều khiển đã ký. Có thể tải xuống một xác minh gần đây (3.0.0.0), ví dụ: từ đây .


4
Mặc dù com0comdự án là một dự án mã nguồn mở tuyệt vời, vì nó phải cài đặt trình điều khiển thiết bị không có chữ ký số, một số hệ thống Windows kiểm tra trình điều khiển được ký điện tử sẽ không hoạt động với cổng nối tiếp ảo của nó. Chỉ muốn mọi người biết.
Tae-Sung Shin,

5
@Thomas: Tìm kiếm trên mạng cho thấy có một số phiên bản trình điều khiển có chữ ký không chính thức xung quanh. Bạn có thể tải xuống một xác minh gần đây (3.0.0.0) từ đây .
Frank Bollack,

Cảm ơn nhiều, bạn xứng đáng được uống bia!
Pale Ale

làm thế nào điều này thực sự được thực hiện mặc dù? những điều cơ bản về windows là gì?
Nacht

@Nacht Mọi trình điều khiển đều đưa ra một số trừu tượng ngay cả khi có cổng nối tiếp thực sự "kết nối" cho họ. Điều này có nghĩa là nếu bạn viết trình điều khiển, bạn sẽ nhận thấy rằng bạn không cần phải hài lòng với những thứ thực sự. Hơn là bạn có thể sử dụng bộ đệm trasmition như bạn muốn. Trong trường hợp ảo này, thay vì gửi luồng đến thực, bạn gửi dữ liệu đến một "cổng" khác. Cổng đó là một cặp với cổng đầu tiên. Toàn bộ điều trông giống như phản chiếu luồng dữ liệu. Tôi hy vọng nó đã rõ ràng bây giờ.
MrHIDEn

63

Tôi biết đây là một bài đăng cũ, nhưng trong trường hợp ai đó xảy ra câu hỏi này, một lựa chọn tốt là Trình giả lập cổng nối tiếp ảo (VSPE) từ Eterlogic Nó cung cấp một API để tạo các thiết bị biên dịch ảo chế độ hạt nhân, tức là trình kết nối, trình liên kết, trình phân tách, v.v. .
Tuy nhiên , một số tính năng được quảng cáo là thực sự không khả năng ở tất cả .

CHỈNH SỬA
Một lựa chọn tốt hơn nhiều , Eltima . Sản phẩm này được nướng hoàn toàn. Hỗ trợ kỹ thuật tốt cho nhà phát triển. Sản phẩm đã làm tất cả những gì nó tuyên bố làm. Các tùy chọn sản phẩm bao gồm cả ứng dụng dành cho máy tính để bàn, cũng như bộ công cụ phát triển phần mềm với API.

Cả hai sản phẩm này đều không phải là mã nguồn mở hoặc miễn phí. Tuy nhiên, như các bài viết khác ở đây đã chỉ ra, có các tùy chọn khác. Đây là danh sách các tiện ích nối tiếp khác nhau:

com0com (hiện tại)
com0com - Với Trình điều khiển đã ký (phiên bản cũ)
Tuy nhiên, một nơi khác dành cho com0com với Trình điều khiển Đã ký (Pete's Blog)
Phần mềm chiến thuật
Mối nối
COM Cổng Trình mô phỏng nối tiếp
Kermit (lỗi thời, nhưng vẫn có thể tải xuống) Phần mềm
HWVSP3
HHD (phiên bản miễn phí)


34

Tôi sử dụng com0com - Với Trình điều khiển đã ký , trên windows 7 x64 để mô phỏng COM3 VÀ COM4 như một cặp.

Sau đó, tôi sử dụng COM Dataport Emulator để nhận từ COM4.

Sau đó, tôi mở COM3 với ứng dụng im phát triển (c #) và gửi dữ liệu đến COM3.

Dữ liệu được gửi qua COM3 được COM4 nhận và được hiển thị bởi 'COM Dataport Emulator', người cũng có thể gửi lại phản hồi (không tự động).

Vì vậy, với 2 chương trình tuyệt vời này, tôi đã quản lý để mô phỏng giao tiếp Serial RS-232.

Hy vọng nó giúp.

Cả hai chương trình đều miễn phí !!!!!


1
Tuyệt diệu. Điều này đã giúp tôi, đó là điều chắc chắn. Bạn có biết cách nào để tôi có thể làm cho Trình mô phỏng dữ liệu cổng COM chờ đầu vào của tôi, sau đó gửi lại không?
bunggo

3

Một giải pháp thay thế khác, mặc dù OP không yêu cầu:

Có bộ điều hợp USB-to-serial. Tùy thuộc vào loại bộ chuyển đổi, bạn cũng có thể cần cáp nullmodem.

Chúng cực kỳ dễ sử dụng trong linux, cũng như hoạt động dưới windows, nếu bạn đã cài đặt trình điều khiển hoạt động.

Bằng cách đó, bạn có thể làm việc trực tiếp với các cảm biến và bạn không phải thử và mô phỏng dữ liệu. Bằng cách đó, bạn thậm chí có thể tiết kiệm từ việc xây dựng một hệ thống thiếu máu. (Do đầu vào dữ liệu được mô phỏng của bạn không bao gồm tất cả các trường hợp, dẫn đến hệ thống dễ hỏng.)

Thường thì tốt hơn khi làm việc với đồ thật.


Có thể có tên cho bộ chuyển đổi USB-to-serial phần mềm không? :) Cảm ơn
alcor

1
screen /dev/ttyUSB0 9600hoặc sử dụng minicomnếu bạn cần phần mềm cho phần cứng đó.
sjas

3

Luôn luôn có tuyến đường phần cứng. Mua hai bộ chuyển đổi USB sang nối tiếp và kết nối chúng qua modem NULL.

Mẹo chuyên nghiệp: 1) Windows có thể gán các cổng COM mới cho bộ điều hợp sau mỗi lần thiết bị ngủ hoặc khởi động lại. 2) Các công ty dẫn đầu thị trường về chip cho USB nối tiếp là Prolific và FTDI. Cả hai công ty đang chiến đấu với hàng nhái và có thể bị chặn trong các trình điều khiển Windows chính thức trong tương lai. Tuy nhiên, các trình điều khiển Linux hoạt động tốt với các bản sao.


3
Lưu ý rằng bộ điều hợp nối tiếp USB có hoạt động định thời / nhóm khác với UART truyền thống. Tuy nhiên, thử nghiệm với một cái không phải là một ý tưởng tồi nếu có bất kỳ cơ hội nào để một cái đã từng được sử dụng. Khi chúng lần đầu tiên trở nên phổ biến, các giao thức được thiết kế hoặc triển khai kém đôi khi bị hỏng hoặc chậm thu thập thông tin khi được sử dụng với một giao thức. Ngày nay, ít có khả năng có thứ gì đó lọt ra khỏi cửa mà không được thử với UART gắn USB đang được phát triển; thực sự được thử trên UART truyền thống trên PC là điều không thể xảy ra.
Chris Stratton

1

tôi đã sử dụng eltima tạo cổng nối tiếp ảo cho công việc gỡ lỗi ứng dụng modbus của mình. nó thực sự là ứng dụng rất tốt ở giai đoạn phát triển để kiểm tra chương trình cổng nối tiếp mà không cần kết nối phần cứng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.