UART มักให้คุณเลือกได้ระหว่าง 1, 1.5 และ 2 บิต ด้วยประสิทธิภาพของ payload 1 stop bit คือ 80% (8/10), 2 stop bits ที่ลดลงเป็น 72.7% (8/11) ดังนั้นข้อดีของบิตหยุดที่สองคืออะไร
UART มักให้คุณเลือกได้ระหว่าง 1, 1.5 และ 2 บิต ด้วยประสิทธิภาพของ payload 1 stop bit คือ 80% (8/10), 2 stop bits ที่ลดลงเป็น 72.7% (8/11) ดังนั้นข้อดีของบิตหยุดที่สองคืออะไร
คำตอบ:
บิตหยุดพิเศษอาจเป็นวิธีที่มีประโยชน์ในการเพิ่มเวลาประมวลผลการรับพิเศษเล็กน้อยโดยเฉพาะในอัตราการรับส่งข้อมูลสูงและ / หรือการใช้ UART แบบนุ่มนวลซึ่งจำเป็นต้องใช้เวลาในการประมวลผลไบต์ที่ได้รับ
ในกรณีที่ความเร็วแน่นและ UART ของคุณมีอัตราส่วนการหารเป็น 2 เท่านั้นการเพิ่มจุดหยุดพิเศษอาจเป็นตัวเลือกในการลดความเร็วที่รุนแรงน้อยกว่า baudrate ที่ต่ำที่สุดถัดไป
ฉันเชื่อว่านี่อาจเป็นเหตุผลหนึ่งที่มาตรฐาน DMX512 ระบุ 2 stopbits
สถานการณ์อื่นที่มีประโยชน์คือถ้าคุณมีอุปกรณ์ที่ส่งต่อสตรีมข้อมูลโดยไม่มีการบัฟเฟอร์หรือแพ็กเก็ต - ความแตกต่างเล็กน้อยของอัตรานาฬิการะหว่างโหนดและการสุ่มตัวอย่างแบบละเอียดอาจทำให้เกิดข้อผิดพลาดได้เมื่อข้อมูลได้รับและส่งซ้ำ chain แต่ถ้าข้อมูลถูกส่งด้วย 2 stopbits และตัวรับถูกตั้งค่าเป็น stopbit หนึ่งมันจะเพิ่ม margin เพียงพอที่จะรองรับข้อผิดพลาดเหล่านี้และปล่อยอย่างน้อยหนึ่งรอบระยะเวลา stopbit ที่ถูกต้องสำหรับโหนดไกลลง chain เพื่อรับเชื่อถือได้
ฉันยังพบสถานการณ์ที่การเดินสายเคเบิลที่ยาวมาก ๆ ทำให้เกิดความไม่สมดุลในเวลาขึ้นและลงทำให้ความยาวของจุดหยุดไม่เพียงพอ - การส่ง 2 สต็อปบิตและการรับเพียงต้องการแก้ไขสิ่งนี้
ในอีกไม่กี่วันที่ผ่านมาเครื่องพิมพ์ก็มีโครงสร้างเกือบทั้งหมด การรับส่งข้อมูลค่อนข้างเป็นมาตรฐานแม้ในขณะนั้นดังนั้นการเพิ่มบิตหยุดพิเศษจะทำให้เครื่องพิมพ์มีเวลาพิเศษในการพิมพ์อักขระ ด้านเวลานั้นชัดเจนมากขึ้นตั้งแต่นั้นมา สำหรับเครื่องพิมพ์เครื่องแรกที่มีเสียงดังhttp://en.wikipedia.org/wiki/Teletype_Model_33ฉันต้องแทรกตัวละครสองตัวชั่วคราวหลังจากส่ง Carriage Return
บิตหยุดสองบิตไม่น่าจะมีประโยชน์มากกว่าหนึ่งในระบบที่มีสัดส่วนของเวลาหยุดทำงานและทำงานในสภาพแวดล้อมที่มีเสียงรบกวนต่ำ (BER ต่ำ) เช่นภายในอุปกรณ์หรืออุปกรณ์ต่อพ่วงที่มีไม่กี่เมตร ของสายเคเบิลและ / หรือไม่มีระยะโมเด็ม - โมเด็ม
2 stop bits ช่วยให้คุณมีเวลาในการซิงโครไนซ์มากขึ้นมีเวลามากขึ้นในการประมวลผลระหว่างตัวละครและอาจขึ้นอยู่กับฮาร์ดแวร์และอัลกอริทึมโอกาสที่ดีกว่าในการรับหรือกู้คืนการซิงโครไนซ์ระหว่างสตรีมข้อมูลต่อเนื่อง เวลาระหว่างตัวอักษรมีค่าน้อยกว่ามากในระบบที่ทันสมัยกว่าเมื่อความเร็วสัญญาณนาฬิกาต่ำและปริมาณงานของโปรเซสเซอร์ลดลง
หากคุณมีสตรีมข้อมูลต่อเนื่องเป็นหลักหากไม่ซิงโครไนซ์บิตสูง ๆ จะมีลักษณะเป็นบิตหยุด การเปลี่ยนแปลงในระดับต่ำที่สูงจะมีลักษณะเป็นขอบเขตไบต์ หากผู้รับของคุณเริ่มต้นในขอบเขต 10 และมันไม่ใช่ขอบเขตการเริ่มต้นที่แท้จริงนี่จะถูกค้นพบเพียง 50% ของเวลา) (เช่นหากพบว่า "บิตหยุด" สุดท้ายจะเป็นบิตข้อมูลต่ำและคุณจะยัง ข้ามเขตแดนหยุด / เริ่มต้นของแท้ไปตามทางโดยเฉลี่ยแล้วคุณมีโอกาส 1/4 ของขอบเขตไบต์เท่ากับ 1/0 และดูเหมือนว่าเป็นคู่หยุด / เริ่มตู่ข้างต้นแสดงให้เห็นว่าหากคุณเลือกหยุดแบบผิดพลาด - เริ่มคู่แล้วอาจมีโอกาสประมาณ 50% ที่คุณจะเลือกอีกคู่หนึ่งในความพยายามต่อไปนี้
หากคุณใช้ 2 stop bits (11) ลำดับการหยุดที่ถูกต้องคือ 110 ซึ่งมีโอกาส 1 / 8th ที่เกิดขึ้นในการรับส่งข้อมูลแบบสุ่ม การผสมของ stop stop และ start ของแท้ใน flow ที่ไม่ซิงโครไนซ์จะเปลี่ยน sats เล็กน้อย แต่ดูเหมือนว่าไม่น่าเป็นไปได้ถ้าคุณได้รับ 110 stop / start sequence ในรอบเดียวที่คุณจะต้องลองอีกครั้ง ลำดับที่เกิดขึ้นต่อไป
ในขณะที่คุณสังเกตเห็นว่า 1 stop bit ให้ผลผลิต 8/10 = 80% ปริมาณงานสูงสุดและ 2 stop bits ให้ประสิทธิภาพ 8/11 = 72% ความแตกต่างของปริมาณงานที่ขีด จำกัด สูงสุดคือ 80% / 72% = ~ 11% นี่คือการได้รับประโยชน์ในสถานการณ์ที่รุนแรง แต่ไม่กว้างใหญ่และถ้าวงจรไม่ได้ใช้งานมากกว่า 10% ของเวลามันมีค่าน้อยที่สุด หากวงจรของคุณมีเสียงดังและมีแนวโน้มที่จะสูญเสียการซิงโครไนซ์เป็นครั้งคราวบิตหยุดพิเศษอาจช่วยได้มาก แต่ถ้าคุณสนใจมากเกี่ยวกับปริมาณงานคุณสามารถเพิ่มอัตราการรับส่งข้อมูล (ไม่เสมอไป) หรือเปลี่ยนเป็นการดำเนินการแบบซิงโครนัสอย่างสมบูรณ์
เพื่อขยายจุดของ mikeselectricstuff เกี่ยวกับการรับเวลาด้วย "soft UARTs" แอปพลิเคชั่นรับที่จะรู้เสมอว่าเมื่อใดที่จะรับข้อมูลและการทำเช่นนั้นบนพื้นฐานการสำรวจสามารถจัดการอัตราการรับส่งข้อมูลได้เร็วกว่า อย่างไรก็ตามแอปพลิเคชันดังกล่าวสามารถประมวลผลข้อมูลขาเข้าในช่วงเวลาระหว่างจุดเริ่มต้นของบิตหยุดหนึ่งไบต์และบิตเริ่มต้นถัดไปของไบต์ เวลาที่ใช้ในการประมวลผลแต่ละไบต์สิ้นสุดลงเป็นปัจจัย จำกัด ความเร็วในการสื่อสาร การประมวลผลข้อมูลที่ 115,200-N-8-2 นั้นไม่ได้เรียกร้องมากไปกว่าการประมวลผลที่ 57,600-N-8-1 แต่มันเร็วกว่า 80%
บางครั้งเราสามารถผลักดันสิ่งต่าง ๆ ให้ดียิ่งขึ้นได้โดยใช้รูปแบบข้อมูลที่ดูเหมือนไม่มีประสิทธิภาพ ตัวอย่างเช่นหนึ่งสามารถส่งแต่ละไบต์ในสองชิ้นหนึ่งกับเจ็ดบิตและหนึ่งกับหนึ่ง (MSB ของส่วนหนึ่งบิตเป็นชุดทั้งหมด) ถ้าใครทำอย่างนั้นแม้จะมีเพียงหนึ่งบิตหยุดก็จะมีการทำเครื่องหมายแปดบิตระหว่างจุดสิ้นสุดของหนึ่งไบต์คู่และจุดเริ่มต้นของถัดไปจึงอนุญาตให้หนึ่งที่จะผลักดันอัตราบิตสี่ครั้งสูงที่สุดเท่าที่หนึ่ง สามารถทำได้ด้วยบิตหยุดเพียงสอง (และแปดครั้งสูงที่สุดเท่าที่จะทำได้ด้วยหนึ่ง) แม้ว่าจะต้องส่งข้อมูลเป็นสองเท่าของจำนวนไบต์ แต่การเพิ่มขึ้นของอัตราข้อมูลสี่เท่าจะเป็นชัยชนะครั้งสำคัญ นอกจากนี้แม้ว่าแต่ละคู่ไบต์ที่ส่งสามารถใช้เพื่อส่งข้อมูลแปดบิต แต่มีเพียง 130 จาก 256 ค่าไบต์ที่เป็นไปได้จะถูกใช้โดยการเข้ารหัส
กาลครั้งหนึ่งมีสัตว์ประหลาดที่เกี่ยวกับระบบไฟฟ้าเรียกว่าเทเลไทป์ ส่วนใหญ่วิ่งบนมอเตอร์ AC ซิงโครนัสกับความถี่ของสายไฟ ดังนั้นจึงเป็นไปได้เสมอที่เครื่องสื่อสารสองเครื่องอาจไม่ได้ซิงโครไนซ์กับกริดพลังงานเดียวกันหรือแม้กระทั่งทำงานบนกระแสสลับโดยใช้ความถี่ที่แตกต่างกันสำหรับเรื่องนั้น
ดังนั้นเพื่อให้เครื่องที่ช้ากว่าสามารถดักจับและไม่ลอยออกจากซิงค์ได้จึงส่งบิตหยุดสองอัน
สำหรับวัตถุประสงค์อื่นเช่นอนุญาตให้แคร่พิมพ์กลับไปที่จุดเริ่มต้นของบรรทัดใหม่ CR, LF บวกสอง rubouts ถูกส่งไป (รูทั้งหมดบนเทป 8 ระดับ)
มันเป็นธรรมเนียมสำหรับวงจรที่ทำงานด้วยความเร็ว 110 Baud และช้ากว่าเท่านั้น
ความช้าของอุปกรณ์กลไกที่ได้รับคือเหตุผลที่อยู่เบื้องหลังการเพิ่มบิตสต็อปพิเศษอย่างไรก็ตามอุปกรณ์ในปัจจุบันเร็วพอและทำงานในอัตราบอดที่สูงขึ้นโดยไม่ต้องใช้บิตหยุดพิเศษ