广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 Http://www.zlgmcu.com
自动检测 80C51 串行通讯中的波特率
本文介绍一种在 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 的表项目:
表项目 =
振荡频率(MHz) 5 × 波特率 12
记住, 表项目是两个字节的数值, 所以上述公式的结果一定要分成高位字节及低位字节 (如 果采用十六进制,则容易得出高位,低位字节) .当然,也可以用汇编程序来完成所有的运算. 上述的公式是由以下得来的:
最大定时数值(表项目) =
最小认可时间 机器周期
-1-
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 Http://www.zlgmcu.com
最小认可时间 =
最小认可位数(bits _ of _ recognize) × 字节时间 "可见"位数(# _ of _ bits )
备 注 : 在 8-N-1 格 式 的 数 据 通 讯 中 , #-of-bits ' (" 可 见 " 位 数 ) 是 9 , 以 及 ' 'bits-to-recognize'(最小认可位数)是 5.
字节时间 = 机器周期 =
1 × "可见 "位数(# _ of _ bits) 波特率 振荡频率 12
;***************************************************************************** ;自动的波特率检测程序 ;***************************************************************************** $ Title(Automatic Baud Rate Detection Test) $ Date(12–16–91) $ MOD552 ;***************************************************************************** ; Definitions ;***************************************************************************** RX BIT P3.0 ;串行口的接收管脚 CharH DATA 30h ;捕获定时器T0的高位字节 CharL DATA 31h ;捕获定时器T0的低位字节 BaudRate DATA 32h ;存贮最终确定的波特率 Display EQU P4 ;显示结果的端口 ;***************************************************************************** ; Reset and Interrupt Vectors ;***************************************************************************** ORG 8000h Start: ACALL AutoBaud ;检测波特率 MOV Display, BaudRate ;显示波特率值 SJMP Start ;***************************************************************************** ; Subroutines ;***************************************************************************** ;AutoBaud Rate Detect Routine. ;通过测量接收第一个字符所需要的时间来确定波特率.部分接收字符可能会发生错误, ;主要是那些以3(4 )位同样数值结束的字符.波特率指针(检测结果)保存在ACC中. ;***************************************************************************** AutoBaud: MOV TMOD, #01h ;初始化T0(串行口波特率定时器) MOV TH0, #0 ;将T0 置于16位定时器模式 MOV TL0, #0 MOV TCON, #0 MOV CharH, #0 ;预置波特率检测结果 MOV CharL, #0 AB0: JB RX, AB0 ;等待串行通讯起始
- 80c51 > 自动检测 80C51 串行通讯中的波特率
-
自动检测 80C51 串行通讯中的波特率
下载该文档 文档格式:PDF 更新时间:2008-07-07 下载次数:0 点击次数:1文档基本属性 文档语言: Simplified Chinese 文档格式: pdf 文档作者: user 关键词: 主题: 备注: 点击这里显示更多文档属性 经理: 单位: group 分类: 创建时间: 上次保存者: 修订次数: 编辑时间: 文档创建者: 修订: 加密标识: 幻灯片: 段落数: 字节数: 备注: 演示格式: 上次保存时间:
- 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
- PDF格式下载
- 更多文档...
-
上一篇:80C51 Family 80C51 family hardware description
下一篇:设定80c51串行异步通讯的波特率 - 广州周立功单片机发展有限公司
点击查看更多关于80c51的相关文档
- 您可能感兴趣的
- 80c51单片机视频教程 80c51jc 80c51单片机 80c51单片机最小系统 80c51单片机c语言教程 lcdmultimenu80c51 80c51的晶振时钟电路 80c51单片机教程 80c51单片机教程下载
- 大家在找
-
- · 高级电工试题及答案
- · 布衣官道分卷阅读
- · 西经60度
- · 工商管理论文范文
- · 江西省樟树市贷款
- · cad快捷键用表
- · 余世维有效沟通技巧
- · ehome夺冠历程视频
- · ansys安装视频
- · 铆工的基本知识
- · 空港杂件车工
- · 苹果iphone5代价格
- · 特种兵痞全文免费阅读
- · 87c196c语言编译器
- · 电子信息科技与人类
- · 砌体工程课件
- · 奔腾b50东营4s店
- · 法院法警招聘
- · 如何立足岗位创先争优
- · 药品gmp检查指南
- · 南通海通国际
- · www.zt6677.com
- · pcb制版说明怎么写
- · 门式起重机械
- · 电子设计大赛官网
- · www.263vcd.com
- · 管理会计在我国企业某一类企业的具体情况或找一个企业,有针对性的分析其存在的问
- · 视网膜脱落
- · pep小学六年级英语
- · 潇湘书院特工狂妃
- 赞助商链接