มันสับสนมาก แต่คุณไม่ต้องกังวลกับมัน ก่อนอื่นให้นึกถึง UART ซึ่งเป็นคำศัพท์ทั่วไป แต่ลองนึกถึงสิ่งที่ก่อให้เกิดโปรโตคอลด้วยบิตเริ่มต้นหนึ่งหรือสองบิตหยุดบิต 7 หรือ 8 โดยทั่วไปเป็นบิตข้อมูลและบางครั้งก็มีความเท่าเทียมกัน มันอาจแตกต่างจากที่นั่นซึ่งทำให้แย่ลงมาก
UART อยู่ที่ระดับ TTL ไม่ว่ามันจะมีความหมายว่าอย่างไร มันเคยเป็น 5 V และตอนนี้ 3.3 V, 1.8 V หรืออะไรก็ตาม; บางที TTL อาจเป็นคำที่ผิด จากนั้นคุณมี / มี RS-232, RS-422 เป็นต้นซึ่งเป็นมาตรฐานแรงดันไฟฟ้าและ PIN ไม่ใช่มาตรฐานโปรโตคอล มันไม่ถูกต้องในการผสมคำศัพท์และพูด RS-232 เมื่อคุณหมายถึง UART บางประเภท
ย้อนกลับไปในวันที่ UART ของคุณอยู่บนมาเธอร์บอร์ดและคุณต้องการตัวเชื่อมต่อบางส่วนกับโลกภายนอกด้วยระดับแรงดันไฟฟ้าที่เวลานั้นเหมาะสมและพิน / สายเคเบิลมาตรฐานบางประเภท ดังนั้นมาตรฐานพิน 25 และ 9 ที่ได้รับความนิยมจึงมักพบได้ในอุปกรณ์ต่อพ่วงต่างๆและในโลกพีซีของ Wintel สิ่งนี้ถูกเรียกว่าพอร์ต COMmunication หรือบางครั้งพอร์ตอนุกรม
แน่นอนว่าพอร์ตที่มีข้อมูลอนุกรมสามารถและเรียกว่าพอร์ตอนุกรม, SPI, I²C, MDIO, UART, HDLC, SDLC, ฯลฯ และแม้กระทั่ง USB และ SCSI; คุณสามารถคลั่งไคล้กับสิ่งนี้ได้ โดยทั่วไปแล้วพอร์ตอนุกรมหมายถึงพินที่คุณสามารถรับได้ที่ UART
โลกของ Unix / Linux พูดtty
แทนcom
/ serial
/ uart
แต่มันเป็นสิ่งเดียวกัน
ตอนนี้มีการดำเนินการ คุณสามารถซื้อชิป UART บางส่วนได้ด้วยอินเทอร์เฟซบางตัว (ใช่คุณสามารถมี SPI UART ซึ่งเป็นอนุกรมที่ปลายทั้งสองด้านหรือI²C UART หรือบัสเฉพาะหรือ USB ฯลฯ ) แม้กระทั่งในวันที่ UART มีรถบัสอยู่ด้านหนึ่งซึ่งในที่สุด CPU ก็กำลังสื่อสารผ่าน วันนี้เรามี FTDI และผู้ขายรายอื่นที่สร้างโซลูชัน USB UART ที่ดีไม่ได้ทำให้ชั้นของอินเตอร์เฟซระหว่างซอฟต์แวร์กับ UART แตกต่างกันและด้านอื่น ๆ ของ UART นั้นมีส่วนต่อประสานไม่ว่าจะเป็นระดับ TTL / ชิป RS-232C หรือ RS-422 เป็นต้น
Arduinos ยุคแรก ๆ คุณมักจะใช้บอร์ด FTDI USB-U-UART ที่ให้กำลังแก่ Arduino บางตัวมีพลังงาน USB และอนุกรม / UART บนบอร์ด Arduino เองและจากนั้นก็เชื่อมต่อข้ามบอร์ดไปยัง UART บนชิป AVR (จัดการตัวประมวลผลบางตัวที่มีบัสหลายชั้นเพื่อให้ซอฟต์แวร์สื่อสารกับ UART ซึ่งมี อินเทอร์เฟซบางส่วนในอีกด้านหนึ่งของมันในกรณีนี้หมุดบนขอบของ AVR ที่ระดับแรงดันไฟฟ้าของชิป TTL)
เนื่องจากฟังก์ชั่น UART ไม่ได้มีการเปลี่ยนแปลงในทศวรรษที่ผ่านมาทำไมคำศัพท์ซอฟต์แวร์หรือแม้แต่แอปพลิเคชันซอฟต์แวร์เปลี่ยนไปในระดับแอปพลิเคชัน เขียนแอปพลิเคชัน Linux / Unix TTY เมื่อ 10-15 ปีที่แล้วกับชิป UART บนเมนบอร์ดของคุณและมีโอกาสที่ดีที่จะยังคงทำงานได้ในปัจจุบันด้วยระดับ USB เป็น TTL หรือ USB ระดับ RS-232C หรือ RS-422 นิยามระดับ เช่นเดียวกันสำหรับ Windows และฉันมีรหัสเก่าที่ยังใช้งานได้ทั้ง ในโลกของ Windows จะใช้คำว่า COM
ฉันไม่ได้ใช้ Arduino sandbox ในระยะเวลาหนึ่งและถ้าเป็นเช่นนั้นบน Linux แต่ฉันจะไม่แปลกใจถ้าโปรแกรมที่เป็น Java ถ้าฉันจำได้ถูกต้องเป็นชื่อสามัญและใช้ชื่อระบบดังนั้นttyS2
บน Linux และ COM2 บน windows
การอ่านคำถามของคุณอีกครั้งอาจเป็นไปได้อีกมากโดยใช้ประโยชน์จากจำนวนซอฟต์แวร์ที่มีอยู่แล้วที่ใช้การเรียก API เหล่านี้ อีกครั้งเป็นเวลาหลายทศวรรษที่ไม่มีเหตุผลว่าทำไมคุณไม่สามารถสร้างพอร์ตเสมือนในซอฟต์แวร์ที่นำข้อมูลสองทิศทางนี้ลงไปได้ทุกอย่างที่คุณคิด UART to Ethernet เป็นอุปกรณ์ที่ใช้กันทั่วไปและในห้องเซิร์ฟเวอร์ที่เซิร์ฟเวอร์ยังคงใช้พอร์ต COM / TTY / RS-232 เป็นอย่างมากคุณสามารถมีเซิร์ฟเวอร์เทอร์มินัลซึ่งมีอินเตอร์เฟซจำนวนมากซึ่งคุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์จำนวนมาก จากนั้นอีเทอร์เน็ตที่อยู่อีกด้านหนึ่งจากนั้นหากคุณเลือกที่จะไม่เทลเน็ตคุณสามารถติดตั้งไดรเวอร์พอร์ต COM เสมือนได้
จากนั้นแอปพลิเคชันของคุณบนคอมพิวเตอร์ของคุณคิดว่ากำลังพูดคุยกับพอร์ต COM แต่ในความเป็นจริงแล้วกระแสข้อมูลไบต์กำลังกระโดดบนอีเทอร์เน็ตจากนั้นกดเซิร์ฟเวอร์เทอร์มินัลจากนั้นกดไปที่ระดับ UART ถึง RS-232C เซิร์ฟเวอร์และสำรองข้อมูลในลักษณะเดียวกัน
บางครั้งไม่มีเหตุผลที่จะทำให้มันเป็นจริง UART ไม่ว่าด้วยเหตุผลใดก็ตามทำให้พอร์ต COM เป็นแบบเสมือนดังนั้นซอฟต์แวร์ที่เขียนขึ้นสำหรับการเรียก API เหล่านั้นยังคงทำงานได้ คุณอาจจะนึกถึงซอฟต์แวร์ธนาคารโบราณที่เรายังคงใช้ซึ่งมีเทอร์มินัลโง่ไปยังอินเทอร์เฟซ UART ที่บางทีในสมัยนั้นมีการเดินสายหรือเข้าโมเด็มเพื่อเซิร์ฟเวอร์ในที่สุด คุณสามารถทำให้ซอฟต์แวร์นั้นยังคงทำงานได้ผ่านการจำลองจำนวนมากรวมถึงพอร์ต COM เสมือนที่ในปัจจุบันมีแนวโน้มว่าจะลดลงอีเทอร์เน็ตไปยังเซิร์ฟเวอร์เป็นสตรีมอนุกรม (TCP / IP เป็นต้น)