基于虚拟仪器的CAN卡驱动实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第4期(总第155期)

2009年8月机械工程与自动化

M ECHA N ICAL EN GI NEER IN G & AU T O M A T IO N N o.4A ug.

文章编号:1672-6413(2009)04-0065-02

基于虚拟仪器的CAN 卡驱动实现

王欣欣,袁丽娟

(华北水利水电学院,河南 郑州 450011)

摘要:为了利用CAN 总线进行数据采集,实现数据实时显示,特选用虚拟仪器软件开发平台L abV IEW 实现CA N 接口卡的驱动,进而设计合理的人机交互界面,进行数据显示、故障分析。关键词:L abV IEW ;CA N 接口卡;CA N 总线;界面设计中图分类号:T P 391.9 文献标识码:A

收稿日期:2008-11-24;修回日期:2009-02-25

作者简介:王欣欣(1980-),女,河南濮阳人,助教,硕士,研究领域为测控技术与仪器。

0 引言

虚拟仪器就是在个人计算机的环境中,利用良好的虚拟仪器软件平台,充分发挥微机的图形处理功能,在屏幕上虚拟出智能仪器的显示面板,用户可通过面板上的各处虚拟的按键、开关、旋钮去使用仪器的各种功能,控制仪器的运行,并从面板上的虚拟显示屏、数码显示器和指示灯了解仪器的状态,从而完成对被测试量的采集、分析、判断、显示、数据存储等[1]。其中数据采集系统的实现,可通过某种传输总线将采集模块连接至计算机。以特定的温度监控系统为例,采集的温度数据通过CAN 总线传送至上位计算机,上位机采用LabV IEW 设计的界面完成数据的显示。本文主要研究利用LabVIEW 驱动CAN 卡的实现。1 LabVIEW 程序结构

LabVIEW 程序称为虚拟仪表(Vir tual Instrum ent)程序,简称VI 。VI 包括3部分:程序前面板、框图程序和图标/连接端口。程序前面板都对应一段使用图形编程语言编写的框图程序,类似于一台仪器的内部电路,可看成源程序代码。2 C AN 接口卡

选用广州周立功单片机有限公司的PCI -51XX 智能CAN 接口卡(类型为PCI-5110),它具有PCI 接口的高性能CAN 总线通讯适配卡,使PC 机方便地连接到CAN 总线上实现CAN 2.0B 协议的数据通讯;采用PCI 接口实现与主机PC 的高速数据交换;该卡集成1个或2个电气独立的CAN 接口通道,每个通道光电隔离,增强系统在恶劣环境下使用的可靠性[2]。PCI -5110接口卡含有SJA 1000独立CAN 控制器,其通讯波特率由寄存器BT R 0(定时器0)和BT R 1(定时器1)决定,范围为5kb /s ~1000kb /s 。

3 C AN 卡驱动程序设计

(1)调用CAN 接口卡库函数,使用LabVIEW 中的调用动态链接库。LabVIEW 提供了4种调用外部程序代码的途径,其中动态链接库机制是LabVIEW 调用标准共享库和用户自定义库函数的通用方法。具体实现时,使用LabVIEW 功能模块中“Advanced ”子模块里的“调用库函数节点(Call Libr ar y Function Node)”,见图1。

图1 L abVI EW 中的调用库函数节点

双击该节点,可在弹出的对话框中(见图2)对此节点进行配置(以复位CA N 为例): 在“Library Name or Path ”选项中,点击“Brow se …”按钮,打开文件对话框,找到PCI 接口卡的库函数,找到Contr olCAN .dll 文件,或直接输入此节点所要链接的

DLL 路径名; 在“Function Name ”

下拉列表框中找到VCI _ResetCAN ,或直接输入函数名; 在“Call

Conventions ”下拉列表框中选择“C ”

,表明所调用的库为使用C 语言自己创建的库,若调用的函数为Window s 标准共享库函数,则选择stdcall(W INAPI)选项;!在“Bro w se …”按钮下方的下拉表框中选择“Run in U I T hread ”,表明该调用过程运行在用户接口线程中;∀完成函数输入输出参数和类型的配置(见表1),单击Add Par am eter A fter 按钮,定义函数的第一个参数,按照库函数要求完成Par am eter 框、Ty pe 框、Data T ype 框等,依次设置其他参数,设置

完成后,被调用的函数原型在“Functio n Prototype ”中列出。如果所有输入输出参数设置正确,单击OK 按钮,关闭配置对话框。

按照上述添加链接函数库方法,完成库函数VCI-OpenDevice 、VCI-InitCan 、VCI-StartCAN 、VCI-Receive 、V CI-Clo seDevice 的节点配置。

(2)按照图3所示的库函数使用流程完成驱动程序。菜单项中的设备操作包括启动CAN 卡、复位CAN 卡、关闭CAN 卡及退出4项,其程序框图见图4

图2 调用库函数节点配置对话框

表1 函数输入输出类型配置表

Parameter Type

Data Typ e Pass

retur n type Numeric U nsign ed 32-bit Integer Value

DevType Numeric U nsign ed 32-bit Integer Value

DevIndex Numeric U nsign ed 32-bit Integer Value CANIndex p Numeric U nsign ed 32-bit Integer Value Fu nction

Prototype

Uns igned long VC I _Res

etCAN (u nsigned

lon g

DevType,un signed long DevIndex,

u nsigned lon g

CANIndex );

图3 库函数使用流程

这里使用子VI(Start CAN )完成子界面的调用。其中包括选择设备类型、初始化CAN 的参数(设定验收码、屏蔽码、波特率等),双击“Start CAN ”子VI 可出现其前面板,见图5。

运行Start CAN ,其初始化状态连接至选择结构(Case Structur e),当返回值为T rue 时,CAN 卡成功启动,并将两个布尔型的变量“保存温度”和“保存转速”置为1,否则启动失败。用同样的方法在用户菜单选择项(M enu Select (User ))下编辑“复位CAN 卡”和“关闭CAN 卡”项,见图6。

图4 设备操作项程序框图

图5 启动CA N 的前面板

图6 复位CA N 卡和关闭CA N 卡程序框图

4 结论

驱动CAN 接口卡是实现采集系统的首要条件,利

用虚拟仪器可以完成CAN 接口卡驱动程序设计,实现

CAN 卡的启动、复位及关闭。使用虚拟仪器一方面降

低了开发成本,另一方面便于维护。同时显示出虚拟仪器在智能化程度、处理能力、性价比、可操作性等方面的技术优势。

参考文献:[1] 贺天柱,孙喻.虚拟仪器技术及其编程语言L abV IEW [J ].现代电子技术,2005(15):61-63.

[2] 李铁军,李学武.虚拟仪器技术及其在数据采集中的应用

[J].现代电子技术,2005(9):79-81.

(英文摘要转第69页)

66・ 机械工程与自动化 2009年第4期 

相关文档
最新文档