การกำหนดค่า Baud Rate และ Baud Rate Algorithm

Aug 07, 2018ฝากข้อความ

การตั้งค่าอัตราการสื่อสารการสื่อสารแบบอนุกรมและอัลกอริทึมอัตรา baud


เมื่อใช้การสื่อสารแบบอนุกรมของไมโครคอมพิวเตอร์เครื่องหนึ่งอัตราการส่งผ่านข้อมูลจะต้องตั้งค่าและอัตราการส่งข้อมูลควรตั้งไว้ที่ 9600, 19200 หรือไม่? นี่เป็นประเพณีหรือเปล่า? จากสิ่งที่? oscillator คริสตัลที่คล้ายกันยังเป็น 11.0592MHZ

เป็นครั้งแรกในการตั้งค่า oscillator คริสตัลและตั้งค่าอัตรา baud หรือตั้งค่าอัตรา baud ก่อนแล้วจึงตั้งค่า crystal oscillator ทำไมจึงควรตั้งค่านี้?


มีสองข้อความที่น่าเชื่อถือมากขึ้น:


1: ตามลักษณะทางกายภาพของไฟฟ้า, สื่อส่ง ฯลฯ รวมกับความต้องการของการใช้อุปกรณ์แบบอนุกรม

เพื่อให้การสื่อสารที่มีประสิทธิภาพตามลักษณะทางกายภาพของไฟฟ้าสื่อส่ง ฯลฯ รวมกับข้อกำหนดของการใช้อุปกรณ์แบบอนุกรมจะพิจารณาว่าอัตราการส่งผ่านสูงสุดของ RS232 สามารถเพียง 115200 และจากนั้นได้โดยสองขั้นตอน เพื่อรับ 57600, 28800, 19200; เพื่อปรับให้เข้ากับอัตราเหล่านี้ออกแบบความถี่คริสตัลที่สอดคล้องกัน


2: เป็นไปตามลักษณะของสายโทรคมนาคม

bandpass ของสายโทรศัพท์อยู่ที่ 300 - 3KHz ในเวลานั้น, แรกของ mayes ในโมเด็มเพื่อให้สัญญาณ 2400HZ ใช้อัตราการส่งข้อมูลที่สอดคล้องกันคือ 2400 เนื่องจากความถี่พื้นฐานจะถูกกำหนด pass ปรับปรุงนำ วิธีการของอัตราจะคูณบนพื้นฐานของ 2400 ภายหลังดังนั้น การก่อตัวของ 9600.19200 . . .


ทั้งสองวิธีมีอัตราการบอดและความถี่คริสตัล


การคำนวณอัตรา baud ของการสื่อสารแบบอนุกรมของไมโครคอมพิวเตอร์ตัวเดียว


ในโหมด 0 และโหมด 2 อัตราความเร็วของพอร์ตอนุกรมจะได้รับการแก้ไขและโหมด 0 คือ Fosc / 12 โหมด 2 คือ Fosc / 32 หรือ Fosc / 64 ซึ่งกำหนดโดยบิต SMOD ของ PCON register


ในโหมด 1 และ 3 โหมดอัตรา baud เป็นค่าตัวแปร อัตราการส่งผ่านข้อมูลสามารถสร้างได้โดย Timer 1 (สามารถสร้างเวลาได้ 8052 โดย Timing 2) อัตราการส่งข้อมูลคือเท่าไร? อัตราการถ่ายโอนข้อมูลโดยอัตราการ ล้น ตัวจับเวลา 1 ตัว ที่จะกำหนด:

อัตราการถ่ายโอนข้อมูล = (2SMOD / 32) * (Timer 1 Overflow Rate)

หมายเหตุ: 2SMOD ที่นี่ SMOD เป็นดัชนี SMOD เป็นอัตราบิตเรตคู่อัตราบิตนี้อยู่ใน PCON register


เมื่อใช้ตัวจับเวลา 1 เป็นเครื่องกำเนิดอัตราบอดี้มักจำเป็นต้องตั้งค่าตัวจับเวลา 1 ให้ทำงานในโหมดโหลดอัตโนมัติ 8 บิตและปิดการจับเวลา 1 ตัวขัดจังหวะด้วยเช่นกัน อัตราการไหลล้นคือความถี่ของการล้น สมมติว่าความถี่ของคริสตัลเป็น 12MHz และค่า TH1 เท่ากับ 0xFE จะต้องมีเพียง 2 โอเวอร์คล็อกเท่านั้นและระยะเวลาการรั่วไหลคือ 2us จากนั้นความถี่ในการถ่ายโอนข้อมูลเกิน 500KHz ตามช่วงเวลาจับเวลาเวลามีสูตรต่อไปนี้:

* วงจรเครื่อง = (ค่านับสูงสุด - ค่าเริ่มต้นของตัวนับ) * (12 / ความถี่คริสตัล (Hz)) (s) = (256-TH1) * (12 / OSC_FREQ ( เฮิร์ตซ์)) (s)


จากนั้นความถี่ของการล้นเป็นธรรมชาติ:

OSC_FREQ (Hz) / ((256-TH1) * 12)


ดังนั้นอัตราการผลักดันสุดท้ายคือ:

(2SMOD / 32) * (OSC_FREQ (Hz) / ((256-TH1) * 12))


สูตรการคำนวณของอัตราการส่งข้อมูลมีให้ และตามธรรมชาติค่าเริ่มต้นของ TH1 สามารถคำนวณได้ตามอัตรา baud:

BAUD_RATE = (2SMOD / 32) * (OSC_FREQ (Hz) / ((256-TH1) * 12))


32 * 12 * (256-TH1) = (2SMOD * OSC_FREQ (Hz)) / BAUD_RATE


256-TH1 = (2SMOD * OSC_FREQ (Hz)) / (BAUD_RATE * 32 * 12)


TH1 = 256 (2SMOD * OSC_FREQ (Hz)) / (BAUD_RATE * 32 * 12)


สมมติว่าความถี่ของคริสตัลอยู่ที่ 11.0592MHz อัตราการส่งข้อมูลคือ 9600, SMOD = 0 ค่าเริ่มต้นของ TH1 ควรเป็นเท่าไร? ตามสูตรข้างต้นสามารถคำนวณ TH1 = 256-11059200 / (9600 * 32 * 12) = 0xFD



ส่งคำถาม

whatsapp

โทรศัพท์

อีเมล

สอบถาม