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 例 》



更多相关文章:
基于LabVIEW的实验室远程监控系统设计与实现(毕业设计)
基于LabVIEW的实验室远程监控系统设计与实现(毕业设计...相连的远端获得动态数据或将控制信号传送到远端,使在...则网络带宽需要 达到 100M 的以太网,且网络上不能...
基于LabVIEW RT 的实时数据采 集传输网络
基于LabVIEW RT 的实时数据采 集传输网络_信息与通信_工程科技_专业资料。基于 LabVIEW RT 的实时数据采 集/传输网络 ""本文利用虚拟仪 器简便高效的特点, 把图...
基于LabVIEW的Socket程序设计
关键字:DataSocket;数据传输 0. 前言虚拟仪器技术是基于计算机的仪器与测量技术。 DataSocket 技术是一种面 而 向测控领域的通过网络实时进行数据交换的编程技术,它...
基于LabVIEW的TCPIP网络计算器设计_图文
IP 层接收由更低层(网络接口层例如以太网设备驱 动程序)发来的数据包,并把...b) 和 C 语言同样,LabVIEW 提供了多样的运行结构。 c) 数据传输的载体是字符...
基于Labview的USB接口上位机设计
基于LabVIEW 的 USB 接口上位机设计一、数据传输 USB 模块 1.1 概述 CH375 ...总线和环境的限制,可用 来对 USB、GPIB、串口、VXI、PXI 和以太网系统进行配置...
基于LabVIEW的利用TCP协议进行双机通信_图文
基于LabVIEW的利用TCP协议进行双机通信_计算机软件及...本文主要介绍怎样用 LabVIEW 完成 局域网双机通信。 ...UDP 数据的传输,提供无连接的、不可靠的数据投递...
LabView实现远程数据采集与传输
LabView实现远程数据采集与传输_工学_高等教育_教育专区...设计过程调用到 LabView 提供基于 TCP 连接的 VI ...数据的采集与传输通常需要专用的网 络,花费较大.本...
基于labview的示波器设计
可以实现更高的数据传输率、 更方便的使用方式,更为优越的体现出虚拟仪器的性能...LabVIEW,以及基于PXI、PCI、PCI Express、PXI Express、USB 和以太网的模块化...
以太网传输速率与距离的关系图
在 IEEE802.3z 中,基于最坏条件考虑,给出了在最大传输距离时的链 路功率...即由原来 的以太网数据帧映射为 SDH 帧, SDH 的信号在 SDH 传输平台上传送...
基于labview的智能家居控制设计
基于labview的智能家居控制设计_信息与通信_工程科技_...用 户使用 Web 浏览器,通过以太网远程访问内置 Web...突破传统仪器在数据处理、显示、传输、存储等方面的...
更多相关标签:

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

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