位移传感器CAN总线简明易懂教程 - 技能支持 - 金宝搏app

网站地图

联络我们

  • 金宝搏app
  • 热线:137-2888-0902
  • 贩卖直线:0755-85271862
  • 传真:0755-27083809
  • 邮箱:info@szetme.com
  • 地点:深圳市宝安区松岗街道红星社区宏海大厦8栋5楼
  • 网址:http://www.szetme.cn

188金宝搏官方网站

金宝搏app-金宝搏网址-188金宝搏官方网站

公布日期:2020-03-29 点击次数:63

任务原理


当 CAN 总线上的一个节点(站)发送数据时,它以报文的方式播送给网络中所有节点,对每个节点来说,无论数据能否是发给本人的,都对其接纳。

每组报文扫尾的11 位字符为标识符,界说了报文的优先级,这种报文款式成为面向内容的体例方案。统一条理中标识符是独一的,不行能有两个站发送具有相反标识符的报文,当几个站同时竞争总线读取时,这种设置装备摆设非常紧张。

大要的任务原理我们搞清了,但是基本的协议我们还要花一番工夫。上面介绍一个紧张的名词,显性”和“隐性”:

在我看到的许多文章里,有许多显性和隐性的中央,为此我头痛不已,终极我把它们彻底弄明确了。

起首 CAN 数据总线有两条导线,一条是黄色的,一条是绿色的------辨别是CAN_High 线和CAN_Low 线,当运动形态时,这两条导线上的电平一样,这个电平称为静电平,约莫为2.5 伏。

这个静电平形态便是隐外形态,也称隐性电平,也便是没有任何关扰的时分的状态称为隐性形态。当有信号修正时,CAN_High 线上的电压值变高了,普通来说会降低至多1V;而CAN_Low 线上的电压值会低落一个异样值,也是1v。

那么这时分,CAN_High 便是 2.5v+1v=3.5v,它就处于激活形态了。而CAN_Low 降为2.5v-1v=1.5v。可以看看这个图

CAN总线简明易懂教程——《CAN总线费尽心血教程》

由此我们失掉

在隐性形态下,CAN_High 线与CAN_Low 没有电压差,如许我们看到没有任何变革也就检测不到信号。但是在显性形态时,改值最低为2V,我们就可以利用这种变革才传输数据了。以是呈现了那些帧,那些帧中的场,那些场中的位,云云~~~~~~~~~~~

在总线上通常逻辑1 表现隐性。而0 表现显性。这些1 啊,0 啊,就可以应用起来为我们传数据了。应用这种电压差,我们可以接纳信号。

普通来说,控制单位经过收发器衔接到 CAN 驱动总线上,这个收发器(顾名思义,可发送,可接纳)内有一个接纳器,该接纳器是装置在接纳一侧的差动信号缩小器。然后,这个缩小器很天然地就缩小了CAN_High 和CAN_Low 线的电平差,然后传到接纳区。如下图

CAN总线简明易懂教程——《CAN总线费尽心血教程》

由上图可知,当有电压差,差动信号缩小器缩小传输,将相应的数据位转化为0。

上面我们进入重点难点-----报文

所谓报文,便是CAN 总线上要传输的数据报,为了平安,我们要给我们传输的数据报编码定一下协议,如许才干不容易堕落,以是呈现了许多的帧,以及仲裁啊,CRC 效验。这些都是难点。

辨认符的观点

辨认符望文生义,便是为了区分差别报文的可以辨别的很多多少字符位。有规范的,和扩展的。规范的是11 位,扩展的是29 位。他有一个功用便是可以提供优先级也便是决议哪个报文优先被传输,报文标识符的值越小,报文具有越高的优先权。

CAN 的报文款式有两种,差别之处实在便是辨认符长度差别,具有11 位辨认符的帧称为规范帧,而另有29 位辨认符的帧为扩展帧,CAN 报文有以下4 个差别的帧范例。辨别是:

(1) 数据帧:数据帧将数据从发送器传输到接纳器;

(2) 近程帧:总线节点收回近程帧,恳求发送具有统一标识符的数据帧;

(3) 错误帧:任何节点检测到总线错误就收回错误帧;

(4) 过载帧:过载帧用已在先行的后续的数据帧(或近程帧)之间提供一附加的延时。



我们先研讨数据帧吧。

一,数据帧由 7 个差别位场构成(帧肇始、仲裁场、控制场、数据场、CRC场、应对场、帧开头)。

这里的位场,便是差别位的组合,这名字起的很烂,让人看了觉得很笼统。我们来看看这些个差别的位场吧。一开端是一位帧肇始,也叫SOF。它用显性位表现,也便是0;它通知我们,两个线上有电压差了,也便是无数据了。

这个帧肇始看起来只要一位,实在不复杂了。为了让一切的分站都同步于发送报文的发送站,好接纳数据,有许多要思索的中央。

CAN总线简明易懂教程(二)


报文的数据帧构造

然后下一个场是仲裁场。这个仲裁很笼统,实在在这里便是为理解决一个题目。假如2 个或2 个以上的单位同时开端传送报文,那么就会有总线拜访抵触,那么仲裁机制便是用来依据标识符优先级来一个一个的去失低级另外数据。我们可以细致的描绘这场生动的争抢总线的战役。

当总线处于闲暇形态时呈隐性电平,此时任何节点都可以向总线发送显性电平作为帧的开端。2 个或2 个以上的节点同时发送开端争抢总线,但是总线只能被一团体抢走。这时分究竟怎样决议谁留下,谁滚开呢。我们开端思索,我们曩昔界说了标识符,标识符有优先级,它越小,它优先级越高。那么怎样完成的呢。看上面图:

起首搞明确两点,

一、下图中, 低波形代表0(显性),高波形代表1(隐性);

二、当隐性遇到显性,就变为显性。

如图所示,节点 A 和节点B 的标识符的第10、9、8 位电平相反,因而两个节点侦听到的信息和它们收回的信息相反。第7位节点B收回一个“1”,但从节点上接纳到的音讯倒是“0”。

为什么呢,由于A 节点同时收回显性位,让总线也酿成显性了,也便是0。节点B 会加入发送处于单纯监听方法而不发送数据;节点A 乐成发送仲裁位从而取得总线的控制权,继而发送全部音讯。

总线中的信号继续跟踪最初取得总线控制权收回的报文,本例中节点A的报文将被跟踪。这种非毁坏性位仲裁办法的长处在于,在网络终极确定哪个节点被传送前,报文的肇始局部曾经在网络中传输了,因而具有高优先级的节点的数据传输没有任何延时。

在取得总线控制权的节点发送数据进程中,其他节点成为报文的接纳节点,而且不会在总线再次闲暇之前发送报文,在这逐位的比拟中,终极节点B 由于第七位的偏向丢失了总线。今后单纯监听,山河就拱手让给了节点A 了。这便是仲裁机制

下面我们说过,报文有两种款式,规范和扩展。这里,差别的款式仲裁场是纷歧样的。规范款式下,仲裁场由11 位辨认符和RTR 位构成。

但在扩展款式里,包罗29 位辨认符、SRR 位、IDE 位、RTR 位。

RTR 位,Remote Tranmission Request BIT 全称为近程发送恳求位。它在数据帧里必需为显性0 ,但在近程帧里为隐性1。

我晕,为什么这么搞呢,不急,先留着这个题目。

SRR 位,替换近程恳求位,SRR 是一隐性位,也便是1,它在扩展款式的规范帧RTR 位地位,那么规范帧怪不得优先于扩展帧了,由于在传输完11 位标识符之后(扩展帧的后18 位在最初发送,先发送11 位标识符),轮到规范帧的RTR 位和扩展帧的SRR 位了。

这时分,规范帧的RTR 为显性,而扩展帧SRR 为隐性,如许,总线天然就被规范帧占据。

同时下面谁人题目,也了如指掌了,CAN 总线协议设计者,一定是设计了数据帧优先于近程帧。以是IDE(Identifier Extension Bit),全称辨认符扩展位,它属于扩展款式的仲裁场

关于扩展款式,IDE位属于仲裁场;关于规范款式,IDE位属于控制场。规范款式的IDE位为“显性”,而扩展款式的IDE

位为“隐性”。



规范款式中的数据帧

拓展款式中的数据帧

控制场

控制场由6个位构成,规范款式和扩展款式的控制场款式差别。规范款式里的帧包罗数据长度代码、IDE位(为显性位)及保存位r0。扩展款式里的帧包罗数据长度代码和两个保存位:r1和r0。其保存位必需发送为显性,但是接纳器承认“显性”和“隐性”位的任何组合。其构造如图所示:

控制场构造

数据长度代码(规范款式以及扩展款式)DLC,如下表所示



数据帧长度代码DLC

数据长度代码指示了数据场里的字节数目。此中:d—“显性”, r—“隐性”,数据帧容许的数据字节数为{0,1,...,7,8}。其他的数值不容许运用。

数据场

数据场由数据帧里的发送数据构成。它可以为0~8个字节,每字节包括了8个位,起首发送最高无效位(MSB)。

循环冗余码CRC场

是数据通讯范畴中最常用的一种过失校验码,其特性是信息字段和校验字段的长度可以恣意选定。

CRC场包罗CRC序列(CRC Sequence),厥后是CRC界定符(CRC Delimiter),构造如图:



天生 CRC 码的根本原理:

恣意一个由二进制位串构成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式逐个对应。比方:代码1010111 对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1 对应的代码101111。

参考一下上面的例题,自已再意会一下吧!已知信息位为1101,天生多项式G(x)= x3+x+1,求CRC 码。

要传输的信息序列为1101,在末端添加所给多项式的最高次阶个0,如本题为x^3,则添加3个0,变为:1101000;

由多项式G(X)=X3+X+1,得其阶数为1的二进制编码为:1011;1101000对1011停止模二除法,所失掉的余数即为校验码,把校验码添加在原数据尾部即为所求的编码,则实践发送的数据序列为1101001。校验码盘算进程如图所示:



模二除法

应对场(ACK Field)

应对场长度为2个位,包括应对间隙(ACK Slot)和应对界定符(ACK Delimiter),如图所示。在ACK场(应对场)里,发送节点发送两个“隐性”位。

当接纳器准确地接纳到无效的报文,接纳器就会在应对间隙(ACK Slot)时期向发送器发送一“显性”位以示应对。



帧开头

每一个数据帧和近程帧均由一标记序列界定。这个标记序列由7个“隐性”位构成。




在线客服
分享
版权一切:金宝搏app 存案号:粤ICP备15028716号-2 粤公网安备 44030602003587号 技能支持:星海互联
Baidu
sogou