can总线

CAN总线

久未见 提交于 2019-12-04 11:55:52
CAN 是什么? CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO国际标准化的串行通信协议。 在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统 被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很 多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个 LAN,进行大量数据的高速通信”的需 要,1986 年德国电气商博世公司开发出面向汽车的 CAN 通信协议。此后,CAN 通过 ISO11898 及 ISO11519 进 行了标准化,现在在欧洲已是汽车网络的标准协议。 现在,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。 图 1 是车载网络的构想示意图。CAN 等通信协议的开发,使多种 LAN 通过网关进行数据交换得以实现。 总线拓扑图 CAN-bus 主要特性 1) 多主控制。  在总线空闲时,所有的单元都可以开始发送消息(多主控制)。  最先访问总线的单元可获得发送权。  多个单元同时发送时,发送高优先级 ID 消息的单元可获得发送权。 2) 消息的发送 在 CAN 协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以 开始发送新的消息

CAN FD简介

匿名 (未验证) 提交于 2019-12-03 00:32:02
CAN FD简介 1 CAN FD简介   在汽车领域,随着人们对数据传输带宽要求的增加,传统的CAN总线由于带宽的限制难以满足这种增加的需求。此外为了缩小CAN网络(max. 1MBit/s)与FlexRay(max.10MBit/s)网络的带宽差距,BOSCH公司推出了CAN FD。 CAN FD(CAN with Flexible Data rate)继承了CAN总线的主要特性。CAN总线采用双线串行通讯协议,基于非破坏性仲裁技术,分布式实时控制,可靠的错误处理和检测机制使CAN总线有很高的安全性,但CAN总线带宽和数据场长度却受到制约。CAN FD总线弥补了CAN总线带宽和数据场长度的制约,CAN FD总线与CAN总线的区别主要在以下两个方面:   1. 可变速率:CAN FD采用了两种位速率。从控制场中的BRS位到ACK场之前(含CRC分界符)为可变速率,其余部分为原CAN总线用的速率。两种速率各有一套位时间定义寄存器,它们除了采用不同的位时间单位TQ外,位时间各段的分配比例也可不同;   2. 新的数据场长度:CAN FD对数据场的长度作了很大的扩充,DLC最大支持64个字节,在DLC小于等于8时与原CAN总线是一样的,大于8时有一个非线性的增长,所以最大的数据场长度可达64字节。 1.1 CAN FD数据帧帧格式   CAN FD数据帧在控制场新添加EDL位、BRS位

CAN总线与CANOPEN协议

匿名 (未验证) 提交于 2019-12-03 00:22:01
CAN总线协议最早是为了统一汽车车载设备间通信的标准而开发的协议,后来由于其高速、稳定、可靠的特点,已经被ISO标准化并广泛应用于工控、医疗等领域,目前依然是欧洲汽车网络的标准协议。 CAN总线协议规定了ISO七层通信协议模型的物理层和数据链路层。其具体实现都已经被固化到CAN总线控制芯片中,无需软件实现。 理论上,CAN总线在速率小于5K时,距离可达10000m;速率接近1M时,距离小于0.4m。现实中常用的高速CAN总线速率有500k或250k,低速CAN总线有125k和62.5k,传输距离在几米到几十米间。速率和传输距离的选择还有考虑硬件的要求。 理论上,一条CAN总线上可以连接无数个CAN设备,但实际上受到其他条件限制,数量总是有限的。例如,使用了更上层的CANOPEN协议,则一条总线上只能有128个设备。 CAN总线网络属于广播网络,同一条总线的设备都可以放送和接受数据。同一时刻只能有一个设备作为发送设备,其他设备为接收设备。 同一条总线上的设备必须工作在同一速率下。 当两个设备同时发送数据时,根据其CAN通信帧(CAN通信的最小信息单元详情见下文)的ID号进行仲裁,ID号小的优先级高,将获得发送权,优先级低的则需要放弃发送,转为接收状态。 CAN设备可以检测总线上的错误类型是暂时性的还是持续性的,如果是持续性的,出错的设备会不停的向总线发送错误帧

CANoe CAN总线适配低价解决方案支持所有USBCAN(周立功CAN、PCAN、Kvaser、ValueCAN、NI CAN)

匿名 (未验证) 提交于 2019-12-02 23:49:02
在汽车通信领域CAN总线使用非常广泛,最强大的工具有Vector Case(10WRMB)。Pcan(2KRMB),ZLGCAN(1.5KRMB),KVASER(2KRMB)、ValueCAN(4KRMB),以上本文均称为USBCAN。 USBCAN拥有较强的性价比但是功能最弱,我们理想中最理想的组合是USBCAN硬件的价格享受Vector的软件的强大功能。 是的,你没有看错: USBCAN适配CANoe11.0 ZLGCAN适配CANoe11.0 如下为ZLGCAN和Vector XL互发数据,测试USBCAN性能。 如下图CAN1为CANcaseXLCAN2为ValueCAN3(任何USBCAN都可以),两路CAN对接,CAN1以10ms的周期向CAN2发送报文,效果如图 如下图CAN1为CANcaseXLCAN2为ValueCAN3(任何USBCAN都可以),两路CAN对接,CAN1以10ms的周期向CAN2发送报文,效果如图 利用IG模块让两个通道互发 实测周立功接入CANoe的时间精度(spy3发送,周立功连接CANoe接收),精度非常高 本解决方案可将ZLGCAN、PCAN、Kvaser、ValueCAN、NI CAN等接入CANoe,经过测试CANoe中的各项功能(图表、脚本、IG)均可正常使用。 此方案具有超高性价比,超低价享受Vector的所有功能

STM32F767/429->CAN通信实验

笑着哭i 提交于 2019-12-02 15:07:55
CAN 简介 特点 CAN协议进行方法:帧 数据帧 基本构成 各段简介 CAN的位时序 CAN协议仲裁功能的实现 bxCAN 的主要特点 CAN 发送流程 CAN 接收流程 寄存器 主控制寄存器(CAN_MCR) CAN 位时序寄存器(CAN_BTR) CAN 发送邮箱标识符寄存器(CAN_TIxR)(x=0~3) CAN 发送邮箱数据长度和时间戳寄存器 (CAN_TDTxR) (x=0~2) CAN 发送邮箱低字节数据寄存器 (CAN_TDLxR) (x=0~2) CAN 接收 FIFO 邮箱标识符寄存器 (CAN_RIxR) (x=0/1) CAN 过滤器模式寄存器(CAN_FM1R) CAN 过滤器位宽寄存器(CAN_FS1R) CAN 过滤器 FIFO 关联寄存器(CAN_FFA1R) CAN 过滤器激活寄存器(CAN_FA1R) CAN 的过滤器组 i 的寄存器 x(CAN_FiRx)(i=0~27;x=1/2) 功能实现 CAN 的初始化配置步骤 1)配置相关引脚的复用功能(AF9),使能 CAN 时钟 2)设置 CAN 工作模式及波特率等 3)设置滤波器 硬件设计 STM32F767/429 与 TJA1050 连接关系 软件设计 其中重要函数讲解 CAN_Mode_Init Can_Tx_Msg Can_Msg_Pend Can_Rx_Msg can.h 的 CAN

SOCKET CAN的理解

强颜欢笑 提交于 2019-12-02 14:33:25
转载请注明出处:http://blog.csdn.net/Righthek 谢谢! CAN总线原理 由于Socket CAN涉及到CAN总线协议、套接字、Linux网络设备驱动等。因此,为了能够全面地了解Socket CAN的原理。我们需要了解以下几个方面的知识点: (1)CAN总线协议; (2)Socket原理; (3)Linux网络设备驱动; 当熟悉以下三个方面的知识点后,我们再去分析基于Linux的Socket CAN的驱动。这样的话理解起来更加容易、易懂。 (4)Socket CAN的驱动; 一、CAN总线协议 由于CAN总线协议的内容太多,作为博文来说,不适宜很详细的讲解。需要深入了解的朋友们可以Google一下。以下只是作些简要的说明。 CAN是ControllerArea Network(控制器局域网)的缩写。CAN通信协议在1986年由德国电气商博世公司所开发,主要面向汽车的通信系统。现已是ISO国际标准化的串行通信协议。根据不同的距离、不同的网络,可配置不同的速度,最高速度为1MBit/s。 CAN被细分为三个层次: (1)CAN对象层(the object layer); (2)CAN传输层(the transfer layer); (3)CAN物理层(the phyical layer); 对象层和传输层包括所有由ISO/OSI模型定义的数据链路层的服务和功能

can总线

让人想犯罪 __ 提交于 2019-12-02 11:59:54
先说说 差分信号: 下面内容来自百度 差分传输是一种信号传输的技术,区别于传统的一根信号线一根地线的做法,差分传输在这两根线上都传输信号,这两个信号的 振幅 相同, 相位 相反。在这两根线上的传输的信号就是差分信号。信号接收端比较这两个电压的差值来判断发送端发送的逻辑状态。在电路板上,差分走线必须是等长、等宽、紧密靠近、且在同一层面的两根线。 简单的说,就是两条线之间的电压差为0时,表示高电平1(隐性),电压差是一个正数时,表示低电平0(显性)。 位填充: 因为can的位比较多,比较长,为防止出错,所以每隔五个相同的位后面,会自动加入一个相反的位 can协议帧格式 帧             帧用途 数据帧        用于发送单元向接收单元传送数据的帧。 遥控帧        用于接收单元向具有相同 ID 的发送单元请求数据的帧。 错误帧        用于当检测出错误时向其它单元通知错误的帧。 过载帧        用于接收单元通知其尚未做好接收准备的帧。 帧间隔        用于将数据帧及遥控帧与前面的帧分离开来的帧。 报文格式又两种:   11位的是标准的,29位是扩展的 最前面 SOF 是 帧起始 ,当这位为0时,表示要开始传送数据了; 接下来的11位是 仲裁段 ,相当于优先级,当两条报文同时发过来时,总线根据仲裁的优先级选择先读取谁; 后面是1位的 RTR

STM32 F765的CAN总线帧ID过滤的编写方法

我的梦境 提交于 2019-12-02 11:15:17
项目上需要特定性过滤这样的帧ID 板卡A 主CPU ---- 0x102 板卡A 从CPU ---- 0x103 板卡B主CPU ---- 0x202 板卡B 从CPU ---- 0x203 板卡C主CPU ---- 0x302 板卡C从CPU ---- 0x303 就是板卡的帧的最低位用来区别主(0)/从(1)CPU,然后对应的高3位区别板卡类型 CAN总线过滤的基本编写方法有很多了,这里不多阐述 重点是过滤器的设置 CAN1_FilerConf.FilterIdHigh = 0X2000; //32位ID CAN1_FilerConf.FilterIdLow = 0X0000; CAN1_FilerConf.FilterMaskIdHigh = 0X2020; //32位MASK CAN1_FilerConf.FilterMaskIdLow = 0X0006; 直接说结论 假设我要过滤板卡A的主CPU(0x102这样的ID)的标准帧就要按上图这样写 FilterID的高位填希望过滤的板卡ID(A 0x100)左移1位 不希望匹配该位就填0 FilterMask的高位填希望匹配的位(假设 A的话,我需要匹配0x101,也就是最高的1和最低的1),然后左移1位 不希望匹配该位就填0 FilterMask的低位填0x0006表示标准帧 如果过滤从CPU(0x103这样的ID)的话就是

米联客 ZYNQ/SOC精品教程 S02-CH13 CAN总线通信实验

百般思念 提交于 2019-11-29 00:23:45
软件版本:VIVADO2017.4 操作系统:WIN10 64bit 硬件平台:适用米联客 ZYNQ系列开发板 米联客(MSXBO)论坛: www.osrc.cn 答疑解惑专栏开通,欢迎大家给我提问!! 13.1 概述 ZYNQ的PS中包含了2个CAN接口,兼容CAN 2.0A和CAN 2.0B,最高可支持1Mbps的波特率。CAN作为工业应用中的一个重要的总线标准,广泛应用于各行各业之中。本教程介绍了ZYNQ中PS端CAN接口的基本使用方法,并通过CAN接口实现与PC端CAN调试软件之间的数据接收和发送测试。 13.2 CAN总线介绍 13.2.1数据格式 CAN总线中的数据以帧为单位,一共包含5种类型的帧,分别为:数据帧、远程帧、错误帧、过载帧和帧间隔。 数据帧:用于发送节点向接收节点传送数据的帧。 远程帧:用于接收节点向具有相同ID的发送节点请求数据的帧。 错误帧:用于当检测出错误时向其他节点通知错误的帧。 过载帧:用于接收节点通知其尚未做好接受准备的帧。 帧间隔:用于将数据帧及远程帧与前面的帧分离开来。 CAN帧格式如下图所示,CAN 2.0A中使用的是标准帧,CAN 2.0B中使用的是扩展帧。标准帧和扩展帧的区别在于扩展帧增加了18bit的扩展标识符。一般情况下,与用户直接相关的只有数据帧和远程帧。数据帧和远程帧都可以使用标准帧格式或者扩展帧格式。

CAN通信详解

点点圈 提交于 2019-11-27 18:10:50
转:https://blog.csdn.net/CSDN_Yoa/article/details/81384924 并结合自己项目上CAN的配置觉得该文章很好希望帮助想了解CAN的网友。 本章参考资料:《STM32F4xx 中文参考手册2》、《STM32F4xx规格书》、库帮助文档《stm32f4xx_dsp_stdperiph_lib_um.chm》。 若对CAN通讯协议不了解,可先阅读《CAN总线入门》、《CAN-bus规范》文档内容学习。 关于实验板上的CAN收发器可查阅《TJA1050》文档了解。 40.1 CAN协议简介 CAN是控制器局域网络(Controller Area Network)的简称,它是由研发和生产汽车电子产品著称的 德国 BOSCH公司开发的,并最终成为国际标准(ISO11519),是国际上应用最广泛的现场总线之一。 CAN总线协议已经成为 汽车计算机控制系统 和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。近年来,它具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强及振动大的工业环境。 40.1.1 CAN物理层 与I2C、SPI等具有时钟信号的同步通讯方式不同,CAN通讯并不是以时钟信号来进行同步的,它是一种异步通讯,只具有CAN