Vector - CAPL - CANoe硬件配置函数 - 02

news2024/9/28 9:20:00

 

Hardware Configuration

        硬件配置中包含CAN或者CANFD的参数配置,其中包含波特率、时间片1、时间片2、时间量子中的同步跳跃宽度、采样点数等信息;随着研发系统中各类型的平台化,测试想要跟上研发的进度,也必须进行平台化,那么为了适配一个公司中多样的产品类型,我们就需要适配不同产品的CAN&CANFD信息配置,这里我们就能通过该函数进行修改和控制,下面我们介绍下配置的参数函数。

 

canGetConfiguration & canSetConfiguration 

功能 :读取/设置CANFD控制器的参数

Channel:CANoe配置的CANFD通道

canSetting:

        float baudrate:CAN通道波特率
        unsigned char tseg1, tseg2:时间片中时间段1和2的长度
        unsigned char sjw:同步时间片中的跳跃宽度
        unsigned char sam:采样点数 (1 or 3)
        unsigned int flags

               canGetConfiguration:

                        bit 0、bit 1:0,未知传输模式;1,低速;2:单线;3,高速

                        bit 8:0x100,该通道被配置为高速CAN

                        All other:保留值

                canSetConfiguration:

                        bit 0:0,正常模式;1,静默模式(确认未创建)

                        All Other:保留值全部设置为0

返回值:

        1:成功获取CAN通道配置

        0:获取CAN通道配置失败

代码示例

void CANFD_Channel_Setting()
{
    int ret;
    int channel = 1;
    CANsettings abrSettings;

    CANsettings dbrSettings;

    abrSettings.baudrate = 1000000;
    abrSettings.tseg1=5;
    abrSettings.tseg2=2;
    abrSettings.sjw=2;
    abrSettings.sam=1;
    abrSettings.flags = 0;

    dbrSettings.baudrate = 4000000;
    dbrSettings.tseg1=6;
    dbrSettings.tseg2=3;
    dbrSettings.sjw=2;
    dbrSettings.sam=1;
    dbrSettings.flags = 0;

    write("设置CANFD波特率为4M");
    ret = canFdSetConfiguration(channel, abrSettings, dbrSettings);
    ret = canFdGetConfiguration(channel, abrSettings, dbrSettings);
    if (ret)
    {
        write("Arbitration settings: baud= %f, tseg1 = %d, tseg2= %d, sjw = %d, sam = %d, flags = 0x%x",abrSettings.baudrate, abrSettings.tseg1, abrSettings.tseg2, abrSettings.sjw, abrSettings.sam, abrSettings.flags);
        write("Data settings: baud= %f, tseg1 = %d, tseg2= %d, sjw = %d, sam = %d, flags = 0x%x",dbrSettings.baudrate, dbrSettings.tseg1, dbrSettings.tseg2, dbrSettings.sjw, dbrSettings.sam, dbrSettings.flags);
    }
}

canFdGetConfiguration & canFdSetConfiguration 

功能 :读取CAN控制器的参数

Channel:CANoe配置的CAN通道

canSetting:

        float baudrate:CAN通道波特率
        unsigned char tseg1, tseg2:时间片中时间段1和2的长度
        unsigned char sjw:同步时间片中的跳跃宽度
        unsigned char sam:采样点数 (1 or 3)
        unsigned int flags

               canGetConfiguration:

                        bit 0、bit 1:0,未知传输模式;1,低速;2:单线;3,高速

                        bit 8:0x100,该通道被配置为高速CAN

                        All other:保留值

                canSetConfiguration:

                        bit 0:0,正常模式;1,静默模式(确认未创建)

                        All Other:保留值全部设置为0

返回值:

        1:成功获取CAN通道配置

        0:获取CAN通道配置失败

代码示例

void CAN_Channel_Setting()
{
    int ret;
    int channel = 1; //CAN1通道
    canSettings settings;
    settings.baudrate = 1000000;//波特率为1M
    settings.tseg1=5;
    settings.tseg2=2;
    settings.sjw=2;
    settings.sam=1;
    settings.flags = 0;

    write("设置CAN1通道波特率为1M");
    ret = canSetConfiguration(channel, settings);
    //读取CAN1通道的配置信息
    ret = canGetConfiguration(channel, settings);
    if (ret)
    {
       write("Settings: baud= %f, tseg1 = %d, tseg2= %d, sjw = %d, sam = %d, flags = 0x%x",
             settings.baudrate, settings.tseg1, settings.tseg2, settings.sjw, settings.sam,                 settings.flags);
    }  
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/503802.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux【网络编程】之网络套接字预备

linux【网络编程】之网络套接字 一、必备知识1.1 端口号1.2 端口号方面疑问及解决方案 二、TCP/UDP协议三、网络字节流四、socket编程4.1 认识接口4.2 浅析sockaddr结构 一、必备知识 在【网络基础】中我们提到了IP地址,接下来了解一下网络通信中其他方面的知识 1…

浏览器的渲染

浏览器的渲染 浏览器的渲染过程分为两大阶段,八大步骤,由两个线程完成, 下面是总的过程 第一个 渲染主线程 它包括5个步骤, 1、html解析 parse 解析我们的HTML,生成DOM树结构 2、样式计算 computed style 比如我们…

系统运维(Git篇)

Git基础 Git Git是一种分布式版本控制系统,可以帮助我们管理代码的版本和变更。通过学习Git,我们可以更好地理解版本控制的原理和应用,同时也可以掌握Git的使用和管理技巧。 Docker Docker是一种容器化平台,可以将应用程序及其依赖…

华为OD机试真题2023(JAVA)

目录 华为OD机试是什么?华为OD面试流程?华为OD机试通过率高吗?华为OD薪资待遇?华为OD晋升空间? 大家好,我是哪吒。 本专栏包含了最新最全的华为OD机试真题,有详细的分析和Java代码解答。已帮助…

web前端的同源策略是什么?

一、同源策略 1995年,同源政策由 Netscape 公司(网景公司)引入浏览器。目前,所有浏览器都实行这个政策。同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。随着互联网的发展,“同源政策”越来越严格…

深入理解java虚拟机精华总结:运行时栈帧结构、方法调用、字节码解释执行引擎

深入理解java虚拟机精华总结:运行时栈帧结构、方法调用、字节码解释执行引擎 运行时栈帧结构局部变量表操作数栈动态连接方法返回地址 方法调用解析分派静态分派动态分派 基于栈的字节码解释执行引擎 运行时栈帧结构 Java虚拟机以方法作为最基本的执行单元&#xf…

栈在表达式中的应用(中/后前缀的转换)机算,手算模拟。

一.中缀表达式转后缀表达式 初始化一个栈,用于保存 暂时还不确定的运算顺序的“运算符” 。 从 左往右 依次扫描,会遇到三种情况: 1.遇到 操作数,直接加入后缀表达。 2.遇到 界限符:     ①遇到 “(” 入栈。  …

计算机系统-虚拟存储器

例行前言: 本篇不是学习课程时的笔记,是重看这本书时的简记。对于学习本课程的同学,未涉及的内容不代表考试不涉及(mmap,动态存储器分配,linux虚拟存储器)。本章的大部分内容已经在OS中学习过了,但本章内容…

SSM架构项目实战(CRM)

开始时间:7月17日 技术架构 (一)Web开发4层开发 视图层(view):展示数据,跟用户交互。《html,css,js,jquery,bootstrap(ext|easyUI&…

代码随想录算法训练营第三十五天 | 两维贪心、重叠区间

860.柠檬水找零 文档讲解:代码随想录 (programmercarl.com) 视频讲解:贪心算法,看上去复杂,其实逻辑都是固定的!LeetCode:860.柠檬水找零_哔哩哔哩_bilibili 状态:能直接做出来。 思路 只需要维…

【java-04】深入浅出多态、内部类、常用API

主要内容 多态 内部类 常用API 1 多态 1.1 面向对象三大特征 ? 封装 , 继承 , 多态 1.2 什么是多态 ? 一个对象在不同时刻体现出来的不同形态 举例 : 一只猫对象 我们可以说猫就是猫 : Cat cat new Cat();我们也可以说猫是动物 : Animal cat new Cat();这里对象在不…

知识推理——CNN模型总结

记录一下我看过的利用CNN实现知识推理的论文。 最后修改时间:2023.05.08 目录 1.ConvE 1.1.解决的问题 1.2.优势 1.3.贡献与创新点 1.4.方法 1.4.1 为什么用二维卷积,而不是一维卷积? 1.4.2.ConvE具体实现 1.ConvE 论文&#xff1a…

聊聊我在阿里第一年375晋升的心得

前言 思来想去,觉得这个事情除了领导赏识大佬抬爱之外,还是挺不容易的,主观认为有一定的参考价值,然后也是复盘一下,继续完善自己。 绩效 首先晋升的条件就是要有个好绩效,那么我们就先基于绩效这个维度…

基于`IRIS`列存储,我们能做什么

文章目录 基于IRIS列存储,我们能做什么简介使用场景如何使用列存储什么情况下使用列储存统计数据数量count计算字段平均值avg计算字段和sum 列存储与行存储区别总结 基于IRIS列存储,我们能做什么 简介 列存储是一种数据存储方式,与传统的行…

Win11-RTX4060安装Pytorch-GPU干货避坑指南

文章目录 1、版本要和pytorch官网对应,CUDA11.8及其对应版本的cudnn2、CUDA Toolkit安装出现自动重启3、Python版本4、配置永久国内镜像源5、要在激活的虚拟环境里安装pytorch6、进入python后检查是否gpu配置成功7、在虚拟环境中启动jupyter notebook8、conda中inst…

【Docker】5、Dockerfile 自定义镜像(镜像结构、Dockerfile 语法、把 Java 项目弄成镜像)

目录 零、学习内容一、镜像结构二、Dockerfile四、基于 java:8-alpine 构建自己的 Java 项目镜像 零、学习内容 镜像结构Dockerfile 语法构建 Java 项目 ① 之前使用的镜像都是 DockerHub 官方提供的 ② 开发者需要将自己的微服务制作为镜像 一、镜像结构 镜像是由应用程序及其…

【新星计划-2023】什么是ARP?详解它的“解析过程”与“ARP表”。

一、什么是ARP ARP(地址解析协议)英文全称“Address Resolution Protocol”,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确…

ConcurrentHashMap实现原理

1. 哈希表 1.1 介绍 哈希表是一种key-value存储数据的结构,根据key即可查到对应的value。 如果所有的键是整数,我们可用简单的无序数组来表示,键作为数组索引,值即为对应的值 1.2 链式哈希表 链式哈希表本质由一组链表构成。每…

用MacBook实操:docker本地部署mysql+php+nginx坏境

大家好,我拿出我的macbook,带着大家实操用docker部署mysqlphpnginx环境。 之前的小白实操搭建Nginx1.2.0PHP7.0MySQL5.7Thinkphp5项目,看这篇就够了,欢迎阅读。 之前的是服务器上配置环境,现在在mac本地搭建全栈开发环境。 目录…

LiveData详解(实战+源码+粘性事件解决方案)

1. 简介 LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 activity、fragment 或 service)的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周…