[MCU] 串行通信的实现条件和波特率自动整定问题

[复制链接]
1180|20
 楼主| Plantt 发表于 2019-12-29 22:11 | 显示全部楼层 |阅读模式
串行通信的实现条件和波特率自动整定问题



串行通信在波特率误差超过一定范围时,会产生错误。本节介绍的内容在51单片机上仅用软件就实现了波特率自动整定,最大程度地减小了波特率误差,因而可使串行通信的可靠性得到提高。

51单片机具有一个全双工的串行接口,提供了多机通信功能,可方便地构成多机系统(多机容错系统、集散型多级系统),为完成大型的控制任务提供了有效的手段。用51单片机组成的多机控制系统,国内已出现多例。在这样的系统中,可靠地实现多处理器间的信息交换(串行通信)是十分重要的。本节的研究发现,波特率作为串行通信的速率,同时对通信的可靠性有重要影响。



正常串行通信的实现条件

串行通信是按位传送数据的。每个数据有8或9个数据位,加上起始位和停止位构成一个串行帧。每一位占用时间T,1/T称为串行通信的波特率。理想情况下,发送机和接收机设置的波特率一致。接收机的接收控制器在串行帧每一数据位的中点进行采样,能接收到正确的数据,但要求波特率完全一致是不可能的。这就提出了一个问题:要可靠地实现串行通信,允许收发双方的波特率有多大误差?我们以一个10位的串行帧为例进行分析。

图1 (b)是正常工作的情形,波特率一致。在图1 (a)中,接收波特率不变,而发送波特率变小,每位的时间T延长5%,在第10位采样时,就产生了错位,不能进行正常通信。对于10位的串行帧,允许的最大波特率误差不超过5%;在多机通信方式下,串行帧是11位的,允许的最大波特率误差不超过4. 5%。

上面得到的仅仅是理想情况下的波特率误差允许上限。实际应用中,由于硬件设备的频带有限,数据位的上下跳沿要占用一定时间,每个数据位的有效时间比理想情况要短,所以对波特率误差会有更严格的要求。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
usysm 发表于 2020-2-7 21:17 | 显示全部楼层
串口波特率自适应是怎么做的?  
typeof 发表于 2020-2-7 21:21 | 显示全部楼层
自整定怎么进行  
yujielun 发表于 2020-2-7 21:22 | 显示全部楼层
msp430如何实现波特率自适应
htmlme 发表于 2020-2-7 21:22 | 显示全部楼层
C语言中怎么设置波特率  
pklong 发表于 2020-2-7 21:22 | 显示全部楼层
工作方式的波特率如何确定  
touser 发表于 2020-2-7 21:23 | 显示全部楼层
串行通信的双方波特率必须相同
myiclife 发表于 2020-2-7 21:23 | 显示全部楼层
msp430自动波特率检测怎么用  
uytyu 发表于 2020-2-7 21:23 | 显示全部楼层
搜集了一下串口通讯波特率自适应得技术**
iyoum 发表于 2020-2-7 21:24 | 显示全部楼层
如何准确判定CAN总线的波特率?
jkl21 发表于 2020-2-7 21:24 | 显示全部楼层
波特率自适应,还是指数据校验的前向纠错?
typeof 发表于 2020-2-7 21:24 | 显示全部楼层
波特率发生器的波特率计算呢   
usysm 发表于 2020-2-7 21:24 | 显示全部楼层
装置有哪些功能   
myiclife 发表于 2020-2-7 21:25 | 显示全部楼层

有没有自动识别的C程序
touser 发表于 2020-2-7 21:25 | 显示全部楼层
ch341的串口波特率是自动识别的吗
uytyu 发表于 2020-2-7 21:25 | 显示全部楼层
真正的自动波特率检测功能在检测完以后,还要按照对方的波特率与之通讯的
pklong 发表于 2020-2-7 21:25 | 显示全部楼层
怎样就实现自动搜端口和波特率了  
iyoum 发表于 2020-2-7 21:25 | 显示全部楼层
求一套波特率自动识别的完整程序
htmlme 发表于 2020-2-7 21:25 | 显示全部楼层

单片机怎么自动识别波特率
jkl21 发表于 2020-2-7 21:25 | 显示全部楼层
有能自动识别协议和波特率的吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

637

主题

901

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部