Abstract:
An imaging device with an improved controller is disclosed wherein the controller eliminates duplicated circuitry and provides multi user circuitry that efficiently replaces multiple dedicated circuit blocks. In one aspect, duplicated same-function circuit blocks are replaced with a switch controlled by an alignment control signal to operate as a multiplexer or demultiplexer. In another aspect, multiple different-function circuit blocks which generally have no temporal overlap of their active operation are replaced with a programmable logic device that is reconfigured dynamically to perform some subset of the different functions on an as-needed basis.

Description:
CROSS-REFERENCES TO RELATED APPLICATIONS  
         [0001]    This application claims the benefit of the earlier-filed provisional application, No. 60/329,645, filed Oct. 16, 2001 in the United States Patent and Trademark Office and entitled “Interleaving Printer/Copier Controller with Multi-Use Circuitry.”  
         BACKGROUND OF THE INVENTION  
         [0002]    1. Field of the Invention  
           [0003]    This invention relates to electronic imaging methods and devices and in particular to digital controller circuitry for the same.  
           [0004]    2. Description of Related Art  
           [0005]    Controllers for document imaging devices such as laser printers, copiers, and multi-function machines often have to operate on multiple data streams or components related to a single image. For example, a color device may process each of the CYMK (cyan, yellow, magenta, black) color components separately. Multiple sets of circuitry have been incorporated in the controllers to handle the multiplicity of data components. This multiplicity of circuitry increases the manufacturing and operating cost of the device.  
           [0006]    For example, imaging devices frequently include compression and/or decompression circuitry to minimize the amount of data that needs to be stored or transferred. Where there are multiple data streams for individual components, prior art controllers have included multiple compressor and/or decompressor circuits such as the four decompressor circuits  211 - 214  shown in FIG. 2.  
           [0007]    Further, controllers for multi-function machines, such as printer/scanner/copiers, have included circuitry dedicated to particular ones of its functions. Such circuitry remains idle, consuming space and possibly power even when its associated function is not being performed.  
           [0008]    Accordingly, there is a need in the art for controller circuitry that eliminates duplicate and underutilized circuit elements.  
         SUMMARY OF THE INVENTION  
         [0009]    One inventive aspect of the embodiments disclosed and discussed below is the use of a single functional circuit, such as a decompressor, in conjunction with an electrically controllable switch circuit to perform a multiplexing function, such as demultiplexing. The functional circuit and switch work together in the controller of an imaging device to process parallel, related channels of image data. For example, the parallel channels may represent the cyan (C), yellow (Y), magenta (M), and black (K) color components of a single image represented digitally using the well-known CYMK color model. Sharing of the functional circuitry in this way among the multiple channels eliminates the need to duplicate circuitry once for each channel.  
           [0010]    In another inventive aspect of disclosed embodiments, certain functional circuitry of the imaging device controller, such as a decompressor circuit, is implemented using a programmable logic device programmed with configuration data to perform the first desired function. The programmable logic device may be, for example, and FPGA. During a period of device operation where the particular functional circuitry is not required but other functional circuitry is, such as a compressor circuit, the programmable logic device is reprogrammed with configuration data to perform the second desired function instead of the first.  
           [0011]    This inventive aspect is particularly useful in the controller circuitry of a multifunction imaging device. For example, when the multi-function imaging device is printing it has need for decompression circuitry to decompress the image data it receives to print. However, it has no need for compression circuitry. In contrast, when the multifunction imaging devices scanning it has need for compression circuitry to compress the image data it will transmit. However, it has no need at that time for decompression circuitry. By using programmable logic to implement temporally non-overlapping functions, cost, space, manufacturing complexity, and power consumption can all be reduced.  
           [0012]    These and other purposes and advantages will become more apparent to those skilled in the art from the following detailed description in conjunction with the appended drawings. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0013]    [0013]FIG. 1 depicts a block diagram of an imaging device and typical operating environment.  
         [0014]    [0014]FIG. 2 depicts a prior art controller.  
         [0015]    [0015]FIG. 3 depicts a controller employing a shared circuit aspect of the present invention.  
         [0016]    [0016]FIG. 4 depicts a block diagram of the operational flow of one embodiment employing a shared circuit aspect of the present invention.  
         [0017]    [0017]FIG. 5 depicts a multi-function controller further employing a variable function aspect of the present invention.  
         [0018]    [0018]FIG. 6 depicts one modal flow diagram for the controller depicted in FIG. 5.  
         [0019]    In the figures just described, like numbers appearing in multiple figures identify a common element. 
     
    
     DETAILED DESCRIPTION  
       [0020]    The present invention provides an improved controller for electronic imaging devices such as printers, scanners, copiers, and multi-function machines. In the following description, numerous details are set forth in order to enable a thorough understanding of the present invention. However, it will be understood by those of ordinary skill in the art that these specific details are not required in order to practice the invention. Further, well-known elements, devices, process steps and the like are not set forth in detail in order to avoid obscuring the present invention.  
         [0021]    [0021]FIG. 1 depicts a block diagram of an imaging device in one possible operating environment. The representative operating environment includes network  160  and attached user workstations  171 ,  172 , server  173 , and printer  174 . Imaging device  100  is also attached to the network  160 . Users of workstations  171 ,  172  may utilize imaging device  100  by direct communication using network  160 , or the users of the workstations may utilize imaging device indirectly by means of server  173 . The representative operating environment shown his merely illustrative.  
         [0022]    The emphasis of the detail shown in FIG. 1 for imaging device  100  regards the circuitry of control processor  110 . In subsequent figures control processor  110  will be shown without such detail. Control processor  110  in a preferred embodiment is a software-based computer system dedicated to the operation and support of the imaging device.  
         [0023]    In addition to control processor  110 , imaging device  100  comprises transceiver circuit  140 , and other circuitry/devices  150 . Control processor  110  comprises CPU  121 , memory subsystem  122 , I/O interface circuitry  123 , utility circuitry  124 , USB interface circuitry  125 , flash memory circuitry  126 , and user interface circuitry  127 . Control processor  110  further comprises connection  131  for coupling CPU  121  with the memory subsystem  122 ; connection  132  for coupling the CPU  121  and I/O interface circuitry  123 ; connection  133  for coupling CPU  121 , via connection  132  and I/O interface circuitry  123 , to utility circuitry  124 , USB interface circuitry  125 , flash memory circuitry  126 , and user interface circuitry  127 ; and connection  134  for coupling I/O interface circuitry  123  to memory subsystem  122  for direct memory access (DMA) operation. Similarly, connection  111  of control processor  110  couples CPU  121  to transceiver circuit  140 ; and connection  112  of control processor  110  couples CPU  121  to other circuitry/devices  150 .  
         [0024]    The connections described above are pathways for the operational flow of signals from place to place within the imaging device. The connections may comprise, for example, conductors, cables, connectors, and intermediate circuitry as prescribed by a particular design. Further, the connections described above may be single line, multiline, or buses; unidirectional or bidirectional; and carry data signals, control signals, or both; as prescribed by a particular design. Such details do not limit the invention and are within the purview of one skilled in the art.  
         [0025]    In the preferred embodiment, CPU  121  is a microprocessor. The CPU operates as a control circuit and plays a role in coordinating the operation of various components in the imaging device. Memory subsystem  122  comprises memory management circuitry, random access memory (RAM), and synchronous dynamic RAM (SDRAM) (none of which are individually shown). I/O interface circuitry  123  provides industry standard computer buses such as IDE and PCI, and DMA control functions. Flash memory circuitry  126  provides nonvolatile data storage. Flash memory is used to store a persistent copy of the software that allows the imaging device to function. In addition to nonvolatility, flash memory has the advantage that it can be electrically rewritten. This allows updates to the operating software of the imaging device after manufacture.  
         [0026]    USB interface circuitry  125  provides the control processor with the ability to communicate using the universal serial bus (USB) standard, preferably the latest version. As depicted here, USB interface circuitry  125  connects only to other circuitry and devices  150  that are part of the imaging device  100 . For example, the imaging device may include a full-size keyboard in which case a standard USB keyboard could be utilized and coupled to the CPU by USB interface circuitry  125 . One skilled in the art recognizes that circuitry such as USB interface circuitry  125  could implement the transceiver circuitry  140  in an operating environment where the imaging device attaches directly to a user workstation, such as  171 , rather than to a network  160 . Furthermore, one skilled in the art recognizes that control processor  110  may allow both transceiver  140  and USB interface circuitry  125  to either perform the functions of transceiver circuit  140  as described herein.  
         [0027]    User interface circuitry  127  processes signals as required to interface CPU  121  to user interface devices represented in FIG. 1 as other circuitry/devices  150 . User interface devices include display devices, such as multiline LCD panels and indicator LEDs, and input devices such as keypads and buttons. The user interface devices are generally contained on a central control panel of the imaging device.  
         [0028]    Utility circuitry  124  processes signals as required to interface CPU  121  to certain other circuitry/devices  150  that are not interfaced by means of I/O circuitry  123 , USB interface circuitry  125 , nor user interface circuitry  127 . For example, utility circuitry  124  may generate control signals for an electromechanical device such as a solenoid.  
         [0029]    Transceiver circuitry  140  in one embodiment is a network interface chip (NIC) and support circuitry based on ethernet standards. As its name implies, transceiver  140  comprises both a receiver circuit and a transmitter circuit. Transceiver circuitry  140  enables users to communicate with imaging device  100  in order to make use of it. For example, a user desiring to exploit the printing capability of imaging device  100  would transmit a stream of print data via network  160  to the receiver circuit of transceiver  140 . Control processor  110  would acquire the data from the transceiver via connection  111 . Control processor  110  would direct status messages back to the user by applying appropriate data and control signals to the transmitter circuit of transceiver  140  via connection  111 .  
         [0030]    Other circuitry/devices  150  as depicted here represents for purposes of FIG. 1 the kinds of electrical and electromechanical circuitry and components common to an imaging device not specifically discussed in relation to FIG. 1. For example, other circuitry/devices  150  may include image output devices such as laser print engines and facsimile modem transmitters; and image input devices such as scanning heads and facsimile modem receivers; present in a particular embodiment.  
         [0031]    [0031]FIG. 3 depicts one embodiment of a device controller employing a shared circuit aspect of the present invention. The control circuit of FIG. 3 advances beyond the prior art circuit depicted in FIG. 2. Decompressor  310  is the shared circuit of the embodiment depicted in FIG. 3. In this embodiment, one decompressor circuit  310  in conjunction with a switch circuit  320 , permits the one decompressor circuit  310  to decompress the data for four separate data streams, each representing a single color channel of the CYMK color model in this embodiment. Sharing the decompressor circuit among the four color channels eliminates the need to duplicate the decompressor circuitry four times.  
         [0032]    The device controller of FIG. 3 comprises transceiver  140 , control processor circuit  110 , decompressor  310 , switch  320 , buffers  341 - 344 , and connections  111 ,  112 ,  301 ,  311 ,  321 - 324  and  351 - 354 . Switch connection  311  is a multiplex connection that carries data associated with multiple channels of image data, while connections  321 - 324  are data channel connections each carrying data for only a single image data channel. Output device  360  receives the multichannel, uncompressed image data from the device controller. Output device  360  is, for example, a laser printing engine.  
         [0033]    In operation, the receiver circuit of transceiver  140  receives a print datastream containing compressed data for four different color data channels. The received datastream data is conveyed to control processor  110  via connection  111 . Control processor  110  analyzes the serial datastream and identifies the beginning of a portion thereof associated with a particular data channel. Control processor  110  then generates and sends an alignment control signal via connection  301  to switch  320 . The control signal causes switch  320  to direct the data it receives on connection  311  to the particular one of buffers  341 - 344  associated with the identified data channel. Switch  320  accordingly operates as a demultiplexer. After sending the alignment signal to switch  320 , control processor  110  sends the compressed datastream segment data associated with the particular data channel to decompressor circuit  310  via connection  302 .  
         [0034]    Decompressor circuit  310  decompresses the data received via connection  302 , presenting the data in uncompressed form at its output connection  311 . In the preferred embodiment, decompressor  310  decompresses data that was formerly compressed using a run length encoding (RLE) algorithm. RLE compression is widely known in the art.  
         [0035]    Uncompressed data presented to switch  320  from decompressor  310 , moves from switch  320  to the correct one of buffers  341 - 344  via the corresponding one of connections  321 - 324 . The uncompressed, multi-channel image data is transferred from buffers  341 - 344  to output device  360  by connections  351 - 354  in accordance with the requirements of the output device.  
         [0036]    [0036]FIG. 4 depicts a block diagram of the operational data flow of one embodiment employing a shared circuit aspect of the present invention. The progression depicted in box  401  of FIG. 4 executes on the machine that will send its output to the imaging device. For example, when a workstation user desires to print a color photograph on the imaging device (e.g., a color laser printer) and initiates that process, the progression depicted in box  401  executes on the workstation. The progression depicted in box  401  might generally be effected by driver software associated with the imaging device.  
         [0037]    A complete bitmap for the printed image  410  is generated appropriate to the output device  360 . In the example depicted in FIG. 4, the constructed bitmap  410  uses the CYMK color model and comprises four separate bitmaps, one for each of the four color channels. Data representing one-half of a print line is isolated from each of the image bitmaps  411 - 414  into a respective one of compression buffers  421 - 424 . The preferred embodiment uses a one-half line compression buffer which is considered to be an acceptable balance of buffer memory size and transfer speed considerations in the particular implementation. One skilled in the art will recognize that the invention is not limited to any particular size or format (e.g., fixed or variable) of data segment.  
         [0038]    The data in each of compression buffers  421 - 424  are compressed using a run length encoding (RLE) algorithm, with the results placed in a respective one of compressed data buffers  431 - 434 .  
         [0039]    A serial datastream buffer  450  is constructed using the half-line compressed image data for each of the four channels. Effectively, the serial datastream buffer  450  is constructed by prefixing the compressed image data for each channel with an identifier to denote its respective channel (i.e., color), and then placing the prefixed data segments for each of the four channels successively into the buffer. In the preferred embodiment the identifier fields  461 - 464  each comprise a two-bit binary value permitting the identification of four different channels:  00 ,  01 ,  10 , and  11 . This implementation makes it possible to easily use the identifier data itself as the alignment signal that controls downstream switch  320 . The design of a specific implementation of circuitry to utilize the ID data as the control signal for the switch is within the skill of one in the art. While the preferred embodiment uses a two-bit binary representation for ID, many other representations are possible.  
         [0040]    Serial datastream  470  depicts the data of serial datastream buffer  450  in transit—as, for example, from workstation  171  to imaging device  100  over network  160  of FIG. 1.  
         [0041]    Referring again to FIG. 4, the progression depicted in box  403  takes place in the imaging device. Serial datastream buffer  480  is filled with the depicted data as datastream  470  is received. Effectively, the transmission buffer  450  of the sending device is reproduced as receive buffer  480  in the imaging device. In accord with the earlier description of FIG. 3, the ID data in the datastream buffer  480  is sent to switch  320  as an alignment signal to direct subsequent image data into the buffer corresponding to the identified channel. The compressed image data immediately following the ID data in the datastream buffer  480  is directed to decompressor  310 . Uncompressed image data emerging from decompressor  310  is routed into the appropriate one of half-line, uncompressed image buffers  341 - 344  via switch  320 . Data from buffers  341 - 344  transfer as four separate channels to output device  360  in accordance with the specifications and requirements of the output device.  
         [0042]    [0042]FIG. 5 depicts a multi-function controller further employing a variable function aspect of the present invention. The depicted controller expands on the controller depicted in FIG. 3, chiefly by adding accommodation to control an input device  560 , and replacing the decompressor circuit  310  of FIG. 3 with the reprogrammable logic device  510  of FIG. 5. Accordingly, control processor  110 , transceiver  140 , buffers  341 - 344 , output device  360 , and connections  111 ,  112 ,  301 ,  302 , and  351 - 354 , are as described earlier in reference to FIG. 3.  
         [0043]    Switch  520  of FIG. 5 is an expanded version of switch  320  of FIG. 3. Connection  511  of FIG. 5 is a multiplex connection that can carry data for multiple image data channels and compares to connection  311  of FIG. 3. Connections  521 - 524  of switch  520  of FIG. 5 are outputs that correspond to connections  321 - 324  of switch  320  of FIG. 3. Connections  525 - 528  of switch  520  of FIG. 5 have no correspondence in FIG. 3 and are data inputs to switch  520 . Each of connections  525 - 528  services one channel of data for a multi-channel image. Each of connections  525 - 528  conveys data from a corresponding one of uncompressed image data buffers  541 - 544 . Each of buffers  541 - 544  receives a single channel of uncompressed image data from input device  560  over a corresponding one of connections  551 - 554 . Input device  560  may be, for example, a color image scanner. Input device  560 , like output device  360 , is not part of the controller circuitry but is shown here to depict operational context.  
         [0044]    Switch  520  operates to demultiplex from connection  511  to connections  521 - 524  to convey image data from control processor  110  toward an output device  360 , after the fashion of switch  320  of FIG. 3. Switch  520  further operates to multiplex from connections  525 - 528  to connection  511  to convey image data from an image input device  560  toward control processor  110 . An alignment control signal presented from control processor  110  to switch  520  via connection  301  determines which of connections  521 - 528  is operatively coupled to connection  511 , implicity or explicity identifying both a direction and a channel.  
         [0045]    Programmable logic device (PLD)  510  sits in the data path between control processor  110  and switch  520  in the preferred embodiment. PLD  510  exchanges data with the control processor  110  via connection  302 , and with switch  520  via connection  511 . PLD  510  is susceptible to reprogramming (i.e., all or part of its configuration memory can be reloaded to redefine its operation in the circuit) during operation of the imaging device. In the preferred embodiment, PLD  510  is a FPGA device such as those marketed by Altera Corporation and Xilinx, Inc. Also, in the preferred embodiment the reprogramming of PLD  510  is accomplished by reloading all, not part, of its configuration memory.  
         [0046]    During operation of the imaging device, control processor  110  reprograms the PLD as necessary to provide functionality useful to the present mode of operation, while at the same time eliminating programming in the PLD for earlier functionality that is not presently needed. For example, an illustrative multi-function imaging device can either be printing at a given moment, or scanning, but never both at the same instant. Decompression circuitry is required for printing but not scanning, and compression circuitry is required for scanning but not printing. That is to say, there is no temporal overlap required of the compression and decompression functions in this device.  
         [0047]    In accordance with an aspect of the present invention, the control processor  110  loads a configuration file defining decompression functionality into the PLD  510  at the commencement of one mode of operation, for example, output (printing). If the device user at some later time signals an input operation, for example, by pressing a “scan” button on the device control panel, the control processor  110  loads an alternate configuration file defining compression functionality into the PLD  510 . In the preferred embodiment, the various configuration files for PLD  510  are stored in flash memory.  
         [0048]    Note that mode of operation as used above does not necessarily correspond one-to-one with the functions available in a multi-function device. For example, the copy function of a multifunction device involves both an input mode of operation to scan the original, and an output mode of operation to print the copy. Further, input and output are not the only possible modes of operation. For example, an imaging device may have an idle mode activated by a long period of inactivity.  
         [0049]    [0049]FIG. 6 depicts one modal flow diagram for the controller depicted in FIG. 5. The multi-function device controller enters an initialization mode  610  when the imaging device is first powered on. After performing any power-up an initialization processing, such as performing a diagnostic system check, the controller moves to begin functional operation of the imaging device as depicted by event  615 . The controller begins functional operation by entering a default mode of operation, shown here as print mode  620 . Print mode  620  programs the PLD of the controller with a configuration file defining decompression functionality for the PLD device. Print mode  620  operation continues, and the PLD continues to operate as a decompressor, until the occurrence of a commence scan event  625 . A commence scan event may be signaled, for example, by the pressing of the scan button on the control panel of the imaging device. The occurrence of the commence scan event  625  causes the controller to move to scan mode  630 .  
         [0050]    Scan mode  630  programs the PLD of the controller with a configuration file defining compression functionality for the PLD device. Scan mode  630  operation continues, and the PLD continues to operate as a compressor, until the occurrence of a commence print event  635 . A commence print event may be signaled, for example, by the arrival of a print datastream at the receiver circuit of the network-attached transceiver. The occurrence of the commence print event  635  causes the controller to move to print mode  620  with performance of the concomitant device operation described earlier for that mode.  
         [0051]    Various modifications to the preferred embodiment can be made without departing from the scope of the invention. For example, one skilled in the art will now recognize that the switch circuit  520  of FIG. 5 could be implemented using a portion of the configurable circuitry of PLD  510 . And, for example, circuitry that performs compression and/or decompression could be connected directly to transceiver circuitry rather than being coupled through control circuitry for the exchange of image data. Thus, the foregoing description is not intended to limit the invention which is described in the appended claims in which: