一种控制器局域网总线的提速方法

文档序号:7803824阅读:394来源:国知局
一种控制器局域网总线的提速方法
【专利摘要】本发明公开了一种控制器局域网总线的提速方法,在原CAN2.0协议数据帧结构中的保留比特标记新的CAN?HS数据帧,同时将标准比特划分为N个等份,以更高比特速率进行传输;而N1个CAN?HS比特的前L1≥1个CAN?HS比特和后L2≥0个CAN?HS比特用于传输CAN?HS数据(称为CAN?HS数据比特),因此每单位CAN2.0比特可最大携带L1+L2个CAN?HS数据比特,从而提高了传输效率。并且第1个CAN?HS比特用于进行同步/再同步触发,其次在采样点附近的N1≥2个CANHS比特传输相同的值供CAN2.0控制器采样取值,保证CAN2.0控制器不会出现采样错误,最后,校验字段的填充区CAN?HS比特取值依据CAN2.0协议计算校验序列并填充,这样CAN2.0控制器也不会出现校验错误计数。
【专利说明】一种控制器局域网总线的提速方法
【技术领域】
[0001]本发明属于控制器局域网【技术领域】,更为具体地讲,涉及一种控制器局域网总线的提速方法。
【背景技术】
[0002]控制器局域网(Controller Area Network,简称CAN)总线是一种现场控制总线,网络中的各节点对通信数据进行编码而不是对站地址编码,且对总线访问优先权通过数据报文优先权(ID)的逐位仲裁方式竞争进行,可使不同的节点同时接收到相同的数据。这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性,因而被广泛用于需要分布式和实时控制的场合,如汽车传感与控制、医疗器械仪器互联等。
[0003]但是当前CAN总线2.0版本的最高传输速率为IMbit/s,而实际使用速率最高为500kbit/s。随着电子控制单元(Electronic Control Unit,简称EQJ)的大量增加,使总线负载率急剧增大以致造成网络拥堵,影响信息传输的可靠性和实时性。研究表明,CAN总线负载率在30%左右时网络系统的性能相对较好,否则会增大报文延迟、降低系统的扩展性,尤其对于实时性要求较高的安全系统,高负载率甚至可能影响汽车行车安全,因此当前CAN总线2.0已不能满足日益增长的汽车网络需求。
[0004]为解决带宽与可靠性的需求,人们提出了使用新型总线协议,如FlexRay总线、MOST总线等来替代CAN总线,但这意味着需要重新开发控制器软硬件、重新设计车载网络系统等,从而增加汽车制造商的开发成本,降低其市场竞争力,因此在目前车载网络系统的基础上对CAN总线进行改进显得尤其迫切。
[0005]Bosch公司于2011发布的CAN替代总线一CAN FD,通过利用CAN总线的保留位进行判断以及区分不同的帧格式,具有与CAN总线相似的控制器接口,这种相似性使ECU供应商不需要对ECU的软件部分做大规模修改,降低了开发难度和成本。CAN FD的高速率传输主要体现在通过双速率传输机制,即在仲裁期仍沿用CAN2.0协议的标准速率(Nominal BitRate)进行传输,但在数据字段启用第二速率(Data Bit Rate,比Nominal Bit Rate高)进行传输,从而一方面可以更高速率传送,另一方面在数据字段能容纳更长的数据提高有效吞吐率。
[0006]但是CAN FD数据帧中,包括DLC字段、数据字段、校验字段的数据都采用第二速率传送,因而CAN2.0控制器仅能通过仲裁期的控制字知道不是其能处理的数据帧,但仍会进行比特同步、比特填充规则、CRC校验的检查。因而当CAN2.0控制器和CAN FD控制器共处于同一网络时,CAN2.0控制器会因CANFD帧增加不必要的错误计数甚至进入总线关闭状态。因此CAN2.0控制器是不能和CAN FD控制器直接共存的,这也正是CAN FD规范所指出的:“CAN FD控制器仅当使用CAN2.0标准帧时能才能和CAN2.0控制器互通;CAN FD协议升级只能渐进进行,比如通过软件下载的方式实施,且实施时不支持CAN FD的控制器必须挂起(StandBy) ”。[0007]但实际应用中,有许多场合需要在不停用CAN2.0控制器的情况下引入兼容CAN2.0协议的高速CAN机制,如某些基于CAN的监控场合,仅需要升级“上位机” CAN节点控制器(数量较少)即可在已经存在大量CAN2.0控制器的网络中加入新型CAN节点,从而极大地降低成本同时加快部署。

【发明内容】

[0008] 本发明的目的在于克服现有高速控制器局域网总线的不足,提供一种控制器局域网总线的提速方法,以兼容现有的CAN2.0协议并在高速传输模式下允许与CAN2.0控制器共存一个网络中而不会增加CAN2.0控制器的错误计数。
[0009]为实现上述发明目的,本发明控制器局域网总线的提速方法,其特征在于,包括以下步骤:
[0010]CAN控制器在发送远程帧、错误帧、超载帧时依照CAN2.0协议的规范执行;当数据帧携带数据的长度小于等于8个字节时,CAN控制器以CAN2.0模式工作,即按照CAN2.0协议规范发送数据帧,而当数据帧携带数据的长度大于8个字节时,CAN控制器以CAN HS模式工作即发送CAN HS数据帧;
[0011]其中,CAN HS数据帧中除数据期的数据字段和校验字段外,其他帧格式与CAN2.0数据帧格式相同,并做如下修改:
[0012](I) jfCAN HS数据帧中的保留位作为CAN HS标识位,并通过置为“隐性”表示CANHS数据帧;
[0013](2)、将CAN HS数据帧中数据期与CAN2.0数据帧数据期的数据字段和校验字段中每个标准比特的对应位置均划分为N个等份,每个等份称为一个CAN HS比特;对于每个标准比特对应位置划分为四个部分即跳变沿位、数据段1、填充区、数据段2:第I个CAN HS比特构成跳变沿位,第I个CAN HS比特称为跳变沿比特,紧接着L1 > I个CAN HS比特构成数据段I,数据段I中的CAN HS比特为CANHS数据比特,再紧接着N1 > 2个CAN HS比特构成填充区,填充区中的CAN HS比特为填充区比特,最后为L2≥O个CAN HS比特构成数据段2,数据段2中的CAN HS比特为CAN HS数据比特;
[0014]L1, N1, L2 的取值满足(l+Li+WN 与(丨+ 7;,,,,+差值最小,其中,N = 1+Li+Ni+h,Tprop, FfI? Τνι为CAN2.0数据帧数据期的数据字段和校验字段中每个标准比特的传播段(PR0P_SEG)、相段1(PHASE_SEG1)、相段2(PHASE_SEG2)相对于同步段(SYNC_REG)的时长倍数;
[0015](3)、填充规则
[0016]3.1)、第I个跳变沿比特S的取值与数据长度字段即DLC的最后I位取值相异,后续每个跳变沿比特S取值与上一个标准比特对应位置最后一个CAN HS比特相异值;
[0017]3.2)、填充区的所有CAN HS比特的值相同,其中,数据字段的填充区CAN HS比特取值与之前所有填充区的取值满足CAN2.0协议填充规则,即连续5次相同取值后取前一个填充区取值的相异值,校验字段的填充区CAN HS比特取值根据数据字段的填充区CAN HS比特取值按照CAN2.0协议计算出校验序列并进行填充;
[0018]3.3)、数据段1、2的CAN HS比特用数据进行填充。
[0019]本发明的发明目的是这样实现的:[0020]本发明控制器局域网总线的提速方法,数据帧携带数据的长度大于8个字节时,工作在CAN HS模式,利用原CAN2.0协议数据帧结构中的保留比特,由原来的“显性”改为“隐性”来标记新的CAN HS数据帧,同时将原CAN2.0协议数据帧数据传送部分包括CAN2.0帧中的数据字段和CRC校验字段即数据期的标准比特划分为N个等份,每个等份称为CANHS比特,这N个CAN HS比特称为HS组,即更高的比特速率进行传输。而N1个CAN HS比特的前L1≥I个CAN HS比特和后L2≥O个CAN HS比特用于传输CAN HS数据(称为CAN HS数据比特),因此每单位CAN2.ο比特可最大携带LJL2Acan Hs数据比特,从而提高了传输效率。但同时保证为CAN2.0控制器提供可预知的数据流进行接收的填充规则检查和CRC校验检查,使得CAN2.0控制器不会新增错误计数,在每个CAN2.0标准比特中划分出的第I个CAN HS比特用于进行同步/再同步触发以确保CAN2.0控制器的采样点相位不变,其次在采样点附近的N1≥2个CAN HS比特传输相同的值供CAN2.0控制器采样取值,保证CAN2.0控制器不会出现采样错误,最后,数据字段填充区CAN HS比特取值按照CAN2.0协议填充、校验字段的填充区CAN HS比特取值依据CAN2.0协议计算校验序列并填充,这样CAN2.0控制器也不会出现校验错误计数。这样在高速传输模式下允许与CAN2.0控制器共存一个网络中而不会增加CAN2.0控制器的校验错误计数。
【专利附图】

【附图说明】
[0021]图1是CAN总线网络拓扑示意图;
[0022]图2是CAN总线控制器逻辑结构图; [0023]图3是CAN2.0、CAN FD及CAN HS数据帧结构对照示意图;
[0024]图4是CAN HS数据帧的双速率转换过程示意图;
[0025]图5是CAN2.0的比特和CAN HS的比特细微特征的对照示意图;
[0026]图6是CAN2.0、CAN HS、CAN FD数据帧中DLC编码对照;
[0027]图7是典型CAN总线网络的节点发送和接收流程示意图。
【具体实施方式】
[0028]下面结合附图对本发明的【具体实施方式】进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
[0029]在本发明中,同一总线局域网中可以同时存在CAN2.0控制器和采用本发明的CAN控制器,称为CAN HS控制器,这些控制器分别连接节点和CAN收发器,CAN收发器是连接CAN控制器和CAN总线的中介,它完成CAN总线电平到控制器电平的相互转换。处于同一总线局域网中的CAN控制器都支持CAN2.0协议的所有功能,它们用相同比特速率R进行传输,并称该速率为标准速率。CAN HS和CAN2.0控制器均能发送数据帧、远程帧、错误帧、超载帧
坐寸ο
[0030]在本发明中,CAN HS控制器在发送数据帧时可以工作于两种模式:CAN2.0模式和CAN HS模式,在发送远程帧、错误帧、超载帧时的格式速率等依照CAN2.0协议的规范执行。当数据帧携带数据的长度小于等于8个字节时,CANHS控制器以CAN2.0模式工作,即按照CAN2.0协议规范发送数据帧,而当数据帧携带数据的长度大于8个字节时,CAN HS控制器以CAN HS模式工作,即发送CAN HS数据帧。
[0031]CAN HS数据帧以CAN2.0数据帧格式为基础进行改进而成,因此结构基本相同,在本实施例中,也分为基本数据帧和扩展数据帧两种。
[0032]CAN2.0基本数据帧包括I位开始位(SOF)、11位基本标识字段(BID)、I位远程传输请求(RTR,“显性” )、I位标识扩展标志(IDE,“显性” )、I位保留位(rO为“显性”)、4位数据长度字段(DLC)、L位CAN2.0位宽的数据字段(Data)、15位CAN2.0位宽的CRC校验字段、I位CRC校验界定符、2位宽的应答区、7位帧结束符(EOF,全部“隐性”);CAN2.0扩展数据帧包括I位开始位(SOF)、11位基本标识字段(BID)、I位远程传输请求替换位(SRR,“隐性”)、I位标识扩展标志(IDE,“隐性”)、18位扩展标识(EID)、I位远程传输请求(RTR,“显性”)、2位保留位(r0、rl,均为“显性”)、4位数据长度字段(DLC) 4位CAN2.0位宽的数据字段(Data)、15位CAN2.0位宽的CRC校验字段、I位CRC校验界定符、2位宽的应答区、7位帧结束符(E0F,全部“隐性”)。
[0033]在本实施例中,CAN HS基本数据帧是将CAN2.0基本数据帧中的保留位r0改为CANHS标识位(HS),并通过置为“隐性”表示CAN HS基本数据帧;CANHS扩展数据帧将CAN2.0扩展数据帧中的保留位r0、rl中一位或rO、rl同时改为CAN HS标识位(HS),并用“隐性”值结合IDE位的“隐性”值来表示CAN HS扩展数据帧。
[0034]这样带CAN HS标识位的基本数据帧包括I位开始位(SOF)、11位基本标识字段(BID)、I位远程传输请求(RTR,“显性” )、I位标识扩展标志(IDE,“显性”)、I位双速率传输标识(HS,“隐性”)、4位数据长度字段(DLC) ,64 ^ L ^ 76位CAN2.0位宽的数据字段(DATA)、15位CAN2.0位宽的CRC校验字段、I位CRC校验界定符、2位宽的应答区、7位帧结束符(E0F,全部“隐性”);扩展数据帧,包括I位开始位(SOF)Ul位基本标识字段(BID)、I位远程传输请求替换位(S

RR,“隐性”)、I位标识扩展标志(IDE,“隐性”)、18位扩展标识(EID)、I位远程传输请求(RTR,“显性”)、1位双速率传输标识(HS,“隐性”)、2位保留位(r0、rl中一位或r0、rl同时,“显性”)、4位数据长度字段(DLC)、64≤L≤76位CAN2.0位宽的数据字段(DATA)、15位CAN2.0位宽的CRC校验字段、I位CRC校验界定符、2位宽的应答区、7位帧结束符(E0F,全部“隐性”)。其中,DATA和CRC校验合称数据期,其前后均为仲裁期。仲裁期和数据期两个交替出现的阶段,在仲裁期的所有比特以标准速率R发送,在数据期以N倍于R的速率发送,称数据速率。
[0035]在CAN HS模式下,利用原CAN2.0协议帧结构中的保留比特(由原来的“显性”改为“隐性”)来标记新的CAN HS数据帧,同时将原CAN2.0数据帧传送部分(包括CAN2.0帧中的数据字段和CRC校验字段)的比特划分为N个等份,每个等份称为CAN HS比特,N个CAN HS比特称为HS组,即更高的比特速率进行传输,但同时保证为CAN2.0控制器提供可预知的数据流进行接收的填充规则检查和CRC校验检查,使得CAN2.0控制器不会新增错误计数。在每个CAN2.0标准比特中划分出的第I个CAN HS比特即跳变沿比特用于进行同步/再同步触发以确保CAN2.0控制器的采样点相位不变,其次在采样点附近的N1 > 2个CANHS比特传输相同的值供CAN2.0控制器采样取值,而N1个CAN HS比特的前L1≥I个CAN HS比特和后L2≥O个CAN HS比特用于传输CAN HS数据(称为CAN HS数据比特),因此每单位CAN2.0比特可最大携带LJL2个CAN HS数据比特,从而提高了传输效率。
[0036]在本实施例中,采用本发明的CAN HS控制器发送的帧类似包含了 CAN2.0协议的数据帧、远程帧、错误帧、超载帧,可以工作在CAN2.0协议模式或者CAN HS模式。在CAN2.0模式下所有帧结构和处理方法与CAN2.0协议规定的一致,而CAN HS模式下,除数据帧外其他帧的功能和结构与CAN2.0帧相同。所述比特填充方法与CAN2.0协议,发送者在每5个连续相同取值(如“显性”/ “隐性”)比特后发送I位与前5位比特值取值相异的比特(即“隐性”/ “显性”)。当DLC的四个比特C3C2C1C0取值为OOOO~1000时,CAN HS控制器运行在CAN2.0模式,即使用CAN2.0帧格式;当C3C2C1C0取值为1001~1111时,CAN HS控制器运行在CAN HS模式,即使用CAN HS数据帧格式。在CAN2.0模式下帧携带K = O~8字节的数据;在CAN HS模式下,K = 9~15,分别表示8*2 (κ_8)字节,或者单位CAN2.0数据比特传输2 (κ_8)个CAN HS比特。当K = O~8时,CRC校验字段选用CRC-15进行校验,否则选用CRC-17或者CRC-21进行校验。
[0037]在本实施例中,根据DLC取值对应的CAN HS总数据比特数M选择与CAN2.0相同的CRC校验式,如当M≤64时采用CAN2.0的CRC-15校验式,当64≤M≤128时选用CRC-17,而当M > 128时选用CRC-21,以提供汉明距D≤6的纠错保护。其中CRC-15为0xC599,即:
[0038]“ (χ15+χ14+χ10+χ8+χ7+χ4+χ3+1) = (χ+1) (χ7+χ3+1) (χ7+χ3+χ2+χ+1) ” ;
[0039]而CRC-17 和 CRC-21 可分别选用 0x3685B 和 0x302899,即:
[0040]“ (χ17+χ16+χ14+χ13+χ11+χ6+χ4+χ3+χ+1) = (χ+1) (χ16+χ13+χ10+χ9+χ8+χ7+χ6+χ3+1) ” 和“ (χ21+χ20+χ13+χη+χ7+χ4+χ3+1) = (χ+1) (χ10+χ3+1) (χ10+χ3+χ2+χ+1) ”。
[0041]在CAN HS模式下的数据期比特速率是仲裁期比特速率的N≥max(2K_8,4)倍,即将原CAN2.0帧的数据字段和校验区的标准比特划分成N个CAN HS比特。N个CAN HS比特被分成四个部分,依次分别为I个CAN HS比特、L1 ≥I个CANHS比特的数据字段1、5≥N1≥2个CAN HS比特的填充区和L2 SOfCAN HS比特的数据字段2。其中,第一个为跳变沿比特S的取值与前一个CAN2.0比特的最后一个CAN HS比特相异;填充区的所有CAN HS比特取相同值,且与之前所有CAN2.0比特填充区的取值满足CAN2.0填充规则,即连续5次相同取值后本次填充取前一个CAN2.0比特填充区取值的相异值。为了进行比特同步和采样,CAN2.0、CAN FD和CAN HS比特均被分为四段,依次为同步段(SYNC_REG)、传播段(PR0P_SEG)、相段
I (PHASE_SEG1)、相段 2 (PHASE_SEG2),它们所占的时间分别为(I,Tpmpf Tfl,Tf2)tq,为
整数倍值,tq是最小时间单位tm的整数倍,tm与实现有关。于是,一个CAN2.0比特的时
间为:(I+?"胃+ ?,比特米样点在相段I和相段2之间,因而米样点相对比特起始位
置占比特时间比率为:
[0042]


=(1 ++ Tpt)/(1+ Tpmp + Tm + 1:,2) O
[0043]在CAN HS模式下,两个数据字段均用于传送CAN HS数据比特,且I个CAN2.0比特中最多可以传输LJL2≥2K_8个CAN HS数据比特。L1JpL2的取值应尽量使得N1个CANHS比特的中心部分尽量对准CAN2.0比特的采样点,即CAN2.0比特中
[0044]


Τ?,+ΤψΙ ~ L1 +N,/2


2;);-;V,/2+£5[0045]或自CAN2.0比特开始位置到CAN2.0比特采样点的时间所占CAN2.0比特的比率
为:
[0046]
r— =(1+4 + XM/,¥=(1+7^ + Tm)/(1+7^, + 7-- + Tp2)
[0047]根据这样的传输规则,单位CAN2.0比特可以同时保证CAN2.0控制器不增加错误计数。
[0048]CAN HS模式下N的选择可以根据DLC的取值变化,也可以对所有DLC值取相同的值。
[0049]CAN HS模式下,原CAN2.0帧校验字段的数据字段I只有Lf2个比特用于CAN HS数据比特传输,而剩下的2个比特为填充区的辅助填充比特,以便能正确进行CAN2.0的CRC-15序列填充而不破坏CAN的填充规则。
[0050]CAN HS模式下,当DLC的取值K满足2K_8 ( L1时,在数据字段I的前2Κ_8个比特用于传输CAN HS数据比 特,剩下的Ι^-2Κ_8和数据字段2的L2个CAN HS比特传输任意值;当2κ_8>1^时,则数据字段I的所有L1个比特全部用于传输CANHS数据比特,而数据字段2第三区段的前2Κ_8-!^个比特用于传输CAN HS数据比特,剩余的L2Iih^L1个比特传输任意值。
[0051]填充区和跳变沿位均是填充比特,其中填充区为全显性或全隐性比特,而跳变沿则必须考虑特定位置跳变。因而设定规则依次如下:
[0052]①跳变沿比特取值规则:第I个跳变沿比特S的取值与数据长度字段DLC的最后I位取值相异;后续每个跳变沿比特S取值与上一个标准比特对应位置最后一个CAN HS比特相异值即前一个HS组的最后一个CAN HS比特相异值,以保证CAN2.0标准比特的同步段出现一个跳变沿,确保CAN2.0控制器重同步的触发时刻固定,从而保证CAN2.0控制器比特采样相位基本固定;
[0053]②数据段I的填充规则:用数据依次填充在L1个比特中,并适用CAN协议本身的填充规则(即5个连续相同值后填充一个相异值)进行填充;
[0054]③填充区的填充规则
[0055]al、规则1:数据字段的填充区CAN HS比特取值与填充区前面的最后一个CAN HS比特相同,如果填充区CAN HS比特与之前的即与数据段I紧邻的CANHS比特进行组合,会出现5个连续相同值,则改为相异值填充;规则2:当数据字段的填充区CAN HS比特取值与之前所有填充区的取值满足CAN2.0协议填充规则,即连续5次相同取值后则不再用规则I进行取值,而取前一个填充区取值的相异值,此时,如果填充区CAN HS比特与之前的即与数据段I紧邻的CAN HS比特进行组合出现5个连续相同值,则将数据段I最后两位CAN HS比特后移至数据段2,并填入两位与前后取值相异的值,这样进一步保证了这样进一步保证了 CAN HS比特满足CAN协议填充规则;
[0056]a2、校验字段的填充区CAN HS比特取值根据数据字段的填充区CAN HS比特取值按照CAN2.0协议计算出校验序列并进行填充,这样保证了 CAN2.0控制器不会产生CRC校验错误;其中将数据段I最后两位CAN HS比特后移至数据段2,并填入两位与前后取值即数据段I填入的最后一个数据与填充区填入的第一个CAN HS比特取值相异的值,这样进一步保证了 CAN HS比特满足CAN协议填充规则;
[0057]④数据段2的填充规则:依据用数据依次填充在L2个比特中,并适用CAN协议本身的填充规则(即5个连续相同值后填充一个相异值)进行填充;
[0058]需要说明的是,数据字段填充区的填充中,所述的规则I中的数据字段的填充区CAN HS比特取值与填充区前面的最后一个CAN HS比特相同也可以该为相异,数据字段的填充区CAN HS比特取值与前一个填充区的填充值相异。
[0059]在本发明中,CAN控制器配备必要的寄存器以支持本发明的运行,同时为了兼容CAN2.0控制器还必须包含CAN2.0协议相关的配置寄存器即CAN HS控制器必须同时支持CAN2.0协议和CAN HS协议即本发明。
[0060]在上述技术方案下,同一 CAN总线网络中,CAN节点可以是仅支持CAN2.0协议的节点,也可以是既支持CAN2.0协议又支持CAN HS协议的节点;支持CAN HS协议的节点可以根据配置工作在CAN2.0协议模式,也可以工作在CANHS模式,但当帧中的数据比特数大于8个字节或者等效的64个比特时,则必须以CAN HS模式工作。
[0061]本发明具有如下效果:
[0062]1、在兼容CAN2.0协议的基础上允许以高于CAN2.0极限速率IMbps的速率进行数据传输,保留的原CAN2.0协议的多主性、分布式、实时传输能力,同时每个帧支持的数据长度更大,而所需时间为原CAN2.0帧长为8字节(即64比特)时的帧持续时间,因而具有更闻的吞吐率;
[0063]2、通过本发明设计的帧结构设计以保证CAN2.0控制器在接收CAN HS数据帧时不会出现定时漂移(即比特同步相位不受影响),且能采样时刻能采样到确知的合法CAN数据比特和对应的CRC校验比特序列,即保证不会出现CRC错误,从而CAN2.0控制器不会新增错误计数,于是CAN2.0控制器和CAN HS控制器能在同一 CAN网络中共存。这样当CAN网络的网关或者“上位机”的CAN控制器支持CAN HS协议时,即可根据需要添加CAN HS节点实现兼容、共存式的快速升级和部署。
[0064]本发明提出的CAN HS协议和传输方法相比CAN2.0协议可以支持更高的速率,即具备CAN FD的优势,同时还克服了 CAN FD不能与CAN2.0共存的问题。
[0065]图1是CAN总线网络拓扑示意图。
[0066]如图1所示,控制器局域网(CAN)有多个控制节点,通过CAN总线互联在一起,每个CAN节点通过CAN控制器向CAN总线发送数据或接收数据,而CAN控制器是通过CAN收发器连接到CAN总线。CAN收发器负责将CAN控制器的数据(通过“显性”或者“隐性”电平代表O或I)转换为CAN总线电平(差分信号网络),或者将CAN总线的信号电平转换为CAN控制器能处理的信号电平;而CAN控制器是节点到CAN总线的中介,它负责根据节点的需要在总线空闲时将数据发送到总线上,且在发送过程中负责总线接入权的仲裁,如果竞争失败则退出发送并转入接收模式;处于接收模式的CAN控制器对比特流一方面进行接收,一方面进行填充规则、格式以及CRC校验检查,如果出现了错误则进行错误计数更新,其中具体的检查规则与现有的CAN2.0或者CAN FD协议一致。
[0067]在本发明中,CAN2.0控制器和CAN HS控制器可以共存在同一 CAN网络中,CAN HS控制器如果集成了 CAN FD协议也可以和CAN FD控制共存同一 CAN网络中。下面仅以CANHS和CAN2.0控制器共存方案进行说明,但并不限制CAN控制器集成三种协议后的共存方案的实施。
[0068]CAN HS控制器的基本原理框图和CAN2.0控制器,甚至CAN FD控制器基本相同,如图2所示。CAN控制器包含:发送逻辑、比特定时逻辑、发送FIF0、5种错误检测逻辑、消息滤波、状态机、MCU接口逻辑、时钟发生器等,各部分的功能如下:
[0069]控制寄存器Control Registers:用于对CAN的工作模式等进行配置,包括定时控制、速率参数、滤波掩码等配置;
[0070]错误计数器Error Registers:含发送错误计数器(TEC)和接收错误计算器(REC),用于在状态机的控制下依据5种错误进行错误技术。5种错误分别为:比特错误(BE)、格式错误(FE)、CRC错误(CE)、应答错误(AE)、填充错误(SE),具体的错误判别标准按照已有的CAN2.0协议规定进行。
[0071]状态机State Machine是CAN控制器的核心部分,包含了所有协议流程的状态及状态控制逻辑。
[0072]时钟发生器的功能是从系统基本时钟产生系统各个功能部分所需要的时钟源,如发送的位时序逻辑以及接收部分的硬同步和重同步模块和比特采样模块等的时钟。
[0073]位流处理器包括发送位流处理和接收位流处理。发送位流处理主要完成数据比特发送、比特填充、CRC计算和发送等,同时在接收位流处理的协作下完成发送数据时的总线仲裁、比特错误检测、 应答检测等;而接收位流处理除了在发送数据时进行协助外,在控制器处于接收模式时,进行比特填充规则检查、填充比特删除、CRC校验、验收滤波、错误检测和标定、数据应答等功能。
[0074]下面结合附图和【具体实施方式】对本发明方法进行详细说明。
[0075]支持CAN HS协议的控制器可以同时支持CAN2.0协议和CAN FD协议,后二者可按已有协议方法进行实施,除非特别说明,下面仅针对本发明的CAN HS协议实现进行说明。
[0076]如图3、4、5所示,CAN HS协议的帧结构基本与CAN2.0相同,也包括基本数据帧和扩展数据帧。其中基本数据帧将CAN2.0的基本数据帧种的保留位r0定义为HS字段,当HS为“显性”时意味着该帧为CAN2.0基本数据帧,否则为CANHS基本数据帧;相应地,CAN HS扩展数据帧基于CAN2.0扩展,由于CAN2.0帧有两个保留位r0和rl,因此在实施时可以通过三种方式实现,即(r0,rl)=(显性,隐性)、(隐性,显性)或者(隐性,隐性)。
[0077]为了与CAN2.0协议共存,当CAN帧的单帧数据长度不大于8字节时,自动适用CAN2.0帧,而当单帧数据长度大于8字节时,DLC取值为OblOOl~Obl 100,而对应数据长度为8*2(DLC-8)字节,取值ObllOl~OblllO为保留值,Obllll用于表示尽可能使用最大长度,数据长度可能不再是整数倍字节长度。上述DLC编码如图6所示,其中也给出了 CAN2.0和CAN FD的相应编码对照。值得注意的是,图6的CAN HS编码方式特别是DLC≥8的编码仅是一种实现,不排除其他实现方式,而且具体实现中当DLC取值为OblOOl~ObllOO时,数据长度也可以不是整数倍字节长度,如当把CRC-15序列扩展出的CAN HS比特用上的话——后面将进一步说明。但当CAN帧单帧数据长度大于8时,CAN HS数据帧的数据字段所占的时间刚好与CAN2.0帧中当DLC = 8时的数据字段所占时间相同——这与CANFD协议类似。
[0078]如图5所示,对于CAN2.0帧而言每个比特都被分为四个部分构成,依次为同步段(SYNC_REG)、传播段 (PR0P_SEG)、相段 I (PHASE_SEG1)、相段 2 (PHASE_SEG2),它们所占的时
间分别为(I, Tpmp, T fi, &2)的整数值,单位为tq,tq是整数倍的最小时间单位tm,乜与
实现有关,且Tsyn ^ I。于是,一个CAN2.0比特的时间为:[0079]
【权利要求】
1.一种控制器局域网总线的提速方法,其特征在于,包括以下步骤: CAN控制器在发送远程帧、错误帧、超载帧时依照CAN2.0协议的规范执行;当数据帧携带数据的长度小于8个字节时,CAN控制器以CAN2.0模式工作,即按照CAN2.0协议规范发送数据帧,而当数据帧携带数据的长度大于8个字节时,CAN控制器以CAN HS模式工作即发送CAN HS数据帧; 其中,CAN HS数据帧中除数据期的数据字段和校验字段外,其他帧格式与CAN2.0数据帧格式相同,并做如下修改: (1)、将CANHS数据帧中的保留位作为CAN HS标识位,并通过置为“隐性”表示CAN HS数据帧; (2)、将CANHS数据帧中数据期与CAN2.0数据帧数据期的数据字段和校验字段中每个标准比特的对应位置均划分为N个等份,每个等份称为一个CANHS比特;对于每个标准比特对应位置划分为四个部分即跳变沿位、数据段1、填充区、数据段2:第I个CAN HS比特构成跳变沿位,第I个CAN HS比特称为跳变沿比特,紧接着L1 > I个CAN HS比特构成数据段1,数据段I中的CAN HS比特为CAN HS数据比特,再紧接着N1 > 2个CAN HS比特构成填充区,填充区中的CANHS比特为填充区比特,最后为L2≥O个CAN HS比特构成数据段2,数据段2中的CAN HS比特为CAN HS数据比特; L0N1,L2的取值满足(1+W) /N与(Μ— + L)/(1+?胃+? +If2)差值最小,其中,N =1+L^N^L,, Tprop, Tvl,7;2为CAN2.0数据帧数据期的数据字段和校验字段中每个标准比特的传播段(PROP_SEG)、相段 I (PHASE_SEG1)、相段 2 (PHASE_SEG2)相对于同步段(SYNC_REG)的时长倍数; (3)、填充规则 3.1)、第I个跳变沿比特S的取值与数据长度字段即DLC的最后I位取值相异,后续每个跳变沿比特S取值与上一个标准比特对应位置最后一个CAN HS比特相异值; 3.2)、填充区的所有CAN HS比特的值相同,其中,数据字段的填充区CANHS比特取值与之前所有填充区的取值满足CAN2.0协议填充规则,即连续5次相同取值后取前一个填充区取值的相异值,校验字段的填充区CAN HS比特取值根据数据字段的填充区CAN HS比特取值按照CAN2.0协议计算出校验序列并进行填充; 3.3)、数据段1、2的CAN HS比特用数据进行填充。
2.权利要求1所述的提速方法,其特征在于,所述的数据字段的填充区CANHS比特取值为: 规则1:数据字段的填充区CAN HS比特取值与填充区前面的最后一个CANHS比特相同,如果填充区CAN HS比特与之前的即与数据段I紧邻的CAN HS比特进行组合,会出现5个连续相同值,则改为相异值填充;规则2:当数据字段的填充区CAN HS比特取值与之前所有填充区的取值满足CAN2.0协议填充规则,即连续5次相同取值后则不再用规则I进行取值,而取前一个填充区取值的相异值,此时,如果填充区CAN HS比特与之前的即与数据段I紧邻的CAN HS比特进行组合出现5个连续相同值,则将数据段I最后两位CAN HS比特后移至数据段2,并填入两位与前后取值相异的值。
3.权利要求1所述的提速方法,其特征在于,所述在校验字段中,数据段I最后两位CANHS比特后移至数据段2, 并填入两位与前后取值相异的值。
【文档编号】H04L1/00GK103973406SQ201410204407
【公开日】2014年8月6日 申请日期:2014年5月15日 优先权日:2014年5月15日
【发明者】邝育军 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1