Bạn cần phải thực hiện các thiết bị ngăn xếp như một thiết bị CDC ACM (còn gọi là ảo cổng COM hoặc VCP). Hầu hết các nhà cung cấp vi điều khiển có hỗ trợ USB đều có mã mẫu hoặc ghi chú ứng dụng.
Cho rằng, thiết bị của bạn sẽ giống như một cổng COM theo như Windows được quan tâm. Ở cuối thiết bị, bạn sẽ nhận được các khối dữ liệu thô được chuyển. Một lớp trừu tượng thích hợp có thể được triển khai cho cả hai giao diện UART và USB để cung cấp cho giao diện tương tự nếu cần thiết.
Một lưu ý là thiết bị USB yêu cầu ID nhà cung cấp do Diễn đàn của người triển khai USB cấp, tại số $5000 fee (đúng 23 tháng 1 năm 2016). Nếu bạn định phát hành thiết bị của mình trong môi trường hoang dã, bạn thực sự cần một thiết bị nếu thiết bị của bạn được nhận diện và hoạt động chính xác với các thiết bị khác. Một số nhà cung cấp vi điều khiển sẽ cho phép bạn sử dụng ID nhà cung cấp của họ cho một tập hợp con ID sản phẩm miễn phí hoặc một khoản phí nhỏ hơn, nhưng họ chỉ có thể làm điều đó nếu bạn mua số lượng thiết bị đáng kể từ họ.
Một vấn đề khác là trong khi trên OSX hoặc Linux, CDC/ACM được nhận diện mà không cần bất kỳ trình điều khiển bổ sung nào, Windows cồng kềnh hơn và yêu cầu tệp INF để liên kết Nhà cung cấp USB và ID sản phẩm cụ thể với trình điều khiển usbser.sys. Sau đó, bạn nhận được vào toàn bộ thế giới của ký trình điều khiển, đó là điều cần thiết nếu sử dụng Windows Vista 64, hoặc bất kỳ phiên bản của Windows 7. Chữ ký ký mã cũng sẽ chi phí bạn tiền. Nếu nhà cung cấp của bạn đã cung cấp mã VCP mẫu, thì họ cũng có thể cung cấp trình điều khiển đã ký. Ví dụ VCP STM32 của STMicroelectronios thậm chí còn được chứng nhận WHQL do đó có thể được mua tự động thông qua Windows Update. Vì vậy, upshot là để thử nghiệm, bạn có thể làm điều đó nếu nhà cung cấp của bạn đã cung cấp mã và trình điều khiển đã ký (hoặc bạn không sử dụng Windows), nhưng để triển khai một sản phẩm, bạn sẽ cần một ID nhà cung cấp và ký mã chứng chỉ. Đó là một chút của một bãi mìn để trung thực.
Cách tiếp cận đơn giản hơn là sử dụng chip FTDI USB < -> Chip nối tiếp. Điều này đặc biệt hữu ích đối với vi điều khiển không có bộ điều khiển USB, nhưng tốc độ truyền dữ liệu sẽ bị giới hạn bởi vi mô và/hoặc giao diện UART của FTDI thay vì tốc độ USB. Một chip FTDI có thể được sử dụng như đang sử dụng VID/PID của FTDI hoặc bạn có thể tùy chỉnh nó bằng VID/PID của riêng bạn.Việc tùy chỉnh đặt bạn trở lại cần phải có được một VID và một chứng chỉ ký, nhưng cho phép thiết bị của bạn được xác định duy nhất hơn là một cổng nối tiếp chung chung.
Chắc chắn sử dụng FTDI là cách tốt nhất để thực hiện. – TJD
FTDI? Vui lòng giải thích. Người quản lý của tôi yêu cầu tôi cấu hình thiết bị ngoại vi USB tích hợp để hoạt động như UART. Theo như tôi có thể nói, điều này là không thể, nhưng ông khẳng định rằng nó là. –
Chip FTDI chuyển đổi UART sang USB. Vì vậy, nội bộ bạn sẽ chỉ sử dụng UART bình thường ngoại vi, nhưng bên ngoài bạn cắm vào với USB. Về phía PC, bạn nhận được một cổng COM ảo để bạn có thể tương tác với nó như một cổng nối tiếp bình thường. Điều này là rất sạch sẽ và dễ dàng và cách mọi người làm điều đó. Tôi không thể tưởng tượng tại sao bạn sẽ thực sự cần phải sử dụng thiết bị ngoại vi USB của chip của bạn. – TJD