Nhìn vào các chân của các ổ cắm USB 3.0, tôi có thể thấy rằng có các cặp truyền và nhận riêng biệt, tuy nhiên đối với USB 2.0 chỉ có một cặp pin "dữ liệu". Làm thế nào để USB 2.0 đảm bảo rằng các thiết bị không giao tiếp đồng thời?
Nhìn vào các chân của các ổ cắm USB 3.0, tôi có thể thấy rằng có các cặp truyền và nhận riêng biệt, tuy nhiên đối với USB 2.0 chỉ có một cặp pin "dữ liệu". Làm thế nào để USB 2.0 đảm bảo rằng các thiết bị không giao tiếp đồng thời?
Câu trả lời:
USB hoàn toàn là chủ nô. Thiết bị không truyền trừ khi chủ nhà bảo nó truyền.
Ngay cả cái gọi là chế độ "ngắt" thực sự là bỏ phiếu: ví dụ, cứ sau 8 mili giây (hoặc ít hơn nếu bạn có chuột game thủ), PC hỏi chuột "vị trí của bạn là gì" và chuột trả lời.
Tương tự nếu bạn có giao diện nối tiếp USB chẳng hạn. Khi giao diện nhận dữ liệu trên dòng nối tiếp, nó sẽ không truyền nó đến PC. Thay vào đó, nó sẽ đợi PC bắt đầu giao dịch và yêu cầu dữ liệu.
Đây trang web có một lời giải thích tốt về những gói tin được trao đổi. Về cơ bản, hãy nhớ rằng USB đã được triển khai để cho phép thiết bị ngoại vi câm và rẻ nhất có thể hoạt động, điều đó có nghĩa là hầu hết trí thông minh đều có trong máy chủ, bộ điều khiển usb máy chủ, HĐH và trình điều khiển. Điều này là rất rõ ràng khi đọc thông số kỹ thuật.
Firewire (ví dụ) có một triết lý hoàn toàn khác, nó mạnh mẽ hơn nhiều, nó là đa chủ để các thiết bị có thể nói chuyện với nhau mà không cần sự trợ giúp từ chủ / chủ. Nó thực sự gần gũi hơn nhiều trong triết lý của nó với một cái gì đó như vòng mã thông báo với các giao dịch đẳng thời được đặt trên đầu, so với USB. Tuy nhiên "multi master" có nghĩa là nó yêu cầu một bộ vi điều khiển mạnh mẽ trong các thiết bị, chạy một ngăn xếp phần mềm phức tạp. Do đó, nó đắt hơn, và do đó giới hạn trong các sản phẩm đắt tiền như máy quay phim và vỏ ổ cứng nhanh. Một con chuột lửa không có ý nghĩa, nó sẽ quá đắt. Đó là một trong những lý do khiến FireWire thất bại.
Trong các thiết bị khung USB không thể giao tiếp đồng thời, vì chúng chỉ "nói" khi máy chủ USB "cho phép" chúng nói chuyện. Và máy chủ USB cho phép một thiết bị khác chỉ "nói chuyện" khi giao thức giao dịch tuần tự với thiết bị đầu tiên được hoàn thành. Và các thiết bị USB không có bất kỳ phương tiện nào để tự "nói chuyện", không có cơ chế ngắt hoạt động trong USB. Tóm lại, cơ chế thực hiện kỷ luật này như sau.
Sau khi thiết bị USB 2.0 được kết nối, máy chủ sẽ liệt kê chúng bằng cách gán địa chỉ duy nhất cho mỗi thiết bị.
Mọi giao dịch trên xe buýt được bắt đầu bởi máy chủ USB.
Tiêu đề của mỗi giao dịch USB mang địa chỉ thiết bị cụ thể. Ngay cả khi các giao dịch được phát trên toàn bộ cây USB (trên ví dụ của bộ điều khiển máy chủ cụ thể), chỉ có thiết bị có địa chỉ trùng khớp sẽ phản hồi giao dịch và lấy dữ liệu hoặc phản hồi với dữ liệu.
Liên kết "đối tác" sau đó sẽ gửi xác nhận theo hướng từ người nhận dữ liệu thành công. Toàn bộ giao dịch tuân theo giao thức được thiết lập với trình tự xác định mã thông báo, thời gian chờ và mã sửa lỗi, để đảm bảo tính toàn vẹn của giao dịch.
Tất cả các thiết bị khác chỉ lắng nghe và bỏ qua lưu lượng truy cập không được hướng đến chúng.
Đó là về nó, nó là giao diện "bán song công".