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



更多相关文章:
基于ARM和LabVIEW的网络数据采集测试系统设计
基于ARM和LabVIEW的网络数据采集测试系统设计_计算机软件及应用_IT/计算机_专业...下位机的虚拟仪器负责信号的采集,通过以太网数据传输到上位机,利用上位机强大...
基于Labview的USB接口上位机设计
基于LabVIEW 的 USB 接口上位机设计一、数据传输 USB 模块 1.1 概述 CH375 ...总线和环境的限制,可用 来对 USB、GPIB、串口、VXI、PXI 和以太网系统进行配置...
基于LabVIEW的Socket程序设计
关键字:DataSocket;数据传输 0. 前言虚拟仪器技术是基于计算机的仪器与测量技术。 DataSocket 技术是一种面 而 向测控领域的通过网络实时进行数据交换的编程技术,它...
基于LabVIEW的车顶天窗生产线检测站应用
基于LabVIEW 的车顶天窗生产线检测站应用 【摘要】以 LabVIEW 2012 为软件开发...数据的采集是 PLC 的 AD 模块完成的,然后通过工业以太网数据传输到 工控机...
以太网传输速率与距离的关系图
在 IEEE802.3z 中,基于最坏条件考虑,给出了在最大传输距离时的链 路功率...即由原来 的以太网数据帧映射为 SDH 帧, SDH 的信号在 SDH 传输平台上传送...
四种以太网数据包详解
以太网, 详解, 数据以太网, 详解, 数据 转自:CSNA 网络分析论坛 http://...FCS:数据帧校验序列,用于确定数据包在传输过程中是否损坏。 2.3 Ethernet 802....
以太网数据包格式
以太网数据包格式_信息与通信_工程科技_专业资料。MAC...这里可以把从 A 到 B 的传输时间设为 T,在极端...s=&threadid=75968 基于上面所说的原因,也因为考虑...
为什么以太网的最小数据帧为64字节
512 个位时,也就是 64 字节的传输时间,如果以太网数据包大于或等于 64 个字节,就 能保证碰撞信号到达 A 的时候,数据包还没有传完。 这就是为什么以太网要...
单片机如何控制以太网网卡进行传输数据
单片机如何控制以太网网卡进行传输数据_信息与通信_工程科技_专业资料。单片机网络...--作者以下文章的描述全部基于自己的电路图,而不是来自 8052.lphard.cz 的...
基于TCPIP的串口数据传输的实现
基于TCPIP的串口数据传输的实现_信息与通信_工程科技_专业资料。基于 TCP/IP ...2.2 以太网接口及控制模块 这个模块主要由以太网接口部分和以太网控制部分构成...
更多相关标签:
以太网数据传输    以太网数据传输过程    labview udp 传输数据    labview 数据传输    labview以太网通讯    labview 以太网 例子    labview以太网通信    labview 以太网    

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

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