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

描述

来源:致远电子

摘要: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);

   }
 

审核编辑 黄昊宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分