« 上一頁繼續 »
DYNAMIC INTERFACE SOFTWARE FOR
WIRELESS COMMUNICATION DEVICES
This application is a continuation in part application of U.S. patent application Ser. No. 10/665,962, filed on Sep. 18, 2003, which is a continuation in part of U.S. patent application Ser. No. 09/917,026, filed on Jul. 26, 2001, of U.S. patent application Ser. No. 09/916,900, filed on Jul. 26, 10 2001, and of U.S. patent application Ser. No. 09/916,460, filed on Jul. 26, 2001, which are hereby incorporated by reference.
This application is also related to U.S. application Ser. No. unknown entitled "System and Method for Interchange- 15 able Modular Hardware Components for Wireless Communication Devices" and to U.S. application Ser. No. unknown entitled "Modular Software Components for Wireless Communication Devices ", which are filed concurrently herewith. Additionally, this application is related to U.S. appli- 20 cation Ser. No. 09/927,131, filed on Aug. 10, 2001; to U.S. application Ser. No. 09/969,305, filed on Oct. 2, 2001; to U.S. application Ser. No. 09/970,188, filed on Oct. 3, 2001; to U.S. application Ser. No. 09/972,519, filed on Oct. 5, 2001; to U.S. application Ser. No. 10/206,780, filed on Jul. 25 25, 2002; to U.S. application Ser. No. 10/206,781, filed on Jul. 25, 2002; and to U.S. application Ser. No. 10/206,516, filed on Jul. 25, 2002, which are hereby incorporated by reference.
FIELD OF THE INVENTION
The present invention generally relates to the field of wireless communications and more particularly relates to 35 dynamic interfaces between wireless communication devices and external devices coupled via a wireless or physical connection.
BACKGROUND OF THE INVENTION
Conventional wireless communication devices typically become isolated computing platforms once they are deployed (i.e., sold to a consumer). Consumers typically must bring the wireless communication device (also referred 45 to herein as "wireless device," "handset," and "mobile device") to a service station for upgrades to the operating system or any integral software application such as a phonebook.
Additionally, if the consumer wants to replace a hardware 50 component of a wireless communication device, the wireless device must be brought into a service station. Generally, hardware replacements are prohibitively expensive if the wireless device is not broken and under warranty. Even so, when a wireless device under warranty has a hardware 55 component replaced, the new component is merely a working version of the component being replaced. Thus, when a consumer purchases a wireless communication device, the consumer is locked into the physical configuration of the wireless device for the life of the wireless communication go device.
An additional drawback of conventional wireless communication devices is that new external devices, such as digital cameras, are limited to the specific, proprietary device that is offered by the manufacturer of the handset. 65 Thus, a consumer's choice of external devices that enhance a wireless communication device is severely limited. There
fore, what is needed is a system and method that overcomes these significant problems found in the conventional systems as described above.
SUMMARY OF THE INVENTION
Conventional wireless communication devices are isolated computing platforms. External devices that are connected to a wireless communication device after it has been deployed are limited to a set of specific, proprietary devices that the manufacturer has enabled during the design and construction of the wireless communication device. The present invention provides an improved wireless communication device that can detect the presence of an external device and dynamically update its communication interface to facilitate communication with the external device.
Upon detecting a connection from an external device, either by a direct physical link, direct wireless link, or remote wireless link, the wireless communication device obtains summary information about the external device. If a communication interface for the external device is not already present in the wireless communication device, the wireless device sends a portion of the external device's summary information to a remote interface server and requests the appropriate interface. Upon receipt of the interface, the wireless communication device installs the interface and then proceeds to establish communication with the external device.
BRIEF DESCRIPTION OF THE DRAWINGS
The details of the present invention, both as to its structure and operation, may be gleaned in part by study of the accompanying drawings described below, in which like reference numerals refer to like parts.
FIG. 1 is a high level block diagram illustrating an example wireless communication network.
FIG. 2A is a block diagram illustrating an example direct physical connection between a wireless communication device and an external device.
FIG. 2B is a block diagram illustrating an example direct wireless connection between a wireless communication device and an external device.
FIG. 2C is a block diagram illustrating an example remote wireless connection between a wireless communication device and an external device.
FIG. 3A is a block diagram illustrating an example representation of data in persistent storage on a wireless communication device.
FIG. 3B is a block diagram illustrating components of an example wireless communication device.
FIG. 3C is a block diagram illustrating an example operation code library and corresponding runtime instruction set.
FIG. 3D is a block diagram illustrating an example set of runtime instructions.
FIG. 4 is a flow diagram illustrating an example process for obtaining summary information from an external device.
FIG. 5 is a flow diagram illustrating an example process for requesting interface software from a remote server.
FIG. 6 is a flow diagram illustrating an example process for installing interface software.
FIG. 7 is flow diagram illustrating an example process for initializing an external device.
FIG. 8 is a block diagram illustrating an exemplary wireless communication device that may be used in connection with the various embodiments described herein.
FIG. 9 is a block diagram illustrating an exemplary computer system as may be used in connection with various embodiments described herein.
DETAILED DESCRIPTION 5
Certain embodiments as disclosed herein provide for a wireless communication device and method for dynamically recognizing and interfacing with an external device. For example, one method as disclosed herein allows for a io wireless communication device to recognize the presence of an external device via a wired or wireless communication link. Upon recognition, the wireless communication device queries the external device to obtain summary profile information about the device. The wireless communication 15 device then queries a server over a wireless communication network and receives a response comprising an interface to facilitate communication between the devices.
After reading this description it will become apparent to one skilled in the art how to implement the invention in 20 various alternative embodiments and alternative applications. However, although various embodiments of the present invention will be described herein, it is understood that these embodiments are presented by way of example only, and are not limitations. As such, this detailed descrip- 25 tion of various alternative embodiments should not be construed to limit the scope or breadth of the present invention as set forth in the appended claims.
FIG. 1 is a high level block diagram illustrating an example wireless communication network 10. The illus- 30 trated wireless communication network 10 comprises a plurality of wireless communication devices 20 and 30, each with a corresponding external device 22 and 32, respectively. The network wireless communication network 10 additionally comprises a plurality of base stations 40 and 42 35 that are coupled by an interface server 60 over a network 50. The base stations 40 and 42 communicatively link the handsets 20 and 30 to the interface server 60. The interface server 60 is also coupled with a data storage area 70.
In the illustrated embodiment, the connection between 40 external device 22 and handset 20 is a direct physical connection 24. External devices can also be coupled with handsets via a wireless link such as a direct wireless link 34 or a remote wireless link 36 between external device 32 and handset 30. In one embodiment, the direct physical connec- 45 tion 24 can be a hardwired physical connection between the handset 20 and the external device 22, for example a serial cable or a wired network connection. Alternatively, the direct wireless connection 34 can employ local networking protocol or bluetooth or infrared. External device 32 may 50 also be connected to handset 30 through a remote wireless connection 36 that links the devices via a base station such as base station 42. Additionally, external device 32 can also be connected to handset 30 through a remote wireless connection 36 that links the devices via a network such as 55 the internet or network 50.
Wireless communication device 20 can be any sort of device with the ability to communicate within the wireless communication network 10. For example, wireless communication device 20 may be a cell phone, a personal digital 60 assistant ("PDA"), a laptop computer, wristwatch, or any other device configured for wireless communication. Wireless communication devices may also be referred to herein as "handsets" or "mobile phones" or "mobile devices".
Base station 40 is preferably configured to communicate 65 over-the-air with a plurality of wireless communication devices and includes a transceiver (not shown) that converts
the over-the-air communications to wired communications that travel over network 50. Preferably, network 50 is a private network operated by a wireless carrier. Network 50 provides the infrastructure for handoffs between base stations such as base station 40 and 42. Additionally, network 50 provides the communication link between various applications, services, and other computer based servers such as interface server 60.
Network 50 may also serve as the conduit for connections to other networks (not pictured) such as an Integrated Services Digital Network ("ISDN"), Public Switched Telephone Network ("PSTN"), Public Land Mobile Network ("PLMN"), Packet Switched Public Data Network ("PSPDN"), and the Internet, just to name a few.
Interface server 60 can be implemented as a single computer or as a plurality of servers logically arranged to provide dynamic instruction sets to mobile devices and to execute dynamic instruction sets received from mobile devices. In the illustrated embodiment, interface server 60 is coupled with a data storage area 70 that preferably houses a plurality of executable interfaces and a set of server operation codes, handset operation codes and executable instructions corresponding to the server operation codes. The features of a general purpose computer that may implement the interface server 60 are later described with respect to FIG. 9. The function of the interface server 60 is preferably to receive requests from a handset and respond to those requests by providing the handset with an executable interface that the handset can use to communicate with the external device.
FIG. 2A is a block diagram illustrating an example direct physical connection 84 between a wireless communication device 80 and an external device 82. The direct physical connection 84 can be made through a standard or proprietary cable that connects to both the external device 82 and the handset 80. Alternatively, the direct physical connection 84 may be achieved by a coupling of the handset 80 and the external device such that no actual cable is employed and the resulting coupled devices become an integral unit.
FIG. 2B is a block diagram illustrating an example direct wireless connection 85 between a wireless communication device 86 and an external device 88. The direct wireless connection 85 can be made through a variety of wireless links such as bluetooth, infrared, or the 802.11 and 802.15 families of wireless communication.
FIG. 2C is a block diagram illustrating an example remote wireless connection between a wireless communication device 90 and an external device 98. The remote wireless connection may comprise a link 96 between the external device 98 and a base station 94 and also a link 92 between the handset 90 and the base station 94. There may also be interstitial networks and base stations (not shown). The remote wireless connection may be established using conventional wireless communication protocols or remote wireless networking protocols such as the 802.11 and 802.15 families of wireless communication.
FIG. 3A is a block diagram illustrating an example representation of data in persistent storage 240 on a wireless communication device 20, 30. The general features of wireless communication device 20, 30 that allow it to function as such are later described with respect to FIG. 8. In the illustrated embodiment, the operating system 100 is resident in persistent storage 240. The operating system 100 preferably comprises the fundamental executable program or programs that allow the device to function. In addition to the operating system 100, application data 110 and user interface 120 are in persistent storage 240. The application data
110 preferably comprises the user information and application information that an application needs to function or that an application uses to provide its service.
The user interface 120 may comprise both the executable user interface application and the user interface data that is 5 used by the application. In an alternative embodiment, the user interface application portion may be included as part of the operating system and the user interface 120 may comprise ancillary user data or custom data or other data usable by the user interface application or the user. The persistent 10 storage area 240 additionally comprises one or more device drivers such as device driver 130, device driver 132, all the way up to device driver n. These device drivers are preferably executable applications that facilitate communication between the handset and another device, or possibly 15 between the core handset and an integral device such as the display, keypad, speaker, microphone, or earphones, just to name a few.
Additionally shown as part of the persistent storage 240 are a series of software applications or modules such as 20 applications 140, 142, 144, 146, and on up to application n. As illustrated, a large number of applications may be resident as part of the persistent storage 240. The only limit on the number of applications that can be stored in persistent storage 240 is the physical limit of the storage 240. 25
FIG. 3B is a block diagram illustrating components of data 240 of an example wireless communication device 20, 30. In the illustrated embodiment, the data 240 has a number of applications 242 comprising an external device detector 200 and a runtime engine 230. Other data elements 244, 30 which may be included in the application data 110 as illustrated in FIG. 3A, comprise a server operation code ("opcode") library 210, handset opcode library 220, and runtime instructions 260.
The external device detector 200 is preferably configured 35 to determine when an external device has been physically connected to the handset 20, 30, or when an external device is attempting a connection to the handset 20, 30 via a wireless link. Additionally, the external device detector 200 is preferably capable of detecting pilot signals or other 40 broadcast wireless signals to determine if an external device is within proximity of the handset such than a connection can be made. The external device detector 200 can be implemented as a combination of electromechanical and software components to carry out the detection function. 45
Continuing with FIG. 3B, the handset opcode library 220 preferably includes the universe of operation codes that represent each function or executable code segment that the handset can be instructed to execute by the interface server 60, illustrated in FIG. 1. Advantageously, handset opcode 50 library 220 includes the operation codes that serve as place holders for the actual executable machine code functions or code segments. As such, the handset opcode library 220 preferably contains a list of all available operation codes that correspond to each and every function that can be executed 55 by the handset 20, 30.
Similarly, the server opcode library 210 preferably includes the universe of operation codes that represent each server side function or executable code segment. Advantageously, server opcode library 210 may only include the 60 operation codes for the actual executable machine code functions or code segments, which do not reside on the wireless communication device 20. As such, the server opcode library 220 contains a list of all the operation codes for each available server function that can be executed by the 65 interface server 60 on behalf of the handset 20, 30. In the preferred embodiment, the number of available server func
tions can well exceed the number of available handset functions because the interface server 60 does not suffer from the minimal resources typically found on mobile devices such as, for example, cell phones and PDAs.
Runtime engine 230 is preferably configured to process dynamic instructions sets. One example of a dynamic instruction set is a set of instructions to install a communication interface. The processing of dynamic instruction sets includes translation of opcodes into executable instruction sets and execution of those instruction sets. For example, a set of handset opcodes may be received from the interface server 60. The processing of dynamic instruction sets also includes compilation of opcodes and corresponding data for delivery to the interface server 60. Preferably, runtime engine 230 can be launched by wireless communication device 20, 30 on an as needed basis so that it runs only when necessary and consumes a minimal amount of system resources (e.g. memory, CPU cycles, etc.) on the handset 20, 30.
FIG. 3C is a block diagram illustrating an example handset operation code library 220 and corresponding runtime instruction set 260. The handset opcode library 220 and runtime instruction set 260 are preferably housed in the data storage area 240 of the handset 20, 30. In one embodiment, the executable instructions in the runtime instruction set 260 correspond in a one-to-one relationship with the opcodes contained in the handset opcode library 220. Alternatively, a single opcode in the handset opcode library 220 may correspond to a sequence of instructions in the runtime instructions 260.
FIG. 3D is a block diagram illustrating an example set of runtime instructions 260. In the illustrated embodiment, any number of executable instructions can be included in runtime instructions 260, from instruction 1 through instruction n. Optimally, a large number of functions are available in runtime instructions 260 and yet consume very little resources (e.g. persistent memory) of the handset 20, 30.
FIG. 4 is a flow diagram illustrating an example process for obtaining summary information from an external device. Initially, in step 300, the handset detects a connection from an external device. The connection can be detected over a wired or wireless link. Upon detecting a connection, the handset determines if the connection was initiated by a user, as shown in step 302. For example, the user may press a sequence of keys or issue spoken commands to instruct the handset that a new device is connected. In one embodiment, if the connection is user initiated, summary device information is provided to the handset directly from the user. In such an embodiment, the handset next stores the summary device information in step 304.
Alternatively, if the detection was not user initiated, then the handset next formulates a query for the external device, as illustrated in step 306. The query can advantageously conform to a standard protocol or it may be a proprietary protocol. Once the query is formulated, the handset sends the query to the external device in step 308. In step 310, the handset determines if a valid response was received from the external device. If there was no response or the response was invalid, the handset can return to step 306 and reformulate the query and proceed to query the external device again. Advantageously, the handset may cycle through a variety of known query formats and protocols until a valid response is received. Once a valid response is received that preferably includes summary profile information about the external device, the handset stores the summary profile information, as shown in step 304.