毕业论文基于C++的RS232通信协议模拟终端(33页).doc

上传人:1595****071 文档编号:38770715 上传时间:2022-09-05 格式:DOC 页数:32 大小:304KB
返回 下载 相关 举报
毕业论文基于C++的RS232通信协议模拟终端(33页).doc_第1页
第1页 / 共32页
毕业论文基于C++的RS232通信协议模拟终端(33页).doc_第2页
第2页 / 共32页
点击查看更多>>
资源描述

《毕业论文基于C++的RS232通信协议模拟终端(33页).doc》由会员分享,可在线阅读,更多相关《毕业论文基于C++的RS232通信协议模拟终端(33页).doc(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-毕业论文基于C+的RS232通信协议模拟终端-第 26 页密级:公开 基于C+的RS232通信协议模拟终端Analog Terminal The RS232 Communication Protocol Based On C+2013 年 06 月摘 要随着科技的迅猛发展,通信技术已经成为社会经济、环境、生活、工作、学习不可缺少的一部分。通信的方式多种多样,以何种方式实现通信主要取决于通信设备。在工业控制系统和实验室中,由于串行通信具有实现简单、使用灵活方便等优点,串行通信是计算机与外部设备进行数据通信时经常使用的方式之一。围绕串行通信技术,本文主要介绍了串行通信接口RS232标准串口,阐述

2、了RS232串行通信基本原理和CRC校验,通过VC界面编程实现串行通信。传输过程中通过CRC对数据进行校验。在研究RS232串行通信原理中,主要介绍了RS232标准协议、串口以及串口通信原理。详细的分析了几种主要的通信参数。按照其工作原理及RS232串口的标准协议最终采用串行全双工的方式实现其通信,本文中的接口使用的是计算机上的USB口。在软件实现方面,本设计在比较了多种方法之后,最终选择了基于C+的MFC应用程序。利用 MSComm ActiveX 串行通信控件来实现串行通信。文中详细地介绍了VC下的Windows平台先进的 ActiveX 控件技术,即MSComm控件等。最终实现了两台PC

3、间的串行通信。串行通信以其成本低、结构简单等优点被人们广泛应用。用RS-232协议实现两台PC机间的串行通信为以后实现更加复杂的设备间通信奠定了基础。关键词:RS232标准;串行通信;C+;CRC校验AbstractWith the rapid development of science and technology, communication technology has become an indispensable part of social economy,environment,living and learning. There are many kinds of commu

4、nication modes.The selection of communication mode mainly depends on the communication equipment.In industrial control systems and laboratory.Serial communication is widely used in computer and external equipment due to the simple and flexible advantage.Around serial communication technology, this p

5、aper mainly introduces the serial communication interface - RS232 serial port, and expounds the basic principle of RS232 serial communication and CRC check.Finally, realize serial communication through VC programming. During the process of transmission through the CRC to check the data.In the study

6、of RS232 serial communication principle, this design mainly introduces the principle of serial communication, serial port and RS232 protocol,and analyzes communication parameters in detail.Considering RS232 serial port and working principle,this design adopted to serial full-duplex mode to realize c

7、ommunication.In this article ,the interface is the USB port on the PC. In the aspect of software realization,this design select the MFC application program based on C+ after several methods are compared.To realize the serial communication by using MSComm ActiveX serial communication control.This art

8、icle introduces the ActiveX control technology-MSComm control.Finally,the design realize serial communication between two computers.Because of the advantages of low cost and simple structure,serial communication is widely used by people.Realization of serial communication between two PC machine is t

9、he foundation of realizing more complex communication.Keywords: motor; RS232protocol; Serial Communications; C+; CRC Cyclic Redundancy Check目 录摘 要IAbstractII第1章 绪论11.1 课题的研究意义11.2 研究现状及发展趋势21.2.1 RS232串行通信的研究现状21.2.2 RS232串行通信的发展趋势21.3 本文主要的研究内容2第2章串行通信基本原理42.1 RS232通信协议42.1.1 RS232标准42.1.2 RS232接口4

10、2.2 串行通信52.2.1 串行通信基本原理52.2.2 串行通信参数62.2.3 串行通信的分类72.3 串口的调制82.3.1 串口连接82.3.2 串口调试92.4 本章小结10第3章 CRC校验113.1 CRC校验原理113.1.1 CRC校验码的基本原理113.1.2 CRC校验码权的形式123.2 CRC校验的实现123.3本章小结13第4章 软件的实现及其测试144.1 开发工具概述144.1.1 Windows编程与MFC144.1.2 串行通信控件MSComm144.2 程序的主要功能154.3 程序运行平台174.4详细设计174.4.1 建立工程174.4.2 界面功

11、能实现184.4.3 模块分析214.4.4 程序测试324.5 本章小结36第5章 结论37参 考 文 献39致 谢41第1章 绪论1.1 课题的研究意义在发展如此迅速的信息化时代,随着计算机的普及和信息技术的发展,形成了对信息的获取-传送-处理-利用的完整技术体系,并在此基础上形成了通信技术,它应用在生产、医疗、教育、生活等多种领域,成为现今社会生存和发展不可或缺的技术。随着通信技术的不断创新和发展以及计算机网络和多微机系统的广泛应用,USB通信技术的发展如此迅速,尽管如此,然而串口通信技术以其实现简单、使用灵活方便、数据传输可靠等优点并未面临被淘汰,反而在通信领域中一直都被人们广泛的应用

12、。它主要被广泛应用在工业控制生产和实验室等重要领域。VC+是新一代面向对象的可视化开发工具,作为一个主流的开发平台一直深受编程爱好者的喜爱,提供了良好的界面设计资源,是当下图形开发的一个比较重要的技能和手段,Window图形界面编程就是VC+编程开发的经典展现之一。Windows图形界面编程下的MFC,全称是Microsoft Foundation Classes,它是Win32中的应用程序,目前Win32中基于VC+6.0的串口通信程序一般可以用两种方法实现:一是利用 MSComm ActiveX 串行通信控件;二是使用Windows API通信函数。其中Windows平台先进的 Activ

13、eX 技术对串口编程不再需要处理繁琐的细节。利用已有的ActiveX控件技术,只需要编写少量的代码,就可以轻松高效地完成通信任务。这样做会给编程者省去很多的代码工作量。伴随着科学技术的不断创新与现代化生产过程中智能化、自动化程度的不断提高,越来越多的综合过程和控制系统需要开发自身的监测控制平台与数据处理采集,利用Windows编程技术开发这样的应用程序时,其中要面临的最关键的问题是与外围监控设备连接与通信。与外围监控设备通信实际上是计算机与计算机或计算机与终端机之间的数据传递,它可以采用串行通信和并行通信两种通信方式。由于串行通信方式具有使用线路少、成本低、特别是在远程传输时,避免了多条线路特

14、性的不一致而被广泛采用。所以现在大量的智能仪器、工控设备、实验研究设备或数据采集模块都带有RS232串行通讯接口,通过相应的通讯协议和串口通讯程序,可以将测试、采集的数据传输到上位工控机,以满足各种形式后续数据处理的要求。同时整个监控系统会根据系统运行情况通过串口向监控设备发送指令,调节设备的运行参数等使得生产过程平稳进行。所以研究RS232串行通信意义非常重大。1.2 研究现状及发展趋势1.2.1 RS232串行通信的研究现状目前,串行通信在各类领域中都得到了广泛的应用,同时它还具有较高的性价比和传输可靠性等优点。RS-232被定义为一种在低速率串行通信中增加通信距离的单端标准。串行通信中的

15、串口应用始于1960年,然而RS-232的初始版本于1969年才得到认证,认证的版本号为RS-232C,在这之前有RS-232A、RS-232B这两个版本。RS-232标准主要适用于通信设备,它主要采取不平衡传输方法,即所谓的单端通信。近年来,串行技术与连接设备都得到了很大的发展,串口设备在设备电缆、工业控制和软件应用程序中得到了大量的应用,毫无疑问,串行连接技术仍然是工商业、医疗、教育和实验室等领域中所应用的广泛标志。1.2.2 RS232串行通信的发展趋势RS-232协议自1960年形成,1969年得到认证,一直到如今的广泛使用,始终随着各种领域应用需求的不断变化而稳步发展。未来RS-23

16、2串口通信仍将在低成本、设计简单的产品中继续发挥着重要作用。低供电电压和高数据率等都将成为未来发展中新设计的普遍要求。我们坚信RS-232一定会继续随着各种外围设备的不断发展而提高,同时也将继续保持通信领域中应用最为广泛这一地位的。1.3 本文主要的研究内容本文主要通过RS232标准串口协议,使用VC+编程语言实现串行通信,最终完成模拟终端的调试与仿真。在设计过程中,我通过查阅大量相关书籍和资料,研究学习了RS232标准协议和VC+编程语言下的MFC界面编程,学习串行通信相关知识,通过编程软件的仿真完成了基于C+的RS232通信协议的模拟终端。具体研究内容如下:了解RS232协议,串口和串行通

17、信原理。分析RS232串行通信的基本原理,并通过串口调试助手调通串口以方便接下来的操作。了解CRC校验,掌握CRC校验基本原理及应用。在VC+高级语言中,利用Windows下的MSComm ActiveX控件,实现两台计算机间的通信测试与仿真。第2章串行通信基本原理2.1 RS232通信协议2.1.1 RS232标准RS-232标准(协议)(ANSI/EIA-232标准)的全称是EIA-RS-232C标准,其中EIA代表美国电子工业协会,RS代表推荐标准,232是标识号,C代表RS-232的修改次数。RS-232C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信

18、协议。RS232协议一共有25条信号线,其中包括一个主通道和一个辅助通道,大多数情况下主要使用的是主通道,尽管有如此多的信号线,但是对于一般双工通信,仅需要其中几条信号线就可实现数据的传送,如一条发送线、一条接收线和一条地线。它适合于数据传输速率在020000b/s范围内的通信,即为每秒50、70、100、150、300、600、1200、2400、4800、9600、19200波特。这个标准对串行通信接口的有关问题都作了明确规定。由于通信设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用,例如在IBM PC机上的COM1、COM2接口,就是

19、RS-232C接口。它规定连接电缆、机械、电气特性、信号功能及传送过程等。同时,由于RS-232标准具有连线简单、通讯距离长等优点,目前也广泛应用于微型计算机系统、工控机和大型设备系统中。2.1.2 RS232接口RS232标准是按负逻辑定义的,它的“1”电平在515 V之间,“0”电平在515 V之间。RS232接口是标准串行接口,其通讯距离小于15 m,它的传输速率小于20 kbs。RS232串行接口属于个人计算机(PC)及电信应用领域中最为成功的串行数据标准。是目前PC机与通信工业中应用最广泛的一种串行接口。现在的计算机一般至少有两个串行口COM1和COM2,新一代的计算机主要以9引脚的

20、D型口接出所有的RS232通信信号及控制线(有的计算机的串口为25引脚)。在RS232的通讯标准中是以一个25针的接口来定义的,25针的接口在早期的计算机如PC或XT机型上广泛使用,但在AT机以后的机型上,实际均采用了9针的简化版接口应用,现在所说的RS-232通讯均默认为9针的接口。现在大多数个人计算机几乎都没有串口,大多采用USB接口,所以要实现个人计算机与外围设备进行通信大多采用RS-232转USB接口。RS-232 9针通讯的接口图如图2-1所示 。图2-1 9针通讯接口2.2 串行通信2.2.1 串行通信基本原理两个设备之间交换数据的过程我们称之为通信。从同时传输的数据位数来分通信方

21、式可以分为串行通信(Serial)和并行通信(Parrel)。并行通信中所传送数据的各位同时发送或接收。串行通信中所传送数据的各位按顺序一位一位地发送或接收。两种基本通信方式如图2-2所示:吗计算机或外设2计算机计算机或外设2计算机11GNDGNDGNDGND 并行通信 串行通信图2-2 两种基本的通信方式从上面的图中可以看到,并行通信成本高,并须使用多条通信线,而串行通信只需使用两条通信线就可以完成两个设备间的数据交换,大大降低了通信成本,串行通信又以其串行线间的干扰小得到了广泛的应用。串行通信大多数用于Windows开发的应用程序与外围数据源设备之间的数据交换。串行通信是通过串行端口实现的

22、。串行端口的本质功能是作为CPU和串行设备间的编码转换器。当数据从CPU经过串行端口发送出去时,数据格式由字节数据转换为串行的位(byte)。在接收数据时,数据格式由串行的位(bit)被转换为字节数据。2.2.2 串行通信参数串行通信在数据交换过程中,要对几个重要的通信参数进行设置,其中包括波特率、数据位、停止位、奇偶校验位等。(1)波特率所谓波特率就是每秒中传送的二进制位数,其单位是bps(bits per second),用来描述数据的传送速率,是衡量串行通信数据传输速度快慢的重要指标。国际上对波特率规定了一个标准系列:110bps、300bps、600bps、1200bps、1800bp

23、s、2400bps、4800bps、9600bps、14.4Kbps、28.8Kbps、33.6Kbps、56Kbps。例如:9600bps,是指每秒传送数据9600位,其中包含字符的数位和其它必须的数位。串行接口电路的接收波特率和发送的波特率可以设置,要求接收方的接收波特率必须与发送方的发送波特率是一致的。在串行通信中,通信线上所传输的字符数据(代码)是逐位传送的,一个字符由若干位组成,所以每秒钟所传输的波特率和字符数(字符速率)是完全不同的。有时也用“位周期”来表示传输速率,位周期是波特率的倒数。(2)数据位数据位是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的

24、,标准的值是5、7和8位。如何设置取决于传送的信息。数据位通常为5-8位,它紧跟在起始位之后,是被传送字符的有效数据位。传送时先传送字符的低位,后传送字符的高位。数据位的位数可以有硬件或软件设备进行设置,以满足设备间数据交换的需要。(3)停止位停止位一般为1、1.5和2位,用于表示单个包的最后一位。停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会,因为数据是在传输线上定时的,并且每个设备都有其自己的时钟,很可能在通信中要进行数据交换的两台设备间出现小小的不同步,设置停止位就是为了避免其中的小小的不同步。停止位的位数的设置可以由设备的软件设置,停止位的位数越多,不同时钟同步的容忍程

25、度越大,但是数据传输率相应地也会越慢。(4)奇偶校验位在串行通信中奇偶校验是一种简单的检错方式,奇偶校验位仅占一位,用于进行奇校验和偶校验,同时也可以无校验位。对于奇校验和偶校验,串口会设置校验位,是数据位后面的一位,用一个值保证传输的数据有偶个或者奇个逻辑高位。例如,如果数据是001,那么对于奇校验,校验位是0,。如果是偶校验,校验位是1。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者传输和接收数据是否发生了不同步。2.2.3 串行通信的分类串行通信又可以分为同步串行通信和异步串行通信两类。同步通信是一种在发送端发送一个抑制载波的双边带信号,而在接收端恢复载波,再进

26、行检波的通信方式。是按照软件识别同步字符来实现数据的发送和接收。它是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。信息中含有若干个数据字符。 它们均由数据字符、CRC即同步字符和校验字符组成。因为恢复的载波与被接收的信号载波同频同相,故取名为同步通信,也称抑制载波双边带通信。异步通信数据通常以字符或者字节为单位组成字符帧传送,字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。异步通信通常有两个非常重要的指标:即字符帧格式和波特率。发送端和接收端可以由各自的时钟源来控制数据的发送和接收,这两个时钟源彼此独立,互不同步,接收端检测到传输线上发送过来的低电平逻辑0(即字符帧起始位)时,

27、确定发送端已开始发送数据,每当接收端收到字符帧中的停止位时,就知道一帧字符已经发送完毕。异步通信有自己的的缺点,其缺点是它在通信时的传输效率较低。当然它也具有自己独特的优点,其优点就是它的通信设备简单、便宜。2.3 串口的调制2.3.1 串口连接现在大多数计算机外用接口都是USB口,外用接口很少有串口的,并且现在的个人计算机的串口大多都是简型的9针串口。所以要想通过串行通信实现与外围设备数据交换,必须用USB转RS-232 9针串口转换线。9芯管脚图如图 2-3 所示。图2-3 9芯管脚图表 2-1 9针管脚各引脚名称功能图九针串口针号缩写功能说明信号来源1DCD功能说明调制解调器2RXD接收

28、数据调制解调器3TXD发送数据PC4DTR数据终端准备PC5GND信号地6DSR数据设备准备好调制解调器7RTS请求发送PC8CTS请求发送调制解调器9DELL振铃指示调制解调器目前,市场上使用的串口有9针管脚的还有25针管脚的。在RS-232的通讯标准中是以一个25针的接口来定义的,并且在早期的计算机中,如PC机或XT机型上得到了广泛地使用,但是在AT机以后的机型上,实际上均采用了9针管脚的简化版本应用,现在所说的RS-232通讯均默认为9针的接口。图2-3显示了9针通讯的接口管脚,9针管脚的串口各引脚名称、功能和信号来源各不相同。表 2-1说明九针管脚的串口各引脚的名称,功能说明和信号源等

29、。由表 2-1 可知要想实现两台个人计算机间的数据交换,可以将两个USB转RS-232线的接口头的2、3引脚交叉对接,两个5脚相接即可,具体接法如图2-4所示,然后再讲两个USB接头与两台电脑相连。图2-4 USB转RS232线的连接图2.3.2 串口调试实现个人计算机与外围设备间的串行通信必须将个人计算机上的串口调通,验证一下个人计算机上的串口是否好用。这就需要用到串口调试小助手。首先将一根USB转RS-232转换线的2、3引脚短接,然后将带有“驱动程序”的光盘放入个人计算机中,安装并运行与自己计算机相匹配的驱动程序,接着将转换线的USB端插入个人计算机的USB口,即完成了初步的安装。打开设

30、备管理器,看一下所插入的转换线占的是哪个串口,因为在接下来调试串口要用到。串口调试助手是一个专门用来调试串口程序的功能软件,要想测试串口是否可用,应先打开软件,选择串口号,打开串口,在发送区输入内容,点击发送按钮,若在接收区中有所发送的内容,则证明此串口可用。2.4 本章小结本章从原理上介绍了串行通信的基本原理,详细的阐述了RS232标准协议接口和与串行通信相关的一些知识。介绍了通信参数与串行通信的分类。为下文编写Windows应用程序实现两台PC机进行数据交换提供了基础。第3章 CRC校验3.1 CRC校验原理3.1.1 CRC校验码的基本原理在早期的通信中,由于通信技术不够可靠(不可靠性的

31、来源是通信技术决定的,比如电磁波通信时受雷电等因素的影响),这样不可靠的通信就会带来“确认信息”的麻烦,造成一些事情的延误等。为了避免这一弊端,在进行数据交换,通信的过程中,对通信的可靠性检查就需要校验,校验是从数据本身进行检查,它依靠某种数学上约定的形式进行检查,校验的结果是可靠或不可靠,如果可靠就对数据进行处理,如果不可靠,就丢弃重发或者进行修复。如早期一样目前在通信系统的数据传输过程中,由于信道中各种复杂因素的影响,使传输的信号受到干扰,造成传输过程中误码的出现。接收方为了检查所接收的数据是否有误码,可采用多种检测方法。差错控制编码是目前数据传输过程中普遍采用的一种提高数据通信可靠性的方

32、法,而CRC是一种在实际通信中应用很广泛的差错控制编码,具有很强的检错能力。CRC(Cyclic Redundancy Check)循环冗余校验码是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。CRC循环冗余校验码的基本原理是任意一个由二进制位串组成的代码都可以和一个系数仅为0和1取值的多项式一一对应。例如:代码101011对应的多项式为,而多项式为对应的代码1100101。CRC校验码是在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。CRC校验码的生成借助于多项式除法,其余数为校验字段。其中发送方发出传输字段,传输字

33、段由两部分组成的,分别为信息字段和校验字段。接收方使用相同的生成码进行校验,若接收到的字段或生成码(二进制除法)如果能够除尽,则说明在通信过程中,数据交换期间未受到其他因素的干扰,消息收发成功。3.1.2 CRC校验码权的形式CRC校验码有很多种权的行式,使用哪一种形式是根据通信双方共同制定的“规则”而定的,其中各种常用权的形式如下所示: (3-1) (3-2) (3-3) (3-4) (3-5)以其中CRC-CCITT形式为例。图 3-1说明了 CRC 校验中 CRC 值是如何计算出来的,体现的多项式正是式(3-5)。从把数据移位开始计算,将数据位(从最低的数据位开始)逐位移入反向耦合移位寄

34、存器。当所有数据位都这样操作后,计算结束。此时,16 位移位寄存器中的内容就是 CRC 码。图3-1中X 代表 Bit5,X 代表 Bit12,1 是代表 Bit0,比较特别,是指移位寄存器移入的数据。图3-1 生成CRC-CCITT的移位寄存器的作用原理3.2 CRC校验的实现实现CRC校验有很多种算法和方式,最基本的算法应该是按位计算了,这个方法可以适用于所有长度的数据校验,是最为灵活的,但由于是按位计算,其效率并不是最迅速、最优的,只适用于对速度不敏感的场合。还有一种是按照字节计算CRC校验码,按字节校验是每次计算8位数据,多是基于查表的算法,首先要准备一个表,一共256项。在使用的时候

35、,把计算出来的校验值放在最后两个字节里,将其发送出去,接收端对所有的数据进行相同的校验,如校验值为0我们则认为其数据没有出错。这个是按高位到低位的发送顺序时使用的校验方法。3.3本章小结本章介绍了通信中最常使用的校验方法,即CRC校验。分析了CRC校验原理、算法形式和算法的实现。并通过CRC校验实现通信中的检错。第4章 软件的实现及其测试4.1 开发工具概述4.1.1 Windows编程与MFCWindows编程大致有两种方法,一种是Windows C方向,即SDK方向,调用Win 32 API函数,主要是利用C语言来实现软件的功能与编程;另外一种方法是C+对SDK函数进行包装,如VC的MFC

36、(微软基础类库),BOB的OWL等。其中使用MFC直接编写提供大量预先编好的类和支持代码或使用MFC和向导(Wizards)编写,用AppWizard来生成Windows应用程序框架。本次软件程序设计功能的实现主要利用Windows编程中MFC(利用C+语言)。MFC提供了构造Windows应用程序的框架,它不仅为应用程序建立标准的结构,还为其提供了标准的图形用户界面如菜单栏、工具栏、状态栏等,开发人员只需要在此基础上添加针对特定应用的代码即可。使用此应用程序框架有很多优点,如其应用程序代码小,运行速度快,并且此应用程序提供的工具也降低了编码的难度等。Windows应用程序的框架主要有两种类型

37、,一种是基于对话框的应用程序框架,另外一种是基于文档、视图结构的应用程序框架。平大家所见到的大多数Windows应用程序均属于这两种框架。MFC的全称是Microsoft Foundation Classes。是微软把Windows API 进行封装的类库,该类库以层次结构组织起来,其中封装了大部分Windows API函数和Windows控件。1989年微软公司成立Application Framework技术团队,名为AFX小组,用以开发C+面向对象工具给Windows应用程序开发人员使用。启用MFC编码可以使Windows程序员能够利用C+面向对象的思想进行编程,用好的类作为标准,减少代

38、码的编写量。4.1.2 串行通信控件MSComm目前,以Win 32 下的MFC应用程序为主要框架,基于VC+的常用串行通信编程一般可以用两种方法实现:一种是使用Windows API通信函数。虽然在Windows下Win32API提供了使用文件操作方式的函数进行串口操作的方法,但是在编程实现上还是比较复杂。其余一种是利用MSComm ActiveX 串行通信控件。Windows平台先进的ActiveX技术利用已有的MSComm ActiveX控件,只需要编写少量的代码,就可以轻松高效地完成任务,使得对串口编程不再需要处理烦琐的细节。这样程序员就不需要花费大量时间去了解复杂的API函数,只需要

39、利用MSComm控件就可实现串口编程。所以,本次实现两台PC间的通信使用的就是MSComm控件。4.2 程序的主要功能实现两台PC机之间的通信的应用程序,主要实现了密码登陆、参设设置、参数显示、打开串口、关闭串口、数据发送、数据接收等功能。主要功能框图如图4-1所示。主函数密码登录参数设置打开串口关闭串口接收数据发送数据图4-1 主要功能框图应用程序主要实现的功能如图4-1所示的主要功能框图,此应用程序的总体程序流程图如图4-2所示。开始调用初始化程序登录界面N登录验证是否正确Y主界面N串口号是否可用Y设置串口打开串口N通信参数是否符合Y设置参数输入数据并发送数据发送完成NY关闭串口结束图4-

40、2 程序流程框图使用此应用程序时,需要有正确的用户名和密码才能登录到此软件的主界面,登录到主界面后,要想实现两台PC间的通信则需要选择可用的串口号并且传输参数要一致,其中包括波特率、数据位、停止位、奇偶校验位等,只有设置对的参数才能实现数据交换的功能。在发送接收数据过程中需要打开串口。通信结束后,关闭打开的串口。能够发送单个或多个数据。能够接收和显示多个数据。程序流程图如图3-2所示。4.3 程序运行平台在程序设计时,原计划使用VS2008软件,但是由于电脑、操作系统等各种原因,就改用VC+ 6.0这个软件。4.4详细设计4.4.1 建立工程要实现通信,首先应先建立工程,即新建基于Win32的

41、MFC应用程序。首先打开VC+6.0软件,建立基于对话框的MFC应用程序。并将这个应用程序命名为通信。然后在将基于对话框选中(如图4-3),直接下一步即可,最后直到完成。图4-3 建立基于对话框应用程序过程图按照如上所示的方法步骤,建立Win32下的MFC应用程序工程,应用程序工程名为“通信”,最后点击完成按钮,就会出现MFC应用程序初始界面如图4-4所示。图4-4 应用程序最初界面4.4.2 界面功能实现1.登录界面登录界面的设计除了应用MFC中的控件和工具外,要想实现其用户名和密码的验证功能还利用了数据库的知识。本次登陆界面使用的数据库是微软的Access数据库。Access数据库是一个小

42、型的数据库,使用起来非常的灵活、方便 。对Access数据库的连接与操作有很多种方法,例如在ASP中建立对Access数据库的连接、使用Recordset对象操作Access数据库、使用SQL指令操作数据库、使用DSN连接Access数据库等。其中使用DNS连接Access数据库方法中,在定义DSN的时候,就已经指定好了数据源需要的ODBC驱动程序,也指定好了数据库文件的实际路径和名字,我们在程序中,只需要引用预先定义的数据源名DSN即可。首先,启动Microsoft Office Access,建立Access数据库,命名为demo01,然后在数据库中创建一个表,命名为puser,在表pus

43、er中输入序号(userid)、用户名(username)和密码(userpwd),将这个数据库保存。最后为Access数据库demo01建立数据源,利用ODBC驱动。数据库和数据源建立完成后,开始用MFC建立登陆界面。数据库中用户名和密码如图4-5所示。图4-5 数据库中用户名和弱密码运行应用程序时,若输入了错误的用户名或密码,则系统会提示输入错误。若输入用户名和密码正确,即与Access数据库表login内容相一致,点击登录按钮,出现提示正确,点击确定按钮应用程序的界面会由登陆界面跳转到主界面,开始进行数据交换。登陆界面如图 4-6 所示。图4-6 登录界面2.主界面主界面是整个应用程序的

44、主体,大致可划分为三部分,有接收区、发送区和设置区。接收区由静态文本框和编辑框组成;发送区同样也是由静态文本框和边界框组成;设置区由组合框、按钮和静态文本框组成。完整的主界面如图4-7所示。 图4-7 主界面3.参数设置界面完成两台PC机间的串行通信(数据交换),必须保证两个串口的通信参数一致,这样就需要将两个应用程序的通信参数重新设置,通信参数包括波特率、数据位、停止位、奇偶校验位等。相应的通信参数设置完成后,点击【确定】按钮,应用程序则会再次跳转到主界面(数据收发界面),若想取消设置则点击取消按钮,参数设置界面关闭,回到主界面。界面的具体情况如图4-8所示。图4-8 设置界面4.4.3 模

45、块分析1.用户名密码登录模块在登录界面下,在编辑框中输入用户名和密码,单击界面中的【登录】按钮,可以验证用户名密码输入是否正确,若正确登录,程序提示“登陆成功,欢迎使用!”,然后登陆界面关闭显示主界面,若输入错误则程序提示“密码用户名错误,请重新输入!”。需要重新输入和验证,验证通过后才可以登录。实现该功能的程序流程图如图4-9所示,实现该功能的程序代码如下:开始N是否登录Y输入获取信息N点击退出按钮密码用户名是否一致Y登录成功,转到主界面结束图4-9 用户名密码登录模块流程图void CMylogin:OnBnClickedOk()/ TODO: Add your control notif

46、ication handler code hereOnOK();void CMylogin:OnOK() TODO: Add extra validation hereUpdateData(TRUE); /读取编辑框内容CUserRecordset m_user; tryif(m_user.IsOpen()m_user.Close();m_user.m_strFilter.Format(username=%sanduserpwd=%s,m_username,m_userpwd);m_user.Open(CRecordset:snapshot,NULL,CRecordset:none);if(m_user.IsEOF()/密码用户名不一致m_user.Close();AfxMessageBox(用户名、密码错误,请重试!);return;elsem_user.Close();AfxMessageBox(登录成功,欢迎使用!);CDialog:OnOK();catch(CDBExceptio

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁