一种报文发送方法、装置、介质及设备与流程

    技术2024-11-18  4


    本发明涉及can报文处理,尤其涉及一种报文发送方法、装置、介质及设备。


    背景技术:

    1、stm32的can控制器中,一般会有3个发送邮箱,2个接收fifo(先进先出数据缓存器),每个fifo有3个接收邮箱。在can发送报文的过程中,会选择一个空发送邮箱,一旦发送邮箱退出空状态,软件即不再具有对该发送邮箱寄存器的写访问权限,此时该发送邮箱为挂起状态,等待下一次称为优先级最高的邮箱。

    2、在发送多个报文时,由于发送邮箱有限,所以需要一直轮询是否存在空闲的发送邮箱,也即在发送报文时需要延时等待空闲的发送邮箱。这种方式需要大量的轮询时间,导致报文发送存在大量的延时,降低报文发送的速率,进而影响can通信速率。


    技术实现思路

    1、针对现有技术存在的问题,本发明实施例提供了一种报文发送方法、装置、介质及设备,以解决或者部分解决现有技术中报文发送速率及can通信速率得不到保证的技术问题。

    2、本发明的第一方面,提供一种报文发送方法,所述方法包括:

    3、创建发送环形缓冲区;

    4、针对待发送的当前报文,若确定所述当前报文为非首个报文,且确定未接收到针对上一报文触发的中断信息,则将所述当前报文存储至所述发送环形缓冲区;所述中断信息用于表征所述上一报文发送成功;

    5、当确定接收到针对上一报文触发的中断信息,则从所述发送环形缓冲区中发送所述当前报文。

    6、上述方案中,所述创建发送环形缓冲区,包括:

    7、创建报文信息的结构体;

    8、在所述结构体中设置所述发送环形缓冲区的名称、所述发送环形缓冲区的大小、所述发送环形缓冲区的写数据指针和所述发送环形缓冲区的读数据指针。

    9、上述方案中,所述创建发送环形缓冲区之后,所述方法还包括:

    10、针对微控制器的can接口,将用于使能或禁止所述can接口的中断标识设置为使能模式。

    11、上述方案中,若确定所述当前报文为首个报文,所述方法还包括:

    12、发送用于询问是否存在空闲邮箱的轮询信息;

    13、若确定存在所述空闲邮箱,则将所述当前报文发送至所述空闲邮箱;

    14、将所述发送环形缓冲区的读数据指针指向未发送的下一报文。

    15、上述方案中,所述从所述发送环形缓冲区中发送所述当前报文,包括:

    16、基于所述发送环形缓冲区的读数据指针找到待发送的所述当前报文;

    17、调用报文发送函数将所述当前报文发送至空闲邮箱。

    18、上述方案中,所述从所述发送环形缓冲区中发送所述当前报文之前,所述方法还包括:

    19、将针对上一报文触发的中断信息进行清除。

    20、上述方案中,所述从所述发送环形缓冲区中发送所述当前报文后,所述方法还包括:

    21、若确定接收到针对所述当前报文触发的中断信息,则调用所述发送函数判断所述发送环形缓冲区内是否存在待发送的报文;

    22、若存在所述待发送的报文,则利用所述报文发送函数继续发送所述待发送的报文。

    23、本发明的第二方面,提供一种报文发送装置,所述装置包括:

    24、创建单元,用于创建发送环形缓冲区;

    25、确定单元,用于针对待发送的当前报文,若确定所述当前报文为非首个报文,且确定未接收到针对上一报文触发的中断信息,则将所述当前报文存储至所述发送环形缓冲区;所述中断信息用于表征所述上一报文发送成功;

    26、发送单元,用于当确定接收到针对上一报文触发的中断信息,则从所述发送环形缓冲区中发送所述当前报文。

    27、本发明的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一项所述方法的步骤。

    28、本发明的第四方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面中任一项所述方法的步骤。

    29、本发明提供了一种报文发送方法、装置、介质及设备,方法包括:创建发送环形缓冲区;针对待发送的当前报文,若确定所述当前报文为非首个报文,且确定未接收到针对上一报文触发的中断信息,则将所述当前报文存储至所述发送环形缓冲区;所述中断信息用于表征所述上一报文发送成功;当确定接收到针对上一报文触发的中断信息,则从所述发送环形缓冲区中发送所述当前报文;如此,通过创建发送环形缓冲区,将报文缓存至发送环形缓冲区中,当上一报文发送成功会自动触发中断信息,此时说明已经存在空闲邮箱,可以进行当前报文的发送,无需再去轮询是否存在空闲邮箱,不需要时间等待发送邮箱的状态反馈,进而提高报文发送的效率及can通信速率,同时也降低了cpu的占用率。



    技术特征:

    1.一种报文发送方法,其特征在于,所述方法包括:

    2.如权利要求1所述的方法,其特征在于,所述创建发送环形缓冲区,包括:

    3.如权利要求1所述的方法,其特征在于,所述创建发送环形缓冲区之后,所述方法还包括:

    4.如权利要求1所述的方法,其特征在于,若确定所述当前报文为首个报文,所述方法还包括:

    5.如权利要1所述的方法,其特征在于,所述从所述发送环形缓冲区中发送所述当前报文,包括:

    6.如权利要1所述的方法,其特征在于,所述从所述发送环形缓冲区中发送所述当前报文之前,所述方法还包括:

    7.如权利要求1所述的方法,其特征在于,所述从所述发送环形缓冲区中发送所述当前报文后,所述方法还包括:

    8.一种报文发送装置,其特征在于,所述装置包括:

    9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。

    10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-7任一项所述方法的步骤。


    技术总结
    本发明提供了一种报文发送方法、装置、介质及设备,方法包括:创建发送环形缓冲区;针对待发送的当前报文,若确定当前报文为非首个报文,且确定未接收到针对上一报文触发的中断信息,则将当前报文存储至发送环形缓冲区;所述中断信息用于表征上一报文发送成功;当确定接收到针对上一报文触发的中断信息,则从发送环形缓冲区中发送所述当前报文;如此,通过创建发送环形缓冲区,将报文缓存至发送环形缓冲区中,当上一报文发送成功会自动触发中断信息,此时说明已经存在空闲邮箱,可以进行当前报文的发送,无需再去轮询是否存在空闲邮箱,不需要时间等待发送邮箱的状态反馈,进而提高报文发送的效率及CAN通信速率,同时也降低了CPU的占用率。

    技术研发人员:王秋龙,谢小鲲,邹权福
    受保护的技术使用者:惠州市乐亿通科技股份有限公司
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-22215.html

    最新回复(0)