Serial communication device and serial communication method
The serial communication device synchronizes data across multiple paths by dividing and adjusting skew, addressing inefficiencies in printing systems and improving data transfer efficiency.
Patent Information
- Application Number
- JP2021089306
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-05-27
- Publication Date
- 2025-08-19
- Estimated Expiration
- 2041-05-27
AI Technical Summary
Existing serial communication methods in printing systems face inefficiencies due to timing discrepancies between data transferred over multiple paths, leading to increased circuit size and reduced effective data transfer efficiency.
A serial communication device that divides transmission data equally across lanes, adds header information, and adjusts skew using reception packet skew adjustment means to synchronize data transfer, removing margins and ensuring synchronized data combination.
Efficiently eliminates timing discrepancies between serial data paths, reducing circuit complexity and enhancing data transfer efficiency.
Smart Images

Figure 0007725240000001 
Figure 0007725240000002 
Figure 0007725240000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a serial communication device and a serial communication method. [Background technology]
[0002] In the production printing field, printing systems are used in which a print control device with a high-performance RIP (raster image processor) processing unit controls printing for image forming devices such as printers and multifunction peripherals (MFPs).
[0003] With the recent trend toward higher image quality and higher productivity in printing systems, there is a demand for high-speed transmission and reception of image data from a print control device located on the sending side to an image forming device located on the receiving side (hereinafter simply referred to as "high-speed transfer of image data"). To meet this demand, printing systems have adopted a serial communication method as a method for transferring image data, in which image data is serialized by parallel-to-serial conversion (hereinafter simply referred to as "P / S conversion") and transferred at high speed.
[0004] Specifically, in a printing system that employs the serial communication method described above, large volumes of image data are divided into multiple paths (i.e., lanes), and the divided image data is P / S converted simultaneously and in parallel before being transferred as serial data over the multiple paths. In this case, the serial data over the multiple paths is transferred (sent) in parallel, but there is a timing discrepancy between the serial data transferred over each path due to data transfer delays for each path, so it is necessary to synchronize the serial data over the multiple paths.
[0005] In serial communication, a technique for synchronizing serial data transferred in parallel over multiple paths is proposed, for example, in Patent Document 1. In the technique of Patent Document 1, in a serial communication device, a transmission processing circuit generates a protocol for each channel (lane) by adding multiple pieces of valid data between a data transmission start frame and a data transmission completion frame. Furthermore, a reception processing circuit detects the data transmission start frame of each channel, stores the valid data in a reception buffer circuit provided for each channel, detects the boundary between the valid data and the data transmission completion frame, and extracts the valid data from the reception buffer circuit. Thus, the technique of Patent Document 1 synchronizes serial data transferred in parallel over multiple paths by adding a data transmission start frame and a data transmission completion frame to the valid data as a protocol. [Prior art documents] [Patent documents]
[0006] [Patent Document 1] Patent No. 6531513 Summary of the Invention [Problem to be solved by the invention]
[0007] However, the technology of Patent Document 1 uses a protocol that adds a data transmission start frame and a data transmission completion frame to valid data, which reduces the effective data transfer efficiency. Furthermore, the receiver processing circuit of Patent Document 1 requires complex control to detect the data transmission start frame of each channel, store valid data in a receiver buffer circuit provided for each channel, and transfer the data from the receiver buffer circuit to the outside after skew removal. This complex control also creates the problem of an increase in the circuit size of the receiver processing circuit.
[0008] An object of the present invention is to efficiently eliminate timing discrepancies between serial data transferred over multiple paths in serial communication. [Means for solving the problem]
[0009] In order to achieve the above object, the serial communication device of the present invention is a serial communication device that transfers serial data transmitted from transmitting communication means arranged on the transmitting side to receiving communication means arranged on the receiving side via a plurality of lanes, the transmitting communication means comprising packet transmitting means that divides the transmission data equally in accordance with the number of lanes, distributes the divided transmission data to each lane as a data body, and adds header information indicating the type of the transmission data to the divided transmission data distributed to each lane, the receiving communication means comprising reception packet skew adjustment means that adjusts the skew of data received on each lane, the reception packet skew adjustment means detects the header information of the data received on each lane, writes the data body of the received data to a data buffer at the detection timing, and starts data transfer from the data buffer to an external device at the timing when write access of the data body for a predetermined number of cycles is completed on each lane. When a margin is added to the divided transmission data distributed to the lanes by the packet transmitting means, the reception packet skew adjustment means adjusts the skew of the data received in each of the lanes to combine the data, and then removes the margin. It is characterized by: [Effects of the Invention]
[0010] According to the present invention, in serial communication, it is possible to efficiently eliminate timing discrepancies between serial data transferred through a plurality of paths. [Brief explanation of the drawings]
[0011] [Figure 1] 1 is a block diagram showing an example of the overall configuration of a printing system according to a first embodiment of the present invention. [Figure 2] 1 is a block diagram showing an example of the configuration of a print control device in a printing system according to a first embodiment; [Figure 3] 1 is a block diagram showing an example of the configuration of an image forming apparatus in a printing system according to a first embodiment. [Figure 4]FIG. 1 is a block diagram showing an example of the configuration of a serial communication device (serial communication device according to the first embodiment) that is configured by a sending-side image communication I / F of a print control device and a receiving-side image communication I / F of an image forming device in a printing system according to the first embodiment. [Figure 5] Figure 5(A) is a block diagram showing an example of the configuration of a transmitting-side image processing unit in a transmitting-side image communication I / F of a serial communication device related to the first embodiment, and Figure 5(B) is a block diagram showing an example of the configuration of a receiving-side image processing unit in a receiving-side image communication I / F of a serial communication device related to the first embodiment. [Figure 6] 6A and 6B are conceptual diagrams showing the packet structure of data transferred by the serial communication device according to the first embodiment, where FIG. 6A is a conceptual diagram showing the packet structure of data divided into 8 lanes, and FIG. 6B is a conceptual diagram showing the packet structure of data divided into 6 lanes. [Figure 7] 3 is a block diagram showing an example of the configuration of a reception packet skew adjustment unit in a reception-side image processing unit of the serial communication device according to the first embodiment; FIG. [Figure 8] 8A and 8B are diagrams showing examples of skew adjustment operations performed by the receive packet skew adjustment unit of FIG. 7, where FIG. 8A is a conceptual diagram for explaining the write-side skew adjustment operation of the receive packet skew adjustment unit of FIG. 7, and FIG. 8B is a conceptual diagram for explaining the read-side skew adjustment operation of the receive packet skew adjustment unit of FIG. 7. [Figure 9] FIG. 7 is a conceptual diagram for explaining a case where data is burst transferred in a packet configuration of data divided into eight lanes as shown in FIG. 6(A). [Figure 10] 8 is a conceptual diagram for explaining a data buffer switching operation performed by the reception packet skew adjustment unit of FIG. 7. FIG. [Figure 11] FIG. 7 is a conceptual diagram for explaining a case where a CRC is added to the packet configuration of data divided into eight lanes shown in FIG. 6(A). DETAILED DESCRIPTION OF THE INVENTION
[0012] Hereinafter, each embodiment of the present invention will be described in detail with reference to the drawings. However, the configurations described in the following embodiments are merely examples, and the scope of the present invention is not limited to the configurations described in the embodiments.
[0013] First Embodiment DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS A first embodiment of the present invention will now be described with reference to the accompanying drawings. Fig. 1 is a block diagram showing an example of the overall configuration of a printing system according to a first embodiment of the present invention.
[0014] 1, a printing system 100 according to the first embodiment includes a client PC 101, a print control device 102, and an image forming device 103. The client PC 101, the print control device 102, and the image forming device 103 are connected via a network 104. The print control device 102 and the image forming device 103 are also connected to a network 105 via an image data communication path 106.
[0015] The client PC 101 transmits print data used in print control to the print control device 102 via the network 104. Note that the client PC 101 is not limited to a PC, and may be, for example, an information processing device such as a mobile terminal.
[0016] The print control device 102 performs RIP processing on the received print data to generate raster image data (hereinafter simply referred to as "image data") that can be read by the image forming device 103. The print control device 102 also transmits setting information (hereinafter simply referred to as "print information") included in the print data to the image forming device 103 via the network 105. Furthermore, the print control device 102 transmits the image data generated by the RIP processing to the image forming device 103 via the image data communication path 106.
[0017] The image forming device 103 prints the received image data based on the received image data and print information.
[0018] FIG. 2 is a block diagram showing an example of the configuration of a print control device in the print system according to the first embodiment.
[0019] 2, the print control device 102 in the printing system 100 has a sending-side CPU (Central Processing Unit) 201, a sending-side RAM (Random Access Memory) 202, a sending-side ROM (Read Only Memory) 203, and a sending-side storage unit 204. The print control device 102 also has a communication I / F 206, a communication I / F 207, a sending-side image communication I / F 208, a sending-side image signal control unit 209, a sending-side operation unit 210, a sending-side display unit 211, and a RIP processing unit 212. The units of the print control device 102 are connected to each other via a system bus 205.
[0020] The transmitting CPU 201, as a transmitting control means, controls each unit (except the transmitting CPU 201) of the print control apparatus 102 connected via the system bus 205 based on a control program.
[0021] The transmission-side RAM 202, which serves as a work memory, temporarily stores processing data and the like when various control programs are executed.
[0022] The transmitting-side ROM 203 stores various control programs and data for the transmitting-side CPU 201 to perform control. The various control programs and data for the transmitting-side CPU 201 to perform control may be stored in the transmitting-side storage unit 204. The transmitting-side storage unit 204 may be configured, for example, by a hard disk drive (HDD).
[0023] The communication I / F 206 is an interface for communicating with the client PC 101 via the network 104. In the printing system 100 according to the first embodiment, the print control device 102 receives print data from the client PC 101 connected to the network 104 via the communication I / F 206. In addition, the sending CPU 201 notifies the client PC 101 of various information related to the image forming device 103 via the communication I / F 206.
[0024] The communication I / F 207 is an interface for communicating with the image forming apparatus 103 via the network 105. In the printing system 100 according to the first embodiment, the sending-side CPU 201 of the print control apparatus 102 performs printing control by transmitting print information to the image forming apparatus 103 connected to the network 105 via the communication I / F 207.
[0025] The sending-side image communication I / F 208 is an interface for performing image data communication with the image forming apparatus 103 via the image data communication path 106. In the printing system 100 according to the first embodiment, the sending-side CPU 201 of the print control apparatus 102 transmits image data to the image forming apparatus 103 connected to the image data communication path 106 via the sending-side image communication I / F 208.
[0026] In order for the transmitting-side CPU 201 to transmit image data to the image forming apparatus 103 via the transmitting-side image communication I / F 208, the transmitting-side image signal control unit 209 controls the transmission of the image data.
[0027] The transmission side operation unit 210 has a display means and an input means, is controlled by the transmission side CPU 201, and allows the operator of the printing system 100 to set printing information in the print control device .
[0028] The transmission side display unit 211 displays a setting screen for print information set by the transmission side operation unit 210 and the printing status.
[0029] The RIP processor 212 performs RIP processing on the print data to generate image data.
[0030] FIG. 3 is a block diagram showing an example of the configuration of an image forming apparatus in the printing system according to the first embodiment.
[0031] 3, the image forming apparatus 103 in the printing system 100 has a receiving-side CPU 301, a receiving-side RAM 302, a receiving-side ROM 303, a receiving-side storage unit 304, and a communication I / F 306. The image forming apparatus 103 also has a receiving-side image communication I / F 307, a receiving-side image signal control unit 308, a print control unit 309, a receiving-side operation unit 310, and a receiving-side display unit 311. The units of the image forming apparatus 103 are connected to one another via a system bus 305.
[0032] The receiving-side CPU 301, as a receiving-side control unit, controls each unit (except the receiving-side CPU 301) of the image forming apparatus 103 connected via the system bus 305 based on a control program.
[0033] The receiving-side RAM 302, which serves as a work memory, temporarily stores processing data and the like when various control programs are executed.
[0034] The receiving-side ROM 303 stores various control programs and data for the receiving-side CPU 301 to perform control. The various control programs and data for the receiving-side CPU 301 to perform control may be stored in the receiving-side storage unit 304. The receiving-side storage unit 304 may be configured, for example, by a hard disk drive (HDD).
[0035] The communication I / F 306 is an interface for communicating with the print control device 102 via the network 105. In the printing system 100 according to the first embodiment, the receiving-side CPU 301 of the image forming device 103 receives print information from the print control device 102 connected to the network 105 via the communication I / F 306, and performs print control based on the print information using the print control unit 309.
[0036] The receiving-side image communication I / F 307 is an interface for performing image data communication with the print control device 102 via the image data communication path 106. In the printing system 100 according to the first embodiment, the receiving-side CPU 301 of the image forming device 103 receives image data from the print control device 102 connected to the image data communication path 106 via the receiving-side image communication I / F 307.
[0037] In order for the receiving CPU 301 to receive image data from the print control device 102 via the receiving image communication I / F 307, the receiving image signal control unit 308 controls the reception of the image data.
[0038] The print control unit 309 prints the received image data based on the print information and image data received from the print control device 102 .
[0039] The receiving-side operation unit 310 has a display means and an input means, and is controlled by the receiving-side CPU 301 to allow the operator of the printing system 100 to operate the setting menu in the image forming apparatus 103 .
[0040] The receiving-side display unit 311 displays the setting screen of the setting menu set by the receiving-side operation unit 310 and the printing status.
[0041] FIG. 4 is a block diagram showing an example of the configuration of a serial communication device (a serial communication device according to the first embodiment) in the printing system 100, which is composed of a sending image communication I / F 208 of the print control device 102 and a receiving image communication I / F 307 of the image forming device 103.
[0042] As shown in Fig. 4, in the serial communication device according to the first embodiment, a transmitting-side image communication I / F 208 and a receiving-side image communication I / F 307 are connected via an image data communication path 106. The image data communication path 106 is configured, for example, by a plurality of cables of the same standard. The image data communication path 106 in Fig. 4 is configured by two cables of the same standard.
[0043] The transmitting-side image communication control unit 400 is a hardware component of the transmitting-side image communication I / F 208. The transmitting-side image communication I / F 208 functions as the transmitting-side communication means of the serial communication device according to the first embodiment. The receiving-side image communication I / F 307 functions as the receiving-side communication means of the serial communication device according to the first embodiment. The transmitting-side image communication control unit 400 has a transmitting-side image processing unit 401, a parallel-serial conversion unit (P / S conversion unit) 402, a transmission driver (TX) 403, a reception driver (RX) 404, and a serial-parallel conversion unit (S / P conversion unit) 405.
[0044] The receiving-side image communication control unit 410 is a hardware component of the receiving-side image communication I / F 307. The receiving-side image communication control unit 410 has a receiving driver (RX) 411, a serial-to-parallel conversion unit (S / P conversion unit) 412, a receiving-side image processing unit 413, a parallel-to-serial conversion unit (P / S conversion unit) 414, and a transmitting driver (TX) 415.
[0045] The P / S converter 402 converts the parallel data output from the transmitting image processor 401 into serial data (i.e., data in serial format). The serial data converted by the P / S converter 402 is transferred by the TX 403 to the RX 411 via the image data communication path 106 (cable).
[0046] The P / S conversion unit 414 converts the parallel data output from the receiving-side image processing unit 413 into serial data. The serial data converted by the P / S conversion unit 414 is transferred by the TX 415 to the RX 404 via the image data communication path 106 (cable).
[0047] 4, the serial communication device according to the first embodiment has multiple transmission drivers (four TX403 and one TX415), all of which have the same configuration. However, since the transmitting-side image communication control unit 400 and the receiving-side image communication control unit 410 are on separate boards, the clock frequencies supplied to the TX403 and TX415 may not be the same, and they operate independently, so they are not synchronized. Even if the clock frequencies supplied to the TX403 and TX415 are the same, their phase relationships are not the same, so they are still not synchronized.
[0048] FIG. 4 shows an example in which the transmitting-side image communication I / F 208 transmits eight lanes of serial data and receives one lane of serial data. Because the P / S converter 402 and P / S converter 414 operate asynchronously with the processing paths of the transmitting-side image processor 401 and the receiving-side image processor 413, skew may occur in the processed data depending on the timing of timing signal transfer. Hereinafter, this skew is referred to as "inter-lane skew." Skew also occurs due to differences in the reset release timing of the P / S converter 402 and P / S converter 414 and differences in propagation delay time due to differences in the wiring length of the transmission path from TX to RX. Hereinafter, this skew is referred to as "intra-lane skew." The amount of inter-lane skew changes during the horizontal synchronization period of each lane and is not constant. On the other hand, the amount of intra-lane skew remains constant because the factors that cause skew do not change dynamically. Note that there is a case where no particular distinction is made between inter-lane skew and intra-lane skew, and these are simply referred to as "skew." That is, inter-lane skew and intra-lane skew caused by multiple lanes are collectively referred to as "skew."
[0049] In the transmitting-side image communication I / F 208, the S / P conversion unit 405 acquires serial data from the RX 404 and stores it in an internal shift register. The S / P conversion unit 405 detects specific data from the stored serial data among data of a predetermined symbol length, and outputs the data to the transmitting-side image processing unit 401 as parallel data for each predetermined symbol length in accordance with the detection timing. Furthermore, the S / P conversion unit 405 restores a clock for receiving data from the serial data. The S / P conversion unit 405 also divides the restored clock in accordance with the symbol length of the parallel data, and outputs the divided clock to the transmitting-side image processing unit 401.
[0050] In the receiving-side image communication I / F 307, the S / P conversion unit 412 acquires serial data from the RX 411 and stores it in an internal shift register. The S / P conversion unit 412 detects specific data from the stored serial data among data of a predetermined symbol length, and outputs the data to the receiving-side image processing unit 413 as parallel data for each predetermined symbol length in accordance with the detection timing. Furthermore, the S / P conversion unit 412 restores a clock for receiving data from the serial data. The S / P conversion unit 412 also divides the restored clock in accordance with the symbol length of the parallel data, and outputs the divided clock to the receiving-side image processing unit 413.
[0051] Fig. 5A is a block diagram showing an example of the configuration of a transmission-side image processing unit 401 in a transmission-side image communication I / F 208 of the serial communication device according to the first embodiment. Fig. 5B is a block diagram showing an example of the configuration of a reception-side image processing unit 413 in a reception-side image communication I / F 307 of the serial communication device according to the first embodiment.
[0052] As shown in FIG. 5A, the transmitting-side image processing unit 401 includes a packet transmitting unit 501, a packet decoding unit 502, a reception packet skew adjusting unit 503, and an asynchronous clock transferring unit 504.
[0053] The packet transmitting unit 501 arbitrates between transmitting a transmission command received from the packet decoding unit 502 or image data from a previous processing block not shown in Figure 5 (A) and outputs it to the P / S conversion unit 402.
[0054] The packet transmitting unit 501 also divides the data to be transmitted (hereinafter simply referred to as "transmission data") into equal parts according to the number of lanes (in the example of FIG. 4, the number of lanes is 8), and distributes the divided transmission data to each lane. Furthermore, the packet transmitting unit 501 adds a control code to the divided transmission data distributed to each lane, and adds a margin to the divided transmission data distributed to the lane as necessary. The meaning of the margin will be described later. The packet transmitting unit 501 functions as a packet transmitting means of the serial communication device according to the first embodiment.
[0055] The packet decoding unit 502 decodes the packet that has been skew-adjusted by the received packet skew adjustment unit 503, and outputs the data to a downstream processing block not shown in Figure 5 (A), or outputs a transmission command to the packet transmission unit 501.
[0056] Incidentally, the packet decoding unit 502 outputs a transmission command to the packet transmitting unit 501 in the following cases. Case (1): When notifying the sender (recipient) that the image data has been received successfully Case (2): When data other than image data, such as command data or status data, is received, the sender is notified that the data has been received successfully. Case (3): When a loss is detected in the received image data, the sender is notified to request the resend of the lost data. The reception packet skew adjustment unit 503 adjusts (corrects) the intra-lane skew of the input parallel data of one or more lanes, and outputs the skew-adjusted packet to the packet decoding unit 502. The reception packet skew adjustment unit 503 functions as a reception packet skew adjustment means of the serial communication device according to the first embodiment.
[0057] The asynchronous clock transfer unit 504 is configured, for example, as a FIFO (First In First Out) to which a write clock and a read clock are input separately. The clock output from the S / P conversion unit 405 is used as the write clock, and the system clock that controls the overall operation of the transmitting-side image communication control unit 400 can be selected and used as the read clock.
[0058] The parallel data output from the S / P conversion unit 405 is output to a reception packet skew adjustment unit 503, which is a subsequent processing block, at a timing synchronized with the system clock used as the read clock in the asynchronous clock transfer unit 504. Note that although the transmitting-side image processing unit 401 in FIG. 5(A) has the asynchronous clock transfer unit 504 configured as an independent processing block (module), the function realized by the asynchronous clock transfer unit 504 may be incorporated into the reception packet skew adjustment unit 503. In that case, the asynchronous clock transfer unit 504 is not necessary.
[0059] As shown in FIG. 5B, the receiving side image processing unit 413 includes a packet transmitting unit 514, a packet decoding unit 513, a receiving packet skew adjusting unit 512, and an asynchronous clock transferring unit 511.
[0060] The packet transmitting unit 514 arbitrates between transmitting the transmission command received from the packet decoding unit 513 or image data from a previous processing block not shown in Figure 5 (B) and outputs it to the P / S conversion unit 414.
[0061] The packet transmitting unit 514 also divides the transmission data into equal parts according to the number of lanes (in the example of FIG. 4, the number of lanes is 1) and distributes the divided transmission data to each lane. Furthermore, the packet transmitting unit 514 adds a control code to the divided transmission data distributed to each lane, and adds a margin to the divided transmission data distributed to the lane as necessary. The packet transmitting unit 514 also functions as a packet transmitting means of the serial communication device according to the first embodiment.
[0062] The packet decoding unit 513 decodes the packet whose skew has been adjusted by the received packet skew adjustment unit 512, and outputs the data to a downstream processing block not shown in Figure 5 (B), or outputs a transmission command to the packet transmission unit 514.
[0063] Incidentally, the packet decoding unit 513 also outputs a transmission command to the packet transmitting unit 514 in the above-mentioned case (1), case (2), or case (3).
[0064] The reception packet skew adjustment unit 512 adjusts (corrects) the intra-lane skew of the input parallel data of one or more lanes, and outputs the skew-adjusted packet to the packet decoding unit 513. The reception packet skew adjustment unit 512 also functions as the reception packet skew adjustment means of the serial communication device according to the first embodiment.
[0065] The asynchronous clock transfer unit 511 is configured, for example, with a FIFO to which a write clock and a read clock are separately input. The clock output from the S / P conversion unit 412 is used as the write clock, and the system clock that controls the overall operation of the receiving-side image communication control unit 410 can be selected and used as the read clock.
[0066] The parallel data output from the S / P conversion unit 412 is output to a reception packet skew adjustment unit 512, which is a subsequent processing block, at a timing synchronized with the system clock used as the read clock in the asynchronous clock transfer unit 511. Note that although the reception-side image processing unit 413 in FIG. 5(B) has the asynchronous clock transfer unit 511 configured as an independent processing block (module), the function realized by the asynchronous clock transfer unit 511 may be incorporated into the reception packet skew adjustment unit 512. In that case, the asynchronous clock transfer unit 511 is not necessary.
[0067] Next, with reference to FIG. 6, the division of transmission data performed in the packet transmission unit and the packet configuration of the divided transmission data will be described.
[0068] 6A and 6B are conceptual diagrams showing packet configurations of transmission data transferred by the serial communication device according to the first embodiment (i.e., transmission data after division obtained by dividing the transmission data performed in the packet transmission unit). Fig. 6A is a conceptual diagram showing the packet configuration of transmission data divided into eight lanes, and Fig. 6B is a conceptual diagram showing the packet configuration of transmission data divided into six lanes.
[0069] As shown in Figures 6(A) and 6(B), the section labeled "header" is a control code that indicates the start position and type of data of the main body of the following data (hereinafter simply referred to as "data body"). The control code corresponds to header information. Data types include image data, command data, and status data. Command data includes, for example, a command that indicates the size of the image data in the main scanning and sub-scanning directions, and a command that notifies the start of image data transfer. Status data includes, for example, an error status that notifies that an abnormal condition has occurred, and an ACK status that returns a response (ACK) to command data from the other party. Because the size of the data packet composed of different types of data varies, data is transferred with a header (control code) added to the data body so that the data receiving party can process it appropriately. The type of data can be determined based on the header (control code).
[0070] As shown in Figures 6(A) and 6(B), the portion labeled "data" is the data itself. Figure 6(A) shows an example in which the serial communication device according to the first embodiment transfers data using a total of eight lanes, Lane 0 to Lane 7, in parallel. As shown in Figure 6(A), when N cycles (N is an integer equal to or greater than 1) are transferred on each lane, the total amount of data transferred across the eight lanes is 8N. For example, if the data width is 32 bits and N is 32, then the number of lanes x data width x N (number of cycles) = 8 x 32 x 32 = 8,192 bits = 8K bytes.
[0071] FIG. 6B shows an example in which the serial communication device according to the first embodiment transfers data using a total of six lanes, Lane 0 to Lane 5, in parallel. In FIG. 6B, M is an integer equal to or greater than 1. As in the example of FIG. 6A, transferring 8K [bytes] = 8,192 [bits] of data requires 8,192 / 32 / 6 = 42.6666 [cycles]. However, since this is not divisible, the actual transfer takes 43 [cycles]. In this case, the size of the transferred data is calculated as (number of lanes × data width × M (number of cycles)) = 6 × 32 × 43 = 8,256 [bits], meaning that 8,256 - 8,192 = 64 [bits] are transferred extra. This extra data transfer is called padding.
[0072] In this way, the packet transmitting unit 501 and the packet transmitting unit 514 divide the transmission data equally according to the number of lanes, distribute the divided transmission data to each lane as the data body, and add a control code (header information) to the divided transmission data distributed to each lane. Also, as shown in Fig. 6(B), the packet transmitting unit 501 and the packet transmitting unit 514 add a margin to the divided transmission data distributed to the lane (Lane 5 in Fig. 6(B)) as necessary.
[0073] The reception packet skew adjustment unit 512 and the reception packet skew adjustment unit 503 adjust the skew of the data received in each lane and recombine it as data, and remove the margin added to the data received in the lane if the packet transmission unit adds margin to the transmission data.
[0074] Next, the reception packet skew adjustment unit will be described in detail.
[0075] Fig. 7 is a block diagram showing an example of the configuration of the reception packet skew adjustment unit 512 in the reception-side image processing unit 413 of the serial communication device according to the first embodiment. The reception packet skew adjustment unit 512 in the reception-side image processing unit 413 will be described with reference to Fig. 7. Note that the configuration of the reception packet skew adjustment unit 503 in the transmission-side image processing unit 401 is similar to the configuration of the reception packet skew adjustment unit 512 in the reception-side image processing unit 413, and therefore description thereof will be omitted.
[0076] As shown in FIG. 7, the reception packet skew adjustment unit 512 in the reception side image processing unit 413 has a write control unit 701 , a buffer control unit 702 , a data buffer 703 , and a read control unit 704 .
[0077] Based on the data after clock transfer for each lane input from the asynchronous clock transfer unit 511, the write control unit 701 generates write data and a control signal for the write operation to the data buffer 703 individually for each lane, and outputs them to the buffer control unit 702.
[0078] Based on the write operation control signal input from the write control unit 701, the buffer control unit 702 causes the write data input from the write control unit 701 to be stored (written) in the data buffer 703 in sequence.
[0079] Then, when the data has been written for a predetermined number of cycles (i.e., when the write access for the data for a predetermined number of cycles has been completed for each lane), the write control unit 701 notifies the read control unit 704 that the write operation has been completed. Hereinafter, the notification that the write operation has been completed will be simply referred to as a "write completion notification." The write completion notification is sent individually for each lane.
[0080] The read control unit 704 notifies the buffer control unit 702 to start a read operation when the write completion notifications corresponding to all lanes are received from the write control unit 701. Hereinafter, the notification to start a read operation will be simply referred to as a "read start notification."
[0081] Upon receiving a read start notification from the read control unit 704, the buffer control unit 702 performs read access control on the data buffer 703, thereby starting a read operation (read access) and starting data transfer from the data buffer 703 to the outside.
[0082] Next, the skew adjustment operation performed by the reception packet skew adjustment unit 512 will be described.
[0083] Fig. 8 is a diagram showing an example of skew adjustment operation performed by the reception packet skew adjustment unit 512 of Fig. 7. Fig. 8(A) is a conceptual diagram for explaining the skew adjustment operation on the write side of the reception packet skew adjustment unit 512 of Fig. 7, and Fig. 8(B) is a conceptual diagram for explaining the skew adjustment operation on the read side of the reception packet skew adjustment unit 512 of Fig. 7.
[0084] As shown in FIG. 8A, the data of each lane (Lane 0 to Lane 7) input from the asynchronous clock transfer unit 511 is input to the reception packet skew adjustment unit 512 while still being affected by the skew.
[0085] The data of each lane (Lane 0 to Lane 7) consists of a control code header that indicates the start position of the data body and the data body. The receive packet skew adjustment unit 512 detects this control code header in each lane and performs write access (write operation) to the data buffer 703 based on the detection timing.
[0086] As mentioned above, lane-to-lane skew occurs because the amount of skew changes dynamically during the horizontal synchronization period of each lane. Therefore, even if the skew is adjusted (corrected) at the beginning of the data, there is a problem in that lane-to-lane skew may occur in the data during the horizontal synchronization period of each lane thereafter.
[0087] Therefore, in the serial communication device according to the embodiment of the present invention, the receive packet skew adjustment unit 512 solves the above problem by performing the following skew adjustment operation. That is, the write control unit 701 sends a write completion notification (signals denoted as wr_done0 to wr_done7 in FIG. 8A) to the read control unit 704 when write access of data for a predetermined number of cycles is completed in each lane. Next, the read control unit 704 sends a read start notification (signal denoted as rd_start in FIG. 8A) to the buffer control unit 702 when it receives all write completion notifications corresponding to the lanes from the write control unit 701.
[0088] By performing the skew adjustment operation described above, as shown in FIG. 8(B), data can be read (signal indicated as rd_data in FIG. 8(B)) with lane-to-lane skew corrected (adjusted) without using any special control code. Incidentally, the state where lane-to-lane skew has been corrected means that skew adjustment has been performed and the data phases of the lanes are aligned. Also, the valid period of the read data is indicated as rd_valid in FIG. 8(B).
[0089] In the example of Figure 6(A), when the data width of each lane is 32 [bits] and is transferred for 32 [cycles], the write side of the receive packet skew adjustment unit 512 receives a total of 8 lanes of data, 8 x 32 x 32 = 8,192 [bits] = 8K [bytes].
[0090] If the read data width is 32×8=256 [bits], the read side of the reception packet skew adjustment unit 512 completes the data read (data read) in 8,192÷256=32 [cycles].
[0091] On the other hand, in the example of Figure 6(B), when the data width of each lane is 32 [bits] and the data is transferred for 43 [cycles], the write side of the receive packet skew adjustment unit 512 receives a total of 6 lanes of data, which is 6 x 32 x 43 = 8,256 [bits].
[0092] Of the data received by the write side of the receive packet skew adjustment unit 512, 8,256-8,192=64 bits are blank. If the read data width is 256 bits, as in the example of Figure 6(A), the read side of the receive packet skew adjustment unit 512 completes reading of the desired data (data read) in 8,192 / 256=32 cycles. The read side of the receive packet skew adjustment unit 512 eliminates the blank 64 bits by not reading the data (data read).
[0093] Next, the operation of the serial communication device according to the first embodiment when the reception packet skew adjustment unit 512 cannot detect (recognize) the control code header will be described.
[0094] If the reception packet skew adjustment unit 512 cannot recognize the control code header indicating the start position of the data body in any one or more lanes, it does not read data from the data buffer 73. In this case, the reception packet skew adjustment unit 512 first notifies the packet transmission unit 514 via the packet decoding unit 513 that recognition of the control code header has failed (hereinafter simply referred to as a "header recognition failure notification"). Next, upon receiving the header recognition failure notification from the reception packet skew adjustment unit 512, the packet transmission unit 514 transmits data (status packet) requesting retransmission of the data for which the control code header could not be recognized.
[0095] When the control code header cannot be recognized, it means that the code value at the control code header position changes due to noise or other factors that occur in the transmission path, changing from a predetermined value and making it impossible to recognize as a code value.
[0096] If the receive packet skew adjustment unit 512 cannot recognize the control code header, it cannot start write access to the data buffer 703. Therefore, if the control code header cannot be recognized in only one lane, data divided during transmission cannot be properly combined when reading data from the data buffer 703. Therefore, in the serial communication device according to the first embodiment, the receiving-side image communication control unit 410 discards the data, and causes the packet transmission unit 514 to transmit a status packet requesting the transmitting-side image communication control unit 400 to retransmit the data. Incidentally, the data in question refers to data for which the control code header could not be recognized.
[0097] When the receiving-side image communication control unit 410 requests retransmission of the data, the transmitting-side image communication control unit 400 stops the operation of the packet transmission unit 501 and starts transmission from the data packet for which the retransmission request was received. Until the packet transmission unit 501 retransmits the data, there is a possibility that a data packet that was in the middle of transmission (a data packet in the middle of transmission) may still exist. Therefore, the receiving-side image processing unit 413 discards the received data until the transmitting-side image communication control unit 400 recognizes the data packet in the middle of transmission as a retransmission of the desired data packet for which the retransmission request was made. That is, when the receiving packet skew adjustment unit 512 requests retransmission from the packet transmission unit 501, it discards the received data until it receives the retransmission of the data for which the retransmission request was made from the packet transmission unit 501. This is because if the data packet in the middle of transmission is mistakenly recognized as the data packet for which the retransmission request was made, the continuity of the data will be interrupted.
[0098] In this way, when the receiving-side image communication control section 410 successfully receives the data packet retransmitted from the transmitting-side image communication control section 400, the missing data can be compensated for.
[0099] Next, the operation of the serial communication device according to the first embodiment when burst transfer of image data is performed will be described.
[0100] FIG. 9 is a conceptual diagram for explaining a case where data is burst transferred (transferred continuously) in the packet configuration of data divided into eight lanes as shown in FIG. 6(A).
[0101] As in FIG. 6(A), as shown in FIG. 9, the portion labeled "header" is a control code indicating the start position of the subsequent data body, and the portion labeled "data" is the data body. FIG. 9 shows an example in which the serial communication device according to the first embodiment burst-transfers data using a total of eight lanes, Lane 0 to Lane 7, in parallel. As shown in FIG. 9, one data packet is transferred N cycles (N is an integer equal to or greater than 1) on each lane, and the total amount of data across the eight lanes is 8N, which is the same as the example in FIG. 6(A) (hereinafter simply referred to as "Example 1"). Note that in the burst transfer example in FIG. 9 (hereinafter simply referred to as "Example 2"), the control code "header" also indicates the number of consecutive data packets (hereinafter simply referred to as "number of consecutive data packets").
[0102] In the first embodiment, when transferring the next data packet, it was necessary to start with the control code header, but the data itself was not transferred for at least one cycle. Therefore, the effective transfer efficiency of the first embodiment was 32 / (1+32)≈96.97%. Thus, the data transfer performed by the serial communication device according to the first embodiment achieved high effective transfer efficiency.
[0103] In addition, in the second embodiment, one or more data packets are transferred consecutively after the control code header. For example, when burst=20, the effective transfer efficiency of the second embodiment is 32×20 / (1+32×20)≈99.84%. Thus, the burst transfer performed by the serial communication device according to the first embodiment can achieve an effective transfer efficiency of nearly 100%.
[0104] When the serial communication device according to the first embodiment performs burst transfer, the packet transmitting unit and the reception packet skew adjusting unit operate as follows.
[0105] The packet transmitting units 501 and 514 divide the transmission data equally according to the number of lanes, distribute the divided transmission data to each lane as the data body, and add a control code (header information) to the divided transmission data distributed to each lane. Also, the packet transmitting units 501 and 514 add a margin to the divided transmission data distributed to the lanes as necessary. Furthermore, when transmitting data packets continuously, the packet transmitting units 501 and 514 switch between adding a control code header to the data packets and skipping adding a control code header to the data packets.
[0106] The reception packet skew adjustment unit 512 and the reception packet skew adjustment unit 503 adjust the skew of the data received in each lane and recombine the data, and if a margin is added to the transmission data by the packet transmission unit, remove the margin added to the data received in the lane. Furthermore, when receiving data packets continuously, the reception packet skew adjustment unit 512 and the reception packet skew adjustment unit 503 interpret the control code header and notify the buffer control unit 702 to switch the data buffer 703.
[0107] In order for the serial communication device according to the first embodiment to perform burst transfer, the data buffer 703 is configured as a double buffer.
[0108] The reason why it is necessary to switch the data buffer 703, which is made up of data buffer A and data buffer B, will be explained using Fig. 10. Fig. 10 is a conceptual diagram for explaining the data buffer switching operation performed by the reception packet skew adjustment unit in Fig. 7.
[0109] As shown in FIG. 10, the first of consecutive data packets is denoted as burst=0, the second as burst=1, and although not shown, this burst value increments by one from the third data packet onward. The burst=0 data received in each lane (Lane 0 to Lane 7) is written to data buffer A, but by the time the burst=0 data is read, the next burst=1 data has already been received. If burst=1 data is written to the same data buffer A, it will be overwritten before the burst=0 data is read. Therefore, to prevent data overwriting, the data buffer 703 must have a double-buffer configuration. While the burst=0 data is being written to data buffer A and the burst=1 data is being written to data buffer B, the burst=0 data read begins. If the burst=0 data read is completed earlier than the burst=2 data write begins, the burst=2 data can be written to data buffer A.
[0110] If the completion timing of the data read of burst=0 is later than the start of the data write of burst=2, the data of burst=2 must be written to data buffer C (not shown in FIG. 10). This is also to prevent data from being overwritten. If the data buffer 703 is configured with a dual-port SRAM, a double-buffer configuration is acceptable as long as the write operation does not overtake the read operation.
[0111] Next, the operation of the serial communication device according to the first embodiment when a CRC is added to the packet configuration of image data will be described.
[0112] FIG. 11 is a conceptual diagram for explaining a case where a CRC is added to the packet configuration of data divided into eight lanes as shown in FIG. 6(A).
[0113] As in Figure 6(A), as shown in Figure 11, the part marked "header" is a control code that indicates the start position of the following data body, and the part marked "data" is the data body.
[0114] The CRC (Cyclic Redundancy Check) that follows the data body is a cyclic redundancy check code, a type of error detection code, mainly used to detect accidental errors that occur during data transfer, etc. The sender adds the remainder of division by a predetermined generating polynomial to the transmitted data as a check value, and the receiver divides the received data using the same generating polynomial and compares the remainder (calculated value) with the check value to detect errors or corruption in the received data.
[0115] A CRC whose check value is n bits long is called an n-bit CRC, and in Figure 11, a 32-bit CRC-32 is used as the check value for the CRC following the data body. CRC-32 is generated using, for example, a function called crc32.
[0116] Fig. 11 shows an example (hereinafter simply referred to as "Example 3") in which the serial communication device according to the first embodiment transfers data using a total of eight lanes, Lane 0 to Lane 7, in parallel. As shown in Fig. 11, one data packet is transferred in N cycles (N is an integer equal to or greater than 1) on each lane, and the total amount of data on the eight lanes is 8N, which is the same as the example in Fig. 6(A) (Example 1).
[0117] As already mentioned in Example 1, when the control code header cannot be recognized, changes in values due to noise generated on the transmission path may also occur in the data body other than the control code header portion, and if this occurs, the data will be lost.
[0118] When the serial communication device according to the first embodiment transfers data having a packet structure in which a control code header, a data body, and a CRC are added, the operation of the packet transmitting unit and the received packet skew adjusting unit is as follows.
[0119] The packet transmitting units 501 and 514 divide the transmission data equally according to the number of lanes, distribute the divided transmission data to each lane as a data body, and add a control code (header information) to the divided transmission data distributed to each lane. Also, the packet transmitting units 501 and 514 add a margin to the divided transmission data distributed to the lanes as necessary. Furthermore, the packet transmitting units 501 and 514 add an error detection code check value (CRC-32, which is the check value of the CRC code in the third embodiment) to check for data loss to the divided transmission data distributed to each lane.
[0120] The reception packet skew adjustment unit 512 and the reception packet skew adjustment unit 503 adjust the skew of the data received in each lane and recombine the data, and when a margin is added to the transmission data by the packet transmission unit, removes the margin added to the data received in the lane. Furthermore, the reception packet skew adjustment unit 512 and the reception packet skew adjustment unit 503 generate a calculated value of an error detection code (a calculated value of a CRC code in the third embodiment) for each lane based on the control code header and data packet (received data) received for each lane.
[0121] Then, the received packet skew adjustment unit 512 and the received packet skew adjustment unit 503 determine whether or not there is any data loss for each lane based on the inspection value of the error detection code received for each lane and the calculated value of the error detection code generated for each lane.
[0122] When the receive packet skew adjustment unit 512 detects data loss based on the CRC code check value and the calculated value, it does not activate the wr_done signal for the lane in which the data loss was detected in order to cancel the reading of data from the data buffer 703. Incidentally, not activating the wr_done signal means that the write control unit 701 does not notify the read control unit 704 of a write completion notification. This makes it impossible to read data containing the lost data from the data buffer 703, and the receiving-side image processing unit 413 can discard the lost data. Then, to compensate for the data loss, the receiving-side image communication control unit 410 transmits a status packet to the transmitting-side image communication control unit 400 via the packet transmission unit 514, requesting retransmission of the lost data.
[0123] When the receiving-side image communication control unit 410 requests retransmission of the lost data, the transmitting-side image communication control unit 400 stops the operation of the packet transmission unit 501 and starts transmission of the data packet for which the retransmission request was received. In this way, when the receiving-side image communication control unit 410 successfully receives the data packet retransmitted from the transmitting-side image communication control unit 400, it can compensate for the lost data.
[0124] The serial communication device according to the first embodiment can perform burst transfer of image data by combining Example 2 and Example 3. When performing burst transfer by combining Example 2 and Example 3, the packet configuration is such that one or more data packets are consecutively arranged after a control code header, and a CRC code check value is added after the consecutive data.
[0125] Next, the operation of the serial communication device according to the first embodiment when a timeout is detected will be described.
[0126] Even though the receiving-side image communication control unit 410 requests the transmitting-side image communication control unit 400 to resend data, the transmitting-side image communication control unit 400 does not transmit the data packet for which the resend request was made, which can occur in the first and second cases. The first case is when the previous continuous data continues to be transmitted, and the second case is when the operation of the packet transmitting unit 501 continues to be stopped, and the data packet for which the resend request was made is not transmitted. This is thought to be because the transmitting-side image communication control unit 400 was unable to properly receive the data resend request.
[0127] If this continues, the receiving-side image communication control section 410 will not be able to properly receive the data packets retransmitted from the transmitting-side image communication control section 400, and will not be able to compensate for the missing data.
[0128] Therefore, the operation of the serial communication device according to the first embodiment is as follows.
[0129] If the receiving side image communication control unit 410 is unable to receive the expected data in one or more lanes after a predetermined time has elapsed, it determines that a timeout has occurred and sends data to the transmitting side image communication control unit 400 requesting retransmission of the data for which the timeout was detected.
[0130] If the transmitting-side image communication control unit 400, which has been requested to resend data from the receiving-side image communication control unit 410, successfully receives the request to resend the data again, it can start transmitting from the data packet for which the resend request was received. If the receiving-side image communication control unit 410 successfully receives the data packet resent from the transmitting-side image communication control unit 400, it can compensate for the missing data.
[0131] As described above, the serial communication device according to the first embodiment can eliminate timing discrepancies between serial data transferred over multiple paths using the methods described in the examples, without reducing the effective transfer efficiency, without increasing the circuit size, and without requiring any complex control.
[0132] Although the preferred embodiments and examples of the present invention have been described above, the present invention is not limited to the above-described embodiments and examples, and various modifications and variations are possible within the scope of the gist thereof. The present invention can also be realized by supplying a program that realizes one or more functions of the above-described embodiments to a system or device via a network or storage medium, and having one or more processors in the computer of the system or device read and execute the program. The present invention can also be realized by a circuit (e.g., an ASIC) that realizes one or more functions. [Explanation of symbols]
[0133] 100 Printing Systems 101 Client PC 102 Printing control device 103 Image forming device 106 Image data communication channel 208 Transmitting image communication I / F 307 Receiving side image communication I / F 400 Transmitting side image communication control unit 401 Transmission side image processing unit 410 Receiving side image communication control unit 413 Receiving side image processing unit 501, 514 Packet sending unit 503, 512 Receive packet skew adjustment unit 701 Light control unit 702 Buffer control unit 703 Data Buffer 704 Lead control section
Claims
1. A serial communication device that transfers serial data transmitted from a transmitting-side communication means disposed on a transmitting side to a receiving-side communication means disposed on a receiving side through a plurality of lanes, the transmitting side communication means comprises packet transmitting means for dividing transmission data equally in accordance with the number of lanes, distributing the divided transmission data to each lane as a data body, and adding header information indicating a type of the transmission data to the divided transmission data distributed to each lane; the receiving side communication means includes a receiving packet skew adjustment means for adjusting a skew of data received on each of the lanes; the reception packet skew adjustment means detects the header information of the data received on each of the lanes, writes the data body of the received data to a data buffer at the detection timing, and starts data transfer from the data buffer to an external device at the timing when write access of the data body for a predetermined number of cycles is completed on each of the lanes; The serial communication device is characterized in that, when margins are added to the divided transmission data distributed to the lanes by the packet transmitting means, the receive packet skew adjustment means adjusts the skew of the data received on each lane to combine the data, and then removes the margins.
2. the transmitting side communication means transmits one or more data packets in succession after the header information; The reception packet skew adjustment means continuously receives the data packets, the header information also indicates the number of the data packets; 2. The serial communication device according to claim 1, wherein the data buffer is configured as a double buffer.
3. the transmitting-side communication means adds an error detection code check value for checking for data loss to the divided transmission data distributed to each of the lanes; The serial communication device according to claim 1 or 2, characterized in that the receive packet skew adjustment means determines whether or not there is a data loss for each lane based on the inspection value received for each lane and the calculated value of the error detection code generated for each lane.
4. 4. The serial communication device according to claim 3, wherein when the receive packet skew adjustment means detects data loss based on the inspection value and the calculated value, the receive packet skew adjustment means does not issue a write completion notification for the lane in which the data loss was detected, but requests the transmitting communication means to retransmit the data from the lane in which the loss was detected.
5. 5. The serial communication device according to claim 1, wherein when the receive packet skew adjustment means is unable to recognize the header information of the data received on each lane, the receive packet skew adjustment means requests the transmitting communication means to retransmit the data from the data whose header information could not be recognized.
6. 6. A serial communication device as claimed in any one of claims 1 to 5, characterized in that when the receive packet skew adjustment means detects a timeout of the data received on each lane, it requests the transmitting communication means to retransmit the data from which the timeout was detected.
7. 7. The serial communication device according to claim 4, wherein the reception packet skew adjustment means, when requesting the retransmission from the transmitting communication means, discards the received data until the retransmission of the data requested for retransmission is received from the transmitting communication means.
8. The serial data transmitted from the transmitting-side communication means arranged on the transmitting side is transferred to the receiving-side communication means arranged on the receiving side via a plurality of lanes, the transmitting side communication means comprises packet transmitting means for dividing transmission data equally in accordance with the number of lanes, distributing the divided transmission data to each lane as a data body, and adding header information indicating a type of the transmission data to the divided transmission data distributed to each lane; a receiving-side communication means for adjusting a skew of data received in each lane; the reception packet skew adjustment means detects the header information of the data received on each of the lanes, writes the data body of the received data to a data buffer at the detection timing, and starts data transfer from the data buffer to an external device at the timing when write access of the data body for a predetermined number of cycles is completed on each of the lanes; A serial communication method characterized in that the receive packet skew adjustment means, when a margin is added to the divided transmission data distributed to the lanes by the packet transmission means, adjusts the skew of the data received on each lane to combine the data, and then removes the margin.
Citation Information
Patent Citations
Multi-lane transmission method and system
JP2011223454A
Data transmission device, data transmission system, and data transmission method
JP2016220095A
Transmission device, transmission method, and transmission system
JP2018125814A
Transmission / reception system, data reception device, and data reception method
JP2019176263A
Serial communication device, communication control method and program
JP2021019291A