TX và RX có liên quan gì?


11

Tôi đã làm việc với một thiết bị sử dụng giao tiếp RS232 với PC. Đã có một số nhầm lẫn khi họ đã xác định chân TX và RX của họ so với thiết bị. Trong định nghĩa của họ, họ sử dụng có nghĩa là TX là pin gửi dữ liệu từ thiết bị. Trong tâm trí của tôi, cái này nên được gắn nhãn RX vì nó là pin mà máy tính nhận được.

Làm thế nào các chân nên được xác định? Chúng có liên quan đến từng thiết bị hoặc liên quan đến "bộ điều khiển" không?


6
Tôi chưa bao giờ thấy TX / RX là từ các quan điểm khác ngoài các bên gửi. Vì vậy, TX là mã pin mà phần gửi gửi và RX được nhận. Tôi chưa bao giờ gặp phải việc đặt tên như bạn đề nghị.
Morten Jensen

13
Việc đặt tên chân RS232 là một trường hợp đặc biệt vì họ đã xác định mọi thứ theo DTE (Thiết bị đầu cuối dữ liệu) và DCE (Thiết bị truyền thông dữ liệu) và được quản lý để gây nhầm lẫn hoàn toàn. DCE có đầu ra dữ liệu trên chân RX và đầu vào trên chân TX, DTE thì ngược lại. Về lý thuyết, giới tính của các đầu nối sẽ cho bạn biết cái gì là, trong thực tế, đủ các nhà sản xuất đã mắc sai lầm này để biến nó thành một hướng dẫn ít đáng tin cậy hơn. Có một lý do mà bạn từng có thể mua các hộp nhỏ với D9 & D25 của các giới tính khác nhau với một bộ dây nhảy nhỏ và một số đèn LED trên các đường tín hiệu chung.
Dan Mills

1
Khi đó là sinh nhật của bạn, tôi không nhận được quà cho bạn.
ctrl-alt-delor

1
@MortenJensen tốt nếu họ được đặt tên theo quan điểm của bên gửi, cả hai nên được gọi là TX.
dùng253751

2
@TerryCarmen Không đúng với DCE nơi tên pin và hướng luồng dữ liệu được đảo ngược theo tiêu chuẩn. DTE Tx -> DCE Tx và DTE Rx -> DCE Rx, yea, lạ và tào lao nhưng đó là những gì nó được.
Dan Mills

Câu trả lời:


23

Có thể dễ hiểu hơn, nếu chúng tôi nhanh chóng xem xét cách sử dụng tiêu chuẩn RS-232 ban đầu.

Lưu ý: Tất cả các số pin bên dưới tham khảo đầu nối D 25 chân gốc; việc đánh số đã thay đổi trên đầu nối 9 chân được sử dụng trên các PC sau này.

Lý lịch

DTE = Thiết bị đầu cuối dữ liệu - ngày xưa, đây thường sẽ là thiết bị đầu cuối hoặc máy in hoặc thiết bị mô phỏng những thiết bị đó.

DCE = Thiết bị truyền thông dữ liệu - ngày xưa, đây thường sẽ là modem hoặc giao diện WAN khác.

Chân 2 trên đầu nối D 25 chân ban đầu (được mô tả trong tiêu chuẩn là "Dữ liệu truyền", "Mạch BA", "V24. Số 103") phải là dữ liệu từ DTE đến DCE.

Chân 3 trên đầu nối D 25 chân gốc (được mô tả trong tiêu chuẩn là "Dữ liệu đã nhận", "Mạch BB", "V24. Số 104") phải là dữ liệu từ DCE đến DTE.

Điều này có nghĩa là cáp liên kết giữa thiết bị đầu cuối và modem là "xuyên suốt" - chân 2 trên thiết bị đầu cuối (DTE) ở một đầu của cáp nơi dữ liệu bắt nguồn, được kết nối với chân 2 trên modem (hoặc tương tự) ở đầu kia cuối cáp (DCE) nơi nhận dữ liệu đó. Sau đó, modem đã gửi dữ liệu đó ra bằng liên kết truyền thông, tới bất kỳ thiết bị nào ở đầu kia của liên kết đó.

Chân 3 "Dữ liệu đã nhận" là tín hiệu dữ liệu theo hướng ngược lại - được truyền bởi modem (DCE) trên chân 3 và được nhận bởi thiết bị đầu cuối (DTE) trên chân 3.

Do đó, bạn có thể thấy rằng việc ghi nhãn của những gì được truyền và những gì đã nhận được, là từ quan điểm của DTE (tức là thiết bị đầu cuối). Tất cả điều này có ý nghĩa khi các kết nối điển hình nằm giữa DCE và DTE.

Tuy nhiên các mảnh của thiết bị chúng tôi đang sử dụng những ngày này (ngay cả khi họ không sử dụng RS-232 và thay vào đó sử dụng một TTL hoặc giao diện giao thức UART điện áp khác) thường tất cả một cách hiệu quả DTE (với một ngoại lệ là modem). Kết nối chân 2 (là đầu ra) trên một mảnh DTE, với chân 2 (đầu ra khác) trên một thiết bị khác được cấu hình là DTE, không có ý nghĩa gì (và khi sử dụng tín hiệu mức logic, thậm chí có thể gây hư hỏng phần cứng). Đây là nơi sử dụng cáp "chéo" hoặc "null modem" (tức là không có modem).

Câu hỏi của bạn

Tôi đã làm việc với một thiết bị sử dụng giao tiếp RS232 với PC. Đã có một số nhầm lẫn khi họ đã xác định chân TX và RX của họ so với thiết bị. Trong định nghĩa của họ, họ sử dụng có nghĩa là TX là pin gửi dữ liệu từ thiết bị. Trong tâm trí của tôi, cái này nên được gắn nhãn RX vì nó là pin mà máy tính nhận được.

Làm thế nào các chân nên được xác định? Chúng có liên quan đến từng thiết bị hoặc liên quan đến "bộ điều khiển" không?

Từ thông tin cơ bản ở trên, bạn có thể thấy rằng ghi nhãn của họ là chính xác nếu thiết bị của họ hoạt động như DTE (hầu hết là, trừ khi đó là modem hoặc giao diện WAN khác). Trên một mảnh DTE, chân có nhãn "Dữ liệu truyền" (chân 2 trên đầu nối 25 chân) sẽ gửi dữ liệu. (Và, như đã giải thích ở trên, trên một mảnh DCE (ví dụ: modem), chân được gọi là "Dữ liệu truyền" (chân 2 trên đầu nối 25 chân của nó) thực sự là một đầu vào, nhận tín hiệu từ DTE.)

Cổng nối tiếp của PC cũng sẽ được cấu hình là DTE (trừ khi nó có cổng nối tiếp rất bất thường - sẽ không áp dụng ở đây, như bạn sẽ biết nếu nó được áp dụng).

Do đó, bạn đang kết nối thiết bị DTE (thiết bị này bạn đã đề cập) với thiết bị DTE (PC), tức là không có DCE trong thuật ngữ "RS-232, tức là không có modem và" modem null "hoặc" chéo "RS-232 sẽ cần kết nối dây. Bất kỳ pin nào là RS-232 "Dữ liệu truyền" (có thể là pin mà bạn đề cập họ đã gắn nhãn là TX) trên thiết bị DTE này, sẽ là đầu ra , sẽ cần được kết nối với RS-232 "Đã nhận Dữ liệu "pin trên PC của bạn (cũng là thiết bị DTE), là đầu vào (và rõ ràng là ngược lại để truyền dữ liệu theo hướng khác).

Mặc dù điều này dường như không áp dụng cho bạn, tôi sẽ chỉ thêm: Để làm cho cuộc sống phức tạp hơn, một số nhà sản xuất cố gắng "giúp đỡ" bằng cách dán nhãn hiệu quả cho thiết bị DTE của họ như thể đó là một phần của DCE. Họ đánh dấu pin đầu vào dữ liệu của mình là Tx để người dùng chỉ kết nối "Tx" từ thiết bị bên ngoài (nếu là DTE, sẽ là đầu ra dữ liệu từ đó) đến pin được đánh dấu "Tx" trên thiết bị của họ (mà họ biết là một đầu vào ). Qua đó cho phép họ nói "chỉ cần kết nối Tx trên thiết bị của bạn với Tx trên thiết bị của chúng tôi". Họ nghĩ rằng họ đang cố gắng giúp đỡ, nhưng việc dán nhãn như vậy thường chỉ làm tăng thêm sự nhầm lẫn.

Như Dan Mills đã đề cập trong một bình luận, nhiều người trong chúng ta lớn lên với RS-232, đã dành nhiều giờ hạnh phúc khi phải kết nối nhiều thiết bị khác nhau với việc triển khai RS-232 hơi khác nhau, sử dụng "hộp đột phá" mà anh mô tả. Các hộp đột phá này có đèn LED, cho biết tín hiệu nào đang được điều khiển tích cực (điều này nhanh chóng cho phép bạn xem thiết bị được cấu hình là DTE hay DCE: Chân 2 có được điều khiển trên thiết bị đó không? Có = đó là DTE) và có những nơi nhảy ngắn cáp có thể được sử dụng để liên kết các chân kết nối khác nhau.


Thực tiễn phổ biến nếu mọi thứ không hoạt động, là trao đổi kết nối trên chân 2 và 3 ở một đầu của cáp (cách này hoạt động trên cả hai đầu nối DE-9 và DB25)
Peter Bennett

2
Thật. Trong bối cảnh của câu hỏi cụ thể này, nơi RS-232 (không phải tín hiệu ở mức logic) và không có bắt tay phần cứng nào được đề cập, thì việc tráo đổi chân 2 & 3 sẽ là điều nên thử (vì vô tình kết nối hai đầu ra RS-232 không nên gây ra thiệt hại vĩnh viễn). Thật không may, mọi thứ trở nên phức tạp khi bắt tay phần cứng có liên quan (vì vấn đề có thể nằm ở các cấu hình khác nhau của các tín hiệu đó). Sau đó, trao đổi chân 2 và 3 có thể không giải quyết được vấn đề hoặc có thể không giải quyết được vấn đề duy nhất . Điều này mang lại những ký ức về các hộp đột phá & phân tích những gì không có trong tài liệu.
SamGibson

1
Oh yessss, RTS / CTS / DSR / DTR ... Rất nhiều, rất nhiều khả năng, ngay cả trước khi bạn có được những điều thú vị như một đầu muốn kiểm soát luồng phần mềm và RTS / CTS mong đợi khác. Và vâng, các tài liệu luôn luôn bị đắm. Tôi chê bai về USB (Ba loại cắm crap là chủ yếu, cũng chủ yếu là ngăn xếp phần mềm tào lao), nhưng nghĩ lại '232 là một mức độ điên rồ khác.
Dan Mills

8

Không giống như nhiều cấu hình giống như bus, sử dụng tên tín hiệu , truyền thông nối tiếp thường sử dụng tên hàm cho các chân. Vì vậy, nếu thiết bị truyền trên một số pin, nó được đánh dấu Tx. Nếu nó nhận được, nó được đánh dấu Rx. Rõ ràng bạn kết nối Tx của một thiết bị với RX của thiết bị kia và ngược lại.

Để đặt nó vào phối cảnh, thiết bị mà bạn đang nói đến cũng có một "máy tính" trong đó, đó chính là MCU. Tại sao một máy tính nên ra lệnh cho tên của các chân của máy tính kia, đặc biệt là xem xét tính chất không đồng bộ hai chiều của giao tiếp?

Trường hợp đặc biệt là khi thiết bị được đề cập là loại truyền qua, như modem cũ hoặc bộ chuyển đổi FT232 hiện đại. Họ không sử dụng chân Tx / Rx để liên lạc với máy tính, họ sử dụng chúng để truyền thông tin của máy tính xuống xa hơn. Vì lý do này, chân của chúng được đặt tên theo các tín hiệu đi qua.

CẬP NHẬT: Dưới đây là một vài ví dụ để minh họa điểm.

Có lẽ hàng triệu người đang sử dụng Arduinos ngày nay, một số thậm chí không có ý tưởng nhỏ nhất về cách thức hoạt động của nó. Họ kết nối Tx với Rx, Rx với Tx, Gnd với Gnd và họ rất tốt để đi. Điều họ thường không nhận ra, đó là về mặt kỹ thuật, họ đang tạo ra modem null, cho phép hai MCU nói chuyện với nhau.

Bây giờ, cùng một số người đôi khi muốn thêm kết nối USB vào Arduinos của họ. Chúng kết nối TX với TX và RX với RX trên bộ chuyển đổi hoặc chip chuyển đổi. Lưu ý rằng những người thường được đặt tên là "TX-IN" và "RX-OUT" để tránh nhầm lẫn. Một lần nữa, điều có vẻ là hiển nhiên nhưng hiếm khi nghĩ đến, đó là về mặt kỹ thuật, bộ chuyển đổi USB này là một thiết bị truyền qua. Những gì nó "nói" trên chân RX không đến từ chính bộ chuyển đổi, nó đến từ thiết bị ở phía bên kia của dòng. Và đoán xem? Nó được kết nối với pin TX ở đâu đó.


Điều này là không chính xác. Tiêu chuẩn chỉ định DTE và DCE (hai điều nói chuyện với nhau) và TX / RX được chỉ định theo quan điểm của một trong những điều này (tôi quên điều đó). Chi tiết này đã bị mất trong những năm qua và việc sử dụng các nhãn đã trở nên mờ ám đến nỗi ngay cả các kỹ sư điện có kinh nghiệm cũng mắc lỗi.
Steve

Câu trả lời của SamGibson là rất tốt.
Steve

2
@Steve "Chi tiết đã bị mất"?! Các đặc điểm kỹ thuật của RS232 là trên tất cả các trang web! Tên TX / RX được chỉ định cho phía DTE vì DTE và DCE không "nói chuyện với nhau" qua các chân đó, chúng sử dụng nhiều tín hiệu điều khiển cho điều đó. Modem và máy tính không có gì để nói với nhau . Modem chỉ đơn giản là truyền những tín hiệu đó qua. Nhưng bạn có thể kết nối hai DTE bằng cách sử dụng null-modem và quan điểm của bạn là ở đâu? Cả hai đều là máy tính, họ đang nói chuyện với nhau và đó chính xác là tình huống được mô tả trong câu hỏi của OP.
Maple

DTE đến DTE tất nhiên hoạt động. Tôi ngạc nhiên khi bạn không bao gồm bất kỳ thông tin nào về DTE và DCE trong câu trả lời của bạn, tuy nhiên, điều này giúp ích rất nhiều cho việc hiểu tại sao câu trả lời của bạn là chính xác. Tôi cho rằng tôi đã nói sai khi tôi nói câu trả lời của bạn không chính xác, nhưng nó vẫn tồn tại sự hiểu lầm khác ở đây - Bởi "chi tiết đã bị mất" Tôi có nghĩa là hầu hết các kỹ sư thậm chí không nghĩ về điều này và chỉ "thử cho đến khi nó đúng ", Hoặc gắn nhãn thiết bị DCE với tên tín hiệu DTE. Và, không bao gồm chi tiết đó giúp duy trì điều này một chút ...
Steve

1
@Steve Tôi cố tình tránh đề cập đến DTE / DCE vì bạn không thể đến đó mà không thảo luận nhiều vấn đề quan trọng nhưng không liên quan đến các tín hiệu kiểm soát câu hỏi, v.v ... Dù sao, tôi đã cập nhật câu trả lời với một số ví dụ để làm cho mọi thứ rõ ràng hơn.
Maple

6

Chúng thường liên quan đến thiết bị, vì các thiết bị RS232 không có mối quan hệ "chính / phụ" hoặc "máy khách / máy chủ". Giao thức SPI có kiến ​​trúc chính / phụ, vì vậy chúng được gắn nhãn "MISO" (Master In Slave Out) và "MOSI" (còn lại như một bài tập cho học sinh). Đó là ở cấp độ thiết bị; Tôi không thể nói với những gì các nhà thiết kế mạch cá nhân có thể chọn làm tên mạng.


Họ có mối quan hệ "DTE / DCE", nhưng như @Maple mô tả, họ dừng lại ở đó. Trên thực tế một số lịch sử sâu sắc có thể giải thích những gì họ đã làm.
gbarry

Câu trả lời này, trong khi mô tả chính xác cách mọi người đối xử với RS-232, là sai về mặt kỹ thuật (như @gbarry chỉ ra lại DCE / DTE).
Steve

4

Thật không may, đối với các kỹ sư, đây là một câu hỏi hóc búa giữa hai lát cỏ.

Không có giải pháp logic thực sự, cả hai cách đều có thể có ý nghĩa logic.

Tôi cố gắng gắn nhãn ghim, pcbs, bố trí IC, bảng kết nối, phần mềm, với các từ IN / OUT và / hoặc mũi tên chỉ hướng. Sử dụng các từ "TX-out" "RX-in" "CTS-out" "RTS-in" trên sơ đồ của bạn, v.v ... Điều này giải quyết hoàn toàn sự mơ hồ. [Tôi thường nghĩ rằng TX và RX phải được đặt tên chính xác, tức là TX phải là đầu ra].

Đây là một pcb nơi các tín hiệu vượt qua một hàng rào cách ly. Lưu ý các mũi tên, vì vậy ai đó gỡ lỗi nó, hoặc cố gắng lắp một đầu nối rõ ràng biết các tín hiệu đang đi theo hướng nào.

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

Các tín hiệu điều khiển thậm chí còn tồi tệ hơn. (cũng như hướng điện, chúng cũng có hướng điều khiển logic)

Tín hiệu điều khiển có tài liệu đặt rõ ràng chức năng: 'CTS (ra) báo hiệu cho máy tính rằng thiết bị đã sẵn sàng nhận dữ liệu'

Đôi khi cả hai cách đều có ý nghĩa cùng một lúc: Tôi có một con chip trong đó RX và TX được đặt tên chính xác với chức năng riêng của chúng (từ phối cảnh chip). Nhưng các chân bắt tay được đặt tên là CTS và RTS khớp với các chân PC mà chúng sẽ kết nối, bởi vì đây là những gì phần mềm và đèn trạng thái đề cập đến.

Một cái gì đó đã giúp ích trong những năm gần đây, có các thiết bị sử dụng sử dụng đầu nối DE9F kết nối trực tiếp với cổng nối tiếp PC bằng cáp thông qua mf. Điều đó đã làm giảm sự miễn phí cho tất cả quá khứ.


1
Bạn đang hiển thị RXD>với mũi tên chỉ ra từ pin, điều đó có nghĩa là có tín hiệu phát ra từ pin đó - tôi chắc chắn sẽ mong đợi đó là đầu ra , không phải đầu vào!
ống

@pipe Nếu bạn xem xét vị trí của con chip trên bảng mạch, liên quan đến đầu nối, thì nó hoàn toàn không mơ hồ với người đang làm việc trên sản phẩm mà không có tài liệu. Mũi tên thể hiện chính xác luồng tín hiệu. [điểm ngôn ngữ thú vị: Không giống như "out" / "in", mũi tên chỉ có ý nghĩa nội tại trong bối cảnh không gian]
Henry Crun
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.