Device-related software Installation
Field of the Invention The present invention relates to device-related software (hereinafter "DRS") installation and more particularly but not exclusively to the installation of DRS for universal serial bus (USB) devices.
Background of the Invention
After serial and parallel interfaces, the USB interface is fast becoming popular as a means of connecting peripheral devices to computers. The USB interface is covered by an International standard and provides high speed communication. It is also particularly preferred in that it is specially designed to support plug and play connections without needing to open up the PC, for example to insert an adapter card.
USB devices, that is to say the ^peripheral devices designed to be connected to a computer via a USB interface, generally require a software driver that operates in association with the operating system of the computer. The peripheral device manufacturers generally prepare such a software driver and then make it available to the operating system providers so that it can be included with the operating system. Then, when the device is first connected to the cohiputer via the USB interface, the operating system identifies the device and installs the appropriate driver.
In general, such an arrangement, known as "plug & play", is advantageous to the user since device installation is automatic. However, device manufacturers are reliant on the operating system providers and furthermore, an operating system that predates a given device will not have the appropriate driver. Lack of the appropriate driver can be partly overcome in that operating systems also include generic drivers that can be selected in the absence of anything more specific. Nevertheless, generic drivers cannot be guaranteed to take advantage of all of the features of the peripheral device. Furthermore, operating system providers provide regular driver updates to their operating system which are distributed over the internet or in other ways, and the manufacturer may also supply a driver disk with the device. This latter solution however defeats the whole aim of "plug & play".
Summary Of The Invention
It is therefore an object of the present invention to ensure that a specific DRS, such as a driver, is always available with the peripheral device.
In accordance with a general aspect of the present invention there is thus provided a peripheral device operable to identify whether a specific DRS is available for installation or is installed on a computer to which it is connected, and in the event that such a specific DRS is not installed or is not available for installation, is operable to install a DRS stored in its own memory onto the computer.
In accordance with first aspect of the present invention there is provided a peripheral device for a computer, having stored therein device-related software for permitting interaction between the device and the computer, wherein said peripheral device is operable to upload the device related software to said computer for installation of said peripheral device by said computer. Preferably, the device-related software comprises a device driver. It may also comprise one or more configuration files and other software necessary for smooth running of the peripheral device under the operating system. Typically, the device-related software comprises a plurality of software items, each of said items being appropriate for a different operating system or a different version of an operating system.
In one preferred embodiment the peripheral is operable as a keyboard emulator. Thus the device may have a primary function embodied in a functional unit and a switch for switching between the keyboard emulator and the functional unit.
Preferably the peripheral is switched as a keyboard emulator upon starting of the computer.
One preferred embodiment is operable to recognize a device-related software identifier string relating to one of the software items stored therein and, in response thereto, to switch to the functional unit.
Preferably, the keyboard emulator is operable to upload a program to the computer to obtain identification data of the operating system used by the computer.
An embodiment has stored therein a plurality of device-related software files and selects therefrom an appropriate device-related software file or files for uploading, preferably based on an identification of an operating system installed on said computer.
Embodiments of the present invention particularly relate to peripheral devices designed to be connected to a computer via a USB interface.
According to a second aspect of the present invention there is provided a device for connecting to a computer having an operating system and requiring a device-related software item suitable for said device and said operating system, to be installed on said computer to co-operate with said operating system to drive said device, characterized by having a memory in which at least one suitable device-related software item is stored, and an uploading controller for uploading said device-related software item from said device to said computer.
The device is preferably a USB device and preferably the uploading controller is operable to recognize a device-related software identification string from the computer indicating that a suitable device-related software item is already installed on the computer.
Preferably, the uploading controller is operable to recognize a device-related software identification string from the computer indicating that a suitable device-related software item is already installed on the computer.
Preferably, the uploading controller is operable to upload said suitable device-related software item to said computer only when no said device-related software identification string is recognized.
Preferably the device stores plurality of device-related software items each suitable for a different operating system, and said uploading controller is operable to interrogate said computer to find out what operating system is in use and thereby to select a device-related software item suitable for said operating system.
According to a third aspect of the present invention there is provided a method of installing a peripheral device requiring a device-related software item, onto a computer using an operating system having an automatic installation procedure, comprising the steps of storing the device-related software item in the peripheral device, determining whether the device-related software item is operative on the computer, if the device-related software item is not operative on the computer then uploading the device-related software item from the peripheral device to the computer, and
allowing the operating system to detect the device and carry out its automatic installation procedure using the uploaded device-related software item.
Preferably, said peripheral device has a plurality of device-related software items stored therein, each one suitable for a different operating system or version of an operating system, said step of uploading comprising the steps of sending a command from the peripheral device to the computer requesting identification of the operating system, selecting one device-related software item from said plurality thereof, which is suitable for the operating system so identified, and uploading said selected device-related software item.
Preferably, said command requesting identification of the operating system is sent as a character string issued by emulating a keyboard.
According to a fourth aspect of the present invention there is provided a peripheral device for a computer comprising a keyboard emulator, the device being operable to be switched between a first mode of standard operation as a peripheral device and a second mode of operation using said keyboard emulator.
Preferably, the device is a USB device.
Preferably, the device comprises one or more device-related software files and is operable in the second mode of operation to determine whether a device-related software item corresponding to said device is installed on a computer to which it is attached and, if not, to upload one of said device-related software files to said computer for installation.
Brief Description of the Drawings
For a better understanding of the invention and to show how the same may be carried into effect, reference is now made, purely by way of example, to the accompanying drawings, in which:
Fig. 1 is a simplified diagram showing a computer having peripheral devices connected thereto in accordance with a first embodiment of the present invention,
Fig. 2 is a simplified block diagram showing the internal construction of a peripheral device in accordance with an embodiment of the present invention, and
Fig. 3 is a simplified flow chart showing the operation of the peripheral device of Fig. 2.
Description of the Preferred Embodiments
Reference is now made to Fig. 1, which shows a computer 10 to which are connected plug-and-play peripheral devices including a printer 12, a joystick 14 and a modem 16. Also shown are a keyboard 18 and a mouse 20. A network connection is not shown but may also be present. At least one of the peripherals 12 to 20 is a USB device and is connected via a USB interface. At least some of the peripheral devices 12-20 requires a DRS which is a software program that interacts with the operating system to operate the device. Upon attachment of a new plug-and play device to the computer, the operating system is generally operable to identify the device, following which it searches through its collection of DRS' s for the most appropriate software for the identified device. If no suitable DRS is found the user is invited to insert a disk containing the DRS. If a suitable DRS is found the user is asked to confirm that the DRS is suitable or to choose another DRS, and, once a suitable DRS is settled on, the operating system installs the DRS and sets up the device for use.
In accordance with an embodiment of the present invention the device being attached to the computer itself determines whether the required DRS is installed on the operating system. If so the device operates as normal. If, however, the required DRS is not installed on the operating system then the device uploads a suitable DRS from its own memory to the computer as will be described in more detail below. Installation may then proceed in the usual manner, using the uploaded DRS.
Reference is now made to Fig. 2 which is a simplified block diagram showing the internal construction of a USB device 30 in accordance with an embodiment of the present invention. A functional module 32 preferably comprises all the functionality of the normal operation of the device under control of the DRS. A keyboard emulator 34 is also provided, which provides an interface with the computer that allows the device 30 to appear to the computer as if it is a keyboard. A function switch 36 is operable to switch between the functional module and the keyboard emulator.
A memory 38, preferably a non- volatile memory such as ROM, PROM or flash memory, is connected to the keyboard emulator 34. Within the memory is preferably
stored a series of DRS' s, each one appropriate to a different operating system or version thereof. In addition there may be provided one or more configuration files allowing the peripheral device to be configured in different ways, either selectable by the user or by the software.
The peripheral device is preferably connectable to the computer via a USB interface 40.
A software installation module 42 preferably comprises a control program for the installation procedure. It is shown herein as a separate block for purposes of clarity although the skilled person will appreciate that in fact it can be implemented in various ways.
The installation procedure of a peripheral device according to an embodiment of the present invention will now be described with reference to Fig. 3, which is a generalized flow diagram showing operation of the peripheral device upon starting operation thereof.
Upon starting the peripheral device, which generally occurs during plugging in of the device, the function switch 36 automatically switches the peripheral device over to the keyboard emulator. The device therefore initially registers with the operating system as a keyboard. The DRS, if installed, either automatically sends out DRS identification strings, or replies to the device request for the identification strings, with the intention of obtaining the acknowledgement of the corresponding device. Thus strings received are intercepted at the keyboard emulator port and read. If the DRS identification string corresponding to the peripheral device of the invention is identified, then the device knows that the appropriate DRS is installed on the computer. The keyboard emulator 34 is disconnected and the functional module 32 is connected in its place for normal operation of the device.
A time out or other condition may be set to define a window for receiving the identification string. If the DRS identification string is not identified within the window then the device begins an automatic installation procedure as follows: First of all the keyboard emulator preferably sends keyboard commands to the operating system to obtain the identity of the operating system. In response the operating system sends one or more data strings indicating its type and its version number. The received data strings are used to select the appropriate DRS for the operating system type and version
number thus identified, and the appropriate DRS is uploaded to the computer. The keyboard emulator thus sends commands and data to upload the DRS or the installation program that will choose and install the DRS. This is followed by a step of disconnecting the keyboard emulator 34 and connecting the functional module 32 in its place so that the peripheral device no longer appears as a keyboard to the computer.
Now the operating system is operable to detect the device as a new device in the normal way. The correct DRS is located on the computer in a place where the operating system may expect to find it, and thus a standard "plug & play" installation procedure can be carried out to install the new peripheral device. No intervention on the part of the user is required to find the correct DRS.
In the foregoing description, the terms "software" and "device-related software" or "DRS" have been used to describe both one or more programs, particularly including driver programs and data including configuration files. In the claims which follow, the term "software item" is used to refer to a single one of any of the items referred to as software etc. in the forgoing description.
It is appreciated that various features of the invention which are, for clarity, described in the contexts of separate embodiments may also be provided in combination in a single embodiment. Conversely, various features of the invention which are, for brevity, described in the context of a single embodiment may also be provided separately or in any suitable subcombination.
It will be appreciated by persons skilled in the art that the present invention is not limited to what has been particularly shown and described hereinabove. Rather, the scope of the present invention includes both combinations and subcombinations of the various features described hereinabove as well as variations and modifications thereof which would occur to persons skilled in the art upon reading the foregoing description and which are not in the prior art.