基于网络通信的数据采集上位机软件设计_第1页
基于网络通信的数据采集上位机软件设计_第2页
基于网络通信的数据采集上位机软件设计_第3页
基于网络通信的数据采集上位机软件设计_第4页
基于网络通信的数据采集上位机软件设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

题目 基于网络通信的数据采集上位机软 件设计 基于网络通信的数据采集上位机软件设计 摘 要 随着网络技术的快速发展 基于网络通信的数据采集系统得到了大量应用 本文在 查阅文献的基础上提出了基于网络通信的单片机数据采集系统 通过网卡终端以及 TCP IP 协议实现了单片机与 PC 机之间的网络通信 本文研究具有较强的工程背景和实际价值 本文在主要工作如下 1 进行了基于网络通信的数据采集系统理论研究 主要包括数据采集的基本原理和 基本方法 并提出了两种单片机连接网络的实现方法 2 研究了网络通信的数据采集实现过程 对单片机数据采集到网络传输进行了模式 设计 并设计了单片机发送程序以及网卡芯片配置 以实现单片机网络连接 3 设计了网络通信数据采集系统上位机软件 基于 TCP IP 协议以及 Windows Socket 方法 在 Visual Studio 平台上开发出了单片机网络通信数据采集系统上位机软件 实现了 数据采集和显示 4 对数据采集系统进行了实验和调试 并提出了期间遇到的各种问题 最后对全文 的内容进行了总结和工作展望 关键词关键词 数据采集系统 网络通信 TCP IP 协议 上位机 Data Acquisition Host Computer System Software Design Based on Network Communication ABSTRACT With the rapid 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 the 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 including 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 transmission 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 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 during 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 论文主要研究内容 2 2 基于网络通信数据采集系统基本原理和方法 4 2 1 基于网络通信数据采集系统基本原理 4 2 2 基于网络通信数据采集系统基本方法 4 3 基于网络通信的数据采集实现 6 3 1 数据采集工作模式 6 3 2 单片机发送端程序设计 6 3 3 网卡芯片模块 7 3 4 网卡芯片软件配置 10 4 上位机软件设计 11 4 1 TCP IP 协议 11 4 2 数据传输程序设计 11 4 3 上位机 PC 界面 17 5 实验与调试 18 5 1 网络通信测试 18 5 2 系统调试 18 5 3 遇到的问题讨论 19 6 总结与展望 21 6 1 全文总结 21 6 2 工作展望 21 参考文献 22 致 谢 23 附 录 24 0 1 引 言 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 年代以来 国际 上一些技术先进的国家 数据采集系统已在井下作业 石油开采 现场实时监控和航空 1 技术等领域被广泛应用 出现了高性能 高可靠性的单片机数据采集系统 如有的 DAS 产品精度可以达到 24 位 甚至有的 DAS 产品速度可以达到每秒几亿次以上 14 现阶段的数据采集系统采用更先进的模块化结构 根据不同的应用需求 运用简单 的增加和更改模块的方法 与系统编程相结合就可扩展或修改系统 最终迅速组建成一 个新的系统 由于屏蔽性 高密度 针孔式的连接器和卡式模块的应用 使其稳定性及 可靠性得到充分保障 但其昂贵的价格阻碍了它在自动化领域的普及 目前 以 Internet 为代表的计算机网络通信的发展和应用取得了空前的突破 网络 化采集和控制技术也随着网络技术的发展而迅速成长 基于网络通信的数据采集系统应 运而生 且在计算机网络技术发展背景下 表现出了空前的发展势头 具有采集效率高 采集实时性高 便于收集和整理数据等特点 对于各行工业领域的数据采集都具有非常 重要的意义 随着 IT 技术和互联网技术的飞速发展 为保障用户的投资 适应未来技术发展的趋 势 施耐德电气公司第一个推出了应用于工业控制领域的 开放的 TCP IP 以太网 Modbus TCP IP 协议 该技术采用了 IT 行业广泛应用的 TCP IP 协议 底层协议釆用开 放的 Modbus 第一次真正地的实现了 IT 网络和工业数据采集与控制网络的融为一体 使用户彻底摆脱了各种行业的工业数据采集与控制网络的限制和束缚 从而进入了工业 控制领域的一种新境界 3 电子信息技术的高速发展 通过软件或硬件方式可以将 TCP UDP IP 协议嵌入到 单片机 目前网络智能化单片机在国内外占据前沿地位 而近几年交换式以太网技术的 出现更大程度的提高了以太网的确定性 利用交换技术 将一个较大的网络分隔成为各 个相对独立的冲突域 使冲突只能在一个相对较小的区域内发生 这样就大大地减小了 冲突发生的概率 从而提高了网络的实时性和确定性 2 以太网所显示的优势 使其能 够满足数据采集及控制对实时性 抗干扰性 可靠性的严格要求 它己经被证明是未来 数据采集与控制网络的最佳解决方案 其应用于现场设备监控也是控制网络发展的趋势 1 3 论文主要研究内容 本文通过查阅文献资料 在现有条件的基础上 开发设计出了单片机的网络通信数 据采集系统 并实现了上位机界面设计 本文研究具有较强的工程背景和应用价值 具 体研究内容包括 1 基于网络通信的单片机数据采集系统基本原理和基本方法研究 随着网络技术的 发展 单片机的网络智能化得到大量的应用 本文单片机连接网络 Internet 的基本原理 进行了研究 并提出了具体的连接方法 2 基于网络通信的单片机数据采集系统实现 主要包括单片机数据采集的工作模式 单片机发送程序设计 中间传输媒介网卡芯片模块的配置与设计等 2 3 基于网络通信的数据采集系统上位机软件设计 单片机与上位机之间通过 TCP IP 协议实现了网络通信 本部分对 TCP IP 协议进行了研究 并在此基础上通过 windows socket 套接字实现了网络通信 设计了上位机数据采集软件 4 对数据采集系统进行了试验调试 并分析了过程中遇到的各种问题以及解决方法 对全文工作内容进行了总结和展望 3 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 物理层的接收器 来实现网络接口 主控器只负责向协议栈结构芯片的某个寄存器里存放适当的数据 在这种方法中 网络 协议是根据协议栈结构的芯片硬件实现的 目前这种芯片有美国 Seiko Instruments 公 司生产的 ichip S7600A 芯片 韩国 WIZnet 公司生产的 i2chip W3100A 芯片等 在这里 我们以 i2chip W3100 为例来说明这类芯片的硬件结构是如何实现网络协议的 4 图 2 1 W3100 芯片硬件结构 W3100 芯片结构示意图如图 2 1 所示 其中分为四个部分 与单片机接口部分 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 地址寄存器 等 在这些硬件寄存器上 程序开发人员只需要将相应的数据存入这些寄存器中 并按 照一定的顺序开启相应的命令 那么就可以按照标准协议连接上网络了 而且芯片开发 商还提供了芯片的软件开发包 设计者只需要调用其中的函数即可实现网络通信 由此 可见 这种方法设计简单 使用方便 但是其价格一般都比较昂贵 4 本文将根据第一种方法 将单片机与网卡芯片 ZNE 100 模块进行组合 然后建立相 应的通信协议 实现单片机网络智能化 与 PC 机远程通信 5 3 基于网络通信的数据采集实现 3 1 数据采集工作模式 数据采集系统主要分为两个部分 一是单片机终端数据发送部分 完成数据的发送 功能 二是 PC 机端数据的接收部分 实现通过网络连接接收单片机终端发送的数据 并 在 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 作为提供移位脉冲的端口 13 方式 1 是 10 位为一帧的异位串行通信方式 方式 2 是 11 位为一帧的串行通信方式 方式 3 通信方式也是 11 位为一帧的串行通信 其过程与方式 2 相同 但不同的是其波特率 2 单片机发送端程序 发送主程序 ORG 0023H AJMP ACINT ORG 8030H MOV TMOD 20H MOV TL1 0F3H 单片机终端网卡芯片PC 机接收数据并显示 Internet 网络 6 MOV TH1 0F3H SETB EA CLR ES MOV PCON 00H SETB TR1 MOV SCON 40H 置串行口工作与方式 2 允许接收 MOV SBUF 40H SOUT1 JNB T1 CLR T1 T1 清零 MOV SBUF 00H SOUT2 JNB T1 CLR T1 T1 清零 MOV SBUF 40H SOUT3 JNB T1 CLR T1 T1 清零 MOV SBUF 1FH 启动发送 MOV DPTR 4000H MOV R7 20H SETB ES 启动 ES AHALT AJMP 中断服务程序 ORG 8100H ACINT MOVX A DPTR CLR T1 T1 清零 MOV SBUF A 启动发送 DJNZ R7 AEND CLR ES 禁止串行中断 CLR TR1 启动 T1 AEND INC DPTR RET1 3 3 网卡芯片模块 1 ZNE 100 网卡芯片介绍 ZNE 100 是广州致远电子有限公司开发的一款工业级嵌入式网络模块 它内部集成了 7 TCP IP 协议栈 用户利用它可以轻松实现嵌入式设备的网络功能 不需要了解复杂的网 络知识以及 TCP IP 协议 节省人力物力和开发时间 使产品更快的投入市场 增强竞争 力 该产品用于串口与以太网之间的数据传输 可方便的为串口设备增加以太网接口 可用于串口设备与 PC 机之间 或者多个串口设备之间的远程通信 具有以下产品特性 Serial TTL 接口转 10M Ethernet 接口 Serial 最大波特率为 bps 可利用 Web browser 和 Windows utility 轻松进行设定 TCP Server UDP Server 作业模式 支持 动态 DHCP 或静态获取 IP 地址 尺寸小 44 31 5mm 具有 32 位 ARM7 CPU 16KB RAM 128KB FLASH 10M 以太网接口 使用排针方式引出 1 5KV 电磁隔离 串口 TTL 电 平方式 波特率 300 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 功耗低 最大工作电流 90 mA 等 2 ZNE 100 模块硬件电路 如图 3 2 所示为 ZNE 100 的模块硬件电路 可知其具有两排外引管脚 左边一排是 12 针 右边是 11 针 分别编号 1 23 此外 ZNE 100 模块上具有三个孔 用于恢复出厂 设置和升级固件 图 3 2 ZNE 100 模块电路图 8 表 3 1 ZNE 100 模块管脚定义 引脚意义引脚意义 1Ethernet TX 2Ethernet TX 23保留 3Ethernet RX 22保留 4Ethernet RX 21保留 5连接显示 LED20保留 6TXD19EHTER TXD LED 7RXD18保留 8485 TXD EN17保留 9保留16保留 10nRST 模块复位15EHTER RXD LED 11GND14VCC 5V DC 12GND13VCC 5V DC 表 3 1 所示为 ZNE 100 网卡芯片模块的具体引脚定义 其中 Ethernet TX Ethernet TX Ethernet RX Ethernet RX 管脚是以太网信号端口 TXD RXD 是 串口信号端口 管脚 5 16 19 为 LED 信号口 方向为输出 485 TXD EN 是 RS485 发送 控制端 方向为输出 保证 RS485 半双工传输 发送数据时为高电平 接收数据时为低 电平 nRST 为模块复位脚 低电平有效 在该引脚输入一个大于 20us 的负脉冲即可实现 模块复位 其中模块内部有上电复位电路 该管脚可以悬空 9 3 ZNE 100 模块评估板 ZNE 100 模块评估板如图 3 3 所示 其中指示了各个按钮的功能和作用 模块评估板 可以直接用作网卡芯片 连接到单片机上实现网络通信 图 3 3 ZNE 100 模块评估板 3 4 网卡芯片软件配置 在对 ZNE 100 进行模块软件配置之前 需要保证用户的 PC 机内具有以太网卡 而 且 PC 机与 ZNE 100 模块需要在同一个网段内 ZNE 100 模块在生产厂家出厂时设定了 一个默认的 IP 地址 192 168 0 178 和网络掩码 255 255 255 0 用户需要计算判断 PC 机是 否与模块在同一网段 判断公式为 用户 PC 机 IP 地址比上 PC 机网络掩码 看其是否等 于 ZNE 100 模块的 IP 地址比上模块的网络掩码 如果不想等 则需要修改 PC 机 IP 地址 方法是 首先进入操作系统 然后使用鼠标点击任务栏的 开始 设置 控制面板 或在 我的电脑 里面直接打开 控制面板 双击 网络和拨号连接 或 网络连接 图标 然后单 击选择连接 ZNE 100 模块的网卡对应的 本地连接 单击右键选择 属性 在弹出的 常规 页面选择 internet 协议 TCP IP 查看其 属性 选择 使用下面的 IP 地址 并填入 IP 地址 192 168 0 55 子网掩码 255 255 255 0 默认网关 192 168 0 1 DNS 部分可以不填 点击该页面的 确定 及 本地连接属性 页面的确定 等待系统配置完毕 16 此后 配置了 PC 网关 即可对其进行模块软件配置 首先安装厂家给的配置软件 然后根据安装好的配置软件进行配置 具体过程可以查阅 ZNE 100 使用手册 此处不予 详述 10 4 上位机软件设计 4 1 TCP IP 协议 TCP IP 协议是 Transmission Control Protocol Internet Protocol 的简写 中译名为传输 控制协议 因特网互联协议 又名网络通讯协议 是 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 协议 User Datagram Protocol 用户数据报协议 是五连接的 但它传输速度快 传输效率高 特别适合一次传输少量报文 UDP 直接建立在 IP 协议之 上 相对于 TCP 协议来说简单得多 10 总之 IP 的工作就是把原始数据从一地传送到另一地 TCP 的工作就是管理这种流 动并确保其数据是正确的 4 2 数据传输程序设计 本文利用 VC 程序的 MFC 框架建立数据传输协议 采用客户端 服务器模式建立通 信 其中服务器端和客户端程序基本相同 不同的是选择的通信套接字 6 PC 机的程序 11 流程图如图 4 1 所示 初始化 PC 机后 创建网络连接 查看网络是否正常 当网络处于 正常工作状态时 PC 机向网络数据釆集终端单片机发送 指令 当单片机接收到该 指令后 读取 A D 转换的结果 通过网络传输给 PC 机 PC 机接收该数据后 读取并显 示接收到得数据 查看数据是否接收完 若接收完 再次等待接收网络传输来的数据 如此循环的接收并显示数据 N Y N NNnNN Y 图 4 1 PC 机程序设计流程 下面讲述客户端的具体建立过程 1 基于 Visual Studio 平台 建立基于对话框和 WINDOWS SOCKETS 的通信工程 Socket 函数采用客户 服务器的通信机制来实现网络之间的连接和数据交换 在 TCP UDP 测试环境下进行客户端通信程序设计 Socket 函数建立指定的地址格式 数据类型和协议 下的套接口 地址格式为 AF INFT 唯一支持的格式 数据类型 SOCKET STREAM 表 开始 初始化 创建网络连接 网络是否正常 发送 指令 PC 机接收数据 读取并显示接收到 的数据 数据是否接收完 12 示建立流式套接口 Socket 的通信流程图如图 4 2 所示所示 a 服务器端 网络采集终端 b 客户机端 PC 机 图 4 2 Socket 套接字通信流程 2 在生成的对话框中选择一些适当的空间如按钮 文本框 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 向派生类中添加成员变量 用作指向父对话框的指针 类型为 CTalkDlg 变量名 为 m pDlg 并添加成员函数 SetParent CTalkDlg pDlg 7 对套接字添加处理函数 在其成员函数 SetParent 中添加代码如下 Y N 开始 创建 Socket 连接 接受 分析命令 是否开始采集 启动数据采集 发送数据 开始 发送控制命令 创建 Socket 连接 处理数据 接收数据 Y N 13 Void SetParent 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 初始为 192 168 1 25 m strServName 192 168 1 25 初始化端口为 4000 m nServPort 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 EnableWindow True GetDlgItem IDOK EnableWindow True GetDlgItem IDC STATIC MSG EnableWindow True GetDlgItem IDC BTN CLOSE EnableWindow True 13 现在已经连接好了 但不能实现通讯 把相应的消息添加到相应的列表框中 双 击 发送 按钮 添加如下代码 Int nLen Int nSent 14 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 new char 1025 Int nBufSize 1024 Int nReceived CString strReceived 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 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 双击 断开 按钮 添加如下代码 Void CTalkDlg OnBtnClose OnClose 17 编译运行调试程序 16 4 3 上位机 PC 界面 上位机 PC 端界面如图 4 3 所示 显示了连接 断开 数据采集等按钮功能 并显示 了服务器 IP 地址 端口号等 采集到的数据将会显示在信息文本框中 图 4 3 PC 上位机客户端界面 17 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地址192 168 1 25 端口号4000 点击 连接 按 钮 系统信息窗口会有提示信息出现 如果连接服务器成功 断幵 按钮由无效变为有 效 PC机上的用户界面显示如图5 1所示的信息 连接成功后点击 幵始釆集 按钮并发 送 命令到单片机终端 终端幵始釆集数据并通过以太网将数据上传到上位机 在用 户界面中显示如图5 2所示的信息 图 5 1 客户端连接服务器 18 图 5 2 客户端数据采集结果 5 3 遇到的问题讨论 在进行系统调试过程中 由于受到各方面条件限制以及因素影响 遇到了一些问题 在此予以讨论 1 网络通信刚开始建立成功比较难 经过多次尝试后才找到问题原因 并通过各方 面的帮助 最终解决了通信问题 2 客户端的设计实际上就是一个Windows Socket通信的过程 但由于对套接字不是很 熟悉 因此建立通信过程花了很长时间 3 数据来源于传感器 其他外部电路的设计此处没有作介绍 4 单片机网络通信的其他方式值得继续研究 以比较通信的准确度和稳定性等 19 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 对上位机监控程序和软件进一步完善和优化 上位机程序的设计相对比较简单 关键在于根据相应协议实现通信 上位机软件可以增加数据处理模块 实现对数据进行 统计 自动操作 输出打印等功能 进而实现比较完美的上位机显示和监控 20 参考文献 1 徐辉 基于Internet技术的嵌入式数据采集与控制系统的研究 J 现在电子技术 2008 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 微型与应用 2009 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 长江大学 2010 6 9 15 梁海波 基于网络通信的嵌入式数据采集系统的研究 D 哈尔滨 哈尔滨工程大学 2008 4 5 16 杨苏飞 基于DSP的微机保护实验教学系统的上位机软件设计与实现 D 成都 西南交通大学 2010 26 28 21 附 录 单片机发送端程序 发送主程序 ORG 0023H AJMP ACINT ORG 8030H 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 22 CLR ES CLR TR1 AEND INC DPTR RET1 上位机软件设计 对套接字添加处理函数 在其成员函数 SetParent 中添加代码如下 Void SetParent CTalkDlg pDlg m pDlg pDlg 在 CMySocket 类中添加 OnConnect

温馨提示

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

评论

0/150

提交评论