比特率和波特率的区别及其起源?
波特率是单个比特时间或符号时隙的速率。并非所有时隙都必须携带数据位,并且在某些协议中,一个时隙可以携带多个位。例如,想象一下用于一次指示两个位的四个电压电平。
比特率是实际数据位被传输的速率。这可能小于波特率,因为一些位时隙用于协议开销。它也可以超过每个符号携带多于一位的高级协议中的波特率。
例如,考虑常见的 RS-232 协议。假设我们使用 9600 波特、8 个数据位、一个停止位和无奇偶校验位。一个传输的“字符”如下所示:
由于波特率为 9600 位/秒,每个时隙为 1/9600 秒 = 104 µs 长。该字符由一个起始位、8 个数据位和一个停止位组成,总共 10 个位时隙。因此,整个字符需要 1.04 毫秒来传输。
但是,在此期间仅传输了 8 个实际数据位。因此,有效比特率为(8 位)/(1.04 毫秒)= 7680 位/秒。
如果这是一个不同的协议,例如,使用四个电压电平来一次指示两个比特,而波特率保持不变,那么每个字符将传输 16 个比特。这将使比特率达到 15,360 比特/秒,实际上高于波特率。
行比特率是每秒移动的比特数。
数据比特率是每秒移动的信息比特数。
波特率是每秒的符号数(波特以Emile Baudot命名)
线路编码的一个例子是QAM;QAM64 每个符号编码 6 位 ( \$ 64\ =\ 2^6\$ ),因此波特率将是\$ \frac {line bit rate} {6}\$
作为一个(非常人为的)示例,我们可能会看到如下内容:
基本速率 = 每秒 64000 位 - 这是数据速率
使用基于 32 位的标准帧进行线路编码,每个字添加 1 个帧位:这增加了 2000 个帧位,因此线路速率现在为每秒 66,000 位。
现在我们执行 QAM16(每个符号编码 4 位),所以波特率(或符号率)= 16.5kBaud
线路比特率和数据率可能不同的另一种方式是我们需要在比特流中填充比特,例如SDLC。
SDLC成帧符号为 01111110 (0x7E),用于帧的开始和结束;显然,我们不希望数据字段成为帧符号并错误地标记帧的开始或结束,这会使链接变得无用。
为了防止这种情况,如果在帧的有效载荷部分(发送源知道)中检测到 5 个“1”位序列,则将零插入位流中以防止帧符号过早结束。顺便说一句,通道上的开销不是确定性的。
波特率是指每秒的“槽”数。对于大多数形式的串行通信,每个插槽中的数据是 1 或 0。但是,例如,对于每个时隙的四个(相对于两个)可能值,可以传输指示零和三之间的值的电压。每个时隙有四个值,传输数据的速度是常规“二进制”模式数据的两倍。
这种编码在电报的早期使用(当时尝试了各种奇怪的策略),但几乎不再用于任何距离的通信。然而,多级编码有时仍然在计算机集成电路内部完成,以减少所需的电线数量。