Tại sao Windows hiển thị, Thiết bị này có thể thực hiện thông báo nhanh hơn nếu tôi kết nối một cách vụng về?


74

Tôi nhận thấy rằng trên cả Windows XP và 7 (và 2 máy tính khác nhau) tôi có thể quản lý để có được thông báo "Thiết bị này có thể hoạt động nhanh hơn nếu bạn kết nối với cổng USB 2.0 tốc độ cao" để bật lên nếu tôi kết nối cáp rất chậm (hoặc vật lộn một chút khi làm điều đó chỉ bằng một tay). Nếu tôi kết nối nó đủ nhanh hoặc bình thường, bằng cả hai tay, không có thông báo. Trong cả hai trường hợp, tất cả các thiết bị như vậy dường như hoạt động bình thường.

Điều tôi nghĩ xảy ra là sự tiếp xúc giữa các dây bị gián đoạn đủ thời gian trong khi kết nối chậm / vụng về mà bộ điều khiển USB nghĩ rằng nó không phải là 2.0 mà là chậm hơn. Nhưng tại sao nó lại nghĩ như vậy? Hoặc tại sao nó không chỉ nói "Bạn rất tệ trong việc kết nối cáp, vui lòng rút phích cắm và thử lại"?


Là thiết bị được kết nối với một dongle usb chứ không phải trực tiếp đến hộp của bạn? Nếu vậy hãy thử kết nối trực tiếp thiết bị và không phải là bên thứ 3 để nói.

Nó được kết nối với cổng cáp mặt sau của tháp máy tính để bàn, vì vậy nó không có bất cứ thứ gì giữa bo mạch chủ và thiết bị ở đầu bên kia.
dùng1306322

5
Ai trên trái đất sử dụng cả hai tay để cắm vào thiết bị USB?
PNDA

3
@ Castyham'sLawyer: kịch bản một tay : phích cắm usb (hoặc chìa khóa) đẩy máy tính xách tay quanh bàn khi thử một bên, xoay nó lại, thử một lần nữa, xoay lại để cuối cùng cắm vào. Kịch bản hai tay : cùng một lượng lật nhưng kim giây vẫn giữ laptop.
WoJ

Đợi đã, vậy bạn có cổng USB 1 trên những máy tính xách tay đó không? 0_0
rahuldottech

Câu trả lời:


76

Thông báo đề cập đến việc đàm phán tốc độ dữ liệu đầy đủ (FS) cũ là 12 Mbit / s, thay vì tốc độ dữ liệu tốc độ cao (HS) là 480 Mbit / s. Thực sự rất khó để có được hiệu ứng này từ cổng USB2. Giao thức USB2.0 HS được thiết lập sau một cuộc đàm phán khá phức tạp giữa thiết bị và máy chủ, bởi vì ban đầu mọi thiết bị HS hoạt động như một thiết bị FS.

Quá trình bình thường như sau:

  1. Thiết bị có khả năng HS kéo lên đường D + sau khi nhận được tín hiệu VBUS với điện trở 1-1,5kΩ đến 3,3V. Giống như một thiết bị FS sẽ làm.

  2. Cổng máy chủ phát hiện D + = cao và sau độ trễ giảm tối thiểu 100ms, máy chủ xác nhận trạng thái USB_RESET trên xe buýt, lái cả hai đường D + và D xuống đất với trình điều khiển 45Ω trong 10 hoặc 50ms.

  3. Nếu thiết bị là FS, nó không làm gì cả và đợi cho đến khi kết thúc USB_RESET.

  4. Nếu thiết bị là HS, nó sẽ lái D- cao bằng trình điều khiển HS (nguồn 18mA) trong khoảng 1ms. Điều này sẽ tạo ra một xung có biên độ khoảng 800mV (tải 18ma thành 45Ω) được gọi là "Chirp-K";

  5. Khi phát hiện KẾT THÚC của Chirp-K, nếu máy chủ có khả năng ở chế độ HS, nó sẽ điều khiển tín hiệu này trở lại (cùng 18mA để tải 45Ω), giờ chỉ còn khoảng 50 chuông. Nếu là máy chủ FS, nó sẽ bỏ qua Chirp-K và tiếp tục là FS.

  6. Sau đó, nếu máy chủ có khả năng chế độ HS, nó sẽ chuyển ổ đĩa của mình thành dây D +, tạo thành "Chirp-J", một lần nữa cho 50 Lời nói;

  7. Máy chủ lặp lại mẫu 50 xen kẽ này trong toàn bộ thời gian của trạng thái USB_RESET (10ms trên các cổng trung tâm, 50ms trên các cổng trung tâm gốc);

  8. Sau ba tiếng kêu xen kẽ-K / J, thiết bị nhận ra rằng máy chủ là HS và tự chuyển sang chế độ HS. Điều này có nghĩa là bật kết thúc HS ở đầu thiết bị, làm cho tổng điện trở dây đến 22 và biên độ tín hiệu chirp giảm xuống 400mV, đến mức báo hiệu HS tiêu chuẩn.

  9. Máy chủ tiến hành với các gói bắt đầu HS (SOF) và bắt đầu quá trình liệt kê trong chế độ HS.

Bây giờ mọi người đoán xem phần nào của sự rung chuyển đã phá vỡ giao thức này và khiến máy chủ đánh dấu cổng là FS.


10
Từ viết tắt: FSlà "tốc độ đầy đủ" (USB 1.0, 12 Mbit / s), HSlà "tốc độ cao" (USB 2.0, 480 Mbit / s) và SSsẽ là "SuperSpeed" (USB 3.0, 5 Gbit / s).
isanae

4
Đối phó với các thiết bị USB trong 16 năm qua, tôi phải thừa nhận rằng lần đầu tiên tôi thấy sự sụt giảm từ HS xuống FS. Giao thức cấp trình điều khiển thông thường sử dụng ít nhất hai lần thử nữa để xác nhận USB_RESET trong quá trình liệt kê. Trong trường hợp xấu nhất khi vặn lần đầu tiên, sẽ có một hoặc hai USB_RESET bổ sung theo giao thức được mô tả, do đó, việc quay lại không bao giờ xảy ra ở cấp độ người dùng. Tuy nhiên, một số máy chủ hiện đại đang sử dụng tín hiệu "điều khiển bằng điện áp" thay vì điều khiển dòng điện cổ điển, vì vậy tất cả sự kết hợp cổ điển của các mức phát hiện ngưỡng khác nhau sẽ bị sai lệch và mọi thứ có thể xảy ra.
Ale..chenski

21
@isanae Tôi tự hỏi khi những người tạo đặc tả thiết bị sẽ có tầm nhìn xa để gọi một cái gì đó là "tốc độ chậm".
wizzwizz4

7
@ wizzwizz4 khi họ cố tình và cố tình muốn sản phẩm của họ bị lỗi do tiếp nhận người tiêu dùng kém.
Dan Neely

10
@isanae - USB 1.0 cũng hỗ trợ "tốc độ thấp" là 1,5 Mb / giây.
Michael Karas

32

Khi bạn cắm thiết bị vào cổng USB2, trước tiên máy tính sẽ cố gắng đàm phán kết nối bằng giao thức dữ liệu USB2.
Khi thất bại, nó sẽ thử lại bằng giao thức dữ liệu USB1.

Dự đoán tốt nhất của tôi là kết nối vật lý (do làm lung lay các tiếp điểm) chưa ổn định trong quá trình đàm phán USB2. Vì vậy, nó rơi trở lại USB1, mặc dù thiết bị là thiết bị USB2.

Thật thú vị, Windows nhận ra rằng thiết bị phải có khả năng tốc độ USB2 (thông tin mà nó nhận được từ trình điều khiển) và vì vậy Windows kết luận rằng cổng USB mà bạn cắm vào là cổng USB1 chậm. Windows dường như không kiểm tra xem bản thân cổng có khả năng USB2 hay không.
Và đó là lý do tại sao bạn nhận được thông báo lỗi hơi sai lệch.

PS Chỉ cần thử bản thân mình với máy Windows 10: Hiệu ứng tương tự ở đó.


Điều tương tự đôi khi xảy ra với một thiết bị USB3 trong cổng USB3 ...
davidbak

1
Không. Tốc độ của cổng USB được xác định bởi phần cứng TRƯỚC KHI tham gia vào bất kỳ giao thức dữ liệu nào.
Ale..chenski

3
@AliChen Làm thế nào để nó được xác định?
gronostaj

Xem câu trả lời đầy đủ của tôi. Phần mềm chỉ khởi tạo lệnh thiết lập lại cổng khi thấy bit "cổng kết nối" (ngắt từ nó); phần còn lại được thực hiện trong phần cứng.
Ale..chenski

Từ Wikipedia: "Các thiết bị USB 2.0 sử dụng một giao thức đặc biệt trong khi đặt lại, được gọi là chirping, để đàm phán chế độ băng thông cao với máy chủ / trung tâm. Một thiết bị có khả năng HS [USB 2.0] có khả năng kết nối đầu tiên dưới dạng thiết bị FS [USB 1.0] ( D + kéo lên cao), nhưng khi nhận được USB RESET (cả D + và D− được điều khiển THẤP bởi máy chủ trong vòng 10 đến 20 ms), nó sẽ kéo dòng D− lên cao, được gọi là chirp K. "
Nathan Osman

0

Có thể là bạn đã chèn nó đủ chậm để Windows đã hoàn thành quá trình bắt tay với bộ điều khiển và tại thời điểm đó các liên lạc cần thiết cho giao tiếp USB 2.0 không chạm vào. Điều đó có thể dẫn đến việc Windows nhầm thiết bị USB 2.0 là 1.1 Thiết bị sẽ không có phản hồi trên đường ray được đánh dấu là chỉ có trên USB 2.0 trở lên.


Đây có phải là tình huống phổ biến đối với các thiết bị usb phiên bản 2.0 mà nó vẫn nhận ra kết nối và không chọn thất bại?
dùng1306322

8
Điều đó có thể xảy ra với các thiết bị USB3 trong cổng USB3 nơi chân USB1 / 2 kết nối trước. Nhưng tôi không thấy điều đó có thể xảy ra với USB1 / USB2. Cả hai chỉ sử dụng 4 chân, một cặp cho nguồn điện, một cặp cho dữ liệu.
Hennes

@hennes tôi đồng ý. Chúng không có sự phân biệt vật lý giữa USB 1 và 2.
Tonny

1
@Tonny Tôi khá chắc chắn rằng tôi đã thấy một số khác biệt trên một số thiết bị USB 1.1 và 2.0 có nhãn hiệu tối nghĩa. Nhưng tôi thừa nhận, có lẽ tôi đã sai.
Stefan

1
@Stefan Trong những ngày đầu của USB, có rất nhiều đầu nối loại rẻ tiền xung quanh có kích thước xấu cho các tiếp điểm. Tôi đã thấy một số trong đó 4 chân trong phích cắm có chiều dài và độ dày khác nhau. Tôi vẫn giữ một vài người xung quanh trong văn phòng để cho mọi người thấy khi chúng ta có một cuộc thảo luận về việc ủng hộ và đặt hàng các loại cáp rẻ tiền.
Tonny
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.