测 控 技 术 与 仪 器 仪 表 Meas urement Control Technology and Ins truments
基于 LabVIEW 和 USB- CAN 卡的
实时数据采集系统及应用
杜 青 , 汪 殿 龙 , 王 兴 媛 , 齐 铂 金
( 北 京 航 空 航 天 大 学 机 械 学 院 , 北 京 100083)
摘 要 : 针 对 燃 料 电 池 电 动 汽 车 所 用 大 功 率 DC/DC 变 换 器 开 发 了 一 套 基 于 LabVIEW 和 USB-
CAN 卡 的 实 时 数 据 采 集 和 控 制 系 统 , 实 现 了 PC 机 与 CAN 总 线 间 的 通 信 。
关 键 词 : 虚 拟 仪 器 LabVIEW USB- CAN ActiveX 数 据 采 集
大 功 率 DC/DC 变 换 器 在 燃 料 电 池 电 动 汽 车 中 是 关
键 零 部 件 之 一 。 为 了 研 究 其 变 换 规 律 及 进 行 数 据 分 析 ,
需 要 对 其 各 类 参 数 进 行 数 据 采 集 。 LabVIEW 是 美 国 NI
公 司 推 出 的 一 种 虚 拟 仪 器 软 件 开 发 工 具 , 是 当 今 计 算 机
辅 助 测 试 ( CAT) 领 域 的 一 项 重 要 技 术 , 功 能 强 大 , 开 发
效 率 高 , 界 面 友 好 美 观 , 因 此 采 用 基 于 LabVIEW 的 开 发
平 台 研 究 大 功 率 DC/DC 变 换 器 数 据 采 集 系 统 是 一 种 有
效 可 行 的 途 径 。
1 测 试 系 统 结 构 图
燃 料 电 池 电 动 汽 车 用 DC/DC 变 换 器 功 率 高 达
100kW 以 上 , 输 入 输 出 电 压 电 流 、工 作 温 度 是 变 换 器 的
主 要 状 态 参 数 。 为 了 及 时 准 确 地 了 解 和 分 析 DC/DC 的
工 作 状 态 就 需 要 记 录 并 分 析 上 述 各 参 数 , 因 此 , 开 发 一
套 DC/DC 变 换 器 实 时 数 据 采 集 系 统 是 必 要 的 。
CAN 总 线 因 具 有 实 时 性 强 、可 靠 性 高 、通 信 速 率 快 、
总 线 协 议 错 误 处 理 机 制 完 善 等 特 点 而 广 泛 应 用 于 汽 车
电 子 业 ; USB 总 线 因 其 传 输 速 率 快 、 即 插 即 用 、 通 用 性
强 、易 扩 展 和 性 价 比 高 等 特 点 而 越 来 愈 多 地 应 用 于 数 据
采 集 系 统 中 。 本 系 统 采 用 TI 公 司 的 DSP2407 作 为 下 位
机 DC/DC 变 换 器 控 制 板 主 控 芯 片 , 通 过 改 变 PWM 驱 动
波 形 来 控 制 主 电 路 IGBT 开 关 管 通 断 , 以 实 现 对 出 口 电
压 电 流 的 调 节 。同 时 通 过 霍 尔 传 感 器 将 上 述 参 数 采 集 到
2407 芯 片 中 通 过 CAN 总 线 经 USB- CAN 转 换 器 将 信 号
发 送 到 PC 机 的 USB 口 , 并 用 LabVIEW 处 理 显 示 , 硬 件
平 台 如 图 1 所 示 。
采 样
CAN 总 线
USB 总 线
DC/ DC
变 换 器
DSP2407
USB- CAN
Adapter
PC 机
LabVIEW
控 制
图 1 测 试 系 统 结 构 图
LabVIEW 提 供 了 PCI 总 线 、GPIB 总 线 、VIX 总 线 、串
口 总 线 的 图 形 化 驱 动 程 序 , 但 是 没 有 直 接 支 持 USB 总 线
驱 动 程 序 的 功 能 模 块 , 这 给 使 用 USB 设 备 完 成 数 据 采 集
的 用 户 带 来 了 一 定 的 困 难 。
2 软 件 编 程 设 计 思 路
2 . 1 虚 拟 仪 器 开 发 层 次 图
虚 拟 仪 器 的 核 心 思 想 是 “软 件 即 是 仪 器 ”, 用 软 件 来
代 替 传 统 的 硬 件 仪 器 , 以 节 约 成 本 , 提 高 开 发 效 率 和 增
强 系 统 的 灵 活 性 。 它 的 层 次 结 构 图 如 图 2 所 示 [1]。
操 作 系 统
虚 拟 仪 器 软 件 面 板
虚 拟 仪 器 开 发 者
虚 拟 仪 器 软 件 开 发 平 台
虚 拟 仪 器 用 户
底 层 驱 动 程 序
硬 件 模 块
图 2 虚 拟 仪 器 层 次 图
图 2 中 每 个 模 块 都 具 有 标 准 化 接 口 , 可 以 纵 向 与 相
邻 的 模 块 互 相 通 信 , 也 可 以 使 同 层 次 的 虚 拟 模 块 之 间 互
连 。 底 层 驱 动 程 序 是 整 个 软 件 的 基 础 , 其 功 能 首 先 是 利
用 硬 件 模 块 标 准 接 口 对 其 进 行 控 制 和 管 理 , 同 时 为 上 一
层 模 块 提 供 标 准 的 调 用 接 口 , 使 上 一 层 软 件 设 计 与 硬 件
无 关 , 从 而 使 整 个 系 统 的 开 发 与 仪 器 的 硬 件 变 化 无 关 。
2 . 2 USB 总 线 驱 动 模 型
由 于 本 系 统 的 硬 件 平 台 是 通 过 USB 总 线 实 现 与 PC
机 通 信 , 了 解 和 掌 握 USB 总 线 的 驱 动 机 制 是 有 必 要 的 。
Windows 操 作 系 统 下 USB 总 线 驱 动 模 型 如 图 3 所 示 [2]。
USB 驱 动 程 序 属 于 WDM( Win32 Driver Module ) 驱 动
程 序 , 采 用 分 层 驱 动 模 式 。 驱 动 程 序 最 上 层 包 含 一 个 函
数 驱 动 程 序 , 它 可 以 是 一 个 类 别 驱 动 程 序 或 一 个 特 定 的
设 备 驱 动 程 序 , 用 于 管 理 应 用 层 与 较 低 层 总 线 间 的 通
《电子技术应用》2007 年第 7 期 欢迎订购《电子技术应用》2000~2006 年合订光盘(010- 82306084)
75
测 控 技 术 与 仪 器 仪 表 Meas urement Control Technology and Ins truments
应 用 程 序
Win32 子 系 统
函 数 驱 动 程 序
总 线 驱 动 程 序
硬 件
Win32 API 函 数
用 户 模 式
I/ O 请 求 封 包 ( IRP )
I/ O 请 求 封 包 ( IRP )
核 心 模 式
硬 件 特 定 接 口
图 3 Windows 操 作 系 统 下 USB 总 线 驱 动 模 型
信 ; 驱 动 程 序 模 型 最 底 层 包 含 一 个 总 线 驱 动 程 序 , 用 于
管 理 函 数 驱 动 程 序 与 设 备 硬 件 之 间 的 通 信 ; 驱 动 程 序 中
间 有 一 个 或 数 个 过 滤 驱 动 程 序 用 来 辅 助 函 数 驱 动 程 序
与 总 线 驱 动 程 序 。应 用 程 序 使 用 Win32 API 函 数 与 操 作
系 统 通 信 , 驱 动 程 序 彼 此 间 使 用 I/O 请 求 封 包 IRP ( I/O
Request Packet ) 来 通 信 。Windows 定 义 了 一 群 驱 动 程 序 可
以 使 用 的 IRP , 每 一 个 IRP 执 行 一 个 输 入 或 输 出 要 求 。
总 线 驱 动 程 序 由 操 作 系 统 提 供 , 用 户 不 需 要 自 己 编 程 开
发 , 设 备 驱 动 程 序 可 以 由 操 作 系 统 提 供 , 也 可 以 由 设 备
生 产 厂 商 提 供 [2]。
3 具 体 编 程 实 现
3 . 1 VCI 函 数 调 用 流 程 图
本 系 统 采 用 德 国 IXXAT 公 司 的 USB- CAN 卡 完 成 信
号 转 换 。与 诸 多 CAN 卡 厂 商 一 样 , IXXAT 公 司 为 其 每 块
PC/CAN- Interface 都 提 供 了 一 套 功 能 强 大 的 软 件 开 发 包
VCI ( Virtual CAN Interfaces ) , 以 备 用 户 在 PC 机 上 开 发 应
用 程 序 使 用 , 该 开 发 包 包 含 了 基 于 Windows API 函 数 的
Demo 程 序 和 通 用 通 信 程 序 模 块 DLL 文 件 , 剩 下 的 工 作
主 要 是 通 过 LabVIEW 实 现 提 供 的 各 种 功 能 函 数 的 调
用 , 从 而 完 成 应 用 程 序 对 设 备 的 访 问 。 具 体 操 作 流 程 图
如 图 4 所 示 。
3 . 2 LabVIEW 编 程 实 现
在 LabVIEW 中 实 现 对 VCI 的 访 问 有 两 种 方 法 : 一 种
方 法 是 通 过 Advanced 面 板 中 CLF(Call Library Function)节
点 调 用 动 态 链 接 库 , 另 一 种 方 法 是 通 过 Communication 面
板 中 的 ActiveX 控 件 [3]直 接 使 用 VCI 中 的 方 法 和 属 性 。
CLF 节 点 的 配 置 方 法 如 图 5 所 示 : 用 户 通 过 Library
Name or Path 来 选 择 DLL 存 放 的 路 径 , 通 过 Function
Name 来 选 择 要 使 用 的 函 数 名 , Calling Conventions 来 选 择
WinAPI 或 是 自 己 开 发 的 C 函 数 , 通 过 Add/Delete Param-
eter 来 增 加 或 删 除 参 数 , 通 过 Parameter 来 设 置 参 数 名 ,
通 过 Type 来 指 定 参 数 类 型 。 该 节 点 使 得 LabVIEW 的 功
能 更 加 全 面 灵 活 , 应 用 极 为 广 泛 。 本 系 统 采 用 的 是 第 二
种 方 法 , 即 用 ActiveX 控 件 来 实 现 函 数 的 调 用 。
3 . 2 . 1 ActiveX 简 介
ActiveX 通 常 翻 译 为 “微 软 倡 导 的 网 络 化 多 媒 体 对 象
选 择 硬 件
初 始 化 板 卡 信 息
初 始 化 CAN
设 置 接 收 掩 码
初 始 化 接 收 队 列
配 置 接 收 队 列 ID 和 掩 码
初 始 化 发 送 队 列
启 动 CAN
是 否 发 送 ?
N
接 收 数 据
Y
发 送 数 据
是 否 停 止 ?
N
Y
结 束
图 4 VCI 函 数 调 用 流 程 图
图 5 CLF 节 点 设 置
技 术 ”, 它 实 际 上 是 一 整 套 建 立 在 COM (The Component
Object Model 组 件 对 象 模 型 ) 和 OLE (Object Linked And
Embedded 对 象 连 接 与 嵌 入 )基 础 之 上 跨 越 编 程 语 言 的 软
件 开 发 方 法 与 规 范 。 所 有 的 ActiveX 控 件 都 是 属 性 和 方
法 的 组 合 体 , 一 组 属 性 和 方 法 就 构 成 了 通 常 所 说 的 接
口 。通 过 利 用 ActiveX, LabVIEW 既 可 以 作 为 客 户 机 控 制
其 他 外 部 应 用 程 序 , 又 可 以 担 当 服 务 器 , 从 外 部 应 用 程
序 控 制 LabVIEW [3]。LabVIEW 中 的 ActiveX Controls 子 模
板 提 供 的 控 制 型 控 件 包 括 : 包 容 器 (container)、变 体 数 据
类 型 (variant)、自 动 化 标 志 (automation refnum)、调 用 节 点
76
欢迎网上投稿 www.aetnet.cn www.aetnet.com.cn
《电子技术应用》2007 年第 7 期
测 控 技 术 与 仪 器 仪 表 Meas urement Control Technology and Ins truments
(Invoke Node)及 属 性 节 点 (Property Node)。 对 于 这 些 控 件
来说, LabVIEW 已经变为客户端。一般情况下, 任何 ActiveX
控 件 都 可 以 嵌 入 到 LabVIEW 中 , 然 后 使 用 其 属 性 和 方
法 , 实 现 所 需 的 功 能 [4], 从 而 使 程 序 功 能 更 加 强 大 , 节 约
开 发 时 间 。
本 系 统 是 以 LabVIEW 作 为 客 户 端 , 以 VCI 作 为 服 务
器 实 现 PC 与 USB- CAN 卡 的 通 信 。
3 . 2 . 2 USB- CAN 卡 初 始 化
欲调用 VCI 对象的属性和方法, 首先要通 过 Automation
Open 节 点 来 开 启 ActiveX 服 务 器 , 而 Automation Open 节
点 的 Refnum 输 入 是 由 Automation Refnum 节 点 提 供 的 。
如 图 6 所 示 , 在 前 面 板 放 置 Automation Refnum 节 点 , 右
击 鼠 标 弹 出 菜 单 , 选 择 Select ActiveX Class , 从 子 菜 单 选
择 “Browse ”, 可 以 看 到 能 够 获 取 的 控 件 及 其 属 性 列 表 以
及 系 统 中 的 LabVIEW 接 口 , 在 这 里 笔 者 选 择 VCIWrapper
1.0 Type Library Version 1.0 中 的 VCIWrap 对 象 , 再 将 该
节 点 与 Automation Open 节 点 相 连 , 这 样 就 打 开 了 与 VCI
服 务 器 相 连 的 Refnum。 通 过 该 Refnum 传 递 给 模 板 中 其
他 节 点 函 数 , 进 而 编 程 实 现 具 体 功 能 。
USB- CAN 卡 初 始 化 是 通 过 Invoke Node 节 点
调 用 VCI_SelectHardware 和 VCI_PrepareBoard 两 个
函 数 完 成 , 前 者 读 取 设 备 号 、设 备 类 型 、名 称 、厂 商
等 信 息 , 后 者 生 成 Board- Handle 以 供 后 续 程 序 使
用 。
3 . 2 . 3 CAN 总 线 初 始 化
CAN 总 线 初 始 化 是 通 过 VCI_InitCan 、
VCI_SetAccMask 、VCI_ConfigQueue 、VCI_ConfigRx-
QueObj 和 VCI_StartCAN 这 几 个 函 数 完 成 的 。根 据
约 定 的 协 议 , 调 用 VCI_InitCan 设 置 CAN 通 道 、波
特 率 ( 250kbps ) 和 工 作 模 式 ( 扩 展 帧 ) , 调 用
VCI_SetAccMask 、VCI_ConfigQueue 和 VCI_ConfigRxQueObj
设 置 PC 机 接 收 ID 及 其 掩 码 以 及 接 收 和 发 送 队 列 长 度
等 准 备 工 作 , 最 后 由 VCI_StartCAN 启 动 CAN 总 线 。
3 . 2 . 4 数 据 发 送 和 接 收
发 送 采 取 手 动 方 式 , 当 发 送 按 钮 按 下 时 , 给 定 的 电
压 、电 流 和 电 源 工 作 方 式 信 号 将 通 过 VCI_TransmitObj 函
数 送 出 给 DSP2407。 接 收 端 采 用 循 环 采 样 方 式 接 收 2407
每 隔 50ms 发 送 过 来 的 数 据 , 该 数 据 包 括 DC/DC 实 际 电
流 、电 压 、温 度 、life 值 和 Status_Flag 状 态 码 。
3 . 2 . 5 数 据 显 示 和 储 存
采 样 进 来 的 电 压 和 电 流 信 号 可 以 通 过 LabVIEW 前 面
板 中 的 Numeric Control 以 数 字 方 式 显 示 , 也 可 以 通 过
Waveform Chart 以 波 形 方 式 实 时 显 示 , 温 度 信 号 可 以 通 过
Thermometer 显 示 , Life 值 通 过 Horizontal Graduated Bar 显
示 ; 数 据 存 储 一 般 是 用 Excel 表 完 成 的 , 可 以 通 过 使 用
LabVIEW 中 文 件 I/O 模 块 或 用 ActiveX 调 用 Excel 组 件 [4],
笔 者 认 为 前 者 更 方 便 些 , 用 户 可 以 根 据 自 己 的 喜 好 选 择 。
图 6 Automation Refnum 节 点 设 置
3 . 2 . 6 实 验 数 据 结 果
图 7 是 通 过 Excel 实 时 记 下 的 实 验 数 据 。可 以 看 出 ,
基 于 LabVIEW 的 大 功 率 DC/DC 变 换 器 数 据 采 集 系 统 实
现 了 数 据 采 集 的 实 时 性 , 在 上 位 机 上 能 够 动 态 地 显 示 采
集 到 的 电 压 、电 流 等 数 值 和 波 形 , 并 可 以 将 采 集 到 的 数
据 以 电 子 表 格 的 形 式 保 存 下 来 , 达 到 设 计 的 要 求 。
本 文 设 计 了 一 种 硬 件 基 于 USB- CAN 卡 , 软 件 基 于
LabVIWE 的 实 时 数 据 采 集 控 制 系 统 , 分 析 了 开 发 虚 拟 仪
器 与 USB 总 线 通 信 的 软 件 编 程 思 路 , 详 述 了 基 于 Ac-
tiveX 技 术 的 VCI 功 能 的 调 用 , 成 功 实 现 了 LabVIEW 与
USB- CAN 卡 的 数 据 交 换 。通 过 调 试 和 实 际 使 用 , 本 测 试
系 统 达 到 了 设 计 要 求 , 效 果 良 好 。
参 考 文 献
[1] 吴 立 力 . 信 号 采 集 系 统 中 的 信 号 传 输 显 示 与 处 理 [D].
北 京 : 北 京 工 业 大 学 , 2001.
[2] 宋 吉 超 . 基 于 USB2.0 接 口 的 虚 拟 仪 器 研 究 [D]. 西 安 :
西 安 电 子 科 技 大 学 , 2005.
[3] 杨 乐 平 , 李 海 涛 , 赵 勇 , 等 . LabVIEW 高 级 程 序 设 计 [M].
北 京 : 清 华 大 学 出 版 社 ,2003.
[4] 雷 振 山 . LabVIEW 7 Express 实 用 技 术 教 程 [M]. 北 京 :
中 国 铁 道 出 版 社 , 2004.
( 收 稿 日 期 : 2007- 02- 12 )
《电子技术应用》2007 年第 7 期 欢迎订购《电子技术应用》2000~2006 年合订光盘(010- 82306084)
77