[AutoSar]BSW_Com013 CAN TP 模块配置

news2024/11/19 19:43:23

目录

  • 关键词
  • 平台说明
  • 一、缩写对照表
  • 二、Functional Description(vector)
    • 2.1 Asynchronous and Synchronous behavior of CanTp_Transmit
      • 2.1.1 asynchronous
    • 2.1.2 synchronous
    • 2.2 Separation Time by Application
  • 三、CanTpChannels
    • 3.1 接收端
    • 3.2 发送端
  • 四、CanTpGeneral

  

关键词

嵌入式、C语言、autosar、OS、BSW

平台说明

项目Value
OSautosar OS
autosar厂商vector , EB
芯片厂商TI 英飞凌
编程语言C,C++
编译器HighTec (GCC)
autosar版本4.3.1

在这里插入图片描述
>>>>>回到总目录<<<<<<

一、缩写对照表

PDU SDU PCI 见 [AutoSar]BSW_Com02 PDU详解

项目描述
CAN N-SDU Info Structure这是一个CAN传输层内部常量结构,包含特定的CAN传输层信息,用于处理相关CAN N-SDU的传输、接收、分段和重组
CAN NSduId在CAN传输层中唯一的SDU标识符。用来引用N-SDU的路由属性。因此,为了通过其API与CAN传输层交互,上层使用CAN NSduId来引用CAN N-SDU信息结构。
BSBlock Size
CanCAN Driver module
CAN CFCAN Consecutive Frame N-PDU
CAN FCCAN Flow Control N-PDU
CAN FFCAN First Frame N-PDU
CAN SFCAN Single Frame N-PDU
DLCData Length Code (part of CAN PDU that describes the SDU length)
FIMFunction Inhibition Manager
MtypeMessage Type (possible value: diagnostics, remote diagnostics)
N_AINetwork Address Information (see ISO 15765-2).
N_ArTime for transmission of the CAN frame (any N-PDU) on the receiver side (see ISO 15765-2).
N_AsTime for transmission of the CAN frame (any N-PDU) on the sender side (see ISO 15765-2).
N_BrTime until transmission of the next flow control N-PDU (see ISO 15765-2).
N_BsTime until reception of the next flow control N-PDU (see ISO 15765-2).
N_CrTime until reception of the next consecutive frame N-PDU (see ISO 15765-2).
N_CsTime until transmission of the next consecutive frame N-PDU (see ISO 15765-2).
N_DataData information of the transport layer
N_PCIProtocol Control Information of the transport layer
N_SANetwork Source Address (see ISO 15765-2).
N_TANetwork Target Address (see ISO 15765-2). It might already contain the N_TAtype(physical/function) in case of ExtendedAddressing.
N_AENetwork address extend
N_TAtypeNetwork Target Address type (see ISO 15765-2).
FSFlow Status
CAN FDCAN flexible data rate
CAN_DLCAN frame data length
TX_DLTransmit data link layer data length
RX_DLReceived data link layer data length
SF_DLSingleFrame data length in bytes
CTSClearToSend status (FC(CTS))
STminis the minimum separation time, which is provided by the receiver. If the transmitter sends the CFs faster than requested, there is no guarantee that the receiver of the segmented data transmission will correctly receive and process all frames. Another purpose of STmin is to reduce the bus load produced by CanTp communication.
N_Csis the maximum separation time, after which the transmission of the next CF has to be started. If the delay is longer than N_Cs, the receiver side may detect an N_Cr timeout.

二、Functional Description(vector)

2.1 Asynchronous and Synchronous behavior of CanTp_Transmit

在这里插入图片描述

2.1.1 asynchronous

  默认情况下,API CanTp_Transmit是异步的。这意味着它只准备连接,而向上层请求有效载荷数据和传输第一个CAN帧将在下一个任务周期中完成。
在这里插入图片描述

2.1.2 synchronous

  可以配置CanTp使CanTp_Transmit同步。然后在上下文中完成对上层的有效负载请求和对CanIf的传输请求CanTp_Transmit。这将略微提高传输速度,但也要求上层能够在CanTp_Transmit返回之前处理对CopyTxData函数的调用。
在这里插入图片描述

2.2 Separation Time by Application

  CanTp计算的STmin的精度取决于它的任务周期。如果需要的STmin值在CanTp任务周期时间范围内或以下,则可能不可接受。
  一种解决方案是缩短任务周期时间,但是它会产生过高的CPU负载。采用外部计时器(如在操作系统或硬件中)也是一种选择。
  为了解决上述情况,CanTp提供了一个可选的调用,它在任何时候通知应用程序
需要启动STmin。通过通知函数的返回值,应用程序可以决定是自己处理STmin还是将其留给CanTp。
  如果应用程序接受处理分离时间,它必须设置一个计时器并调用
CanTp_StopSeparationTime()当计时器过期时。这将触发下一个CF的传输。
  允许在调用Appl_StartSeparationTime()和配置的N_Cs时间结束之前的任何时间调用
CanTp_StopSeparationTime()。
在这里插入图片描述

  为了实现上述功能必须配置下图callback:
在这里插入图片描述

  

三、CanTpChannels

  该容器包含CanTp模块通过CanTpChannel接收到的每个CAN N-SDU所需的配置(参数)。

3.1 接收端

在这里插入图片描述
  N_Ar/N_Br/N_Cr:根据14229/15765/11898和主机厂释放的网络规范进行配置。
  CanTpRxAddressingFormat:定义Rx_PDU寻址方式。寻址方式区别后续单独更新。
  CanTpRxPaddingActivation:该参数定义Rx N-SDU是否使用填充。如果填充被启用,所有接收到的sf, ff和cf都被检查为DLC为8。要传输的fc被填充到8字节的长度。
  CanTpRxTaType:声明该Rx N-SDU的通信类型。当长度超过8byte,应该被设为CANTP_CANFD_PHYSICAL或者CANTP_CANFD_FUNCTIONAL

  CanTpSTmin:该值指定CanTp发送方在两个连续帧传输之间必须等待的最小时间。
该值作为FC.CTS的一部分由接收方发送。

3.2 发送端

  参考接收端。

四、CanTpGeneral

在这里插入图片描述
  CanTpEnableConstantBS:该参数定义在整个接收过程中块大小是否保持不变,或者是否可以为每个流控制传输进行调整。如果启用此开关,则CanTp仅在接收开始时计算一次BS。否则,将根据可用缓冲区为每个流控制帧重新计算BS。建议开启。
CanTpOnlyNotifyInformedAppl:autosar 版本4.1 以上使用,使能后只有RxIndication函数在相应的缓冲区返回的值不等于bufreqe_not_ok时才会被调用。建议开启。
CanTpPaddingActive:该参数定义填充是全局启用还是禁用。通过使能该开关,每个Rx/Tx N-SDU可以单独配置,带或不带填充。如果此开关被禁用,则任何Rx/Tx N-SDU都不能使用填充。
CanTpPaddingByte:该值指定用于初始化未使用字节的字节值。ISO 15765-2指定的默认值是0xCC。

>>>>>回到总目录<<<<<<

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

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

相关文章

【Web】浅聊Java反序列化之C3P0——URLClassLoader利用

目录 前言 C3P0介绍 回归本源——序列化的条件 利用链 利用链分析 入口——PoolBackedDataSourceBase#readObject 拨云见日——PoolBackedDataSourceBase#writeObject 综合分析 EXP 前言 这条链最让我眼前一亮的就是对Serializable接口的有无进行了一个玩&#xff0c…

day42 动态规划part4

先遍历物品还是先遍历背包二刷再考虑吧。累了&#xff0c;不想停留太久。 背包问题 二维 &#xff08;卡码网题目&#xff09; 各种解释&#xff1a; 要理解的是这个表格每一个格子都是当前所处情况的最大价值&#xff0c;我们用已经推导出的最大价值来推导当前情况的最大价值…

2.案例、鼠标时间类型、事件对象参数

案例 注册事件 <!-- //disabled默认情况用户不能点击 --><input type"button" value"我已阅读用户协议(5)" disabled><script>// 分析&#xff1a;// 1.修改标签中的文字内容// 2.定时器// 3.修改标签的disabled属性// 4.清除定时器// …

GUROBI之数学启发式算法Matheuristics

参考运小筹的帖子&#xff1a;优化求解器 | Gurobi 数学启发式算法&#xff1a;参数类型与案例实现 - 知乎 (zhihu.com) 简言之&#xff0c;数学启发式是算法就是数学规划和启发式算法的融合&#xff0c;与元启发式算法相比&#xff0c;数学启发式算法具有更强的理论性。 在GUR…

WEB区块链开发组件 - KLineChart

当我们开发区块链的时候&#xff0c;实现K线可能大家会想到EChart&#xff0c;但是EChart做可能需要耗费大量工作量&#xff0c;实现出来的功能估计也是牵强着用。 这时候&#xff0c;我们可能网上会搜索到TradingView,可是这个组件虽然功能非常强大&#xff0c;但是还是要费事…

视觉图像处理和FPGA实现第三次作业--实现一个加法器模块

一、adder模块 module adder(ina, inb, outa); input [5:0] ina ; input [5:0] inb ; output [6:0] outa ;assign outa ina inb; endmodule二、add模块 module add(a,b,c,d,e); input [5:0] a ; input [5:0] b ; input [5:…

Matlab R2021a安装教程(附带免费安装包)

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 Matlab简介 Matlab是一种高级技术计算语言和交互式环境&#xff0c;用于算法开发、数据可视化和数值计算。它集成了数学、工程和科…

unity中实现场景跳转

1&#xff0c;第一步创建2个场景&#xff08;右键资源窗口&#xff0c;名字这里我取的1111和2222&#xff09; 2.添加跳转按钮&#xff08;双击其中一个场景并添加按钮&#xff09; 3.编辑按钮的文字&#xff08;将原本的按钮打开点击里面的text&#xff0c;就可以在右边编辑文…

MySQL 多种日期处理函数介绍

MySQL 提供了多种日期处理函数&#xff0c;用于处理和操作日期和时间数据。这些函数可以帮助你执行如日期计算、时间转换、格式化输出等操作。以下是一些常用的 MySQL 日期处理函数及其用法&#xff1a; 日期和时间格式化函数 1. **DATE_FORMAT()**&#xff1a;将日期或时间戳格…

AI壁纸号一周增加上千粉丝,轻松变现的成功案例分享

前言 随着AI绘画技术的发展&#xff0c;传统的互联网副业壁纸号在新的技术加持下迎来了第二春。本文将分享一位壁纸号创作者的成功案例&#xff0c;并为大家提供创作门槛和硬件要求等相关信息。 该项目的创作门槛极低&#xff0c;基本上可以由AI完成内容创作。不过&#xff0…

使用python实现一个dicom影像解析入库程序demo

简介 DICOM&#xff08;Digital Imaging and Communications in Medicine&#xff09;是医学图像和相关信息的国际标准。它定义了医学影像的格式和通信协议&#xff0c;使得不同设备和系统之间可以交换和共享医学图像和相关数据&#xff0c;如CT扫描、MRI图像、超声波图像等。…

代码随想录算法训练营第七天| 454.四数相加II、383.赎金信、15.三数之和、18.四数之和

系列文章目录 目录 系列文章目录454.四数相加II使用HashMap法 383.赎金信哈希解法&#xff08;数组&#xff09; 15.三数之和双指针法 18.四数之和双指针法 454.四数相加II 题解&#xff1a;该题和1.两数之和的方法是一样的&#xff0c;这个题的难点在于key和value分别是什么。…

发那科数控机床FanucCNC(NCGuide)仿真模拟器配置和数据采集测试

开发日记3.12 此篇用于记录发那科数控机床(Fanuc CNC)采集程序开发中&#xff0c;用虚拟机做测试时&#xff0c;虚拟机的配置和使用以支持采集软件开发和测试。 配置虚拟机使用仿真软件 下载VMware15 「链接&#xff1a;https://pan.xunlei.com/s/VNsl9Gmb14ANBiiNlsT7vA2LA…

Day15 面向对象进阶——接Day14

Day15 面向对象进阶——接Day14 文章目录 Day15 面向对象进阶——接Day14一、访问修饰符二、Object三、深入String的equals()方法四、final 一、访问修饰符 1、含义&#xff1a;修饰类、方法、属性&#xff0c;定义使用的范围 2、经验&#xff1a; 2.1.属性一般使用private修…

springboot3 打包报错32-bit architecture x86 unsupported或者 returned non-zero result

springboot3 打包异常情况处理记录 在测试springboot3 native打包时候遇到的异常&#xff0c;百度和谷歌上方法都无法解决我的问题&#xff0c;最后记录一下我最后的原因和解决方案。 前置要求&#xff1a;自己处理好vs的相关内容后 报错一&#xff1a; [1/7] Initializing…

Vue3 前端生成随机id( 生成 UUID )

效果展示 封装工具&#xff08;代码展示&#xff09; 重新创建一个文件**/utils/someTools.js**&#xff0c;并在里面写入如下代码。 function Tools() {}Tools.prototype.guid function () {return xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx.replace(/[xy]/g, function (c) {v…

Android SDK 开发 云托管

开发SDK,拒绝重复造轮子。 本文陈述两种SDK开发方式&#xff0c;第一种AAR方式&#xff1b;第二种远程依赖方式。 具体步骤分为&#xff1a; 一、如何开发SDK&#xff1f; 二、如何打包AAR&#xff1f; 三、如何打包AAR&#xff1f; 四、如何进行SDK远程托管&#xff1f; 五、如…

工业物联网平台在水务环保、暖通制冷、电力能源等行业的应用

随着科技的不断发展&#xff0c;工业物联网平台作为连接物理世界与数字世界的桥梁&#xff0c;正逐渐成为推动各行业智能化转型的关键力量。在水务环保、暖通制冷、电力能源等行业&#xff0c;工业物联网平台的应用尤为广泛&#xff0c;对于提升运营效率、降低能耗、优化管理等…

toJSONString空值被忽略解决办法 toJSONString过程中时间格式丢失问题解决办法

toJSONString空值被忽略解决办法 原代码&#xff1a; GcGarbageBuildingDO data gcGarbageBuildingService.get(id); result.putAll(JSON.parseObject(JSON.toJSONString(data), Map.class));查询出来的data中部分字段值为null&#xff0c;在toJSONString的过程中会把null值…

基于STM32的感应开关垃圾桶

1.定时器介绍 1.1 工作原理 使用精准的时基&#xff0c;通过硬件的方式&#xff0c;实现定时功能。 1.2 定时器分类 基本定时器&#xff08;TIM6~TIM7&#xff09;通用定时器&#xff08;TIM2~TIM5&#xff09;高级定时器&#xff08;TIM1和TIM8&#xff09; 1.3 通用定时器…