qtcpsocket类read函数接收大数据_一篇易懂的CAN 通讯功能实现指南2--READ

2023-10-30

通过一篇易懂的CAN通讯协议指南1,我们知道:

  • CAN总线的2种架构-高速CAN和低速CAN;
  • CAN协议帧类型-数据帧,遥控帧,错误帧,过载帧;
  • 线与机制,仲裁机制,位定时与同步。

以上基础的应用多数体现在硬件处理部分,所以只有少数体现在软件部分。从精通整个CAN通讯功能的角度来说,掌握基础还是非常重要的。本文主要是基于实际项目经验,通过AUROSAR的相关文档来介绍CAN通讯功能实现,这里通讯仅指CAN信号的接收与发送,也就是读与写。本系列CAN通讯功能实现将分为一篇CAN通讯读功能的实现介绍(一篇易懂的CAN 通讯功能实现指南2--READ)和一篇CAN通讯写功能的实现介绍(一篇易懂的CAN 通讯功能实现指南3--WRITE).

本篇将介绍 CAN通讯读功能,在AUTOSAR架构涉及的模块主要有Can Driver, Can Interface, Pdu Router, Com,如下图1所示。

图1 CAN通讯相关的模块

以下先通过两个场景来想象下CAN通讯读功能。

场景1:变速箱控制需要发动机的相关信号,比如转速,扭矩。那么这时变速箱控制器(TCU)怎么获取发动机控制器(ECM)的相关信号呢?

场景2:电机控制器(MCU)需要整车控制器(VCU)的相关信号,比如目标转速,目标扭矩等,同样地MCU怎么获取VCU的相关信号呢?

当然以上场景都是通过CAN通讯实现,具体以场景1再进一步解释TCU如何获取ECM信号(比如说发动机扭矩信号)。我们知道TCU控制需要发动机扭矩信号,所以TCU会要求ECM提供,ECM将该信号定义在某条报文中,发送到CAN总线,然后TCU去接收该报文,其大致过程如下:

当TCU接收到该报文后,也就是TCU芯片的相应寄存器就会去存储该报文数据。那么怎么去获取已存储的报文数据供TCU控制使用呢?根据AUTOSAR架构的分层,我们知道有:BSW(底层),RTE(接口层)和ASW(应用层)。

这里根据AUTOSAR CAN通讯功能的架构定义,TCU的底层软件先由Can Driver访问硬件,即提取相应寄存器的数据;再通知Can Interface,继而经Pdu Router路由到Com模块,然后Com解包数据,并存入Com的缓存区(Buffer)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

qtcpsocket类read函数接收大数据_一篇易懂的CAN 通讯功能实现指南2--READ 的相关文章

  • 黎明觉醒火种测试服务器维护,黎明觉醒火种测试什么时候上线 黎明觉醒火种测试资格获取方式(图文)...

    黎明觉醒是腾讯旗下的多人开放世界生存手游 对标的就是网易旗下的明日之后 在之前的曙光测试之后 这款游戏长时间来都没有传出过新消息 下面game234就来介绍一下黎明觉醒最新的火种测试什么时候上线 怎么预约 game234将第一时间提供黎明觉
  • 区块链是怎么形成的,你究竟明白多少?

    区块链到底是啥 首先 不要把区块链想的很复杂 其实 区块链很简单 它本质上就是一套数据库存储系统 该系统分布在全球各地 并且能够协同运转 不过 与其他数据库存储系统不一样的是 这个系统的运行者可以是任何有能力架设服务器的人 过去 传统的数据
  • angular 12+NG-ZORRO -UI中使用Modal对话框时注意

    弹框的代码不能放在循环中不然就会出现黑屏了 当时我的代码是这样写的 当然这是我的错误写法 特此记录 div class pages div
  • 日志服务器搭建

    1 安装完系统后 配置网络 设置静态IP vi etc sysconfig network scripts ifcfg ens33 编辑模式下修改 i BOOTPROTO static 改为静态 ONBOOT YES IPADDR 192
  • DeFi新篇章

    随着原生去中心化中央限价订单簿 Central Limit Order Book CLOB DeepBook的推出 Sui上的DeFi开启了新篇章 DeepBook由一群Sui贡献者共同构建 为新一代DeFi应用提供了一个稳定的流动性层 通
  • win10无法访问smb共享文件夹的解决办法

    win10无法访问smb共享文件夹的解决办法 之前在linux的几个图形化界面都可以在文件夹中输入 smb ip share 直接访问Linux服务器上的共享文件夹 但是在win10上进行同样的操作会让我打开win10商店搜索应用程序 网上
  • java(条件分支语句)

    Java中的条件分支语句分两种 if else语句和switch语句 1 if 条件判断语句 代码A 当条件成立时执行代码A 如果条件不成立则不执行代码A 而是直接 执行if的下一句 if 条件 代码块1 else 代码块2 当条件成立时执
  • vscode git 源代码管理 无法自动更新显示变更

    最近vscode 远程写代码遇到问题 git的源代码管理不能自动罗列被修改的文件 原因 早期出现警告 Visual Studio Code is unable to watch for file changes in this large
  • 蓝牙HID说明

    蓝牙HID说明 本章主要围绕BLE的HOGH进行说明 网上很多文档讲到HID都要说到USB的HID 让初学者一开始既要看理解蓝牙GATT Service的概念 又要去理解USB的端点概念 实话来说本人刚去学习时也经常需要尝试去理解这两者的关
  • hystrix详述(2)- 配置

    一 hystrix在生产中的建议 1 保持timeout的默认值 1000ms 除非需要修改 其实通常会修改 2 保持threadpool的的线程数为10个 除非需要更多 3 依赖标准的报警和监控系统来捕获问题 4 通过dashboards
  • 快应用-华为市场快应用审核总是不通过,无法复现华为审核时的bug【经验贴】

    最近完成了一个快应用项目 在提交各个市场审核的时候 除了华为市场总是不过 其他市场 vivo oppo 小米 等 都很快通过了审核 最让人恼火的是 华为反馈的bug内容 我们尝试各种方法都无法复现 无法复现bug就很难定位修改 修改bug全
  • 微信小程序 一键授权 给第三方平台代开发管理(二,一键授权给第三方平台)

    不是重点 可以忽略 本人 七月的胜利 代表七月份我出生啦 嘻嘻 博客就是平常记录一些常用到的开发常用到的技术 方法等 看见好东西了就自己整理一下防止以后自己遇到了再找不到 如果有幸帮到你 欢迎点赞 评论 留言 Thank you 一 创建第
  • linux设置交换内存

    查看是否有交换空间 cat proc swaps free h 创建swapfile空间 sudo fallocate l 32G swapfile ls lh swapfile 设置空间权限 sudo chmod 600 swapfile
  • 如何使你的网页视频自动播放嵌入的iframe视频

    只需在视频链接后面接上 rel 0 amp autoplay 1
  • <Linux内核学习>文件系统

    环境 Linux 0 11 Linux 3 4 2 参考书籍 Linux内核完全剖析基于0 11内核 赵炯 一 Linux中使用文件系统的部分 1 1关于Linux中高速缓冲区的管理程序 1 2文件系统的底层通用函数 对于硬盘的读写 分配释
  • 程序员分哪几种,分别薪资是多少

    这是本文的目录 前言 程序员的类别 程序员的薪资一般是多少 这里着重介绍一下python程序员 python副业介绍 1 兼职处理数据 2 兼职查询资料 3 兼职P图 零基础Python学习资料介绍 附上Python学习指南 零基础Pyth
  • SQL注入和sql-labs通关1-18(手工注入、高权限注入、文件读写、提交方式、查询方式、WAF绕过、sqlmap)

    目录 1 SQL 注入 Injection 概述 2 SQL注入之mysql基础语法 3 mysql系统库释义 3 1 information schema 库
  • linux查询Centos服务器资源配置和使用情况

    目录 1 查询内存 2 查询存储 3 查询cpu信息 4 cpu个数 5 查看cpu核心数 6 查看线程总数 7 查看系统32位还是64位及系统架构 1 查询内存 free h Mem 表示物理内存统计 如果机器剩余内存非常小 一般小于总内
  • PADS卡死问题

    今天PADS Logic老是一按ctrl键就卡死 试了很多方法 重装 重置都没用 最后上网查了一下类似问题 发现是输入法导致的 因为微软最新的输入法和以往有不兼容的地方 最后去设置里面改为兼容之前便解决了问题

随机推荐