Hầu hết chúng ta không bao giờ nghĩ nhiều đến thiết bị USB của mình, chúng ta chỉ cắm chúng vào và quên chúng đi. Nhưng nếu bạn là người tò mò muốn biết thêm về cách thức hoạt động của USB? Bài đăng Hỏi và Đáp của SuperUser hôm nay có câu trả lời cho câu hỏi của một độc giả tò mò.
Phiên Hỏi & Đáp hôm nay đến với chúng tôi với sự hỗ trợ của SuperUser — một phần của Stack Exchange, một nhóm các trang web Hỏi & Đáp do cộng đồng điều hành.
Ảnh lịch sự của Evilelka Kowalski (Flickr) .
Câu hỏi
Trình đọc SuperUser smeeb muốn biết liệu thực sự có Giao thức truyền thông USB thực tế hay không:
Theo Wikipedia, USB :
- Xác định các loại cáp, đầu nối và giao thức truyền thông được sử dụng trong một bus để kết nối, giao tiếp và cung cấp điện giữa máy tính và thiết bị điện tử.
Nhưng có một thực tế Giao thức giao tiếp USB ? Tôi hiểu rằng:
- Bạn kết nối thiết bị USB với một máy tính (ví dụ như Ubuntu hoặc bất kỳ loại Linux nào).
- Linux tìm thấy trình điều khiển thiết bị cho thiết bị đó bằng cách nào đó ( tiền thưởng nếu bạn biết! ) và tải nó.
- Thiết bị hiện được kết nối dưới / dev / theDevice .
- Các ứng dụng không gian người dùng hiện có thể đọc và ghi vào / dev / theDevice và trình điều khiển xử lý đầu vào và đầu ra mức thấp cho thiết bị / phần cứng bên dưới.
Theo như tôi có thể nói, Giao thức giao tiếp USB không xuất hiện ở bất kỳ đâu trong luồng này. Nếu sự hiểu biết của tôi là đúng, USB chỉ là cáp và kết nối điện giữa PC và thiết bị.
Tôi có sai ở đây không? USB có thực sự triển khai một số loại giao thức cấp thấp nhấn mạnh luồng trên không? Nếu vậy, nó là gì và nó hoạt động như thế nào ở tầm nhìn 30.000 foot?
Có Giao thức Giao tiếp USB thực tế không?
Câu trả lời
Các cộng tác viên của SuperUser RedGrittyBrick và projectdp có câu trả lời cho chúng tôi. Đầu tiên, RedGrittyBrick:
Đúng ( xem các giao thức USB ).
Theo tôi hiểu, thông số kỹ thuật USB xác định một tập hợp phức tạp các giao thức phân lớp và cấu hình thiết bị.
Ví dụ: thiết bị USB có thể tuân theo các mẫu cấp cao như bộ nhớ chung, bàn phím, thiết bị giao diện người, v.v. và được quản lý bởi trình điều khiển thiết bị chung. Một số thiết bị USB có thể giao tiếp ở cấp độ thấp hơn để hỗ trợ USB cấp thấp của hệ điều hành có thể nhận ra rằng cần có trình điều khiển cấp cao hơn dành riêng cho thiết bị.
Tiếp theo là câu trả lời từ projectdp:
Câu hỏi
Có giao thức truyền thông USB cấp thấp đang hoạt động không và nó là gì?
Câu trả lời
Có, có. Thông số kỹ thuật USB bao gồm giao thức USB xác định cách bus được sử dụng ở mức bit. Đây sẽ là giao thức cấp thấp làm nền tảng cho các giao thức cấp cao hơn (tức là lưu trữ hàng loạt, HID, v.v.).
Để biết chi tiết cụ thể về cách thức hoạt động của giao thức USB, OSDev wiki là hữu ích. Đây là một mô tả thú vị sử dụng biểu đồ trình tự để mô tả các giao dịch dữ liệu khác nhau trên mỗi giao thức USB.
Câu hỏi thưởng
Làm cách nào để Linux tìm và tải trình điều khiển thiết bị cho thiết bị đó?
Trả lời thưởng
Trên Linux khi sử dụng nhân hỗ trợ USB, thiết bị USB đang hoạt động sẽ được phát hiện qua phần cứng và nhân do đặc điểm kỹ thuật của USB. Về mặt phần cứng, việc phát hiện được thực hiện bởi Bộ điều khiển máy chủ USB. Sau đó, trong nhân, Trình điều khiển Bộ điều khiển Máy chủ tiếp nhận và dịch các bit cấp thấp trên dây thành thông tin được định dạng giao thức USB. Thông tin này sau đó được điền vào trình điều khiển usbcore trong hạt nhân.
Tôi đã diễn giải từ điều này xuất sắc Bài báo Opensourceforu , có nhiều chi tiết và rõ ràng hơn về câu hỏi của bạn trong ngữ cảnh Linux.
Hãy nhớ xem phần còn lại của cuộc thảo luận sôi nổi thông qua liên kết chủ đề được chia sẻ bên dưới!
Có điều gì đó để thêm vào lời giải thích? Tắt âm thanh trong các ý kiến. Bạn muốn đọc thêm câu trả lời từ những người dùng Stack Exchange am hiểu công nghệ khác? Kiểm tra toàn bộ chuỗi thảo luận tại đây .