CN105680947B - 一种可滤除毛刺的串行数据接收方法 - Google Patents
一种可滤除毛刺的串行数据接收方法 Download PDFInfo
- Publication number
- CN105680947B CN105680947B CN201511024487.8A CN201511024487A CN105680947B CN 105680947 B CN105680947 B CN 105680947B CN 201511024487 A CN201511024487 A CN 201511024487A CN 105680947 B CN105680947 B CN 105680947B
- Authority
- CN
- China
- Prior art keywords
- level
- high level
- recipient
- low level
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B10/00—Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
- H04B10/50—Transmitters
- H04B10/501—Structural aspects
- H04B10/503—Laser transmitters
- H04B10/505—Laser transmitters using external modulation
- H04B10/5057—Laser transmitters using external modulation using a feedback signal generated by analysing the optical output
- H04B10/50575—Laser transmitters using external modulation using a feedback signal generated by analysing the optical output to control the modulator DC bias
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B10/00—Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
- H04B10/25—Arrangements specific to fibre transmission
- H04B10/2507—Arrangements specific to fibre transmission for the reduction or elimination of distortion or dispersion
- H04B10/2572—Arrangements specific to fibre transmission for the reduction or elimination of distortion or dispersion due to forms of polarisation-dependent distortion other than PMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B10/00—Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
- H04B10/50—Transmitters
- H04B10/501—Structural aspects
- H04B10/503—Laser transmitters
- H04B10/505—Laser transmitters using external modulation
- H04B10/5059—Laser transmitters using external modulation using a feed-forward signal generated by analysing the optical or electrical input
- H04B10/50593—Laser transmitters using external modulation using a feed-forward signal generated by analysing the optical or electrical input to control the modulating signal amplitude including amplitude distortion
Abstract
本发明公开了一种可滤除毛刺的串行数据接收方法,接收方对信号采样接收时,将数据存入到3比特位的先入先出队列中,在接收方接收高电平情况下,通过检测001来判断高电平是否跳变为低电平,在检测到001之前对高电平比特数进行计数,当某采样时刻检测到001时,则判定高电平跳变为低电平,输出高电平计数结果;在接收方接收低电平情况下,通过检测110来判断低电平是否跳变为高电平,在检测到110之前对低电平比特数进行计数,当某采样时刻检测到110时,则判定低电平跳变为高电平,输出低电平计数结果。最后根据接收方接收到的各段高电平/低电平比特数还原出原始数据。本发明在滤除毛刺的同时完成数据接收,提高了传输的正确性。
Description
技术领域
本发明属于通信技术领域,涉及一种数据接收方法,特别涉及一种可滤除毛刺的串行数据接收方法。
背景技术
在工业控制、民生医疗、航空航天等领域广泛使用串行数据通信的方法进行数据传输,在串行数据通信时,发送端在发送信号过程中由于电压不稳定,信号延迟等原因,容易产生毛刺。该毛刺若得不到妥善处理,容易使得接收端收到的数据产生错误信息,导致通信失败,并影响通信的质量。
传统的信号去毛刺方法中,设计使用若干个锁存器对信号进行顺序锁存,当所有的移位寄存器全为1的时候,表示稳定的高电平到达,此时输出1;当所有的移位寄存器全为0的时候,表示稳定的低电平到达,此时输出0;而其他情况则保持原输出不变。使用该方法,可以将毛刺进行滤除,但是由于毛刺主要发生在电平跳变阶段,该方法实际上是将带有毛刺的数据当成上一状态,容易造成电平跳变的延后或者提前,使得输出的01波形发生形变,若对这个形变的波形进行接收,有可能影响数据的正常接收。
另外,由于传输过程中双方的时钟无法做到完全同步,因此容易产生时钟误差,并且使用传统去毛刺方法也会造成接收的信号有延迟误差,两种误差相互叠加,更容易产生接收错误。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种可滤除毛刺的串行数据接收方法。本发明接收方法可在滤除毛刺的同时完成数据接收,提高传输的正确性。
本发明的目的通过下述技术方案实现:一种可滤除毛刺的串行数据接收方法,步骤如下:
S1、设定接收方采样接收信号线上信号时所采用的波特因子X;确定发送方所采用的数据帧格式及接收方接收信号线在空闲状态下和传输数据帧停止位时的电平状态,其中0代表低电平,1代表高电平;
S2、接收方按照步骤S1设定的波特因子开始对接收信号线上的信号进行采样接收,并且将采样接收的数据先后存入一个3比特位的先入先出队列中;
S3、若接收方接收信号线在空闲状态下和传输数据帧停止位时的电平状态为高电平,则进入步骤S31;若接收方接收信号线在空闲状态下和传输数据帧停止位时的电平状态为低电平,则进入步骤S32;
S31、在当前采样时刻检测先入先出队列中从入到出方向上的比特位数据,判断是否为001;
若否,则判定未发生电平跳变情况,进入步骤S311;
若是,则判定发生电平跳变情况,从高电平跳变为低电平,进入步骤S312;
S311、在下一采样时刻到来时继续执行步骤S31;
S312、接收方开始采样接收发送方发送的数据帧,在先入先出队列中从入到出方向上的比特位数据出现001的采样时刻,将计数器置为1,然后在下一采样时刻到来时进入步骤S4;
S32、在当前采样时刻检测先入先出队列中从入到出方向上的比特位数据,判断是否为110;
若否,则判定未发生电平跳变情况,进入步骤S321;
若是,则判定发生电平跳变情况,从低电平跳变为高电平,进入步骤S322;
S321、在下一采样时刻到来时继续执行步骤S32;
S322、接收方开始采样接收发送方发送的数据帧,在先入先出队列中从入到出方向上的比特位数据出现110的采样时刻,将计数器置为1,然后在下一采样时刻到来时进入步骤S7;
S4、检测当前采样时刻先入先出队列中从入到出方向上的比特位数据,判断是否为110;
若否,则判定未发生电平跳变情况,进入步骤S5;
若是,则判定发生电平跳变情况,从低电平跳变为了高电平,进入步骤S6;
S5、判断接收方接收的数据帧长度是否达到完整数据帧长度;
若否,则计数器加1,即将当前低电平的比特数加1,在下一采样时刻到来时回到步骤S4;
若是,则计数器停止计数,即停止当前低电平比特数的计数,计数器输出低电平比特数计数结果,然后进入下一帧数据的接收,在下一采样时刻到来时,回到步骤S3;
S6、计数器停止计数,即停止当前低电平比特数的计数,计数器输出低电平比特数计数结果,然后将计数器置为1,下一采样时刻到来时进入步骤S7;
S7、检测当前采样时刻先入先出队列中从入到出方向上的比特位数据,判断是否为001;
若否,则判定未发生电平跳变情况,进入步骤S8;
若是,则判定发生电平跳变情况,从高电平跳变为低电平,进入步骤S9;
S8、判断接收方接收的数据帧长度是否到达完整数据帧长度;
若否,则计数器加1,即将当前高电平的比特数加1,在下一采样时刻到来时回到步骤S7;
若是,则计数器停止计数,即停止当前高电平比特数的计数,计数器输出高电平比特数计数结果,然后进入下一帧数据的接收,在下一采样时刻到来时,回到步骤S3;
S9、计数器停止计数,即停止当前高电平比特数的计数,计数器输出高电平比特数计数结果,然后将计数器置为1,下一采样时刻到来时进入步骤S4;
S10、通过步骤S5、步骤S6、步骤S8和步骤S9,接收方依次获取到每帧数据中对应各段高电平/低电平比特数,然后根据设定的接收方采样接收信号线上信号时所采用的波特因子X和每帧数据中对应各段高电平/低电平的比特数,还原出发送方发送的原始数据帧;具体还原过程如下:将接收方获取的每帧数据中对应各段高电平/低电平的比特数加X/2,然后除以X得到商N,则还原出的发送方在相应时间发送的原始数据即为N比特的高电平/低电平。
优选的,发送方发送的每一数据帧包括1比特起始位、8比特数据位D0至D7、1比特奇偶校验位和1比特停止位,其中起始位为低电平,停止位为高电平。
优选的,所述设定的接收方采样接收信号线上信号时所采用的波特因子X为16、32、48、64、80、96、112、128或144。
优选的,接收方接收的完整数据帧长度L为:
L=L1*X+X/2;
其中L1为发送方发送的数据帧长度,X为接收方采样接收信号线上信号时所采用的波特因子。
优选的,发送方通过串口通信协议传输数据到接收方;接收方接收信号线在空闲状态下的电平状态为高电平。
优选的,所述先入先出队列为移位寄存器,数据从移位寄存器的左端进入,每进来一位数据同时移位寄存器内数据右移一位。
优选的,先入先出队列各位初始化电平为接收方接收信号线在空闲状态下电平。
本发明相对于现有技术具有如下的优点及效果:
(1)本发明接收方设定波特因子并对接收信号线上的信号采样接收,同时将接收到的信号存入到一个3比特位的先入先出队列中,根据先入先出序列中的3位数据,判断出电平跳变情况并且计算出每帧数据中各段高电平和低电平的比特数,然后根据接收方采样接收信号线上信号时所采用的波特因子还原出发送方发送的原始数据。其中在接收方当前接收的数据为高电平的情况下,通过检测接下来的采样后先入先出队列从入到出方向上的比特位数据是否为001来判定高电平是否跳变为低电平,并在检测到001之前对本高电平1的比特数进行计数,当某采样时刻检测到001时,则判定高电平跳变为了低电平,并输出高电平的计数结果;在接收方当前接收的数据为低电平的情况下,通过检测接下来的采样后先入先出队列从入到出方向上的比特位数据是否为110来判定低电平是否跳变为高电平,并在检测到110之前对本低电平0的比特数进行计数,当某采样时刻检测到110时,则判定低电平跳变为了高电平,并输出低电平的计数结果。由于在高电平期间出现毛刺时,毛刺的持续时间长度不会超过一个采样周期,因此不会出现连续采样到两个0,因而先入先出队列中不会被检测到001的情况;同样在低电平期间出现毛刺时,毛刺的持续时间长度不会超过一个采样周期,因此不会出现连续采样到两个1,因而先入先出队列中不会被检测到110的情况。因此,本发明通过001判断高电平是否跳变为低电平时不会将毛刺误判为高电平到低电平的跳变,通过110判断低电平是否跳变为高电平时不会将毛刺误判为低电平到高电平的跳变,在高电平计数过程中将毛刺0作为高电平1进行计数,在低电平计数过程中将毛刺1作为低电平0进行计数,因此还原发送方发送的数据时能够滤除毛刺,在滤除毛刺的同时完成数据接收,提高了传输的正确性。
(2)本发明方法接收方在数据还原过程中,根据接收方采样接收信号线上信号时所采用的波特因子,针对接收方接收的每帧数据对应各段高电平/低电平比特数,通过“四舍五入”方法还原出发送方在相应时间发送的原始数据高电平/低电平比特;采用这种“四舍五入”方法还原数据,当误差在一定范围内时,都可以恢复为原来波形,不会产生非正常波形,即通过这一步得到的电平,只要误差在允许范围内,都可以还原成正确比特数,有效解决了因信号传输延迟、时钟误差以及去毛刺等引起偏差而导致还原数据不正确的问题。
(3)本发明通过接收方接收的每帧数据对应各段高电平/低电平的比特数可以直接还原出发送方发送的原始数据,有效避免了现有技术中还需对去毛刺的信号重新进行采样而造成信号输出延迟和波形形变的情况。
附图说明
图1是本发明方法流程图。
图2是本发明方法中发送方发送的数据帧格式示意图。
图3是发送方发送的在信号传输时和跳变时出现毛刺的信号波形图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例1
如图1所示,本实施例公开了一种可滤除毛刺的串行数据接收方法,其步骤如下:
S1、设定接收方采样接收信号线上信号时所采用的波特因子X;确定发送方所采用的数据帧格式及接收方接收信号线在空闲状态下和传输数据帧停止位时的电平状态,其中0代表低电平,1代表高电平;如图2中所示,本实施例中发送方发送的每一数据帧包括1比特低电平起始位、8比特数据位D0至D7、1比特奇偶校验位和1比特高电平停止位,数据帧的长度为11位;空闲时接收信号线为高电平状态;本实施例中设定的接收方采样接收信号线上信号时所采用的波特因子X为16、32、48、64、80、96、112、128或144。
S2、接收方按照步骤S1设定的波特因子及空闲状态电平开始对接收信号线上的信号进行采样接收;并且将采样接收的数据先后存入一个3比特位的先入先出队列FIFO中;本实施例中先入先出队列为移位寄存器,数据从移位寄存器的左端进入,每进来一位数据同时移位寄存器内数据右移一位。假设被采样的数据从前到后依次为010011,该3位先入先出队列根据接收信号线空闲时电平初始化后存储的数据为111,则每次采样后该队列中的数据依次为011、101、010、001、100、110。
S3、若接收方接收信号线在空闲状态下和传输数据帧停止位时的电平状态为高电平,则进入步骤S31;若接收方接收信号线在空闲状态下和传输数据帧停止位时的电平状态为低电平,则进入步骤S32。
S31、在当前采样时刻检测先入先出队列中从入到出方向上的比特位数据,判断是否为001;
若否,则未发生电平跳变情况,进入步骤S311;
若是,则发生电平跳变情况,从高电平跳变为低电平,进入步骤S312;
S311、在下一采样时刻到来时继续执行步骤S31;
S312、接收方开始采样接收发送方发送的数据帧,在先入先出队列中从入到出方向上的比特位数据出现001的采样时刻,将计数器置为1,然后在下一采样时刻到来时进入步骤S4。
S32、在当前采样时刻检测先入先出队列中从入到出方向上的比特位数据,判断是否为110;
若否,则判定未发生电平跳变情况,进入步骤S321;
若是,则判定发生电平跳变情况,从低电平跳变为高电平,进入步骤S322;
S321、在下一采样时刻到来时继续执行步骤S32;
S322、接收方开始采样接收发送方发送的数据帧,在先入先出队列中从入到出方向上的比特位数据出现110的采样时刻,将计数器置为1,然后在下一采样时刻到来时进入步骤S7。
S4、检测当前采样时刻先入先出队列中从入到出方向上的比特位数据,判断是否为110;
若否,则判定未发生电平跳变情况,进入步骤S5;
若是,则判定发生电平跳变情况,从低电平跳变为了高电平,进入步骤S6。
S5、判断接收方接收的数据帧长度是否达到完整数据帧长度;
若否,则计数器加1,即将当前低电平的比特数加1,在下一采样时刻到来时回到步骤S4;
若是,则计数器停止计数,即停止当前低电平比特数的计数,计数器输出低电平比特数计数结果,然后进入下一帧数据的接收,在下一采样时刻到来时,回到步骤S3。
本实施例中接收方接收的完整数据帧长度L为:
L=L1*X+X/2;
其中:L1为发送方发送的数据帧长度,X为接收方采样接收信号线上信号时所采用的波特因子。
S6、计数器停止计数,即停止当前低电平比特数的计数,计数器输出低电平比特数计数结果,然后将计数器置为1,下一采样时刻到来时进入步骤S7。
S7、检测当前采样时刻先入先出队列中从入到出方向上的比特位数据,判断是否为001;
若否,则判定未发生电平跳变情况,进入步骤S8;
若是,则判定发生电平跳变情况,从高电平跳变为低电平,进入步骤S9。
S8、判断接收方接收的数据帧长度是否到达完整数据帧长度;
若否,则计数器加1,即将当前高电平的比特数加1,在下一采样时刻到来时回到步骤S7;
若是,则计数器停止计数,即停止当前高电平比特数的计数,计数器输出高电平比特数计数结果,然后进入下一帧数据的接收,在下一采样时刻到来时,回到步骤S3。
S9、计数器停止计数,即停止当前高电平比特数的计数,计数器输出高电平比特数计数结果,然后将计数器置为1,下一采样时刻到来时进入步骤S4。
S10、通过步骤S5、步骤S6、步骤S8和步骤S9,接收方依次获取到每帧数据中对应各段高电平/低电平比特数,然后根据设定的接收方采样接收信号线上信号时所采用的波特因子X和每帧数据中对应各段高电平/低电平的比特数,还原出发送方发送的原始数据帧。具体还原过程如下:将接收方获取的每帧数据中对应各段高电平/低电平的比特数加X/2,然后除以X得到商N,则还原出的发送方在相应时间发送的原始数据即为N比特的高电平/低电平。
本实施例中由于接收方接收信号线在空闲状态下和传输数据帧停止位时的电平状态为高电平1,因此在执行步骤S3时选择执行步骤S31,即在接收方开始对接收信号线上的信号进行采样接收时,首先检测接下来的采样后先入先出队列中从入到出方向上的比特位数据,判断是否出现001,如果出现001,则判定电平发生跳变,即接收方开始接收数据帧的起始位0,此时进入步骤S4检测先入先出队列中从入到出方向上的比特位数据是否出现110,在没有出现110的采样时刻对起始位的低电平0的比特数进行计算,在出现110的采样时刻,则判定电平发生跳转,即低电平0跳变为高电平1,此时低电平0计数结束并且获取到计数结果。接下来步骤S7中通过检测先入先出队列从入到出方向上的比特位数据001获取到高电平发生低电平的跳变情况以及对高电平的比特数进行计数,再回到步骤S4中通过检测先入先出队列从入到出方向上的比特位数据110获取到低电平发生高电平的跳变情况以及对低电平的比特数进行计数。因此通过循环执行步骤S4和步骤S7能够观察到高电平和低电平的跳变以及低电平到高电平的跳变,并且通过循环执行步骤S4和步骤S7计算出每个数据帧对应各段高电平和低电平的比特数。最后根据接收方采样接收信号线上信号时所采用的波特因子X即可还原出发送方发送的数据帧。
本实施例接收方当前接收的数据为高电平的情况下,通过检测接下来的采样后先入先出队列从入到出方向上的比特位数据是否为001来判断高电平是否跳变为低电平,并在检测到001之前对本高电平1的比特数进行计数,当某采样时刻检测到001时,则判定高电平跳变为了低电平。另外本实施例接收方当前接收的数据为低电平的情况下,通过检测接下来的采样后先入先出队列从入到出方向上的比特位数据是否为110来判断低电平是否跳变为高电平,并在检测到110之前对本低电平0的比特数进行计数,当某采样时刻检测到110时,则判定低电平跳变为了高电平。
由于在信号传输时,毛刺一般为一短时脉冲,因此周围仍为原正常传输数据:在高电平时,出现的毛刺为低电平,而信号两边仍为高电平,即接收方采样接收的数据为(省略1)……11011……(省略1),因此若对此含毛刺的高电平进行顺序采样,在发生正式的高电平到低电平的跳变之前,不会发生先采样到1,然后采样到连续的两个0这种情况。同样的,在低电平时,出现的毛刺为高电平,而毛刺两边仍为低电平,即接收方采样接收的数据为(省略0)……00100……(省略0),因此若对此含毛刺的低电平进行顺序采样,在发生正式的低电平到高电平的跳变之前,不会发生先采样到0,然后采样到连续的两个1这种情况。可见在高电平期间,若有毛刺出现,则先入先出队列从入到出方向上的比特位数据会出现011,101和110,而不会出现001的情况。在低电平期间,若有毛刺出现,则先入先出队列从入到出方向上的比特位数据会出现100,010和001,而不会出现110的情况。因此本实施例在接收方当前接收的数据为高电平时,在接下来的采样时刻通过检测先入先出队列从入到出方向上的比特位数据001判断是否发生高电平到低电平的跳变,不会将毛刺误判为高电平到低电平的跳变,在计数时将该毛刺0作为高电平1进行高电平比特位的计数,因此在还原发送方的原始数据时能够滤除掉毛刺中出现的0。同样的,本实施例在接收方当前接收的数据为低电平时,在接下来的采样时刻通过检测先入先出队列从入到出方向上的比特位数据110判断是否发生低电平到高电平的跳变,不会将毛刺误判为低电平到高电平的跳变,在计数时将该毛刺1作为低电平0进行低电平比特位的计数,因此在还原发送方的原始数据时能够滤除掉毛刺中出现的1。
如图3中所示,其中A为信号传输中间出现的毛刺,B为信号跳变时出现毛刺。其中出现毛刺A的这种情况,接收方采样接收的信号依次为(省略0)……000010000……(省略0),由于此时这段数据跳变前处于低电平,按照本实施例上述步骤,接收方当前接收的数据为低电平时,在接下来的采样时刻通过检测先入先出队列从入到出方向上的比特位数据110判断是否发生低电平到高电平的跳变,而在这段出现毛刺A的数据中并不会使得先入先出队列从入到出方向上的比特位数据出现110的情况,按照本实施例上述步骤这个毛刺A在低电平计数过程中仍然被当作0进行计数,因此在还原发送方的原始数据时能够滤除掉毛刺中出现的1,也就是说这时出现的毛刺A不起任何作用,也就是被滤除掉了。其中出现毛刺B的这种情况,接收方采样接收的信号依次为(省略0)……000001011111……(省略1),由于此时这段数据跳变前处于低电平,按照本实施例上述步骤,接收方当前接收的数据为低电平时,在接下来的采样时刻通过检测先入先出队列从入到出方向上的比特位数据110判断是否发生低电平到高电平的跳变,当毛刺B出现,在采样过程中,先入先出队列从入到出方向上的比特位数据会依次出现100、010、101的情况,而都不是110这种情况,因此接收方不会认为此时毛刺B为高电平已经到来,按照本实施例上述步骤这个毛刺B在低电平计数过程中仍然被当作0进行计数,因此在还原发送方的原始数据时能够滤除掉毛刺中出现的1,也就是说这时出现的毛刺B不起任何作用,也就是被滤除掉了。当继续采样后,会出现110这种情况,则此时会认为发生低电平到高电平的跳变。
本实施例中波特因子表示的是接收1个数据(1个数据位)所需要的时钟脉冲个数,其单位是个/位。当波特因子为X时,发送方发送的每1bit的数据在接收方被采样到X次,即1bit应被计数到X次,2bit应被计数2X次,以此类推,若接收方采样到了2X个低电平,则可以认为是接收到了发送方2bit的0。本实施例中X可以为16、32、48、64、80、96、112、128、144。在本实施例中考虑到信号传输延迟、时钟误差以及去毛刺等问题会使得接收到信号有一定偏差的问题,因此在步骤S10中通过“四舍五入”的方法对接收方接收到的数据进行还原,具体如步骤S10所示,将接收方获取的每帧数据中对应各段高电平/低电平的比特数加X/2,然后除以X得到商N,商N即为接收方接收的各段高电平/低电平对应发送方在相应时间发送的各高电平/低电平的比特数。例如X选为16,接收方接收到的某段高电平比特数为17,则通过“四舍五入”方法后得到的N为1,因此接收方接收到的某段17比特的高电平对应在发送方发送的数据中为1比特的高电平。其中“四舍五入”的方法在二进制时,体现为对各段高电平/低电平的十进制比特数加8后转换二进制,然后该二进制数中取前4位二进制,所取的前4位二进制数转换成的十进制即为商N。当X为16时,对应不同比特数四舍五入后得到的商N如表1所示:
表1
通过上表可见,采用“四舍五入”方法后,当误差在一定范围内时,都可以恢复为原来波形,不会产生非正常波形,即通过这一步得到的电平,只要误差在允许范围内,都可以还原成正确比特数。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (7)
1.一种可滤除毛刺的串行数据接收方法,其特征在于,步骤如下:
S1、设定接收方采样接收信号线上信号时所采用的波特因子X;确定发送方所采用的数据帧格式及接收方接收信号线在空闲状态下和传输数据帧停止位时的电平状态,其中0代表低电平,1代表高电平;
S2、接收方按照步骤S1设定的波特因子开始对接收信号线上的信号进行采样接收,并且将采样接收的数据先后存入一个3比特位的先入先出队列中;
S3、若接收方接收信号线在空闲状态下和传输数据帧停止位时的电平状态为高电平,则进入步骤S31;若接收方接收信号线在空闲状态下和传输数据帧停止位时的电平状态为低电平,则进入步骤S32;
S31、在当前采样时刻检测先入先出队列中从入到出方向上的比特位数据,判断是否为001;
若否,则判定未发生电平跳变情况,进入步骤S311;
若是,则判定发生电平跳变情况,从高电平跳变为低电平,进入步骤S312;
S311、在下一采样时刻到来时继续执行步骤S31;
S312、接收方开始采样接收发送方发送的数据帧,在先入先出队列中从入到出方向上的比特位数据出现001的采样时刻,将计数器置为1,然后在下一采样时刻到来时进入步骤S4;
S32、在当前采样时刻检测先入先出队列中从入到出方向上的比特位数据,判断是否为110;
若否,则判定未发生电平跳变情况,进入步骤S321;
若是,则判定发生电平跳变情况,从低电平跳变为高电平,进入步骤S322;
S321、在下一采样时刻到来时继续执行步骤S32;
S322、接收方开始采样接收发送方发送的数据帧,在先入先出队列中从入到出方向上的比特位数据出现110的采样时刻,将计数器置为1,然后在下一采样时刻到来时进入步骤S7;
S4、检测当前采样时刻先入先出队列中从入到出方向上的比特位数据,判断是否为110;
若否,则判定未发生电平跳变情况,进入步骤S5;
若是,则判定发生电平跳变情况,从低电平跳变为高电平,进入步骤S6;
S5、判断接收方接收的数据帧长度是否达到完整数据帧长度;
若否,则计数器加1,即将当前低电平的比特数加1,在下一采样时刻到来时回到步骤S4;
若是,则计数器停止计数,即停止当前低电平比特数的计数,计数器输出低电平比特数计数结果,然后进入下一帧数据的接收,在下一采样时刻到来时,回到步骤S3;
S6、计数器停止计数,即停止当前低电平比特数的计数,计数器输出低电平比特数计数结果,然后将计数器置为1,下一采样时刻到来时进入步骤S7;
S7、检测当前采样时刻先入先出队列中从入到出方向上的比特位数据,判断是否为001;
若否,则判定未发生电平跳变情况,进入步骤S8;
若是,则判定发生电平跳变情况,从高电平跳变为低电平,进入步骤S9;
S8、判断接收方接收的数据帧长度是否到达完整数据帧长度;
若否,则计数器加1,即将当前高电平的比特数加1,在下一采样时刻到来时回到步骤S7;
若是,则计数器停止计数,即停止当前高电平比特数的计数,计数器输出高电平比特数计数结果,然后进入下一帧数据的接收,在下一采样时刻到来时,回到步骤S3;
S9、计数器停止计数,即停止当前高电平比特数的计数,计数器输出高电平比特数计数结果,然后将计数器置为1,下一采样时刻到来时进入步骤S4;
S10、通过步骤S5、步骤S6、步骤S8和步骤S9,接收方依次获取到每帧数据中对应各段高电平/低电平比特数,然后根据设定的接收方采样接收信号线上信号时所采用的波特因子X和每帧数据中对应各段高电平/低电平的比特数,还原出发送方发送的原始数据帧;具体还原过程如下:将接收方获取的每帧数据中对应各段高电平/低电平的比特数加X/2,然后除以X得到商N,则还原出的发送方在相应时间发送的原始数据即为N比特的高电平/低电平。
2.根据权利要求1所述的可滤除毛刺的串行数据接收方法,其特征在于,发送方发送的每一数据帧包括1比特起始位、8比特数据位D0至D7、1比特奇偶校验位和1比特停止位,其中起始位为低电平,停止位为高电平。
3.根据权利要求1所述的可滤除毛刺的串行数据接收方法,其特征在于,所述设定的接收方采样接收信号线上信号时所采用的波特因子X为16、32、48、64、80、96、112、128或144。
4.根据权利要求1所述的可滤除毛刺的串行数据接收方法,其特征在于,接收方接收的完整数据帧长度L为:
L=L1*X+X/2;
其中L1为发送方发送的数据帧长度,X为接收方采样接收信号线上信号时所采用的波特因子。
5.根据权利要求1所述的可滤除毛刺的串行数据接收方法,其特征在于,发送方通过串口通信协议传输数据到接收方。
6.根据权利要求1所述的可滤除毛刺的串行数据接收方法,其特征在于,所述先入先出队列为移位寄存器,数据从移位寄存器的左端进入,每进来一位数据同时移位寄存器内数据右移一位。
7.根据权利要求1所述的可滤除毛刺的串行数据接收方法,其特征在于,先入先出队列各位初始化电平为接收方接收信号线在空闲状态下电平。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511024487.8A CN105680947B (zh) | 2015-12-29 | 2015-12-29 | 一种可滤除毛刺的串行数据接收方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511024487.8A CN105680947B (zh) | 2015-12-29 | 2015-12-29 | 一种可滤除毛刺的串行数据接收方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105680947A CN105680947A (zh) | 2016-06-15 |
CN105680947B true CN105680947B (zh) | 2018-01-19 |
Family
ID=56189882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511024487.8A Active CN105680947B (zh) | 2015-12-29 | 2015-12-29 | 一种可滤除毛刺的串行数据接收方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105680947B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107454028B (zh) * | 2017-08-11 | 2021-03-02 | 成都理工大学 | 基于FPGA的LiFi信号解调方法及解调器 |
CN107800409B (zh) * | 2017-11-16 | 2020-11-06 | 湖南工业大学 | 积累式干扰脉冲过滤方法 |
CN109116065B (zh) * | 2018-09-21 | 2021-02-09 | 北京广利核系统工程有限公司 | 一种高频抖动过滤的测试方法和装置 |
CN109885525B (zh) * | 2019-03-19 | 2021-02-12 | 西安联飞智能装备研究院有限责任公司 | Uart接收方法、装置、电子设备及可读存储介质 |
CN111141926B (zh) * | 2019-12-27 | 2022-06-03 | 宁波三星智能电气有限公司 | 一种充电桩内的风机转速检测方法 |
CN111934962B (zh) * | 2020-06-29 | 2021-09-21 | 四川九洲空管科技有限责任公司 | 一种基于fpga的自适应429数据接收速率的接收方法及系统 |
CN116667858B (zh) * | 2023-08-01 | 2023-10-27 | 上海芯炽科技集团有限公司 | 一种用于检测mipi aphy高速差分信号的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101267194A (zh) * | 2008-04-18 | 2008-09-17 | 启攀微电子(上海)有限公司 | 一种毛刺的判断及消除电路 |
US7830181B1 (en) * | 2009-09-08 | 2010-11-09 | Faraday Technology Corp. | Deglitch circuit |
CN103604968A (zh) * | 2013-12-10 | 2014-02-26 | 南京国睿安泰信科技股份有限公司 | 消除峰值检测误产生毛刺的系统 |
CN104065361A (zh) * | 2014-06-03 | 2014-09-24 | 北京空间机电研究所 | 一种用于消除毛刺信号的串行级联单比特滤波器结构 |
CN105141286A (zh) * | 2015-10-16 | 2015-12-09 | 成都默一科技有限公司 | 滤除单时钟周期脉冲及毛刺的数字滤波器 |
-
2015
- 2015-12-29 CN CN201511024487.8A patent/CN105680947B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101267194A (zh) * | 2008-04-18 | 2008-09-17 | 启攀微电子(上海)有限公司 | 一种毛刺的判断及消除电路 |
US7830181B1 (en) * | 2009-09-08 | 2010-11-09 | Faraday Technology Corp. | Deglitch circuit |
CN103604968A (zh) * | 2013-12-10 | 2014-02-26 | 南京国睿安泰信科技股份有限公司 | 消除峰值检测误产生毛刺的系统 |
CN104065361A (zh) * | 2014-06-03 | 2014-09-24 | 北京空间机电研究所 | 一种用于消除毛刺信号的串行级联单比特滤波器结构 |
CN105141286A (zh) * | 2015-10-16 | 2015-12-09 | 成都默一科技有限公司 | 滤除单时钟周期脉冲及毛刺的数字滤波器 |
Non-Patent Citations (1)
Title |
---|
FPGA设计中毛刺信号的产生及消除;楼观涛 等;《电子世界》;20040701;第32-33页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105680947A (zh) | 2016-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105680947B (zh) | 一种可滤除毛刺的串行数据接收方法 | |
CN107078931B (zh) | 发送方将帧串行传输到接收方的方法以及总线系统 | |
CN109756303B (zh) | 一种单工异步曼彻斯特码接收解码方法 | |
CN102546084B (zh) | 异步串行通信数据接收时的抗干扰纠错采样系统和方法 | |
JPH0127615B2 (zh) | ||
CN104461972B (zh) | 一种数据信号采样的方法和设备 | |
EP2965459A1 (en) | Clock recovery circuit for multiple wire data signals | |
GB2094110A (en) | A method and apparatus for locating a discontinuity in a data transmission | |
CN108390752A (zh) | 信号接收方法 | |
CN106021165A (zh) | 一种lin总线解码、触发和分析技术 | |
CN108153688A (zh) | 串行隔离通信方法及系统 | |
CN107112985A (zh) | 一种用于检测信号丢失的系统和方法 | |
CN103176014B (zh) | 一种波形数据解码装置及示波器 | |
EP3050261B1 (en) | Can fd end-of-frame detector, can bit stream processing device, method for detecting the end of a can fd frame, and method of operating a can bit stream processor | |
JP3520388B2 (ja) | データ受信装置、データ受信方法及び電子機器 | |
EP0034776B1 (en) | Diagnostic circuit for pcm connection networks | |
CN108833321A (zh) | 基于差分相位波形匹配的编码cpm信号码块同步方法 | |
CN205545212U (zh) | 基于fpga的曼彻斯特码的编解码器 | |
CN104199799A (zh) | 基于cpld的波特率自适应方法及装置 | |
CN104735551B (zh) | Advb接收容错及处理方法 | |
EP0606413A1 (en) | Method and means for automatically detecting and correcting a polarity error in twisted-pair media | |
WO2008038388A1 (fr) | Appareil récepteur de signaux et procédé de mise en forme d'ondes | |
CN113810071B (zh) | 一种自适应线序调整方法、装置、设备、系统及存储介质 | |
CN107733426B (zh) | 一种有迟滞功能的表决器及其设计方法 | |
CN106982199B (zh) | 一种基于fpga和cpld的曼彻斯特码通讯协议自适应方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |