CN104092515B - 兼容can2.0b协议的can总线通信方法 - Google Patents
兼容can2.0b协议的can总线通信方法 Download PDFInfo
- Publication number
- CN104092515B CN104092515B CN201410329183.1A CN201410329183A CN104092515B CN 104092515 B CN104092515 B CN 104092515B CN 201410329183 A CN201410329183 A CN 201410329183A CN 104092515 B CN104092515 B CN 104092515B
- Authority
- CN
- China
- Prior art keywords
- ecan
- bit
- agreements
- speed
- frames
- 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.)
- Expired - Fee Related
Links
- 238000004891 communication Methods 0.000 title claims abstract description 64
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000005540 biological transmission Effects 0.000 claims description 30
- 238000012546 transfer Methods 0.000 claims description 16
- 102000009142 CRC domains Human genes 0.000 claims description 14
- 108050000006 CRC domains Proteins 0.000 claims description 14
- 230000007246 mechanism Effects 0.000 claims description 11
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 238000009432 framing Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 3
- 230000036961 partial effect Effects 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- ROXBGBWUWZTYLZ-UHFFFAOYSA-N [6-[[10-formyl-5,14-dihydroxy-13-methyl-17-(5-oxo-2h-furan-3-yl)-2,3,4,6,7,8,9,11,12,15,16,17-dodecahydro-1h-cyclopenta[a]phenanthren-3-yl]oxy]-4-methoxy-2-methyloxan-3-yl] 4-[2-(4-azido-3-iodophenyl)ethylamino]-4-oxobutanoate Chemical compound O1C(C)C(OC(=O)CCC(=O)NCCC=2C=C(I)C(N=[N+]=[N-])=CC=2)C(OC)CC1OC(CC1(O)CCC2C3(O)CC4)CCC1(C=O)C2CCC3(C)C4C1=CC(=O)OC1 ROXBGBWUWZTYLZ-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000007634 remodeling Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
Landscapes
- Communication Control (AREA)
Abstract
本发明公开了一种兼容CAN2.0B协议的CAN总线通信方法,采用增强型CAN协议,即ECAN协议通信;其中,所述ECAN协议为对CAN2.0B协议重新定义后的协议,所述ECAN协议使得采用ECAN协议通信的节点比采用CAN2.0B协议通信的节点具有更高的速率实现节点之间的通信,同时使得所述采用ECAN协议通信的节点可与采用CAN2.0B协议通信的节点共存于同一个网络。本发明使得在提高通信速率的同时,与已有的符合CAN 2.0B标准的节点可以共存于同一个网络,兼容性好。
Description
技术领域
本发明涉及工业控制领域,特别涉及一种兼容CAN2.0B协议的CAN总线通信方法。
背景技术
CAN总线是BOSCH公司为现代汽车电子设备互联通信设计的一种多主机设备局部网,其卓越的性能已经广泛应用于工业控制、交通工具、医疗仪器、数控机床等众多场合。BOSCH公司在1991年发布了包含具有11位ID的CAN2.0A和29位ID的CAN2.0B协议的CAN2.0规范,但随着应用需求的增加,其最高1Mbps通信速率已经不能满足应用需求,因此BOSCH在2012年发布了具有更高通信速率的CAN FD1.0协议,该协议虽然能提升基于CAN FD协议节点之间的通信速率,但无法兼容现有的基于CAN2.0B协议的节点。换言之,它只能用于构建全新的基于CAN FD协议的网络,因此亟需一种与CAN2.0B节点兼容并达到较高通信速率的技术手段。
发明内容
本发明的目的在于克服现有技术中所存在的上述不足,提供一种兼容CAN2.0B协议的CAN总线通信方法,其在兼容现有CAN2.0B协议的前提下,提高CAN总线网络节点间的通信速率。
为了实现上述发明目的,本发明采用的技术方案是:一种兼容CAN2.0B协议的CAN总线通信方法,采用增强型CAN协议,即ECAN协议通信;其中,所述ECAN协议为对CAN2.0B协议重新定义后的协议,所述ECAN协议使得采用ECAN协议通信的节点比采用CAN2.0协议通信的节点具有更高的速率实现节点之间的通信,同时使得所述采用ECAN协议通信的节点可与采用CAN2.0B协议通信的节点共存于同一个网络。
本发明保留BOSCH公司CAN 2.0B协议标准的除物理层数据帧外的所有其它帧类型、帧格式、应答响应机制、错误判断与错误计数机制,以及其它涉及到的物理层通信的所有方法,仅改变其物理层数据帧的帧格式并通过在CAN2.0B帧的数据域和CRC域***高速比特的方式来实现通信速率的提升,同时实现与采用CAN2.0B协议通信的节点共存于同一网络。
所述ECAN协议具体构成为:在CAN2.0B的基础上,保留其各字段并重新定义其远程帧指示位RTR、保留位R0和R1来区分CAN2.0B数据帧和ECAN数据帧,ECAN协议仲裁域定义及相应的仲裁机制与CAN2.0B协议相同;ECAN协议中在对应于CAN2.0B协议的数据域和CRC域内填充高速比特数据实现传输速率的提升,所述高速比特数据的填充符合CAN2.0B协议的比特填充规律。
在本发明的一个实施例中,所述高速比特数据的填充采用以下第一方式:
每3比特一组的最后一个“R”全部用于传输高速比特,若高速比特的传输速率为CAN2.0B比特传输速率的倍,则每3个CAN2.0B比特可以传输比特的用户数据,N为不小于1的整数。
在本发明的又一实施例中,所述高速比特数据的填充采用以下第二方式:在第一方式的基础上,除第一组外,每组开始的“R”比特的同步段和相位段减去同步跳转宽度SJW的时间用于传输高速比特,增加传输速率。
在本发明的另一实施例中,所述高速比特数据的填充采用以下方式:在第二方式的基础上,增加每组的“D”比特的相位段减去同步跳转宽度SJW的时间用于传输高速比特,以进一步增加传输速率。
新的数据帧我们称之为ECAN数据帧,符合新的帧及相应的响应机制的CAN节点被称之为ECAN节点。
与现有技术相比,本发明的有益效果: 本发明中网络节点间采用增强型CAN协议,即ECAN协议通信,ECAN协议为对CAN2.0B协议重新定义后的协议,所述ECAN协议使得采用ECAN协议通信的节点比采用CAN2.0协议通信的节点具有更高的速率实现节点之间的通信,同时使得所述采用ECAN协议通信的节点可与采用CAN2.0B协议通信的节点共存于同一个网络。因此,本发明在兼容现有采用CAN2.0B协议通信的节点的前提下,提高了基于CAN总线协议的网络节点间的通信速率。
附图说明:
图1是 CAN 2.0B与ECAN物理层数据帧结构示意图;
图2是 ECAN帧高速比特数据填充三种方法示意图。
具体实施方式
下面结合具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。
本发明旨在兼容现有采用CAN2.0B协议通信的节点的前提下,提高了基于CAN总线协议的网络节点间的通信速率。
本发明实施例提供的兼容CAN2.0B协议的CAN总线通信方法,采用增强型CAN协议,即ECAN协议通信;其中,所述ECAN协议为对CAN2.0B协议重新定义后的协议,所述ECAN协议使得采用ECAN协议通信的节点比采用CAN2.0协议通信的节点具有更高的速率实现节点之间的通信,同时使得所述采用ECAN协议通信的节点可与采用CAN2.0B协议通信的节点共存于同一个网络。
为了描述方便,本发明中自定义增强数据帧为ECAN(Enhancement CAN)帧,本发明中所涉及到的帧数据的描述(例如信号的状态描述,隐性位Recessive-简称R,显性位Dominant-简称D等)与CAN2.0协议(Robert Bosch GmbH. CAN Specification, Version2.0. 1991)的定义相同,换言之本发明仅对CAN2.0的数据帧进行了重新定义,其它所有内容与BOSCH CAN2.0规范相同。同时,为了描述方便,本发明中“CAN2.0”指BOSCH CAN2.0A和CAN2.0B协议(Robert Bosch GmbH. CAN Specification, Version 2.0. 1991)所规定的内容,“CAN2.0A”指基本型BOSCH CAN2.0A(11位ID),“CAN2.0B”指扩展型BOSCH CAN2.0B(29位ID)。
本发明保留BOSCH公司CAN 2.0B协议标准的除物理层数据帧外的所有其它帧类型、帧格式、应答响应机制、错误判断与错误计数机制,以及其它涉及到的物理层通信的所有方法,仅改变其物理层数据帧的帧格式并通过在CAN2.0B帧的数据域和CRC域***高速比特的方式来实现通信速率的提升,同时实现与采用CAN2.0B协议通信的节点共存于同一网络。
本发明在于重新设计CAN2.0B协议的物理层数据帧,以比CAN2.0B节点更高的速率实现新节点(即采用ECAN协议的节点)之间的通信,同时这些新节点可以与CAN2.0B节点共存于同一个网络,实现基于该数据帧格式的节点与现有CAN2.0B节点的兼容,本发明中将重新设计的CAN2.0B协议的物理层数据帧结构和机制称为增强型CAN通信协议,简称ECAN协议,符合新的ECAN帧结构定义及相应的响应机制的CAN节点被称之为ECAN节点。
对于ECAN的帧结构,仅对CAN2.0B的数据帧进行重新设计,远程帧、错误帧、过载帧以及帧间空隙均与CAN2.0B标准相同。在增强型通信中,为了提高通信速率,在CAN2.0B的基础上,保留其各字段并重新定义其远程帧指示位RTR、保留位R0和R1来区分CAN2.0B数据帧和ECAN数据帧,ECAN协议仲裁域定义及相应的仲裁机制与CAN2.0B协议相同;ECAN协议中在对应于CAN2.0B协议的数据域和CRC域内填充高速比特数据实现传输速率的提升,所述高速比特数据的填充符合CAN2.0B协议的比特填充规律。即在CAN2.0B协议的数据域和CRC域采用变速率方式实现在传输高速比特的同时保证CAN2.0B节点的比特填充规律(不能出现连续6个相同值)并使其能进行正确的同步调整(即在ECAN帧结构设计中保留间隔足够短的同步沿),以实现兼容性。
ECAN数据帧帧格式和CAN 2.0B数据帧格式如图1所示。对于CAN2.0B帧,101是其帧开始标志位SOF,102是其仲裁域,103是远程帧指示位RTR,104、105和106分别为其控制域中的保留位R1、R0和DLC,107为数据域、108为CRC,109为CRC定界符,110和111分别为应答位ACK及ACK定界符,112为帧结尾EOF。
对于ECAN帧,其仲裁域114与CAN2.0B帧相同,仅将CAN2.0B帧的RTR位定义为115为保留位R1,并发送显性位“D”,因此对于ECAN帧无远程帧,在ECAN的使用中,远程帧由CAN2.0B的远程帧来完成。在控制域,CAN2.0B的保留位R1和R0发送显性位“D”,对应到ECAN帧中定义为ECAN标识位EDL(116)和保留位R0(117),EDL发送隐性位“R”,R0发送显性位“D”,因此104和116是区别CAN2.0B帧和ECAN帧的唯一标识。106和118的DLC字段给出了后续传输数据的长度,其具体数值符合CAN2.0B的规定,CAN2.0B节点按照CAN2.0B协议进行数据长度解释,而ECAN节点则对传输数据长度重新解释(具体见后面解释部分),因此每一个DLC所规定的CAN2.0B帧都对应了一个ECAN帧。CAN2.0B帧的107和108的时间段对应了ECAN帧的119、120和121时间段,在ECAN帧的119、120时间段内传输高速填充的用户数据,从而来提高传输速率。其中121为ECAN帧的接收错误标识,与CAN2.0B的比特时间相同,在CAN2.0B帧中该比特为CRC的最后一个比特,在ECAN帧中由接收端根据接收的ECAN数据CRC校验正确性来发送“D”或者“R”。122(CRC定界符)、123(ACK)、124(ACK定界符)、125(EOF)与CAN2.0B帧的109(CRC定界符)、110(ACK)、111(ACK定界符)、112(EOF)一一对应,并具有与CAN2.0B相同的发送规则。
与CAN2.0B协议的数据帧对应,ECAN数据帧也包含了帧开始(SOF)、仲裁域(ID)、控制域(CONTROL)、数据域(DATA)、循环冗余校验域(CRC)、应答域(ACK)和帧结尾(EOF)。图1中深色部分为ECAN数据帧的变速率区间,它包含了ECAN帧的数据域和CRC域,ECAN数据帧的其它部分仍然按照CAN2.0B的速率进行传输;ECAN帧的SOF、ACK、ACK定界符和EOF与CAN2.0B定义相同;在仲裁域将ECAN帧的RTR位修改为保留位R1,并传输显性位“D”;在控制域将CAN2.0B帧的保留位R1修改为EDL位,并传输隐性位“R”,以此来区分CAN2.0B和ECAN帧,EDLC字段;CAN2.0B和ECAN帧节点对DLC字段做不同的长度解释。通过这种对CAN2.0B帧结构的修改,使得在CAN2.0B的数据域和CRC域期间可以进行高速比特数据的传输,同时在传输高速ECAN帧时网络中的CAN2.0B节点可以进行正确的同步、比特填充错误检测,以实现高速ECAN帧和CAN2.0B帧共存于同一个网络,从而解决CAN2.0B帧和CAN FD帧的高速传输和兼容性问题。
由于在变速率部分,网络中已有的CAN2.0B节点以较低的速率来采集高速率数据,可能出现随机错误。为了阻止网络中已有CAN2.0B节点在ECAN帧高速率部分发出比特填充错误,则在ECAN帧高速率部分对应固定位置填充符合CAN2.0B协议的额外数据。此外,为了让CAN2.0B节点不产生帧格式错误,则已有的CAN2.0B节点则需正确解析ECAN帧的数据长度、CRC定界符、ACK域以及EOF。ECAN帧在这些有关帧数据格式的关键位置也与CAN2.0标准保持一致。因此,每一个ECAN帧的整个持续时间长度与CAN2.0B定义的帧相同,同时在ECAN帧中必须对DLC段定义的数据长度做重新解释(具体见后面解释部分)。
下面结合图1对ECAN帧结构具体说明:
1)SOF:帧开始标识与CAN2.0B协议定义相同,工作在CAN2.0B所使用的速率下,发送端以从R(Reccessive,隐性位,逻辑“1”)到“D”(Dominate,显性位,或者逻辑“0”)的跳变作为帧开始,接收端在检测到跳变时完成初始的比特硬同步。
2)仲裁域:除CAN2.0B数据帧的RTR位对应了ECAN的保留位R1外,仲裁域的其它部分与ECAN数据帧与CAN2.0B数据帧相同。在CAN2.0B帧中RTR发送R时为远程帧,发送D时为数据帧,对应的ECAN帧中的R1发送D,因此限定了ECAN帧无远程帧,要实现远程帧的功能则需要利用CAN2.0B的方式实现。
仲裁域用于总线仲裁,ID的具体分配需要***层面考虑,ID的分配与常规的CAN2.0B总线仲裁完全相同,有些ECAN帧可以比CAN2.0B帧的优先级高,而有些则可以较CAN2.0B帧的优先级低。
3)控制域:控制域中由6比特数据组成,具体包括EDL:CAN2.0B节点的保留位R1对应了ECAN帧节点的EDL位,在CAN2.0B帧中为D,在ECAN帧节点中为R,该位是区别CAN2.0B帧与ECAN帧的唯一标识。
R0:在CAN2.0B的增强帧中为保留位,该位为D,ECAN帧节点利用EDL到R0的跳变进行一次硬同步,CAN2.0B节点对该位不做判断。
DLC:DLC为数据长度,共4位,在CAN2.0B节点和ECAN节点中做不同解释。其值为0~8,在CAN2.0B中表示传输的字节数,大于8的值被解释为8。对于ECAN帧,将对DLC段做重新解释,见后续内容的ECAN帧数据长度解释部分的内容。
数据域
对于CAN2.0B帧,其长度为DLC规定的用户传输字节数,对于ECAN帧,其长度见后续内容的ECAN帧数据长度解释部分的内容。当应用层所传输比特数小于ECAN所解释得到的数据长度时,应先在应用层填充,填充值也纳入CRC的计算。
需要说明的是,为了每个ECAN帧与CAN2.0B帧唯一对应,则应在ECAN帧的固定位置***比特,以避免在ECAN帧的通信中CAN2.0B产生比特填充错误标识,见数据域与CRC域的填充方法的描述。
CRC域:CRC域包含快速率和与CAN2.0B相同速率的两部分。
CRC序列:为了增加有效数据长度,CRC采用与CAN2.0B协议完全相同的CRC算法,它以快速率传输;但在符合本发明所述的填充规则下,CRC也可以根据实际需求改变,利用不同于CAN2.0B协议的多项式来生成CRC序列,需要进行CRC计算的数据CAN2.0B规定一致(即包括了SOF、仲裁域、控制域和数据域)。
ECRC错误:当ECAN节点接收端CRC检查未发现错误,则该标识在ECRC错误指示期间送R,当接收端发现CRC不相符,则错误被动的ECAN帧接收节点发送R,错误主动的ECAN帧接收节点发送D。通过这种方式,相当于单独进行ECAN帧的错误应答和错误标识。设置ECRC错误应答的原因在于,由于CAN2.0B节点在采集ECAN帧时CRC出错概率大,若发现错误,按照CAN2.0B协议,将在ACK定界符后给出错误标识。而ECAN节点发送端可能收到ACK的应答,但又收到错误标识,无法判断该错误标识是因为真正的格式错误,还是来自于CAN2.0B节点。设置该位使得在CAN2.0B应答前就能确定数据的正确性。
CRC定界符:CRC定界符为一个CAN2.0B速率的比特持续时间,值为R,其定义与CAN2.0B一致。ECAN帧节点同CAN2.0B节点一样,也检查诸如CRC定界符这类的形式错误。
ACK slot:当接收端接收完成,并CRC校验通过时,将在该位置发送一个D。在ECAN帧通信中,CAN2.0B节点接收到CRC错误概率很大,当发现CRC错误时发送一个R。而对应的ECAN节点,只要CRC校验通过,则发送应答D,否则发送R。
ACK定界符:其定义与CAN2.0B协议中的一致。
EOF:与CAN2.0B协议中的一致。
本发明规定了一种增强型CAN总线数据帧格式,可以但不限于利用单片机、AISC、FPGA等载体来实现。
接下来说明上述对ECAN数据帧数据域与CRC域的高速比特数据填充方法:
在传输ECAN帧的高速率部分时,CAN2.0B节点仍然监听总线状态,由于CAN2.0B节点具有自动调整采样点机制、高速数据的随机性等因素,对于CAN2.0B节点来讲,它将在高速部分采集到不确定值,可能破坏CAN2.0B的填充规则。另一方面,在高速帧传输期间,CAN2.0B节点仍然在进行比特同步等工作,特殊情况下的向同一个方向的重同步所带来的误差累积也可能导致比特填充错误。因此,位流的填充应充分考虑这两方面的因素,高速数据的传输期间应从协议上保证CAN2.0B节点不产生错误标识以打断高速数据的传输。
此外,数据帧的帧长无论从CAN2.0B节点和ECAN帧节点看来都应该分别符合其协议规定。由于CAN2.0B节点已经有相关协议规定其DLC域的意义,因此ECAN帧在此基础上进行重新解释,具体见后续内容“ECAN帧对DLC字段的解释”部分。CAN2.0B节点的数据帧和ECAN帧在时间上相等,每一个ECAN帧都对应了一个CAN2.0B帧。
本发明的高速比特数据填充方法,即ECAN帧的三种高速比特数据填充方式如图2所示。在CAN2.0B帧的DLC字段之后、ECRC错误比特之前用于传输高速的填充。一个CAN2.0B帧比特时间包含了同步段SYN(201)、相位段1(202)、相位段2(203)。对于三种填充方式,首先在“ECRC错误”比特之前固定传输一个“R”和“D”,然后从DLC之后到201之前的数据按照3个CAN2.0B比特一组,每组的值为“R”、“D”、“R”方式来排列数据。若DLC规定的传输数据比特数非3的整数倍,剩余一比特情况下201之前传输“R”,剩余2比特情况下201之前传输“R”和“D”。具体有3中不同的实现方式:
方式1,每3比特一组的最后一个“R”(207)全部用于传输高速比特,若高速比特的传输速率为CAN2.0B比特速率的倍,则每3个CAN2.0B比特可以传输比特的用户数据。
方式2,在方式1的基础上,除第一组外,每组开始的“R”比特的同步段和相位段1减去同步跳转宽度SJW的时间用于传输高速比特,即增加208来***高速比特。
方式3,在方式2的基础上,增加每组的“D”比特的相位段1减去同步跳转宽度SJW的时间来传输高速比特,即增加209的时间来传输高速比特,以进一步增加传输速率。
参看图2,位置204及其它向下的箭头为CAN2.0B比特所设定的采样点位置,在图2中,SJW与CAN2.0B相位段2宽度相同,根据协议要求,SJW小于相位段2的宽度即可,ECAN的每个高速填充比特具有与CAN2.0B相同的同步段、相位段1和相位段2的定义。206和211是方式1、方式2和方式3下都具有的两个“R”到“D”的转换沿,ECAN节点接收时在这两个沿需进行硬同步,其它同步规则与CAN2.0B定义相同。方式1、方式2和方式3的高速比特数据填充方式保证了CAN2.0B节点在ECAN帧发送期间可以进行正确的同步调整、比特填充错误检查,在ECAN节点接收ECAN帧时也按照CAN2.0B的规则和传输速率进行比特填充检测,而对于高速比特不再进行比特填充错误检测,只进行同步调整。
高速比特数据填充方式1、方式2和方式3仅给出了在本发明方案下的三种填充示例,其它的在ECAN帧发送期间能避免CAN2.0B节点填充和同步错误的填充方式也属于本发明保护范围。
下面再对高速比特填充方法具体说明:填充后的帧格式应能及时修正由于高速数据的不确定性所带来的错误,以免错误累积出现多采集或漏采集数据。其次,填充后帧格式应保证CAN2.0B节点不连续采集到6个相同值。根据这两方面因素可得到多种填充方案,本发明给出如图2所示的三种填充示例,其中SJW和SYN分别为CAN2.0B节点的最大跳转宽度和同步段。
方式1:在CAN2.0B帧结构自DLC字段后,CRC定界符之前以CAN2.0B的比特传输速率的每一个R到D的变化之后***高速数据(图2中的深色填充部分),这种方式相当于将原有的CAN2.0B帧分成了每三比特一组,每组的比特值为一个R、一个D,紧跟一个高速数据传输间歇(宽度为一个CAN2.0B比特时间);在ECRC比特之前,以CAN2.0B速率传输一个R和一个D结束;若DLC字段所确定的CAN2.0B传输比特数目非3的整数倍,若最后一组只有一个CAN2.0B比特,则该组传输R,若最后一组剩余两个CAN2.0B比特,则该组先传输R再传输D。
方式2:在方式1的基础上再在CAN2.0B帧同步段和传播段1减去SJW后所剩下的时间内传输高速比特,使深色部分采样点之后可能出现的错误同步沿可以在下一个R到D的沿得到纠正。
方式3:在方式2基础上在CAN2.0B传输D期间的传播段减去SJW后剩下的时间内也传输高速比特;此外,考虑到每3个比特就有一个确定的R到D的沿,在符合CAN2.0B时钟稳定度要求的前提下,可将深色部分往相位段1和相位段2内扩散,以进一步增加传输速率。
以上3种方式在ECRC错误比特之前均***1个标准CAN2.0B帧的R和D,ECAN节点在该沿进行硬同步;类似地,DLC之后的第一个R到D的沿,ECAN节点也进行硬同步。
ECAN帧中对DLC字段的解释:令DLC的值为,它在CAN2.0B节点中解释为传输数据的字节数,允许的值为0~8,超过8的值被认为是8。由于ECAN帧与CAN2.0B帧一一对应,因此每一个分别对应了一个ECAN帧的传输数据长度。令变速率部分的传输速率为CAN2.0B传输速率的倍,它表明在一个CAN2.0B比特传输间隙期间可以传输的ECAN帧数据为比特。
对于本发明的基于对CAN2.0B数据域和CRC域进行高速比特填充的方法, 为CAN2.0B和ECAN节点都能识别的DLC值,它表示在该帧中CAN2.0B帧的传输字节数,若高速传输部分的速率为CAN2.0B速率的倍,则ECAN在一帧中所能传输的比特数目为图1和图2所示的深色填充部分的比特数。
对于填充方式1,对应的ECAN帧允许的用户数据比特数为:(为ECAN帧的CRC长度),得到的与ECAN帧数据长度(比特数)的对应关系如表1所示。在ECAN帧的应用中,若实际传输的数据长度与表1所规定的传输长度不一致时,则需在应用层先进行填充。
表1 填充方式1下的DLC与HW帧有效数据长度对应值
1 | 5 | ||
2 | 6 | ||
3 | 7 | ||
4 | 8 |
对于方式2,对应的ECAN帧允许的用户数据比特数为: (为ECAN帧的CRC长度,为ECAN帧的同步跳转宽度),得到的与ECAN帧数据长度(比特数)的对应关系(这里令),如表2所示。
表2 填充方式2下的DLC与HW帧有效数据长度对应值
1 | 5 | ||
2 | 6 | ||
3 | 7 | ||
4 | 8 |
对于方式3,对应的ECAN帧允许的用户数据比特数为: (为ECAN帧的CRC长度,为ECAN帧的同步跳转宽度),得到的与ECAN帧数据长度(比特数)的对应关系(这里令),如表3所示。
表3 填充方式3下的DLC与HW帧有效数据长度对应值
1 | 5 | ||
2 | 6 | ||
3 | 7 | ||
4 | 8 |
本发明中给出了三种快速比特填充方式,但具体实现时不限于这三种填充方式,具体实现中可以根据具体需要对CAN2.0B的数据域和CRC域进行预先分配***图案,该图案可以在应用时设定。
为了实现与CAN2.0B帧共存于同一个网络,基于本发明实现的ECAN节点应首先能正确识别接收到的帧是CAN2.0B帧或者是ECAN帧,基于不同的应用,基于本发明的ECAN节点实现的具体内容包括:
1)支持CAN2.0B所有类型帧的接收;
2)若需要ECAN节点与CAN2.0B节点通信,则ECAN节点需要实现CAN2.0B的数据帧接收和发送,在与CAN2.0B节点通信时遵从CAN2.0B协议;
3)若仅支持ECAN节点的通信,则需要实现CAN2.0B数据帧的接收监控,能区分ECAN帧和CAN2.0B帧,实现本发明所规定的ECAN帧的发送和接收,并可根据设定是否对CAN2.0B节点的接收错误进行响应,无需发送CAN2.0B数据帧。
本发明中网络节点间采用增强型CAN协议,即ECAN协议通信,ECAN协议为对CAN2.0B协议重新定义后的协议,所述ECAN协议使得采用ECAN协议通信的节点比采用CAN2.0协议通信的节点具有更高的速率实现节点之间的通信,同时使得所述采用ECAN协议通信的节点可与采用CAN2.0B协议通信的节点共存于同一个网络。因此,本发明在兼容现有采用CAN2.0B协议通信的节点的前提下,提高了基于CAN总线协议的网络节点间的通信速率。
上面结合附图对本发明的具体实施方式进行了详细说明,但本发明并不限制于上述实施方式,在不脱离本申请的权利要求的精神和范围情况下,本领域的技术人员可以作出各种修改或改型。
Claims (4)
1.一种兼容CAN2.0B协议的CAN总线通信方法,其特征在于,采用增强型CAN协议,即ECAN协议通信;其中,所述ECAN协议为对CAN2.0B协议重新定义后的协议,所述ECAN协议使得采用ECAN协议通信的节点比采用CAN2.0B协议通信的节点具有更高的速率实现节点之间的通信,同时使得所述采用ECAN协议通信的节点可与采用CAN2.0B协议通信的节点共存于同一个网络;
其中,所述ECAN协议具体构成为:
在CAN2.0B的基础上,保留其各字段并重新定义其远程帧指示位RTR、保留位R0和R1来区分CAN2.0B数据帧和ECAN数据帧,ECAN协议仲裁域定义及相应的仲裁机制与CAN2.0B协议相同;ECAN协议中在对应于CAN2.0B协议的数据域和CRC域内填充高速比特数据实现传输速率的提升,所述高速比特数据的填充符合CAN2.0B协议的比特填充规律。
2.根据权利要求1所述的兼容CAN2.0B协议的CAN总线通信方法,其特征在于,所述高速比特数据的填充采用以下第一方式:
每3比特一组的最后一个“R”全部用于传输高速比特,若高速比特的传输速率为CAN2.0B比特传输速率的N倍,则每3个CAN2.0B比特可以传输N比特的用户数据,N为不小于1的整数。
3.根据权利要求2所述的兼容CAN2.0B协议的CAN总线通信方法,其特征在于,所述高速比特数据的填充采用以下第二方式:
在第一方式的基础上,除第一组外,每组开始的“R”比特的同步段和相位段1减去同步跳转宽度SJW的时间用于传输高速比特。
4.根据权利要求3所述的兼容CAN2.0B协议的CAN总线通信方法,其特征在于,所述高速比特数据的填充采用以下方式:
在第二方式的基础上,增加每组的“D”比特的相位段1减去同步跳转宽度SJW的时间用于传输高速比特,以进一步增加传输速率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410329183.1A CN104092515B (zh) | 2014-07-11 | 2014-07-11 | 兼容can2.0b协议的can总线通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410329183.1A CN104092515B (zh) | 2014-07-11 | 2014-07-11 | 兼容can2.0b协议的can总线通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104092515A CN104092515A (zh) | 2014-10-08 |
CN104092515B true CN104092515B (zh) | 2017-03-22 |
Family
ID=51640199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410329183.1A Expired - Fee Related CN104092515B (zh) | 2014-07-11 | 2014-07-11 | 兼容can2.0b协议的can总线通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104092515B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102015201019A1 (de) * | 2015-01-22 | 2016-07-28 | Wobben Properties Gmbh | Windenergieanlage und Windenergieanlagen-Bussystem |
CN105262655B (zh) * | 2015-09-16 | 2018-08-07 | 复旦大学 | 一种可兼容can2.0总线的具有更高速率的通信方法 |
CN108833377A (zh) * | 2018-05-30 | 2018-11-16 | 武汉高仕达电气有限公司 | 一种改进的can协议数据帧结构及数据处理方法 |
DE102018218720A1 (de) * | 2018-10-31 | 2020-04-30 | Robert Bosch Gmbh | Teilnehmerstation für ein serielles Bussystem und Verfahren zum Senden einer Nachricht in einem seriellen Bussystem |
US11863320B2 (en) * | 2021-02-26 | 2024-01-02 | Dialog Semiconductor US Inc. | Communication media sharing among devices having dissimilar physical layer waveforms |
CN118200074A (zh) * | 2024-05-20 | 2024-06-14 | 南京瑷卡测控技术有限公司 | Can fd网桥设备及其实现方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5524213A (en) * | 1991-03-28 | 1996-06-04 | Robert Bosch Gmbh | Method of structuring messages for exchanging data and/or for synchronizing processes in a data processing system wherein at least two stations are connected to each other via a serial bus |
CN1350738A (zh) * | 1999-04-10 | 2002-05-22 | 恩斯内有限公司 | 数据传输方法和设备 |
EP2660974A2 (en) * | 2012-05-04 | 2013-11-06 | Infineon Technologies AG | Transmitter circuit and method for controlling operation thereof |
-
2014
- 2014-07-11 CN CN201410329183.1A patent/CN104092515B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5524213A (en) * | 1991-03-28 | 1996-06-04 | Robert Bosch Gmbh | Method of structuring messages for exchanging data and/or for synchronizing processes in a data processing system wherein at least two stations are connected to each other via a serial bus |
CN1350738A (zh) * | 1999-04-10 | 2002-05-22 | 恩斯内有限公司 | 数据传输方法和设备 |
EP2660974A2 (en) * | 2012-05-04 | 2013-11-06 | Infineon Technologies AG | Transmitter circuit and method for controlling operation thereof |
Non-Patent Citations (1)
Title |
---|
CAN2.0B协议分析与改进;陈华军;薛任;张喆;《科技、工程与经济社会协调发展——河南省第四届青年学术年会论文集(上册》;20041001;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104092515A (zh) | 2014-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104092515B (zh) | 兼容can2.0b协议的can总线通信方法 | |
RU2596582C2 (ru) | Способ и устройство для адаптируемой к размерам памяти последовательной передачи данных | |
CN103503382B (zh) | 具有灵活数据速率的控制器局域网 | |
US9361178B2 (en) | Method and device for improving the data transmission security in a serial data transmission having flexible message size | |
RU2597501C2 (ru) | Способ и устройство для последовательной передачи данных с гибким размером сообщений и переменной длительностью бита | |
CN106155014B (zh) | 工业互联网现场层宽带总线实时性实现方法 | |
KR101885935B1 (ko) | 전환 가능한 데이터 전송 속도에서의 직렬 데이터 전송을 위한 방법 및 그 장치 | |
TWI666546B (zh) | 在一串聯匯流排系統中將資料傳輸安全性作匹配的方法與裝置(一) | |
CN103973406B (zh) | 一种控制器局域网总线的提速方法 | |
CN112422219B (zh) | 以太网接口和相关***、方法和设备 | |
AU2012277899A1 (en) | Method and device for serial data transmission having a flexible message size and a variable bit length | |
CN102932224A (zh) | 基于can网络的数据通讯***及基于该***的数据通讯方法 | |
CN102053935A (zh) | 一种基于modbus串行通讯协议的通讯方法 | |
AU2015268688B2 (en) | Variable data rate control protocol | |
US11962409B2 (en) | User station for a serial bus system, and method for communicating in a serial bus system | |
JP2006180510A (ja) | 短いデータ電文による伝送を制御する方法 | |
US11700143B2 (en) | User station for a serial bus system, and method for communicating in a serial bus system | |
CN101917322A (zh) | 一种自适应多总线融合方法 | |
RU2677376C2 (ru) | Регулировка синхронизации стека для последовательной связи | |
Cena et al. | A MODBUS extension for inexpensive distributed embedded systems | |
CN102739488B (zh) | 智能odn***中基于can总线的通信方法 | |
TWI605695B (zh) | 具有可變通之訊息大小及可變位元長度之串聯資料傳輸的方法與裝置 | |
CN113242539B (zh) | 链路控制方法、装置、透传装置及ble芯片 | |
CN105262655B (zh) | 一种可兼容can2.0总线的具有更高速率的通信方法 | |
CN113992471A (zh) | 一种多主机与多从机的通讯***及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170322 |