Sự khác biệt giữa điều khiển luồng DTR / DSR và RTS / CTS là gì?


82

Sự khác biệt giữa điều khiển luồng phần cứng DTR / DSR và RTS / CTS là gì? Khi nào mỗi cái được sử dụng? Tại sao chúng ta cần nhiều hơn một loại điều khiển luồng phần cứng? :)

Câu trả lời:


69
  • DTR - Sẵn sàng cho thiết bị đầu cuối dữ liệu
  • DSR - Tập dữ liệu đã sẵn sàng
  • RTS - Yêu cầu gửi
  • CTS - Xóa để gửi

Có nhiều cách để thực hiện công việc bởi vì không bao giờ có bất kỳ giao thức nào được tích hợp vào các tiêu chuẩn. Bạn sử dụng bất kỳ "tiêu chuẩn" đặc biệt nào mà thiết bị của bạn thực hiện.

Chỉ dựa trên những cái tên, RTS / CTS dường như là một sự phù hợp tự nhiên. Tuy nhiên, nó đi ngược lại so với nhu cầu phát triển theo thời gian. Các tín hiệu này được tạo ra vào thời điểm khi một thiết bị đầu cuối sẽ gửi hàng loạt màn hình đầy dữ liệu, nhưng bộ thu có thể chưa sẵn sàng, do đó cần phải kiểm soát luồng. Sau đó, vấn đề sẽ được giải quyết, vì thiết bị đầu cuối không thể theo kịp dữ liệu đến từ máy chủ, nhưng các tín hiệu RTS / CTS đi sai hướng - giao diện không trực giao và không có tín hiệu tương ứng nào đi theo hướng khác. Các nhà sản xuất thiết bị đã điều chỉnh tốt nhất có thể, bao gồm cả việc sử dụng tín hiệu DTR và DSR.

BIÊN TẬP

Để thêm một chút chi tiết, hệ thống phân cấp hai cấp của nó nên "chính thức" cả hai đều phải xảy ra để giao tiếp diễn ra. Hành vi được định nghĩa trong tiêu chuẩn CCITT ban đầu (nay là ITU-T) V.28.

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

DCE là một modem kết nối giữa thiết bị đầu cuối và mạng điện thoại. Trong mạng điện thoại là một thiết bị khác tách ra khỏi mạng dữ liệu, ví dụ. X.25.

Modem có ba trạng thái: Đã tắt nguồn, Sẵn sàng (Sẵn sàng cho tập dữ liệu là đúng) và được kết nối ( Phát hiện nhà cung cấp dữ liệu )

Thiết bị đầu cuối không thể làm bất cứ điều gì cho đến khi modem được kết nối.

Khi modem muốn gửi dữ liệu, nó sẽ tăng RTS và modem đưa ra yêu cầu với CTS. Modem giảm CTS khi bộ đệm bên trong của nó đầy.

Hoài niệm quá!


1
Tóm tắt độc đáo. Sau đó, điều khiển luồng 'mềm' xOn / xOff ra đời.
n8wrl

Lưu ý: DTR / DSR trở nên ít phổ biến hơn RTS / CTS sau giữa những năm 80. Linux kernal không bao giờ hỗ trợ DTR / DSR: vào thời điểm kernal linux hỗ trợ DTR / DSR, chuỗi 232 đã trở nên lỗi thời.
david

8
@david Những tín hiệu này không bị giới hạn ở RS232, nhưng cũng được sử dụng trong TTL UART. Và những thứ này còn lâu mới lỗi thời.
glglgl

Vì vậy, về mặt DTE (máy tính) và DCE (modem) RTS / CTS đảm bảo DCE (modem) không bị quá tải dữ liệu và DTR / DSR đảm bảo DTE (máy tính) không bị quá tải dữ liệu. Đúng không?
skinnedKnuckles

@skinnedKnuckles đúng với trí nhớ tốt nhất của tôi. Đã quá nhiều năm kể từ khi tôi phải lo lắng về những thứ này.
Mark Ransom

30

Sự khác biệt giữa chúng là chúng sử dụng các chân khác nhau. Nghiêm túc đấy. Lý do cả hai đều tồn tại là RTS / CTS ban đầu không được cho là một cơ chế kiểm soát luồng; nó dành cho các modem bán song công để điều phối ai đang gửi và ai đang nhận. RTS và CTS đã bị lạm dụng để kiểm soát dòng chảy thường xuyên đến mức nó trở thành tiêu chuẩn.


1
Tôi hoàn toàn quên mất một nửa duplex. Tôi mơ hồ nhớ rằng mình đã thấy điều đó trong hoạt động, trên một máy in / đầu đọc thẻ dòng kết hợp. Cảm ơn vì câu trả lời đó.
Mark Ransom

Bây giờ superuser.com đã tồn tại và nó cho chúng ta biết rằng tại thời điểm yêu cầu, kernal linux không hỗ trợ báo hiệu DTR / DSR. superuser.com/questions/345005/… . Điểm khác biệt nữa là: tín hiệu DTR / DSR ít phổ biến hơn / không được sử dụng bởi các modem thông minh.
david

1

Một điểm khác biệt quan trọng là một số UART (đáng chú ý là 16550) sẽ ngừng nhận các ký tự ngay lập tức nếu máy chủ của chúng hướng dẫn họ đặt DSR thành không hoạt động. Ngược lại, các ký tự sẽ vẫn được nhận nếu CTS không hoạt động. Tôi tin rằng ý định ở đây là DSR chỉ ra rằng thiết bị không còn lắng nghe nữa và vì vậy việc gửi thêm bất kỳ ký tự nào nữa là vô nghĩa, trong khi CTS chỉ ra rằng bộ đệm đang đầy; cái sau cho phép một lượng 'trượt' nhất định trong đó dòng điều khiển luồng thay đổi trạng thái giữa việc lấy mẫu DTE và ký tự tiếp theo được truyền đi. Trong (tương đối) các thiết bị sau này hỗ trợ FIFO phần cứng, có thể một số ký tự có thể được truyền sau khi DCE đã đặt CTS ở trạng thái không hoạt độ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.