




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、题目:基于网络通信的数据采集上位机软件设计 基于网络通信的数据采集上位机软件设计 摘要随着网络技术的快速发展,基于网络通信的数据采集系统得到了大量应用,本文在查阅文献的基础上提出了基于网络通信的单片机数据采集系统,通过网卡终端以及 tcp/ip协议实现了单片机与 pc 机之间的网络通信,本文研究具有较强的工程背景和实际价值,本文在主要工作如下:(1)进行了基于网络通信的数据采集系统理论研究,主要包括数据采集的基本原理和基本方法,并提出了两种单片机连接网络的实现方法。(2)研究了网络通信的数据采集实现过程,对单片机数据采集到网络传输进行了模式设计,并设计了单片机发送程序以及网卡芯片配置,以实现单
2、片机网络连接;(3)设计了网络通信数据采集系统上位机软件。基于 tcp/ip 协议以及 windows socket方法,在 visual studio 平台上开发出了单片机网络通信数据采集系统上位机软件,实现了数据采集和显示;(4)对数据采集系统进行了实验和调试,并提出了期间遇到的各种问题,最后对全文的内容进行了总结和工作展望。关键词关键词:数据采集系统;网络通信;tcp/ip 协议;上位机data acquisition host computer system software design based on network communicationabstractwith the r
3、apid development of network technology, data acquisition system based on network communication is to get a large number of applications, is proposed in this article refer to the literature on the basis of the single-chip microcomputer data acquisition system based on network communication, through t
4、he network card in the end, and the tcp/ip protocol realized the network communication between mcu and pc, this paper has strong engineering background and the actual value, based on the main work is as follows:(1) the data acquisition system based on network communication theory research, mainly in
5、cluding the basic principle of data acquisition and basic methods, and puts forward the method to realize the two single-chip computer to connect to the internet.(2) studies the data acquisition network communication realization process, single-chip microcomputer data acquisition to network transmis
6、sion for the pattern design, and design the single-chip computer router chip configuration and the network card, in order to realize the single chip microcomputer network connection;(3) designed the network traffic data collection system of upper machine software. method based on tcp/ip protocol and
7、 windows sockets, in visual studio platform developed by single chip microcomputer pc software, network communication data acquisition system has realized the data acquisition and display;(4) the data acquisition system for the experiment and debugging, and put forward the problems encountered durin
8、g the period of, finally, the full text is summarized and the content of the work.key words: data acquisition system; network communication; tcp/ip protocol; the upper machine目录1 引 言 .1 1.1 课题研究背景和研究意义 .1 1.2 数据采集系统发展现状 .1 1.3 论文主要研究内容 .22 基于网络通信数据采集系统基本原理和方法 .4 2.1 基于网络通信数据采集系统基本原理 .4 2.2 基于网络通信数据采
9、集系统基本方法 .43 基于网络通信的数据采集实现 .6 3.1 数据采集工作模式 .6 3.2 单片机发送端程序设计 .6 3.3 网卡芯片模块 .7 3.4 网卡芯片软件配置 .104 上位机软件设计 .11 4.1 tcp/ip 协议.11 4.2 数据传输程序设计 .11 4.3 上位机 pc 界面 .175 实验与调试 .18 5.1 网络通信测试 .18 5.2 系统调试 .18 5.3 遇到的问题讨论 .196 总结与展望 .21 6.1 全文总结 .21 6.2 工作展望 .21参考文献 .22致 谢 .23附 录 .241引 言1.1 课题研究背景和研究意义数据采集是通过查看
10、数据库中存储的大量数据来发现有意义的数据以及新的数据关系、模式以及趋势等,使用模式识别技术,实现精确的统计过程。数据采集系统是结合基于计算机测量软硬件产品来实现灵活的、用户自定义的测量系统。随着网络 internet技术的快速发展,网络通信传输在数据采集方面也起到了重要作用。目前 internet 技术主要用于信息交流,比如说 e-mail、购物、聊天、web 浏览等,以及进一步发展的电子商务等等,这些技术方式仅仅只是停留在了企业与企业或者企业与个人或个人之间的信息交换上,而我们对于网络的理解也因此不够充分,实际上,网络技术已经在很大程度上应用到了公园控制等领域,时刻影响着我们的生活和环境。【
11、12】生活中很多数据经过现场采集后一定的方式传输到远程端,比如通过接收卫星云图数据我们可以预测未来几天的天气情况,而卫星数据经过获取后是通过了一定的方式和协议传输到了地球上,然后经过处理才得以显示出来,这也可以说是一种网络传输。在工厂车间,很多情况下,数据采集都能通过各种传感器检测得到,然后经过单片机处理得到实际数据,若是将单片机系统连接上网络 internet,则可以在远程位置获得信息数据。而如何让这些电子设备和 internet 连接起来,以便于人们能够远程获得这些电子设备的信息并控制它们运行,已成为了目前国内外共同关注的焦点。【1】随着电子和信息技术的高速发展,通过软件方式或者硬件方式将
12、 tcp(udp)/ip 协议嵌入到单片机系统已经成为可能,网络化的智能单片机以及智能化的传感器等研究,是国内外竞相抢占制高点的前沿技术之一。本文针对基于网络通信的数据采集技术进行研究,包括工作原理、工作方法以及具体的发送接收方式实现,对于电子设备网络化,实现远程监测和控制设备仪器的运行等方面具有重要意义。1.2 数据采集系统发展现状数据采集系统始于 20 世纪 50 年代,美国为了实现在军事测试中不依靠相关的测试文件,由非熟悉人员进行操作,并且测试任务由测试设备高速自动完成,而研发了用于军事上的数据采集系统。大约在 60 年代后期,国外用于专用系统的成套数据采集设备进入市场。70 年代中后期
13、,诞生了以采集器同计算机融为一体为代表的数据采集系统,该系统超过了传统的自动检测仪器和专用数据釆集系统。20 世纪 80 年代随着计算机的普及和发展,数据采集系统空前发展,工业计算机、单片机和大规模集成电路的组合,使系统的成本、体积减小,功能成倍增加,数据处理能力逐步加强。【15】该时期己开始出现通用的数据釆集与自动检测系统。一般来说,数据采集系统分为两类:一类是由通用接口总线和计算机、仪器仪表和采集器等构成,如国际标准 ice625 (gpib)接口总线系统;另一类由标准总线和计算机、数据采集卡构成,如 etd 总线系统。20 世纪 90 年代以来,国际上一些技术先进的国家,数据采集系统已在
14、井下作业、石油开采、现场实时监控和航空技术等领域被广泛应用,出现了高性能、高可靠性的单片机数据采集系统,如有的 das产品精度可以达到 24 位,甚至有的 das 产品速度可以达到每秒几亿次以上。【14】现阶段的数据采集系统采用更先进的模块化结构,根据不同的应用需求,运用简单的增加和更改模块的方法,与系统编程相结合就可扩展或修改系统,最终迅速组建成一个新的系统。由于屏蔽性、高密度、针孔式的连接器和卡式模块的应用,使其稳定性及可靠性得到充分保障,但其昂贵的价格阻碍了它在自动化领域的普及。目前,以 internet 为代表的计算机网络通信的发展和应用取得了空前的突破,网络化采集和控制技术也随着网络
15、技术的发展而迅速成长。基于网络通信的数据采集系统应运而生,且在计算机网络技术发展背景下,表现出了空前的发展势头,具有采集效率高、采集实时性高、便于收集和整理数据等特点,对于各行工业领域的数据采集都具有非常重要的意义。随着 it 技术和互联网技术的飞速发展,为保障用户的投资,适应未来技术发展的趋势,施耐德电气公司第一个推出了应用于工业控制领域的、开放的 tcp/ip 以太网、modbus tcp/ip 协议,该技术采用了 it 行业广泛应用的 tcp/ip 协议,底层协议釆用开放的 modbus,第一次真正地的实现了 it 网络和工业数据采集与控制网络的融为一体,使用户彻底摆脱了各种行业的工业数
16、据采集与控制网络的限制和束缚,从而进入了工业控制领域的一种新境界。【3】电子信息技术的高速发展,通过软件或硬件方式可以将 tcp (udp) /ip 协议嵌入到单片机。目前网络智能化单片机在国内外占据前沿地位,而近几年交换式以太网技术的出现更大程度的提高了以太网的确定性,利用交换技术,将一个较大的网络分隔成为各个相对独立的冲突域,使冲突只能在一个相对较小的区域内发生,这样就大大地减小了冲突发生的概率,从而提高了网络的实时性和确定性。【2】以太网所显示的优势,使其能够满足数据采集及控制对实时性、抗干扰性、可靠性的严格要求,它己经被证明是未来数据采集与控制网络的最佳解决方案,其应用于现场设备监控也
17、是控制网络发展的趋势。 1.3 论文主要研究内容本文通过查阅文献资料,在现有条件的基础上,开发设计出了单片机的网络通信数据采集系统,并实现了上位机界面设计,本文研究具有较强的工程背景和应用价值,具体研究内容包括:(1)基于网络通信的单片机数据采集系统基本原理和基本方法研究。随着网络技术的发展,单片机的网络智能化得到大量的应用,本文单片机连接网络 internet 的基本原理进行了研究,并提出了具体的连接方法;(2)基于网络通信的单片机数据采集系统实现。主要包括单片机数据采集的工作模式、单片机发送程序设计、中间传输媒介网卡芯片模块的配置与设计等;(3)基于网络通信的数据采集系统上位机软件设计。单
18、片机与上位机之间通过 tcp/ip协议实现了网络通信,本部分对 tcp/ip 协议进行了研究,并在此基础上通过 windows socket 套接字实现了网络通信,设计了上位机数据采集软件;(4)对数据采集系统进行了试验调试,并分析了过程中遇到的各种问题以及解决方法,对全文工作内容进行了总结和展望。2 基于网络通信数据采集系统基本原理和方法基于网络通信的数据采集系统分为硬件部分和软件部分,硬件部分实现模拟量数据采集,包括数据采集终端、网络传输通道、上位机等构成。本文对于具体的硬件采集电路不做具体研究,以单片机作为媒介,实现单片机与计算机之间的网络通信。本章将具体分析数据采集系统的基本原理和基本
19、方法,为第三章数据采集系统工作模式做好铺垫。2.1 基于网络通信数据采集系统基本原理实现单片机系统接入网络 internet 这种方式并不复杂,现有的互联网设施已为我们提供了现成的中间传输媒介,我们只需要将单片机与这些中间的传输媒介连接上就可以使系统介入 internet 了。【11】但是,要将单片机系统接入到 internet 中必须从以下两方面进行工作:一是在硬件上,给数据采集系统的主控制器即单片机加上一个网络接口;二是在软件上提供单片机与远程计算机通信的通信协议。当给一个系统配上一个以太网网卡芯片,并提供相应的tcp/ip 协议和 ieee802.3 协议时,这个系统就可以通过以太网连接
20、上 internet;当给一个系统配上一个 dte/dce 接口设备,并提供相应的 tcp/ip 协议和 ppp 协议,那么这个系统就可以通过 modem 连接 internet;当给一个系统配上具有无线收发功能的网络接口rf,并提供相应的 tcp/ip 协议和 ieee802.11 协议,那么这个系统就可以通过无线方式连接 internet。由此可知,如果要想让单片机系统连接上 internet,其关键是实现网络通信接口并提供相应的网络协议。【9】2.2 基于网络通信数据采集系统基本方法目前来说,有两种方法可以实现单片机系统连接网络,具体分别叙述如下:(1)利用网络控制器/网卡(nic)实现
21、网络接口,然后由单片机来提供相应的通信协议。比如,将单片机与网卡 zne-100 模块组合在一起,zne-100 模块内部集成了 tcp/ip 协议栈,这样就可以轻松实现嵌入式设备的网络通信和传输功能。采用这种方法的成本非常低廉,但是其软件设计比较复杂。然而,对于 zne-100 网卡模块接口,并不需要像计算机那样提供全套的网络通信协议,只需要根据特定的应用要求,提供一个 tcp/ip 协议族的子协议集即可。【7】(2)利用具有协议栈结构的芯片和 phy(phyceiver 物理层的接收器)来实现网络接口,主控器只负责向协议栈结构芯片的某个寄存器里存放适当的数据。在这种方法中,网络协议是根据协
22、议栈结构的芯片硬件实现的。目前这种芯片有美国 seiko instruments 公司生产的 ichip s7600a 芯片,韩国 wiznet 公司生产的 i2chip w3100a 芯片等。在这里,我们以 i2chip w3100 为例来说明这类芯片的硬件结构是如何实现网络协议的。图 2-1 w3100 芯片硬件结构w3100 芯片结构示意图如图 2-1 所示,其中分为四个部分:与单片机接口部分(mcu interface)、协议引擎(protocol engine)、存储器(dpram)和 mii 接口部分。其中 mii接口部分接 phy。实现网络协议的部分主要是靠其协议引擎,在其内部结
23、构中具有以下一些与网络协议相关的寄存器:命令寄存器 c-cr,它的各位分别表示系统初始化、通道socket 初始化、建立连接、侦听、接收、发送、关闭等命令。具体地,将某一位置 1 就可以发出相应的命令。c-dir 为目的 ip 地址寄存器,c-dpr 为目的端口地址寄存器,c-tosr 为服务类型寄存器,对应于 ip 报头的 tos 字段,c-ipr 为 ip 协议寄存器,对应于ip 报头的协议字段,cspr 为源端口寄存器,c-ssr socket 为状态寄存器,gar 为网关地址寄存器,smr 为子网屏蔽寄存器,shar 为源硬件地址寄存器,sipr 为源 ip 地址寄存器等。在这些硬件寄
24、存器上,程序开发人员只需要将相应的数据存入这些寄存器中,并按照一定的顺序开启相应的命令,那么就可以按照标准协议连接上网络了。而且芯片开发商还提供了芯片的软件开发包,设计者只需要调用其中的函数即可实现网络通信。由此可见,这种方法设计简单,使用方便,但是其价格一般都比较昂贵。【4】本文将根据第一种方法,将单片机与网卡芯片 zne-100 模块进行组合,然后建立相应的通信协议,实现单片机网络智能化,与 pc 机远程通信。3 基于网络通信的数据采集实现3.1 数据采集工作模式数据采集系统主要分为两个部分:一是单片机终端数据发送部分,完成数据的发送功能;二是 pc 机端数据的接收部分,实现通过网络连接接
25、收单片机终端发送的数据,并在 pc 机上显示数据、处理数据,以监测和控制相应的执行机构。【5】数据采集系统工作模式如图 3-1 所示:图 3-1 数据采集系统工作模式由图可知,单片机发送数据后,经过网卡芯片以及相应的网络协议,通过网络方式被 pc 机端结构,然后显示在 pc 机上,经过数据处理后作为参考,以监测和控制远程部分。3.2 单片机发送端程序设计(1)mcs-51 单片机串行通信工作方式mcs-51 单片机共有四种串行通信工作方式,分别成为方式 0、1、2、3。其中方式 0是把串行口作为同步移位寄存器使用,这时以 rxd(p3.0)端作为数据移入的入口和出口,而由 txd(p3.1)作
26、为提供移位脉冲的端口。【13】方式 1 是 10 位为一帧的异位串行通信方式,方式 2 是 11 位为一帧的串行通信方式,方式 3 通信方式也是 11 位为一帧的串行通信,其过程与方式 2 相同,但不同的是其波特率。(2)单片机发送端程序发送主程序:org 0023hajmp acintorg 8030hmov tmod,#20hmov tl1,#0f3h单片机终端网卡芯片pc 机接收数据并显示internet 网络mov th1,#0f3hsetb eaclr esmov pcon,#00hsetb tr1mov scon,#40h ;置串行口工作与方式 2,允许接收mov sbuf,#40
27、hsout1: jnb t1,$ clr t1 ;t1 清零 mov sbuf,#00hsout2: jnb t1,$ clr t1 ;t1 清零 mov sbuf,#40hsout3: jnb t1,$ clr t1 ;t1 清零 mov sbuf,#1fh ;启动发送 mov dptr,#4000h mov r7,#20h setb es ;启动 esahalt:ajmp $中断服务程序: org 8100hacint: movx a,dptr clr t1 ;t1 清零 mov sbuf,a ;启动发送 djnz r7,aend clr es ;禁止串行中断 clr tr1 ;启动 t1
28、aend: inc dptr ret13.3 网卡芯片模块(1)zne-100 网卡芯片介绍zne-100 是广州致远电子有限公司开发的一款工业级嵌入式网络模块,它内部集成了tcp/ip 协议栈,用户利用它可以轻松实现嵌入式设备的网络功能,不需要了解复杂的网络知识以及 tcp/ip 协议,节省人力物力和开发时间,使产品更快的投入市场,增强竞争力。该产品用于串口与以太网之间的数据传输,可方便的为串口设备增加以太网接口。可用于串口设备与 pc 机之间,或者多个串口设备之间的远程通信。具有以下产品特性:serial (ttl)接口转 10m ethernet 接口,serial 最大波特率为 115
29、200 bps;可利用 web browser 和 windows utility 轻松进行设定;tcp server、udp server 作业模式;支持动态(dhcp)或静态获取 ip 地址;尺寸小(4431.5mm)。具有 32 位 arm7 cpu,16kb ram,128kb flash,10m 以太网接口(使用排针方式引出),1.5kv 电磁隔离,串口 ttl 电平方式,波特率 300115200 bps,串口任意校验,串口数据位 5、6、7、8 可设定,串口停止位 1、2 位可设定, 支持 tcp/ip 协议包括:ethernet、arp、ip、icmp、udp、tcp、http
30、、dhcp,工作方式可选择为 tcp server 或 udp server,工作端口可设定,可使用配置工具 znetcom utility for windows98/me/nt/2000/xp 进行配置,输入电压 5v dc,功耗低,最大工作电流 90 ma等。(2)zne-100 模块硬件电路如图 3-2 所示为 zne-100 的模块硬件电路,可知其具有两排外引管脚,左边一排是12 针,右边是 11 针,分别编号 123。此外,zne-100 模块上具有三个孔,用于恢复出厂设置和升级固件。图 3-2 zne-100 模块电路图表 3-1 zne-100 模块管脚定义引脚意义引脚意义1e
31、thernet tx+2ethernet tx-23保留3ethernet rx+22保留4ethernet rx+21保留5连接显示 led20保留6txd19ehter_txd_led7rxd18保留8485_txd_en17保留9保留16保留10nrst 模块复位15ehter_rxd_led11gnd14vcc(+5v dc)12gnd13vcc(+5v dc)表 3-1 所示为 zne-100 网卡芯片模块的具体引脚定义,其中 ethernet tx+、ethernet tx-、ethernet rx+、ethernet rx-管脚是以太网信号端口,txd、rxd 是串口信号端口,管
32、脚 5、16、19 为 led 信号口,方向为输出,485_txd_en 是 rs485 发送控制端,方向为输出,保证 rs485 半双工传输,发送数据时为高电平,接收数据时为低电平,nrst 为模块复位脚,低电平有效,在该引脚输入一个大于 20us 的负脉冲即可实现模块复位(其中模块内部有上电复位电路,该管脚可以悬空) 。(3)zne-100 模块评估板zne-100 模块评估板如图 3-3 所示,其中指示了各个按钮的功能和作用,模块评估板可以直接用作网卡芯片,连接到单片机上实现网络通信。图 3-3 zne-100 模块评估板3.4 网卡芯片软件配置在对 zne-100 进行模块软件配置之前
33、,需要保证用户的 pc 机内具有以太网卡,而且 pc 机与 zne-100 模块需要在同一个网段内。zne-100 模块在生产厂家出厂时设定了一个默认的 ip 地址(78)和网络掩码(),用户需要计算判断 pc 机是否与模块在同一网段,判断公式为:用户 pc 机 ip 地址比上 pc 机网络掩码,看其是否等于 zne-100 模块的 ip 地址比上模块的网络掩码。如果不想等,则需要修改 pc 机 ip 地址,方法是:首先进入操作系统,然后使用鼠标点击任务栏的开始设置控制面板(或在我的电脑里面直接打开控制面板),双击网络和拨号连接(或网络连接)图标
34、,然后单击选择连接 zne-100 模块的网卡对应的本地连接,单击右键选择属性,在弹出的常规页面选择internet 协议(tcp/ip),查看其属性。选择使用下面的 ip 地址,并填入 ip地址 5,子网掩码 ,默认网关 (dns 部分可以不填)。点击该页面的确定及本地连接属性页面的确定,等待系统配置完毕。【16】此后,配置了 pc 网关,即可对其进行模块软件配置。首先安装厂家给的配置软件,然后根据安装好的配置软件进行配置,具体过程可以查阅 zne-100 使用手册,此处不予详述。4 上位机软件设计4.1 tcp/ip 协
35、议tcp/ip 协议是 transmission control protocol/internet protocol 的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是 internet 最基本的协议、internet 国际互联网络的基础,由网络层的 ip 协议和传输层的 tcp 协议组成。tcp/ip 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了 4 层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。通俗而言:tcp 负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而 ip 是给因特网的
36、每一台电脑规定一个地址。tcp/ip 协议有底层和上层之分,底层协议规定了计算机硬件的接口规范,上层协议规定了软件程式必须共同遵守的一些规则以及程序员在写程式时使用的统一标准。tcp/ip 共有 100 多个协议,其中用得最多的包括 smtp(电子邮件协议)、ftp(文件传输协议)、telnet(远程登陆协议)等。tcp/ip 网络层协议的核心是 ip 协议,ip 协议具有两个重要特点,一是提供五连接的数据报传输机制,虽然不能保证传输的可靠性却简单有效,二是提供在同一物理网络中的对点通信,决定一条从信源机到信宿机的传输路径。ip 协议的主要功能是 ip 数据报传送以及 ip 路由选择,交换的数
37、据被封装在若干个 ip 包中,在每一个 ip 包的报文件中都包含有源机器 ip 地址、目的机器 ip 地址、校验和以及其他的一些信息。校验和是根据 ip 报文中的数据计算出来的,ip 包的接收方可以根据它来判断报文在传输过程中是否由于传输线路噪音等原因而受到破坏。【8】tcp 是一种面向连接的传输层协议,它可以提供可靠性高的服务。通过使用序列号和确认信息,tcp 协议能够向发送方提供到达接收方数据包的传送信息。当传送过程中出现数据包丢失的情况时,tcp 协议可以重新发送丢失的数据包直到数据成功到达接收方。当出现网络超时时,tcp 协议还可以识别重复信息,丢弃不需要的多余信息,使网络环境得到优化
38、。如果发送方传送数据的速度大大超过了接收方接收数据的速度,那么tcp 协议又可以采用数据流控制机制来减慢数据的传送速度,协调发送和接收方的数据响应。而与其并列的 udp 协议(user datagram protocol 用户数据报协议)是五连接的,但它传输速度快,传输效率高,特别适合一次传输少量报文,udp 直接建立在 ip 协议之上,相对于 tcp 协议来说简单得多。【10】总之,ip 的工作就是把原始数据从一地传送到另一地,tcp 的工作就是管理这种流动并确保其数据是正确的。4.2 数据传输程序设计本文利用 vc+程序的 mfc 框架建立数据传输协议,采用客户端/服务器模式建立通信,其中
39、服务器端和客户端程序基本相同,不同的是选择的通信套接字。【6】pc 机的程序流程图如图 4-1 所示。初始化 pc 机后,创建网络连接,查看网络是否正常,当网络处于正常工作状态时,pc 机向网络数据釆集终端单片机发送 $指令,当单片机接收到该指令后,读取 a/d 转换的结果,通过网络传输给 pc 机,pc 机接收该数据后,读取并显示接收到得数据,查看数据是否接收完,若接收完,再次等待接收网络传输来的数据,如此循环的接收并显示数据。 n y nnnnnn y图 4-1 pc 机程序设计流程下面讲述客户端的具体建立过程:(1)基于 visual studio 平台,建立基于对话框和 windows
40、 sockets 的通信工程。socket 函数采用客户/服务器的通信机制来实现网络之间的连接和数据交换,在 tcp/udp测试环境下进行客户端通信程序设计。socket 函数建立指定的地址格式、数据类型和协议下的套接口,地址格式为 af_inft (唯一支持的格式),数据类型 socket_stream 表 开始 初始化 创建网络连接 网络是否正常?发送”$”指令pc 机接收数据读取并显示接收到的数据数据是否接收完?示建立流式套接口。socket 的通信流程图如图 4-2 所示所示。 (a)服务器端/网络采集终端 (b)客户机端/pc 机图 4-2 socket 套接字通信流程(2)在生成的
41、对话框中选择一些适当的空间如按钮、文本框、ip 工具等,做好数据接收界面;(3)利用 class wizard 为对话框中各个控件添加好相应的控件变量;(4)打开 class wizard 对话框,确定 class name 为 ctalkdlg,object ids 是idc_combo_typem,选择 message 为 cbn_selchange;(5)为了应用程序能够获得并响应 socket 事件,应该创建用户从 casyncsocket 类继承的派生类。选择 insert/new class,创建新类 cmysocket,选择基类为 casyncsocket;(6)向派生类中添加成
42、员变量,用作指向父对话框的指针,类型为 ctalkdlg*,变量名为 m_pdlg。并添加成员函数 setparent(ctalkdlg *pdlg)。(7)对套接字添加处理函数,在其成员函数 setparent 中添加代码如下:yn 开始创建 socket 连接接受、分析命令是否开始采集 启动数据采集发送数据 开始发送控制命令 创建 socket 连接 处理数据 接收数据ynvoid setparent(ctalkdlg *pdlg)m_pdlg=pdlg;(8)在 cmysocket 类中添加 onconnect,onclose,onreceive 函数,添加如下代码:m_pdlg-onc
43、onnect(),m_pdlg- onclose(),m_pdlg-onreceive();(9)将程序头文件添加到套接字类中,代码为:#include “talkdlg.h”;(10)向 ctalkdlg 中添加套接字的变量对象,对话框需要一个用于连接套接字,向ctalkdlg 类中添加变量 m_sconnectsocket,类型为 cmysocket,对对话框进行初始化,即在 oninitdialog 中加入以下代码:m_cmbtype.setcursel(1);/初始为 5m_strservname=” 5”;/初始化端口为 4000m_nse
44、rvport=4000;updatedata(false);m_ sconnectsocket.setparent(this);(11)开始建立发送端和接收端的连接,双击对话框的“连接” ,对于单机连接按钮事件添加如下代码:updatedata(true);m_sconnectsocket.create();/连接服务器m_ sconnectsocket.connect(m_strservname,m_nservport);(12)为了完成连接,需要添加套接字事件处理函数,如下为具体代码:void ctalkdlg:onconnect()getdlgitem(idc_edit_msg)-ena
45、blewindow(true);getdlgitem(idok)-enablewindow(true);getdlgitem(idc_static_msg)-enablewindow(true);getdlgitem(idc_btn_close)-enablewindow(true);(13)现在已经连接好了,但不能实现通讯,把相应的消息添加到相应的列表框中,双击“发送”按钮,添加如下代码:int nlen;int nsent;updatedata(true);if(!m_strmsg.isempty()nlen=m_strmsg.getlength();nsent=m_sconnectsoc
46、ket.send(lpctstr)m_strmsg,nlen);if(nsent!=socket_error)m_listsent.addstring(m_strmsg);updatedata(false);elseafxmessagebox(“消息发送错误”,mb_ok | mb_iconstop);m_strmsg.empty();updatedata(false);(14)当套接字的 onreceive 事件被触发,表明一个消息已经能够收到。在 onreceive函数中添加如下代码:char *pbuf=new char1025;int nbufsize=1024;int nreceiv
47、ed;cstring strreceived;nreceived=m_sconnectsocket.receive(pbuf,nbufsize);if(nreceived != socket_error)pbufnreceived=null;strreceived=pbuf;m_listreceived.addstring(strreceived);updatedata(false);elseafxmessagebox(“消息发送错误”,mb_ok | mb_iconstop);(15)发送、接收都实现。在 ctalkdlg 类中添加函数 onclose()函数,添加如下代码:m_sconne
48、ctsocket.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);
49、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);getdlgit
50、em(idc_static_servport)-enablewindow(true);getdlgitem(idc_combo_type)-enablewindow(true);(16)双击“断开”按钮,添加如下代码:void ctalkdlg:onbtnclose()onclose();(17)编译运行调试程序。4.3 上位机 pc 界面上位机 pc 端界面如图 4-3 所示,显示了连接、断开、数据采集等按钮功能,并显示了服务器 ip 地址,端口号等,采集到的数据将会显示在信息文本框中。图 4-3 pc 上位机客户端界面5 实验与调试5.1 网络通信测试利用 windows 自带的 ping
51、 命令,来检测网络是否连通,验证与 pc 机的连接情况。在安装了 tcp/ip 协议的前提下,运用 ping 命令来测试系统在以太网中的通信情况。在程序中,把网络数据采集终端单片机系统网卡的 ip 地址设置为 192. 168. 1.25,待系统运行正常后,在 pc 机上打开命令提示符,运行 pingl92. 168. 1.25。5.2 系统调试通过ping命令显示了网络数据采集终端与上位机之间建立了一条正常的通信路径,实现了网络通信要求。上位机程序通过界面上的开始采集按钮发送控制命令,网络数据采集终端单片机系统收到命令后就启动数据的采集与上传。首先,利用2个交换机和网线将网络数据采集终端和p
52、c机相连接,输入ip地址5,端口号4000,点击“连接”按钮,系统信息窗口会有提示信息出现,如果连接服务器成功, “断幵”按钮由无效变为有效。pc机上的用户界面显示如图5-1所示的信息。连接成功后点击“幵始釆集”按钮并发送“$”命令到单片机终端,终端幵始釆集数据并通过以太网将数据上传到上位机,在用户界面中显示如图5-2所示的信息。图 5-1 客户端连接服务器图 5-2 客户端数据采集结果5.3 遇到的问题讨论在进行系统调试过程中,由于受到各方面条件限制以及因素影响,遇到了一些问题在此予以讨论。(1)网络通信刚开始建立成功比较难,经过多次尝试后才找到问题原因,并通过各方面的
53、帮助,最终解决了通信问题;(2)客户端的设计实际上就是一个windows socket通信的过程,但由于对套接字不是很熟悉,因此建立通信过程花了很长时间;(3)数据来源于传感器,其他外部电路的设计此处没有作介绍;(4)单片机网络通信的其他方式值得继续研究,以比较通信的准确度和稳定性等。6 总结与展望6.1 全文总结本文通过对查阅文献和相关资料,在老师的指导下完成了基于网络通信的数据采集和上位机软件设计。并以单片机、网卡芯片、pc机为硬件条件,实现了数据采集和网络传输及pc机显示,本文研究具有重要的实践意义。总结全文,主要完成了以下工作:(1)对基于网络通信的数据采集系统进行了理论研究,主要包括
54、其国内外研究现状、基本原理以及基本方法。本文提出了单片机网络智能化的两种连接方法,并介绍了两种方法的简单实现过程。(2)对基于网络通信的数据采集系统进行了设计实现。针对第一种连接方法,加入网卡芯片,实现单片机网络连接,本文介绍了单片机数据采集工作模式发送端程序设计以及网卡芯片模块zne-100的介绍与使用,并对其进行软件配置,实现与pc机网络通信的中间传输媒介。(3)设计了网络通信数据采集系统的上位机软件。上位机与单片机之间的通信采用tcp/ip协议,并以zne-100为传输媒介,本部分内容介绍了tcp/ip协议核心,并设计开发了上位机数据监控和显示应用程序软件,能够通过发送和接收数据实现对单
55、片机系统的智能化监测和控制,真正实现了单片机连接网络。(4)对网络通信数据采集系统进行了实验调试,并给出了实验结果,上位机软件显示了接收到的数据,并对调试以及程序设计中遇到的各种问题进行了讨论。6.2 工作展望本文的研究工作取得了一定的成绩和结果,但是在实验后发现本文还具有很多不足之处需要不断改进和完善,具体地,可从以下几方面对网络数据采集系统进行研究:(1)对网络通信数据采集系统进行更深一步的理论研,基于网路的数据采集方法很多,本文只是涉及到了其中的一种,还有很多更高效稳定的方法需要进一步研究和实验;(2)对数据采集系统进行硬件部分设计,主要是指采用其他更加智能化的嵌入式系统设备,比如以单片
56、机lm3s6938位控制器核心,设计具体硬件电路,包括a/d转换、网络接口电路等,而不是直接采用zne-100智能化网卡模块;(3)对上位机监控程序和软件进一步完善和优化,上位机程序的设计相对比较简单,关键在于根据相应协议实现通信,上位机软件可以增加数据处理模块,实现对数据进行统计、自动操作、输出打印等功能,进而实现比较完美的上位机显示和监控。参考文献1 徐辉. 基于internet技术的嵌入式数据采集与控制系统的研究j. 现在电子技术,2008 :26-322 周斌,李文印. 利用e-link扩展单片机的网络接口功能j.吉林大学学报,2003 :35-383 伯英,于海勋. 现代控制工程m.
57、 电子工业出版社,2000.5 :14-154 张雄伟,陈亮,徐光辉. dsp芯片的原理与开发应用第三版m. 电子工业出版社,2003.2 :8-105 田应军,刘昌玉. 数据采集系统的开发与设计j. 华中科技大学,2007.6 :4-66 调林. 数据采集与分析技术m. 西安电子科技大学出版社,2005.7 :16-187 李运涛,王庸贵. 一种实时数据采集系统网络接口设计j. 计算机测量与控制,2005.12 :7-108 任泰明. tcp/ip协议与网络编程j. 西安电子科技大学出版社,2004.4 :22-239 何轩,夏应清,李祥. 一种嵌入式系统以太网接口的设计与实现j. 微型与应
58、用,2009.1 :12-1310 吴胜昔,路东听,赵霞. 基于嵌入式tcp/ip协议的数据采集器j. 微型电脑应用,2006.22 (1) :28-3111 王兰,王景存,杨君. 单片机系统接入internet方法的探讨j. 电子技术,2002(8) :32-3412 梦涛. 单片机上的internet网m. 长江大学学报,2001.5 :19-2113 潭浩强. c程序设计第二版m. 清华大学出版社,2005 :11-1314 周康. 基于网络的数据采集系统设计d. 长江大学,2010 :6-915 梁海波. 基于网络通信的嵌入式数据采集系统的研究d. 哈尔滨:哈尔滨工程大学,2008 :
59、4-516 杨苏飞. 基于dsp的微机保护实验教学系统的上位机软件设计与实现d.成都:西南交通大学,2010 :26-28附 录单片机发送端程序发送主程序:org 0023hajmp acintorg 8030hmov tmod,#20hmov tl1,#0f3hmov th1,#0f3hsetb eaclr esmov pcon,#00hsetb tr1mov scon,#40hmov sbuf,#40hsout1: jnb t1,$ clr t1 mov sbuf,#00hsout2: jnb t1,$ clr t1 mov sbuf,#40hsout3: jnb t1,$ clr t1
60、mov sbuf,#1fh mov dptr,#4000h mov r7,#20h setb esahalt:ajmp $中断服务程序: org 8100hacint: movx a,dptr clr t1 mov sbuf,a djnz r7,aend clr es clr tr1aend: inc dptr ret1上位机软件设计对套接字添加处理函数,在其成员函数 setparent 中添加代码如下:void setparent(ctalkdlg *pdlg)m_pdlg=pdlg;在 cmysocket 类中添加 onconnect,onclose,onreceive 函数,添加如下代码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出口检修合同范本
- 加工定制合同范本
- 双桥区短途配送合同范本
- 劳动合同范本文
- 公司股权转让合同范本
- 劳务住宿合同范本
- 劳动合同范本老版
- 书购书合同范本
- 保洁解除协议合同范本
- 劳务派遣终止合同范本
- 2025届江苏省南京市、盐城市高三语文一模调研作文题目解析及范文:直路、陡坡、弯道
- 幼儿教育专业国家技能人才培养工学一体化课程设置方案
- 货物学 课件全套 孔月红 项目1-8:货物与货物学概述-集装箱货物
- 2024-2025学年洛阳市老城区三年级数学第一学期期末经典试题含解析
- 2024年02月全国2024中国建设银行远程智能银行中心客服代表定向招考笔试历年参考题库附带答案详解
- 双线大桥连续梁刚构专项施工方案及方法
- 美容院前台接待流程
- 中小学食堂财务培训
- 国药现代笔试
- 医疗器械市场部年度规划
- 《商务沟通-策略、方法与案例》课件 第七章 自我沟通
评论
0/150
提交评论