CAN总线总结
- 格式:doc
- 大小:242.50 KB
- 文档页数:7
1、首先通读手册中关于CAN的文档,必须精读。
STM32F10xxx参考手册Rev7V3.pdf需要精读的部分为RCC和CAN两个章节。
为什么需要精读RCC呢?因为我们将学习CAN的波特率的设置,将要使用到RCC 部分的设置,因此推荐大家先复习下这部分中的几个时钟。
关于STM32的can总线简单介绍bxCAN是基本扩展CAN(BasicExtendedCAN)的缩写,它支持CAN协议2.0A和2.0B。
它的设计目标是,以最小的CPU负荷来高效处理大量收到的报文。
它也支持报文发送的优先级要求(优先级特性可软件配置)。
对于安全紧要的应用,bxCAN提供所有支持时间触发通信模式所需的硬件功能。
主要特点·支持CAN协议2.0A和2.0B主动模式·波特率最高可达1兆位/秒·支持时间触发通信功能发送·3个发送邮箱·发送报文的优先级特性可软件配置·记录发送SOF时刻的时间戳接收·3级深度的2个接收FIFO·14个位宽可变的过滤器组-由整个CAN共享·标识符列表·FIFO溢出处理方式可配置·记录接收SOF时刻的时间戳可支持时间触发通信模式·禁止自动重传模式·16位自由运行定时器·定时器分辨率可配置·可在最后2个数据字节发送时间戳管理·中断可屏蔽·邮箱占用单独1块地址空间,便于提高软件效率2、STM32FVBT6的can的工作模式分为#defineCAN_Mode_Normal((u8)0x00)#defineCAN_Mode_LoopBack((u8)0x01)#defineCAN_Mode_Silent((u8)0x02)#defineCAN_Mode_Silent_LoopBack((u8)0x03)在此章我们的豆皮教程中我们将使用到CAN_Mode_LoopBack和CAN_Mode_Normal两种模式。
CAN总线心得总结(不可多得)CAN总线学习心得:zlg关于can帖子汇总SJA1000的常用标准波特率设置,为什么基本上都是单次采样?即使是低速的时候也是这样的,既然TSEG1的设置周期都很大,比如都大于10了,为什么不让他采样三次呢?答:是不好理解,但那是CiA推荐的值。
用51系列芯片和两个SJA1000接口还要外扩一个RAM,请问51的ALE能否同时与三个芯片的ALE管脚相连(地址不同)? 有哪位高手做过双SJA1000冗余的请指教答:能同时连接。
请问CAN总线在想传输1000m的情况下,最快的速度能到多少呢?答:50kbps = 1300m。
如果一个网络中只有2个节点,其中一个处于监听模式,另一个节点发送报文会使处于监听模式的节点进入中断吗?答:能进入接收中断,你自己的试验也可以证明。
想组建一个简单的CAN网络,已经有两个节点,我想问CAN总线如何组建,终端电阻安装在哪里?小弟还没有入门,大虾们指点一下。
答1:直接将节点CANH和CANL连到总线上,终端电阻接在总线两端,大约120欧。
答2:推荐北航出版《现场总线CAN原理与应用技术》,研读一下。
请问各位老师:我是一名can总线的新手,我正在做can总线的开发,控制器用sja1000t(我自己两个控制板互通),但我在发送数据后将出现总线关闭,我看到发送错误计数器在不断增加,直到0xff,最后恢复到0x7f,谢谢各位老师帮我解答这个问题。
或者对我给与启发答1;首先调通单个节点。
答2:这是单节点发送没有成功(或者由于网络中其他节点没有收到帧并在响应场响应);建议参考网站CAN应用方案。
我想请教各位can远程贞有何作用?如何应用?在什么情况下才需要用到远程贞?谢谢了!答:远程幀的用与不用完全取决你自己的协议,can有远程幀的功能,是可用可不用的!用网站提供的计算波特率的工具算出的数,12k以上的都正确,无论是自接收还是两个节点通讯都没有任何问题。
can总线知识点梳理CAN总线是一种串行通信网络,用于实现分布式实时控制。
它是由德国的BOSCH公司开发的,具有传输速度快、通信距离远、无损位仲裁机制、多主结构等优点。
CAN总线标准只规定了物理层和数据链路层,需要用户自定义应用层。
CAN总线采用差分电压传送,使用两条信号线(CAN_H和CAN_L),静态时均为2.5V左右,显性时,通常电压值为:CAN_H=3.5V,CAN_L=1.5V。
在CAN总线中,多个节点连接,只要有一个为低电平,总线就为低电平,只有所有节点输出高电平时,才为高电平。
CAN总线有5个连续相同位后,就插入一个相反位,产生跳变沿,用于同步,从而消除累积误差。
CAN总线的数据帧结构包括帧起始、仲裁段、控制段、数据段、CRC校验段、应答段和帧结束。
其中,仲裁段决定了报文的优先级,ID值越低,优先级越高。
控制段中包含数据长度代码(DLC),表示数据段的长度。
数据段包含发送的数据,可以有0~8个字节。
此外,CAN总线还支持扩展帧和标准帧两种格式,IDE位表示帧类型(0为标准帧,1为扩展帧),RTR位表示帧类型(0为数据帧,1为远程帧)。
在实际应用中,MCU负责实现对功能电路和CAN控制器的控制,包括初始化CAN控制器参数、通过CAN控制器读取和发送CAN 帧、处理CAN控制器的中断异常、根据接收到的数据输出控制信号等。
同时,接口管理逻辑解释MCU指令,寻址CAN控制器中的各功能模块的寄存器单元,向主控制器提供中断信息和状态信息。
在具体的CAN应用场景中,如汽车行业,现在每一辆汽车上都装有CAN总线。
同时,为了实现不同的功能,不同的CAN标准仅物理层不同,而应用层协议也有多种选择,如CANOpen、DeviceNet、J1939、iCAN等。
CAN总线基础知识总结(建议收藏)CAN总线基础知识总结一、CAN总线简介1、CAN总线(Controller Area Network,控制器局域网)是由德国BOSCH(博世)公司在1986年为汽车而设计的,它是一种串行通信总线,只需两根线CAN_H和CAN_L。
2、隐性(逻辑1)与显性(逻辑0)的概念:CAN总线在数据传输过程中,实际上传输的是CAN_H和CAN_L 之间的电位差。
CAN_H只能是高电平(3.5V)或悬浮状态(2.5V),CAN_L只能是低电平(1.5V)或悬浮状态(2.5)V,当CAN_H和CAN_L 都为2.5V 时,是隐性,表示逻辑1,当CAN_H为3.5V、CAN_L都为2.5V时,是显性,表示逻辑0。
表示隐性和显性逻辑的能力是CAN总线仲裁方法的基本先决条件,即所有节点都为隐性时,总线才处于隐性状态;只要有一个节点发送了显性,总线就呈现为显性状态。
3、120?电阻:必须在总线的每一节点的CAN_H和CAN_L之间接一个120?左右的电阻,以避免出现信号反射。
4、CAN技术规范CAN2.0A和CAN2.0B:CAN2.0A只有标准帧(标识符(ID)有11位);CAN2.0B除了标准帧,还有扩展帧(标识符(ID)有29位)。
5、CAN的国际标准ISO11898和ISO11519:CAN 协议经ISO 标准化后有ISO11898和ISO11519两种标准,它们对于数据链路层的定义相同,但物理层不同。
ISO11898 是波特率为125kbps-1Mbps 的CAN高速通信标准。
ISO11519 是波特率为125kbps 以下的CAN低速通信标准。
高速通信标准和低速通信标准的硬件规格也不一样,所以需要选用不同的收发器。
在收发器的规格书上都会注明高速通信用还是低速通信用,或者是符合ISO11898标准还是ISO11519标准。
6、CAN总线协议只定义了物理层和数据链路层,要将CAN总线应用于工程项目中必须制定上层的应用协议。
CAN总线知识点概述CAN全称为“ControllerAreaNetwork”,简称CAN,是国际上应用最广泛的现场之一。
在当前的汽车产业中,出于对平安性、舒服性、便利性、低公害、低成本的要求,各式各样的控制系统被开发出来。
出于这些系统之间通信所用的数据类型及对牢靠性要求不尽相同,且因多条总线构成的状况复杂、线束数量增强。
为了适应“削减线束的数量”、“通过多个LAN,举行大量数据的高速通信”的需求,1986年德国电气商博世公司开发出面对汽车的CAN通信协议。
此后,CAN通过IS011898及IS0 11519举行了标准化,在欧洲已是汽车网络的标准协议,CAN的高性能和牢靠性已被认同,并广泛应用于工业、船舶、医疗设备、工业设备等方面。
的特点1、CAN是一种多主总线,即每个节点机均可成为主机,他们之间都可举行通信。
2、硬件方面,通信介质可以是双绞线、同轴电缆或光导纤维,通信速率可达1mb/s。
3、CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余校验、优先级判别等项工作。
4、CAN协议的一个最大特点是废除了传统的站地址编码,改为从通信数据块举行编码。
采纳这种办法的优点是可使网络内的节点个数在理论上不受限制,数据块的标识码可由11位或29位二进制数组成,因此可以定义211或229个不同的数据块,这种数据块编码方式,还可使不同的节点同时接收到相同的数据,这一点在分步式控制中十分重要。
5、数据段长度最多为8个字节,可满足通常工业领域中控制指令、工作状态及测试数据的普通要求。
同时,8个字节不会占用总线时光过长,从而保证了通信的实时性。
6、CAN协议采纳了crc检验并可提供相应的错误处理功能,保证了数据通信的牢靠性。
CAN总线所具有的极高的牢靠性和独特设计,特殊适合工业设各测控单元互连。
工业界的地位不行小觑,并已公认为最有前途的现场总线之一。
CAN总线基础知识总结一、CAN总线简介1、CAN总线(Controller Area Network,控制器局域网)是由德国BOSCH(博世)公司在1986年为汽车而设计的,它是一种串行通信总线,只需两根线CAN_H和CAN_L。
2、隐性(逻辑1)与显性(逻辑0)的概念:CAN总线在数据传输过程中,实际上传输的是CAN_H和CAN_L之间的电位差。
CAN_H只能是高电平(3.5V)或悬浮状态(2.5V),CAN_L只能是低电平(1.5V)或悬浮状态(2.5)V,当CAN_H和CAN_L都为2.5V 时,是隐性,表示逻辑1,当 CAN_H为3.5V、CAN_L都为2.5V时,是显性,表示逻辑0。
表示隐性和显性逻辑的能力是CAN总线仲裁方法的基本先决条件,即所有节点都为隐性时,总线才处于隐性状态;只要有一个节点发送了显性,总线就呈现为显性状态。
3、120Ω电阻:必须在总线的每一节点的CAN_H和CAN_L之间接一个120Ω左右的电阻,以避免出现信号反射。
4、CAN技术规范CAN2.0A和CAN2.0B:CAN2.0A只有标准帧(标识符(ID)有11位);CAN2.0B除了标准帧,还有扩展帧(标识符(ID)有29位)。
5、CAN的国际标准ISO11898和ISO11519:CAN 协议经ISO 标准化后有ISO11898和ISO11519两种标准,它们对于数据链路层的定义相同,但物理层不同。
ISO11898 是波特率为125kbps-1Mbps 的CAN高速通信标准。
ISO11519 是波特率为125kbps 以下的CAN低速通信标准。
高速通信标准和低速通信标准的硬件规格也不一样,所以需要选用不同的收发器。
在收发器的规格书上都会注明高速通信用还是低速通信用,或者是符合ISO11898标准还是ISO11519标准。
6、CAN总线协议只定义了物理层和数据链路层,要将CAN总线应用于工程项目中必须制定上层的应用协议。
CAN总线总结CAN总线技术学习(一)CAN总线是控制器局域网络(Controller Area Network,CAN)的简称,是德国BOSCH公司开发,是国际上应用最广泛的现场总线之一,CAN总线已成为汽车计算机和嵌入式工控局域网标准总线。
为了全面了解CAN总线,需要先对其有个整体的概念,这中间还有一个小故事,一个应届毕业生到公司去应聘,负责招聘的经理问他:“你会哪方面的技术?”,毕业生说:“我会CAN总线”,经理疑惑的问:“你会看什么总线?”。
那么什么是CAN总线呢?1、首先CAN总线是一种串行总线,不是并行的,是用来传输电子数据的,就像串口总线、USB总线、以太网一样;2、CAN总线是半双工传输模式,发的时候不能收,收的时候不能发;3、CAN总线使用双线传输,一根定义为CAN_H,一根定义为CAN_L,使用差分信号传输(差分信号就是通过计算两线压差);4、CAN总线的波特率最高可达1Mbps,传输距离最远10公里,传输波特率和传输距离成反比,波特率越高有效传输距离越短;5、组网时总线两端CAN_H和CAN_L之间要分别连接一个120欧的终端电阻(起吸收反射波、高频抗干扰的作用)。
那么CAN总线有什么优势呢?1、CAN总线作为现场总线只有两根传输线,比以太网组网简单,成本也低很多,在不需要大数据量传输的设备通讯上有相当的优势;2、CAN总线使用差分信号和屏蔽线传输,抗干扰能力强,数据传输稳定,因为在某点有干扰时两根信号会被同步干扰,不会影响信号传输的信息;3、CAN总线波特率最高可达1Mbps,传输速率相对串口快很多,同时总线协议中加入CRC校验,相对于串口的奇偶校验,数据安全性强;4、CAN总线使用差分双线传输,易于组网,布线简单;5、CAN总线通讯不分主从,网络上每个设备都可以主动发送数据;6、CAN总线协议应用非破坏性逐位仲裁机制,即通过发送帧的帧ID的大小作为优先级判断网络上数据发送冲突,优先级高的信息发送,优先级低的数据停止发送,极大提供总线的利用率;7、CAN总线协议设置对发送的自动重发机制,当发送监测到发送冲突时,停止发送,等总线空闲后自动重发;8、通过设置总线控制器中验收寄存器和屏蔽寄存器,可以使节点在硬件层允许接收某些帧或屏蔽接收某些无用帧,节约单片机ECU接收和判断处理的时间。
以MCP2510爲控制器的CAN总綫使用後心得经过对由MCP2510爲控制器的CAN汇流排的应用,大致得出了以下结论。
一.首先是对晶片的电路接法,MCP2510的4、5、6、10、11可以空置,第3脚(CLK输出脚)可以接到CPU的OSC脚,以取代CPU的震荡体,但最好不用。
如果对实时要求不高的话,第12脚(中断脚)也可以空置。
还有因爲MCP2551性能不好,易损坏。
连到TXCAN、RXCAN的LED和5V间的电阻阻值不宜过小,取5K以上,最好不接。
MCP2551的8脚决定了晶片的工作功耗,接地是高速模式(功耗大),接5V就会进入低功耗模式,和地之间接47K电阻是斜率模式(经常是用这种方式)。
第5脚的功能是输出VDD/2的电压,供别的晶片使用,这里不用接。
最好用PCA82C250/251取代,管脚的接法和用法和MCP2551相容。
二.这部分主要是对SPI和晶片的操作码作一分析。
下面的例子都是以PIC16F877爲平台,用组合语言来编写。
对SPI介面的读写方法如下:初始化SPI:InitSSPBANKSEL SSPSTAT ; SSPSTAT = 0x94 CKE=0 for mode 00 Operationbsf SSPSTAT,6bcf SSPSTAT,7BANKSEL PORT_CS2510 ; The PORT of CS2510 pin's locationbsf CS2510BANKSEL SSPCON ; SSPCON = 0x20movlw b'00100000' ; CKP=0 , Master Mode with Fosc/4 clockmovwf SSPCONreturnSPI介面的读和写。
写:先把数传入W,再调用Write_SPI_Byte。
读:先调用Write_SPI_Byte,读出的资料存放在W。
每次读写时要使CS脚爲0,读写完毕CS置1,下面是副程式:Write_SPI_ByteBANKSEL SSPBUFmovwf SSPBUFBANKSEL SSPSTAT ; Switch to SSPSTAT in order to test the BF FlagWait_BFbtfss SSPSTAT,BFgoto Wait_BFBANKSEL SSPBUF ; Read from SSPBUF will update BF Flag Automately !!movf SSPBUF,Wreturn控制MCP2510晶片方法:先说一下MCP2510晶片的操作,共有6个操作码,重定,位元修改,读数据,写资料,读晶片的各发送器和接收器的状态,请求发送开始。
can的知识点总结一、CAN的起源和发展1993年首次应用于汽车网络通信,它是一种串行网络协议通信系统,广泛应用于汽车领域,其设计初衷是连接各部件以实现可靠的传输和通信能力。
CAN协议特点是高速、实时、可靠、抗干扰能力强,支持多主机,多任务,多帧结构等功能。
二、CAN的基本原理CAN总线是一种串行通信总线,其基本原理是利用两个线进行通讯——CAN_H和CAN_L,并通过差分信号进行通讯。
差分信号指的是CAN_H和CAN_L两根线上的电压相差约2.5V,传输数据时如果CAN_H线上电压高于CAN_L线,则代表逻辑“0”,反之则代表逻辑“1”。
三、CAN的逻辑帧结构CAN中的数据传输以帧的形式进行,帧包括了标识符、控制域、数据域和CRC校验等。
逻辑帧分为标准帧和扩展帧两种,标准帧数据域长度为0-8字节,扩展帧数据域长度可以达到64字节。
四、CAN的速度与通信距离CAN的通信速度可以达到1Mbps,而实际应用中一般选择500kbps为主。
CAN的通信距离可以达到40m左右,但是实际应用中一般不超过10m。
五、CAN的应用领域CAN总线广泛应用于汽车、工程机械、船舶、电力系统、工业控制等领域。
在汽车领域,CAN总线被广泛应用于车载电子控制单元(ECU)之间的数据传输和通信,使得车辆系统可以实现智能化和自动化。
六、CAN的主要特点1. 高可靠性:CAN总线采用了许多技术手段来提高系统的可靠性,如CRC校验、差分传输、冲突检测等。
2. 抗干扰能力强:CAN总线采用了差分传输的方式,使得其对电磁干扰的抗性能非常强。
3. 实时性好:CAN总线支持时间触发,且数据传输速率高,因此实时性较好。
4. 多帧结构的支持:CAN总线支持标准帧和扩展帧,数据域长度可以达到64字节,满足不同应用场景的需求。
5. 主机与多任务支持:CAN总线支持多主机通信和多任务的功能。
七、CAN的局限性1. 数据传输速率有限:CAN总线的最高数据传输速率为1Mbps,对于某些高数据吞吐量的应用场景可能无法满足需求。
CAN总线使⽤总结CAN总线使⽤总结⼀,CAN总线是由德国BOSCH公司提出,⽬的是为了解决汽车内部硬件信号线的复杂⾛线⼆,CAN:controller area area:控制器局域⽹络三,CAN总线的特点:与⼀般的通信总线相⽐,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。
1,CAN为多主⽅式⼯作,⽹络上任⼀节均可在任意时刻主动向⽹络上其他节点发送信息,不分主从2,CAN节节点只需通过对报⽂的标志符进⾏滤波就可以⽅便的实现点对点,点对多点及全局⼴播等⼏种传送接收⽅式;3,CAN总线采⽤⾮破坏总线仲裁技术。
当发⽣冲突时,优先级低的节点⾃动退出发送,⽽优先级⾼的节点可不受影响地继续传输数据,从⽽⼤⼤节省了总线冲突仲裁时间。
尤其是在负载很重的情况下,也不会出现瘫痪情况(以太⽹则可能)。
4,在报⽂标识符上,CAN上的节点分成不同的优先级,可满⾜不同的实时要求,优先级⾼的数据最多可在134us内得到传输;5,CAN的直接通信距离最远可达10KM(速率在5kbps以下),通信速率最⾼可达1Mbps,(此时通信距离最长为40m);6,CAN上的节点数主要取决于总线驱动电路,⽬前可达110个;7,报⽂采⽤短帧结构,传输时间短,受⼲扰概率低,保证了数据出错率极低;8,CAN的每帧信息都在CRC校验及其他检错措施,具有极好的检错效果;9,CAN的通信介质为双绞线、同轴电缆或光纤,选择灵活;10,CAN节点在错误严重的情况下具有⾃动关闭输出功能,以使总线上其他节点的操作不受影响;11,CAN总线具有较⾼的性价⽐。
四,CAN总线的系统构成及数据传输原理(⼀),系统构成1,CAN控制器:接收来⾃微控制器的数据,并处理发送给收发器,同时,也接收来⾃收发器的数据,处理传给微控制器。
2,CAN收发器:总线驱动四,CAN总线的的通信协议(⼀),⽹络层次结构可分为三个层:⽬标层,传送层,物理层,如下图所⽰物理层:规定了信号的传输过程中的电⽓特性(如传输⽅式及传输介质)及信号特性;传送层:帧组织,总线仲裁,错误检测等;⽬标层:信息识别,为应⽤层提供接⼝;其上述分层按iso/osi也可以分为两层:物理层,数据链路层(即⽬标层和传送层)。
can总线报告资料一、概述CAN(Controller Area Network)总线是一种广泛应用于汽车和工业领域的串行通信协议。
它具有高可靠性、高实时性和高带宽的特点,被广泛应用于车辆电子控制系统、工业自动化控制系统等领域。
本报告旨在介绍CAN总线的基本原理、应用领域和技术特点。
二、CAN总线的基本原理1. 物理层CAN总线采用双绞线进行数据传输,通信速率可达到1Mbps。
它采用差分信号传输,具有抗干扰能力强的特点。
CAN总线的物理层标准有CAN 2.0A和CAN 2.0B两种,分别适用于不同的应用场景。
2. 数据链路层CAN总线采用CSMA/CD(Carrier Sense Multiple Access with Collision Detection)的数据链路层协议。
它通过监听总线上的数据活动来实现多节点之间的数据传输。
当多个节点同时发送数据时,会发生冲突,此时通过冲突检测和重新发送机制来解决冲突问题。
3. 帧格式CAN总线的数据传输以帧为单位进行。
CAN帧由起始位、标识符、控制位、数据域和校验位组成。
其中,标识符用于区分不同的数据帧,数据域用于传输实际数据,校验位用于检测数据的正确性。
三、CAN总线的应用领域1. 汽车电子控制系统CAN总线被广泛应用于汽车电子控制系统,如发动机控制单元(ECU)、制动系统、空调系统等。
它可以实现多个控制单元之间的高速数据传输和实时协同工作,提高整车的性能和安全性。
2. 工业自动化控制系统CAN总线在工业自动化领域的应用也非常广泛。
它可以连接各种传感器、执行器和控制器,实现工业设备之间的数据交换和控制。
通过CAN总线,工业自动化系统可以实现高效、可靠的数据传输和实时控制。
3. 其他领域除了汽车和工业领域,CAN总线还被应用于其他领域,如航空航天、医疗设备、军事装备等。
它的高可靠性和实时性使得CAN总线成为这些领域中的首选通信协议。
四、CAN总线的技术特点1. 高可靠性CAN总线采用差分信号传输和冲突检测机制,具有抗干扰能力强的特点。
CANI2SI2CSPI总线接口总结CAN(Controller Area Network)是一种面向实时通信的串行总线标准。
它最初是由Bosch公司开发,主要用于汽车电子系统中的控制和通信。
CAN总线采用差分信号传输,拥有较高的抗干扰能力和可靠性,可实现在复杂电气环境下的快速数据传输。
CAN总线可以支持多个设备的分布式通信,通过先进的协议机制实现高效的数据传输和数据帧的优先级设置。
CAN总线的通信速率通常为1 Mbps,可以满足实时性要求较高的应用场景,如汽车电子、工业控制和航空航天等。
I2S(Inter-IC Sound)是一种串行音频接口标准。
它由飞利浦(Philips)公司提出,用于在音频设备之间传输音频数据。
I2S接口采用三线制的同步通信方式,包括一个时钟线、一个数据线和一个帧同步线。
I2S接口支持双向通信,可以同时传输音频数据和控制信号。
I2S接口的主要特点是高保真音频传输和灵活的系统集成能力。
它广泛应用于消费电子产品,如音频解码器、音频处理器、音频放大器等。
I2C(Inter-Integrated Circuit)是一种串行通信总线标准。
它由Philips公司开发,用于连接集成电路之间的通信。
I2C总线采用双线制的同步通信方式,包括一个时钟线和一个数据线。
I2C总线可以支持多个设备的串行连接,每个设备都有一个唯一的地址,可以通过该地址进行单独访问。
I2C总线具有简单、低功耗和可靠的特点,适用于连接存储器、传感器、显示器和其他外设等。
它的通信速率通常在100 kbps到3.4 Mbps之间,适用于中等速度的数据传输。
SPI(Serial Peripheral Interface)是一种串行外设接口标准。
它最早由Motorola公司提出,用于连接微控制器和外设之间的通信。
SPI总线采用四线制的同步通信方式,包括一个时钟线、一个主从选择线、一个主机输出从机输入线和一个主机输入从机输出线。
can总线知识点(原创版)目录1.CAN 总线的概述2.CAN 总线的基本原理3.CAN 总线的主要特点4.CAN 总线的应用领域5.CAN 总线的发展前景正文一、CAN 总线的概述CAN 总线,全称为控制器局域网(Controller Area Network),是一种用于实时控制的串行通信总线。
它最初由德国的 Robert Bosch GmbH 公司于 1980 年代研发,用于汽车电子设备的通信。
后来,CAN 总线逐渐被广泛应用于各种工业自动化领域。
二、CAN 总线的基本原理CAN 总线采用多主控制器结构,所有连接在总线上的节点(设备)都可以发送和接收信息。
总线上的节点通过消息帧进行通信,消息帧包含标识符、数据长度码、数据字段、CRC 字段和应答位等。
CAN 总线采用非同步传输方式,节点间的通信不依赖于固定的时间基准,而是通过消息帧中的定时器来同步。
三、CAN 总线的主要特点1.高速通信:CAN 总线的通信速率最高可达 1Mbps,适用于实时控制系统。
2.多主控制器:总线上的每个节点都可以主动发送信息,不存在固定的主从关系。
3.错误检测与纠正:CAN 总线具有 CRC 校验和应答位机制,可以检测到错误并进行纠正。
4.强抗干扰能力:CAN 总线采用差分信号传输,具有较强的抗干扰能力。
5.扩展性强:CAN 总线可以连接大量节点,最多可达 256 个。
四、CAN 总线的应用领域CAN 总线广泛应用于汽车电子、工业自动化、机器人控制、智能家居等领域。
例如,在汽车电子中,CAN 总线用于连接发动机控制单元、底盘控制单元、仪表盘等设备;在工业自动化中,CAN 总线可以用于传感器数据采集、机床控制等场景。
五、CAN 总线的发展前景随着物联网、工业 4.0 等技术的发展,CAN 总线在未来将发挥更大的作用。
同时,CAN 总线也在不断升级,如 CAN FD(CAN with Flexible Data rate)等新标准已经推出,以满足更高的通信速率和性能要求。
1. 简介CAN总线由德国BOSCH公司开发,最高速率可达到1Mbps。
CAN的容错能力特别强,CAN控制器内建了强大的检错和处理机制。
另外不同于传统的网络(比如USB或者以太网),CAN节点与节点之间不会传输大数据块,一帧CAN消息最多传输8字节用户数据,采用短数据包也可以使得系统获得更好的稳定性。
CAN总线具有总线仲裁机制,可以组建多主系统。
2. CAN标准CAN是一个由国际化标准组织定义的串行通讯总线。
最初是用于汽车工业,使用两根信号总线代替汽车内复杂的走线。
CAN总线具有高抗干扰性、自诊断和数据侦错功能,这些特性使得CAN总线在各种工业场合广泛使用,包括楼宇自动化、医疗和制造业。
CAN通讯协议ISO-11898:2003标准介绍网络上的设备间信息是如何传递的,以及符合开放系统互联参考模型(OSI)的哪些分层项。
实际通讯是在连接设备的物理介质中进行,物理介质的特性由模型中的物理层定义。
ISO11898体系结构定义七层,OSI模型中的最低两层作为数据链路层和物理层,见图2-1。
图2-1:ISO 11898标准架构分层在图2-1中,应用程序层建立了上层应用特定协议,如CANopenTM协议的通讯链路。
这个协议由全世界的用户和厂商组织、CiA维护,详情可访问CiA网站:can-cia.de。
许多协议是专用的,比如工业自动化、柴油发动机或航空。
另外的工业标准例子,是基于CAN的协议的,由KVASER和Rockwell自动化开发的DeviceNetTM。
3. 标准CAN和扩展CANCAN通讯协议是一个载波侦听、基于报文优先级碰撞检测和仲裁(CSMA/CD+AMP)的多路访问协议。
CSMA的意思是总线上的每一个节点在企图发送报文前,必须要监听总线,当总线处于空闲时,才可发送。
CD+AMP的意思是通过预定编程好的报文优先级逐位仲裁来解决碰撞,报文优先级位于每个报文的标识域。
更高级别优先级标识的报文总是能获得总线访问权,即:标识符中最后保持逻辑高电平的会继续传输,因为它具有更高优先级。
can总线技术期末总结一、引言CAN(Controller Area Network,控制器局域网)总线技术是一种在工控领域广泛使用的通信协议和物理介质。
本文将从CAN总线技术的发展历程、工作原理、应用领域以及未来发展等方面进行总结。
二、发展历程CAN总线技术最早源于德国宝马公司的研究项目,用于车辆电子系统的通信。
随着应用拓展,CAN总线技术被广泛应用于工业控制系统、机车车辆控制系统以及其他需要高可靠性和实时性的领域。
CAN总线技术于1986年首次在精确电气汽车传动系统中使用,并在1991年成为国际标准(ISO 11898)。
三、工作原理CAN总线采用分布式控制的工作原理。
在CAN总线中,各个设备通过总线进行通信,每个设备之间都可以相互发送和接收信息。
CAN总线上的设备一般分为主机和从机,主机负责控制总线的访问,而从机则负责接收和发送数据。
CAN总线使用CSMA/CA(Carrier Sense Multiple Access / Collision Avoidance)协议进行数据传输。
每个设备在发送数据前会检测总线上的信号,如果发现总线上正在传输数据,则等待一段时间再发送,以避免冲突。
四、应用领域CAN总线技术在工业控制系统中得到了广泛的应用。
它可以连接各种传感器、执行器和计算机,用于控制和监测工业过程。
由于CAN总线具有高可靠性和实时性,广泛应用于汽车电子系统,如发动机控制、底盘控制、空调控制等。
此外,CAN总线技术还被用于船舶、飞机、火车和军事装备等领域。
它在这些领域中起到了连接和协调各个设备的作用。
五、未来发展随着物联网和工业4.0等概念的兴起,对于实时性和可靠性要求更高的通信技术逐渐被提出。
CAN总线技术在这方面有着不可替代的优势,因此其未来发展前景广阔。
未来CAN总线技术可能在以下几个方面得到进一步发展。
首先,更高的通信速率是一个主要的发展方向。
目前CAN总线的通信速率一般在1Mbps到10Mbps之间,但随着数据量和通信速率的不断增加,CAN总线需要适应更高速的通信需求。
CAN总线总结范文CAN总线(Controller Area Network)是一种高性能、可靠、实时性强的串行通信总线网络,广泛应用于汽车行业以及工业控制领域。
CAN总线的成功在于其具有高性能、低成本、可靠性和实时性等特点,能够满足复杂的通信要求。
首先,CAN总线具有高性能的特点。
CAN总线采用了非归零码NRZ (Non Return to Zero)的信号传输方式,同时支持多主机通信,使得数据传输速度能够达到1Mbps。
此外,CAN总线还采用了先进的冲突检测和冲突解决机制,能够有效地避免数据传输的冲突,提高通信效率。
其次,CAN总线具有低成本的特点。
CAN总线采用了双线传输的方式,相比于传统的并行总线或者以太网等通信方式,CAN总线的线路布局更为简单,所需的硬件成本更低。
此外,CAN总线还支持多节点的连接,使得系统架构更为灵活,能够节省更多的成本。
此外,CAN总线还具有可靠性的特点。
CAN总线在设计上具有很强的容错能力,能够自动修复硬件故障、误码和中断等问题。
此外,CAN总线还采用了冗余校验和错误寻址机制,能够有效地检测和纠正数据传输中可能发生的错误,提高通信的可靠性。
最后,CAN总线具有良好的实时性能。
CAN总线采用了优先级机制和时间分片等技术,能够满足高实时性的通信需求。
CAN总线支持广播和多播的通信方式,能够快速地在系统内传播信息,确保所有节点都能及时接收到需要的数据。
总之,CAN总线是一种非常优秀的串行通信总线网络,具有高性能、低成本、可靠性和实时性强等特点。
在汽车行业和工业控制领域得到广泛应用,并且不断发展和演进,提供了更多的功能和扩展性。
随着物联网和智能制造的发展,CAN总线仍然具有重要的地位,将继续为各个领域的通信需求提供可靠的解决方案。
CAN总线技术学习(一)
CAN总线是控制器局域网络(Controller Area Network,CAN)的简称,是德国BOSCH公司开发,是国际上应用最广泛的现场总线之一,CAN总线已成为汽车计算机和嵌入式工控局域网标准总线。
为了全面了解CAN总线,需要先对其有个整体的概念,这中间还有一个小故事,一个应届毕业生到公司去应聘,负责招聘的经理问他:“你会哪方面的技术?”,毕业生说:“我会CAN总线”,经理疑惑的问:“你会看什么总线?”。
那么什么是CAN总线呢?
1、首先CAN总线是一种串行总线,不是并行的,是用来传输电子数据的,
就像串口总线、USB总线、以太网一样;
2、CAN总线是半双工传输模式,发的时候不能收,收的时候不能发;
3、CAN总线使用双线传输,一根定义为CAN_H,一根定义为CAN_L,使用
差分信号传输(差分信号就是通过计算两线压差);
4、CAN总线的波特率最高可达1Mbps,传输距离最远10公里,传输波特
率和传输距离成反比,波特率越高有效传输距离越短;
5、组网时总线两端CAN_H和CAN_L之间要分别连接一个120欧的终端电
阻(起吸收反射波、高频抗干扰的作用)。
那么CAN总线有什么优势呢?
1、CAN总线作为现场总线只有两根传输线,比以太网组网简单,成本也低
很多,在不需要大数据量传输的设备通讯上有相当的优势;
2、CAN总线使用差分信号和屏蔽线传输,抗干扰能力强,数据传输稳定,
因为在某点有干扰时两根信号会被同步干扰,不会影响信号传输的信息;
3、CAN总线波特率最高可达1Mbps,传输速率相对串口快很多,同时总线
协议中加入CRC校验,相对于串口的奇偶校验,数据安全性强;
4、CAN总线使用差分双线传输,易于组网,布线简单;
5、CAN总线通讯不分主从,网络上每个设备都可以主动发送数据;
6、CAN总线协议应用非破坏性逐位仲裁机制,即通过发送帧的帧ID的大
小作为优先级判断网络上数据发送冲突,优先级高的信息发送,优先级
低的数据停止发送,极大提供总线的利用率;
7、CAN总线协议设置对发送的自动重发机制,当发送监测到发送冲突时,
停止发送,等总线空闲后自动重发;
8、通过设置总线控制器中验收寄存器和屏蔽寄存器,可以使节点在硬件层
允许接收某些帧或屏蔽接收某些无用帧,节约单片机ECU接收和判断处
理的时间。
综上所述,CAN总线在设计成本、传输速率、传输稳定性、传输安全性、易于组网以及总线协议完善设计方面的优势,使其在现代汽车、工控局域网络领域得到广泛的应用。
CAN总线既然作为一种现场总线,用途就是在不同设备间传输数据,基本的逻辑框图如图1所示:
图1 CAN总线逻辑框图
CAN总线通讯主要包括:主控制器(一般为单片机)、CAN总线控制器(图例为SJA1000,方框中为一个芯片器件)和收发器,主控制器初始化设置CAN总线控制器工作,CAN总线控制器为主要CAN总线逻辑器件,负责将数据转换为总线协议串行信号和将收发器接收到的信号转换为有效数据,并屏蔽无效数据,监测故障错误并报告,收发器将CAN总线收发信号转换成半双工CAN总线差分信号。
有的单片机将CAN控制器芯片功能集成在单片机中,如富士通MB90340系列、STM32f10x系列等。
CAN总线组网的逻辑框图如图2所示:
如图所示,多个CAN总线节点通过差分信号连接到CAN总线网络上,网络两端(CAN_H和CAN_L之间)分别连接一个120欧姆的终端电阻(吸收反射波,抗干扰)。
各节点不分主从,都可以主动向总线上发送CAN信息,也可以设置CAN 控制器的验收屏蔽寄存器有选择的接收总线上的信息。
图2 CAN总线网络框图
CAN总线技术学习(二)
CAN总线信息以帧的形式传输,每个帧包括多个段:起始位SOF、仲裁段、控制段、数据段、CRC校验、确认位、结束位等,各个段依次串行被传输到总线上。
起始位、CRC校验、确认位和结束位由控制器硬件自动生成,软件可以配置仲裁段、控制段和数据段的内容。
每个CAN帧最多发送数据段长度为8个字节即64位。
CAN总线协议有两种:CAN2.0A和CAN2.0B协议,CAN2.0A支持帧ID为11位的标准帧,CAN2.0B协议支持帧ID为11位的标准帧和帧ID为29位的扩展帧,如图1和图2所示。
图1 CAN标准帧
图2 CAN扩展帧
下面解释几个CAN总线问题:
位填充:上述图中都提到位填充的问题,即当发送的一帧CAN信息中出现连续5个相同位时,控制器会自动填充一个相反的位进去,控制器接收一帧CAN 信息时发现5个相同的位,也会自动把其后的一个翻转位去掉。
那么可能我们会问为什么要做这种看似无用的操作呢?因为CAN总线通讯属于异步通讯,虽然通讯双方约定设定相同的波特率通讯,但是每一位(bit)的宽度也不可能绝对相同,多个相同的位累积起来可能出现较大的误差,造成接收信息出错,那么如何解决这个问题呢?CAN协议中规定在位跳转时要做同步补偿,那么这样可以消除多个位累积造成的错误,但是如果CAN帧信息连续出现多个0或1,接收方没办法监测到翻转位,不能做出正确的补偿,可能导致发送方发了10位0,接收方监测出11个0出来的情况出现,所以当发送方连续发送5个0时,要位填充一个1进去,然后再发送下面的位,而接收方接收到5个0后接收到下面的1可以做出相应的同步补偿,同时要丢弃这个填充位。
按照CAN协议规定如果在CAN 信息中接收到连续6个以上的相同位被认为是错误信息,CAN控制器错误计数加1。
CAN协议:如上图所示,标准帧标识符(帧ID)有11位,扩展帧标识符(帧ID)有29位,CAN2.0B协议也兼容CAN2.0A协议,可以同时识别标准帧和扩展帧。
标准帧和扩展帧的区别在于IDE位,IDE为0时表示标准帧,IDE为1时表示扩展帧。
CAN信号:CAN总线使用一对差分信号通讯,即CAN_H和CAN_L,通过识别它们的压差获取0或1的信息,上电后两个信号对地都会有一定的电压,即V_CANH
和V_CANL,通过判断V_CANH-V_CANL识别信息,总线信号分为显性(压差为1V 以上,也即数字0)和隐性(压差小于0.5V,也即数字1)。
一般在没有数据通讯时V_CANH和V_CANL都为2.5V,所以CAN总线默认为没有压差(隐性,数字1),当有起始位SOF(数字0,显性)时每个网络上的节点都能监测到,准备接收信息,如图3所示。
图3 CAN总线电压示意图
逐位仲裁机制:CAN节点发送的信息都会被自己接收并判断。
当CAN总线上两个节点同时发送CAN信息时,CAN节点也会比较自己发送的数据和接收的数据是否一致,由于CAN信号有显性(数字0,压差大于1V)和隐性(数据1,压差小于0.5V)两种,当一个节点发送0而另一个节点发送1时,总线表现为显性0,那么发送1的节点监测到后知道发送总线冲突,自动退出发送,所以可以看出,CAN总线信息小的优先级高。
通过这种方式可以实现非破坏性逐位仲裁,优先级高的节点正常发送,不受任何影响。
CAN总线技术学习(三)
CAN控制器比较通用的是SJA1000T,收发器使用比较多的是TAJ1050或82C250,学习CAN总线首先需要准备一块开发板,现在CAN总线开发板很多,一般都是单片机带CAN控制器和收发器的方式。
各种接口的CAN设备也很多,USB 接口、PCI接口,智能非智能的很多种,相对而言,广州周立功的产品种类多,软件兼容性高,可以参考使用。
学习CAN软件开发,首先就是要熟悉CAN控制器的寄存器配置,不同的CAN 控制器寄存器不同,如何设置也不同,市面上通用的就是SJA1000T的控制器,芯片中文资料可在网上下载,网上也有很多软件例程,学习起来相对容易。
对于一些集成CAN控制器的单片机来说,CAN寄存器控制一般都不同,总体来说主要包括三部分:初始化、接收(中断)、发送,流程图分别如图1、2、3所示。
图1 CAN初始化流程
图2 CAN发送数据流程
图3 中断接收流程
对于CAN总线控制器初始化,主要设置:通讯波特率、验收寄存器、屏蔽寄存器及滤波方式、设置中断使能等,对于SJA1000首先要设置模式寄存器,还要设置输出控制寄存器等。
SJA1000支持两种模式:Basic CAN模式(只支持标准帧)和Peli CAN模式(支持标准帧和扩展帧),在使用两种模式前需要先在模式寄存器中设置,默认是Basic CAN,因为两种模式下寄存器的地址和含义有区别。