基于DELPHI实现PC机与MCS-51单片机的串行通信

更新时间:2023-08-13 14:43:01 阅读量: IT计算机 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

关于mcs-51单片机的串行通信原理介绍

新疆农业大学

专业文献综述

题 目: 基于DELPHI实现PC机与MCS-51单片机的

串行通信

姓 名: 窦涛 学 院:

专 业:

班 级: 学 号: 座位号 : 指导教师: 科学与技术学院 电子信息科学与技术 072 075203239 25 朱静 职称:讲师

2010年12月15日

新疆农业大学教务处制

关于mcs-51单片机的串行通信原理介绍

基于DELPHI实现PC机与MCS-51单片机的串行通信

窦涛,朱静

摘要:串行通信作为一种灵活方便可靠的通信方式,仍不失为有效的通信手段,被广泛应用于工业控制中。本文主要介绍了串行通信的发展史、PC与MCS-51单片机串行通信协议的主要内容和MCS-51单片机串行通信技术的发展前景。还介绍了基于DELPHI实现PC机与MCS-51单片机的串行通信的设计思路、不同观点以及选择利用DELPHI串口通讯控件SPCOMM来实现PC机与MCS-51单片机之间串口通信的优点。

关键词:MCS-51单片机;DELPHI;串行通信

Serial communication between PC and MCS-51

single-chip-computer based on DELPHI

Author DouTao The Guide Teacher:ZhuJing

Abstract:In this dissertation,the auther mainly introduced the serial communication history,the main content of the PC and single-chip microcomputer MCS-51 serial communication protocols and the development prospects of the MCS-51 serial communication technology. It also set forth my design and different opinions which i use DELPHI for realize the PC and single-chip microcomputer MCS-51 in the serial communication and the reason of which I use DELPHI and SPCOMM for realize the PC and single-chip microcomputer MCS-51 in the serial communication. Key words: MCS-51 single-chip-computer;DELPHI;Serial communication

前言:

任何数据都不是孤立存在的,在工业生产控制和电子贸易中,数据常常需要在不同的设备间传递,这就涉及到数据通信的问题。随着现代信息技术的发展以及计算机网络的广泛使用,计算机通信技术已经日臻成熟,但串行通信作为一种灵活方便可靠的通信方式,仍不失为有效的通信手段,被广泛应用于工业控制中

[2]。现在串行通信中常采用MCS-51单片机作为下位机、PC机或服务器作为上位机,二者通过串口接收或发送数据。本文主要介绍串行通信的发展史,协议以及串行通信的发展前景和利用DELPHI串口通讯控件SPCOMM来实现PC机与MCS-51单片机之间串口通信的原因[12]。

1研究背景

1.1基于DELPHI实现PC机与MCS-51单片机串行通信的目的和意义

关于mcs-51单片机的串行通信原理介绍

在远程监控和自动化控制中,用PC机对工程实现实时监控,通常要求PC机能在用户界面上具有数 采集、数据处理以及控制信号的产生与传输等功能。在这种特定的环境下,PC机要与过程控制的实时信号相联系,就要求以实现对PC机的串行端口直接操作。在常用的编程语言Delphi、Visual Basic、Visual C++中,笔者倾向于Delphi。Delphi是Borland公司推出的一种功能强大的高级编程语言,其具有的可视化面向对象的特性,将Windows编程的复杂性封装,实现可视化设计,特别适于在Windows环境下图形界面和用户程度的编制。Delphi的伸缩性很强,控件功能强大,往往只需编写较少的代码就可以实现较复杂的应用[6]。

1.2国内外研究现状

在国内外,以PC机作为上位机,单片机作为下位机的控制系统中,PC机通常以软件界面进行人机交互,以串行通信方式与单片机进行机机交互,而单片机系统根据被控对象配置相应的前向,后向信息通道,工作时作为主控机测对象,作为被控机接受PC机监督,指挥,定期或受命向上位机提供对象及本身的工作状态信息[7]。

目前,随着集成电路集成度的增强,电子计算机向微型化和超微型化方向发展,微型计算机已成为导弹,智能机器人,人类宇宙和太空奥妙复杂系统不可缺少的智能部件。在一些工业控制中,经常需要以多台单片机作为下位机执行对被控对象的直接控制,以一台PC机为上位机完成复杂的数据处理,组成一种以集中管理、分散控制为特点的集散控制系统。

2 系统设计与实现

2.1 串行通信概述

在通信领域内,有两种数据通信方式[5]:并行通信和串行通信。随着计算机网络化和微机分级分布式应用系统的发展,通信的功能越来越重要。通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括计算机与外部设备,如终端、打印机和磁盘等设备之间的传输[4]。串行通信是指 使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信[1]。

串行通信分为同步通信和异步通信两种,同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。它们均由同步字符、数据字符和CRC组成。其中同步字符位于帧开头,用于确认数据字符的开始。数据字符在同步字符之后,个数没有限制,由所需传输的数据块长度来决定;校验字符有1到2个,用于接收端对 收到的字符序列进行正确性的校验[8]。同步通信的缺点是要求发送时钟和接收时钟保持严格的同步。异步通信中,在异步通行中有两个比较重要的指标:字符帧格式和波特率。数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步[1] [13]。

关于mcs-51单片机的串行通信原理介绍

串行通信最大的优点在于可以节省传输线,这是显而易见的。尤其是在远程通信时,此特点尤为重要。但是在串行通信中,数据传送效率低。与并行通信比,

[6]这也这是显而易见的。这也是串行通信的主要缺点。

2.2 DELPHI语言

Delphi是一个集成开发环境(IDE),使用的核心是由传统Pascal语言发展而来的Object Pascal,以图形用户界面为开发环境,透过IDE、VCL工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具[12] [11]。

Delphi的特性及优点主要是基于窗体和面向对象的方法,高速的编译器,强大的数据库支持,与Windows编程紧密结合,强大而成熟的组件技术,并且提供了各种开发工具,包括集成环境、图像编辑(Image Editor),以及各种开发数据库的应用程序,除此之外,还允许用户挂接其它的应用程序开发工具[11]。

2.3 PC与MCS-51单片机串行通信协议

最被人们熟悉的串行通信技术标准是EIA-232、EIA-422和EIA-485,也就是以前所称的RS-232、RS-422和RS-485。由于EIA提出的建议标准都是以“RS”作为前缀,所以在工业通信领域,仍然习惯将上述标准以RS作前缀称谓。

EIA-232、EIA-422和EIA-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的,EIA-232在1962年发布,后来陆续有不少改进版本,其中最常用的是EIA-232-C版[13]。

目前EIA-232是PC机与通信工业中应用最广泛的一种串行接口。EIA-232被定义为一种在低速率串行通信中增加通信距离的单端标准。EIA-232采取不平衡传输方式,即所谓单端通信。标准规定,EIA-232的传送距离要求可达50英尺(约15米),最高速率为20kbps。

由于EIA-232存在传输距离有限等不足,于是EIA-422诞生了。EIA-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了一种平衡通信接口,将传输速率提高到10Mbps,传输距离延长到4000英尺(约1219米),并允许在一条平衡总线上连接最多10个接收器。当然,EIA-422也有缺陷: 因为其平衡双绞线的长度与传输速率成反比,所以在100kbps速率以内,传输距离才可能达到最大值,也就是说,只有在很短的距离下才能获得最高传输速率。一般在100米长的双绞线上所能获得的最大传输速率仅为1Mbps。另外有一点必须指出,在EIA-422通信中,只有一个主设备(Master),其余为从设备(Salve),从设备之间不能进行通信,所以EIA-422支持的是点对多点的双向通信[3]。

为扩展应用范围,EIA于1983年在EIA-422基础上制定了EIA-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。

由于EIA-485是从EIA-422基础上发展而来的,所以EIA-485许多电气规定与EIA-422相仿,如都采用平衡传输方式、都需要在传输线上接终接电阻、最大传输距离约为1219米、最大传输速率为10Mbps等。但是,EIA-485可以采用二

关于mcs-51单片机的串行通信原理介绍

线与四线方式,采用二线制时可实现真正的多点双向通信,而采用四线连接时,与EIA-422一样只能实现点对多点通信,但它比EIA-422有改进, 无论四线还是二线连接方式总线上可接多达32个设备[13]。

2.4 PC机与MCS-51单片机串行通信原理

MCS-51单片机的串行口,当工作于方式1、2和3时,作UART(通用异步接收和发送器)使用,以实现单片机系统之间点对点的单机通信、多机通信和单片机系统与PC机之间的通信;PC机的串行通信主要是通过串行接口芯片8251实现的。8251有10个寄存器,端口地址从3F8H–3FEH(COM1),可以通过对8251的编程来指定通信协议即通信的波特率、数据位数、奇偶类型和停止位长度,具体办法请参考微机原理教材。另外PC机串口的电平为RS-232 电平,而MCS-51串口的电平是TTL电平,要想实现两者之间的通信,需要在它们之间加电平转换电路,传统的方法是使用1488将TTL电平转换成RS-232电平,用1489实现反向转换,由于1488需要±12V电压,使用中很不方便,故我们的实验中用MAX232代替,MAX232为单一+5V电源供电,既可实现TTL到RS-232的电平转换,也可实现RS-232到TTL电平的转换。

3 实现PC机与MCS-51单片机串行通信设计方法

3.1基于LABVIEW实现PC与单片机的串行通信

LABVIEW 是在1986 年推出的一种基于“图形”方式的集成化程序开发环境, 内置信号采集、测量分析与数据显示功能, 集开发、调试、运行于一体[14]。

用LABVIEW 实现串口通信有两种方法, 一种是使用LABVEW 系统VI; 另一种是使用ActiveX 控件 (MSCOMM 控件) 。在LABVIEW中使用MSCOMM 控件的方法与在VB 和VC 中使用MSCOMM 的方法相同[14]。下面介绍使用LABVIEW系统VI 编写串口通信程序的方法。串口通信函数调用路径为: 函数→ 仪器I/O→VISA→高级VISA→总线/接口配置→串口。

3.2基于VB实现PC与单片机的串行通信

VB提供的通信控件Mscomm32 ocx,使唨前只需从Project菜单下的Components中选择Microsoft Comm control6.0把Mscmm32 ocx控件调入工具框中即可使用。利用该控件可对串行通信的数据发送和接受进行设置,还可对串口状态及喘息通信的信息格式和协议进行设置。在通信过程中可以通过触发OnComm事件来追踪、处理通信和错误事件的发生。由于每个通信控件对应一个串口,如果要访问多个通信口,则要设计多个通信控件[16]。

3.3 基于DELPHI实现PC与单片机的串行通信

在标准串口通信方面,利用DELPHI实现串口通信常用的方法有3种:(1)利用控件,如MSCOMM控件和SPCOMM控件;(2)使用API函数;(3)调用其他串口通信程序。其中利用API编写串口通信程序较为复杂,需要掌握大量的通信知识。目前,相比较而言,利用SPCOMM控件则相对较简单。该控件可设置串行通信的数据发送和接收,能对串口状态及串口通信的信息格式和协议进行设置,而且还支持多线程。在发送或接收数据过程中触发OnComm事件,通过编程访问CommEvent属性,了解通信事件的类型,分别进行各自的处理。每个通信控件对

关于mcs-51单片机的串行通信原理介绍

应一个串口,可以设计多个通信控件来访问多个通信口[9]。

4实现PC与单片机串行通信设计的比较分析

使用LABVIEW 来实现PC与单片机的串行通信是利用LABVIEW 强大的图形化程序设计方案在虚拟环境中进行串行设备通信开发,提高了开发效率[14]。随着虚拟仪器技术的不断发展,图形虚拟仪器依靠其自身的优势使它在仪器市场的竞争力不断增强。PC 计算机价格近几年逐渐被人们所接受,在国内有迅速普及之势,这为虚拟仪器的发展奠定了基础。虚拟仪器作为传统仪器的替代品,市场潜在容量巨大,具有广阔的发展前景[15]。

使用Visual Basic编程,来实现PC与单片机的串行通信,作出十分直观的人机界面,并通过串行口将所需的各种予置信号(数字信号)传给单片机系统,再由单片机系统产生实际的模拟信号经线性光电隔离器送到现场。予置数值可以分别显示在PC机软件窗口和单片机系统的予置数字表头上。同时,现场实测信号经过线性光电隔离器,也可以实时显示在本系统的检测数字表头上和PC机的界面上。如此设计界面直观,而且利于对现场信号进行实时监测[16]。因此,采用本系统,大大提高了现场信号予置精度,对实验操作人员来说人机界面良好,简单易懂。

使用DELPHI编程,来实现PC与单片机的串行通信,上位机采用DELPHI编程利用DELPHI免费的串口通讯控件SPCOMM来实现Pc机与MCS-51单片机之间串行通信的方法。单片机与PC机的硬件接口电路采用RS-232通信接口直接相连。利用SPCOMM控件则相对较简单。该控件可设置串行通信的数据发送和接[9]收,能对串口状态及串口通信的信息格式和协议进行设置,而且还支持多线程。DELPHI是一种具有功能强大、简便易用和代码执行速度快等优点的可视化快速应用开发工具。以其高效、简单易学及功能强大的特点越来越为广大程序设计人员及用户所青睐。它支持面向对象的程序设计。具有结构化的事件驱动编程模式并可以使用无限扩增的控件。而且可以十分简便地做出良好的人机界面。

结束语

随着控制技术的告诉发展与日趋成熟,各类控制系统的规模越来越大。功能模块越来越多,因而系统中各个功能模块之间能否实现可靠得通信也成了整个系统协调而又稳定地工作的关键之一。而串行通信则是各类通信方式中最基本、最常用、最可靠得一种,因而对串口及串行通信方法的研究就具有相当的意义。现代生产生活中,为了保证对系统可靠性越来越高的要求,采用了大量自动化设备来进行日常生产、管理和设备维修保养,既可以监控系统运转性能和进行故障预测,又可以为维修保养提供原始资料。随着自动化技术的发展和逐渐普及的自动化生产,越来越多的生产设备配备了与计算机进行数据交换的接口,利用计算机的强大处理能力对检测到的数据进行处理。串行通信因为其诞生时间早,使用简单方便,成本低廉,可以适应大规模长距离传输等多种特点,一直得到各个领域的广泛应用,尤其在工业自动化领域,大量的设备采用各种串行通信式进行连接。

关于mcs-51单片机的串行通信原理介绍

附录:

UART(Universal Asynchronous Receiver/Transmitter 通用异步接收/发送装置);

CRC(Cyclical Redundancy Check 校验字符);

IDE(Integrated Development 集成开发环境);

VCL(Visual Component Library 可视组件库)。

关于mcs-51单片机的串行通信原理介绍

参考文献:

[1]张雷,梁建武,陈英串.行通信协议的研究与实现.现代计算机,2006(9).

[2]张忠华.ZHANG Zhong-hua.单片机与PC机串行通信的实现.测控技术,2009,28(z1).

[3]刘焕平.MCS-51单片机与RS-232C串行口连接.石家庄职业技术学院学报,2002.

[4]任艳斐.PC机与单片机间串行通讯的研究与实现.濮阳职业技术学院学报,2008,(4).

[5]梁中华,王子威,祁春清.PC机与单片机串行通信的研究.沈阳工业大学学报,2005.

[6]于艳,顾桓.MCS-51单片机和PC机之间的串口通信.科学技术与工程,2007.

[7]张秀云.MCS-51系列单片机串行通讯的试验研究.辽宁师范大学学报.1999,22(1).

[8]彭彬彬.CNC系统中PC与单片机通讯模块的设计.制造业自动化.2002,(4).

[9]阚保强,王建业.基于DELPHI实现PC机与MCS-51单片机的串行通信.煤矿机械.2003.

[10] ANDREW S.Tanenbaum computer networks (Third Edition)[M]. Prentice Hall

International.Inc, 1999.

[11]张敬华.Delphi5开发与应用[M].北京:北京航空航天大学出版社.2000,(4).

[12]肖建.Delphi7编程实例教程.北京新希望电子出版社.2002.

[13]薛小铃,刘志群,贾俊荣.单片机接口模块应用与开发实例详解.北京航空航天大学出版社.2010.

[14]赵玉剑,范修荣.单片机与PC串行通信的实现.机电产品开发与创新.2008,5(21).

[15]张金学.基于LABVIEW 串行通信系统的开发.淮海工学院院报.2005.

[16]田玉,张文友,蔚明,赵雅楠.VB6.0在PC机与单片机串行通信中的应用.中国校外教育.2010

本文来源:https://www.bwwdw.com/article/unhj.html

Top