สารบัญ:

พื้นฐานของการสื่อสาร UART: 16 ขั้นตอน
พื้นฐานของการสื่อสาร UART: 16 ขั้นตอน

วีดีโอ: พื้นฐานของการสื่อสาร UART: 16 ขั้นตอน

วีดีโอ: พื้นฐานของการสื่อสาร UART: 16 ขั้นตอน
วีดีโอ: Arduino Dev : ความรู้พื้นฐาน Serial Comm. แบบต่างๆ (UART, USART, I2C, SPI และ RS232) 2024, พฤศจิกายน
Anonim
พื้นฐานของการสื่อสาร UART
พื้นฐานของการสื่อสาร UART

จำได้ไหมว่าเมื่อเครื่องพิมพ์ เมาส์ และโมเด็มมีสายเคเบิลหนาพร้อมขั้วต่อขนาดใหญ่เหล่านี้ สิ่งที่ต้องขันเข้ากับคอมพิวเตอร์ของคุณอย่างแท้จริง? อุปกรณ์เหล่านั้นอาจใช้ UART เพื่อสื่อสารกับคอมพิวเตอร์ของคุณ แม้ว่า USB จะเข้ามาแทนที่สายเคเบิลและตัวเชื่อมต่อเก่าเหล่านั้นเกือบทั้งหมดแล้ว แต่ UART ก็ไม่ใช่สิ่งที่ผ่านมาอย่างแน่นอน คุณจะพบว่ามีการใช้ UART ในโครงการอิเล็กทรอนิกส์ DIY จำนวนมากเพื่อเชื่อมต่อโมดูล GPS โมดูล Bluetooth และโมดูลเครื่องอ่านการ์ด RFID กับ Raspberry Pi, Arduino หรือไมโครคอนโทรลเลอร์อื่นๆ

UART ย่อมาจาก Universal Asynchronous Receiver/Transmitter ไม่ใช่โปรโตคอลการสื่อสารเช่น SPI และ I2C แต่เป็นวงจรทางกายภาพในไมโครคอนโทรลเลอร์หรือ IC แบบสแตนด์อโลน วัตถุประสงค์หลักของ UART คือการส่งและรับข้อมูลอนุกรม

หนึ่งในสิ่งที่ดีที่สุดเกี่ยวกับ UART คือใช้เพียงสองสายในการส่งข้อมูลระหว่างอุปกรณ์ หลักการที่อยู่เบื้องหลัง UART นั้นง่ายต่อการเข้าใจ แต่ถ้าคุณยังไม่ได้อ่านส่วนหนึ่งของชุดนี้ นั่นคือ Basics of the SPI Communication Protocol นั่นอาจเป็นจุดเริ่มต้นที่ดี

ขั้นตอนที่ 1: บทนำสู่การสื่อสาร UART

ในการสื่อสาร UART UART สองรายการจะสื่อสารกันโดยตรง UART ที่ส่งสัญญาณจะแปลงข้อมูลแบบขนานจากอุปกรณ์ควบคุม เช่น CPU ให้อยู่ในรูปแบบอนุกรม ส่งข้อมูลแบบอนุกรมไปยัง UART ที่รับ จากนั้นจะแปลงข้อมูลอนุกรมกลับเป็นข้อมูลแบบขนานสำหรับอุปกรณ์ที่รับ ต้องใช้สายไฟเพียงสองเส้นในการส่งข้อมูลระหว่าง UART สองเครื่อง ข้อมูลไหลจากพิน Tx ของ UART ที่ส่งไปยังพิน Rx ของ UART ที่รับ:

ขั้นตอนที่ 2: กระแสข้อมูลจาก Tx Pin ของ UART ที่ส่งไปยัง Rx Pin ของ UART ที่ได้รับ:

กระแสข้อมูลจาก Tx Pin ของ UART ที่ส่งไปยัง Rx Pin ของ UART ที่ได้รับ
กระแสข้อมูลจาก Tx Pin ของ UART ที่ส่งไปยัง Rx Pin ของ UART ที่ได้รับ

ขั้นตอนที่ 3:

UART ส่งข้อมูลแบบอะซิงโครนัส ซึ่งหมายความว่าไม่มีสัญญาณนาฬิกาที่จะซิงโครไนซ์เอาต์พุตของบิตจาก UART ที่ส่งสัญญาณไปยังการสุ่มตัวอย่างของบิตโดย UART ที่รับ แทนที่จะเป็นสัญญาณนาฬิกา UART ที่ส่งสัญญาณจะเพิ่มบิตเริ่มต้นและหยุดลงในแพ็กเก็ตข้อมูลที่กำลังถ่ายโอน บิตเหล่านี้กำหนดจุดเริ่มต้นและจุดสิ้นสุดของแพ็กเก็ตข้อมูล เพื่อให้ UART ที่รับรู้ว่าเมื่อใดควรเริ่มอ่านบิต

เมื่อ UART ที่ได้รับตรวจพบบิตเริ่มต้น จะเริ่มอ่านบิตที่เข้ามาที่ความถี่เฉพาะที่เรียกว่าอัตราบอด อัตราบอดคือการวัดความเร็วของการถ่ายโอนข้อมูล แสดงเป็นบิตต่อวินาที (bps) UART ทั้งสองต้องทำงานที่อัตราบอดที่เท่ากัน อัตราบอดระหว่างการส่งและรับ UART สามารถแตกต่างกันได้ประมาณ 10% ก่อนที่เวลาของบิตจะห่างเหินเกินไป

ขั้นตอนที่ 4:

ภาพ
ภาพ

ต้องกำหนดค่า UART ทั้งสองเพื่อส่งและรับโครงสร้างแพ็กเก็ตข้อมูลเดียวกัน

ขั้นตอนที่ 5: UART ทำงานอย่างไร

UART ที่จะส่งข้อมูลจะได้รับข้อมูลจากบัสข้อมูล บัสข้อมูลใช้เพื่อส่งข้อมูลไปยัง UART โดยอุปกรณ์อื่น เช่น CPU หน่วยความจำ หรือไมโครคอนโทรลเลอร์ ข้อมูลถูกถ่ายโอนจากบัสข้อมูลไปยัง UART ที่ส่งสัญญาณในรูปแบบคู่ขนาน หลังจากที่ UART ที่ส่งได้รับข้อมูลแบบขนานจากบัสข้อมูล จะเพิ่มบิตเริ่มต้น พาริตีบิต และบิตหยุด เพื่อสร้างแพ็กเก็ตข้อมูล ถัดไป แพ็กเก็ตข้อมูลจะถูกส่งออกแบบอนุกรม ทีละบิตที่พิน Tx UART ที่รับจะอ่านแพ็กเก็ตข้อมูลทีละบิตที่พิน Rx UART ที่ได้รับจะแปลงข้อมูลกลับเป็นรูปแบบขนานและลบบิตเริ่มต้น บิตพาริตี และบิตหยุด สุดท้าย UART ที่รับจะถ่ายโอนแพ็กเก็ตข้อมูลแบบขนานกับบัสข้อมูลในส่วนรับ:

ขั้นตอนที่ 6: รูปภาพวิธีการทำงานของ UART

รูปภาพวิธีการทำงานของ UART
รูปภาพวิธีการทำงานของ UART

ขั้นตอนที่ 7:

ข้อมูลที่ส่ง UART ถูกจัดเป็นแพ็กเก็ต แต่ละแพ็กเก็ตประกอบด้วย 1 บิตเริ่มต้น 5 ถึง 9 บิตข้อมูล (ขึ้นอยู่กับ UART) บิตพาริตีเสริม และบิตหยุด 1 หรือ 2 บิต:

ขั้นตอนที่ 8: ข้อมูลที่ส่ง UART ถูกจัดระเบียบเป็นภาพแพ็คเก็ต

ข้อมูลที่ส่ง UART ถูกจัดระเบียบเป็นภาพแพ็คเก็ต
ข้อมูลที่ส่ง UART ถูกจัดระเบียบเป็นภาพแพ็คเก็ต

ขั้นตอนที่ 9:

เริ่มบิต

โดยปกติสายส่งข้อมูล UART จะอยู่ที่ระดับไฟฟ้าแรงสูงเมื่อไม่ได้ส่งข้อมูล ในการเริ่มต้นการถ่ายโอนข้อมูล UART ที่ส่งสัญญาณจะดึงสายส่งจากสูงไปต่ำเป็นเวลาหนึ่งรอบนาฬิกา เมื่อ UART ที่ได้รับตรวจพบการเปลี่ยนแปลงของแรงดันไฟฟ้าสูงไปต่ำ จะเริ่มอ่านบิตในกรอบข้อมูลที่ความถี่ของอัตราบอด

กรอบข้อมูล

กรอบข้อมูลประกอบด้วยข้อมูลจริงที่กำลังถ่ายโอน อาจมีความยาวได้ 5 บิตสูงสุด 8 บิต หากใช้พาริตีบิต หากไม่มีการใช้พาริตีบิต ดาต้าเฟรมจะมีความยาวได้ 9 บิต ในกรณีส่วนใหญ่ ข้อมูลจะถูกส่งด้วยบิตที่มีนัยสำคัญน้อยที่สุดก่อน

ความเท่าเทียมกัน

ความเท่าเทียมกันอธิบายความเท่าเทียมกันหรือความคี่ของตัวเลข พาริตีบิตเป็นวิธีหนึ่งในการรับ UART เพื่อบอกว่าข้อมูลใด ๆ มีการเปลี่ยนแปลงในระหว่างการส่งหรือไม่ บิตสามารถเปลี่ยนแปลงได้โดยการแผ่รังสีแม่เหล็กไฟฟ้า อัตราบอดที่ไม่ตรงกัน หรือการถ่ายโอนข้อมูลทางไกล หลังจากที่ UART ที่ได้รับอ่าน data frame มันจะนับจำนวนบิตที่มีค่า 1 และตรวจสอบว่าผลรวมเป็นเลขคู่หรือเลขคี่ หากพาริตีบิตเป็น 0 (พาริตีคู่) 1 บิตใน data frame ควรรวมเป็นเลขคู่ หากพาริตีบิตเป็น 1 (พาริตีคี่) 1 บิตใน data frame ควรรวมเป็นเลขคี่ เมื่อบิตพาริตีตรงกับข้อมูล UART จะรู้ว่าการส่งข้อมูลไม่มีข้อผิดพลาด แต่ถ้าพาริตีบิตเป็น 0 และผลรวมเป็นเลขคี่ หรือพาริตีบิตเป็น 1 และผลรวมเป็นคู่ UART รู้ว่าบิตในกรอบข้อมูลมีการเปลี่ยนแปลง

หยุดบิต

o ส่งสัญญาณถึงจุดสิ้นสุดของแพ็กเก็ตข้อมูล UART ที่ส่งจะขับเคลื่อนสายส่งข้อมูลจากไฟฟ้าแรงต่ำไปยังไฟฟ้าแรงสูงเป็นเวลาอย่างน้อยสองบิต

ขั้นตอนที่ 10: ขั้นตอนของการส่งสัญญาณ UART

1. UART ที่ส่งสัญญาณได้รับข้อมูลแบบขนานจากบัสข้อมูล:

ขั้นตอนที่ 11: การส่งรูปภาพ UART รับข้อมูลแบบขนานจากบัสข้อมูล

การส่งรูปภาพ UART รับข้อมูลแบบขนานจากบัสข้อมูล
การส่งรูปภาพ UART รับข้อมูลแบบขนานจากบัสข้อมูล

ขั้นตอนที่ 12: 2 UART การส่งจะเพิ่มบิตเริ่มต้น Parity Bit และ Stop Bit ลงใน Data Frame:

2. UART การส่งจะเพิ่ม Start Bit, Parity Bit และ Stop Bit(s) ไปยัง Data Frame
2. UART การส่งจะเพิ่ม Start Bit, Parity Bit และ Stop Bit(s) ไปยัง Data Frame

ขั้นตอนที่ 13: 3. แพ็คเก็ตทั้งหมดถูกส่งแบบอนุกรมจาก UART ที่ส่งไปยัง UART ที่ได้รับ การรับ UART จะสุ่มตัวอย่างสายข้อมูลด้วยอัตรารับส่งข้อมูลที่กำหนดไว้ล่วงหน้า:

3. แพ็คเก็ตทั้งหมดจะถูกส่งตามลำดับจาก UART ที่ส่งไปยัง UART ที่ได้รับ การรับ UART จะสุ่มตัวอย่างสายข้อมูลด้วยอัตรารับส่งข้อมูลที่กำหนดไว้ล่วงหน้า
3. แพ็คเก็ตทั้งหมดจะถูกส่งตามลำดับจาก UART ที่ส่งไปยัง UART ที่ได้รับ การรับ UART จะสุ่มตัวอย่างสายข้อมูลด้วยอัตรารับส่งข้อมูลที่กำหนดไว้ล่วงหน้า

ขั้นตอนที่ 14: 4. UART ที่ได้รับจะละทิ้งบิตเริ่มต้น Parity Bit และ Stop Bit จาก Data Frame:

4. UART ที่รับจะทิ้งบิตเริ่มต้น พาริตีบิต และบิตหยุดจากดาต้าเฟรม
4. UART ที่รับจะทิ้งบิตเริ่มต้น พาริตีบิต และบิตหยุดจากดาต้าเฟรม

ขั้นตอนที่ 15: 5. UART ที่ได้รับจะแปลงข้อมูลอนุกรมกลับเป็นแบบขนานและโอนไปยังบัสข้อมูลเมื่อสิ้นสุดการรับ:

5. UART ที่ได้รับจะแปลงข้อมูลอนุกรมกลับเป็นแบบขนานและโอนไปยังบัสข้อมูลเมื่อสิ้นสุดการรับ
5. UART ที่ได้รับจะแปลงข้อมูลอนุกรมกลับเป็นแบบขนานและโอนไปยังบัสข้อมูลเมื่อสิ้นสุดการรับ

ขั้นตอนที่ 16: ข้อดีและข้อเสียของ UART

ไม่มีโปรโตคอลการสื่อสารใดที่สมบูรณ์แบบ แต่ UART ค่อนข้างดีในสิ่งที่พวกเขาทำ ข้อดีและข้อเสียบางประการที่จะช่วยให้คุณตัดสินใจว่าเหมาะสมกับความต้องการของโครงการของคุณหรือไม่:

ข้อดี

ใช้เพียงสองสาย ไม่จำเป็นต้องมีสัญญาณนาฬิกา มีบิตพาริตีเพื่อให้สามารถตรวจสอบข้อผิดพลาด โครงสร้างของแพ็กเก็ตข้อมูลสามารถเปลี่ยนแปลงได้ตราบใดที่ตั้งค่าทั้งสองด้าน จัดทำเอกสารอย่างดีและใช้กันอย่างแพร่หลาย ข้อเสีย

ขนาดของ data frame ถูกจำกัดไว้ที่ 9 bits ไม่รองรับหลาย slave หรือ master system หลายตัว อัตรา baud ของ UART แต่ละตัวต้องไม่เกิน 10% ของกันและกัน ดำเนินการต่อในตอนที่ 3 ของซีรีส์นี้ พื้นฐานของ I2C Communication Protocol เพื่อเรียนรู้เกี่ยวกับวิธีการสื่อสารอื่นที่อุปกรณ์อิเล็กทรอนิกส์ หรือถ้าคุณยังไม่ได้ดู ให้ดูส่วนที่หนึ่ง พื้นฐานของ SPI Communication Protocol

และเช่นเคย โปรดแจ้งให้เราทราบในความคิดเห็นหากคุณมีคำถามหรืออะไรเพิ่มเติม หากคุณชอบบทความนี้และต้องการดูเพิ่มเติมโปรดติดตาม

ความนับถือ

ม.จูเนด

แนะนำ: