CAN总线位定时和同步的研究与设计

发布者:温暖微笑最新更新时间:2015-10-19 来源: eefocus关键字:CAN总线  位定时  同步 手机看文章 扫描二维码
随时随地手机看文章
控制器局域网CAN是一种用于连接汽车和工业场合中电子控制模块、传感器和执行器的串行、多主通信规范。由于CAN总线具有很强的纠错能力、支持差分收发、传输距离远等特点,因此CAN总线用途非常广泛,现已成为工业数据通信领域的主流技术、基础技术,目前比较流行的TTCan,DeviceNet,CANopen,SAE J1939等规范均是以CAN为基础的,因此对CAN总线的深入研究是十分必要的。在CAN规范中,位定时和同步机制是既重要又难于理解的环节之一,它不仅关系到对波特率、总线长度等相关内容的理解,甚至对节点开发的成功与否产生直接的影响。然而,目前相关文献均缺乏针对CAN总线位定时和同步机制的详细分析和探讨。在此以CAN技术规范为基础,深入分析CAN总线的位定时和同步机制,给出硬同步和重同步的定义,并给出相应的图解解释方式,对位时间的组成与结构、同步的发生时刻、同步是如何进行的等关键内容给出了明确而又具体的分析。这里的工作对理解位定时和同步机制的本质、指导位时间参数的设置均具有较高的参考价值。

1 位定时
1.1 位时间的组成

位时间(位周期)tB即1位的持续时间。正常位时间tNBT是正常位速率fNBT(在非重同步的情况下,借助理想发送器每秒发送的位数)的倒数,即tNBT=1/fNBT。正常位时间可划分为几个互不重叠的时间段,这些时间段包括:同步段(SYNC-SEG)、传播时间段(PROP-SEG)、相位缓冲器段1(PHASE-SEG1)、相位缓冲器段2(PHASE-SEG2)。每个时间段由整数个被称为时间份额tQ的基本时间单位组成。tQ是由振荡器周期tCLK派生出的一个固定时间单元。一个时间份额的持续时间通常便是CAN的一个系统时钟周期tSCL。tSCL可通过可编程的预引比例因子进行调整。每个位时间必须由8~25个时间份额组成。位时间的组成如图1所示。

位时间的各个时间段均有其特定的用途:

(1)同步段用于使总线上的各个节点同步,要求有1个跳变沿位于此段内,该段长度为1个时间份额;

(2)传播时间段用于补偿网络内的物理延时,它是信号在总线上传播时间、输入比较器延时和输出驱动器延时之和的2倍,该段长度为1~8个时间份额;

(3)相位缓冲器段1和相位缓冲器段2用于补偿沿的相位误差,通过重同步,相位缓冲器段1可被延长或相位缓冲器段2可被缩短。

这些时间段的长度均是可编程的。在常用的通信控制器(SJA1000)或PAC82C200中,合并传播时间段和相位缓冲器段1,称为时间段1(TSEGl),相位缓冲器段2称为时间段2(TSEG2),如图1所示。

采样点是这样一个时刻:在此时刻上,总线电平被读取并被理解为其自身的数值。它位于相位缓冲器段1的终点。在重同步期间,采样点的位置被移动整数个时间份额,该时间份额被允许的最大值称为重同步跳转宽度(SJW),它可被编程为1~4个时间份额。值得注意的是,重同步跳转宽度并不是位时间的组成部分。
1.2 位定时的作用

位定时是由节点自身完成的(可编程),节点进行位定时的作用为:

(1)确定位时间,以便确定波特率(位速率),从而确定总线的网络速度;或在给定总线的网络速度的情况下确定位时间;

(2)确定1位的各个组成部分——同步段、传播时间段、相位缓冲器段1和相位缓冲器段2的时间长度,其中同步段用于硬同步,位于相位缓冲器段1终点的采样点用于保证正确地读取总线电平;

(3)确定重同步跳转宽度以用于重同步。
2 CAN总线同步机制分析

CAN规范定义了自己独有的同步方式:硬同步和重同步。同步与位定时密切相关。同步是由节点自身完成的,节点将检测到来自总线的沿与其自身的位定时相比较,并通过硬同步或重同步适配(调整)位定时。在一般情况下,引起硬同步和重同步发生的、来自总线的沿如图2所示。


    2.1 硬同步

CAN技术规范给出了硬同步和重同步的结果,但没有给出硬同步和重同步的定义。这里首先给出硬同步和重同步的定义,然后对其进行分析。所谓硬同步,就是由节点检测到的,来自总线的沿强迫节点立即确定出其内部位时间的起始位置(同步段的起始时刻)。硬同步的结果是,沿到来时刻的前一时刻(以时间份额tQ量度),即成为节点内部位时间同步段的起始时刻,并使内部位时间从同步段重新开始。这就是规范中所说的“硬同步强迫引起硬同步的沿处于重新开始的位时间同步段之内”。硬同步一般用于帧的开始,即总线上的各个节点的内部位时间的起始位置(同步段)是由来自总线的一个报文帧的帧起始的前沿决定的。同步段的时间长度为1个时间份额。如图3所示.来自总线的引起硬同步的沿在t1时刻到来,则节点检测到该沿。将t1时刻的前一时刻t0(以tQ为周期)作为内部位时间同步段的起始时刻。

2.2 重同步

所谓重同步,就是节点根据沿相位误差的大小调整其内部位时间,以使节点内部位时间与来自总线的报文位流的位时间接近或相等。作为重同步的结果,PHASE-SEG1可被延长或PHASE-SEG2可被缩短,从而使节点能够正确地接收报文。重同步一般用于帧的位流发送期间,以补偿各个节点振荡器频率的不一致。这里涉及到沿相位误差的概念。沿相位误差由沿相对于节点内部位时间同步段的位置给定,以时间份额量度,沿相位误差的符号为e,其定义如下:

(1)若沿处于SYNC~SEG之内,则e=0;

(2)若沿处于采样点之前(TSEG1内),则e>0;

(3)若沿处于前一位的采样点之后(TSEG2内),则e<0。

CAN技术规范中也给出了重同步跳转宽度,重同步策略与同步规则,但比较抽象、不易理解。为深入理解节点是如何进行重同步的,图4给出了重同步的图解。在图4中,SY,PR,PS1和PS2分别表示同步段、传播段、相位缓冲段1和相位缓冲段2。假定总线位流的第一位(帧起始,为“0”)起始于t1时刻、终止于t2时刻,总线位流的第2位为“1”;从第2位开始,总线位流的“隐性”(“1”)至“显性”(“0”)和“显性”(“0”)至“隐性”(“1”)的跳变沿均用于重同步。在t1时刻,节点检测到总线的跳变沿,便进行硬同步,使t1时刻的跳变沿处于节点内部第1位位时间的同步段内。节点从第1位的同步段开始启动内部位定时,即根据系统要求的波特率给出内部位时间。现假定由于各节点振荡器频率的不一致,在t2时刻的跳变沿未处于节点第2位位时间的同步段SY内,而是处于PS1内,即有e>0。这表明节点内部的位时间小于总线位流的位时间。为了使节点能从总线上通过采样得到正确的位数值,需使节点内部的位时间延长,以使节点内部位时间与总线位流位时间接近或相等。因此,在这种情况下节点应采取的重同步策略为:使PS1延长一定宽度(图4中PS1延长2个时间份额,即同步跳转宽度为大于等于2个时间份额,如为3个时间份额)。e<0的情况与之类似,只是PS2会相应地缩短一定宽度。这与CAN技术规范中的重同步策略是一致的。[page]

这里需要注意的是,相位缓冲段只在当前的位时间内被延长或缩短,在接下来的位时间内,只要没有重同步,各时间段将恢复编程预设值。
3 控制器中位定时参数设置的一般方法

在典型的独立CAN控制器(SJA1000或PCA82C200)中,负责位定时的寄存器为总线定时寄存器0(BTR0)和总线定时寄存器1(BTR1),其结构如图5所示。

寄存器中有关参数的计算公式如下:

这些参数的范围在CAN中有较严格的规定,具体如表1所示。

在有些情况中.为了优化网络性能,这些参数的设置往往需要考虑传输延迟、时钟偏频等因素。然而,对于一般的开发或工程实际,完全可以根据经验对其进行计算和设置。这里以一个时钟频率为20 MHz、通信波特率为250 Kb/s(位时间为4μs)的系统为例,介绍与位定位有关的各参数的计算方法和步骤。

(1)  确定时间份额。

由表1可知,在1个位周期中时间份额的数量必须是8~25之间的


    

(3)确定同步跳转宽度和采样次数。

为完成位定时参数的设置,最后还要确定同步跳转宽度和采样次数。同步跳转宽度的一般设置原则是在允许的范围内应尽可能的大一些,这样更有利于在重同步时对沿相位误差的补偿,在这里可将该参数设置为3。采样次数的设置比较容易和直接,对于高速总线,建议将SAM置为“0”,此时总线被采样1次;而对于低/中速总线,建议将SAM置为“1”,此时总线被采样3次。250 Kb/s属于高速总线,所以在这里SAM应置为0。通过以上方法和步骤所确定的各参数值,再结合式(2)、式(3)、式(5)、式(6)可直接得出寄存器BTR0和BTR1的设置值。
4 结 语

(1)结合图解的方式对CAN总线位定时、硬同步和重同步等关键技术的深入探讨和分析,反映了CAN总线位定时和同步机制的本质、清晰地表明了它们在CAN技术规范中的地位与作用。

(2)在CAN总线中,通信波特率(位时间)、每个位时间的采样位置及个数、同步跳转宽度等都可以自行设定。然而,位定时参数如果设置不当就会检测到错误并进行错误处理,导致总线性能下降甚至无法工作。因此要分析、解决这样的问题就需要对CAN总线位定时和同步机制有较深入的理解,从而保证正确地设置位定时参数。

(3)这里所研究的内容,是深入理解和学习CAN总线技术的前提和保证,也是进行后续开发和研究的基础和关键。

关键字:CAN总线  位定时  同步 引用地址:CAN总线位定时和同步的研究与设计

上一篇:“什么是485总线制”及“关于485网络“布线”的疑难问答”
下一篇:比较流行的几种内部总线技术

推荐阅读最新更新时间:2024-05-03 00:02

AVR单片机(学习ing)—(十)、ATMEGA16的同步串行接口SPI—02
1)那就是在之前的介绍中说过,在说一遍~~ 主机和从机的两个移位寄存器可以被认为是一个公开的16位环形移位寄存器,当数据从主机移向从机时,同时从机饿数据也向相反的放向移向主机。这就意味着在一个以为周期内,主机和从机的数据进行了交换。(不过这个例子里没有用到这个,下个会用到~~呵呵~~),早知道对谁都好~~ 2)配置为SPI主机时,SPI接口不自动控制SS引脚,必须由用户软件来处理。还有配置为从机时,只要SS引脚为高,SPI接口将一直保持睡眠状态,并保持MISO为三态。(这个章节的第一篇文章有详细的介绍~~自己可以看看~~) 3)SPI系统的发送方向只有一个缓冲器,而接收方向有两个缓冲器。也就是说,在发送时一定要等到移位过程全部结束
[单片机]
AVR单片机(学习ing)—(十)、ATMEGA16的<font color='red'>同步</font>串行接口SPI—02
2019年DRAM投资与产出同步放缓
根据TrendForce内存储存研究(DRAMeXchange)最新调查,2018年第四季DRAM合约价格较前一季大幅修正约10%后,2019年由于PC、服务器与智能型手机等终端产品需求疲软, 因此DRAM主要供货商纷纷放缓新增产能的脚步,以期减缓价格跌势。 DRAMeXchange指出,与实际位生产量最相关的指针为各供货商的资本支出计划,而2019年DRAM产业用于生产的资本支出总金额约为180亿美元,年减约10%,为近年来最保守的投资水位。 其中,两家韩系厂商最先宣布将放缓2019年投资计划。 市占最大的三星半导体2019年DRAM投资总金额约在80亿美元,主要用在先进制程(1Ynm)的持续转进以及新产品的开发。 投片
[手机便携]
2019年DRAM投资与<font color='red'>位</font>产出<font color='red'>同步</font>放缓
技术文章—通过实时网络实现多轴运动控制的同步
摘要 实时确定性以太网协议(例如EtherCAT)已经能够支持多轴运动控制系统的同步运行。1 该同步包含两方面含义。首先,各个控制节点之间的命令和指令的传递必须与一个公共时钟同步;其次,控制算法和反馈函数的执行必须与同一个时钟同步。第一种同步很好理解,它是网络控制器的固有部分。然而,第二种同步到目前为止一直为人所忽视,如今成为运动控制性能的瓶颈。 本文介绍从网络控制器到电机终端和传感器全程保持电机驱动同步的新概念。所提出的技术能够大幅改善同步,从而显著提高控制性能。 问题陈述和现有技术 为了解释现有解决方案的局限性,考虑一个两轴网络运动控制系统,如图1所示。运动控制主机通过实时网络向两个伺服控制器发送命令和指令值,
[电源管理]
技术文章—通过实时网络实现多轴运动控制的<font color='red'>同步</font>
CAN总线与RS
1  CAN总线及RS-485总线简介  CAN总线(Controller Area Network)是由德国Bosch公司于20世纪80年代专门为汽车电子控制系统开发的一种串行数据通讯协议,特别适合应用于分布式控制或实时控制领域。它的应用范围遍及高速网络和低本钱的分布式控制系统。CAN具有以下特点: (1) 无破坏的依据优先权的仲裁; (2) 多主站点依据优先级进行总线访问; (3) 严格的错误检测和界定; (4) 支持远程数据请求; (5) 借助接收滤波的多地址帧传送; (6) 通讯介质多样,组合方式灵活; (7) 全系统数据兼容,系统灵活; (8) 最远传输间隔为10Km(总线传输速率为5kbp
[嵌入式]
基于CAN总线的RS-232串口设备远程通信
摘要:阐述了CAN总线在232串口设备远程通信或自组网络中的应用,介绍了CAN到RS-232转换装置的软硬件设计方法。重点对软件设计中CAN波特率的设置、串口波特率的自动检测以及数据流控制等作为详细的叙述。 关键词:CAN 波特率 流控制 1 引言 工业设备通信通常涉及到很多硬件和软件产品以及用于连通标准计算机平台(个人计算机或工作站)和工业自动化应用设备的协议,而且所使用设备和协议的种类繁多。因此,大部分自动化应用设备都希望执行简单的串行命令,并希望这些命令同个人计算机或者附加的串行端口板上的标准串行端口兼容。RS-232是目前PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中增加通讯距
[工业控制]
基于DSP和FPGA的磁浮列车同步485通信方式
在高速磁浮交通系统中,车载测速定位单元对车辆的位置和速度进行实时测量,并将位置和速度信号通过无线电系统传送至地面上的牵引控制系统和运行控制系统,以用于长定子直线同步电机牵引的反馈控制,以及车辆运行的指挥和安全防护。测速定位单元是牵引和运控系统闭环控制的核心与关键。 测速定位单元紧邻悬浮电磁铁及长定子绕组和铁心,处于悬浮磁场和牵引磁场中,电磁环境非常复杂,这对其通信设备的电磁兼容性能提出了很高的要求。另外,为满足牵引控制系统的需求,测速定位信号的精度要求相当高。因此,测速定位信号传输的速度、实时性及可靠性都面临挑战。基于以上考虑,本文提出了基于DSP和FPGA的磁浮列车同步485通信方式的研究,以解决上述挑战。 同步485的实现
[工业控制]
CAN总线在汽车领域的应用及挑战
  一、概述   伴随着汽车电子科技的飞速发展,车载电子装置日益增多,由此带来的汽车信息流处理的重要性愈发凸显。在此大背景下,控制器局域网(CAN)总线技术应运而生,已然成为汽车领域不可或缺的组成元素。本篇文章将聚焦于探析CAN总线在汽车产业的实际运用以及所存在的相关问题。   二、CAN总线简述   作为一种串行通讯协议,CAN总线初期专为汽车电子设备间的通信而开发。借助其高度可靠、实时响应及灵活应用等特质,该总线在汽车市场获得广泛使用。借助于CAN总线,我们得以将众多电子控制单元(ECU)相连,从而实现车辆的分布式控制和信息资源共享。   三、CAN总线在汽车业的应用范围   1. 发动机控制:借助CAN总线,我们能对发动
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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