หมายเหตุสั้น ๆ เกี่ยวกับซอฟต์แวร์ "UART" การออกแบบ: อย่างน้อยก็มีวิธีการที่แตกต่างกันในเชิงคุณภาพอย่างใดอย่างหนึ่งอาจจะขึ้นอยู่กับความต้องการ:
ไดรฟ์เวอร์ "บิตรับทุกอย่าง" จะปิดการใช้งานอินเทอร์รัปต์ทั้งหมดและใช้รหัสที่นับรอบเพื่อนาฬิกาแต่ละบิต การรับข้อมูลด้วยไดรเวอร์ "รับช่วงเวลาทุกอย่าง" นั้นจำเป็นต้องมีเมื่อข้อมูลมาถึงคอนโทรลเลอร์ไม่ได้ทำอะไรนอกจากรอให้มันมา
ไดรฟ์เวอร์ "bit over main loop" จะทำงานเหมือนด้านบนยกเว้นว่าจะใช้ทรัพยากรตัวจับเวลาสำหรับการกำหนดบิตแทนการนับรอบ การขัดจังหวะซึ่งไม่ใช้เวลานานเกินไปในการให้บริการอาจถูกเปิดใช้งาน สำหรับการส่งข้อมูลแบบอนุกรมทรัพยากรตัวจับเวลาอัตราคงที่อาจใช้ร่วมกับวัตถุประสงค์อื่น สำหรับการรับอนุกรมอย่างไรก็ตามไดรเวอร์บิตแบรนจะต้องสามารถโหลดตัวจับเวลาเมื่อบิตเริ่มต้นมาถึงเพื่อให้หมดอายุในช่วงกลางของเวลาบิตที่เข้ามาแต่ละครั้ง
ไดร์เวอร์บิตแมปที่ขับเคลื่อนด้วยการขัดจังหวะเต็มรูปแบบใช้ตัวจับเวลาอัตราคงที่ซึ่งทำงานที่อัตราข้อมูลหลายค่าโดยเฉพาะ (3x และ 5x ดีกว่า 4x) และทำทุกอย่างผ่านตัวจับเวลานั้น ไดรเวอร์ดังกล่าวสามารถทำงานพร้อมกันกับทุกอย่างอื่น แต่จะต้องใช้ CPU ที่เร็วกว่าประเภทไดรเวอร์เดิมที่จะต้องใช้
เพื่อหลีกเลี่ยงการมีสองรูปแบบแรกของตัวควบคุมรอตลอดไปสำหรับข้อมูลที่อาจไม่เคยเกิดขึ้นเป็นเรื่องปกติที่รูทีนการอ่านเพื่อรวมค่าหมดเวลาใช้งาน โปรดทราบว่าหากวนของคอนโทรลเลอร์ AA ทำเช่น "รับไบต์ขณะรอ 100ms ทำสิ่งอื่นถ้าไม่มีใครมาแล้วก็รับไบต์ต่อไป ฯลฯ " และไบต์มาถึงในระหว่างเวลาที่ "ได้รับ" ประจำหมดเวลาและตัวควบคุมเริ่มรออีกครั้งไบต์นั้นจะหายไป อุปกรณ์ที่สื่อสารด้วยจะต้องคาดหวังความเป็นไปได้นั้น
เฉพาะไดร์เวอร์รูปแบบที่สามเท่านั้นที่จะสามารถจัดการกับความเป็นไปได้ของไบต์ข้อมูลที่เริ่มต้นที่จะมาถึงในขณะที่ไบต์ข้อมูลกำลังถูกส่ง อย่างไรก็ตามสองสไตล์แรกสามารถใช้สำหรับโปรโตคอลการสื่อสาร full-duplex ความเร็วสูงบางตัวหากคอนโทรลเลอร์ต้องพูดเมื่อพูดกับเท่านั้น เคล็ดลับคือการมีรูทีน "อ่านและเขียนข้อมูล" ซึ่งจะรอบิตเริ่มต้นที่เข้ามาและเมื่อตรวจพบหนึ่งซ้อนทับการอ่านและเขียนเช่นนั้นตัวควบคุมจะส่งแต่ละบิตเช่นเดียวกับที่จะตรวจสอบข้อมูลที่เข้ามา เมื่อตัวควบคุมตรวจจับบิตเริ่มต้นที่เข้ามามันจะรู้ได้อย่างแม่นยำว่าเมื่อใดควรค้นหาบิตข้อมูล 8 บิตถัดไปและหยุดบิตดังนั้นจะรู้ว่ามันสามารถใช้เวลาในการส่งออกข้อมูลของตัวเองได้อย่างปลอดภัย
หมายเหตุบางส่วน: ตัวควบคุมที่ใช้หนึ่งในสองรูปแบบของ bit-bang uart เพื่อรับข้อมูลจะต้องประมวลผลแต่ละไบต์ของข้อมูลก่อนที่ขอบตกของบิตเริ่มต้นของไบต์ถัดไปเพื่อหลีกเลี่ยงการสูญเสียข้อมูล หากตัวควบคุมรู้ว่าการประมวลผลจะใช้เวลาอย่างน้อยครึ่งบิตมันอาจเพิ่มเวลาสูงสุดสำหรับการประมวลผลโดยการยอมรับแต่ละไบต์ทันทีที่คว้าบิตข้อมูลล่าสุดแทนที่จะรอบิตหยุด อย่างไรก็ตามวิธีการเพิ่มเติมในการให้คอนโทรลเลอร์มีเวลามากขึ้นอาจเป็นประโยชน์หากมีอุปกรณ์ที่ให้การรับส่งข้อมูลด้วยบิตหยุดสองบิตแทนที่จะเป็นหนึ่ง หากสามารถกำหนดค่า "parity mark" ได้นั่นจะเป็นการเพิ่มเวลาบิตเพิ่มเติมอีกเล็กน้อย การส่งที่ 115200-8-M-2 นั้นจะช่วยให้เวลาในการประมวลผลมากกว่า 57600-8-N-1 ถึงแม้ว่ามันจะป้อนข้อมูลได้เร็วกว่า 1.6 เท่า