Claims
- 1. A system for updating operating code in a reprogrammable modem, the updated operating code being downloaded from a remote computer via telephone lines, comprising:
a field-upgradable modem having;
communications interface means connected for communicating with a remote computer and operable for transferring data between the remote computer and the modem; telephone line interface means for connection to the telephone line; control means connected to the telephone line interface means and the communications interface means for executing existing operating code to control the modem; memory means connected to the control means for storing the existing operating code and for storing a boot program; the control means further operable for executing the boot program to receive updated operating code packets from the remote computer, for checking the validity of the packets and replacing the existing operating code in the memory means with the updated operating code received by the communications interface means from the local host computer; the modem executing software to communicate with the remote computer connected to the telephone line and operable for initiating a telephone call to the remote computer in response to commands by a local user of the modem and for controlling downloading of the updated operating code from the remote computer to the modem; and the remote computer further executing software to communicate with the modem to place the updated operating code into updated operating code packets and to control transfer of said updated operating code packets from the remote computer to the modem over the communications interface.
- 2. The system of claim 1 wherein the memory means comprises an Electrically Erasable Programmable Read Only Memory.
- 3. The system of claim 1 further including:
power saving means connected to the control means for conserving power when the modem is not in use, the power saving means comprising:
external oscillator means for providing an external clock signal to the control means during use of the modem by the local host computer; low frequency oscillator means for providing a low power, low frequency clock signal to the control means when the modem is not in use; the control means further for operating in a first power mode when the modem is not in use; the control means further for operating in a second power mode when the modem is in use.
- 4. The system according to claim 1 wherein the control means is further operable for executing the boot program for programming the updated operating code into the memory means by performing the steps of:
(a) reading a packet of the updated operating code having a first format and transferred from the remote computer; (b) converting the packet of the updated operating code from a first format to a second, binary format; (c) storing the binary format of the updated operating code in a temporary memory means; (d) reading a next packet of the updated operating code transferred from the remote computer; (e) repeating steps (b)-(d) until all of the updated operating code is stored in the temporary memory means; and (f) transferring all of the updated operating code in the temporary memory means to the memory means.
- 5. The system according to claim 1 further including:
an external oscillator adapted to output an external clock signal; the modem further including a data pump circuit connected to the telephone line interface means and adapted to control modulation on the telephone line, the data pump circuit requiring a clock signal when not in use; a low frequency oscillator connected to the data pump circuit adapted to output a low frequency clock signal and adapted to operate using low power; and sleep means for disabling the external oscillator when the communications module is not in use, and further for enabling the low frequency oscillator to provide the required clock signal to the data pump means.
- 6. A modem which communicates with a remote computer over a telephone line, the modem operating under control of operating code to which periodic updates are made, comprising:
storage means in the modem for storing the existing operating code, for storing a boot program and for receiving and storing updated operating code; data pump means in the modem for receiving the updated operating code from the remote computer over the telephone line; control means connected to the storage means and the data pump means for programming the updated operating code into the storage means, said control means including:
receive means for receiving the updated operating code from the remote computer and passing it to the local computer; protocol means for transferring the updated operating code from the remote computer to the modem over the communications interface according to a predetermined communications protocol and using a packet format; check means for verifying that the updated operating code was accurately transferred; and conversion means for converting the packet of the updated operating code from a first format to a second, binary format.
- 7. A method of upgrading the operating code which controls a modem system, comprising the step of:
(a) storing in a remote computer updated operating code; (b) storing the updated operating code in a first memory buffer in the remote computer; (c) reading a first portion of the updated operating code; (d) creating a packet having a packet identifier, a length indicator, a programming address and the read portion of the updated operating code; (e) transmitting the packet to the modem; (f) storing packet information in temporary storage in the modem; (g) reading a next portion of the updated operating code; (h) repeating steps (d)-(h) until all of the updated operating code is stored into the modem system; (i) transferring the updated operating code in temporary storage to permanent storage; and (j) restarting the modem.
- 8. The method of claim 7 wherein step (f) comprises the step of storing in temporary storage the length indicator, the programming address and the read portion of the updated operating code for each packet received by the modem and wherein step (i) comprises the step of, for each packet stored in temporary storage, using the programming address to determine an address for the read portion of the updated operating code in permanent storage.
- 9. The method of claim 7 wherein step (f) comprises the step of storing in temporary storage the read portion of the updated code in temporary storage in the modem according to the programming address associated with each packet received by the modem and wherein step (i) comprises the step of transferring the updated operating code to permanent storage in identical order in which the updated operating code was stored in temporary storage.
- 10. An apparatus comprising:
an interface adapted to couple with a communication network; a controller coupled to the interface; a boot program executable by the controller; a first operating code to control the apparatus; a first memory coupled to the controller and adapted to store the boot program and the first operating code; and a second memory coupled to the controller, the controller operable for executing the boot program to receive a plurality of packets from a remote computer coupled to the communication network and to check the validity of each packet of the plurality of packets and to store a portion of each packet in a second memory coupled to the controller, and after receiving an upgrade command from the remote computer and after checking the validity, to replace the first operating code with a second operating code based on the portion of each packet stored in the second memory.
- 11. The apparatus of claim 10 further comprising a serial line interface coupled to the controller and adapted to couple with a local computer.
- 12. The apparatus of claim 10 wherein the interface includes a telephone line coupler.
- 13. The apparatus of claim 10 further comprising a data pump coupled to the controller.
- 14. The apparatus of claim 10 wherein the second memory includes random access memory (RAM).
- 15. The apparatus of claim 10 wherein the first memory includes programmable read only memory (PROM).
- 16. The apparatus of claim 10 further comprising a modem adapted for communicating with the remote computer.
- 17. A method comprising:
coupling a modem to a communication network; executing a boot program of the modem; executing a first operating code for the modem stored in a first memory of the modem based on an instruction executed by the boot program; receiving a plurality of packets via the communication network; checking validity of each packet of the plurality of packets; storing a portion of each packet of the plurality of packets in a second memory of the modem; and after receiving an upgrade command via the communication network, replacing the first operating code in the first memory with a second operating code based on the portion of each packet of the plurality of packets stored in the second memory.
- 18. The method of claim 17 further comprising executing the boot program after replacing the first operating code in the first memory with the second operating code.
- 19. The method of claim 17 wherein storing the portion of each packet of the plurality of packets in the second memory includes storing the portion in a location of the second memory based on an address of each packet.
- 20. The method of claim 17 further comprising copying the boot program to a random access memory.
- 21. The method of claim 17 wherein checking validity includes checking for errors.
- 22. The method of claim 17 further comprising generating a local checksum data byte at the modem.
- 23. The method of claim 22 further comprising receiving a remote checksum via the communication network and comparing the local checksum and the remote checksum.
- 24. The method of claim 17 further comprising executing a hard boot of the modem.
- 25. The method of claim 24 wherein executing the hard boot of the modem includes executing the second operating code.
- 26. The method of claim 17 wherein receiving the plurality of packets includes receiving a plurality of packets each packet having a field containing a packet length and a checksum.
- 27. A method comprising:
executing a first operating code stored in a first memory; receiving a plurality of packets via a communication network, each packet having an address field having an address and an operating code field having a portion of program data; checking each packet of the plurality of packets for validity; for each packet, storing the portion of program data of the packet at an address of a second memory based on the address of the packet; and after receiving an upgrade command via the communication network, replacing the first operating code in the first memory with a second operating code based on the program data stored in the second memory.
- 28. The method of claim 27 wherein checking each packet of the plurality of packets for validity includes comparing a checksum.
- 29. The method of claim 27 further comprising executing the first operating code if a packet of the plurality of packets includes an error.
- 30. The method of claim 27 wherein replacing the first operating code in the first memory with the second operating code includes reprogramming a flash programmable read only memory (PROM).
Parent Case Info
[0001] This application is a continuation of Ser. No. 08/368,291, filed Jan. 3, 1995, entitled “Modem With Firmware Upgrade Feature” which is a continuation-in-part of U.S. pat. application Ser. No. 08/087,164, entitled “Modem with Firmware Upgrade Feature”, filed Jul. 2, 1993, now U.S. Pat. No. 6,031,867.
Continuations (1)
|
Number |
Date |
Country |
Parent |
08368291 |
Jan 1995 |
US |
Child |
09975529 |
Oct 2001 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
08087164 |
Jul 1993 |
US |
Child |
08368291 |
Jan 1995 |
US |