转自百度贴吧---串口通信中波特率和比特率的概念

来源:互联网 发布:java正则表达式全数字 编辑:程序博客网 时间:2024/06/06 01:55

串口通信中波特率和比特率的概念

        在电子通信领域,波特率即调制速率,指的是信号被调制以后在单位时间内的波特数,即单位时间内载波参数变化的次数。它是对信号传输速率的一种度量,通常以“波特每秒”(Bps)为单位。 

        波特率有时候会同比特率混淆,实际上后者是对信息传输速率(传信率)的度量。波特率可以被理解为单位时间内传输码元符号的个数(传符号率),通过不同的调制方法可以在一个码元上负载多个比特信息。

严谨定义:
.比特率
   在数字信道中,比特率是数字信号的传输速率,它用单位时间内传输的二进制代码的有效位(bit)数来表示,其单位为每秒比特数bit/s(bps)、每秒千比特数(Kbps)或每秒兆比特数(Mbps)来表示(此处K和M分别为1000和1000000,而不是涉及计算机存储器容量时的1024和1048576)。

.波特率
   波特率指数据信号对载波的调制速率,它用单位时间内载波调制状态改变次数来表示,其单位为波特(Baud)。 波特率与比特率的关系为:比特率=波特率X单个调制状态对应的二进制位数。 

如何区分两者?
显然,两相调制(单个调制状态对应1个二进制位)的比特率等于波特率;四相调制(单个调制状态对应2个二进制位)的比特率为波特率的两倍;八相调制(单个调制状态对应3个二进制位)的比特率为波特率的三倍;依次类推。


一直很疑惑串口的工作流程,特别是波特率和采样时间的关系。

今天下午测了一下,终于知晓了,首先要说明的是串口的波特率实质是比特率!!两者计算公式如下:

(

比特率=波特率*单个调制状态对应的二进制位数
例如假设数据传送速率为120符号/秒(symbol/s)(也就是波特率为120Baud),又假设每一个符号为8位(bit),则其传送的比特率为(120symbol/s) * (8bit/symbol)=960bps.
)

测试条件:笔记本+USB转串口线(还有驱动)+串口调试助手(AVEN)---陈绍文+示波器+max232

在串口调试助手里,我发送0xff,在DB9型串口里的TXD端能检测到一个高脉冲,在MAX232的RXD端口能检测到一个低脉冲,根据

起始位为低电平可以推测该低脉冲是起始位,从这里可以看到DB9型的TXD输出实际上时数据取反后的结果,经过MAX232再次取反

后还原为初始数据

在波特率为9600时能测到max232RXD输出脚的低脉冲的宽度为104us,实际上也就是1/9600的近似结果

以此类推,波特率为4800时max232RXD输出脚的低脉冲的宽度为208us......

另外,串口是先发送数据的低位,也就是说,你在串口调试助手里0xfe,从MAX232出来的是0_ 01111111 _1,其中开始和末尾的是起始位和停止位

接收方时钟要比波特率(也就是比特率)大,一般为16、32、64倍,原因这里就不说了.....

0 0
原创粉丝点击