基于VB的PC-单片机通信波特率自动检测方法

2012-03-10 18:33:05来源: 微计算机信息

一. 引言

    主从分布式微机系统是控制领域广泛使用的微机系统。主机一般由数据处理能力强、有良好人机界面的PC机担任,分机常以体积小、价格便宜、控制能力强的单片机为核心。
    信息量不大的PC机—单片机通信一般采用串行通信方式。在分布式多波特率通信系统中,常常要求从机自身的波特率能随主机设备自动调整以使系统适应性更强、更具智能化。
    本文介绍:主机为PC机用VB6.0编程,从机为80C51单片机时,利用微软的Mscomm控件和单片机的定时/记数器实现单片机波特率准确自动检测的方法。
    该方法硬件和软件实现容易、简单、实用。

二.MSComm控件简介

    微软MSComm控件提供了一系列标准通信属性和方法,具有完善的串口数据的发送和接收功能。该控件具有两种处理方式:(1)事件驱动方式:由 MSComm控件的OnComm事件捕获并处理通信错误及事件;(2)查询方式:通过检查CommEvent属性的值来判断事件和错误。
    当设置MSComm控件的Settings属性值为“9600,n,8,1”时表明:PC机串口波特率为9600b/s, 帧格式为:无校验,一个起始位,8个数据位,一个停止位。一帧数据共10位。帧结构如下:

    当设置MSComm控件的Settings属性值为“9600,e,8,1”时表明:PC串口波特率为9600b/s, 帧格式为:一个起始位,8个数据位,一个偶校验位,一个停止。一帧数据共11位。帧结构如下:
 

    其中D0~D7是8位数据位,D8是偶校验位。

三.硬件原理框图

          
四.软件算法思想

   通信开始时,主机用一帧十位的格式发一个ASCII码为0的测试字符,则对应的帧结构如下:
   

    单片机循环检测RXD脚,无数据时该脚为高电平,当检测到测试数据起始位时(低电平)启动计数器T0,当检测到停止位时(高电平)停止记数,T0所记数(TH0TL0)为单片机接收一帧数据9位所需的机器数时间。则,单片机波特率为:
波特率=9/(TH0TL0 x 机器周期)
      =9/(TH0TL0 x 12 x 振荡周期)
      =(9 x 振荡频率)/(TH0TL0 x 12)

五. 主机发送ASCII码值为0的字符的源程序
    
Private Sub Form_Load()
  MSComm1.CommPort = 1                ;使用COM1串口
  MSComm1.Settings = "9600,n,8,1"         ;设置通信格式,见本文一
End Sub

Private Sub Send_Click()
  If MSComm1.PortOpen = False Then MSComm1.PortOpen = True ;打开串口COM1
MSComm1.OutBufferCount = 0           ;清0发送缓冲区发送字符数
  A =Chr(0)                             ;ASCII码为0的字符送A
  MSComm1.Output = A                  ;发送
End Sub

    说明:若程序中MSComm1.Settings = "9600,e,8,1",则发送的是一帧11位偶校验数据,其中D0~D8均为0。对应单片机检测程序(见下文五)TH0TL0结果值为一帧10位的对应机器数值。

六.单片机接收测试数据,计算接收一帧9位数据所需机器数时间,源程序如下:

ORG 8000H
MOV  TMOD,#01H  ;T0工作于方式1,GATE=0
MOV  TH0,#00H    ;清0  TH0TL0
MOV  TL0,#00H
RLL1: JB P3.0,RLL1        ;等待RXD脚变低
SETB TR0          ;启动T0
RLL2: JNB P3.0,RLL2       ;等待RXD脚变高
CLR TR0            ;停止T0记数
MOV A,TL0         ;存放一帧9位记数机器数值
MOV A,TH0
    ......

参考书:

石东海 扈啸 周旭升《单片机数据通信技术从入门到精通》西安电子科技大学出版社 2002
复旦大学微机开发应用研究室《MCS—51微型计算机用户手册》1986

关键字:PC机  单片机  波特率  自动检测

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2012/0310/article_4789.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
PC机
单片机
波特率
自动检测

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved