linux can总线接收数据串口打包上传_基于AutoSAR架构的CAN通讯简介

本文深入介绍基于AutoSAR的CAN通讯。先介绍AutoSAR基础框架中与通讯相关部分,阐述CAN总线通讯消息传递及数据转换过程。接着介绍PDU概念,包括不同架构层的PDU类型及组成。最后结合AutoSAR模块详细说明CAN通讯数据流,涵盖接收与发送过程。

01

基于AutoSAR CAN通讯过程简介

       随着汽车电子化与自动驾驶的发展,AutoSAR汽车开放式系统架构得到越来越多的重视与应用。继之前对AutoSAR进行简介之后,本文进一步深入对基于AutoSAR的CAN通讯进行介绍。

        如下图1所示为常见AutoSAR基础框架,其中红框部分为与通讯相关的部分,包括LIN、CAN、Eth等。

0d1d8558506ce6ad466f6caf61ba2f17.png

图1 AutoSAR基础框架

        CAN总线通讯取消地址编码的方式,采用消息编码的方式,总线上各个节点都能收到总线发出的消息。各个节点根据ID判断是否为自身所需要的消息进行接收。总线到应用层之间的消息传递以及数据转换过程如下:

        1、总线上只能传递高低电平的物理信号,CAN收发器(软件上包含CAN Driver,CAN transceiver,Driver for CAN ASIC)将总线传递过来的差分电平转换为逻辑电平(TTL电平)(发送时相反)生成二进制码流;CAN收发器将二进制码流发送给CAN控制器(软件上包含CAN Interface)。(数据链路层)

        2、CAN控制器将在二进制码流的基础上生成CAN帧(CAN帧最大传输数据为8byte,此处不详细介绍CAN帧结构以及种类),同时进行位填充、添加CRC校验、应答检查等操作(发送时类似)。(网络层)

        3、通讯服务在收到下层传递过来的CAN帧消息之后进行解析提取、处理CAN帧中包含的信号,通过路由转发给需要的模块。(交互层)

02

PDU简介

        在介绍完基本数据流向之后,介绍一个重要概念:PDU。PDU是AutoSAR通讯过程中一个重要的概念,全称:协议数据单元(protocol data unit),是数据传输的基本单位。在不同的架构层有不同的PDU分为以下几种:

I-PDU(交互层)

N-PDU(网络层)

L-PDU(数据链路层)

        PDU包含PCI和SDU两部分,PCI包含源地址和目标地址信息,SDU是数据信息。如下图2所示为PDU基本组成。

f89c5862f5c4442fb20041b76c606ae9.png

图2 PDU组成

03

基于AutoSAR CAN通讯数据流

        接下来结合具体AutoSAR模块进行详细数据流介绍。如图3所示为通讯数据流,其中红色方框中为CAN通讯数据流;图4为不同的架构层对应的协议数据单元以及对应的AutoSAR模块及对应的CAN帧。

6be759b3e1c0aff6a05810e1c64ddef0.png

图3 通讯数据流

da1a9f021db49a6630eaa79129bd44ff.png

图4 

CAN通讯数据流如下:  

        1、在CAN Driver收取Bus上传来的信号电平之后生成L-PDU,L-PDU传输至CANIf;

     2、CANIf生成CAN帧,生成N-PDU。此时CANIf判断CAN帧的传输方式(单针传输/连续帧传输)。当为单帧传输时,N-PDU传输SF(single frame),如下图5所示:

9101e4282af7ea2d5cd25c3a6d1a3528.png

图5 单帧传输

        当无法利用单帧传输时,需要多帧传输。在多帧传送方式中,网络层根据需要,将数据进行拆分成一个首帧(FF:First Frame)和多个连续帧(CF:Consecutive Frame)。首帧包含了分段数据的总长度信息以及一些数据帧;每个连续帧的第一个字节都包含拆分的顺序编号,后面的七个字节用于存放数据。接收端在接收到连续帧后根据接收数据帧的编号重组服务数据。如下图所示:流控制帧(FC:Flow Control)向发送端传递接收端的接收及响应能力,即最多能够接收多少连续帧以及响应时间STmin等。

d6de9e65f2f39019f101ea19a522fe7e.png

图6 多帧传输

        3、N-PDU传输到CAN TP经过如上图过程,生成由单帧或组合帧组成的I-PDU。

        4、I-PDU进入PDUR进行分配,根据地址信息(PCI)将进入COM模块的I-PDU传入COM。(PDUR:给PUD提供路由功能,通过地址信息分配到不同的目标地)

        5、COM对I-PDU的数据信息SDU进行解析,生成signals,signals通过RTE传输给应用层。

        CAN消息发送过程与接收过程相反。

fe8ac901eef2ed062553290bfb3eebba.png

图7 接收与发送过程

        以上就是基于AutoSAR架构的CAN通讯简介,相关的诊断刷新功能也是在通讯功能的基础上进行扩展的。

bcff32f72102b9ff72780d81a91a748f.pnge45ee59c9de4696b8724d7ca9fdbe719.png

底蕴底盘

一起分享底蕴底盘的点滴

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值