首页 » 通讯 » 单片机外围模块座谈之三CAN总线_暗记_节点

单片机外围模块座谈之三CAN总线_暗记_节点

南宫静远 2024-12-07 13:03:25 0

扫一扫用手机浏览

文章目录 [+]

1. CAN总线特点

1.1 多主掌握

单片机外围模块座谈之三CAN总线_暗记_节点 通讯

跟我们常用的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.2 EMC防护

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总线非常可靠,不易出错,以是在测试阶段建议人为制造一些总线缺点,比如短路,断路,强滋扰之类,见地式是否能从非常状态下规复。

标签:

相关文章

CT领域IT技术的革新与未来展望

随着科技的不断发展,医学影像技术也在日新月异。CT(计算机断层扫描)作为医学影像领域的重要工具,其与IT技术的融合已成为推动医疗行...

通讯 2024-12-31 阅读0 评论0

C算法DLL在软件开发中的应用与价值

随着计算机技术的不断发展,软件开发领域日益呈现出多元化的趋势。在众多编程语言中,C语言因其高效、简洁、可移植性强等特点,被广泛应用...

通讯 2024-12-31 阅读0 评论0

DLL9新号,探索人工智能时代的无限可能

随着科技的飞速发展,人工智能已经逐渐渗透到我们生活的方方面面。DLL9新号,作为一款全新的人工智能产品,备受关注。本文将从DLL9...

通讯 2024-12-31 阅读0 评论0