




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题目:基于网络通信的数据采集上位机软件设计基于网络通信的数据采集上位机软件设计摘要随着网络技术的快速开展,基于网络通信的数据采集系统得到了大量应用,本文在查阅文献的根底上提出了基于网络通信的单片机数据采集系统,通过网卡终端以及TCP/IP协议实现了单片机与PC机之间的网络通信,本文研究具有较强的工程背景和实际价值,本文在主要工作如下:(1)进行了基于网络通信的数据采集系统理论研究,主要包括数据采集的根本原理和根本方法,并提出了两种单片机连接网络的实现方法。(2)研究了网络通信的数据采集实现过程,对单片机数据采集到网络传输进行了模式设计,并设计了单片机发送程序以及网卡芯片配置,以实现单片机网络连接;(3)设计了网络通信数据采集系统上位机软件。基于TCP/IP协议以及WindowsSocket方法,在VisualStudio平台上开发出了单片机网络通信数据采集系统上位机软件,实现了数据采集和显示;(4)对数据采集系统进行了实验和调试,并提出了期间遇到的各种问题,最后对全文的内容进行了总结和工作展望。关键词:数据采集系统;网络通信;TCP/IP协议;上位机DataAcquisitionHostComputerSystemSoftwareDesignBasedonNetworkCommunicationABSTRACTWiththerapiddevelopmentofnetworktechnology,dataacquisitionsystembasedonnetworkcommunicationistogetalargenumberofapplications,isproposedinthisarticlerefertotheliteratureonthebasisofthesingle-chipmicrocomputerdataacquisitionsystembasedonnetworkcommunication,throughthenetworkcardintheend,andtheTCP/IPprotocolrealizedthenetworkcommunicationbetweenMCUandPC,thispaperhasstrongengineeringbackgroundandtheactualvalue,basedonthemainworkisasfollows:(1)thedataacquisitionsystembasedonnetworkcommunicationtheoryresearch,mainlyincludingthebasicprincipleofdataacquisitionandbasicmethods,andputsforwardthemethodtorealizethetwosingle-chipcomputertoconnecttotheInternet.(2)studiesthedataacquisitionnetworkcommunicationrealizationprocess,single-chipmicrocomputerdataacquisitiontonetworktransmissionforthepatterndesign,anddesignthesingle-chipcomputerrouterchipconfigurationandthenetworkcard,inordertorealizethesinglechipmicrocomputernetworkconnection;(3)designedthenetworktrafficdatacollectionsystemofuppermachinesoftware.MethodbasedonTCP/IPprotocolandWindowssockets,inVisualStudioplatformdevelopedbysinglechipmicrocomputerPCsoftware,networkcommunicationdataacquisitionsystemhasrealizedthedataacquisitionanddisplay;(4)thedataacquisitionsystemfortheexperimentanddebugging,andputforwardtheproblemsencounteredduringtheperiodof,finally,thefulltextissummarizedandthecontentofthework.Keywords:dataacquisitionsystem;networkcommunication;TCP/IPprotocol;theuppermachine目录257801引言1301381.1课题研究背景和研究意义1321351.2数据采集系统开展现状1130391.3论文主要研究内容2296922基于网络通信数据采集系统根本原理和方法4301972.1基于网络通信数据采集系统根本原理496912.2基于网络通信数据采集系统根本方法495103基于网络通信的数据采集实现6104983.1数据采集工作模式6194953.2单片机发送端程序设计6314163.3网卡芯片模块7313543.4网卡芯片软件配置1078114上位机软件设计11141884.1TCP/IP协议11206944.2数据传输程序设计11160214.3上位机PC界面17215265实验与调试1844245.1网络通信测试18211815.2系统调试1832445.3遇到的问题讨论19265376总结与展望21289996.1全文总结21287456.2工作展望21814参考文献2213280致谢23附录241引言1.1课题研究背景和研究意义数据采集是通过查看数据库中存储的大量数据来发现有意义的数据以及新的数据关系、模式以及趋势等,使用模式识别技术,实现精确的统计过程。数据采集系统是结合基于计算机测量软硬件产品来实现灵活的、用户自定义的测量系统。随着网络Internet技术的快速开展,网络通信传输在数据采集方面也起到了重要作用。目前Internet技术主要用于信息交流,比方说E-mail、购物、聊天、Web浏览等,以及进一步开展的电子商务等等,这些技术方式仅仅只是停留在了企业与企业或者企业与个人或个人之间的信息交换上,而我们对于网络的理解也因此不够充分,实际上,网络技术已经在很大程度上应用到了公园控制等领域,时刻影响着我们的生活和环境。【12】生活中很多数据经过现场采集后一定的方式传输到远程端,比方通过接收卫星云图数据我们可以预测未来几天的天气情况,而卫星数据经过获取后是通过了一定的方式和协议传输到了地球上,然后经过处理才得以显示出来,这也可以说是一种网络传输。在工厂车间,很多情况下,数据采集都能通过各种传感器检测得到,然后经过单片机处理得到实际数据,假设是将单片机系统连接上网络Internet,那么可以在远程位置获得信息数据。而如何让这些电子设备和Internet连接起来,以便于人们能够远程获得这些电子设备的信息并控制它们运行,已成为了目前国内外共同关注的焦点。【1】随着电子和信息技术的高速开展,通过软件方式或者硬件方式将TCP(UDP)/IP协议嵌入到单片机系统已经成为可能,网络化的智能单片机以及智能化的传感器等研究,是国内外竞相抢占制高点的前沿技术之一。本文针对基于网络通信的数据采集技术进行研究,包括工作原理、工作方法以及具体的发送接收方式实现,对于电子设备网络化,实现远程监测和控制设备仪器的运行等方面具有重要意义。1.2数据采集系统开展现状数据采集系统始于20世纪50年代,美国为了实现在军事测试中不依靠相关的测试文件,由非熟悉人员进行操作,并且测试任务由测试设备高速自动完成,而研发了用于军事上的数据采集系统。大约在60年代后期,国外用于专用系统的成套数据采集设备进入市场。70年代中后期,诞生了以采集器同计算机融为一体为代表的数据采集系统,该系统超过了传统的自动检测仪器和专用数据釆集系统。20世纪80年代随着计算机的普及和开展,数据采集系统空前开展,工业计算机、单片机和大规模集成电路的组合,使系统的本钱、体积减小,功能成倍增加,数据处理能力逐步加强。【15】该时期己开始出现通用的数据釆集与自动检测系统。一般来说,数据采集系统分为两类:一类是由通用接口总线和计算机、仪器仪表和采集器等构成,如国际标准ICE625(GPIB)接口总线系统;另一类由标准总线和计算机、数据采集卡构成,如ETD总线系统。20世纪90年代以来,国际上一些技术先进的国家,数据采集系统已在井下作业、石油开采、现场实时监控和航空技术等领域被广泛应用,出现了高性能、高可靠性的单片机数据采集系统,如有的DAS产品精度可以到达24位,甚至有的DAS产品速度可以到达每秒几亿次以上。【14】现阶段的数据采集系统采用更先进的模块化结构,根据不同的应用需求,运用简单的增加和更改模块的方法,与系统编程相结合就可扩展或修改系统,最终迅速组建成一个新的系统。由于屏蔽性、高密度、针孔式的连接器和卡式模块的应用,使其稳定性及可靠性得到充分保障,但其昂贵的价格阻碍了它在自动化领域的普及。目前,以Internet为代表的计算机网络通信的开展和应用取得了空前的突破,网络化采集和控制技术也随着网络技术的开展而迅速成长。基于网络通信的数据采集系统应运而生,且在计算机网络技术开展背景下,表现出了空前的开展势头,具有采集效率高、采集实时性高、便于收集和整理数据等特点,对于各行工业领域的数据采集都具有非常重要的意义。随着IT技术和互联网技术的飞速开展,为保障用户的投资,适应未来技术开展的趋势,施耐德电气公司第一个推出了应用于工业控制领域的、开放的TCP/IP以太网、ModbusTCP/IP协议,该技术采用了IT行业广泛应用的TCP/IP协议,底层协议釆用开放的Modbus,第一次真正地的实现了IT网络和工业数据采集与控制网络的融为一体,使用户彻底摆脱了各种行业的工业数据采集与控制网络的限制和束缚,从而进入了工业控制领域的一种新境界。【3】电子信息技术的高速开展,通过软件或硬件方式可以将TCP(UDP)/IP协议嵌入到单片机。目前网络智能化单片机在国内外占据前沿地位,而近几年交换式以太网技术的出现更大程度的提高了以太网确实定性,利用交换技术,将一个较大的网络分隔成为各个相对独立的冲突域,使冲突只能在一个相对较小的区域内发生,这样就大大地减小了冲突发生的概率,从而提高了网络的实时性和确定性。【2】以太网所显示的优势,使其能够满足数据采集及控制对实时性、抗干扰性、可靠性的严格要求,它己经被证明是未来数据采集与控制网络的最正确解决方案,其应用于现场设备监控也是控制网络开展的趋势。1.3论文主要研究内容本文通过查阅文献资料,在现有条件的根底上,开发设计出了单片机的网络通信数据采集系统,并实现了上位机界面设计,本文研究具有较强的工程背景和应用价值,具体研究内容包括:(1)基于网络通信的单片机数据采集系统根本原理和根本方法研究。随着网络技术的开展,单片机的网络智能化得到大量的应用,本文单片机连接网络Internet的根本原理进行了研究,并提出了具体的连接方法;(2)基于网络通信的单片机数据采集系统实现。主要包括单片机数据采集的工作模式、单片机发送程序设计、中间传输媒介网卡芯片模块的配置与设计等;(3)基于网络通信的数据采集系统上位机软件设计。单片机与上位机之间通过TCP/IP协议实现了网络通信,本局部对TCP/IP协议进行了研究,并在此根底上通过windowssocket套接字实现了网络通信,设计了上位机数据采集软件;(4)对数据采集系统进行了试验调试,并分析了过程中遇到的各种问题以及解决方法,对全文工作内容进行了总结和展望。2基于网络通信数据采集系统根本原理和方法基于网络通信的数据采集系统分为硬件局部和软件局部,硬件局部实现模拟量数据采集,包括数据采集终端、网络传输通道、上位机等构成。本文对于具体的硬件采集电路不做具体研究,以单片机作为媒介,实现单片机与计算机之间的网络通信。本章将具体分析数据采集系统的根本原理和根本方法,为第三章数据采集系统工作模式做好铺垫。2.1基于网络通信数据采集系统根本原理实现单片机系统接入网络Internet这种方式并不复杂,现有的互联网设施已为我们提供了现成的中间传输媒介,我们只需要将单片机与这些中间的传输媒介连接上就可以使系统介入Internet了。【11】但是,要将单片机系统接入到Internet中必须从以下两方面进行工作:一是在硬件上,给数据采集系统的主控制器即单片机加上一个网络接口;二是在软件上提供单片机与远程计算机通信的通信协议。当给一个系统配上一个以太网网卡芯片,并提供相应的TCP/IP协议和IEEE802.3协议时,这个系统就可以通过以太网连接上Internet;当给一个系统配上一个DTE/DCE接口设备,并提供相应的TCP/IP协议和PPP协议,那么这个系统就可以通过Modem连接Internet;当给一个系统配上具有无线收发功能的网络接口RF,并提供相应的TCP/IP协议和IEEE802.11协议,那么这个系统就可以通过无线方式连接Internet。由此可知,如果要想让单片机系统连接上Internet,其关键是实现网络通信接口并提供相应的网络协议。【9】2.2基于网络通信数据采集系统根本方法目前来说,有两种方法可以实现单片机系统连接网络,具体分别表达如下:(1)利用网络控制器/网卡(NIC)实现网络接口,然后由单片机来提供相应的通信协议。比方,将单片机与网卡ZNE-100模块组合在一起,ZNE-100模块内部集成了TCP/IP协议栈,这样就可以轻松实现嵌入式设备的网络通信和传输功能。采用这种方法的本钱非常低廉,但是其软件设计比拟复杂。然而,对于ZNE-100网卡模块接口,并不需要像计算机那样提供全套的网络通信协议,只需要根据特定的应用要求,提供一个TCP/IP协议族的子协议集即可。【7】(2)利用具有协议栈结构的芯片和PHY(phyceiver物理层的接收器)来实现网络接口,主控器只负责向协议栈结构芯片的某个存放器里存放适当的数据。在这种方法中,网络协议是根据协议栈结构的芯片硬件实现的。目前这种芯片有美国SeikoInstruments公司生产的ichipS7600A芯片,韩国WIZnet公司生产的i2chipW3100A芯片等。在这里,我们以i2chipW3100为例来说明这类芯片的硬件结构是如何实现网络协议的。图2-1W3100芯片硬件结构W3100芯片结构示意图如图2-1所示,其中分为四个局部:与单片机接口局部(MCUinterface)、协议引擎(protocolengine)、存储器(DPRAM)和MII接口局部。其中MII接口局部接PHY。实现网络协议的局部主要是靠其协议引擎,在其内部结构中具有以下一些与网络协议相关的存放器:命令存放器C-CR,它的各位分别表示系统初始化、通道socket初始化、建立连接、侦听、接收、发送、关闭等命令。具体地,将某一位置1就可以发出相应的命令。C-DIR为目的IP地址存放器,C-DPR为目的端口地址存放器,C-TOSR为效劳类型存放器,对应于IP报头的TOS字段,C-IPR为IP协议存放器,对应于IP报头的协议字段,CSPR为源端口存放器,C-SSRsocket为状态存放器,GAR为网关地址存放器,SMR为子网屏蔽存放器,SHAR为源硬件地址存放器,SIPR为源IP地址存放器等。在这些硬件存放器上,程序开发人员只需要将相应的数据存入这些存放器中,并按照一定的顺序开启相应的命令,那么就可以按照标准协议连接上网络了。而且芯片开发商还提供了芯片的软件开发包,设计者只需要调用其中的函数即可实现网络通信。由此可见,这种方法设计简单,使用方便,但是其价格一般都比拟昂贵。【4】本文将根据第一种方法,将单片机与网卡芯片ZNE-100模块进行组合,然后建立相应的通信协议,实现单片机网络智能化,与PC机远程通信。3基于网络通信的数据采集实现3.1数据采集工作模式数据采集系统主要分为两个局部:一是单片机终端数据发送局部,完成数据的发送功能;二是PC机端数据的接收局部,实现通过网络连接接收单片机终端发送的数据,并在PC机上显示数据、处理数据,以监测和控制相应的执行机构。【5】数据采集系统工作模式如图3-1所示:单片机单片机终端网卡芯片PC机接收数据并显示Internet网络图3-1数据采集系统工作模式由图可知,单片机发送数据后,经过网卡芯片以及相应的网络协议,通过网络方式被PC机端结构,然后显示在PC机上,经过数据处理后作为参考,以监测和控制远程局部。3.2单片机发送端程序设计(1)MCS-51单片机串行通信工作方式MCS-51单片机共有四种串行通信工作方式,分别成为方式0、1、2、3。其中方式0是把串行口作为同步移位存放器使用,这时以RXD(P3.0)端作为数据移入的入口和出口,而由TXD(P3.1)作为提供移位脉冲的端口。【13】方式1是10位为一帧的异位串行通信方式,方式2是11位为一帧的串行通信方式,方式3通信方式也是11位为一帧的串行通信,其过程与方式2相同,但不同的是其波特率。(2)单片机发送端程序发送主程序:ORG0023HAJMPACINTORG8030HMOVTMOD,#20HMOVTL1,#0F3HMOVTH1,#0F3HSETBEACLRESMOVPCON,#00HSETBTR1MOVSCON,#40H;置串行口工作与方式2,允许接收MOVSBUF,#40HSOUT1:JNBT1,$ CLRT1;T1清零MOVSBUF,#00HSOUT2:JNBT1,$CLRT1;T1清零MOVSBUF,#40HSOUT3:JNBT1,$CLRT1;T1清零MOVSBUF,#1FH;启动发送 MOVDPTR,#4000H MOVR7,#20H SETBES;启动ESAHALT:AJMP$中断效劳程序:ORG8100HACINT:MOVXA,@DPTRCLRT1;T1清零MOVSBUF,A;启动发送DJNZR7,AENDCLRES;禁止串行中断CLRTR1;启动T1AEND:INCDPTRRET13.3网卡芯片模块(1)ZNE-100网卡芯片介绍ZNE-100是广州致远电子开发的一款工业级嵌入式网络模块,它内部集成了TCP/IP协议栈,用户利用它可以轻松实现嵌入式设备的网络功能,不需要了解复杂的网络知识以及TCP/IP协议,节省人力物力和开发时间,使产品更快的投入市场,增强竞争力。该产品用于串口与以太网之间的数据传输,可方便的为串口设备增加以太网接口。可用于串口设备与PC机之间,或者多个串口设备之间的远程通信。具有以下产品特性:Serial(TTL)接口转10MEthernet接口,Serial最大波特率为115200bps;可利用Webbrowser和Windowsutility轻松进行设定;TCPServer、UDPServer作业模式;支持动态(DHCP)或静态获取IP地址;尺寸小(44×31.5mm)。具有32位ARM7CPU,16KBRAM,128KBFLASH,10M以太网接口(使用排针方式引出),1.5KV电磁隔离,串口TTL电平方式,波特率300~115200bps,串口任意校验,串口数据位5、6、7、8可设定,串口停止位1、2位可设定,支持TCP/IP协议包括:ETHERNET、ARP、IP、ICMP、UDP、TCP、HTTP、DHCP,工作方式可选择为TCPServer或UDPServer,工作端口可设定,可使用配置工具ZnetComUtilityforWindows98/me/NT/2000/XP进行配置,输入电压5VDC,功耗低,最大工作电流90mA等。(2)ZNE-100模块硬件电路如图3-2所示为ZNE-100的模块硬件电路,可知其具有两排外引管脚,左边一排是12针,右边是11针,分别编号1~23。此外,ZNE-100模块上具有三个孔,用于恢复出厂设置和升级固件。图3-2ZNE-100模块电路图表3-1ZNE-100模块管脚定义引脚意义引脚意义1EthernetTX+2EthernetTX-23保存3EthernetRX+22保存4EthernetRX+21保存5连接显示LED20保存6TXD19EHTER_TXD_LED7RXD18保存8485_TXD_EN17保存9保存16保存10nRST模块复位15EHTER_RXD_LED11GND14VCC(+5VDC)12GND13VCC(+5VDC)表3-1所示为ZNE-100网卡芯片模块的具体引脚定义,其中EthernetTX+、EthernetTX-、EthernetRX+、EthernetRX-管脚是以太网信号端口,TXD、RXD是串口信号端口,管脚5、16、19为LED信号口,方向为输出,485_TXD_EN是RS485发送控制端,方向为输出,保证RS485半双工传输,发送数据时为高电平,接收数据时为低电平,nRST为模块复位脚,低电平有效,在该引脚输入一个大于20us的负脉冲即可实现模块复位〔其中模块内部有上电复位电路,该管脚可以悬空〕。(3)ZNE-100模块评估板ZNE-100模块评估板如图3-3所示,其中指示了各个按钮的功能和作用,模块评估板可以直接用作网卡芯片,连接到单片机上实现网络通信。图3-3ZNE-100模块评估板3.4网卡芯片软件配置在对ZNE-100进行模块软件配置之前,需要保证用户的PC机内具有以太网卡,而且PC机与ZNE-100模块需要在同一个网段内。ZNE-100模块在生产厂家出厂时设定了一个默认的IP地址()和网络掩码(),用户需要计算判断PC机是否与模块在同一网段,判断公式为:用户PC机IP地址比上PC机网络掩码,看其是否等于ZNE-100模块的IP地址比上模块的网络掩码。如果不想等,那么需要修改PC机IP地址,方法是:首先进入操作系统,然后使用鼠标点击任务栏的"开始""设置""控制面板"(或在"我的电脑"里面直接翻开"控制面板"),双击"网络和拨号连接"(或"网络连接")图标,然后单击选择连接ZNE-100模块的网卡对应的"本地连接",单击右键选择"属性,在弹出的"常规"页面选择"internet协议(TCP/IP)",查看其"属性"。选择"使用下面的IP地址",,,默认网关(DNS局部可以不填)。点击该页面的"确定"及"本地连接属性"页面确实定,等待系统配置完毕。【16】此后,配置了PC网关,即可对其进行模块软件配置。首先安装厂家给的配置软件,然后根据安装好的配置软件进行配置,具体过程可以查阅ZNE-100使用手册,此处不予详述。4上位机软件设计4.1TCP/IP协议TCP/IP协议是TransmissionControlProtocol/InternetProtocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最根本的协议、Internet国际互联网络的根底,由网络层的IP协议和传输层的TCP协议组成。TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据平安正确地传输到目的地。而IP是给因特网的每一台电脑规定一个地址。TCP/IP协议有底层和上层之分,底层协议规定了计算机硬件的接口标准,上层协议规定了软件程式必须共同遵守的一些规那么以及程序员在写程式时使用的统一标准。TCP/IP共有100多个协议,其中用得最多的包括SMTP(电子邮件协议)、FTP(文件传输协议)、TELNET(远程登陆协议)等。TCP/IP网络层协议的核心是IP协议,IP协议具有两个重要特点,一是提供五连接的数据报传输机制,虽然不能保证传输的可靠性却简单有效,二是提供在同一物理网络中的对点通信,决定一条从信源机到信宿机的传输路径。IP协议的主要功能是IP数据报传送以及IP路由选择,交换的数据被封装在假设干个IP包中,在每一个IP包的报文件中都包含有源机器IP地址、目的机器IP地址、校验和以及其他的一些信息。校验和是根据IP报文中的数据计算出来的,IP包的接收方可以根据它来判断报文在传输过程中是否由于传输线路噪音等原因而受到破坏。【8】TCP是一种面向连接的传输层协议,它可以提供可靠性高的效劳。通过使用序列号和确认信息,TCP协议能够向发送方提供到达接收方数据包的传送信息。当传送过程中出现数据包丧失的情况时,TCP协议可以重新发送丧失的数据包直到数据成功到达接收方。当出现网络超时时,TCP协议还可以识别重复信息,丢弃不需要的多余信息,使网络环境得到优化。如果发送方传送数据的速度大大超过了接收方接收数据的速度,那么TCP协议又可以采用数据流控制机制来减慢数据的传送速度,协调发送和接收方的数据响应。而与其并列的UDP协议〔UserDatagramProtocol用户数据报协议〕是五连接的,但它传输速度快,传输效率高,特别适合一次传输少量报文,UDP直接建立在IP协议之上,相对于TCP协议来说简单得多。【10】总之,IP的工作就是把原始数据从一地传送到另一地,TCP的工作就是管理这种流动并确保其数据是正确的。4.2数据传输程序设计本文利用VC++程序的MFC框架建立数据传输协议,采用客户端/效劳器模式建立通信,其中效劳器端和客户端程序根本相同,不同的是选择的通信套接字。【6】PC机的程序流程开始图如图4-1所示。初始化PC机后,创立网络连接,查看网络是否正常,当网络处于正常工作状态时,PC机向网络数据釆集终端单片机发送〃$〃指令,当单片机接收到该指令后,读取A/D转换的结果,通过网络传输给PC机,PC机接收该数据后,读取并显示接收到得数据,查看数据是否接收完,假设接收完,再次等待接收网络传输来的数据,如此循环的接收并显示数据。开始初始化初始化创立网络连接创立网络连接网络是否正常?网络是否正常?NY发送发送〞$〞指令PC机接收数据PC机接收数据读取并显示接收到的数据读取并显示接收到的数据数据是否接收完?N数据是否接收完?NNnNNY图4-1PC机程序设计流程下面讲述客户端的具体建立过程:(1)基于VisualStudio平台,建立基于对话框和WINDOWSSOCKETS的通信工程。Socket函数采用客户/效劳器的通信机制来实现网络之间的连接和数据交换,在TCP/UDP测试环境下进行客户端通信程序设计。Socket函数建立指定的地址格式、数据类型和协议下的套接口,地址格式为AF_INFT(唯一支持的格式),数据类型SOCKET_STREAM表示建立流式套接口。Socket的通信流程图如图4-2所示所示。开始开始创立Socket连接接受、分析命令是否开始采集启动数据采集发送数据开始发送控制命令创立Socket连接处理数据接收数据YNNNYY〔a〕效劳器端/网络采集终端〔b〕客户机端/PC机图4-2Socket套接字通信流程(2)在生成的对话框中选择一些适当的空间如按钮、文本框、IP工具等,做好数据接收界面;(3)利用ClassWizard为对话框中各个控件添加好相应的控件变量;(4)翻开ClassWizard对话框,确定ClassName为CTalkDlg,OBJECTIDS是IDC_COMBO_TYPEM,选择MESSAGE为CBN_SELCHANGE;(5)为了应用程序能够获得并响应Socket事件,应该创立用户从Casyncsocket类继承的派生类。选择Insert/NewClass,创立新类CMySocket,选择基类为Casyncsocket;(6)向派生类中添加成员变量,用作指向父对话框的指针,类型为CTalkDlg*,变量名为m_pDlg。并添加成员函数SetParent(CTalkDlg*pDlg)。(7)对套接字添加处理函数,在其成员函数SetParent中添加代码如下:VoidSetParent(CTalkDlg*pDlg){m_pDlg=pDlg;}(8)在CMySocket类中添加OnConnect,OnClose,OnReceive函数,添加如下代码:m_pDlg->OnConnect(),m_pDlg->OnClose(),m_pDlg->OnReceive();(9)将程序头文件添加到套接字类中,代码为:#include“TalkDlg.h〞;(10)向CTalkDlg中添加套接字的变量对象,对话框需要一个用于连接套接字,向CTalkDlg类中添加变量m_sConnectSocket,类型为CMySocket,对对话框进行初始化,即在OninitDialog中参加以下代码:m_cmbType.SetCurSel(1);//m_strServName=〞〞;//初始化端口为4000m_nServPort=4000;UpdateData(False);m_sConnectSocket.SetParent(this);(11)开始建立发送端和接收端的连接,双击对话框的“连接〞,对于单机连接按钮事件添加如下代码:UpdateData(True);m_sConnectSocket.Create();//连接效劳器m_sConnectSocket.Connect(m_strServName,m_nServPort);(12)为了完成连接,需要添加套接字事件处理函数,如下为具体代码:VoidCTalkDlg::OnConnect(){ GetDlgItem(IDC_EDIT_MSG)->EnableWindow(True); GetDlgItem(IDOK)->EnableWindow(True);GetDlgItem(IDC_STATIC_MSG)->EnableWindow(True);GetDlgItem(IDC_BTN_CLOSE)->EnableWindow(True);}(13)现在已经连接好了,但不能实现通讯,把相应的消息添加到相应的列表框中,双击“发送〞按钮,添加如下代码:IntnLen;IntnSent;UpdateData(True);If(!m_strMsg.IsEmpty()){ nLen=m_strMsg.GetLength(); nSent=m_sConnectSocket.Send((LPCTSTR)m_strMsg,nLen); if(nSent!=SOCKET_ERROR) { M_listSent.AddString(m_strMsg); UpdateData(False); } Else { AfxMessageBox(“消息发送错误〞,MB_OK|MB_ICONSTOP); } m_strMsg.Empty(); UpdateData(False);}(14)当套接字的OnReceive事件被触发,说明一个消息已经能够收到。在OnReceive函数中添加如下代码:Char*pBuf=newchar[1025];IntnBufSize=1024;IntnReceived;CStringstrReceived;nReceived=m_sConnectSocket.Receive(pBuf,nBufSize);if(nReceived!=SOCKET_ERROR){ pBuf[nReceived]=NULL; strReceived=pBuf; m_listReceived.AddString(strReceived); UpdateData(False);}Else{ AfxMessageBox(“消息发送错误〞,MB_OK|MB_ICONSTOP);}(15)发送、接收都实现。在CTalkDlg类中添加函数OnClose()函数,添加如下代码:M_sConnectSocket.Close();GetDlgItem(IDC_EDIT_MSG)->EnableWindow(Flase);GetDlgItem(IDOK)->EnableWindow(Flase);GetDlgItem(IDC_STATIC_MSG)->EnableWindow(Flase);GetDlgItem(IDC_BTN_CONNECT)->EnableWindow(Flase);GetDlgItem(IDC_BTN_CLOSE)->EnableWindow(Flase);While(m_listSent.GetCount()!=0) M_listSent.DeleteString(0);While(m_listReceived.GetCount()!=0) M_listReceived.DeleteString(0);If(m_cmbType.GetCurSel()==1){ GetDlgItem(IDC_BTN_CONNECT)->EnableWindow(True);GetDlgItem(IDC_EDIT_SERVNAME)->EnableWindow(True);GetDlgItem(IDC_EDIT_SERVPORT)->EnableWindow(True);GetDlgItem(IDC_STATIC_SERVNAME)->EnableWindow(True);GetDlgItem(IDC_STATIC_SERVPORT)->EnableWindow(True);GetDlgItem(IDC_COMBO_TYPE)->EnableWindow(True);}(16)双击“断开〞按钮,添加如下代码:VoidCTalkDlg::OnBtnClose(){ OnClose();}(17)编译运行调试程序。4.3上位机PC界面上位机PC端界面如图4-3所示,显示了连接、断开、数据采集等按钮功能,并显示了效劳器IP地址,端口号等,采集到的数据将会显示在信息文本框中。图4-3PC上位机客户端界面5实验与调试5.1网络通信测试利用Windows自带的Ping命令,来检测网络是否连通,验证与PC机的连接情况。在安装了TCP/IP协议的前提下,运用Ping命令来测试系统在以太网中的通信情况。在程序中,把网络数据采集终端单片机系统网卡的IP地址设置为192.168.1.25,待系统运行正常后,在PC机上翻开命令提示符,运行pingl92.168.1.25。5.2系统调试通过Ping命令显示了网络数据采集终端与上位机之间建立了一条正常的通信路径,实现了网络通信要求。上位机程序通过界面上的开始采集按钮发送控制命令,网络数据采集终端单片机系统收到命令后就启动数据的采集与上传。首先,利用2个交换机和网线将网络数据采集终端和PC机相连接,输入IP地址5,端口号4000,点击“连接〞按钮,系统信息窗口会有提示信息出现,如果连接效劳器成功,“断幵〞按钮由无效变为有效。PC机上的用户界面显示如图5-1所示的信息。连接成功后点击“幵始釆集〞按钮并发送“$〞命令到单片机终端,终端幵始釆集数据并通过以太网将数据上传到上位机,在用户界面中显示如图5-2所示的信息。图5-1客户端连接效劳器图5-2客户端数据采集结果5.3遇到的问题讨论在进行系统调试过程中,由于受到各方面条件限制以及因素影响,遇到了一些问题在此予以讨论。(1)网络通信刚开始建立成功比拟难,经过屡次尝试后才找到问题原因,并通过各方面的帮助,最终解决了通信问题;(2)客户端的设计实际上就是一个WindowsSocket通信的过程,但由于对套接字不是很熟悉,因此建立通信过程花了很长时间;(3)数据来源于传感器,其他外部电路的设计此处没有作介绍;(4)单片机网络通信的其他方式值得继续研究,以比拟通信的准确度和稳定性等。6总结与展望6.1全文总结本文通过对查阅文献和相关资料,在老师的指导下完成了基于网络通信的数据采集和上位机软件设计。并以单片机、网卡芯片、PC机为硬件条件,实现了数据采集和网络传输及PC机显示,本文研究具有重要的实践意义。总结全文,主要完成了以下工作:(1)对基于网络通信的数据采集系统进行了理论研究,主要包括其国内外研究现状、根本原理以及根本方法。本文提出了单片机网络智能化的两种连接方法,并介绍了两种方法的简单实现过程。(2)对基于网络通信的数据采集系统进行了设计实现。针对第一种连接方法,参加网卡芯片,实现单片机网络连接,本文介绍了单片机数据采集工作模式]发送端程序设计以及网卡芯片模块ZNE-100的介绍与使用,并对其进行软件配置,实现与PC机网络通信的中间传输媒介。(3)设计了网络通信数据采集系统的上位机软件。上位机与单片机之间的通信采用TCP/IP协议,并以ZNE-100为传输媒介,本局部内容介绍了TCP/IP协议核心,并设计开发了上位机数据监控和显示应用程序软件,能够通过发送和接收数据实现对单片机系统的智能化监测和控制,真正实现了单片机连接网络。(4)对网络通信数据采集系统进行了实验调试,并给出了实验结果,上位机软件显示了接收到的数据,并对调试以及程序设计中遇到的各种问题进行了讨论。6.2工作展望本文的研究工作取得了一定的成绩和结果,但是在实验后发现本文还具有很多缺乏之处需要不断改良和完善,具体地,可从以下几方面对网络数据采集系统进行研究:(1)对网络通信数据采集系统进行更深一步的理论研,基于网路的数据采集方法很多,本文只是涉及到了其中的一种,还有很多更高效稳定的方法需要进一步研究和实验;(2)对数据采集系统进行硬件局部设计,主要是指采用其他更加智能化的嵌入式系统设备,比方以单片机LM3S6938位控制器核心,设计具体硬件电路,包括A/D转换、网络接口电路等,而不是直接采用ZNE-100智能化网卡模块;(3)对上位机监控程序和软件进一步完善和优化,上位机程序的设计相比照拟简单,关键在于根据相应协议实现通信,上位机软件可以增加数据处理模块,实现对数据进行统计、自动操作、输出打印等功能,进而实现比拟完美的上位机显示和监控。参考文献[1]徐辉.基于Internet技术的嵌入式数据采集与控制系统的研究[J].现在电子技术,2023:26-32[2]周斌,李文印.利用E-Link扩展单片机的网络接口功能[J].吉林大学学报,2003:35-38[3]伯英,于海勋.现代控制工程[M].电子工业出版社,2000.5:14-15[4]张雄伟,陈亮,徐光芒.DSP芯片的原理与开发应用第三版[M].电子工业出版社,2003.2:8-10[5]田应军,刘昌玉.数据采集系统的开发与设计[J].华中科技大学,2007.6:4-6[6]调林.数据采集与分析技术[M].西安电子科技大学出版社,2005.7:16-18[7]李运涛,王庸贵.一种实时数据采集系统网络接口设计[J].计算机测量与控制,2005.12:7-10[8]任泰明.TCP/IP协议与网络编程[J].西安电子科技大学出版社,2004.4:22-23[9]何轩,夏应清,李祥.一种嵌入式系统以太网接口的设计与实现[J].微型与应用,2023.1:12-13[10]吴胜昔,路东听,赵霞.基于嵌入式TCP/IP协议的数据采集器[J].微型电脑应用,2006.22 (1):28-31[11]王兰,王景存,杨君.单片机系统接入Internet方法的探讨[J].电子技术,2002(8):32-34[12]梦涛.单片机上的Internet网[M].长江大学学报,2001.5:19-21[13]潭浩强.C程序设计第二版[M].清华大学出版社,2005:11-13[14]周康.基于网络的数据采集系统设计[D].长江大学,2023:6-9[15]梁海波.基于网络通信的嵌入式数据采集系统的研究[D].哈尔滨:哈尔滨工程大学,2023:4-5[16]杨苏飞.基于DSP的微机保护实验教学系统的上位机软件设计与实现[D].成都:西南交通大学,2023:26-28附录单片机发送端程序发送主程序:ORG0023HAJMPACINTORG8030HMOVTMOD,#20HMOVTL1,#0F3HMOVTH1,#0F3HSETBEACLRESMOVPCON,#00HSETBTR1MOVSCON,#40HMOVSBUF,#40HSOUT1:JNBT1,$ CLRT1MOVSBUF,#00HSOUT2:JNBT1,$CLRT1MOVSBUF,#40HSOUT3:JNBT1,$CLRT1MOVSBUF,#1FH MOVDPTR,#4000H MOVR7,#20H SETBESAHALT:AJMP$中断效劳程序:ORG8100HACINT:MOVXA,@DPTRCLRT1MOVSBUF,ADJNZR7,AENDCLRESCLRTR1AEND:INCDPTRRET1上位机软件设计对套接字添加处理函数,在其成员函数SetParent中添加代码如下:VoidSetParent(CTalkDlg*pDlg){m_pDlg=pDlg;}在CMySocket类中添加OnConnect,OnClose,OnReceive函数,添加如下代码:m_pDlg->OnConnect(),m_pDlg->OnClose(),m_pDlg->OnReceive();将程序头文件添加到套接字类中,代码为:#include“TalkDlg.h〞;上位机连接程序:向CTalkDlg中添加套接字的变量对象,对话框需要一个用于连接套接字,向CTalkDlg类中添加变量m_sConnectSocket,类型为CMySocket,对对话框进行初始化,即在OninitDialog中参加以下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 荒山承包合同范文
- 餐厅卫生管理制度文库
- 西式面点专业管理制度
- 银行存款收入管理制度
- 预算绩效管理制度培训
- 销售客户开发管理制度
- 规范完善医院管理制度
- 辐射人员体检管理制度
- 车间考勤打卡管理制度
- 跨境资金结算管理制度
- 抖音火花合同电子版获取教程
- 湖北省武汉市东湖高新区2023-2024学年五年级下学期期中英语试题
- 《天文学上的旷世之争》 统编版高中语文选择性必修下册
- 2024年青海省电力交易员竞赛选拔考试题库(含答案)
- 病毒性脑膜炎护理
- 高中名著导读社团课《红与黑》 课件
- 2025年4月自考00808商法押题及答案
- 信阳职业技术学院单招《职业技能测试》参考试题库(含答案)
- 国旗护卫工作总结
- 2024年河南艺术职业学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 冠心病合并糖尿病课件
评论
0/150
提交评论