Giao diện Arduino với các thiết bị USB có thể không có lá chắn máy chủ USB không?


8

Tôi đang tìm cách kết nối các thiết bị USB khác nhau với Arduino Uno (cụ thể là gamepad và webcam, nhưng tôi quan tâm đến trường hợp chung). Điều này có thể thực hiện được mà không cần sử dụng tấm chắn máy chủ USB, vì Uno có cổng USB và bộ chuyển đổi USB nối tiếp? Tôi có thể sử dụng cái khiên, nhưng tôi tò mò nếu / tại sao nó không cần thiết.

Trang web Sparkfun nói rằng:

SparkFun USB Host Shield chứa tất cả logic kỹ thuật số và mạch tương tự cần thiết để thực hiện bộ điều khiển ngoại vi / máy chủ USB tốc độ đầy đủ với Arduino của bạn.

Có phải Arduino chưa chứa cái này, chỉ cần phần mềm thích hợp (mặc dù rõ ràng việc sử dụng thư viện đã được viết cho Host Shield) dễ dàng hơn. Hoặc có những hạn chế về phần cứng?

Theo Ethernet USB Dongle có thể thay thế lá chắn ethernet cho arduino không? (Câu trả lời của Majenko), về mặt lý thuyết, nó có thể được thực hiện với Hạn, nhưng không phải với Uno. Trong trường hợp đó, có phải vì Uno sử dụng ATmega16U2 thay vì FTDI FT232RL cho giao tiếp USB?


Tôi không nghĩ rằng điều đó là không thể, USB là một loại bus nối tiếp với các giao thức cụ thể, tức là gắn thẻ thiết bị chia tách các thiết bị theo các khoảng thời gian cụ thể (một số giao thức tương tự như một dây). Tôi nghĩ hạn chế duy nhất là tốc độ, do đó, đồng bộ hóa tất cả các lệnh và dữ liệu cụ thể của USB là điều gây ra sự cố,
Tướng Chaos

@GeneralChaos Bạn nói đúng, nó không "không thể tin được" - nhưng nó rất không thực tế. Có một phần mềm triển khai thiết bị USB (VUSB) không cần phần cứng đặc biệt nào. Đó là iffy tốt nhất và hầu như không hoạt động vào thời điểm tốt nhất. Không có lý do tại sao bạn không thể viết một máy chủ tương đương - tuy nhiên, nó không bao giờ có thể hoạt động ở mức cao hơn 1,5 MHz của USB 1.0 "Tốc độ thấp", vì vậy không bao giờ có thể nói chuyện với bất cứ thứ gì ngoài bàn phím hoặc chuột đơn giản. Những thứ như ethernet hoặc webcam là hoàn toàn không thể nếu không có phần cứng Host hoặc OTG, do Do đã tích hợp vào chip chính.
Majenko

Câu trả lời:


13

Trước tiên, bạn cần tìm hiểu những điều cơ bản về cách thức hoạt động của USB.

Trong USB có hai "thứ" chính: Máy chủ và Thiết bị.

Bạn có một Máy chủ (thường là máy tính của bạn) và nhiều Thiết bị (như Arduinos, Máy in, Máy quét, Webcam, khóa WiFi, v.v.).

Trở thành chủ nhà bao gồm việc biết về những thiết bị bạn sẽ gắn bó với bạn và cách liên lạc với họ. Trở thành một thiết bị có nghĩa là chỉ cần giao tiếp với chủ nhà theo cách riêng của bạn.

Như bạn có thể thấy, đây là một công việc phức tạp hơn nhiều so với việc trở thành một thiết bị.

Arduinos là thiết bị. Các chip giao diện USB nhỏ mà họ sử dụng có công suất rất thấp và chỉ có thể là một thiết bị, không bao giờ là máy chủ.

Nếu bạn muốn cắm một thiết bị vào một cái gì đó thì nó phải là một máy chủ (lưu ý: Tôi cố tình bỏ qua các trung tâm ở đây).

Arduino Do sử dụng một con chip mạnh hơn rất nhiều và có khả năng trở thành máy chủ (sử dụng chế độ On-The-Go).

Để làm điều đó với bất cứ thứ gì kém mạnh hơn Do bạn yêu cầu phần cứng bổ sung được thiết kế riêng để trở thành máy chủ USB - và đó là nơi bảo vệ máy chủ USB đi vào. Nó có một con chip được thiết kế đặc biệt để trở thành máy chủ lưu trữ USB. có thể cắm một thiết bị vào nó.

Không có con chip nào trên Uno được thiết kế để trở thành máy chủ lưu trữ. Họ không có sức mạnh.


4

Không. USB phân biệt nghiêm ngặt giữa vai trò máy chủ và thiết bị. Một vài con chip có các khối chức năng có khả năng thực hiện một trong hai vai trò, nhưng 8u2 / 16u2 không phải là ví dụ về điều này.

Các bộ chuyển đổi nối tiếp USB điển hình như FT232, CP210x, CH340, PL2303, v.v ... cũng là những thiết bị nghiêm ngặt và không có khả năng trở thành máy chủ

Có những MCU có khả năng lưu trữ rẻ tiền như Kinetis KL25Z, nhưng để sử dụng chúng ở dạng rẻ nhất, bạn sẽ cần một cách tiếp cận phần mềm khác (ví dụ như mbed thay vì Arduino) và nhiều nỗ lực cá nhân hơn. Teensy-LC có liên quan, nhưng bạn phải trả nhiều tiền hơn cho trình trợ giúp tải mã Arduino trên nó so với MCU chạy chính chương trình của bạn.

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.