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

发布者:EuphoricVoyage最新更新时间:2023-03-14 来源: zhihu关键字:单片机  外围模块  CAN总线 手机看文章 扫描二维码
随时随地手机看文章

1980年,Bosch的工程师开始研究汽车上高速串行通信的问题,并在1986年发布了CAN(Controller Area Network)总线。CAN以其多主,高速(最高1Mbps),抗干扰的特性被广泛应用汽车及各种工业环境。在此我们主要介绍一下CAN总线的特点,帧类型,以及应用中的注意事项。

  1. CAN总线特点

1.1 多主控制

跟我们常用的RS485只有一个主机,从机只能等待主机的轮询不同,在CAN总线中,当任意一个节点监测到总线空闲时,就可以立即启动信息的发送,也就是每一个节点都可以当主机。当然,这马上会引起我们的担心。如同一个家庭每个人都当家做主,那还不乱了套吗?不急,我们来看一下。这个问题是如何被巧妙地解决的。

物理层,CAN采用差分总线。单片机引脚的逻辑电平0,被CAN收发器(PHY)转换为显性电平(Dominant),逻辑电平1被转换为隐性电平(Reccesive)。总线上执行的是“线与”逻辑,只要有一个节点输出显性电平,那么总线上就是显性电平。


仲裁(Arbitration),CAN的发送总是以SOF(Start Of Frame)起始,紧跟器后是ID。在发送ID的同时,节点监听总线上的显隐状态,当监听到的状态与自己发送的不一致时,此节点将停止发送,进入只收模式。如下图所示,每一帧消息所具有的ID决定了此消息的优先级,发送最高优先级消息的节点获得总线最后的控制权,得以最终完整的发送自己的消息。


接收滤波(Filter)。一个挂在总线上的节点可以监听到所有的消息(Message),但通常我们只对其中某些消息感兴趣,这时怎么办呢?CAN模块一般会提供接收滤波功能(Filter)。通过设置滤波寄存器,我们可以达到接收消息时,比对ID所有位,也可以只比对ID某些位,从而达到只接收ID与自己完全相同的消息,或接收ID与自己部分相同的消息的目的。利用这种机制可以给节点编组,给组成员群发消息。

1.2 速度快,距离远

CAN总线可以达到1Mbps的速率。总线速度随着传输距离增加而下降,下面是一些典型速率。在一个数据帧内可以传送8个字节的数据。

1000kbps 40m

500kbps 130m

100kbps 620m

50kbps 1300m

5kbps 10000m

2012年,Bosch又发布了CANFD(CAN with Flexible Data-rate),最高速率可以达到10Mbps,在一个数据帧内可以传送64字节的数据。2015 年 ,国际标准化组织(ISO)正式发布支持CAN FD的11898-1协议。

2.帧类型

CAN协议很简洁,只包含4种帧类型。

数据帧(Data Frame),用来把数据从发送节点传送至接收节点。

远程帧(Remote Frame),一个节点用来请求其它节点发送数据。一个节点发送远程帧时会把Arbitration Filed最后一位RTR(置1),具有相同ID的节点会把数据发送到总线上。

错误帧(Error Frame),当一个节点检测到错误时会向总线发出错误帧,以通知其它节点。

过载帧(Overload Frame),用来在数据帧或远程帧之间插入延时。

帧间隔(Interframe Space),不是一种帧类型。它是帧之间的间隙,由多个连续的隐性电平构成。

在编程时我们直接用到的就是数据帧和远程帧。软件编程比较简单,需要注意的是一般需要设置寄存器中的初始化请求位(Initialization request),使模块进入初始化状态,才能开始进行CAN模块的各种配置,初始化完成后退出初始化状态,进入运行状态。

3. CAN总线应用注意事项

3.1终端匹配电阻

在CAN总线的两端要用120欧的电阻端接进行阻抗匹配,因为CAN总线长度一般会比较长,传输的信号速度快,特别是信号的边沿跳变部分频率很高。


传输线效应 平常我们总是认为电信号从一个引脚发出,通过导线,瞬间就会到达接收引脚,导线上的电压处处是相等的。但是当信号的频率很高,或者导线特别长,总之导线的长度接近传导信号波长的1/10后,我们就需要转变一下我们的观念,此时信号的传输主要受电缆特性阻抗的影响。

电缆特性阻抗 = 信号电场强度(伏特/米) / 磁场强度(安培/米)

电缆的特性阻抗与电缆的材质,粗细,线缆之间的距离有关,而与电缆的长度无关。电缆的特性阻抗还和信号的频率有关,但是当频率增加到一定数值时,特性阻抗不再变化。常用的带屏蔽双绞线的特性阻抗是120欧。

信号在阻抗不连续处会产生反射,所以要保持电缆阻抗的连续性,而且线缆终点需要用等于电缆特性阻抗的电阻进行端接,以消耗掉传输至端点的信号,否则信号会反射回去和后续发出的信号产生叠加,引起错误。

频率与波长对应关系

150K 2000m

500K 600m

1M 300m

10M 30m


端接电阻的另一个作用是可以使CAN总线从显性状态快速回到隐性状态。因为在显性状态下,两条线缆CAN_H, CAN_L之间的寄生电容会被充电,如果没有一个放电回路,总线不能快速回到隐性状态。

3.2EMC防护

CAN常常工作在强干扰的工业环境中,采用屏蔽双绞线会极大的提升EMC防护性能。同时如果数字电路部分和CAN收发器之间用高速光耦隔离开,并且对两部分采用完全隔离的电源供电,那么可以把总线上的干扰最大限度地隔离在外部。

需要注意的是屏蔽层只能在一点接入大地。如果在多个点接地,那么通过大地会形成电流环路,反而会引入噪声。

3.3 时钟容差(Oscillator Tolerance)

总线的速度越高,需要的时钟精度越高。一般在低于125kpbs时可以用低成本的陶瓷震荡器(ceramic resonators),更高的速度下建议使用晶体振荡器(Quartz,or Crystal Oscilators)。

3.4 CAN模块死机现象

CAN模块内部有监控电路,总线上的异常,如短路等,会引起错误计数器增长。TEC(Transmit Error Counter), REC(Receive Error Counter)。当发送错误TEC计数超过255后,CAN模块进入BUS-OFF模式,此节点不能发送也不能接收。这样做的好处是可以避免由个别模块的问题引起整个总线不能工作。

芯片一般会提供两种恢复机制:自动和手动模式。比如在STM32单片机中,如果ABOM位设置为1,CAN模块将不断尝试自动恢复。如果ABOM=0,则需要程序进入CAN初始化模式,重新配置后,再退出初始化进入正常工作模式。

由于CAN总线非常可靠,不易出错,所以在测试阶段建议人为制造一些总线错误,比如短路,断路,强干扰之类,看程序是否能从异常状态下恢复。


关键字:单片机  外围模块  CAN总线 引用地址:单片机外围模块漫谈之三,CAN总线

上一篇:单片机外围模块漫谈之四,USB总线基本概念
下一篇:单片机外围模块漫谈之一,图解说明什么是Flash, SAR, Sigma-Delta型ADC

推荐阅读最新更新时间:2024-11-05 20:54

基于MCU的风光互补独立电源系统
摘要:结合实践论述了风光互补能源的合理性,给出了基于Mcu的风光互补独立电源的硬件构成以及软件流程。并对其中的关键技术:如双标三阶段充电的流程、逆变模块的MCU实现硬件构成等详加阐述。同时也结合实例,介绍了风光互补独立电源系统的实际应用。 关键词:微控制嚣(MCU);双标三阶段充电;逆变;风光互补系统 中图分类号:TM925 文献标识码:A 文章编号:0219—2713(2005)06 0035—04 0 引言 综合利用了风能、光能的风光互补独立电源系统是一种合理的电源系统。不仅能为电网供电不便的地区,如边防哨所,通讯的中继站,交通的信号站,勘探考察的工作站以及农牧区提供低成本、高可靠性的电源,而且也为解决当前的能源危机和环境污
[单片机]
基于C8051F020单片机的汽车故障诊断仪的研究
   引言   随着我国经济建设的不断发展,装有计算机控制系统的新型汽车已越来越多的应用于人们的日常生活中,这使得汽车的动力性,经济性,安全性,可靠性等有了极大的提高。但同时也使得汽车的结构复杂多了,也使一般汽车维修诊断与排除汽车故障困难多了,而利用汽车电脑存储的信息,诊断与排除汽车故障的方法也应运而生。仪器诊断是在经验的基础上发展起来的现代检验方法。它是与车载故障自诊断系统配套使用的,从本质上看,它相当于自诊断系统的终端设备,起到人机交互的作用。该方法可在汽车不解体的情况下,用仪器或设备测试汽车性能和故障参数,曲线或波形,甚至能自动分析和判断汽车的技术状况。随着电喷发动机汽车的普及,汽车故障诊断仪已作为一种必备的维修工具被大多数
[单片机]
基于C8051F020<font color='red'>单片机</font>的汽车故障诊断仪的研究
基于AT89C52单片机最小系统接口电路设计
  AT89C52是美国Atmel公司生产的低电压、高性能CMOS 8位单片机,片内含8KB的可反复擦写的程序存储器和256B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C52单片机可灵活应用于各种控制领域。AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C52在引脚排列、硬件组成、工作特点和指令系统等方面兼容。AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求单片机正常工作时,都需要有一个时钟电路和一个复位电路。单片
[电源管理]
基于AT89C52<font color='red'>单片机</font>最小系统接口电路设计
基于单片机实现摄像机运动控制系统的设计
0 引言 采用单片机为核心设计的云台控制器在监控场合能实现控制摄像机进行大范围、宽角度的移动,以使摄像机能够达到接近360°全景式摄像,且其在经济性、灵活性、扩展性和可维护性等方面都具有独特的优势。 1 系统总体结构 系统由以下几部分构成:①单片机:设计的核心,在软件的配合下实现对键盘所输入信息的识别,根据输入信息向云台中的步进电机发出指令,使其实现正/ 反转、速度控制、程序控制等功能,并将步进电机的转速通过数码管显示出来;②步进电机及驱动:负责云台系统在竖直和水平两个方向上的转动,是系统的执行部件;③键盘:外部信息的输入器件,是控制人员指挥云台系统工作的重要组成部分; ④显示器件:将步进电机的实时转速显示出来,
[单片机]
基于<font color='red'>单片机</font>实现摄像机运动控制系统的设计
2.4GHz射频的CAN总线汽车故障诊断仪
  设计一款基于2.4G射频的车载CAN总线故障诊断仪,详细介绍其工作原理及系统硬件电路,最后分别阐述接收端、发射端和PC端的软件模块。        该方案采用自动跳频的2.4G空中协议,经测试统计误码率保持在有效范围之内,在14m内仍能正常工作。采用USB作为接收端和PC接口,保证了系统的即插即用及数据的高速传输。   控制器局域网络CAN(Controller Area Network)为汽车内部各种复杂的电子设备、控制器、测量仪器等提供了统一数据交换渠道,已得到广泛的应用。目前,太多数汽车部件都提供了CAN总线通信接口。   在当今的中高档汽车中,都采用了CAN总线技术。针对车载CAN总线会出现的故障.结合射频和U
[嵌入式]
单片机时序分析
前面我们介绍了延时程序,但这还不完善,因为,我们只知道DJNZ R6,D2这句话会被执行62500次,但是执行这么多次需要多长时间呢?是否满足我们的要求呢?我们还不知道,所以下面要来解决这个问题。 先提一个问题:我们学校里什么是最重要的。(铃声)校长可以出差,老师可以休息,但学校一日无铃声必定大乱。整个学校就是在铃声的统一指挥下,步调一致,统一协调地工作着。这个铃是按一定的时间安排来响的,我们可以称之为“时序��时间的顺序”。一个由人组成的单位尚且要有一定的时序,计算机当然更要有严格的时序。事实上,计算机更象一个大钟,什么时候分针动,什么时候秒针动,什么时候时针动,都有严格的规定,一点也不能乱。计算机要完成的事更复杂
[单片机]
51单片机高精度除法程序及使用
科技人员在开发51单片机应用系统过程中,往往遇到多字节除法及倒数问题。但目前一些资料中所介绍的有关程序,复杂且功能单一、精度低。本人在研制((GZ93多功能程控测试仪》过程中,自行设计的4字节除4字节程序具有功能多、精度高、简短、运行速度快等特点,可用于求4字节倒数,求商的整数(结果为4字节),求商的小数部分(结果为4字节),调用两次即可求8字节商。 一、使用方法 1.求商的整数 (1)16进制被除数送51内部RAM中20(低位)至23(高位)单元,除数送50(低位)至53(高位)单元,扩充单元24至27清零。 ’ (2)调子程序DIV。 (3)20(低位)至23(商位)单元为所求商,24至27单元为余数。
[单片机]
STM32单片机的独特优势及其广泛应用领域
  STM32充分展现出以下优势:   卓越性能:基于Arm内核的STM32构架运行速度快,具备强大运算能力及丰富资源。   丰富的功能组件:STM32包含种类繁多的外设,如GPIO口、定时器、通用串行总线(含IIC和SPI)、模数转换器(ADC与DAC)以及外部中断等,满足多样化应用需求。   卓越稳定:伴随着科技进步以及国产芯片优化,STM32稳健程度已达到极高水平且性价比优异。   简便易用:STM32文档资源丰富,使用便捷。ST公司提供完备的开发工具链及各类资源,如CubeMX软件、HAL库、标准外设库、ST-Link等,助力开发者轻松完成开发任务。   活跃的社区生态:STM32拥有众多开源开发工具及库,例如CMSIS、
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved