System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() CAN数据收发方法、装置、设备及介质制造方法及图纸_技高网

CAN数据收发方法、装置、设备及介质制造方法及图纸

技术编号:42091427 阅读:16 留言:0更新日期:2024-07-19 17:05
本申请公开了一种CAN数据收发方法、装置、设备及介质,涉及计算机技术领域,应用于RTOS线程,RTOS线程包括CAN数据发送线程和CAN数据接收线程,方法包括:当CAN数据发送线程接收CAN报文发送通知时,则基于待发送CAN报文的发送模式调用目标写函数,以通知CAN控制器的数据发送线程将待发送CAN报文装载至CAN控制器的发送邮箱,完成待发送CAN报文的发送;当CAN数据接收线程接收CAN报文接收通知时,则调用处理函数逐帧读取待接收CAN报文,直至接收全部待接收CAN报文。通过上述方案,能够简化CAN数据收发逻辑,以降低开发难度。

【技术实现步骤摘要】

本专利技术涉及计算机,特别涉及can数据收发方法、装置、设备及介质。


技术介绍

1、随着半导体技术发展,mcu(microcontroller unit,即微控制单元)的资源越来越多,例如flash(闪存)、ram(随机存储器,即random-access memory)、高主频。嵌入式产品功能也越来越强大,嵌入式基于rtos(real time operating system,即实时操作系统)的开发越来越普及越来越重要。现有的can(controller area network)数据收发裸机方案,系统功能较少时具有实时性强的特点,但其开发难度大,维护成本高。

2、综上可见,如何简化can数据收发逻辑,以降低开发难度是本领域有待解决的问题。


技术实现思路

1、有鉴于此,本专利技术的目的在于提供一种can数据收发方法、装置、设备及介质,能够简化can数据收发逻辑,以降低开发难度。其具体方案如下:

2、第一方面,本申请公开了一种can数据收发方法,应用于rtos线程,所述rtos线程包括can数据发送线程和can数据接收线程,所述方法包括:

3、当所述can数据发送线程接收can报文发送通知时,则基于待发送can报文的发送模式调用目标写函数,以通知can控制器的数据发送线程将所述待发送can报文装载至所述can控制器的发送邮箱,完成所述待发送can报文的发送;

4、当所述can数据接收线程接收can报文接收通知时,则从报文接收队列中读取待接收can报文的当前帧接收报文,并调用处理函数读取下一帧接收报文,将所述下一帧接收报文更新为当前帧接收报文,然后重新跳转至所述调用处理函数读取下一帧接收报文的步骤,直至接收全部所述待接收can报文。

5、可选的,所述当所述can数据发送线程接收can报文发送通知时,则基于待发送can报文的发送模式调用目标写函数,包括:

6、当所述can数据发送线程的用户数据发送线程接收can报文发送通知时,则基于待发送can报文的报文发送间隔确定待发送can报文的发送模式,并基于所述发送模式调用目标写函数。

7、可选的,所述基于待发送can报文的报文发送间隔确定待发送can报文的发送模式,并基于所述发送模式调用目标写函数,包括:

8、若待发送can报文的报文发送间隔为0,则确定待发送can报文的发送模式为第一发送模式,并直接调用目标写函数;

9、若待发送can报文的报文发送间隔大于0且不大于预设阈值,则确定待发送can报文的发送模式为第二发送模式,并利用硬件定时器产生中断,以便在所述报文发送时间间隔后调用目标写函数;

10、若待发送can报文的报文发送间隔大于预设阈值,则确定待发送can报文的发送模式为第三发送模式,并利用所述rtos线程的延迟函数调用目标写函数。

11、可选的,所述通知can控制器的数据发送线程将所述待发送can报文装载至所述can控制器的发送邮箱,完成所述待发送can报文的发送,包括:

12、将所述待发送can报文写入报文发送队列中;其中,所述报文发送队列的数据结构为软件fifo缓存;

13、将线程在线通知发送至can控制器的数据发送线程,以便所述can控制器的数据发送线程判断所述can控制器的发送邮箱中是否存在空闲邮箱,若存在,则将所述报文发送队列中的所述待发送can报文装载至所述空闲邮箱,完成所述待发送can报文的发送。

14、可选的,所述将所述报文发送队列中的所述待发送can报文装载至所述空闲邮箱,包括:

15、将所述待发送can报文的目标帧发送报文写入所述can控制器的发送先进先出队列中,完成所述目标帧发送报文的发送;

16、接收can控制器发送完成中断函数发送的所述线程在线通知,以便将所述报文发送队列中的所述待发送can报文装载至所述空闲邮箱。

17、可选的,所述当所述can数据接收线程接收can报文接收通知时,则从报文接收队列中读取待接收can报文的当前帧接收报文,包括:

18、通过can控制器接收完成中断函数将待接收can报文的当前帧接收报文写入报文接收队列中,并发送can报文接收通知至所述can数据接收线程;其中,所述报文接收队列的数据结构为软件fifo缓存;

19、当所述can数据接收线程接收所述can报文接收通知时,则从所述报文接收队列中读取所述待接收can报文的当前帧接收报文。

20、可选的,所述完成所述待发送can报文的发送之后,还包括:

21、设置所述can数据发送线程为等待接收所述can报文发送通知的状态;

22、相应的,所述重新跳转至所述调用处理函数读取下一帧接收报文的步骤,直至接收全部所述待接收can报文之后,还包括:

23、设置所述can数据接收线程为等待接收所述can报文接收通知的状态。

24、第二方面,本申请公开了一种can数据收发装置,应用于rtos线程,所述rtos线程包括can数据发送线程和can数据接收线程,所述装置包括:

25、报文发送模块,用于当所述can数据发送线程接收can报文发送通知时,则基于待发送can报文的发送模式调用目标写函数,以通知can控制器的数据发送线程将所述待发送can报文装载至所述can控制器的发送邮箱,完成所述待发送can报文的发送;

26、报文接收模块,用于当所述can数据接收线程接收can报文接收通知时,则从报文接收队列中读取待接收can报文的当前帧接收报文,并调用处理函数读取下一帧接收报文,将所述下一帧接收报文更新为当前帧接收报文,然后重新跳转至所述调用处理函数读取下一帧接收报文的步骤,直至接收全部所述待接收can报文。

27、第三方面,本申请公开了一种电子设备,包括:

28、存储器,用于保存计算机程序;

29、处理器,用于执行所述计算机程序,以实现前述公开的can数据收发方法的步骤。

30、第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的can数据收发方法的步骤。

31、本申请有益效果为:本申请应用于rtos线程,所述rtos线程包括can数据发送线程和can数据接收线程,当所述can数据发送线程接收can报文发送通知时,则基于待发送can报文的发送模式调用目标写函数,以通知can控制器的数据发送线程将所述待发送can报文装载至所述can控制器的发送邮箱,完成所述待发送can报文的发送;当所述can数据接收线程接收can报文接收通知时,则从报文接收队列中读取待接收can报文的当前帧接收报文,并调用处理函数读取下一帧接收报文,将所述下一帧接收报文更新为当前帧接收报文,然后重新跳转至所述调用处理函数读取下一帧接收报文的步骤,直至接收全部所述待接收can报文。由此可见,本申请本文档来自技高网...

【技术保护点】

1.一种CAN数据收发方法,其特征在于,应用于RTOS线程,所述RTOS线程包括CAN数据发送线程和CAN数据接收线程,所述方法包括:

2.根据权利要求1所述的CAN数据收发方法,其特征在于,所述当所述CAN数据发送线程接收CAN报文发送通知时,则基于待发送CAN报文的发送模式调用目标写函数,包括:

3.根据权利要求2所述的CAN数据收发方法,其特征在于,所述基于待发送CAN报文的报文发送间隔确定待发送CAN报文的发送模式,并基于所述发送模式调用目标写函数,包括:

4.根据权利要求1所述的CAN数据收发方法,其特征在于,所述通知CAN控制器的数据发送线程将所述待发送CAN报文装载至所述CAN控制器的发送邮箱,完成所述待发送CAN报文的发送,包括:

5.根据权利要求4所述的CAN数据收发方法,其特征在于,所述将所述报文发送队列中的所述待发送CAN报文装载至所述空闲邮箱,包括:

6.根据权利要求1所述的CAN数据收发方法,其特征在于,所述当所述CAN数据接收线程接收CAN报文接收通知时,则从报文接收队列中读取待接收CAN报文的当前帧接收报文,包括:

7.根据权利要求1至6任一项所述的CAN数据收发方法,其特征在于,所述完成所述待发送CAN报文的发送之后,还包括:

8.一种CAN数据收发装置,其特征在于,应用于RTOS线程,所述RTOS线程包括CAN数据发送线程和CAN数据接收线程,所述装置包括:

9.一种电子设备,其特征在于,包括:

10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的CAN数据收发方法的步骤。

...

【技术特征摘要】

1.一种can数据收发方法,其特征在于,应用于rtos线程,所述rtos线程包括can数据发送线程和can数据接收线程,所述方法包括:

2.根据权利要求1所述的can数据收发方法,其特征在于,所述当所述can数据发送线程接收can报文发送通知时,则基于待发送can报文的发送模式调用目标写函数,包括:

3.根据权利要求2所述的can数据收发方法,其特征在于,所述基于待发送can报文的报文发送间隔确定待发送can报文的发送模式,并基于所述发送模式调用目标写函数,包括:

4.根据权利要求1所述的can数据收发方法,其特征在于,所述通知can控制器的数据发送线程将所述待发送can报文装载至所述can控制器的发送邮箱,完成所述待发送can报文的发送,包括:

5.根据权利要求4所述的can数据收发方法,其特征在...

【专利技术属性】
技术研发人员:刘新杨珍亮
申请(专利权)人:深圳市元征科技股份有限公司
类型:发明
国别省市:

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

1