CN112532239A - USB data recovery system - Google Patents
USB data recovery system Download PDFInfo
- Publication number
- CN112532239A CN112532239A CN202011327603.4A CN202011327603A CN112532239A CN 112532239 A CN112532239 A CN 112532239A CN 202011327603 A CN202011327603 A CN 202011327603A CN 112532239 A CN112532239 A CN 112532239A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- interval
- recovery
- restoration
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/099—Details of the phase-locked loop concerning mainly the controlled oscillator of the loop
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
The invention discloses a USB clock and a data recovery system; the system comprises a data acquisition module, a clock generation module, a data shaping module, an overturning detection module, a correction coefficient acquisition module, an overturning time and restoration interval correction module and a data restoration module; the data acquisition module carries out data oversampling according to the clock sampling signal generated by the clock generation module to obtain sampling data; the data shaping module is used for denoising the sampling data; the turnover detection module is used for detecting turnover time and the number of cycles of two adjacent turnover sides; the correction coefficient acquisition module is used for acquiring a turnover time correction coefficient and a restoration interval correction coefficient; the turning time and recovery interval correction module respectively calibrates the turning time and the recovery interval in real time according to the correction coefficient; and the data restoration module realizes restoration of the USB data according to the data output by the data shaping module, the corrected restoration interval and the turnover time. The system of the invention can realize the accurate recovery of the USB data.
Description
Technical Field
The invention relates to the technical field of USB data transmission application, in particular to a USB data recovery system.
Background
In the USB communication protocol, only serial data transmission is performed, and no clock signal transmission is performed, so that the receiving end needs to extract clock information of the transmitting end from the transmitted data, thereby achieving data recovery.
In a conventional USB clock data recovery circuit, a high-quality crystal oscillator is required as a clock source to generate a stable clock, but the cost of the crystal oscillator is high, and USB devices without the crystal oscillator are increasingly favored to reduce the cost of peripheral devices.
A crystal oscillator-less USB device generally uses an internal oscillator circuit as a clock source to receive and transmit data, but due to limitations of manufacturing processes and influences of internal voltage, temperature, and the like, a reference clock generated by the internal oscillator circuit generally has a deviation of about ± 50%. Even if calibration and recording are performed during the chip test phase, there is no way to avoid frequency deviations caused by voltage and temperature variations during use. And the deviation of the frequency may cause errors in the received data. Therefore, one of the key technologies of the USB device without crystal oscillator is how to calibrate in real time to obtain a stable clock.
In the data transmission process, a lot of noise and distortion are inevitably introduced, so that the transmitted data is inaccurate. How to obtain accurate data is another key technology of USB devices.
In the chinese patent application publication No. CN102331979A, SOF sent by a USB host is used as a clock calibration reference, so that the frequency of an internal clock can be calibrated in real time; however, the method provided by one of the patent applications is not applicable to USB hosts; the calibration speed of the method is very slow, and at the transmitting interval of the SOF of 125us, the calibration needs to receive enough SOF to carry out calibration so as to avoid the influence of noise. Thirdly, the method can only calibrate the clock frequency and does not provide a reliable data recovery method.
The patent application publication No. CN103576740A provides a clock detection circuit using an internal oscillation circuit, which uses a delay unit to calculate the period and delay of a local reference clock and data, and this method can only detect the period and delay of the clock by the delay unit, and does not provide a method of data recovery. If the data is sampled with a reference clock, data recovery may be erroneous when the data is disturbed or the clock jitter of the sender is large.
Disclosure of Invention
The invention aims to provide a USB data recovery system which can accurately recover a clock and data of USB transmission data, has good real-time effect and does not need calibration and preheating; the invention is realized by adopting the following technical scheme:
a USB data recovery system is characterized by comprising a data acquisition module, a clock generation module, a data shaping module, a turnover detection module, a correction coefficient acquisition module, a turnover time and recovery interval correction module and a data recovery module;
the data acquisition module comprises a comparator and a multiphase sampling module, two input ends of the comparator are correspondingly connected with two data signal ends of the USB, and the output end of the comparator is connected with the data signal input end of the multiphase sampling module;
the output end of the clock generation module is connected with the clock signal input end of the multi-phase sampling module;
the output end of the multi-phase sampling module is connected with the input end of the data shaping module;
the output end of the data reshaping module is connected with the first input end of the data restoring module and the first input end of the turnover detection module;
the output end of the turnover detection module is connected with the input end of the correction coefficient acquisition module;
the output end of the correction coefficient acquisition module is connected with the input end of the turning time and restoration interval correction module, and the output end of the turning time and restoration interval correction module is connected with the second input end of the data restoration module and the second input end of the turning detection module;
the clock generation module is used for generating oversampling clock signals with the frequency being M times of the reference clock frequency, that is, one sampling signal is expanded into M oversampling signals, the data acquisition module performs oversampling on the data signals output by the comparator according to the oversampling clock signals, the reference clock frequency is a fixed reference square wave signal, when data sampling is performed, each reference square wave signal corresponds to one sampling signal, the oversampling clock signals divide one reference square wave signal into M oversampling square wave signals, that is, sampling time is shortened, that is, one sampling signal is expanded into M oversampling signals within the same time, and one sampling interval is the time of two adjacent reference square wave signals (which can also be referred to as a sampling period); the data shaping module is used for removing noise of the data acquired by the data acquisition module; the turning detection module is used for detecting the turning time point of the nth turning of the data output by the data shaping module and the number of the reference sampling data passed by the nth turning and the n-1 th adjacent two times of turning, wherein the number of the reference sampling data is equal to the number of the over-sampling data passed by the adjacent two times of turning/a restoration interval, and the restoration interval is the number of the over-sampling data passed by the adjacent two restored data during data restoration; the correction coefficient acquisition module is used for acquiring a turnover time correction coefficient K0(n) and a recovery interval correction coefficient K1 (n); the turnover time and recovery interval correction module corrects the turnover time according to the turnover time correction coefficient K0(n) and corrects the recovery interval in real time according to the recovery interval correction coefficient K1 (n); the data restoration module realizes restoration of USB data according to the data output by the data shaping module, the corrected restoration interval and the corrected turnover time; in an initial state, the recovery interval is the same as the oversampling multiple.
In the present invention, the restoration interval is a time interval for data restoration; when the system is initially started, the oversampling multiple is the same as the recovery interval, and in the running process of the system, the recovery interval is corrected in real time according to the processed oversampling data.
Specifically, the clock generation module includes an internal oscillator circuit and a clock output module, an output end of the internal oscillator circuit is connected to an input end of the clock output module, and an output end of the clock output module is connected to a clock signal input end of the multi-phase sampling module.
Specifically, the data shaping module comprises a data buffer A, a median filter, a minimum pulse width holding module and a data buffer B; the data buffer A is used for caching data to be shaped, and the data buffer B is used for caching the shaped data; the output end of the multi-phase acquisition module is connected with the input end of a data buffer A, the output end of the data buffer A is connected with the input end of a median filter, the output end of the median filter is connected with the input end of a minimum pulse width holding module, the output end of the minimum pulse width holding module is connected with the input end of a data buffer B, and the output end of the data buffer B is connected with the input end of a turnover time correction module and the input end of a data restoration module; the median filter is used for eliminating noise interference of an input signal thereof; and the minimum pulse width maintaining module is used for ensuring that the output of the median filter at least keeps N bits unchanged so as to eliminate the jump interference.
Preferably, N is 0.5M.
As a specific technical solution, M ═ 8.
Preferably, the device further comprises a recovery interval learning module; the turnover time and recovery interval correction module corrects the recovery interval in real time according to the recovery interval correction coefficient K1(n) to obtain an estimated recovery interval; the restoration interval learning module obtains an accurate restoration interval according to the estimated restoration interval and a machine learning algorithm; the restoration interval learning module provides the accurate restoration interval for the overturn detection module, the data restoration module, the overturn time and restoration interval correction module; and the data restoration module realizes restoration of the USB data according to the accurate restoration interval.
Preferably, the output end of the recovery interval learning module is further connected to the input end of the internal oscillating circuit; the restoration interval learning module provides the accurate restoration interval for the internal oscillator circuit, and the internal oscillator circuit corrects the reference clock frequency according to the restoration interval.
Specifically, the turnover time correction coefficient K0(n) and the recovery interval correction coefficient K1(n) are obtained by a kalman machine learning algorithm;
alternatively, the flipping time correction coefficient K0(n) and the recovery interval correction coefficient K1(n) are obtained by means of a lookup table.
Furthermore, the values of the turnover time correction coefficient K0(n) and the recovery interval correction coefficient K1(n) are both in the range of 0-1, and as the turnover number n increases, the values of K0(n) and K1(n) are both constant or in a descending trend.
Specifically, in the flipping detection module, a calculation formula of Delta _ period (n) is as follows:
the formula I is as follows: delta _ period (n) ═ round ((act _ Phase (n) — Phase (n-1))/period (n-1));
wherein: act _ phase (n) is the roll-over time point currently measured; phase (n-1) is the corrected last overturning time point; period (n-1) is the recovery interval of the last time after correction; round is rounded and then an integer is taken; wherein Phase (n-1) and period (n-1) are input by a turnover time and recovery interval calculation module;
in the flipping time and recovery interval correction module, the calculation methods of the calibrated flipping time phase (n) and the calibrated recovery interval period (n) are as follows:
S11、pred_phase=phase(n-1)+Delta_period(n)*period(n-1);
S12、Phase(n)=pred_phase+K0(n)*(act_phase(n)-pred_phase);
period(n)=period(n-1)+K1(n)*(act_phase(n)-pred_phase);
wherein: initializing period (0) ═ M; initializing Phase (0) to 0; n represents the nth flip;
delta _ period (n) is the number of reference sampling data passing through the current actual measurement overturn and the last overturn and is input by an overturn detection module;
round () rounds the result to an integer;
act _ phase (n) is obtained from the roll-over detection module at the time point when the roll-over is actually measured at the time;
pred _ phase is a temporary variable and represents a predicted current turning time point;
more specifically, in the data recovery module, a specific algorithm for data recovery is as follows:
the formula II is as follows:
t_sp(x)=round(phase(nearest)+period(nearest)/2+period(nearest)*L)
wherein t _ sp (x) represents a recovery sampling time point, and t _ sp (0) is initialized to phase (1) + period (1)/2;
round () represents rounding the data;
phase (nearest) and period (nearest) are the corrected turning time point phase (n) and the recovery interval period (n) which are calculated by the turning time and recovery interval correction module at the last time;
l represents the bit number of the data recovery module after phase and period are updated recently.
Further, the restoration interval learning module comprises a data buffer and a linear regression iteration updating module; the data buffer is used for storing the latest k-time turning time difference and the number Delta _ period (n) of the corresponding reference sampling data; and the linear regression iteration updating module carries out iteration solution according to the data of the data buffer, the turning time output by the restoration interval correction module and the estimated restoration interval so as to calculate the accurate restoration interval.
Specifically, the iterative solution algorithm includes one of gradient descent and least square method.
The invention has the beneficial technical effects that:
the USB data recovery system estimates the recovery interval contained in the received USB data by using a Kalman filter and a machine learning algorithm according to the received USB data, and adjusts the frequency of an internal reference clock to be consistent with the clock frequency of a sender. And correcting the current overturning time by combining a Kalman filter and a machine learning algorithm, predicting the next possible overturning time by combining the obtained recovery interval, and sampling data according to the next possible overturning time to obtain accurate data. And filtering and shaping the received data by using a median filter and a minimum pulse width retainer, and filtering burrs of the data, so that the subsequent clock data recovery circuit can work normally.
Drawings
FIG. 1 is a block diagram of a USB data recovery system according to an embodiment of the present invention;
FIG. 2 is a block diagram of a data shaping module and a schematic diagram of the data shaping module connected to other modules according to an embodiment of the present invention;
FIG. 3 is a flow chart of the operation of a minimum pulse hold module provided in the practice of the present invention;
FIG. 4a is a lookup table of K0(n) provided by an implementation of the present invention;
FIG. 4b is a lookup table of K1(n) provided by an embodiment of the present invention
FIG. 5 is a schematic sampling diagram of a multi-phase acquisition module provided in accordance with an embodiment of the present invention;
FIG. 6 is a schematic diagram of a data recovery module according to an embodiment of the present invention;
FIG. 7 is a block diagram of a USB data recovery system according to a second embodiment of the present invention;
FIG. 8 is a block diagram of the connection between the recovery interval learning module and other modules provided in accordance with a second embodiment of the present invention;
FIG. 9 is a simulated eye diagram of a signal incorporating data noise and distortion and frequency offset and clock jitter as provided by practice two of the present invention;
fig. 10 is a graph of the noise of the flip time provided by the second embodiment of the present invention.
Detailed Description
In order to clearly understand the technical solutions of the present invention, the present invention is further described with reference to the following embodiments, which are only used for the convenience of explaining the technical solutions of the present invention, and the present invention is not limited to the disclosure of the embodiments.
Example one
With reference to fig. 1, the present embodiment provides a USB data recovery system, which includes a data acquisition module, a clock generation module, a data shaping module, a flipping detection module, a correction coefficient acquisition module, a flipping time and recovery interval correction module, and a data recovery module;
the data acquisition module comprises a comparator and a multiphase sampling module, two input ends of the comparator are correspondingly connected with two data signal ends of the USB, and the output end of the comparator is connected with the data signal input end of the multiphase sampling module;
the output end of the clock generation module is connected with the clock signal input end of the multi-phase sampling module;
the output end of the multi-phase sampling module is connected with the input end of the data shaping module;
the output end of the data reshaping module is connected with the first input end of the data restoring module and the first input end of the turnover detection module;
the output end of the turnover detection module is connected with the input end of the correction coefficient acquisition module;
the clock generation module is used for generating an oversampling clock signal (namely, oversampling clock frequency) which is M times of the reference clock frequency, wherein M is the oversampling multiple; the data acquisition module acquires the data signal output by the comparator according to the oversampling clock signal to obtain oversampling data; when data sampling is carried out according to the reference clock frequency, reference sampling data are obtained; the frequency of the oversampling clock signal is M times of the reference clock frequency, and oversampling data is obtained by sampling data using the oversampling clock signal. The data collected by the data collection module includes an oversampling time point (indicated by a serial number) and oversampling data corresponding to the oversampling time point.
The data shaping module is used for removing noise of the over-sampling data; the turning detection module is used for detecting turning time points of data output by the data shaping module and the number of reference sampling data passed by two adjacent turning time points, wherein the number of the reference sampling data is equal to the number of over-sampling data between two turning points/a recovery interval; that is, the turning detection module detects the turning time point of the nth turning and the number of reference sampling data passing through the nth turning and the (n-1) th turning; the correction coefficient acquisition module is used for acquiring a turnover time correction coefficient K0(n) and a recovery interval correction coefficient K1 (n); the turnover time and recovery interval correction module corrects the turnover time according to the turnover time correction coefficient K0(n) and corrects the recovery interval in real time according to the recovery interval correction coefficient K1 (n); the data restoration module realizes restoration of USB data according to the data output by the data shaping module, the corrected restoration interval and the corrected turnover time; in the initial state, the recovery interval is the same as the oversampling multiple.
Wherein, internal oscillating circuit: usually an RC or LC oscillator circuit, and the detailed principle is not described herein.
A multi-phase clock generation module: a common method is to use a voltage-controlled delay line phase-locked loop with fractional frequency division to generate M sampling clock signals with consistent delay, and the specific generation mechanism is also a mature technology in the field and is not described herein again; wherein M is an oversampling multiple, generally M may be 4-8, and M is 8 in this embodiment; i.e. the multi-phase clock generation module generates an oversampling clock frequency M times the reference clock frequency.
The comparator converts signals of DPDM (two data signal ends of USB) into 0 and 1; for example, the relationship between the DP voltage and the DM voltage is determined, if the DP voltage > the DM voltage, 0 is output, otherwise, 1 is output, and otherwise, 1 is output.
A multi-phase acquisition module: performing signal acquisition on the output of the comparator by using the oversampling clock frequency (namely performing oversampling on the output data of the comparator) to obtain oversampling data; the result of oversampling for 8 multiphase clocks is shown in connection with fig. 5.
Referring to fig. 2, the data shaping module includes a data buffer a, a median filter, a minimum pulse width holding module, and a data buffer B; the data buffer A is used for caching over-sampling data (data to be shaped) with a certain length, and the data buffer B is used for caching shaped data; the output end of the multi-phase acquisition module is connected with the input end of the data buffer A, the output end of the data buffer A is connected with the input end of the median filter, the output end of the median filter is connected with the input end of the minimum pulse width holding module, the output end of the minimum pulse width holding module is connected with the input end of the data buffer B, and the output end of the data buffer B is connected with the input end of the turnover time correction module and the input end of the data restoration module.
Median filtering is a nonlinear digital filter technique for removing noise from a signal, and generally uses an odd number of points, such as 3, 5, 7, 9 … (the number of points used is denoted as E); the embodiment uses E-5, that is, 5-point median filtering is adopted, that is, in the latest 5 data, when there are 3 or more data of 1, 1 is output, otherwise 0 is output; wherein the median filter performs sliding calculation according to 1 bit; for example, the group of data buffered by the data buffer a is "00110100111100 …", and the data output after passing through the median filter is "0110011111 …"; generally, when the value of E is 0.5M, the calculation effect is best.
The minimum pulse width maintaining module is configured to eliminate pulse interference, specifically, ensure that the output of the median filter at least keeps N bits unchanged, so as to prevent the output value of the median filter from being smaller than the minimum pulse width N, and if the output value of the median filter is smaller than the minimum pulse width N, perform automatic completion, specifically, the flow of the minimum pulse width maintaining module refers to fig. 3. Usually, N is 0.5M, i.e. the minimum pulse width N is half of the oversampling multiple M, and N is 4 in this embodiment. For example, the data output by the median filtering is '0110011111 …', interference of 20 s appears in the middle, and the output data is corrected to '0111111111 …' after passing through the minimum block holding module, so that the jump interference is eliminated.
The flipping time detection module needs to calculate the flipping time of the data output by the data shaping module, the current flipping time point act _ phase (n), the last flipping time point act _ phase (n-1), and the number Delta _ period (n) of the passed reference sampling data, where n represents the nth flipping.
The inversion time points act _ phase (n) are sequence numbers of the oversampling time points, and the calculation method of the inversion time points act _ phase (n) is as follows: and performing exclusive or calculation on the latest data (1 bit) output by the data shaping module and the last data (1 bit), wherein when the data changes from 1 to 0 or from 0 to 1, the sequence number of the data is the inversion time point act _ phase (n). For example, if the 100 th sampling time is 1, the 99 th sampling time is 0, and the nth inversion is performed, act _ phase (n) is 100
The rollover detection module is used for detecting the jumping time of the output data of the data shaping module, namely the time point of 0 → 1 jumping or 1 → 0 jumping; and when the data jumps, recording the latest output time point, namely the current turning time point.
When the number Delta _ period (n) of reference sampling data passing through the next actual measurement overturn and the last overturn is calculated by the following formula:
the formula I is as follows: delta _ period (n) ═ round ((act _ Phase (n) — Phase (n-1))/period (n-1));
wherein: act _ phase (n) is the roll-over time point currently measured; phase (n-1) is the corrected last overturning time point; period (n-1) is the recovery interval of the last time after correction; round () is an operation of rounding up; in the invention, period (n) actually represents that data restoration needs to be performed once through a plurality of oversampling time points when the data is restored; in an initial state of the entire system startup, period (0) ═ M. Wherein Phase (n-1) and period (n-1) are input by the turnover time and recovery interval calculation module.
The overturn time weight coefficient acquisition module is used for acquiring an overturn time correction coefficient K0(n) and a restoration interval correction coefficient K1(n) of the overturn time, wherein the two coefficients K0(n) and K1(n) are both between 0 and 1, the common correction coefficient represents the weight of an actual measurement value, and the values of K0(n) and K1(n) are unchanged or change in a descending trend when the number of times n of the values of the two correction coefficients is increased as the weight coefficient is larger.
In this embodiment, the two correction coefficients may be filter coefficients K0(n) and K1(n) obtained by using a kalman filter algorithm; the K0(n) and K1(n) can also be obtained by table lookup.
When the kalman filter algorithm is adopted to obtain the filter coefficients K0(n), K1(n), the algorithm is specifically as follows:
PT=F(n)*P(n-1)*F(n)'+Q;
KN ═ PT × H '/(H × PT × H' + R); v/a vector containing two elements;
P(n)=PT-KN*H*PT;
k0(n) is KN (1), KN (1) taking the 1 st element of the vector KN;
k1(n) is KN (2), KN (2) taking the 2 nd element of the vector KN;
all operation signs in the formula are matrix operation, including matrix multiplication, matrix division, matrix addition +, matrix subtraction and matrix transposition';
in the above algorithm, wherein:
delta _ period (n) is the number of reference sampling data (or reference sampling period) passing by the current actual measurement overturn and the last overturn, and is input by an overturn detection module;
q represents the state covariance noise matrix, which is experimentally determined, and is set to be constant in this example,
r represents the observed noise variance, and is experimentally measured, and in this example, R is set to be a constant, and is 1;
p (n) is a state covariance matrix, and the initial value P (0) is set as an identity matrix in the present embodiment, i.e., the state covariance matrix
This embodiment simplifies the kalman filtering to some extent, and the specific calculation process is not described herein again.
When the correction coefficients are obtained by using a table lookup, the table lookup can refer to the table lookup in fig. 4a and fig. 4 b. In the lookup table in the figure, K0(n) keeps a minimum value after n is greater than 200; k1(n) remains minimal after n is greater than 120; this is because keeping a small value constant can reduce the size of the look-up table and can track the clock frequency drift of the sender. In addition, the lookup table shown in the figure is only one specific embodiment, and in other embodiments, the reference values shown in the lookup table may be adjusted according to actual requirements, for example, only one value, only a few values, or more values than those in the figure are used.
The turning time and recovery interval correction module is used for correcting the turning time and the recovery interval so as to more accurately acquire transmitted data, and specifically, the calculation method of the turning time and recovery interval correction module is as follows:
S11、pred_phase=phase(n-1)+Delta_period(n)*period(n-1);
S12、Phase(n)=pred_phase+K0(n)*(act_phase(n)-pred_phase);
S13、period(n)=period(n-1)+K1(n)*(act_phase(n)-pred_phase);
in the algorithm, wherein:
initializing period (0) ═ 8; initializing Phase (0) to 0; n represents the nth flip;
delta _ period (n) is the number of reference sampling data (or called as reference sampling period) passing by the current actual measurement overturn and the last overturn, and is input by an overturn detection module;
phase (n) is the corrected turnover time output to the turnover detection module and the data restoration module;
round () is rounding data to get an integer;
period (n) is a corrected restoration interval, which is output to the roll-over detection module and the data restoration module;
act _ phase (n) is obtained from the roll-over detection module at the time point when the roll-over is actually measured at the time;
pred _ phase is a temporary variable representing the predicted current rollover time point.
And the data restoration module determines an optimal restoration sampling time point t _ sp (x) according to the corrected flip time and the restoration interval, wherein x represents a serial number of the restoration data, for example: when the 0 th bit data is recovered, x is 0; when 1bit data is recovered, x is 1; when the 2 nd bit data is recovered, x is 2; and so on.
And outputting the output data of the data shaping module at the optimal sampling time point as final data.
The specific algorithm is as follows, where the optimal sampling time point t _ sp (x) is a sampling time variable, and each time the sampling time point (represented by the sampling output sequence number of the data shaping module) is equal to t _ sp (x), the output of the current data shaping module is sampled as the value of bit (x), and the value of t _ sp (x +1) is calculated for the next use, and the process is repeated.
In this embodiment, the calculation formula of t _ sp (x) is as follows:
the formula II is as follows:
t_sp(x)=round(phase(nearest)+period(nearest)/2+period(nearest)*L)
wherein, initializing t _ sp (0) phase (1) + period (1)/2;
round (a) means rounding a;
phase (nearest) and period (nearest) are the latest corrected roll-over time point and restoration interval calculated by the roll-over time and restoration interval correction module.
L represents the number of bits output by the data recovery module after phase (nearest) and period (nearest) are updated recently.
With reference to fig. 6, an exemplary schematic diagram of a data recovery process of the data recovery module is given.
When tsp (x) 104 is obtained through calculation, taking the output "0" of the current shaping module at the sampling time point 104 as the output of bit (x), and calculating the next optimal recovery sampling time point tsp (x + 1); at this time, phase (i) that is updated recently is 100.1, period (i) is 7.5 (refer to fig. 6, the result is a specific application example, and a specific algorithm is not described here again), 1bit (L ═ 1) has been output after updating, and according to formula two, a calculation result of tsp (x + 1):
tsp (x +1) ═ round (100.1+7.5/2+7.5 × 1) ═ 111; the next best recovery sampling time point tsp (x +1) is found to be 111.
Taking the output '1' of the current shaping module at the sampling time point 111 as the output of bit (x +1), and simultaneously calculating the next optimal recovery sampling time point tsp (x + 2); at this time, phase (i) that is updated recently is 107.7, period (i) is 7.51 (the result is a specific application example, and a specific algorithm is not described herein), 1bit (L ═ 1) is already output after updating, and according to the formula two, the calculation result of tsp (x +2) is as follows:
tsp (x +2) ═ round (107.7+7.51/2+7.51 × 1) ═ 119; the next best recovery sampling time point tsp (x +1) is 119.
Taking the output '1' of the current shaping module at the sampling time point 119 as the output of bit (x +2), and simultaneously calculating the next optimal recovery sampling time point tsp (x + 2); at this time, phase (i) that is updated recently is 107.7, period (i) is 7.51 (the result is a specific application example, and a specific algorithm is not described herein), 2 bits (L ═ 2) are already output after updating, and according to the formula two, the calculation result of tsp (x +3) is as follows:
tsp (x +3) ═ round (107.7+7.51/2+7.51 × 2) ═ 126; the next best recovery sampling time point tsp (x +1) is found to be 126.
Taking the output '0' of the current shaping module at the sampling time point 126 as the output of bit (x +3), and simultaneously calculating the next optimal recovery sampling time point tsp (x + 4); at this time, the most recently updated phase (i) is 122.4, period (i) is 7.50 (the result is a specific application example, and a specific algorithm is not described herein), 1bit (L ═ 1) is already output after updating, and according to the formula two, the calculation result of tsp (x +4) is as follows:
tsp (x +4) ═ round (122.4+7.50/2+7.50 × 1) ═ 134; the next best recovery sampling time point tsp (x +1) is found to be 126. The following specific data recovery methods are analogized, and are not listed here.
The USB data recovery system provided in this embodiment can accurately recover data when the frequency deviation and clock jitter of the internal oscillation circuit are large and the noise and distortion of the data are also large, and can receive the data immediately without any calibration or warm-up time.
Referring to fig. 1, a data signal of the USB is converted into an initial data signal through a comparator, and an oversampling clock signal is generated by a clock generation module; the multi-phase sampling module collects an initial data signal according to an oversampling clock signal to obtain an oversampling signal; the over-sampled signal is subjected to noise reduction and interference elimination through a data shaping module to obtain a shaped signal; the shaping signal passes through an overturning detection module to obtain overturning time points and the number of reference sampling periods passed by two adjacent overturning; a recovery interval correction coefficient and a turnover time correction coefficient are obtained through a correction coefficient acquisition module; the turnover time and recovery interval correction module corrects the turnover time point and the recovery interval according to the recovery interval correction coefficient, the turnover time point and the number of reference sampling data after two adjacent turnover so as to obtain an accurate turnover time point and a recovery interval; and the data restoration module restores the integer data according to the accurate overturning time point and the restoration interval.
Example two
With reference to fig. 7 and 8 and the first embodiment, the data recovery system of the USB clock of this embodiment further includes a recovery interval learning module, where the recovery interval learning module obtains an accurate recovery interval according to a machine learning algorithm based on the estimated recovery interval obtained by the flipping time and recovery interval correction module, the recovery interval learning module provides an accurate recovery interval for the flipping detection module, the data recovery module, the flipping time and recovery interval correction module, and an output end of the recovery interval learning module is further connected to an input end of the internal oscillation circuit; the restoration interval learning module provides an accurate sampling interval for the internal oscillating circuit, and the internal oscillating circuit corrects the reference clock frequency according to the restoration interval.
In this embodiment, the calculation method of the flipping time and recovery interval correction module is as follows:
S21、pred_phase=phase(n-1)+Delta_period(n)*period(n-1);
S22、Phase(n)=pred_phase+K0(n)*(act_phase(n)-pred_phase);
S23、Period_to_learn(n)=period(n-1)+K1(n)*(act_phase(n)-pred_phase);
S24、time_to_grad(n)=Phase(n)-Phase(n-1);
wherein, the initialization data period (0) of period (n) is 8; initializing Phase (0) to 0; the Period _ to _ spare (0) is initialized to the oversampling multiple M, which is 8 in this embodiment.
n represents the nth flip;
delta _ period (n) is the number of reference sampling data passing through the current actual measurement overturn and the last overturn and is input by an overturn detection module;
phase (n) is the corrected turnover time output to the turnover detection module and the data restoration module;
period (n-1) is the precise recovery interval input by the previous recovery interval learning module;
period _ to _ spare (n) is the restoration interval of the current preliminary estimation of the turnover time and restoration interval correction module and needs to be output to the restoration interval learning module for further calculation;
act _ phase (n) is obtained from the roll-over detection module at the time point when the roll-over is actually measured at the time;
pred _ phase is a temporary variable and represents a predicted current turning time point;
time _ to _ grad (n) is the difference between the current corrected roll-over time and the last corrected roll-over time, and is directly output to the restoration interval learning module.
In this embodiment, the recovery interval of the inversion time and recovery interval correction module is not used as the recovery interval of the final application but is used as the estimated recovery interval, and then the estimated recovery interval is input to the recovery interval learning module for learning to obtain a more accurate recovery interval for use; of course, in other embodiments, the estimated restoration interval of the roll-over time and restoration interval correction module can be directly used for data restoration.
With reference to fig. 8, the recovery interval learning module includes a linear regression iterative update module and a data buffer.
The data buffer is used for storing the latest turning time difference time _ to _ grad and the corresponding number Delta _ period (n) of the sampled data. In this embodiment, only the last 4 values are retained, including time _ to _ grad (n, n-1, n-2, n-3) and Delta _ period (n, n-1, n-2, n-3); the input data comes from the flipping time and recovery interval correction module.
In this embodiment, the calculation method of the linear regression iteration update module is as follows:
setting a matrix X composed of the sampling number Delta _ period between two inversions obtained by the inversion time and restoration interval correction module each time and a matrix Y composed of the time difference time _ to _ grad between two inversions can obtain the following linear regression equation set:
the formula III is as follows: COST (sum ((Y-V. X.)) 2)
When V minimizes COST, V is the exact recovery interval period (last).
Wherein:
v represents period (n) which is the output of the recovery interval learning module;
and V. X represents that the elements of V and the elements of the corresponding positions of X are multiplied respectively. For example [1, 2], [3, 4] ═ 1 × 3, 2 × 4 ];
() 2 represents squaring each element within ();
sum () represents the Sum.
The solving algorithm for solving the above equation set may be, but is not limited to, one of gradient descent and least square method. The process of iteratively solving the system of equations using the solution algorithm is as follows:
S31、DELTA=X(n).*(X(n).*Period_to_learn(n)-Y(n));
S32、avg_delta=mean(DELTA);
S33、period(n)=Period_to_learn(n)-learning_rate(n)*avg_delta;
wherein:
period _ to _ spare (n) is the preliminary estimated recovery interval obtained from the rollover time and recovery interval correction module.
mean () represents averaging all elements in parentheses.
Learning _ rate (n) is a Learning rate, which is obtained by a lookup table, and the value thereof is determined by simulation, the range of the Learning _ rate in this embodiment is 0.05 to 0.0005, and the smaller n is, the specific lookup table is not listed in this embodiment.
As a preferred technical solution, after the accurate recovery interval is obtained, the reference clock frequency of the internal oscillator circuit needs to be corrected, so that the final data recovery result is more accurate.
In the first embodiment, it has been explained that RC or LC is usually used as a clock source, and specifically, a phase-locked loop is used to generate the required reference clock frequency. In this embodiment, a 32MHz LC is used as a clock source, a fractional frequency division phase-locked loop is used to perform frequency multiplication to 480MHz, and the frequency division ratio is 480/32-15. Fractional division can also adjust the reference clock frequency by fine-tuning the division ratio. For example, if the frequency division ratio is set to 15.01, the reference clock frequency output at this time is 32 × 15.01 — 480.32 MHz. After the recovery interval learning module receives a packet of data, it calculates to obtain the final accurate recovery interval period (last), the oversampling multiple M (8 in this embodiment), and the new frequency dividing ratio DIVNEWDIV with old frequency division ratioOLDThe following proportional relationship exists between the two components:
the formula four is as follows: period (DIV) (/ M)OLD/DIVNEW(ii) a Then DIVNEW=DIVOLD*M/period(last);
Therefore, the specific method for fine tuning the frequency division ratio is as follows:
after a data packet is received, a new frequency dividing ratio can be directly calculated according to the final output V of the recovery interval learning module, the frequency dividing ratio is updated to the fractional frequency-division phase-locked loop when the bus is idle, and the process is repeated.
Examples are as follows: after receiving a data packet, assume that the final accurate recovery interval period (last) of the packet calculated by the recovery interval learning module is 8.1, and the oversampling multiple M in this embodiment is8, old frequency division ratio DIVOLDThen calculate to obtain the new frequency dividing ratio DIVNEW=DIVOLD*M/period(last)=15.01*8/8.1=14.8247。
14.8247 is updated to the fractional pll when the bus is idle, and so on.
In connection with fig. 9, a simulated eye diagram of a signal containing data noise and distortion, as well as frequency offset and clock jitter is shown, which is seen to be very poor, but the present invention is able to accurately recover data in such poor conditions.
Referring to fig. 10, since the actual flipping time is subject to various disturbances, the flipping may be advanced or delayed with respect to the flipping time point when there is no disturbance. The number of sampling points in advance or after the sampling points are used as the ordinate, and the turned serial number is used as the abscissa, so that the next graph can be obtained. For example, 3 represents that the actual flip time is 3 sample point flips ahead of the flip time without interference, and-3 represents that 3 sample point flips are delayed. In the figure, a curve (i) is a change value of the disturbed turnover time before correction, and a curve (ii) is a change value of the turnover time after correction. It can be seen that the corrected turnover time noise of the present invention is closer to 0, i.e. closer to the turnover time point without interference.
The system of the invention estimates the frequency of the reference clock contained in the USB data by using a Kalman filter and a machine learning algorithm according to the received USB data, and adjusts the frequency of the reference clock of the internal reference clock to be consistent with the clock of a sender. And correcting the current turnover time by combining a Kalman filter and a machine learning algorithm, predicting the next possible turnover time by combining the obtained reference clock frequency, and sampling data according to the predicted turnover time to obtain accurate data. And filtering and shaping the received data by using a median filter and a minimum pulse width retainer, and filtering burrs of the data, so that the subsequent clock data recovery circuit can work normally.
The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention, and various modifications and changes may be made by those skilled in the art. Any modification, equivalent replacement, or improvement made without departing from the spirit and principle of the present invention shall fall within the protection scope of the present invention.
Claims (11)
1. A USB data recovery system is characterized by comprising a data acquisition module, a clock generation module, a data shaping module, a turnover detection module, a correction coefficient acquisition module, a turnover time and recovery interval correction module and a data recovery module;
the data acquisition module comprises a comparator and a multiphase sampling module, two input ends of the comparator are correspondingly connected with two data signal ends of the USB, and the output end of the comparator is connected with the data signal input end of the multiphase sampling module;
the output end of the clock generation module is connected with the clock signal input end of the multi-phase sampling module;
the output end of the multi-phase sampling module is connected with the input end of the data shaping module;
the output end of the data reshaping module is connected with the first input end of the data restoring module and the first input end of the turnover detection module;
the output end of the turnover detection module is connected with the input end of the correction coefficient acquisition module;
the output end of the correction coefficient acquisition module is connected with the input end of the turning time and restoration interval correction module, and the output end of the turning time and restoration interval correction module is connected with the second input end of the data restoration module and the second input end of the turning detection module;
the clock generation module is used for generating an oversampling clock signal of M times of the reference clock frequency, and M is recorded as an oversampling multiple; the data acquisition module carries out oversampling on the data signal output by the comparator according to the oversampling clock signal; the data shaping module is used for removing noise of the data acquired by the data acquisition module; the turnover detection module is used for detecting a turnover time point of data output by the data shaping module and the number of reference sampling data passed by two adjacent turnover, wherein the number of the reference sampling data is equal to the number of over-sampling data passed by two adjacent turnover/a recovery interval, and the recovery interval is the number of over-sampling data passed by two adjacent recovery data during data recovery; the correction coefficient acquisition module is used for acquiring a turnover time correction coefficient and a restoration interval correction coefficient; the turnover time and recovery interval correction module corrects the turnover time according to the turnover time correction coefficient and corrects the recovery interval in real time according to the recovery interval correction coefficient; the data restoration module realizes restoration of USB data according to the data output by the data shaping module, the corrected restoration multiple and the corrected turnover time; in an initial state, the recovery interval is the same as the oversampling multiple.
2. The USB data recovery system of claim 1, wherein the clock generating module comprises an internal oscillator circuit and a clock output module, an output terminal of the internal oscillator circuit is connected to an input terminal of the clock output module, and an output terminal of the clock output module is connected to the clock signal input terminal of the multi-phase sampling module.
3. The USB data recovery system according to claim 1, wherein the data shaping module comprises a data buffer a, a median filter, a minimum pulse width hold module, a data buffer B; the data buffer A is used for caching data to be shaped, and the data buffer B is used for caching the shaped data; the output end of the multi-phase acquisition module is connected with the input end of a data buffer A, the output end of the data buffer A is connected with the input end of a median filter, the output end of the median filter is connected with the input end of a minimum pulse width holding module, the output end of the minimum pulse width holding module is connected with the input end of a data buffer B, and the output end of the data buffer B is connected with the input end of a turnover time correction module and the input end of a data restoration module; the median filter is used for eliminating noise interference of an input signal thereof; and the minimum pulse width maintaining module is used for ensuring that the output of the median filter at least keeps N bits unchanged so as to eliminate the jump interference.
4. The USB data recovery system according to claim 3, wherein N is 0.5M.
5. The USB data recovery system of claim 3 wherein M-8.
6. The USB data recovery system according to claim 2, further comprising a recovery interval learning module; the turnover time and recovery interval correction module corrects the recovery interval in real time according to the recovery interval correction coefficient to obtain an estimated recovery interval; the restoration interval learning module obtains an accurate restoration interval according to the estimated restoration interval and a machine learning algorithm; the restoration interval learning module provides the accurate restoration interval for the overturn detection module, the data restoration module, the overturn time and restoration interval correction module; and the data restoration module realizes restoration of the USB data according to the accurate restoration interval.
7. The USB data recovery system of claim 6, wherein the recovery interval learning module provides the accurate recovery multiple to the internal oscillator circuit, and the internal oscillator circuit corrects the reference clock frequency according to the accurate recovery interval.
8. The USB data recovery system according to any one of claims 1 to 7, wherein the rollover time correction factor and the recovery interval correction factor are obtained by a Kalman algorithm;
or, the turning time correction coefficient and the restoration interval correction coefficient are obtained by means of a lookup table.
9. The USB data recovery system according to claim 8, wherein the values of the flipping time correction factor and the recovery interval correction factor are both in the range of 0-1, and the values of the flipping time correction factor and the recovery interval correction factor are both constant or have a decreasing trend as the number of flipping times increases.
10. The USB data recovery system of claim 8, wherein the recovery interval learning module comprises a data buffer and a linear regression iterative update module; the data buffer is used for storing the latest k-time turning time difference and the number of corresponding reference sampling data; and the linear regression iteration updating module carries out iteration solution according to the data of the data buffer, the turning time output by the restoration interval correction module and the estimated restoration interval so as to calculate the accurate restoration interval.
11. The USB data recovery system according to claim 10 wherein the iterative solution algorithm includes one of gradient descent, least squares.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202011327603.4A CN112532239B (en) | 2020-11-24 | 2020-11-24 | USB data recovery system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202011327603.4A CN112532239B (en) | 2020-11-24 | 2020-11-24 | USB data recovery system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN112532239A true CN112532239A (en) | 2021-03-19 |
| CN112532239B CN112532239B (en) | 2024-01-02 |
Family
ID=74993484
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202011327603.4A Active CN112532239B (en) | 2020-11-24 | 2020-11-24 | USB data recovery system |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN112532239B (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114968889A (en) * | 2022-03-31 | 2022-08-30 | 珠海泰芯半导体有限公司 | High-speed USB sampling method and system |
Citations (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5793549A (en) * | 1995-11-15 | 1998-08-11 | Zen Research N.V. | Methods and apparatus for synchronizing read out of data from multiple tracks of an optical storage device |
| US6295326B1 (en) * | 1999-03-08 | 2001-09-25 | Bandspeed, Inc. | Kalman filter based equalization for digital multicarrier communications systems |
| JP2005100555A (en) * | 2003-09-26 | 2005-04-14 | Sony Corp | Information processing device |
| CN1629965A (en) * | 2003-09-26 | 2005-06-22 | 索尼株式会社 | Information processing apparatus |
| CA2510004A1 (en) * | 2005-06-27 | 2006-12-27 | John W. Bogdan | Software controlled clock synchronizer |
| WO2007009266A1 (en) * | 2005-07-20 | 2007-01-25 | Bogdan John W | Asynchronous data recovery |
| US20080004821A1 (en) * | 2006-06-30 | 2008-01-03 | Cranford Jr Hayden C | Method and Apparatus for Determining Data Signal Jitter Via Asynchronous Sampling |
| CN101268376A (en) * | 2005-09-23 | 2008-09-17 | 松下电器产业株式会社 | Apparatus and method for multiphase digital sampling |
| JP2009077134A (en) * | 2007-09-20 | 2009-04-09 | Ricoh Co Ltd | Data recovery method and data recovery circuit |
| US20100007795A1 (en) * | 2008-07-09 | 2010-01-14 | Bing Ouyang | System and Method for Clock Offset Detection |
| CN101908357A (en) * | 2009-06-02 | 2010-12-08 | 联咏科技股份有限公司 | Correction circuit and method for data recovery |
| CN103209146A (en) * | 2012-01-11 | 2013-07-17 | 瑞昱半导体股份有限公司 | Signal equalization apparatus and method thereof |
| CN103427830A (en) * | 2013-08-08 | 2013-12-04 | 南京邮电大学 | Semi-blind oversampling clock data recovery circuit with high locking range |
| CN103475362A (en) * | 2013-09-29 | 2013-12-25 | 灿芯半导体(上海)有限公司 | Oversampling-based data recovery circuit without clock recovery |
| JP2015115850A (en) * | 2013-12-13 | 2015-06-22 | 株式会社リコー | Data receiving apparatus and data transmitting / receiving system |
| CN104935332A (en) * | 2014-03-18 | 2015-09-23 | 亚德诺半导体集团 | Systems and methods for clock and data recovery |
| US10027332B1 (en) * | 2017-08-07 | 2018-07-17 | Pericom Semiconductor Corporation | Referenceless clock and data recovery circuits |
| US20200228304A1 (en) * | 2019-01-14 | 2020-07-16 | Texas Instruments Incorporated | Sampling point identification for low frequency asynchronous data capture |
-
2020
- 2020-11-24 CN CN202011327603.4A patent/CN112532239B/en active Active
Patent Citations (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5793549A (en) * | 1995-11-15 | 1998-08-11 | Zen Research N.V. | Methods and apparatus for synchronizing read out of data from multiple tracks of an optical storage device |
| US6295326B1 (en) * | 1999-03-08 | 2001-09-25 | Bandspeed, Inc. | Kalman filter based equalization for digital multicarrier communications systems |
| JP2005100555A (en) * | 2003-09-26 | 2005-04-14 | Sony Corp | Information processing device |
| CN1629965A (en) * | 2003-09-26 | 2005-06-22 | 索尼株式会社 | Information processing apparatus |
| CA2510004A1 (en) * | 2005-06-27 | 2006-12-27 | John W. Bogdan | Software controlled clock synchronizer |
| WO2007009266A1 (en) * | 2005-07-20 | 2007-01-25 | Bogdan John W | Asynchronous data recovery |
| CN101268376A (en) * | 2005-09-23 | 2008-09-17 | 松下电器产业株式会社 | Apparatus and method for multiphase digital sampling |
| US20080004821A1 (en) * | 2006-06-30 | 2008-01-03 | Cranford Jr Hayden C | Method and Apparatus for Determining Data Signal Jitter Via Asynchronous Sampling |
| JP2009077134A (en) * | 2007-09-20 | 2009-04-09 | Ricoh Co Ltd | Data recovery method and data recovery circuit |
| US20100007795A1 (en) * | 2008-07-09 | 2010-01-14 | Bing Ouyang | System and Method for Clock Offset Detection |
| CN101908357A (en) * | 2009-06-02 | 2010-12-08 | 联咏科技股份有限公司 | Correction circuit and method for data recovery |
| CN103209146A (en) * | 2012-01-11 | 2013-07-17 | 瑞昱半导体股份有限公司 | Signal equalization apparatus and method thereof |
| CN103427830A (en) * | 2013-08-08 | 2013-12-04 | 南京邮电大学 | Semi-blind oversampling clock data recovery circuit with high locking range |
| CN103475362A (en) * | 2013-09-29 | 2013-12-25 | 灿芯半导体(上海)有限公司 | Oversampling-based data recovery circuit without clock recovery |
| JP2015115850A (en) * | 2013-12-13 | 2015-06-22 | 株式会社リコー | Data receiving apparatus and data transmitting / receiving system |
| CN104935332A (en) * | 2014-03-18 | 2015-09-23 | 亚德诺半导体集团 | Systems and methods for clock and data recovery |
| US10027332B1 (en) * | 2017-08-07 | 2018-07-17 | Pericom Semiconductor Corporation | Referenceless clock and data recovery circuits |
| US20200228304A1 (en) * | 2019-01-14 | 2020-07-16 | Texas Instruments Incorporated | Sampling point identification for low frequency asynchronous data capture |
Non-Patent Citations (3)
| Title |
|---|
| JAEHA KIM AND DEOG-KYOON JEONG: "Multi-gigabit-rate clock and data recovery based on blind oversampling", EEE COMMUNICATIONS MAGAZINE * |
| Z. KOLKA, M. KUBICEK, V. BIOLKOVA AND D. BIOLEK: "Statistical analysis of blind-oversampling CDR circuits", 2012 IV INTERNATIONAL CONGRESS ON ULTRA MODERN TELECOMMUNICATIONS AND CONTROL SYSTEMS * |
| 梁钦钦: "一款基于40nm CMOS工艺的高速CDR电路的设计与分析", 知网 * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114968889A (en) * | 2022-03-31 | 2022-08-30 | 珠海泰芯半导体有限公司 | High-speed USB sampling method and system |
Also Published As
| Publication number | Publication date |
|---|---|
| CN112532239B (en) | 2024-01-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4558028B2 (en) | Clock data recovery device | |
| US11563554B2 (en) | Method for measuring and correcting multi-wire skew | |
| US7668271B2 (en) | Clock-data recovery (“CDR”) circuit, apparatus and method for variable frequency data | |
| EP2075949B1 (en) | Clock data restoring device | |
| KR101277432B1 (en) | Clock data recovery device | |
| CN103828287B (en) | Low time delay Digital dither for repeater circuit terminates | |
| CN110445739A (en) | Compensation method and device for sampling frequency offset | |
| JPWO2012132217A1 (en) | CAN communication system, CAN transmission device, CAN reception device, and CAN communication method | |
| JP4269855B2 (en) | Data receiver | |
| CN112532239B (en) | USB data recovery system | |
| CN113507324B (en) | Feedforward timing recovery method and system suitable for high-speed satellite-borne optical communication | |
| US8472561B2 (en) | Receiver circuit | |
| US20250055669A1 (en) | Clock and data recovery | |
| CN1846389A (en) | Techniques to test transmitted signal integrity | |
| KR100324749B1 (en) | Maximum likelihood symbol timing estimator | |
| CN107113159A (en) | Clock recovery device | |
| CN114710829A (en) | GPS frame timing synchronization method, equipment and system of ad hoc network device | |
| CN120357992B (en) | An LVDS receiving method and system for adaptively adjusting delay according to temperature changes | |
| CN120710500B (en) | Control word digital adjustment circuit and timer based on fractional N-division frequency-locked loop | |
| CN109302275B (en) | Data output method and device | |
| CN114968889B (en) | High-speed USB sampling method and system | |
| CN117375538B (en) | Attenuation compensation method and attenuation compensation circuit | |
| CN120321078A (en) | Crystal oscillator deviation estimation method, device, electronic device and storage medium | |
| CN118826698A (en) | Duty cycle detection circuit and method, clock correction device, and chip | |
| JP2005150930A (en) | Signal width correction device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |