展开

关键词

详解CAN总线:什么是CAN总线

目录 1、CAN总线简介 2、CAN节点组成 3、CAN总线结构 4、CAN总线物理电气特性 ---- 在之前的博文中分享过一系列一文搞懂:SPI协议、I2C协议、PID算法、Modbus协议等文章, 也考虑过是否可以出一篇介绍CAN总线协议的文章,但是在之后的学习研究中,发觉CAN总线协议比较庞大和复杂,做为刚刚进入汽车电子行业的开发小白,一篇文章难以讲解清晰,所以决定在汽车电子专栏中连载分享关于CAN to the Controller Area Network(CAN)-行业报告文档类资源 1、CAN总线简介 CAN总线协议(Controller Area Network),控制器局域网总线,是德国 3、CAN总线结构 CAN总线是一种广播类型的总线,可支持线形拓扑、星形拓扑、树形拓扑和环形拓扑等。 低速开环CAN(低速容错CAN)通信如下图所示: 4、CAN总线物理电气特性 在CAN总线上,利用CAN_H和CAN_L两根线上的电位差来表示CAN信号。

3720

CAN总线(一)

CAN总线标准 CAN总线标准只规定了物理层和数据链路层,需要用户自定义应用层。不同的CAN标准仅物理层不同。 ? CAN收发器负责逻辑电平和物理信号之间的转换。 ? CAN总线有5个连续相同位后,就插入一个相反位,产生跳变沿,用于同步。从而消除累积误差。 和485、232一样,CAN的传输速度与距离成反比。 ? CAN总线,终端电阻的接法: ? 仲裁段 CAN总线是如何解决多点竞争的问题? 由仲裁段给出答案。 CAN总线控制器在发送数据的同时监控总线电平,如果电平不同,则停止发送并做其他处理。 CAN收发器是实现CAN控制器逻辑电平与CAN总线上差分电平的互换。实现CAN收发器的方案有两种,一是使用CAN收发IC(需要加电源隔离和电气隔离),另一种是使用CAN隔离收发模块。推荐使用第二种。 接口管理逻辑:解释MCU指令,寻址CAN控制器中的各功能模块的寄存器单元,向主控制器提供中断信息和状态信息。 发送缓冲区和接收缓冲区能够存储CAN总线网络上的完整信息。

33020
  • 广告
    关闭

    【玩转 Cloud Studio】有奖调研征文,千元豪礼等你拿!

    想听听你玩转的独门秘籍,更有机械键盘、鹅厂公仔、CODING 定制公仔等你来拿!

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

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

    CAN通信(一)——认识CAN总线 CAN总线 背景 CAN总线是什么 网络拓扑 节点、报文、信号 CAN总线 背景 作为并非通信专业的汽车工程师,汽车CAN通信是必须掌握的,但是,记得刚开始上来一看什么定义 CAN总线是什么 CAN总线,并不是他很能,只是一个缩写 CAN:Controller Area Network。 控制器局域网络总线 绝大多数汽车制造厂商采用CAN总线来实现汽车内部控制系统之间的数据通信,CAN总线也叫CAN BUS BUS? 恩,这不是公交的意思么,没错,公共汽车是可以运输大量的乘客的,CAN通信也就可以传输大量的信号。下边这个图片很形象 简单的说,CAN总线就是用于传输数据的通信协议。 车辆CAN总线通讯 这个CAN总线图是不是和BUS一样额 网络拓扑 网关是整个CAN网络的核心, 控制着整车几条CAN总线的信号转发与处理,示意图只展示了其中的两条。

    8140

    CAN总线详解

    Ø 灵活性:每个ECU包含一个用于CAN总线收发芯片,随意添加CAN总线节点。 2、CAN总线网络 CAN总线网络主要挂在CAN_H和CAN_L,各个节点通过这两条线实现信号的串行差分传输,为了避免信号的反射和干扰,还需要在CAN_H和CAN_L之间接上120欧姆的终端电阻。 即从CAN控制芯片输出逻辑电平到CAN收发器,然后经过CAN收发器内部转换将逻辑电平转换为差分信号输出到CAN总线上,CAN总线上的节点都可以决定自己是否需要总线上的数据。 具体的引脚定义如下: 4、CAN信号表示 CAN总线采用不归零码位填充技术,也就是说CAN总线上的信号有两种不同的信号状态,分别是显性的(Dominant)逻辑0和隐形的(recessive)逻辑1, 仲裁段 只要总线空闲,总线上任何节点都可以发送报文,如果有两个或两个以上的节点开始传送报文,那么就会存在总线访问冲突的可能。但是CAN使用了标识符的逐位仲裁方法可以解决这个问题。

    7010

    CAN总线调试步骤

    CAN总线 CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO 11898) ,是国际上应用最广泛的现场总线之一。 在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。 配置can user@server:~$ cat /etc/can_setup.sh #! /bin/sh modprobe can modprobe can_raw modprobe mttcan ip link set can0 up type can bitrate 500000 restart-ms

    17720

    单片机外围模块漫谈之三,CAN总线

    一个挂在总线上的节点可以监听到所有的消息(Message),但通常我们只对其中某些消息感兴趣,这时怎么办呢?CAN模块一般会提供接收滤波功能(Filter)。 软件编程比较简单,需要注意的是一般需要设置寄存器中的初始化请求位(Initialization request),使模块进入初始化状态,才能开始进行CAN模块的各种配置,初始化完成后退出初始化状态,进入运行状态 3.4CAN模块死机现象 CAN模块内部有监控电路,总线上的异常,如短路等,会引起错误计数器增长。 当发送错误TEC计数超过255后,CAN模块进入BUS-OFF模式,此节点不能发送也不能接收。这样做的好处是可以避免由个别模块的问题引起整个总线不能工作。 芯片一般会提供两种恢复机制:自动和手动模式。 比如在STM32单片机中,如果ABOM位设置为1,CAN模块将不断尝试自动恢复。如果ABOM=0,则需要程序进入CAN初始化模式,重新配置后,再退出初始化进入正常工作模式。

    12520

    CAN总线35周年特别篇 -- CAN总线的前世今生

    如今,欧洲几乎所有汽车都配备了至少一个CAN网络。CAN还用于其他类型的车辆,从火车到轮船,以及工业控制中,CAN是最主要的总线协议之一,甚至可能是全球领先的串行总线系统。 新的总线协议主要是要增加新的功能 --- 减少线束不是CAN发展背后的驱动力。奔驰的工程师很早就参与了新的串行总线系统的规范制定阶段,英特尔作为潜在的主要半导体供应商也参与了进来。 CAN时代的先锋 尽管CAN最初被开发用于汽车,但最初的应用来自不同的市场领域。特别是在北欧,CAN在早期已经非常流行。在芬兰,电梯制造商Kone 使用了CAN总线。 尽管第一个标准化的高层协议开始出现,但大多数CAN开拓者还是采用了整体法。通信功能,网络管理和应用程序代码是一种软件。即使某些用户希望采用模块化的方法,但他们仍有专有解决方案的缺点。 此应用程序配置文件也基于CAN,由SAE卡车和公共汽车协会的委员会定义。J1939是一种非模块化方法,非常易于使用,但也非常不灵活。 还为卡车开发了CAN的标准化。

    23320

    CAN总线的终端电阻什么作用?

    使用过CAN或RS-485总线的同学应该对终端电阻有所了解,用485和CAN总线的时候只知道要加一个120欧的终端电阻,但是终端电阻具体的作用是什么呢?什么是终端电阻? CAN总线终端电阻的作用有3个:‍‍‍‍‍‍‍‍‍‍‍‍ 1、提高抗干扰能力,让高频低能量的信号迅速走掉 2、确保总线快速进入隐性状态,让寄生电容的能量更快走掉; 3、提高信号质量,放置在总线的两端,让反射能量降低 02 确保总线尽快进入隐性状态 由于总线上不可避免的存在寄生电容,CAN总线数据传输时,“隐性”和“显性”状态变化会对寄生电容进行充电和放电,若总线中无阻性负载,信号波形会出现“缓慢变化”的过程。 在CAN总线中使用的典型线缆,将它们扭制成双绞线,就可根据上述方法得到特征阻抗大约为120Ω,这也是CAN标准推荐的终端电阻阻值,所以这个120Ω是测出来的,不是算出来的,都是根据实际的线束特性进行计算得到的 这也是CAN标准中推荐的阻值 四:CAN终端电阻怎么接线? 如下图所示是CAN总线的经典拓扑图。终端电阻一般选择放在最远的两个节点上。

    96620

    CAN总线之ISO15765协议

    ISO 15765协议是一种CAN总线上的诊断协议。 网络层内部传输服务,CAN总线上的数据帧没帧只能传输8个字节,ISO 为了适应CAN总线上的数据传输,根据诊断报文数据长度的不同规定了单帧传输和多帧传输两种方式 1.单帧传输 当应用层的诊断服务数据可以利用单帧 CAN数据传送时,可采用单帧传送方式 ? } } if((change0.byte.LL&0xF0)==0x30) { p = (INT8U *)&p_caninfo->DATAA; STmin=*p+2; } case CAN_LINK_SEND_DATA : if(T5ms-can_lind_time<STmin) return 0;//连续发送的数据满足最小时间间隔

    55010

    CANard工具套件:CAN总线安全工具

    CAN是控制器区域网络(Controller Area Network, CAN)的简称,是国际上应用最广泛的现场总线之一。 在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线。 在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线。 基于CAN总线的系统通常假设具备网络物理访问权限的任何人均是可信的。 为访问这些服务,诊断工具需要连接到CAN总线。它会向总线上的各种控制器发送UDS请求。为接收UDS请求和发送UDS响应,每个控制器拥有一个唯一的CAN标示符(CAN ID)。 由于CANard为CAN总线接口提供了硬件抽象,脚本可以适用于多个平台和多种CAN总线接口。这个工具的开源特性意味着任何人都可以增加对新接口的支持。

    1.2K100

    应用||无人汽车CAN总线协议解码

    随着新能源汽车、无人驾驶汽车的发展,CAN总线得到越来越多的应用。研华提供各种接口的CAN总线通讯产品,包括PCI-1680/PCIE-1680/PCM-3680/MIC-3680等。 本文以CAN总线为例进行说明。 CAN总线解码概述 1、 CAN总线概念 CAN(控制器区域网络)总线是一种在汽车和工业机械中使用的串行协议,允许微控制器相互通讯。 2 CAN总线上传输的电平特点 CAN 总线上发布了ISO11898和ISO11519两个通信标准,分别对应高速CAN和容错CAN。此两个标准差分电平的特性不同。 一般情况下,我们可以从三种CAN总线波形上进行解码: 1)从CAN-H总线上传输的电平,阈值设置为3V左右即可 2)从CAN-L总线上传输的电平,阈值设置为1.6V左右即可 3)从差分波形(CANH-CANL 切换到测量窗口,显示总线信号的频率 CAN总线协议译码完整操作视频如下: 参考资料: 高能:研华USB数字存储示波器!

    9930

    一文带你了解 CAN 总线

    二、CAN 电气属性 CAN 总线使用两根线来连接各个单元:CAN_H 和 CAN_L,CAN 控制器通过判断这两根线上的电位差来得到总线电平,CAN 总线电平分为显性电平和隐性电平两种。 CAN 总线就通过显性和隐形电平的变化来将具体的数据发送出去,如图所示: CAN 总线上没有节点传输数据的时候一直处于隐性状态,也就是说总线空闲状态的时候一直处于隐性。 、CAN_L 接 CAN_L,CAN 总线两端要各接一个 120Ω的端接电阻,用于匹配总线阻抗,吸收信号反射及回拨,提高数据通信的抗干扰能力以及可靠性。 CAN 总线传输速度可达 1Mbps/S,最新的 CAN-FD 最高速度可达 5Mbps/S,甚至更高,感兴趣的可以自行查阅相关资料。CAN 传输速度和总线距离有关,总线距离越短,传输速度越快。 是 CAN 总线的最小时间单位。

    24540

    CAN总线技术详解与测试【硬件】

    01 CAN总线由来 CAN总线最早是由Bosch和Intel在80年代末开发的,虽然最早是用在汽车级的通信系统中的,但是随着技术的发展,CAN总线应用范围已经不在局限于汽车中,像机器人、工业、自动控制系统中 02 CAN总线为什么这么好用 以CAN总线应用最广的汽车给大家举例,汽车电子控制系统之间的数据通信基本上都是通过CAN总线实现。 而如果使用CAN总线,各个控制单元之间的信息通过两根数据线就可以进行交换了: ? 使用CAN总线之后的通信网络对比: ? 04 CAN总线物理层 在节点终端的接口器件有三种形式,如下图: ? ? CAN总线的终端电阻的接法如下: ? 增加终端电阻的目的是为了增强CAN通讯的可靠性,消除CAN总线终端信号反射干扰。 05 常用CAN控制器与收发器 在开发板上CAN总线需要控制器和收发器,下图是常用的CAN总线接口电路: ? SJA1000是用的较多的独立CAN控制器,价格又很便宜,几十块钱。

    1.2K10

    详解CAN总线:常用CAN连接器的使用方法

    目录 1、9针DSUB 2、5针迷你C型接头 3、6针德驰DT04-6P ---- 本文将分享几种常用的CAN连接器的连线和使用方法。

    7620

    工具推荐: 汽车CAN总线分析框架CANToolz

    该平台试图将所有需要的 技巧/工具 和其他你可以对CAN总线做的事情结合在一起。 还有一点:这是基于模块的引擎,所以你可以使用它作为您的测试过程的一部分,或者当你需要和CAN总线工作时,添加更复杂的 场景/软件。 “我不明白为什么大家始终在发布新的“汽车黑客工具”。 install 快速启动 sudo python cantoolz.py -g w -c examples/can_sniff.py 然后在浏览器中访问 http://localhost:4444 模块 hw_CANBusTriple - CANBus Triple HW 的 IO 模块 hw_USBtin - USBtin 的 IO 模块 mod_firewall - 通过 ID 阻塞 CAN 报文模块 主要想法是希望产生不同的模块对以上8个模块提供帮助。 监看和UDS检测实例,如下图所示: ?

    81670

    CAN总线这种多参数配置的方法

    // CAN_SJW_1tq, CAN_BS1_3tq , CAN_BS2_2tq, 6, // // CAN_SJW_1tq, CAN_BS1_4tq , CAN_BS2_3tq, 5, // // CAN_SJW_1tq, CAN_BS1_5tq , CAN_BS2_3tq, 5, // // CAN_SJW_1tq, CAN_BS1_6tq , CAN_BS2 CAN_BS1_3tq , CAN_BS2_2tq, 24, // // CAN_SJW_1tq, CAN_BS1_3tq , CAN_BS2_2tq, 30, // // CAN_SJW // CAN_SJW_1tq, CAN_BS1_3tq , CAN_BS2_2tq, 60, // // CAN_SJW_1tq, CAN_BS1_4tq , CAN_BS2_3tq, CAN_SJW_1tq, CAN_BS1_3tq , CAN_BS2_2tq, 300, // // CAN_SJW_1tq, CAN_BS1_3tq , CAN_BS2_2tq, 600,

    10040

    技巧:USB-DSO示波器CAN总线译码!

    其中总线译码功能可译码的总线有:I2C,UART, CAN, ProfiBus,ARINC429, MIL-STD-1553, LIN。 128M深度存储器可以让软件采集较长时间、不间断的数据,适合于总线译码。本文以CAN总线为例进行说明。 CAN总线解码概述 1、 CAN总线概念 CAN(控制器区域网络)总线是一种在汽车和工业机械中使用的串行协议,允许微控制器相互通讯。 2 CAN总线上传输的电平特点 CAN 总线上发布了ISO11898和ISO11519两个通信标准,分别对应高速CAN和容错CAN。此两个标准差分电平的特性不同。 一般情况下,我们可以从三种CAN总线波形上进行解码: 1)从CAN-H总线上传输的电平,阈值设置为3V左右即可 2)从CAN-L总线上传输的电平,阈值设置为1.6V左右即可 3)从差分波形(CANH-CANL

    7720

    CAN总线简介:如何以编程方式控制汽车

    在深入之前,让我们来看看《汽车黑客手册》第2章描述的三个重要概念:总线协议、CAN总线协议、CAN帧。 ? CAN帧 一辆车内有多种CAN总线,为了实现A/C系统的打开和关闭,我们需要找到正确的CAN运行总线,以福特Fusion来说,其中至少标记有4个总线,其中3个为运行500kbps的高速率CAN总线HS1 关键在于OBD-II接口背后,一个所有总线汇总,叫做网关模块(Gateway Module)的部件上。以下为Voyage第一辆无人驾驶出租车Homer后座控制接口概览: ? GND:地线,公共接地线; MSCAN:中速总线,也称飞思卡尔控制器局域网总线,是BOSCH公司定义的CAN2.0和CAN3.0协议下的CAN总线控制器,是当前汽车控制器中流行的CAN控制框架。 控制汽车空调系统(A/C系统) 接下来就是把A/C系统功能连接到我们运行于汽车内的微型PC,该PC为机器人操作系统(ROS),而幸运的是,利用前述提及的SocketCAN和ROS中的一个模块,就能很容易实现连接和操作

    2.2K3222

    【科普】CAN总线介绍及FPGA实现方案简介

    【科普】CAN总线介绍及FPGA实现方案简介 这里我们先逆推一下CAN总线的一些特点。 第一,CAN总线分层结构 我们根据can总线具有的一些特性可知:CAN总线肯定具有分层结构,而且参考OSI模型(OSI参考模型介绍)是肯定的,我们可以看一下相关的文档可知:CAN遵从OSI模型。 第二、CAN总线分为哪几层 根据《FPGA和USB3.0通信-USB3.0协议介绍》中总线、协议、接口关系可知: CAN总线内容整体比较简单(相对),肯定没有USB、PCIe协议这种复杂,也就是说CAN CAN通信的整体方案: CAN总线拓扑图 改编自官方总线协议 这张拓扑图其实是参考CAN总线的分层结构,主要分为数据链路层和物理层,这种方案主要是分局目前市场上存在的CAN相关IC(IC的设计肯定是根据 出品的PMOD CAN模块,原理图可以参考。

    20420

    扫码关注腾讯云开发者

    领取腾讯云代金券