串口通信与控制系统毕业设计.docx

上传人:b****8 文档编号:23571899 上传时间:2023-05-18 格式:DOCX 页数:48 大小:277.39KB
下载 相关 举报
串口通信与控制系统毕业设计.docx_第1页
第1页 / 共48页
串口通信与控制系统毕业设计.docx_第2页
第2页 / 共48页
串口通信与控制系统毕业设计.docx_第3页
第3页 / 共48页
串口通信与控制系统毕业设计.docx_第4页
第4页 / 共48页
串口通信与控制系统毕业设计.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

串口通信与控制系统毕业设计.docx

《串口通信与控制系统毕业设计.docx》由会员分享,可在线阅读,更多相关《串口通信与控制系统毕业设计.docx(48页珍藏版)》请在冰豆网上搜索。

串口通信与控制系统毕业设计.docx

串口通信与控制系统毕业设计

XXX大学

 

本科毕业设计论文

 

题目串口通信与控制系统

 

院系:

信息工程学院

专业:

计算机科学与技术

指导教师:

学生姓名:

班级:

计科

2008年6月

 

毕业设计任务书

一.题目:

串口通信与控制系统

二.课题来源及依据:

单台的由单片机控制的磨粉机已研制成功并投入小批量生产。

本设计准备进一步完善系统,用VC++编写串口通信程序及上位机监控程序,可在上位机中监视下位机的工作状况并可以直接在上位机中修改工作参数,通过通信传送给下位机,实现远程的控制。

三.本设计应达到的要求:

1.用VC++完成串口通信程序的编制。

2.设计图形化的监控界面。

3.完成数据库的设计。

4.撰写毕业设计说明书。

5.英文文献的阅读和翻译。

四.接受任务学生:

班级:

计科姓名:

五.开始及完成日期:

自20083月至20086月

六.设计(论文)指导:

指导老师:

 

摘要

在实验室和工业应用中,串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以应用广泛。

本次设计的目标在于:

在VC++6.0的环境下,编写使用C++语言,SQL数据库的串口通信程序,控制由单片微机控制的磨粉机,原要求能够通过串口扩展同时监控12台机器,由于目的在于进行串口通信设计的尝试,所以这里只是针对一台单片微机进行程序设计。

首先,操作人员能够对串口参数进行配置。

其次,当由单片微机控制的磨粉机的工作数据由串口传到计算机时,操作人员能够实时监控其工作状态,工作数据,根据情况,并能更改其工作参数。

这样,就要求设计适合本程序的串口通信协议。

定时接受来自串口的数据帧,磨粉机的数据大致可以分为三类,此处在数据帧中使用AX,BX,CX来对数据分类。

按照通信协议接受,发送数据,并有一定的数据帧查错能力。

另外,在安全性方面,需要一定的保障。

这里采用了简单保密功能,操作人员能够输入密码,更改原有的密码,这里的密码功能实现比较简单,有很大的改进空间,可以使用复杂的算法确保更高要求的保密性。

本次毕业设计,就使用VC++对串口进行编程,自己设计串口通信协议,进行了一些尝试,虽然能够基本完成设计要求,但是还有很多地方需要改进。

关键词:

串行通信、VC++6.0、WinAPI、MFC32位程序

 

Abstract

Inlaboratorywithindustryapply,commoniswidelyusedasthepassageofcorrespondencebetweencomputerandequipmentbecauseserialcommunicationisaneasywayofusage.

ThisprojectisaimedatdesigningaserialcommunicationprogramunderVC++6.0environment,usingC++languageandSQLdatabase,tocontroltheflourmillundercontrolofSCM.Itisplannedtoconcurrentlymonitor12machinesviaserialexpansion,becausethedestinationisonlyanattemptatserialcommunicationprogramming,thisprogramisaimedatsoloSCM.

First,operatorcanconfigureserialparameters.

Second,operatorcanmonitorthestatuswhilethedataistransferredfromtheflourmilltocomputerviaserialport,andcanrejiggertheparameters.

Sothatitisnecessarytodesignaserialcommunicationprotocolsuitableforthisprogram.Receivingdataframesentfromserialportoccasionally,asdatafromSCMcanbedividedinto3species,sortedbyAX,BX,CXindataframe.endingandreceivingdataaccordingtocommunicationprotocol,andhasthecheckoutfunctionaswell.

Furthermore,forsecurityreasons,guaranteeisneeded.Thisprogramisentitledbasicfunctionforsecrecy.Operatorscanenterthepasswordandrejiggerit.Thefunctionforsecrecyisrelativelysimple,canbefurtherimproved,usingmorecomplexarithmetictoactualizemorestrictsecrecy.

Inall,thisgraduatedesigns,ItriedusingVC++toprogrammeserialcommunicationwithcorrespondenceprotocolofproceeddesignedbymyself.Althoughmyprogrammecanbasiclysatisfytherequest,butinfact,manyplacesneedtoprove.

KEYWORDS:

SERIALCOMMUNICATION

VISUALC++

WinAPI

Win32Programme

 

第一部分---------------------------------------------------5

需求分析

1.开发背景----------------------------------------------------------------5

2.功能要求----------------------------------------------------------------5

3.功能实现概述-----------------------------------------------------------5

第二部分---------------------------------------------------7

开发工具概述

1.VisualC++及MFC--------------------------------------------------------7

2.SQLServer2000简介-----------------------------------------------------9

3.串口通信协议(通信模式)--------------------------------------------------9

第三部分--------------------------------------------------15

主要程序代码及注释

1.BasicCom类------------------------------------------------------------15

2.MainFrame类-----------------------------------------------------------17

3.CPassword类-----------------------------------------------------------18

4.CChangePassword类-----------------------------------------------------19

5.CComConfig类-----------------------------------------------------------20

6.CBasicDialog类---------------------------------------------------------21

7.CIosetting类-----------------------------------------------------------22

8.CChangeSetting类------------------------------------------------------23

9.CGroupSetting类-------------------------------------------------------24

第四部分---------------------------------------------------------------27

英文文献的阅读和翻译

英文---------------------------------------------------------------------27

中文---------------------------------------------------------------------33

第五部分---------------------------------------------------------------35

附录

致谢信-------------------------------------------------------------------35

参考文献-----------------------------------------------------------------35

功能部分主要程序---------------------------------------------------------36

 

第一部分

需求分析

1.开发背景

计算机串口编程在通信软件中有着十分广泛的应用,如电话,传真,视频控制等。

一般情况下,涉及到远程通信,自动控制的行业,通常也会涉及到串口通信技术。

工业控制领域(如DCS系统),经常涉及到串行通信问题。

为了实现微机和单片机之间的数据交换,人们用各种不同方法实现串行通信,如DOS下采用汇编语言或C语言。

但在Windows环境下却存在一些困难和不足。

在Windows操作系统已经占据统治地位的情况下(何况有些系统根本不支持DOS如Windows2000)开发Windows环境下串行通信技术就显得日益重要。

在Windows应用程序的开发中,我们常常需要面临与外围数据源设备通信的问题。

计算机和单片机(如MCS-51)都具有串行通信口,可以设计相应的串口通信程序,完成二者之间的数据通信任务。

实际工作中利用串口完成通信任务的时候非常之多。

本设计是在WINDOWSXP操作系统下,设计自己的通信协议,借助VC++6.0编程环境,使用C++,应用SQL数据库,实现串口通信,数据库调用。

2.功能要求

设计适合的串口通信协议,使用SQL数据库存储数据,用VC编写程序,使得计算机能够定时从串口获得数据,按照自己的协议拆分数据,并按照信息发送到各个Dialog。

再由程序将数据正确的分配给每一个控件。

当操作人员看见异常的数据,或希望更改机械的工作参数时,可以通过程序把新的更改后的数据通过串口发送出去。

机械常用的整组数据存放入数据库中,操作人员可以更改数据表,并同时将新数据发送。

3.功能实现概述

首先,由功能需求表分析出程序的总体设计方案。

整个程序可以分为三块:

(1)界面设计,程序整体框架组建的前台VC块。

(2)串口通信协议设计,通信功能函数编制的底层通信块。

(3)常用数据表更改,存储的后台SQL数据库块。

关于VC块,程序使用了比较常用的SDI风格,由MainFrm实现数据的处理,分配,存储及发送。

之所以由MainFrm掌握数据处理,发送,存储,计算等功能,是因为这样不但大大简化了程序代码的量,而且较纯OOP更能减少程序复杂度,降低程序错误发生的概率,修改代码的难度。

关于通信块,是本程序的重点。

首先,要设计适合本程序的通信协议,定时接受来自串口的数据帧,由于磨面单片机的功能大致可以分为三个方面,此处在数据帧中使用AX,BX,CX来对接收,发送的数据进行分类。

按照通信协议接受,发送数据,并有一定的数据帧查错能力。

要有完整的通信协议框架。

要设计适合本程序的帧,并有一定的安全校验功能。

其次,就是以C++语言编写的底层通信类,此类通过WINDOWS与计算机硬件建立基本控制功能,然后在这基础上,编写自己的符合功能要求(比如数据帧的拆分,解释,组建等)的功能类。

再次,就是数据发送,由于数据小,总量也不大,为了提高效率,这里的处理是先将数据存入每个表对应的txt文件,再一次性将组中的数据按照协议从操作人员选定的端口,采用指定的参数全发送到串口。

关于SQL数据库块,按照需求分析得结论,在SQL数据库中添加4张工作组表,一张机械时间表,一张原料比例表。

程序能够自由的调用存储在SQL中的表,

并能够有添加,删除,更改数据的功能。

其次,由于现代软件强调数据保密,控制权限的有界性,所以初步尝试制作了密码的设定,更改功能。

(这里是把用户的新密码保存在一个TXT文件中,可以加入算法进行改进)。

综上所述,经过考虑,决定本程序采用一个文档(Document)对应一个视图(View)的SDI界面,从左到右依次有输入密码(Password)以及更改密码(ChangePassword)的No.0菜单,串口参数设置(ComConfig)的No.1菜单,主要对话框的No.2菜单,更改参数组(Group1-4),时间组(TimeTable)的No.3菜单,以及About对话框的No.4菜单。

 

第二部分

开发工具概述

1.VisualC++及MFC

MFC库和VisualC++提供了可以用于创建各种应用程序的环境。

VisualC++可以帮助您开发满足各种商业需求的应用程序。

它提供了各种功能和工具。

VisualC++特色包括:

(1).本机COM支持

可视化的COM编辑,与位置和语言无关的COM浏览,MFC模板,以及编译器支持简化了基于组件的开发。

(2).VisualSchemaDisigner

通过从桌面远程分析MicrosoftSQLServer数据库的模式(Schema),提高了数据库应用程序开发的效率。

(3).MicrosoftTransactionServer

MicrosoftTransactionServer帮助您建立高性能的基于事务的应用程序。

(4).活动文档服务器支持

VisualC++提供了创建活动文档服务器的向导和可编程支持,这些活动文档服务器可以在任何活动文档服务器中调用,如在MicrosoftOffice97和MicrosoftInternetExplorer4.0中。

VisualC++的开发环境包括:

(1).帮助管理您的工程的工程工作区。

(2).编译工程的工具。

(3).设计用户界面和创建资源的编译器。

(4).共享的开发组件,包括一个优化的编译器,一个增量链接器和一个集成的调试器。

VisualC++有三个版本:

标准版,除了代码优化,性能分析器(Profiler)和与MFC库的静态链接外,标准版包含了专业版的所有其它功能。

专业版,使您能够开发和发布商用等级的软件产品。

其功能包括VFC,ActiveTemplateLibrary(ATL,活动模板库),COM和OLEDB。

企业版提供了建立和验证企业级COM应用程序的工具和组件。

该版本中包含专业版中的所有功能,另外还包括MicrosoftTransactionServer,SQL编辑器和调试器,MicrosoftVisualSourceSafe,以及对ActiveX对象(ADO)和远程数据对象(RDO)的支持。

MFC库的功能:

MFC库是基于C++类的一个集合和一个应用程序框架,主要用于创建MicrosoftWindows应用程序。

这个类的集合将C++语言扩展为包括创建基于Windows的应用程序所需要的大部分基本结构元素。

应用程序框架则定义了应用程序的结构,并为应用程序处理许多常规任务。

MFC库是基于Win32应用程序编程接口(API)之上而建立的。

该API是操作系统为应用程序提供的一系列函数。

MFC展示了代表Windows操作系统的通用对象的基本类。

MFC并不封装或包括整个API.它只包括主要的结构组件和常用组件。

由于MFC是用C++编写的,因此,您可以很容易地使用Win32API对操作系统进行本机调用。

使用MFC的益处:

MFC库使您能够利用专业的Windows开发人员的成果。

MFC缩短了开发时间,使代码更简洁,在不降低编程自由度和灵活性的前提下提供支持,并提供了对难于编程的用户界面元素和技术(如ActiveX和Internet编程)的方便访问。

MFC通过OLE DB模板和ADO简化数据库编程,并通过WindowsSocket简化网络编程。

MFC使对诸如属性表,打印预览和浮动工具栏等功能的编程变得十分简单。

在开发全功能的Windows应用程序,数据库应用程序,ActiveX控件和组件以及Internet应用程序时,MFC可提供许多优点,例如:

(1).提供一个应用程序框架,用户可在其上建立Windows应用程序。

(2).兼容以前版本的可重用的C++类。

(3).行业中最大的可重用的C++源代码库。

(4).与VisualC++集成。

文档/视图体系结构:

MFC提供了多种类来满足范围广泛的编程需求。

使用MFC编程的第一步是熟悉这些类,并学习它们在MFC层次结构中的相互关系。

某些类可直接使用;其余的类可作为创建其它类的基类。

学习MFC类时,将它们按类别组织是很有帮助的。

一些重要的MFC类的类别包括:

(1).应用程序体系结构类。

(2).用户界面类。

(3).数据库类。

(4).Internet类。

MFC编程依赖消息的传递推动整个程序的运行。

2.SQLServer2000简介

SQLServer是一个关系数据库管理系统它最初是由MicrosoftSybase和Ashton-Tate三家公司共同开发的于1988年推出了第一个OS/2版本在WindowsNT推出后Microsoft与Sybase在SQLServer的开发上就分道扬镳了Microsoft将SQLServer移植到WindowsNT系统上专注于开发推广SQLServer的WindowsNT版本Sybase则较专注于SQLServer在UNIX操作系统上的应用在本书中介绍的是MicrosoftSQLServer以后简称为SQLServer或MSSQLServerSQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的最新版本该版本继承了SQLServer7.0版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用。

3.串口通信协议(通信模式)

在实验室和工业应用中,串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以应用广泛。

依据不同的条件实现对串口的灵活编程控制是我们所需要的。

基本原理:

串行端口的本质功能是作为CPU和串行设备间的编码转换器。

当数据从CPU经过串行端口发送出去时,字节数据转换为串行的位。

在接收数据时,串行的位被转换为字节数据。

在Windows环境(WindowsNT、Win98、Windows2000)下,串口是系统资源的一部分。

应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。

串口通信程序的流程如下图:

二.串口信号线的接法

一个完整的RS-232C接口有22根线,采用标准的25芯插头座(或者9芯插头座)。

25芯和9芯的主要信号线相同。

以下的介绍是以25芯的RS-232C为例。

①主要信号线定义:

2脚:

发送数据TXD;3脚:

接收数据RXD;4脚:

请求发送RTS;5脚:

清除发送CTS;6脚:

数据设备就绪DSR;20脚:

数据终端就绪DTR;8脚:

数据载波检测DCD;1脚:

保护地;7脚:

信号地。

②电气特性:

数据传输速率最大可到20Kbps,最大距离仅15m.

注:

看了微软的MSDN6.0,其WindowsAPI中关于串行通讯设备(不一定都是串口RS-232C或RS-422或RS-449)速率的设置,最大可支持到RS_256000,即256Kbps!

也不知道到底是什么串行通讯设备?

但不管怎样,一般主机和单片机的串口通讯大多都在9600bps,可以满足通讯需求。

③接口的典型应用:

大多数计算机应用系统与智能单元之间只需使用3到5根信号线即可工作。

这时,除了TXD、RXD以外,还需使用RTS、CTS、DCD、DTR、DSR等信号线。

(当然,在程序中也需要对相应的信号线进行设置。

        图最简单的RS232-C信号线接法

  以上接法,在设计程序时,直接进行数据的接收和发送就可以了,不需要  对信号线的状态进行判断或设置。

(如果应用的场合需要使用握手信号等,需要对相应的信号线的状态进行监测或设置。

Windows下串行通信与以往DOS下串行通信程序不同的是,Windows不提倡应用程序直接控制硬件,而是通过Windows操作系统提供的设备驱动程序来进行数据传递。

串行口在Win32中是作为文件来进行处理的,而不是直接对端口进行操作,对于串行通信,Win32提供了相应的文件I/O函数与通信函数,通过了解这些函数的使用,可以编制出符合不同需要的通信程序。

与通信设备相关的结构有COMMCONFIG,COMMPROP,COMMTIMEOUTS,COMSTAT,DCB,MODEMDEVCAPS,

MODEMSETTINGS共7个,与通信有关的WindowsAPI函数共有26个,详细说明可参考MSDN帮助文件。

以下将给出实现串行通信的三种方法:

方法一:

使用VC++提

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1