Sự khác biệt giữa / dev / ttyACM0 và / dev / ttyS0 (cổng Arduino IDE trong Linux)


10

Tôi sử dụng Arduino IDE để tải các bản phác thảo lên Arduino Uno của tôi. Hệ điều hành của tôi là Linux Ubuntu 14.04 LTS. Arduino IDE có hai cổng theo mặc định để liên lạc với Arduino Uno:

/dev/ttyACM0
/dev/ttyS0
  1. Sự khác biệt giữa hai cổng này là gì?
  2. "ACM0" và "S0" nghĩa là gì?
  3. Có các tệp cấu hình ở đâu đó trong cấu trúc thư mục HĐH mô tả các tham số của các cổng này không?

Tôi biết rằng khi tôi chọn /dev/ttyACM0, tôi có thể gửi dữ liệu tới Arduino Uno của mình. Tuy nhiên nó không hoạt động khi tôi chọn /dev/ttyS0.

Tôi chỉ muốn hiểu rõ hơn những gì các cổng này là chính xác.

Câu trả lời:


6

/dev/ttyACM0là một thiết bị giao tiếp USB (CDC) thuộc loại "mô hình điều khiển trừu tượng" (ACM). Đó là những gì Arduino là.

/dev/ttyS0 là một cổng nối tiếp phần cứng - đầu nối D 9 chân (thông thường) ở phía sau máy tính của bạn.

Nếu bạn muốn sử dụng /dev/ttyS0(tại sao bạn lại thế?!), Bạn sẽ cần một cáp đặc biệt để chuyển đổi tín hiệu điện áp RS-232 từ đầu nối D 9 chân thành tín hiệu mức TTL bên phải cho Ardiuno và nối nó vào các chân phải trên bảng.


-1

Một số ngôn ngữ cấp cao (ví dụ matlab) coi tất cả các cổng nối tiếp là bộ chọn / dev / ttyS #. Để giao tiếp với Arduino với MATLAB, bạn phải đổi tên / dev / ttyACM0 thành / dev / ttyS #.

Đây cũng có thể là một tùy chọn trong Arduino IDE và đó là lý do tại sao các tùy chọn đó tồn tại.


1
Tại sao bạn lại đổi tên nó khi một symlink có thể thực hiện thủ thuật?
PypeBros
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.