ข้ามไปเนื้อหา

ยูอาร์ท

จากวิกิพีเดีย สารานุกรมเสรี

ยูอาร์ท (อังกฤษ: Universal Asynchronous Receiver and Transmitter (UART)) เป็นการสื่อสารข้อมูลผ่านพอร์ตอนุกรมแบบอะซิงโครนัส (asynchronous serial communication) ระหว่างอุปกรณ์ต่าง ๆ ซึ่งนิยมใช้เป็นการสื่อสารระหว่างไมโครคอนโทรลเลอร์ด้วยกัน การทำงานแบบอะซิงโครนัสหมายความว่าจะไม่มีสัญญาณนาฬิกา (clock signal) ส่งออกมาจากตัวส่งหรือตัวรับเพื่อกำหนดจังหวะการรับส่งข้อมูล แต่จะกำหนดผ่านโดยการตั้งความเร็วในการรับส่งข้อมูลของอุปกรณ์ดังกล่าวแทน

การทำงาน

[แก้]

UART จะอนุญาตให้มีการสื่อสารระหว่างอุปกรณ์เพียงสองชิ้นเท่านั้น ซึ่งได้แก่ตัวส่ง (transmitter) และตัวรับ (receiver) และยังเป็นแบบฟูลดูเพล็กซ์ (full duplex) หรือสามารถสื่อสารได้สองทิศทางในเวลาเดียวกัน เมื่อการทำงานเริ่มต้นขึ้น ตัวส่งจะแปลงข้อมูลแบบขนานให้เป็นข้อมูลแบบอนุกรม แล้วส่งข้อมูลดังกล่าวไปยังตัวรับ ซึ่งจะแปลงข้อมูลอนุกรมนั้นกลับไปเป็นแบบขนานตามเดิม

การกำหนดจังหวะการรับส่งข้อมูลสามารถทำได้ผ่านการเพิ่มบิตเริ่มต้น (start bit) และบิตปิดท้าย (stop bit) ลงไปในข้อมูล บิตเหล่านี้จะทำหน้านี้เป็นตัวบ่งบอกถึงจุดเริ่มต้นและจุดจบของข้อมูลที่จะส่งออกไป ซึ่งจะทำให้ตัวรับรู้ว่าจะต้องเริ่มอ่านข้อมูลดังกล่าวได้เมื่อใด เมื่อตัวรับสามารถตรวจจับบิตเริ่มต้นได้ ตัวรับจะเริ่มอ่านบิตที่ตามมาด้วยความถี่ที่เรียกว่าอัตราบอด (baud rate) ทั้งตัวรับและตัวส่งจะต้องทำงานในอัตราบอดเดียวกัน หรือต้องมีค่าคลาดเคลื่อนไม่สูงกว่า 10 เปอร์เซ็นต์เท่านั้น อัตราบอดที่นิยมใช้จะอยู่ที่ 9,600 บิตต่อวินาที

ข้อมูลที่ส่งผ่าน UART จะถูกจัดระเบียบให้เป็นแพ็กเก็ต (packet) แต่ละแพ็กเก็ตจะประกอบด้วยบิตเริ่มต้น 1 ตัว (start bit) บิตข้อมูล 5 ถึง 9 ตัว (data bit) บิตพาริตี 0 ถึง 1 ตัว (parity bit) และบิตปิดท้าย (stop bit) 1 หรือ 2 ตัว

ส่วนใหญ่แล้ว สายสื่อสารแบบ UART จะมีศักย์ไฟฟ้าสูงเมื่อไม่ได้ส่งข้อมูล หากผู้ใช้ต้องการส่งข้อมูลแล้ว ตัวส่งจะดึงศักย์ไฟฟ้าลงใน 1 รอบสัญญาณนาฬิกา เมื่อตัวรับตรวจจับการเปลี่ยนแปลงในความต่างศักย์ไฟฟ้าได้ ตัวรับจะเริ่มอ่านบิตที่เหลือตามมา โดยจะเริ่มอ่านบิตที่มีนัยสำคัญต่ำสุด (least significant bit) ก่อนเป็นส่วนมาก

เมื่อตัวส่งตรวจจับบิตปิดท้ายได้ ตัวส่งจะดันศักย์ไฟฟ้าในสายสื่อสารให้สูงขึ้นดังเดิมในระยะเวลาขั้นต่ำที่ 2 ระยะบิต