CA2368134C - Modem with firmware upgrade and data checking feature - Google Patents
Modem with firmware upgrade and data checking feature Download PDFInfo
- Publication number
- CA2368134C CA2368134C CA002368134A CA2368134A CA2368134C CA 2368134 C CA2368134 C CA 2368134C CA 002368134 A CA002368134 A CA 002368134A CA 2368134 A CA2368134 A CA 2368134A CA 2368134 C CA2368134 C CA 2368134C
- Authority
- CA
- Canada
- Prior art keywords
- modem
- operating code
- memory
- data
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 claims abstract description 37
- 238000000034 method Methods 0.000 claims abstract description 28
- 238000012546 transfer Methods 0.000 claims abstract description 4
- 238000010586 diagram Methods 0.000 description 23
- 239000000872 buffer Substances 0.000 description 15
- 230000008569 process Effects 0.000 description 12
- 230000008672 reprogramming Effects 0.000 description 9
- 239000013078 crystal Substances 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 5
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000004377 microelectronic Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 210000001072 colon Anatomy 0.000 description 3
- 101100492780 Arabidopsis thaliana ATI1 gene Proteins 0.000 description 2
- 102100028043 Fibroblast growth factor 3 Human genes 0.000 description 2
- 102100024061 Integrator complex subunit 1 Human genes 0.000 description 2
- 101710092857 Integrator complex subunit 1 Proteins 0.000 description 2
- 108050002021 Integrator complex subunit 2 Proteins 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 101100492781 Arabidopsis thaliana ATI2 gene Proteins 0.000 description 1
- 241001250090 Capra ibex Species 0.000 description 1
- 235000008733 Citrus aurantifolia Nutrition 0.000 description 1
- 235000011941 Tilia x europaea Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000011324 bead Substances 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 239000004571 lime Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 229910000859 α-Fe Inorganic materials 0.000 description 1
Landscapes
- Communication Control (AREA)
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
Abstract
A system and method for providing a communication device with a firmware upgrade and a data checking feature is provided. The system comprises a local computer having a local processor and a local modem having a modem processor and a network interface. There are also first and second memories accessible to the modem processor.
For the local processor, there is a first program executing on it having instructions to receive a second operating code from the network interface, convert the second operating code to data and transfer the data to the modem processor using the communications interface.
For the modem processor, there is a second program executing on it having instructions to store the data in the first memory and check validity before transferring the data from the first memory to the second memory. The local modem is coupled to the local computer by a communications interface.
For the local processor, there is a first program executing on it having instructions to receive a second operating code from the network interface, convert the second operating code to data and transfer the data to the modem processor using the communications interface.
For the modem processor, there is a second program executing on it having instructions to store the data in the first memory and check validity before transferring the data from the first memory to the second memory. The local modem is coupled to the local computer by a communications interface.
Description
MODEM WITS FIRMWARE UPGRADE AND DATA CHECKING FEATURE
F~ pi d of the Ir~.ven,t:~, The present invention relates to communications systems and in particular to a modem in which the firmware which controls the operation of the ~dem can be changed or upgraded remotely.
Baekgro~d Presently, there are several mechanisms through which software upgrades, bug fixes and the like are distributed to users. In systems employing firmware storage of operating programs, such as Electrically Progra~nable Read Only Memory (EPROM) and the like, bug fixes or enhancements to system firmware require programming a new EPROM with the updated code and shipping the new EPROM to the customer. A
technician then travels to the site, disassembles the hardware, and replaces the old EPRC>M with the new one.
Unfortunately, these methods are very inconvenient. First, a considerable time delay is encountered while waiting for the manufacturer to program and ship the replacement parts. Second, the hardware may not be operable if the user is waiting for a bug fix. Especially true in cases of bug fixes where the hardware might not be operable without the updated operating code. Also, the replacement of the old with the new EPROM requires a technician to travel to the site and use special tools to disassemble the hardware and :-eplacc: the outdated on faulty part or parts. 'I'his results in an increased expense for repairs or upgrades because technician time and special tool.; are required. Current update methods are thus time consuming, expensive and inefficient.
There is a need in the art, therefore, for a modem which allows remote changes and/or upgrades to be made to the firmware stored operating code, without requiring disassembly and replacement of parts, a technician time, or special tools, thus resulting in the more efficient and cost effective means of updating firmware.
To overcome the shortcom~_ngs in the art described above, and to, provide other advantages which will become apparent upon reading and understanding the present specification, the present system is a modem system which includes hardware and software components. The system allows the user to connect to remote locations equipped with a similar system or with modems or facsimile machines aver a single analog telephone line. The incorporation of various power saving features allow practical implementation of a small, lightweight and easily transportable modem system powered from a standard 9 volt battery. The present modem system also incorporates storage: of operating code and parameters. in an in-circuit reprogrammable memory chip. A user can thus remotely upgrade system firmware with updates, bug fixes, enhancements or other new releases of system operating code by downloading the update over a phone line and reprograming the memory chip in-circuit over the serial port.
Brief nagcr~ption of they 1 a'aina~
In the drawings, where like numerals'refer to like. components throughout the several views, Figure 1 shows the telecommunications environment within which the present system may operate;
Figure 2 is a block diagi:am of the hardware components of the present system;
Figure 3 is a key for viewing the detailed electrical schematic diagrams of F~.gures 4A-7C to facilitate understanding of the interconnections between the drawings;
o Figures 4A-4E, 5A-5C and 6A-6C are detailed electrical schematic diagrams of the circuitry of the hardware components of the present system;
Figure 7 shows a flow diagram of the process for downloading the I~X files containing the updated operating code from a bulletin board,to the host PC;
Figures 8A-8C show a flow diagram of the upgrade control program from the perspective of the host PC; and Figures 9A-9D show a flow diagram of the upgrade control program from the perspective of the modem.
1 DAS n" ~Of ~~E PrefE~ed ~tb~itnAntg In the following detailed description of the preferred embodiment, reference is made to the accompanying drawings which forth a part hereof, and in which is shown by way of illustration specific embodiments in which the inventions may be practiced.
These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that structural changes may be made without departing from the spirit and scope of the present inventions. The following detailed description is, therefore; not to be taken in a limiting sense, and the scope of the present inventions is defined by the appended claims.
Figure 1 shows a typical arrangement for the use of the present modem system. Hardware components 20 contain the present modem system and are connected to laptop computer 10. Hardware components 20 comarnznicate over a standard telephone line 30 to one of a variety of remote sites. For example, one of the remote sites may be equipped with the present modem system including hardware components 20a and laptop computer 10a. The present modem system can also connect over phone lines 30 to fax machine 60, to a personal cuter and associated modem 40, or to a ' r network of personal computers 90. Those skilled in the art will readily recognize the wide variety of coication interconnections possible with the present system by reading and understanding the following detailed description.
~,C~onent-~
Figure 2 is a block diagram of the hardware components of the present system corresponding to reference number 20 of Figure 1. 'these components 10. form the link between the user, the laptop or personal computer (PC) and the telephone. line interface.
The preferred embodiment of the present system preferably includes a data pump circuit 211, which includes a digital telephone coder-decoder (CODEC) and a digital signal processor (DSP) for communicating over the telephone line interface 209.
The data pump DSP of circuit 211 perforn~,s functions such as modulation, demodulation anal echo cancellation to communicate over the telephone line interface 209 using a plurality of telecommunications standards including FAX and modem protocols. The main controller circuit 213 directly controls the DSP data pump circuit 211.
As described more fully below, the main controller circuit 213 includes, in the preferred embodiment, a microprocessor which controls the functions and operation of all of the hardware components shown in Figure 2. The main controller is connected to RAM circuit 216 and a progranmable and electrically erasable read only memory or Flash PROM
circuit 217. The Flash PROM circuit 217 includes non-volatile memory in which the executable control programs for the main controller circuits 213 are stored.
The RS232 serial interface 215 communicates to the serial port of the personal computer which is running the software conponents of the present system.
The RS232 serial interface circuit 215 is connected to a a serial input/output circuit 214 with main controller circuit 213.
Data is received from the telephone line over telephone line interface circuit 209 and 5 forwarded by the data pump circuit 221 and the main controller circuit 213 over the serial line interface circuit 215 to the personal computer.
'neat-a~ 1 ~,. 'f~7 c_n~t,~i ctal $~h_p_m_n_s~f-~ r~ T1i and The detailed electrical schematic diagrams comprise Figures 4A-E, 5A-C, 6A-C and 7A-C. Figure 3 shows a key for how the schematic diagrams may be conveniently arranged to view the passing of signals on the electrical lines between the diagrams. 'Ine electrical connections between the electrical schematic diagrams are through the designators listed next to each wire. For example, on. the right side of Figure 4A, address lines AO-Al9 are attached town address bus for which the individual electrical lines may appear on other pages as AO-A19 or may collectively be connected to other schematic diagrams through the designator ~~A" zn the circle connected to the collective bus. In a like fashion, other electrical lines designated with symbols such as RNGL
on the lower left-hand side of Figure 4A may. connect to other schematic diagrams using the same signal designator RNGL.
Beginning with the electrical schematic diagram of Figures 4D and 4E, the L1AA circuitry (telephone line interface) is shown. The telephone line connection in the preferred e~~nbodiment is through connector J201 which is a standard six-pin modular R~T-11 jack. In the schematic diagram of Figure 4E, only the tip and ring connections of the first telephone circuit of the RAT-11 modular connector are used.
Ferrite beads FB201 and FB202 are placed on the tip and ring wires of the telephone lime connections to reduce high frequency or RF noise that may radiate from telephone line. The incoming telephone line is r also overvoltage protected through SIDAC'rOR 8205. The incoming telephone line is full wave rectified by the full wave bridge comprised of diodes CR230, CR226, CR227 and CR228 of Figure 4D.
Also connected.across the incoming telephone line is a ring detect circuit. Optical isolator U220 (part model number CNY17)- senses the ring voltage threshold when it exceeds the breakdown voltages on zener diodes CR201 and CR202.
l0 The DAA circuitry is phy.~ically isolated from the rest of the system by transformer T1, optocoupler U220 and two solid state relays X215 and X202 which are optically coupled. Connector J203 is a four pin header used for automatic testing during manufacturing and for diagnostics.
Relay X215 shown in Figure 4D is used to accomplish pulse dialing by opening and shorting the tip and ring wires. Transistor Q203 along with the associated discrete resistors comprise a holding circuit to provide a current path or current loop on the telephone line to grab the line. The DAA
circuitry shown in Figures 4D and 4E can be customized to interface to the varying telephone standards used in the United States and in many different European countries.
Connector J202 shown in Figure 4D connects the telephone line interface circuitry described above to connector J102 shown in Figure EA and thusly to the rest of the circuit. Incoming RXA signals are buffered by tze two operational amplifiers U104 as shown in Figure 6B. The first stage of buffering is used to drive the transmit carrier signal to the telephone Line. The second stage of the input buffering is configured for a modez-ate amount of gain before driving the signal into CODEC U101. 'this stage is also used to reduce the amount of transmit signal that is fed back into the receiver. The signal from i i amplifiers U104 is also fed to speaker driver U105, which drives speaker X101.
Data and address buses A and B shown in Figures 4A and 4B connect the 280180 microprocessor in microcontroller U5 with the 280 KIO circuit U4 and a gate array circuit U3, and to other portions of the electrical schematic diagrams. Gate array U3, also shown in Figures 4A and 48, includes the "glue logic" used to support various functions in the hardware components of the present invention. Gate array U3 includes miscellaneous latch and buffer circuits for the present system which normally would be found in discrete SSI or MSI integrated circuits.
By combining a wide variety of miscellaneous support circuits into a single gate array, a much reduced design complexity and manufacturing cost is achieved.
CODEC chip U101 shown in Figure 6B, interface chip U1 shown in Figure 5A and digital signal processor (DSP) chip U2 shown in Figure 5A
comprise a data pump chip set manufactured and sold by AT&T Microelectronics. A detailed description of the operation of these three chips in direct connection and cooperation with one another is described in the publication entitled "AT&T
V.32bis/V.32/FAX High-Speed Data Pump Chip Set Data Book" published by AT&T Microelectronics, December 1991. This AT&T data pump chip set comprises the core of an integrated, two-wire full duplex modem which is capable of operation over standard telephone lines or leased lines. The data pump chip set conforms to the telecommunications specifications in CCITT recommendations V.32bis, V.32, V.22bis, V.22, V.23, V.21 and is compatible with the Bell 212A and 103 modems. Speeds of 14,400, 9600, 4800, 2400, 1200, 12,000 and 300 bits per second are supported. This data pump chip set consists of a ROM-coded DSP16A digital signal processor U2, and interface chip U1 and an AT&T
T7525 linear CODEC U101.
21166603.2 The AT&T data pump chip set is available from AT&T
Microelectronics.
The chip set Ul, U101 and U2 on Figures 5A
and 6B perform all A/D, D/A, modulation, demodulation and echo cancellation of all signals placed on or taken from the telephone line, and performs DTMF tone generation and detection, signal analysis of call progress tones, etc. The transmission of information on the telephone line from CODEC U101 is through buffers U104, and through line buffer U105 as described above.
The main controller of controller circuit 213 and the support circuits 212, 214, 215, 216 and 217 are shown in Figures 4A-4C and 5A. In the preferred embodiment of the present system, the main controller U5 shown in Figures 4A and 4B is a 280180 eight-bit microcontroller chip. In the preferred implementation, microcontroller chip U5 is a 280180 microprocessor, by Zilog, Inc. of Campbell, California. The Zilog 280180 eight-bit microprocessor operates at a 12.288 MHz internal clock speed by means of an external crystal XTAL, which in the preferred embodiment, is a 24.576 MHz crystal. The crystal circuit includes capacitors C1 and C2 which are 20 pf capacitors and resistor R15 which is a 33 ohm resistor. The crystal and support circuitry is connected according to manufacturer's specifications found in the Zilog Intelligent Peripheral Controllers Data Book published by Zilog, Inc. The product description for the 280180 2180 MPU
from the 280 CPU Product Specification is found at pages 351-392 of the Zilog 1991 Intelligent Peripheral Controllers databook.
The 280180 microprocessor in microcontroller chip U5 is intimately connected to a serial/parallel I/O counter timer chip U4 which is, in the preferred embodiment, a Zilog 84C90 CMOS 280 KIO serial/parallel/counter/timer integrated circuit 21166603.2 available from Zilog, Inc. This multi-function I/O
chip U4 combines the functions of a parallel input/output port, a serial input/output port, bus control circuitry, and a clock timer circuit in one chip. The Zilog Z84C90 product specification describes the detailed internal operations of this circuit in the Zilog Intelligent Peripheral Controllers 1991 Handbook available from Zilog, Inc.
and in Z84C90 CMOS Z80KI0 Product specification pgs. 205-224 of the Zilog 1991 Intelligent Peripheral Controllers databook.
The memory chips which operate in conjunction with the 2180 microprocessor in microcontroller chip U5 are shown in Figure 4C. The connections A, B correspond to the connections to the address and data buses, respectively, found on Figure 4A. Memory chip U7 is a read-only memory (ROM) chip which is electrically reprogrammable in circuit. This programmable ROM, typically referred to as a flash PROM, holds the operating code and operating parameters for the present system in a non-volatile memory. Upon power-up, microcontroller chip U5 executes the program code that is stored in the flash PROM U7. In the preferred embodiment, RAM
chip U6 is a pseudostatic RAM which is a dynamic RAM
with a built-in refresh. Those skilled in the art will readily recognize that a wide variety of memory chips may be used and substituted for pseudo-static RAM U6 and flash PROM U7 without departing from the scope of the present invention.
The interface between the main controller circuit 213 and the personal computer is through SIO
circuit 214 and RS232 serial interface 215. RS232 connection J103 is shown on Figure 6A with the associated RS232 driver circuit U102 and interface and ring detect circuitry used to generate and receive the appropriate RS232 standard signals for a serial communications interface with a personal computer.
21166603.2 ' r Figure 6C is a detailed electrical schematic diagram showing the generation of various voltages for powering the hardware components of the electrical schematic diagrams described herein. The power for the present hardware.components described herein is received from either a standard 9 vrolt battery or through AC adaptor J104 which is a standard 3 Pin Power Jack. When the AC adaptor is plugged in, the battery is disconnected. Power is controlled by power switch S101. The preferred modem system is designed to run off of a standard 9 Volt battery, thus resulting in a small, lightweight and easily transportable package. However, it: shall be understood that the modem could also be i~un from any other power source using standard interfaces and conversion circuitry known well in~the art. 5 volt regulator U107 is a linear regulator with a low drop out voltage of about 5.3. Q102 is a MOSFET which controls on/off as directed by power switch S101.
Power switch S101 turns on MOSFET X102, and has three positions, on, off, or auto. In auto position, power switch S101 senses the Data Texminal Ready Signal from the computer,,and if that is not present, then the power to the modem is turned off completely. Thus, if no communications software is Ioade:d, the modem is automatically off such that no power is wasted. From the circuitry of Figure 6C, the +9 volts DC is regulated down to 5 volts, and is also inverted via U106 to get a negative voltage. The negative voltage is used '~o drive the RS232 driver 'U102 shown in Figure 6A. As a result, five volts are derived for operating the various memory, logic and controller chips and support circuitry of the present system.
Figure 5B shows connector J1 which interfaces with connector J101 shown in Figure 6A.
Figure 5C shows the interconnection. of the status LED~s found on the front display of the modem of the present invention.
ll av « Features Referring again to Figure 5A, the interface chip U1, discussed in detail above is shown. Also shown in the upper left portion of Figure 5A is power saving circuitry which is incorporated into the present modem system to enable the practical implementation of a small, Iightwe;ight and_easily portable modem suitable for use with a laptop computer, for example. The power saving features of the present modem system allow the design to be powered from a standard 9 volt battery as discussed above with respect to Figure 6C.
In order to conserve power, various power saving features are provided which allow the present modem system to be put in a low power, or "sleep"
mode. In sleep mode the power to the modem is greatly reduced. There are three main power saving features in the sleep mode. First, additional circuitry has been added in the preferred embodiment to allow additional power savings to be realized. Second, the AT&T data pump chip set has a built in low power mode.
Third, the 2180 MPU U5 also has a built in low; power mode.
The AT&T data pump chip set U1, U2 and U101 described in detail above has the ability to be put into a low power mode. When in low power mode; the CODEC bit clock TCODEC generated by interface chip U1 shown on Figure 5A is slowed to 115kHz to provide a required clock signal to DSP chip U2 and CODEC U101.
The data pump chip set enters sleep mode automatically after a reset, a disconnect or by user command. The chip set automatically wakes up when a ring signal or host command is received. The built-in sleep mode of the AT&T data pump chip set is described in tire detail in the aforementioned publication entitled "AT&T V.32 bits/V.32/FAX High-Speed Data Pump Chip Set Data Book" published by AT&T Microelectronics, December 1991.
In addition to the power saving sleep mode provided by the AT&T data pump chip set U1, U2 and U101, the present invention provides additional power saving features. These features include S providing an external clock oscillator XTL1.
Circuitry is provided such that external clock oscillator XTL1 can also be put in sleep mode (disabled). This results in a significant power savings as the oscillator would consume power unnecessarily when the modem is not in use. When XTLl is disabled, the clock to CODEC U101 is switched to a low frequency, approximately 100 kHz signal generated from K10 U4 of Figure 4A via NAND
gate U10 of Figure 5B.
Crystal XTL2 is a 20.275 MHZ crystal which is used in conjunction with an internal oscillator provided on interface chip U1. The internal oscillator is described in the above listed documentation for interface chip U1.
The present modem system can be assembled with either the crystal XTL2/C17/C18 combination or the external clock oscillator XTLl/C19 combination.
With either combination, the power saving feature built into the AT&T data pump chip set U1, U2 and U101 can be used. However, with the XTL1/C19 combination the AT&T data pump chip set power saving feature and also the additional feature of disabling external oscillator XTALl can be used for even greater power savings. External clock oscillator XTL1 is part number C02810 available from Raltron Corporation of Miami, Florida. External clock oscillator XTL1 has a frequency of 40.5504 MHz and is described in more detail in the publication entitled ~~CLOCK OSC, Model C02810 Series (SMD Type OSC)", published by Raltron Corporation. In the preferred embodiment, external clock oscillator XTL1 is used as the main clock for the AT&T data pump chip set Ul, U2 and U101 and runs at 40.5504 MHZ to drive the interface chip U1.
21166603.2 then the present modem system is off-hook and the 2180 MPU U5 is not processing, the 2180 MPU U5 can be put into a low power or SLEEP mode. The 2180 MPU SLEEP mode places the CPU into a state in which the internal CPU clock stops, therP.by consuming less current. The 2180 MPU U5 wakes up when one of the interrupts INTO, INT1 or INT2 shown in Figures 4A and 4B is asserted.
INTO wakes up the 2180 MPU U5 in response to interrupts generated by K10 U4. INT1 wakes up the 2180 MPU U5 in response to a RNGL or watchdog timer (WDOUT-) signal. The watchdog is a slow timer (in the seconds) which allows the processor to keep track of time. For example, the processor must keep track of the time for which the modem cannot call a blacklist of forbidden phone numbers. INT2 wakes up the 2180 MPU U5 in response to a DT'E data s:Lgnal (TD shown in Figure 5B).
The built in SLEEP mode of the Zilog 2180 MPU U5 is described in more detail in the aforementioned publication Zilog Intelligent Peripheral Controllers 1991 Handbook.
Functional ~ESCx'l~tlnr of tfia~ Control Prog~
The preferred modem system includes two control programs which control the remote in-circuit reprogramming of system firmware, a flash control program and a boot control program., The flash control program runs in the host PC and receives updated operating code downloaded from a bulletin board.. The updated code is downloac:ed to the host PC in the form of Intel HEX files. The flash control program processes the HEX files and creates the packets containing the updated code which are actually sent to the modem. Each packet contains a field containing the packet length, the address at which to store the updated code, the actual program data and a checksum.
The boot control program running in the modem checks that the packet was correctly transmitted and programs the updated operating code at the address specified in the address field of the packet.
In summary, the flash control programs control the host PC side of the process of in-circuit reprogramming of flash PROM U'7. Tree boot control program controls the modem side. As described above, flash PROM U7 is an in-circuit programmable and electrically erasable read only memory. As is well known to those of skill in the art, these memory chips allow in-circuit reprogramming of the operating code and parameters which are stored in the flash PR~t chip U7. Although the present modem system is described with respect to a particular flash PROM U7, it shall be understood that any in-circuit reprogra~nable memory configuration could be used without departing from the scope of the present invention.
Before flash PROM U7 is assembled in the modem circuit, the boot control program is burned, or programmed into flash PROM U7 using conventional PROM
2 0 programmers and programming techniciues .
~nThen a bug fix, enhancement or other new release of system operating code becomes available, the flash control program is used to control the remote loading and processing of operating code downloaded over telephone line from a central bulletin board. The boot control program rE;ceives the updated code from the host PC over the serial port and controls in-circuit reprogramming of the new.operating code into flash PROM U'7.
The field~programmable future of the modem system of the present invention has several advantages. Because a user can recriotely load new operating code over a remote telephone connection, code updates can be obtained immediately as soon as they are available instead of waiting for new parts to be shipped. In addition, no physical removal or replacement of parts is required thus significantly reducing the chance of_ breakages. Further, no special tools are required to remove and replace parts, and no special PROM programming equipment is required to reprogram the memory chips. Finally, the need for a technician to travel to the remote site to perform the upgrade is avoided thus significantly reducing costs associated with the upgrade.
Detailed descriptions of the flash control program and boot control program will now be given.
The illustrative embodiments of the flash control program and boot control program described and shown herein is with special reference to a PC-based DOS
operating system. It shall be understood, however, that the present invention is in no way limited to a DOS operating system. The preferred modem system can also be used with a UNIX-based operating system, Macintosh operating system, or any of a number of operating system platforms simply by customizing the user interface to run on the desired operating system.
Detailed Description of Flash Control Program The flash control program is used to control the reprogramming of updated operating code and parameters into the flash part of the modem.
The updated operating code is distributed to the user according to the procedure shown in Figure 7. To get the update, HEX files containing the updated operating code are downloaded over a phone line from a computer bulletin board to the host PC. The HEX files are preferably in the Intel MCS-86 HEX format. This is an industry standard for HEX files.
The HEX files contain entirely ASCII
characters and include three record types: Data Record, End Record and Extended Address Record. The formats of the three record types are described in detailed at page 27 of the User Manual for the Gtek EPROM programmer model 9000, dated O1-11-88, and are as follows:
21166603.2 1 Colon ( : ) 2-3 Number of binar~r data bytes 4-5 Load address, h~.gh byte 6-7 Load address, low byte g-g Record type, must be "00"
10-x ~ Data bytes, 2 ASCII-FAX characters x+1 - x+2 Checksum, two ASCII-I~X characters x+3 - x+4 carriage return (CR), line feed (LF) End Record Colon ( : ) 2-3 Record length, must be "00"
4-7 Execution address g-g Record type, must be "O1"
10-11 Checksum 12-13 CR.LF
Extended Address Rec,~rd 1 Colon(:) 2-3 Record length, should be "02"
4-7 Load address field, should be "0000"
8-9 Record type, must be "02"
10-13 USBA-this number multiplied by 16 is the new load offset address For our use only the first digit is used as the 64K bank offset value 14-15 Checksum 16-17 CR,LF
Figures 8A shows a detailed flow diagram of the flash control program 800. The beginning of the flash control program 800 is shown. First, the internal environment and variables are initialized.
The preferred flash control program 800 accepts either con~nand line parameters or can be run in a menu driven mode. The present state of the user interface screen is saved and cleared while the field upgrade control program is running. The screen is saved for later restoration after the reprogramming is completed.
Flash control program 800 continues at control block 802, which starts the help system. The help system reports onscreen status messages to the user during various stages of reprogratrmLing. At times infornlation maybe requested from the user. Also, error messages and possible courses of action are displayed when appropriate.
Next, flash control program 800 reads the setup file to determine which serial port the modem is l0 connected through, the appropriate baud rate and other necessary setup inforn~tion. The serial port is then initialized according to the setup information obtained.
Control block 804 allocates a 128 kbyte memory buffer in the host PC. This memory buffer is used to store processed HEX files containing the updated operating code to be programmed into the flash PROM in the modem. Processing of the I-~X files is described in detail below with respect to Figure 8B.
If "AUTOMATIC MODE" is set at'query 806, flash control program 800 automatically runs the user through the reprogramming procedure. However for certain manufacturing and R&D purposes, it is desirable for the user to have more control over the reprogramming procedure. Thus, automatic mode can be disabled. Y,~hen automatic mode is disabled, the flash control program checks whether the name of the HEX
file to be progran~d is present on the command line.
If not, a user "PROCESS l~~Nfl~~ will appear on the 3o screen at control ~~lock 807 with tlZe choices "PORT
SETUP, '~ ..READ FILE, ~~ "PROGRAM, " or ~~EXIT. ~~ The user can then select the functions to be performed. If the HEX file name was on the conanand line, the flash control program continues with READ AND PROCESS FTLE
routine 810 described in detail below.
Otherwise, in AUTON~TIC MODE, flash control program 800 continues at the top right portion of Figure 8A with control block 808. Here all HEX files T x ~ f present in the host PC are found and heir names displayed onscreen. The user chooses the wame of the file to be programmed into the modem. If the desired file is not listed, the user can press the ESC key to exit the program:
Although the bytes of each, record in the IBEX
files downloaded from the bulletin board are sequential; the I3EX records themselves are in no particular order within the file. 'Defile must therefore be processed and sorted into a format which can be programmed into the modem: READ AND PROCESS
FILE routine 81.0 reads the standard Intel FAX files stored in the host PC and. performs the necessary IIEX
file processing.
Figure 8B shows a detailed flow diagram of the READ AIVD PROCESS FILE routine 810: The purpose of READ AND PROCESS FILE routine 810'is to convert the ASGII I~X characters contained in the I~X records o a binary format appropriate for prograt~ni.~.g into flash:
PROM U7: Routine 810 begins with an update of the onscreen help display. NeXt; the memory buffer is "zapped", i:a:, set to all FF hex (all 1 binary).
'I"his corresponds to the erased state of flash PROM U7.
Next the I~X file is opened for read access and the first HEX record is read: The record is then parsed to check syntax arced to determine the record type indicated key the record type field of each I~X
record as described above.
If the record is type 0 the record is a data record. The record is processed as a data to be loaded in the memory buffer at the current memory pointer, where the pointer is the current 64k page plus the address supplied in he record. After the data is convertedfr_om a ASCII text to binary and stored to the memory buffer; the pointer is ' incremented to the next available space inthe buffer.
Record type 02 indicates an extended address record. The information in these records is converted i fr~n.ASCLI text to binar~r and processed as a 64k page number to be added as an offset o all of the following records until a new record type 02 is reached.
Record type'01 indicates an End of File (EOF) record. If address 0000, 0001 or 0002 were programmed, these addresses are forced to Oc3h, 00 and 01; respective7.y. 'this is the code for a jump to boot control area, rather than the nofmal modem code. This step ensures that the boot control area of the flash part is not corrupted.
READ AND PROCESS FILE routine 810 reacts through the. records in the TISX file until all records have been read, processed and stared znto the memory buffer in the host PC. After the last record has been processed, the READ.AND PROCESS FILE routine 820 is cor~leted , Referring again to Figure 8A, after READ AND
PROCESS FILE routine 810 is completed, flash-control program 800 queri:es'the user ensure that the correct file to be programmed into the modem has been identified. If not, he, program exits. Otherwise;
flash control program 800 continues with PROGRAM FILE
INTO PRODUCT routine 820:
Figure 8C shows a detailed flow diagram of PROGRAM FILE INTO PRODUCT' routine 820. 'Ihe present modem system uses the well-known and widely used AT
command set. As is well-known in the art, the AT .
command set allows a user to control's modem by entering commands through a computer keyboard. The AT
command set can be used to direct the modem toperform fur~.ctions'such as accessing a telephone line, taking the receiver off-hook, dialing and hanging up. The AT
con~anand set can also be used for more intelligent functions such as downl.oac~ing or uploading files.
Many of these more intelligent functions of the AT
command set are used in the present modem system, as f described in more detail below. The AT command set is used in the PRQGRAM FILE INTO PRpDUCT ROUTINE 820:
A general overview of the PROGRAM FILE IN'P0 PRODUCT routine 820 will now be described with reference to Table 1 and Table 2: The handshaking procec7.ure which negotiates the transfer baud rate between the hos PC and modem, which was discussed above is shown in Table 1. The AT command set shown and described in Table 2 is used to control the modem.
All data sent is 8 bits, r_o parity and 1 stop bit.
Power up or AT*FS
triggers execution of the boot code.
Send 'M's at 19200 Responds with 'U' at baud baud if 'M's received with~:n ms of power u~
or AT*FS
com anand: Otherwise jumps to mai n node on time out:
Send 'D' at 19200 If 'D' received within ms baud of when 'LT' sent, then modem responds with 'J':
can receive at baud 'K':
can receive at 19.2k or 38.4k baud 'M':
can receive at 9:6k, 19.2k, 38:4k, 57.6k or 115.2k baud:
Otherwise jumps to main code on time out:
If ' J' then 19200 baud Otherwise may send 'I' 9600 baud 'J': 19200 baud 'K': 38.4k baud 'L' 57.6k baud 'M': 115.2k baud Configure for Configure for negotiated negotiated speed. speed:
Referring now to Figure 8C; the serial port is initialized to 19200 baud, and is set for packets of 8 bits, no parityand 1 stop bit. AT*FS is a t 2'1 special command which tells the modem to jump to address zero, which is equivalent to powering on the modem. At that point, the host PC and modem engage in a handshaking procedure to negotiate the transfer baud rate, shown in tabular form in Table 1 above:
Pursuant to this handshaking procedure; the host PC
starts sending capital 'M's to the modern at an initial baud rate of 19200. The host PC sends 'M's until it receives a.'U' response from the modem. Timeout is to controlled by the modem side as described below with respect to Figure 9A. The host PC continues to send 'M' at 19200 baud until a 'U' is received:
In tye normal case, the modem will respond with a 'U' within 30 milliseconds. At that point, the PC will send back a:'D' and the modem responds within 340 ms with either 'J', 'I~' or 'M', depending on the modem version and the corresponding baud rate-at which it can nua.. If the modem responds with a 'J', the computer assumes a baud rate of 19200:
If the modem responds with a 'K', the computer can choose 38400 or 19200 baud. A response of 'M' means that the modem can be run at 9600, 19200, .
38400, 57600 or 115.2k baud: The PC sends I, J, K or M to set the speed. The host PC and modem then each initialize the, negotiated baud rate and configure accordingly.
The modem is now prepared to receive the AT
command set as shown in Table 2:
.~2DesCri .; on.
ATIx, where x=0, 1, 2; or 3 special codes AT~FLEND exit program and jump to main code ATF'LP program a packet Next , the host PC sends an. ATI7: command The ATI1 command contains the boot control program version number. The version n~unber determines the packet size, which can range from 128 bytes to 4k byte packet size depending on the version number.received:
T'he host PC then sets the max packet size according to the version number received:
Next, as shown in control box 880 in the top right of Figure 8C; the host PC initializes pointers to the top of the RAM buffer which was allocated. in control box 804 shown on Figure 8A, and in which the processed and sorted updated operating code to be prograrnned into the flash PROM in the modem is stored'.
Once the pointers are initialized o the top of the RAM buffer in the host PC; control block 882 commands the PC to check a software protect switch which when enabled prevents overwriting of the program area of the flash PROM in which the boot control program is stored, or which when disabled allows portions of the boot control program to be updated.
For normal. use the software protect switch is enabled to prevent erroneous overwriting of the boot control program area. However; for R&D or manufacturing purposes it may be necessary to update or reprogram the boot control area. The software protect switch thus provides a software '!back door« which allows access to the area of the flash PROM where the boot control program is stored.
Referring again to Figure 8C, the host PC
begins to build a packet whzch willbe sentto the modem over the serial port. In the control blocks 884 and 886 the host PC builds a packet by searching through the HEX fi7.es in the RAM buffer, searching for contiguous non-blank pages. A HEX file blank page is defined as a page programmed, to all F~' : Whenever a non-blank page is found the packet length is incremented. Variable length packets may be sent in sizes up to the specified max packet length deternyined by'version number as described above. Once a blank page is found or the max packet length is reachec7., the packet is complete and xeady to be transferred to the modem over the RS232 serial port.
T'hepacket built by the process shown in control blocks 884 and 8:86 includes a header pprtion and a data portion. 'The header portion.includes a length field created by the host PC as it builds of the packet: the header portion also includes an address field which contains the physical starting address of where the-.data is: to be placed in: the flash PROM. 'rhe data portion includes the updated program data bytes and an XOR' cl checksum. 'rhe packet format is shown in: Table 3:
T~~e 3 packet F; e7 c~ Fa:eld T.
g~ byte ~ 1 Low e Addr 1 b to (only lowest ss High order 4 bits used, upper 4 bits set to Address Middle lbyte Address Low 1 byte Program Data x bytes XOR'd checksum 1 byte After the packet is built, the host PC sends the conanand ATFLP to the modem, the co~nand f or program a packet. Upon receipt of the A'rFLP command;
the modem responds with a 'G'. The host PC'then transmits the data packet pointed to by the RAM buffer pointer.
After the packet is received by the modem, the modem generates its own checksum'based on the data received and compares it to the checksum sent by the host PC: If they are equivalent, the modem responds with 'OK', and the received code is programmed into the flash PROM address pointed to by the Ac7.dress High, Middle, and Low bytes. Otherwise the modem responds with an error.
r The: host PC will run: through the programming loop, searching through the RAM buffer, creating packets and sending packets to the modem until the progranun~.ng is complete or until 5 consecutive errors occur.
After the host PC has sent all the packets, as determined by the DONE PR(7GRAMMING query, the host PC sends an ATFLEND cotra~land to signal that programming is completed. After the file has been programmed, an exit routine; shown in Figure 8A is i~uxn in which timers are shut down and the state of the screen is restored. The user is informed that the program is completed or was terminated clue to error . 'The program then jumps to the normal modem code.
rat-.a; 7 ~ng~S~~ ~~i.~l Proa~~
Figures 9A and 9B show a flow diagram of the boot control program. Figures 9A'and 9B show the same programming procedure as described above with respect to Figures 8A-8C, except that Figures 8A-8C mere described from the perspective of the host PC and Figure 9A and 9B are described from the perspective of the modem. The program begins with power up or AT*FS.
Z'he serial port between r~dem and host PC is initialized for 19200 baud: At this point the modem also copies the program code into RAM. ~'he boot control program is rurx out of RAM while the flash PROM
is reprograr~ned. Thi is because certain bits in flash PROM U7 are toggled during reprogramming and therefore the boot control program must be copied to RAM to avoid corruption of th~~ boot control code.
Next, the handshaking protocol described above with respect to Figure 8C is performed. Zhe modem initializes a counter for 30 milliseconds. If the modem receives an 'M' from the host PC; the modem responds-with a 'U'. If no 'M' is received; the counter is decremented, The loop will timeout after 3oms if no 'M' is' received. The number of times r through the loop is dependent on the crystal speed of the modem, but is equivalent to 30 milliseconds.
Tn~hen the 'M' is received: and the 'U' response is sent, another counter is initialized to 300 milliseconds. If a 'D' is received from the host PC within the 30Oms timeout; the modem responds with a 'J', 'K' or an 'M', depending of the baud rate at which the modem can run.
The host PC then sends either 'L', 'J', 'K', 'L'yor M, and both the host PC and the modem configure their baud rates according to the negotiated speed.
The AT commands ATFLP, ATFL~ or ATIx can now be received by the modem. Flow diagrams showing the programming proEedures on receipt of these commands areshown in Figures 9B-9D.
Figure 9B shows the control flow upon receipt of the ATFLP corranand. T'he modem first responds with a 'G' to indicate that the ATFLP corrunand was received. Next; the packet length bytes and programming address bytes are received from the host PC. A counter is initialized to the length of a packet, and the checksum is initialized to 0.
The modem next runs through a loop; getting each data byte and calculating a new checksum by XOR'ing the checksum fr~n the previous iteration through the loop with the-data received: The modem continues through the loop, decrementing the counter each iteration until the count equals O, indicating that the entire packet was received.
Next, the modem receives the checksum data byte which was generated by the host PC: If the checksum data byte generated by the host PC is equal to the checksum generated'by the modem, the data bytes:
are programmed into the programming address sent with the packet into the flash PROM and an 'OK' response is sent to the host PC. If the checksums are not equal, an error message is sent to the host PC.
Figure ~C sI10G1S the flow diagram for the.
ATFLEND command. As discussed above; the ATFLEND
camma,nd occurs when programming of the flash PROM is completed. If the command AM'FL~1D is received, the serial port is disabled and a jynp to the normal modem code is performed.
Figure 9D shows other commands A'TTx,<where x=o, 1, 2 or 3. ATIO comn:vands the modem to respond with a product identification code. ATI1 commands the modem to respond with a boot version number; which is the version of the boot control program installed in the modem. T'he boot version number is important because different versions may require different packet lengths:
ATI2 is for identification of a basic modem or hardware platform: MT1432~ indicates a derivative of the basic MT1432 platform; for example. These could become more specific to facilitate a more intelligent host interface. ATI3 can be used to indicate country types, s~ci;al defaults, or for future expansion of making a smarter PC host interface.
F~ pi d of the Ir~.ven,t:~, The present invention relates to communications systems and in particular to a modem in which the firmware which controls the operation of the ~dem can be changed or upgraded remotely.
Baekgro~d Presently, there are several mechanisms through which software upgrades, bug fixes and the like are distributed to users. In systems employing firmware storage of operating programs, such as Electrically Progra~nable Read Only Memory (EPROM) and the like, bug fixes or enhancements to system firmware require programming a new EPROM with the updated code and shipping the new EPROM to the customer. A
technician then travels to the site, disassembles the hardware, and replaces the old EPRC>M with the new one.
Unfortunately, these methods are very inconvenient. First, a considerable time delay is encountered while waiting for the manufacturer to program and ship the replacement parts. Second, the hardware may not be operable if the user is waiting for a bug fix. Especially true in cases of bug fixes where the hardware might not be operable without the updated operating code. Also, the replacement of the old with the new EPROM requires a technician to travel to the site and use special tools to disassemble the hardware and :-eplacc: the outdated on faulty part or parts. 'I'his results in an increased expense for repairs or upgrades because technician time and special tool.; are required. Current update methods are thus time consuming, expensive and inefficient.
There is a need in the art, therefore, for a modem which allows remote changes and/or upgrades to be made to the firmware stored operating code, without requiring disassembly and replacement of parts, a technician time, or special tools, thus resulting in the more efficient and cost effective means of updating firmware.
To overcome the shortcom~_ngs in the art described above, and to, provide other advantages which will become apparent upon reading and understanding the present specification, the present system is a modem system which includes hardware and software components. The system allows the user to connect to remote locations equipped with a similar system or with modems or facsimile machines aver a single analog telephone line. The incorporation of various power saving features allow practical implementation of a small, lightweight and easily transportable modem system powered from a standard 9 volt battery. The present modem system also incorporates storage: of operating code and parameters. in an in-circuit reprogrammable memory chip. A user can thus remotely upgrade system firmware with updates, bug fixes, enhancements or other new releases of system operating code by downloading the update over a phone line and reprograming the memory chip in-circuit over the serial port.
Brief nagcr~ption of they 1 a'aina~
In the drawings, where like numerals'refer to like. components throughout the several views, Figure 1 shows the telecommunications environment within which the present system may operate;
Figure 2 is a block diagi:am of the hardware components of the present system;
Figure 3 is a key for viewing the detailed electrical schematic diagrams of F~.gures 4A-7C to facilitate understanding of the interconnections between the drawings;
o Figures 4A-4E, 5A-5C and 6A-6C are detailed electrical schematic diagrams of the circuitry of the hardware components of the present system;
Figure 7 shows a flow diagram of the process for downloading the I~X files containing the updated operating code from a bulletin board,to the host PC;
Figures 8A-8C show a flow diagram of the upgrade control program from the perspective of the host PC; and Figures 9A-9D show a flow diagram of the upgrade control program from the perspective of the modem.
1 DAS n" ~Of ~~E PrefE~ed ~tb~itnAntg In the following detailed description of the preferred embodiment, reference is made to the accompanying drawings which forth a part hereof, and in which is shown by way of illustration specific embodiments in which the inventions may be practiced.
These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that structural changes may be made without departing from the spirit and scope of the present inventions. The following detailed description is, therefore; not to be taken in a limiting sense, and the scope of the present inventions is defined by the appended claims.
Figure 1 shows a typical arrangement for the use of the present modem system. Hardware components 20 contain the present modem system and are connected to laptop computer 10. Hardware components 20 comarnznicate over a standard telephone line 30 to one of a variety of remote sites. For example, one of the remote sites may be equipped with the present modem system including hardware components 20a and laptop computer 10a. The present modem system can also connect over phone lines 30 to fax machine 60, to a personal cuter and associated modem 40, or to a ' r network of personal computers 90. Those skilled in the art will readily recognize the wide variety of coication interconnections possible with the present system by reading and understanding the following detailed description.
~,C~onent-~
Figure 2 is a block diagram of the hardware components of the present system corresponding to reference number 20 of Figure 1. 'these components 10. form the link between the user, the laptop or personal computer (PC) and the telephone. line interface.
The preferred embodiment of the present system preferably includes a data pump circuit 211, which includes a digital telephone coder-decoder (CODEC) and a digital signal processor (DSP) for communicating over the telephone line interface 209.
The data pump DSP of circuit 211 perforn~,s functions such as modulation, demodulation anal echo cancellation to communicate over the telephone line interface 209 using a plurality of telecommunications standards including FAX and modem protocols. The main controller circuit 213 directly controls the DSP data pump circuit 211.
As described more fully below, the main controller circuit 213 includes, in the preferred embodiment, a microprocessor which controls the functions and operation of all of the hardware components shown in Figure 2. The main controller is connected to RAM circuit 216 and a progranmable and electrically erasable read only memory or Flash PROM
circuit 217. The Flash PROM circuit 217 includes non-volatile memory in which the executable control programs for the main controller circuits 213 are stored.
The RS232 serial interface 215 communicates to the serial port of the personal computer which is running the software conponents of the present system.
The RS232 serial interface circuit 215 is connected to a a serial input/output circuit 214 with main controller circuit 213.
Data is received from the telephone line over telephone line interface circuit 209 and 5 forwarded by the data pump circuit 221 and the main controller circuit 213 over the serial line interface circuit 215 to the personal computer.
'neat-a~ 1 ~,. 'f~7 c_n~t,~i ctal $~h_p_m_n_s~f-~ r~ T1i and The detailed electrical schematic diagrams comprise Figures 4A-E, 5A-C, 6A-C and 7A-C. Figure 3 shows a key for how the schematic diagrams may be conveniently arranged to view the passing of signals on the electrical lines between the diagrams. 'Ine electrical connections between the electrical schematic diagrams are through the designators listed next to each wire. For example, on. the right side of Figure 4A, address lines AO-Al9 are attached town address bus for which the individual electrical lines may appear on other pages as AO-A19 or may collectively be connected to other schematic diagrams through the designator ~~A" zn the circle connected to the collective bus. In a like fashion, other electrical lines designated with symbols such as RNGL
on the lower left-hand side of Figure 4A may. connect to other schematic diagrams using the same signal designator RNGL.
Beginning with the electrical schematic diagram of Figures 4D and 4E, the L1AA circuitry (telephone line interface) is shown. The telephone line connection in the preferred e~~nbodiment is through connector J201 which is a standard six-pin modular R~T-11 jack. In the schematic diagram of Figure 4E, only the tip and ring connections of the first telephone circuit of the RAT-11 modular connector are used.
Ferrite beads FB201 and FB202 are placed on the tip and ring wires of the telephone lime connections to reduce high frequency or RF noise that may radiate from telephone line. The incoming telephone line is r also overvoltage protected through SIDAC'rOR 8205. The incoming telephone line is full wave rectified by the full wave bridge comprised of diodes CR230, CR226, CR227 and CR228 of Figure 4D.
Also connected.across the incoming telephone line is a ring detect circuit. Optical isolator U220 (part model number CNY17)- senses the ring voltage threshold when it exceeds the breakdown voltages on zener diodes CR201 and CR202.
l0 The DAA circuitry is phy.~ically isolated from the rest of the system by transformer T1, optocoupler U220 and two solid state relays X215 and X202 which are optically coupled. Connector J203 is a four pin header used for automatic testing during manufacturing and for diagnostics.
Relay X215 shown in Figure 4D is used to accomplish pulse dialing by opening and shorting the tip and ring wires. Transistor Q203 along with the associated discrete resistors comprise a holding circuit to provide a current path or current loop on the telephone line to grab the line. The DAA
circuitry shown in Figures 4D and 4E can be customized to interface to the varying telephone standards used in the United States and in many different European countries.
Connector J202 shown in Figure 4D connects the telephone line interface circuitry described above to connector J102 shown in Figure EA and thusly to the rest of the circuit. Incoming RXA signals are buffered by tze two operational amplifiers U104 as shown in Figure 6B. The first stage of buffering is used to drive the transmit carrier signal to the telephone Line. The second stage of the input buffering is configured for a modez-ate amount of gain before driving the signal into CODEC U101. 'this stage is also used to reduce the amount of transmit signal that is fed back into the receiver. The signal from i i amplifiers U104 is also fed to speaker driver U105, which drives speaker X101.
Data and address buses A and B shown in Figures 4A and 4B connect the 280180 microprocessor in microcontroller U5 with the 280 KIO circuit U4 and a gate array circuit U3, and to other portions of the electrical schematic diagrams. Gate array U3, also shown in Figures 4A and 48, includes the "glue logic" used to support various functions in the hardware components of the present invention. Gate array U3 includes miscellaneous latch and buffer circuits for the present system which normally would be found in discrete SSI or MSI integrated circuits.
By combining a wide variety of miscellaneous support circuits into a single gate array, a much reduced design complexity and manufacturing cost is achieved.
CODEC chip U101 shown in Figure 6B, interface chip U1 shown in Figure 5A and digital signal processor (DSP) chip U2 shown in Figure 5A
comprise a data pump chip set manufactured and sold by AT&T Microelectronics. A detailed description of the operation of these three chips in direct connection and cooperation with one another is described in the publication entitled "AT&T
V.32bis/V.32/FAX High-Speed Data Pump Chip Set Data Book" published by AT&T Microelectronics, December 1991. This AT&T data pump chip set comprises the core of an integrated, two-wire full duplex modem which is capable of operation over standard telephone lines or leased lines. The data pump chip set conforms to the telecommunications specifications in CCITT recommendations V.32bis, V.32, V.22bis, V.22, V.23, V.21 and is compatible with the Bell 212A and 103 modems. Speeds of 14,400, 9600, 4800, 2400, 1200, 12,000 and 300 bits per second are supported. This data pump chip set consists of a ROM-coded DSP16A digital signal processor U2, and interface chip U1 and an AT&T
T7525 linear CODEC U101.
21166603.2 The AT&T data pump chip set is available from AT&T
Microelectronics.
The chip set Ul, U101 and U2 on Figures 5A
and 6B perform all A/D, D/A, modulation, demodulation and echo cancellation of all signals placed on or taken from the telephone line, and performs DTMF tone generation and detection, signal analysis of call progress tones, etc. The transmission of information on the telephone line from CODEC U101 is through buffers U104, and through line buffer U105 as described above.
The main controller of controller circuit 213 and the support circuits 212, 214, 215, 216 and 217 are shown in Figures 4A-4C and 5A. In the preferred embodiment of the present system, the main controller U5 shown in Figures 4A and 4B is a 280180 eight-bit microcontroller chip. In the preferred implementation, microcontroller chip U5 is a 280180 microprocessor, by Zilog, Inc. of Campbell, California. The Zilog 280180 eight-bit microprocessor operates at a 12.288 MHz internal clock speed by means of an external crystal XTAL, which in the preferred embodiment, is a 24.576 MHz crystal. The crystal circuit includes capacitors C1 and C2 which are 20 pf capacitors and resistor R15 which is a 33 ohm resistor. The crystal and support circuitry is connected according to manufacturer's specifications found in the Zilog Intelligent Peripheral Controllers Data Book published by Zilog, Inc. The product description for the 280180 2180 MPU
from the 280 CPU Product Specification is found at pages 351-392 of the Zilog 1991 Intelligent Peripheral Controllers databook.
The 280180 microprocessor in microcontroller chip U5 is intimately connected to a serial/parallel I/O counter timer chip U4 which is, in the preferred embodiment, a Zilog 84C90 CMOS 280 KIO serial/parallel/counter/timer integrated circuit 21166603.2 available from Zilog, Inc. This multi-function I/O
chip U4 combines the functions of a parallel input/output port, a serial input/output port, bus control circuitry, and a clock timer circuit in one chip. The Zilog Z84C90 product specification describes the detailed internal operations of this circuit in the Zilog Intelligent Peripheral Controllers 1991 Handbook available from Zilog, Inc.
and in Z84C90 CMOS Z80KI0 Product specification pgs. 205-224 of the Zilog 1991 Intelligent Peripheral Controllers databook.
The memory chips which operate in conjunction with the 2180 microprocessor in microcontroller chip U5 are shown in Figure 4C. The connections A, B correspond to the connections to the address and data buses, respectively, found on Figure 4A. Memory chip U7 is a read-only memory (ROM) chip which is electrically reprogrammable in circuit. This programmable ROM, typically referred to as a flash PROM, holds the operating code and operating parameters for the present system in a non-volatile memory. Upon power-up, microcontroller chip U5 executes the program code that is stored in the flash PROM U7. In the preferred embodiment, RAM
chip U6 is a pseudostatic RAM which is a dynamic RAM
with a built-in refresh. Those skilled in the art will readily recognize that a wide variety of memory chips may be used and substituted for pseudo-static RAM U6 and flash PROM U7 without departing from the scope of the present invention.
The interface between the main controller circuit 213 and the personal computer is through SIO
circuit 214 and RS232 serial interface 215. RS232 connection J103 is shown on Figure 6A with the associated RS232 driver circuit U102 and interface and ring detect circuitry used to generate and receive the appropriate RS232 standard signals for a serial communications interface with a personal computer.
21166603.2 ' r Figure 6C is a detailed electrical schematic diagram showing the generation of various voltages for powering the hardware components of the electrical schematic diagrams described herein. The power for the present hardware.components described herein is received from either a standard 9 vrolt battery or through AC adaptor J104 which is a standard 3 Pin Power Jack. When the AC adaptor is plugged in, the battery is disconnected. Power is controlled by power switch S101. The preferred modem system is designed to run off of a standard 9 Volt battery, thus resulting in a small, lightweight and easily transportable package. However, it: shall be understood that the modem could also be i~un from any other power source using standard interfaces and conversion circuitry known well in~the art. 5 volt regulator U107 is a linear regulator with a low drop out voltage of about 5.3. Q102 is a MOSFET which controls on/off as directed by power switch S101.
Power switch S101 turns on MOSFET X102, and has three positions, on, off, or auto. In auto position, power switch S101 senses the Data Texminal Ready Signal from the computer,,and if that is not present, then the power to the modem is turned off completely. Thus, if no communications software is Ioade:d, the modem is automatically off such that no power is wasted. From the circuitry of Figure 6C, the +9 volts DC is regulated down to 5 volts, and is also inverted via U106 to get a negative voltage. The negative voltage is used '~o drive the RS232 driver 'U102 shown in Figure 6A. As a result, five volts are derived for operating the various memory, logic and controller chips and support circuitry of the present system.
Figure 5B shows connector J1 which interfaces with connector J101 shown in Figure 6A.
Figure 5C shows the interconnection. of the status LED~s found on the front display of the modem of the present invention.
ll av « Features Referring again to Figure 5A, the interface chip U1, discussed in detail above is shown. Also shown in the upper left portion of Figure 5A is power saving circuitry which is incorporated into the present modem system to enable the practical implementation of a small, Iightwe;ight and_easily portable modem suitable for use with a laptop computer, for example. The power saving features of the present modem system allow the design to be powered from a standard 9 volt battery as discussed above with respect to Figure 6C.
In order to conserve power, various power saving features are provided which allow the present modem system to be put in a low power, or "sleep"
mode. In sleep mode the power to the modem is greatly reduced. There are three main power saving features in the sleep mode. First, additional circuitry has been added in the preferred embodiment to allow additional power savings to be realized. Second, the AT&T data pump chip set has a built in low power mode.
Third, the 2180 MPU U5 also has a built in low; power mode.
The AT&T data pump chip set U1, U2 and U101 described in detail above has the ability to be put into a low power mode. When in low power mode; the CODEC bit clock TCODEC generated by interface chip U1 shown on Figure 5A is slowed to 115kHz to provide a required clock signal to DSP chip U2 and CODEC U101.
The data pump chip set enters sleep mode automatically after a reset, a disconnect or by user command. The chip set automatically wakes up when a ring signal or host command is received. The built-in sleep mode of the AT&T data pump chip set is described in tire detail in the aforementioned publication entitled "AT&T V.32 bits/V.32/FAX High-Speed Data Pump Chip Set Data Book" published by AT&T Microelectronics, December 1991.
In addition to the power saving sleep mode provided by the AT&T data pump chip set U1, U2 and U101, the present invention provides additional power saving features. These features include S providing an external clock oscillator XTL1.
Circuitry is provided such that external clock oscillator XTL1 can also be put in sleep mode (disabled). This results in a significant power savings as the oscillator would consume power unnecessarily when the modem is not in use. When XTLl is disabled, the clock to CODEC U101 is switched to a low frequency, approximately 100 kHz signal generated from K10 U4 of Figure 4A via NAND
gate U10 of Figure 5B.
Crystal XTL2 is a 20.275 MHZ crystal which is used in conjunction with an internal oscillator provided on interface chip U1. The internal oscillator is described in the above listed documentation for interface chip U1.
The present modem system can be assembled with either the crystal XTL2/C17/C18 combination or the external clock oscillator XTLl/C19 combination.
With either combination, the power saving feature built into the AT&T data pump chip set U1, U2 and U101 can be used. However, with the XTL1/C19 combination the AT&T data pump chip set power saving feature and also the additional feature of disabling external oscillator XTALl can be used for even greater power savings. External clock oscillator XTL1 is part number C02810 available from Raltron Corporation of Miami, Florida. External clock oscillator XTL1 has a frequency of 40.5504 MHz and is described in more detail in the publication entitled ~~CLOCK OSC, Model C02810 Series (SMD Type OSC)", published by Raltron Corporation. In the preferred embodiment, external clock oscillator XTL1 is used as the main clock for the AT&T data pump chip set Ul, U2 and U101 and runs at 40.5504 MHZ to drive the interface chip U1.
21166603.2 then the present modem system is off-hook and the 2180 MPU U5 is not processing, the 2180 MPU U5 can be put into a low power or SLEEP mode. The 2180 MPU SLEEP mode places the CPU into a state in which the internal CPU clock stops, therP.by consuming less current. The 2180 MPU U5 wakes up when one of the interrupts INTO, INT1 or INT2 shown in Figures 4A and 4B is asserted.
INTO wakes up the 2180 MPU U5 in response to interrupts generated by K10 U4. INT1 wakes up the 2180 MPU U5 in response to a RNGL or watchdog timer (WDOUT-) signal. The watchdog is a slow timer (in the seconds) which allows the processor to keep track of time. For example, the processor must keep track of the time for which the modem cannot call a blacklist of forbidden phone numbers. INT2 wakes up the 2180 MPU U5 in response to a DT'E data s:Lgnal (TD shown in Figure 5B).
The built in SLEEP mode of the Zilog 2180 MPU U5 is described in more detail in the aforementioned publication Zilog Intelligent Peripheral Controllers 1991 Handbook.
Functional ~ESCx'l~tlnr of tfia~ Control Prog~
The preferred modem system includes two control programs which control the remote in-circuit reprogramming of system firmware, a flash control program and a boot control program., The flash control program runs in the host PC and receives updated operating code downloaded from a bulletin board.. The updated code is downloac:ed to the host PC in the form of Intel HEX files. The flash control program processes the HEX files and creates the packets containing the updated code which are actually sent to the modem. Each packet contains a field containing the packet length, the address at which to store the updated code, the actual program data and a checksum.
The boot control program running in the modem checks that the packet was correctly transmitted and programs the updated operating code at the address specified in the address field of the packet.
In summary, the flash control programs control the host PC side of the process of in-circuit reprogramming of flash PROM U'7. Tree boot control program controls the modem side. As described above, flash PROM U7 is an in-circuit programmable and electrically erasable read only memory. As is well known to those of skill in the art, these memory chips allow in-circuit reprogramming of the operating code and parameters which are stored in the flash PR~t chip U7. Although the present modem system is described with respect to a particular flash PROM U7, it shall be understood that any in-circuit reprogra~nable memory configuration could be used without departing from the scope of the present invention.
Before flash PROM U7 is assembled in the modem circuit, the boot control program is burned, or programmed into flash PROM U7 using conventional PROM
2 0 programmers and programming techniciues .
~nThen a bug fix, enhancement or other new release of system operating code becomes available, the flash control program is used to control the remote loading and processing of operating code downloaded over telephone line from a central bulletin board. The boot control program rE;ceives the updated code from the host PC over the serial port and controls in-circuit reprogramming of the new.operating code into flash PROM U'7.
The field~programmable future of the modem system of the present invention has several advantages. Because a user can recriotely load new operating code over a remote telephone connection, code updates can be obtained immediately as soon as they are available instead of waiting for new parts to be shipped. In addition, no physical removal or replacement of parts is required thus significantly reducing the chance of_ breakages. Further, no special tools are required to remove and replace parts, and no special PROM programming equipment is required to reprogram the memory chips. Finally, the need for a technician to travel to the remote site to perform the upgrade is avoided thus significantly reducing costs associated with the upgrade.
Detailed descriptions of the flash control program and boot control program will now be given.
The illustrative embodiments of the flash control program and boot control program described and shown herein is with special reference to a PC-based DOS
operating system. It shall be understood, however, that the present invention is in no way limited to a DOS operating system. The preferred modem system can also be used with a UNIX-based operating system, Macintosh operating system, or any of a number of operating system platforms simply by customizing the user interface to run on the desired operating system.
Detailed Description of Flash Control Program The flash control program is used to control the reprogramming of updated operating code and parameters into the flash part of the modem.
The updated operating code is distributed to the user according to the procedure shown in Figure 7. To get the update, HEX files containing the updated operating code are downloaded over a phone line from a computer bulletin board to the host PC. The HEX files are preferably in the Intel MCS-86 HEX format. This is an industry standard for HEX files.
The HEX files contain entirely ASCII
characters and include three record types: Data Record, End Record and Extended Address Record. The formats of the three record types are described in detailed at page 27 of the User Manual for the Gtek EPROM programmer model 9000, dated O1-11-88, and are as follows:
21166603.2 1 Colon ( : ) 2-3 Number of binar~r data bytes 4-5 Load address, h~.gh byte 6-7 Load address, low byte g-g Record type, must be "00"
10-x ~ Data bytes, 2 ASCII-FAX characters x+1 - x+2 Checksum, two ASCII-I~X characters x+3 - x+4 carriage return (CR), line feed (LF) End Record Colon ( : ) 2-3 Record length, must be "00"
4-7 Execution address g-g Record type, must be "O1"
10-11 Checksum 12-13 CR.LF
Extended Address Rec,~rd 1 Colon(:) 2-3 Record length, should be "02"
4-7 Load address field, should be "0000"
8-9 Record type, must be "02"
10-13 USBA-this number multiplied by 16 is the new load offset address For our use only the first digit is used as the 64K bank offset value 14-15 Checksum 16-17 CR,LF
Figures 8A shows a detailed flow diagram of the flash control program 800. The beginning of the flash control program 800 is shown. First, the internal environment and variables are initialized.
The preferred flash control program 800 accepts either con~nand line parameters or can be run in a menu driven mode. The present state of the user interface screen is saved and cleared while the field upgrade control program is running. The screen is saved for later restoration after the reprogramming is completed.
Flash control program 800 continues at control block 802, which starts the help system. The help system reports onscreen status messages to the user during various stages of reprogratrmLing. At times infornlation maybe requested from the user. Also, error messages and possible courses of action are displayed when appropriate.
Next, flash control program 800 reads the setup file to determine which serial port the modem is l0 connected through, the appropriate baud rate and other necessary setup inforn~tion. The serial port is then initialized according to the setup information obtained.
Control block 804 allocates a 128 kbyte memory buffer in the host PC. This memory buffer is used to store processed HEX files containing the updated operating code to be programmed into the flash PROM in the modem. Processing of the I-~X files is described in detail below with respect to Figure 8B.
If "AUTOMATIC MODE" is set at'query 806, flash control program 800 automatically runs the user through the reprogramming procedure. However for certain manufacturing and R&D purposes, it is desirable for the user to have more control over the reprogramming procedure. Thus, automatic mode can be disabled. Y,~hen automatic mode is disabled, the flash control program checks whether the name of the HEX
file to be progran~d is present on the command line.
If not, a user "PROCESS l~~Nfl~~ will appear on the 3o screen at control ~~lock 807 with tlZe choices "PORT
SETUP, '~ ..READ FILE, ~~ "PROGRAM, " or ~~EXIT. ~~ The user can then select the functions to be performed. If the HEX file name was on the conanand line, the flash control program continues with READ AND PROCESS FTLE
routine 810 described in detail below.
Otherwise, in AUTON~TIC MODE, flash control program 800 continues at the top right portion of Figure 8A with control block 808. Here all HEX files T x ~ f present in the host PC are found and heir names displayed onscreen. The user chooses the wame of the file to be programmed into the modem. If the desired file is not listed, the user can press the ESC key to exit the program:
Although the bytes of each, record in the IBEX
files downloaded from the bulletin board are sequential; the I3EX records themselves are in no particular order within the file. 'Defile must therefore be processed and sorted into a format which can be programmed into the modem: READ AND PROCESS
FILE routine 81.0 reads the standard Intel FAX files stored in the host PC and. performs the necessary IIEX
file processing.
Figure 8B shows a detailed flow diagram of the READ AIVD PROCESS FILE routine 810: The purpose of READ AND PROCESS FILE routine 810'is to convert the ASGII I~X characters contained in the I~X records o a binary format appropriate for prograt~ni.~.g into flash:
PROM U7: Routine 810 begins with an update of the onscreen help display. NeXt; the memory buffer is "zapped", i:a:, set to all FF hex (all 1 binary).
'I"his corresponds to the erased state of flash PROM U7.
Next the I~X file is opened for read access and the first HEX record is read: The record is then parsed to check syntax arced to determine the record type indicated key the record type field of each I~X
record as described above.
If the record is type 0 the record is a data record. The record is processed as a data to be loaded in the memory buffer at the current memory pointer, where the pointer is the current 64k page plus the address supplied in he record. After the data is convertedfr_om a ASCII text to binary and stored to the memory buffer; the pointer is ' incremented to the next available space inthe buffer.
Record type 02 indicates an extended address record. The information in these records is converted i fr~n.ASCLI text to binar~r and processed as a 64k page number to be added as an offset o all of the following records until a new record type 02 is reached.
Record type'01 indicates an End of File (EOF) record. If address 0000, 0001 or 0002 were programmed, these addresses are forced to Oc3h, 00 and 01; respective7.y. 'this is the code for a jump to boot control area, rather than the nofmal modem code. This step ensures that the boot control area of the flash part is not corrupted.
READ AND PROCESS FILE routine 810 reacts through the. records in the TISX file until all records have been read, processed and stared znto the memory buffer in the host PC. After the last record has been processed, the READ.AND PROCESS FILE routine 820 is cor~leted , Referring again to Figure 8A, after READ AND
PROCESS FILE routine 810 is completed, flash-control program 800 queri:es'the user ensure that the correct file to be programmed into the modem has been identified. If not, he, program exits. Otherwise;
flash control program 800 continues with PROGRAM FILE
INTO PRODUCT routine 820:
Figure 8C shows a detailed flow diagram of PROGRAM FILE INTO PRODUCT' routine 820. 'Ihe present modem system uses the well-known and widely used AT
command set. As is well-known in the art, the AT .
command set allows a user to control's modem by entering commands through a computer keyboard. The AT
command set can be used to direct the modem toperform fur~.ctions'such as accessing a telephone line, taking the receiver off-hook, dialing and hanging up. The AT
con~anand set can also be used for more intelligent functions such as downl.oac~ing or uploading files.
Many of these more intelligent functions of the AT
command set are used in the present modem system, as f described in more detail below. The AT command set is used in the PRQGRAM FILE INTO PRpDUCT ROUTINE 820:
A general overview of the PROGRAM FILE IN'P0 PRODUCT routine 820 will now be described with reference to Table 1 and Table 2: The handshaking procec7.ure which negotiates the transfer baud rate between the hos PC and modem, which was discussed above is shown in Table 1. The AT command set shown and described in Table 2 is used to control the modem.
All data sent is 8 bits, r_o parity and 1 stop bit.
Power up or AT*FS
triggers execution of the boot code.
Send 'M's at 19200 Responds with 'U' at baud baud if 'M's received with~:n ms of power u~
or AT*FS
com anand: Otherwise jumps to mai n node on time out:
Send 'D' at 19200 If 'D' received within ms baud of when 'LT' sent, then modem responds with 'J':
can receive at baud 'K':
can receive at 19.2k or 38.4k baud 'M':
can receive at 9:6k, 19.2k, 38:4k, 57.6k or 115.2k baud:
Otherwise jumps to main code on time out:
If ' J' then 19200 baud Otherwise may send 'I' 9600 baud 'J': 19200 baud 'K': 38.4k baud 'L' 57.6k baud 'M': 115.2k baud Configure for Configure for negotiated negotiated speed. speed:
Referring now to Figure 8C; the serial port is initialized to 19200 baud, and is set for packets of 8 bits, no parityand 1 stop bit. AT*FS is a t 2'1 special command which tells the modem to jump to address zero, which is equivalent to powering on the modem. At that point, the host PC and modem engage in a handshaking procedure to negotiate the transfer baud rate, shown in tabular form in Table 1 above:
Pursuant to this handshaking procedure; the host PC
starts sending capital 'M's to the modern at an initial baud rate of 19200. The host PC sends 'M's until it receives a.'U' response from the modem. Timeout is to controlled by the modem side as described below with respect to Figure 9A. The host PC continues to send 'M' at 19200 baud until a 'U' is received:
In tye normal case, the modem will respond with a 'U' within 30 milliseconds. At that point, the PC will send back a:'D' and the modem responds within 340 ms with either 'J', 'I~' or 'M', depending on the modem version and the corresponding baud rate-at which it can nua.. If the modem responds with a 'J', the computer assumes a baud rate of 19200:
If the modem responds with a 'K', the computer can choose 38400 or 19200 baud. A response of 'M' means that the modem can be run at 9600, 19200, .
38400, 57600 or 115.2k baud: The PC sends I, J, K or M to set the speed. The host PC and modem then each initialize the, negotiated baud rate and configure accordingly.
The modem is now prepared to receive the AT
command set as shown in Table 2:
.~2DesCri .; on.
ATIx, where x=0, 1, 2; or 3 special codes AT~FLEND exit program and jump to main code ATF'LP program a packet Next , the host PC sends an. ATI7: command The ATI1 command contains the boot control program version number. The version n~unber determines the packet size, which can range from 128 bytes to 4k byte packet size depending on the version number.received:
T'he host PC then sets the max packet size according to the version number received:
Next, as shown in control box 880 in the top right of Figure 8C; the host PC initializes pointers to the top of the RAM buffer which was allocated. in control box 804 shown on Figure 8A, and in which the processed and sorted updated operating code to be prograrnned into the flash PROM in the modem is stored'.
Once the pointers are initialized o the top of the RAM buffer in the host PC; control block 882 commands the PC to check a software protect switch which when enabled prevents overwriting of the program area of the flash PROM in which the boot control program is stored, or which when disabled allows portions of the boot control program to be updated.
For normal. use the software protect switch is enabled to prevent erroneous overwriting of the boot control program area. However; for R&D or manufacturing purposes it may be necessary to update or reprogram the boot control area. The software protect switch thus provides a software '!back door« which allows access to the area of the flash PROM where the boot control program is stored.
Referring again to Figure 8C, the host PC
begins to build a packet whzch willbe sentto the modem over the serial port. In the control blocks 884 and 886 the host PC builds a packet by searching through the HEX fi7.es in the RAM buffer, searching for contiguous non-blank pages. A HEX file blank page is defined as a page programmed, to all F~' : Whenever a non-blank page is found the packet length is incremented. Variable length packets may be sent in sizes up to the specified max packet length deternyined by'version number as described above. Once a blank page is found or the max packet length is reachec7., the packet is complete and xeady to be transferred to the modem over the RS232 serial port.
T'hepacket built by the process shown in control blocks 884 and 8:86 includes a header pprtion and a data portion. 'The header portion.includes a length field created by the host PC as it builds of the packet: the header portion also includes an address field which contains the physical starting address of where the-.data is: to be placed in: the flash PROM. 'rhe data portion includes the updated program data bytes and an XOR' cl checksum. 'rhe packet format is shown in: Table 3:
T~~e 3 packet F; e7 c~ Fa:eld T.
g~ byte ~ 1 Low e Addr 1 b to (only lowest ss High order 4 bits used, upper 4 bits set to Address Middle lbyte Address Low 1 byte Program Data x bytes XOR'd checksum 1 byte After the packet is built, the host PC sends the conanand ATFLP to the modem, the co~nand f or program a packet. Upon receipt of the A'rFLP command;
the modem responds with a 'G'. The host PC'then transmits the data packet pointed to by the RAM buffer pointer.
After the packet is received by the modem, the modem generates its own checksum'based on the data received and compares it to the checksum sent by the host PC: If they are equivalent, the modem responds with 'OK', and the received code is programmed into the flash PROM address pointed to by the Ac7.dress High, Middle, and Low bytes. Otherwise the modem responds with an error.
r The: host PC will run: through the programming loop, searching through the RAM buffer, creating packets and sending packets to the modem until the progranun~.ng is complete or until 5 consecutive errors occur.
After the host PC has sent all the packets, as determined by the DONE PR(7GRAMMING query, the host PC sends an ATFLEND cotra~land to signal that programming is completed. After the file has been programmed, an exit routine; shown in Figure 8A is i~uxn in which timers are shut down and the state of the screen is restored. The user is informed that the program is completed or was terminated clue to error . 'The program then jumps to the normal modem code.
rat-.a; 7 ~ng~S~~ ~~i.~l Proa~~
Figures 9A and 9B show a flow diagram of the boot control program. Figures 9A'and 9B show the same programming procedure as described above with respect to Figures 8A-8C, except that Figures 8A-8C mere described from the perspective of the host PC and Figure 9A and 9B are described from the perspective of the modem. The program begins with power up or AT*FS.
Z'he serial port between r~dem and host PC is initialized for 19200 baud: At this point the modem also copies the program code into RAM. ~'he boot control program is rurx out of RAM while the flash PROM
is reprograr~ned. Thi is because certain bits in flash PROM U7 are toggled during reprogramming and therefore the boot control program must be copied to RAM to avoid corruption of th~~ boot control code.
Next, the handshaking protocol described above with respect to Figure 8C is performed. Zhe modem initializes a counter for 30 milliseconds. If the modem receives an 'M' from the host PC; the modem responds-with a 'U'. If no 'M' is received; the counter is decremented, The loop will timeout after 3oms if no 'M' is' received. The number of times r through the loop is dependent on the crystal speed of the modem, but is equivalent to 30 milliseconds.
Tn~hen the 'M' is received: and the 'U' response is sent, another counter is initialized to 300 milliseconds. If a 'D' is received from the host PC within the 30Oms timeout; the modem responds with a 'J', 'K' or an 'M', depending of the baud rate at which the modem can run.
The host PC then sends either 'L', 'J', 'K', 'L'yor M, and both the host PC and the modem configure their baud rates according to the negotiated speed.
The AT commands ATFLP, ATFL~ or ATIx can now be received by the modem. Flow diagrams showing the programming proEedures on receipt of these commands areshown in Figures 9B-9D.
Figure 9B shows the control flow upon receipt of the ATFLP corranand. T'he modem first responds with a 'G' to indicate that the ATFLP corrunand was received. Next; the packet length bytes and programming address bytes are received from the host PC. A counter is initialized to the length of a packet, and the checksum is initialized to 0.
The modem next runs through a loop; getting each data byte and calculating a new checksum by XOR'ing the checksum fr~n the previous iteration through the loop with the-data received: The modem continues through the loop, decrementing the counter each iteration until the count equals O, indicating that the entire packet was received.
Next, the modem receives the checksum data byte which was generated by the host PC: If the checksum data byte generated by the host PC is equal to the checksum generated'by the modem, the data bytes:
are programmed into the programming address sent with the packet into the flash PROM and an 'OK' response is sent to the host PC. If the checksums are not equal, an error message is sent to the host PC.
Figure ~C sI10G1S the flow diagram for the.
ATFLEND command. As discussed above; the ATFLEND
camma,nd occurs when programming of the flash PROM is completed. If the command AM'FL~1D is received, the serial port is disabled and a jynp to the normal modem code is performed.
Figure 9D shows other commands A'TTx,<where x=o, 1, 2 or 3. ATIO comn:vands the modem to respond with a product identification code. ATI1 commands the modem to respond with a boot version number; which is the version of the boot control program installed in the modem. T'he boot version number is important because different versions may require different packet lengths:
ATI2 is for identification of a basic modem or hardware platform: MT1432~ indicates a derivative of the basic MT1432 platform; for example. These could become more specific to facilitate a more intelligent host interface. ATI3 can be used to indicate country types, s~ci;al defaults, or for future expansion of making a smarter PC host interface.
Claims (15)
1. A system comprising:
a local computer having a local processor and having access to a storage device;
a local modem having a modem processor and a network interface, the local modem coupled to the local computer by a communications interface and adapted to execute a first operating code;
a first memory accessible to the modem processor;
a second memory accessible to the modem processor;
a first program, stored in said storage device, executing on the local processor and including instructions to receive a second operating code from the network interface via the local modem, convert the second operating code to data and transfer the data to the modem processor using the communications interface; and a second program, stored in said second memory, executing on the modem processor and including instructions to store the data in the first memory and check the data for an error, and if no error exists, transferring the data from the first memory to the second memory, wherein the first operating code and the second operating code are stored in the second memory, and if an error exists, sending an error message to the local computer.
a local computer having a local processor and having access to a storage device;
a local modem having a modem processor and a network interface, the local modem coupled to the local computer by a communications interface and adapted to execute a first operating code;
a first memory accessible to the modem processor;
a second memory accessible to the modem processor;
a first program, stored in said storage device, executing on the local processor and including instructions to receive a second operating code from the network interface via the local modem, convert the second operating code to data and transfer the data to the modem processor using the communications interface; and a second program, stored in said second memory, executing on the modem processor and including instructions to store the data in the first memory and check the data for an error, and if no error exists, transferring the data from the first memory to the second memory, wherein the first operating code and the second operating code are stored in the second memory, and if an error exists, sending an error message to the local computer.
2. The system of claim 1 wherein the first program instructions to convert the second operating code to data includes instructions to convert the second operating code to packetized data.
3. The system of claim 1 wherein the second program further includes instructions to replace the first operating code with the second operating code.
4. The system of claim 1 wherein the network interface includes a telephone line interface.
5. The system of claim 1 wherein the network interface is adapted to couple with a network of computers.
6. The system of claim 1 wherein the communications interface includes a serial interface.
7. The system of claim 1 wherein the communications interface includes an RS-232 interface.
8. The system of claim 1 wherein the first memory includes a random access memory.
9. The system of claim 1 wherein the second memory includes a flash programmable read only memory (PROM).
10. A method of updating an operating code for a modem, the operating code executable by the modem, the method comprising:
receiving updated operating code from a remote computer coupled to a communication network, the updated operating code received by the modem;
transferring the updated operating code to a local computer coupled to the modem, said local computer having access to a storage device;
executing a first program stored in said storage device on the local computer to convert the updated operating code into packetized updated operating code;
transferring the packetized updated operating code from the local computer to a first memory location accessible to the modem;
executing a second program on the modem to check the packetized updated operating code for errors, said second program being stored in a second memory location accessible to the modem;
if no error is found, transferring the packetized updated operating code from the first memory location to the second memory location;
and if an error is found, sending a message to the local computer.
receiving updated operating code from a remote computer coupled to a communication network, the updated operating code received by the modem;
transferring the updated operating code to a local computer coupled to the modem, said local computer having access to a storage device;
executing a first program stored in said storage device on the local computer to convert the updated operating code into packetized updated operating code;
transferring the packetized updated operating code from the local computer to a first memory location accessible to the modem;
executing a second program on the modem to check the packetized updated operating code for errors, said second program being stored in a second memory location accessible to the modem;
if no error is found, transferring the packetized updated operating code from the first memory location to the second memory location;
and if an error is found, sending a message to the local computer.
11. The method of claim 11 wherein transferring the packetized updated operating code includes transferring a plurality of packets of updated operating code.
12. The method of claim 11 wherein receiving updated operating code includes receiving a file.
13. The method of claim 11 wherein receiving updated operating code includes receiving a portion of a file.
14. The method of claim 11 wherein executing the second program includes generating a first checksum and comparing the first checksum with a checksum received in the packet.
15. The method of claim 11 wherein sending a message includes terminating the method.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/087,164 | 1993-07-02 | ||
| US08/087,164 US6031867A (en) | 1993-07-02 | 1993-07-02 | Modem with firmware upgrade feature |
| CA002261214A CA2261214C (en) | 1993-07-02 | 1994-06-28 | Modem with firmware upgrade and power saving feature |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CA002261214A Division CA2261214C (en) | 1993-07-02 | 1994-06-28 | Modem with firmware upgrade and power saving feature |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CA2368134A1 CA2368134A1 (en) | 1995-01-03 |
| CA2368134C true CA2368134C (en) | 2005-06-07 |
Family
ID=25680801
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CA002368134A Expired - Fee Related CA2368134C (en) | 1993-07-02 | 1994-06-28 | Modem with firmware upgrade and data checking feature |
Country Status (1)
| Country | Link |
|---|---|
| CA (1) | CA2368134C (en) |
-
1994
- 1994-06-28 CA CA002368134A patent/CA2368134C/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| CA2368134A1 (en) | 1995-01-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6031867A (en) | Modem with firmware upgrade feature | |
| US5809068A (en) | PCMCIA modem | |
| EP0800668B1 (en) | Expansion module address method and apparatus for a programmable logic controller | |
| EP0800669B1 (en) | User defined port and protocol scheme for a programmable logic controller | |
| US5765000A (en) | Dynamic user interrupt scheme in a programmable logic controller | |
| EP0800671B1 (en) | Serial access memory cartridge for programmable logic controller | |
| US6055633A (en) | Method of reprogramming memories in field devices over a multidrop network | |
| US6523083B1 (en) | System and method for updating flash memory of peripheral device | |
| US4481574A (en) | Programmable interface between remote terminals and a computer | |
| US4754401A (en) | System for servicing a removable RAM package for an ambulatory medical monitor | |
| US7269829B2 (en) | Method and system for remote update of microprocessor code for irrigation controllers | |
| CN106469125B (en) | A kind of bus communications controller and bus communication control method based on FPGA | |
| US5212774A (en) | Two processor communications system with processor controlled modem | |
| US5481742A (en) | Printer control apparatus for remotely modifying local printer by configuration signals from remote host to produce customized printing control codes | |
| CN110413298A (en) | Method of serial upgrading and debugging of single chip microcomputer based on Labwindows platform | |
| CN1238048A (en) | Self-booting mechanism to allow dynamic system configuration and diagnostic | |
| CA2368134C (en) | Modem with firmware upgrade and data checking feature | |
| US5088051A (en) | User invisible, printer line connected telecommunications link | |
| CA2261214C (en) | Modem with firmware upgrade and power saving feature | |
| CN214586871U (en) | Communication adapter device | |
| EP0339212B1 (en) | Optical hookswitch assembly for a telephone | |
| JP3356602B2 (en) | Communications system | |
| KR20000074918A (en) | Apparatus and method for upgrading boot rom codes of mobile telecommunication system | |
| JP2001125789A (en) | Program download method | |
| JP2001251654A (en) | Control device and private branch exchange device equipped with the control device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EEER | Examination request | ||
| MKLA | Lapsed |