Làm thế nào để một chip FTDI hoạt động?


20

Một người nào đó đã hỏi tôi vào ngày hôm đó, một FTDI USB sang UART nối tiếp hoạt động như thế nào và tôi nhận ra mình không biết. Tôi đã xem bảng dữ liệu cho FT 232R và sơ đồ khối không thực sự giúp tôi. Bất cứ ai có thể giải thích hoặc liên kết với tôi để giải thích tốt?


3
Nhiều lời giải thích hơn là nó thực hiện phía thiết bị của thiết bị USB CDC? vi.wikipedia.org/wiki/USB_c truyền chỉ_device_ class
kenny

1
@kenny, thực sự, nó không. Nó sử dụng một hồ sơ độc quyền, đó là lý do tại sao bạn cần cài đặt trình điều khiển để sử dụng nó (ít nhất là trên Windows).
avakar

2
@avakar, nó sử dụng trình điều khiển trên tất cả các hệ điều hành, một số chỉ cần tải sẵn.
Kortuk

Câu trả lời:


15

Các chip FTDI thực hiện ngăn xếp giao thức USB. Trách nhiệm của phần cứng này là cho PC của bạn biết (sử dụng một số thông tin nhận dạng) để máy tính của bạn có thể tải trình điều khiển phù hợp cho nó và cũng để quản lý các giao dịch dữ liệu với PC ngay sau đó - tìm kiếm các điểm cuối USB để giải thích rõ hơn về các quá trình này.

Khi các trình điều khiển đó được tải, điều này sẽ chỉ định một bộ lệnh mà PC của bạn có thể sử dụng để truy vấn chip. Phần cứng này đảm nhiệm một mặt của phương trình (giao tiếp với PC của bạn). Mặt khác của nó sẽ là một số phần cứng chuyên dụng để quản lý giao thức UART bao gồm logic, bộ đệm và trình điều khiển dòng và các loại. Tập lệnh được đề cập trước đó sẽ được sử dụng để đọc hoặc ghi vào phần cứng UART. Có lẽ nên đề cập rằng các thiết bị USB được PC thăm dò ý kiến, vì vậy trong trường hợp bạn đang sử dụng mã dựa trên sự kiện, PC của bạn thực sự đang thực hiện một số cuộc thăm dò để xác định rằng dữ liệu mới đã đến - điều này có thể khác với một chuỗi gốc cảng, tôi sẽ không biết.

Logic trên có thể được triển khai như một ASIC chuyên dụng hoặc bằng cách sử dụng lõi vi điều khiển được gỡ xuống để thực thi phần sụn trên ROM. Nếu nó thực sự là một lõi vi điều khiển, thì tôi tưởng tượng UART được kết nối với nó như một thiết bị ngoại vi.


Và bạn chắc chắn rằng không có chương trình phần mềm nào được thực thi? Vi điều khiển thường yêu cầu ít cổng logic hơn so với triển khai phần cứng chuyên dụng ASIC tương đương. Thật khó để nói với một vi điều khiển từ ASIC, nếu phần sụn vi điều khiển không thể truy cập được bởi người dùng.
Ben Voigt

@Ben: Bạn biết gì không? Tôi có lẽ không nên nói điều đó. Câu trả lời đã được chỉnh sửa do sự thiếu hiểu biết của tôi. Tôi đã đi với giả định ruột của mình sau khi nhìn vào sơ đồ khối, nhưng tôi cho rằng sẽ tốt hơn nếu trừu tượng hóa bất kỳ chi tiết uC tiềm năng nào. Tôi cho rằng chỉ những người ở FTDI mới biết, và tôi cho rằng nó phụ thuộc vào chi phí cấp phép cốt lõi so với thời gian phát triển nhà.
Jon L

1
Thông thường, khi bạn có một "giao thức", bạn kết thúc với một "chương trình" để xử lý nó ... ngay cả khi nó chạy trên một động cơ bị chôn sâu trong ASIC hoặc FPGA. Ngoại lệ sẽ là những thứ mà tốc độ nhanh chóng vượt qua sự phức tạp, nơi bạn có thể thấy một cỗ máy trạng thái hoặc song song lớn. Ở giữa là các động cơ trong đó đường dẫn tính toán được xây dựng không tương xứng với logic điều khiển - loại ý tưởng ban đầu đằng sau bộ xử lý DSP
Chris Stratton

2

Có một bộ vi điều khiển USB bên trong có giao thức độc quyền qua USB (do đó cần có trình điều khiển) và chuyển đổi nó thành tín hiệu UART "bình thường" và trở lại.

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.