A printing system utilizes ink, toner, or other substance or process to form images on print media. An industrial printing system may be used for high-throughput applications such as printing photographs, forms, advertisements, lottery tickets, and the like. The assembly of an industrial printing system may be accomplished by integrating components from one or more vendors. For example, an assembler may integrate a paper handling component, a print management component, one or more printing components, and a servicing component from one or more vendors. The paper handling component is responsible for feeding print media through the printer system. The servicing component is responsible for maintaining printing components such as print heads. The print management component is responsible for causing the printing components to produce a desired image. The assembler may coordinate the operation of these components using a central controller that directs the overall imaging process.
An exemplary print management component is configured to receive printing commands such as a print job from a printer driver and, in response, cause the formation of desired images on a print medium. In doing so, the print management component processes the print job to produce device ready print data for causing printing components such as print heads to form the desired images. The print management component is configured with a limited set of processing capabilities. For example, the print management component may only be capable of causing the formation of images under a certain size or causing the formation of images on a certain type or size of print media. If certain unsupported capabilities are desired, the vendor redesigns the print management component to meet those desires.
Glossary: The following terms are used throughout the following specification.
Non-component ready commands: high-level commands that are not in a format that can be routed, unaltered, to a given component to cause that component to perform a particular task or tasks. To provide an example, a print head component is capable of forming an image on paper. A computer can deliver a print job defining that image. However, the print job is first processed to generate commands that can be discerned by the print-head. Such processing may include rasterizing, half-toning, and color mapping.
Component-ready commands: low-level commands that are in a format that can be routed, unaltered, to a given component to cause that component to perform a particular task or tasks. Continuing, with the above example, component ready commands can include component ready print data generated by processing a print job. The component ready print data can be communicated directly to and discerned by a print component such as a print head.
Printing system: a group of components capable of interacting to produce a printed image on a print medium.
Print component: a component of a printing system that is configured to for a desired image on a print medium.
Print data: commands directing a print component to produce a desired image. Print data may be component ready or non-component ready. Component ready print data (a subset of component ready commands) can be routed, unaltered, to a print component. Non-component ready print data is first processed to generate component ready print data. Again, such processing may include rasterizing, half-toning, and color mapping.
Directives: commands for a printing system component to take a given action. Directives may be component ready or non-component ready. Component ready directives (a subset of component ready commands) can be routed, unaltered, to a printing system component. Non-component ready directives are first processed to generate component ready directives.
Requests: commands for a printing system component to return requested information. Requests may be component ready or non-component ready. Component ready requests (a subset of component ready commands) can be routed, unaltered, to a printing system component. Non-component ready requests are first processed to generate component ready requests. Such requests may be a query for status information related to current operating state of the printing system. For example, a request may be for current consumable levels or usage rates. Another request may be for any error or warning indicators.
Introduction: In a typical printing environment, a user causes a host computer to generate and send a print job to a printer. The printer accepts and processes the print job to generate component ready print data that can be delivered to printing components such as print heads. Such processing can, for example, include raster image processing, color mapping, scaling, and half-toning. On a relative scale, the print job represents a series of higher level commends while the component ready print data represents a series of lower level commands. Inherent processing limitations can prevent the printer from delivering lower level component ready print data that might otherwise be desired.
Various embodiments described below were developed in an effort to provide a print management component capable of accepting component ready print data that can be delivered unaltered to printing components. Such allows a first vendor to deploy the same version of the print management component for integration in any number of dissimilar printing systems. For each printing system, a second vendor is able to design a central controller for supplying the component ready print data that meets the particular needs of a given customer.
To maintain the proprietary nature of certain functions, the print management component may be configured to receive certain higher level instructions. The print management component processes the higher level instructions to perform requested tasks. Such tasks may include powering the print component, guiding the servicing of the print component, reporting data related to consumable levels, and reporting warnings or errors.
In an exemplary implementation, a print management component is configured to receive component ready print data via a first interface. The print management component routes that print data, unaltered to a print head. The print management component is also configured to receive higher level commands via a second interface. The print management component then processes the higher-level commands to generate component ready commands that can be communicated to a give printing system component. The first interface, for example, may include a group of data lines for communicating pen data to the print head. The second interface, for example, may be a network or serial interface. Thus, the print management component receives and processes non-component ready commands while it routes component ready print data directly to the print head.
Components:
Print component 20 represents generally any combination of elements capable of being utilized to form desired images on print media. In a given example, print component 20 may include a print head configured to dispense ink. In another example, print component 20 may be configured to fuse toner to print media. Service component 22 represents generally any combination of elements capable of being utilized to service print component 20. Where, for example, print component includes a print head, service component 22 may be configured to function as a spittoon, pen wiper, and color and alignment calibrator.
Discussed in more detail below with reference to
Central controller 26 represents generally any combination of elements capable of coordinating the operation of components 16-24. In a given implementation, central controller receives a print job from host 14 (
As discussed in more detail below, print component 20 may include one or more print heads. Print component is configured to receive component ready commands that control the individual firing of any number of nozzles. In other words, the printing instructions contained in a print job received by central controller 26 are processed to generate component ready commands that can be communicated to print component 20. Central processor 26 is configured to process those print instructions to generate the component ready commands and communicate the component ready commands to print management component 24. Print management component 24 then routes those component ready commands, unaltered, to print component 20. Central controller 26 may also communicate non-component ready commands to print management component 24. Print management component 24 is then responsible for processing those commands to generate component ready commands to be communicated to one or both of print component 20 and service component 22.
Dedicated controller 28 represents generally any combination of hardware and programming capable of processing non-component ready commands to generate component ready commands. Dedicated controller is responsible for routing component ready commands to print component 20 and service component 22 (
Service component interface 32 represents generally any combination of elements capably of being utilized to communicate directives and requests to and from service component 22. Service component 22 from time to time may communicate directives, referred to as print data, for causing print component 20 to perform a selected task. The print data may or may not be component ready. If component ready, dedicated controller 28 routes the print data, unaltered, to print component 20 via print component interface 30. If not, dedicated controller processes the print data commands to generate component ready print data to route to print component 20. Dedicated controller 28, from time to time, may route commands to service component 22 via service component interface 32. In one implementation, those routed commands may be component ready. In another implementation, service component 22 incorporates its own dedicated controller capable of processing non-component ready commands as needed.
Print component interface 30 represents generally any combination of elements capable of utilizing component ready directives to cause print component 20 to perform a specific task and to utilize component ready requests to obtain or otherwise identify requested status information. Component ready directives routed to print component 32 can be referred to as component ready print data. Print component interface 30 is configured to utilize component ready print data to cause print component 20 to form desired images and other tasks. In a given implementation, print component interface 30 may be an application specific integrated circuit (ASIC) configured to cause the selective firing of the various nozzles provided by one or more print heads as guided by the component ready print data. Where print component 20 includes one or more print heads, such component ready print data can include pen data and timing data communicated to print component interface 30 via a number of data lines and a clock line. The pen data communicates nozzle firing instructions while the timing data is used for synchronizing the operation of print component 20 with media handling component 16. In other words, as media handling component 16 is feeding a print medium through printing system 12, the timing data allows print component 20 such as a print head to eject ink at the appropriate time to form a desired image.
Low level interface 34 represents generally any combination of elements capable of receiving component ready commands from central controller 26. High level interface represents generally any combination of elements capable of receiving non-component ready commands from central controller 26 and returning responses to central controller 26. The terms “high” and “low” are used only to distinguish between the types of commands. Component ready commands can be referred to as low level commands. Non-component ready commands can be referred to as high level commands that are to be processed to generate low level commands. In the example of
Non-volatile memory 46 is shown to include low level driver(s) 52 and high level driver(s) 54. Low level driver(s) represent generally any programming that when executed by processor 44 causes processor 44 to control multiplexor to switch to a selected input for routing component ready print data to print component 20 via print component interface 30. High level driver(s) 54 represent generally any programming that when executed by processor 44 causes processor 44 to process non-component ready commands to generate component ready commands. In one example, the component ready commands may be component ready print data. In this case, low level driver(s) 52 would cause processor 44 to switch the input of multiplexor 50 to receive and rout the component ready print data on to print component 20. As noted above the terms “low” and “high” are used only to distinguish between the types of commands. Component ready commands can be referred to as low level commands. Non-component ready commands can be referred to as high level commands that are to be processed to generate low level commands.
Operation:
The component ready commands are routed, unaltered, to the second component of the printing system (step 58). In an exemplary implementation, the component ready commands may be component ready print data. Referring to
The non-component ready commands are processed to generate component ready commands (step 62). The non-component ready commands may, for example, be a directive or a request. Referring to
The component ready print data is routed, unaltered, to the print component of the printing system (step 64). Referring to
The component ready commands generated in step 62 are routed to the selected one of the print component and the second component of the printing system (step 66). In one example, the non-component ready commands include a directive that is processed in step 62 to generate component ready print data that is routed to print component 20 in step 66. Again routing may be accomplished by causing multiplexor 50 (
Conclusion: The printing system 12 shown in
Also, the present invention can be embodied in any computer-readable media for use by or in connection with an instruction execution system such as a computer/processor based system or an ASIC (Application Specific Integrated Circuit) or other system that can fetch or obtain the logic from computer-readable media and execute the instructions contained therein. “Computer-readable media” can be any media that can contain, store, or maintain programs and data for use by or in connection with the instruction execution system. Computer readable media can comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, or semiconductor media. More specific examples of suitable computer-readable media include, but are not limited to, a hard drive, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory, or a portable disc.
Although the flow diagrams of
The present invention has been shown and described with reference to the foregoing exemplary embodiments. It is to be understood, however, that other forms, details and embodiments may be made without departing from the spirit and scope of the invention that is defined in the following claims.