有哪些标准的UART速率?


33

我知道9600、19200、38400、57600、115200和1.8432 Mbaud,但是没有其他。为什么使用这些值,并且每次只是将其简单地加倍还是发生一些更复杂的事情(例如,四倍的38400不是115200的波特?)

我问这个问题的原因是我正在设计一些可能必须与各种不同的波特率进行交互的东西。它将在9600中初始化,然后切换到特定的波特率。但是我不能支持任意速率,因为我使用的dsPIC33F不支持任意速率,因为它仅限于16位BRG递减计数器。在这方面,它与许多其他处理器相似。


实际上,一个16位计数器加上前置/后置缩放器足以使“足够接近”任意波特率。UART串行可以容忍轻微的波特率不匹配。
彼得·格林

uart从START位的中间开始,并且必须在序列化7-10位之后停留在STOP位的中间。这使得最小时钟精度约为2-3%,最好更好地处理噪声,抖动,源频率偏差...
TEMLIB

Answers:


36

它始于很久以前的电传打字机,我认为是75波特。从那以后,它几乎一直翻倍,只有几分之一(x1.5)的倍数,例如28,800,在电话线调制解调器技术上存在一些制约因素,并没有使它翻倍。

标准的晶体值来自这些早期的波特率,其可用性决定了未来的速率。例如,

7.3728中号Hž16=460800波特7.3728中号Hž64=115200波特

大多数UART使用波特率的时钟,更现代的部件(例如NXP LPC)具有分数分频器,可以通过使用非二进制倍数来扩大范围。2ñ×16

其他通用标准是31,250(MIDI)和250K(DMX),它们都可能被选作“舍入”时钟的整数倍,例如1MHz等。


4
我不认为分数分频器用于获取非标准比特率,而是用于从非标准MCU时钟频率获取标准比特率。
Johan.13年

3
我翻新了两年的1926年电传打字机,回到大学(1976年),是的,它们以75波特的速度运行。它们被标记为baudot电传打字机。将其插入110vac,并提供一个电动机定时,并在它们之间进行电气连接。我把它们灌入汽油清洗。(给我一点休息时间-我当时18岁。但是它起作用了!)Ctrl-G向彼此发出诚实的声音。las,我什至不记得我送给谁的礼物。:-(所以,是的,你键入的机械键盘,它会机械系列化你的击键,并进行通断接触它的另一面看。
道格空

是的,咆哮的20年代!持续50年的高质量技术,并出现在加利福尼亚州海沃德的约翰·席尔瓦(John Silva)的棚屋中。
Doug Null

32

一个免费的Windows终端程序RealTerm,在其Baud菜单中列出了这些UART速率:

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

但是,这些实际上是每秒位数(bps),而不是波特率-参见下文。

110波特被ASR-33等8级电传打字机使用。我不知道在哪里使用了150波特,但这是5电平TTY通常使用的75波特的两倍(以及60波特)。

300 bps是1960年代首个广泛使用的电话调制解调器的标准。每秒出现30个字符/秒的终端。

高于300 bps / 300波特(使用简单的频移键控(FSK))时,bps和波特的数字(每秒的符号或音调)不同。例如,一个1200 bps调制解调器实际上以600波特运行,而一个4800 bps调制解调器则以1600波特运行。请参阅本文“带宽”下的表。区别在于,除了每秒使用一定数量的音频脉冲外,还使用相移键控和其他方法从相同的波特率中提取额外的带宽,以获得越来越高的bps。(因此56K调制解调器实际上仅以8000波特运行。)

如您所见,UART速率列表从75开始,然后不断翻倍(跳过600),直到达到38400,再乘以1.5得到57600。56Kbps是模拟电话线的限制。较高的速率115200向上(从57600开始再次翻倍)用于硬连线连接。

正如mikeselectricstuff所提到的,当时调制解调器的速度无法翻倍,但是很少使用了,因此以1.5 x 9600和1.5 x 19200的速率引入了14400和28800 bps。


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 bit / s的半双工声耦合器。在德国的BTX系统中,长时间沿上传方向使用75 bit / s,下载速度为1200 bit / s。
starblue 2011年

2
我还看过62.5 kbaud。实际上,这也取决于您的主时钟,您可以计算出什么波特率会导致足够低的误差。
vsz 2012年

5

长期以来,通常使用115,200的约数进行通信-两个乘方的38,400的乘数或57,600或115,200。大多数PC硬件都支持这些速率。某些PC硬件可以支持230,400或460,800。请注意,许多嵌入式控制器(例如数据速率)是其自身时钟速度的整数倍,而某些USB到串行芯片可以支持3,000,000bps的任何整数整数倍,因此,诸如1,000,000bps或1,500,000bps的速度对于通过USB芯片连接到PC的设备。

顺便说一句,另一个值得一提的速率:31,250bps是用于标准MIDI的速率。


4

原始的IBM PC具有8250 UART。这花费了1.8432 MHZ时钟,并将其除以某个整数以生成其内部时钟,并且该时钟以该位的16个周期运行。

在除数寄存器中设置1可获得115,200,2可获得57,600,3可获得38,400,6可获得19,200,依此类推。

最好的选择是使用带有DSPIC的1.8432 MHz的倍数时钟。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.