基于网络的数据采集系统毕业设计(论文).doc_第1页
基于网络的数据采集系统毕业设计(论文).doc_第2页
基于网络的数据采集系统毕业设计(论文).doc_第3页
基于网络的数据采集系统毕业设计(论文).doc_第4页
基于网络的数据采集系统毕业设计(论文).doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计(论文)毕业设计(论文) 论文题目:基于网络的数据采集系统论文题目:基于网络的数据采集系统 摘摘 要要 “数据采集”是指将温度、压力、流量、位移等模拟量采集转换成 数字量后,在由计算机进行存储、处理、显示或打印相应的系统称为 数据采集系统。 本文简要介绍了嵌入式tcp/ip协议单片机在网络通信中的数据传 输技术。将tcp/ip协议嵌入到单片机中, 借助网卡芯片zne-100 实 现了单片机在局域网内和通过局域网在因特网上的数据传输。用户终 端以单片机系统板为媒介,通过网络与远程数据终端实现数据通信。 关键词:关键词:tcp/ip协议 单片机 因特网 局域网 网卡芯片 abstract “data acquisition“ refers to the temperature, pressure, flow, displacement, such as analog-digital conversion acquisition, by the computer storage, processing, display or print the corresponding system known as the data acquisition system. this paper introduces the embedded tcp / ip protocol scm in the data communications network transmission technology. will be tcp / ip protocol embedded in the microcontroller, with chip card zne - 100 realization of the scm in lan and through lan internet data transmission. user terminals to scm system board for the media, through the network and remote data terminals for data communications. key words: tcp / ip microcontroller internet lan card chip i 目目 录录 第一章第一章 绪绪 论论1 1 1.1 数据采集的意义 1 1.2 数据采集系统的基本功能 2 1.3 本文研究内容 3 第二章第二章 基本原理及方法基本原理及方法4 4 2.1 基本原理.4 2.2 tcp/ip 协议6 第三章第三章 论文(设计)的主要研究方案论文(设计)的主要研究方案1010 3.1 研究内容 .10 3.2 拟采用的研究方法及主要措施 .10 第四章第四章 总总 结结2525 参考文献参考文献2626 致谢致谢2727 1 第一章第一章 绪绪 论论 1.1 数据采集的意义数据采集的意义 “数据采集”是指将温度、压力、流量、位移等模拟量采集转换成 数字量后,在由计算机进行存储、处理、显示或打印相应的系统称为 数据采集系统。 到目前为止,internet 技术主要用于信息的交流. 如 e - mail 、web 浏览等,即使是 internet 技术的进一步应用,如电子商务 e - business ,也仅仅停留在企业与企业或与个人在商务方面的信息交换 上. 因此,通常我们对 internet 的理解也一直停留在这个观念上. 这其 实是一种狭隘的理解,它在很大程度上制约了人们从其它领域去获得 与人们工作和生活密切相关的重要信息. 如从一些电子设备中采集信 息并去控制它们。设想一下:当我们假日外出旅游前,通过网上可以查 到某一城市的某一地区或某一个公园及山顶是天晴还是下雨、那里的 温度、湿度、及污染指数又该是多么方便呢? 还有智能公路:交通管理、 车辆导航、流量控制、信息监测与汽车服务;水、电、煤气表的自动 抄表,安全防火、防盗系统;等等1。 要做到这些并不很难, 在电子技术、传感技术已经高度发达的今 天,现场数据的取得,已经不是难事. 温度、压力、湿度、速度、加 速度、电流、电压这些数据只需要一个小小的单片机(mcu) 就可以解 决。若能将单片机系统连上 internet ,则可以获得更大程度的信息交 流。如何让这些电子设备跟 internet 连接起来,以便人们能够远程获 得这些电子设备的信息并控制它们的运行,已成为今天国内外共同关 注的焦点2。 随着电子信息技术的高速发展,通过软件方式或硬件方式将 2 tcp(udp)/ip 协议嵌入到单片机已经成为可能, 网络化智能化的单片 机,网络智能化的传感器,是目前国内外竞相抢占制高点的前沿技术 之一3. 数据采集系统性能的好坏,主要取决它的精密和速度。在保证精 度的条件下,应有尽可能高的采样速度,满足实时采集、实时处理和 实时控制对速度的要求。 1.21.2 数据采集系统的基本功能数据采集系统的基本功能 由数据采集系统的任务可以知道,数据采集系统具有一下几方面 的功能: 数据采集 计算机按照预先选定的采样周期,对输入到系统的模拟信号进行 采样,有时还要对数字信号、开关信号进行采样。数字信号和开关信 号不受周期的限制,当这类信号到来时,由相应的程序负责处理。 模拟信号处理 模拟信号是指随时间连续变化的信号,这些信号在规定的一段连 续时间内,其幅值为连续值,即从一个变量到另一个变量时中间没有 间断,如正弦信号 x(t)=asin(t+)。 数字信号处理 数字信号是指在有限的离散瞬时上取值间断的信号。在二进制 系统中,数字信号是由有限字长的数字组成,其中每位数字不是 0 就 是 1,这就可由脉冲的有无来体现。数字信号的特点是,他只代表某 个瞬间的量值,不是连续的信号。 开关信号处理 开关信号主要来自各种开关器件,如按钮开关、行程开关和继电 器触点等。开关信号的处理主要是监测开关器件的状态变化。 二次数据计算 通常把直接由传感器采集到的数据称为一次数据,把通过对一次 数据进行某种数学运算而获得的数据称为二次数据。二次数据计算主 3 要有:平均值、累计值、变化率、差值、最大值和最小值等。 屏幕显示 crt 显示装置可把各种数据以方便于操作者观察的方式显示处于 来,屏幕上显示的内容一般称为画面。常见的画面有:相关画面、趋 势图、模拟图、一览表等。 数据存储 数据存储就是按照一定时间间隔,定期将某些重要数据存储在外 部存储器上。 打印输出 打印输出就是按照一定时间间隔或认为控制,定期将各种数据以 表格或图形的形式打印出来。 人机联系 人机联系是指操作人员通过键盘或鼠标与数据采集系统对话,完 成对系统的运行方式、采集周期等参数的设置。此外,还可以通过它 选择系统功能、选择输出需要的画面等4。 1.3 本文研究内容本文研究内容 本文简要介绍了嵌入式 tcp/ip 协议单片机在网络通信中的数据传 输技术。将 tcp/ip 协议嵌入到单片机中, 借助网卡芯片 zne-100 实现了单片机在局域网内和通过局域网在因特网上的数据传输。用户 终端以单片机系统板为媒介,通过网络与远程数据终端实现数据通信。 研究的系统机构框图如下: 单片机网卡芯片 pc 机端接收 数据 internet 网络 4 图 1.1 第二章第二章 基本原理及方法基本原理及方法 2.1 基本原理基本原理 实现单片机系统接入internet 这一构想的开销并不大,因为现有的 互联网设施已为我们提供了现成的中间传输媒介。只需将单片机和这 些中间传输媒介连接上就可使系统接入internet 。 要将单片机系统接入internet 必需做好两方面的准备: (1) 在硬件 上,要给系统主控器单片机加一个网络接口; (2) 在软件上, 要提供相应的通信协议。 当给一个系统配上一个以太网卡芯片,并提供 tcp/ ip 协议和 ieee802. 3 协议时,这个系统就可以通过以太网上 internet 。同理, 如果给系统配上一个 dte/ dce 接口设备,并支持 tcp/ ip 协议和 ppp 协议,它就可通过 modem 上网;如果一个系统配上一个具有无 线收发功能的网络接口(rf) ,并支持 tcp/ ip 协议和 ieee802. 11 系 列协议,那么它也能通过无线方式上网。由此看来,要将单片机系统 接入 internet 的关键是如何实现网络接口,以及提供相应的网络协议5。 要实现通过 internet 采集数据必须实现数字信号和模拟信号之间的 转换,我们处在一个数字时代,而我们的视觉、听觉、感觉、嗅觉等 所感知的却是一个模拟世界。如何将数字世界与模拟世界联系在一起 呢?正是模拟数字转换器(adc)和数字模拟转换器(dac)大显身手之处。 任何一个信号链系统,都需要传感器来探测来自模拟世界的电压、电 流、温度、压力等信号。这些传感器探测到的信号量被送到放大器中 进行放大,然后通过 adc 把模拟信号转化为数字信号,经过处理器、 dsp 或 fpga 信号处理后,再经由 dac 还原为模拟信号。所以 adc 5 和 dac 在信号链的框架中起着桥梁的作用,即模拟世界与数字世界的 一个接口。 一个信号链系统主要由模数转换器 adc、采样与保持电路和数模 转换器 dac 组成,简单来讲就是数字信号输入,模拟信号输出,即它 是一种把数字信号转变为模拟信号的器件。以理想的 4 bit dac 为例, 其输入有 bit0 到 bit3,其组合方式有 16 种。使用 r-2r 梯形电阻的 4bit dac 在假定 vbit0 到 vbit3 都等于 1v 时,r-2r 间的四个抽头电 压有四种,分别为 v1 到 v4。 采样保持电路也叫取样保持电路,它的定义是指将一个电压信号 从模拟转换成数字信号时需要保持稳定性直到完成转换工作。它有两 个阶段,一个是 zero phase,一个是 compare phase。采样保持电路的 比较器通常要求其 offset 比较小,这样才能使 adc 的精度更好。通常 在比较器的后面需要放置一个锁存器,其目的是为了保持稳定性。 在采样电压快速变化时,需要用到具有 fet 开关的采样与保持电 路。当 fet 开关导通时,输入电压保存在某个位置如 c1 中,当开关 关断时,电压仍保持在该位置中进行锁存,直到下一个采样脉冲的到 来.adc 与 dac 在功用上正好相反,它是模拟信号输入,数字信号输 出,是一个混合信号器件。 模数转换器 adc adc 按结构分有很多种,按其采样速度和精度可分为: 多比较器快速(flash)adc; 数字跃升式(digital ramp)adc; 逐次逼近 adc; 管道 adc; sigma-delta adc。 任何一种 adc 的输出都等于 2 的 n 次方乘以它的增益(输入信号) ,再除以它的参考电压。 每一种类型的 adc 都各具特性,下面重点介绍前三种类型。 不同的 adc 有着不同的特性,对于 sigma-delta adc 来讲,其分 辨率可以达到 24bit 以上,但其采样速率比较低。逐次逼近型 adc 比 6 较适应于中等采样率、分辨率在 16bit 以下的应用。管道 adc 主要用 于高采样率的应用,其分辨率则在 16bit 以下。多比较器 adc 也是一 种高速 adc,但因为其体积和功耗较大、分辨率较低,目前应用中很 少使用它。 多比较器(flash)adc 中用到的比较器很多,如一个 8 位的 adc 就需要 255 个比较器。该类产品采样速率确实很高,但因为多个 比较器的存在,其功耗很大,而且管芯也较大。adc0820、adc1175 等产品都是这种类型的 adc。 数字跃升式 adc 是用连续搜索的方法获得编码,因为速率太慢、 效率太低,因此很少使用。 逐次逼近型 adc 在逐次逼近的方法上分为两种,以 3 比特采样为 例,它首先将基准电压分为 7 个比较电压,使输入信号同时与这 7 个 电压进行比较,最接近的比较电压是表示数值;第二种是将输入电压 逐次接近电压的二分之一、四分之一、八分之一等,顺序产生比较后 的数字信号。因为变换过程是将输入信号与基准信号比较,所以,基 准电压必需是稳定准确的。输入信号的最高电平应保持稳定,充分利 用变换器达到高的分辨率。对于任何逐次逼近 adc,都有 5 个组成部 分:第一部分是 dac,其中含有一个算术逻辑测试单元,会比较 dac 的输出和模拟信号的输入,直到两者接近;第二部分是输出寄存 器;第三部分是比较器,逐次逼近 adc 仅含有一个比较器,所以功耗 和管芯尺寸都比较小;第四部分是逻辑电路;第五部分是时钟。有一 个要求是:dac 的精度一定要高于 adc。 要实现数据采集还必须遵循 tcp/ip 协议,我们在下一小结将详细 介绍 tcp/ip 有关协议。 2.2 tcp/ip 协议协议 这部分简要介绍一下 tcp/ip 的内部结构,为讨论与互联网有关的 安全问题打下基础。tcp/ip 协议组之所以流行,部分原因是因为它可 7 以用在各种各样的信道和底层协议(例如 t1 和 x.25、以太网以及 rs- 232 串行接口)之上。确切地说,tcp/ip 协议是一组包括 tcp 协议和 ip 协议,udp(user datagram protocol)协议、icmp(internet control message protocol)协议和其他一些协议的协议组6。 tcp/ip 协议并不完全符合 osi 的七层参考模型。传统的开放式系 统互连参考模型,是一种通信协议的 7 层抽象的参考模型,其中每一 层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相 互通信。这 7 层是:物理层、数据链路层、网路层、传输层、话路层、 表示层和应用层。而 tcp/ip 通讯协议采用了 4 层的层级结构,每一层 都呼叫它的下一层所提供的网络来完成自己的需求。这 4 层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传输(smtp) 、 文件传输协议(ftp) 、网络远程访问协议(telnet)等。 传输层:在此层中,它提供了节点间的数据传送服务,如传输控 制协议(tcp) 、用户数据报协议(udp)等,tcp 和 udp 给数据包 加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确 定数据已被送达并接收。 互连网络层:负责提供基本的数据封包传送功能,让每一块数据 包都能够到达目的主机(但不检查是否被正确接收) ,如网际协议 (ip) 。 网络接口层:对实际的网络媒体的管理,定义如何使用实际网络 (如 ethernet、serial line 等)来传送数据。tcp/ip 中的协议7。 以下简单介绍 tcp/ip 中的协议都具备什么样的功能,都是如何工 作的: 1 ip 网际协议 ip 是 tcp/ip 的心脏,也是网络层中最重要的协议。 ip 层接收由更低层(网络接口层例如以太网设备驱动程序)发来 的数据包,并把该数据包发送到更高层-tcp 或 udp 层;相反,ip 层也把从 tcp 或 udp 层接收来的数据包传送到更低层。ip 数据包是 不可靠的,因为 ip 并没有做任何事情来确认数据包是按顺序发送的或 8 者没有被破坏。ip 数据包中含有发送它的主机的地址(源地址)和接 收它的主机的地址(目的地址) 。 高层的 tcp 和 udp 服务在接收数据包时,通常假设包中的源地 址是有效的。也可以这样说,ip 地址形成了许多服务的认证基础,这 些服务相信数据包是从一个有效的主机发送来的。ip 确认包含一个选 项,叫作 ip source routing,可以用来指定一条源地址和目的地址之间 的直接路径。对于一些 tcp 和 udp 的服务来说,使用了该选项的 ip 包好像是从路径上的最后一个系统传递过来的,而不是来自于它的真 实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系 统来进行平常是被禁止的连接。那么,许多依靠 ip 源地址做确认的服 务将产生问题并且会被非法入侵。 2. tcp 如果 ip 数据包中有已经封好的 tcp 数据包,那么 ip 将把它们向 上传送到 tcp 层。tcp 将包排序并进行错误检查,同时实现虚电路 间的连接。tcp 数据包中包括序号和确认,所以未按照顺序收到的包 可以被排序,而损坏的包可以被重传。 tcp 将它的信息送到更高层的应用程序,例如 telnet 的服务程序 和客户程序。应用程序轮流将信息送回 tcp 层,tcp 层便将它们向下 传送到 ip 层,设备驱动程序和物理介质,最后到接收方。 面向连接的服务(例如 telnet、ftp、rlogin、x windows 和 smtp)需要高度的可靠性,所以它们使用了 tcp。dns 在某些情况 下使用 tcp(发送和接收域名数据库) ,但使用 udp 传送有关单个主 机的信息。 3.udp udp 与 tcp 位于同一层,但对于数据包的顺序错误或重发。因此, udp 不被应用于那些使用虚电路的面向连接的服务,udp 主要用于那 些面向查询-应答的服务,例如 nfs。相对于 ftp 或 telnet,这些服 务需要交换的信息量较小。使用 udp 的服务包括 ntp(网落时间协议) 和 dns(dns 也使用 tcp) 。 9 欺骗 udp 包比欺骗 tcp 包更容易,因为 udp 没有建立初始化连 接(也可以称为握手) (因为在两个系统间没有虚电路) ,也就是说, 与 udp 相关的服务面临着更大的危险。 4.icmp icmp 与 ip 位于同一层,它被用来传送 ip 的的控制信息。它主要 是用来提供有关通向目的地址的路径信息。icmp 的redirect信息通 知主机通向其他系统的更准确的路径,而unreachable信息则指出路 径有问题。另外,如果路径不可用了,icmp 可以使 tcp 连接体面地 终止。ping 是最常用的基于 icmp 的服务。 5. tcp 和 udp 的端口结构 tcp 和 udp 服务通常有一个客户/服务器的关系,例如,一个 telnet 服务进程开始在系统上处于空闲状态,等待着连接。用户使用 telnet 客户程序与服务进程建立一个连接。客户程序向服务进程写入 信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报 告。因而,这个连接是双工的,可以用来进行读写8。 两个系统间的多重 telnet 连接是如何相互确认并协调一致呢? tcp 或 udp 连接唯一地使用每个信息中的如下四项进行确认: 源 ip 地址 发送包的 ip 地址。 目的 ip 地址 接收包的 ip 地址。 源端口 源系统上的连接的端口。 目的端口 目的系统上的连接的端口。 端口是一个软件结构,被客户程序或服务进程用来发送和接收信 息。一个端口对应一个 16 比特的数。服务进程通常使用一个固定的端 口,例如,smtp 使用 25、xwindows 使用 6000。这些端口号是广为 人知的,因为在建立与特定的主机或服务的连接时,需要这些地址和 目的地址进行通讯9。 10 第三章第三章 论文(设计)的主要研究方案论文(设计)的主要研究方案 3.1 研究内容研究内容 本文主要研究内容为以下两大部分:(1)单片机终端数据发送 部分。本部分主要完成数据的发送功能。 (2)pc 机端数据接收部分。 主要用于联网接收单片机终端发送的数据,以便实时提取查看。 3.2 拟采用的研究方法及主要措施拟采用的研究方法及主要措施 目前有两种方法可以实现单片机系统接入internet 。 (1)第一种方法是利用nic(网络控制器/ 网卡) 实现网络接口, 由单片机来提供其他所需协议。如单片机和zne100模块构成的系统。 zne100模块内部集成了tcp/ip 协议栈,我们可以利于它可以轻松 完成嵌入式设备的网络功能。 采用这种方法成本非常低廉,困难的就是软件设计比较复杂。幸 运的是我们无需像计算机那样提供全套的网络通信协议,实际上,我 们只需要根据特定的应用要求,提供一个tcp/ ip 协议族的子协议集 11 即可。 (2)第二种方法是利用具有协议栈结构的芯片和phy(phyceiver 物理层的接收器) 来实现网络接口,主控器只负责往协议栈结构芯片 的 某个寄存器里放上适当的数据。在这种方法 里,网络协议是由具有协议栈结构的芯片硬件实现的。目前市面上已 有这种结构的芯片出售, 如韩国wiznet 公司生产的i2chip w3100a 芯片,美国seiko instruments 公司生产的ichip s7600a 芯片等等。这 里以i2chipw3100a 为例,来说明这类芯片如何硬件实现网络协议。其 结构示意图如图3.1 所示。这款芯片的内部结构分为4 部分:与单片 机接口的部分(mcu interface) 、协议引擎(protocol engine) 、存储器 (dpram) 和与mii 接口的部分。其中mii 接口接上一个phy。这款 芯片能从硬件上实现网络协议主要是靠它的协议引擎,使用者对这一 点的最深的感触是,在它的内部结构中有如下几个与网络协议相关的 寄存器:命令寄存器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 地址寄存器等等10。 有了这些寄存器,开发者只需往适当的寄存器中放上合适的数据, 并按一定的顺序启动相应的命令,就可以按标准协议上网了。更方便 的是,这类芯片的开发商还提供了相应的软件包,设计者只需调用软 件包中的函数就可以了,就像在vc 中做网络开发编程一样。所以这 种方法的优点是软件设计简单。但缺点是价格比较贵。通常,这种芯 片的价格 都在上千元以上11。 12 图3. 1 w3100a 结构示意图 本系统共分两个部分:单片机终端数据发送部分和 pc 机端数据 接收部分。系统框图如第一章图 1.1 所示 1、 单片机(发送端) mcs51 单片机串行通信工作方式 (1)在方式 0 下,是把串行口作为同步移位寄存器使用,这时以 rxd(p3.0)端作为数据移位的入口和出口,而由 txd(p3.1)端提 供移位时钟脉冲。 (2)方式 1 是 10 位为一帧的异位串行通信方式。 (3)方式 2 是 11 位为一帧的串行通信方式。 (4)方式 3 同样是 11 位为一帧的串行通信方式,其通信过程与方式 2 完 全相同,所不同的仅在于波特率12。 2、发送端程序13 发送主程序: org 0023h ajmp acint org 8030h 13 mov tmod,#20h mov tl1,#0f3h mov th1,#0f3h setb ea clr es mov pcon,#00h setb tr1 mov scon,#40h mov sbuf,#40h sout1:jnb t1,$ clr t1 mov sbuf,#00h sout2:jnb t1,$ clr t1 mov sbuf,#40h sout3:jnb t1,$ clr t1 mov sbuf,#1fh mov dptr,#4000h mov r7,#20h setb es ahalt:ajmp $ 中断服务程序: org 8100h acint:movx a,dptr clr t1 mov sbuf,a djnz r7,aend 14 clr es clr tr1 aend:inc dptr ret1 3、zne100(网卡芯片) 功能特点: serial (ttl) to 10m ethernet,serial 最大波特率为115200 bps; 可利用web browser 和windows utility 轻松进行设定; tcp server, udp server, real com driver 作业模式 ; 支持动态(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、 dhcp; 工作方式可选择为tcp server 或 udp server,工作端口可设定; 可使用配置工具znetcom utility for windows98/me/nt/2000/xp 进 行配置; 可使用网页浏览器进行配置; 输入电压 5v dc 功耗低最大工作电流 38 ma 15 工作温度 065c 保存温度 2585c14 4、zne-100 模块硬件电路 从俯视图图3.2我们可以看出zne-100 模块有两排外引管脚, 左边一排是12 针,右边一排是11 针。左边排针的最上方引脚为模块 的引脚1,依次往下是212 引脚,右边最上方是最后一个引脚23 脚。 另外图 3.2显示zne-100 模块的上方有3 个孔,它们是用于恢 复出厂设置值和升级固件的。 图 3.2 zne-100 模块俯视图 表3.1 zne-100 模块管脚名称 *注意:设计时要保持保留的管脚悬空! 表3.1中的ethernet tx+、ethernet tx-、ethernet rx+、ethernet 16 rx-管脚是以太网信号;txd、rxd 是串口信号;管脚5、16、19 为 led 信号,方向为输出;485_txd_en 是485发送控制端,方向为输 出,保证rs485 半双工传输,发送数据时为高电平,接收数据为低电 平;nrst 模块复位脚,低电平有效,在该管脚输入一大于20us 的负 脉冲,模块复位(模块内部有上电复位电路,该管脚可悬空)。 图3.3 zne-100 模块 5、 zne-100 模块软件配置 在使用软件进行配置前,需要保证用户的pc 机内有以太网卡, 而且其配置的pc机与zne-100 模块同在一个网段内。zne-100 模块 在出厂时设定了一个默认的ip 地址(78)和网络掩码 (),用户可以计算一下看是否和zne-100 模块在同一 网段,公式为:用户pc 机ip 地址 与上 用户pc 机网络掩码等于 zne-100模块的ip 地址 与上 zne-100 模块的网络掩码(按出厂设定 的值计算为)。 如果不相等,则需要如下操作:首先进入操纵系统,然后使用鼠 标点击任务栏的“开始”“设置”“控制面板”(或在“我的电脑”里面 直接打开“控制面板”),双击“网络和拨号连接”(或“网络连接”)图标, 17 然后单击选择连接zne-100模块的网卡对应的“本地连接”,单击右键选 择“属性”在弹出的“常规”页面选择“internet协议(tcp/ip)”,查看其 “属性”,您会看到如下页面,请按图所示,选择“使用下面的ip地址”, 并填入ip 地址5,子网掩码,默认网关 (dns部分可以不填)。点击该页面的“确定”及“本地连接 属性”页面的确定,等待系统配置完毕。然后设置模块。一是安装配置 软件,二是利于配置软件进行配置。 (1)首先把配套光盘放入cd-rom,打开光盘,双击znetcom_setup.exe 文件,开始安装。 (2)当安装完配置软件后,用户操纵系统的桌面会多了一个znetcom 的 图标。双击该图标就会打开znetcom 配置软件。打开软件后点击“搜 索”。这时就会弹出搜索窗口,并在窗口中列出已经搜索到的zne-100 模块,及对应的mac 地址和ip 地址。搜索窗口在6 秒后自动关闭, 用户也可以点击“停止按钮”让它关闭。 (3)如果需要修改其中某个设备的设置值,可以用鼠标双击该设备对应 的表行。(如果是第一次设置的,请用户双击ip 地址为78 的模块) (4)如果需要修改配置,则需要在“当前密码”项输入模块密码,然后才 能修改(出厂设置默认密码是“88888” 5 个8) (5)修改了属性栏上的值以后需要按“提交更改”按钮才能正式把修改的 设置发送到zne-100 模块中。如果填错了,还没有发送到zne-100模 块中,可以按一下“刷新”按钮。如果模块不能工作了,则需要设置好 pc 机的网络配置,然后拔掉zne-100 模块的供电电源,去掉电源后 使用金属线或尖嘴镊子短接模块如下图的2、3 脚(红色圈住的地方), 再对模块上电,一秒(或大于1 秒)后,再拔掉zne-100 模块的供电 电源,去掉电源后再去掉短接2、3 脚的金属线或尖嘴镊子,使2、3 脚开路。这时zne-100 模块就已经恢复了出厂默认设置了,就可以重 新对模块进行设置了15。 18 图 3.4 6、pc 机(接收端) 当发送端的程序调试成功以及 zne-100 模块设置完成,只需接 收端能提供 tcp/ip 协议,则可以实行网络的数据采集。 7、tcp/ip 协议 tcp/ip 是国际互连网的基础协议,它是“传输控制协议/网间协议” (transmit control protocol/internet protocol)的简称,可以把不同类型的 网络连接起来. internet 就是靠tcp/ip 把分布在全球的不同类型的网络 连接起来。 tcp/ip 协议有底层和上层之分,底层协议规定了计算机硬件的接 口规范,上层协议规定了软件程式必需共同遵守的一些规则以及程序 员在写程式时使用的统一标准. tcp/ip 有100 多个协议,其中用得最 广的是smtp(电子邮件协议) 、ftp(文件传输协议) 、telnet(远程 登录协议) . 其中最重要的两个协议是传输控制协议tcp(transmission control protocol) 和网际互联协议ip( internet protocol) . ip负责信息的 实际传送,而tcp 则保证所传送的信息是正确的. tcp/ip网络层协议 的核心是ip协议. ip协议具有两个非常重要的特点:一是提供无连接的数 19 据报传输机制,虽然不能保证传输的可靠性却简单有效;二是提供在 同一物理网络中的点到点通信,决定一条从信源机到信宿机的传输路 径. ip协议的主要功能是ip数据报传送及ip路由选择. 交换的数据被封 装在若干个ip包中,在每个ip包的报文头中包含有源机器ip地址、目的 机器的ip地址、校验和以及其他一些有用信息. 校验和是根据ip报文中 的数据计算出来的, ip包的接收方可以根据它来判断报文在传输过程 中是否由于传输线路噪音等原因受到破坏. tcp ,是一种面向连接的传输层协议,它提供高可靠性服务. 通 过使用序列号和确认信息,tcp协议能够向发送方提供到达接收方的 数据包的传送信息. 当传送过程中出现数据包丢失情况时,tcp协议可 以重新发送丢失的数据包直到数据成功到达接收方或者出现网络超时. tcp协议还可以识别重复信息,丢弃不需要的多余信息,使网络环境 得到优化. 如果发送方传送数据的速度大大快于接收方接收数据的速 度,tcp协议可以采用数据流控制机制减慢数据的传送速度,协调发 送和接收方的数据响应. 而与它并列的udp(userdatagramprotocol用户 数据报协议) 是无连接的,它提供高效率的服务特别适合一次传输少 量报文,udp 直接建立在ip 协议之上,相对tcp简单得多. 总之ip的工作是把原始数据(数据包)从一地传送到另一地;tcp的 工作是管理这种流动并确保其数据是正确的. tcp/ip协议已经有20多年 的实践经验,目前它已成为计算机网络的一套工业标准协议. internet网 之所以能将广阔范围内各种各样网络系统的计算机互联起来,主要是 因为应用了“统一天下”的tcp/ip协议16。 8、 程序设计 (1) 打开 vc+,选择 mfc appwizard(exe) ,在工程中填入 talk(此为工程名,可任意填写),点击确认。选择“基本对话”和 “windows sockts”,点击完成即可! (2) 在生成的 dialog 框中选择适当的控件,做好实验界面。 (3) 利用 calsswizard 对对话框中的各个控件添加相对应的变量。 20 (4) 打开 classwizard,确定 class name 的内容是 ctalkdlg,object ids 是 idc_combo_typem,选择 message 为 cbn_selchange。 (5)为了应用程序能获得并响应 socket 事件,应该创建用户从 casyncsocket 类继承的派生类。选择 insert/new class,创 建新类 cmysocket。在 base class 中输入 casyncsocket, 使它成为新类的基类。点击 ok (6)创建了派生的套接字类后,向该套接字类添加一个成员变量,用 作指向父对话框的指针,类型为 ctalkdlg*,变量名为 m_pdlg。 打开 classview,在 cmyslcket 类上右击,选择 add member function,添加一个成员函数 setparent(ctalkdlg*pdlg) 。 (7)对套接字添加处理函数,在 setparent 函数中添加代码: void cmysocket:setparent(ctalkdlg *pdlg) /设置成员变量 m_pdlg=pdlg; (8)在 cmysocket 类中添加 oncnnect,onclose,onreceive 函数。添加代码:m_pdlg- onconnect();和 m_pdlg-onclose(); 和 m_pdlg-onreceive(); (9)将程序的头文件包括到套接字类中。#include “mysocket.h 下写上: #include “talkdlg.h“ (10)向 ctalkdlg 中添加套接字的变量对象,对话框需要一个用 于连接套接字, 向 ctalkdlg 添加 m_sconnectsocket,类型为 cmysocket,对对话框进行初始化,在 ctalkdlg 类的函数 oninitdialog 中写些代码: m_cmbtype.setcursel(1); /初始为 78 m_strservname=“78“; /初始端口为 4001 21 m_nservport=4001; updatedata(false); m_sconnectsocket.setparent(this); (11)现在开始建立发送端和接收端的连接,双击对话框的“连接”, 添加 onbtnconnect 函数,写些代码: updatedata(true); m_sconnectsocket.create(); /连接服务器 m_sconnectsocket.connect(m_strservname,m_nservport); (12)为完成连接,要添加对套接字事件的处理函数,右击 ctalkdlg 类,选择 add member funcrion,添加 onconnect 函数,类型 void void ctalkdlg:onconnect() getdlgitem(idc_edit_msg)-enablewindow(true); getdlgitem(idok)-enablewindow(true); getdlgitem(idc_static_msg)-enablewindow(true); getdlgitem(idc_btn_close)-enablewindow(true); (13)现在连接好了,但不能通讯。把相应的消息添加到相应的列表 框中,双击“发送”,将函数名改为 onsendmgs。写如代码 int nlen; int nsent; updatedata(true); if(!m_strmsg.isempty() nlen=m_strmsg.getlength(); 22 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 事件被触发,表明一个消息已到,在 onrecieive 函数中添加代码: char*pbuf=new char1025; int nbufsize=1024; int nreceived; cstring strreceived; nreceived=m_sconnectsocket.receive(pbuf,nbufsize); if(nreceived!=socket_error) pbufnreceived=null; strreceived=pbuf; m_listreceived.addstring(strreceived); updatedata(false); else 23 afxmessagebox(“消息发送错误“,mb_ok|mb_iconstop); (15)发送,接受都实现,再进行断开。在 ctalkdlg 类中添加函 数 onclose 函数,添加代码: m_sconnectsocket.close(); getdlgitem(idc_edit_msg)-enablewindow(false); getdlgitem(idok)-enablewindow(false); getdlgitem(idc_static_msg)-enablewindow(false); getdlgitem(idc_btn_connect)-enablewindow(false); getdlgitem(idc_btn_close)-enablewindow(false); while(m_listsent.getcount()!=0) m_listsent.deletestring(0); while(m_listreceived.getcount()!=0) m_listreceived.deletestring(0); if(m_cmbtype.getcursel()=1) getdlgitem

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论