[AutoSar]BSW_Com013 CAN TP 模块配置

目录

  • 关键词
  • 平台说明
  • 一、缩写对照表
  • 二、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.hqwc.cn/news/536097.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端实现复制粘贴功能

在前端开发的世界里&#xff0c;复制粘贴功能就像是那个总是被忽视&#xff0c;却在关键时刻能救你一命的老朋友。我们习惯了用那些古老的魔法咒语&#xff08;document.execCommand(copy)&#xff09;来实现这一功能&#xff0c;但时代在进步&#xff0c;技术在更新&#xff0…

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

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

【Linux】-Linux下的软件商店yum工具介绍(linux和windows互传文件仅仅一个拖拽搞定!!!!)

目录 1.Linux 软件包管理器yum 1.1快速认识yum 1.2 yumz下载方式&#xff08;如何使用yum进行下载&#xff0c;注意下载一定要是root用户或者白名单用户&#xff08;可提权&#xff09;&#xff09; 1.2.1下载小工具rzsz 1.2.2 rzsz使用 1.2.2查看软件包 1.3软件的卸载 2.yum生…

C语言 指针(5) 数组和指针题解析

目录 前言 一、sizeof和strlen 二、数组和指针笔试题解析 2.1、一维数组 2.2 字符数组 2.3 二维数组 三、指针运算笔试题解析 总结 前言 今天我们继续来了解指针&#xff0c;讲一下sizeof和strlen的区别&#xff0c;数组和指针题解析 一、sizeof和strlen 我们之前在讲…

跨境电子商务支付与结算的支撑系统

​1、跨境电子商务支付与结算的核心系统。 核心系统是用户执行跨境电子商务支付的核心模块&#xff0c;包括以下具体流程。 ​ ​①用户从跨境电子商务支付应用启动跨境电子商务支付流程。 ②跨境电子商务支付应用根据应用和用户选择的支付工具&#xff0c;来调用对应的支付产…

与鲸同行,智领未来!和鲸科技高校市场渠道合作伙伴正式开启招募

AI 浪潮来袭&#xff0c;技术日新月异&#xff0c;校企合作已成为高校培养符合产业需求的应用型人才、加速科研创新与成果转化的关键途径。从单一应用到多元化布局&#xff0c;各企业更需要技术领先、战略协同的领域伙伴协力共进。 和鲸科技以“协同平台实践社区竞赛”三位一体…

【数据结构】Set的使用

文章目录 一、Set的使用1.Set的常用方法&#xff1a;1.boolean add(E e)2.void clear()3.boolean contains(Object o)4.boolean remove(Object o)5.int size()6.boolean isEmpty()7.Object[] toArray()8.boolean containsAll(Collection<?> c)9.boolean addAll(Collecti…

C语言函数—关于静态库

具体的函数声明和定义请参考上一篇文章 如果我们成为了库的开发者&#xff0c;要卖给别人C语言库&#xff0c;该怎么办呢&#xff1f; A不会写减法&#xff0c;想找你买一个函数 但是&#xff0c;他给的太少了&#xff0c;你不想把源码卖给他 那怎么办呢&#xff1f; 首先&…

Android SDK 开发 云托管

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

【JavaScript】数据类型转换 ① ( 隐式转换 和 显式转换 | 常用的 数据类型转换 | 转为 字符串类型 方法 )

文章目录 一、 JavaScript 数据类型转换1、数据类型转换2、隐式转换 和 显式转换3、常用的 数据类型转换4、转为 字符串类型 方法 一、 JavaScript 数据类型转换 1、数据类型转换 在 网页端 使用 HTML 表单 和 浏览器输入框 prompt 函数 , 接收的数据 是 字符串类型 变量 , 该…

java拷贝数组

package com.mohuanan.exercise;public class Exercise {public static void main(String[] args) {int[] arr {1, 2, 3, 4, 5, 6, 7, 8, 8}; //格式化快捷键 CTRL 加 Alt 加 L键// F1截图 F3贴图//调用 copyOfRangeint[] ints copyOfRange(arr, 3, 7);for (int i 0; i &l…

【C++】string类初步介绍

个人主页 &#xff1a; zxctscl 如有转载请先通知 文章目录 1. 为什么学习string类1.1 C语言中的字符串1.2 推荐学习网站 2. 标准库中的string类2.1 string类2.2 string类的常用接口说明2.2.1 constructor2.2.2 遍历string2.2.2.1 下标加[]遍历2.2.2.2 迭代器&#xff08;itera…