Làm cách nào để kết nối uC với PC bằng cách sử dụng RS232 với số tín hiệu tối thiểu?


7

Đầu nối chuẩn 9 chân RS232 có 9 chân. Những người đang có:

1 - DCD - Đã phát hiện nhà cung cấp dữ liệu
2 - RxD - Nhận dữ liệu
3 - TxD - Truyền dữ liệu
4 - DTR - Chuẩn dữ liệu sẵn sàng
5 - GND - Mặt đất tín hiệu
6 - DSR - Tập dữ liệu Sẵn sàng
7 - RTS - Yêu cầu gửi dữ liệu
8 - CTS - Xóa để gửi dữ liệu
9 - RI - Chỉ báo chuông

  1. Nếu tôi cần giao tiếp hai chiều, rõ ràng là tôi nên kết nối RxD và TxD. Tôi nên làm gì với các tín hiệu / chân khác - kết nối với mặt đất, mở trái, cần lái chúng với các tín hiệu phù hợp theo giao thức?
  2. Nếu tôi chỉ quan tâm đến kết nối một chiều, tôi có thể chỉ kết nối RxD hoặc TxD không?
  3. Hậu quả của việc không sử dụng / kết nối các tín hiệu nhất định là gì. Phần mềm nào ở phía PC mong muốn có những tín hiệu đó? Chức năng nào sẽ bị mất?

CHÚ THÍCH 1: Tôi đang sử dụng ở đây từ "kết nối" theo nghĩa kết nối logic -> đối với kết nối điện Tôi sẽ yêu cầu mạch chuyển đổi mức như MAX 232)
LƯU Ý 2: Tôi bị giới hạn pin trên uC - Tôi không ngại kết nối bất kỳ tín hiệu nào trên bảng (như kéo chúng lên / xuống).


Một lưu ý phụ, vì dù sao bạn cũng cần một bộ chuyển đổi mức cho RS232, bạn có thể nghĩ về uart với chip usb thay thế ( ftdichip.com/ Products / ICs /FT 232R.htmlm ) vì việc tìm một máy tính có usb dễ dàng hơn ...
Johan

Câu trả lời:


13

Nó sẽ phụ thuộc vào phần mềm mà bạn đang sử dụng.

A) Trong trường hợp của tôi, khi tôi phát triển phần mềm PC của riêng mình, tôi chưa bao giờ sử dụng các chân khác, chỉ có RxD, TxD và GND. Vì vậy, trong trường hợp này bạn có thể để các chân khác mở. Đây được gọi là modem null mà không cần bắt tay

nhập mô tả hình ảnh ở đây

B) Có (giả sử GND đang được xem xét)

C) Một lần nữa, nó sẽ phụ thuộc vào phần mềm bên PC. Một số phần mềm bạn có thể cấu hình để không chăm sóc kiểm soát phần cứng. Những người khác sẽ yêu cầu bắt tay RTS / CTS, vì vậy bạn có thể thực hiện một modem null với bắt tay vòng lặp

nhập mô tả hình ảnh ở đây

Nguồn hình ảnh: Dây cáp nối tiếp modem null


B) Không. Bạn cần chia sẻ GND.
Robert

thx cho câu trả lời - một điều nữa tôi nên để lại không sử dụng đầu vào nổi?
mazurnization

@mazurnification - Về mặt kỹ thuật, bạn không nên để đầu vào nổi. PC sẽ có pull-up / pull-down để bảo vệ chính nó. Nếu bảng của bạn có các tín hiệu bổ sung trên đầu nối không được kết nối, thì bạn không cần phải làm gì cả. Đảm bảo chip trình điều khiển RS232 của bạn có tất cả các đầu vào được đặt ở mức.
Robert

3
Thông thường người ta sẽ không sử dụng modem null khi kết nối với hệ thống nhúng hoặc thiết bị ngoại vi. Thay vào đó, hệ thống nhúng / thiết bị ngoại vi được nối dây để truyền / nhận trên các chân đối diện từ PC để có thể sử dụng cáp thẳng. Modem Null thực sự được dùng để kết nối hai PC với nhau (hoặc đôi khi, hai bảng nhúng).
Chris Stratton

6

Bạn chỉ phải kết nối RxD và TxD, và Ground, tất nhiên. (Nếu bạn chỉ sử dụng giao tiếp một chiều, chỉ cần Ground và RxD hoặc TxD.) Các tín hiệu khác được sử dụng để liên lạc với modem. Hầu hết các UART trên vi điều khiển không cung cấp các tín hiệu điều khiển này. Tôi nhớ rằng tôi đã nhìn thấy nó trên 1 hoặc 2 UART của một uC với nhiều UART khác (mặc dù tôi không nhớ đó là uC nào).

thêm về điều modem (FYI):
EIA-232 định nghĩa DTE (Thiết bị đầu cuối dữ liệu, trong trường hợp này là PC hoặc SBC của bạn) và DCE (Thiết bị truyền thông dữ liệu, thường là modem).

Cấu hình DTE-DCE

Bạn có một số cách để kết nối PC.

  1. Kết nối trực tiếp, không có modem, sử dụng cáp chéo (RxD ở một bên được kết nối với TxD ở phía bên kia và ngược lại). Bạn chỉ cần hai tín hiệu + mặt đất. Đó là những gì bạn sử dụng để kết nối PC với SBC.
  2. Kết nối modem cũng sử dụng các tín hiệu bổ sung, PC và modem được kết nối qua cáp thẳng (chân 1 được kết nối với chân 1, v.v.)
  3. Bạn có thể thiết lập kết nối giữa hai DTE như thể có modem, trong trường hợp đó bạn sử dụng modem null để kết nối tín hiệu điều khiển giữa các DTE, như RTS từ 1 DTE được kết nối với CTS. Điều này sử dụng một cáp chéo có dây hoàn chỉnh.
  4. Thiết lập modem null, trong đó tín hiệu điều khiển không được kết nối giữa các PC, nhưng bạn gian lận và không kết nối RTS với CTS trên PC khác, nhưng trên PC của chính bạn. Các tín hiệu khác cũng được lặp lại cục bộ. Kết quả là giống như trong trường hợp 1) chỉ RxD, TxD và Ground được kết nối giữa các PC.

Các dòng khác cũng có thể được sử dụng để giúp mã hóa. Bạn có thể làm những thứ như vi điều khiển của bạn sẽ báo cho PC của bạn khi nó sẵn sàng nhận dữ liệu. Điều này có thể thực sự hữu ích khi bạn phải làm một số việc đòi hỏi sự chú ý của bạn và bạn không thể bị gián đoạn để xóa bộ đệm của mình.
Kellenjb

3
Bạn cũng cần GND.
Robert

5

Bạn phải có Tx, Rx và tín hiệu mặt đất ở mức tối thiểu. Mặc dù về lý thuyết bạn không cần Tx nếu bạn chỉ nhận được, như một vấn đề thực tế trong nhiều tình huống, bạn sẽ cần phải thừa nhận đã nhận được tin nhắn. Các chân khác được sử dụng để "bắt tay phần cứng" một hệ thống cấp phép trong đó thiết bị gửi xác minh thiết bị nhận đã sẵn sàng. Bạn có thể sử dụng Xon / Xoff thay thế (bắt tay phần mềm). Một số thiết bị, ví dụ chuột nối tiếp, cũng sử dụng các dòng bắt tay phần cứng để cấp nguồn.


1

Lưu ý rằng có thể thoát ra mà không cần sử dụng chip 232 trong một số trường hợp nhất định. Điều này phụ thuộc vào sự chậm chạp nhất định trong giao thức và lạm dụng một số chân theo cách mà họ không được phép. Thật không may, tôi không biết mạch điện trên đỉnh đầu nhưng tôi đã sử dụng nó. Tôi đã tìm kiếm nó khi tôi gặp câu hỏi này. Tôi sẽ không sử dụng nó trong sản xuất và tôi không biết rằng nó hoạt động cho tất cả các kết nối triển khai RS232 nhưng nó rất tiện lợi khi tôi sử dụng nó.


Tuy nhiên, bạn sẽ cần bảo vệ quá áp và khả năng đảo ngược tín hiệu ở đâu đó trong UART phần mềm, sử dụng biến tần hoặc trong một vài trường hợp trong bit cấu hình của thiết bị ngoại vi UART của vi điều khiển. Ý tưởng cơ bản dựa trên hầu hết các cổng nối tiếp có thể chấp nhận đầu vào mức logic.
Chris Stratton

1

Đối với số lượng tín hiệu tối thiểu, hoàn toàn có thể tạo giao diện UART chỉ bằng hai dây - đường tín hiệu hai chiều và nối đất. Điều cần thiết là các trình điều khiển dòng ở mỗi đầu có thể bị vô hiệu hóa (tri-tuyên bố) và phần mềm thực hiện giao thức quay vòng; thường thì thiết bị nô lệ chỉ truyền để trả lời một câu hỏi từ chủ.

Trong kết nối mức logic giữa các bộ vi điều khiển (không có trình điều khiển dòng), phần cứng khá đơn giản, vì bạn hầu như luôn có thể trói chặt chân truyền (có thể bằng cách chuyển nó trở lại chế độ GPIO).

Mặc dù kỹ thuật này không được sử dụng thường xuyên trên các thiết bị ngoại vi gần đó, nhưng nó khá phổ biến khi sử dụng tín hiệu vi sai như RS485 và có thể liên quan đến một mạng gồm nhiều nút thay vì chỉ hai nút. Nhưng các sơ đồ phần mềm được thiết kế để nói chuyện trên cặp hai chiều RS485 sẽ hoạt động tốt giữa hai thiết bị được kết nối với một mạch kết thúc (không khác biệt), với điều kiện là khoảng cách / độ ồn không yêu cầu giải pháp vi sai. Tất nhiên điều này sẽ không hoàn toàn nói là RS232, nhưng là một phần mở rộng tùy chỉnh.

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.