CN117997672A - Can通信方法、装置、电子设备和存储介质 - Google Patents

Can通信方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN117997672A
CN117997672A CN202410316099.XA CN202410316099A CN117997672A CN 117997672 A CN117997672 A CN 117997672A CN 202410316099 A CN202410316099 A CN 202410316099A CN 117997672 A CN117997672 A CN 117997672A
Authority
CN
China
Prior art keywords
denotes
node
controller
current
length
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410316099.XA
Other languages
English (en)
Inventor
白雪
姜若楠
王家兴
汶少阳
薛希庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Phytium Technology Co Ltd
Original Assignee
Phytium Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Phytium Technology Co Ltd filed Critical Phytium Technology Co Ltd
Priority to CN202410316099.XA priority Critical patent/CN117997672A/zh
Publication of CN117997672A publication Critical patent/CN117997672A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40013Details regarding a bus controller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0058Allocation criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/0091Signaling for the administration of the divided path
    • H04L5/0094Indication of how sub-channels of the path are allocated
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Communication Control (AREA)

Abstract

本公开提供了一种CAN通信方法、装置、电子设备和存储介质。主要技术方案包括:在当前CAN节点进行通信前,为当前CAN节点的CAN控制器配置发送端位时间信息,所述发送端位时间信息包括:时间量子的长度、传输段的长度、第一相位缓冲段的长度、第二相位缓冲段的长度以及重同步跳转宽度的配置值;在当前CAN节点通信过程中,当前CAN节点中CAN控制器按照所述发送端位时间信息发送数据。本申请能够在实现数据同步的前提下确保CAN节点与其对端设备持续的正常通信。

Description

CAN通信方法、装置、电子设备和存储介质
技术领域
本公开涉及通信领域,特别涉及一种CAN通信方法、装置、电子设备和存储介质。
背景技术
控制器局域网络(CAN,Controller Area Network)总线因其高性能和可靠性已被广泛应用在工业自动化、医疗设备、汽车电子等方面。由于CAN属于异步通讯,没有时钟信号线,因此,连接在同一个CAN总线网络中的各节点间使用约定好的波特率进行通讯,CAN网络使用同步的方式实现总线电平信号的正确采样。可见,波特率偏差将对CAN通信产生至关重要的影响。
目前,使用CAN接口时只需配置收发模式和波特率。但是实际使用时存在以下问题:(1)使用常规配置方法收发数据时,经试验发现,发送(Txd,Transmit external data)端随着数据发送量的增加有些比特的位宽会被拉长,降低波特率,导致采样点和波特率出现偏差;(2)CAN控制器挂接某些波特率偏差容忍度低的设备时,经试验发现,若使用常规配置方法收发数据,提高波特率会导致CAN控制器与其挂接设备无法正常通信,CAN控制器只能接收数据,并且CAN控制器发出的数据对端设备收不到;(3)当CAN控制器挂接多个设备节点时,用常规配置方法收发数据,CAN控制器端只能接收数据,如果发送数据会出现总线挂死现象。
因此,需要一种新的CAN通信方法以减少波特率偏差,确保CAN网络通信正常。
发明内容
有鉴于此,本公开提供了一种CAN通信方法、装置、电子设备和存储介质,以避免发送端数据位宽被拉长,在实现数据同步的前提下确保CAN节点与其对端设备持续的正常通信。
根据本公开的第一方面,提供了一种CAN通信方法,所述方法包括:
在当前CAN节点进行通信前,为当前CAN节点的CAN控制器配置发送端位时间信息,所述发送端位时间信息包括:时间量子的长度、传输段的长度、第一相位缓冲段的长度、第二相位缓冲段的长度以及重同步跳转宽度的配置值;
在当前CAN节点通信过程中,当前CAN节点中CAN控制器按照所述发送端位时间信息发送数据。
本公开的一种可能的实现方式中,在当前CAN节点通信过程中,发送端位时间信息中的时间量子的长度、传输段的长度、第一相位缓冲段的长度以及第二相位缓冲段的长度均固定不变且重同步跳转宽度的取值不超过所述配置值。
本公开的一种可能的实现方式中,所述当前CAN节点中CAN控制器按照所述发送端位时间信息发送数据,包括:每次需要发送数据时,当前CAN节点中CAN控制器均按照所述发送端位时间信息发送数据。
本公开的一种可能的实现方式中,在当前CAN节点通信过程中,当前CAN节点中CAN控制器按照所述发送端位时间信息发送数据,包括:当前CAN节点中CAN控制器根据回读数据和发送数据之间的时间延时,将CAN控制器接收端的第一相位缓冲段拉长预定长度以使得所述回读数据的跳变沿在所述发送数据的同步段内;当前CAN节点中CAN控制器不会根据接收端的第一相位缓冲段的拉长调整发送端的位时间信息,继续按照发送端位时间信息发送后续数据。
本公开的一种可能的实现方式中,还包括:根据所述当前CAN节点挂接的设备节点的波特率容忍度重新配置当前CAN节点的波特率;以及,为当前CAN节点的CAN控制器配置适应新配置的波特率的发送端位时间信息。
本公开的一种可能的实现方式中,所述发送端位时间信息根据如下的CAN通信协议规定计算得到:
seg2≥sjw;
sjw取值范围为1~4且sjw≤min(seg1,seg2);
8Tq≤ss+prop+seg1+seg2≤25Tq;
其中,clk表示CAN节点的时钟频率,sjw表示重同步跳转宽度,ss表示同步段,prop表示传输段,seg1表示第一相位缓冲段,seg2表示第二相位缓冲段,Tq表示时间量子,Baudrate表示波特率,us表示微秒,为时间量子的单位,Sample_pos表示采样率,pre表示预分频系数。
本公开的一种可能的实现方式中,CAN-FD协议仲裁场的所述发送端位时间信息根据如下的CAN-FD通信协议规定计算得到:
seg2≥sjw;
sjw≤min(seg1,seg2);
sjw取值范围为1~16Tq;
8Tq≤ss+prop+seg1+seg2≤80Tq;
其中,clk表示CAN节点的时钟频率,sjw表示重同步跳转宽度,ss表示同步段,prop表示传输段,seg1表示第一相位缓冲段,seg2表示第二相位缓冲段,Tq表示时间量子,Baudrate表示波特率,us表示微秒,为时间量子的单位,Sample_pos表示采样率,pre表示预分频系数。
本公开的一种可能的实现方式中,CAN-FD协议中数据场的所述发送端位时间信息根据如下的CAN-FD通信协议规定计算得到:
sjw≤min(seg1,seg2);
sjw取值范围为1~8dTq;
5dTq≤ss+prop+seg1+seg2≤25dTq;
其中,clk表示CAN节点的时钟频率,sjw表示重同步跳转宽度,ss表示同步段,prop表示传输段,seg1表示第一相位缓冲段,seg2表示第二相位缓冲段,dTq表示数据场时间量子,Baudrate表示波特率,us表示微秒,为时间量子的单位,Sample_pos表示采样率,pre表示预分频系数。
本公开的一种可能的实现方式中,所述当前CAN节点挂接有多个设备节点。
根据本公开的第二方面,提供了一种CAN通信装置,所述CAN通信装置设置于CAN控制器中,所述CAN通信装置包括:
配置单元,用于在当前CAN节点进行通信前,为当前CAN节点的CAN控制器配置发送端位时间信息,所述发送端位时间信息包括:时间量子的长度、传输段的长度、第一相位缓冲段的长度、第二相位缓冲段的长度以及重同步跳转宽度的配置值;
发送单元,用于在当前CAN节点通信过程中,按照所述发送端位时间信息发送数据。
根据本公开的第三方面,提供了一种电子设备,包括:
一个或者多个处理器,和
存储程序的存储器,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据上述第一方面所述的方法。
根据本公开的第四方面,提供了一种CAN节点设备,包括:CAN控制器和CAN收发器;所述CAN控制器,用于根据上述第一方面所述的方法进行数据发送,所述CAN收发器用于将所述CAN控制器发送的数据转换为差分信号送至CAN总线,以便对端设备能够通过CAN总线进行数据接收。
根据本公开的第五方面,提供了一种存储有程序的计算机可读存储介质,所述程序包括指令,所述指令在由计算装置的一个或者多个处理器执行时,致使所述计算装置执行上述第一方面所述的方法。
由上述技术方案可以看出,本申请实施例在CAN控制器的发送端配置发送端位时间信息,CAN控制器按照该发送端位时间信息规定的位时间进行数据发送,从而CAN控制器的发送端位时间不会因其接收端位时间的拉长而变长,而是在每次发送数据时按照规则设置位时间中各段长度,能够有效避免发送端数据位宽被过度拉长,使CAN控制器发送的每个比特的位宽都在可控范围内,提升对端设备的采样点与采得数据的正确率,从而在实现数据同步的前提下确保CAN节点与其对端设备持续的正常通信。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例所适用的CAN网络架构图;
图2为本公开实施例所适用的CAN节点交互示意图;
图3为本公开实施例涉及的CAN协议的位时序分解示意图;
图4为本公开实施例涉及到的CAN重同步机制示意图;
图5为本公开实施例提供的CAN通信方法流程示意图;
图6为本公开实施例涉及到的CAN控制器配置流程示意图;
图7为本公开实施例的CAN控制器配置程序示意图;
图8为本公开实施例涉及的CAN-FD标准帧结构示意图;
图9为本公开实施例涉及的CAN-FD协议的位时序分解示意图;
图10为本公开实施例涉及的CAN-FD协议中CAN控制器配置程序示意图;
图11为本公开实施例提供的CAN通信装置的模块化结构框图;
图12本公开实施例提供的电子设备的示意性框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
在本公开实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
术语解释:
重同步调整宽度(SJW,Resynchronization jump width):由于重同步的结果,相位缓冲段1(PHASE_SEG1)可被延长或者相位缓冲段2(PHASE_SEG2)可被缩短,这两个相位缓冲段的延长和缩短的总和上限由重同步跳转宽度给定。
系统架构
图1示出了CAN网络架构的示例图。参见图1,CAN网络可以包括CAN总线和n个CAN节点(n为大于或等于1的整数),每个CAN节点中至少可以包括CAN控制器、CAN收发器,CAN控制器用于提供基于CAN协议的通信功能,CAN收发器将CAN控制器连接到CAN总线上,CAN总线包括高电平CAN线路CAN_H和低电平CAN线路CAN_L,以便进行差分信号的传输,各CAN节点与其对端设备(即,其他CAN节点)通过CAN总线进行通信。通常,CAN总线上的各个通讯节点只要约定好1个Tq的时间长度以及每个数据位占据多少个Tq,就可以确定CAN通讯的波特率。
CAN控制器可用于将二进制编码的数据(例如,CAN报文)发送到CAN收发器,CAN收发器可用于将该数据转化为差分信号并传递至CAN总线。图2示出了CAN网络结构中单个CAN节点(即CAN节点1)的连接结构及其与对端设备CAN节点2之间交互的示意图。参见图2,CAN控制器具有CAN端口,CAN端口包括用于发送数据的发送端Txd和用于接收数据的接收端Rxd,CAN收发器包括发送器和接收器,CAN收发器中的发送器连接CAN控制器的发送端Txd,用于将CAN控制器发出的数据转换为差分信号CAN_H&CAN_L并送至CAN总线进行传输,CAN收发器中的接收器连接CAN控制器的接收端Rxd,用于将CAN总线传送而来的差分信号CAN_H&CAN_L转换为数据并送至CAN控制器以使得CAN控制器能够接收到CAN总线上其他设备发送的数据。
图2同时示出了CAN总线的回读机制。CAN标准协议中规定,CAN控制器支持回读机制。参见图2,CAN收发器的接收器同时和其发送器连接,用于将CAN控制器送至发送器的数据回读至CAN控制器,以便CAN控制器根据自身发出的数据和相应的回读数据确定当前通信状态并进行实时调整,例如根据自身发出的数据和相应的回读数据进行同步以使得CAN节点与CAN总线上其他设备之间能够数据同步,进而确保通信正常。
CAN网络使用同步的方式来抗干扰、吸收误差,实现对总线电平信号进行正确的采样,确保通讯正常。图3示出了CAN协议的位时序分解示意图。参见图3,为了实现同步,CAN协议把每个数据位的时序分解成同步段(SS,Synchronization Segment)、传播段(Prop,Propagation Segment)、第一相位缓冲段(seg1,Phase Buffer Segment1)、第二相位缓冲段(seg2,Phase Buffer Segment2),这四段的长度加起来即为一个CAN数据位的长度,分解后最小的时间单位是时间量子(Tq,Time quantum),CAN协议中一个完整的CAN数据位由8~25个Tq组成,CAN协议中各段长度及其功能具体如下:
同步段:若通讯节点检测到总线上信号的跳变沿被包含在SS段的范围内,则表示节点与总线的时序是同步的,长度固定为1个Tq;
传播段:用于补偿网络的物理延时时间,是总线上输入比较器延时和输出驱动器延时综合的两倍,长度通常在1~8个Tq,可编程;
第一相位缓冲段:用于补偿节点间的晶振误差,允许通过重同步对该段加长,在这个时间段末端进行总线状态的采样,长度通常在1~8个Tq,可编程;
第二相位缓冲段:用于补偿节点间的晶振误差,允许通过重同步方式对该段缩短,长度通常在1~8个Tq,可编程。
CAN的数据同步包括硬同步和重同步,硬同步用于实现帧起始信号的同步,重同步用于确保帧起始信号后续一连串的位时序都是同步的。然而,在例如飞腾等类型的CAN控制器中发送端与接收端的逻辑实现采用了相同的同步机制。CAN控制器在发送端的相位差补偿机制,使发送端根据总线状态的回读情况执行了偏差补偿,进而导致发送端的位时间概率被拉长。具体地,在重同步机制中,CAN总线的同步只有在节点检测到“隐性位”(逻辑1)到“显性位”(逻辑0)的跳变时才会产生。当跳变沿不位于位周期的同步段之内时将会产生相位误差,该相位误差就是跳变沿与同步段结束位置之间的距离。如果跳变沿发生在同步段之后且采样点之前,则相位误差为正的相位误差;如果跳变沿位于同步段之前且采样点之后,则相位误差为负的相位误差。
图4示出了CAN协议规定的重同步机制示意图。图4中,带箭头的线表示“隐性位”(逻辑1)到“显性位”(逻辑0)的跳变沿。参见图4,CAN控制器在发送数据时也会监听接收端,CAN控制器的发送端发出的数据A将会被回读,数据B即为CAN控制器的接收端接收的数据A的回读数据。当回读数据B的跳变沿不位于数据A的同步段之内时即说明产生了相位误差,数据不同步。因发送端Txd到接收端Rxd至少有CAN收发器的延时,若数据A的跳变沿在其同步段,则其回读数据B的跳变沿通常在传输段Prop或第一相位缓冲段seg1,若同步前回读数据B的跳变沿所在的段相对数据A的同步段向后延时,同步时需要将接收端的第一相位缓冲段seg1变长,也即接收端的位时间因同步的需要将会被拉长,CAN控制器的发送端Txd的位时间也因此被拉长。可见,发送端与接收端相同的同步机制中因同步带来的接收端位时间拉长将会直接导致发送端位时间被拉长,CAN控制器的波特率随之减小。例如,若CAN控制器的数据位正常长度为2微妙,下次发出的数据位长度将会被拉长到2.002微妙。
随着传输数据量的增加,CAN控制器的发送端位时间将随着其接收端位时间的不断拉长而逐步拉长,CAN节点的波特率不断减小,而CAN节点的对端设备将继续采用最初的波特率进行采样,从而导致CAN节点与其对端设备无法正常通信。
鉴于此,本申请实施例提出了如下的CAN通信方法、装置、电子设备和存储介质等,下面对本申请实施例的具体实现方式做详细说明。
图5示出了本申请实施例提供的CAN通信方法流程图,该方法可以由采用发送端与接收端相同的同步机制进行数据同步的CAN节点的CAN控制器执行。参见图5,该方法可以包括以下步骤:
步骤501:在当前CAN节点进行通信前,为当前CAN节点的CAN控制器配置发送端位时间信息,该发送端位时间信息包括:时间量子的长度、传输段的长度、第一相位缓冲段的长度、第二相位缓冲段的长度以及重同步跳转宽度的配置值;
步骤503:在当前CAN节点通信过程中,当前CAN节点中CAN控制器按照所述发送端位时间信息发送数据。
本申请实施例的上述方法,在CAN控制器的发送端配置发送端位时间信息,CAN控制器按照该发送端位时间信息规定的位时间进行数据发送,从而CAN控制器的发送端位时间不会因其接收端位时间的拉长而变长,而是在每次发送数据时按照规则设置位时间中各段长度,能够有效避免发送端数据位宽被过度拉长,使CAN控制器发送的每个比特的位宽都在可控范围内,使得对端设备的采样点更准确,采得数据更正确,从而在实现数据同步的前提下确保CAN节点与其对端设备持续的正常通信。
步骤501中,发送端位时间信息可以根据如下式(1)~(6)的CAN通信协议规定计算得到:
seg2≥sjw (1)
sjw取值范围为1~4且sjw≤min(seg1,seg2) (2)
8Tq≤ss+prop+seg1+seg2≤25Tq (3)
其中,clk表示CAN节点的时钟频率,sjw表示重同步跳转宽度,ss表示同步段,prop表示传输段,seg1表示第一相位缓冲段,seg2表示第二相位缓冲段,Tq表示时间量子,Baudrate表示波特率,us表示微秒,为时间量子的单位,Sample_pos表示采样率,pre表示预分频系数。
步骤501中,可以在CAN节点中CAN控制器的配置过程中完成其发送端位时间信息的配置。
图6示出了步骤501中发送端位时间信息的示例性配置流程示意图。参见图6所示,步骤501中发送端位时间信息的示例性配置流程可以包括:
步骤601,将CAN节点中的CAN控制器与CAN收发器等进行硬件连接,硬件连接时需要检查CAN收发器的接口CAN_H对接外部CAN设备的CAN_H接口、接口CAN_L对接外部CAN设备的CAN_L接口。
步骤602,CAN控制器上电启动并进入操作系统,加载CAN驱动;
步骤603,查看控制器是否存在,若不存在需要返回步骤501,再次排查硬件连接及驱动情况。若控制器存在,则继续步骤504;
具体地,可以进入命令行查看需要验证的CAN控制器是否存在。
步骤604,关闭CAN总线;
这里,关闭CAN总线是指在软件层面上中断CAN总线与当前CAN控制器之间的连接,无需CAN总线下电。
步骤605,对CAN控制器进行相关配置,包括波特率配置,按照规则配置Tq值、位时间中各段的长度以及sjw的值。
步骤606,CAN控制器配置完成后,使能CAN总线以激活CAN控制器的相关配置使其生效,以便CAN控制器按照该相关配置进行后续的数据收发。
这里,使能CAN总线的目的是在软件层面使能CAN总线与当前CAN控制器之间的连接,使得CAN总线与CAN控制器有效通信,CAN控制器的相关配置将被激活,从而CAN控制器能够按照步骤505的配置进行后续的数据收发。
图7示出了CAN控制器的配置程序及其收发数据的程序示意图。图7的示例中,Tq的长度被配置为52ns(纳秒),传输段长度prop-seg被设置为8个Tq,第一相位缓冲段phase-seg1的长度被设置为7个Tq,第二相位缓冲段phase-seg2的长度被配置为8个Tq,重同步跳转宽度sjw被配置为3个Tq。具体应用中,可以根据CAN控制器的主板情况进行调整。对于CAN控制器的发送端位时间信息具体如何配置,本申请实施例不做限制。
步骤503中,在当前CAN节点通信过程中,发送端位时间信息中的时间量子的长度、传输段的长度、第一相位缓冲段的长度以及第二相位缓冲段的长度均可以固定不变,重同步跳转宽度的取值不超过其配置值即可。
步骤503中,每次需要发送数据时,当前CAN节点中CAN控制器均按照所述发送端位时间信息发送数据。
步骤503中,当前CAN节点中CAN控制器可以根据回读数据和发送数据之间的时间延时将CAN控制器接收端的第一相位缓冲段拉长预定长度以使得回读数据的跳变沿在所述发送数据的同步段内;同时,当前CAN节点中CAN控制器不会根据接收端的第一相位缓冲段的拉长调整发送端的位时间信息,而是继续按照发送端位时间信息发送后续数据。由此,可以有效避免发送端数据位宽被过度拉长,使CAN控制器发送的每个比特的位宽都在可控范围内。
若当前CAN节点挂接的设备节点波特率容忍度较低或者当前CAN节点挂接了新的设备节点,该设备节点的波特率容忍度较低,本申请实施例的上述方法还可以包括:根据当前CAN节点挂接的设备节点的波特率容忍度重新配置当前CAN节点的波特率;以及,为当前CAN节点的CAN控制器配置适应新配置的波特率的发送端位时间信息。由此,可以使得CAN控制器在挂接某些波特率偏差容忍度低的设备时能够与其挂接设备正常通信。
本申请实施例的一种实现方式中,当前CAN节点可以挂接有多个设备节点,网络结构可以参见图1所示。当CAN控制器挂接多个设备节点时,使用本申请实施例的上述方法,通过为CAN控制器配置适合该多个设备节点的发送端位时间信息来确保当前CAN节点与其挂接的多个设备节点正常通信,从而有效避免总线挂死现象。
本公开实施例不仅适用于CAN协议,同样可适用于控制器局域网灵活数据(CAN-FD)协议。例如,在一些芯片中有两路CAN控制器,可以兼容CAN2.0标准协议和ISO 11898-1(2015)CAN-FD标准协议,在使用CAN-FD协议时,因板级设计缺陷、布局布线及外围元器件的型号不同,可能会导致波特率在仲裁场是1M、数据场是4M或5M时,出现CAN接口与外设不能正常通信问题。具体表现为CAN控制器发送数据时,发送节点txd发出的数据不完整,或者接收节点txd没有回复ack等现象。此种情况同样可通过本公开实施例的方法来解决。
图8示出了CAN-FD标准帧的结构示意图。参见图8,CAN-FD的标准帧分成仲裁场(CAN-FD arbitration phase)和数据场(CAN-FD data phase),二者波特率不同。CAN-FD中,仲裁场1个比特位中各段表示方法是tq、ss、prop、seg1、seg2、sjw。数据场1个比特位中各段表示方法是时间量子(dtq)、同步段(dss)、传播段(dprop)、第一相位缓冲段(dseg1)、第二相位缓冲段(dseg2)、重同步跳转宽度(dsjw)。图9示出了仲裁场波特率为1M、数据场波特率为2M的位时序分解示意图。当仲裁场波特率为1M、数据场波特率为5M时,可以分别调整其tq值和各段长度,以在满足波特率需求的同时确保通信正常。
下面列举CAN-FD中仲裁场和数据场中数据位各段取值的要求。
一,仲裁场每比特位各段取值要求如下:
1)ss:固定1个Tq;
2)prop:长度可编程,1~48个Tq;
3)seg1:长度可编程,1~16Tq;
4)seg2:长度可编程,2~16Tq;
5)pre:预分频系数;
6)sjw:1~16Tq;
7)8Tq≤ss+prop+seg1+seg2≤80Tq;
8)sjw≤min(seg1,seg2);
9)seg2≥sjw;
10)E2000芯片的CAN时钟频率clk为200M;
11)
12)
二,数据场每比特位各段取值要求如下:
1)dss:固定1个dTq;
2)dprop:长度可编程,0~8个dTq;
3)dseg1:长度可编程,1~8dTq;
4)dseg2:长度可编程,2~8dTq;
5)pre:预分频系数,在偶数分频的场景要求取值是偶数;
6)sjw:1~8dTq;
7)5dTq≤ss+prop+seg1+seg2≤25dTq;
8)sjw≤min(seg1,seg2);
9)
10)
11)
图10示出了CAN-FD的发送端位时间信息配置示例图。参见图10,可以在CAN控制器的发送端位时间信息中将Tq以及各段长度(即,时间量子的长度、传输段的长度、第一相位缓冲段的长度以及第二相位缓冲段的长度)均配置为满足上述仲裁场数据位各段取值要求的最小值、以及满足上述数据场数据位各段取值要求的最小值。具体地,参见图10,Tq配置为50,prop配置为6,seg1配置为6,seg2配置为7,sjw配置为1,dTq配置为10,prop配置为6,seg1配置为6,seg2配置为7,dsjw配置为4。
采用该发送端位时间信息的配置CAN控制器后,既能够满足仲裁场波特率为1M、数据场波特率为5M等需求,还可以确保CAN节点能够正常通信。当然,具体应用中还可结合CAN控制器的主板实际情况采用其他的发送端位时间信息配置方式,对此,本公开实施例不做限制。
由上可见,通过本公开实施例的方法在使用CAN接口时采用通过发送端位时间信息配置Tq值以及数据位各段长度的方式,可以在使用CAN-FD协议时数据段波特率较高比如5M的同时,保证当前CAN节点和对端节点在规定波特率下正常通信。
本申请实施例的上述方法尤其适用于如下场景:
1)采用发送端与接收端相同的同步机制进行数据同步的CAN节点设备;
2)当CAN控制器与波特率偏差容忍度低的设备互联时,提高波特率也能正常通信。
3)当挂接多个设备节点时,可以保证多节点间的正常通信。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
根据另一方面的实施例,提供了一种CAN通信装置。图11示出根据一个实施例的采用计算机程序形式的CAN通信装置的示意性框图,该CAN通信装置可以设置于CAN控制器或者通过CAN控制器实现。如图11所示,该装置1100包括:配置单元1101和发送单元1103。其中各组成单元的主要功能如下:
配置单元1101,用于在当前CAN节点进行通信前,为当前CAN节点的CAN控制器配置发送端位时间信息,发送端位时间信息包括:时间量子的长度、传输段的长度、第一相位缓冲段的长度、第二相位缓冲段的长度以及重同步跳转宽度的配置值;
发送单元1103,用于在当前CAN节点通信过程中,按照所述发送端位时间信息发送数据。
进一步地,在当前CAN节点通信过程中,所述发送端位时间信息中的时间量子的长度、传输段的长度、第一相位缓冲段的长度以及第二相位缓冲段的长度均固定不变且重同步跳转宽度的取值不超过所述配置值。
进一步地,发送单元1103,用于每次需要发送数据时,均按照所述发送端位时间信息发送数据。
进一步地,配置单元1101,还用于根据当前CAN节点挂接的设备节点的波特率容忍度重新配置当前CAN节点的波特率;以及,为当前CAN节点的CAN控制器配置适应新配置的波特率的发送端位时间信息。
上述各个组成单元功能的具体细节可参见前文方法部分,此处不再赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
另外,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,程序包括指令,所述指令在由计算装置的一个或者多个处理器执行时,执行时前述方法实施例中任一项所述的方法的步骤。
本公开实施例还提供的一种电子设备,该电子设备可以为前述的CAN控制器,如图12所示,电子设备包括一个或多个处理器1201,还包括存储一个或多个程序的存储器1202,被上述一个或多个处理器1201执行以实现本公开上述实施例中所示的方法流程和/或装置中各单元所对应的程序单元。
各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器1201可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示用户界面的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。
处理器1201可包括一个或多个单核处理器或多核处理器。处理器1201可包括任何一般用途处理器或专用处理器(如图像处理器、应用处理器基带处理器等)的组合。
存储器1202即为本公开所提供的计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及单元,例如本公开实施例中的如图5所示的CAN通信方法对应的程序指令/单元。处理器1201通过运行存储在存储器1202中的非瞬时软件程序、指令以及单元,从而执行诸如上述方法实施例中如图5示的CAN通信方法对应的程序、指令以及单元。
CAN通信装置还可以包括:输入装置1203和输出装置1204。处理器1201、存储器1202、输入装置1203和输出装置1204可以通过总线或者其他方式连接,图12中以通过总线连接为例。
输入装置1203可接收输入的数字或字符信息,以及产生与CAN通信装置的用户设置以及功能控制有关的信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1204可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
上述程序(也称作软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用面向对象的编程语言、汇编或机器语言来实施这些计算程序。
随着时间、技术的发展,介质含义越来越广泛,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载等。可以采用一个或多个计算机可读的存储介质的任意组合。计算机可读存储介质可以采用但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
本申请实施例还提供了一种CAN节点设备,包括:CAN控制器和CAN收发器;其中,CAN控制器用于根据前述的CAN通信方法进行数据发送;CAN收发器至少可以用于将CAN控制器发送的数据转换为差分信号送至CAN总线,以便对端设备能够通过CAN总线进行数据接收。
以上对本公开所提供的技术方案进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本公开的限制。
以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换等,均应包含在本公开的保护范围之内。

Claims (13)

1.一种CAN通信方法,其特征在于,包括:
在当前CAN节点进行通信前,为当前CAN节点的CAN控制器配置发送端位时间信息,所述发送端位时间信息包括:时间量子的长度、传输段的长度、第一相位缓冲段的长度、第二相位缓冲段的长度以及重同步跳转宽度的配置值;
在当前CAN节点通信过程中,当前CAN节点中CAN控制器按照所述发送端位时间信息发送数据。
2.根据权利要求1所述的方法,其特征在于,在当前CAN节点通信过程中,所述发送端位时间信息中的时间量子的长度、传输段的长度、第一相位缓冲段的长度以及第二相位缓冲段的长度均固定不变且重同步跳转宽度的取值不超过所述配置值。
3.根据权利要求1所述的方法,其特征在于,所述当前CAN节点中CAN控制器按照所述发送端位时间信息发送数据,包括:每次需要发送数据时,当前CAN节点中CAN控制器均按照所述发送端位时间信息发送数据。
4.根据权利要求1所述的方法,其特征在于,在当前CAN节点通信过程中,当前CAN节点中CAN控制器按照所述发送端位时间信息发送数据,包括:
当前CAN节点中CAN控制器根据回读数据和发送数据之间的时间延时,将CAN控制器接收端的第一相位缓冲段拉长预定长度以使得所述回读数据的跳变沿在所述发送数据的同步段内;
当前CAN节点中CAN控制器不会根据接收端的第一相位缓冲段的拉长调整发送端的位时间信息,继续按照发送端位时间信息发送后续数据。
5.根据权利要求1所述的方法,其特征在于,还包括:
根据所述当前CAN节点挂接的设备节点的波特率容忍度重新配置当前CAN节点的波特率;以及,
为当前CAN节点的CAN控制器配置适应新配置的波特率的发送端位时间信息。
6.根据权利要求1或5所述的方法,其特征在于,所述发送端位时间信息根据如下的CAN通信协议规定计算得到:
seg2≥sjw;
sjw取值范围为1~4且sjw≤min(seg1,seg2);
8Tq≤ss+prop+seg1+seg2≤25Tq;
其中,clk表示CAN节点的时钟频率,sjw表示重同步跳转宽度,ss表示同步段,prop表示传输段,seg1表示第一相位缓冲段,seg2表示第二相位缓冲段,Tq表示时间量子,Baudrate表示波特率,us表示微秒,为时间量子的单位,Sample_pos表示采样率,pre表示预分频系数。
7.根据权利要求1或5所述的方法,其特征在于,CAN-FD协议仲裁场的所述发送端位时间信息根据如下的CAN-FD通信协议规定计算得到:
seg2≥sjw;
sjw≤min(seg1,seg2);
sjw取值范围为1~16Tq;
8Tq≤ss+prop+seg1+seg2≤80Tq;
其中,clk表示CAN节点的时钟频率,sjw表示重同步跳转宽度,ss表示同步段,prop表示传输段,seg1表示第一相位缓冲段,seg2表示第二相位缓冲段,Tq表示时间量子,Baudrate表示波特率,us表示微秒,为时间量子的单位,Sample_pos表示采样率,pre表示预分频系数。
8.根据权利要求1或5所述的方法,其特征在于,CAN-FD协议中数据场的所述发送端位时间信息根据如下的CAN-FD通信协议规定计算得到:
sjw≤min(seg1,seg2);
sjw取值范围为1~8dTq;
5dTq≤ss+prop+seg1+seg2≤25dTq;
其中,clk表示CAN节点的时钟频率,sjw表示重同步跳转宽度,ss表示同步段,prop表示传输段,seg1表示第一相位缓冲段,seg2表示第二相位缓冲段,dTq表示数据场时间量子,Baudrate表示波特率,us表示微秒,为时间量子的单位,Sample_pos表示采样率,pre表示预分频系数。
9.根据权利要求1所述的方法,其特征在于,所述当前CAN节点挂接有多个设备节点。
10.一种CAN通信装置,其特征在于,所述CAN通信装置设置于CAN控制器中,所述CAN通信装置包括:
配置单元,用于在当前CAN节点进行通信前,为当前CAN节点的CAN控制器配置发送端位时间信息,所述发送端位时间信息包括:时间量子的长度、传输段的长度、第一相位缓冲段的长度、第二相位缓冲段的长度以及重同步跳转宽度的配置值;
发送单元,用于在当前CAN节点通信过程中,按照所述发送端位时间信息发送数据。
11.一种电子设备,其特征在于,包括:
一个或者多个处理器,和
存储程序的存储器,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1至9中任一项所述的方法。
12.一种CAN节点设备,其特征在于,包括:CAN控制器和CAN收发器;
所述CAN控制器,用于根据权利要求1至9中任一项所述的方法进行数据发送;
所述CAN收发器,用于将所述CAN控制器发送的数据转换为差分信号送至CAN总线,以便对端设备能够通过CAN总线进行数据接收。
13.一种存储有程序的计算机可读存储介质,所述程序包括指令,所述指令在由计算装置的一个或者多个处理器执行时,致使所述计算装置执行根据权利要求1至9中任一项所述的方法。
CN202410316099.XA 2024-03-19 2024-03-19 Can通信方法、装置、电子设备和存储介质 Pending CN117997672A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410316099.XA CN117997672A (zh) 2024-03-19 2024-03-19 Can通信方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410316099.XA CN117997672A (zh) 2024-03-19 2024-03-19 Can通信方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN117997672A true CN117997672A (zh) 2024-05-07

Family

ID=90887263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410316099.XA Pending CN117997672A (zh) 2024-03-19 2024-03-19 Can通信方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN117997672A (zh)

Similar Documents

Publication Publication Date Title
KR102035986B1 (ko) 타이밍 컨트롤러와 상기 타이밍 컨트롤러를 포함하는 디스플레이 시스템
EP3550724A1 (en) Signal transmission method, driver, and system
KR101574953B1 (ko) 광 메모리 확장 아키텍처
US20170041086A1 (en) Data transmission apparatus for changing clock signal at runtime and data interface system including the same
EP0380856A2 (en) Method and apparatus for interfacing a system control unit for a multi-processor
JPH0713926A (ja) バッファ制御回路及びその操作方法
US20090150706A1 (en) Wrapper circuit for globally asynchronous locally synchronous system and method for operating the same
CN108920401B (zh) 多主多从的i2c通信方法、系统及节点设备
EP3200089A1 (en) Method, apparatus, communication equipment and storage media for determining link delay
US7353300B2 (en) Apparatus to improve the firmware efficiency for a multiframe serial interface
JP2001016234A (ja) Canコントローラおよびcanコントローラを内蔵したワンチップ・コンピュータ
CN116599589B (zh) 一种信号同步的方法、装置、设备及介质
CN117997672A (zh) Can通信方法、装置、电子设备和存储介质
EP1729199B1 (en) Method for improving the data transfer in semi synchronous clock domains integrated circuits at any possible M/N clock ratio
US11960367B2 (en) Peripheral component interconnect express device and operating method thereof
CN113836058B (zh) 一种板卡间数据交换方法、装置、设备及存储介质
CN112817895B (zh) 一种基于gpio的通信方法
CN116318601A (zh) 用于高速信令互连的帧对齐恢复
US20140365629A1 (en) Information processing system
KR101999125B1 (ko) Rs-422와 rs-485 시리얼 통신을 위한 출력신호 자동 제어기
CN118244841B (zh) 一种服务器时钟架构及其配置方法、设备、产品及介质
JP7337021B2 (ja) 産業用ネットワークに接続されるスレーブ装置を制御するマスタ装置及び当該マスタ装置に備えられる通信モジュール
CN114090494B (zh) 数据传输方法、装置、设备和存储介质
US20030053573A1 (en) Microcontroller having a transmission-bus-interface
WO2023159415A1 (en) Adaptive low-power signaling to enable link signal error recovery without increased link clock rates

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination