本发明涉及数据通信,特别是涉及一种mcu之间通信的方法、装置、电子设备及介质。
背景技术:
1、串口常用于mcu(microcontroller unit,微控制单元)间的通信,很多产品经常会遇到硬件串口资源不足的情况。通过软件方式实现串口通信,既利用空闲资源,又不增加成本。目前,市面上常见的软件模拟串口方法是定时器录波方法,但该方法容易因计数溢出、死锁和被抢占等原因导致录波失败。因此,定时器录波方法还有很大的优化空间。
技术实现思路
1、为了解决上述问题,本发明实施例公开了一种mcu之间通信的方法、装置、电子设备及存储介质。
2、第一方面,本发明实施例提供了一种mcu之间通信的方法,所述mcu包括定时器、发送引脚和接收引脚,所述方法包括:
3、当前mcu在检测到从所述接收引脚输入的数据信号满足接收条件时,接收另一mcu发送的数据信号;
4、在接收所述数据信号的过程中,确定所述数据信号的当前边沿相对下一个边沿的时间间隔;
5、若所述当前边沿相对下一个边沿的时间间隔大于一个预设计数周期,则累计计数溢出中断的次数加一;
6、当所述计数溢出中断的次数达到预设次数时,确定所述数据信号接收完成。
7、可选地,所述当前mcu在检测到从所述接收引脚输入的数据信号满足接收条件时,接收另一mcu发送的数据信号,包括:
8、所述当前mcu在检测到从所述接收引脚输入的所述数据信号的第一个下降沿,且所述第一个下降沿相对下一个边沿的所述时间间隔大于等于预设时间间隔时,接收所述另一mcu发送的数据信号。
9、可选地,所述在接收所述数据信号的过程中,确定所述数据信号的当前边沿相对下一个边沿的时间间隔,包括:
10、在接收所述数据信号的过程中,开启所述定时器的计数功能;
11、通过所述定时器的计数功能确定所述数据信号的当前边沿相对下一个边沿的所述时间间隔。
12、可选地,所述方法还包括:
13、当所述累计计数溢出中断的次数大于零时,若当所述前边沿相对下一个边沿的时间间隔小于等于所述一个预设计数周期,则将所述累计计数溢出中断的次数清零。
14、可选地,所述当所述计数溢出中断的次数达到预设次数时,确定所述数据信号接收完成,包括:
15、当所述时间间隔的累计时间大于一帧数据信号的时间时,确定完成所述一帧数据信号的接收,并累计已接收数据帧数;
16、当所述计数溢出中断的次数达到预设次数时,若所述已接收数据帧数等于所述预设帧数,则确定多帧所述数据信号接收完成。
17、可选地,所述方法还包括:
18、通过所述多帧数据信号波形不同边沿的接收时间,将接收的所述多帧数据信号恢复成原始数据。
19、可选地,所述方法还包括:
20、按照数据位从低位到高位的序列,通过模拟要发送的数据位设定所述发送引脚的状态,并通过所述发送引脚进行数据信号发送。
21、第二方面,本发明实施例提供了一种mcu之间通信的装置,所述mcu包括定时器、发送引脚和接收引脚,所述装置包括:
22、接收数据信号模块,用于在检测到从所述接收引脚输入的数据信号满足接收条件时,接收另一mcu发送的数据信号;
23、时间间隔确定模块,用于在接收所述数据信号的过程中,确定所述数据信号的当前边沿相对下一个边沿的时间间隔;
24、计数溢出中断累计模块,用于若所述当前边沿相对下一个边沿的时间间隔大于一个预设计数周期,则累计计数溢出中断的次数加一;
25、接收完成确定模块,用于当所述计数溢出中断的次数达到预设次数时,确定所述数据信号接收完成。
26、可选地,所述接收数据信号模块包括:
27、接收数据信号子模块,用于所述当前mcu在检测到从所述接收引脚输入的所述数据信号的第一个下降沿,且所述第一个下降沿相对下一个边沿的所述时间间隔大于等于预设时间间隔时,接收所述另一mcu发送的数据信号。
28、可选地,所述时间间隔确定模块包括:
29、计数功能开启子模块,用于在接收所述数据信号的过程中,开启所述定时器的计数功能;
30、时间间隔确定子模块,用于通过所述定时器的计数功能确定所述数据信号的当前边沿相对下一个边沿的所述时间间隔。
31、可选地,所述装置还包括:
32、计数溢出中断清零模块,用于当所述累计计数溢出中断的次数大于零时,若当所述前边沿相对下一个边沿的时间间隔小于等于所述一个预设计数周期,则将所述累计计数溢出中断的次数清零。
33、可选地,所述接收完成确定模块包括:
34、累计数据帧数子模块,用于当所述时间间隔的累计时间大于一帧数据信号的时间时,确定完成所述一帧数据信号的接收,并累计已接收数据帧数;
35、接收完成确定子模块,用于当所述计数溢出中断的次数达到预设次数时,若所述已接收数据帧数等于所述预设帧数,则确定多帧所述数据信号接收完成。
36、可选地,所述接收完成确定模块还包括:
37、数据恢复子模块,用于通过所述多帧数据信号波形不同边沿的接收时间,将接收的所述多帧数据信号恢复成原始数据。
38、可选地,所述装置还包括:
39、数据信号发送模块,用于按照数据位从低位到高位的序列,通过模拟要发送的数据位设定所述发送引脚的状态,并通过所述发送引脚进行数据信号发送。
40、第三方面,本发明示出了一种电子设备,包括:
41、一个或多个处理器;和
42、其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如上任一项所述的mcu之间通信的方法。
43、第四方面,本发明示出了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如上任一项所述mcu之间通信的方法。
44、本发明实施例包括以下优点:
45、本发明实施例可以通过接收引脚接收其他mcu发送的数据信号,在检测到从接收引脚输入的数据信号满足接收条件时,再接收另一mcu发送的数据信号,以防止误触;在接收数据信号的过程中,可以确定数据信号的当前边沿相对下一个边沿的时间间隔;若当前边沿相对下一个边沿的时间间隔大于一个预设计数周期,则将累计计数溢出中断的次数加一;当计数溢出中断的次数达到预设次数时,则确定数据信号接收完成。本发明提供的mcu之间通信的方法,通过设置累计计数溢出中断的预设次数来判断数据是否接收完成,增加了数据接收过程中的保护机制,可以防止因计数溢出、死锁和被抢占等情况导致录波失败。
1.一种mcu之间通信的方法,其特征在于,所述mcu包括定时器、发送引脚和接收引脚,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述当前mcu在检测到从所述接收引脚输入的数据信号满足接收条件时,接收另一mcu发送的数据信号,包括:
3.根据权利要求1所述的方法,其特征在于,所述在接收所述数据信号的过程中,确定所述数据信号的当前边沿相对下一个边沿的时间间隔,包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述当所述计数溢出中断的次数达到预设次数时,确定所述数据信号接收完成,包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.一种mcu之间通信的装置,其特征在于,所述mcu包括定时器、发送引脚和接收引脚,所述装置包括:
9.一种电子设备,其特征在于,包括:
10.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1-7任一项所述mcu之间通信的方法。