串行通信中的波特率设置分析

发布者:EuphoricMelody最新更新时间:2018-02-26 来源: eefocus关键字:串行通信  波特率设置 手机看文章 扫描二维码
随时随地手机看文章

  51单片机具有串行通信能力。其串行接口( UART)是一个全双工的通信接口,能方便地与其他单片机实现双机或多机串行通信。随着IBM - PC机的普及和单片机应用的迅速发展,把这两种微型机结合起来的应用日益广泛,从而使之既具有较强的实时控制功能,又有很强的数据处理能力,充分发挥了不同机种的特长。在这种应用中,双方都采用了RS - 232C标准串行通信接口,以实现双机或多机之间的通信。
  
  在不同机种的微机通信中,众所周知的一个问题是进行通信的双方应该采用相同的传输速率,即双方都应使用同样的传输波特率,这是确保通信成功的重要条件之一。下面仅对通信中波特率的设置问题作一些论述,供大家参考。
  
  在IBM - PC/XT系统中,配备有异步通信适配器,该板上设有INS8250异步通信接口。PC机上波特率的设置是通过对8250初始化而实现的。在8250端口寄存器中,3FSH和3F9H分别设置为波特率因子的低8位和高8位值。该因子取值范围为1~65 535,对输入时钟(1. 843 2 MHz)进行分频,产生16倍波特率的波特率发生器时钟(BAUDOUT),因而


  
  对8250初始化预置了波特率因子之后,波特率发生器方可产生规定的波特率。
  
  51单片机串行通信的波特率因串行口工作方式选择不同而异。它除了与系统的振荡频率电源控制寄存器PCON的SMOD位有关外,还与定时器T1的设置有关。
  
  在串行口工作方式O时,波特率固定不变,其大小为foSC/12。在串行口方式2时,波特率也只固定为两种,与SMOD位的值有关:当SMOD-O时,波特率为foSC/64;当SMOD=1时,波特率为foSC/32。串行口方式1、3的波特率是可变的,除与SMOD位的取值有关外,主要取决于定时器1的溢出率。当定时器1用作串行通信的波特率发生器时,波特率可由下式确定:
  
  波特率=T1溢出率/n
  
  式中:n=32或16,对应于PCON中SMOD=O或1。而Ti的溢出率取决于计数速率和定时时间常数,即
  
  T1溢出率=计数速率/256-x
  
  此时T1工作于方式2,即8位自动装载方式。这种方式可以避免重新设定定时初值。式中x即为在TH1和TL1中装入的初始计数值。定时器1的计数速率与定时器工作方式的选择有关。当选择T1为定时工作方式时,其计数输入脉冲为内部时钟信号,即每个机器周期使寄存器值加1,而每个机器周期为12个振荡周期,故计数速率为fosc/12。若系统fosc=12 MHz,则T1计数速率为fosc/12=1 MHz。由此可得出


  
  例如,假定串行通信双方波特率要求为9 600 b/s.系统振荡频率fosc=11. 59 MHz,当SMOD选为1时,TH1、TL1的初值计算如下:

将此值置入TH,、TL1时,波特率发生器产生的实际的传输速率为

  在这种情况下,PC机与单片机可以进行正常的接收与发送。
  
  根据以上条件,若系统采用12 MHz系统时钟,按照上面公式计算可得出z≈250或249(FAH或F9H)。此时在THi和TL1中置入FAH或F9H时,实际的传输速率为10 416. 67或8 928. 57 b/s,其误差分别为-8.5%或+7%。
  
  实践表明,PC机与单片机在这种条件下不能实现正常的接收与发送。
  
  上面的计算表明,在串行通信中,当规定了传输速率以后,波特率的设置与系统使用的振荡频率有着很重要的作用,可直接影响通信的成功与失败。上例中,当双机约定了传输速率为9600 b/s时,若系统振荡频率为12 MHz或6 MHz,PC机的波特率为9 600 b/s,而单片机实际的波特率大于(或小于)9 600 b/s.则波特率误差为8.5%。也就是说,若PC机以101.17 μs的时间发送一位数据,则单片机以96 μs的时间接收一位数据。在接收一帧数据的过程中,由于误差的累积,则产生了错码。
  
  我们知道,在单片机的串行接收方式(1、2、3)中,CPU以16倍波特率的采样速率不断对接收数据(RxD)采样,一旦检测到由1到0的负跳变,16分频计数器立刻复位,使之满度翻转的时刻恰好与输入位的边沿对准。16分频计数器把每个接收位的时间分为16份,在中间三位即7、8、9状态时,位检测器对RxD端的值采样,并以3取2的表决方式,确定所接收的数据位。这3个状态,理论上对应于每一位的中间段,若发送端与接收端的传输速率不一致,就会发生采样偏移。这种传输速率的误差在允许范围内不致产生错位或漏码;但当误差超出允许范围时,便会发生错位,使接收的某数据重复接收,因而产生接收数据错。
  
  下面仅对由波特率误差引起的错码现象作一分析。例如PC机与单片机的通信速率约定为9 600 b/s,系统时钟为6 MHz时,为了按约定的速率通信,PC机在8250异步通信接口中的3F8H和3F9H寄存器中设定波特率因子分别为OCH和OOH;而单片机中定时器1初值TH1=TL1 =FDH。此时,PC机发送数据与单片机接收数据情况如下:
  
  PC机发送数据    单片机接收数据
  
  10H—1FH        30H~3FH

  以上数据表明了接收数据中出现的错码情况。通过对上述错码进行剖析可以看到:当因波特率误差引起接收端采样偏移时,如果这个偏移使得接收某数据位的采样在该位中点的半位间隔时,将会对该位采样两次,因而形成了上面的错码情况。下面公式表明错码或漏码发生的位数N:

即当串行异步通信的帧格式为11位时:
  
  ●N≤11,表示一帧数据中有某位被采样错,且采样出错在第N位;
  
  ●N>ll,表示一帧数据中没有数据位发生采样错。
  
  本例中,波特率误差为8. 5%,由上面公式得出8.5%×11=0.935>0.5,说明在这个波特率误差下将出现采样错,且出错位为:

  即在数据帧包括起始位的第6位发生错码,在第6位采样了两次,因而得到上面错码情况。

  由此可以类推出错误的接收数据。
  
  相反,当PC机的传送波特率大于单片机的传送波特率时,则会在第N位出现漏码错误。这里不再赘述。
  
  由上面的公式还可以推断出,当波特率相对误差小于4. 5%时,这种采样的偏移将不影响正常的数据接收。但一般为了保证传输的可靠性,通常波特率误差不大于2.5%,而尽量选择最小的传输误差率。
  
  在波特率的设置中,还有一个问题值得注意,这就是SMOD位的选择也影响着波特率的准确率。请看下面例子:
  
  设波特率为2 400 b/s,fosc=6 MHz时,SMOD可以任选为0或1。但是由于对SMOD不同的选择,产生了不同的波特率误差:

  上面的分析说明了SMOD值虽然是可以任意选择的,但在某些情况下,它直接影响着波特率误差范围,因而在波特率设置时,对SMOD的选取也需要做适当的考虑。
  
  以上对串行通信所必须涉及的波特率设置问题作了一些分析。由此可以看出,在异机种的串行通信中,波特率的设置是很重要的问题,它直接关系着串行通信的成功与失败,因此在波特率设置时需要给予足够的认识。


关键字:串行通信  波特率设置 引用地址:串行通信中的波特率设置分析

上一篇:单片机串行通信中波特率的自动整定
下一篇:单片机基于DTMF编码的无线电数据通信

推荐阅读最新更新时间:2024-03-16 15:55

基于AVR单片机USART与PC机的串行通信
PC机发送字符给单片机控制发光管亮,同时将其传回PC机,其中单片机的发送和接收都采用查询方式 1、USART的主要特点 通用同步和异步串行接收器和转发器(USART) 是一个高度灵活的串行通讯设备。主要特点为: 全双工操作( 独立的串行接收和发送寄存器) 异步或同步操作 主机或从机提供时钟的同步操作 高精度的波特率发生器 支持5, 6, 7, 8, 或9 个数据位和1 个或2 个停止位 支持的奇偶校验操作 数据过速检测? 帧错误检测 噪声滤波,包括错误的起始位检测,以及数字低通滤波器 三个独立的中断:发送结束中断, 发送数据寄存器空中断,以及接收结束中断 多处理器通讯模式 倍速异步通讯模式 2、异步串行收发器 USART
[单片机]
基于AVR单片机USART与PC机的<font color='red'>串行通信</font>
单片机串行通信基础知识
1、引脚信号 在实际工作中,CPU与其他外部设备间的信息交换,或一台计算机与另一台计算机之间信息交换均称为 通信 。 并行通信是数据的各位同时传送。并行通信的特点是传送速度快、效率高,但有多少数据位就需多少根数据线,因此传送成本高,适合近距离传输。在集成电路芯片的内部、同一插件板上各部件之间、同一机箱内各插件板之间的数据传送都是并行的。 串行通信是数据一位一位顺序传送。串行通信的特点是数据传送按位顺序进行,最少只需一根传输线即可完成,成本低但速度慢。计算机与远程终端或终端与终端之间的数据传送通常都是串行的。串行通信的距离可以从几米到几千公里。 串行通信又分为异步通信和同步通信两种方式。在单片机中,主要使用异步通信方式。
[单片机]
PC机与下位单片机异步串行通信
在由一台PC机(上位机)和多台单片机(下位机)构成的分布式控制系统中,单片机主要负责实时数据采集,并将初步处理后的数据通过串行口传送给PC机以便由PC机串行口的命令对单片机进行控制,同时通过打印机或显示器向用户随时提供各种统计报表和整个控制过程的具体数据。在这样的分布式控制系统中,单片机与微机之间的多路通信是整个系统的关键,本文将介绍在提高通信的准确性、可靠性和效率的前提下,用PComm开发PC机与单片机的通信程序的解决方案。 1 通信协议 为了保证可靠的通信,必须有一套完善的通信协议。分布式控制系统中的每台单片机均有唯一的番号。通信开始时,先由PC机呼叫被叫单片机的番号,单片机在接收到微机的呼叫后,首先判断是不是自己的番号,
[单片机]
PC机与下位单片机异步<font color='red'>串行通信</font>
AT89S52单片机与PC机串行通信设计
O 引言 单片机与PC机串行通信,又称为下位机与上位机的串行通信。采用这种通信方式,可以解决工况条件差对工作人员带来的危害,又可以实现实时在线远距离集中监控,对工作现场分散的单片机采用控制平台管理,既可以改善工作条件,又可以提高工作效率。本文针对串行通信的电路设计和程序设计做出了具体的阐述。 1 电路设计 通信接口标准有RS232、RS423A、RS422A、RS485等,常用的接口标准有RS232和RS485。RS232在微机串行通信接口中广泛采用,在加装了调制解调器(modem)的情况下,这种通信可以通过电话线传输数据,并且可以传输几千公里远的距离,如果没有modem可以传输十几米远。本课题采用的是RS-232直连无
[单片机]
AT89S52单片机与PC机<font color='red'>串行通信</font>设计
PIC16F877A与PC机串行通信C语言源程序
//*******串口通信程序********* //*******定义变量************* #include pic16f877.h #define unchar unsigned char #define uint unsigned int unchar RC_label;//标志位起始位为1结束位为0 unchar caiji_label;//采集帧格式标志位正确为1错误为0 unchar data RC ;//存储接收到的数据 unchar data TX1 ;//存储自身参数 unchar data TX2 ;//存储出错指示ERROR int RC_buff;// int i=0,j=0,k=0;/
[单片机]
串行通信 软件仿真STM32与74LS164通信
1、串行通信 2、常见的4种串行通信标准 3、对74LS164芯片的介绍 74LS164:串行转并行芯片,内部是1个8位的移位寄存器组成,由8个D触发器组成 缺点是:不带锁存寄存器,移位寄存器移位的过程会表现在164的输出引脚上,容易产生输出干扰。 4、用KEIL4进行软件仿真时,按正常步骤建立工程,然后在下图位置按照下图设置即可。 5、软件仿真:STM32与74LS164进行通信的程序如下: /**************************************************************************************************
[单片机]
<font color='red'>串行通信</font> 软件仿真STM32与74LS164通信
TMS320C54XX系列DSP与PC机间串行通信的实现
摘要:目前大多数数字信号处理器(DSP)芯片上未提代通用异步串行收发器(UART),只提供2~3个同步串行接口,其与微机及其它设备进行串行通信时,必须在DSP上扩展异步串行接口。以美国TI公司TMS320C54XX系列DSP为例,采用MAXIM公司的MAX3111异步串行收发器,研究了理想的接口扩展方案。论述了这种方案的软、硬件实现。该方案硬件连接简单,软件编程方便,可实现DSP与PC机间的串行通信,具有很高的工程应用价值。 关键词:异步串行收发器 多通道缓冲串行接口 DSP McBSP SPI UART DSP在电子工业领域得到了越来越广泛的应用。在DSP应用系统设计中,必不可少的是各种通信接口的设计。与并行接口相比,串行
[应用]
基于Z85C30的多协议串行通信设计
摘要:简要从硬件和软件两方面介绍一种嵌入式的多协议串行通信设计方案。该设计方案采用多协议串行通信控制器Z85C30及外围电路开发,通过软件编程,可满足各种串行通信要求,如异步、按字节同步、按位同步等通信格式。 关键词:嵌入式系统 串行通信控制器(SCC) Z85C30 引言 我们在嵌入式系统的开发过程中,经常需要设计串行通信口,用以同其它设备或计算机网络交换数据。针对不同的应用场合及不同的通信格式,在硬件设计方面有许多不同的芯片可供选择,如Intel 8251A、Intel 8274、Intel 82530等。采用ZILOG公司的串行通信控制器Z85C30进行设计,和其它器件相比,具有功能强、速度快、外部逻辑少等优点。 1
[网络通信]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved