ความแตกต่างระหว่าง UART และ RS-232?


80

เวลาส่วนใหญ่RS-232และ UART มารวมกันในทฤษฎีการสื่อสารแบบอนุกรม พวกเขาทั้งสองเหมือนกันหรือไม่ จากการอ่านของฉันฉันได้ข้อสรุป UART เป็นรูปแบบฮาร์ดแวร์ของโปรโตคอล RS-232 ฉันถูกไหม?


1
คำตอบข้างต้นให้ข้อมูลเชิงลึกเกี่ยวกับความแตกต่าง แต่ฉันต้องการเพิ่มคำตอบเหล่านั้นโดยเพิ่มลิงก์จาก National Instruments ที่กล่าวถึงหัวข้อนี้อย่างละเอียด ต่อไปนี้คือลิงค์: RS-232, RS-422, RS-485 การสื่อสารแบบอนุกรมแนวคิดทั่วไป
devangmotwani

คำตอบ:


80

ไม่ UART และ RS-232 นั้นไม่เหมือนกัน

UART รับผิดชอบในการส่งและรับลำดับของบิต ที่เอาต์พุตของ UART บิตเหล่านี้มักจะถูกแทนด้วยแรงดันไฟฟ้าระดับลอจิก บิตเหล่านี้สามารถเป็น RS-232, RS-422, RS-485 หรือบางทีบางสเปคที่เป็นกรรมสิทธิ์

RS-232 ระบุระดับแรงดันไฟฟ้า โปรดสังเกตว่าระดับแรงดันไฟฟ้าเหล่านี้บางส่วนเป็นค่าลบและพวกเขายังสามารถเข้าถึง± 15V สวิงแรงดันไฟฟ้าขนาดใหญ่ทำให้ RS-232 ทนทานต่อสัญญาณรบกวนมากขึ้น (แม้ว่าจะมีเพียงบางส่วนเท่านั้น)

ไมโครคอนโทรลเลอร์ UART ไม่สามารถสร้างระดับแรงดันไฟฟ้าเอง สิ่งนี้ทำด้วยความช่วยเหลือขององค์ประกอบเพิ่มเติม: ไดรเวอร์สาย RS-232 ตัวอย่างคลาสสิกของคนขับรถสาย RS-232 เป็นMAX232 หากคุณผ่านแผ่นข้อมูลคุณจะสังเกตเห็นว่า IC นี้มีปั๊มชาร์จซึ่งสร้าง± 10V จาก + 5V

ป้อนคำอธิบายรูปภาพที่นี่ (ที่มา )


4
นิยาม RS-232 ที่ฉันได้อ่านไม่ได้พูดถึงลำดับของบิตหรือเวลาเลย ฉันจริง ๆ แล้วฉันไม่เคยพบมาตรฐานอย่างเป็นทางการที่อธิบายโปรโตคอลเริ่มหยุดแบบอะซิงโครนัส NRZ
Wouter van Ooijen

1
RS-232 ไม่ได้ระบุลำดับของบิต
slebetman

เห็นได้ชัดว่าการพัฒนารูปแบบตัวละครของ UART นั้นถูกครอบงำโดย บริษัท โทรศัพท์ของ Bell ซึ่งไม่มีสายพันธุ์เกิดขึ้น เป็นผลให้รูปแบบบิตเริ่มต้น / ข้อมูล / พาริตี้ / สต็อปไม่เคยเป็นเรื่องของมาตรฐานที่เป็นอิสระ การใช้งานทั่วทั้งอุตสาหกรรมมีความสม่ำเสมอซึ่งไม่จำเป็นต้องมีคำจำกัดความ "ทางการ" นี่ไม่ใช่ความจริงของการเชื่อมโยงทางกายภาพดังนั้น RS-232 จึงได้รับการพัฒนา
WhatRoughBeast

3
รูปแบบตัวละครของ UART นั้นมาก่อนโมเด็มของ Bell ซึ่งอยู่ในฮาร์ดแวร์ของ Teletype (แปดบิตพร้อมพาริตี้) ใน ASCII และ Baudot ก่อนหน้านั้น
Whit3rd

33

UART (หรือ USART) - Universal (Synchronous) Asynchronous Receiver / Transmitter

นี่คืออินเตอร์เฟซการสื่อสารแบบอนุกรม ส่วน "สากล" หมายความว่าสามารถกำหนดค่าให้รองรับโปรโตคอลอนุกรมเฉพาะต่างๆมากมาย คำนี้เป็นคำทั่วไปและไม่ได้เป็นตัวแทนของมาตรฐานเฉพาะ อย่างน้อยก็หมายความว่ามีTXและหนึ่งRXบรรทัดซึ่งส่งสตรีมข้อมูลอนุกรมและรับสตรีมข้อมูลอนุกรม

RS-232 - มาตรฐานกำหนดสัญญาณระหว่างอุปกรณ์สองเครื่องกำหนดชื่อสัญญาณวัตถุประสงค์ระดับแรงดันไฟฟ้าตัวเชื่อมต่อและพิน

นี่คือมาตรฐานอินเทอร์เฟซเฉพาะที่ช่วยให้การทำงานร่วมกันของอุปกรณ์ ในขณะที่ฮาร์ดแวร์สองชิ้นอาจมี UART คุณไม่ทราบว่าพวกเขาจะเชื่อมต่อโดยไม่มีความเสียหายหรือสื่อสารอย่างถูกต้องเว้นแต่คุณจะรู้ว่าพวกเขามี pinout และมาตรฐานแรงดันไฟฟ้าเดียวกันหรือรวมตัวแปลงหรือสายเคเบิลพิเศษสำหรับเชื่อมต่อโครงข่าย อุปกรณ์เฉพาะสองเหล่านี้ เพื่อหลีกเลี่ยงความต้องการตัวแปลงหรือสายเคเบิลพิเศษผู้ผลิตอาจเลือกที่จะปฏิบัติตามมาตรฐาน RS-232 คุณรู้ไหมว่าสายเคเบิล RS-232 มาตรฐานจะเชื่อมต่อทั้งสองสายเข้าด้วยกัน

แต่ไม่ UART หรือมาตรฐาน RS-232 กำหนดสิ่งที่จะถูกส่งไปบนTXและRXสาย โดยทั่วไปเมื่อผู้ใช้ RS-232 พวกเขาใช้การเข้ารหัส NRZ 8 บิตอย่างง่ายด้วยบิตเริ่มต้นหนึ่งและบิตหยุดหนึ่ง อุปกรณ์ส่วนใหญ่ที่ผลิตในปัจจุบันใช้การเข้ารหัสนี้ แต่ไม่จำเป็นต้องทำเช่นนั้น คุณสามารถค้นหาอุปกรณ์รุ่นเก่าที่มีพาริตี้บิตหรือใช้ 7 หรือ 9 บิต UART สามารถกำหนดค่าเพื่อรองรับโปรโตคอลต่าง ๆ เหล่านี้ในTXและRXบรรทัด

โดยทั่วไปแล้ว UART จะไม่เชื่อมต่อโดยตรงกับ RS-232 คุณจะต้องแปลงเอาต์พุตของ UART เป็นมาตรฐาน +/- 12V ที่ RS-232 ต้องการ อินเทอร์เฟซแบบ RS-232 ที่สมบูรณ์จะเกี่ยวข้องกับตัวแปลงระดับ UART และ RS-232 นอกจากนี้มาตรฐาน RS-232 รวมถึงความหมายของหลายหมุดอื่น ๆ การส่งสัญญาณนอกจากTXและRXที่คุณอาจจำเป็นต้องใช้ขึ้นอยู่กับอุปกรณ์ที่คุณต้องเชื่อมต่อกับ สิ่งเหล่านี้จะต้องถูกแปลงเป็นระดับและ UART ของคุณอาจสนับสนุนหรือไม่สนับสนุนสัญญาณเหล่านี้ หากไม่มีคุณจะต้องควบคุมด้วยซอฟต์แวร์ / เฟิร์มแวร์ของคุณโดยตรง

ดังนั้นในขณะที่ UART อาจช่วยให้คุณสามารถใช้งานอินเทอร์เฟซแบบ RS-232 ได้ แต่มันไม่ได้เป็นตัวเชื่อมต่อแบบ RS-232


สายเคเบิล RS-232 มาตรฐาน? ไม่มีสิ่งนั้น ในกระเป๋าอุปกรณ์ของฉันฉันมีอแด็ปเตอร์ประมาณหนึ่งโหลสำหรับ RS-232 RS-232 ระบุตัวเชื่อมต่อ DB-25 แต่ฉันเห็น DD-9, RJ45, din8 และตัวเชื่อมต่ออื่น ๆ และนอกเหนือจากการต่อโมเด็มเข้ากับพีซีฉันไม่เคยใช้สาย COTS สำหรับโครงการ rs232 ใด ๆ โชคดีที่ 90% ของเวลาที่อะแดปเตอร์สองตัวจะทำหรือเคเบิลแบบกำหนดเองพวกเขาทำง่าย
hildred

สำหรับบันทึก: ฉันคิดว่า 'S' ใน USART ย่อมาจาก "Synchronous" ไม่ใช่ "Serial" ดูที่นี่ USART เป็น "ความนิยม" เหนือชิป UART รุ่นเก่าซึ่งอนุญาตให้ใช้โหมดการสื่อสารแบบซิงโครนัส
Lorenzo Donati

14

ฟังก์ชั่น UART การแปลงข้อมูลแบบขนานจากคอมพิวเตอร์รถประจำทางสายข้อมูลแบบอนุกรมสำหรับการส่งผ่านไดรเวอร์กองหลังไปยัง RS-232, RS-422และRS-485อุปกรณ์ เข็มนาฬิกาของชิป UART นั้นป้อนโดยแหล่งสัญญาณนาฬิกาที่ตั้งโปรแกรมได้ ความเร็วนาฬิกาถูกกำหนดโดยการกำหนดค่าอัตรารับส่งข้อมูลที่อุปกรณ์จะใช้ ความเร็วสัญญาณนาฬิกาคือ 16 X อัตราการรับส่งข้อมูล การวางโพรบออสซิลโลสโคปไว้บนเข็มนาฬิกาของชิป UART และกำหนดความถี่จากนั้นหารด้วย 16 เป็นวิธีหนึ่งในการกำหนดอัตราการรับส่งข้อมูลที่ไม่รู้จัก


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