串行通信的波特率识别方法、装置、微控制器及系统的制作方法

文档序号:6539113阅读:138来源:国知局
串行通信的波特率识别方法、装置、微控制器及系统的制作方法
【专利摘要】本申请提供了一种串行通信的波特率识别方法、装置、微控制器及系统,方法包括:获取脉冲宽度数据,脉冲宽度数据包括八个脉冲宽度时间;确定脉冲宽度数据是否满足第一预设条件;当脉冲宽度数据满足第一预设条件时,从脉冲宽度数据中确定出最大的脉冲宽度时间和最小的脉冲宽度时间;计算除最大的脉冲宽度时间和最小的脉冲宽度时间外的其它脉冲宽度时间的平均脉冲宽度时间;基于平均脉冲宽度时间确定脉冲宽度数据是否满足第二预设条件;当脉冲宽度数据满足第二预设条件时,通过平均脉冲宽度时间确定串行通信的波特率。本申请提供方法、装置、微控制器及系统,可解决由干扰造成的波特率计算错误的问题,能够提高串行通信的可靠性。
【专利说明】串行通信的波特率识别方法、装置、微控制器及系统
【技术领域】
[0001]本发明涉及串行通信【技术领域】,尤其涉及一种串行通信的波特率识别方法、装置、微控制器及系统。
【背景技术】
[0002]对于串行通讯,只有通信双方波特率相同时,才能实现数据的正确传输与接收。而一些系统总是希望能实现对各种波特率的兼容。通常的实现方法是,要求对方首先发出规定的字符或数据,系统收到该字符和数据后,计算对方的波特率,以适应对方的波特率进行工作。
[0003]发明人在实现本发明创造的过程中发现:目前采用的自适应的波特率识别方法大多为采用测量脉冲宽度后求平均值的计算方法,然而,采用直接求平均值得计算方法存在风险,当数据受到干扰后,会导致计算错误,进而导致数据通讯失败。

【发明内容】

[0004]有鉴于此,本发明提供了一种串行通信的波特率识别方法及装置,用以解决现有技术中的采用的自适应的波特率识别方法存在风险,当数据受到干扰后,会导致计算错误,进而导致数据通讯失败的问题,其技术方案如下:
[0005]一种串行通信的波特率识别方法,应用于微控制器,所述方法包括:
[0006]a:获取脉冲宽度数据,所述脉冲宽度数据包括8个脉冲宽度时间;
[0007]b:确定所述脉冲宽度数据是否满足第一预设条件;
[0008]c:当所述脉冲宽度数据满足所述第一预设条件时,从所述脉冲宽度数据中确定出最大的脉冲宽度时间和最小的脉冲宽度时间;
[0009]d:计算除所述最大的脉冲宽度时间和所述最小的脉冲宽度时间外的其它脉冲宽度时间的平均脉冲宽度时间;
[0010]e:基于所述平均脉冲宽度时间确定所述脉冲宽度数据是否满足第二预设条件;
[0011]f:当所述脉冲宽度数据满足第二预设条件时,通过所述平均脉冲宽度时间确定串行通信的波特率。
[0012]其中,所述确定所述脉冲宽度数据是否满足第一预设条件,包括:
[0013]计算所述8个脉冲宽度时间的累加时间,并判断所述累加时间是否小于设定的时间阈值;
[0014]当所述累加时间小于设定的时间阈值时,确定所述脉冲宽度数据满足所述第一预设条件,否则,确定所述脉冲宽度数据不满足所述第一预设条件。
[0015]其中,所述基于所述平均脉冲宽度时间确定所述脉冲宽度数据是否满足第二预设条件,包括:
[0016]分别计算所述8个脉冲宽度时间与所述平均脉冲宽度时间差值的绝对值,并判断所述差值的绝对值是否小于或等于设定的脉冲宽度门限值;[0017]当所述8个脉冲宽度时间与所述平均脉冲宽度时间差值的绝对值均小于或等于所述设定的脉冲宽度门限值时,确定所述脉冲宽度数据满足所述第二预设条件,否则,确定所述脉冲宽度数据不满足第二预设条件。
[0018]所述方法还包括:
[0019]当所述脉冲宽度数据不满足所述第一预设条件时,转入步骤a。
[0020]所述方法还包括:
[0021]当所述脉冲宽度数据不满足第二预设条件时,转入步骤a。
[0022]一种串行通信的波特率识别装置,应用于微控制器,所述装置包括:
[0023]获取模块,用于获取脉冲宽度数据,所述脉冲宽度数据包括8个脉冲宽度时间;
[0024]第一确定模块,用于确定所述获取模块获取的所述脉冲宽度数据是否满足第一预设条件;
[0025]第二确定模块,用于当所述第一确定模块确定出所述脉冲宽度数据满足所述第一预设条件时,从所述脉冲宽度数据中确定出最大的脉冲宽度时间和最小的脉冲宽度时间;
[0026]计算模块,用于计算除所述第二确定模块确定出的所述最大的脉冲宽度时间和所述最小的脉冲宽度时间外的其它脉冲宽度时间的平均脉冲宽度时间;
[0027]第三确定模块,用于基于所述平均脉冲宽度时间确定所述脉冲宽度数据是否满足第二预设条件;
[0028]第四确定模块,用于当所述脉冲宽度数据满足所述第二预设条件时,通过所述平均脉冲宽度时间确定串行通信的波特率。
[0029]其中,所述第一确定模块包括:
[0030]第一计算子模块,用于计算所述8个脉冲宽度时间的累加时间;
[0031]第一判断子模块,用于判断所述第一计算子模块计算出的所述累加时间是否小于设定的时间阈值;
[0032]第一确定子模块,用于当所述第一判断子模块判断出所述累加时间小于所述设定的时间阈值时,确定所述脉冲宽度数据满足所述第一预设条件,否则,确定所述脉冲宽度数据不满足所述第一预设条件。
[0033]其中,所述第三确定模块包括:
[0034]第二计算子模块,用于分别计算所述8个脉冲宽度时间与所述平均脉冲宽度时间差值的绝对值;
[0035]第二判断子模块,用于判断所述第二计算子模块计算的所述差值的绝对值是否小于或等于设定的脉冲宽度门限值;
[0036]第二确定子模块,用于当所述第二判断子模块判断出所述8个脉冲宽度时间与所述平均脉冲宽度时间差值的绝对值均小于或等于所述设定的脉冲宽度门限值时,确定所述脉冲宽度数据满足第二预设条件,否则,确定所述脉冲宽度数据不满足第二预设条件。
[0037]—种微控制器,包括:上述的串行通信的波特率识别装置。
[0038]一种串行通信的波特率识别系统,至少包括:上述的微控制器。
[0039]上述技术方案具有如下有益效果:
[0040]本发明提供的串行通信的波特率识别方法、装置、微控制器及系统,当接收到脉冲宽度数据满足第一预设条件时,通过除最大的脉冲宽度时间和最小的脉冲宽度时间外的其它脉冲宽度时间计算平均脉冲宽度时间,在基于平均脉冲宽度时间确定出脉冲宽度数据满足第二预设条件时,通过平均脉冲宽度时间确定波特率。本发明实施例提供的串行通信的波特率识别方法、装置、微控制器及系统可解决由干扰造成的波特率计算错误的问题,能够提高串行通信的可靠性。
【专利附图】

【附图说明】
[0041]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0042]图1为本发明实施例提供的一种串行通信的波特率识别方法的流程示意图;
[0043]图2为本发明实施例提供的另一种串行通信的波特率识别方法的流程示意图;
[0044]图3为8个脉冲的示意图;
[0045]图4为本发明实施例提供的一种串行通信的波特率识别装置40的结构示意图;
[0046]图5为本发明实施例提供的串行通信的波特率识别装置中第一确定模块402的结构示意图;
[0047]图6为本发明实施例提供的串行通信的波特率识别装置中第三确定模块405的结构示意图;
[0048]图7为本发明实施例提供的微控制器70的结构示意图;
[0049]图8为本发明实施例提供的一种串行通信的波特率识别系统80的结构示意图。
【具体实施方式】
[0050]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0051]请参阅图1,为本发明实施例提供的一种串行通信的波特率识别方法的流程示意图,该方法应用于微控制器,该方法可以包括:
[0052]步骤SlOl:获取脉冲宽度数据。
[0053]其中,脉冲宽度数据包括8个脉冲宽度时间。
[0054]步骤S102:确定脉冲宽度数据是否满足第一预设条件。
[0055]其中,第一预设条件可以为8个脉冲宽度时间的累加时间小于设定的时间阈值。
[0056]则确定脉冲宽度数据是否满足第一预设条件具体为:计算8个脉冲宽度时间的累加时间,并判断累加时间是否小于设定的时间阈值,如果累加时间小于设定的时间阈值,则确定脉冲宽度数据满足第一预设条件,否则,确定脉冲宽度数据不满足第一预设条件。
[0057]步骤S103:当脉冲宽度数据满足第一预设条件时,从脉冲宽度数据中确定出最大的脉冲宽度时间和最小的脉冲宽度时间。
[0058]步骤S104:计算除最大的脉冲宽度时间和最小的脉冲宽度时间外的其它脉冲宽度时间的平均脉冲宽度时间。[0059]步骤S105:基于平均脉冲宽度时间确定脉冲宽度数据是否满足第二预设条件。
[0060]其中,第二预设条件可以为8个脉冲宽度时间与平均脉冲宽度时间差值的绝对值均小于或等于设定的脉冲宽度门限值时。
[0061]则基于平均脉冲宽度时间确定脉冲宽度数据是否满足第二预设条件,具体为:分别计算8个脉冲宽度时间与平均脉冲宽度时间差值的绝对值,并判断差值的绝对值是否大于设定的脉冲宽度门限值,如果8个脉冲宽度时间与平均脉冲宽度时间差值的绝对值均小于或等于设定的脉冲宽度门限值,则确定脉冲宽度数据满足第二预设条件,否则,确定脉冲宽度数据不满足第二预设条件。
[0062]步骤S106:当脉冲宽度数据满足第二预设条件时,通过平均脉冲宽度时间确定串行通信的波特率。
[0063]具体的,串行通信的波特率为I/平均脉冲宽度时间。
[0064]本发明实施例提供的串行通信的波特率识别方法中,当接收到脉冲宽度数据满足第一预设条件时,通过除最大的脉冲宽度时间和最小的脉冲宽度时间外的其它脉冲宽度时间计算平均脉冲宽度时间,在基于平均脉冲宽度时间确定出脉冲宽度数据不满足第二预设条件时,通过平均脉冲宽度时间确定波特率。本发明实施例提供的串行通信的波特率识别方法可解决由干扰造成的波特率计算错误的问题,能够提高串行通信的可靠性。
[0065]请参阅图2,为本发明实施例提供的另一种串行通信的波特率识别方法的流程示意图,该方法应用于微控制器,该方法可以包括:
[0066]步骤S201:获取脉冲宽度数据。
[0067]其中,脉冲宽度数据包括8个脉冲宽度时间。
[0068]由于标准的串行通讯数据位为8位,因此,脉冲宽度数据为与8个脉冲对应的脉冲宽度时间。图3示出了 8个脉冲的示意图。8个脉冲宽度时间分别为AtpAtpAtyΔ ?3>Δ ?4>Δ ?5>Δ t6 和Λ t7o
[0069]步骤S202:计算8个脉冲宽度时间的累加时间。
[0070]8个脉冲宽度时间的累加时间为:
[0071]
【权利要求】
1.一种串行通信的波特率识别方法,其特征在于,应用于微控制器,所述方法包括: a:获取脉冲宽度数据,所述脉冲宽度数据包括8个脉冲宽度时间; b:确定所述脉冲宽度数据是否满足第一预设条件; c:当所述脉冲宽度数据满足所述第一预设条件时,从所述脉冲宽度数据中确定出最大的脉冲宽度时间和最小的脉冲宽度时间; d:计算除所述最大的脉冲宽度时间和所述最小的脉冲宽度时间外的其它脉冲宽度时间的平均脉冲宽度时间; e:基于所述平均脉冲宽度时间确定所述脉冲宽度数据是否满足第二预设条件;f:当所述脉冲宽度数据满足第二预设条件时,通过所述平均脉冲宽度时间确定串行通信的波特率。
2.根据权利要求1所述的方法,其特征在于,所述确定所述脉冲宽度数据是否满足第一预设条件,包括: 计算所述8个脉冲宽度时间的累加时间,并判断所述累加时间是否小于设定的时间阈值; 当所述累加时间小于设定的时间阈值时,确定所述脉冲宽度数据满足所述第一预设条件,否则,确定所述脉冲宽度数据不满足所述第一预设条件。
3.根据权利要求2所述的方法,其特征在于,所述基于所述平均脉冲宽度时间确定所述脉冲宽度数据是否满足第二预设条件,包括: 分别计算所述8个脉冲宽度时间与所述平均脉冲宽度时间差值的绝对值,并判断所述差值的绝对值是否小于或等于设定的脉冲宽度门限值; 当所述8个脉冲宽度时间与所述平均脉冲宽度时间差值的绝对值均小于或等于所述设定的脉冲宽度门限值时,确定所述脉冲宽度数据满足所述第二预设条件,否则,确定所述脉冲宽度数据不满足第二预设条件。
4.根据权利要求1~3中任意一项所述的方法,其特征在于,所述方法还包括: 当所述脉冲宽度数据不满足所述第一预设条件时,转入步骤a。
5.根据权利要求1~3中任意一项所述的方法,其特征在于,所述方法还包括: 当所述脉冲宽度数据不满足所述第二预设条件时,转入步骤a。
6.一种串行通信的波特率识别装置,其特征在于,应用于微控制器,所述装置包括: 获取模块,用于获取脉冲宽度数据,所述脉冲宽度数据包括8个脉冲宽度时间; 第一确定模块,用于确定所述获取模块获取的所述脉冲宽度数据是否满足第一预设条件; 第二确定模块,用于当所述第一确定模块确定出所述脉冲宽度数据满足所述第一预设条件时,从所述脉冲宽度数据中确定出最大的脉冲宽度时间和最小的脉冲宽度时间; 计算模块,用于计算除所述第二确定模块确定出的所述最大的脉冲宽度时间和所述最小的脉冲宽度时间外的其它脉冲宽度时间的平均脉冲宽度时间; 第三确定模块,用于基于所述平均脉冲宽度时间确定所述脉冲宽度数据是否满足第二预设条件; 第四确定模块,用于当所述脉冲宽度数据满足所述第二预设条件时,通过所述平均脉冲宽度时间确定串行通信的波特率。
7.根据权利要求6所述的装置,其特征在于,所述第一确定模块包括: 第一计算子模块,用于计算所述8个脉冲宽度时间的累加时间; 第一判断子模块,用于判断所述第一计算子模块计算出的所述累加时间是否小于设定的时间阈值; 第一确定子模块,用于当所述第一判断子模块判断出所述累加时间小于所述设定的时间阈值时,确定所述脉冲宽度数据满足所述第一预设条件,否则,确定所述脉冲宽度数据不满足所述第一预设条件。
8.根据权利要求7所述的装置,其特征在于,所述第三确定模块包括: 第二计算子模块,用于分别计算所述8个脉冲宽度时间与所述平均脉冲宽度时间差值的绝对值; 第二判断子模块,用于判断所述第二计算子模块计算的所述差值的绝对值是否小于或等于设定的脉冲宽度门限值; 第二确定子模块,用于当所述第二判断子模块判断出所述8个脉冲宽度时间与所述平均脉冲宽度时间差值的绝对值均小于或等于所述设定的脉冲宽度门限值时,确定所述脉冲宽度数据满足第二预设条件,否则,确定所述脉冲宽度数据不满足第二预设条件。
9.一种微控制器,其特征在于,包括:如权利要求6~8中任意一项所述的串行通信的波特率识别装置。
10.一种串行通信的波特率识别系统,其特征在于,至少包括:如权利要求9所述的微控制器。
【文档编号】G06F13/38GK103970698SQ201410072302
【公开日】2014年8月6日 申请日期:2014年2月28日 优先权日:2014年2月28日
【发明者】台生斌, 吴晓东, 付宽, 曹海建 申请人:北京经纬恒润科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1