This application claims priority from Japanese Patent Application No. 2008-208024 filed Aug. 12, 2008. The entire content of this priority application is incorporated herein by reference.
The disclosure relates to a periphery device that becomes controllable by a data processing device upon installing a driver to the data processing device, a storage medium storing a set of program instructions for controlling the data processing device to install the driver, and a driver install system including the periphery device and the data processing device.
There have been proposed different methods of installing a driver corresponding to a periphery device, such as a printer, to Operating System (OS) of a data processing device. In a first method, the driver is installed from such media as a flexible disk or a CD-ROM attached as an accessory to the periphery device. In a second method, on the other hand, the driver is installed, when the periphery device is brought into connection with the data processing device, from a memory of the periphery device, without using such media.
Because which one of the above-described two methods is more convenient depends on the structure of the data processing device, adopting either one of the two methods cannot fully enhance the convenience.
In view of the foregoing, it is an object of the invention to provide a technology that enables install of a driver corresponding to a periphery device to a data processing device with a method best suited for a configuration of the data processing device.
In order to attain the above and other objects, the invention provides a periphery device including a connector, a first storing unit, and a second storing unit. The connector is capable of being connected to a data processing device including an install unit and an execute unit. The install unit installs, if a driver for controlling a specific function of the periphery device is not installed when the periphery device is brought into connection with the data processing device through the connector, the driver from an install source registered in a memory area. The execute unit executes program instructions when the periphery device is brought into connection with the data processing device if the execute unit is being set to execute the program instructions when the periphery device is brought into connection with the data processing device. The second storing unit stores a set of the program instructions executable on the data processing device and usable for controlling the data processing device to execute the processing. The program instructions includes selecting one of the first storing unit and a third storing unit based on at least one predetermined condition before the install unit installs the driver, and registering the selected one of the first storing unit and the third storing unit as the install source in the memory area. The third storing unit is provided to a device other than the periphery device.
There is also provided a storage medium storing a set of program instructions executable on a data processing device for controlling the data processing device to execute a registering processing. The data processing device includes an install unit and an execute unit. The install unit installs, if a driver for controlling a specific function of a periphery device is not installed when the periphery device is brought into connection with the data processing device, the driver from an install source registered in a memory area. The execute unit executes the program instructions when the periphery device is brought into connection with the data processing device if the execute unit is being set to execute the program instructions when the periphery device is brought into connection with the data processing device. The periphery device includes a first storing unit and a second storing unit storing the set of program instructions. The program instructions includes selecting one of the first storing unit and a third storing unit based on at least one predetermined condition before the install unit installs the driver, and registering the selected one of the first storing unit and the third storing unit as the install source in the memory area. The third storing unit is provided to a device other than the periphery device.
There is also provided a driver install system including a data processing device and a periphery device. The data processing device includes a memory area, an install unit that installs, if a driver for controlling a specific function of the periphery device is not installed when the periphery device is brought into connection with the data processing device, the driver from an install source registered in the memory area, and an execute unit that executes program instructions when the periphery device is brought into connection with the data processing device if the execute unit is being set to execute the program instructions when the periphery device is brought into connection with the data processing device. The periphery device includes a first storing unit and a second storing unit that stores a set of the program instructions executable on the data processing device and usable for controlling the data processing device to execute the processing. The program instructions includes selecting one of the first storing unit and a third storing unit based on at least one predetermined condition before the install unit installs the driver, and registering the selected one of the first storing unit and the third storing unit as the install source in the memory area. The third storing unit is provided to a device other than the periphery device.
Further, there is provided a data processing device including a connector capable of being connected to a peripheral device that includes a first storing unit, a memory area, an install unit that installs a driver for controlling a specific function of the periphery device if the driver is not installed when the data processing device is brought into connection with the periphery device through the connector, and an execute unit that executes program instructions when the data processing device is brought into connection with the periphery device if the execute unit is being set to execute the program instructions when the data processing device is brought into connection with the periphery device. The install unit installs the driver from an install source registered in the memory area. In accordance with the program instructions, the execute unit selects one of the first storing unit and a second storing unit based on at least one predetermined condition and registers the selected one of the first storing unit and the second storing unit as the install source in the memory area before the install unit installs the driver. The second storing unit is provided to a device other than the periphery device.
The particular features and advantages of the invention as well as other objects will become apparent from the following description taken in connection with the accompanying drawings, in which:
A driver install system 100 according to an embodiment of the invention will be described while referring to the accompanying drawings.
As shown in
The periphery device 1 is a USB multifunction device having a storage function and a printer function. The periphery device 1 includes a storage device section 1A providing the storage device function, a printer section 1B providing the printer function, a controller 1C, a memory 1D storing various programs 40 and descriptors 50, and a USB interface 1E.
The storage device section 1A corresponds to a single logical unit of the USB multifunction device, and includes a hard disk 11 and an input/output controller (not shown) that enables access to the hard disk 11 with a method complying with the USB standard.
The printer section 1B corresponds to a single logical unit of the USB multifunction device. Although not shown in the drawings, the printer section 1B includes an image forming mechanism for forming images on a print media, such as a sheet of paper, with an electrophotographic method or an inkjet method. The printer section 1B also includes an input/output controller (not shown) that enables access to the image forming mechanism with a method complying with the USB standard.
The controller 1C performs overall control of the periphery device 1 based on the programs 40 stored in the memory 1D.
The data processing device 3 is a personal computer (PC) and includes a controller 21, a hard disk 23, a CD-ROM drive 25, and a USB interface 3A.
The controller 21 includes hardware, such as a CPU, a ROM, and a RAM, and software that operates on the hardware. The software includes an operating system (OS) 21A and various application softwares 21B.
The OS 21A is an operating system having multitask function for parallel processing of a plurality of tasks. An example of an operating system having such a multitask function is Windows.
Since functions of this type of OS are well-known in the art, detailed description thereof will be omitted. In the following description, it is assumed that the data processing device 3 is equipped with Windows.
Next, an install method to install a printer driver for controlling the printer function of the periphery device 1 to the data processing device 3 will be briefly described.
When the periphery device 1 is brought into connection with the data processing device 3 via the USB cable 5 through the USB interfaces 1E and 3A, data is transmitted and received between the periphery device 1 and the data processing device 3 in a method complying with the USB standard. As a result, the data processing device 3 recognizes the periphery device 1 as a mass storage device.
Also, the data processing device 3 loads a USB mass storage driver 31 normally provided to the OS 21A onto a memory in the controller 21. This enables the data processing device 3 to access files in the hard disk 11 of the periphery device 1.
Then, the OS 21A retrieves autorun information from a file stored in the hard disk 11, using an autorun function normally provided to the OS 21A. The autorun information includes information to activate a driver search program 33A stored in the hard disk 11. As a result, the driver search program 33A is loaded from the hard disk 11 into the memory in the controller 21, so that a driver search program 33B is activated in the controller 21.
When the driver search program 33B is activated in this manner, the driver search program 33B executes a driver search process (described later) for searching a drive suitable as an install source from which a printer driver is installed. Information on the install source is written into an install source information file 35 in the hard disk 23. In this embodiment, as will be described later, either one of a printer driver 39A in the hard disk 11 or a printer driver 39B in a CD-ROM media 25A set in the CD-ROM drive 25 is selected, and a location of the selected printer driver 39A or 39B is stored, as the information on the install source, into the install source information file 35. In other words, either the hard disk 23 or the CD-ROM drive 25 is selected and registered as the install source in the install source information file 35. Note that in this embodiment, a pathname of the printer driver 39A or the printer driver 39B is stored as the information on the install source.
Even while the driver search process is being executed, transmission and reception of data continues between the periphery device 1 and the data processing device 3 in the method complying with the USB standard. As a result, the data processing device 3 recognizes the periphery device 1 also as a printer. Also, the OS 21A of the data processing device 3 determines whether or not a printer driver has been installed. If a printer driver has not been installed, then an installer 37 of the OS 21A is activated to execute an install process so as to install the printer driver.
When the install process starts, first the installer 37 reads information on the install source (i.e., pathname) from the install source information file 35. Then, the installer 37 installs a printer driver from a file indicated by the pathname (or a certain file in a directory indicated by the pathname). As a result, a printer driver 39C is stored into the hard disk 23 of the data processing device 3, and setting information for a printer is stored in a registry or other memory area.
The printer driver 39C installed in this manner is loaded into a memory of the controller 21 when print data is output from the data processing device 3 to the periphery device 1, so that a printer driver 39D functions in the controller 21 to output the print data to the periphery device 1.
Next, processes executed in the data processing device 3 and the periphery device 1 when the periphery device 1 is brought into connection with the data processing device 3 via the USB cable 5 will be described in detail with reference to
As shown in
More specifically, as shown in
Receiving the device descriptor, the data processing device 3 recognizes the periphery device 1 as a device that has a logical unit complying with the USB standard, and sets a device address of the logical unit. Then, the data processing device 3 again requests a device descriptor from the periphery device 1 in S110. In response, the periphery device 1 executes in S210 the device descriptor transmission process, so that a device descriptor is again transmitted from the periphery device 1 and received by the data processing device 3. As a result, the data processing device 3 obtains various information, included in the device descriptor, relating to the logical unit of which the device address has been set.
Here, the device descriptor transmitted from the periphery device 1 to the data processing device 3 in S205 and S210 is information relating to the storage device section 1A, and the information includes information indicating that the logical unit corresponding to the storage device section 1A is a USB mass storage class device.
As shown in
If any device other than the periphery device 1 (a printer other than the periphery device 1, for example) is being connected to the data processing device 3, then a negative determination is made in S115 (S115:NO). In this case, it is determined in S150 whether or not a driver corresponding to the connected device has been installed. If so (S150:YES), then the process of
On the other hand, if the periphery device 1 is being connected to the data processing device 3 as in this embodiment, a positive determination is made in S115 (S115:YES), because the device descriptor obtained in S110 includes the information indicating a USB mass storage class device.
Then, in S120, the data processing device 3 installs an OS standard mass storage driver. As a result, the USB mass storage driver 31 functions in the controller 21 of the data processing device 3.
As shown in
Receiving the configuration descriptor, the data processing device 3 recognizes configurations of endpoint and an interface to use when accessing the storage device section 1A, enabling data communication with the storage device section 1A.
As shown in
More specifically, the autorun function is a function that, if a file having a specific name exists in a route directory when the data processing device 3 recognizes a file system in the hard disk 11 and assigns a drive letter, reads autorun information from the file and execute a process based on the autorun information. In this embodiment, the data processing device 3 loads the driver search program 33A into a memory in the controller 21 based on the autorun information. As a result, the driver search program 33B functions in the controller 21. When the driver search program 33B is activated in this manner, the data processing device 3 executes the driver search process shown in
Here, the driver search process will be described with reference to
Because the CD-ROM media 25A is set to the CD-ROM drive 25 in this embodiment, a positive determination is made in S310 (S310:YES). Then, it is determined in S315 whether or not a printer driver (the printer driver 39A) is being stored in the periphery device 1.
If it is determined in S315 that no printer driver exists in the periphery device 1 (S315:NO), then in S345, a location (i.e., pathname) of the printer driver 39B stored in the CD-ROM media 25A is written into the install source information file 35, and the driver search program shown in
On the other hand, if a positive determination is made in S315 (S315:YES), then it is determined in S320 whether or not a printer driver (the printer driver 39B) corresponding to the periphery device 1 is being stored in the media (CD-ROM media 25A). More specifically, both a filename of the printer driver 39A and a filename of the printer driver 39B are obtained, and the two obtained filenames are compared. If the two filenames match, then it is determined that a printer driver of the periphery device 1 exists in the media (CD-ROM media 25A).
If a positive determination is made in S320 (S320:YES), then in S325, a driver version determining process is executed. In the driver version determining process, version information of the printer drivers 39A and 39B are obtained, and it is determined which one of the printer drivers 39A and 39B is newer version. Next in S330, a pathname of newer one of the printer drivers 39A and 39B is stored in the install source information file 35. That is, if the printer driver 39B is newer version, then a pathname of the printer driver 39B is stored in the install source information file 35. On the other hand, if the printer driver 39A is newer version, then a pathname of the printer driver 39A is stored in the install source information file 35. After the process of S330, the driver search process ends.
If a negative determination is made in S320 (S320:NO), this means that a printer driver corresponding to the periphery device 1 only exists in the periphery device 1. Thus, a pathname of the printer driver (printer driver 39A) in the periphery device 1 is stored in the install source information file 35 in S340, and then the driver search process ends.
If a negative determination is made in S305 or S310 (S305:NO or S310:NO), then the process proceeds to S335 so as to determine whether or not a printer driver exists in the periphery device 1. If so (S335:YES), meaning that a printer driver of the periphery device 1 only exists in the periphery device 1, the process proceeds to S340. On the other hand, if not (S335:NO), this means that a printer driver of the periphery device 1 exists neither in the data processing device 3 nor in the periphery device 1, and the driver search process ends.
As mentioned above, the driver search process described above is started in S125 of
As shown in
More specifically, as shown in
Receiving the device descriptor, the data processing device 3 recognizes the periphery device 1 as a device that has a logical unit complying with the USB standard, and sets a device address of the logical unit. Then, the data processing device 3 again requests a device descriptor from the periphery device 1, and the periphery device 1 executes in S225 the device descriptor transmission process in response to the request.
As a result, a device descriptor is again transmitted from the periphery device 1 and received by the data processing device 3. Receiving the device descriptor, the data processing device 3 obtains various information, included in the device descriptor, relating to the logical unit of which the device address has been set.
Here, the device descriptor transmitted from the periphery device 1 to the data processing device 3 in S220 and S225 is information corresponding to the printer section 1B and including information indicating that the logical unit corresponding to the printer section 1B is a printer class device.
As shown in
If a negative determination is made in S133 (S133:NO), then the process ends. On the other hand, if a positive determination is made in S133 (S133:YES), then the process proceeds to S135 to determine whether or not a driver of the device (logical unit) newly recognized in S130 has been installed.
If so (S135:YES), this means that no driver needs to be installed. Therefore, the process of
If the user selects “install the software automatically” using the radio button 43 and instructs an install to the data processing device 3, then in S145 the installer 37 installs a device driver from an install source into the hard disk 23 as the printer driver 39C.
More specifically, in S145, a pathname is retrieved from the install source information file 35, and a file indicated by the pathname (or a certain file in a directory indicated by the pathname) is used as the install source. Note that the pathname is the one that has been written in the process of S330, S340, or S345 shown in
That is, the driver search process shown in
In this embodiment, either the printer driver 39A or 39B is installed in S145 based on the pathname stored in the install source information file 35.
After a printer driver is installed in S145 of
Obtaining the configuration descriptor, the data processing device 3 recognizes configurations of an endpoint, an interface, and the like to use when accessing the printer section 1B, enabling data communication with the printer section 1B. Then, the processes shown in
After this, the printer driver 39D operates when the data processing device 3 outputs print data to the periphery device 1.
Note that the device descriptor transmission process and the configuration descriptor transmission process shown in
As described above, according to the embodiment of the invention, when a driver for controlling a printer function of the periphery device 1 has not been installed to the data processing device 3 at the time of when the periphery device 1 is brought into connection with the data processing device 3, either one of the printer driver 39A stored in the periphery device 1 and the printer driver 39B stored in a storage device (the CD-ROM media 25A) other than the periphery device 1 is registered dynamically as an install source in the install source information file 35. Then, a driver is installed from the registered install source.
As mentioned above in the BACKGROUND section, because which one of the above-described two conventional methods is more convenient depends on the structure of the data processing device, adopting either one of the two methods cannot fully enhance the convenience.
For example, in order to utilize the first method, the data processing device needs to be able to read data from media. Therefore, if the data processing device is not provided with a hardware for reading data from a specific media, then the first method cannot be used. In this point of view, the second method seems more convenient than the first method.
However, if the data processing device is provided with a hardware for reading data from a specific media, the first method is more convenient in some regards. For example, driver replacement may be needed when a new version of driver becomes available. In this case, the driver can be upgraded easily with the first method by attaching a media storing the new version of driver to a product before shipping or distributing the media at shops.
On the other hand, utilizing the second method in this case requires replacement of contents in the memory of the periphery device. Replacement of memory contents just before shipping the periphery device as a final product may cause an extensive burden of unpacking. Also, it is often difficult to replace the memory contents at shops. In this aspect, the first method seems more convenient.
However, according to the above-described embodiment, it is possible to install a driver from an install source suitable for a configuration of the data processing device 3, such as existence or nonexistence of the CD-ROM drive 25, unlike the case where either the printer driver 39A stored in the periphery device 1 or the printer driver 39B stored in the CD-ROM media 25A has been determined beforehand as an install source.
For example, even when it is possible to use the printer driver 39A stored in the periphery device 1 as an install source, it is still possible to set the printer driver 39B stored in the CD-ROM media 25A as an install source if the printer driver 39B is more suitable (e.g. newer version) than the printer driver 39A. Therefore, when the printer driver 39B that is more suitable than the printer driver 39A stored in the periphery device 1 becomes available, then it is possible to provide the printer driver 39B to users in an easy way by, for example, attaching the CD-ROM media 25A to a product or distributing at shops, without rewriting the printer driver 39A in the periphery device 1. Rewriting the printer driver 39A may be troublesome.
Also, when the CD-ROM media 25A cannot be used for any reason, then the printer driver 39A stored in the periphery device 1 is set as an install source. Therefore, it is possible to avoid a problem that no driver is installed because the CD-ROM media 25A cannot be used when installing a driver.
There may be situations where requisite minimum of the printer driver 39A only can be stored in the periphery device 1 because of insufficient memory capacity of the hard disk 11, for example. In such cases, according to the above-described embodiment, the entire printer driver 39A can be stored in and installed from a plurality of CD-ROM media 25A or a DVD-ROM having a larger capacity, enhancing the degree of freedom of capacity.
Also, there may be provided a driver set that includes a printer driver (printer driver 39A) and accessory tools (e.g., UI extension tool and help tool) that enhance the usability of the printer driver. In this case, it is possible to install only the printer driver into the periphery device 1 while the accessory tools are stored in a CD-ROM media. One may wish to avoid troublesome install using the CD-ROM media, and the other may wish to enhance the functions even if this requires handling of the CD-ROM media. The periphery device 1 according to the embodiment can meet both of these needs.
Further, according to the above-described embodiment, the periphery device 1 makes the data processing device 3 recognize that the periphery device 1 includes the logical units that correspond to a USB mass storage device and a USB device (printer, in the above embodiment) other than the USB mass storage device. Further, when the USB mass storage device is recognized, the driver search program 33A is activated by the autorun function provided to the OS 21A. Therefore, dynamic change of an install source can be realized by using a function that is normally provided to the OS 21A or a function specified by the USB standard.
While the invention has been described in detail with reference to the above embodiment thereof, it would be apparent to those skilled in the art that various changes and modifications may be made therein without departing from the spirit of the invention.
For example, the periphery device 1 according to the above-described embodiment includes the USB mass storage device function and the printer function. However, the periphery device 1 may include a scanner function or a facsimile function instead of the printer function, as well as the USB mass storage device.
Alternatively, the periphery device 1 may include the USB mass storage device function and two or more of the printer function, the scanner function, and the facsimile function. In this case, the periphery device 1 needs to be a USB multifunctional device including as many logical units as the number of these functions.
In the above-described embodiment, the periphery device 1 includes the hard disk 11 as a hardware that functions as a USB mass storage device. However, the periphery device 1 may include a storage device other than the hard disk 11. For example, such a storage device may be a non-volatile semiconductor memory built in the periphery device 1. Alternatively, the USB mass storage device function may be realized by setting a memory card in a memory card reader/writer device provided to the periphery device 1.
In the embodiment described above, the CD-ROM drive 25 is described as the driver storage device other than the hard disk 11 provided to the periphery device 1. However, the driver storage device other than the hard disk 11 is not limited to the CD-ROM drive 25, but may be a DVD-ROM drive, a memory card reader/writer device to which a memory card can be set, or a storage device on a network.
Number | Date | Country | Kind |
---|---|---|---|
2008-208024 | Aug 2008 | JP | national |