请问can总线的组成有哪些接头都有什么样式的呢

  • 不错的can总线的组成有哪些入门资料

  • CAN 总线(Controller Area Network)是控制器局域网的简称是 20 世纪 80 年代初德国 BOSCH 公司为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数據通信协议。目前CAN 总线已经被列入 ISO 国际标准,称为 ISO11898CAN 总线已经成为工业数据通信的主流技术之一。CAN 总线作为数字式串行通信技术与其怹同类技术相比,在可靠性、实时性和灵活性方面具有独特的技术优势主要特点如下:? CAN 总线是一种多主总线,总线上任意节点可在任意时刻主动地向网络上其他节点发送信息而不分主次因此可在各节点之 ...

  • 现在的汽车已经不再仅仅是一种死气沉沉的交通工具了。计算机嘚发明也让汽车有了一个职能的心。跟中嵌入式的计算机核心应用到汽车当中那么如何规范这个核心的工作呢?这就需要can总线的组成囿哪些协议来帮忙了现在让我们来了解一下这方面的知识吧。1,can总线的组成有哪些协议基本概念:(1),报文:总线上的信息以不同格式的报文发送,泹长度有限当总线开放时,任何连接的单元均可开始发送一个新报文。(2),信息路由:在CAN系统中,一个CAN节点不使用有关系统结构的任何信息,这里包含一些重要的概念:系统灵活性——节点可以在不要求所有节点及其应用层改变任何软件

  • 围绕“汽车can总线的组成有哪些技术到底是怎么一回倳汽车总线的发展趋势。汽车为什么选择了can总线的组成有哪些技术采用汽车can总线的组成有哪些技术有哪些优点?”等问题作了一个浅短的介绍:1.汽车CAN总路线技术到底是怎么一回事?Can-Bus总线技术是“控制器局域网总线技术(Controller Area Network-BUS)”的简称它具有极强的抗干扰和纠错能力,最早被用于飞机、坦克等武器电子系统的通讯联络上通过遍布车身的传感器,汽车的各种行驶数据会被发送到“总线”上这些数据不会指萣唯一的接收者,凡是需要这些数据的接收端都可以从“总线”上读取需要的信息can总线的组成有哪些的 ...

  • 在这信息爆炸的年代,学习一样噺的知识尤其是IT技术的学习,网络是必不可少的一阵狂搜过后,发现基于can总线的组成有哪些的介绍确实不少但是大多好像都雷同了,也许是不断转贴的结果吧而且这些知识点也都太零散了,让人看了尤其是初学者有点找不着北的感觉。所以本着谦虚好学脚踏实哋的菜鸟精神,决定把网上搜的书上看的,再添油加醋的做一番比较系统的整理算是为学习can总线的组成有哪些理清思路,快速上手打基础吧 一、什么是can总线的组成有哪些? CAN全称为“Controller Area Network”,即控制器局域网是国际上应用最广泛的现场总线之一。最初CA ...

  • 参照 ISO/OSI 标准模型,CAN 總线的通信参考模型如图 9-1 所示这 4 层结构的功能如下:? 物理层规定了节点的全部电气特性,在一个网络里要实现不同节点间的数据传輸,所有节点的物理层必须是相同的? 传输层描述了 CAN 总线协议的内核,它负责位时序(bit timing)、同步、仲裁、应答、错误探测等? 对象层負责报文的过滤、状态和控制。? 应用层完成用户指定的数据传输任务CAN 总线的物理层为数据通信提供了物理连接,而实际的数据通信在其他 3 层中完成 ...

  • 由于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总线的组成有哪些基礎知识的续主要介绍CAN协议相关的内容

表 帧类型和每种类型帧的作用

通讯时使用下面5个类型的帧:数据帧    遥控帧    错误帧    过载帧    帧间空隙,茬所有这些帧中数据帧和遥控帧由用户设置,而其它帧则由CAN硬件设置

数据和遥控帧有两种格式:标准和扩展格式。标准格式有11bit的ID而擴展格式则是29bit的ID。

 如上为每种帧类型的结构

数据帧由发送单元使用用来发送信息给接收单元,这是用户操作的基本帧

数据帧有7个域组荿。图15显示了数据帧的结构

(1)帧开始(SOF):这个域表示数据帧的开始。

(2)仲裁域:这个域表示一个帧的优先级

(3)控制域:这个域表示保留位和数据字节数

(4)数据域:这是数据内容0-8个字节的数据能被发送

(5)CRC域:这个域用于检查帧的传输错误。

(6)ACK域:是对帧已經被正常接收的一个证实

(7)帧结束:指示数据帧结束

对标准的或扩展的格式都是一样的。它指示一帧的开始由1bit的显性位组成。

    总线仩的电平有显性电平和隐性电平两种

    总线上执行逻辑上的线“与”时,显性电平的逻辑值为“0”隐性电平为“1”。

    “显性”具有“优先”的意味只要有一个单元输出显性电平,总线上即为显性电平并且,“隐性”具有“包容”的意味只有所有的单元都输出隐性电岼,总线上才为隐性电平(显性电平比隐性电平更强)

这个域表示数据的优先级别。这个域的结构对标准和扩展的格式是有差别的。

    茬任何情况下总线上不可能有多个设备在同一时刻使用同一个ID传输数据帧。

占6个bit指示要传输信息的数据字节数,这个域的结构对标准和扩展的格式是有差别的。如图18所示

    注1:保留位(r0r1),保留位必须以显性电平传送然而,在接收侧可以接收显性、隐性集任意组合嘚电平

    注2:数据长度码(DLC),数据长度码与数据的字节对应关系见表7所示数据的字节数必须是0-8个字节,但接收方对DLC=9-15的情况并不视为错誤

对标准的或扩展的格式都是一样的。这个域是传输的数据可以是0到8个字节,字节数载控制域中指明数据输出开始于MSB。如图19所示:

對标准的或扩展的格式都是一样的这个域用来检查帧是否有传输错误,它由15bit CRC码和一个bitCRC定界符(delimiter)(separating bit分隔bit)

    CRC的产生方法是采用下面的多项式:CRC的计算范围是SOF、仲裁域、控制域、数据域。在接收侧会对接收到的数据帧的这些域进行CRC计算,如果计算结果与收到的CRC不一致则表明存在传输错误。

是对一帧已被正常接收的一个确认信号由2个bit组成,一个是ACK的slot一个是ACK的定界符(delimiter),如图21所示:

    注2:接收单元的ACK域正确接收到信息的接收单元在接收帧的ACK slot里发送一个显性bit,以通知发送单元其已经正确接收完毕这又称“sending ACK”或“returning ACK”。

    所有接收单元只要鈈是处于bus-off或休眠状态只有正确接收信息的单元才能发送ACK。发送单元并不发送ACK如果总线上除了发送单元,没有其它单元能接收信息则No ACK被返回。为了通讯的建立除了发送单元外,至少需要有一个单元能够接收信息如果总线上有2个或更多个单元能接收到信息,如果它们Φ任意一个正常接收到信息则会有ACK被返回。

指示一帧结束由7个隐性位组成。如图22

    遥控帧是接收单元请求发送单元发送一个信息遥控幀有6个域组成。如图23显示的那样除了没有数据域外其它与数据帧的结构是一样的。

(1) 帧开始(SOF):这个域表示数据帧的开始

(2) 竞争域:这個域表示数据的优先级,具有同样ID的数据帧被请求

(3) 控制域:这个域表示保留位和数据字节数

(4) CRC域:这个域用于检查帧的传输错误。

(5) ACK域:是對帧已经被正常接收的一个证实

(6) 帧结束:指示遥控帧的结束

  • 数据帧和遥控帧之间的不同
  1. 遥控帧没有数据域,在仲裁域里的RTR位是隐性电平而数据帧RTR则为显性的。
  2. 没有数据的数据帧与遥控帧可以通过RTR为来区分
  • 遥控帧没有数据域其数据长度码用来干什么?
  1. 遥控帧的数据长度碼的值表示对应请求的数据帧的数据长度码
  • 没有数据域的数据帧用来干什么?
  1. 例如数据帧可以被各单元用来作为周期连接确认/应答,戓者仲裁域本身带有实质性信息

    注1:错误标志重叠:取决于连接到总线上的各单元检测出错误的时间,错误标志可能一个重叠在另一个仩总共可达12bit长度。

    注2:主动错误标志:处于主动错误状态的单元检测出错误时输出的错误标志

    注3:被动错误标志:处于被动错误状态嘚单元检测出错误时输出的错误标志。

    这个帧用来通知在传输期间发生了一个错误错误帧由一个错误标志和一个错误定界符组成,错误幀由CAN的硬件来发送图24显示了错误帧的结构。

    这个帧被接收单元用来通知还没有准备好接收帧它由一个过载标志和一个过载定界符组成。图25显示了错误帧的结构

    (1) 过载标志:由6个显性位组成,过载标志与错误帧的主动错误标志具有相同的结构

    (2) 过载定界符:由8个隐性位组荿,过载定界符与错误帧的错误定界符具有相同的结构

    注1:错误标志重叠:向错误标志一样,取决于时间过载标志可能一个重叠在另┅个上,总共可达12bit长度

    这个帧用来隔开数据帧和遥控帧。数据和遥控帧可通过插入帧间间隔与前面传输的任何帧(数据帧、遥控帧、错誤帧、过载帧)分开

过载帧和错误帧前不能插入帧间间隔。如图26所示

(1)间隔:由3个隐性位组成。在间隔期间如果检测到显性电平則必须发送过载帧,然而如果间隔的第3bit是显性电平,间隔被认为是SOF

(2)总线空闲:是隐性电平长度没有限制(它可以是0bit长)。当总线處于这种状态的时候总线被认为是自由空闲的,任何单元都可以启动发送信息

(3)暂停传输(传输暂停期):有8个隐性位组成。只在處于被动错误状态的单元刚发送一个消息后的帧间隔中包含的段

    在总线空闲状态,最先开始发送消息的单元获得发送权

    多个单元同时開始发送时,各发送单元从仲裁域的第一位开始进行仲裁连续输出显性电平最多的单元可继续发送。丢失竞争的单元在下一bit进入接收操莋

    具有相同 ID 的数据帧和遥控帧在总线上竞争时,仲裁段的最后一位(RTR)为显性位的数据帧具有优先权可继续发送。

    数据帧和遥控帧的仲裁过程如图28所示

(2)标准格式和扩展格式的优先级

    标准格式 ID 与具有相同ID 的遥控帧或者扩展格式的数据帧在总线上竞争时,标准格式的RTR 位为顯性位的具有优先权可继续发送。

    标准格式和扩展格式的仲裁过程如图29所示

    位填充是一种周期性重同步收/发操作的功能,为了防止接收节点间时序由于累积而导致的错误如果5个bit持续了同样的电平,则添加1个bit的反向数据位

    在发送数据帧和遥控帧的时候,SOF-CRC段间的数据楿同电平如果持续5bit,在下一bit(第6bit)则要插入1bit与前5bit反向的电平

    在接收数据帧和遥控帧的时候,SOF-CRC段间的数据相同电平如果持续5bit,需要删除丅一bit(第6bit)再接收如果这第6bit的电平与前5bit相同,则被视为错误且发送错误帧。

    有5种类型的错误可能有2个或更多的错误同时发生:

    表8列絀了这些错误的种类、内容、错误检测帧和检测单元。

  • 位错误由向总线上输出数据帧、遥控帧、错误帧、过载帧的单元和输出ACK的单元、输絀错误的单元来检测
  • 在仲裁段输出隐性电平,但检测出显性电平时将被视为仲裁失利,而不是位错误
  • 在仲裁段作为填充位输出隐性電平时,但检测出显性电平时将不视为位错误,而是填充错误
  • 发送单元在ACK 段输出隐性电平,但检测到显性电平时将被判断为其它单え的ACK 应答,而非位错误
  • 输出被动错误标志(6 个位隐性位)但检测出显性电平时,将遵从错误标志的结束条件等待检测出连续相同6 个位嘚值(显性或隐性),并不视为位错误
  • 即使接收单元检测出EOF(7 个位的隐性位)的最后一位(第8 个位)为显性电平,也不视为格式错误
  • 即使接收单元检测出数据长度码(DLC)中9?15 的值时,也不视为格式错误

    检测到发生错误的单元输出一个错误标志,以通知其它单元

    处于主动错误状态的单元输出的错误标志为主动错误标志;处于被动错误状态的单元输出的错误标志为被动错误标志。

    发送单元发送完错误帧の后将再次发送数据帧或遥控帧。

    在没有重新同步情况下发送单元每秒传输的位数称之为位速率。1位由下面4个段组成

  • 相位缓冲段1(PBS1)
  • 相位缓冲段2(PBS2)

    1位分为4个段,每个段由若干个Tq构成这称为位时序。

    1位由多少个Tq构成、每个段由多少个Tq构成等是可以设定的通过设置bit時序。使得可以设定一个采样点以使总线上多个单元可同时采样所谓采样点就是在这一时刻总线上的电平被锁存,这个锁存的电平作为位的值采样点的位置在PBS1的结束处。

多个连接在总线上的单元通过此段实现时序的定时调整以便同步进行接收和发送的工作。

隐性电平箌显性电平或显性电平到隐性电平变化的边沿被期望出现在本段

用于吸收网络上的物理延迟的段。包括发送单元的输出延迟、总线上信號的传播延迟、接收单元的输入延迟

这个段的时间是以上延迟时间累加和的两倍。

相位缓冲段1(PBS1)

当信号边沿不能出现在SS 段时此段用來矫正误差。

由于各单元以各自独立的时钟来工作细微的时钟误差都会累积起来,PBS 段可用于吸收此误差

为了吸收一个时钟误差,在SJW设置的范围内增减PBS1和PBS2PBS1和PBS2越大,允许误差越大但是通讯速度会降低。

相位缓冲段2(PBS2)

PBS1或IPT中较大者(见注1和2)

重新同步跳转宽度(SJW)

因时钟頻率偏差、传送延迟等原因某些单元可能会失去同步。SJW是所能校正的最大失去同步的宽度

    注1:IPT代表信息处理时间,是以采样点作为起始的时间段用于计算后续位的位电平。这是硬件在一个采样点后立刻改变位的电平所必须要的这个时间等于或小于2Tq,

    注3:重新同步嘚结果使相位缓冲段1增长,或使相位缓冲段2 缩短相位缓冲段加长或缩短的数量有一个上限,此上限由SJW(重新同步跳转宽度)给定重新哃步跳转宽度应设置于1和最小值之间(此最小值为4*PBS1)。

    可以从一位值转换到另一位值的过渡过程得到时钟信息这里有一个属性,即:只囿后续位的一固定最大数值才具有相同的数值这个属性使总线单元在帧期间重新同步于位流成为可能。可用于重新同步的两个过渡过程の间的最大的长度为29个位时间

    can总线的组成有哪些的通讯是采用NRZ(Non-Return to Zero,非归0)码数据本身并不携带时钟信息,也即在每一位的开始或结束沒有同步信号发送单元以位时序同步的方式开始发送帧数据,接收单元根据总线电平的变化进行同步并进行接收工作

    然而,发送器和接收器之间由于彼此的时钟误差或传输路径的相位误差可能会失去同步关系因此接收单元在接收帧的时候,必须通过硬件同步或重新同步调整它的操作时序

    在总线空闲状态时,接收单元检测到SOF就会执行这个同步调整过程。“隐式”电平跳变到“显式”电平的边缘的时間点被认为是SS而不管SJW的值

  • 如果沿出现在SS里,沿的相位误差e=0;
  • 如果沿位于采集点(PBS1结束之前)之前e>0;
  • 如果沿位于采集点之后,e<0;

    在接收過程中检测到总线电平发生了改变时执行重新同步操作

    每当检测到一个边沿(总线电平的改变),收发单元根据SJW值通过增加PBS1段或减少PBS2段来调整同步。但如果发生了超出SJW值的误差时,最大调整量不能超过SJW值

    硬件同步和再同步的执行遵从如下规则:

    1) 在1个位时间里(或者說在2个采样点之间),只允许一个同步(或者说只进行一次同步调整)

    2) 只有当采样点之前的总线电平和边沿后的总线电平不同时,该边沿才能用于调整同步

    3) 如果出现隐性电平到显性电平变化的边沿,且条件(1)和(2)满足将进行同步。

    4) 如果在帧间间隙期间发生隐性电岼到显性电平的信号边沿(除了间隙里的第一位)则总会执行硬件同步。

    5) 如果发生从所有其它隐性电平到显性电平的信号边沿则执行洅同步。

    6) 如果发送单元自身输出的显性电平被检测到有延迟则不执行再同步

一数据帧由 7 个不同位场组成(幀起始、仲裁场、控制场、数据场、CRC场、应答场、帧结尾)。

这里的位场就是不同位的组合,这名字起的很烂让人看了感觉很抽象。峩们来看看这些个不同的位场吧一开始是一位帧起始,也叫SOF它用显性位表示,也就是0;它告诉我们两个线上有电压差了,也就是有數据了

这个帧起始看起来只有一位,其实不简单了为了让所有的分站都同步于发送报文的发送站,好接收数据有很多要考虑的地方。

然后下一个场是仲裁场这个仲裁很抽象,其实在这里就是为了解决一个问题如果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 位。

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

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如下表所示

数据长度代码指示了数据场里的字节数量。其中:d—“显性” r—“隐性”,數据帧允许的数据字节数为{01,...7,8}其他的数值不允许使用。

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

是数据通信领域中最常用的一种差错校验码其特征是信息字段和校验字段的长度可以任意选定。

生成 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。校验码计算过程如图所示:

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

当接收器正确地接收到有效的报文,接收器僦会在应答间隙(ACK Slot)期间向发送器发送一“显性”位以示应答

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

我要回帖

更多关于 can总线的组成有哪些 的文章

 

随机推荐