PERIPHERAL APPARATUS AND METHOD

If the ID for a device driver having an architecture which cannot be used by an operating system currently executed on a connected personal computer (PC) is specified in a peripheral device, a suitable device driver cannot be installed in the connected PC on a Plug and Play basis. Therefore, in Plug and Play, based on information of the operating system, the peripheral device performs control to transmit the ID of a device driver having a suitable architecture to the connected PC.

BACKGROUND OF THE INVENTION

Field of the Invention

The present invention relates to a technique for installing a device driver when connecting an information processing apparatus such as a personal computer and a peripheral device such as a printer.

Description of the Related Art

There have conventionally been peripheral devices for which a plurality of types of device drivers is prepared. For example, certain printers support various types of Page Description Languages (PDLs). These printers manage identification information (for example, a Plug and Play identifier (ID)) for all types of PDLs. With a technique called Plug and Play (PnP), if an information processing apparatus acquires identification information for any one type of PDL from a printer, the information processing apparatus is able to install a printer driver for the PDL corresponding to the identification information.

However, a user who uses a printer driver only for one type of PDL does not need a printer driver for a plurality of PDLs. A certain technique such as one discussed in Japanese Patent Application Laid-Open No. 2007-097156 is known to enable a user to select which PDL's Plug and Play is to be generated.

In recent years, for the Windows (registered trademark) operating system (OS), what are called the v3 and v4 printer drivers has been released. Although these printer drivers operate on the same OS, they have completely different architectures and accordingly provide different screens (graphical user interfaces (GUIs)), different functions, and different operating procedures. For example, unlike conventional printer drivers, the v4 printer driver offers GUIs specialized for touch panel display.

It is assumed that in the future the latest OS will stop supporting printer drivers having earlier architectures. In such a case, a plurality of information processing apparatuses existing in a network environment may include apparatuses with the latest OS installed thereon and apparatuses without it.

If an ID corresponding to a printer driver having an earlier architecture is set to a printer based on a method of a prior art, a problem will arise. More specifically, on the latest OS, it becomes impossible to install the printer driver on a Plug and Play basis. To solve this problem, each time a new printer is connected to an information processing apparatus, a user may determine the OS of the information processing apparatus and accordingly change identification information (to be used for Plug and Play) set in the printer. However, this method is time-consuming.

SUMMARY OF THE INVENTION

According to an aspect of the present invention, a peripheral device includes, a specification unit configured to specify a device driver to be installed in an information processing apparatus connected to the peripheral device from a list of device drivers including device drivers having a first architecture and device drivers having a second architecture, an acquisition unit configured to acquire information of an operating system operating on the connected information processing apparatus, a determination unit configured to, based on the information of the operating system, determine whether the operating system supports only device drivers having the second architecture, and a transmission unit configured to, in a case where a device driver having the first architecture is specified by the specification unit and where the operating system is determined to support only device drivers having the second architecture by the determination unit, transmit, to the information processing apparatus, identification information corresponding to a device driver having the second architecture which can handle a command type handled by the device driver having the first architecture specified by the specification unit or identification information corresponding to a device driver having the second architecture which can handle a command type preset in the peripheral device. In a case where the device driver having the second architecture is specified by the specification unit and where the operating system is determined to support only device drivers having the second architecture by the determination unit, the transmission unit transmits, to the information processing apparatus, identification information corresponding to the device driver having the second architecture specified by the specification unit.

DESCRIPTION OF THE EMBODIMENTS

Exemplary embodiments of the present invention will be described below with reference to the accompanying drawings.

FIG. 1Aillustrates a form of connection between a computer1000and a printer2000according to a first exemplary embodiment. The computer1000and the printer2000as a peripheral device thereof are connected to a network100. The present invention relates to a technique of installing a device driver. The first exemplary embodiment will be described below centering on Network Plug and Play related to printer drivers by Web Services on Devices (WSD) Discovery. Therefore, the printer2000will be described below on the premise that the WSD function is enabled. In addition to WSD, Simple Service Discovery Protocol (SSDP) and other network protocols enabling installation of device drivers, as with Network Plug and Play, are also applicable to the present invention.

FIGS. 2A and 2Bare block diagrams illustrating configurations of the computer1000and the printer2000.

The configuration of the computer1000serving as an information processing apparatus will be described below. The computer1000is totally controlled by a control unit1040which includes a central processing unit (CPU)1041and a memory1042. A display unit1010indicates an output apparatus such as a display. An operation unit1020includes input apparatuses such as a mouse and a keyboard. Software such as an OS1031and various programs1032is stored in a storage unit1030. When necessary, the CPU1041loads any one of these programs into the memory1042and then executes it. The OS1031is software for managing basic operations of the computer1000. A network communication unit1050connects to the network100and outputs and inputs data with an external apparatus. A Universal Serial Bus (USB) communication unit1060inputs and outputs data from/to an external apparatus connected via a USB cable. According to the present invention, the CPU1041in the control unit1040loads software stored in the storage unit1030into the memory1042and, thereby, all pieces of processing of the computer1000are implemented.

The present invention assumes three different types of OS's. Under one type of OS's, printer drivers having completely different architectures, such as the v3 and v4 printer drivers, operate. Under another type of OS's, only the v3 printer driver operates. Under still another type of OS's, only the v4 printer driver operates. All of the three different types of OS's may be installed as the OS1031of the computer1000.

The configuration of the printer2000will be described below. The printer2000is totally controlled by a control unit2040which includes a CPU2041and a memory2042. A display unit2010indicates an output apparatus such as a panel. An operation unit2020includes input apparatuses such as a touch panel and various buttons. An OS2031and various programs2032are stored in a storage unit2030. These programs are loaded into the memory2042and then executed by the CPU2041as required. The OS2031is software for managing basic operations of the printer2000. A network communication unit2050connects to the network100and inputs and outputs data from/to an external apparatus. A USB communication unit1060inputs and outputs data from/to an external apparatus connected via a USB cable. A print unit2070prints by fixing a toner and ink to paper according to directions of the control unit2040, and by forming the target image on the physical paper. According to the present invention, the CPU2041in the control unit2040loads software stored in the storage unit2030into the memory2042and thereby, all pieces of processing of the printer2000are implemented.

FIG. 3illustrates a transition of user interfaces (UIs) provided by the printer2000to enable the user to select identification information of a device driver. In this case, PnP IDs corresponding to PDLs for printer drivers are displayed as examples of identification information. Therefore, identification information selected in these UIs is used to install a device driver in an information processing apparatus.

The UIs are displayed on the display unit2010of the printer2000. Upon reception of a user input on the operation unit1020, such as a touch panel operation or a button operation, a UI transition occurs.

A “System Management Settings” screen2110is a UI for setting various system management functions of the printer2000. PnP IDs according to the present exemplary embodiment can be selected and set when a “Page Description Language (PnP)” option2111is selected. When the “Page Description Language (PnP)” option2111is selected, a “Page Description Language (PnP)” screen2120is displayed. In this case, a PnP ID can be specified for each form of connection (a “Network” option2121and a “USB” option2122).

When the “Network” option2121is selected, a “Network PnP ID” screen2130is displayed. This screen displays a list of all device drivers corresponding to IDs which can be used as PnP IDs by the printer2000. The system administrator of the printer2000specifies a printer driver for a PDL to be subjected to Network Plug and Play from the list on this screen.

“(V3)” at the end of the ID in the list indicates that the printer driver has the architecture used in the conventional OS. On the other hand, “(V4)” indicates that the printer driver has the architecture used in the new OS. For example, the v4 printer driver has a feature of providing GUIs specialized for touch panel display unlike printer drivers having the conventional architectures. “PDL1”, “PDL2”, etc. indicate different types of PDLs.

The printer2000has a “PDL1(V3)” default setting2132. A “FAX (V3)” option2131is used to install a FAX driver having the V3 architecture on the computer1000on a Plug and Play basis. For example, when the system administrator selects the “FAX (V3)” option2131, the Network PnP ID setting of the printer2000is changed to “FAX (V3)” and the “Page Description Language (PnP)” screen is redisplayed.

A “PDL3(V3/V4)” option2133corresponds to a special PnP ID. More specifically, there is a case where both a printer driver for “PDL3” having the V3 architecture and a printer driver for “PDL3” having the V4 architecture are associated with the same PnP ID. Therefore, when this special PnP ID is selected and the printer2000connects with the computer1000on which the OS applicable to both architectures operates, a printer driver having a high priority for the OS1031will be selectively installed and used.

A “PDL1(V4)” option2134is used to install a printer driver for “PDL1” having the V4 architecture on a Plug and Play basis.

There is no option of the printer driver for “PDL2” having the V4 architecture, for example, because the printer driver is not supported by the printer vendor. In the present exemplary embodiment, the printer vendor sets “PDL1” as the most recommended PDL (referred to as a recommended PDL) out of a plurality of PDLs.

When the “USB” option2122is selected on the screen2120, a “USB PnP ID” screen2140is displayed. The contents of this screen are similar to those of the “Network PnP IS” screen2130and redundant descriptions thereof will be omitted.

As described above, in the present exemplary embodiment, the system administrator of the printer2000can specify different PnP IDs between network connection and USB connection.

FIG. 4is a flowchart illustrating processing of the printer2000when the printer1000is connected to the network100in a state where the PnP ID illustrated in FIG.3is set. The CPU2041in the control unit2040loads software stored in the storage unit2030into the memory2042, and thereby, this processing is implemented when.

In step S101, the printer2000detects that it has been connected to the network100. In step S102, the printer2000transmits a network entry message, by multicast, to the network100. For example, the network entry message indicates the “Hello” message in WSD Discovery.

In step S103, the printer2000receives a search request from the computer1000connected to the network100. For example, the search request indicates a “Probe” message in WSD Discovery. In step S104, in response to the search request, the printer2000transmits a response to the computer1000. For example, this response indicates the “ProbeMatch” message in WSD Discovery. In step S105, the printer2000transmits a MetaData response to the computer1000.

In step S106, the printer2000receives configuration information from the computer1000. For example, the configuration information indicates the “GetPrinterElements” message in WSD Discovery. An example will be described below with reference toFIG. 7.

In step S107, the printer2000confirms OS information of the computer1000. As a method for confirming the OS information of the computer1000, for example, the printer2000may acquire OS information included in the Extensible Markup Language (XML) data in the configuration information. Further, the XML data may be analyzed to determine necessary OS information. Other methods may be used to acquire necessary OS information. For example, the OS information may be acquired from other information resources connected to the network100.

In step S108, based on the OS information acquired in step S107, the printer2000determines whether the OS of the computer1000supports only device drivers having a first architecture. The first architecture means, for example, the above-described V3 architecture. When the OS supports only the first architecture (YES in step S108), the processing proceeds to step S110. On the other hand, when the OS does not support the first architecture (NO in step S108), the processing proceeds to step S109.

In step S110, following the specification on the screen2130illustrated inFIG. 3, the printer2000transmits the ID corresponding to a device driver having the first architecture to the computer1000. More specifically, when the “PDL1(V3)” option2132is specified on the screen2130illustrated inFIG. 3, the printer2000transmits the PnP ID corresponding to the printer driver for “PDL1” having the V3 architecture to the computer1000following the specification. When the “PDL2(V3)” or the “PDL3(V3/V4)” option is specified on the screen2130illustrated inFIG. 3, the printer2000transmits the PnP ID corresponding to each PDL to the computer1000following these specifications.

In step S109, based on the OS information acquired in step S107, the printer2000determines whether the OS of the computer1000supports only device drivers having a second architecture. The second architecture means, for example, an architecture completely different from the first architecture, such as the above-described V4 architecture. When the OS supports only the second architecture (YES in step S109), the processing proceeds to step S112. On the other hand, when the OS supports not only the second architecture (NO in step S109), the processing proceeds to step S111.

In step S111, the OS of the computer1000supports both the first and the second architectures, the printer2000transmits the PnP ID following the specification on the screen2130illustrated inFIG. 3to the computer1000.

In step S112, following the specification on the screen2130illustrated inFIG. 3, the printer2000transmits the ID corresponding to a device driver having the second architecture to the computer1000. For example, even when a PDL related to the V3 architecture as with the “PDL1(V3)” option2132is specified, the printer2000transmits a PnP ID having the V4 architecture to the computer1000with reference to this specification. A determination method used when transmitting to the computer1000an ID different from that regarding the specification on the screen2130illustrated inFIG. 3in step S112will be described in detail below with reference toFIG. 5. When the “PDL3(V3/V4)” option2133, a “FAX (V4)” option, or the “PDL1(V4)” option2134is specified on the screen2130illustrated inFIG. 3, the printer2000transmits the PnP ID corresponding to each PDL to the computer1000, as it is, following the specification.

An example of a response to the configuration information (for example, “GetPrinterElements”) received from the computer1000in step S106will be described below with reference toFIG. 8. This response is transmitted from the printer2000to the computer1000in step S110, S111, or S112.

FIG. 5is a flowchart illustrating details of the processing in step S112illustrated inFIG. 4.

In step S301, the printer2000determines whether the device driver specified on the screen2130illustrated inFIG. 3corresponds to a device driver having the second architecture. When a device driver having the second architecture is specified (YES in step S301), then in step S304, the printer2000transmits the ID corresponding to the device driver specified on the screen2130to the computer1000. For example, when the “PDL3(V3/V4)” option2133or the “PDL1(V4)” option2134is specified on the screen2130, then in step S304, the PnP ID corresponding to the specification is transmitted to the computer1000as it is.

When a device driver having the second architecture is not specified (NO in step S301), then in step S302, the printer2000confirms the command type (PDL information) to be handled by the device driver specified on the screen2130. In step S303, the printer2000determines whether there is an ID corresponding to a device driver having the second architecture handling the command type confirmed in step S302. For example, when the “PDL1(V3)” option2132is specified, there is a PDL (the “PDL1(V4)” option2134) indicating a printer driver having the V4 configuration handling “PDL1” (YES in step S303). When there is an ID corresponding to a device driver having the second architecture handling the command type confirmed in step S302(YES in step S303), then in step S305, the printer2000transmits the ID corresponding to a device driver having the second architecture handling the command type confirmed in step S302to the computer1000. For example, when the device driver having the second architecture handling the command type confirmed in step S302is the “PDL1(V4)”2134, the PnP ID corresponding to the “PDL1(V4)” option2134is transmitted to the computer1000.

On the other hand, when there is no ID corresponding to a device driver having the second architecture handling the command type confirmed in step S302(NO in step S303), for example, when the “PDL2(V3)” option is specified on the screen2130, the processing proceeds to step S306. In step S306, the printer2000transmits to the computer1000the ID corresponding to a device driver having the second architecture handling the recommended command type. With the printer2000according to the present exemplary embodiment, the recommended PDL is “PDL1” as described above. Therefore, for example, the printer2000transmits the PnP ID corresponding to the “PDL1(V4)” option2134to the computer1000.

In step S110, the printer2000is able to determine the ID corresponding to a device driver having the first architecture to be transmitted to the computer1000, based on a method equivalent to that illustrated inFIG. 5. Specifically, when a device driver having the second architecture is specified on the screen2130, the printer2000determines the ID to be transmitted to the computer1000, based on the command type of the specified device driver and the recommended command type.

According to the descriptions of the present exemplary embodiment, the printer2000does not return the ID for a device driver having an unsupported architecture depending on information of the OS1031operating on the connection target computer1000. Further, even in a case where device drivers having a new architecture are not prepared, device drivers of the command type (PDL) recommended by the device vendor can be used for Plug and Play.

FIG. 6is a table illustrating relations between printer drivers specified on the touch panel and PnP IDs to be actually returned from the printer2000to the computer1000when the processing illustrated inFIGS. 4 and 5is applied.

Referring toFIG. 6, Windows (registered trademark) supporting only the V3 architecture is described as an example of an OS supporting only device drivers having the first architecture. Likewise, Windows (registered trademark) supporting only the V4 architecture is described as an example of an OS supporting only device drivers having the second architecture. Further, “PDL1” is described as an example of a recommended command type set in the printer2000.

FIG. 7illustrates an example of “GetPrinterElements” as configuration information received by the printer2000in step S106.

“GetPrinterElements” is a Simple Object Access Protocol (SOAP) message having the XML format defined by WSD, and is entirely enclosed in “Envelope” (4001to4017). “Envelope” (4001to4017) includes “Header” (4002to4008) and “Body” (4009to4016).

“Header” (4002to4008) includes “To” (4003), “Action” (4004to4006), and “MessageID” (4007). “To” (4003) describes the address of the printer2000as the destination of this SOAP message. “Action” (4004to4006) describes that this SOAP message is “GetPrinterElements” (4005). “MessageID” (4007) describes a UUID (Universally Unique Identifier) indicating this SOAP message.

“Body” (4009to4016) includes “GetPrinterElementsRequest” (4010to4015) which is the request of this SOAP message. “GetPrinterElementsRequest” (4010to4015) includes “RequestedBy” (4011) and “RequestedElements” (4012to4014). “RequestedBy” (4011) describes the type of the OS which is the transmission source of this SOAP message. In step S107, the printer2000refers to “RequestedBy” (4011) to confirm the information of the requesting OS. “RequestedElements” (4012to4014) describes the name of information requested by this SOAP message. In this example, “RequestedElements” (4012to4014) describes “PrinterDescription” (4013).

FIG. 8illustrates an example of a response to “GetPrinterElements” transmitted from the printer2000to the computer1000in step S110, S111, or S112.

A response to “GetPrinterElements” is a SOAP message having the XML format defined by WSD and is entirely enclosed in “Envelope” (5001to5023). “Envelope” (5001to5023) includes “Header” (5002to5009) and “Body” (5010to5022).

“Header” (5002to5009) includes “To” (5003), “Action” (5004to5006), “MessageID” (5007), and “RelatesTo” (5008). “To” (5003) describes the address of the computer1000as the destination of this SOAP message. In the present exemplary embodiment, “To” (5003) describes “anonymous.” “Action” (5004to5006) describes that this SOAP message is “GetPrinterElementsResponse” (5005). “MessageID” (5007) describes a UUID (Universally Unique Identifier) indicating this SOAP message. “RelatesTo” (5008) describes which SOAP message the response is to. In the present exemplary embodiment, since this message is a response to “GetPrinterElements” illustrated inFIG. 7, “MessageID” (5007) describes the same UUID as that in “MessageID” (4007).

“Body” (5010to5022) includes “GetPrinterElementsResponse” (5011to5021) which is a request of this SOAP message. “GetPrinterElementsResponse” (5011to5021) includes “PrinterElements” (5012to5020). “PrinterElements” (5012to5020) includes “ElementData” (5013to5019). “ElementData” (5013to5019) includes “PrinterDescription” (5014to5018) requested by the computer1000. “PrinterDescription” (5014to5018) includes “ColorSupported” (5015), “DeviceId” (5016), and “PrinterName” (5017). “ColorSupported” (5015) indicates whether the printer2000is a color printer or a monochrome printer. In the present exemplary embodiment, “ColorSupported” (5015) describes “true” since it is a color machine. “DeviceId” (5016) describes the Plug and Play ID of the printer2000. The transmission of the ID in step S110, S111, or S112illustrated inFIG. 4or described inFIG. 5is implemented when the ID is stored as the value of “DeviceId” (5016). “PrinterName” (5017) describes the name of the printer2000.

Although the first exemplary embodiment has been described above centering on Network Plug and Play such as WSD Discovery, a second exemplary embodiment will be described below centering on Plug and Play by USB connection.

FIG. 1Billustrates a form of connection between the computer1000and the printer2000according to the second exemplary embodiment. The computer1000and the printer2000are connected via a USB cable200. The configurations illustrated inFIG. 2and the UI transition illustrated inFIG. 3according to the second exemplary embodiment are similar to those according to the first exemplary embodiment, and redundant descriptions thereof will be omitted.

FIG. 9is a flowchart illustrating processing of the printer2000when the computer1000is connected to the printer2000with the USB cable200after any one device driver is specified on the screen2140illustrated inFIG. 3. As with the first exemplary embodiment, the CPU2041in the control unit2040loads software stored in the storage unit2030into the memory2042, and thereby, this processing is implemented.

In step S201, the printer2000detects that it has been connected to the computer1000via the USB cable200. In step S202, the printer2000transmits to the computer1000the ID corresponding to the device driver specified on the screen2140. In step S203, by using the transmitted ID, the printer2000establishes a USB connection with the OS1031of the computer1000.

In step S204, the printer2000confirms the information of the OS1031of the connected computer1000. As a method for confirming the information of the OS1031, for example, the printer2000can acquire the information by communicating with a device driver preinstalled in the computer1000. The OS information can be acquired with various methods, for example, by determining the information based on the behavior of the OS1031after USB connection or by acquiring the information from other information resources separately stored. Any method can be used to acquire the OS information.

In step S205, based on the OS information confirmed in step S204, the printer2000determines whether the OS1031operating on the computer1000supports only the first architecture. When the OS supports only the first architecture (YES in step S205), the processing proceeds to step S207. On the other hand, when the OS supports not only the first architecture (NO in step S205), the processing proceeds to step S206.

In step S207, the printer2000determines whether a device driver having the first architecture is currently specified on the screen2140illustrated inFIG. 3. In this case, when a device driver having the first architecture (for example, “PDL1(V3)”) is specified on the screen2140(YES in step S207), the processing exits this flowchart. On the other hand, when a device driver having the second architecture (for example, “PDL1(V4)”) is specified on the screen2140(NO in step S207), then in step S208, the printer2000issues a USB bus reset. As a method for performing bus reset, for example, the printer2000temporarily stops the D+ signal line of a USB cable which is normally pulled up. In step S209, the printer2000determines the ID corresponding to a device driver having the first architecture and transmits the determined ID to the computer1000. When the printer2000retransmits the ID in step S209, Plug and Play for a device driver having the first architecture will be performed by the computer1000. The method for determining the ID corresponding to a device driver having the first architecture in step S209can be performed in a similar way to the method described above with reference toFIG. 5. Specifically, when a device driver having the second architecture is specified on the screen2140, the printer2000will determines the ID to be transmitted to the computer1000based on the command type of the specified device driver and the recommended command type.

In step S206, based on the OS information confirmed in step S204, the printer2000determines whether the OS1031operating on the computer1000supports only the second architecture. When the OS supports only the second architecture (YES in step S206), the processing proceeds to step S210. On the other hand, when the OS supports not only the second architecture (NO in step S206), the processing exits this flowchart.

In step S210, the printer2000determines whether a device driver having the second architecture is currently specified on the screen2140illustrated inFIG. 3. When a device driver having the second architecture (for example, “PDL1(V4)”) is currently specified on the screen2140(YES in step S210), the processing exits this flowchart. On the other hand, when a device driver having the first architecture (for example, “PDL1(V3)”) is specified on the screen2140(NO in step S210), then in step S211, the printer2000issues a USB bus reset. In step S212, the printer2000determines the ID corresponding to a device driver having the second architecture and transmits the determined ID to the computer1000. When the printer2000retransmits the ID in step S209, Plug and Play for a device driver having the second architecture will be performed by the computer1000. The method for determining the ID corresponding to a device driver having the second architecture in step S209can be performed in a similar way to the method described above with reference toFIG. 5.

In the above-described example, in step S202illustrated inFIG. 9, the printer2000transmits the ID corresponding to a device driver specified on the screen2140to the computer1000. However, the printer2000may transmit another dummy ID. In this case, the printer2000acquires the OS information of the computer1000by using the device driver for the dummy ID. In this case, after the printer2000acquires the OS information, it necessarily issues a bus reset and transmits the ID corresponding to a device driver specified on the screen2140or the ID determined in step S209or S212to the computer1000.

According to the present exemplary embodiment, it is possible to transmit to the computer1000the ID corresponding to a device driver applicable to the OS information of the connected computer1000even at the time of USB connection. Therefore, the printer2000does not return the ID corresponding to a device driver having an architecture that is not supported by the OS of the computer1000connected via the USB cable.

Exemplary embodiments (the first and the second exemplary embodiments) and effects of the present invention have been described above with reference to the accompanying drawings. Although, in the present invention, Windows (registered trademark) is used as the OS1031of the computer1000, other OS's are similarly applicable. Although a printer is used as an example of a peripheral device, the present invention is also applicable to other apparatuses having a similar background, such as a scanner and the like.

The present invention includes an apparatus or a system configured by suitably combining the above-described exemplary embodiments, and also includes a method in the apparatus or the system.

OTHER EMBODIMENTS

This application claims the benefit of Japanese Patent Application No. 2015-150501, filed Jul. 30, 2015, which is hereby incorporated by reference herein in its entirety.