kvaser CANking怎么使用?如何使用 Kvaser 虚拟通道 ?

虚拟总线(了解更多技术资讯请点击www.triv.cn或致电020-38744186/13824417328微信)

介绍:CAN总线

每个虚拟设备的所有虚拟通道都被预设为连接到一个私用虚拟总线上 (通常为虚拟总线 #0)。当生成两个有 5 个通道的设备 , 每个设备的所有 5 个通道都被连接到虚拟总线 #0。然而,这两个虚拟设备之间没有连接,尽管它们被连接到同一个编号的虚拟总线上,虚拟通道只能和接在同一个虚拟设备上的其他通道联系。

注意:每个虚拟设备可以生成一套数量为 32 个的私用虚拟总线!

私用虚拟总线
在这里插入图片描述

如上图所示的错误,通道 2(Channel 2)不能和通道 5(channel 5)联系, 通道 3 不能和通道 4 联系, (通道 0 可以和通道 1 联系)。

注意:虚拟适配器不能共享虚拟总线!

用CANLib操作虚拟设备

可以在 CANLib 里打开虚拟通道, 同样使用你在操作物理 CAN 适配器时所用的命令,唯一不同之处是我们必须加一个旗标 FLAG。
在这里插入图片描述
在使用命令 canOpenChannel() 时,我们必须加旗标canOPEN_ACCEPT_VIRTUAL。你可以把旗标保留在软件里,它不妨碍你打开普通总线。

每个虚拟设备有 32 个虚拟总线, 在同一个虚拟设备上,你可以将任何一个虚拟通道跟任何虚拟总线相联接。

将一个虚拟通道和一个虚拟总线断开

通过用命令 canIoCtl() 来断开一个通道的联接。
在这里插入图片描述
这里看上去不需要 BusOff() 和 BusOn(),但是如果在修改它们之前使用它们,会更好一些,尽管它们是虚拟的。

另外,必须知道虚拟总线数量! 如果你忘记了总线数量,可以使用下面操作(断开所有连接):
在这里插入图片描述
现在可以确定虚拟通道已和虚拟总线断开了。

将一个虚拟通道和一个虚拟总线联接起来

通过用命令 canIoCtl() 来联接一个通道 (总是要先断开通道, 有时可能会联接到多个总线),如图,联接到了虚拟总线 no 7。
在这里插入图片描述
注意:非常重要! 你必须断开一个通道!

当联接到一个 ‘新’ 虚拟总线时,通道并没有与 ‘旧’ 总线断开,所有联接和断开都是由你的软件发起控制。

示例:有五个虚拟通道的两个虚拟设备
在这里插入图片描述
建立各有五个通道的两个设备 (以下列出的编码不是完整版)。
在这里插入图片描述
虚拟设备 0
通道 CH0 和 通道 CH1 可以在 VB1 (虚拟总线 1 ) 上联系。
通道 CH2, CH3 和 CH4 可以在 VB3 (虚拟总线3 ) 上联系。
在这里插入图片描述
虚拟设备1/b>
通道 CH5-Ch9 可以在虚拟总线 VB1 上联系。但是 CH0 和 CH1 不能和 CH5-CH9 联系, 尽管它们似乎在同一个总线上,因为它们在不同的虚拟设备上,每个虚拟设备生成一套私用虚拟总线。

问题:能用LINUX操作虚拟设备吗?

是的, 在Linux里你要在源代码上做一个修改(virtualcan.h):

并且输入下面的命令打开该设备:
/usr/sbin/virtualcan.sh start

如果你是一个Linux用户,需要这方面的帮助, 请联系我们的技术支持团队。020-38744186,了解更多:http://www.triv.cn
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值