GB2433341A - Print data processing - Google Patents

Print data processing Download PDF

Info

Publication number
GB2433341A
GB2433341A GB0525767A GB0525767A GB2433341A GB 2433341 A GB2433341 A GB 2433341A GB 0525767 A GB0525767 A GB 0525767A GB 0525767 A GB0525767 A GB 0525767A GB 2433341 A GB2433341 A GB 2433341A
Authority
GB
United Kingdom
Prior art keywords
data
storage means
print
print line
printer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB0525767A
Other versions
GB0525767D0 (en
Inventor
Jimmy Dullaert
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dymo NV
Original Assignee
Dymo NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dymo NV filed Critical Dymo NV
Priority to GB0525767A priority Critical patent/GB2433341A/en
Publication of GB0525767D0 publication Critical patent/GB0525767D0/en
Publication of GB2433341A publication Critical patent/GB2433341A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J3/00Typewriters or selective printing or marking mechanisms characterised by the purpose for which they are constructed
    • B41J3/407Typewriters or selective printing or marking mechanisms characterised by the purpose for which they are constructed for marking on special material
    • B41J3/4075Tape printers; Label printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1297Printer code translation, conversion, emulation, compression; Configuration of printer parameters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/021Adaptations for printing on specific media
    • G06K15/022Adaptations for printing on specific media for printing on continuous media, e.g. tapes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/10Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers by matrix printers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Record Information Processing For Printing (AREA)

Abstract

In a printer or print controller, print data is supplied to and stored in a first memory (207) via e.g. a USB connection (203). The print data is then processed to identify print line data, and the addresses of, or pointers to, the print line data in the first memory are stored in a second memory (209). Thus copying of the print line data is avoided and by supplying a direct memory access channel (212) with the print line data addresses, the print line data is output more quickly on a line by line basis to a print head (204). The first memory may be a first in first out (FIFO) memory. The printer may be a label or tape printer.

Description

<p>DATA PROCESSING</p>
<p>The present invention relates to a method for processing data in a printing apparatus, in particular in a label printer or tape printing device for printing an image on an image receiving medium.</p>
<p>Known tape printing apparatus of the general type with which the present invention is concerned are disclosed in EP-A-322918 and EP-A-322919 (Brother Kogyo Kabushiki Kaisha) and EP-A-267890 (Varitronic). The printers each include a printing device having a cassette receiving bay for receiving a cassette or tape holding case. In EP-A-267890, the tape holding case houses an ink ribbon and a substrate tape, the latter comprising an upper image receiving layer secured to a backing layer by an adhesive. In EP-A-322918 and EP-A-322919, the tape holding case houses an ink ribbon, a transparent image receiving tape and a double sided adhesive tape which is secured at one of its adhesive coated sides to the image tape after printing and which has a backing layer peelable from its other adhesive coated side. With both these apparatus, the image transfer medium (ink ribbon) and the image receiving tape (substrate) are in the same cassette.</p>
<p>In other known label printers with which the present invention is concerned, the image receiving medium is provided in a roll of image receiving medium. The roll of image receiving medium is rotatably mounted in the printer and a feed mechanism advances the image receiving medium past a printing mechanism which prints a user defined image onto the image receiving medium. The roll of image receiving medium is often a number of die cut labels which are secured to a backing material by removable adhesive, and formed into a roll.</p>
<p>Label printers can be stand-alone devices or can be controlled by a personal computer (PC) or the like. In stand-alone devices, data may be inputted by an integral input means such as a keyboard. Some label printers are able to operate in two modes, that is either as a standalone device or in conjunction with a PC. EP-A-1362705 discloses one such label printer which can be operated either in a stand alone mode or in an external control mode.</p>
<p>When a printer is controlled by an external device such as a PC, print data can typically be transmitted to the printer much more quickly than the data can be printed. Once data is received at the printer, it is stored and subsequently processed before being sent to a print head. The processing performed at the printer includes parsing the data to separate print line data from other commands, so that only the print line data is sent to the print head. This typically involves copying the print line data from one data buffer to another. Data processing within the printer, in particular steps involving copying data from one location to another, significantly contribute to the time required to transfer data to the print head and thus reduce the overall printing speed.</p>
<p>In order to increase printing speed, it is therefore desirable to reduce the time required for the processing of print data within the printer. Embodiments of the present invention aim to address this problem.</p>
<p>Accordingly, the present invention provides a method of processing data in a printer, comprising storing data in a first storage means; processing the data to identify print line data comprised in the data; storing in a second storage means addresses of the print line data in the first storage means; accessing the print line data from the first storage means based on said addresses for supply to a print head on a line by line basis.</p>
<p>In a further aspect, the present invention provides a print data controller comprising: a first storage means for storing data; a control means for processing the data in the first storage means to identify print line data, and a second storage means for storing addresses of identified print line data comprised in the data; wherein the control means is operable to access the print line data from the first storage means based on said addresses and to output the print line data on a line by line basis for supply to a print head.</p>
<p>In a further aspect, the present invention provides a printer comprising a controller as defined above, and a printhead.</p>
<p>In a further aspect, the present invention provides a computer program product comprising program code means which when executed by a processor in a printer, causes the printer to perform a method as defined above.</p>
<p>Preferably the first and second storage means comprise first and second data buffers respectively. In more preferred embodiments the first storage means comprises a First In First Out (FIFO) buffer, modified in a way that allows data to be accessed in a sequence but not necessarily all items, i.e. not each next location will be read from. The second storage means preferably comprises a print line buffer. The first and second storage means may be located in distinct memory components within the printer, or alternatively may each comprise a part of a single memory component. For instance, the first and second storage means may each comprise an allocated section of memory within a unitary memory element in the printer.</p>
<p>Data is preferably supplied to the first storage means via a high speed interface, for example (but not limited to) a universal serial bus (USB), firewall or ethernet.</p>
<p>More preferably, the high speed interface is USB. Thus the printer may comprise a USB port for receiving print data, which is then read and stored in the first storage means. Data may be transmitted to the printer from any USB-compatible external device, such as a personal computer.</p>
<p>The method preferably comprises a parsing step in which data stored in the first storage means is processed to identify print line data. The addresses of print line data are then stored in the second storage means.</p>
<p>Thus in preferred embodiments, print line data stored in the first storage means is supplied to the print head using the addresses stored in the second storage means. Data is preferably supplied to the print head using a direct memory access routine.</p>
<p>Data is preferably stored in the first storage means in a plurality of data storage locations. The first storage means preferably comprises one or more pointer storage locations for storing pointers to data storage locations in the first storage means.</p>
<p>In preferred embodiments, the parsing step further comprises identifying a quantity of print line data stored at each data storage location in the first storage means. For data storage locations which contain print line data, an indicator of the quantity of print line data at each data storage location (for example, the number of bytes of print line data at that location) is then stored in the second storage means. This indicator is referred to hereinafter as a data length indicator. Each data length indicator may be stored in the second storage means at a location such that it is linked to the stored address to which it corresponds (i.e. the address stored in the second storage means which defines the data storage location in the first storage means which comprises the quantity of print line data indicated by the data length indicator). For example, each data length indicator may be stored in the second storage means adjacent to its corresponding stored address.</p>
<p>Data length indicators are used together with the addresses stored in the second storage means in the supply of data from the first storage means to the print head. Embodiments employing data length indicators are applicable where the print line width is variable. For embodiments where the print line width is fixed, data length indicators are not necessary as the amount of data stored at each data storage location always corresponds to the width of the print line.</p>
<p>The method of the present invention is particularly suited to processing data in tape printing devices such as label printers. In particular, the present invention is concerned with processing data in label printers which can be controlled by an external device. Suitable printers include those in which print data must be supplied by an external device as the sole means of control, as well as printers which have an external control mode but which can alternatively operate as stand-alone devices. Particularly preferred label printers in which the present invention can be employed are disclosed in EP-A-1 362705.</p>
<p>According to the present invention, the time needed to parse data in the printer can be reduced by copying addresses of data, rather than the data itself, into the second storage means. The data can then be transferred to the print head from the first storage means using the addresses in the second storage means. This reduces the amount of data which needs to be copied during processing and increases the speed of printing.</p>
<p>For a better understanding of the present invention and how it may be implemented, reference will now be made by way of example only to the accompanying drawings in which: Figure 1 shows a label printer connected to a PC; Figure 2 shows a plan view of a label printer; Figure 3 shows general features of control circuitry for controlling a label printer; Figure 4 shows control circuitry in a known label printer; Figure 5 shows alternative control circuitry for a label printer; Figure 6 shows control circuitry in a label printer according to the present invention; Figure 7 shows further features of control circuitry in a label printer according to the present invention.</p>
<p>Figure 8 shows a spool of a label printer for supporting an image receiving medium.</p>
<p>Figure 9 shows a block diagram of a label printing system for printing information on to a supply of image receiving medium in accordance with an embodiment of the present invention.</p>
<p>Figure 1 shows schematically a label printer I connected to a PC 7. The label printer 1 is able to operate as a stand alone label printer or in conjunction with a PC or other computer. As is well known, the PC 7 has associated with it a display 3 and keyboard 5. The connection between the label printer and the PC can take any suitable format but in preferred embodiments of the present invention is a universal serial bus (USB) Ia.</p>
<p>In an external control mode, the label printer I is operated via the connection between the label printer and the PC, controlled by using the keyboard 5. Thus print line data such as characters and symbols to form a label, or commands such as a print instruction are input via the keyboard 5 of the PC. Other input devices, such as a mouse or microphone can alternatively be used to control the PC. The external control mode is useful, for example, if it is desired to operate the label printer at some distance from the label printer itself. The label printer could be on a factory floor whilst being operated from an office.</p>
<p>Figure 2 shows in plan view a label printing device I which has a cassette 6 arranged therein. Typically this label printing device 1 is a hand-held or small desktop device. The cassette 6 is located in a cassette bay 16 and contains a supply spool 14 of an image receiving medium 10. The cassette bay 16 also accommodates a thermal print head 4 and a platen 8 which cooperate to define a print zone 2. The print head 4 is able to pivot about a pivot point 24 so that it can be brought into contact with the platen 8 for printing and moved away from the platen 8 to enable the cassette 6 to be removed and replaced. In the operative position, the platen 8 is rotated to cause the image receiving medium 10 to be driven past the print head 4 and the print head is controlled to print an image on the image receiving medium 10 by directly heating the image receiving medium 10. The print head 4 comprises a thermal print head having an array of printing elements connected in a line, each of which can be thermally activated in accordance with the desired image to be printed. The image receiving medium is guided by a guide mechanism (which is not shown) through the cassette 6 to an outlet 26 of the label printing device 1. The image receiving medium 10 can be continuous tape or die cut labels on a continuous backing layer.</p>
<p>The platen 8 is driven by a DC motor so that it rotates to drive the image receiving medium 10 through the print zone 2 of the label printing device I during printing. In this way, an image is printed on the image receiving medium and fed out from the print zone 2 to the outlet 26.</p>
<p>The image is printed by the print head on the image receiving medium on a column by column basis (alternatively referred to hereinafter as a "line by line" basis) with the columns (or lines) being adjacent one another in the direction of movement of the image receiving medium. Pixels are selectively activated in each column to construct an image in a manner well known in the art.</p>
<p>The DC motor is provided with a shaft encoder for monitoring the speed of rotation of the motor. Sequential printing of the columns of pixels by the print head is controlled in dependence on the monitored speed of rotation of the motor.</p>
<p>In another embodiment of the present invention, the supply of image receiving medium is not housed in a cassette case, but supported on a spool of a label printer. An example of such a spool is illustrated in figure 8. The supply of image receiving medium is supported by a first part 41 with the second part 42 slid over the shaft of the first part. The position of the disc of the second part 42 on the shaft of the first part 41 will depend on the width of the label material. In this way, a common spool can be used with a range of different sizes of label supply and/or tolerances in the size of the label material can be accommodated.</p>
<p>Figure 9 is a block diagram of a label printing system for printing information on to a supply of image receiving medium in accordance with an embodiment of the present invention. The label printing system 5 includes a label printer 50 and a computer system 60. The label printer 50 accepts a spool with supply of image receiving medium 51 and prints information onto the supply of image receiving medium. The supply of image receiving medium 51 on the spool may comprise discrete or die cut labels, carried on a backing layer of a continuous length of material, or continuous tape onto which an image can be printed.</p>
<p>The label printer 50 includes a top of form (TOF) sensor 52, a label size indicator (LSI) sensor 53, a platen 54, a motor 61, a print head 55, an exit point 56 and a processor 58. The processor 58 includes a memory module 59 for storing information including data that printer 50 collects. The TOF sensor 52 is arranged to detect TOF marks (not shown) on the label material. The TOF sensor 52 also detects the presence or absence of the label material. The LSI sensor 53 is able to detect LSI marks (not shown) on the label material and the presence or absence of the label material.</p>
<p>The motor 61 drives the platen 54 such that the platen turns in a clockwise or counter-clockwise direction. Rotation of the platen 54 causes the label material to advance in a forward direction if the platen 54 rotates in a counter-clockwise direction or to advance in a reverse direction if the platen rotates in a clockwise direction.</p>
<p>Print head 55 prints information onto the label material. The print head is arranged such that the information is printed at a pinch point 57 of the platen and the print head.</p>
<p>In one embodiment, the memory module 59 includes volatile and non-volatile memory. In another embodiment, the volatile memory is random access memory. In yet another embodiment, the non-volatile memory may include flash memory.</p>
<p>The computer system 60 sends print requests to the label printer 50. The label printer 50 sends information to the computer system 60 describing the types of labels contained on the label supply 51, whether or not the label printer 50 is ready to print and the like. This information allows the computer system 60 to format print requests to the label printer 50.</p>
<p>The embodiment shown in figure 9 shows a label printer which is used in conjunction with a computer system such as a PC. It should be appreciated that in some embodiments of the present invention, the label printer may be a stand alone printer or have two modes of operation in which it is able to operate as a stand alone printer or be controlled by a computer system.</p>
<p>Basic circuitry for controlling a label printing device I as shown in Figures 1 and 2, or a label printer 50 as shown in Figure 9, is shown in Figure 3. There is a microprocessor chip 100 having an internal or external read only memory (ROM) 102, a microprocessor 101 (which may correspond to the processor 58 shown in Figure 9) and random access memory capacity indicated diagrammatically by RAM 104. ROM 102 and RAM 104 contain the programs or data needed for controlling the microprocessor, and may correspond to the memory 59 shown in Figure 9). Although the microprocessor 101 is shown diagrammatically in Figure 3 as being connected to other elements within printer by individual connections, it will be appreciated that a shared bus may be used to interconnect these components, for example as disclosed in US 5,957,596.</p>
<p>The microprocessor chip 100 is connected to receive label data input to it from the PC 7 (which may correspond to the computer system 60 shown in Figure 9) via a USB port 103.</p>
<p>The microprocessor chip 100 outputs data to drive the print head 4 (which may correspond to the print head 55 shown in Figure 9) so that the label data is printed onto the image receiving medium to form a label. The microprocessor manipulates data received from the PC 7 to generate successive print columns (lines) which are outputted serially to drive the print head 4. This technique is described in EP513290, and more specifically in relation to the present system below.</p>
<p>-10 -The microprocessor chip 100 also controls the motor 105 (which may correspond to the motor 61 shown in Figure 9) for driving the platen 8 (which may correspond to the platen 54 shown in Figure 9). The microprocessor generates data strobe signals each of which causes a column of pixel data to be printed by the print head. The microprocessor synchronises the data strobe signal to ensure that the columns of print are separated by a constant spacing.</p>
<p>The microprocessor chip 100 may also control the cutting mechanism 18 of Figure 2 to allow a length of image receiving medium to be cut off. In alternative embodiments at least part of the cutting mechanism may be manually operated.</p>
<p>The microprocessor chip further comprises a First In First Out (FIFO) data buffer 107 and a print line buffer 109, the function of which is described in more detail below.</p>
<p>Figure 4 illustrates in more detail components of label printer I or 50 involved in a known method of print data processing. Certain components shown in Figure 3, such as the RAM, ROM, motor and cutting apparatus, have been omitted from Figure 4 for the sake of clarity. The label printer may be a printer such as that described in EP-A-1 362705.</p>
<p>The PC 7 sends data to the printer I via a universal serial bus (USB) channel. In alternative embodiments, the USB channel may be replaced by any other high speed interface, for example firewire or Ethernet. The data sent to the printer comprises print line data (i.e. symbols and characters to be printed on a label) and other data such as commands. The data is received in the printer at the USB port 103. The data is read by means of a reading routine performed by the microprocessor 101 and transferred to the First In First Out (FIFO) data buffer 107.</p>
<p>The FIFO buffer 107 stores data read from the USB 103 while a parsing routine is performed by the microprocessor 101. The parsing routine identifies print line data stored in the FIFO and copies complete print lines (or columns) into the print line buffer 109. Print line data is then transferred to the print head 4 in a printing routine performed by the microprocessor, by strobing the print lines stored in the print line buffer 6.</p>
<p>With the desire to improve printspeeds, the inventors measured the time taken for each of the above routines. It was determined that reading the data from the USB chip and placing it in the FIFO takes an average of 848 ps per print line; parsing the data from the FIFO and placing it into the print buffer takes 1420 ps/line; and sending data to the print head takes 700 ps/line. This results in a print speed of 2968 ps/print line.</p>
<p>Figure 5 shows components of a label printer operating an alternative method for processing data, in which the printing speed is increased. The reading routine, parsing routine and the print head transfer routine are each optimized in order to reduce the time delay at each stage. Reading data from the USB chip and placing it into the FIFO now takes 500 ps, and parsing the data from the FIFO and placing it into the print line buffer now takes 736 ps. The routine of sending data into the print head has been changed to a Direct Memory Access (DMA) transfer routine which takes 160 ps. This results in a print speed of 1396 ps/print line (more than 2 inches per second).</p>
<p>Figure 6 illustrates components of a label printer 200 according to an embodiment of the present invention. The label printer 200 comprises components of the same general type and arrangement as shown in Figures 1, 2, 3, 8 and/or 9. Thus, for example, the label printer 200 further comprises a motor and optionally a cutting apparatus as shown in Figure 3. However, the label printer differs from those shown in Figures 4 and 5 in terms of the FIFO 207, the print line buffer 209, the operation of the processor and the instructions stored by the ROM and RAM.</p>
<p>The FIFO 207 may contain for example 16 storage locations. 14 of these are data storage locations 208, which contain data which is received from the USB port. The remaining 2 storage locations in the FIFO are pointer storage locations -12 - 210. The pointer storage locations 210 contain pointers which point to data storage locations 208 in the FIFO. The FIFO also comprises a data counter 211, which counts how many bytes inside the FIFO have not been parsed.</p>
<p>The print line buffer 209 comprises a plurality of address storage locations for storing the addresses of the print line data in the FIFO 207.</p>
<p>Instructions stored in the ROM 202 and RAM 204 cause the processor to process data received at the USB 203 according to routines which are modified with respect to those shown in Figures 4 and 5. As previously described, data is supplied to the printer 200 from a computer 7 via a USB port 203. The microprocessor 201 identifies that data is present within the USB port 203 and copies the data into the First In First Out (FIFO) data buffer 207.</p>
<p>The microprocessor 201 copies print data, comprising print line data and other commands, into the data storage locations 208 in the FIFO 207. The data storage locations 208 are always filled with data during printing, because the computer 7 can send data faster to the printer 200 than the data can be processed and printed. The microprocessor 201 does not copy print data to the pointer storage 210 locations in the FIFO 207.</p>
<p>When data is copied to the data storage locations 208 of the FIFO 207, the FIFO 207 updates its data counter 211 and also updates the next free data storage location inside the FIFO 207.</p>
<p>The microprocessor 201 carries out a parsing routine on the data stored in the data storage locations 208 in the FIFO 207. The parsing routine identifies data storage locations 208 in the FIFO which contain print line data, as well as the length of the print line data at each location. The addresses of data storage locations 208 in the FIFO containing print line data are then copied to the print line buffer 209. Data length indicators, indicating the number of bytes of print line data present at each data storage location in the FIFO, are also copied to the print line buffer and stored next to the addresses to which they correspond.</p>
<p>-13 -If the print line buffer 209 is full, no further data is copied into the FIFO 207, and the USB 203 will accept no more data from the computer.</p>
<p>When the image receiving medium 10 has advanced to a new location, the microprocessor 201 signals to the print line buffer 209 that new data can be sent to the print head 204. The microprocessor 201 copies one or more addresses of data storage locations in the FIFO 208 from the print line buffer into the DMA channel 212, and also a data length indicator showing the number of bytes to send is sent to the DMA channel 212.</p>
<p>The data storage locations 208 in the FIFO 207 can be individually addressed by means of the pointers stored in the pointer storage locations 210, which point to individual data storage locations 208 in the FIFO 207. The DMA channel 212 uses the address supplied to it from the print line buffer 209 to locate a data storage location in the FIFO 207, by means of the pointers stored in the pointer storage locations 210. Data stored in the located data storage location is then transferred to the DMA channel and the printhead. The amount of data transferred from the located data storage location is determined by the data length indicator supplied to the DMA channel from the print line buffer.</p>
<p>Care has to be taken when copying information to the DMA channel 212. For example if the total amount of data that needs to be sent is 84 bytes and 30 bytes are located at a first data storage location in the FIFO 207 and 54 bytes are located at a second data storage location in the FIFO, the DMA channel 212 has to split up into two separate DMA actions. One action copies 30 bytes from the first location to the DMA channel 212 and the printhead 204, and a second action copies 54 bytes from the second location to the DMA channel 212.</p>
<p>Figure 7 illustrates data flow through the printer according to the present invention. The microprocessor has been omitted from this figure for the sake of clarity.</p>
<p>-14 -At A, data is read from the USB 203 and is stored in data storage locations I to 14 of the FIFO 207. The parsing routine at B identifies print line data in data storage locations 1, 3,4, 7, 8, 10, 11, 12, 13 and 14 of the FIFO. The addresses of these storage locations in the FIFO 207 are then written into (shown by dashed lines) and stored in the print line buffer 209, along with data length indicators showing the number of bytes of print line data present at each data storage location (shown in Figure 7 stored in the boxes to the right of each address). The remaining data storage locations (2, 5, 6 and 9) contain non-print line data such as commands. The addresses of these storage locations are not written into the print line buffer.</p>
<p>At C, the addresses and data length indicators stored in the print line buffer 209 are copied to the DMA channel 212. Addresses are copied to the DMA channel 212 on a line by line basis, i.e. addresses containing data corresponding to a single print line are transferred to the DMA channel 212 when that print line is ready to be printed.</p>
<p>At D, the DMA channel identifies a data storage location in the FIFO 207 corresponding to an address received from the print line buffer 209 by means of the pointers stored in the pointer storage locations 210.</p>
<p>At E and F, the indicated number of bytes of print line data in identified data storage locations (i.e. one or more of locations 1, 3, 4, 7, 8, 10, 11, 12, 13 and 14) in the FIFO is transferred on a line by line basis to the DMA channel 212 and the printhead 4.</p>
<p>The speed of printing can be increased according to the present invention because of the avoidance of a step of copying all of the printline data from the FIFO to the print line buffer. This reduces the time delay required for processing data in the printer and therefore accelerates printing.</p>
<p>Although the above embodiment has been described with reference to a label prInter, ft should be appreciated that aftemative embodiments of the present invention may be used with other types of printing devices. -16-</p>

Claims (1)

  1. <p>CLAIMS</p>
    <p>1. A method of processing data in a printer, comprising: a) storing data in a first storage means; b) processing the data to identify print line data comprised in the data; c) storing in a second storage means addresses of the print line data in the first storage means; and d) accessing the print line data from the first storage means based on said addresses for supply to a print head on a line by line basis.</p>
    <p>2. A method according to claim 1, wherein the print line data is supplied from the first storage means to the print head using a direct memory access routine.</p>
    <p>3. A method according to claim I or claim 2, wherein the first storage means comprises a modified first in first out data buffer.</p>
    <p>4. A method according to any preceding claim, further comprising supplying the data to the first storage means via a high speed interface.</p>
    <p>5. A method according to claim 4, wherein the high speed interface is a universal serial bus.</p>
    <p>6. A method according to any preceding claim, wherein the second storage means comprises a print line buffer.</p>
    <p>7. A method according to any preceding claim, wherein data is stored in the first storage means in a plurality of data storage locations.</p>
    <p>8. A method according to claim 7, wherein the first storage means comprises one or more pointer storage locations for storing pointers to data storage locations in the first storage means. -17-</p>
    <p>9. A method according to claim 7 or claim 8, wherein step (b) further comprises identifying a quantity of print line data stored at each data storage location in the first storage means.</p>
    <p>10. A method according to claim 9, wherein step (c) further comprises storing in the second storage means one or more data length indicators, each data length indicator indicating the quantity of print line data present at a data storage location in the first storage means.</p>
    <p>II. A method according to claim 10, wherein each data length indicator is stored in the second storage means adjacent to a corresponding stored address.</p>
    <p>12. A method according to claim 10 or 11, wherein in step (d) a quantity of print line data is accessed from each data storage location in the first storage means based on a corresponding data length indicator.</p>
    <p>13. A method according to any preceding claim, wherein the printer is a tape or label printer.</p>
    <p>14. A print data controller comprising: a) a first storage means for storing data; b) a control means for processing the data in the first storage means to identify print line data, and for supplying the print line data from the first storage means to a print head on a line by line basis; and c) a second storage means for storing addresses of identified print line data comprised in the data; wherein the control means is operable to access the print line data from the first storage means based on said addresses and to output the print line data on a line by line basis for supply to a print head.</p>
    <p>15. A controller according to claim 14, wherein the control means is adapted to output print line data for supply to the print head using a direct memory access routine.</p>
    <p>16. A controller according to claim 14 or claim 15, wherein the first storage means comprises a first-in-first-out memory.</p>
    <p>17. A controller according to any of claims 14 to 16, wherein the control means is further adapted for reading data from a high speed interface and storing the data in the first storage means.</p>
    <p>18. A controller according to claim 17, wherein the high speed interface is a universal serial bus.</p>
    <p>19. A controller according to any of claims 14 to 18, wherein the second storage means comprises a print line buffer.</p>
    <p>20. A controller according to any of claims 14 to 19, wherein the first storage means comprises a plurality of data storage locations for storing data.</p>
    <p>21. A controller according to claim 20, wherein the second storage means is configured to store one or more data length indicators, each data length indicator indicating a quantity of print line data present at a data storage location in the first storage means.</p>
    <p>22. A controller according to claim 21, wherein the second storage means comprises a plurality of address storage locations for storing addresses and a plurality of indicator storage locations for storing data length indicators, each address storage location being linked to a corresponding indicator storage location.</p>
    <p>23. A controller according to any of claims 14 to 22, wherein the first storage means comprises one or more pointer storage locations for storing pointers to data storage locations in the first storage means.</p>
    <p>24. A controller according to any of claims 14 to 23, wherein the control means comprises a microprocessor.</p>
    <p>25. A controller according to claim 24, wherein the control means further comprises a random access memory and a read only memory comprising instructions for controlling the microprocessor.</p>
    <p>26. A printer comprising a controller according to any of claims 14 to 25, and a pri nthead.</p>
    <p>27. A printer according to claim 26, which is adapted for printing labels.</p>
    <p>28. A computer program product comprising program code means which, when executed by a processor in a printer, causes the printer to perform a method as defined in any of claims I to 13.</p>
GB0525767A 2005-12-19 2005-12-19 Print data processing Withdrawn GB2433341A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB0525767A GB2433341A (en) 2005-12-19 2005-12-19 Print data processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0525767A GB2433341A (en) 2005-12-19 2005-12-19 Print data processing

Publications (2)

Publication Number Publication Date
GB0525767D0 GB0525767D0 (en) 2006-01-25
GB2433341A true GB2433341A (en) 2007-06-20

Family

ID=35736376

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0525767A Withdrawn GB2433341A (en) 2005-12-19 2005-12-19 Print data processing

Country Status (1)

Country Link
GB (1) GB2433341A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010037854A1 (en) * 2010-09-29 2012-03-29 OCé PRINTING SYSTEMS GMBH A method of controlling a printing operation in an ink jet printing apparatus and printing apparatus for carrying out such a method
CN114030182A (en) * 2021-09-29 2022-02-11 苏州康尼格电子科技股份有限公司 Control device and control method of 3D packaging printer

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4727497A (en) * 1984-10-02 1988-02-23 Oce-Nederland B.V. Decoder
EP0772162A2 (en) * 1995-11-06 1997-05-07 Pitney Bowes Inc. Mail handling apparatus and process for printing an image column-by-column in real time
GB2334356A (en) * 1997-12-09 1999-08-18 Jan Robert Coyle Interface card for coupling computer to peripheral
US6426797B1 (en) * 1998-09-04 2002-07-30 Asahi Kogaku Kogyo Kabushiki Kaisha Print data output circuit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4727497A (en) * 1984-10-02 1988-02-23 Oce-Nederland B.V. Decoder
EP0772162A2 (en) * 1995-11-06 1997-05-07 Pitney Bowes Inc. Mail handling apparatus and process for printing an image column-by-column in real time
GB2334356A (en) * 1997-12-09 1999-08-18 Jan Robert Coyle Interface card for coupling computer to peripheral
US6426797B1 (en) * 1998-09-04 2002-07-30 Asahi Kogaku Kogyo Kabushiki Kaisha Print data output circuit

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010037854A1 (en) * 2010-09-29 2012-03-29 OCé PRINTING SYSTEMS GMBH A method of controlling a printing operation in an ink jet printing apparatus and printing apparatus for carrying out such a method
US8506032B2 (en) 2010-09-29 2013-08-13 OCé PRINTING SYSTEMS GMBH Method to control a printing process in an inkjet printing apparatus, and printing apparatus to execute such a method
DE102010037854B4 (en) * 2010-09-29 2017-08-24 Océ Printing Systems GmbH & Co. KG A method of controlling a printing operation in an ink jet printing apparatus and printing apparatus for carrying out such a method
CN114030182A (en) * 2021-09-29 2022-02-11 苏州康尼格电子科技股份有限公司 Control device and control method of 3D packaging printer

Also Published As

Publication number Publication date
GB0525767D0 (en) 2006-01-25

Similar Documents

Publication Publication Date Title
US5232297A (en) Printing device with margin setting for cut tape
EP2305479B1 (en) Control of printing mechanisms
CN102555549B (en) Printing device and control method therefor
US7914214B2 (en) System and method for determining the status of a label in a roll of label stock
US20090285617A1 (en) Tape Printing Apparatus and Tape Cassette
WO2008012688A2 (en) Tape printing apparatus and tape cassette
US8670010B2 (en) Method for controlling printing speed of thermal head
EP0573187A1 (en) Thermal printing device
GB2433341A (en) Print data processing
JP2010221563A (en) Tape cassette and tape printer
CN1847009A (en) Tape processing apparatus, method of conducting demonstration with tape processing apparatus, and program
JP2008126648A (en) Printer and printing method
US11886761B2 (en) Printer for printing on a long sheet and method therefor
JP2020196140A (en) Control method of printing device and printing device
US8947719B2 (en) Method for controlling the speed of printing
JP2009048521A (en) Printer, shelf label printing system, and control method and control program of printer
JPH05116407A (en) Label printer
JPH0720712B2 (en) Label printer
JP2006146523A (en) Printing controller, printer, printing system and program
JPS6099680A (en) Feed-controlling system for printer
JP2024090418A (en) Printing device and method for controlling printing device
JP2000094769A (en) Printer
JPH07115530B2 (en) Recording device
JP2006160475A (en) Printing device, and sticky note tray
JPH09202026A (en) Printing device

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)