【技术实现步骤摘要】
基于CAN
‑
FD和CAN的单总线波特率自适应方法
[0001]本专利技术属于信息处理技术,主要涉及一种基于CAN
‑
FD和CAN的单总线波特率自适应方法。
技术介绍
[0002]当下,在车载电子领域随着整车上应用电子设备的不断增多,用户对整车网络数据传输速率和带宽的要求也随之指数倍增加。作为自动化领域技术发展热点之一,现场总线已成为分布式控制系统实现各节点可靠且实时数据通信的重要支撑。CAN总线是目前最广泛应用的开放式现场总线之一,最早应用于汽车电子领域,随着技术进步被广泛应用于航海、航空、医疗、工业控制等领域。然而,传统的CAN总线在传输带宽和数据负载方面存在局限性,传统的CAN总线根据CAN 2.0协议,每帧CAN报文的数据有效载荷仅有8字节,且CAN总线最高速率也被限制在1Mbit/s,在传输效率和可靠性方面已经达到极限。因此,为了满足车载总线高带宽、高吞吐量、高可靠性、强兼容性和低成本等需求,新型CAN FD总线应运而生。
[0003]在储能领域,对储能电站系统而言,装机容量是变化的,随着装机容量的改变,储能电站系统控制子节点的个数和现场总线的长度和所处环境也会随着变化,导致现场总线无法保持一个稳定且高速的传输数据的状态。
[0004]因此,本专利技术基于CAN
‑
FD总线协议(ISO 11898
‑
2:2016),利用处理器拥有多路CAN控制器的特点,一条CAN总线中每个控制单元同时采用CAN和CAN
‑ />FD控制器,利用低速的CAN控制器实时调节CAN
‑
FD的通信速率,在节点数量较少、总线长度较短及环境较好的应用场合采用较高的传输速率;在节点数量较多、总线长度较长及环境较差的应用场合采用较低的传输速率,从而在改变的总线环境中实时调节CAN
‑
FD的通信速率,这是一种创新性的思路。
技术实现思路
[0005]本专利技术的目的在于提供一种基于CAN
‑
FD和CAN的单总线波特率自适应方法。
[0006]第一方面,本专利技术提供一种基于CAN
‑
FD和CAN的单总线波特率自适应方法,包括以下步骤:
[0007]步骤1、一条CAN总线的每个控制节点均设有一个主设备和n个从设备,n≥1;所述主设备和从设备上配置有一个CAN控制器、一个CAN
‑
FD控制器;
[0008]作为优选,所述CAN控制器可以由1个与当前设备配置的CAN
‑
FD控制器种类相同的另一个CAN
‑
FD控制器配置形成。
[0009]步骤2、初始化
[0010]将CAN控制器波特率设置为f0,50kbps<f0≤250kbps;
[0011]CAN
‑
FD控制器的仲裁段波特率f1和数据段波特率f2初始化为CAN控制器的波特率f0;
[0012]配置主设备CAN控制器的帧ID设置为ID0,主设备CAN
‑
FD控制器的帧ID设置为FD_ID0;从设备CAN控制器帧ID分别设置为ID1至IDn,从设备CAN
‑
FD控制器帧ID分别设置为FD_ID1至FD_IDn;
[0013]配置主设备CAN
‑
FD的筛选器只接收标识符为FD_ID1至FD_IDn的帧报文,主设备CAN的筛选器只接收标识符为ID1至IDn的帧报文;配置从设备CAN
‑
FD的筛选器只接收标识符为FD_ID0帧报文,从设备CAN的筛选器只接收标识符为ID0的帧报文,防止因为速率不匹配在CAN总线上出现错误帧,影响通信效率;
[0014]步骤3、对主设备和从设备的CAN
‑
FD控制器数据段波特率f2进行自适应更新:
[0015]所述主设备的CAN
‑
FD控制器数据段波特率f2的自适应更新过程如下:
[0016]A
‑
1、主设备CAN控制器以广播的方式发送握手帧并记录从设备的数量,每一个从设备接收到握手帧之后回应握手应答帧;若从设备回应握手应答帧,则判断该设备在线;若有从设备没有握手应答帧回应主设备,则判断该从设备处于离线状态;
[0017]A
‑
2、对CAN总线上所有CAN
‑
FD控制器的数据段波特率状态标志指定为不确定状态;
[0018]A
‑
3、主设备CAN
‑
FD控制器判断当前CAN
‑
FD数据段波特率状态标志是否为确定状态,若CAN
‑
FD数据段波特率状态标志为不确定状态,则执行步骤A
‑
4;若CAN
‑
FD数据段波特率状态标志为确定状态,则执行步骤A
‑
6;
[0019]A
‑
4、主设备CAN
‑
FD控制器接收从设备发送的波特率切换应答帧,判断所有在线从设备是否均回复了波特率切换应答帧;
[0020]若均回复则更新主设备CAN
‑
FD控制器数据段波特率f2=f2+F1,F1为预设值,主设备CAN控制器以广播的方式发送CAN
‑
FD数据段波特率切换命令,让从设备CAN
‑
FD控制器数据段波特率切换为更新后的CAN
‑
FD控制器数据段波特率f2,返回步骤A
‑
3;
[0021]若主设备无法收到至少一个从设备的波特率切换应答帧,则更新主设备CAN
‑
FD控制器数据段波特率f2=f2
‑
F1;至此确定该CAN总线上所有CAN
‑
FD控制器采用仲裁段f0和数据段f2的通信速率,然后执行步骤A
‑
5;
[0022]A
‑
5、CAN
‑
FD数据段波特率状态标志指定更新为确定状态,主设备CAN控制器以广播的方式发送CAN
‑
FD数据段波特率切换命令,让从设备CAN
‑
FD控制器数据段波特率切换为f2,返回步骤A
‑
3;
[0023]A
‑
6、主设备和从设备按照仲裁段波特率f0和更新后数据段波特率f2利用CAN
‑
FD控制器进行通信;
[0024]A
‑
7、主设备和在线从设备在CAN
‑
FD的通信过程中,若主设备和某个从设备通信失败超过指定次数或在线从设备数量改变或现场CAN总线环境发生改变,则认为CAN
‑
FD控制器的当前数据段波特率f2不适用,需要切换CAN
‑
FD数据段波特率,重复操作步骤A
‑
1至A
‑
7,继续以新的波特率进本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于CAN
‑
FD和CAN的单总线波特率自适应方法,其特征在于,包括以下步骤:步骤1、一条CAN总线的每个控制节点均设有一个主设备和n个从设备,n≥1;所述主设备和从设备上配置有一个CAN控制器、一个CAN
‑
FD控制器;步骤2、初始化将CAN控制器波特率设置为f0,50kbps<f0≤250kbps;CAN
‑
FD控制器的仲裁段波特率f1和数据段波特率f2初始化为CAN控制器的波特率f0;步骤3、对主设备和从设备的CAN
‑
FD控制器数据段波特率f2进行自适应更新:所述主设备的CAN
‑
FD控制器数据段波特率f2的自适应更新过程如下:A
‑
1、主设备CAN控制器以广播的方式发送握手帧并记录从设备的数量,每一个从设备接收到握手帧之后回应握手应答帧;若从设备回应握手应答帧,则判断该设备在线;若有从设备没有握手应答帧回应主设备,则判断该从设备处于离线状态;A
‑
2、对CAN总线上所有CAN
‑
FD控制器的数据段波特率状态标志指定为不确定状态;A
‑
3、主设备CAN
‑
FD控制器判断当前CAN
‑
FD数据段波特率状态标志是否为确定状态,若CAN
‑
FD数据段波特率状态标志为不确定状态,则执行步骤A
‑
4;若CAN
‑
FD数据段波特率状态标志为确定状态,则执行步骤A
‑
6;A
‑
4、主设备CAN
‑
FD控制器接收从设备发送的波特率切换应答帧,判断所有在线从设备是否均回复了波特率切换应答帧;若均回复则更新主设备CAN
‑
FD控制器数据段波特率f2=f2+F1,F1为预设值,主设备CAN控制器以广播的方式发送CAN
‑
FD数据段波特率切换命令,让从设备CAN
‑
FD控制器数据段波特率切换为更新后的CAN
‑
FD控制器数据段波特率f2,返回步骤A
‑
3;若主设备无法收到至少一个从设备的波特率切换应答帧,则更新主设备CAN
‑
FD控制器数据段波特率f2=f2
‑
F1;至此确定该CAN总线上所有CAN
‑
FD控制器采用仲裁段f0和数据段f2的通信速率,然后执行步骤A
‑
5;A
‑
5、CAN
‑
FD数据段波特率状态标志指定更新为确定状态,主设备CAN控制器以广播的方式发送CAN
‑
FD数据段波特率切换命令,让从设备CAN
‑
FD控制器数据段波特率切换为f2,返回步骤A
‑
3;A
‑
6、主设备和从设备按照仲裁段波特率f0和更新后数据段波特率f2利用CAN
‑
FD控制器进行通信;A
‑
7、主设备和在线从设备在CAN
‑
FD的通信过程中,若主设备和某个从设备通信失败超过指定次数或在线从设备数量改变或现场CAN总线环境发生改变,则认为CAN
‑
FD控制器的当前数...
【专利技术属性】
技术研发人员:於韩波,高明煜,林辉品,曾毓,
申请(专利权)人:杭州电子科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。