U.S. patent application number 13/040836 was filed with the patent office on 2011-06-30 for data pump for printing.
This patent application is currently assigned to FUJIFILM Dimatix, Inc.. Invention is credited to Deane A. Gardner, Philip Hsueh.
Application Number | 20110157648 13/040836 |
Document ID | / |
Family ID | 35843253 |
Filed Date | 2011-06-30 |
United States Patent
Application |
20110157648 |
Kind Code |
A1 |
Gardner; Deane A. ; et
al. |
June 30, 2011 |
Data Pump For Printing
Abstract
Systems and techniques for printing on a workpiece. In one
implementation, a data pump is used to create a packet of image
data for a print head assembly. The data pump includes multiple
state machines to receive image data from an image buffer on a
computer, and a serializer to gather image data from each of the
state machines. Each of the state machines is configured to send
image data to the serializer at a different instance in time. The
serializer is configured to arrange the gathered image data
according to when the serializer received the image data from each
of the state machines. The data pump also includes an optical fiber
communication interface to connect with a communication
channel.
Inventors: |
Gardner; Deane A.;
(Cupertino, CA) ; Hsueh; Philip; (Fremont,
CA) |
Assignee: |
FUJIFILM Dimatix, Inc.
Lebanon
NH
|
Family ID: |
35843253 |
Appl. No.: |
13/040836 |
Filed: |
March 4, 2011 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10966023 |
Oct 15, 2004 |
7907298 |
|
|
13040836 |
|
|
|
|
Current U.S.
Class: |
358/1.15 |
Current CPC
Class: |
G06K 15/02 20130101;
G06K 15/021 20130101; G06K 15/1814 20130101 |
Class at
Publication: |
358/1.15 |
International
Class: |
G06F 15/00 20060101
G06F015/00 |
Claims
1. A method performed by a computer for controlling high bandwidth
printing by a remote printer, the method comprising: detecting a
speed and a position of a workpiece relative to the remote printer;
assembling image data for a first scan line of the image into a
first image data packet based on the detected speed and the
position of the workpiece; and transmitting the first image data
packet to the remote printer so that the image data arrives at the
remote printer just in time for the remote printer to print the
first scan line of the image on the workpiece based on the received
image data.
2. The method of claim 1, wherein the first image data packet sent
from the computer is assembled based on an arrangement of print
elements on the remote printer.
3. The method of claim 2, wherein portions of the image data are
allocated to different memory locations in the computer.
4. The method of claim 3, wherein the different memory locations
comprise an image buffer, and wherein the method further comprises
sending the image data from the image buffer on the computer to an
assembler to assemble the first image data packet.
5. The method of claim 2, wherein assembling the image data
comprises arranging the image data according to delay values that
are related to an arrangement of print elements on the remote
printer.
6. The method of claim 1, wherein transmitting the first image data
packet to the remote printer comprises transmitting the first image
data packet substantially at an instant at which the remote printer
prints the image data in the first image data packet being
transmitted.
7. The method of claim 1, wherein transmitting the first image data
packet to the remote printer comprises transmitting the first image
data packet substantially at an instant at which the remote printer
prints image data in a second image data packet received by the
remote printer immediately before the first image data is
transmitted.
8. The method of claim 1, wherein transmitting the first image data
packet to the remote printer comprises transmitting the first image
data packet to trigger the remote printer to print the image data
in the second image data packet.
9. The method of claim 1, wherein the first image data packet is
transmitted on a common communication channel between the computer
and the remote printer.
10. The method of claim 1, further comprising disassembling the
first image data packet after transmitting the first image data
packet to the remote printer.
11. The method of claim 1, wherein image data for a second scan
line of the image is assembled into a second image data packet and
the second image data packet is transmitted at a time different
from transmission of the first image data packet.
12. The method of claim 11, wherein the image data for the image is
arranged into the first and the second image data packets according
to multiple logical scan lines.
13. A method of printing, comprising: receiving at a printer a
first packet of data from a remote computer, the data of the first
packet representing a first scan line by print elements of the
printer; storing the data in a latch; receiving at the printer a
second packet of data from the remote computer, the data of the
second packet representing a second scan line by the print elements
of the printer, wherein receipt of the second packet of data at the
printer triggers the printer to print the first scan line from the
print elements based on the data of the first packet.
14. The method of claim 13, wherein each of the first and second
packets of data contains image data for columns of the print
elements.
15. The method of claim 13, wherein image data of an image to be
printed by the printer is arranged into image data packets that
include the first and second packets of data based on logical scan
lines.
16. The method of claim 13, further comprising detecting a speed
and a position of a workpiece onto which the printer prints.
17. The method of claim 13, wherein the first and second packets of
data are received through a common communication channel between a
remote computer and the printer.
Description
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application is a divisional of pending U.S. patent
application Ser. No. 10/966,023, filed on Oct. 15, 2004, entitled
"Data Pump For Printing," the entire contents of which is hereby
incorporated by reference.
BACKGROUND
[0002] This disclosure relates to printing systems.
[0003] When an image such as a picture or a page of text is to be
printed, image data generally is translated by a computer system
from one format into another format understandable by a printer and
then relayed to a print buffer associated with the printer. The
print buffer receives the translated image data and stores at least
a portion of the image data for subsequent printing by the
printer.
[0004] Many printers include multiple discrete print elements
(e.g., an inkjet nozzle in an inkjet print module). The print
elements can be deployed to print selected components of the image.
For example, selected print elements can be deployed to print at
selected locations on a workpiece. As another example, in color
printing, selected print elements can be deployed to print selected
colors. Control electronics can coordinate the printing of images
by deploying the print elements to print image data from the print
buffer.
[0005] The print elements in a printer can be arranged in groups
called print modules. The print elements in a module can be grouped
according to the deployment of the constituent elements. For
example, print elements that print at a selected array of positions
can be grouped in a print module. As another example, print
elements that print the same color (at a selected array of
positions) can be grouped into a print module.
SUMMARY
[0006] The following disclosure relates to systems and techniques
for printing. One implementation includes a device for assembling
image data into a packet to send to a print head assembly. The
device includes an array of state machines, in which each state
machine corresponds to a logical image queue, and each state
machine has a corresponding delay input that is configured to
arrange the image data according to logical scan lines. The device
includes a serializer to receive image data from each of the state
machines. The serializer is configured to create the packet of
image data according to an order of received image data from each
of the state machines. The device also has a communication
interface to send the packet of image data to the print head
assembly.
[0007] The device may also have circuitry on a PC board and/or an
interface to connect to a Peripheral Component Interconnect-type
slot of a computer. The device can use the Peripheral Component
Interconnect-type slot to receive image data from a corresponding
image buffer on the computer.
[0008] Each image queue may correspond to a distinct physical
column of associated print elements on the print head assembly. The
serializer can feed the communication interface in the correct data
order to facilitate correct timing of the image data on the print
assembly. The state machine delays can be configured to time the
printing of portions of the image data for each associated print
element. The communication interface includes an optical fiber
interface that can have a data bandwidth of at least 1 Gb/s.
Alternatively, the communication interface may include a
copper-cable interface. The state machines can send image data to
the serializer at different instances in time.
[0009] Also, described is a method performed by a computer for
controlling high bandwidth printing by a remote printer. The method
involves detecting a speed and a position of a workpiece relative
to the remote printer, and assembling image data into an image data
packet based on the detected speed and position of the workpiece.
The method also involves transmitting the image data packet to the
remote printer substantially at an instant at which an image is to
be printed on the workpiece.
[0010] The image data packet sent from the computer can be
assembled into an image data packet that is based on an arrangement
of print elements on the remote printer. Portions of the image data
can be allocated to different memory locations in the computer. The
different memory locations may include an image buffer. The method
may also involve sending data from the image buffer on the computer
to an assembler to assemble the image data packet. Circuitry can be
configured to arrange the image data according to delay values that
are related to an arrangement of print elements on the remote
printer. The method may be performed to regulate transmission of
image data from the computer to the remote printer such that the
image data arrives at the remote printer just in time for the image
is to be printed on the workpiece.
[0011] Another implementation described here involves a data pump
to create a packet of image data for a print head assembly. The
data pump includes multiple state machines to receive image data
from an image buffer on a computer, and a serializer to gather
image data from each of the state machines. Each of the state
machines is configured to send image data to the serializer at a
different instance in time. The serializer is configured to arrange
the gathered image data according to when the serializer receives
the image data from each of the state machines. The data pump also
includes an optical fiber communication interface to connect with a
communication channel.
[0012] The optical fiber interface may include a Peripheral
Component Interconnect Extended or a PCI Express interface. The
serializer may arrange the order of the image data in the packet to
enable the print head assembly to print an image on a
workpiece.
[0013] The described print systems and techniques can be
implemented to realize one or more of the following advantages. The
process of printing images on a workpiece is synchronized with the
entry of a new workpiece in the print area of a printer. When a
leading edge of a new workpiece is detected, image data is sent to
the print head assembly at the precise time the print element
association is to deposit ink on the workpiece to generate a
high-quality image on the workpiece. Poor image quality on the
workpiece can be avoided by substantially eliminating excessive
pauses or gaps when receiving the image data for the print head
assembly. Transmission of image data to the print head assembly can
serve as a trigger that causes the image data to be printed
substantially immediately as the data arrives at the print head
assembly.
[0014] The printing system can be a scalable architecture that can
print images at high image data rates. The printing system also can
be implemented with lower cost hardware and design effort. The
primary printing electronics can be implemented on a personal
computer (PC) (e.g., a single-board computer card) and connected
through a Peripheral Component Interconnect (PCI), a PCI-X, or a
PCI-Express slot on a host computer. The high-speed characteristics
of PC memory (e.g., RAM) can be used to reduce the amount of memory
needed for the print head assembly. Moreover, the disclosed
architecture enables the print head assembly to be controlled by a
relative small number of components, each being processed at
relatively low speeds.
[0015] A data pump can send image data to a print head assembly at
high data rates to enable just-in-time printing of images on the
workpieces as the workpieces move along a workpiece conveyor.
Because the amount of memory can be reduced on the print head
assembly, the print head assembly may be implemented at a lower
cost. The type of memory used on the print head assembly may also
be implemented at a lower cost. In one implementation, memory for
the print head assembly can be field programmable gate array (FPGA)
integrated circuit (IC), which is programmed to control the print
head electronics. As a result, the costs and engineering design
efforts to implement the print head assembly may be reduced due to
little or no buffering of high speed image data at the print head
assembly.
[0016] In one implementation, the data rate of image data sent to
the print head assembly can be scaled by having multiple data pumps
connected to a single host computer. In another implementation, the
system may be scalable in having multiple computers to operate in
parallel to deliver higher image data rates to the print head
assembly. In this implementation, each computer may have at least
one PC card of control electronics connected to the PCI slot of the
computer. The system may also offer scalable transmission of high
bandwidth, synchronous, just-in-time image data to the print head
assembly in a number of configurations, including adding multiple
FGPAs to the print assembly. Because the system can handle high
bandwidths of image data, the system can provide just-in-time
printing of high resolution images at high conveyor speeds,
large-size images at high conveyor speeds, and/or multi-color and
grayscale images at high conveyor speeds.
[0017] Image data that represents an image to be printed can be
divided according to the deployment of associations of print
elements in a printer. The divided image data can be stored at
different memory locations, depending on the deployment of the
print element associations. The different memory locations can be
individual memory buffers. The data pump can receive the image data
from the different memory locations. Each physical column of
associated print modules can function logically independently from
the others, so that printing on the workpiece can be continuous and
substantially without printing gaps. The data pump can facilitate
just-in-time, synchronous transmission of image data from the host
PC without the need for buffering or additional robust or powerful
logic at the print head assembly. Additional data pumps can be
added to the host computer to scale to higher resolutions and/or to
increase bandwidth requirements.
[0018] Because each of the physical columns of associated print
modules function logically independently from the others, bit
manipulation does not have to be performed in the hardware of the
print head assembly to achieve real-time printing of images. The
system can facilitate software bit manipulation, so bit
manipulation can be performed at high data rates, and engineering
and material costs can be reduced.
[0019] The details of one or more implementations are set forth in
the accompanying drawings and the description below. Other features
and advantages of the invention will be apparent from the
description and drawings, and from the claims.
DESCRIPTION OF DRAWINGS
[0020] FIG. 1 shows a block diagram of a printing system.
[0021] FIGS. 2 and 3 illustrate an arrangement of printer elements
in the printing system of FIG. 1.
[0022] FIG. 4 schematically illustrates the deployment of print
elements with relative shifts in lateral position.
[0023] FIG. 5 schematically illustrates the serial printing of an
image on different workpieces.
[0024] FIG. 6 is a flowchart of a process for the serial printing
of an image on different workpieces.
[0025] FIGS. 7, 8, and 9 illustrate implementations of the division
of image data according to the deployment of associated print
elements.
[0026] FIG. 10 shows a schematic representation of an
implementation of a printing system.
[0027] FIG. 11 is a flowchart of a process for synchronized
printing on a workpiece.
[0028] FIG. 12 schematically illustrates a data pump.
[0029] FIG. 13 schematically illustrates a packet of image data
generated by the data pump.
[0030] FIG. 14 shows exemplary specifications for the data
pump.
[0031] Like reference symbols in the various drawings indicate like
elements.
DETAILED DESCRIPTION
[0032] FIG. 1 is a block diagram of a print system 100. Print
system 100 includes a workpiece conveyor 105 and a printer housing
110. Workpiece conveyor 105 produces relative motion between a
series of workpieces 115, 120, 125, 130, 135, 140, 145 and printer
housing 110. In particular, workpiece conveyor 105 conveys
workpieces 115, 120, 125, 130, 135, 140, 145 in a direction D
across a face 150 of printer housing 110. Workpiece conveyor 105
can include a stepper or continuous motor that moves a roller, a
belt, or other element that can retain workpieces 115, 120, 125,
130, 135, 140, 145 during conveyance. Workpieces 115, 120, 125,
130, 135, 140, 145 can be any of a number of different substrates
upon which system 100 is to print. For example, workpieces 115,
120, 125, 130, 135, 140, 145 can be paper, cardboard,
microelectronic devices, or foodstuffs.
[0033] Printer housing 110 houses a workpiece detector 155.
Workpiece detector 155 can detect the position of one or more
workpieces 115, 120, 125, 130, 135, 140, 145. For example,
workpiece detector 155 can be a laser/photodetector assembly that
detects the passage of edges of workpieces 115, 120, 125, 130, 135,
140, 145 across a certain point on face 150.
[0034] Located remotely from the printer housing 110 are control
electronics 160. The control electronics 160 interface with the
printer housing 110 by a cable 195 (e.g., an optical cable) and
minimal electronics 190. Control electronics 160 control the
performance of print operations by system 100. Control electronics
160 can include one or more data processing devices that perform
operations in accordance with the logic of a set of
machine-readable instructions. Control electronics 160 may be, for
example, a personal computing system that runs image processing
software and software for controlling printing at the printer
housing 110.
[0035] Located within the control electronics 160 is a print image
buffer 165. Print image buffer 165 is one or more data storage
devices that store image data for printing by print elements. For
example, print image buffer 165 can be a collection of random
access memory (RAM) devices. Print image buffer 165 can be accessed
by control electronics 160 to store and retrieve image data.
[0036] The control electronics 160 interface with the printer
housing 110 via the cable 195 and minimal electronics 190. The
control electronics 160 can send data across the cable 195, and the
minimal electronics 190 can receive that data for printing at the
printer housing 110. The control electronics 160 may have special
circuitry (e.g., a data pump, as described in more detail in
reference to FIG. 10, that can receive and/or retrieve image data
from print image buffers, store the image data, and enable print
elements at a printing device to receive image data in time to
deposit ink on the corresponding image locations on workpieces as
they are moving along a conveyor) for generating data to send to
the printer housing 110. The minimal electronics 190 may be, for
example, a field-programmable gate array that includes a
microprocessor, transceiver, and minimal memory. The minimal
electronics 190 may be connected to the printer housing 110 such
that the minimal electronics 190 can be disconnected easily should
the printer housing 110 and/or hardware in the printer housing 110
be changed. For example, if the printer housing 110 is replaced
with a newer printer housing containing newer printing modules, the
minimal electronics 190 can be disconnected from the older printer
housing 110 and connected to the newer printer housing.
[0037] The printing of an image is divided between the control
electronics 160 and the minimal electronics 190 such that the
control electronics performs image processing and controls
printing, whereas the minimal electronics 190 receives data
received via the cable 195 and uses that data to cause firing of
print elements at the printer housing 110. Thus, for example, image
data may be converted to jetmap image data, which may include
dividing the image data into multiple image queues of image buffers
as part of the process of converting to jetmap image data (as
described in more detail later); delays may be inserted into image
data (e.g., inserting delays corresponding to a deployment of print
element associations); and image data may be sent (e.g., encoding
data packets of image data and sending by a receiver) at an
appropriate time by the control electronics 160; whereas, the
minimal electronics 190 may merely receive the image data (e.g.,
decode image data packets sent across the cable 195) and relay the
image data such that the image data is printed on a workpiece
(e.g., cause firing of inkjet nozzles according to the image data).
The control electronics 160 may synchronize printing of an image at
the printer housing 110. Following the previous example, the
control electronics 160 may synchronize the printing of an image by
receiving an indication of a leading edge of a workpiece and
sending image data across the cable 195 to cause the printing of an
image at the printer housing 110.
[0038] The control electronics 160 can send image data to the
printer housing 110 at high data rates to enable "just-in-time"
printing of images on the workpieces as the workpieces move along
the workpiece conveyor 105. In one implementation of just-in-time
printing, transmission of image data to the printer housing 110 can
serve as a trigger that causes the image data in a packet to be
printed "substantially immediately" as the data arrives at the
printer housing 110. In this implementation, the image data may not
be stored on a storage component on the printer housing prior to
printing the image data, but can be printed as the data arrives at
the printer housing. Just-in-time printing may also refer to
printing image data substantially at an instant at which the image
data arrives at the printer housing.
[0039] In another implementation of just-in-time printing, data
received at the printer housing is stored in one or more latches,
and new or subsequent data that is being received at the printer
housing can serve as a trigger to print the latched data. In this
implementation, the data received at the printer housing is stored
in a latch until the subsequent data arrives at the printer
housing, and the subsequent data arriving at the printer housing
can serve as a trigger to print the data that has been latched. The
data, subsequent data, and latched data may be received and/or
stored at the printer housing in the form of an image data packet.
In one case, the subsequent data arriving at the printer housing is
the next subsequent data. Alternatively, the subsequent data
arriving at the printer housing is subsequent data other than the
next subsequent data, such as subsequent data arriving after the
next subsequent data. Because the image data is being printed at
such a high-data rate, the data printed from latched data can also
refer to data being printed "substantially immediately" as the data
is arriving at the printer housing.
[0040] Because the printer housing 110 has minimal electronics 190
and a reduced amount of memory, the printer housing 110 may be
implemented at a lower cost. The type of memory used on the printer
housing 110 may also be implemented at a lower cost. In one
implementation, the type of memory implemented on the printer
housing 110 is part of a field-programmable gate array (FPGA)
integrated circuit (IC) that may be part of the minimal electronics
190. The costs and engineering design efforts to implement the
printer housing 110 may also be reduced due to little or no
buffering of high speed image data at the printer housing 110. The
system 100 may offer scalable transmission of high bandwidth,
synchronous, just-in-time image data to the printer housing 110 in
a number of configurations, including, for example, a configuration
with multiple FGPAs at the printer housing 110, each of which may
implement the minimal electronics 190 and interface with one or
more data pumps using one or more cables.
[0041] FIGS. 2 and 3 illustrate the arrangement of print modules
and print elements on housing 110. In particular, FIG. 2 shows
housing 110 from the side, whereas FIG. 3 shows housing 110 from
below.
[0042] Housing 110 includes a collection of print modules 205, 210,
215, 220, 225, 230, 305, 310, 315 on face 150. Print modules 205,
210, 215, 220, 225, 230, 305, 310, 315 each include one or more
print elements. For example, print modules 205, 210, 215, 220, 225,
230, 305, 310, 315 can each include a linear array of inkjet
nozzles.
[0043] Print modules 205, 305 are arranged laterally along a column
320. Print module 210 is arranged along a column 325. Print modules
215, 310 are arranged laterally along a column 330. Print module
220 is arranged along a column 335. Print modules 225, 315 are
arranged laterally along a column 340. Print module 230 is arranged
along a column 345. This arrangement of print modules 205, 210,
215, 220, 225, 230, 305, 310, 315 along columns 325, 330, 335, 340,
345 spans an effective print area 235 on face 150. Effective print
area 235 has a longitudinal width W that spans from the print
elements in print modules 205, 305 to the print elements in print
module 230.
[0044] Print modules 205, 210, 215, 220, 225, 230, 305, 310, 315
can be deployed in print element associations to print selected
components of an image. For example, print modules 205, 210, 305
can be deployed in a first print element association to print a
first color across the entire lateral expanse of a substrate moving
across face 150, print modules 215, 220, 310 can be deployed in a
second print element association to print a second color across the
entire lateral expanse, and print modules 225, 230, 315 can be
deployed in a third print element association to print a third
color across the entire lateral expanse.
[0045] As another example, the group of print modules 205, 210,
215, 220, 225, 230, 305, 310, 315 can be deployed in print element
associations based on the lateral position of the constituent print
elements in the modules. For example, a first print element
association can include modules 205, 210, 305 deployed so that
their constituent print elements are shifted in lateral position
relative to the print elements in modules 215, 220, 310 and to the
print elements in modules 225, 230, 315. A second print element
association can include print modules 215, 220, 310 deployed so
that their constituent print elements are shifted in lateral
position relative to the print elements in modules 205, 210, 305
and to the print elements in modules 225, 230, 315. Modules 225,
230, 315 can form a third association. The relative shifts in
position can be smaller than the lateral spacing of the print
elements in the modules to, in net effect, decrease the lateral
spacing between print elements on housing 110 and thereby
effectively increase the resolution at which an image can be
printed.
[0046] As another example, the group of print modules 205, 210,
215, 220, 225, 230, 305, 310, 315 can be deployed in print element
associations based on the columnar position of the constituent
print elements in the modules. For example, a first print element
association can include modules 205, 305 deployed so that their
constituent print elements are arranged in a single column. A
second print element association can include only print module 210.
Modules 215, 310 can form a third association. Associations four,
five, and six include modules 220, 225 and 315, and 230,
respectively. Forming associations of print elements in this
columnar manner allows the printing of back-to-back dissimilar
images with variable but small or nonexistent non-printed area
between finished image areas, relative to longitudinal width W,
without need for complex real-time adjustments in image data.
[0047] As another example, groups of print modules can be deployed
in print element associations based on the lateral expanses covered
by the print modules. For example, a first print element
association can include modules 205, 305, 215, 310, 225, 315
deployed to cover the laterally outer expanses of a workpiece. A
second print element association can include print modules 210,
220, 230 deployed to cover the laterally central expanses of a
workpiece.
[0048] As another example, groups of print elements can be deployed
in print element associations based on a combination of these and
other factors. For example, groups of print elements can be
deployed in a print element association based on their printing the
color cyan on an outer extent of a workpiece. As another example,
groups of print modules can be deployed in a print element
association based on their constituent print elements printing at
certain lateral positions on the laterally outer expanses of a
workpiece.
[0049] Each print element association can have a dedicated memory
location in print image buffer 165 (shown in FIG. 1) in that the
association prints image data that once resided in the memory
location. For example, when print image buffer 165 is a collection
of queues of individual buffers, each print element association can
have an individual, dedicated queue of buffers.
[0050] FIG. 4 schematically illustrates a deployment of print
elements with relative shifts in lateral position. The illustrated
portion of housing 110 includes print modules 205, 215, 225. Print
module 205 includes an array of print elements 405 laterally
separated from one another by a distance L. Print module 215
includes an array of print elements 410 laterally separated from
one another by a distance L. Print module 225 includes an array of
print elements 415 laterally separated from one another by a
distance L.
[0051] Print elements 405 are shifted relative to the lateral
position of print elements 410 by a shift distance S. Print
elements 405 are shifted relative to the lateral position of print
elements 415 by shift distance S. Print elements 410 are shifted
relative to the lateral position of print elements 415 by shift
distance S. Shift distance S is smaller than distance L, and the
net effect of the relative lateral shifts between print elements
405, print elements 410, and print elements 415 is to decrease the
overall lateral spacing between print elements on face 150 of
housing 110.
[0052] FIG. 5 schematically illustrates the serial printing of an
image 500 on two or more different workpieces using print system
100. A series of workpieces 120, 125, 130, 135, 140 is conveyed
across effective print area 235 on face 150 of printer housing 110
for printing. Image 500 can be serially printed in that image 500
can be printed sequentially on workpieces 120, 125, 130, 135, 140
(i.e., the same image is printed, in succession, on various
workpieces).
[0053] Workpieces 120, 125, 130, 135, 140 each have a longitudinal
width W2. Workpiece width W2 is smaller than width W of effective
print area 235. A leading edge of workpiece 120 is separated from a
trailing edge of workpiece 125 by separation distance SEP. A
leading edge of workpiece 125 is separated from a trailing edge of
workpiece 130 by separation distance SEP. A leading edge of
workpiece 130 is separated from a trailing edge of workpiece 135 by
separation distance SEP. A leading edge of workpiece 135 is
separated from a trailing edge of workpiece 140 by separation
distance SEP. The separation distance SEP may be smaller than width
W of effective print area 235. The separation distance SEP may be
zero. As such, both workpiece 130 and workpiece 135 may be
positioned in effective print area 235 simultaneously and be
printed on at the same time.
[0054] System 100 has partially printed image 500 on both workpiece
130 and workpiece 135. Such serial printing of image 500 on two or
more different workpieces using a single effective print area
speeds the throughput of workpieces in system 100.
[0055] FIG. 6 includes flowcharts of processes 650, 655, 660 for
the serial printing of an image on two or more different workpieces
using a single effective print area. Processes 650, 655, 660 can be
performed in whole or in part by a data processing apparatus and/or
circuitry configured to exchange data with a buffer and control
printing by print elements. In system 100, processes 650, 655, 660
can be performed by control electronics 160 using input received
from workpiece conveyor 105 and workpiece detector 155. Within the
control electronics 160, different processes may be performed by
different parts of the system 100. For example, the process 650 may
be performed by software operating in the control electronics 160
and the processes 655 and 660 may be performed by a data pump. The
processes of 650, 655, and 660 are separate to indicate that they
can be performed concurrently and/or independently of each
other.
[0056] The system performing the process 650 receives image data at
605. The image data can be a stand-alone collection of data
regarding an individual image. For example, the image data can be a
graphic image format (gif) file, a joint photographic experts group
(jpeg) file, PostScript, Printer Command Language (PCL), or other
image data collection.
[0057] The system can then translate and divide the received image
data according to a deployment of associated print elements at 610.
The image data can be translated before it is divided, divided
before it is translated, or translated and divided as part of the
same process. The translation of image data can include, for
example, a conversion of image data into a format understandable by
a printing device, such as bitmap raster data, and a further
conversion of the bitmap raster data into jetmap data. Converting
bitmap raster image data into jetmap data involves taking an input
bitmap, which is arranged in an order corresponding to a geographic
order used by the bitmap image format, and rearranging the bitmap
raster image data to correspond to physical locations of the print
elements. It may also involve dividing the image data as part of
the process of converting the bitmap raster image data to jetmap
data (i.e., the jetmap data is divided into image buffers
corresponding print element associations). As an example, the
process at 610 may include converting jpeg formatted image data to
bitmap formatted image data, and then converting the bitmap
formatted image data into jetmap image data as image buffers
corresponding to print element associations. In an alternative
implementation, image data may be converted directly to jetmap data
without first converting to an intermediary format.
[0058] The division of image data according to the deployment of
associated print elements can include the identification of
portions of the image data that are to be printed by an association
of print elements based on the deployment of the association.
[0059] FIG. 7 illustrates one implementation of the division of
image data representing an image 700 according to a deployment of
print element associations. Image 700 includes a cyan line 705, a
magenta line 710, and a yellow line 715. Cyan line 705 is printable
by an association of print elements deployed to print cyan. Magenta
line 710 is printable by an association of print elements deployed
to print magenta. Yellow line 715 is printable by an association of
print elements deployed to print yellow.
[0060] When the image data representing image 700 is divided
(indicated by arrows 720), three individual collections of data
representing images 725, 730, 735 are formed. Image 725 includes
cyan line 705 and is thus printable by an association of print
elements deployed to print cyan. Image 730 includes yellow line 715
and is thus printable by an association of print elements deployed
to print yellow. Image 735 includes magenta line 710 and is thus
printable by an association of print elements deployed to print
magenta. Thus, the image data representing images 725, 730, 735 are
the result of a division of data representing image 700 according
to the deployment of associations of print elements to print
different colors.
[0061] FIG. 8 illustrates another implementation of the division of
image data (namely, image data representing a portion of an image
800) according to a deployment of print element associations. In
particular, a division according to a deployment of print elements
with relative shifts in lateral position is illustrated. The shifts
in the lateral position of print elements can correspond to the
lateral shifts S between print elements 405, print elements 410,
and print elements 415 in the implementation of housing 110 shown
in FIG. 4.
[0062] Image portion 800 includes collections of pixel rows 805,
810, 815. Pixel rows 805, 810, 815 each include a longitudinal row
of pixels. Pixel rows 805 are laterally shifted relative to the
position of pixel rows 810 by a shift distance S. Pixel rows 805
are laterally shifted relative to the position of pixel rows 815 by
shift distance S. Pixel rows 810 are laterally shifted relative to
the position of pixel rows 815 by shift distance S. Shift distance
S (and hence the lateral resolution of the printed imaged) is
determined by the overall lateral spacing between print
elements.
[0063] When a workpiece is moved longitudinally across an array of
print elements, each pixel row 805, 810, 815 can be printed by an
individual print element. For example, when image portion 800 is
printed using the implementation of housing 110 shown in FIG. 4, a
single print element 405 can print a single pixel row 805, a single
print element 410 can print a single pixel row 810, and a single
print element 415 can print a single pixel row 815.
[0064] When the image data representing image portion 800 is
divided (indicated by arrows 820), three individual collections of
data representing image portions 825, 830, 835 are formed. Image
portion 825 includes pixel rows 805 and is thus printable by a
first array of print elements separated by a lateral distance L.
Image portion 830 includes pixel rows 810 and is thus printable by
a second array of print elements separated by a lateral distance L.
Image portion 835 includes pixel rows 815 and is thus printable by
a third array of print elements separated by a lateral distance L.
The print elements in these arrays are shifted in lateral position
relative to one another. Thus, the image data representing image
portions 825, 830, 835 are the result of a division of data
representing image portion 800 according to the deployment of
associations of print elements to print at different lateral
positions.
[0065] FIG. 9 illustrates another implementation of a division of
image data representing an image 900 according to a deployment of
print element associations. Image 900 includes a single line 905
that spans the entire lateral expanse of image 900.
[0066] When the image data representing image 900 is divided
(indicated by arrows 910), two individual collections of data
representing images 915, 920 are formed. Image 915 includes two
outer line portions 925 and is thus printable by an association of
print elements deployed toward the outside of a workpiece. For
example, outer line portions 925 may be printable by an association
that includes print modules 205, 305, by an association that
includes print modules 215, 310, or by an association that includes
print modules 225, 315 (FIG. 3).
[0067] Image 920 includes a central line portion 930 and is thus
printable by an association of print elements deployed toward the
center of a workpiece. For example, central line portion 930 may be
printable by an association that includes print module 210, by an
association that includes print module 220, or by an association
that includes print module 230 (FIG. 3). Thus, the image data
representing images 915, 920 are the result of a division of data
representing image 900 according to the deployment of associations
of print elements to print different lateral expanses.
[0068] Returning to FIG. 6, the system performing process 650
allocates the image data portions that result from a division to
respective image queues at 615. In other words, the allocation
results in each buffer of image data being allocated to a
respective queue. In general, each buffer of image data corresponds
to an association of print elements at a printing device.
Similarly, a set of buffers corresponds to a set of image data to
be printed by the print element associations. The buffers of image
data, which were generated at 610, are queued in queues, with each
queue corresponding to a print element association. For example, if
there are eight image queues, each image queue corresponding to a
print element association, then a set of buffers of image data that
correspond to the first print element association may be allocated
to the first image queue, a set of buffers of image data that
correspond to the second print element association may be allocated
to the second image queue, and so on. The memory locations where
the image queues and the buffers are located can be dedicated to
the storage of image data for printing by a specific print element
association. For example, the memory locations may be blocked off
from memory management by an operating system and the memory
locations may be accessible by a data pump using direct memory
access. The queues for the buffers of image data may be first in
first out queues (i.e., FIFO queues).
[0069] At 620, the system performing process 650 determines whether
the system should update the locations indicating where the print
image buffers (i.e., buffers of image data) are located. For
example, the system might update locations at one or more data
pumps. In that example, the data pumps can store a location
indicating where print buffers are located at each of the image
queues so the data pumps are able to access each of the memory
devices where the buffers are located and retrieve image data. If,
at 620, the system determines that the locations should be updated,
the locations are updated with references to the buffers at 625.
Otherwise, image data is received at 605 and the process continues.
Also, the process continues at 605 if updated locations are not
needed at 620. In some implementations, the process of 650 may
stop, for example, if there are no more images to receive (e.g., no
more images to print), or if the image queues are full.
[0070] A determination is made as to whether printing should start
or continue at 627. If not, the process continues at 627. If so, at
630, image data may be retrieved from buffers in the image queues.
For example, a data pump may retrieve buffers of image data. In
that example, the data pump is able to identify the proper buffers
because the locations of the buffers may be updated at the data
pump at 625. A sufficient amount of image data for one impression
of an association of print elements may be retrieved. Thus, image
data may be retrieved from each of the image queues. In alternative
implementations, portions of image data representing a portion of a
single impression may be retrieved. Similarly, portions of image
data representing several impressions may be retrieved. In those
implementations, a queue, such as a FIFO queue, may store image
data (e.g., sets of buffers of image data).
[0071] At 635, positional delays are added to selected portions of
image data. The delays are upfront delays that align image data
with the associations of print elements to which respective
portions of image data correspond. Thus, the extent of the upfront
delay can be determined based on the deployment of the print
element association to which image data corresponds. For example, a
minimal positional delay or no delay at all may be inserted into
image data that corresponds to a print element association near the
entry of workpieces across an effective print area, whereas a
larger positional delay may be inserted into image data that
corresponds to a print element association near the exit of
workpieces across an effective print area. Because the positional
delays correspond to the position of print element associations (or
rather, the separation distance between print element
associations), the positional delays may differ depending on a type
of print head assembly that contains the print element
associations. In any case, the positional delays may be a fixed
delay(s) for a particular print head assembly and the delays may be
measured in an amount corresponding to an amount of print
lines.
[0072] Inserting an upfront delay into image data can be performed
in a number of different ways. For example, an appropriate amount
of null "placeholder" data can be inserted before and after the
image data portions that result from a division of image data. As
another example, the upfront delay can be introduced into a data
communication path between a memory location and print elements.
For example, a data pump may be aligned such that the data pump can
insert different upfront delays for different portions of image
data at different memory locations. Image data with delays may be
sent to a printing device at 637. In alternative implementations,
image data with delays may be added to a queue (e.g., a first in
first out queue) prior to sending the data to a printing device.
The process at 655 may continue at the process of 627 after image
data is sent at 637. In some implementations, the process at 655
may stop after image data is sent at 637 for various reasons. For
example, if all image data packets have been sent by a data pump,
the data pump may determine at 627 that the system should no longer
be printing (i.e., determine not to start or continue printing). In
some implementations, empty data image packets may be sent,
effectively causing no ink to be deposited on a workpiece.
[0073] The system can identify the entry of a leading edge of a
workpiece to an effective print area of a print system at 640. The
entry of the leading edge can be identified using a workpiece
detector (such as workpiece detector 155 (FIG. 1)). The further
progress of the workpiece across the effective print area can be
followed by sensing the speed of the workpiece, e.g., by measuring
the speed of a workpiece conveyor (such as workpiece conveyor 105
(FIG. 1)) using a rolling encoder.
[0074] When the workpiece is appropriately positioned, the print
system performing process 660 can commence printing of the
workpiece at 645. The printing of the workpiece can include
relaying image data that has been divided according to the
deployment of the print element association. The image data can be
relayed from a memory location to the appropriate print element
association. The relaying can be driven by a central data
processing device, such as a central data processing device in
control electronics 160. The relaying can be done on a
firing-by-firing basis. In the processes shown in the flowcharts of
FIG. 6, a signal may be sent to the system performing the process
of 655 (e.g., a data pump) to start printing, causing a relaying of
image data to a printing device.
[0075] As the workpiece moves across the effective print area,
different print elements can be triggered by the same trigger
signal to fire at the same instant. Alternatively, different print
elements can be staggered to fire at different instants. Regardless
of when the actual firing of individual elements occurs, the
elements in the effective print area are printing on the initial
workpiece at the same time.
[0076] In a print system where the effective print area has a
longitudinal width that is greater than the separation distance to
the next workpiece, one or more workpieces may be positioned
beneath the effective print area at the same time. As such, more
than one workpiece may be available for serial printing. One
example of this situation is illustrated in FIG. 5, where the
separation distance SEP between workpieces is smaller than width W
of effective print area 235, and, both workpiece 130 and workpiece
135 are positioned beneath effective print area 235 and available
to be printed in series.
[0077] In such a print system, the system performing process 660
can also identify the entry of the leading edge of a next workpiece
at 640. The entry of the leading edge can be identified using a
workpiece detector (such as workpiece detector 155 (FIG. 1)). The
progress of both an initial workpiece and the next workpiece across
the effective print area can be followed by sensing the speed of
the workpieces, e.g., by measuring the speed of a workpiece
conveyor (such as workpiece conveyor 105 (FIG. 1)).
[0078] Printing on both workpieces can continue as the initial
workpiece and the next workpiece continue to progress across the
effective print area. When the effective print area has a
longitudinal width that is greater than the sum of the width of a
next workpiece and twice the separation distance between
workpieces, an initial workpiece, the next workpiece, and yet
another workpiece may be positioned beneath the effective print
area at the same time. As such, three workpieces may be available
for printing in series. In this case, the system performing process
660 can identify the leading edge of another "next workpiece" at
640 before stopping printing on an initial workpiece. Otherwise,
the system can stop printing on the initial workpiece before
identifying the leading edge of another "next workpiece" at
640.
[0079] In some implementations, image data may be divided based on
associations of print modules. In some implementations, print
element associations may be split across a single print module. For
example, if each print module in a print system includes two rows
of print elements, image data may be divided by the rows of print
elements. Thus, a space between workpieces may be reduced to
zero.
[0080] In some implementations, the system(s) performing processes
shown in FIG. 6 can calculate the positional delay required between
print element associations (rather than having a fixed delay). The
memory locations can be dedicated to specific print element
associations. For example, individual buffers can store image data
for printing by individual print element associations. The system
performing processes shown in FIG. 6 can control a data pump or
other hardware device to extract data from memory locations at the
appropriate point in time to properly place image data on a
workpiece on which the image data is to be printed.
[0081] Although the processes of FIG. 6 are shown as being composed
of a certain number and type of processes, additional and/or
different processes can be used instead. For example, in the
process of 655, rather than continually determining whether to
continue or start printing at 627, the system performing the
process of 655 may start printing when started and stop printing
when the system decides to stop printing, only to start printing
when called on again. Similarly, the processes need not be
performed in the order depicted, or by the components that were
discussed to have performed certain processes.
[0082] FIG. 10 shows a schematic representation of an
implementation of a print system 1000. System 1000 includes
workpiece conveyor 1005, a printer housing 1010, a workpiece
detector 1055, and control electronics 1060.
[0083] Workpiece conveyor 1005 conveys workpieces 1020, 1025, 1030,
1035 in a direction D across an effective print area 1040 of
printer housing 1010. Workpiece conveyor 1005 includes an encoder
1007 that senses the speed of workpieces 1020, 1025, 1030, 1035.
Encoder 1007 also generates a signal that encodes the sensed speed
and relays the signal to control electronics 1060. Workpiece
detector 1055 is an optical sensor that detects the position of one
or more workpieces 1020, 1025, 1030, 1035, and generates trigger
signals (such as trigger signals 1056 and 1057) based upon that
detection.
[0084] Printer housing 1010 includes a collection of print modules
arranged laterally along a series of columns 1011, 1012, 1013,
1014, 1015, 1016, 1017, 1018. This arrangement of print modules
spans an effective print area 1040. Each group of print modules
deployed along each of columns 1011, 1012, 1013, 1014, 1015, 1016,
1017, 1018 constitutes a print element association. As examples,
print modules 1091, 1093, 1095 constitute a print element
association along column 1018, and print modules 1092, 1094
constitute a print element association along column 1017.
[0085] Control electronics 1060 controls the performance of print
operations by system 1000. Control electronics 1060 includes a
collection of print image buffers 1065. Control electronics 1060
can access the print image buffers in collection 1065 to store and
retrieve image data. In the configuration shown in FIG. 10, there
are eight print image buffers in collection 1065, and each print
image buffer is dedicated to a print element association arranged
along one of columns 1011, 1012, 1013, 1014, 1015, 1016, 1017,
1018. For example, print image buffers 1066, 1067, 1068, 1069 may
correspond to the print element associations arranged along columns
1015, 1016, 1017, 1018, respectively. In particular, each print
element association prints image data only from the associated
print image buffer.
[0086] Control electronics 1060 also includes a data pump 1070. A
"data pump" refers to a functional component, e.g., implemented in
hardware, software, programmable logic or a combination thereof,
that processes data and transmits it to one or more printing
devices for printing. In one implementation, the data pump can
refer to a direct memory access (DMA) device. The data pump 1070 is
positioned along the data communication path between the print
element associations and their dedicated print image buffers in
collection 1065. The data pump 1070 can receive and store image
data from each print image buffer in collection 1065. The data pump
1070 is programmable by control electronics 1060 to delay the
communication of information from the print image buffers in
collection 1065 to the print element associations.
[0087] In operation, control electronics 1060 can divide image data
according to the deployment of print element associations in
effective print area 1040. Control electronics 1060 can also
allocate the divided image data to an appropriate print image
buffer in collection 1065.
[0088] As workpiece 1035 is conveyed by workpiece conveyor 1005 to
enter effective print area 1040, workpiece detector 1055 detects
the leading edge of workpiece 1035 and generates trigger signal
1056. Based on receipt of trigger signal 1056, control electronics
1060 can program data pumps 1070 with positional delays 1071, 1072,
1073, 1074, 1075, 1076, 1077, 1078. Delay 1071 delays the
communication of image data from a first print image buffer in
collection 1065 to the print element association arranged along
column 1011. Delay 1072 delays the communication of image data from
a second print image buffer in collection 1065 to the print element
association arranged along column 1012. Delays 1073, 1074, 1075,
1076, 1077, 1078 delay the communication of image data from
respective print image buffers in collection 1065 to the print
element associations arranged along columns 1013, 1014, 1015, 1016,
1017, 1018.
[0089] As workpiece 1035 is conveyed by workpiece conveyor 1005
across effective print area 1040, the print element associations
arranged along columns 1011, 1012, 1013, 1014, 1015, 1016, 1017,
1018 successively print. In particular, as workpiece 1035 is
advanced one scan line across effective print area 1040, the data
pump 1070 dumps image data to the appropriate receiver electronics
at the print element associations arranged along columns 1011,
1012, 1013, 1014, 1015, 1016, 1017, 1018 (i.e., the data pump 1070
causes the image data to be transmitted to the printing device).
The dumped image data identifies print elements that are to fire
for the instantaneous position of workpiece 1035 in effective print
area 1040 (the identification of print elements may be implicit;
e.g., an ordering of image data in a data packet in a format
corresponding to an order of print elements and/or print element
associations at a printing device). Data for successive firings can
be loaded from print image buffers in collection 1065 to the data
pump 1070 during firings.
[0090] While workpiece 1035 is still being printed, workpiece 1030
can be conveyed by workpiece conveyor 1005 to enter effective print
area 1040. Workpiece detector 1055 detects the leading edge of
workpiece 1030 and generates trigger signal 1057. Based on receipt
of trigger signal 1057, control electronics 1060 may cause the data
pump 1070 to insert delays 1079, 1080, 1081, 1082, 1083, 1084,
1085, 1086. Delay 1079 delays the communication of image data from
a first print image buffer in collection 1065 to the print element
association arranged along column 1011. Delay 1080 delays the
communication of image data from a second print image buffer in
collection 1065 to the print element association arranged along
column 1012. Delays 1081, 1082, 1083, 1084, 1085, 1086 delay the
communication of image data from respective print image buffers in
collection 1065 to the print element associations arranged along
columns 1013, 1014, 1015, 1016, 1017, 1018. Alternatively, delays
may already be inserted into image data and the trigger signal may
cause the sending of image data by the data pump 1070.
[0091] As workpiece 1030 is conveyed by workpiece conveyor 1005
into effective print area 1040, the print element associations
arranged along columns 1011, 1012, 1013, 1014, 1015, 1016, 1017,
1018 print upon workpieces 1030, 1025. In particular, as workpieces
1035, 1030 are advanced one scan line, the data pump 1070 dumps
image data to the appropriate receiver electronics for the print
element and workpieces 1035, 1030 are printed at the same time.
[0092] Image data for each workpiece may differ. For example, if
two workpieces were to have two different images printed upon them,
different image data representing different images would be used to
print on each workpiece. In that example, two sets of image data
may be gathered at a data pump. A first set of image data may
correspond to a first image (e.g., a print line of an image of a
frog) and a second set of image data may correspond to a second
image (e.g., three print lines of an image of an apple). Gathering
the image data may include taking image data from image queues
and/or generating a data packet that comprises the first and second
sets of image data. The gathered image data may be provided to the
print element associations by sending a data packet to the printing
device that includes the print element associations (e.g., a data
packet include the print line of the image of the frog and the
three print lines of the image of the apple). When the two
workpieces are printed at substantially the same time, a first
portion of the print buffers (e.g., print buffer 1066) may store
the first set of image data corresponding to the first image (e.g.,
the print line of the image of the frog) and a second portion of
the print buffers (e.g., print buffers 1067, 1068, 1069) may store
the second set of image data corresponding to the second image
(e.g., the three print lines of the image of the apple). A first
set of print elements corresponding to the first set of print
buffers (e.g., the print elements in the association of print
elements along column 1015) can print the first image (e.g., the
print line of the image of the frog) and a second set of print
elements corresponding to the second set of buffers (e.g., the
print elements in the associations of print elements along columns
1016, 1017, 1018) can print the second image (e.g., the three print
lines of the image of the apple). As such, different print elements
print two images at substantially a same time (e.g., print elements
along the columns 1015, 1016, 1017, 1018 may fire at substantially
a same time).
[0093] Or, the image data for each workspace may represent the same
image. For example, the same image may be continually printed on
multiple workpieces. In that example, if two workpieces are printed
at substantially a same time, different portions of the same image
may reside in different sets of print buffers such that different
print elements print different portions of the same image.
[0094] Although not shown, in addition to using different sets of
print elements to print different portions of image data on
different workpieces, a same workpiece may be printed on with
different sets of image data.
[0095] The process of printing images on a workpiece is
synchronized with the entry of a new workpiece in the print area.
When a leading edge of a new workpiece is detected, and the control
electronics is notified of the new workpiece, data pump 1070 dumps
image data to the print head assembly at the precise time the print
element association is to deposit ink on the workpiece to generate
a high-quality image on the workpiece. Poor image quality on the
workpiece is avoided due to no undue pauses or gaps when receiving
the image data for the print head assembly.
[0096] In one implementation, the printing system 1000 can be a
scalable architecture that can print images at high image data
rates. The control electronics 1060 can be implemented on a
personal computer (PC) card that is connected into a Peripheral
Component Interconnect slot (e.g., a PCI-type interconnection
system) in the personal computer. The high-speed characteristics of
PC memory (e.g., RAM) can be used to reduce an amount of memory for
the print head assembly.
[0097] The data pump 1070 can send image data to the print head
assembly at high data rates to enable just-in-time printing of
images on the workpieces as the workpieces move along the conveyor.
Because the amount of memory can be reduced on the print head
assembly, the print head assembly may be implemented at a lower
cost. The type of memory used on the print head assembly may also
be implemented at a lower cost. In one implementation, the type of
memory implemented on the print head assembly is a floating-point
gate array (FPGA) integrated circuit (IC). The costs and
engineering design efforts to implement the print head assembly may
also be reduced due to little or no buffering of high speed image
data at the print head assembly.
[0098] In one implementation, the data rate of image data sent to
the print head assembly can be scaled. For example, a personal
computer may have multiple PC cards of control electronics 1060 for
the print head assembly by having each PC card of control elections
1060 connected into a PCI slot of the computer. For instance,
two-sided newspaper printing may require 2 Gb/s of image data to be
sent to the print head assembly to enable just-in-time printing of
an image on a workpiece. If the data pump 1070 for each of the
control electronics 1060 is able to send around 1 Gb/s of image
data to the print head assembly then 2 data pumps can be connected
in parallel in corresponding PCI slots to deliver the 2 Gb/s for
just-in-time printing of the two-sided newspaper image. In this
example, each PC card of control electronics 1060 may have an
optical connection to the print head assembly. In one
implementation, the top and bottom sides of the workpiece can
receive 1 color printed on each side.
[0099] In another implementation, the system 1000 may be scalable
in having multiple computers to operate in parallel to deliver
higher image data rates to the print head assembly. In this
implementation, each computer may have at least one PC card of
control electronics 1060 connected to the PCI slot of the computer.
In one example, four parallel computers, each containing two PCB
cards of control electronics 1060, can offer 8 Gbps aggregate
bandwidth, which can be enough to print four colors on each of the
two sides of a newspaper in real time. The system 1000 may offer
scalable transmission of high bandwidth, synchronous, just-in-time
image data to the print head assembly in a number of
configurations, including adding multiple FGPAs to the print
assembly. Because the system 1000 can handle high bandwidths of
image data, the system 1000 can provide just-in-time printing of
high resolution images at high conveyor speeds, large-size images
(e.g., wide and/or long images) at high conveyor speeds, and/or
multi-color and grayscale images at high conveyor speeds.
[0100] FIG. 11 shows is a flowchart of a process for synchronized
printing on a workpiece using the system 1000 of FIG. 10. The
system 1000 receives the image data at 605. The image data may be
received into a personal computer having a PC card with a data pump
1070 in the control electronics 1060 of the PC card.
[0101] The system 1000 can translate and divide the received image
data according to the deployment of the associated print elements
on the print assembly at 610. The image data can be translated
before it is divided or can be divided before being translated. The
system 1000 can allocate the image data portions that result from a
division to different memory locations, such as individual print
buffers at 615. A workpiece may be conveyed into the print area at
1105. A workpiece is not limited to be conveyed into the print area
only at 1105, but may occur at other times, such as before 615 or
610.
[0102] The process of printing the received image on the workpiece
is synchronized with the system 1000 detecting that the workpiece
has entered the print area at 1170. The detection for this process
utilizes the encoder 1007 to sense the speed of the workpiece
across the conveyor at 1110. The encoder 1007 encodes a signal with
information for the sensed speed and relays the encoded signal to
control electronics 1060. The optical sensor 1055 detects the
position of the workpiece and generates a signal to send to the
data pump 1070 in the control electronics 1060 to facilitate
synchronous printing on the workpiece.
[0103] The data pump 1070 fetches image data according to the
deployment of printing element associations at 1120. The image data
fetched by the data pump 1070 may be from the print image buffers
1065 of the PC. The data pump 1070 is not limited to fetching image
data from the computer's different memory locations through the PCI
slot at 1120, but rather may fetch image data at a time between
1125 and 1130.
[0104] At 1125, the data pump 1070 receives delay information for
the associated columns 1011, 1012, 1013, 1014, 1015, 1016, 1017,
and 1018. The delay information that is delivered to the data pump
through the PCI slot may be delay values that are pre-programmed or
fixed and are generated by an application software. The delay
values may represent the physical distance between the associated
columns 1011, 1012, 1013, 1014, 1015, 1016, 1017, and 1018 of print
elements on the print head assembly. For example, if a print head
assembly has four columns of associated columns with an inch of
distance between each column, the first four delay values can
represent an inch worth of scan line information. So, the physical
design of the associated print element columns can determine the
delay values. The data pump 1070 is not limited to receive delay
information at 1125, but may receive delay information at a time
prior to 1125.
[0105] The data pump arranges each column of data in time according
to each column's delay value. The delay values are used by multiple
state machines in the data pump to correctly arrange the image data
into logical scan lines. The data pump serializes the data from
each column into a data packet at 1130 and sends the serialized
data to the print head assembly across a communication channel at
1135. In one implementation, the communication channel uses an
optical fiber connection. The optical fiber may transmit image data
at a rate of 1.25 Gb/s. In another implementation, the
communication channel may utilize a copper cable connection.
[0106] Transmission of each scan line data packet at 1137 can serve
as a trigger that causes the image data in the packet to be printed
substantially immediately as the data arrives at the print head
assembly. The electronics on the print head assembly receives the
data packet sent over the communication channel and deserializes
the data packet at 1140. The deserialized image data is allocated
to the associated print elements on the print head assembly at
1145, and the image is printed on the workpiece at 1150.
[0107] FIG. 12 schematically illustrates a data pump 1200. The data
pump 1200 represents a hardware architecture for assembling the
scan line data packets to send to the print head assembly. The data
pump 1200 includes circuitry and components on a PC board that
plugs into the PCI or PCI-X (Peripheral Component Interconnect
Extended) slot of the host computer. The data pump 1200 includes a
parallel array of separate state machines 1222, 1226, 1230, 1234,
1238, 1242, 1250, 1254, one for each logical image queue. Each
image queue can correspond to a separate physical column of
associated print elements.
[0108] Each state machine can have a corresponding delay input that
is configured to correctly arrange the image data into logical scan
lines. Each state machine 1222, 1226, 1230, 1234, 1238, 1242, 1250,
1254 fetches image data from the host computer's PCI bus. The
outputs of the read state machines are fed into a serializer 1266
that feeds the communication interface 1276 in the correct data
order such that the appropriate image data is sent to the print
head assembly at the correct timing. The serializer 1266 creates a
packet of image data to travel to the print head assembly.
Transmission of each scan line data packet can serve as a trigger
that causes the image data in the packet to be printed
substantially immediately as the data arrives at the print head
assembly.
[0109] In the implementation shown in FIG. 12, an eight-column
architecture for the data pump is used in which each of the
physical columns of associated print elements function logically
independently from the others, so that printing on the workpiece
can be substantially continuous and without printing gaps. The
schematic shows how the eight different delay values 1220, 1224,
1228, 1232, 1236, 1240, 1248, and 1252 serve as input delay values
for the eight different state machines 1222, 1226, 1230, 1234,
1238, 1242, 1250, 1254 that read image data from the eight
different buffers (1065 in FIG. 10) in the PC's memory space. The
state machines are responsible for gathering image data from the PC
out of a buffer 1065 that is specific to each state machine. The
state machines gather image data that is temporally spaced in time,
so that corresponding print columns 1011, 1012, 1013, 1014, 1015,
1016, 1017, 1018 each can print an image (or part of an image) on
the workpiece at the correct time.
[0110] The delay values 1220, 1224, 1228, 1232, 1236, 1240, 1248,
and 1252 for the input of each corresponding state machine 1222,
1226, 1230, 1234, 1238, 1242, 1250, 1254 are preprogrammed by
application software. In this implementation, the delay values are
fixed values that represent the physical distance between the
columns of associated print elements on the print head
assembly.
[0111] In one implementation, the state machine 1222 for column 1
fetches and processes the image data from the PCI bus after being
delayed by delay value D1 1220. As the output from state machine
1222 for column 1 is sent into the serializer 1266, delay D1 is
completed and state machine 1226 for column 2 fetches and processes
the image data from the PCI bus after being delayed by delay value
D2 1224. The process continues until all of the state machines send
image data to the serializer 1266. When the scan line data packet
from the data pump is sent to the print head assembly, the process
begins again, and the state machine 1222 for column 1 fetches and
processes new image data from the PCI bus after being delayed by
delay value D1 1220. The state machines' fetching of data from the
computer's PCI bus may be done ahead of time into a FIFO memory or
an equivalent memory to minimize the effects of computer bus
latency on the printing.
[0112] The data pump 1200 can facilitate just-in-time, synchronous
transmission of image data from the host PC without the need for
buffering or synchronizing logic at the print head assembly.
Additional data pumps can be added to the host computer to scale to
higher resolutions and/or to increase bandwidth requirements.
Because each of the physical columns of associated print elements
function logically independently from each other, bit manipulation
does not have to be performed in the hardware of the print head
assembly to achieve real-time printing of images with varying
amounts of non-printed area between each image. The system can
facilitate software bit manipulation, so bit manipulation can be
performed at high data rates, and engineering and material costs
can be reduced.
[0113] FIG. 13 schematically illustrates a packet of image data
generated by the data pump. The scan line data packet 1305 includes
information to be used by the print head assembly. The packet 1305
has a start of frame (SOF) 1310 and setup data 1313 for the print
head assembly. The setup data 1313 may specify an operating mode on
the print head assembly (e.g., forward direction or reversion
direction). The image data 1314-1328 for each column include a
number of bytes that depends on the number of elements in the print
column. For example, the image data for column 1 can have a number
of bytes that depends on the number of print elements in column 1.
PH 1 represents print element 1 for column 1, PH 2 represents print
element 2 for column 1, and PH 5 represents print element 5 for
column 1. CRC 1330 is the cyclic redundancy check, a 32-bit number
that is generated from the data being sent so that the receiving
electronics can verify that the entire data packet was sent
correctly. The last word is the End of Frame 1332 to complete the
data packet.
[0114] The packet 1305 is sent from the serializer 1266 to the
communication interface 1276 on the data pump 1200 that converts
the electronic signals to light signals to send to the optical
fiber connection. On the other end of the optical fiber connection,
the image data can be received by receiving hardware on the print
head assembly. The receiving hardware can include an optical
transceiver and logic to receive the light signal and convert the
light signal into electronic signals. The receiving hardware also
may include a deserializer to deserialize the data, and a decoder
to decode the fiber transmission protocol. The image data can then
be sent to the corresponding print element electronics to turn on
or turn off the individual ink nozzles.
[0115] FIG. 14 shows exemplary specifications for the data pump.
The data pump can have more than one type of hardware interface
with the communication channel to the print assembly. One type of
hardware interface uses PCI-X and optical fiber 1405 (for
industrial or high-bandwidth applications) to send print data and
control information to the print head assembly at data rates 1430
over 1 Gb/s. Another type of hardware interface is a PCI
copper-cable interface 1410 having an image bandwidth capability
1430 of around 96 Mbit/s. The bus type 1415 for the optical fiber
data pump is PCI-X and the bus type for the copper cable data pump
is PCI.
[0116] The data pump can carry synchronous image data to the print
head assembly, as well as lower-speed control data and tending or
monitoring data. The control communication channels may be
transparent to the high speed image data, and may be
protocol-independent. The data pump's external interface 1420 for
the optical fiber and the copper cable can differ, with the optical
fiber having a duplex optical fiber and the copper cable having a
50-conductor Flat Flexible Cable (FFC). The optical fiber and the
copper cable versions can have the same hardware control inputs
1425.
[0117] Both the optical fiber version and the copper-cable version
can operate the printing system in various printing modes 1445:
triggered, free-running, forward scanning, and reverse scanning.
Triggered mode can be used in printing images onto discrete,
individual workpieces using a hardware trigger signal to initiate
each image print. Free-running mode can provide printing of a
continuous run of images, with programmable white spaces between
each printed image. Forward and reverse scanning modes can provide
printing in the forward or reverse directions. In one
implementation, a single image may be printed for the forward or
reverse scanning mode. In another implementation, multiple images
may be printed while the system is in the forward or reverse
scanning mode. The printing modes may also be mixed, so a reverse
trigger mode or a reverse free-running mode may be utilized.
[0118] In the example configurations specified in FIG. 14, the data
pump can service a print head assembly with one to eight logically
independent columns of printing elements, with up to 5120 nozzles
per column. This configuration can allow the use of large print
head assemblies of 720 dpi (dots per inch) to be constructed with
approximately 32 to 64 jet modules with 304 print elements each
that can be fed by a single optical fiber. The size of the print
head assembly may be determined as a function of the nozzle count
multiplied by the maximum firing frequency of the nozzles, as well
as the 1.25 Gb/s data rate. In one aspect, the frequency of the
printing jets may operate in a range of around 40 kHz. In one
implementation, several data pumps may be plugged into one PC
motherboard and operated in parallel to provide higher bandwidths
for larger print head assemblies. In another implementation,
several PCs with data pumps may be operated in parallel to utilize
large print head assemblies at low cost.
[0119] Each column of print elements can be independently provided
with image data over the optical fiber or copper cable to allow
continuous image printing, with little or no white space between
images, and without a hardware bitmap-to-jetmap converter. Instead,
the bitmap-to-jetmap conversion can be performed in real time by
software running on the PC.
[0120] A number of implementations have been described.
Nevertheless, it will be understood that various modifications may
be made. For example, the sequences in FIG. 11 may be described in
an order other than shown (e.g., the optical sensor may detect the
position of the workpiece (block 1115) before the encoder senses
the speed of the workpiece (block 1110)). The number of state
machines and delay components may vary from the amount shown in
FIG. 12. In another example, the exemplary data rates of the PC bus
(1415) may vary from those shown in FIG. 14.
[0121] Accordingly, other implementations are within the scope of
the following claims.
* * * * *