中国电子技术网

设为首页 网站地图 加入收藏

 
 

USBCAN-II 和 USBCAN-2E-U 的区别及互换方法

关键词:CAN接口 USB 驱动

时间:2019-10-21 11:31:11      来源:网络

本文主要介绍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,只需按以下三个步骤操作。

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);
    }

  • 分享到:

 

猜你喜欢

  • 主 题:LTM4702:16VIN、8A 超低噪声 Silent Switcher 3 μModule
  • 时 间:2024.04.11
  • 公 司:ADI&Arrow

  • 主 题:高集成伺服驱动系统与工业机器人方案
  • 时 间:2024.04.18
  • 公 司:ST

  • 主 题:英飞凌XMC4000支持EtherCAT®通讯的伺服/IO控制方案介绍
  • 时 间:2024.04.25
  • 公 司:英飞凌&骏龙科技