原标题:自动驾驶(四十九)---------Kavser二次开发
原文来自:CSDN 原文链接:https://blog.csdn.net/zhouyy858/article/details/102817194
我们知道CAN总线是连接车身各个模块之间的桥梁,通过协议通讯,在车辆标定和测试中很多情况是用上位机和车身相连,收发满足CAN总线的信号。这中间如何通讯呢?这就需要用到Kavser。
Kvaser 公司是 CAN 测试设备的优秀供应商,提供的 API 函数,通过Kvaser公司的设备,结合Kvaser CANlib的 API 函数,可以方便的编写自己的 CAN 测试工具,对 CAN 网络的开发测试有很大的帮助。
Kvaser 驱动地址:http://canlandbucket.s3-website-eu-west-1.amazonaws.com/productionResourcesFiles/bc6870e3-87de-4661-b023-be0eec981d53/kvaser_drivers_setup.exe
Kvaser Canlib地址: http://canlandbucket.s3-website-eu-west-1.amazonaws.com/productionResourcesFiles/6b1cefab-0210-415a-9925-55d6088c4716/canlib.exe
1. Kvaser设备:
常用的Kvaser设备型号如下:
Kvaser Hybrid 2xCAN/LIN: 标准USB接口和两个高速CAN或LIN通道,两个独立9针D-SUB CAN接口。
Kvaser Leaf Light R v2 :采用标准USB2.0连接和高速CAN通道,配有9针D-SUB CAN接口,可处理标准和扩展CAN报文的传送和接收,时间戳精度为100微秒。
2. Kvaser CANLIB
a. 信息服务类:
b. 通道开启和关闭:
c. 通道参数:
d. 接收消息:
e. 发送消息
f. 通知和等待:
3. 操作实例:
使用 Kvaser CANLIB 时,在文件开头,必须包含 #include <canlib.h>
简单操作流程
初始化驱动程序
读 CAN 通道数目,获取通道句柄
选择开启指定通道
设定通道参数
设定通道工作类型
打开总线
读 CAN 消息或写 CAN 消息
关闭总线
关闭通道
代码实例:
void main(void)
{
canHandle h;
canInitializeLibrary();
h = canOpenChannel(0, canWANT_EXCLUSIVE);
if (h != canOK) {
char msg[64];
canGetErrorText((canStatus)h, msg, sizeof(msg));
fprintf(stderr, "canOpenChannel failed (%s)n", msg);
exit(1);
}
canSetBusParams(h, BAUD_250K, 0);
canSetBusOutputControl(h, canDRIVER_NORMAL);
canBusOn(h);
canWrite(h, 123, "HELLO!", 6, 0);
canWriteSync(h, 500);
canBusOff(h);
canClose(h);
}
免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。
合作及投稿邮箱:E-mail:editor@tusaishared.com