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

dabcee95016fd78e4c3d2df21663f1b6.png

通过一篇易懂的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所示。

c09797bb34ba75caa48c109cae827f5c.png
图1 CAN通讯相关的模块

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

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

2acd07ee05b9a2b312b62926e4e6ba26.png

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

8d8ac2a044378ce46807cff7b696b3cc.png

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

e86b7c95421156fa2e2b21ddc966c07d.png

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值