มีอัตรา UART มาตรฐานเท่าไหร่?


33

ฉันรู้ 9600, 19200, 38400, 57600, 115200 และ 1.8432 Mbaud แต่ไม่มีคนอื่น เหตุใดจึงใช้ค่าเหล่านี้และเพิ่มขึ้นเป็นสองเท่าในแต่ละครั้งหรือมีบางสิ่งที่ซับซ้อนมากขึ้น (ตัวอย่างเช่น 38400 สี่เท่าไม่ใช่ 115200 บอด)

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


ในทางปฏิบัติตัวนับขนาด 16 บิตบวกกับตัวขูดก่อน / หลังนั้นมากเกินพอที่จะได้รับ "ใกล้พอ" ถึงอัตราการรับส่งข้อมูลโดยพลการ อนุกรม UART สามารถทนอัตราการรับส่งข้อมูลที่ไม่ตรงกันเล็กน้อย
Peter Green

uart เริ่มต้นที่ตรงกลางของบิตเริ่มต้นและจะต้องอยู่ใกล้กับกึ่งกลางของ STOP บิตหลังจากซีเรียลไลซ์ 7-10 บิต ซึ่งทำให้ความแม่นยำของนาฬิกาน้อยที่สุดประมาณ 2-3% โดยเฉพาะอย่างยิ่งดีกว่าที่จะจัดการกับเสียงรบกวน, กระวนกระวายใจ, การเบี่ยงเบนในความถี่ที่มา ...
TEMLIB

คำตอบ:


36

มันเริ่มมานานแล้วกับโทรพิมพ์ - ฉันคิดว่า 75 บอด จากนั้นก็เพิ่มขึ้นเป็นสองเท่านับตั้งแต่นั้นมาด้วยการคูณเศษส่วน (x1.5) เช่น 28,800 ซึ่งมีข้อ จำกัด ในเทคโนโลยีโมเด็มสายโทรศัพท์ที่ไม่อนุญาตให้เพิ่มเป็นสองเท่า

ค่าคริสตัลมาตรฐานมาจากการรับส่งข้อมูลก่อนหน้านี้และความพร้อมใช้งานจะกำหนดอัตราในอนาคต เช่น,

7.3728MHZ16=460,800บอด7.3728MHZ64=115,200บอด.

2n×16

มาตรฐานทั่วไปอื่น ๆ คือ 31,250 (MIDI) และ 250K (DMX) ซึ่งทั้งคู่เลือกที่จะเป็นนาฬิกาทวีคูณที่ดีเช่น 1MHz เป็นต้น


4
ฉันไม่คิดว่าตัวแบ่งเศษส่วนใช้เพื่อรับบิตเรตที่ไม่เป็นมาตรฐาน แต่เป็นบิตเรตมาตรฐานจากความถี่สัญญาณนาฬิกาของ MCU ที่ไม่ได้มาตรฐาน
Johan.A

3
ฉันทาสีใหม่สองปีในปี 1926 โทรพิมพ์กลับมาที่วิทยาลัย (1976) และใช่พวกเขาวิ่งไปที่ประมาณ 75 บอด พวกมันถูกติดป้าย baudot teletypes เสียบเข้ากับ 110vac และมอเตอร์ให้เวลากับการเชื่อมต่อไฟฟ้าระหว่างพวกเขา ฉันจุ่มน้ำมันเบนซินเพื่อทำความสะอาด (ให้ฉันหยุดพัก - ฉันอายุ 18 แต่ทำงานได้!) Ctrl-G ดังก้องเสียงระฆังที่ดีงาม อนิจจาฉันจำไม่ได้ว่าใครเป็นคนมอบให้ :-( งั้นคุณต้องพิมพ์บนแป้นพิมพ์เชิงกลมันจะทำการเรียงลำดับการกดแป้นพิมพ์ของคุณโดยอัตโนมัติและทำการติดต่อกับที่อีกฝ่ายอ่าน
Doug Null

Yay the Roaring '20! เทคโนโลยีที่มีคุณภาพในช่วง 50 ปีที่ผ่านมาและจบลงที่โรงเก็บของจอห์นซิลวาที่เฮย์เวิร์ดแคลิฟอร์เนีย
Doug Null

32

RealTerm โปรแกรมเทอร์มินัล Windows ฟรีแวร์แสดงอัตรา UART เหล่านี้ในเมนู Baud:

110, 150, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600

อย่างไรก็ตามสิ่งเหล่านี้เป็นบิตต่อวินาที (bps) ไม่ใช่ baud - ดูด้านล่าง

อุปกรณ์รับส่งสัญญาณ 110 สายถูกใช้งานโดย Teletypes 8 ระดับเช่น ASR-33 ฉันไม่ทราบว่ามีการใช้ 150 Baud ที่ไหน แต่เป็นการเพิ่ม 75 baud ที่ใช้กันทั่วไป (รวมทั้ง 60 baud) เป็น 5 เท่าสำหรับ TTY 5 ระดับ

300 bps เป็นมาตรฐานสำหรับโมเด็มโทรศัพท์ที่ใช้กันอย่างแพร่หลายครั้งแรกในปี 1960 จำนวน 30 อักขระต่อเทอร์มินัลวินาทีปรากฏขึ้นพร้อมกัน

สูงกว่า 300 bps / 300 baud ซึ่งใช้การเปลี่ยนความถี่แบบง่าย (FSK) ตัวเลขสำหรับ bps และ baud (สัญลักษณ์หรือโทนสีต่อวินาที) ไม่เหมือนกัน ตัวอย่างเช่นโมเด็ม 1200 bps ใช้งานจริงที่ 600 baud และโมเด็ม 4800 bps ทำงานที่ 1600 baud ดูตารางภายใต้แบนด์วิดท์ในครั้งนี้บทความ ความแตกต่างเป็นเพราะนอกจากจะใช้พัลส์โทนเสียงต่อวินาทีแล้วยังมีการใช้การคีย์เฟสกะและวิธีอื่น ๆเพื่อดึงแบนด์วิดท์เพิ่มเติมจากอัตราการรับส่งข้อมูลเดียวกันเพื่อให้ได้ bps ที่สูงขึ้นและสูงขึ้น (ดังนั้นโมเด็ม 56K จะทำงานที่ 8000 baud เท่านั้น)

อย่างที่คุณเห็นรายการอัตรา UART เริ่มต้นที่ 75 และเพิ่มเป็นสองเท่าอย่างต่อเนื่อง (ข้าม 600) จนกระทั่งถึง 38400 ซึ่งคูณด้วย 1.5 เพื่อรับ 57600 56K bps เป็นข้อ จำกัด สำหรับสายโทรศัพท์อะนาล็อก อัตราที่สูงกว่า 115200 ขึ้นไป (ใช้เพิ่มอีกสองเท่าเริ่มที่ 57600) สำหรับการเชื่อมต่อแบบมีสาย

ตามที่ mikeselectricstuff ได้กล่าวถึงนั้นมีการแนะนำ 14400 และ 28800 bps ที่ 1.5 x 9600 และ 1.5 x 19200 เมื่อความเร็วของโมเด็มไม่สามารถเพิ่มขึ้นเป็นสองเท่าในเวลานั้น แต่ไม่ค่อยมีใครใช้อีกต่อไป


7
ไม่ใช่โปรแกรมอวดความคิด แต่โปรแกรมสามารถรองรับความเร็วที่ฮาร์ดแวร์อนุญาตเท่านั้น มันอาจไม่ได้รบกวนถามและเพียงแค่ออกรายการความเร็วมาตรฐาน ขอฮาร์ดแวร์ของฉันzip(*serial.Serial('COM10').getSupportedBaudrates())มันตอบ:(50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200)
Nick T

2
ฉันใช้ตัวเชื่อมต่ออะคูสติกดูเพล็กซ์แบบครึ่งบิต 600 บิต / วินาทีในแปดสิบ 75 bit / s ถูกใช้ในระบบ BTX ของเยอรมันในทิศทางการอัปโหลดเป็นเวลานานการดาวน์โหลดอยู่ที่ 1200 bit / s
starblue

2
ฉันเคยเห็น 62.5 kbaud แล้ว ที่จริงแล้วมันยังขึ้นอยู่กับนาฬิกาหลักของคุณคุณสามารถคำนวณว่า baudrate ใดที่จะทำให้เกิดข้อผิดพลาดต่ำพอสมควร
vsz

5

เป็นเวลานานเป็นเรื่องปกติที่จะใช้ submultiples 115,200 ในการติดต่อสื่อสาร - ทั้งสอง subultiples พลังของสอง 38,400 หรืออื่น 57,600 หรือ 115,200 ฮาร์ดแวร์พีซีส่วนใหญ่รองรับอัตราเหล่านั้น ฮาร์ดแวร์พีซีบางตัวสามารถรองรับ 230,400 หรือ 460,800 โปรดทราบว่าคอนโทรลเลอร์ที่ฝังตัวจำนวนมากเช่นอัตราข้อมูลซึ่งเป็นหลายส่วนย่อยของความเร็วสัญญาณนาฬิกาของตัวเองและชิป USB ต่ออนุกรมบางตัวสามารถรองรับจำนวนเต็มย่อยของ 3,000,000bps ดังนั้นความเร็วเช่น 1,000,000bps หรือ 1,500,000bps อาจกลายเป็นเรื่องธรรมดาสำหรับ อุปกรณ์ที่จะเชื่อมต่อกับพีซีผ่านชิป USB

BTW อัตราอีกหนึ่งค่าที่กล่าวถึง: 31,250bps เป็นอัตราที่ใช้สำหรับ MIDI มาตรฐาน


4

พีซี IBM ดั้งเดิมมี 8250 UART สิ่งนี้ใช้นาฬิกา 1.8432 MHZ และหารด้วยจำนวนเต็มเพื่อสร้างนาฬิกาภายในและนาฬิกานั้นทำงานที่ 16 รอบถึงบิต

การตั้งค่า 1 ในการลงทะเบียนตัวหารทำให้คุณได้รับ 115,200, 2 ได้รับ 57,600, 3 ได้รับ 38,400, 6 ได้รับ 19,200 ฯลฯ

ทางออกที่ดีที่สุดของคุณคือการใช้นาฬิกาที่ทำงานด้วยความเร็วหลายเท่าของ 1.8432 MHz ด้วย DSPIC

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.