单片机串行通信自适应波特率的一种简单实现算
时间:2025-04-25
时间: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
⑨
上一篇:就业理论研究述评及对我国的启示
下一篇:广电委托代服务协议