U.S. patent application number 10/007963 was filed with the patent office on 2003-05-08 for remote firmware upgrade via i/o connection.
Invention is credited to Boldon, John Leland, Johnson, Steven Mark.
Application Number | 20030086107 10/007963 |
Document ID | / |
Family ID | 21729072 |
Filed Date | 2003-05-08 |
United States Patent
Application |
20030086107 |
Kind Code |
A1 |
Johnson, Steven Mark ; et
al. |
May 8, 2003 |
Remote firmware upgrade via I/O connection
Abstract
Imaging devices and methods of operating imaging devices that
facilitate reducing nonvolatile storage needs of the imaging
devices. The imaging devices are adapted to request control
programs from external devices without the need to maintain a
nonvolatile image of a control program within the imaging device.
Control programs are received on a communication input of the
imaging device and stored on a volatile storage media for use by a
processor of the imaging device. The embodiments can also
facilitate more reliable updating within a networked system in that
updating an image of a control program on one network device can
automatically lead to updating of multiple imaging devices, thus
eliminating a need to individually update each imaging device.
Inventors: |
Johnson, Steven Mark;
(Eagle, ID) ; Boldon, John Leland; (Emmett,
ID) |
Correspondence
Address: |
HEWLETT-PACKARD COMPANY
Intellectual Property Administration
P.O. Box 272400
Fort Collins
CO
80527-2400
US
|
Family ID: |
21729072 |
Appl. No.: |
10/007963 |
Filed: |
November 2, 2001 |
Current U.S.
Class: |
358/1.13 ;
358/1.15; 719/321 |
Current CPC
Class: |
G06F 8/65 20130101; G06K
15/1806 20130101; G06K 15/18 20130101 |
Class at
Publication: |
358/1.13 ;
358/1.15; 709/321 |
International
Class: |
G06F 003/12; G06F
015/00; G06F 013/10 |
Claims
What is claimed is:
1. An imaging device, comprising: a communication input for
receiving image data from an external device; and a formatter for
converting the image data into a printable image as directed by a
control program; wherein the control program is alterable through
the communication input of the imaging device; and wherein the
imaging device contains no nonvolatile image of the control
program.
2. The imaging device of claim 1, wherein the communication input
may further receive other data from the external device.
3. The imaging device of claim 1, wherein the image data is page
description language.
4. The imaging device of claim 1, wherein the control program is a
set of computer-readable instructions stored on a volatile
computer-usable storage media.
5. The imaging device of claim 1, wherein the formatter is adapted
to request the control program from the external device.
6. An imaging device, comprising: a communication input for
receiving image data and other signals from an external device; a
communication output; a formatter for converting image data into a
printable image as directed by a control program; a first
computer-usable media for storing the control program; a second
computer-usable media having computer-readable instructions stored
thereon capable of causing a processor to perform a method, the
method comprising: providing a signal on the communication output
of the imaging device indicative of a desire to transfer a control
program from an external device to the communication input of the
imaging device; and waiting for a control program to be received on
the communication input of the imaging device in response to the
signal.
7. The imaging device of claim 6, wherein the communication input
and the communication output are a single communication port.
8. The imaging device of claim 6, wherein the method further
comprises delaying conversion of any image data until a control
program is received on the communication input of the imaging
device and is stored on the first computer-usable media.
9. The imaging device of claim 6, wherein the method further
comprises delaying conversion of any image data for a predetermined
timeout period while waiting for a control program to be received
on the communication input of the imaging device.
10. The imaging device of claim 9, wherein the method further
comprises transferring a default control program from the second
computer-usable media to the first computer-usable media if no
control program is received on the communication input prior to
expiration of the timeout period.
11. A method of operating an imaging device, comprising: generating
a request for a control program upon an initialization of the
imaging device, wherein the control program is adapted to convert
image data received by the imaging device into a printable image;
providing the request on a communication output of the imaging
device; and waiting to receive the control program via a
communication input of the imaging device.
12. The method of claim 11, further comprising: transferring the
control program from the communication input to a volatile storage
media of the imaging device.
13. The method of claim 11, wherein generating a request for a
control program further comprises generating a signal indicative of
a desire to receive a control program from an external device.
14. The method of claim 13, wherein the signal is directed to a
single external device.
15. The method of claim 11, further comprising: requesting
identification of a host device connected to the imaging device
prior to generating the request for a control program.
16. The method of claim 15, further comprising: waiting for an
acknowledgement by the host device after requesting identification;
and asking the host device if it has an available control
program.
17. The method of claim 16, further comprising: broadcasting the
request for a control program to multiple external devices if the
host device does not have an available control program.
18. The method of claim 11, further comprising: delaying conversion
of any image data received by the imaging device while waiting to
receive the control program via the communication input.
19. The method of claim 18, further comprising: using a default
control program if no control program is received via the
communication input within a predetermined timeout period.
20. The method of claim 18, further comprising: transferring the
control program received via the communication input to a volatile
storage media of the imaging device for use in converting any image
data received by the imaging device.
21. A computer-usable medium having computer-readable instructions
stored thereon capable of causing a processor to perform a method,
the method comprising: generating a request, in response to an
initialization process, for a control program for converting image
data into a printable image; providing the request on a
communication output of the processor; and waiting to receive the
control program via a communication input of the processor.
22. The computer-usable medium of claim 21, wherein the
computer-usable medium and the processor are both part of an
application-specific integrated circuit device.
23. The computer-usable medium of claim 21, wherein the
computer-usable medium and the processor are separate parts of a
formatter for an imaging device.
24. The computer-usable medium of claim 21, wherein generating a
request for a control program further comprises generating a signal
indicative of a desire to receive a control program from an
external device.
25. The computer-usable medium of claim 24, wherein the signal is
adapted to be directed to a single external device.
26. The computer-usable medium of claim 21, wherein the method
further comprises: requesting identification of any host device
connected to the processor prior to generating the request for a
control program.
27. The computer-usable medium of claim 26, wherein the method
further comprises: waiting for an acknowledgement by a host device
after requesting identification; and asking the acknowledging host
device if it has an available control program.
28. The computer-usable medium of claim 27, wherein the method
further comprises: broadcasting the request for a control program
to multiple external devices if the acknowledging host device does
not have an available control program.
29. The computer-usable medium of claim 2 1, wherein the method
further comprises: delaying conversion of any image data received
by the processor while waiting to receive the control program via
the communication input.
30. The computer-usable medium of claim 29, wherein the method
further comprises: using a default control program if no control
program is received via the communication input within a
predetermined timeout period.
31. The computer-usable medium of claim 29, wherein the method
further comprises: transferring the control program received via
the communication input to a storage media for use in converting
any image data received by the processor.
Description
TECHNICAL FIELD OF THE INVENTION
[0001] The present invention relates generally to imaging devices,
and in particular to eliminating the need to maintain a nonvolatile
image of a control program on an imaging device.
BACKGROUND OF THE INVENTION
[0002] Imaging devices are found in a vast number of computer
networks and personal computer setups. Imaging devices include
printers, facsimile machines (faxes), plotters, multi-function
devices and other devices used for producing a tangible image from
image data.
[0003] The image data is typically generated by some user
application in a device external to the imaging device. An example
includes composing a document in a word-processing application of a
computer workstation, generating image data in the word-processing
application and communicating the image data to a networked or
local printer to produce a hard copy of the document.
[0004] For communications efficiency, the image data is generally
provided to the imaging device in a compressed form. The compressed
form may be simply a compression of raster data, but is more
commonly a high-level page description language (PDL) providing
information to the imaging device on how to recreate the image.
These PDLs are often device-independent languages, i.e., the same
image data can be provided to devices of differing types and/or
differing manufacturers to produce an end result that is
substantially the same. Examples of PDLs include Printer Command
Language or PCL (Hewlett-Packard Company, Palo Alto, Calif., USA),
PostScript.RTM. (Adobe Systems Incorporated, San Jose, Calif., USA)
and Interpress (Xerox Corporation, Stamford, Conn., USA).
[0005] To process these PDLs, imaging devices have what is often
referred to as a formatter. The formatter has a processor that is
responsive to a control program to convert the image data to a
printable image. The control program typically provides
interpretation of the PDLs, character generation, device emulation,
etc. The printable image is typically uncompressed raster or bitmap
information that is supplied to another component of the imaging
device, often referred to as an engine. The engine controls the
mechanical components of the imaging device to produce a tangible
output, such as a hardcopy of the printable image.
[0006] The control programs responsible for conversion of the image
data are often referred to as formatter firmware or simply
firmware. Firmware is computer-readable instructions adapted to
cause the processor to perform the conversion methods. These
instructions are generally stored on a nonvolatile computer-usable
medium. Some examples of nonvolatile computer-usable media include
read-only memory (ROM), electrically-erasable programmable ROM
(EEPROM or Flash memory), magnetic media and optical media. Because
of the cost and access rates of nonvolatile memory in comparison to
dynamic random access memory (DRAM; a volatile storage media), the
control programs are typically stored on the nonvolatile media in a
compressed form, then expanded and transferred to a volatile media
for use by the processor. This approach reduces the amount of
nonvolatile media that must be installed in the imaging device,
thus reducing cost, and increases the access rate of the
instructions by the processor, thus improving device
performance.
[0007] For the reasons stated above, and for other reasons stated
below that will become apparent to those skilled in the art upon
reading and understanding the present specification, there is a
need in the art for alternative approaches facilitating reduction
of the amount of nonvolatile storage media in imaging devices.
SUMMARY
[0008] Imaging devices and methods of operating imaging devices are
described that facilitate reducing nonvolatile storage needs of the
imaging devices. The imaging devices are adapted to request control
programs from external devices without the need to maintain a
nonvolatile image of a control program within the imaging device.
Control programs are received on a communication input of the
imaging device and stored on a volatile storage media for use by a
processor of the imaging device. The embodiments can also
facilitate more reliable updating within a networked system in that
updating an image of a control program on one network device can
automatically lead to updating of multiple imaging devices, thus
eliminating a need to individually update each imaging device.
[0009] For one embodiment, the invention provides an imaging
device. The imaging device includes a communication input for
receiving image data from an external device and a formatter for
converting the image data into a printable image as directed by a
control program. The control program is alterable through the
communication input of the imaging device. The imaging device
further contains no nonvolatile image of the control program.
[0010] For another embodiment, the invention provides an imaging
device. The imaging device includes a communication input for
receiving image data and other signals from an external device and
a communication output. The imaging device further includes a
formatter for converting image data into a printable image as
directed by a control program, a first computer-usable media for
storing the control program, and a second computer-usable media
having computer-readable instructions stored thereon capable of
causing a processor to perform a method. The method includes
providing a signal on the communication output of the imaging
device indicative of a desire to transfer a control program from an
external device to the communication input of the imaging device
and waiting for a control program to be received on the
communication input of the imaging device in response to the
signal.
[0011] For yet another embodiment, the invention provides a method
of operating an imaging device. The method includes generating a
request for a control program upon an initialization of the imaging
device. The control program is adapted to convert image data
received by the imaging device into a printable image. The method
further includes providing the request on a communication output of
the imaging device and waiting to receive the control program via a
communication input of the imaging device.
[0012] For a further embodiment, the invention provides a
computer-usable medium having computer-readable instructions stored
thereon capable of causing a processor to perform a method. The
method includes generating a request, in response to an
initialization process, for a control program for converting image
data into a printable image. The method further includes providing
the request on a communication output of the processor and waiting
to receive the control program via a communication input of the
processor.
[0013] Further embodiments of the invention include apparatus and
methods of varying scope.
BRIEF DESCRIPTION OF THE DRAWINGS
[0014] FIG. 1 is a schematic of an imaging device in accordance
with an embodiment of the invention.
[0015] FIG. 2 is a schematic of a formatter in accordance with an
embodiment of the invention.
[0016] FIG. 3 is a flowchart of a method of operating an imaging
device in accordance with an embodiment of the invention.
[0017] FIG. 4 is a flowchart of a method of operating an imaging
device in accordance with another embodiment of the invention.
DETAILED DESCRIPTION
[0018] In the following detailed description of the present
embodiments, reference is made to the accompanying drawings that
form a part hereof, and in which is shown by way of illustration
specific embodiments in which the invention may be practiced. These
embodiments are described in sufficient detail to enable those
skilled in the art to practice the invention, and it is to be
understood that other embodiments may be utilized and that process,
electrical or mechanical changes may be made without departing from
the scope of the present invention. The following detailed
description is, therefore, not to be taken in a limiting sense, and
the scope of the present invention is defined only by the appended
claims and equivalents thereof.
[0019] Standard operation of an imaging device is to load its
control programs during an initialization of the imaging device,
such as during a power-up or re-boot of the device. The control
programs contain at least those instructions enabling the imaging
device to recognize, interpret and convert image date to a
printable image, such as those instructions enabling a processor of
the formatter to recognize an incoming data stream of page
description language (PDL), and to interpret and convert the PDL to
a printable image for input to an engine controlling the mechanical
aspects of the device.
[0020] Traditionally, these control programs have been stored on
the imaging device in a nonvolatile storage media in a compressed
form. The most common form of nonvolatile storage media for imaging
devices is Flash memory, also referred to as nonvolatile
random-access memory (NVRAM). The compressed control programs are
then expanded during the initialization and copied or transferred
to a volatile storage media such as dynamic random-access memory
(DRAM). DRAM is cheaper than NVRAM and DRAM has a higher access
rate than NVRAM. However, DRAM requires a periodic refresh, and
thus an application of power, to maintain its memory contents.
Accordingly, if power is lost to or removed from the imaging
device, the control programs residing in DRAM will be lost, but the
compressed image of the control programs on the NVRAM will be
retained.
[0021] While control programs have been stored on nonvolatile
storage media, this does not imply that the control programs are
necessarily permanent. Although low-end or older imaging devices
may utilize a read-only memory (ROM) that is unalterable by the end
user, it is more common for the control programs to be stored on a
nonvolatile storage media that is alterable by the end user. This
ability is useful for upgrading the control programs, e.g.,
providing different or additional features, or for correcting the
control programs, e.g., providing fixes to known errors within the
control programs.
[0022] As an example, NVRAM can be rewritten or reprogrammed to
change its memory contents to represent the upgraded control
programs. This is typically accomplished by sending a file to the
imaging device having a data structure that is recognized by the
imaging device's operating system as containing control programs.
This file, or firmware upgrade, is typically identified using
header information within the file. When the imaging device
identifies an incoming data stream as containing a firmware
upgrade, the file is processed to replace the control programs
currently residing in the NVRAM.
[0023] For the various embodiments, control programs for one or
more imaging devices are stored remote from the imaging devices for
access during the initialization of the imaging devices. The
control programs are communicated to an input of an imaging device
during an initialization of the imaging device, permitting bypass,
and thus elimination, of nonvolatile storage media devoted to the
control programs. The input is preferably an input/output (I/O)
port of the imaging device, such as a parallel port, serial port,
universal serial bus (USB) port or other such communication port.
The I/O port is used by the imaging device for receiving, among
other things, image data from a network or local host device.
[0024] FIG. 1 is a schematic of an imaging device 110 in accordance
with an embodiment of the invention. The imaging device 110 is in
communication with a host device 120 through a communication
interface 130. The imaging device 110 may be any device for
producing a tangible image from image data. Examples include
printers, facsimile machines (faxes), plotters and multi-function
devices. The host device 120 may be a local host device, such as a
personal computer or other workstation, providing direct
communication between an end user and the imaging device 110. The
host device 120 may further be a networked host device, such as a
network server, acting as an intermediary between an end user and
the imaging device 110.
[0025] The imaging device 110 includes a communication port or I/O
port 112. The I/O port 112 serves as a communication input for
image data and other data, such as configuration data, commands and
firmware upgrades, from the host device 110. The I/O port 112 also
serves as a communication output for communicating status
information or requests to the host device 120.
[0026] Data streams received at the I/O port 112 are interpreted by
a formatter 114. If the data streams are recognized as image data,
such as data describing an image 140, the image data is converted
to a printable image for input to an engine 116. The engine 116
controls operation of a mechanical portion 118 of the imaging
device 110 to produce a tangible image 145 on an output 150.
[0027] FIG. 2 is a schematic of a formatter 114 in accordance with
an embodiment of the invention. The formatter 114 includes a
processor 252 for communication with the I/O port 112 and the
engine 116 of an imaging device 110. The processor is further in
communication with a nonvolatile storage media 254 and a volatile
storage media 256. The storage media 254 and 256 are
computer-usable media for storing computer-readable instructions
for execution by the processor 252.
[0028] The nonvolatile storage media includes a portion of code, or
a set of computer-readable instructions 255. The set of
computer-readable instructions 255 facilitate the operating system
of the formatter 114. That is, the set of computer-readable
instructions 255 enable the processor 252 to communicate across the
I/O port 112 of the imaging device 110 and to communicate with the
engine 116. For one embodiment, the set of computer-readable
instructions 255 are capable of causing the processor 252 to
request and receive a control program from a device external to the
imaging device 110, such as a host device 120.
[0029] The request is provided on the I/O port 112 of the imaging
device 110. The processor 252 then looks for incoming data streams
on the I/O port 112. Incoming data streams are analyzed by the
processor 252 to determine whether they are indicative of a file
containing a valid control program for the imaging device 110,
e.g., as indicated in file header information. When an appropriate
file is identified, the processor 252 processes the information to
store the control program on the volatile storage media 256 as a
portion of code, or a set of computer-readable instructions
257.
[0030] For one embodiment, the nonvolatile storage media 254
includes no computer-readable instructions capable of causing the
processor 252 to convert image data into a printable image for use
by the engine 116, i.e., the imaging device 110 contains no
nonvolatile image of a formatter control program. For another
embodiment, the nonvolatile storage media 254 contains a default
version of a control program capable of causing the processor 252
to convert image data into a printable image. Such a default
version, however, is preferably unalterable by an end user of the
imaging device 110. As an example, the default version of the
control program can be stored on a ROM that is programmed as part
of a manufacturing process of the imaging device 110. The default
version of the control program would be expanded from the
nonvolatile storage media 254 and copied to the volatile storage
media 256 for use by the processor 252 if no control program is
available in response to the request provided at the I/O port 112.
For such an embodiment, the imaging device 110 would have a base
functionality as provided by the default version of the control
program. Additional features or fixes would be available only upon
receiving a control program via the I/O port 112 for transfer to
the volatile storage media 256.
[0031] FIG. 3 is a flowchart of a method of operating an imaging
device in accordance with an embodiment of the invention. At action
box 360, the imaging device generates a request for a control
program upon an initialization of the imaging device. For example,
during a boot sequence, a processor generates a signal indicative
of a desire to receive a control program from an external device.
In more detail, the imaging device may request identification of
what host device it is connected to. When a host device
acknowledges, the imaging device may ask if the host has a control
program for the imaging device. If the host device acknowledges
that it has an appropriate image of the control program, the
imaging device can then request that it be communicated to the
imaging device.
[0032] The imaging device provides the request on a communication
output of the imaging device, e.g., the I/O port, at action box
362. For one embodiment, the request is provided on the
communication output of the imaging device through a communication
output of a formatter of the imaging device as provided, e.g., on a
communication output of a processor of the formatter. If the
imaging device is connected to a local host device, or if a host
device acknowledged that a control program was available, the
imaging device may direct the request to a specific device.
Alternatively, if the imaging device is on a network, and the host
device did not acknowledge that a control program was available,
the request may be broadcast to other network devices.
[0033] After communicating the request, the imaging device waits to
receive a control program on a communication input of the imaging
device, e.g., the I/O port, at action box 364. Image data may be
accepted by the imaging device while it waits for the control
program. However, such image data would be stored on some
computer-usable media, such as the volatile storage media or even
the nonvolatile storage media of the imaging device, until a
control program was available to convert the image data to a
printable image.
[0034] When a control program, i.e., a data stream having data
representative of an image of the control program, arrives at the
communication input of the imaging device at action box 366, the
control program is transferred to the volatile storage media for
use by the processor to convert any image data into a printable
image. Recognizing a data stream as having data representative of a
control program need not be different from existing recognition of
a firmware upgrade file. However, instead of programming a
nonvolatile storage media to contain the compressed image of the
control program, a decompressed image is transferred directly to
the volatile storage media.
[0035] FIG. 4 is a flowchart of a method of operating an imaging
device in accordance with another embodiment of the invention. For
the embodiment of FIG. 4, the imaging device has an available image
of a default control program.
[0036] At action box 470, the imaging device generates a request
for a control program upon an initialization of the imaging device.
For example, during a boot sequence, a processor generates a signal
indicative of a desire to receive a control program from an
external device. The imaging device provides the request on a
communication output of the imaging device, e.g., the I/O port, at
action box 472. After communicating the request, the imaging device
waits to receive a control program on a communication input of the
imaging device, e.g., the I/O port, at action box 474. Image data
may be accepted by the imaging device while it waits for the
control program.
[0037] If no control program is received within a predetermined
timeout period at decision box 476, a default control program is
transferred to the volatile storage media at action box 478 for use
by the processor to convert any image data into a printable image.
The imaging device may provide some indication to a user of the
imaging device that a control program could not be found external
to the imaging device. For example, the imaging device may provide
a message for display to a user of the host device and/or the
imaging device may provide a message on a display of the imaging
device itself. If a control program arrives at the communication
input of the imaging device at decision box 476 prior to an
expiration of the timeout period, the control program received at
the communication input is transferred to the volatile storage
media at action box 480 for use by the processor to convert any
image data into a printable image.
[0038] The methods of the various embodiments are suited to be
performed by computer processors in response to instructions in
either software, firmware or hardware. These computer-readable
instructions are stored on a computer-usable medium and are adapted
to cause the processor to perform the methods. In a hardware
solution, the instructions are hard coded as part of a processor,
e.g., an application-specific integrated circuit (ASIC) device, to
perform the methods of one or more of the embodiments. In a
software or firmware solution, the instructions are stored for
retrieval by the processor. Some additional examples of
computer-usable media include static or dynamic random access
memory (SRAM or DRAM), read-only memory (ROM),
electrically-erasable programmable ROM (EEPROM), magnetic media and
optical media, whether permanent or removable.
[0039] The various embodiments are particularly beneficial in
networked environments having multiple imaging devices using the
same control program. In this scenario, upgrading these multiple
devices may be accomplished simply by providing the updated control
program images to a network server acting as a host device for each
of the imaging devices. As each imaging device is initialized, it
will look to the host for its control program and automatically
receive the updated version without individually updating each
imaging device.
[0040] Although the various embodiments reduce the need for
nonvolatile storage media, in that the control programs need not
reside on a nonvolatile storage media within the imaging device,
the imaging devices may still contain some base level of
nonvolatile storage media. For example, it may be desirable to
maintain a nonvolatile image of code for use in troubleshooting or
for providing other user help information.
CONCLUSION
[0041] Imaging devices and methods of operating imaging devices
have been described that facilitate reducing nonvolatile storage
needs of the imaging devices. The imaging devices are adapted to
request control programs from external devices without the need to
maintain a nonvolatile image of a control program within the
imaging device. Control programs are received on a communication
input of the imaging device and stored on a volatile storage media
for use by a processor of the imaging device. The embodiments can
also facilitate more reliable updating within a networked system in
that updating an image of a control program on one network device
can automatically lead to updating of multiple imaging devices,
thus eliminating a need to individually update each imaging
device.
[0042] Although specific embodiments have been illustrated and
described herein, it will be appreciated by those of ordinary skill
in the art that any arrangement that is calculated to achieve the
same purpose may be substituted for the specific embodiments shown.
Many adaptations of the invention will be apparent to those of
ordinary skill in the art. Accordingly, this application is
intended to cover any such adaptations or variations of the
invention. It is manifestly intended that this invention be limited
only by the following claims and equivalents thereof.
* * * * *