ความแตกต่างระหว่าง / dev / ttyACM0 และ / dev / ttyS0 (พอร์ต Arduino IDE ภายใต้ Linux)


10

ฉันใช้ Arduino IDE เพื่ออัพโหลดภาพร่างไปยัง Arduino Uno ของฉัน ระบบปฏิบัติการของฉันคือ Linux Ubuntu 14.04 LTS Arduino IDE มีสองพอร์ตโดยค่าเริ่มต้นสำหรับการสื่อสารกับ Arduino Uno:

/dev/ttyACM0
/dev/ttyS0
  1. ความแตกต่างระหว่างสองพอร์ตเหล่านี้คืออะไร?
  2. "ACM0" และ "S0" หมายถึงอะไร
  3. มีไฟล์กำหนดค่าในโครงสร้างโฟลเดอร์ OS ที่อธิบายพารามิเตอร์ของพอร์ตเหล่านี้หรือไม่?

ฉันรู้ว่าเมื่อฉันเลือก/dev/ttyACM0ฉันสามารถส่งข้อมูลไปยัง Arduino Uno ของฉันได้ /dev/ttyS0แต่มันไม่ทำงานเมื่อฉันเลือก

ฉันแค่อยากเข้าใจว่าพอร์ตเหล่านี้คืออะไรกันแน่

คำตอบ:


6

/dev/ttyACM0เป็นอุปกรณ์สื่อสาร USB (CDC) ของรูปแบบย่อย "abstract control model" (ACM) นั่นคือสิ่งที่ Arduino เป็น

/dev/ttyS0 เป็นพอร์ตอนุกรมฮาร์ดแวร์ - ตัวเชื่อมต่อ (ปกติ) 9-pin D ที่ด้านหลังของคอมพิวเตอร์ของคุณ

ถ้าคุณต้องการใช้/dev/ttyS0(ทำไมต้องเป็นคุณ!) คุณจะต้องใช้สายเคเบิลพิเศษที่แปลงสัญญาณแรงดัน RS-232 จากขั้วต่อ 9-pin D เป็นสัญญาณระดับ TTL ที่เหมาะสมสำหรับ Ardiuno และต่อสายเข้ากับหมุดขวา บนกระดาน


-1

ภาษาระดับสูงบางภาษา (เช่น matlab) ใช้พอร์ตอนุกรมทั้งหมดเป็น / dev / ttyS # selecter ในการเชื่อมต่อกับ Arduino ด้วย MATLAB คุณต้องเปลี่ยนชื่อ / dev / ttyACM0 เป็น / dev / ttyS #

นี่อาจเป็นตัวเลือกใน Arduino IDE และนั่นคือเหตุผลที่มีตัวเลือกเหล่านั้นอยู่


1
เหตุใดคุณจึงเปลี่ยนชื่อเมื่อ symlink สามารถทำเคล็ดลับได้
PypeBros
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.