菜单 English Ukrainian 俄语 主页

面向爱好者和专业人士的免费技术图书馆 免费技术库


无线电电子与电气工程百科全书
免费图书馆 / 无线电电子和电气设备方案

CAN网络位同步的计算。 无线电电子电气工程百科全书

免费技术库

无线电电子与电气工程百科全书 / 汽车。 电子设备

文章评论 文章评论

使用CAN接口时,一个大问题与微控制器CAN模块中信息传输和接收速度的设置有关。 本文根据博世规范描述了此安装的一般原理。 作为示例,给出了计算写入 ARM LPC23xx 和 STM32F103 微控制器 CAN 模块控制寄存器的参数值的基本公式,并考虑了作者开发的有助于选择最佳选项的程序。

CAN(控制器局域网)接口于上世纪 80 年代中期由德国罗伯特·博世有限公司 (Robert Bosch Gmbh) 发明,它是一种将控制车辆系统的控制器集成到信息网络中的经济手段。 事实上,随着汽车技术的进步,控制发动机、变速箱和其他机构的电子设备也在不断进步。 这导致来自传感器和执行器的数十条电线以及连接不同模块的电线开始延伸到汽车中的每个电子单元。 所有这些不仅使汽车变得更重,而且影响了其可靠性、安全性和可维护性。

随着这种接口的传播,类似的网络开始应用于其他领域,特别是技术流程的自动化。 在恶劣条件下工作时信息保护不失真的高可靠性以及足够高的传输速率(高达 1 Mbps)使得 cAn 可以在其原始用途以外的地方使用。 先进的检测和纠正错误机制、故障节点的自我隔离以及对高水平电磁干扰的不敏感性确保了网络的可靠性。

CAN思想基于七级OSI/ISO模型(简单来说,这是将发送和接收信息的过程虚拟划分为七个级别)。 深入研究这个领域是没有意义的,因为它在许多来源中被广泛覆盖,例如,在[1]中。 目前,标准化了两个级别:物理(部分)和通道。

物理传输介质在博世CAN规范中没有定义,但根据ISO 11898标准,一般理解为具有一对电线形式的物理层的总线型网络,连接类型和传输速度没有规定。目前已标准化,但通常在上覆层的规范中指定。

所有网络节点都并行连接到连接它们的线路的两根电线(CAN_H 和 CAN_L)。 在通信线路的末端,必须安装终端电阻——阻值为120欧姆的电阻。 在没有传输的情况下,相对于车身或技术装置的公共线的两根线上的电压都是2,5V。一个逻辑单元(根据CAN中采用的术语,具有这样值的位称为隐性的)对应于CaN_H线上的电压电平高于CAN_L线上的电压电平的总线状态。 逻辑零(具有这种值的位称为显性位) - 反之亦然。 当多个发送器同时工作时,线路中的隐性位被显性位抑制。

假设总线的被动状态对应于逻辑XNUMX的电平。 当没有消息传输时它就在其中。 消息传输总是从显性位开始。 每个节点的CAN模块中的总线线都连接到一个特殊的芯片——执行收发器功能的总线驱动器。 此外,驱动程序还可以提供一些附加功能:

- 通过改变输入电流调节信号转换率;
- 使用内置限流单元保护发射机输出在 CAN_H 和 CAN_L 电线与电源电路可能发生短路的情况下免受损坏,以及防止这些电线上的电压短期增加;
- 内部热保护;
- 低功耗模式,其中接收器继续向控制器报告总线的状态,以便当它检测到其活动时,可以将驱动器转移到正常操作。

通过总线传输的信息编码是使用 NRZ(不归零)方法进行的。 它有一个显着的缺点:当传输一长串单元时,它们之间没有暂停。 这导致接收者无法区分这样的序列和消息之间的暂停。 为了解决这个问题,就用到了所谓的bitstaffing(Bit Stuffing——位填充)。 它包括以下事实:在连续传输五个相同的位之后,具有相反值的附加位被插入到它们的流中。 接收器在连续发现五个相同的位后,删除在传输过程中插入的跟随它们的位。

链路层定义了两种类型的标识符:标准 CAN(11 位长)和扩展 CAN(29 位)。 他们定义消息格式。

在较高级别中,可以注意到CAL/CANopen、CAN Kingdom、DeviceNet和SDS(智能分布式系统)规范,更多详细信息可以在互联网上找到[2]。

根据定义,CAN 网络结合了位于同一设施、房间或几个附近房间内的有限数量的本地控制器。 它不超出技术对象的界限。 该网络的意识形态建立在几个要点上。 首先,传输控制器不断监听通过网络传输的自身信号。 这使得可以通过多个节点对所传输的信息的正确性进行逐位验证(检查位监控),这与例如以太网网络不同。 如果控制器接收到的位与控制器发送的位不同,则传输停止并生成位错误。

当传输消息标识符时,该机制用于解决冲突,并且当传输信息时,检查其正确性。 如果检测到错误,则发送器会中断其消息并在总线上发出错误帧,以通知网络中的其他节点有关此事件的信息。 为了确认收到消息,数据帧包含 ACK 字段。 在此字段中,每个已接收到所传输消息的节点都会向其源确认已收到该消息。 发送方会重新发送未确认的消息,直到收到确认为止。

所有网络节点都会接收传输的信息,因此不可能将消息发送到任何特定节点。 但如果现代控制器有流量过滤工具,这不是一个大问题。

CAN 网络是分散的。 如果我们稍微偏离通常的意识形态,那么这可以被认为是一个很大的优势,根据通常的意识形态,网络必须有一个控制它的主节点和执行其命令的从节点。 在去中心化网络中,节点更加智能。 如果其中任何一个失败,它仍会继续运行。

信息通过标准格式消息传输——数据帧(信息传输)、远程传输请求帧或简称远程帧(信息请求)、错误帧(错误消息)、过载帧(控制器过载消息)。

最常用的数据框。 它们的格式和内容如表所示。 1 为标准,见表。 2 用于扩展帧。 信息请求帧与信息(标准或扩展格式)帧的不同之处仅在于RTR位始终是隐性的并且没有信息字段。

表1

领域 长度,位(字节)
帧开始 1 应该占主导地位 (0)
识别码 11
传输请求 (RTR) 1 应该占主导地位 (0)
标识符扩展功能 (IDE) 1 应该占主导地位 (0)
保留 (rO) 1
信息字段长度 (DLC) 4 以字节指定
信息栏 (0 - 8) 传输的信息
校验和 (CRC) 15 在整个帧上计算
校验和分隔符 1 必须是隐性的 (1)
确认间隔 (ACK) 1 发送器发送隐性 (1),接收器插入显性 (0)
确认分隔符 1 必须是隐性的 (1)
帧结束 (EOF) 7 必须是隐性的 (1)

表2

领域 长度,位(字节)
帧开始 1 应该占主导地位 (0)
身份证 11 标识符的第一部分
传输请求欺骗 (SRR) 1 必须是隐性的 (1)
标识符扩展功能 (IDE) 1 必须是隐性的 (1)
编号 B 18 标识符的第二部分
转移请求 (RTR) 1 应该占主导地位 (0)
保留(r1 和 r0) 2
信息字段长度 (DLC) 4 以字节指定
信息栏 (0 - 8) 传输的信息
整个帧的校验和(CPS) 15 在整个帧上计算
校验和分隔符 1 必须是隐性的 (1)
确认(ACK) 1 发射器发送一个隐性,接收器插入一个显性
确认分隔符 1 必须是隐性的 (1)
帧结束 (EOF) 7 必须是隐性的 (1)

错误帧由错误标志字段和错误定界符字段组成,错误标志字段包含相同值的六个位(因此违反了位填充规则),以及八个隐性位的错误定界符字段。 它的传输导致所有网络节点注册格式错误并自动将其错误帧传输到网络。 此过程的结果是传输原始消息的节点自动将信息重新传输到网络。

过载帧重复错误帧的结构和逻辑,但由当前无法处理传入消息并因此请求重传的节点发送。 目前,它实际上还没有被使用。

每个网络节点都有一个总线驱动器、一个CAN控制器(负责与网络交互、实现交换协议)和一个微控制器。 CAN 控制器常常与微控制器结合在一起。 在这种情况下,两个微电路足以创建一个 CAN 网络节点——一个微控制器和一个总线驱动器。

CAN 中的同步与信息在网络上传输的方式密切相关。 用户有机会对信息传输速率(从 1 Kbps 到 1 Mbps)、传输间隔中位采样点(时刻)的位置以及每个位的样本数进行编程。 因此,网络可以针对特定应用进行优化。 但它也带来了一些问题。

通过串行总线传输的任何信息都可以分为基本位,这个基本位的传输时间NBT(标称位时间)决定了信息传输速率NBR(标称比特率)——理想发送器每秒传输的位数不恢复时钟间隔:

丁腈橡胶=1/NBT(1)

如图所示。 如图1所示,NBT间隔被划分为若干个不重叠的段,每个段由整数个时间段组成,称为时间量子(TQ)。


图。 1

由于所有网络节点的 NBR 传输速率必须相同,因此通常使用公式(1)找到所需的 NBT 值,然后选择形成该值的每个段的持续时间:

NBT=T同步段 + T属性段 + TPS1 + TPS2(2)

其中T同步段 - 同步段的持续时间; 吨属性段 - 传播段的持续时间; 时间PS1 - 第一阶段部分的持续时间; 时间PS2 - 第 2 阶段部分的持续时间。

计时段 (SyncSeg) - 按顺序排列在第一位,用于同步总线上的节点。 预计该部分将出现初始水平差异。 其持续时间是固定的并且始终等于 1TQ。

分销部门 (PropSeg) 用于补偿节点之间的物理信号延迟。 其持续时间取决于信号从发送节点到接收节点并返回的传播时间,包括与总线驱动器相关的延迟。 它可以取1TQ到8TQ的值。

阶段段 1 和 2 (PS1和PS2)用于补偿总线压降的相位失真。 在时钟恢复同步期间,接收器可以延长PS1或缩短PS2。 根据博世的原始规范,PS1和PS2的持续时间范围可以从1TQ到8TQ,但对于某些CAN模块,这些值可能不同。

PS1 和 PS2 段之间存在一个称为位采样点的时刻。 它读取并解释信号的逻辑电平。 在一些 CAN 控制器中,有一种三次读取每位信号电平的模式。 但即使在这种情况下,主要点也被认为是在 PS1 和 PS2 之间,另外两个点有助于根据多数准则(同一级别的两个或三个样本)正确决定该位的值。

如上所述,标称比特传输时间由整数个时间片TQ组成。 量子的持续时间取决于模块时钟发生器 F 的频率OSC 及其由 BRP 预分频器划分的因子。 TQ、F之间的关系OSC 对于不同类型的微控制器,BRP 是不同的。 例如,对于 MSR2510,该公式有效

TQ = 2 (BRP + 1)/FOSC 。 (3)

对于 STM32F 和 LPC23xx 微控制器,公式如下所示:

TQ = (BRP + 1)/FOSC 。 (4)

在选择片段的持续时间时,使用时间片TQ比标准时间单位更方便。 在这里和下面,我们将指定段的名称(例如,PropSeg)及其以量子为单位的持续时间。 有几个必须满足的要求:

PropSeg+PS1 ≥ PS2; (5)

PropSeg+PS1 ≥ T支柱(6)

PS2 > SJW。 (7)

T支柱 不等式(6) - 网络中的信号传播延迟。 假设网络中的所有节点都有相似的内部延迟,则可以使用以下公式计算传播延迟

T支柱 = 2 (T总线 + TCMP + TDRV),(8)

其中T总线 - 信号在总线物理环境中的往返时间; 时间CMP - 输入比较器的延迟; 时间DRV - 输出驱动器的延迟。

SJW 不等式(7)中的(Synchronization Jump Width - 同步跳转的宽度) - 同步过渡段的持续时间,额外引入以根据需要调整接收比特的持续时间。 用于同步接收和发送的消息。 此外,外部干扰会造成网络中规划的标称传输速率与实际速率不对应的情况。 该附加段也用于补偿这种差异。 SJW的持续时间在1TQ-4TQ之间。

PS1 和 PS2 段以及 SJW 用于补偿节点时钟漂移。 PS1和PS2可以根据需要加长或缩短。 同步发生在从隐性 (1) 到显性 (0) 总线状态的转换上,并控制该转换与位采样点之间的时间量。 如果转换发生在 SyncSeg 段中,则该转换是同步的,否则存在相位误差 - 转换与 SyncSeg 结束之间的时间间隔,以时间片 TQ 测量。

有两种类型的同步:硬件同步和重新同步。 在第一次从隐性到显性的转换期间,硬件仅执行一次,结束总线的其余周期。 该边沿指示帧的开始(SOF - 帧开始)。 硬件同步重置同步计数器,导致边沿位于同步段内。 此时,所有接收器都与发射器同步。

执行时钟恢复的时钟恢复是为了维持硬件设置的初始时钟。 如果没有时钟恢复,接收器可能会由于网络节点中时钟发生器的频率漂移而失去同步。 该时序基于数字锁相环 (DPLL),它将总线上隐性到显性转换的实际位置与 SyncSeg 内的预期转换位置进行比较,并根据需要调整位时序。

相位误差 e 由边沿相对于 SyncSeg 段的位置确定,以 TQ 测量:

e = 0 - 转换在 SyncSeg 段内;

e > 0 - 转变发生在采样点之前,时间片 TQ 添加到 PS1;

e < 0 - 转变发生在前一位的采样点之后,从 PS2 中减去时间片 TQ。

具有时钟恢复功能的时钟恢复不能在帧开始时发生,因为硬件时钟已经在那里执行。

如果相位误差的绝对值小于或等于SJW,则硬件和重新同步的结果相同。 如果相位误差大于SJW,则重新同步不能完全补偿相位误差。

两个采样点之间只允许一次同步。 它在边缘和采样点之间保持设定的间隔,使信号电平稳定并滤除比 PropSeg + PS1 短的变化。

同步也与仲裁有关。 所有节点都与第一个开始传输的节点紧密同步。 但较晚开始传输的另一个节点的信号无法完美同步。 然而,第一个发送器不一定会赢得仲裁,因此接收器必须与赢得仲裁的发送器同步,而不是与它同步。 同样的情况也发生在 ACK 字段中,需要与首先开始发送确认位的节点进行同步。 所有这些都导致安装在总线节点中的时钟发生器的频率的允许相互漂移减小。

有几个同步规则:

- 仅使用从隐性状态到显性状态(从 XNUMX 到 XNUMX)的转换;

- 在一个比特传输中只允许一个同步;

- 转换用于同步,前提是在前一个采样点读取的信号的逻辑电平与转换后立即在总线上设置的电平不同;

- 发送节点不会恢复具有正相位误差(e > 0)的时钟间隔,即它不会调整到自己的消息。 但接收器照常同步;

- 如果相位误差的绝对值大于相位跳变SJW,则相应相位段(PS1或PS2)的持续时间改变为等于SJW的值。

上述情况导致总线的物理长度受到通过总线的信息传输速度的限制。 总线上的所有节点都需要在相同的位间隔内读取其状态。 结果表明,只有总线长度不超过 1 m 时才能实现 30 Mbps 的最大传输速率。

考虑如何在特定微控制器中配置 CAN 控制器。

在LPC系列的微控制器(例如LPC23xx系列)中,CANxBTR寄存器用于设置CAN总线上的传输速度,其中x是CAN控制器的编号(可能是1或2,在某些情况下 - 4). 这里设置以下参数(方括号中表示其占用的寄存器位数间隔):

BRP (CANxBTR[9:0]) - APB 总线频率预分频器值,供 CAN 控制器进一步使用。 该参数决定了时间量TQ的持续时间,将F代入其中由式(4)确定OSC=1/吨APB, 其中 TAPB - 微控制器的系统总线 APB 上的脉冲重复周期。

SJW (CANxBTR[15:14]) - TQ 量子中的同步跳频宽度比此处指定的值大 XNUMX。

TSEG1 (CANxBTR[19:16]) 和 TSEG2 (CANxBTR[20:22]) - TQ 量子中段(分别为 PS1 和 PS2)的持续时间比此处指定的值大 XNUMX。

SAM (CANxBTR[23]) - 设置每个位值的读取次数:0 - 一次,1 - 三次。 通常,后一个选项用于低速网络。

选择这些选项时,您必须遵循以下规则:

TPS2 ≥2TQ (9)

TPS2 ≥TSJW (10)

TPS1 ≥TPS2 (11)

STM32F系列微控制器有一个类似的寄存器,称为CAN_BTR。 它包含以下字段:

BRP (CAN_BTR[9:0]), TS1 (CAN_BTR[19:16])和 TS2 (CAN_BTR[22:20]) - 寄存器中的用途和位置与上述 CANxBTR 寄存器的 BPR、TSEG1 和 TSEG2 字段一致。 计算TQ值时,应将式(4)代入FOSC=1/吨时钟, 其中 T时钟 - 微控制器 VPB 总线上的脉冲重复周期。

SJW (CAN_BTR[25:24]) - 与同名 CANxBTR 寄存器的字段的不同之处仅在于寄存器中占用的位。

LBKM (CAN_BTR[30]) - 该寄存器中的 XNUMX 设置环回模式,其中传输的消息由其自己的接收器接收,但不发送到网络。

SILM (CAN_BTR[31]) - 该寄存器中的单元设置静默模式,在该模式下控制器接收来自网络的消息,但不传输任何内容。

提到的两种模式都用于调试。

对于所考虑的微控制器,由于缺少 SyncSeg 和 PropSeg 段,公式 (2) 被简化。 它们被持续时间为 1TQ 的一段所取代。 它们的公式如下:

NBT=TQ+TPS1 + TPS2 (12)

CAN 总线上的传输速率(以位/秒为单位)在程序中使用以下公式计算

丁腈橡胶 = (F/(BRP + 1)) (1/(PS1 +PS2 +3)) (13)

其中 F 分别是 STM32F 或 LPC23xx 的系统总线 APB 或 VPB 的频率。 如果 SJW 参数非零,则最大

BR最大 = (F/(BRP + 1)) (1/(PS1 +PS2 - SJW + 2)) (14)

和最低限度

BR分钟 = (F/(BRP + 1)) (1/(PS1 +PS2 + SJW + 4)) (15)

CAN 总线上的波特率值,在其之间提供同步的时间间隔。

CANTools程序窗口如图2所示。 23. 其初始数据是微控制器的类型、所需的信息传输速率和系统总线的频率,CAN 控制器从中获得时钟。 开始计算时,您首先应该选择微控制器的类型。 在考虑的方案中,只有两个选择——LPC32xx或STM103FXNUMX。 接下来,设置 CAN 总线上所需的传输速率(以千位每秒为单位)。 之后,您可以设置系统总线频率(以兆赫为单位)。 只需按下屏幕上的“计算”按钮即可获得结果。


图。 2

程序的工作原理是:BRP值从0到512循环变化。对于给定的系统总线频率、BRP值和传输速率,计算NBT间隔中包含的时间片的频率和数量。 量子数必须是整数且小于 23(可写入微控制器寄存器的最大值)。 然后从 2 到 2 迭代 TSEG7 值,同时 TSEG1 的值相应减少。 它们的总和保持不变。

屏幕显示量子重复率 Fsc=1/TQ,通过实线-TQ量子的持续时间,然后是对应寄存器的BRP字段的值。 之后,每一对行描述一个计算选项的结果。

该对第一行中的参数 TSEG1 和 TSEG2 对应于 LPC23xx 微控制器的 CANxBTR 寄存器中的同名字段或 STM1F2 微控制器的 CAN_BTR 寄存器中的 TS32、TS103 字段。 给出它们的总和、每个字段的值以及 SJW 字段的值(如果它不为空)。 最后一行显示十六进制值 CANBTR,应将其写入 CANxBTR 或 CAN_BTR 寄存器(根据微控制器类型)以实现计算选项。

该对的第二行显示 CAN 总线上的最大和最小信息传输速率的值(如果 SJW > 0)以及该位的采样点相对于其传输开始的位置(以百分比表示)传输间隔的持续时间。

对于某些 BRP 值,不显示计算结果。 这意味着,通过公式(13)计算出的时间片重复率或CAN总线上的传输率,结果被表示为小数。 在这种情况下,不进行计算。

CANTools 程序可自动执行计算过程,但不会给出在实际应用中最好使用哪些参数组合的建议。 网络开发人员必须根据现有知识和经验从建议的选项中选择最佳选项。 对于那些刚刚开始掌握 CAN 的人,作者建议遵循以下规则:位的开始和采样点之间的间隔应在位持续时间的 70% 到 85% 范围内。 也许,实际上,您必须实际测试该计划提出的几个选项。

CANTools 程序可以从 ftp://ftp.radio.ru/pub/2014/01/can.zip 下载。

文学

  1. OSI 网络模型.
  2. 控制器局域网。

作者:A. Abramovich

查看其他文章 部分 汽车。 电子设备.

读和写 有帮助 对这篇文章的评论.

<< 返回

科技、新电子最新动态:

世界最高天文台落成 04.05.2024

探索太空及其奥秘是一项吸引世界各地天文学家关注的任务。在高山的新鲜空气中,远离城市的光污染,恒星和行星更加清晰地揭示它们的秘密。随着世界最高天文台——东京大学阿塔卡马天文台的落成,天文学史上翻开了新的一页。阿塔卡马天文台位于海拔5640米,为天文学家研究太空开辟了新的机遇。该地点已成为地面望远镜的最高位置,为研究人员提供了研究宇宙中红外波的独特工具。虽然海拔高,天空更晴朗,大气干扰也更少,但在高山上建设天文台却面临着巨大的困难和挑战。然而,尽管困难重重,新天文台为天文学家开辟了广阔的研究前景。 ... >>

利用气流控制物体 04.05.2024

机器人技术的发展不断为我们在各种物体的自动化和控制领域开辟新的前景。最近,芬兰科学家提出了一种利用气流控制人形机器人的创新方法。这种方法有望彻底改变物体的操纵方式,并为机器人领域开辟新的视野。利用气流控制物体的想法并不新鲜,但直到最近,实施这些概念仍然是一个挑战。芬兰研究人员开发了一种创新方法,允许机器人使用特殊的空气喷射作为“空气手指”来操纵物体。气流控制算法由专家团队开发,基于对气流中物体运动的深入研究。使用特殊电机执行的空气喷射控制系统使您无需借助物理手段即可引导物体 ... >>

纯种狗生病的频率并不比纯种狗高 03.05.2024

照顾宠物的健康是每个狗主人生活的重要方面。然而,人们普遍认为纯种狗比混种狗更容易感染疾病。德克萨斯兽医和生物医学科学学院的研究人员领导的新研究为这个问题带来了新的视角。狗老化项目 (DAP) 对 27 多只伴侣犬进行的一项研究发现,纯种狗和混血狗患各种疾病的可能性通常相同。尽管某些品种可能更容易感染某些疾病,但两组之间的总体诊断率实际上相同。狗衰老项目的首席兽医基思·克里维博士指出,有几种众所周知的疾病在某些狗品种中更为常见,这支持了纯种狗更容易患病的观点。 ... >>

来自档案馆的随机新闻

几小时内的电话 02.07.2003

日本公司“Dokomo”已经开始生产像手表一样戴在手腕上的手机。

要拨打电话,您需要将设备从手上取下,并将手环的一端戴在耳朵上,然后用另一端说话。 这款手机重 113 克,它的主人除了可以使用电子邮件进行对话之外,还可以浏览专门为手机简化的互联网站点。

电池充电可让您通话两小时不间断,在通话待机模式下,电量足够使用 200 小时。 当然,该设备也可以作为传统的电子手表使用。

新手机将仅在日本销售,因为它是为日本蜂窝标准设计的,在其他国家/地区未使用。 三星正在准备类似的新奇事物。

其他有趣的新闻:

▪ 用于智能设备的高性价比蓝牙 IC

▪ 摄像机检测犯罪

▪ 提高重力波传感器的灵敏度

▪ 空气中的酒精

▪ 绳索上网

科技、新电子资讯

 

免费技术图书馆的有趣材料:

▪ 网站业余无线电计算部分。 文章精选

▪ 文章简要介绍了二十世纪的外国文学。 第 1 部分。备忘单

▪ 为什么动物不能说话? 详细解答

▪ 龙卷风文章。 旅游小贴士

▪ 文章 人工喇叭。 简单的食谱和技巧

▪ 文章 观众构想出的牌在宣布之前放在桌子上。 焦点秘密

留下您对本文的评论:

Имя:


电子邮件(可选):


点评:




文章评论:

彼得罗维奇2015
电路很好,但是变压器次级绕组的线径对于如此强大的晶体管是有问题的


本页所有语言

主页 | 图书馆 | 用品 | 网站地图 | 网站评论

www.diagram.com.ua

www.diagram.com.ua
2000-2024