Reprogramming methods and apparatus

Abstract: Two mobile communications handset terminals A and B for a cellular telephone system each incorporate a microprocessor (5) for controlling the operating components (6) of the terminal. Each microprocessor operates under control of software stored in a FLASH Eprom (10). When the two units are interconnected by a special cable loom (C), a 12 volt supply (18A) of one of the units is applied to the FLASH Eprom (10A) of that unit, switching it into a reprogramming mode. This 12 volt supply is also applied via an output terminal (26B) to the FLASH Eprom (10B) of the other unit which is thus likewise switched into a reprogramming mode. Via the cable loom (C), each handset (A,B) compares the grade of the software stored in its FLASH Eprom (10A,10B) with the grade of software stored in the other's FLASH Eprom. The handset storing the higher grade software then assumes a MASTER mode and the other one assumes a SLAVE mode. The lower grade software in the SLAVE handset is erased from its FLASH Eprom and replaced with the higher grade software from the MASTER hand set. In this way, once a handset has been re-programmed with the latest update of software, it can itself be used to reprogram other handsets.

Description: The invention relates to a method of reprogramming either one of at least two computer-controlled units so as to upgrade software stored in reprogrammable memory means in the unit, where the units are normally interconnected in a network for inter-operation thereover, comprising the steps of comparing the grades of the software respectively stored in the memory means of the two units to determine which (if either) of them is storing the software of the higher grade, and using the unit which is storing the software of the higher grade to upgrade the software of the other unit so that it also is of the higher grade. The invention also relates to a system, comprising at least two computer-controlled units arranged for normal inter-operation over a network in dependence on software stored in reprogrammable memory means in each of the units, comparing means in each unit operable to compare the grade of software stored in its memory means with the grade of software stored in the memory means of the other unit, and upgrading means in each unit and operative when the comparing means of that unit determines that the grade of software stored in that unit is higher than the grade of software stored in the other unit to upgrade the software stored in the other unit. Such a method and system are shown in EP-A-0 217 351. In this known method and system, the units are computers in a data communications network which is used for normal data processing and data transfer operation between the computers. In this known method and system, the software upgrading process takes place over the data communications network. In certain circumstances, this is not satisfactory because the software upgrading process would unnecessarily occupy the network. Furthermore, the software upgrading process can only take place when the units are interconnected by the network. In accordance with the invention, therefore, the method as first set forth is characterised in that each unit is a telecommunications unit and the network is a telecommunications network permitting telecommunication between the units over the network; in that each reprogrammable memory means is switchable between a normal operating mode in which its software is used for controlling the unit for normal operation over the network and is not reprogrammable and a reprogrammable mode in which its software can be reprogrammed; and in that the comparing step comprises the steps of interconnecting the two units by means of interconnection means which is independent of the telecommunications network and switches each memory means into the reprogrammable mode, each unit when switched into the reprogrammable mode signalling to the other unit the current grade of the software stored in its reprogrammable memory means, and carrying out a comparison in each unit by which the grade of the software in the reprogrammable memory means thereof is compared with the grade of the software in the reprogrammable memory means of the other unit, whereby the unit whose software has the higher grade enters a MASTER mode and the unit whose software has the lower grade enters a SLAVE mode; and in that the upgrading step comprises the step of using the unit in the MASTER mode to upgrade the software stored in the reprogrammable memory means of the unit in the SLAVE mode to the higher grade. Further according to the invention, the system as first set forth above is characterised in that the units are telecommunications units and the network is a telecommunications network permitting telecommunication between the units over that network; and in that each reprogrammable memory means is switchable between a normal operating mode in which its software is used for controlling the unit for normal operation over the network and is not reprogrammable and a reprogrammable mode in which its software can be reprogrammed; by interconnection means for interconnecting the units independently of their interconnection by the telecommunications network; and in that the interconnection means includes means operative to cause each memory means to be switched into the reprogrammable mode and then to signal to the other unit the current grade of the software stored in its reprogrammable memory means, and means for activating the comparing means in each unit to compare the grade of the software in the reprogrammable memory means of that unit with the grade of the software in the reprogrammable memory means of the other unit, whereby the unit whose software has the higher grade enters a MASTER mode and the unit whose software has the lower grade enters a SLAVE mode; and in that the upgrading means comprises means for using the unit in the MASTER mode to upgrade the software stored in the reprogrammable memory means of the unit in the SLAVE mode to the higher grade. Other features of the invention are specified in the dependent claims. In a particular example to be described in more detail below, the invention is applied to the reprogramming of a mobile telecommunications terminal (e.g. a mobile or portable handset) used in a cellular telephone system (in particular, a digital form of such a system). Such a cellular telephone system enables users of mobile or portable handsets to communicate with each other and with telephone users of a PSTN. In such cellular systems, each handset incorporates microprocessor-based equipment for controlling various operations of the handset within the system. The software for controlling the microprocessor is stored within each handset. From time to time, the system provider may update the software (for example, so that it provides additional facilities for subscribers to the system). Such subscribers may therefore wish to update the software within their handsets so as to take advantage of these extra facilities. In a manner to be explained, the invention enables such handsets to be reprogrammed simply, quickly and inexpensively. Because the reprogramming process uses interconnection means which is independent of the telecommunications network, the upgrading process does not unnecessarily occupy the telecommunications network and is not limited by the parameters of the telecommunications network. Methods and apparatus for reprogramming mobile communications terminals in a cellular telephone system will now be described, by way of example only, with reference to the accompanying diagrammatic drawings in which: Figure 1 is a schematic circuit diagram of two such terminals or handsets; and Figure 2 is a flow chart for explaining the operation of the methods and apparatus. Shown in Figure 1 are two mobile or portable communications terminals or handsets for use in a cellular telephone system. For example, they may be for use in a digital system such as the GSM pan-European cellular system. One such handset, A, comprises a microprocessor 5A which controls the basic elements of the handset which are indicated diagrammatically at 6A. Such basic elements comprise the microphone for receiving the voice input, the audio circuitry for processing the resultant signals produced by the microphone, the transmitting and receiving circuitry, and control circuitry for controlling the operation of the handset both in its receiving and transmitting modes. The microprocessor 5A contains a small amount of memory indicated at 8A. The main storage for the microprocessor, however, is stored in a reprogrammable memory 10A which stores the software controlling the operation of the microprocessor. The reprogrammable memory 10A is in the form of a Flash Eprom. The handset has a serial interface shown at 12A with input and output terminals 13A and 14A. The normal use of this interface is for testing purposes and for connection to an external power source (e.g. in a vehicle), or to a PC. The handset also has an analogue to digital converter 15A by means of which analogue input signals can be fed to the microprocessor 5A such as for the purpose of power management. The handset includes a power supply (not shown) which provides the necessary power supplies for operating the various components of the handset. This power supply produces a 5 volt supply on a line 16A. However, the handset also incorporates a voltage converter 18A which receives the 5 volt supply from the line 16A and converts it into a 12 volt output on line 20A. This 12 volt supply is fed to an output terminal 22A and also to an input of the analogue to digital converter 15A on a line 24A. The FLASH Eprom 10A is operable in a normal mode and a reprogramming mode. In its normal mode, it is powered by the 5 volt supply. In its reprogramming mode, however, the FLASH Eprom is supplied with the 12 volt power supply. The reprogramming process will be described in more detail below. The handset is provided with an input terminal 26A which is connected to another input of the analogue to digital converter via a line 28A and also, via a switch 30A, to the FLASH Eprom. The operation of switch 30A is controlled by the microprocessor by means of signals on a line 32A. The second handset, B, is identical with handset A. Corresponding items are therefore similarly referenced, but with the suffix "B" instead of "A". In a manner now to be described in more detail, the two handsets A and B can be interconnected so that the one of them whose FLASH Eprom contains the newest issue of software reprograms the other handset so as to update the software stored in its FLASH Eprom to the same issue number. This process is carried out by means of a cable loom indicated generally at C. The cable loom comprises duplex links 40 and 42 which interconnect the input and output terminals 13A,13B,14A and 14B of the serial interfaces 12A and 12B of the respective handsets. In addition, the cable loom includes a link 44 which connects the 12 volt output terminal 22A of handset A with terminal 26B of handset B. Finally, the cable loom incorporates a link 46 which connects terminals 22A and 26A of handset A. It is assumed that handsets A and B are handsets operating in a cellular telephone system and that there has been an update of the handset-controlling software. It is also assumed that the software in one of the handsets has been updated while the software in the other handset is of the previous or an earlier version (or lower issue number). The updated software may have been placed into the first-mentioned handset by means of special programming equipment - or (using a third, re-programmed, handset) by means of the method now to be described. Irrespective of the manner in which it has been re-programmed, however, it is caused to re-program the second handset by connecting the two handsets by means of the cable loom C. In a manner now to be described, this automatically causes the re-programming process to start. Once the two handsets have been interconnected by the cable loom C, handset A is powered ON. This powering-ON process causes the microprocessor 5A (in response to its operating program stored in memory 8A) to check for the presence of a 12 volt supply at terminal 26A. This checking process is carried out via the analogue to digital converter 15A. In the present instance, of course, the cable loom C will provide a link (link 46) between terminals 22A and 26A and will thus provide a 12 volt supply on line 28A. The microprocessor 5A reacts to this by closing switch 30A to enter the reprogramming mode. Under normal operating circumstances, when the cable loom C is not used, powering ON of the hand set will not produce a 12 volt supply on line 28A, and the handset will thus enter the normal operating mode. The second handset B is now powered ON. In response to this powering-ON, this handset likewise checks for the presence of a 12 volt supply on terminal 26B. Such a 12 volt supply will be present, because of link 44 in cable loom C. Handset B therefore likewise enters the reprogramming mode, upon closure of switch 30B. As shown in the flow diagram of Figure 2, each handset, now in the reprogramming mode, transmits the issue number of its software from the output terminal of its interface 12A, 12B to the input terminal of the interface of the other handset, and each handset checks the software issue number received. As handset A was the first one to be powered ON, it will be the first to transmit its software issue number and it will thus be waiting for the software issue number from handset B when the latter is powered ON. Handset A compares its own software issue number with the software issue number received from handset B. If the latter issue number is lower than its own issue number, handset A enters the MASTER mode. If, on the other hand, the issue number received is greater than its own issue number, it enters the SLAVE mode. In either case, it re-issues its own issue number to handset B. Handset B carries out a similar process and therefore either enters the MASTER or SLAVE mode. If both handsets receive equal issue numbers, they return to normal operation. Likewise, each returns to normal operation if it does not receive an issue number from the other handset within a predetermined time. At the end of this process, both handsets are either in normal operation or one is in MASTER mode and the other is in SLAVE mode. Assuming that the latter is the case, the handset in MASTER mode takes control of all future interaction between the two units. More specifically, the handset in MASTER mode commands the other handset (in SLAVE mode) to erase all the software from its FLASH Eprom. Such erasing can take place because the FLASH Eprom is powered by the 12 volt supply. The handset in MASTER mode then downloads into the FLASH Eprom of the other handset the new issue of software, this downloading process taking place in blocks until the FLASH Eprom of the handset in SLAVE mode has been completely re-programmed with the higher issue software. On completion of the process, the handset in SLAVE mode returns a checksum to the other handset to confirm completion of the operation. The software for controlling this reprogramming process is held in memory 8A,8B of each microprocessor 5A,5B. If this reprogramming procedure is interrupted, the controlling software in the memory 8A, 8B of the handset operating in the SLAVE mode causes that handset to assume a special software issue number; this issue number is the lowest possible and represents the presence of invalid or corrupted software - that is, to reflect the fact that the re-programming process has been interrupted so that the FLASH Eprom contains invalid software. On any subsequent powering ON of this handset, the presence of this special issue number will cause the unit automatically to enter the SLAVE mode. In the manner described, therefore, a simple cable loom enables one handset to re-program another one with the latest issue software. A user owning a number of different handsets merely has to have one of them re-programmed by the service provider and he can then use that re-programmed hand set to re-program all his other handsets. It will be apparent that each handset re-programmed in the manner described could then itself be used to re-program another handset. In this way, after the first re-programming operation, there are two handsets capable of carrying out subsequent re-programming. After each of those has carried out further re-programming, there will then be four handsets capable of carrying out subsequent re-programming; and so on. It is also possible for a handset operating in the MASTER mode to be connected not merely to one but several other handsets - by a modified form of the cable loom C - so as to re-program them all. When a group of handsets is interconnected in this way, one of the handsets would issue a broadcast command to all the others. Each of the other handsets would then respond by signalling the controlling handset with an identifying signal, such as corresponding to its serial number. In order to prevent all the responding handsets from responding simultaneously, they could be arranged to respond sequentially after respective delays determined by their serial numbers. The controlling handset would thus receive the serial numbers of all the other handsets and could then address each of them in turn, asking them to send their respective software issue numbers. Those with lower issue numbers would thus enter the SLAVE mode and the re-programming process described above would then take place. Various modifications can be made. For example, it may be advantageous to omit the 5 volt to 12 volt converter 18 from each handset but to provide this externally, as part of the cable loom C. This would help to prevent inadvertent corruption of the software which might result from incorrect or unintended interconnection of terminals 22 and 26. The interface 12 could be a parallel interface instead of a serial interface. Although the method and apparatus have been described with reference to the use of a FLASH Eprom in each hand set, other suitable forms of reprogrammable memory could be used instead.

Claims: A method of reprogramming either one of at least two computer-controlled units (A,B) so as to upgrade software stored in reprogrammable memory means (10A,10B) in the unit, where the units are normally interconnected in a network for inter-operation thereover, comprising the steps of comparing the grades of the software respectively stored in the memory means (10A,10B) of the two units (A,B) to determine which (if either) of them is storing the software of the higher grade, and using the unit (A or B) which is storing the software of the higher grade to upgrade the software of the other unit (A or B) so that it also is of the higher grade, characterised in that each unit is a telecommunications unit and the network is a telecommunications network permitting telecommunication between the units over the network; in that each reprogrammable memory means (10A,10B) is switchable between a normal operating mode in which its software is used for controlling the unit (A,B) for normal operation over the network and is not reprogrammable and a reprogrammable mode in which its software can be reprogrammed; and in that the comparing step comprises the steps of interconnecting the two units (A,B) by means of interconnection means (C) which is independent of the telecommunications network and switches each memory means (10A,10B) into the reprogrammable mode, each unit (A,B) when switched into the reprogrammable mode signalling to the other unit (A,B) the current grade of the software stored in its reprogrammable memory means (10A,10B), and carrying out a comparison in each unit (A,B) by which the grade of the software in the reprogrammable memory means (10A,10B) thereof is compared with the grade of the software in the reprogrammable memory means (10A,10B) of the other unit (A,B), whereby the unit (A,B) whose software has the higher grade enters a MASTER mode and the unit (A,B) whose software has the lower grade enters a SLAVE mode; and in that the upgrading step comprises the step of using the unit (A,B) in the MASTER mode to upgrade the software stored in the reprogrammable memory means (10A,10B) of the unit (A,B) in the SLAVE mode to the higher grade. A method according to claim 1, characterised in that the upgrading step comprises the steps of erasing the software of the lower grade from the reprogrammable memory means (10A,10B) of the unit (A,B) in the SLAVE mode and loading into that memory means (10A,10B) software of the higher grade from the memory means (10A,10B) of the unit (A,B) in the MASTER mode. A method according to claim 1 or 2, characterised in that each reprogrammable memory means (10A,10B) is switched into the reprogrammable mode by applying a predetermined electrical signal to each unit (A,B) by means of the interconnection means (C). A method according to any preceding claim, characterised in that each unit (A,B) is a mobile telecommunications terminal. A method according to any preceding claim, characterised in that each reprogrammable memory means comprises a FLASH Eprom. A method according to any preceding claim, characterised in that each unit (A,B) in the SLAVE mode responds to interruption of the upgrading step before its completion by storing, in its memory means (10A,10B), data signifying storage of corrupt software. A system, comprising at least two computer-controlled units (A,B) arranged for normal inter-operation over a network in dependence on software stored in reprogrammable memory means (10A,10B) in each of the units (A,B), comparing means (8A,8B) in each unit (A,B) operable to compare the grade of software stored in its memory means (10A,10B) with the grade of software stored in the memory means (10A,10B) of the other unit (A,B), and upgrading means (8A,8B) in each unit (A,B) and operative when the comparing means (8A,8B) of that unit (A,B) determines that the grade of software stored in that unit (A,B) is higher than the grade of software stored in the other unit (A,B) to upgrade the software stored in the other unit (A,B), characterised in that the units (A,B) are telecommunications units and the network is a telecommunications network permitting telecommunication between the units (A,B) over that network; and in that each reprogrammable memory means (10A,10B) is switchable between a normal operating mode in which its software is used for controlling the unit (A,B) for normal operation over the network and is not reprogrammable and a reprogrammable mode in which its software can be reprogrammed; by interconnection means (C) for interconnecting the units (A,B) independently of their interconnection by the telecommunications network; and in that the interconnection means (C) includes means (15A,15B,26A,26B,30A,30B) operative to cause each memory means (10A,10B) to be switched into the reprogrammable mode and then to signal to the other unit (A,B) the current grade of the software stored in its reprogrammable memory means (10A,10B), and means for activating the comparing means (8A,8B) in each unit (A,B) to compare the grade of the software in the reprogrammable memory means (10A,10B) of that unit (A,B) with the grade of the software in the reprogrammable memory means (10A,10B) of the other unit (A,B), whereby the unit (A,B) whose software has the higher grade enters a MASTER mode and the unit (A,B) whose software has the lower grade enters a SLAVE mode; and in that the upgrading means (8A,8B) comprises means for using the unit (A,B) in the MASTER mode to upgrade the software stored in the reprogrammable memory means (10A,10B) of the unit (A,B) in the SLAVE mode to the higher grade. A system according to claim 7, characterised in that each reprogrammable memory means (10A,10B) is switched into the reprogramming mode by applying a predetermined voltage thereto, and in that the interconnection means (C) comprises means for applying that predetermined voltage to the memory means (10A,10B). A system according to claim 8, characterised in that each unit (A,B) includes a source of the predetermined voltage (18A,18B), and the interconnection means (C) comprises means (46) for applying that voltage as produced by one of the units (A) to the reprogrammable memory means (10A) of that unit (A) and means (44) for applying the predetermined voltage of that unit (A) to the memory means (10B) of the other unit (B). A system according to any one of claims 7 to 9, characterised in that each reprogrammable memory means is a FLASH Eprom (10A,10B). A system according to any one of claims 7 to 9, characterised by means (8A,8B) operative in response to interruption of the upgrading means to enter data in the unit (A,B) whose software is being upgraded to indicate corruption of the software therein and to block operation of the upgrading means of that unit (A,B). A system according to claim 11, characterised in that the said data represents the lowest grade of software. A system according to any one of claims 7 to 12, characterised in that each unit (A,B) is a mobile telecommunications unit. A system according to claim 13, characterised in that each unit (A,B) is a cellular telephone unit.

Inventors: NAYLOR ROWAN, NAYLOR, ROWAN
Applicants: ERICSSON OMC LIMITED
Application year: 1993
Main classification: G06F9
IPC codes: G06F9, G11C16, H04W8, H04W92