เวลาส่วนใหญ่RS-232และ UART มารวมกันในทฤษฎีการสื่อสารแบบอนุกรม พวกเขาทั้งสองเหมือนกันหรือไม่ จากการอ่านของฉันฉันได้ข้อสรุป UART เป็นรูปแบบฮาร์ดแวร์ของโปรโตคอล RS-232 ฉันถูกไหม?
เวลาส่วนใหญ่RS-232และ UART มารวมกันในทฤษฎีการสื่อสารแบบอนุกรม พวกเขาทั้งสองเหมือนกันหรือไม่ จากการอ่านของฉันฉันได้ข้อสรุป UART เป็นรูปแบบฮาร์ดแวร์ของโปรโตคอล RS-232 ฉันถูกไหม?
คำตอบ:
ไม่ 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
(ที่มา )
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
ฟังก์ชั่น UART การแปลงข้อมูลแบบขนานจากคอมพิวเตอร์รถประจำทางสายข้อมูลแบบอนุกรมสำหรับการส่งผ่านไดรเวอร์กองหลังไปยัง RS-232, RS-422และRS-485อุปกรณ์ เข็มนาฬิกาของชิป UART นั้นป้อนโดยแหล่งสัญญาณนาฬิกาที่ตั้งโปรแกรมได้ ความเร็วนาฬิกาถูกกำหนดโดยการกำหนดค่าอัตรารับส่งข้อมูลที่อุปกรณ์จะใช้ ความเร็วสัญญาณนาฬิกาคือ 16 X อัตราการรับส่งข้อมูล การวางโพรบออสซิลโลสโคปไว้บนเข็มนาฬิกาของชิป UART และกำหนดความถี่จากนั้นหารด้วย 16 เป็นวิธีหนึ่งในการกำหนดอัตราการรับส่งข้อมูลที่ไม่รู้จัก