摘要:ZLG的USBCAN卡型号众多,只有选型精准合适,才能发挥CAN的最佳性能。本文主要介绍USBCAN-I/II和USBCAN-E/2E-U两个系列的区别,方便用户选型和软件二次开发。
本文主要介绍USBCAN-I/II和USBCAN-E/2E-U两个系列的区别,方便客户选型和软件的二次开发。
图 1 USBCAN-II实物图
图 2 USBCAN-2E-U实物图
硬件及收发性能主要区别:
软件升级步骤:
两个系列的CAN 接口卡均采用同一套接口函数库,如果想从USBCAN-II的代码升级到USBCAN-2E-U,只需按以下三个步骤操作。
安装USBCAN-E/2E-U驱动;
增加设备类型;
在 API 编程接口文件“ControlCAN.h”中存在以下定义:
//接口卡类型定义
#define VCI_USBCAN1 3
#define VCI_USBCAN2 4
#define VCI_USBCAN_E_U 20
#define VCI_USBCAN_2E_U 21
可以看出,各个型号USBCAN接口卡所对应的设备类型DevType 互不相同。
USBCAN-E/2E-U接口卡的应用项目中,用户代码中需更改定义所选用的设备类型:
m_devtype=VCI_USBCAN_E_U 20 //支持USBCAN_E_U 接口卡
或者:
m_devtype=VCI_USBCAN_2E_U 21 //支持USBCAN_2E_U 接口卡
在调用VCI_InitCAN 函数之前调用VCI_SetReference 函数设置波特率和滤波。
USBCAN-E/2E-U一个实始化的实例(C++):
//打开设备, m_devtype ==VCI_USBCAN_E_U
if(VCI_OpenDevice(m_devtype,index,0)!=STATUS_OK)
{
MessageBox("打开设备失败!","警告",MB_OK|MB_ICONQUESTION);
return;
}
//设置波特率为500K,常用波特率表可参考接口函数使用手册VCI_SetReference的说明;
if(m_devtype ==VCI_USBCAN_E_U)
{
DWORD baud =0x060007;
if (VCI_SetReference(m_devtype,index, cannum, 0, &baud) != STATUS_OK)
{
MessageBox(_T("设置波特率错误,打开设备失败!"), _T("警告"), MB_OK | MB_ICONQUESTION);
VCI_CloseDevice(m_devtype,index);
return;
}
}
//初始化CAN
if(VCI_InitCAN(m_devtype,index,cannum,&init_config)!=STATUS_OK)
{
MessageBox("初始化CAN失败!","警告",MB_OK|MB_ICONQUESTION);
VCI_CloseDevice(m_devtype,index);
return;
}
//...
//启动CAN
if(VCI_StartCAN(m_devtype,m_devind,m_cannum)==1)
{
ShowInfo("启动成功",0);
}
else
{
CString str;
str="启动失败";
ShowInfo(str,2);
}
上一篇:Commvault发布Commvault Complete Backup & Recovery新功能
下一篇:Akamai智能边缘平台增强功能,加快云转型并提高安全性
- EVAL-AD5383EBZ,使用 AD5383、40 通道、12 位数模转换器的评估板
- 面向MMA8491 3轴数字加速度传感器的传感器工具箱开发平台
- 12pin240*240TFT彩屏st7789驱动板
- AM3GW-4805SZ 5V 3W DC-DC 转换器的典型应用
- 06_降压恒流驱动LED_C336597
- LT1117CM-5 电池后备稳压电源的典型应用
- DC2085A-D,具有 LTC2000A-16、16 位、2.7Gsps DAC 和 DDR LVDS 接口的演示板
- L7806A负输出电压电路的典型应用
- 用于光网络的光收发器
- LT3470ITS8 5V 降压转换器的典型应用电路