首页 > 其他分享 >BSW之——CAN

BSW之——CAN

时间:2024-09-03 14:35:52浏览次数:9  
标签:错误 ACK BSW 发送 CRC FD ms

CAN总线协议

一、简介

CAN:

控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。 CAN协议用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。 该协议的健壮性使其用途延伸到其他自动化和工业应用。 CAN协议的特性包括完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、同时具有11位的寻址以及检错能力。

CAN FD:

CAN FD 是CAN with Flexible Data rate的缩写,翻译为【可变速率的 CAN】。 也可以简单的认为是传统CAN的升级版,其中要说明的是,只升级了协议,物理层没有改变。

(注:可变速不是所有字段,而是部分字段,从控制场中的BRS位到ACK场之前(含CRC分界符)为可变速率)

 

二、帧介绍

CAN:

SOF: 起始帧。

ID:  11位或者29位的CAN ID。

RTR: 远程帧请求,远程帧为 0,表示是数据帧,否则是远程帧。远程帧表明接受该帧的节点即不主动发送数据,当他收到远程帧时,才开始发送数据,减少占用 CAN 的通信。

IDE:  扩展帧标识位。

FDF:   是否是CAN FD。

DLC:   数据长度。

Data:   数据段。

CRC:   CRC校验。

DEL: 分隔符,无意义,为 1。

ACK:   当接收端接收到有效数据后,就会给发送端发送个低电平表示接收的数据是准确的。

DEL: 分隔符。

EOF: 结束字段。

ITM:  帧间隔。

CAN FD:

BRS:   之后数据段传输是否变换速度,BRS 之前属于仲裁段,会以低速传输;BRS 开始到 CRC 分隔符为止,属于数据段,可以高速传输。CRC 分割符之后,由于需要 ACK 应答,因此又变为低速传输。

ESI:  用来告知其余节点,发送方的错误状态。ESI=1,Tx Node处于被动错误状态;ESI=0,Tx Node处于主动错误状态

  • 错误主动状态(Error Active):节点能够正常发送和接收数据,并参与总线仲裁。在错误主动状态下,节点会发送错误帧来报告错误。
  • 错误被动状态(Error Passive):节点仍然能够发送和接收数据,但在检测到错误时不会发送错误帧,而是会在ACK槽中发送隐性位(1)来指示错误。

三、计算极限

计算一下1ms理论上能够发多少帧数据。

CAN

CAN按照500k/b的波特率算,那么发送1bit所用的时间为:(1/500k)s = 0.002ms。

CAN一帧数据共有11+1+1+1+4+64+15+1+1+1+7+3=110bit。

所以发送一帧数据需要110*0.002=0.22ms。

那么1ms可以发送 1/0.22 = 4.54帧 ≈ 4帧。

CAN FD

CAN按照500k/b,2M/b的波特率算,低速1bit时间为:0.002ms,高速1bit时间为:0.0005ms。

由于可变速不是所有字段,而是部分字段,从控制场中的BRS位到ACK场之前(含CRC分界符)为可变速率。

所以需要时间为:92*0.0005+28*0.002=0.102ms。

那么1ms可以发送 1/0.102 = 9.8帧 ≈ 9帧。

但是这样计算的都是极限值,理想状态,由于受到硬件影响,调度影响,芯片负载等等,具体的带宽能有多大要看具体情况。

 

标签:错误,ACK,BSW,发送,CRC,FD,ms
From: https://www.cnblogs.com/JinShanCheShen/p/18394545

相关文章

  • Qt short int 数组大小端转换(qbswap)
    在以下情形中,展示了如何将 shortint 数组从大端序转换为小端序,或者从小端序转换为大端序。1#include<iostream>2#include<cstdint>3intmain()4{5constexprintsize=4;6std::uint16_tarr[size]={0x1234,0x5678,0x9abc,0xdef0};7/......
  • [AutoSar]BSW_Memory_Stack_003 NVM与APP的显式和隐式同步
    目录关键词平台说明背景一、implicitsynchronization1.1Writerequests流程(NvM_WriteBlock)1.2Readrequests流程(NvM_ReadBlock)1.3Restoredefaultrequests流程(NvM_RestoreBlockDefaults)1.4Multiblockreadrequests流程(NvM_ReadAll)1.5Multibloc......
  • Autosar-BswM 配置详解(免费)-2
    上表配置内容的意思是,BswM初始化过程中会先走到“BswM_AR_InitBlockTwo”这个步骤,如果条件满足的话,会执行这个步骤所有的动作。执行完后“BswM_AR_InitBlockTwo”,会切换到“BswM_AR_ReadAllComplete”这个步骤,如果条件满足的话,执行完该步骤的所有动作。之后再次切换到run的......
  • 详解Assertion desc failed at src/libswscale/swscale_internal.h:668
    目录详解Assertiondescfailedatsrc/libswscale/swscale_internal.h:668错误原因解决方案1.检查输入参数2.升级FFmpeg版本3.检查编译选项4.优化代码5.寻求帮助结论详解Assertiondescfailedatsrc/libswscale/swscale_internal.h:668在使用FFmpeg进行视......
  • ISOLAR Autosar BSW 配置 之 SoAd
    6.SoAd6.1SoAdGeneralSoAdBestMatchRxHeaderldCheck  RX头最佳匹配算法使能SoAdChangeParameterEnabled  SoAd是否可以修改连接参数,函数调用:SoAd_ChangeParameterSoAdDHCPFQDNEnabled  FQDN(完全限定域名)SoAdDevErrorDetect  开发错误检测和通知......
  • ISOLAR Autosar BSW 配置 之 TcpIp
    5.TcpIp5.1TcpIpGeneralTcplpDevErrorDetect  开发错误检测和通知;TcplpGetAndResetMeasurementDataApi  允许应用程序获取以太网接口当前的测量数据,并将这些数据重置为初始值。TcplpMainFunctionPeriod  任务调度周期TcplpScalabilityClass  协议栈......
  • DaVinci Configurator和BSW初探 应用软件相关
    应用层模块配置:TaskMapping ......
  • DaVinci Configurator及BSW初探
    1.初始界面2.基础配置点击后会出现各部分的配置内容:其中白色部分可能是由于电脑中未安装EBOS ......
  • 如何使用libswscale库将YUV420P格式的图像序列转换为RGB24格式输出?
    一.视频格式转换初始化将视频中的图像帧按照一定比例缩放或指定宽高进行放大和缩小是视频编辑中最为常见的操作之一,这里我们将1920x1080的yuv图像序列转换成640x480的rgb图像序列,并输出到文件。视频图像转换的核心为一个SwsContext结构,其中保存了输入图像和输出图像的宽高以......
  • ADV7611BSWZ-ASEMI代理亚德诺ADV7611BSWZ原厂芯片
    编辑-ZADV7611BSWZ参数描述:型号:ADV7611BSWZ输入高电压:1.2V输入低电压:0.4V输入电流:±45µA输入电容:10pF输出高电压:2.4V输出低电压:0.4V高阻抗泄漏电流:±35µA输出电容:20pFLLC频率范围:13.5-165MHzSCL频率:400kHz储存温度范围:-60℃to+150℃  一般说明:ADV7611B......