首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CAN通信(一)——认识CAN总线

CAN通信(一)——认识CAN总线 CAN总线 背景 CAN总线是什么 网络拓扑 节点、报文、信号 CAN总线 背景 作为并非通信专业汽车工程师,汽车CAN通信是必须掌握,但是,记得刚开始上来一看什么定义...刚学时候确实一脸懵)。所以,我只从汽车工程师角度讲讲我能理解和用得到CAN通信,才疏学浅,请各位指教! 关于OSI模型、物理层、数据链路层,高低电平、数据帧。。...控制器局域网络总线 绝大多数汽车制造厂商采用CAN总线来实现汽车内部控制系统之间数据通信CAN总线也叫CAN BUS BUS?...恩,这不是公交意思么,没错,公共汽车是可以运输大量乘客CAN通信也就可以传输大量信号。下边这个图片很形象 简单说,CAN总线就是用于传输数据通信协议。...当然这里边是乘客选择了这个站牌,实际CAN通信是节点选择接收了这信息。 下一节介绍下CAN通信信号矩阵。

2.5K40

CAN通信采样点

熟悉CAN总线朋友应该都知道,CAN通信每一位分为四个部分,在CAN中线标准里都有明确描述,之前在CAN总线相关推送里也讲过几次,尤其在配置CAN总线通信波特率时候,这几个时间段都要在相关寄存器配置...而单采样点一般位于相位缓冲段1之后,采样点顾名思义,从名字就可以看出,是读取总线电平,并解释各位一个时间点,采样点对CAN总线来说也非常重要,尤其在组网时候,多个节点尽量保持同一个采样点,且最好在但不超过...而CAN组织CiA也对采样点进行了详细描述。 ? 虽然有时候,同一个波特率可以有几个对应位时间段配置,但还是要选择一个符合最佳采样点配置,在J1939标准中还给出了几个例子 ? ?...关于采样点计算,(1+TSEG1)/(1+TSEG1+TSEG2) 例如上面的计算举例: 晶振时钟频率11M, SJW为1个Tq, TSEG1 为18, TSEG2为3,则采样点计算带入上面的公式,...希望对你有所帮助,在自己动手写CAN通信配置CAN位速率时候尽量使采样点靠近7/8位时间点。

5.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    CANCAN FD通信之间存在问题

    也就是说目前市场上大部分都还是在用传统CAN2.0,有一小部分用非ISO标准CAN FD,一部分用ISO标准CAN FD。...如下图所示,一个网络中只有EMS与ABS是用CAN FD,如果是EMS和ABS通信,这个时候只要对CAN FD之间数据1:1转发即可。...但是如果是EMS或者ABS与其他ECU通信,那么这时就需要将CAN FD数据切换为传统CAN再转发。...3、利用CAN网桥进行CAN FD与CAN转换 在原有的CAN网络上通过CAN网桥与新CAN FD节点进行连接,将传统CAN总线网络通过协议转换与CAN FD网络进行融合,快速实现CAN设备升级...当接收到CAN FD报文时候,CAN网桥会采用直转、合并、拆分三种方式实现传统CAN8字节长度和CAN FD64字节长度互相转换,无损还原原有数据。

    1.3K30

    CAN通信滤波设置

    CAN通信中,有时候我们只想接收需要ID,而滤出掉不需要消息,这时候我们就需要添加滤波配置,本次以STM32F103RC为例来说明,首先来看什么是有效报文 01 有效报文 根据CAN协议,当报文被正确接收...02 标识符过滤 你可以简单把他理解成和我们日常生活中过滤一样,就是滤掉不需要,剩下我们需要,在CAN协议里,报文标识符是跟报文内容相关,过滤是配置后,硬件完成,无需CPU开销,在F103...应用程序不用过滤器组,应该保持在禁用状态。过滤器组中每个过滤器,都被编号为(叫做过滤器号)从0开始,到某个最大数值-取决于过滤器组模式和位宽设置。...那么在CAN初始化程序里面,我们就要加上过滤 ? ? 然后在启动CAN使能中断,初始化就完成了。 ?...注意到两组中不同,一个是sFilterConfig.FilterBank不同,另一个就是要过滤ID标识符不同。至此基于标识符列表过滤模式就算完成,屏蔽位模式大家下去可以自己对照手册研究下。

    87210

    CAN协议通信相关知识

    CAN协议用于汽车中各种不同元件之间通信,以此取代昂贵而笨重配电线束。该协议健壮性使其用途延伸到其他自动化和工业应用。...CAN通讯具有严格错误检测机制、高传输速率,兼低成本、易于实施,特别适合节点之间关键数据传输小型嵌入式网络通讯; 2、CAN网络各节点平等竞争,无所谓主从,CAN通讯基于生产/消费者模型,一个节点生产...CAN 是Controller Area Network 缩写(以下称为CAN),是ISO国际标准化串行通信协议。...由于这些系统之间通信所用数据类型及对可靠性要求不尽相同,由多条总线构成情况很多,线束数量也随之增加。...为适应“减少线束数量”、“通过多个LAN,进行大量数据高速通信需要,1986 年德国电气商博世公司开发出面向汽车CAN 通信协议。

    1.4K30

    CAN协议通信「建议收藏」

    ;因此,在与汽车ECU通信过程中,我们必须遵循这个标准,就是我们常说CAN协议; 本章节简要介绍一下CAN2.0车辆通信协议使用,对于 CAN OSI七层模型等则不做说明; CAN协议通信...CAN通信根据协议结构而言分为标准CAN和拓展CAN;拓展CAN比标准CAN多了两个字节,然后请求应答需要交换ID外基本与标准CAN相同,故这里主要介绍标准CAN协议。...标准CAN协议 (1),标准帧:11个字节标准帧,其协议格式如下图所示: (2)在标准帧中,根据发送命令数据长短,可分为单帧,多帧;使用着两种方式与车辆进行通信; 单帧 单帧指的是有效数据长度小于等于...:填充字节,无意义,为满足标准can字节数而存在; 上述解其中涉及了PID(Process ID)和SID(Service ID)概念;关于某个PID具体意思在CAN2.0中都做了规定,可以查询...结束语 这是我对于CAN协议总结,如有错漏,还望广大网友指正,标准CAN协议适用于大多数车辆诊断通信CAN2.0在物理层和链路层做出规定;但J1939在CAN协议基础上,最网络层做出了规定,

    1.7K20

    CAN通信之BSP封装

    摘要 本篇笔记主要介绍,在STM32H743芯片上实现CAN通信,封装为BSP驱动,为之后实现CAN高层通信打下基础。 2....此外,第一个 CAN 模块 FDCAN1 支持 ISO 11898-4 中规定时间触发 CAN (TTCAN),包括事件同步时间触发通信、全局系统时间和时钟漂移补偿。...FDCAN1 还额外包含专供时间触发功能使用寄存器。CAN FD 选项可与事件触发和时间触发 CAN 通信一起使用。...通用时钟校准单元是可选。通过评估 FDCAN1 接收到 CAN 消息,该单元可基于 HSI 内部 RC 振荡器和 PLL 为 FDCAN1 和 FDCAN2 生成经过校准时钟。...板卡收到电脑发送数据后,回送给电脑。发送100000次, 10ms一次。使用USB-CAN连接到电脑端测试。 ? ? ? 至此我们CAN通信BSP驱动封装就验证完成,可以轻松移植到其他板卡上。

    1.1K10

    Can通信接口学习笔记

    第一步:了解Can通信接口协议,这里推荐大家 >(必读),里面详细说明can相关知识点;另外推荐大家看有关Can协议标准书籍(选读),相关pdf书籍下载地址:链接:https:/.../pan.baidu.com/s/1KDtoqkm541xZhoTUpXVJaw 提取码:9dvs 第二步: 特别需要关注点,1、通信速度与传输距离关系,2、通讯接口硬件连接方式(终端电阻)3、协议帧种类和格式...它代表CAN 标准里 PHASE_SEG2。...,这两个寄存器都是32位,他定义并不是固定,针对不同工作模式组合他定义是不一样,如列表模式-32位宽模式下,这两个寄存器各位定义都是一样,都用来存储某个具体期望通过CAN ID,这样就可以存入...2个期望通过CAN ID(标准CAN ID和扩展CAN ID均可);若在掩码模式-32位宽模式下时,则CAN_FxR1用做32位宽验证码,而CAN_FxR2则用作32位宽屏蔽码。

    1.5K10

    CAN通信协议(一)

    CAN基础知识介绍 CAN是Controller Area Network(控制器局域网络)缩写,是ISO国际标准化组织串行通信协议。由德国电气商博世公司在1986 年率先提出。...其中ISO11898是针对通信速率为125Kbps~1Mbps高速通信标准,而ISO11519-2是针对通信速率为125Kbps以下低速通信标准。...CAN总线可同时可同时连接多个单元。可连接单元总数理论上是没有限制。但实际上可连接单元受总线上时间延迟及电气负载限制。降低通信速度,可连接单元数增加;提高通信速度,则可连接单元数减少。...物理层特征 与I2C/SPI等具有始终信号同步通讯方式不同,CAN通讯兵不是以时钟信号来进行同步,它是一种异步通信,只具有CAN_High和CAN_Low两条信号线,共同构成一组差分信号线,以差分信号形式进行通讯...$1/(nT)$ 帧种类介绍 CAN通信以5种类型帧进行: 数据帧:用于通讯节点向外传送数据。 遥控帧:用于向远端节点请求数据。

    1.5K31

    详解CAN总线:CAN总线通信优先级机制

    目录 1、数据帧和遥控帧优先级 2、标准格式和扩展格式优先级 ---- 在详解CAN总线:CAN总线报文格式—数据帧文章中,讲解到仲裁段。...仲裁段用于写明需要发送到目的CAN节点地址、确定发送帧类型(当前发送是数据帧还是遥控帧),并确定发送帧格式是标准帧还是扩展帧。 本篇文章将讲解仲裁段另一个重要功能:通信优先级。...在CAN总线空闲态,最先开始发送消息单元获得发送权。多个单元同时开始发送时,各发送单元从仲裁段第一位开始进行仲裁,连续输出显性电平最多单元可继续发送。所以,帧ID值越小,优先级越高。...仲裁过程如下图所示: ​ ​ 1、数据帧和遥控帧优先级 具有相同 ID 数据帧和遥控帧在总线上竞争时,数据帧优先级高,因为数据帧仲裁段最后一位(RTR)为显性位具有优先权,可继续发送。...数据帧和遥控帧仲裁过程如下图所示: ​ 2、标准格式和扩展格式优先级 标准格式 ID 与具有相同 ID 遥控帧或者扩展格式数据帧在总线上竞争时,标准格式 RTR 位为显性位优先级更高,优先发送

    2.1K60

    CAN通信鼻祖都在支持项目

    摘要 本篇笔记主要记录开源CAN工具BUSMASTER使用。...BUSMASTER介绍 BUSMASTER是由ETAS和BOSCH开发全球开源免费CAN通讯分析上位机软件,源代码开源,是基于C++软件开发,功能强大,比国内某功软件强大很多。...BUSMASTER是用于设计,监视,分析和模拟CAN网络开源PC软件。可以从Github下载BUSMASTER开源软件,由RBEI和ETAS赞助BUSMASTER软件项目向研究和工业界开放。...配置硬件通道和波特率 之后点击Connect 通信测试 更多功能大家可以点击图标去尝试 源码目录结构 这个开源上位机软件源码包可以到Github下载或者官网下载。...其中Documents里有很多设计图,非常不错,有兴趣可以去研究研究。整个源码是基于C++完成,需要有一些C++基础。更多深入研究大家可以自己去发现。

    2.4K20

    CAN通信波特率计算

    摘要 本篇笔记主要记录MPC5744pCAN通信波特率计算,以及需要注意问题 CAN 位时间 记得最早是在2015年就给大家推送过关于CAN通信波特率设置,当时是以NXPkinetis系列之KV46...为例子来给大家介绍,最近推送了几篇有关CAN通信文章,后台又有人问起这个问题,今天我们就来在给大家详细普及下,今天以NXP汽车级芯片MPC5744pflexCAN为例,MPC系列是基于PowerPC...今天我们来一步步看如何在flexcan上配置can比特率,首先要搞明白CAN标准对位时间定义,CAN通信波特率计算是一个难点,要正确计算设置CAN波特率。...首先CAN控制器时钟由两个入口 CAN总线控制寄存器1主要就是来设置位时间几个域,TSEG1段用于设置传播段和相位缓冲段1,TSEG2用于设置相位缓冲段2,搞清楚这几个域配置后,我们就可以来动手配置了...你还没学会CAN通信波特率设置? 如何计算CAN通信波特率

    1.8K20

    CAN通信管脚重映射

    CAN通信管脚重映射 1. 摘要 本篇笔记主要介绍,如何在STM32F103上进行CAN通信管脚重映射配置和使用 2....准备工作 1), IAR 8.3.1 2), 运行正常CAN通信工程 3....问题指出 STM32F103VC芯片100脚封装,CAN可以重映射到三组管脚,分别是PA11和PA12为一组,PB8和PB9为一组,PD0和PD1为一组。...不添加重映射寄存器,原有工程在新工程是无法运行通信同步上,我们将原有工程添加重映射配置,并修改PA11和PA12为PD0和PD1 ? 其实可以通过下面的图片清楚知道重映射 ?...可以看到通信驱动正常,在此基础上可以添加其他高层协议功能。 5. 参考文档 序号 文献 1 STM32F103RM 如果你喜欢,对你有帮助,请分享给更多需要猿友,点赞,分享,看一看

    1K10

    STM32之CAN通信

    ISO11519定义了通信速率为10~125Kbps低速CAN通信标准,属于开环总线,传输速率为40Kbps时,总线长度可达1000米; ISO11898定义了通信速率为125Kbps~1 Mbps高速...从两个网络拓扑结构可以看出,基于ISO11519标准低速CAN,是一个“开环网络”,每根总线上个串联一个2.2KΩ电阻;基于ISO11898标准高速CAN,是一个“闭环网络”,总线两端各需串联一个...CAN是一种基于消息广播模式串行通信总线,即在同一时刻网络上所有节点监测到数据是一致,各节点根据报文ID来甄别是否是发给自己报文。 CAN总线以“帧”(Frame)形式进行通信。...除此之外,为保证通信稳定,CAN采用“位同步”机制,实现对电平正确采样。...,由前面的波特率计算公式可得:36M/(1+6+2)/8 = 500Kbps; 20行:设置间触发通信模式,禁止时间触发通信模式; 21行:禁止总线自动关闭,控制CAN在退出总线关闭状态时行为; 22

    1.6K10

    这样开发CAN通信,不用加班

    摘要 本篇笔记主要记录基于MBD模型设计CAN通信步骤和方法。前期工具箱安装不在本文档讨论范围内。...准备工作 安装好MPC5744基于模型工具箱和支持包,这个可以在NXP官网下载 按照文档配置编译器和设置路径以及license激活,QSG里面写很清楚,这里不在赘述。...模型设计 正确安装MBD工具箱后,在simulink里面可以看到到MPC5744外设和例程,这里我们参照CAN通信例程来建立名字为T2模型。...可以看到 上位机接收到数据跟模型预期相符,8个字节分别为3,2,1,2 第五个字节不断计数增加,到255后回0,然后是2,1,2. 至此基于MBD设计CAN通信符合设计预期,测试结果正确。...总结 至此基于MBD模型设计CAN通信完成,符合要求,可以基于这个设计更多。大大加速开发.

    63010

    CAN通信调试监测神器之CANCapture

    你想像组态软件一样来配置调试你CAN通信吗,今天就来看看CANCapture神器 CANCapture简介 CANCapture是一种可视化控制和监控CAN通信软件,采用功能块配置流程图式简单易用...,高度灵活可配置,本人用过后,很是喜欢,对CAN通信调试和监控有很好帮助,那么如何使用呢,继续往下看。...建立数据库 建立数据库,数据库建立至关重要,这里包含所有的数据帧和变量,功能模块中通信都是基于数据库。为便于说明问题,我们建立一个简单数据库如下图所示: ?...建立用户画面 图像化用户界面一直是给人友好交互体验,所以建立漂亮用户界面也是很重要,这里我们只简单建立一个用户界面显示两路电流如下图所示: ?...具体操作可以参考官方文档,有兴趣深入了解猿友可以和小猿联系。

    93460

    如何计算CAN通信波特率

    CAN通信波特率计算是一个难点,要正确计算设置CAN波特率。CAN2.0协议中定义标称位速率为一理想发送器在没有重新同步情况下,每秒发送位数量,也就是我们说波特率。...那么位CAN消息中最小时间份额由下式计算: PRESDIV 为预分频因子, Fcanclk为CAN模块时钟源频率。...一个位时间总时间份额值可以设置在 8—25 范围。...在清楚了位时间构成后,我们以飞思卡尔kv4x系列MCU为例说明如何计算CAN波特率 我们知道飞思卡尔KV4xMCUCAN模块有两种时钟源可选,外设时钟时钟源和晶振时钟源,所以分两种情况来说明 例子:...在CAN 驱动中如果使用外部8M晶振作为CAN模块时钟源,必须配置CAN_CTRL1 bit13为0,选择can模块使用外部时钟,同时必须正确配置MCG_C2和OSC_CR寄存器,才能正常工作,否则CAN

    2.1K80

    如何计算CAN通信波特率

    目录 1、理论 2、实践 3、注意事项 在CAN总线系统中,波特率计算是一个关键步骤,它确保网络上所有设备能够以相同速率进行通信。...1、理论 波特率计算涉及到几个关键参数,包括CAN控制器时钟频率、分频因子、以及位时间不同部分。 时钟频率(Fclk) CAN控制器时钟频率。...基于上述参数,CAN波特率计算公式如下: 波特率 = Fclk / (Prescaler * Bit Time) 其中,Bit Time = Sync Seg + Prop Seg + Phase Seg1...时间单元长度由 CAN 位时序寄存器(CAN_BTMG) BRDIV[11: 0]位及 PCLK 定义,即公式中t。...不同CAN控制器可能有不同最大和最小TQ限制。 适当设置波特率可以减少误差,提高网络稳定性和可靠性。 高波特率适用于短距离通信,而长距离通信则需要降低波特率以减少误差。

    85510
    领券