一种CAN网桥数据通讯方法、CAN网桥及可读存储介质技术

技术编号:35761779 阅读:19 留言:0更新日期:2022-12-01 13:56
本发明专利技术公开涉及一种CAN网桥数据通讯方法、CAN网桥及可读存储介质,其中,CAN网桥数据通讯方法包括:构建数据缓冲区,以存放CAN网桥接口传递的数据;为数据缓冲区配置一个接收指针和一个发送指针;接收到数据帧时,控制接收指针指向下一个要接收的数据帧于数据缓冲区中的存放地址;成功发送数据帧时,控制发送指针指向下一个要发送的数据帧于数据缓冲区中的存放地址;计算接收指针和发送指针之间、数据缓冲区中尚未发送的数据的长度;若尚未发送的数据的长度超过阈值,则释放缓存。本发明专利技术实现了对CAN网桥通讯质量的有效监测,能够在出现通讯异常时,及时通过释放缓存的方式摒弃超时数据,保证了实时数据传输过程的可靠性。保证了实时数据传输过程的可靠性。保证了实时数据传输过程的可靠性。

【技术实现步骤摘要】
一种CAN网桥数据通讯方法、CAN网桥及可读存储介质


[0001]本专利技术一般地涉及CAN数据中继领域。更具体地,本专利技术涉及一种CAN网桥数据通讯方法、CAN网桥及可读存储介质。

技术介绍

[0002]CAN总线通讯凭借其优秀的抗干扰能力在工业控制领域得到广泛应用。CAN网桥(中继器)是一种基于CAN通讯的网桥模块,用于桥接相互不同的比特率或协议的CAN网络(子网)并实现CAN总线网络的中继功能,既实现了两个网络间的电气隔离,又实现了两个网络的波特率转化和阻抗匹配。但是,现有的CAN网桥(中继器)对接收的数据帧先存储后转发,数据吞吐速度相对较慢,当网络上数据负荷较重时,由于现有CAN总线没有流量控制功能,CAN网桥中缓冲区可能会因为存储空间不足导致数据溢出的情况发生,使得网桥传输时丢帧率升高,造成通讯数据转发有效性降低。而且,在相邻子网对数据的实时性要求较高的情况下,若CAN网桥将超时数据转发,会影响子网的正常工作。

技术实现思路

[0003]本专利技术提供一种CAN网桥数据通讯方法、CAN网桥及可读存储介质,以解决现有CAN网桥数据转发过程中超时数据的发送影响子网正常工作的问题。
[0004]为解决上述问题,本专利技术提供了一种CAN网桥数据通讯方法,包括:构建数据缓冲区,以存放CAN网桥接口传递的数据;为所述数据缓冲区配置一个接收指针和一个发送指针;接收到数据帧时,控制所述接收指针指向下一个要接收的数据帧于所述数据缓冲区中的存放地址;成功发送数据帧时,控制所述发送指针指向下一个要发送的数据帧于所述数据缓冲区中的存放地址;计算所述接收指针和发送指针之间、所述数据缓冲区中尚未发送的数据的长度;若所述尚未发送的数据的长度超过阈值,则释放缓存
[0005]在一个实施例中,在将接收到的数据帧存入数据缓冲区之前,还包括对接收到的数据进行过滤和校验的步骤。
[0006]在一个实施例中,所述数据缓冲区采用环形数据缓冲结构,以数组形式存储数据。
[0007]在一个实施例中,还包括在CAN网桥上电时对所述接收指针、发送指针和数组初始化的步骤。
[0008]在一个实施例中,控制所述接收指针指向下一个要接收的数据帧于所述数据缓冲区中的存放地址包括:接收到的数据帧存入数组后,接收指针加1并对数据缓冲区中数组长度取模;控制所述发送指针指向下一个要发送的数据帧于所述数据缓冲区中的存放地址包括:从数组元素中读取数据,等待发送成功后,发送指针加1并对数据缓冲区中数组长度取模。
[0009]在一个实施例中,所述阈值为数据缓冲区存储空间大小的N倍,N<1;当所述数据缓冲区中尚未发送的数据的长度大于所述数据缓冲区存储空间大小的N倍时,判断为数据通讯异常,释放缓存。
[0010]在一个实施例中,还包括:当CAN网桥连续异常中断次数超过设定值时,释放缓存。
[0011]在一个实施例中,所述释放缓存包括对数据缓冲区、接收指针以及发送指针进行初始化。
[0012]在另一方面中,本专利技术还公开了一种CAN网桥,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述的CAN网桥数据通讯方法。
[0013]在另一方面中,本专利技术还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述的CAN网桥数据通讯方法。
[0014]本专利技术与现有CAN网桥设置方式的不同之处在于,本专利技术在CAN网桥中设置数据缓冲区,并根据接收的数据和发送成功的数据分别对接收指针和发送指针进行更新,控制接收指针指向下一个要存储的数据帧的存放地址,控制发送指针指向下一个要发送的数据帧的存放地址,并通过接收指针和发送指针实时检测数据缓冲区中尚未发送的数据的长度是否超过阈值,并在判断超出阈值时释放缓存,从而在出现数据拥堵时,能够对CAN网桥缓冲区中的超时数据及时释放。一方面,通过这种方式实现了对CAN网桥数据缓冲区存储状态的实时监控,另一方面,在出现异常时能够快速释放缓存,从而将当前发送指针前面的超时数据及时清除,使得在下次发送数据时能够发送最新数据,令子网能够获取实时数据,保证了数据传输的有效性和可靠性,采用这种方法的CAN网桥,数据延迟概率低,更加适用于对实时性要求更高的数据传输应用。
附图说明
[0015]通过参考附图阅读下文的详细描述,本专利技术示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本专利技术的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
[0016]图1是根据本专利技术一种实施例的CAN网桥结构示意图;
[0017]图2是根据本专利技术一种实施例的CAN网桥运行主程序流程图;
[0018]图3是根据本专利技术一种实施例的CAN网桥数据通讯方法流程图;
[0019]图4是根据本专利技术一种实施例的数组结构示意图;
[0020]图5是根据本专利技术一种实施例的接收指针和发送指针设置示意图;
[0021]图6是根据本专利技术一种实施例的校验流程图;
[0022]图7是根据本专利技术一种实施例的环状数据缓冲区示意图;
[0023]图8是根据本专利技术一种实施例的数据缓冲区中发送指针和接收指针设置示意图;
[0024]图9是根据本专利技术一种实施例的初始化流程示意图;
[0025]图10是根据本专利技术一种实施例的更新接收指针的方法流程示意图;
[0026]图11是根据本专利技术一种实施例的更新发送指针的方法流程示意图;
[0027]图12是根据本专利技术一种实施例的根据接收指针和发送指针判定异常的方法示意图;
[0028]图13是根据本专利技术一种实施例的CAN网桥数据通讯方法软件程序示意图。
具体实施方式
[0029]CAN网桥(Bridge)作为一种智能的中继器,可实现CAN总线网络中的中继功能,能够将两条速率相同或不同的CAN网络之间的数据进行转发。CAN网桥中通常包含两个独立的通道A和通道B,每个通道均采用光电耦合器隔离,数据流向可以控制,能够实现通道A到通道B方向的数据传输,或通道B到通道A方向的数据传输,或通道A、通道B双向数据接收和转发。当前,CAN网桥/中继器的应用主要体现在以下三个方面:一、通过在CAN总线网络中设置CAN网桥,增加CAN总线网络中的负载节点,并能够延长通信距离;二、利用CAN网桥将两个相互不同的比特率或协议的CAN网络进行桥接,实现两个不同网络的互联;三、CAN网桥能够隔离CAN总线上的干扰,提升CAN网络的安全性和可靠性。
[0030]CAN网桥在连接两个CAN网络时,能够实现有选择地接收和转发数据。例如,CAN1和CAN2分别为两个独立的子网的总线,总线CAN1和总线CAN2(以下简称CAN1、CAN2)通过CAN网桥进行互联后,CAN网桥接收CAN1发送的数据,并对该数据进行存储后,校验该数据是否符合标准,并判断该数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种CAN网桥数据通讯方法,其特征在于,包括:构建数据缓冲区,以存放CAN网桥接口传递的数据;为所述数据缓冲区配置一个接收指针和一个发送指针;接收到数据帧时,控制所述接收指针指向下一个要接收的数据帧于所述数据缓冲区中的存放地址;成功发送数据帧时,控制所述发送指针指向下一个要发送的数据帧于所述数据缓冲区中的存放地址;计算所述接收指针和发送指针之间、所述数据缓冲区中尚未发送的数据的长度;若所述尚未发送的数据的长度超过阈值,则释放缓存。2.根据权利要求1所述的CAN网桥数据通讯方法,其特征在于,在将接收到的数据帧存入数据缓冲区之前,还包括对接收到的数据进行过滤和校验的步骤。3.根据权利要求1所述的CAN网桥数据通讯方法,其特征在于,所述数据缓冲区采用环形数据缓冲结构,以数组形式存储数据。4.根据权利要求3所述的CAN网桥数据通讯方法,其特征在于,还包括在CAN网桥上电时对所述接收指针、发送指针和数组初始化的步骤。5.根据权利要求3所述的CAN网桥数据通讯方法,其特征在于,控制所述接收指针指向下一个要接收的数据帧于所述数据缓冲区中的存放地址包括:接收到的数据帧存入数组后,接收指针加1并对数据缓冲区中数组长...

【专利技术属性】
技术研发人员:宋承林韩宁曾德淑谢健健赵松
申请(专利权)人:青岛中加特电气股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1