9512.net
甜梦文库
当前位置:首页 >> >>

基于LabView的以太网数据的传输



您的论文得到两院院士关注 文章编号 :1008-0570(2008)11-3-0145-02

网络与通信

基于 LabView 的以太网数据的传输
An Ethernet Data Transmission Method Based On Labview
( 南 昌 航空 大学 )

王惠强 胡景

春 卢小文 田 吉

WANG Hui-qiang HU J ing-chun LU Xiao-wen TIAN J i
摘要 : 在 以 太 网 络 虚 拟 仪 器 数 据 采 集 系 统 中 , 对 LabView 开 发 环 境 下 访 问 以 太 网 络 的 能 力 进 行 扩 充 , 采 用 CLF 节 点 技 术 调 用 动 态 链 接 库 , 应 用 WinPcap 技 术 实 现 以 太 网 络 数 据 采 集 。 关键词 : 以 太 网 ; 虚 拟 仪器 ; 动 态 链 接 库 中图分类号 : TP393.1 文献标识码 : A

Abstract: In the article, a method of acquiring data under LabVIEW developing workbench through Ethernet is chiefly introduced. In order to rectify the drawbacks of accessing Ethernet in LabVIEW development ,the technology of calling dynamic link library by CLF node is presented . Key words: Winpcap; virtual instrument; LabView; dynamical-link library; Ethernet
本 文中 主要 用到的 编 程 接 口 有 :

1 引言
Visual Instrument (VI , 虚 拟 仪 器 ) 是 以 计 算 机 强 大 的 软 硬 件
资 源 作 为 仪 器 的 支 撑 ,利 用 高 性 能 的 模 块 化 硬 件 ,结 合 高 效 灵 活 的 软 件 组 成 的 ,来 完 成 各 种 测 试 、测 量 和 自 动 化 的 应 用 的 各 种 各 样 的 仪 器 系统 。 随 着 计算 机 网 络 的 发 展 , 虚 拟 仪 器 与 网 络 技术的 结 合为 虚 拟 仪器 网 络 化 提 供了 良 好 的 实现 平 台 。 美 国 NI 公 司 的 LabVIEW 是 目 前 在 虚 拟 仪 器 中 使 用 较 为 广 泛 的 图 形 化 设 计 语 言,它 对 软 件 对 象 “虚 拟 仪 器 ”进 行 图 形 化 的 组 合 操 作 。 由于 LabView 开 发 环境 访 问 底 层 网 络 能 力方 面 的 不 足 , 无 法 对 底 层 的 数 据 包 进行 分 析 , 因 而 存 在一 定 的局 限 。 本 文 介 绍 在 LabView 开 发 平 台 上 结 合 WinPcap 技 术 实 现 以 太 网 数 据 采集 传 输 。

图 1. IEEE802.3 标准 数 据 包 的 格 式 (1 ) 查 找 设 备 : 捕 获 数 据 的 第 一 步 是 确 定 在 哪 个 网 络 。 连 接 方 法 是 调 用 pcap_findalldevs 进 行 监 听 调 用 函 数 寻 找 本 机 可 用的网 络 接 口 。 当 不 再 需 要 网 卡 列 表 时 , 用 函 数

技 术 创 新

pcap_freealldevs 释 放 空 间 。 (2 ) 打 开 设 备 与设 置操 作 : 就 是 建立 监 听 对 话 , 可 以 打 开 设 立 监 听 会 话 的 函 数 是 pcap_open_live 它 们 将 返 回 一 个 包 捕 获 器
的 描述 符 , 如 果调 用 成功 , 用 作后 面 函 数 调 用的 参数 。 打 开 正 确 适配 器后 , 应 设 置 监 听 模 式 为 混 杂 模 式 。 (3 ) 数 据 包 的 捕 获 及 处 理 : 调 用 函 数 pcap_next_ex 来 捕 获 数据包。 (4 ) 简 单 数 据 包 的 发 送 : 调 用 函 数 pcap_sendpacket 来 发 送 数 据 包 。 该 函 数 要 一 个 装 有 要发送 数 据 的 缓冲 区 。 注 意 缓冲 区 中的 数 据 将 不 被 内核 协 议 处 理 , 只 是 作 为 最 原 始 的 数 据 流 被 发 送 , 所 以 我 门 必 须 按 IEEE802.3 标 准 填 充 好 协 议 头 以 便 正 确 的 将数 据发送 。

2 winpcap 技 术
winpCap 是 UNIX 下 的 libpcap 移 植 到 windows 下 的 产 物 。 主要 功能 就 是 捕 获 原 始 数 据 报 , 包括 在 共享网 络 上 各 主机发送 /
接收和互之间交换的数据报; 以及在数据报发往应用程序之 前 , 按 照 自 定 义 的 规 则 将 某 些 特 殊 的 数 据 报 过 滤 掉 。 WinPcap 提 供了 一 套 标准 的 抓 包接 口 , 与 libpcap 兼 容 , 可 使 得 原 来 许 多

UNIX 平 台 下 的网 络 分 析 工 具 快 速 移 植 过 来 , 以 用 于 开 发 各 种
网 络 分 析 工 具 ,其 充 分 考 虑 了 各 种 性 能 和 效 率 的 优 化 ,包 括 对 于 NPF 内核 层 次 上的 过 滤 器支持 , 支持 内核态 的 统 计模 式 , 提 供了 发送 数 据 包 的 能 力 。

3 重 写 DLL
由于 Labview 缺 少 内 存 指 针 数 据类型 , 因 而 无 法 直 接 调 用 Wpcap.dll 中 的 函 数 , 必 须 重 新 生 成 dll 文 件 。 重 写 时 可 将 函 数 pcap_findalldevs ,pcap_open_live 和 pcap_freealldevs 一 起 写 成 对 网 络 接 口 进 行 查找 设 置 的 初 始 化 函 数 void eth_set() 。 其 中 对 网 络 适配 器进行 模 式设 置 的 代 码 如 下 :

winpcap 工 作 在 网 络 数 据 链 路 层 , 其 捕 获 的 数 据 包 为 帧 , 在
结构上符合链路层的相关标准。 以太网数据包的格式的

IEEE802.3 标准 如 图 1 所 示 。 WinPcap 为用 户 编 程 提 供 了一 系 列 功能 强 大 的 函 数 调 用 ,
王 惠 强: 硕 士 基金 项 目 : 基 于 网 络 的 制 造 设备 自 动 监控 管 理 技 术 , 江 西省 2006 年 自 然 科学 基金 (0611092), 南 昌 航 空 大学 2006 年 创新 基金 《 P LC 技术应用 200 例 》

if ( (adhandle= pcap_open_live(d->name, // 设 备名称 65536, // portion of the packet to capture. 1, // 混 杂 模 式 1000, // 读 超 时 为 1 秒 errbuf // error buffer
邮局订阅号 :82-946 360 元 / 年 - 145 -

网络与通信

中 文 核 心 期 刊 《 微 计 算 机 信 息 》 ( 管 控 一 体 化 )2008 年 第 24 卷 第 11-3 期 完 成 即 把 用 户自 定义 程 序 与 LabVIEW 的 CLF 节 点 连 接 起 来 。

技 术 创 新

) ) == NULL) { pcap_freealldevs(alldevs); return ; } 用 void eth_send(CStr input,int i) 调 用 pcap_sendpacket 发送 数 据 帧 。 其 中 input 是 必 须 按 IEEE802.3 标 准 填 充 的 数 据 报 缓 冲 区 的 指 针 ,i 为 发送 数 据 报 的 最 大 值 ( 包括 目的 地 址 及 源 地 址 在 内 )。 void eth_send(CStr input,int i) //_stdcall { if(adhandle== NULL)return; pcap_sendpacket(adhandle,input,i); return; } 用 int eth_rec (CStr mac_head,CStr mes) 调 用 pcap_next_ex 捕 获 帧 , 其 中 mac_head 为 所 需 帧 的 头 部 规 格 ,mes 为 去 帧 除 地 址 后 的 长 为 mes_length 的 数 据 , 返 回 1 时 为 成 功 捕 获 , 为 0 未 捕 获 ,-1 为 错 误 。 int eth_rec(int mes_length,CStr mac_head,CStr mes)//_stdcall { int i ,mes_length=18; int rec; struct pcap_pkthdr *header; const u_char *pkt_data; unsigned char *tempch; while ((rec = pcap_next_ex ( adhandle, &header, &pkt_data)) >= 0) { if(rec == 0)return 0; for(i=0;i<12;i++)if(pkt_data[i]! =localmac[i])return 0; tempch=(unsigned char *)(pkt_data+12); i=0; while(tempch[i]&&i<mes_length){mes[i]=tempch[i];i++;} return 1; } if(rec == -1)return -1; }

5 Labview 中 太 网 数 据 采 集 的 实 现
以 发送 简 单数 据 包 为例 , 如 图 2 :

图 2 发送 数 据 包 图 中 对 于 输 入 的 物 理 地 址 , 仅 限 制 了 12 位 字 符 输 入 ( 即 6 字 节 mac 地 址 ),未 判 断 是 否 满足 16 进 制 输入 。 其 中 第一 个 CLF 节 点 为 调 用 eth_set 函 数 节 点 , 第 二 个 CLF 节 点 为 调 用 eth_send 节 点 ,入 口 参数 为 发送 数 据 字 符串 及 发送 数 据 包 的大 小 。 发送 数 据 必须 按 IEEE802.3 标准 填 充 。 子 Vi 作 用是 把 目的 地 址 , 源 地 址 和 要 发送 的 信 息 , 结 合 在 一 起 形 成 完 整 的 数 据 包 , 然 后 调 用 CLF 节 点 发送 数 据 包 。 由 于 所 用 地 址 为 物 理 地 址 , 而 输 入 为 字 符 串 形 式 ,故 必 须 将 物 理 地 址 转 化 为 字 符 串 形 式 。 其 转 化 程 序 如 图 3。

图 3 字 符串 转 化 为 物 理 地 址 数 据 包 捕 获 的 CLF 节 点 的 连 接 如 图 4 :

图 4 数据包捕获 图 中 第 一 个 CLF 节 点 为 调 用 eth_set 函 数 节 点 , 第 二 个

CLF 节 点 为 调 用 eth_rec 函 数 节 点 , 入 口 参数 mac_head 是由目
标 地 址 和 源 地 址 连 接 的 物 理 地 址 头 ,表 示 选 择 目 的 地 址 与 本 机 物 理 地 址 源 地 址 与 参数 源 地 址 相 同的 数 据 包 。 第 二 个 参数 为 长 度 为 mes_length=18 的 一 个 字 符 串 , 由 于 要 对 内 存 进 行 写 操 作 , 因 而 必须 生 成 相 应 长 度 的 字 符串 。 设 置好 后进行 两 机互 联 , 两 机 通信 的前 面 板 如 图 5 :

4 CLF 调 用 动 态 链 接 库
LabVIEW 环境 中 提 供 的 CLF(Call Library Function) 节 点 用
于 实 现对 用 户 自己 开 发 的 动 态 链 接库 文 件 进行 调 用 , 从而 完 成 一 些 特 殊 功 能 。 在 利 用 winpcap 生 成 所 需 要 的 动 态 链 接 库 后 ,

labview 用 CLF 的 功能实现 调 用 。 使 用 CLF 节 点 调 用用 户自 定
义 的 动 态 链 接库 文件 其 创 建过 程 及 一 些 要 点 如 下 : 图 5. 两 机 通信 的前 面 板 显示 前 者 为 主 机 ,从 本 机 地 址 发 送 简 单 信 息 到 目 标 地 址 ;后 者 为 监 控 机 , 监 控 从 源 地 址 发送 到目 标 地 址 2 的 信 息 , 参数 output

1) 编 译 DLL 文 件 时 , 要 将 Winpcap 的 Include ,Lib 目 录 添 加 进 VC6.0 的 环 境 变 量 中 ; 先 用 VC 打 开 项 目 , 然 后 在 "Project->Settings" , 标 签 栏 出 选 择 "C/C++" , 在 "Preprocessor definitions" 的 输 入 框 里 添 加 "WPCAP" , 再 选 择 "Link" , 在 "Object/library modules" 的 输入框 里 添 加 "wpcap.lib Packet.lib" 2) 在 CLF 节 点 的 弹 出 configure 菜 单 的 对 话 框 进 行 相 关 设
置 ,如 动 态 链 接 库 的 路 径 、名 字 、参 数 类 型 及 返 回 类 型 等 ,设 置

param=1 表 示 捕 获 成功 ,string 2 显示 捕 获 信息 。

6 结束语
数 据 包 捕 获 技术是网 络 管理 系统 的关 键 技术 , 利 用 一 般 的

Labview 网络插件捕获数据包有十分明显的缺点 。 (下 转 第 142页 )

- 146 - 360 元 / 年 邮局订阅号 :82-946

《 现 场 总线 技术应用 200 例 》

网络与通信
编码表作特殊处理。

中 文 核 心 期 刊 《 微 计 算 机 信 息 》 ( 管 控 一 体 化 )2008 年 第 24 卷 第 11-3 期

要 特 殊 情 况 :b6 中 b111000 、b000111 ,b4 中 1100 、b0011 , 根 据

平 台 上 进行 综 合 , 实现 。 各 个 仿真 波 形 如 图 所 示 。

测 datain 是 否 在 12 种 K 码 中 , 如 果 不 是 则 用 k_err 指 示 出 错 , dout 输 出 为 0 ; 否 则 根据编 码 表 对 应 输 出 10bit 符 号 。

技 术 创 新

测 输入 的 10B 符 号是 不 是 许 用 码 字 、K 码 还 是 D 码 。 如 果 传 输 过 程中 出 错 出现 禁 字 或 者 是 出现 RD 违 规 , 用 code_err 表 示 ; 字符。

在 altera 和 xinlinx 的 不 同 系 列 芯 片 中 都 有 一 个 很 好 的 性 能 , 最

高工 作 频 率 都 能 达 到 250MHz , 满 足 PCI Express 的 高 速 数 据 传

输 性 能 , 如 表 1 所 示 。 这 里 采 用 altera 的 系 列 芯 片 可 以 跟 参考 文 献 5 作 比 较 , 经 过 代 码 的 优 化 , 提高 了 编 解 码 器 的 性 能 , 特 别 是 所能 工 作 的 最 高 频 率 , 满足 了 高 速 传 输 的 要 求 。

8BlOB 编 码 器 是 设 计 PCI Express 总线 的 一 个 重 要 部 分 。 本 方法创新 点 是 使 用 少 量 逻 辑 实 现 了 8B10B 编 解 码 , 在 ISE 上 进 行 功 能 综 合 、 时 序 仿 真 , 并 下 载 到 FPGA 器 件 上 进 行 测 试 , 实 验 结果 很 好 , 满足 PCI Express 的 高 速数 据 传 输 性 能 , 实 现 了 一 个 性 能 良 好 的 8B10B 编 解 码 系统 ; 同 时 它 具 有 很 好 的 可 移 植 性 , 可 作 为 软 核 嵌 入 到 需要 8B10B 编 解 码 的 电 路 设 计 中 , 具 有 一 定
的实用价值。

参考文献

[1]PCI-SIG.PCI Express Base Specification Revision 1.0a. 2003. [2]Intel Corporation.PHY Interface for the PCI Express Architec- ture Draft Version 1.86, February, 2006. (美 ) [3] Ravi Budruk Don Anderson Tom Shanley 等著,田玉敏等
- 142 - 360 元 / 年 邮局订阅号 :82-946

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?       ?          ! "   #     ! "  # $ %  & 1 2 3 ' # 4 ( 5 ) % 7 6 0 8 E 9 $ @ A F G B H F C D I 7 ?P
3 编解码仿真分析
根 据 上 面 的 设 计 方 案 , 在 modelsim 上 进 行 仿 真 , 并 ISE9.1i

译.PCI Express 系统体系结构标准教材 [M].北京:电子工业出版 社,2005. 吴晴.PCI Express (下一代内部互联技术) 在嵌入式系 [4]董铁庄, 统中的应用 [J] .微计算机信息, 2005, 21-3: 99-100. [5]李宥谋. 8B/10B 编码器的设计及实现[J].电视技术,2005 年,第六期.
作者简介 : 林 锦 棠 (1983 一 ) , 男 , 福 建 泉 州 人 , 通 信与 信 息 工程 专

图 3 编 码 器 的 仿真 波 形

如 图 3 编 码 器 的 仿 真 波 形 中 , 可 以 看 出 contrl 为 1 时 , 检

业 硕 士研究生 , 主要 研究方 向 : 光 通信 技术 与 应用 . Biography:LIN Jin -tang (1983 - ) male, Fu Jian Province , GuiLin University of Electronic Technology, graduate Student. Research area: Optical Communication Technique and Application. (541004 桂 林 桂 林 电 子 科技大学通信 与 信息工 程系 ) 林 锦 棠 (Dept. of Communication and Information Engineering , Guilin University of Electronic Technology , Guilin 541004 ) LIN Jin-tang 通讯地址 :(541004 桂 林 电 子 科技大学 研 F2 信 箱 ) 林 锦 棠
( 收稿日 期 :2008.10.23)( 修 稿日 期 :2008.11.18)

图 4 解 码 器 的 仿真 波 形 如 图 4 解 码 器 的 仿 真 波 形 中 ,可 以 看 到 解 码 中 ,就 是 要 检

( 上 接 第 146 页 )

主 要 是 它 捕 获 到 的 数 据 包 头 不 含 帧 信 息 , 也 不 能 接 收 到 与 IP 同 层 的 其 它 数 据 包 , 本 方 法 通过 利 用 Winpcap 技术 捕 获 以 太 网

如 果 是 K 码 , 用 k_out 表 示 ; 否 则 根 据 编 码 表 解 码 输 出 8bit

络 底 层 数 据 包 , 弥 补 了 LabView 开 发 环 境 访 问 底 层 网 络 能 力 的 本 文 的 创 新 点 是 : 把 虚 拟 仪 器 技 术 与 WinPcap 技 术 相 结

不足。

合 , 详 细 描 述了 LabVIEW 利 用 WinPcap 技 术 进 行 以 太 网 数 据

的 传 输 和 监 控的方法 , 该 方法 切 实 可 行 , 有 一 定 的 借 鉴 意义 。

图 5 编 解 码 的 仿真 波 形 通过 对 各 个 仿 真 波 形 分 析 , 该 编 解 码 能 很 好 的 工 作 。 同 时

表 1 各 个 平 台 的 性 能 指标

参考文献 [1]李机闯,胡景春,赵矿军.基于 Labview 的电表校验虚拟仪表接 口控制[J].微计算机信息,2007,10-1:124-126 [2] 马 芳 , 张 红 民 , 王 月 浩 , 马 金 超 . 基于 DLL 的 LabView 与 VC, Matlab 混合编程.现代计算机,2006,4:91-93. [3]徐美华,王振旗,韩秀娟.利用 WinPcap 技术捕获数据包. 第 二 十次全国计算机安全学术交流会论文 [4]简清明.基于 WinPcap 库的通用程序设计模型.计算机系统应 用,2007,2:91-93 [5]杨乐平,等.LabVIEW 程序设计与应用[M].北京:电子工业出版 社,2001,7. [6] 尤 文 坚 , 利 用 Winpcap 捕 获 网 络 底 层数 据 包 的方法 , 科 技资 讯, 2006, No.25:84-85
作者简介 : 王 惠 强 (1977- ), 男 ( 汉族 ), 福 建 惠 安人 , 硕 士 , 主要 研 究 方 向 : 嵌 入 式 系 统 ; 胡 景 春 , 男 ,1951.2-, 辽 宁 宽 甸 人 ( 满 族 ), 硕 士 , 主要从 事 计算机 智 能 控制 系统 及 虚 拟 仪 表 的研究

结论

Biography: WANG Hui -qiang, Male, the Han nationality,Born in 1977 in Huian, Fujian Province, Master, Major Research area: Embedded Control System (330063 南 昌 南 昌 航空大学 计 算机学院 ) 王 惠 强 胡 景 春
卢小文 田 吉

(Nanchang Hangkong University, School of Computer Science and Technology )WANG Hui-qiang HU Jing-chun LU Xiao-wen TIAN Ji 通 讯 地 址 :(330063 江 西 省 南 昌 市 丰 和 南 大 道 696 号 南 昌 航 空 大学 前 湖 校 区 93# 信 箱 ) 王 惠 强

( 收稿日 期 :2008.10.23)( 修 稿日 期 :2008.11.18)

《 现 场 总线 技术应用 200 例 》



更多相关文章:
基于以太网的电梯远程监控系统设计-本科毕业论文
本文以计算机技术和网络技术的发展为课题背景,论述了利用虚拟仪器基于以太网的电梯远程监控系统的开发过程,主要完成课题中利用带有 TCP/IP 协议的接口进行数据传输...
1MW太阳能光伏电站参数数据收集与上传
数据通过 USB 串行总线传输到上位机,通过 LabView ...网状网的方式将数据发送到无线网关中,无线网关基于...以太网等接口,将数据直接发送到 控制站内服务器中...
芜湖全网智能化监听数据配置指导(20060116)
基于LabVIEW的以太网数据... 5页 免费 如何配置Oracle数据库监... 11页 1下载...资料编码 使用对象 编写部门 工程师 固网技术支持 产品名称 产品版本 资料版本 ...
基于labview的示波器设计
可以实现更高的数据传输率、 更方便的使用方式,更为优越的体现出虚拟仪器的性能...LabVIEW,以及基于PXI、PCI、PCI Express、PXI Express、USB 和以太网的模块化...
基于LABVIEW的网络化温室测控系统设计(小论文)
同时 利用以太网接口, 通过通讯和数据发布模块, 实现与其他分析系统或网络的互联...这样使得建立网络虚拟仪器更加容易和方便,而不必去学 习复杂的 TCP/IP 传输...
USB数据采集系统中DMA数据传输的实现
为今天低 成本虚拟仪器系统的主流。本文设计了基于 USB2.0 高速传输数据采集...可用来对 USB、GPIB、串口、 PCI、VXI、PXI 和以太网系统进行配置、编程和调试...
基于arm与zigbee数据采集论文
基于Labview 和 Zigbee 网络的数据采集系统 摘要:为实现对当前城市环境质量的实时...坐标位置信息并送到 ARM/Linux 平台处理,然后通过 DN900 以太网控制芯片传输到...
基于Labview的网上家居控制平台的设计
智能家庭控制系统是以 HFC、以太网、现场总线、公共电话网、无线网的传输网 络...连线:代表执行过程中的数据流。 3.2.3 LabVIEW 的操作模板设计一个 LabVIEW ...
基于labview的智能家居控制设计
基于labview的智能家居控制设计_信息与通信_工程科技_...用 户使用 Web 浏览器,通过以太网远程访问内置 Web...突破传统仪器在数据处理、显示、传输、存储等方面的...
电子信息工程毕业设计题目大全
基于 GSM 短消息的远程数据采集传输系统 基于 GSM ...基于 labview 的虚拟滤波器的设计 基于单片机的语音...基于单片机和以太网的数据采集系统的设计 1、用 PLC...
更多相关标签:
以太网数据传输    stm32 以太网传输数据    以太网数据传输过程    以太网传输数据顺序    labview udp 传输数据    labview以太网通讯    labview以太网通信    labview 以太网 例子    

All rights reserved Powered by 甜梦文库 9512.net

copyright ©right 2010-2021。
甜梦文库内容来自网络,如有侵犯请联系客服。zhit325@126.com|网站地图