摘要: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,只需按以下三个步骤操作。
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);
}
声明:本内容为作者独立观点,不代表电源网。本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原作者所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮箱∶editor@netbroad.com。
电机制氧-剖析便携制氧机的工作原理 | 22-11-15 14:53 |
---|---|
嵌入式软件中的“乐高”— | 22-11-15 14:47 |
亥姆霍兹线圈新一代供电电源解决方案 | 21-01-21 16:00 |
基于S32K的EDR解决方案 | 20-12-07 10:48 |
消除电摩充电隐患,1分钟get妙招 | 20-10-12 17:07 |