单片机串行通信自适应波特率的一种简单实现算

时间:2025-04-25

二兰三!

单片机串行通信自适应波特率的一种简单实现算法

李晓鹏

二,/

王民慧

(贵州大学电气工程学院,贵阳550003)

摘要:研究并实现一种单片机自动适应主机渡特率的简单算法,并用大量的数据进行检验,结果

表明,此方法简便实用,可靠性非常高。单片机串行通信在单片机多机应用系统中起着重要的作用。在设计单片机串行通信系统时.最为关键的一点就是双方通信速率的匹配。

关键词:串行通信;自适应波特率;89s52;单片机

O引言

目前在单片机的串行异步通信川中.实现波特率自

测法141来计算主机的波特率.以达到自适应的目的。这种算法虽然具有一定的通用性.但误差比较大。对单片机的性能要求也较高.而且其检测程序复杂.很难灵活应用在精度要求较高的系统中应用。我们知道在串行通信中.主机的波特率具有以下几个典型值:38400、19200、14400、9600、4800、2400、1200、600、300。如果单片机串VI通信方式选择方式1.定时器1T作方式选择2.那么上述波特率对应的寄存器初值f11为:0xff、0xfe、0xfd、0xfa、0xf4、0xe8、0xd0、0】‘a0。这样我们就可以用枚举的方法与主机的波特率进行匹配。由于这些典型的波特率可以由s52的定时器较为准确地获得。所以匹配成功后。双方的波特率就能达到很高的一致性。实现过程如下:

动适应的方法有很多种.但是这些方法要么需要额外的硬件支持.要么实现算法过于复杂。占用单片机的大量资源121。白适应波特率的新算法也不断出现.笔者研究发现.在这些算中都对单片机的最高通信波特率有要求.有的甚至要求单片机的最高波特率是发送方的8倍131才能实现自适应.这就大大降低了算法的应用范围。本文研究并实现了一种简单叮靠的算法,不需要额外的硬件支持.对单片机的波特率也没有要求.并且软件开销也非常小。1

硬件结构

本设计采用At89s52单片机.。它是一种低功耗、高

(1)主机向单片机s52发送联机信号0x55H。我们知道数据ox55H是位电平变化速度最快的数据之一(也可以取0xaaH),这样就能保证联机成功的可靠性。

(2)单片机接收主机发来的信号,与0】【55H比较,若相等则联机成功,否则,调整单片机的波特率。继续接收、比较.直到联机成功。

(3)联机成功后。向主机发送数据0x55H,主机收到该数据后.就可以进行正常的数据通信了。3

性能CMOS8位微控制器.具有8K在系统可编程Flash存储器.与工业80C51产品指令和引脚完全兼容。At89e52的第lO脚RxD和第11脚TxD是串口通信的接收和发送引脚。因为At89s52是1T11。电平,而PC串12I是RS一232电平的.所以两者之间要实现通信必须进行电平的转换.本设计采用最常用的芯片MAX一232。它与单片机的连接如图1所示。晶振采用

11.0592MHZ。

2自适应波特率原理

由上述分析可知。在联机成功之前.上位机要连续

在很多的此类设计中.大都采用码元宽度实时检

软件实现

收稿日期:2010-08—30修稿日期:2010—09-30

作者简介:李晓鹏(1984一),男,在读硕士研究生,研究方向为嵌入式系统与自动化装置

万方数据

现代计算机2010.10

单片机串行通信自适应波特率的一种简单实现算.doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219