来源:致远电子
摘要:ZLG的USBCAN卡型号众多,只有选型精准合适,才能发挥CAN的最佳性能。本文主要介绍USBCAN-I/II和USBCAN-E/2E-U两个系列的区别,方便用户选型和软件二次开发。
本文主要介绍USBCAN-I/II和USBCAN-E/2E-U两个系列的区别,方便客户选型和软件的二次开发。
硬件及收发性能主要区别:
软件升级步骤:
两个系列的CAN 接口卡均采用同一套接口函数库,如果想从USBCAN-II的代码升级到USBCAN-2E-U,只需按以下三个步骤操作。
1.安装USBCAN-E/2E-U驱动;
2.增加设备类型;
在 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 接口卡
3.在调用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);
}
审核编辑 黄昊宇
全部0条评论
快来发表一下你的评论吧 !