自动驾驶(四十九)---------Kavser二次开发

       我们知道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接口。

                自动驾驶(四十九)---------Kavser二次开发_第1张图片    

     Kvaser Leaf Light R v2 :采用标准USB2.0连接和高速CAN通道,配有9针D-SUB CAN接口,可处理标准和扩展CAN报文的传送和接收,时间戳精度为100微秒。

                 自动驾驶(四十九)---------Kavser二次开发_第2张图片

2. Kvaser CANLIB

      a. 信息服务类:

           自动驾驶(四十九)---------Kavser二次开发_第3张图片

       b. 通道开启和关闭:

             自动驾驶(四十九)---------Kavser二次开发_第4张图片

        c. 通道参数:

             自动驾驶(四十九)---------Kavser二次开发_第5张图片

         d. 接收消息:

             自动驾驶(四十九)---------Kavser二次开发_第6张图片

          e. 发送消息

             

           f. 通知和等待:

             

3. 操作实例:

       使用 Kvaser CANLIB 时,在文件开头,必须包含 #include

       简单操作流程

  •    初始化驱动程序
  •    读 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);
}

 

 

 

 

 

 

 

你可能感兴趣的:(自动驾驶)