USB Hub hoạt động như thế nào?


9

Tôi biết câu trả lời của google và câu trả lời của wikipedia cho câu hỏi trên. Nhưng tôi có một câu hỏi cụ thể hơn trong tay. Các trung tâm USB có nhiều cổng đến và cổng và chỉ cần một cổng ra, tôi có thể sử dụng số n của các thiết bị với nhau vì điều này. Nhưng, tôi không hiểu làm thế nào một cổng USB có thể truyền dữ liệu với số cổng USB?
Làm thế nào nó có thể gửi dữ liệu khác nhau đến tất cả các cổng USB cùng một lúc?

*

sơ đồ

mô phỏng mạch này - Sơ đồ được tạo bằng CircuitLab

*.


1
Khá giống với cách mà bộ định tuyến mạng của bạn có thể kết nối một cổng LAN (internet) với nhiều thiết bị. Mỗi điểm cuối (thiết bị USB) được gán một địa chỉ và các hub chỉ cần định tuyến các yêu cầu từ máy chủ đến đúng thiết bị bằng cách theo dõi địa chỉ nào trên cổng nào. USB đơn giản hơn nhiều theo nghĩa là chỉ có một chủ (cổng máy chủ) khởi tạo tất cả các giao dịch.
Tom Carpenter

@TomCarpenter Sau đó, cổng USB sẽ gửi các dữ liệu khác nhau như thế nào?
Aaditya Sahay

1
Cổng máy chủ yêu cầu một điểm cuối cụ thể để nói chuyện. Điểm cuối chỉ nói lại khi được chủ nhà yêu cầu.
Tom Carpenter

@TomCarpenter Nhưng tất cả chúng đang được sử dụng đồng thời và không phải từng cái một, mà là tất cả cùng nhau.
Aaditya Sahay

3
Hãy nhớ rằng bus USB có thể chạy với tốc độ tối đa 480Mbps trên USB 2.0. Chủ nhà chỉ nói chuyện với một điểm cuối cùng một lúc, nhưng nó nói chuyện với tất cả chúng một cách tuần tự và chuyển đổi giữa chúng nhanh đến mức bạn không thể nói. Các mạng tương tự làm. "Này, chuột trên cổng 1, cho tôi biết nếu bạn đã di chuyển. Ok bây giờ bàn phím trên cổng 2 bạn có nhấn phím nào không? Bây giờ bạn có trên cổng 3, ổ đĩa flash, lưu trữ dữ liệu này cho tôi. cần nói chuyện với? Không, được rồi, chuột vào cổng 1, cho tôi biết nếu bạn đã di chuyển ... "
Tom Carpenter

Câu trả lời:


16

Đó là tất cả để làm với trọng tài. Bất kỳ hệ thống nào yêu cầu nhiều thiết bị được kết nối đều cần một số cách xác định ai sẽ nói chuyện khi nào. Có các chương trình khác nhau như bạn mong đợi tùy thuộc vào ứng dụng.

Một ví dụ phổ biến - trong mạng chúng ta có nhiều nút nói chuyện với nhau. Điều này được thực hiện bởi mỗi nút có một địa chỉ (ví dụ địa chỉ IP) và khi một nút muốn nói chuyện với một nút khác, nó sẽ gửi một gói đến địa chỉ đó. Sau đó, bạn có các thiết bị như bộ định tuyến nhận các gói đến trên nhiều cổng và chuyển tiếp chúng đến đúng cổng. Việc phân xử được thực hiện bằng cách sử dụng bộ nhớ để lưu trữ các gói cho đến khi cổng đích miễn phí.


Bây giờ vào USB. Điều này thực sự đơn giản hơn nhiều so với kết nối mạng vì không phải tất cả các nút đều được thực hiện như nhau. Bạn có hai loại, một máy chủ lưu trữ và một điểm cuối. Chỉ có một máy chủ duy nhất, nhưng có thể có nhiều điểm cuối. Trong trường hợp này trọng tài dễ dàng hơn nhiều vì chỉ có cổng máy chủ được phép nói chuyện theo ý muốn. Điểm cuối chỉ được phép nói chuyện khi được chủ nhà yêu cầu và chủ nhà chỉ nói chuyện với một điểm cuối tại một thời điểm.

Đối với các gói máy chủ-> điểm cuối, các trung tâm USB chỉ cần chuyển yêu cầu từ máy chủ đến tất cả các điểm cuối. Bởi vì tất cả các điểm cuối đều có một địa chỉ, chỉ một địa chỉ mà yêu cầu được gửi sẽ làm bất cứ điều gì với nó (ví dụ: phản hồi), tất cả những người khác sẽ bỏ qua gói.

Đối với endpoint-> gói máy chủ, trước tiên máy chủ gửi gói đến điểm cuối cụ thể theo địa chỉ để nói "bạn có thể nói ngay bây giờ", và sau đó điểm cuối đó phải gửi phản hồi ngay lập tức. Vì chỉ có một điểm cuối được phép nói chuyện tại bất kỳ thời điểm nào, trung tâm USB sẽ chỉ định tuyến gói từ bất kỳ cổng nào đáp ứng yêu cầu từ máy chủ.


Về cách thức máy chủ lưu trữ các thiết bị được đính kèm và điểm cuối nhận địa chỉ của chúng như thế nào, điều này đạt được thông qua việc liệt kê.

Tất cả các cổng máy chủ và trung tâm đều có điện trở kéo xuống (15kOhm) trên các đường D + và D-. Chúng đặt các dòng dữ liệu của cổng đó vào trạng thái đã biết khi không có thiết bị nào được đính kèm, trạng thái mà cổng sẽ không gửi bất kỳ dữ liệu nào qua các dòng D + / D-.

Khi một thiết bị được gắn vào, thiết bị sẽ tự biết bằng cách kết nối đường dữ liệu D + (tốc độ đầy đủ) hoặc D- (tốc độ thấp) với VCC bằng điện trở 1,5kOhm. Điều này gây ra một sự kiện liệt kê. Cổng sau đó sẽ bắt đầu quá trình định cấu hình thiết bị và gán địa chỉ. Nếu bạn cắm hai thiết bị cùng một lúc, chúng sẽ được liệt kê cùng một lúc .

Nếu không có hub, máy chủ chỉ cần nói chuyện với thiết bị mới và thiết lập nó. Nếu có các hub trong hệ thống, đó là hub báo cáo thiết bị mới được đính kèm . Nếu một trung tâm báo cáo một thiết bị mới được kết nối, máy chủ sẽ hướng dẫn trung tâm thiết lập lại thiết bị mới và bắt đầu liên lạc. Trong quá trình thiết lập lại, điểm cuối được cung cấp địa chỉ mặc định là 0 (*). Sau đó, máy chủ có thể nói chuyện với điểm cuối bằng cách sử dụng địa chỉ mặc định và định cấu hình nó bằng một địa chỉ khác không duy nhất sẽ cho phép nó biết khi nào nó được nói chuyện.

(*) Vì chỉ có một thiết bị được liệt kê tại một thời điểm, địa chỉ 0 sẽ luôn là duy nhất cho thiết bị mới được đính kèm.


Sau đó, bạn có thể hỏi, "làm thế nào tôi có thể có nhiều thiết bị nói chuyện cùng một lúc?". Giả sử bạn có chuột, bàn phím và ổ đĩa flash đều được kết nối với cùng một bộ chia USB. Chúng ta đều biết rằng bạn có thể sử dụng chuột và bàn phím cùng một lúc đồng thời sao chép các tệp vào / từ ổ đĩa flash của mình, nhưng nếu chỉ có một thiết bị có thể nói chuyện cùng một lúc, làm sao có thể như vậy?

Chà, tất cả đều xuất phát từ thực tế là vài trăm mili giây để bộ não của bạn nhận thấy rằng bạn đã nhấn một phím và hy vọng màn hình cập nhật là một điều vĩnh cửu với máy tính. Giao diện USB 2.0 có thể chạy với tốc độ tối đa 480Mb / giây (USB 3.1 có thể chạy với tốc độ tối đa 10Gb / giây!), Điều đó có nghĩa là mặc dù máy chủ chỉ nói chuyện với một điểm cuối tại bất kỳ thời điểm nào, nó có thể quay vòng giữa chúng nhanh đến mức bạn có thể Tôi không nói nó đang làm điều đó.

Máy chủ USB: "Này, chuột trên cổng 1, hãy cho tôi biết nếu bạn đã di chuyển. Bây giờ bàn phím trên cổng 2 bạn có nhấn phím nào để báo cáo không? Bây giờ bạn có trên cổng 3, ổ đĩa flash, lưu trữ dữ liệu này cho tôi. Bất cứ ai khác tôi cần nói chuyện? Không, được rồi, chuột vào cổng 1, cho tôi biết nếu bạn đã di chuyển ... "

Con người: "Ôi nhìn kìa, máy tính nhận thấy tôi vừa di chuyển chuột, nhấn một phím trên bàn phím và sao chép một hình ảnh vào ổ flash, tất cả cùng một lúc!"

Thiết bị chủ theo dõi những địa chỉ điểm cuối nào được sử dụng và sẽ gửi các gói đến từng tuần tự hoặc khi cần thiết (tức là khi hệ điều hành yêu cầu truy cập vào một thiết bị cụ thể). Vì vậy, trong khi nó không phải là tất cả xảy ra đồng thời, trọng tài nhanh đến mức những con thú cưng của máy tính không thể nói lên sự khác biệt.


2
Để thêm: Các thiết bị USB (chỉ chính xác là các điểm cuối gián đoạn, có thể yêu cầu được bỏ phiếu ở một khoảng nhất định xuống đến 1 ms. Miễn là bạn không có hàng trăm thiết bị đầu vào, bạn sẽ không bao giờ nhận thấy sự chậm trễ.
Michael

Làm thế nào để máy chủ biết điểm cuối nào được kết nối? Ngoài ra, điều này dường như không thực sự trả lời câu hỏi ban đầu về các trung tâm. Làm thế nào để họ tương tác trong quá trình này? Làm thế nào để tương tác trong liệt kê?
Yona Appletree

1
@YonaAppletree liệt kê. Máy chủ và trung tâm quét tất cả các cổng của chúng để tìm kết nối thiết bị - chúng phát hiện điện trở kéo lên 1,5kOhm trên D + (Tốc độ đầy đủ) hoặc D- (Tốc độ thấp). Tôi sẽ thêm một số thông tin về cách các điểm cuối được gán một địa chỉ.
Tom Carpenter

@YonaAppletree về các trung tâm trong quá trình hoạt động, câu trả lời đã nói về nó rồi. Đối với máy chủ đến điểm cuối: "Các trung tâm USB chỉ cần chuyển yêu cầu từ máy chủ đến tất cả các điểm cuối". Đối với điểm cuối để lưu trữ: "Vì chỉ có một điểm cuối được phép nói chuyện tại bất kỳ thời điểm nào, nên trung tâm USB sẽ chỉ định tuyến gói từ bất kỳ cổng nào phản hồi"
Tom Carpenter

1

Câu trả lời ngắn hơn: máy chủ lưu trữ dữ liệu được gửi đến một thiết bị cụ thể (được "liệt kê" sơ bộ), một giao dịch tại một thời điểm, theo tuần tự. Các trung tâm phát sóng tất cả các gói cho tất cả các thiết bị. Một thiết bị chỉ đáp ứng với các giao dịch được gửi đến nó. Đó là tất cả, đúng cho các thiết bị HS.

Đối với các thiết bị FS và LS, quy trình phức tạp hơn một chút. Nó sử dụng "trình dịch giao dịch" được xây dựng trong mọi trung tâm cho mọi cổng, người dịch cái gọi là "giao dịch phân tách" thành lưu lượng LS hoặc FS.


Còn USB 3 thì sao?
jbarlow

Các hub USB3 thông minh hơn cho liên kết Siêu tốc độ và sử dụng định tuyến rõ ràng đến thiết bị / điểm cuối. Phần USB2 giữ nguyên. Xem Phần 3.1 "Tóm tắt kiến ​​trúc" của các thông số kỹ thuật USB3.1 gần đây nhất, usb.org/developers/docs/usb_31_052016.zip
Ale..chenski
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.