CAN基础知识介绍

汽车ECU开发 2023-03-24 09:02

1. CAN协议

1.1 CAN协议简介

CAN是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO11519以及ISO11898), 是国际上应用最广泛的现场总线之一。差异点如下:


1.2 CAN物理层

CAN通讯不是以时钟信号来进行同步的,它是一种异步通讯,只具有CAN_High和 CAN_Low两条信号线,共同构成一组差分信号线,以差分信号的形式进行通讯。CAN 物理层的形式主要有两种:
  • 遵循ISO11898标准的高速、短距离闭环网络,总线最大长度为40m,通信速度最高为 1Mbps,总线的两端各要求有一个120欧的电阻

  • 是遵循ISO11519-2标准的低速、远距离开环网络,最大传输距离为1km,最高通讯速率为125kbps,两根总线是独立的、不形成闭环,要求每根总线上各串联有一个2.2千欧的电阻

以TJA1050芯片作为CAN收发器的电路原理图如下图示

差分信号又称差模信号,差分信号传输时,需要两根信号线,这两个信号线的振幅相等,相位相反,通过两根信号线的电压差值来表示逻辑0和逻辑1,CAN中显性电平(差值为正)对应逻辑0,隐性电平(差值小于或等于0)对应逻辑1,显性电平比隐性电平更强


1.3 CAN协议层

CAN属于异步通讯,没有时钟信号线,连接在同一个总线网络中的各个节点会像串口异步通讯那样,节点间使用约定好的波特率进行通讯,CAN使用位同步的方式来抗干扰、吸收误差,实现对总线电平信号进行正确的采样,确保通讯正常

⏩ 位时序分解:为了实现位同步,CAN协议把每一个数据位的时序分解成SS段、PTS段、PBS1段、PBS2段,这四段的长度加起来即为一个CAN数据位的长度。分解后最小的时间单位是Tq,一个完整的位由8~25个Tq组成

⏩ 波特率:总线上的各个通讯节点只要约定好1个Tq的时间长度以及每一个数据位占据多少个Tq,就可以确定CAN通讯的波特率

例如,假设上图中的 1Tq=1us,而每个数据位由 19 个 Tq 组成,则传输一位数据需要时间 T1bit=19us,从而每秒可以传输的数据位个数为:1x10次方/19 = 52631.6 (bps)。这个每秒可传输的数据位的个数即为通讯中的波特率。

⏩ 同步过程:波特率只是约定了每个数据位的长度,数据同步还涉及到相位的细节,此时就要用到数据位内的SS、PTS、PBS1及PBS2段了。根据对段的应用方式差异, CAN的数据同步分为硬同步和重新同步。其中硬同步只是当存在帧起始信号时起作用,无法确保后续一连串的位时序都是同步的,而重新同步方式可解决该问题

硬同步:CAN节点通过总线发送数据时,会发送一个帧起始信号。而挂载到CAN总线上的节点在不发送数据时,会时刻检测总线上的信号。如下图,当总线出现帧起始信号时,节点检测到总线的帧起始信号不在节点内部时序的 SS 段范围,所以判断它自己的内部时序与总线不同步,因而这个状态的采样点采集得的数据是不正确的。所以节点以硬同步的方式调整,把自己的位时序中的 SS 段平移至总线出现下降沿的部分,获得同步,同步后采样点就可以采集得正确数据了

重新同步:前面的硬同步只是当存在帧起始信号时才起作用,如果在一帧很长的数据内,节点信号与总线信号相位有偏移时,这种同步方式就无能为力了。因而引入重新同步方式,它利用普通数据位的高至低电平的跳变沿来同步。与硬同步方式相似的是它们都使用 SS 段来进行检测,同步的目的都是使节点内的 SS 段把跳变沿包含起来。重新同步分为超前和滞后两种情况,以总线跳变沿与 SS 段的相对位置进行区分。

-- 相位超前:节点从总线的边沿跳变中,检测到它内部的时序比总线的时序相对超前 2Tq,这时控制器在下一个位时序中的 PBS1 段增加 2Tq 的时间长度,使得节点与总线时序重新同步

-- 相位滞后:节点从总线的边沿跳变中,检测到它的时序比总线的时序相对滞后 2Tq,这时控制器在前一个位时序中的 PBS2 段减少 2Tq 的时间长度,获得同步

⏩ 报文种类及结构:对数据、操作命令 (如读/写) 以及同步信号进行打包,打包后的这些内容称为报文。CAN一共规定了5种类型的帧

数据帧的结构:数据帧是在CAN通讯中最主要、最复杂的报文,它的结构如下图


其他报文结构


2. CAN控制器

STM32 的芯片中具有bxCAN控制器,支持CAN协议2.0A和2.0B标准。该CAN控制器支持最高的通讯速率为1Mb/s;可以自动地接收和发送CAN报文,支持使用标准ID和扩展ID的报文;外设中有3个发送邮箱,发送报文的优先级可以使用软件控制,还可记录发送的时间;有2个3级深度的接收FIFO,可使用过滤功能只接收或不接收某些ID号的报文;可配置成自动重发;不支持使用DMA进行数据收发。框架示意图如下:


STM32有两组CAN控制器,其中CAN1是主设备,框图中的存储访问控制器是由CAN1控制的,CAN2无法直接访问存储区域,所以使用CAN2的时候必须使能CAN1外设的时钟。框图中主要包含CAN控制内核、发送邮箱、接收FIFO以及验收筛选器,下面对框图中的各个部分进行介绍

2.1 CAN控制内核

⏩ 主控寄存器CAN_MCR:负责管理CAN的工作模式

INRQ位:用来控制初始化请求,在CAN初始化时,先设置该位为1,进行初始化,之后再设置该位为0,让CAN进入正常工作模式

⏩ 位时序寄存器CAN_BTR:用于配置测试模式、波特率以及各种位内的段参数

CAN波特率的计算公式:只需要知道BS1和BS2的设置,以及APB1的时钟频率,就可以方便的计算出波特率。比如设置TS1=9、TS2=5和BRP=6,在APB1频率为45Mhz的条件下,即可得到CAN通信的波特率=45000/6/(5+9+1)=500Kbps

2.2 CAN发送邮箱

CAN 共有3个发送邮箱,即最多可以缓存3个待发送的报文。每个发送邮箱中包含有标识符寄存器CAN_TIxR、数据长度控制寄存器CAN_TDTxR及2个数据寄存器CAN_TDLxR、CAN_TDHxR,如下图

当使用CAN外设发送报文时,需要把报文的各个段分解,按位置写入到这些寄存器中,并对标识符寄存器CAN_TIxR中的发送请求寄存器位TMIDxR_TXRQ置1,即可把数据发送出去。其中标识符寄存器CAN_TIxR中的STDID寄存器位比较特别。我们知道CAN的标准标识符的总位数为11位,而扩展标识符的总位数为29位的。当报文使用扩展标识符的时候,标识符寄存器CAN_TIxR中的STDID[10:0]等效于EXTID[18:28]位,它与EXTID[17:0]共同组成完整的29位扩展标识符

⏩ 发送邮箱标识符寄存器CAN_TIxR

⏩ 发送邮箱数据长度和时间戳寄存器CAN_TDTxR

⏩ 发送邮箱低字节数据寄存器CAN_TDLxR

⏩ 发送邮箱高字节数据寄存器CAN_TDHxR


2.3 CAN接收FIFO

CAN 共有2个接收FIFO,每个FIFO中有3个邮箱,即最多可以缓存6个接收到的报文。当接收到报文时,FIFO的报文计数器会自增,而STM32内部读取FIFO数据之后,报文计数器会自减,通过状态寄存器可获知报文计数器的值,而通过前面主控制寄存器的RFLM位,可设置锁定模式,锁定模式下FIFO溢出时会丢弃新报文,非锁定模式下FIFO溢出时新报文会覆盖旧报文。跟发送邮箱类似,每个接收FIFO中包含有标识符寄存器CAN_RIxR、数据长度控制寄存器CAN_RDTxR及2个数据寄存器CAN_RDLxR、CAN_RDHxR,它们的功能见下表

通过中断或状态寄存器知道接收FIFO有数据后,我们再读取这些寄存器的值即可把接收到的报文加载到STM32的内存中
⏩ 接收FIFO邮箱标识符寄存器CAN_RIxR

⏩ 接收FIFO邮箱数据长度和时间戳寄存器CAN_RDTxR

⏩ 接收FIFO邮箱低字节数据寄存器CAN_RDLxR

⏩ 接收FIFO邮箱高字节数据寄存器CAN_RDHxR


2.4 CAN验收筛选器

AN 验收筛选器,共有28个筛选器组,每个筛选器组有2个寄存器,CAN1和CAN2 共用筛选器。CAN协议中,消息的标识符与节点地址无关,但与消息内容有关。因此,发送节点将报文广播给所有接收器时,接收节点会根据报文标识符的值来确定软件是否需要该消息,为了简化软件的工作,STM32的CAN外设接收报文前会先使用验收筛选器检查,只接收需要的报文到FIFO中。筛选器工作的时候,可以调整筛选ID的长度及过滤模式。

根据筛选ID长度来分类有有以下两种:

  • 检查 STDID[10:0]、EXTID[17:0]、IDE 和 RTR 位,共 31 位

  • 检查 STDID[10:0]、RTR、IDE 和 EXTID[17:15],共 16 位

根据过滤的方法分为以下两种模式:

  • 标识符列表模式,它把要接收报文的 ID 列成一个表,要求报文 ID 与列表中的某一个标识符完全相同才可以接收,可以理解为白名单管理。

  • 掩码模式,它把可接收报文 ID 的某几位作为列表,这几位被称为掩码,可以把它理解成关键字搜索,只要掩码 (关键字) 相同,就符合要求,报文就会被保存到接收 FIFO

通过配置筛选模式寄存器CAN_FM1R的FBMx位可以设置筛选器工作在哪个模式。通过配置筛选尺度寄存器CAN_FS1R的FSCx位可以设置筛选器工作在哪个尺度。不同的尺度和不同的过滤方法可使筛选器工作在图 的 4 种状态

每组筛选器包含2个32位的寄存器,分别为CAN_FxR1和CAN_FxR2,它们用来存储要筛选的ID或掩码,各个寄存器位代表的意义与图中两个寄存器下面“映射”的一栏一致,各个模式的说明见表

例如下面的表格所示,在掩码模式时,第一个寄存器存储要筛选的ID,第二个寄存器存储掩码,掩码为1的部分表示该位必须与ID中的内容一致,筛选的结果为表中第三行的ID值,它是一组包含多个的ID值,其中x表示该位可以为1可以为0

而工作在标识符模式时,2个寄存器存储的都是要筛选的ID,它只包含2个要筛选的ID值 (32位模式时)。如果使能了筛选器,且报文的ID与所有筛选器的配置都不匹配,CAN外设会丢弃该报文,不存入接收FIFO
⏩ 过滤器模式寄存器CAN_FM1R

⏩ 过滤器尺度寄存器CAN_FS1R

⏩ 过滤器FIFO分配寄存器CAN_FFA1R

⏩ 过滤器激活寄存器CAN_FA1R

⏩ 过滤器组i的寄存器x CAN_FiRx


来源:一口Linux

推荐阅读

聊聊自动驾驶应用层软件开发

一文搞懂CAN收发器TJA1145

车载抬头显示系统(HUD)历史及发展

车身控制器功能规范

小鹏P7的热管理系统详解

大众ID4.X内部ECU技术细节整理

比亚迪海豹整车技术整理

揭秘理想的整车电子电气架构

国内主机整车EEA架构汇总

谈谈Bootloader自更新

谈谈对两家AUTOSAR工具看法

汽车软件需求是如何变成用户功能?

汽车E/E架构的网络安全分析

电子电气架构设计需要考虑哪些方面?

深度解读汽车域控制器
自动驾驶域控制器信息梳理
谈谈对汽车OTA的理解


分享不易,恳请点个【👍】和【在看】

汽车ECU开发 专注于汽车电子ECU软件开发,技术分享。
评论 (0)
  • 在过去的20年,传感器厂商不断研究创新的测量原理和敏感材料,这些成果能让我们用到高集成、低成本的传感器,其中,最成功也是最具颠覆性的,无疑是MEMS技术在传感器制造中的应用。MEMS技术在传感器的大规模应用,让传感器的小型化、低功耗、智能化成为可能,从而推动了传感器在物联网、消费电子、汽车电子等领域的广泛应用,促进了数字经济的发展和智能时代的到来。可以说,在过去20年,MEMS颠覆和扩展了传感器。传感器专家网https://www.sensorexpert.com.cn专注于传感器技术领域,致力
    传感器专家网 2023-06-08 19:28 165浏览
  • 半导体制冷片是电子器件中重要的辅助元件,用于控制器件的温度,从而保证器件的稳定性和可靠性。在半导体制冷片的制造过程中,半导体制冷片的基板材料选择是非常关键的,因为基板材料的性能会直接影响到制冷片的性能。同时作为精密制冷片新型技术,对陶瓷基板的要求也高于普通基板。1.外观要求:严格的铜面平整度,粗糙度要求控制在0.5um以内,铜面上不允许有凹坑、铜颗粒、氧化、任何形式的外观划伤等。2.尺寸要求:完成板厚控制公差在10-20um以内,而陶瓷板材的来料公差就有±30un公差,这就意味着需要挑选公差范围
    斯利通陶瓷电路板 2023-06-08 11:50 169浏览
  • 前段时间出了接近一个月的差,没来得及及更新试用报告,有点不好意思,今天抽空过来写一下自己的看书的心得以及对于整个书籍的一些认知和看法,希望对大家能够有一定的帮助,也希望可以和大家一起探讨进步。以前自己都是使用的Altium Designer做开发设计的,大学的时候就开始接触,作为个人爱好延续至今,对于PADS也是有所耳闻,只是一直没有机会来了解,根据我个人的经验来看,按照以前使用Altium 的经验来说,PADS设计指南 无论说是从流程步骤上以及类容的细致程度上都还是很不错的,从设计流程、原理图
    君莫笑啊 2023-06-08 11:21 183浏览
  • 苹果如何重新定义AR?在如今以智能手机为主的消费电子市场下行阶段,市场急需开辟一个新的领域带来新的增长点,以往被寄予厚望的VR/AR等头显设备在经历了数年发展后,依旧难堪大任,业界都把希望寄托在苹果身上。简单来说,Vision Pro本质上其实还是VR设备,不过所有操作界面可以结合头显摄像头捕捉的外界环境,在头显内部显示出来,即一款数字内容无缝融入真实世界的VR显示设备。同时Vision Pro的操作方式无需手柄,完全通过眼睛、双手和语音,通过苹果为Vision Pro打造的空间操作系统Visi
    华秋商城 2023-06-08 10:32 147浏览
  • 近年来,伴随着智慧化港口的大潮流,经纬恒润L4高级别智能驾驶业务产品也陆续扎根港口自动驾驶多个项目中,帮助港口实现无人水平运输自动化,达到降本增效的效果,助力客户实现智慧化绿色港口。   在整个港口水平运输场景中,经纬恒润提供了端到端的车、路、网、云、图全栈式自研解决方案,包含自动驾驶系统、路侧车路协同、基于5G网络的远程遥控驾驶、车队调度管理平台、数字孪生、仿真系统、高精地图等专业模块,组成了一套完整的智慧港口解决方案。本篇专门介绍其中的自动驾驶系统。  
    hirain 2023-06-09 11:29 148浏览
  • 1.编制依据(1)五号线接触网可视化自动接地及工作票管理系统合同文件;(2)总工期策划;(3)XX站安装位置现状调查;。(4)五号线接触网可视化自动接地及工作票管理系统图纸;(5)公司的技术力量和施工能力的基本情况。(6)广州地铁运营事业总部关于既有线施工管理相关办法和标准。2.施工内容及工程数量XX站共安装四台可视化直流验电接地装置、一台通信柜、一台站级操作终端、两台红外摄像头、一套系统工作站及相关一次二次电缆的敷设、接线工作。主要设备工程数量表名 称规格型号单位数量备注可视化直流验电接地装置
    橙子1 2023-06-07 16:15 204浏览
  • CS5466支持dsc1.1/12a压缩视频传输,是一款Type-C转HDMI8K30HZ或者4K144HZ方案芯片,Type-C/DP1.4转HDMI2.1的显示协议转换芯片, 内部集成了PD3.0及DSC decoder.CS5466电路原理图参考:CS5466芯片产品参数特性:1. Type-C/DP(2lanes)to HDMI2.1 8K30或者4K144产品。2. 支持HDMI2.1 FRL。3. 集成DSC1.2a decoder。4. DSC支持RGB, YCbCr4:4:4,
    QQ1540182856 2023-06-09 09:52 139浏览
  • 电源适配器CE认证标准测试项目,电子产品现在用的是相当的广,常见的产品就一大堆,比如说手机电脑等都会使用到电源适配器。电源适配器适用范围很广,不仅在移动设备端,在其它领域也会应用到。电源适配器CE认证,一般会做CE认证中的低电压指令LVD和电磁兼容指令EMC,欧洲能效认证ERP,RoHS等。下面具体来看看认证这么做吧。电源适配器为什么要做CE认证?CE认证制度下的LVD低电压指令涵盖了交流50V-1000V,直流75V-1500V的所有带电产品,EMC指令涵盖了所有有电路板产生电磁辐射的带电产品
    陈丽莎 2023-06-08 14:09 215浏览
  • MSDS中干电池、铅酸蓄电池、锂电池正负极材料介绍191-0751-6775一、干电池干电池也叫锰锌电池,所谓干电池是相对于伏打电池而言,所谓锰锌是指其原材料。针对其它材料的干电池如氧化银电池,镍镉电池而言。锰锌电池的电压是15V。干电池是消耗化学原料产生电能的。它的电压不高,所能产生的持续电流不能超过1安培。锌锰干电池:正极材料:锰、石墨棒负极材料:锌镁锰干电池:正极材料:二氧化锰粉、氯化铵及碳黑组成的一个混合糊状物负极材料:镁筒锌空气电池:正极材料:用活性炭吸附空气中的氧或纯氧作为正极活性物
    陈丽莎 2023-06-09 16:43 118浏览
  • 最近在使用串口读一些数据,但是总会出现些发、送之间的冲突问题,为了弄清楚问题的所在,于是产生了想法,做了一个日志保存。[code]void Widget::SaveLogTxt(QString dat ){ QDateTime currenttime = QDateTime::currentDateTime(); QString strDate = currenttime.toString("yyyy/MM/dd"); QString strTime = currenttime
    E_ARM 2023-06-09 10:31 133浏览
  • 近日,一则长城汽车举报比亚迪的消息,瞬间刷爆了整个汽车圈,行业外对于这个事情多少有点懵,但业内对此却并不感到意外。如果说去年前年国内新能源汽车的“较量”,还是争夺入选资格的话,如今这种级别的“较量”,则进入了深层次的“叫阵厮杀”阶段。尤其是今年以来,伴随着各大头部新能源车企纷纷宣布降价售车,之前就已经熬不住的合资汽车,先行顶不住而宣布大力度降价,随后降价的浪潮开始席卷全行业,这给其他新能源车企也带来了巨大的压力。而在这种压力背后,行业共识也逐渐显现。油电同价背后的行业共识5月25日,比亚迪宋Pr
    刘旷 2023-06-08 10:04 229浏览
  • 近期有点全身心投入到了嵌入式驱动的开发意思了,起早贪黑的学习。不过也是,人生的路都是在不断地学习中度过的。对于干了几年的硬件工程师而言,不说硬件是不是很牛了,就是想换换脑子,整天三极管、电阻、电容的,确实让人乏味。思来想去,硬件是软件的基座,驱动是软件沟通硬件的桥梁。倒不如自己整点知识,也方便自己以后调试硬件不是,再说了从软件角度去理解硬件思维,会有很多不同的收获不是。 奋战了一个月,倒是把驱动的基本框架了解七七八八了,兴致使然,图像采集感觉还不错,公司有产品当开发板,也是省下了大部分的学
    二月半 2023-06-08 12:09 606浏览
  • 低温型产品概述:霍尔效应测试仪由电磁铁、电磁铁电源、高精度恒流源、高精度电压表、霍尔效应样品支架、标准样品、高低温杜瓦,控温仪,系统软件组成。为本仪器系统专门研制的JH10效应仪将恒流源,六位半微伏表及霍尔测量复杂的切换继电器——开关组装成一体,大大减化了实验的连线与操作。JH10可单独做恒流源、微伏表使用。用途:用于测量半导体材料的载流子浓度、迁移率、电阻率、霍尔系数等重要参数,而这些参数是了解半导体材料电学特性必须预先掌控的,因此霍尔效应测试系统是理解和研究半导体器件和半导体材料电学特性必*
    锦正茂科技 2023-06-09 13:16 93浏览
  • 增加电池寿命的秘诀 1.新买的电车要先充满几次吗?把电车电池完全充满这个操作,在专业上叫锂电池化成,是电车在出厂之前激活电池的一道工序,车主完全没必要这样做。《汽车大数据应用研究报告》里明确指出充放电深度是表征电池健康度的重要参数,充放电深度增加,释放电量变大,使电池的健康度衰减非常明显。所以在日常用车的时候我们尽量把电池的电量维持在20%~80%之间,这样能显著提升电池的使用寿命。1. 电池寿命会受温度影响吗?锂电池的理想工作温度为25摄氏度,工作温度过高或者过低都会引发电
    四川英特丽科技有限公司 2023-06-08 10:42 174浏览
  • 是日高考,祝各位考生如愿。据前瞻产业研究统计数据显示,2022年中国共有相关传感器产业链企业50664家,中国智能传感器行业企业共有16875家。其中,直接从事传感器生产制造研发的企业仅有不到2000家,这里面大部分都是小微企业。据传感器专家网统计,目前,整个中国股市,仅有约64家国产传感器概念企业上市,总市值超1万亿元。其中,仅2022年以来,就有14家传感器企业上市,中国传感产业风起云涌。传感器专家网https://www.sensorexpert.com.cn专注于传感器技术领域,致力于对
    传感器专家网 2023-06-07 20:00 188浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦