[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。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

初识Python语言-课堂练习【pyhton123题库】

初识Python语言-课堂练习【pyhton123题库】 一、单项选择题 1、Guido van Rossum正式对外发布Python版本的年份是&#xff1a; A 2008B 1998C 1991D 2002 【答案】C 【解析】暂无解析2、下面不是Python语言特点的是&#xff1a;‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪…

C++初阶:内存管理

目录 1. C/C中各种资源的内存分布1.1 C/C程序内存区域划分1.2 各资源的内存分布情况&#xff08;练习&#xff09; 2. C中的动态内存管理方式2.1 new/delete开辟内置类型空间2.2 new/delete开辟销毁自定义类型空间 3. operator new 与 operator delete函数4. new与delete的实现…

Spring MVC中的REST风格

文章目录 REST风格1 REST简介问题导入1.1 REST介绍1.2 RESTful介绍1.3 注意事项 2 RESTful入门案例问题导入2.1 快速入门2.2 PathVariable介绍2.3 RequestBody、RequestParam、PathVariable区别和应用 3 REST快速开发【重点】3.1 代码中的问题3.2 Rest快速开发 4案例&#xff1…

算法时空复杂度分析:大O表示法

文章目录 前言大O表示法3个时间复杂度分析原则常见的时间复杂度量级空间复杂度参考资料 前言 算法题写完以后&#xff0c;面试官经常会追问一下你这个算法的时空复杂度是多少&#xff1f;&#xff08;好像作为一名算法工程师&#xff0c;我日常码代码的过程中&#xff0c;并没…

FreMIM:傅里叶变换与遮罩的图像建模在医学图像分割中的应用

代码链接&#xff1a;GitHub - Rubics-Xuan/FreMIM: This repo holds the official code for the paper "FreMIM: Fourier Transform Meets Masked Image Modeling for Medical Image Segmentation". 论文链接&#xff1a;https://arxiv.org/abs/2304.10864 收录于…

C#重新认识笔记_ FixUpdate + Update

C#重新认识笔记_ FixUpdate Update Update: 刷新频率不一致,非物理对象的移动&#xff0c;简单的刷新可用&#xff0c; FixedUpdate: 刷新频率一致,按照固定频率刷新&#xff0c;一般调用FixedUpdate之后&#xff0c;会立即进入必要的物理计算中,因此&#xff0c;任何影响刚…

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

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

回归测试,有什么高效的测试方法?

什么是回归测试&#xff1f; 回归测试&#xff08;Regression testing&#xff09; 指在发生修改之后重新测试先前的测试以保证修改的正确性。理论上&#xff0c;软件产生新版本&#xff0c;都需要进行回归测试&#xff0c;验证以前发现和修复的错误是否在新软件版本上再次出现…

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

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

来吧伙计们,让AI教我们怎么说海盗语

“如果想伺机而动&#xff0c;就是这样。”——杰克船长提到海盗&#xff0c;我们往往联想到约翰尼德普在《加勒比海盗》中饰演的杰克船长。我们有什么理由不喜欢海盗呢&#xff1f;他们航行在海上&#xff0c;寻找埋藏的宝藏&#xff0c;痛饮朗姆酒&#xff0c;用自己独特的海…

24考研调剂 | 武汉纺织大学

教育部重点实验室招收24年调剂生&#xff0c;材料、化学、机械工程、计算机、力学等相关专业 考研调剂招生信息 学校:武汉纺织大学 专业:工学->材料科学与工程 年级:2024 招生人数:100 招生状态:正在招生中 联系方式:********* (为保护个人隐私,联系方式仅限APP查看)…

springboot的maven多模块如何混淆jar包

springboot的maven多模块如何混淆jar包 一.简介二. 示例2.1 基本配置2.2 结果 三. 错误3.1 错误13.2 错误2 四. 参考文章 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 一.简介 …

王道机试C++第6章 数学问题和22年蓝桥杯省赛选择题Day34

6.1 进制转换 二进制数&#xff08;十转二&#xff09; 习题描述 大家都知道&#xff0c;数据在计算机里中存储是以二进制的形式存储的。 有一天&#xff0c;小明学了C语言之后&#xff0c;他想知道一个类型为unsigned int 类型的数字&#xff0c;存储在计算机中的二进制串是…

个人博客系统(测试报告)

一、项目背景 一个Web网站程序&#xff0c;你可以观看到其他用户博客也可以登录自己的账号发布博客&#xff0c;通过使用Selenium定位web元素、操作测试对象等方法来对个人博客系统的进行测试&#xff0c;测试的核心内容有用户登录、博客列表及博客数量的展示、查看全文、写博客…

Vue-Vben-Admin:中大型项目后台解决方案及如何实现页面反向传值

Vue-Vben-Admin&#xff1a;中大型项目后台解决方案及如何实现页面反向传值 摘要&#xff1a; Vue-Vben-Admin是一个基于Vue3.0、Vite、Ant-Design-Vue和TypeScript的开源项目&#xff0c;旨在为开发中大型项目提供一站式的解决方案。它涵盖了组件封装、实用工具、钩子函数、动…

Python逆向:pyc字节码转py文件

一、 工具准备 反编译工具&#xff1a;pycdc.exe 十六进制编辑器&#xff1a;010editor 二、字节码文件转换 在CTF中&#xff0c;有时候会得到一串十六进制文件&#xff0c;通过010editor使用查看后&#xff0c;怀疑可能是python的字节码文件。 三、逆向反编译 将010editor得到…

链路聚合实验(思科)

华为设备参考&#xff1a; 一&#xff0c;技术简介 网络设备的链路聚合技术&#xff08;Link Aggregation&#xff09;是一种将多个物理链路捆绑在一起&#xff0c;形成一个逻辑链路的技术。这样做可以增加带宽、提高可靠性和实现负载均衡。 二&#xff0c;实验目的 橙色的阻…

使用Sourcetree推送本地仓库至远程仓库时报错The host key is not cached for this server

原因是SSH没配置好 点击工具→选项→ 改成OpenSSH&#xff0c;密钥改成配置Git和本地仓库时生成的.ssh文件夹下的id_rsa文件。

Spring boot 集成netty实现websocket通信

一、netty介绍 Netty 是一个基于NIO的客户、服务器端的编程框架&#xff0c;使用Netty 可以确保你快速和简单的开发出一个网络应用&#xff0c;例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开发过程&#xff0c;例如&#xff1a;基于TCP和U…

力扣-[700. 二叉搜索树中的搜索]

递归法 确定递归函数的参数和返回值 递归函数的参数传入的就是根节点和要搜索的数值&#xff0c;返回的就是以这个搜索数值所在的节点。 代码如下&#xff1a; public TreeNode searchBST(TreeNode root, int val) 确定终止条件 如果root为空&#xff0c;返回null&#xff0c…