"METHOD AND APPARATUS FOR ENHANCING PRINTER TO COMPUTER
INTERFACE"
BACKGROUND OF THE INVENTION
1. Field of the Invention:
This invention relates to computer printers. More particularly, this invention relates to a computer printer having the ability to issue control commands to a computer.
2. The Prior Ait-
Existing computer printers are typically configured as "dumb" peripherals. They receive data and control signals from a host computer and require that the user have knowledge as to how to operate the printer through the computer. Such printers are difficult for novice users to operate.
Some previous printers have featured bidirectional communication between the computer and the attached printer. For example, the IEEE- 1284 Standard Signaling Method for a Bidirectional Parallel Peripheral Interface for Personal Computers defines a parallel interface that has been used to provide the bi-directional communication between a computer and an attached printer. However, the computer controls the interface, and initiates all transfers between the computer and the printer and the printer can not initiate a transfer. For example, using a IEEE- 1284 parallel port a printer could not feature a "PRINT" button that would cause the computer to initiate printing of the currently opened document.
Typically, a computer keyboards is periodically polled for new input by a personal computer, thus the keyboard is able to initiate actions on the personal computer. If a printer can perform the functions of both a printer and a keyboard, then the printer could initiate transfers from the printer to the computer. The USB (Universal Serial Bus) protocol supports generation of keyboard functions by peripheral devices, thereby allowing a peripheral device to function emulate an additional keyboard connected to the computer.
Therefore, there exists a need for a printer that emulates a keyboard with respect to generating printer control functions.
SUMMARY OF THE INVENTION
The above-noted disadvantages of the prior art are overcome by the present invention, which in one aspect is a method of executing commands on a printer coupled to a computer, in which at least one input is received from a user via a user interface on the printer. The input is translated into a corresponding computer command. The computer command is transmitted to the computer via a bidirectional computer interface bus so as to cause the computer to execute a predetermined action corresponding to the computer command.
In another aspect, the invention is a printer for use with a computer that includes a printer mechanism and a printer control circuit operatively coupled to the printer mechanism so as to control the printer mechanism. A bidirectional computer interface bus, that is operatively coupled to the printer control circuit, receives data from the computer and selectively transmits data to the computer. A user interface is operatively coupled to the bidirectional computer interface bus. The user interface includes at least one user input that, when asserted, causes a computer command to be placed on the bidirectional computer interface bus so as to cause the computer to execute a predetermined action corresponding to the computer command.
It is an advantage of the invention that control features of a printer will work on new versions of computer operating systems without changing any of the firmware in the printer, because the USB interface and the keyboard shortcuts will remain the same.
These and other aspects will become apparent from the following description of the preferred embodiment taken in conjunction with the following drawings, although variations and modifications may be effected without departing from the spirit and scope of the novel concepts of the disclosure.
BRIEF DESCRIPTION OF THE FIGURES OF THE DRAWINGS
FIG. 1 is a schematic diagram of one embodiment of the invention.
FIG. 2 A is a schematic diagram of a first embodiment of the user interface.
FIG. 2B is a schematic diagram of a second embodiment of the user interface.
FIG. 3 is a flow chart describing a method employed in one embodiment of the invention.
DETAILED DESCRIPTION OF THE INVENTION
A preferred embodiment of the invention is now described in detail. Referring to the drawings, like numbers indicate like parts throughout the views. As used in the description herein and throughout the claims that follow, the meaning of "a," "an," and "the" includes plural reference unless the context clearly dictates otherwise. Also, as used in the description herein and throughout the claims that follow, the meaning of "in" includes "in" and "on" unless the context clearly dictates otherwise.
In one typical embodiment, as shown in FIG. 1, the invention is a printer system 100 that includes a printer 120 connected to a computer 110 via a bidirectional computer interface bus 112. The bidirectional computer interface bus could be of the type referred to as a Universal Serial Bus (USB). The printer 120 includes a printer mechanism 122 that is controlled by a printer controller 124. The printer controller 124 receives instructions from a user interface 130, which are transmitted to the bidirectional computer interface bus 112 through a bus interface 126 connected to the bidirectional computer interface bus 112 via a port 128.
Upon receiving an input from the user interface 130, the printer controller 124 translates the input into a computer command so that the printer controller 124 emulates a keyboard. The translation may be done in one of several ways. For example, the
printer controller could employ a look-up table resident in memory to generate a computer command. Similarly, the computer commands could be hard wired in the printer controller 124 or they could be resident in firmware.
The USB bus interface 126 implements a USB compound device consisting of a printer function and a keyboard function. The USB interface 126 also implements a USB mass storage device function, which is used to upload the printer driver from the printer to the computer.
As shown in FIG. 2 A, the user interface may include a button panel 210 included with the printer. In the example shown, the button panel 210 includes a plurality of user input buttons 212 (or other input switches), each corresponding to a different function, which may be described with a plurality of adjacent inscriptions 214. For example, button 212a could cause the printer to send a command to the computer that causes the computer to send printer-specific instructions back to the printer to cause the current file in the computer to be printed. Thus, next to button 212a is a "Print Current File" indication 214a. Similarly, button 212b could cause the printer to send a command to the computer that causes the computer to open a change printer settings window. Thus, next to button 212b is a "Change Printer Settings" indication 214b. Button 212c could cause the printer to send a command to the computer that causes the computer to send printer-specific instructions back to the printer to cause the printer to upload a printer driver embedded in the printer controller. Thus, next to button 212c is a "Upload Driver" indication 214c. By including these buttons 212, the printer could be made user- friendly for the inexperienced user.
As shown in FIG. 2B, the printer could also include a voice response unit 220, which could include a microphone 222 (which could be embedded in the printer housing, or a stand-alone microphone, as shown), an analog-to-digital converter 224 that converts the analog signal from the microphone 222 into a digital signal, and voice recognition processor 226, which may be included in the printer controller. Not shown, but also included, are any other necessary amplification and signal processing circuits and software necessary for the specific application, as is commonly known in the art. The processor 226 would be programmed with conventional voice-recognition software, or
could include dedicated voice recognition hardware. By having this voice recognition capability, one could control the printer using voice commands. For example, the user could issue a verbal "print current file" command to cause the printer to print the current file. This would cause the controller to generate a data packet that is the same as a USB keyboard corresponding to when the user holds down the "CTRL" key while pressing the "P" key and then presses the "ENTER" key.
As shown in FIG. 3, in one embodiment of the method 300 of the invention, the printer controller waits until a control input is received 302 from the user interface. Once an input is received, the controller determines 304 if the input is from the button panel (in the case when the interface includes more than one source of input). If the input is not from the button panel, then the controller determines 306 if the input is from the voice response unit (if the printer is so equipped). If the input is a voice input, the controller converts 308 the voice signal to a corresponding digital signal. If the result of test 306 is "no," then an error has occurred and the controller performs an appropriate error routine 322.
Next, the controller determines what type of command has been received. It performs a test 310 to determine if the input indicates that the user desires to print the current file. If the result of test 310 is "yes," then the controller generates a "print current file" command 312. If it is "no," then the controller performs a test 314 to determine if the user desires to edit the printer control settings. If the result of test 314 is "yes," then the controller generates an "edit printer control settings" command 316. If the result of test 314 is "no," then the controller performs a test 318 to determine if the user desires that an embedded printer driver be uploaded to the computer. If the result of test 318 is "yes," then the controller generates an "upload driver" command 320. If the result of test 318 is "no," then the an improper input has been received and the controller executes an appropriate error routine 322.
The command will take the form of a keyboard-generated command. For example, if the command is a "print current file" command, then the controller could generate a data packet corresponding to a "CNTL-P" input from a computer keyboard. Thus, the controller emulates a keyboard. Once a computer command corresponding to
the user input has been generated, the controller transfers 324 the command packet to the Universal Serial Bus controller and the command is transmitted 326 to the host computer via the Universal Serial Bus.
While the embodiment shown above determines the command type by executing a series of tests, this function could be accomplished in firmware with a PAL, or through a non- volatile memory look-up table. The translation of the user inputs to the command data packets could also be accomplished by hard wiring discrete logic elements.
The above described embodiments are given as an illustrative examples only. It will be readily appreciated that many deviations may be made from the specific embodiment disclosed in this specification without departing from the invention. Accordingly, the scope of the invention is to be determined by the claims below rather than being limited to the specifically described embodiment above.