The subject of this invention relates to the communications industry. Specifically, the present invention is directed to mobile telephones and more particularly to improvements in the ability to transfer data to and from a mobile telephone memory to some other digital device using a plurality of data transfer methods. Examples of such data include phone number directories and pictures, among others.
Mobile telephones have been in existence for some time. Initially, these devices were limited to audio messaging typical of telephony communications. More recently other services and functions have emerged for use on mobile, or cellular telephones. These services include text messaging, pictures, GPS location and Internet browsing.
One consequence of these emerging services, driven by both accelerating and merging technology, is the need for users to update their equipment. This trend has been exacerbated by cellular service providers who offer incentives to upgrade. Of course the reason for this is to encourage the user to spend more time on the air, thus increasing the revenue of the service provider, but one result is that a user will have certain data stored on his/her present cell phone that will need to be transferred to a the new phone or, more likely, have to be reentered.
Although some cellular service providers currently provide a method for accomplishing such a data transfer, the solution is specific to a device and typically performed only at a provider's store. Thus if the user upgrades or changes to a non-compatible device, the transfer method is useless. Each of the plethora of cell phone manufacturers provides unique connections to their phones, both physical and electrical. Thus while a user may buy a newer phone from the same manufacturer, the interconnect method will likely be different, again rendering the data transfer method useless.
Also present in the prior art are solutions that enable a user to backup their cell phone data to the cellular service providers network which over time is very expensive to the consumer because of the repeating monthly service charge and once using the service, locks in the consumer with that particular service provider. Other solutions include software and cable solutions that are PC centric and difficult to use because of the non-standard cell phone driver requirements needed to run software on a PC, for example SnapSync™ from FutureDial, Sunnyvale, Calif., and other devices such as the Mobile Whiz from i.Tech Dynamic Limited, Hong Kong, because of the products limited features, network specific cell phone support (GSM cell phone only), and non-functional form factor. Each of these has limitations. For example, backing up to a network diminishes the portability of the data and requires a network capable cell phone. In some cases, the network that is used is not compatible with others phones or networks, severely limiting viability of data back-up. A further limitation is that some solutions, for example, getGOING™, from Verizon Wireless, Bedminster, N.J., depend on the availability of a digital wireless signal. Without such a signal the solution is useful only in a limited area. With the use of network solutions as well as the other solutions above, data portability and ease of use remains a problem.
A further problem with the prior art is that there is no way to simply back up the data contained in the cell phone memory. Thus if the user drops the phone and breaks it, or, as is sometimes the case, simply looses the device, all the data contained in the cell phone memory is lost. Contemporary digital devices such as PCs, MP3 players and PDAs all have a method for storing data in an external medium to protect against such exigencies. One solution to this problem is presented in co-pending U.S. application Ser. No. 11/105,301, filed Apr. 6, 2005 by Tavonni Technologies, Inc. of San Jose, Calif. The subject matter presented in this application solves many of the problems mentioned just above, but lacks certain other features that greatly improve the user's experience and extends the life of their cell phone. These features include such things as flexible upgrade paths via modifiable hardware platforms, a plurality of data transfer methods, and embedded device ID for enhanced security and enhanced functionality and capabilities.
Because of the rather large number of cell phone manufacturers, coupled to the even wider variety of interconnect configurations, users who are upgrading or changing equipment are at a distinct economic and functional disadvantage. This is so since they will necessarily have to purchase the requisite accessories as well as the phone. What is needed is a method and apparatus whereby a user can make a single purchase of an accessory that will adapt to a plurality of cell phones, allowing them to reuse the transfer capability again and again thereby providing a significant functional advantage to the consumer.
What would be even more advantageous would be a method and apparatus that allowed the transfer of data from a cell phone to some other digital device, for example a PDA (Personal Digital Assistant) or PC (Personal Computer) for the purpose of editing the cell phone data. In this way the user could manipulate data on a plurality of local digital devices rather than a PC only. The capability to manipulate the data from a cell phone in an external medium provides the additional advantage of allowing for ease of data addition and/or correction.
Even further, it would be advantageous to the user to be able to transfer data via a multitude of systems and methods. For example, transfer of data over the Internet, using a PC, or from one cell phone to another cell phone directly. One novel feature of the improved method of the present invention is the ability to upgrade a user's software over the Internet using the transfer of data over the Internet.
The improved method, apparatus and system of the present invention provide a number of improvements over the prior art including, among others, allowing a cell phone user to transfer the data contents of a cell phone to a PC for editing. Several advantages derive from the present invention as discussed in detail below.
The improved method, apparatus and system of the present invention provide a means for users to transfer data from and to a cell phone memory using a plurality of data transfer methods. The apparatus of the present invention comprises a low complexity digital device having two I/O (Input/Output) connectors, one for the user's cell phone and one for connecting to some other device such as a PC. Central to the apparatus of the present invention is an Inter-device Data Transfer Processor (IDTP) which contains the necessary hardware and software to automatically move the data contents of a cell phone memory to one of a plurality of external digital devices.
The method of the present invention provides a process for transferring data from a cell phone to a PC or to some other storage device, for example, to a host device such as a server, or to another cell phone. The method allows a user to edit cell phone content directly on the cell phone or, alternatively, to interface the apparatus to a PC and use PC resident software to accomplish the editing task. The software response of the method of the present invention is designed to be very easy to operate.
For example, assuming that the user wishes to transfer data from his/her cell phone to a PC, the user simply plugs the apparatus of the present invention into his/her cell phone using the appropriate connector. The IDTP senses power from the cell phone and automatically turns on, doing an internal check to see that all functions are operating properly and checks to see that the cell phone is compatible by checking an internal device code. Once the internal check is complete the self contained software initiates a loop that waits for the user to enter a command via one of a plurality of buttons. For example, the user may depress the Backup button, signaling the self contained software to commence fetching data from the memory of the cell phone. The data are copied from the cell phone memory to the memory of the apparatus where they remain until the user takes some further action.
Once the data from the cell phone are stored in the memory of the apparatus of the present invention, the user disconnects the cell phone and connects the apparatus to a PC, for example by way of a USB connection. Since the IDTP senses that power from the cell phone has been lost, the apparatus of the present invention shuts down. However, upon connecting to the PC, the IDTP again senses power via the USB interface and accomplishes the power on steps as stated above except that no device compatibility code is checked since the apparatus is now connected to a PC.
Since the data from the cell phone were stored in the non-volatile memory of the apparatus of the present invention, they are now ready to be transferred to the PC. The user simply launches an application program on the PC and follows the procedures for operation of the program to transfer the data from the memory of the apparatus to the memory of the PC. The application program contains the necessary functionality to edit data. By way of example, a user can modify existing data, add new data or delete existing data.
Once done the user reverses the process, updating the memory of the apparatus from the PC, disconnecting from the PC, reconnecting to the cell phone and then updating the cell phone memory. In this way the user may transfer data contents from a cell phone to a PC using a single apparatus and alternately connecting the apparatus to the cell phone or the PC.
The present invention also provides a system for users to update or upgrade the resident software in their data transfer apparatus. For example, suppose a user responded to a cell phone manufacturer's sales drive and, as a result, now has a newer version. With the system of the present invention, in concert with the method, the user can attach to a network, download the updated or upgraded code, and not have to purchase a new data transfer apparatus. As with the process described briefly above, internal code checks are made to ensure that the present cell phone is compatible with the selected upgrade.
Other improvements are made in the present invention. One such improvement is the use of interchangeable cell phone connectors allowing a user to take advantage of the capabilities of the apparatus over a wide range of target cell phones simply by changing the cell phone interface connector. This connector, referred to as a Manufacturer's Attribute Adapter (MAA) has a common connection characteristic to the processor side of the IDTP and a custom connection characteristic to a plurality of target cell phones.
As can be seen, the method, apparatus and system of the present invention offer a distinct economic and efficiency benefit to the user. This and other features and advantages of the present invention are discussed in detail below in conjunction with the drawings and figures attached.
As described briefly above, the improved method, apparatus and system of the present invention provide a user with the ability to transfer the data contents of the memory of a cell phone to another cell phone or to any of a plurality of other target digital devices.
An IDTP 100 contains a CPU (not shown) and Memory 500. Also present, but not shown for clarity are User Controls & Indicators, I/O Circuits, Data Buses and other details needed for operation of a digital device. Where necessary to the disclosure of the present invention, these items will be discussed in detail below. Note that Memory 500 is actually comprised of three separate memories: CPU Flash Memory 510 containing an embedded O/S (Operating System) 512 and Manufacturer's Code Tables 514; Data Flash Memory 520 containing Phone Book Data 522 and a Copy of the O/S 524; and SDRAM (Synchronous Dynamic Random Access Memory) 530 containing System Data Structures 532 and Buffers & Queues 534. Also note that while Memory 500 is shown as a single block, parts of the memory are distributed between the CPU and other integrated circuit devices.
USB Connector 120 interfaces with the IDTP 100 to allow communication with external devices such as the User's PC 20. Cell Phone Connector 114 is used to allow a user to connect his/her cell phone, for example Cell Phone 30, to the ITDP 100. As will be discussed below in detail, there are many more devices and features of IDTP 100 that impinge upon the apparatus and method of the present invention, but are not addressed here for clarity.
One of the benefits of the present invention is that it may be connected to an external digital device, such as User's PC 20. Because User's PC 20 has it's own processing and data storage capability it can be used to enable certain software applications programs that enhance the method of the present invention. As shown, software applications CellStik Central 22, CellStik Edit 24, and CellStik Sync 26 are stored on User's PC 20. As will be discussed in detail below each of these applications programs provide a user with novel functions in conjunction with the apparatus of the present invention. However, as a brief introduction, CellStik Central application 22 is used in concert with the Internet 50 and Spark Technology Server 40 to allow a user to update their cell phone via a network connection. CellStik Edit application 24 is used to allow a user to edit data downloaded to the User's PC 20 and CellStik Sync application 26 is used to synchronize data between a user's cell phone and external PIM (Personal Information Management) software such as Outlook™ from MicroSoft, Redmond, Wash. or Lotus Notes™ from IBM, Armonk, N.Y.
While CellStik Central application 22 and CellStik Edit 24 are discussed in detail below, a detailed discussion of CellStik Sync application 26 is not provided since the functions associated with this application are performed in the customary way and do not impinge on the method of the present invention. However, lack of a detailed discussion of this function should not be read as a limitation on the scope of the invention. Further, it will be understood that although the external digital device shown is a PC, it would be possible to use any compatible digital device having storage and processing capability without departing from the spirit of the invention, thus the use of a PC should not be read as a limitation on the scope of the invention. By way of example, the User's PC could just as well be a PDA (Personal Digital Assistant) as long as it was capable of interfacing to and running the software applications programs.
Memory 500 is comprised of three separate section, or chunks, of memory. Two of these chunks, SDRAM 530 and CPU Flash Memory 510, are built in to CPU 200. CPU Flash Memory 510 contains an Embedded O/S (Operating System) 512 and a Manufacturers Code Table 514. The function of the O/S 512 is to provide the processing capability for the apparatus of the present invention. In this preferred embodiment the O/S 512 is a UC/OS-II™ from Micrium, Inc., Weston, Fla. However, it will be understood that any O/S could be used without departing form the spirit of the invention, thus the use of the UC/OS-II™ O/S is exemplary only.
The SDRAM 530 contains System Data Structures 532 and Buffers & Queues 534. The System Data Structures 532 include the necessary data elements for use by the method of the present invention. To aid in clarity, only those data structures that are directly involved with the method of the present invention will be discussed in detail. This discussion occurs below in conjunction with the detailed presentation of the process and flow charts. The same is true for Buffers & Queues 534 which form the requisite temporary data handling locations. Both the System Data Structures 532 and Buffers & Queues 534 perform in a conventional manner.
Data Flash Memory 520 is comprised of Phone Book Data 522 and a Copy of O/S 524. The function of the Phone Book Data 522 is to hold data coming from or going to the user's Cell Phone 30 or to or from User's PC 20. These data are written to or read from Phone Book Data 522 under the control of the method of the present invention as discussed in detail below. The Copy of O/S 524 is needed when the existing O/S 512 is being upgraded. A new O/S 524 is written prior to the beginning of the upgrade process. Once the upgrade is completed the system is reinitialized and once operating properly the Copy of O/S 524 is no longer used. In this preferred embodiment of the apparatus of the present invention the Data Flash Memory 520 is a AT45DB011B from Atmel Corporation, San Jose, Calif.
User Controls & Indicators 300 are comprised of a set of two switches and three LEDs (Light Emitting Diodes). Each of these is discussed below in conjunction with the discussion of the method of the present invention, however, briefly the two buttons are Update and Save. Each is shaped like an arrow to indicate to the user in which direction the data will flow when the button is pressed. The Update button passes data from the apparatus of the present invention to the user's cell phone while the Save button passes data from the user's cell phone to the apparatus.
The three LEDs that are part of User Controls & Indicators 300 are a centrally mounted red LED and two green data direction LEDs mounted towards the edges of the body of the apparatus. The function of the red LED, which is of a hexagonal shape, is to indicate an error to the user. The hexagonal shape is used since it represents the notion of a “stop” sign. The two green LEDs are shaped like arrows; one for each direction of data flow. Each of these green LEDs is physically associated with one of the buttons. Thus when the user presses the Update button, the green LED pointing from the apparatus to the user's cell phone will light, and vice versa for the Save button.
Returning to CPU 200, note that there exist two ports operating to interface the apparatus of the present invention to the outside world. The first of these is the Cell Phone I/O port 110. Cell Phone I/O 110 works in concert with UART 216 to pass signals from the CPU 200 to the MAA (Manufacturer's Attribute Adapter) 114. Note that UART 216 and Cell Phone I/O are actually a part of the CPU 200 but are shown as a separate block for logical clarity. MAA 114 connects the apparatus of the present invention to the user's Cell Phone 30.
One novel feature of the present invention is the use of MAA 114. To allow the user to change cell phone manufactures and continue to use the apparatus of the present invention, a plurality of MAAs are available. When the user changes phone manufacturers the user simply needs to change the MAA. The apparatus of the present invention advantageously contains a table of manufactures codes that allows the method of the invention to determine if the newly connected cell phone is compatible. It should be noted that while the preferred embodiments of the present invention make use of the MAA, lack of such an adaptive device should not be read as a limitation on the scope of the invention since the method of the present invention works just as well without it.
The second output port of the CPU 200 is USB I/O 120. This interface is used to connect the apparatus of the present invention to an external digital device, such as User's PC 20. This interface works in the customary manner and in this preferred embodiment the USB I/O 120 is an integral part of CPU 200. It is shown separately for clarity. The USB I/O 120 passes data from the application programs CellStik Central 22, CellStik Edit 24 and CellStik Sync 26 in the manner discussed briefly above. A more detailed discussion of the use of this port appears in conjunction with the detailed method description below.
Another novel and unique feature of the present invention is the ability to transfer data between two apparatuses of the present invention.
Each of the IDTPs 100A and 100B contain a memory, for example Memory 500A and 500B. These memories each contain CPU Flash Memory (510A and 510B), Data Flash Memory (520A and 520B) and SDRAM (530A and 530B). As was described above, the CPU flash memory contains Embedded O/S (512A and 512B) and a Manufacturer's Code Table (514A and 514B). Similarly data flash memory contains Phone Book Data (522A and 522B), and a Copy of O/S (524A and 524B). Also, SDRAM contains System Data & Structures (532A and 532B) and Buffers & Queues (534A and 534B). In operation the various program instructions contained in IDTP 10A, for example, allow a user to transfer data to or from IDTP 100B. Which of the IDTPs is master and which is slave depends on which button is activated. If a button on IDTP 100A is depressed, it becomes the master for that session. The converse is true of the user presses a button on IDTP 100B.
Beginning with
At CPU OK decision 2030 the process determines if the self test was successful. If the CPU is not capable of performing, the No branch is followed to Turn Green LED Off step 2052 where the green LEDs are turned off. At Red LED On step 2060 the red LED is turned on to indicate to the user that the IDTP has failed a power up and that corrective action must be taken before proceeding. From here the process returns to Main via off page connector 11070 where the process stops at End step 1080.
If the CPU test was successful the Yes path is taken out of CPU OK decision 2030 where the process enters the Blink Green LED step 2035. At this time the green LEDs are set to the standard blink mode of 5. seconds on, 0.5 seconds off to indicate to the user, that the CPU is operational. It will be recognized that other blinking rates could be used without departing form the spirit of the invention, thus the blink rate used is exemplary only. the precise details of this test to not impinge on the method of the present invention so are not discussed in detail. This lack of a detailed discussion should not be read as a limitation on the scope of the invention. The process advances to the Memory OK decision 2050. If the test was successful the process moves to Main via Return step 2055. If the test failed, the No path is followed out of Memory. OK decision 2050 to Red LED On step 2060 where he red LED is turned on to indicate to the user that the IDTP has failed upon power up and that corrective action must be taken before proceeding. From here the process returns to Main via off page connector 11070 where the process stops at End step 1080. Off page connector 53025 is a reentry path from another part of the method of the present invention and will be discussed in detail below in conjunction with
Returning to
If the IDTP has been connected to a cell phone, the No path is followed out of USB decision 1040 where the process enters the Cell Phone Interface Process 3000. If the IDTP has been connected to a PC, the Yes path is followed out of USB decision 1040 where the process enters the USB Interface Process 4000. Each of these processes is discussed in detail below in conjunction with
Turning now to
Supposing now that the code that has been read is valid, the Yes path is followed out of Valid decision 3020. At Green LED Off step 3030 the green LEDs turned off informing the user that the IDTP has been connected successfully, that the cell phone model is valid and that data may now be sent to or retrieved from the cell phone. At Init Process Variables step 3035 the various temporary values that are used by the method of the present invention are initialized. Exactly what these variables are is unimportant as they do not effect the method of the invention and they operate in the same manner as other variables in contemporary digital devices, however, by way of example such variables include LED State, Model Number Detected and Cell Phone Serial Number to name a few. These variables are contained in System Data Structures (532 in
In a like manner the program counters are initialized at Init Program Counters step 3040. Several counters are used and each operates according to conventional principles. Examples include the Record Counter, Loop timer, Transfer Watchdog Timers and Button Delay Timer. It will be recognized that the absence of an exhaustive list of program variables, timers and counters should not be read as a limitation on the scope of the invention. Once initialization of the program variables, timers and counters is complete the process advances to the Unplug decision 3050.
At Unplug decision 3050 the method of the present invention determines if the user has disconnected the IDTP from its source of power. This step is required because until power is removed the method of the present invention remains active, if only in an idle loop. If the IDTP has been disconnected the process follows the Yes path, returning to the Main flow 1000 via Return step 3055. the process flow then enters the Power to IDTP Lost step 1050 and the process terminates as described above.
If the IDTP has not been disconnected the No path is followed out of Unplug decision 3050 entering the Button Push decision 3060. If no button is being depressed the No path is followed leading back to the Unplug decision 3050. The Unplug decision 3050 and the Button Push decision 3060 form an idle loop. The method of the present invention will continue to process these two steps until a button is depressed. When that occurs the Yes path is followed out of Button Push decision 3060 causing process control to pass to the 2 Second Delay Counter 3065. 2 Second Delay Counter 3065 is a switch closure de-bounce mechanism ensuring that the signal from the IDTP control truly represents a user button closure and not an accidental press such as might occur while connecting or disconnecting the IDTP to some other device. The 2 Seconds decision 3070 simply tests to see that the delay time has passed. Once the timer has run process flow passes to Update decision 3080.
At Update decision 3080 the method of the present invention determines which button the user has depressed. Recall from above that there are two buttons on the IDTP: one for update and one for backup. If the user has depressed the update button the Yes path is followed out of the Update decision 3080, entering the IDTP Update flow shown in
Entry into the IDTP Update process is made via off page connector 23085. At Blink Green LED step 3110 the method of the present invention causes the green LED that has been solidly-off to begin blinking at a rate of 0.5 second on and 0.5 second off. The LED is made to blink to inform the user that the button press has been accepted and that the process is moving forward. At Set Memory Pointer to 1st Record step 3115 the IDTP memory location that contains the address of the first data record is set. At Start Watchdog Timers step 3120 the three watchdog timers are set to their initial values. As explained in detail below, these watchdog timers are used to monitor the progress of the transfer operation. At this point in time the IDTP is ready to begin transferring data from the IDTP memory to the cell phone memory.
A loop is now executed by the method of the present invention that fetches a data record from the IDTP memory (522 of
A series of decisions is now executed that determine whether or not the process is performing normally. At Watchdog Timer 1 (WD1 OK decision 3140 the first timer is checked to see if it has expired. If not, the Yes path is followed causing process control to pass to the WD2 OK decision 3142. WD1 is used to determine if the overall transfer process has been completed normally. The time limit for WD1 can vary from four to thirty minutes depending upon the exact manufacturer and model of the target cell phone and the number of records to be tansferred. The time for WD1 is loaded as part of the information gathered during the validation check sequence described above.
At WD2 OK decision 3142 the second timer is checked to see if it has expired. If not, the Yes path is followed causing process control to pass to the WD3 Ok decision 3144. WD2 is used to monitor if the transfer loop process consisting of Last Record decision 3125, Fetch Next Record step 3150, Write to Cell Phone step 3155, WD1 through WD3 decisions 3140 through 3144, Increment Record Counter step 3160 and Reset WD2 & 3 step 3165. The time limit for WD2 is two seconds in a preferred embodiment of the present invention, however, it will be noted that different times could be used for timer WD2 without departing from the spirit of the invention. The time for WD2 is fixed and is loaded as part of the Initialize Process Variables step 3035 described above.
At WD3 OK decision 3144 the third timer is checked to see if it has expired. If not, the Yes path is followed causing process control to pass to the Increment Record Counter step 3160. WD3 is used to monitor if the Write to Cell Phone step 3155 to ensure that the current record has been properly transferred to the target cell phone. The time limit for WD3 is two hundred milli-seconds in a preferred embodiment of the present invention, however, it will be noted that different times could be used for timer WD3 without departing from the spirit of the invention. The time for WD3 is fixed and is loaded as part of the Initialize Process Variables step 3035 described above.
Supposing that the process is running normally process control enters the Increment Record Counter step 3160 where the next record in succession is pointed to. At Reset WD2 & 3 step 3165 the two short duration timers are reset in anticipation of executing the next record transfer. The process then again enters the Last Record decision 3125 where the loop begins again.
Once all records have been transferred the Yes path is followed out of Last Record decision 3125. The green LED that has been blinking during the transfer process is now turned off at Green LED Off step 3135. Next the Stop All WD Timers Step 3137 is executed to prevent the process from stopping due to expiration of one of the watchdog timers. Process control returns to the Unplug decision 3050 via off page connector 43145 where the process enters the idle loop waiting for the user's next command. But suppose now that the transfer did not succeed as would be the case if any one of the three watchdog timers described just above fails. In this instance the process passes to the Red LED On step 3180. Flow then passes back to Cell Phone Interface Process via off page connector 43145. Once the process has returned to the Cell Phone Interface Process the idle loop is entered at Unplug decision 3050 and the user must take some action.
A loop is now executed by the method of the present invention that fetches a data record from the cell phone memory, transfers it to IDTP memory (522 of
A series of decisions is now executed that determine whether or not the process is performing normally. At Watchdog Timer 1 (WD1) OK decision 3240 the first timer is checked to see if it has expired. If not, the Yes path is followed causing process control to pass to the WD2 OK decision 3242. WD1 is used to determine if the overall transfer process has been completed normally. The time limit for WD1 can vary from four to thirty minutes depending upon the exact manufacturer and model of the target cell phone. The time for WD1 is loaded as part of the information gathered during the validation check sequence described above.
At WD2 OK decision 3242 the second timer is checked to see if it has expired. If not, the Yes path is followed causing process control to pass to the WD3 Ok decision 3244. WD2 is used to monitor if the transfer loop process consisting of Last Record decision 3225, Fetch Next Record step 3250, Write to IDTP step 3255, WD1 through WD3 decisions 3240 through 3244, Increment Record Counter step 3260 and Reset WD2 & 3 step 3265. The time limit for WD2 is two seconds in a preferred embodiment of the present invention, however, it will be noted that different times could be used for timer WD2 without departing from the spirit of the invention. The time for WD2 is fixed and is loaded as part of the Initialize Process Variables step 3035 described above.
At WD3 OK decision 3244 the third timer is checked to see if it has expired. If not, the Yes path is followed causing process control to pass to the Increment Record Counter step 3260. WD3 is used to monitor if the Write to IDTP step 3255 to ensure that the current record has been properly transferred to the IDTP memory. The time limit for WD3 is two hundred milli-seconds in a preferred embodiment of the present invention, however, it will be noted that different times could be used for timer WD3 without departing from the spirit of the invention. The time for WD3 is fixed and is loaded as part of the Initialize Process Variables step 3035 described above.
Supposing that the process is running normally process control enters the Increment Record Counter step 3260 where the next record in succession is pointed to. At Reset WD2 & 3 step 3265 the two short duration timers are reset in anticipation of executing the next record transfer. The process then again enters the Last Record decision 3225 where the loop begins again.
Once all records have been transferred the Yes path is followed out of Last Record decision 3225. The green LED that has been blinking during the transfer process is now turned off at Green LED Off step 3235. Next the Stop All WD Timers Step 3237 is executed to prevent the process from stopping due to expiration of one of the watchdog timers. Process control returns to the Unplug decision 3050 via off page connector 43145 where the process enters the idle loop waiting for the user's next command. But suppose now that the transfer did not succeed as would be the case if any one of the three watchdog timers described just above fails. In this instance the process passes to the Red LED On step 3280. Flow then passes back to Cell Phone Interface Process via off page connector 43145. Once the process has returned to the Cell Phone Interface Process the idle loop is entered at Unplug decision 3050 and the user must take some action.
All of the operations associated with the previous discussions have centered on using the apparatus of the present invention to move data to and from one or more cell phones. Advantageously the method of the present invention includes a software application program that may be executed on an external digital device. For purposes of the following discussion, the external device is a PC, however, it will be understood that the application program discussed could be transported to any properly configured digital device, thus the use of a PC should not be read as a limitation on the scope of the invention.
Looking first at
Once an IDTP is detected the process flow progresses to the Fetch Linkstring & ESN step 4025. A novel advantage of the present invention is that each IDTP carries its own unique ESN (Electronic Serial Number) as well as a data record, called the Linkstring, containing a number of important data fields including the PCP (Previous Cell Phone), CCP (Current Cell Phone), CSP (CellStik Service Pack), and revision levels of firmware and hardware. Each time the IDTP connects to an external device the ESN and Linkstring are loaded and, as will be explained below, are used to identify and certify the IDTP. After the ESN and Linkstring have been retrieved by the application program any error codes present in the IDTP are retrieved at Fetch Error Code step 4027. Another novel and useful feature of the present invention is that when an error occurs it is assigned an error number and stored in the memory of the IDTP. Thus when a user attaches the IDTP to their PC, the cause of that error is displayed on the user's PC so that the user may know what action to take to resolve the situation.
Once any error codes have been retrieved and stored, the process enters the Display Welcome Screen step 4028 where the Welcome screen is presented to the user.
Referring to
Looking at
Looking again at
At Exit decision 4140 the process determines if the user has selected the Exit tab (6185 of
Looking at
However if the model and manufacturer data were not correct the Display User Message step 4260 is executed to inform the user that a different IDTP has been attached. This could happen, as explained below, as the result of the process of converting between two IDTPs that are compatible with different cell phones. At Save Anyway decision 4270 if the user wishes to save the data the Yes path is followed leading to the Write Data to IDTP step 4270. If the user did not wish to save the data, the No path is followed out of Save Anyway decision 4270 where process control passes to the tab selection tree of
Next assume that the user has selected the Compatible Phone tab 6200 from the Welcome Screen 6000. Recall from above that the process branches to
Looking at
If the CCP and the PCP match the Yes path is followed out of CCP=PCP decision 4409 to the Write CCP Field step 4421. Returning to No PCP decision 4406, and assuming that no PCP exists or, alternatively, that the PCP was not equal to the CCP, the process enters the CCP/PCP Support decision 4412. If the data show that the CCP and PCP are supported the Yes path is followed out of the CCP/PCP Support decision 4412 to the Write CCP Field & PCP Field 4418. Lastly, if the PCP and/or CCP are not supported the No path is followed out of CCP/PCP Support decision 4412 to the Display User Message step 4415 where a list of those phones that are supported is displayed to the user. The user selects one of the phones listed and the flow progresses to the User Selects Model or Accepts Default step 4424. The combination of the three branches of the process comprised of No PCP decision 4406, CCP/PCP Supported decision 4412 and Display User Message 4415 form a auto-complete subroutine that populates a data base used by the method of the present invention to determine what the required combination of software, firmware and on-line support is for the cell phone to be added.
From the User Selects Model or Accepts Default step 4424 the process enters the FW/CSP Support decision 4427. If the cell phone selected is not supported the process advances to the Registration Data>3 decision 4451 via off page connector 164430. If this path is followed additional upgrade selections will need to be made as discussed in detail below. However, if the selected cell phone is supported the Yes path is followed out of FW/CSP Support decision 4427 to the FW/CSP OK decision 4433. Here the method of the present invention determines if the current levels of firmware and cell phone service pack data retrieved above are current. If so, the Yes path is followed out of FW/CSP OK decision 4433 to the Display User Message step 4436 where the user is informed that their cell phone is supported and their IDTP is up to date. The process then transfers to the tab selection tree of
Considering now that the firmware or cell phone service pack were not current, the No path is followed out of FW/CSP Support decision 4433 to the Display User Message step 4439 where the user is informed that the selected cell phone is supported but that an update is required. At Upgrade decision 4442 the user is given the opportunity to either perform the upgrade or not. If the user chooses not to upgrade, flow passes back to the tab selection tree of
Returning to FW/CSP Supported decision 4427, and assuming that the user's firmware or Cell phone Service Pack is/are out of date, recall that as described above the flow now passes to
If, on the other hand, the user registered their IDTP greater than three months previous process flow passes to the Additional Upgrade decision 4454. If the user purchased additional upgrades previously, the Yes path is followed out of Additional Upgrade decision 4454 and the process progresses to the Fetch Current FW/CSP step 4445 via off page connector 174460. If the user has not purchased additional upgrades, but wishes to do so at this time, the No path is followed out of Additional Upgrade decision 4454 to the Display User Message step 4457 where the user is prompted to make a choice to either purchase or decline to purchase. If the user opts to purchase an upgrade the Yes path is followed to the Update User Registration Information step 4466. Inside this subroutine the user provides the requisite purchase information and, when completed, the flow then passes to the Fetch Current FW/CSP step 4445 via off page connector 174460. If the user declined the invitation the purchase the upgrade flow follows the No path out of the Purchase? decision 4463 and returns control to the tab selection tree of
Recall from above that the method of the present invention has checks that determine the current status of the application software running of the PC and the firmware resident in the IDTP.
Having selected the Check for Updates tab 6320 the Update Download Screen 6350 appears as shown in
Looking now at
Returning to the FW Old decision 4545, suppose the firmware of the user's IDTP is out of date. The Yes path is followed to the Download Firmware step 4550 where the current firmware code is download in a manner similar to the software code just above. As with the software download, once complete flow passes back to the tab selection tree of
Consider now that the user selected the Transfer Phonebook tab on Welcome Screen 6000.
The transfer process enters the Transfer Source CellStik Mem to PC step 4625 via off page connector 114605. The operation of transferring the data from the source IDTP to PC memory begins after the user has selected the Transfer tab 6420. The method of the present invention monitors the process and continues to transfer data until the last record has been transferred. This transfer is accomplished in the same manner as described earlier in conjunction with
At IDTP Plugged decision 4637 if the user has not yet connected the destination IDTP, the process returns to the Display User Message step 4635 via the No path out of IDTP Plugged decision 4637, looping until the proper action has been taken. At the Model & Manufacture OK decision 4640 the process has determines if the destination IDTP is the correct type and if so, if it is ready to receive data. If not the No path is followed out of Model & Manufacture OK decision 4640, returning to the Display User Message step 4635 via the No path out of IDTP Plugged decision 4637, looping until the proper action has been taken. If the proper IDTP has been connected and is ready to receive data, the data are sent to the destination IDTP at Transfer PC Memory to Destination CellStik step 4645.
As above, until the last record has been transferred the operation continues executing a loop consisting of the Done decision 4650 and Transfer PC Memory to Destination CellStik step 4645 until the transfer is complete. At that time the process follows the Yes path out of Done decision 4650 to the Display User Message step 4655 where the user is informed that the transfer is complete. From there the process returns to the tab selection tree via off page connector 64032.
The last tab that could be selected by a user from the Welcome Screen 6000 is the Help & Support tab 6500.
The help process is entered at the FAQ decision 4720 via off page connector 124710. If the user has selected the Frequently Asked Questions tab 6520 the current listing of those questions is displayed for the user at Launch Frequently Asked Questions step 4725. If the user did not select the frequently asked questions the No path is followed out of FAQ decision 4720 and process flow enters the Online Support decision 4730. If the user selected online support, the yes path leads to the Link to Website step 4735. The user is passed to the website where instructions and help may be found. If the user did not select online support the No path is followed out of Online Support decision 4730 to the Uninstall decision 4740. If the user wishes to uninstall the software application resident on his/her PC the Launch Uninstall Program 4745 is executed. If either the frequently asked questions or online support tasks were selected by the user, when complete control passes back to the tab selection tree of
Other functions are incorporated into the application software executing on the user's PC but are not discussed in detail since they do not directly impinge in the method of the present invention. Such functions include registration of new users, management of user data, financial processing and vendor notifications. These functions perform in a manner consistent with other conventional programs. The absence of a detailed discussion of these functions should not be read as a limitation on the scope of the invention.
Up to this point in the discussion the various processes have assumed the availability of a PC and the Internet to accomplish tasks involving changing cell phone models or manufacturers. But what if the user is in an area that lacks access to the Internet or where it is difficult to get to and use a PC? One of the more advantageous improvements of the present invention is a method that allows transfer, saving and backup of data contained in one cell phone to another cell phone without the need to connect to an external device such as a PC.
In either case once power has been applied the IDTP performs an internal test to determine that the IDTP is operational at CPU Internal Test step 5040. This test is the same as was described above in conjunction with
Process flow now progress to User Plugs 2nd IDTP to Cable step 5050 where the user plugs a second IDTP compatible with a second cell phone into a custom transfer cable, described below in greater detail. At Cell Phone decision 5055 the process determines if the user has plugged the IDTP into a second cell phone as well. This is important for the same reason stated just above. If the user has not plugged into a cell phone, the No path is followed out of Cell Phone decision 5055 to the IDTP Receives Power from Cable step 5065. If the user has plugged into a cell phone, the Yes path is followed out of Cell Phone decision 5055 to IDTP Receives Power from Phone step 5060.
As was the case for the first IDTP above, once power has been applied the second IDTP performs an internal test to determine that it is operational at CPU Internal Test step 5070. This test is the same as was described above in conjunction with
Upon completing the power up and test of both IDTPs, the process senses a connection and creates a communication session at Establish Communication Link step 5080. The exact process for doing this is not discussed in detail since it is done using conventional serial communications methods. At Link OK decision 5085 the method determines if the communications link has been properly established. If not, the No path is followed out of Link OK decision 5085 reentering the User Plugs 2nd IDTP to Cable step 5050. The method of the present invention will continue to loop in this manner until a proper communication link has been established. When a proper link has been established the process enters the IDTP to IDTP Transfer Process step 5090.
Once the transfer is complete the process enters the End step 5095 where the user disconnects the IDTPs and the process stops. The details of the transfer process, whether saving data to a cell phone or backing data up to an IDTP, are identical to the same processes discussed above in conjunction with
Turning now to
Beginning with
In operation, the method of the invention is executed when a user presses one of the directional buttons on either IDTP 610 or IDTP 650. For example, if the user wished to move the contents of the memory in IDTP 610 to IDTP 650, button 612 would be depressed. If, on the other hand, the user wished to move data from IDTP 650 to IDTP 610, button 614 would be depressed. Buttons 652 and 654 on IDTP 650 perform the exact same functions in the exact same manner as their counterparts on IDTP 610.
In operation, the method of the invention is executed when a user presses one of the directional buttons on either IDTP 910 or IDTP 950. For example, if the user wished to move the contents of the memory in IDTP 910 to IDTP 950, button 912 would be depressed. If, on the other hand, the user wished to move data from IDTP 950 to IDTP 910, button 914 would be depressed. Buttons 952 and 954 on IDTP 950 perform the exact same functions in the exact same manner as their counterparts on IDTP 910.
Looking now at
In operation, the method of the invention is executed when a user presses one of the directional buttons on switch housing 760A. For example, if the user wished to move the contents of the memory in IDTP 710 to IDTP 750, button 763 would be depressed. If, on the other hand, the user wished to move data from IDTP 750 to IDTP 710, button 765 would be depressed. In still another alternative embodiment a switch housing 760B is used. In this configuration a slider switch 767 has a neutral position as well as two active positions. Moving the slider switch 767 to the end of the switch housing 760B nearest IDTP 710 will cause the contents of the memory of IDTP 750 to be copied to the memory of IDTP 710. In a similar manner, moving the slider switch 767 to the end of the switch housing 760B nearest IDTP 750 will cause the contents of the memory of IDTP 710 to be copied to the memory of IDTP 750.
In operation, the method of the invention is executed when a user presses one of the directional buttons on either IDTP 810 or IDTP 850. For example, if the user wished to move the contents of the memory in first cell phone 815 to a second cell phone 855, button 812 on IDTP 810 would be depressed. If, on the other hand, the user wished to move data from second cell phone 855 to a first cell phone 815 button 814 on IDTP 810 would be depressed. Buttons 852 and 854 on IDTP 850 perform the exact same functions in the exact same manner as their counterparts on IDTP 810.
Looking now at
At the opposite end of the main body of the apparatus 100 the Cell Phone I/O 110 receives signals from the CPU 200. Cell Phone I/O connector 110 mates with MAA 170. Recall that in the embodiment of the apparatus of the present invention shown in
In this way a user may reuse the main body of the apparatus 100 even when changing manufacturers or models. If the user's new phone is not compatible with the Cell Phone connector 175, he or she may simply purchase a new MAA 170 thereby significantly reducing the cost. Cover 180 is easily removed and replaced and performs the same function in the same manner as cover 150 discussed above.
From the preceding discussions it can be seen that a first advantage of the present invention is the ability of a user to transfer data from and to a cell phone. Thus if the user wishes to change to a new phone, the data stored on the previous phone may be saved and transferred relieving the user of the need to reenter the data.
A second advantage of the present invention is the ability to backup the data stored in a cell phone to the apparatus of the present invention. Once stored within the memory of the apparatus of the present invention the user may simply leave it there for backup or, if desired, transfer the data to a PC for further manipulation.
A third advantage of the present invention is the ability of a user to edit the contents of a cell phone memory in a user friendly data editing environment. Such an environment in a preferred embodiment is a PC. Having this ability allows the addition, deletion or modification of cell phone data without the clumsy and difficult mechanism provided by the limited function of the keypads of cell phones.
A fourth advantage of the present invention is the auto download upon launch of the Edit function operating as part of the PC application. By accomplishing the transfer of data from the apparatus of the present invention to the temporary program memory of the PC resident application program, the data automatically populate the user screen making the operation efficient and user friendly.
A fifth advantage of the present invention is the ability to transfer the contents of a cell phone memory without the use of a PC or other external digital device. The transfer may be accommodated in a number of ways including IDTP to IDTP, from one cell phone to a different cell phone using only one IDTP, or cell phone to cell phone using compatible IDTPs. Alternate embodiments allow for power to be delivered from a standard AC source or from a cell phone.
A sixth advantage of the present invention is the use of detachable characteristic modules that adapt the IDTP to different manufactures and models of cell phones. By doing this the user achieves an economic benefit in that only one IDTP need be purchased to accommodate a plurality of cell phones.
A seventh advantage of the present invention is the ability of the application software program running on the user's PC to determine compatibility of newer cell phones by reviewing the data captured by the apparatus of the present invention from the current cell phone of the user. By so doing the user of the present invention is constantly able to keep up to date with the most current cell phone technology available.
An eighth advantage of the present invention is the ability to keep the user's IDTP and PC resident application software up to date. This is accomplished by tracking user data saved in the memory of the IDTP. As bugs are resolved and/or newer functions added the user can keep his/her device up to date without the expense of purchasing a newer IDTP.
A ninth advantage of the present invention is the ability to support a broad spectrum of data types such as photos, music files, ring tones and text messages. Having this ability allows users to take maximum advantage of their cell phone's capabilities.
A tenth advantage of the present invention is the absence of a need for the user to load special interface drivers to their PC. Since the O/S of the IDTP contains its own USB driver, the user simply plugs the IDTP in and proper protocols are established.
This non-provisional utility patent application is a continuation-in-part of currently pending application Ser. No. 11/105,301 filed Apr. 6, 2005.
Number | Date | Country | |
---|---|---|---|
Parent | 11105301 | Apr 2005 | US |
Child | 11235562 | US |