CALIBRATING COMMUNICATION LINES
20200089438 ยท 2020-03-19
Assignee
Inventors
- Xavier Ponce Garcia (Barcelona, ES)
- Jordi Hernandez Creus (Barcelona, ES)
- Ricard Silvestre (Barcelona, ES)
Cpc classification
G06F3/121
PHYSICS
H04L7/048
ELECTRICITY
B41L39/00
PERFORMING OPERATIONS; TRANSPORTING
H04B3/30
ELECTRICITY
International classification
G06F3/12
PHYSICS
H04L7/00
ELECTRICITY
Abstract
Devices and methods for calibrating communication lines are disclosed. A clock sets a frequency of transmission through a communication line. A delay compensator, comprising multi-tap delay lines introduces delays in a transmitted message to compensate for skew in the communication line. An error comparator, coupled to the delay compensator, identifies errors in the messages transmitted through the multi-tap delay lines above an error margin. A delay selector, coupled to the error comparator and to the delay compensator, selects taps of the multi-tap delay lines of the delay compensator. Taps of the multi-tap delay lines where no errors are identified for the selected clock frequency are stored in a memory.
Claims
1. A device to calibrate a communication line, comprising: a clock to set a frequency of transmission through the communication line; a delay compensator, comprising multi-tap delay lines to introduce delays in a transmitted message to compensate for skew in the communication line; an error comparator, coupled to the delay compensator, to identify errors in the messages transmitted through the multi-tap delay lines above an error margin; a delay selector, coupled to the error comparator and to the delay compensator, to select taps of the multi-tap delay lines of the delay compensator, and a memory to store taps of the multi-tap delay lines when no errors are identified for the selected clock frequency.
2. The device according to claim 1, comprising a plurality of communication lines.
3. The device according to claim 1, wherein the delay compensator comprises a fine compensator and a coarse compensator.
4. The device according to claim 3, wherein the fine compensator comprises a multi-tap delay line.
5. The device according to claim 3, wherein the coarse compensator comprises a serial to parallel register.
6. The device according to claim 1, wherein the error comparator comprises an error counter.
7. The device according to claim 1, wherein the communication line is a single-ended communication line or a differential communication line.
8. A method of calibrating a communication line comprising: setting a frequency of communication; sending a predetermined message over the communication line; receiving the predetermined message at a delay compensator; delaying sampling of the predetermined message using selected tap delays; for each selected tap delay, performing comparison of the sampled delayed message with the transmitted predetermined message; and storing indications of the result of the performed comparisons in a table.
9. The method according to claim 8, wherein sending a predetermined message comprises sending a pseudorandom bit sequence.
10. The method according to claim 8, storing indications comprises storing an indication of a sampling delay to compensate for skew along the communication line.
11. The method according to claim 8, comprising sending multiple predetermined messages along parallel communication lines.
12. A printer comprising: a printer engine board; a printer carriage board; a cable connecting the printer engine board and the printer carriage board; a clock to set a data rate of transmission through the cable; wherein, the printer carriage board comprises cable calibration logic to compensate skew of the cable, the cable calibration logic comprising: a delay compensator to introduce selected delays in a transmitted message; an error comparator, coupled to the delay compensator, to identify errors in the messages transmitted through the delay compensator; a delay selector, coupled to the error comparator and to the delay compensator, to select delays of the delay compensator; and a memory to store indications of the errors identified for the selected delays.
13. The printer according to claim 12, wherein the cable calibration logic comprises a field-programmable gate array (FPGA).
14. The printer according to claim 12, comprising a large format printer.
15. A method of categorizing a multi-line cable, comprising: selecting a signal transmission frequency; transmitting a preselected signal over the multi-line cable; introducing multiple delays to the received signal; identifying delays, from the multiple introduced delays, resulting in correct reception of the preselected signal; and categorizing the cable based on the identified delays.
Description
BRIEF DESCRIPTION
[0002] Some non-limiting examples of the present disclosure are described in the following with reference to the appended drawings, in which:
[0003]
[0004]
[0005]
[0006]
[0007]
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
DETAILED DESCRIPTION
[0014] A differential wire pair may carry a data channel at a data rate that is a factor of a clock's frequency. To increase the data rate, in single-ended as well as in differential communication lines, multiple serial data channels may be grouped in parallel and a parallel clock channel may be added for synchronization.
[0015] Multi gigabit-per-second data-throughput applications, such as the communication line between a printer's engine board and the printer's carriage board in a large format printer (LFP), specify a cable length of up to nine meters, a bandwidth above 4 Gbps and multi-million cycle communication systems. Twisted-pair cables with Small Computer System Interface (SCSI) connectors may provide cable lengths up to 9 meters and more than 3 million scan cycles.
[0016]
[0017] For high bandwidth applications, such as the communication between a printer's engine board with the printer's carriage board, a communication line following a low-voltage differential signal (LVDS) serial communication protocol may be used.
[0018]
[0019]
[0020]
[0021]
[0022] In one implementation, the delay compensator may comprise 8 coarse delay blocks and 8 fine delay blocks. Each fine delay block may comprise 32 taps. Each tap may generate a delay of 78 ps. Thus, each fine delay block may provide a delay of up to 2496 ps (3278 ps). This delay corresponds to a frequency of approximately 400 MHz (1/2496 ps). Thus, when the clock frequency is set at 400 MHz, any transmission with skew may be picked up during sampling as the delay windows may cover the time between samplings. The output of the coarse delay blocks may be coupled to the input of an error comparator 520. The error comparator 520 may comprise descramblers 522 coupled to error counters 524. The descramblers 522 may comprise N+1 descramblers, one for each data line, to receive the message sequences from the coarse delay lines and identify errors in the transmission. Accordingly, the error counters 524 may comprise N+1 error counters, one for each descrambler. The error counters may receive the identified errors and count the errors per data line. The error comparator 520 may be coupled to delay controller 525. The delay controller 525 may be coupled to the fine and coarse delay blocks and may comprise circuitry, such as a processor and a memory storage having a delay control instructions for operating the circuitry to perform control of the fine and coarse delay blocks. The delay controller 525 may receive the error count from the error comparator 520 and provide the delay control instructions or signals corresponding to the delay control instructions to the fine and coarse delay blocks to select a next tap and/or bitslip for testing the delay and for calibrating the differential communication lines. The results of the delay testing may be stored in a memory 530.
[0023] In one example, the device may be implemented using field programmable gate arrays (FPGA). During calibration, the transmitter FPGA may send continuously the calibration sequence, (e.g. a pseudo-random sequence) and also the associated clock. The receiver FPGA may wait to get locked to the transmitted dock. Then, the receiver FPGA may checks if there is activity in the cable in order to start the calibration process. For example, it may check for input data other than all ones or zeros. For each input it may have an independent pseudo-random receiver that may get locked with the transmitter sequence. For each input a selected bitslip and a selected delay (tap) may be tested. If there are no errors in a selected period of time, this selected pair of bitslip and delay may be considered as valid. This process may be repeated for all bitslips and in each bitslip, all delay positions may be tested. Finally a table may be generated inside a RAM in the FPGA and the FPGA may select for each input a sampling delay and bitslip for each input.
[0024] The following (hexadecimal) table is an example of a table generated for a differential communication line:
TABLE-US-00001 TABLE 1 Bitslip Delay taps 0 00 00 00 00 1 00 ff ff 00 2 00 00 00 00 3 00 00 00 00 4 00 00 00 00 5 00 00 00 00 6 00 00 00 00 7 00 00 00 00
[0025] In the example Table 1, delay taps within bitslips 0 and 2-7 generate errors. Thus corresponding data entries may be set to 0. In bitslip 1, sixteen of the delay taps (out of 31 delay taps), in the example the delay taps 8-23, may provide valid messages. Thus corresponding data entries may be set to f. A median tap, e.g. tap 16, may be selected to calibrate the corresponding differential line.
[0026]
[0027]
[0028] The proposed calibration techniques may be applied to communication lines, e.g. communication lines between engine boards and carriage boards of LFPs, supporting cables of up to 9 meters, multi-giga-bit-per-second bandwidths and multi-million scan cycles. The proposed technique may be implemented using FPGAs. The FPGA may be programmed to select the parameters, e.g. the median delay as represented in the table stored in the memory, using a pseudo-random binary sequence. It may also be used to qualify cables during a cable selection process by measuring skew. Cables with minimum skew may be selected for applications with extended scan cycles whereas cables with more skew may be used for less demanding applications or not selected at all.
[0029]
[0030] It will be appreciated that examples described herein may be realized in the form of hardware or a combination of hardware and software. Any such software may be stored in the form of volatile or non-volatile storage such as, for example, a storage device like a ROM, whether erasable or rewritable or not, or in the form of memory such as, for example, RAM, memory chips, device or integrated circuits or on an optically or magnetically readable medium such as, for example, a CD, DVD, magnetic disc or magnetic tape. It will be appreciated that the storage devices and storage media are examples of machine-readable storage that are suitable for storing a program or programs that, when executed, implement examples described herein. Accordingly, some examples provide a program comprising code for implementing a system or method as claimed in any preceding claim and a machine readable storage storing such a program. Still further, some examples may be conveyed electronically via any medium such as a communication signal carried over a wired or wireless connection.
[0031] All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and/or all of the operations of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and/or operations are mutually exclusive.
[0032] Each feature disclosed in this specification (including any accompanying claims, abstract and drawings), may be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise.
[0033] Although a number of particular implementations and examples have been disclosed herein, further variants and modifications of the disclosed devices and methods are possible. As such, representative examples of the present disclosure have utility over a wide range of applications, and the above discussion is not intended and should not be construed to be limiting, but is offered as an illustrative discussion of aspects of the disclosure. Many variations are possible within the spirit and scope of the disclosure, which is intended to be defined by the following claimsand their equivalentsin which all terms are meant in their broadest reasonable sense unless otherwise indicated.