html อธิบายบิตเริ่มต้น บิตหยุด และการสุ่มตัวอย่างของ UART - FCTELE
                                   +8618758069661 [email protected]
ค้นหาผลิตภัณฑ์ คำแนะนำ: เว้นวรรค = AND, | = OR, ! = NOT

UART ระบุแต่ละไบต์ได้อย่างไร? บิตเริ่มต้น บิตหยุด และการสุ่มตัวอย่าง

มีคำถามหรือไม่? โทรหาเราวันนี้!

+8618758069661

หรือฝากข้อความถึงเรา

ข้อความออนไลน์

UART ระบุแต่ละไบต์ได้อย่างไร? บิตเริ่มต้น บิตหยุด และการสุ่มตัวอย่าง

จำนวนการเข้าชม: 12 +12ต้นฉบับโดย FCTELEผู้เขียน: ทีมเทคนิค FCTELE

จังหวะเวลาของอักขระ UART

UART รับข้อมูลโดยไม่มีสัญญาณนาฬิการ่วมกันได้อย่างไร?

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

01

เริ่มต้น

A valid start event establishes the local timing reference.Find the start

เหตุการณ์เริ่มต้นที่ถูกต้องจะกำหนดจุดอ้างอิงจังหวะเวลาภายใน

02

สุ่มตัวอย่าง

Sampling within stable bit intervals helps avoid transitions.Sample stable state

การสุ่มตัวอย่างภายในช่วงบิตที่มีสถานะคงที่ช่วยหลีกเลี่ยงช่วงเปลี่ยนสถานะ

03

หยุด

A low at the expected stop position can flag a framing error.Check expected high

ระดับต่ำที่ตำแหน่งบิตหยุดที่คาดไว้อาจทำให้มีการแจ้งข้อผิดพลาดของรูปแบบเฟรม

01 ตั้งค่าให้ตรงกัน

บันทึกอัตราบอด จำนวนบิตข้อมูล พาริตี และบิตหยุดที่ปลายทางทั้งสอง

02 สังเกต

เปรียบเทียบจังหวะเวลาของลอจิกและข้อผิดพลาดในการรับระหว่างการทดสอบที่ได้รับอนุญาต

03 ทวนสอบ

ตรวจสอบไบต์จริงของแอปพลิเคชันและการตีความข้อความ

รายการตรวจสอบสำหรับการเลือกและการตรวจยืนยัน — ขยาย
รายการตรวจสอบ สิ่งที่ต้องยืนยัน วิธีตรวจสอบ
อินเทอร์เฟซ ความเข้ากันได้ทางไฟฟ้า อ่านเอกสารของรุ่นนั้น
อักขระ จังหวะเวลาและรูปแบบตรงกัน เปรียบเทียบการตั้งค่าทั้งสองฝั่ง
การประยุกต์ใช้งาน ไบต์และข้อความถูกต้อง เก็บบันทึกการทดสอบด้วยรูปแบบข้อมูลที่ทราบค่า

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

ตำแหน่งในเฟรม 8N1 และการส่งข้อมูลจากชิฟต์รีจิสเตอร์ของ UART ไปยังบัฟเฟอร์ไบต์
รูปที่ 1: สถานะลอจิกและตำแหน่งฟิลด์ ไม่ใช่รูปคลื่นข้อมูลที่กำหนดตายตัว N หมายถึงไม่มีพาริตี

แยกอินเทอร์เฟซทางไฟฟ้าออกจากรูปแบบอักขระ

อุปกรณ์อุตสาหกรรมอาจเชื่อมต่อกับเซิร์ฟเวอร์อุปกรณ์อนุกรมหรืออุปกรณ์รับส่งข้อมูลผ่านใยแก้วนำแสงโดยใช้ RS232 หรือ RS485 ตัวรับส่งสัญญาณอินเทอร์เฟซจะแปลงสัญญาณบนสายเป็นสัญญาณลอจิกที่ชิปสามารถประมวลผลได้ UART จัดการแต่ละบิตตามรูปแบบอักขระที่เลือก UART ย่อมาจาก universal asynchronous receiver/transmitter หรือวงจรรับส่งข้อมูลแบบอะซิงโครนัสอเนกประสงค์ โดยปกติการทำงานแบบอะซิงโครนัสจะไม่มีสายสัญญาณนาฬิกาสำหรับซิงโครไนซ์ร่วมกัน

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

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

ส่วนใดของเฟรมที่ไม่ใช่ข้อมูลของแอปพลิเคชัน?

ในรูปแบบ 8N1 ที่ใช้กันทั่วไป 8 ระบุบิตข้อมูลแปดบิต N หมายถึงไม่มีพาริตี และ 1 ระบุบิตหยุดหนึ่งบิต อักขระยังมีบิตเริ่มต้นด้วย ดังนั้นบิตข้อมูลของแอปพลิเคชันแปดบิตจึงไม่ใช่ทั้งหมดที่ส่งบนสาย บิตเริ่มต้นและบิตหยุดใช้จัดรูปแบบอักขระ ต้องไม่นำไปต่อท้ายข้อมูลของแอปพลิเคชันเป็นค่าเพิ่มเติม

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

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

การรับเริ่มต้นจากสถานะว่างได้อย่างไร?

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

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

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

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

เหตุใดจึงสุ่มตัวอย่างใกล้กึ่งกลางบิต?

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

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

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

การตรวจสอบบิตหยุดบอกอะไรเราได้บ้าง?

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

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

วิธีที่แฟล็กข้อผิดพลาดแนบมากับอักขระ การที่ไดรเวอร์จะทิ้งอักขระเหล่านั้นหรือไม่ และซอฟต์แวร์สามารถเข้าถึงตัวนับได้หรือไม่ ขึ้นอยู่กับฮาร์ดแวร์และซอฟต์แวร์ การที่แอปพลิเคชันไม่แสดงอะไรไม่ได้พิสูจน์ทันทีว่าไม่มีอินพุตบนสาย เพราะขั้นตอนใดขั้นตอนหนึ่งอาจกรองอักขระที่ผิดพลาดออก ควรเก็บสถานะไว้ควบคู่กับเนื้อหาไบต์

เปรียบเทียบผลการสุ่มตัวอย่างบิตหยุดระดับสูงตามปกติกับผลระดับต่ำและข้อผิดพลาดของรูปแบบเฟรม
รูปที่ 3: การตรวจสอบตำแหน่งบิตหยุดและการรายงานข้อผิดพลาดขึ้นอยู่กับวิธีการทำงานของวงจร

เฟรมถัดไปปรับจังหวะเวลาให้ตรงใหม่ได้อย่างไร?

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

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

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

เชื่อมโยงหลักฐานจากแต่ละขั้นตอน

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

เซิร์ฟเวอร์อุปกรณ์อนุกรมและผลิตภัณฑ์รับส่งข้อมูลของ FCTELE ใช้เชื่อมต่ออุปกรณ์อุตสาหกรรม อินเทอร์เฟซจริงและความสามารถในการตั้งค่าขึ้นอยู่กับเอกสารของรุ่นที่เกี่ยวข้อง คู่มือนี้อธิบายการรับของ UART โดยทั่วไป ไม่ใช่วงจรภายในหรือค่าความคลาดเคลื่อนที่วัดได้ของผลิตภัณฑ์เฉพาะรุ่น และไม่ได้ระบุความเร็วสูงสุดที่ยังไม่ผ่านการตรวจสอบ หลักฐานการส่งมอบควรประกอบด้วยการตั้งค่า เงื่อนไขการทดสอบ รูปคลื่นต้นฉบับ และการตรวจยืนยันในระดับแอปพลิเคชัน

เอกสารอ้างอิง

TI: ภาพรวมโพรโทคอล UART และข้อผิดพลาด; Microchip: ตัวอย่างตัวรับแบบอะซิงโครนัส; ข้อมูลผลิตภัณฑ์เกตเวย์อนุกรม FCTELE. เป็นภาพประกอบทั่วไป ไม่ใช่วงจรผลิตภัณฑ์หรือผลการวัดค่าความคลาดเคลื่อน

แปลจากบทความทางเทคนิคภาษาจีน: อ่านบทความต้นฉบับภาษาจีน.

คำถามที่พบบ่อย

สถานะลอจิกของ UART เหมือนกับแรงดันของ RS232 หรือไม่?

ไม่ใช่ ตัวรับส่งสัญญาณสายทำหน้าที่แปลงสัญญาณไฟฟ้า ต้องตรวจสอบแรงดันและการเดินสายของอินเทอร์เฟซจริงแยกต่างหาก

การไม่มีข้อผิดพลาดของรูปแบบเฟรมพิสูจน์ได้หรือไม่ว่าข้อมูลถูกต้อง?

ไม่ การสุ่มตัวอย่างบิตหยุดอาจบังเอิญได้ระดับสูงแม้ข้อมูลจะผิด ยังคงต้องตรวจสอบความถูกต้องครบถ้วนและตรวจสอบในระดับแอปพลิเคชัน

บิตหยุดทำให้ข้อความของแอปพลิเคชันสิ้นสุดลงหรือไม่?

ไม่ บิตหยุดเป็นส่วนหนึ่งของรูปแบบอักขระ ส่วนโปรโตคอลของแอปพลิเคชันเป็นตัวกำหนดขอบเขตข้อความ

ขอบเขตและข้อมูลอ่านเพิ่มเติม

จังหวะเวลาของ UART ทั่วไป ไม่ใช่วงจรหรือค่าความคลาดเคลื่อนที่วัดได้ของอุปกรณ์เฉพาะรุ่น

การเอสเคปไบต์และการกำหนดขอบเขตข้อความในการสื่อสารอนุกรม · การส่งต่อข้อมูล Ethernet และการบำรุงรักษา

แชร์บทความนี้