资料介绍
本文介绍一种在80C51 串行通讯应用中自动检测波特率的方法。按照经验,程序起动后所接收到的第1 个字符用于测量波特率。
这种方法可以不用设定难于记忆的开关,还可以免去在有关应用中使用多种不同波特率的烦恼。人们可以设想:一种可靠地实现自动波特检测的方法是可能的,它无须严格限制可被确认的字符。问题是:在各种的条件下,如何可以在大量允许出现的字符中找出波特率的定时间隔。
显然,最快捷的方法是检测一个单独位时间(single bit time),以确定接收波特率应该是多少。可是,在RS-232 模式下,许多ASCII 字符并不能测量出一个单独位时间。对于大多数字符来说,只要波特率存在合理波动(这里的波特率是指标准波特率),从起始位到最后一位“可见”位的数据传输周期就会在一定范围内发生变化。此外,许多系统采用8 位数据、无奇偶校验的格式传输ASCII 字符。在这种格式里,普通ASCII 字节不会有MSB 设定,并且,UART总是先发送数据低位(LSB),后发送数据高位(MSB),我们总会看见数据的停止位。在下面的波特率检测程序中,先等待串行通讯输入管脚的起始信号(下降沿),然后起动定时器T0。在其后的串行数据的每一个上升沿,将定时器T0 的数值捕获并保存。当定时器T0溢出时,其最后一次捕获的数值即为从串行数据起始位到最后一个上升沿(我们假设是停止位)过程所持续的时间。
CmpTable 表格列出了每一波特率的最大测量时间。这些数据是经过选择的,所以,4 个数据位时间(加上起始位时间)仍可产生正确的波特率。
使用这种方法时,必须遵守一个假设:这种技术仅取决于所接收到的一个字符,接收这个字符的波特率必须大于最低波特率。本质上来说,这意味着这个字符必须来自正常敲击键盘时所产生的字符。
在PC 上,我们不可能快速、连续地敲击两个字符,以欺骗程序。但是,PC 的功能键具有一个问题,因为它会连续发送两个紧挨着的字符,使程序检测得到错误的波特率。在为12MHz时钟频率而设计的的例子程序中,其总采样时间大约为65mS,大约可以在RS-232 通讯中以300bps 的速度发送两个字符。

假如使用了奇偶校验,当4 个MSB 以及所接收字节的奇偶校验位均这同一值时,就可能会发生错误。这类错误的发生取决于系统是使用了奇校验或偶校验,可能发生于小写的字母“p”到“z”,还有花括号({})、垂直条(|)、波纹线(~),以及删除键“delete”。值得注意的是,惯常的提示符按键(如,空格键、回车键、及返回键),是没有这些限制的(奇数还是偶数的限制?)。
在以此方式运行程序时,如第一个字节已经过去,但串行口(UART)的波特率未能正确设置,那将造成用于检测波特率的第一个字符丢失。同样,如果在正常通讯中检测到串行口的通讯“帧”错误,绝大部分“实时”程序必须重复这一检测波特率的过程。
如需采用另外设定的晶体振荡频率、波特率,请使用下列公式计算CmpTable 的表项目:
- 【Practical】51单片机串行口与波特率
- 80C51单片机串行通信讲解
- 80C51单片机的串行口结构和原理的程序免费下载
- 51单片机串口波特率的计算方法说明
- 51单片机教程之80C51单片机的串行口介绍及如何进行串行总线的扩展 27次下载
- 单片机教程之80C51的中断系统及定时和计数器的详细资料概述 9次下载
- 单片机有什么功能80C51单片机的功能单元的资料介绍 7次下载
- 51单片机教程之80C51单片机的指令系统 36次下载
- 51单片机教程之串行接口的详细资料概述 10次下载
- 80C51单片机的硬件结构是怎么样的? 27次下载
- 设定80C51串行异步通讯的波特率 82次下载
- 自动检测80C51串行通讯中的波特率
- 基于VB6.0 的PC单片机多波特率通信
- 串行通信波特率的一种自动检测方法
- 自动检测单片机80C51串行通讯时的波特率
- MCU串口自动识别波特率原理分析 2.7k次阅读
- 如何使用示波器测量串口波特率 9.6k次阅读
- 串口通讯波特率出现误差的因素 1.2w次阅读
- 波特率自动检测的识别方法及无线数据传输模块的设计及应用 5.9k次阅读
- 如何计算8051单片机的波特率 4.5k次阅读
- 80C51单片机实现专用寄存器位寻址的设计方案 3.9k次阅读
- 80C51单片机与8051单片机的区别是什么 9.7k次阅读
- 51单片机引脚简介 5.6w次阅读
- 80C51单片机模拟I2C总线的主机程序分享 4.1k次阅读
- 80C51单片机与8051单片机的主要差别在哪里 8.4k次阅读
- Keil C51单片机变量的使用方法详细介绍 5.4k次阅读
- 51单片机定时器模式2与波特率的应用 8.4k次阅读
- 基于80C51单片机位寻址编程 3.9k次阅读
- 串行通信的实现条件和波特率自动整定问题 4.5k次阅读
- 解析80C51单片机中的cpu、存储器配置以及并行输入/输出口 2.8w次阅读
下载排行
本周
- 1美的电磁炉电路原理图资料
- 4.39 MB | 16次下载 | 10 积分
- 2反激式开关电源设计解析
- 0.89 MB | 2次下载 | 5 积分
- 3简易光伏控制器原理图资料
- 0.07 MB | 1次下载 | 5 积分
- 4TPS23755数据手册
- 0.07 MB | 次下载 | 免费
- 536伏,10兆赫兹低噪声双运算放大器COS5532 技术手册
- 0.41 MB | 次下载 | 免费
- 6LM5176 55V 宽输入电压同步4开关降压/升压控制器技术手册
- 2.40 MB | 次下载 | 免费
- 7MCU模块原理图资料
- 0.37 MB | 次下载 | 1 积分
- 8LoRa1121 FCC&CE认证 多频段LoRa无线通讯模块规格书
- 997.05 KB | 次下载 | 免费
本月
- 1美的电磁炉电路原理图资料
- 4.39 MB | 16次下载 | 10 积分
- 2冷柜-电气控制系统讲解
- 13.68 MB | 7次下载 | 10 积分
- 3SDFM 激光测距模块模组手册
- 0.54 MB | 7次下载 | 免费
- 4直流电路的组成和基本定律
- 1.67 MB | 4次下载 | 免费
- 5SW6238V ACCC 三 PD 四口多协议移动电源 SOC规格书
- 0.59 MB | 4次下载 | 1 积分
- 6安川A1000变频器中文版说明书
- 20.16 MB | 3次下载 | 3 积分
- 7IP6742_datasheet_100V8A 同步 BUCK 控制器
- 2.16 MB | 3次下载 | 免费
- 8PAW3395DM-T6QU:光学游戏导航芯片手册
- 1.26 MB | 2次下载 | 10 积分
总榜
- 1matlab软件下载入口
- 未知 | 935137次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420064次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233094次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191448次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183360次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81605次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73829次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65991次下载 | 10 积分
电子发烧友App





创作
发文章
发帖
提问
发资料
发视频
上传资料赚积分
评论