首页/新闻资讯/正文详情

一条报文在CanIf模块中都经历了什么

发布时间:2026/9/25 2:36:26 来源:云帆数科 栏目:资讯中心
一条报文在CanIf模块中都经历了什么
写在前面入行一段时间了基于个人理解整理一些东西如有错误欢迎各位大佬评论区指正CanIf模块是 AUTOSAR 基础软件BSW的一部分位于 CAN 驱动程序CanDrv、CAN 收发器CanTrcv和上层通信服务层如 CanSm、CanNm、CanTp、PduR之间。它提供了一个标准化的接口用于管理不同类型的 CAN 硬件设备如 CAN 控制器和 CAN 收发器并确保硬件独立性。1.一条Rx报文都在CanIf模块中经历了什么回答这个问题前先来看几个参数表。对于一条报文它存在若干属性比如ID比如CANFD/CAN报文类型比如Full/BasicCAN。当我在接收一条报文时我需要去验证这条报文是不是我要接收的它的属性是不是和我期望是一致的。那么我就需要几个参数表表中会存储报文信息。1.1CanIf_MailBoxConfig从上到下依次表示为该报文属于哪个通道First PduIdLast PduIdTx报文配置参数Buffer配置参数Buffer IdMailBox类型即FullCAN or Basic CAN1.2CanIf_RxPduConfig从上到下依次表示为PduIDMASK下游模块Pdu名称是否为NM报文下游回调函数DlcMessage Type:CAN or CANFD1.3Rx报文进入CANIF模块当控制器收到一条Rx报文且CAN层会调用CanIf_RxIndication将PDU传入CANIF模块会传入接收这条报文的Mailbox等。1.4Rx报文属性校验在CanIf_RxIndication中首先会基于CanId来判断MsgType是否为CANFD报文Remove FD-flag from CAN identifier通过MailBox索引号找到CanIf_MailBoxConfig中记录的PDUID,比较报文属性与本地属性表中记录的信息是否一致若不一致则丢掉该报文。这里对于FullCAN和BasicCAN会调用不同的函数来判断主要原因是BasicCAN的MaiBox能够接收一定范围ID的报文对于RxID,需要进行计算来判断是否能够接收。1.5报文传递给下游模块上述属性校验通过后调用CanIf_HlIndication向下传递在这里还有校验DLC长度。最终将pduinfo传递给下游的回调函数有可能是PduR_CanIfRxIndication也有可能是CanTp_RxIndication或者CanNm_RxIndication。需要调用哪个查找表CanIf_RxPduConfig。2.一条Tx报文都在CanIf模块中经历了什么如果CANNM模块或者PDUR模块想发送一条CAN报文首先会调用CanIf_Transmit函数将PduInfo传入CANIF模块中基于传入的PduId查找CanIf_TxPduConfig获取报文属性。包括通道MailBoxConfigIdxTxPduLength等。和Rx报文类型会依次检查报文长度是否正确该通道是否正常工作等。之后将报文加入到对应队列等待发送。发送成功后查找表格CanIf_TxConfirmationFctList判断应该调用哪个函数上报发送成功的消息。常用的有CanNm_TxConfirmationCanTSyn_TxConfirmationPduR_CanIfTxConfirmation等。

相关推荐

源师兄可爱台灯与电报机:从SOS信号快速入门开源鸿蒙输入输出控制
源师兄可爱台灯与电报机:从SOS信号快速入门开源鸿蒙输入输出控制

源师兄可爱台灯与电报机:从SOS信号快速入门开源鸿蒙输入输出控制 【免费下载链接】课程 本项目致力于成为跨学科知识的中枢,系统汇聚与持续孵化高质量的课程资源。内容覆盖计算机、人工智能、信息科技、人文教育等多个领域,旨在为学生、教师、… · 2026/9/25 2:36:20

立创EDA飞线层与网络颜色的电气语义解析
立创EDA飞线层与网络颜色的电气语义解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 2:36:20

oh-my-opencode-slim 内置 MCP 服务器架构:context7 与 gh_grep 的配置、权限与禁用机制
oh-my-opencode-slim 内置 MCP 服务器架构:context7 与 gh_grep 的配置、权限与禁用机制

人工智能AI AgentAgent 编排AI 技能 【免费下载链接】oh-my-opencode-slim Lean, fine tuned Opencode multi agent suite Mix any models Auto delegate tasks 项目地址: https://gitcode.com/gh_mirrors/oh/oh-my-opencode-slim 点击查看 免费下载 本文围绕 oh… · 2026/9/25 2:36:14

PaddleNLP SimpleServing 服务化部署实战:基于 UIE-X 的文档信息抽取 HTTP 服务搭建指南
PaddleNLP SimpleServing 服务化部署实战:基于 UIE-X 的文档信息抽取 HTTP 服务搭建指南

人工智能大模型预训练微调LoRARLHF强化学习分布式训练 【免费下载链接】PaddleNLP Easy-to-use and powerful LLM and SLM library with awesome model zoo. 项目地址: https://gitcode.com/gh_mirrors/pa/PaddleNLP 点击查看 免费下载 本文面向需要在生产环境中上… · 2026/9/25 3:57:04

OpenShift Origin QuickStart 模板详解:应用骨架的构建原理、参数体系与自动同步机制
OpenShift Origin QuickStart 模板详解:应用骨架的构建原理、参数体系与自动同步机制

测试云原生质量保障 【免费下载链接】origin Conformance test suite for OpenShift 项目地址: https://gitcode.com/gh_mirrors/or/origin 点击查看 免费下载 本篇技术文章基于 examples/quickstarts/README.md 展开,系统讲解 OpenShift Origin 中 Qui… · 2026/9/25 3:57:03

React 360 资源缓存利器:深入解读 RefCountCache 引用计数缓存实现与应用
React 360 资源缓存利器:深入解读 RefCountCache 引用计数缓存实现与应用

前端3D渲染 【免费下载链接】react-360 Create amazing 360 and VR content using React 项目地址: https://gitcode.com/gh_mirrors/re/react-360 点击查看 免费下载 导读 ref-count-cache 是 React 360 项目中的一个独立基础工具包,提供了一种以&quo… · 2026/9/25 3:56:57

RisingWave 流式聚合内部实现解析:HashAggExecutor 的 AggCalls、AggState、AggGroups 与持久化机制
RisingWave 流式聚合内部实现解析:HashAggExecutor 的 AggCalls、AggState、AggGroups 与持久化机制

数据库流处理后端数据工程 【免费下载链接】risingwave Event streaming platform for agentic AI. Continuously ingest, transform, and serve event streams in real time, at scale. 项目地址: https://gitcode.com/gh_mirrors/ri/risingwave 点击查看 免费下载… · 2026/9/25 3:56:57

免费给老 Mac 装上新版 macOS:OpenCore Legacy Patcher 三步完整走通
免费给老 Mac 装上新版 macOS:OpenCore Legacy Patcher 三步完整走通

免费给老 Mac 装上新版 macOS:OpenCore Legacy Patcher 三步完整走通 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher OpenCore Legacy Patcher&am… · 2026/9/25 3:56:57

TEN Framework 中的 PIL 演示 Python 扩展:基于 VideoFrame 的图像处理实战
TEN Framework 中的 PIL 演示 Python 扩展:基于 VideoFrame 的图像处理实战

人工智能AI Agent多模态语音AI 应用 【免费下载链接】ten-framework Open-source framework for conversational voice AI agents 项目地址: https://gitcode.com/TEN-framework/ten-framework 点击查看 免费下载 导读 本文围绕 pil_demo_python 扩展,… · 2026/9/25 3:56:57

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码