CAN帧
15.2.1 CAN的基本概念
(1)报文(Messages)
总线上传输的信息即为报文,它们以若干个不同的固定格局发送,但长度受限。当总线空闲时,总线上任何单元均可发送新报文。
(2)信息路由(Information Routing)
在CAN体系中,CAN不对单元分配站地址,报文的寻址内容由报文的标识符指定。标识符不指出报文的目的地,可是这个数据的特定意义使得总线上一切单元能够经过报文滤波来判别该数据是否与它们相符合。
(3)位速率(Bit Rate)
即总线的传输速率。在一个给定的CAN体系中,位速率是仅有的,也是固定的。
(4)优先权(Priorities)
在总线拜访期间,标识符界说一个静态的报文优先权。
5)长途数据恳求(Remote Data Request)
当总线上某单元需求恳求另一单元发送数据时,可经过发送长途帧完成长途数据恳求。
(6)多主机(Multimaster)
总线空闲时,总线上任何单元都能够开端向总线上传送报文,但只要最高优先权报文的单元可获得总线拜访权。
(7)裁定(Arbitration)
总线空闲时,若一起有两个或两个以上单元开端发送报文,总线拜访抵触运用逐位裁定规矩,凭借标识符ID处理。
(8)过错标定和恢复时刻(Error Signaling and Recovery Time)
任何检测到过错的单元会标志出已被损坏的报文。此报文会失效并将自动重传。假如不再呈现过错,则从检测到过错到下一报文的传送开端停止,恢复时刻最多为31位的时刻。
(9)毛病界定(Fault Confinement)
CAN单元能够把永久毛病和时刻短的搅扰差异开来。
(10)衔接(Connection)
CAN通讯链路是一条可衔接多单元的总线。理论上,总线上单元数目是无限制的,实际上,单元数受限于延迟时刻和总线的电气负载才能。
(11)单通道(Single Channel)
CAN总线由单一通道组成,凭借数据重同步完成信息传输。(12)总线数据表明(Bus Values)
CAN总线上有两种互补逻辑数值:显性(Dominant)电平缓隐性(Recessive)电平。若显性位与隐性位一起发送,总线上数值将是显性。
(13)应对(Acknowledgment)
一切接收器对接收到的报文进行共同性查看。关于共同的报文,接收器给予应对;关于不共同的报文,接收器做出标志。
15.2.2 CAN总线的位数值表明与通讯间隔
CAN总线上用显性(Dominant)和隐性(Recessive)两个互补的逻辑值表明0和1。当在总线上呈现一起发送显性位和隐性位时,总线上数值将呈现显性。
15.2.3 报文传输和帧结构
报文传输由以下4个不同的帧类型表明和操控:
数据帧:数据帧将数据从发送器传输到接收器。
长途帧:总线单元宣布长途帧,恳求发送具有同一标识符的数据帧。
过错帧:任何单元检测到总线过错就宣布过错帧。
过载帧:过载帧用于在先行和后续数据帧(或长途帧)之间供给一附加的延时。
数据帧和长途帧能够运用规范帧及扩展帧两种格局。它们用一个帧间空间与前面的帧分隔。
(1)数据帧
数据帧由7个不同的位场组成:帧开始、裁定场、操控场、数据场、CRC 场、应对场、帧结束。数据帧组成如下图。
(2)长途帧
长途帧也有规范格局和扩展格局,并且都由6 个不同的位场组成:帧开始、裁定场、操控场、CRC 场、应对场、帧结束。长途帧的组成如下图。
(3)犯错帧
过错帧由两个不同的场组成。第一个场是由不同站供给的过错标志(ERROR FLAG)的叠加;第二个场是过错界定符。犯错帧的组成如下图。
(4)过载帧
过载帧包含两个位场:过载标志和过载界定符。过载帧的组成如下图。
15.2.4 过错处理
1)过错检测( 5种不同的过错类型)
位过错:单元在发送位的一起也对总线进行监督。假如所发送的位值与所监督的位值不相同,则在位时刻里检测到一个位过错。
填充过错:假如在运用位填充法进行编码的信息中,呈现了6个接连相同的电平常,将检测到一个填充过错。
CRC过错:CRC序列包含发送器的CRC核算成果。假如核算成果与接收到的CRC序列的成果不相符,则检测到一个CRC过错。
方式过错:当一个固定的位场含有1个或多个不合法位,则检测到一个方式过错。
应对过错:只要在应对空隙期间所监督的位不为显性,则发送器会检测到一个应对过错。
2)过错标定
检测到过错条件的站经过发送过错标志指示过错。关于“过错自动”的节点,过错信息为“自动过错标志”,关于“过错被迫”的节点,过错信息为“被迫过错标志”。
15.2.5 毛病界定
至于毛病界定,单元的状况可能为下列三种之一:过错自动、过错被迫、总线封闭。
过错自动的单元能够正常地参加总线通讯并在检测到过错时宣布自动过错标志。
过错被迫的单元不允许发送自动过错标志。过错被迫的单元参加总线通讯,在过错被检测届时只发送被迫过错标志。并且,发送今后,过错被迫单元将在初始化下一个发送之前处于等候状况。
总线封闭的单元不允许在总线上有任何的影响。
15.2.6 位守时与同步
位守时与同步界说CAN总线的通讯速率,相关名词有:
标称位速率(Nominal Bit Rate):一抱负的发送器在没有从头同步的情况下每秒发送的位数量。
标称位时刻(Nominal Bit Time):1/标称位速率。标称位时刻可分红几个不堆叠的片段,分别是:同步段(SYNC_SEG)、传达段(PROG_SEG)、相位
缓冲段1(PHASE_SEG1)、相位缓冲段2(PHASE_SEG2)。
同步段(SYNC_SEG):用于同步总线上不同的节点,这一段内要有一个跳变沿。
传达段(PROG_SEG):用于补偿网络内的物理延时时刻。它是总线上输入比较器延时和输出驱动器延时总和的2倍。
相位缓冲段1(PHASE_SEG1)、相位缓冲段2(PHASE_SEG2):用于补偿边缘阶段的差错。这两个段能够经过从头同步加长或缩短。
采样点(Sample Point):读总线电平并解说各位的值的一个时刻点。采样点坐落相位缓冲段1之后。
信息处理时刻(Information Processing Time):信息处理时刻是以一个采样点作为开始的时刻段。采样点用于核算后续位的位电平。
时刻比例(Time Quanta):时刻比例是派生于振荡器周期的固守时刻单元。存在一个可编程的预比例因子,将全体数值规模为1-32的整数,以最小时刻比例为起点,时刻比例的长度为:
时刻比例=m * 最小时刻比例,其间,m为预比例因子
时刻段长度(Length of Segments):同步段为1个时刻比例,传达段的长度可设置成1、2…8个时刻比例,相位缓冲段1的长度可设置成1、2…8个时刻比例,相位缓冲段2的长度为相位缓冲段1和信息处理时刻之间的最大值,信息处理时刻少于或等于2个时刻比例。
一个位时刻总的时刻比例值能够设置在8~25的规模。