CAN 控制器的位定时参数
CAN bit period
t SCL
SYNC_SEG
(fixed)
t
t Bit
TSEG1
(user definable)
TSEG2
(user definable)
sample point(s)
JK702201.GWM
注 tSCL 是一个时间份额 TQ 的持续时间 图 2 取得 Philips CAN 控制器使用的位周期的原理
TSEG2
LSB MSB
TSEG1
JK702202.GWMLSB图 3 位定时控制寄存器的结构
第3页共3页
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax:38730925
2.2 振荡器容差......................................................................................................................... 4 2.3 传播延迟 ............................................................................................................................ 5 2.4 同步 ................................................................................................................................... 6
对 CAN 位定时计算另一个很重要的时间段是同步跳转宽度 SJW 持续时间是 tSJW SJW 段并不是 位周期的一段 只是定义了在重同步事件中被增长或缩短的位周期的最大 TQ 数量
此外 CAN 协议还允许用户指定位采样模式 SAM 分别是单次采样和三次采样模式 在 3 个采样 结果中选出 1 个 在单次采样模式中 采样点是在 TESG1 段的末端 而三次采样模式比单次采样多取两 个采样点 它们在 TSEG1 段的末端的前面 之间相差一个 TQ 见图 1 和图 2
MSB
LSB
BTR0:
SJW.1 SJW.0 BRP.5
BRP.4 BRP.3 BRP.2 BRP.1 BRP.0
MSB
LSB MSB
SJW
LSB
BRP
BTR1:
MSB
LSB
SAM TSEG2.2 TSEG2.1 TSEG2.0 TSEG1.3 TSEG1.2 TSEG1.1 TSEG1.0
MSB
SAM
5 参考文献 ............................................................................................................... 16 附录 ............................................................................................................................ 17
4.2.1 例 1.........................................................................................................................11 4.3 计算位定时参数的步骤..................................................................................................... 13
3.2.1 规定和限制 .............................................................................................................. 8 3.2.2 确定最大的位速率.................................................................................................... 8 3.2.3 确定适当的采样点.................................................................................................... 9
文档中的讨论方法可以让 CAN 用户确定 y 系统是否适合 CAN 的位定时要求 y 优化位定时参数以符合给定的系统要求
2 CAN 位定时关系概述
2.1 定义
2.1.1 位周期的结构
本文档使用的 CAN 位定时参数定义和用于 Philips CAN 控制器 更多信息见[2] [3]和[4] 编程的参
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax:38730925
确定 SJA1000 CAN 控制器的位定时参数
目录
1 介绍 ........................................................................................................................ 2 2 CAN 位定时关系概述.............................................................................................. 2
4.3.1 例 2........................................................................................................................ 14 4.3.2 例 3........................................................................................................................ 15
t SCL
= BRP ⋅ 2t CLK
=
2BRP fCLK
(3)
第2页共2页
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax:38730925
t CLK
oscillator
CAN system clock
Baud Rate Prescaler (BRP)
4 计算位定时参数 .................................................................................................... 10
4.1 例子的规定....................................................................................................................... 10 4.2 用图表选择位定时参数......................................................................................................11
第1页共1页
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax:38730925
1 介绍
控制器局域网 CAN [1]是一个串行 异步 多主机的通讯协议 它可以连接汽车或工业应用中的电 子控制模块 传感器和执行机构 CAN 协议的其中一个要素是位速率 用户可以设计位周期中的位采样点 位置和采样次数 这样 用户就可以自由地优化应用网络的性能 在优化的过程中 用户要注意位定时参 数 基准 参考 振荡器容差和系统中不同的信号传播延迟之间的关系 例如 在位周期末端部分选择采 样点可以使传播延迟有更大的容差 而且总线长度可以更长 如果在位周期的中点附近选择采样点 则系 统的每个节点可以有更大的振荡器容差 这里可以明显地看出振荡器容差和总线长度是互相冲突的 它们 只有通过优化位定时参数才能兼备 本文档的目的是支持使用 Philips CAN 控制器 SJA1000 和 PCx82C200 的用户进行系统优化
本文档中的位定时计算用位定时段的术语表示 规格化 CAN 系统时钟的周期 (SYNC_SEG TSEG1 TSEG2 SJW 和 NBT) 使位定时的计算和指定的位速率之间互相独立 详细信息请看下一节的方程 7
11
2.1.2 CAN 位定时控制寄存器 在前面已经提到 位定时的很多元素是用户可定义的 下面的图 3 就显示了所有 Philips CAN 控制器 使用的设置位定时参数的控制寄存器 很显然 这些参数只能使用整数值
数定义有紧密的关系 这些关系都在图 1 中表示
系统的位速率 fBit 表示每单位时间传输数据位的量 它由下面的方程 1 定义
fBit
=
1 t Bit
(1)
图 1 CAN 位定时段
额定 标称 的位定时由 3 个互不重叠的段 SYNC_SEG TSEG1 和 TSEG2 组成 这 3 个时间段分 别是 tSYNC_SEG tTSEG1 和 tTSEG2 所以 算术上额定位周期 tBit 是 3 个时间段的和
tBit = t SYNC _ SEG + t TSEG1 + t TSEG2
CAN协议的错误处理及位定时
CAN 协议的错误处理及位定时1 错误的处理 1.1 错误的种类错误共有5种:① 位错误,② 填充错误,③CRC 错误,④ 格式错误,⑤ 应答错误。
2个或2个以上的错误有可能同时出现。
错误的种类、错误的内容、检测错误的帧及检测单元如表l 所示。
表1 错误的种类检测出错误条件的单元通过输出错误标志通知出现错误。
错误激活状态单元输出的错误标志为激活错误标志;错误认可状态单元输出的错误标志为错误认可标志。
表2 错误标志的输出时间2 位定时在没有重新同步的情况下, 发送单元可以发送信息; 每秒钟可以发送的位数称为位速率。
l 位可以划分为下列4个片段:① 同步段(SS),② 传播段(PTS),③ 相位缓冲段l(PBS1),④ 相位缓冲段2(PBS2)。
可以将这些段看成是由最小的单位——时间量程(以下简称Tq)构成的。
Tq 的含义为实现CAN 协议的基准时钟。
l 位的构成如图l 所示。
各片段的作用与Tq 的数目如表3所示。
下面对两个概念稍加说明。
采样点——读取总线上的电平、并将其作为位值的点。
采样点位于PBS的结尾处。
位时间——将l位分成4个片段,再将各片段按最小单位Tq加以分割后,其构成称为位时间。
可能会有“1位由多少个Tq构成? 各片段义分别是由多少个Tq构成的?”等问题,实际上,位定时可以任意设定,通过设定位时间,多个单元可以在同样的时间里抽样,而且可以任意设定采样点。
表3 各片段的作用2.1 同步CAN协议采用的是不归零(NRZ)通讯方式。
在各位的起始处与结尾处不附加同步信号。
发送单元与位时间同步开始发送数据。
而接收单元按总线上的电平变化加以同步的同时,完成接收动作。
但是,由于时钟的误差及传输线路(电缆、驱动器等)的相位延迟,发送单元与接收单元之间有时可能出现同步偏离,因此接收单元要进行硬同步或者是再同步,以对准时间进行接收。
2.1.1 硬同步在总线处于空闲状态、接收单元检测到SOF时,所进行的同步。
CAN总线中位定时的设定方法.
CAN总线中位定时的设定方法CAN总线中位定时的设定方法张健摘要:在CAN总线中,位定时有一点小错误就会导致总线性能严重下降。
虽然在许多情况下,位同步会修补由于位定时设置不当而产生的错误,但不能完全避免出错情况,并且在遇到两个或多个CAN节点同时发送的情况时,错误的采样点会使节点启动错误认可标志,使节点不能赢得总线上的任何活动。
因此要分析、解决这样的错误就需要对CAN总线位定时中的位同步和CAN节点的工作过程有一个深入的了解。
本文描述了CAN总线位同步的运行规则以及如何对位定时的参数进行设置。
关键词:总线位定时同步延迟1.前言CAN总线的数据传输速率最高可达1Mbit/s,通常用石英晶振作为时钟发生器,可以独立进行位定时的参数设置,这样即使网络中节点之间的时钟周期不一样仍可获得相同的位速率。
但网络中晶振的频率不是绝对稳定的,温度、电压以及器件的异常都会导致微小的差别,但只要将其稳定在振荡器容差范围之内,总线上的节点会通过重同步进行弥补。
CAN总线的一个位时间可以分成四个部分:同步段,传播段,相位段1和相位段2,每段的时间份额的数目都是可以编程控制的,而时间份额的大小tq由系统时钟tsys和波特率预分频值BRP决定:tq=BRP/tsys。
如图1:图1参数范围说明分频值[1…….32]规定时间份额的长度同步段1tq固定长度,同步总线节点传播时间段[1…….8]tq补偿总线物理延迟时间相位缓冲段1[1…….8]tq重同步时可以暂时延长相位缓冲段2[1…….8]tq重同步时可以暂时缩短同步跳转宽度[1…….4]tq长度小于相位缓冲段表1:位时间的参数2.同步段(1)同步段用于同步总线上的各个节点,在此段内期望有一个跳变沿出现。
如果跳变沿出现在同步段之外,那么沿与同步段之间的长度叫做沿相位误差。
采样点位于相位缓冲段1的末尾和相位缓冲段2开始处。
(2)传播时间段用于补偿总线上信号传播时间和电子控制设备内部的延迟时间。
CAN总线位同步
这两天研究了一下CAN总线的位同步机制~~~总结一下所谓同步,就是接收端要按照发送端发送每个码元的起止时刻和速率来接收数据。
通常采用的同步方式有:异步方式和同步方式。
在通信时接受端要校准自己的实践和重复频率,以便和发送端取得一致,这一过程就称为同步过程。
通信时传输的同步方式分为两种:同步方式、异步方式。
同步式依赖两台设备间协调的时间表来分开位组,并将它们以被称作帧的信息块传输。
异步式又称起止同步方式,并不要求每一bit位都要严格时钟同步,而设置了起始位和终止位。
帧传送:在总线上传输的报文以帧结构进行传输。
报文传送由4种不同类型的帧来表示和控制:数据帧、远程帧、出错帧和超载帧。
以数据帧为例:数据帧携带数据由发送器至接收器,由7个不同的位场组成,分别是帧起始、仲裁场、控制场、数据场、CRC场、应答场以及帧结束。
位定时:CAN总线节点可独立进行位定时的参数设置,这样即使网络中节点之间的晶振时钟周期不一样仍可获得相同的位速率。
网络中晶振的频率不是绝对稳定的,温度、电压以及器件的异常都会导致微小的差别,但要将其稳定在振荡器容差范围之内,所以总线上的节点需要通过位同步进行弥补。
CAN总线位同步的实现:CAN总线的位同步只有在节点检测到“隐性位”(逻辑1)到“显性位”(逻辑0)的跳变时才会产生,当跳变沿不位于位周期的同步段之内时将会产生相位误差。
该相位误差就是跳变沿与同步段结束位置之间的距离。
如果跳变沿发生在同步段之后采样点之前为正的相位误差;如果跳变沿位于同步段之前采样点之后为负的相位误差。
相位误差源于节点的振荡器漂移,网络节点之间的传播延迟以及噪声干扰等。
CAN协议规定了两种类型的同步:硬同步和重同步。
硬同步:只在总线空闲时通过一个下降沿(帧起始)来完成,此时不管有没有相位误差,所有节点的位时间重新开始。
强迫引起硬同步的跳变沿位于重新开始的位时间的同步段之内。
重同步:在消息帧的随后位中,每当有从“隐性位”到“显性位”的跳变,并且该跳变落在了同步段之外,就会引起一次重同步。
CANstress使用说明
CANstress使用说明书
北京经纬恒润科技有限公司
CANstress核心功能包括:
CAN系统失效
CAN控制器的干扰
可编程短路和断路
模拟各种线长
CANstress
硬件设备
Trigger In Trigger PC 接口:
USB ,COM 供电接gg
gg Out
供电接口
CAN 接口指示灯
CANstress软件界面
CANstress硬件配置过程
1.设备连接设置(串口、USB)
3.CAN控制器参数设置(速率、位定时)
控制器参数设置(速率位定时)
44.设定触发方式(7种)
5.设定触发条件
6.设定干扰方式(数字、模拟)
7.设定干扰时间、次数
备连接设置
CANstress设备CAN接口选择
CAN控制器参数设置
设定触发方式(7种)
1.按照报文位场序列
2.帧起始
4帧结束总线空闲
4.帧结束、总线空闲
5.外部电平触发
6.软件触发(点击按钮)
7.无条件连续触发
按照报文位场序列触发的配置
帧起始触发
序列触发
其它触发方式的配置
错标志触发
帧结束标志触发
外部电平触发
软件触发
连续触发
CANstress干扰模式
扰模式
干扰次数
干扰序列
模拟量干扰配置
触发输出配置
CAN
CANStress
CANScope Trigger Out Trigger In
谢谢!。
canopen参数
canopen参数CANopen是用于工业自动化应用的一种通信协议,它基于控制器局域网(Controller Area Network,CAN)协议。
CANopen协议定义了设备之间的通信规则、数据交换方式、设备对象字典(Device Object Dictionary,DOD)以及设备管理过程等。
以下是一些常见的CANopen参数:1.通信速率:CANopen协议支持多种通信速率,常见的有125Kbps、250Kbps、500Kbps和1Mbps。
通信速率的选择取决于应用需求和网络负载。
2.报文标识符:CANopen协议使用29位的标识符(Identifier)来标识不同的报文。
每个标识符对应一个特定的服务或信号。
3.数据长度:CANopen协议支持不同长度的数据帧,最常用的有8字节、16字节、32字节和64字节。
数据长度应根据实际需要选择。
4.位时间:CANopen协议使用位时间来定义信号的采样频率。
位时间是信号在物理线上传输所需的时间,可以根据通信速率和数据长度计算出来。
5.重发次数:CANopen协议支持报文的自动重发功能,可以通过配置重发次数来提高通信的可靠性。
重发次数的选择应根据实际情况进行调试和优化。
6.校验方式:CANopen协议支持多种校验方式,包括位反转、循环冗余校验(CRC)等。
可以根据实际需要选择适合的校验方式来提高数据的准确性。
7.节点地址:每个CANopen设备都有一个唯一的节点地址(NodeID),用于标识设备在CAN总线上的位置。
节点地址可以是1到247之间的任意数值。
8.设备类型:CANopen协议定义了多种设备类型(Device Type),包括传感器、执行器、控制器等。
每个设备类型都有一组特定的对象字典(Object Dictionary,OD)用于描述设备的属性和行为。
9.预定义对象:CANopen协议提供了一组预定义的对象(PredefinedObjects),用于实现一些通用的功能,如时间同步、设备参数配置等。
CAN总线中位定时的设定方法
CAN总线中位定时的设定方法在CAN总线中,位定时有一点小错误就会导致总线性能严重下降。
虽然在许多情况下,位同步会修补由于位定时设置不当而产生的错误,但不能完全避免出错情况,并且在遇到两个或多个CAN节点同时发送的情况时,错误的采样点会使节点启动错误认可标志,使节点不能赢得总线上的任何活动。
因此要分析、解决这样的错误就需要对CAN总线位定时中的位同步和CAN节点的工作过程有一个深入的了解。
下面我们详细描述CAN总线位同步的运行规则以及如何对位定时的参数进行设置。
1.位时间CAN总线的数据传输速率最高可达1Mbit/s,通常用石英晶振作为时钟发生器,可以独立进行位定时的参数设置,这样即使网络中节点之间的时钟周期不一样仍可获得相同的位速率。
但网络中晶振的频率不是绝对稳定的,温度、电压以及器件的异常都会导致微小的差别,但只要将其稳定在振荡器容差范围之内,总线上的节点会通过重同步进行弥补。
CAN总线的一个位时间可以分成四个部分:同步段,传播段,相位段1和相位段2,每段的时间份额的数目都是可以编程控制的,而时间份额的大小tq由系统时钟tsys和波特率预分频值BRP 决定:tq=BRP/tsys。
如下图:位时间的参数表2.同步段(1)同步段用于同步总线上的各个节点,在此段内期望有一个跳变沿出现。
如果跳变沿出现在同步段之外,那么沿与同步段之间的长度叫做沿相位误差。
采样点位于相位缓冲段1的末尾和相位缓冲段2开始处。
(2)传播时间段用于补偿总线上信号传播时间和电子控制设备内部的延迟时间。
因此,要实现与位流发送节点的同步,接收节点必须移相。
CAN总线非破坏性仲裁规定,发送位流的总线节点必须能够收到同步于位流的CAN总线节点发送的显性位。
下图显示了两个总线节点的相移和传播段时间。
在这个例子里,节点A和节点B都是发送节点,因此总线要对两个节点进行仲裁。
节点A比节点B提前发送不到1个位时间,当节点B收到延迟后的跳变沿时,B节点要同步于A节点,对位时间进行移相。
浅谈CAN总线的位定时参数
浅谈CAN总线的位定时参数
1.概述
CAN 总线通信中,波特率、位周期内采样次数和采样位置都可以通过编程设置,这些设置为用户根据其应用优化网络通信性能提供了方便。
优化位定时参数,能够保证信息同步、通信性能、传输延迟和晶振误差在极端条件下进行恰当的错误检测。
然而系统的有些性能是相互冲突的,例如,在位周期末端部分选择采样点可以使传播延迟有更大的容差,这时总线长度可以更长;如果在位周期的中点附近选择采样点,则系统的每个节点可以有更大的振荡器容差。
可以明显地看出振荡器容差和总线长度是互相冲突的,它们只有通过优化位定时参数才能兼备。
本文将通过一个CAN 总线控制网络介绍CAN 总线位定时参数的基本概念和计算设置方法。
该网络采用AT89S52 单片机、SJA1000 CAN 控制器和PCA82C250 总线收发器设计,并应用于楼宇自动化控制系统中,获得了良好的应用效果。
2.CAN 总线的位定时关系及相关概念
下面介绍的几个概念中有些与具体的器件有关,本网络中使用的CAN 总线
控制器件是SJA1000,因此,有关概念也都是针对SJA1000 而言的。
振荡器时钟周期tclk tclk 是CAN 总线控制器外挂晶振频率的倒数,它是CAN 总线系统中的最小时间单位。
系统时钟周期tSCL tSCL 是系统将tSCL 分频后得到的一个时间值,它在时间上就是一个时间份额TQ,分频数由SJA1000 的波特率预设值(BRP)决定。
tSCL 可由下式来计算:tSCL=2 乘以tclk 乘以BRP (1)
位周期tBit 位周期是一位数据在总线上的持续时间。
使用Philips 公司的独立。
CAN通讯之位定时与同步
CAN通讯之位定时与同步位定时与同步由前面文章可知,每一帧数据(即一个完整的数据帧)有很多位组成,当发送方发送一帧数据到总线时,接收方怎么准确接收到这帧数据呢?先需要了解下位时间的基本概念,再在此基础上,针对传输延迟等问题,采用同步方法处理。
1. 位时间位时间就是指一个(二进制)位在总线传输所需要的时间,即:位时间就是位速率的倒数。
如图1所示:一个位分为4段,这些段又由称为Time Quantum(以下称为 Tq)的最小时间单位构成。
1位分为4个段,每个段又由若干个Tq构成,这称为位时序。
图1 位时间1位由多少个Tq构成,每个段又由多少个Tq构成等,可以任意设定位时序。
通过设定位时序,多个节点可同时采样,也可任意设定采样点。
也就是说图2中各个节点都可以通过不同的配置可能获得不同的位速率和采样精度,后面通过实例来讲解。
图2关于各段的作用和可配置Tq范围如下图:图3 各段的定义信息,引自[2]所谓采样点是读取总线电平,并将读到的电平作为位值的点,位置在PBS1结束处。
图4 采样点的设定,引自[2]CAN协议的通信方法为NRZ(Non-Return to Zero)方式,各个位的开头或者结尾都没有附加同步信号。
发送单元以与位时序同步的方式开始发送数据。
另外,接收单元根据总线上电平的变化进行同步并进行接收工作。
但是,发送单元和接收单元存在的时钟频率误差及传输路径上的(电缆/驱动器等)相位延迟会引起同步偏差,因此接收单元通过硬件同步或者再同步的方法调整时序进行接收。
2. 硬同步硬同步是指在总线空闲状态,接收节点检测出帧起始位(SOF)时,会调整当前位的同步段(SS)与发送节点的帧起始位SS段一样,调整宽度不限。
如下图5。
图5 SOF位的硬同步,来源[1]引自[1]的具体解释:1)发送节点Node_A在发送SOF位时,SOF位的下降沿在SS段;2)这时接收节点Node_B发现自己当前位的SS段和发送节点SOF位的SS段不同步。
CAN总线信号传输延时分析
CAN 总线信号传输延时分析CAN 收发器的改良和隔离器件引入,大大提高了通信的可靠性,但同时也引入了额外的延时,导致通信距离变短,或总线错误帧增加,本文以1Mbps 波特率下的应用为例,对CAN 总线信号延时做简要分析。
1.1 CAN 总线传输距离的相关因素1.1.1 ACK 应答CAN 总线采用多主通信模式、非破坏式总线仲裁机制。
以标准数椐帧为例,从结构上看分成7段,分别为起始段、仲裁段、控制段、数椐段、CRC 校验段、ACK 应答段、帧结束段,如图1所示:图1 标准数椐帧结构及应答ACK 段长度为2个位,包含应答间隙(ACK SLOT )和应答界定符(ACK DELIMITER )。
在应答场里,发送站发送两个“隐性”位。
当接收器正确地接收到有效的报文,接收器就会在应答间隙(ACK SLOT )期间(发送ACK 信号)向发送器发送一“显性”的位以示应答。
发送节点检测到总线呈显式状态时,就认为有节点进行了有效的应答并且自己所发出的帧是正常的。
1.1.2 CAN 总线位时间组成CAN 网络通信位定时参数如图2所示。
同同同图2 位定时示意图CAN 总线通信中每一位的时间由4 部分组成,即同步段、传播段、相位缓冲段1、相位缓冲段2,划分为3段。
同步段:用于总线诸节点之间的同步;时间段1:由传播段与相位段1组成,传播段用于补偿信号的物理传播延时;时间段2:即相位缓冲段2,相位段1 和相位段2 用于补偿沿的相位误差。
在实际控制器设计中,通过调整时间段1、时间段2 的值可以改变对总线传播延时的补偿时间。
1.1.3 CAN总线延时理论分析由图 1可知,发送节点在发完CRC 场之后,会发出一位应答隙,在这一位的时间内,接收节点应该输出显式位作为回应,发送节点如果在应答隙内没有检测到有效的显式位,则会判定总线错误,所以限制CAN 总线系统信号传播延时上限的根本条件就是必须确保发送节点在应答隙内接收到有效的应答信号。
CAN 控制器的位定时参数
3 位定时要求的规定 .................................................................................................. 6
3.1 计算规则 ............................................................................................................................ 7 3.2 用图表显示计算规则 .......................................................................................................... 8
3.2.1 规定和限制 .............................................................................................................. 8 3.2.2 确定最大的位速率.................................................................................................... 8 3.2.3 确定适当的采样点.................................................................................................... 9
