本发明涉及控制器域通信同步,尤其涉及一种基于控制器域网帧的比特同步方法、译码器及存储介质。
背景技术:
1、控制器局域网(can)是由国际标准化组织(iso)11898标准定义的串行数据通信总线拓扑和相关的基于对等消息的协议。can为各种应用提供具有高达1mbit/s的比特率的通信,包括工业、汽车、机器人;以及电机控制系统。
2、控制器局域网(can)用于各从节点与主节点的通信,主节点通过控制器局域网(can)接收从节点的数据网帧并进行采样同步,从而获取数据网帧中的信息。
3、现有技术中,通常采用预设采样点,配合同步补偿宽度在特定范围内偏移,对数据网帧的波段进行同步处理并根据同步后的帧进行数据检测;但是,在数据网帧传输过程中,不仅在接收端和发送端会产生时钟偏差,而且在传输过程中还会产生振铃,振铃对同步会造成一定程度的影响使得采样点的采样区域和同步补偿宽度的取值均会造成偏差。
技术实现思路
1、本发明的目的在于提供一种基于控制器域网帧的比特同步方法、译码器及存储介质,以解决现有技术中振铃对同步会造成一定程度的影响使得采样点的采样区域和同步补偿宽度的取值均会造成偏差的技术问题。
2、为实现上述发明目的之一,本发明一实施方式提供一种基于控制器域网帧的比特同步方法,所述方法包括:预设振铃检测宽度范围和采样点位置;
3、接收数据网帧并检测所述数据网帧中的振铃;
4、若产生振铃,则消除振铃毛刺并计算获得振铃宽度,基于所述振铃宽度输出水平脉冲,调整所述数据网帧中的显性电平长度或隐形电平长度;
5、计算并确认同步补偿宽度,偏移所述采样点以采样所述显性电平和所述隐性电平之间的跳变脉冲并同步自身数据脉冲。
6、作为本发明的进一步改进,所述方法还包括:其中若产生振铃,还包括判断是否产生仲裁;
7、若未产生仲裁,根据时钟偏差和所述振铃宽度计算同步补偿宽度的标准范围和所述采样点的标准采样区域;
8、基于预设的采样点位置,在同步补偿宽度的标准范围内调整并确认所述同步补偿宽度的大小以使采样位置符合采样区域。
9、作为本发明的进一步改进,所述方法还包括:其中所述同步补偿宽度的计算方式包括:
10、对于连续的显性比特,所述同步补偿宽度的标准范围计算是:
11、(dfsender+dfreceiver)×(5+ringing)×bit_time<sjw×bit_time;
12、对于连续的隐性比特,所述同步补偿宽度的标准范围计算是:
13、(dfsender+dfreceiver)×(5-ringing)×bit_time<sjw×bit_time;
14、其中,dfsender为发送端的时钟偏差占比;dfreceiver为接收端的时钟偏差占比;ringing为振铃宽度占比;数字5表征为比特同步的最长长度为5比特;sjw为同步补偿宽度占比;bit_time表征单位:1比特位时间。
15、作为本发明的进一步改进,所述方法还包括:若未产生振铃,还包括判断是否产生仲裁;
16、若产生仲裁,根据时钟偏差和所述仲裁宽度计算同步补偿宽度的标准范围和所述采样点的标准采样区域;
17、基于预设的采样点位置,在同步补偿宽度的标准范围内调整并确认所述同步补偿宽度的大小以使采样位置符合采样区域。
18、作为本发明的进一步改进,所述方法还包括:其中所述同步补偿宽度的计算方式包括:
19、对于连续的显性比特,所述同步补偿宽度的标准范围计算是:
20、(dfsender+dfreceiver)×(5+arbitration)×bit_time<sjw×bit_time;
21、对于连续的隐性比特,所述同步补偿宽度的标准范围计算是:
22、(dfsender+dfreceiver)×5×bit_time<sjw×bit_time;
23、其中,dfsender为发送端的时钟偏差占比;dfreceiver为接收端的时钟偏差占比;arbitration为仲裁宽度占比;数字5表征为比特同步的最长长度为5比特;sjw为同步补偿宽度占比;bit_time表征单位:1比特位时间。
24、作为本发明的进一步改进,所述方法还包括:其中若产生振铃,还包括判断是否产生仲裁;
25、若产生仲裁,根据时钟偏差、仲裁宽度和所述振铃宽度计算同步补偿宽度的标准范围和所述采样点的标准采样区域;
26、基于预设的采样点位置,在同步补偿宽度的标准范围内调整并确认所述同步补偿宽度的大小以使采样位置符合采样区域。
27、作为本发明的进一步改进,所述方法还包括:其中还包括检测所述振铃产生的位置,根据所述振铃的位置确定仲裁段和数据段的占比宽度以计算出针对于不同振铃位置对应的同步补偿宽度的标准范围和采样点的标准采样区域。
28、作为本发明的进一步改进,所述方法还包括:其中所述同步补偿宽度的计算方式包括:
29、对于仲裁段中连续的显性比特,所述同步补偿宽度的标准范围计算是:
30、(dfsender+dfreceiver)×(5+arbitration+ringing)×bit_time<sjw×bit_time;
31、对于仲裁段中连续的隐性比特,所述同步补偿宽度的标准范围计算是:
32、(dfsender+dfreceiver)×(5-ringing)×bit_time<sjw×bit_time;
33、对于数据段中连续的显性比特,所述同步补偿宽度的标准范围计算是:
34、(dfsender+dfreceiver)×(5+ringing)×bit_time<sjw×bit_time;
35、对于数据段中连续的隐性比特,所述同步补偿宽度的标准范围计算是:
36、(dfsender+dfreceiver)×(5-ringing)×bit_time<sjw×bit_time;
37、其中,dfsender为发送端的时钟偏差占比;dfreceiver为接收端的时钟偏差占比;arbitration为仲裁宽度占比;ringing为振铃宽度占比;数字5表征为比特同步的最长长度为5比特;sjw为同步补偿宽度占比;bit_time表征单位:1比特位时间。
38、本发明还提供一种译码器,包括网帧接收器、比特同步处理器和存储器,所述译码器包括:网帧接收器,其用于接收数据网帧;
39、比特同步处理器,通讯连接所述网帧接收器,所述存储器中存储可在所述比特同步处理器上运行的计算机程序,所述比特同步处理器上执行程序时实现如上任意一项所述的基于控制器域网帧的比特同步方法中的步骤。
40、作为本发明的进一步改进,所述译码器还包括:其中所述比特同步处理器包括:
41、毛刺滤波器,耦接网帧接收器,所述毛刺滤波器用于接收数据网帧并检测所述数据网帧中的振铃,若产生振铃,则消除振铃毛刺并计算获得振铃宽度和振铃位置;
42、均衡电路模块,耦接毛刺滤波器,所述均衡电路模块用于基于所述振铃宽度输出水平脉冲,调整所述数据网帧中的显性电平长度或隐形电平长度
43、比特时序处理逻辑模块,具有多路输入和多路输出,多路输入分别耦接均衡电路模块,所述比特时序处理逻辑模块配置为,计算并确认同步补偿宽度,偏移预设的采样点以采样所述显性电平和所述隐性电平之间的跳变脉冲并同步自身数据脉冲;
44、比特位序处理模块,具有多路输入和多路输出,多路输入分别对应耦接比特时序处理逻辑模块的多路输出,所述比特位序处理模块配置为,若产生仲裁,获取所述比特时序处理逻辑模块中所计算的仲裁段的仲裁宽度占比,根据占比宽度的大小选择性接通所述比特时序处理逻辑模块的输出端口。
45、本发明还提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上任意一项所述的基于控制器域网帧的比特同步方法中的步骤。
46、与现有技术相比,本发明具有以下有益效果:若检测到振铃,可以过滤毛刺,从而使得将振铃调整输出水平脉冲,基于该水平脉冲的宽度而调整网帧中显性电平长度或隐形电平长度,进而达到补偿振铃所占比特占比的宽度的效果,基于此,重新调整显性电平长度和隐形电平长度的单位比特中的占比率,使得预设的采样点跟随变动,并且在此基础上重新计算同步补偿宽度的标准范围依次在标准范围内确定同步补偿宽度值,从而解决振铃问题,使得采样点能够偏移达到所需位置从而实现精准同步。
1.一种基于控制器域网帧的比特同步方法,其特征在于,包括:
2.根据权利要求1所述的基于控制器域网帧的比特同步方法,其中若产生振铃,还包括判断是否产生仲裁;
3.根据权利要求2所述的基于控制器域网帧的比特同步方法,其中所述同步补偿宽度的计算方式包括:
4.根据权利要求1所述的基于控制器域网帧的比特同步方法,若未产生振铃,还包括判断是否产生仲裁;
5.根据权利要求4所述的基于控制器域网帧的比特同步方法,其中所述同步补偿宽度的计算方式包括:
6.根据权利要求1所述的基于控制器域网帧的比特同步方法,其中若产生振铃,还包括判断是否产生仲裁;
7.根据权利要求6所述的基于控制器域网帧的比特同步方法,其中还包括检测所述振铃产生的位置,根据所述振铃的位置确定仲裁段和数据段的占比宽度以计算出针对于不同振铃位置对应的同步补偿宽度的标准范围和采样点的标准采样区域。
8.根据权利要求6所述的基于控制器域网帧的比特同步方法,其中所述同步补偿宽度的计算方式包括:
9.一种译码器,包括网帧接收器、比特同步处理器和存储器,其特征在于,包括:
10.根据权利要求9所述的译码器,其中所述比特同步处理器包括:
11.一种存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时候实现如权利要求1~8任意一项所述基于控制器域网帧的比特同步方法中的步骤。