1
METHOD AND SYSTEM FOR INTERFACING A WIRELESS COMMUNICATION DEVICE WITH AN ACCESSORY
BACKGROUND OF THE INVENTION
I. Field of the Invention
The present invention relates to wireless communication devices and their accessories. More particularly, the present invention relates to a novel and improved method and system for interfacing a wireless communication device with an accessory.
II. Description of the Related Art In the art of wireless communications, a wireless communication device such as a portable telephone will typically interface with one or more accessories, including car kit adapters, battery chargers, docking stations or data cradles, holsters, and the like. These accessories may expand the functionality or usability of the portable telephone. For example, when the portable telephone is interfaced to a traditional car kit adapter, it will generally receive power from the automobile's battery or alternator. Additionally, the car kit adapter may include circuits which allow hands-free operation, voice recognition, and other useful functions.
To the extent that the portable telephone is able to interface with these external accessories, it traditionally has been programmed with control software to direct the operation of the external accessory. This has required that the portable telephone contain control software for each of the possible external accessories with which it may possibly interface, even though the actual user of the particular portable telephone in question may not own any external accessories. This leads to increased cost and size of the portable telephone because it must contain enough memory to carry all the possible accessory control software.
In other words, it is not efficient for a portable telephone to contain the control software for all possible devices with which it may interface. What is needed is a method and system for interfacing a wireless communication device with an external accessory which does not rely on the wireless communication device itself storing control software for that external accessory.
2
SUMMARY OF THE INVENTION
The present invention is a novel and improved method and system for interfacing a wireless communication device with an external accessory. The system includes an attach detector for detecting an attachment of the wireless communication device and the external accessory. In response to the attachment detection, a controller downloads accessory interface software from the external accessory to the wireless communication device. Thereafter, the wireless communication device interfaces with the external accessory according to instructions in said accessory interface software. In one embodiment, the controller initiates authentication of said external accessory prior to downloading the accessory interface software and refuses to interface with the external accessory if the authentication fails.
Using the dynamic download techniques of the present invention, the size and cost of memory in the mobile station will be substantially less than the total memory required to store all of the accessory interface software for all possible accessories, as is traditionally required in the prior art. In short, the non-volatile memory size requirements for the mobile station are reduced due to the accessory specific interface software being stored in the external accessory itself for dynamic upload to the mobile station only when it is required.
BRIEF DESCRIPTION OF THE DRAWINGS
The features, objects, and advantages of the present invention will become more apparent from the detailed description set forth below when taken in conjunction with the drawings in which like reference characters identify correspondingly throughout and wherein:
FIG. 1 is a functional block diagram of the system of the present invention; and
FIG. 2 is a flow diagram of the method of the present invention.
3
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The present invention is applicable to any wireless communication device, including cellular telephones, PCS telephones, Wireless Local Loop (WLL) telephones, and other wireless communication devices as are known in the art. For convenience, the wireless communication device will be referred to herein as a mobile station, but it is understood that the present invention is equally applicable to fixed, or non-portable telephones. Referring now to FIG. 1, a functional block diagram of the present invention is illustrated. A mobile station 100, such as a cellular or PCS telephone is illustrated as interfacing with an external accessory 102, such as a hands-free car adapter or a data dock. Mobile station 100 interfaces with external accessory 112 through an interface 112. Interface 112 may be an electrical connector and associated circuitry as is known in the art for the transfer of data signals. For example, the interface 112may be a Universal Serial Bus (USB) interface as is known in the art. Alternately, interface 112 may be similar to that described in detail in copending U. S. Patent Application Serial No. 08/593,305, entitled "PORTABLE COMMUNICATION DEVICE AND ACCESSORY SYSTEM", filed January 31, 1996, assigned to the assignee of the present invention and incorporated herein by reference. The just-mentioned patent describes a portable communications device and accessory system which enables both voice and control commands to be communicated between a mobile station and external accessories over a single flexible digital interface. When the mobile station is interfaced to external accessories, such as a power booster and hands-free kit, a mobile station controller configures the serial communications bus to pass both the digital voice data and digital control commands to and from the external power booster and the hands-free kit. The external hands-free kit contains its own auxiliary CODEC for encoding analog voice signals and decoding the digital voice data. When the mobile station is not interfaced with external accessories, the mobile station controller configures the serial communication bus to pass the digital voice data to and from an internal CODEC for use with the portable device's own microphone and speaker. Alternately, interface 112 may be a wireless interface using radio frequency (RF), infra-red (IR), or magnetic B-field modulation as is known in the art. The specific configuration of interface 112 is not critical to the present invention, and any suitable interface
4 circuitry or method may be used. However, in the preferred embodiment, interface 112 conforms to the USB Specification.
In the preferred embodiment, mobile station 100 includes an attach detector 110 which functions to detect the attachment of the external accessory 102 through interface 112. The implementation of attach detector 110 depends on the technology used for interface 112, whether it be USB, proprietary electrical connection circuitry, IR, RF, or B-field. In the preferred embodiment, attach detector 110 detects the physical connection of mobile station 100 to external accessory 102 by detecting a transition in current from an idle level to an active level in interface 112 when mobile station 100 is connected to external accessory 102. However, in alternate implementations, attach detector 110 may actively "poll" interface 112 for an attached condition. For example, in an embodiment where interface 112 is an IR interface, attach detector 110 periodically polls interface 112 for a presence message. In an alternate embodiment where interface 112 is an RF or B-field interface, attach detector 110 periodically reads a receiver ADC of interface 112 to detect a value. Thus, attach detector 110 may be any detection circuitry as is known in the art, whether it detects a transition passively, or actively polls interface 112. It also should be noted that the term "attach" as used herein does not strictly refer to physical or mechanical attachment. As used herein, the term "attach" is defined more broadly as sufficient proximity between the mobile station 100 and the external accessory 102 as to allow the communications described herein below. For example, if interface 112 is a standard USB electrical interface, physical touching of the data connectors of external accessory 102 and mobile station 100 is the requisite attachment. However, if interface 112 is a wireless interface such as IR, RF, or B-field, attachment occurs when the mobile station 100 and the external accessory 102 are within sufficient proximity to allow communication between the two. The actual physical proximity required for attachment is dependent on the nature of the technology used, including the strength of any wireless transmitters, and the sensitivity of any wireless receivers that comprise interface 112.
Upon detecting the attachment of the external accessory 102 through interface 112, attach detector 110 generates an attach signal, preferably in the form of an interrupt, to mobile station controller 110. In response to the attach signal, mobile station controller 108 begins executing instructions contained in mobile station control memory 104. Specifically, mobile station control memory 104 contains software code for executing the method described herein, and with further reference to FIG. 2 below. Mobile station
5 control memory 104 may be any memory device or type as is known in the art. In the preferred embodiment, mobile station control memory 104 is non-volatile flash memory.
Mobile station controller 108, in response to the software instructions contained in mobile station control memory 104, acts as a "host" entity in relation to external accessory 102. To this end, mobile station controller 108 polls accessory controller 114 to verify the presence of external accessory 102. Accessory controller 114 may be any suitable microcontroller or programmable microprocessor as is known in the art. In response to the poll from mobile station controller 108, accessory controller 114 begins executing instructions contained in accessory control memory 116. Specifically, accessory control memory 104 contains software code for executing the method described herein, and with further reference to FIG. 2 below. Accessory control memory 116 may be any memory device or type as is known in the art. In the preferred embodiment, accessory control memory 104 is non-volatile flash memory.
Accessory controller 114, in response to the software instructions contained in accessory control memory 116, acts as a "client" entity in relation to mobile station controller 108, which as previously stated, acts as a "host" entity.
In alternate embodiments, the "host" and "client" roles are reversed, with the external accessory 102 acting as the "host", and the mobile station 100 acting as the "client." In this alternate embodiment, the attach detector 110 would be located on the accessory side, rather than the mobile station side, and the sequence of events would be directed by the accessory controller 114.
Optionally, mobile station controller 108 may first initiate authentication of external accessory 102 in order to verify that external accessory 102 is a valid accessory. Many different methods of authentication as are known in the art may be used. For example, in one embodiment, accessory control memory 116 contains a "secret code" which is transmitted to mobile station controller 108. Mobile station controller 108 then compares the "secret code" with a corresponding one stored in mobile station control memory 104. If the two codes match, then the external accessory 102 is presumed valid, and mobile station controller 108 proceeds as described below.
In other embodiments, mobile station controller 108 may authenticate external accessory 102 using well known public and private key computations. Still other embodiments use other authentication
6 techniques. The present invention is not intended to be limited by the type of authentication performed, which is a design choice based on the tradeoff between complexity of implementation and desired robustness of security.
In the preferred embodiment, mobile station controller 108 directs accessory controller 114 to initiate a download of the interface software contained in accessory interface memory 118. Accessory interface memory 118 contains the interface software needed for the mobile station 100 to functionally interact with the specific external accessory 102. Accessory interface memory may be any type of memory element as is known in the art. In the preferred embodiment, accessory interface memory 118 is nonvolatile flash memory.
In response to the download request, accessory controller 114 reads the accessory interface software from accessory interface memory 118 and transmits it via interface 112 to mobile station controller 108. As it receives the accessory interface software from accessory controller 114, mobile station controller 108 writes the accessory interface software into interface upload memory 106, where it is temporarily stored.
Upon completion of the download, mobile station controller 108 may check for errors in the download. For example, mobile station controller 108 may verify a checksum sent by accessory controller 114. Techniques for verifying the integrity of downloaded data are well known in the art, and the specific technique employed does not limit the present invention. If the download contained errors, mobile station controller 108 may direct accessory controller 114 to reinitiate download of all blocks containing errors, or alternatively the entire accessory interface software code.
After a successful download of the accessory interface software code from accessory interface memory 118 in external accessory 102 to interface upload memory 106 in mobile station 100, mobile station controller 108 begins to execute the instructions contained in the accessory interface software. The accessory software stored in interface upload memory 106 preferably contains all of the necessary routines to interact fully with the external accessory 102. For example, if external accessory 102 is a hands-free car adapter having an auxiliary speaker, the accessory interface software stored in interface upload memory 106 may contain the algorithms for controlling the volume of the auxiliary speaker. As another example, if the external accessory 102 is a data cradle connected to a personal computer, the accessory interface software may contain the control routines which regulate data exchange between mobile station 100 and external accessory 102, according to a predefined data exchange protocol. Clearly, there are many
7 other interface routines and controls which may be resident in the accessory interface software depending on the nature of the mobile station 100 and the particular external accessory 102 which is attached. The present invention is applicable to any external accessory which interfaces with the mobile station 100 under software control.
It should be noted that FIG. 1 is a functional block diagram, rather than a physical element-by-element illustration of the present invention. As such, many of the functional blocks illustrated in FIG. 1 may be combined into a single physical element such as an Application Specific Integrated Circuit (ASIC). For example, it may be advantageous to combine interface 112 with attach detector 110, and even further with mobile station controller 108 on the same ASIC chip. Likewise, it may be advantageous to combine the mobile station control memory 104 with the interface upload memory 106. On the other hand, the functional blocks of FIG. 1 may also be implemented across several physical elements, both active and passive. Similar combinations or separations are equally applicable in the elements of external accessory 102. The present invention is not limited by the physical implementation of the functional blocks illustrated in FIG. 1. Turning now to FIG. 2, a flow diagram of the method of the present invention is illustrated. The flow begins at decision 200 where attach detector 110 (FIG. 1) awaits an attachment detection. If an attach is not detected, the flow continues to loop at decision 200 until an attach is detected. If an attach is detected, the flow proceeds to optional block 202 where authentication of the external accessory 102 is initiated by mobile station controller 108 as previously discussed with reference to FIG. 1. Because block 202 is an optional step, it is illustrated in FIG. 2 in dashed lines.
At decision 204, it is optionally determined whether external accessory 102 is a valid accessory, i.e. one which authenticates properly. If it is determined at decision 204 that external accessory 102 is not a valid accessory, then the flow immediately proceeds to block 206 where the flow ends. In such a case, the mobile station 100 will have no further interaction with the external accessory 102. In this way, the manufacture and distribution of unauthorized accessories may be discouraged.
After the optional authentication performed at steps 202-204, the flow continues to block 208 where mobile station controller 108 initiates download of the accessory interface software initially stored in accessory interface memory 118 into interface upload memory 106 as discussed above.
8
Once the download is complete, or optionally at periodic intervals during the download of the accessory interface software, the mobile station controller 108 verifies the accessory interface software at block 210, for example, by using checksums or other error detection methods as are known in the art.
If it is determined at decision 212 that the downloaded software was received with errors, and is therefore an invalid download, the flow returns to block 208 where all or part of the accessory interface software is again downloaded. On the other hand, once it is determined at decision 212 that all of the accessory interface software was received without errors, and is therefore valid, the flow proceeds to block 214. At block 214, mobile station controller 108 executes the accessory interface software routines as stored in interface upload memory 106 when interfacing with external accessory 102. It should be noted that interface upload memory 106 should be large enough to store the entire accessory interface software for the most complex external accessory 102 anticipated. However, it is understood that the size and cost of interface upload memory 106 will be substantially less than the total memory required to store all of the accessory interface software for all possible accessories, as is traditionally required in the prior art. In short, the non-volatile memory size requirements for the mobile station 100 are reduced due to the accessory specific interface software being stored in the external accessory 102 itself for dynamic upload to the mobile station 100 only when it is required. The previous description of the preferred embodiments is provided to enable any person skilled in the art to make or use the present invention. The various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without the use of the inventive faculty. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
I CLAIM: