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的数据采集系统的设计与实现_工学_高等教育...串口、VXI、PXI 和以太网系统进行配置、编程和调试...理论上 USB1.1 的传输速度可以达到 12Mbps/秒,而...
基于LabVIEW的TCPIP网络计算器设计_图文
IP 层接收由更低层(网络接口层例如以太网设备驱 动程序)发来的数据包,并把...b) 和 C 语言同样,LabVIEW 提供了多样的运行结构。 c) 数据传输的载体是字符...
基于LabVIEW的Socket程序设计
关键字:DataSocket;数据传输 0. 前言虚拟仪器技术是基于计算机的仪器与测量技术。 DataSocket 技术是一种面 而 向测控领域的通过网络实时进行数据交换的编程技术,它...
基于Labview的CAN总线通信仿真_图文
基于虚拟仪器的 CAN 总线通信仿真控制器局部网 (CAN-CONTROLLERAREANETWORK) ...总线的数据链路层的数据传输进行仿真, CAN 总线的标准为 CAN2.0A/B,数据格式...
基于LabVIEW的利用TCP协议进行双机通信_图文
基于LabVIEW的利用TCP协议进行双机通信_计算机软件及...本文主要介绍怎样用 LabVIEW 完成 局域网双机通信。 ...UDP 数据的传输,提供无连接的、不可靠的数据投递...
LabView实现远程数据采集与传输
LabView实现远程数据采集与传输_工学_高等教育_教育专区...设计过程调用到 LabView 提供基于 TCP 连接的 VI ...数据的采集与传输通常需要专用的网 络,花费较大.本...
基于ARM和LabVIEW的网络数据采集测试系统设计
基于ARM和LabVIEW的网络数据采集测试系统设计_计算机软件及应用_IT/计算机_专业...下位机的虚拟仪器负责信号的采集,通过以太网数据传输到上位机,利用上位机强大...
基于Labview的USB接口上位机设计
基于LabVIEW 的 USB 接口上位机设计一、数据传输 USB 模块 1.1 概述 CH375 ...总线和环境的限制,可用 来对 USB、GPIB、串口、VXI、PXI 和以太网系统进行配置...
基于LABVIEW的网络化温室测控系统设计(小论文)
同时 利用以太网接口, 通过通讯和数据发布模块, 实现与其他分析系统或网络的互联...这样使得建立网络虚拟仪器更加容易和方便,而不必去学 习复杂的 TCP/IP 传输...
基于labVIEW的电能质量分析系统
基于labVIEW 的电能质量分析系统——数字信号处理在节能监管平台中的应用摘要:论文...电流信号进行数据的预处理, 并通过基于以太网的数据通信系统将数据传输至 PC 机...
更多相关标签:

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

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