Related Patent Applications
The instant application is related to the following patent applications filed the same date as and assigned to the same assignee as the instant application: Ser. No. 187,306, now U.S. Pat. No. 4,390,963, by Larry C. Puhl et al., entitled "Interface Adapter Architecture"; Ser. No. 187,302, now U.S. Pat. No. 4,434,461, by Larry C. Puhl, entitled "Communications Microprocessor Architecture"; Ser. No. 187,305, now U.S. Pat. No. 4,398,265, by Larry C. Puhl et al., entitled "Keyboard and Display Interface Adapter Architecture"; and Ser. No. 187,303, now U.S. Pat. No. 4,369,516, by John P. Byrns, entitled "Self-Clocking Data Transmission System and Method Therefor". The instant application is also related to U.S. patent applications, Ser. No. 119,605, now U.S. Pat. No. 4,312,074 by Kenneth A. Felix and James A. Pautler, entitled "Improved Method and Apparatus for Detecting a Data Signal Including Repeated Data Words", and Ser. No. 119,350, now U.S. Pat. No. 4,302,845, by John P. Byrns and Michael J. McClaughry, entitled "Phase-Encoded Data Signal Demodulator", both of which were filed on Feb. 7, 1980, and are assigned to the instant assignee. By reference thereto, the foregoing related patent applications are incorporated in their entirety into the instant application.
Background of the Invention
The present invention relates generally to radio transceivers, and more particularly to microprocessor-controlled radio transceivers for use in radiotelephone systems.
As radiotelephone systems increase in size and complexity to accommodate greater numbers of mobile and portable radiotelephones operating in geographic areas including several large cities or even several states, it is necessary that the control circuitry of these radiotelephones become increasingly sophisticated. For example, in cellular radiotelephone systems, mobile and portable radiotelephones must be capable of transmitting and receiving high-speed, supervisory signals on dedicated signalling radio channels and also on voice radio channels during conversations. Prior radiotelephone control circuitry, such as that described in U.S. Pat. Nos. 3,458,664 and 3,571,519, does not have the capacity for processing these high-speed, supervisory signals required to be received and transmitted during normal operation in such cellular radiotelephone systems. Conventional microprocessors have been integrated into some prior radiotelephones, such as the radiotelephones in U.S. Pat. No. 4,122,304, for providing additional telephone type features, such as automatic telephone number dialing, to radiotelephone subscribers in the present day improved mobile telephone system (IMTS) provided and operated by many telephone companies. However, conventional microprocessor-controlled radiotelephones lack the capacity to accommodate the high speed, supervisory signalling encountered in cellular radiotelephone systems, while at the same time monitoring and controlling other portions of the radiotelephone, such as the transmitting and receiving circuitry, a keyboard, and a telephone number display.
Summary of the Invention
Accordingly, it is an object of the present invention to provide an improved microprocessor-controlled radiotelephone that accommodates the high-speed supervisory signalling encountered in advanced radiotelephone systems.
It is another object of the present invention to provide an improved microprocessor-controlled radiotelephone that accommodates radio transceiver control signals on a low priority basis and high-speed radiotelephone system supervisory signalling on a high priority basis.
It is yet another object of the present invention to provide improved radiotelephone control circuitry suitable for use by either portable or mobile radiotelephones in advanced radiotelephone systems.
According to the present invention, an improved radiotelephone includes a keyboard, a display, a radio transceiver, interface circuitry coupled to keyboard and display, interface circuitry coupled to the radio transceiver, a serial data bus coupled to the interface circuitry and a microprocessor coupled to the serial data bus. The serial data bus includes two forward data signal lines for carrying self-clocking data signals from the microprocessor to the interface circuitry and a return data signal line for carrying return data signals from the interface circuitry. The keyboard and display interface circuitry receives data signals from the forward data signal lines and applies the received data signals to the elements of the display. The keyboard and display interface circuitry also samples the keys of the keyboard and applies a return data signal representative of the sampled keys to the return data signal line. The radio interface circuitry receives data signals including frequency and audio control signals from the forward data signal lines, applies the received frequency control signals to a frequency synthesizer for controlling the radio transceiver operating frequencies and applies the received audio control signals to the radio transceiver for controlling the transmitted and received audio signals. The microprocessor controls the radio transceiver operating frequencies and transmitted and received audio signals and the signals displayed in the display elements by applying appropriate data signals to the forward data signal lines. The microprocessor is responsive to data signals received on the return data signal line from the keyboard and display interface circuitry for controlling the operation of the radio transceiver in accordance with the states of the sampled keys from the keyboard.
Brief Description of the Drawings
FIG. 1 is a block diagram of a radiotelephone embodying the present invention.
FIG. 2 is a functional block diagram of the interface adapters in FIG. 1.
FIG. 3, including FIGS. 3A, 3B and 3C arranged together, is a detailed circuit diagram of the data interface unit in FIG. 1.
FIG. 4 is a functional block diagram of the keyboard and display interface adapter in FIG. 1.
FIG. 5 is a functional block diagram of the microprocessor in FIG. 1.
FIG. 6 is a flow diagram of the microprocessor control program stored in the ROM in FIG. 1.
Detailed Description of the Preferred Embodiment
Referring to FIG. 1, there is illustrated a block diagram of radiotelephone 100 embodying the present invention. Radiotelephone 100 is suitable for use in cellular radiotelephone systems of the type described in U.S. Pat. No. 3,906,166 and in a developmental cellular system application, filed by Motorola and American Radio-Telephone Service, Inc. under Docket No. 18262 with the Federal Communications Commission in February, 1977. The radiotelephone 100 provides the same type of fully automatic telephone service to a mobile or portable operator that is provided to land line subscribers. Radiotelephone service is provided over a wide geographical area by dividing the area into a number of cells. Each cell typically has a base station which provides a supervisory signalling radio channel and a number of voice radio channels. Calls are placed to, and originated by, radiotelephones over the supervisory signalling channel in each of the cells. Upon completion of the supervisory signalling, the radiotelephone is assigned a voice channel and switches from the signalling channel to the voice channel for the duration of the call. In the event that a radiotelephone leaves a cell and enters another cell, the radiotelephone is automatically switched over, or handed off, to an available voice channel in the new cell. The supervisory signals carried on the signalling channel, and on voice channels for handing off a radiotelephone as it changes cells, are provided by digital signals encoded in a suitable format, such as Manchester coding, and transmitted at a relatively high speed, such as 10 kHz. The format and transmission of the digital signals are described in more detail in the aforementioned co-pending applications Ser. Nos. 119,605 now U.S. Pat. No. 4,312,074 and 119,350 now U.S. Pat. No. 4,302,845.
In order to accommodate the high speed supervisory signalling in such cellular radiotelephone systems, the radiotelephone 100 includes a microprocessor 101 together with peripheral devices 103-112, a synthesized radio unit 120, serial number and telephone number memories 130 and 131, a telephone number display 140, a keyboard 150 and status indicating LED's 160. Microprocessor 101 (described in further detail in co-pending application Ser. No. 187,302, now U.S. Pat. No. 4,434,461) is responsive to a control program (see Table VIII) stored in read-only memory (ROM) 103 for receiving data signals from the radio unit 120 by way of synchronization unit 106 (described in further detail in co-pending application Ser. No. 119,350 now U.S. Pat. No. 4,302,845) and data interface unit 105 for storage in random access memory (RAM) 104, and transmitting to radio unit 120 supervisory data signals stored in RAM 104 by way of data interface unit 105.
Microprocessor 101 is also coupled to radio unit 120 directly by four control signals 114, one for powering up the radio unit, two for controlling the frequency synthesizer and one for sensing audio signals applied to microphone 122, and also by way of a unique self-clocking serial data bus 113 and interface adapters 107-109 (described in further detail in co-pending patent application Ser. No. 187,306, now U.S. Pat. No. 4,390,963). Microprocessor 101 is coupled to interface adapters 107-109 by self-clocking serial data bus 113, which includes two forward data signal lines and a reverse data signal line (described in further detail in co-pending application Ser. No. 187,303, now U.S. Pat. No. 4,369,516). Data signals applied to the forward data signal lines are received by interface adapters 107-109 and applied to radio unit 120. Interface adapter 107 provides audio control signals to the receiver of radio unit 120 for selecting one of two received audio signals if the radio unit includes two antennas 121 for space diversity purposes, controlling the volume of the received audio signal applied to speaker 123, and muting the received audio signal to provide a conventional squelch type function. Interface adapter 108 provides audio control signals to the transmitter of radio unit 120 for controlling the RF power of the transmitted signal, muting of the transmitted audio signal and powering up the transmitting circuitry. Interface adapter 109 applies an eight-bit frequency control signal to a frequency synthesizer (not shown) in radio unit 120 for determining the transmitting and receiving frequencies thereof. The frequency control signal applied to the frequency synthesizer in radio unit 120 can be expanded to up to sixteen bits by utilizing two direct control signals 114 from the microprocessor 101 to selectively apply either eight high order bits or eight low order bits to the frequency synthesizer. In addition, the control signal 114 sensing audio signals applied to microphone 122 can be utilized by microprocessor 101 for controlling the signal from interface adapter 108 for powering of the radio transmitting circuitry, so that the radio transmitter is powered only when audio signals are sensed. Radio unit 120 can be any conventional radio unit suitable for cellular system operation, such as the radio described in Motorola Instruction Manual 68P81039E25, published by Motorola Service Publications, Schaumburg, Ill., 1979. The radiotelephone described in the aforementioned instruction manual is a frequency synthesized radio specially adapted for use in cellular radiotelephone systems.
Microprocessor 101 is also coupled by way of the serial data bus 113 to interface adapters 110 and 111 for accessing a serial number and telephone number assigned to the radiotelephone 100. The serial number and telephone number of the radiotelephone 100 are stored in separate memories 130 and 131, respectively, so that each may be changed simply by replacing one memory with another. The serial number and telephone number may include a plurality of digits stored in successive locations of these memories. In order to access each digit of the serial number or telephone number, the microprocessor 101 transmits an address data signal by way of the serial data bus 113 to interface adapter 110. The address signal received by interface adapter 110 is applied to the serial number memory 130 and telephone number memory 131. The applied address signal includes one bit for selecting between the serial number memory 130 and telephone number memory 131 and five bits for selecting the particular digit of the serial number or telephone number to be read out. The digit of the serial number or telephone number read out from the addressed serial number memory 130 or telephone number memory 131 is applied to interface adapter 111 which couples the read-out digit to the serial data bus 113 for transmission back to the microprocessor 101.
Microprocessor 101 is also coupled by way of the serial data bus 113 to a unique keyboard and display interface adapter 112 (described in further detail in co-pending application Ser. No. 187,305, now U.S. Pat. No. 4,398,265). The keyboard and display interface adapter 112 provides for the display of eight digits of an entered telephone number in display 140, scans the keyboard 150 for activated keys and activates status indicating LED's 160, one indicating that the radiotelephone is in use, another that no service is available to the radiotelephone and the last that the radiotelephone is locked preventing unauthorized use. The keyboard and display interface adapter 112 scans the keys of the keyboard 150, monitors off-hook switch 170, and applies a data signal to the serial data bus 113 indicating which keys are found to be activated and whether the off-hook switch 170 is activated or not. The keyboard and display interface adapter 112 also receives data signals transmitted by the microprocessor 101 on the serial data bus 113 for display in the telephone number display 140 or for activating one of the four status LED's 160.
The radio unit 120 of the radiotelephone 100 may be either a mobile unit as described in the aforementioned Motorola Instruction Manual 68P81039E25 or a hand-held portable unit of the type described in U.S. Pat. Nos. 3,906,166 and 3,962,553, having an external appearance as illustrated in U.S. Pat. No. Des. 234,605. The microprocessor 101 and associated peripheral devices 103-112 are of the type that may readily be integrated into a semiconductive substrate, such as CMOS, and provided individually or together on an integrated circuit. The microprocessor 101 and related peripheral devices 103-112 have been architectured such that the high priority supervisory signals received and transmitted by radio unit 120 are handled on a high speed interrupt basis by data interface unit 105 and synchronization unit 106, while the lower priority control signals for the radio unit 120, display unit 140, keyboard 150 and status LED's 160 are handled on a lower speed basis by way of the serial data bus 113 and interface adapters 107-112. Since the serial data bus 113 is self-clocking and independent of the speed of transmission, interface adapters 107-112 can be physically located remote from microprocessor 101 without any degradation in performance. Thus, interface adapters 107-109 may be located in the radio unit, if desired, and the keyboard and display interface adapter 112 may be located on the same printed circuit board as the telephone number display 140 and keyboard 150, both being physically separated from the printed circuit board on which microprocessor 101 is located. Further details as to the exact description and construction of the transmitting and receiving circuitry in a typical radio unit 120 can be found in the aforementioned Motorola Instruction Manual 68P81039E25.
Referring to FIG. 2 there is illustrated a unique interface adapter 200 (described in further detail in co-pending application Ser. No. 187,306, now U.S. Pat. No. 4,390,963 that may be advantageously utilized in a radiotelephone embodying the present invention. The interface adapter 200 is coupled to eight interface signals 217 which may be selected to be either input or output signals under program control. Sixteen-bit data signals including address, control and data portions, are transmitted on the serial data bus 113 by microprocessor 101 in FIG. 1 to one or more interface adapters 200 in a self-clocking format on two forward data signal lines, which are designated the true data and complement data signal lines. The data transmission format, described in further detail in co-pending application Ser. No. 187,303, now U.S. Pat. No. 4,369,516, makes use of the four possible two-bit binary states of the true data and complement data signal lines in order to encode the binary state of each bit, a clock signal and framing information. The two-bit binary states assigned to the true data and complement data signal lines for each of the four possible states are illustrated hereinbelow in Table I. It is to be understood that these binary states can be reassigned in many different ways in accordance with the teachings of co-pending application Ser. No. 187,303, now U.S. Pat. No. 4,369,516.
Referring to Table I, the word state is provided before and after the sixteen-bit data signal, the zero state is provided for each binary zero bit of the data signal, the one state is provided for each binary one bit of the data signal and the bit state is provided between successive data signal bits. Successive data signals may be transmitted one after another as long as the word state of the true data and complement data signal lines is provided between them. A typical data signal coded according to this format is illustrated by the waveforms in FIG. 4.
The true data and complement data signal lines are coupled to clock and data recovery circuitry 201 which recovers a non-return-to-zero (NRZ) data signal, a clock signal and a framing signal. The NRZ data signal is loaded into an eight-bit receiving register 203 in response to the clock signal. The sixteen-bit data signal is divided into an address and control portion, including bits 1-8, and a data portion, including bits 9-16, as illustrated in Table II hereinbelow. Thus, the first eight bits shifted into receiving register 203 are the address and control portion of the data signal.
In response to the recovered clock signal from the clock and data recovery circuitry 201, the state control logic 205 provides fifteen control states for identifying the bits of the received data signal. The control and decoding logic 207 decodes the address portion of the data signal loaded into receiving register 203 and provides a chip select signal to register clock and control logic 215. The control and decoding logic 207 also is responsive to selected control states from the state control logic 205 for providing a read/write control signal, a register select control signal and a bus sense control signal to the register clock and control logic 215. The register clock and control logic 215 enables either the peripheral output register 211 or the data direction register 209 in response to the register select signal and framing signal for loading the eight-bit data portion of the data signal into the selected register. The data direction register 209 selects those interface signals 217 which are to be output signals and enables the peripheral interface circuitry 213 to apply the binary state stored in the peripheral output register 211 to the interface signals 217. Binary one bits of the data direction register cause corresponding interface signals 217 to be output signals, while binary zero bits cause corresponding interface signals 217 to be input signals. If the interface adapter 200 has received its address, the chip select signal from control and decoding logic 207 enables transmission gate 221 for applying sampled interface signals stored in transmitting register 219 to the return data signal line. The sampled interface signals are shifted out of the transmitting register 219 in response to the recovered clock signal from clock and data recovery circuitry 201.
Although five bits are designated as the address portion of the data signal, two of the bits are fixed and the other three bits are variable, being compared to three address straps by the control and decoding logic 207 to determine if the interface adapter 200 has been selected. Using only three of the address bits allows for uniquely addressing eight different interface adapters. By interchanging the connections of the true data and complement data signal lines to the clock and data recovery circuitry 201, an additional eight interface adapters can be uniquely addressed. The bus sense control signal from the control and decoding logic 207 indicates whether or not the true data and complement data signal lines have been interchanged, and, if interchanged, causes the data portion of the data signal to be complemented as it is shifted into receiving register 203. For addressing each of these additional eight interface adapters, the two fixed address bits, bits 5 and 6 are complemented so that the chip select signal is properly decoded by the control and decoding logic 207.
Referring to FIGS. 3A, 3B and 3C taken together, there is illustrated a detailed circuit diagram of the data interface unit 105 in FIG. 1. The data interface unit is serviced by the microprocessor on an interrupt basis for transmitting and receiving supervisory signals. The supervisory signals are coded according to Manchester coding and transmitted by data interface unit 105 to radio unit 120 in FIG. 1 at a 10 KHz bit rate. The format and transmission of the supervisory signals are described in more detail in the aforementioned co-pending application Ser. Nos. 119,605 now U.S. Pat. No. 4,312,074 and 119,350 now U.S. Pat. No. 4,302,845. Manchester coded supervisory signals are received by synchronization unit 106 in FIG. 1 and upon verification and decoding, the synchronization unit 106 indicates that valid supervisory signals have been received by providing a synchronization signal to data interface unit 105. The synchronization signal provided by synchronization unit 106 is utilized by data interface unit 105 for interrupting microprocessor 101. Supervisory signals transmitted by the data interface unit 105 to the radio unit 120 are referred to as reverse data signals, while supervisory signals received by the synchronization unit 106 from radio unit 120 are referred to as forward data signals. The data interface unit provides an interrupt signal to microprocessor for the four following conditions: The reverse data register 321 is full; the forward data register 385 is empty; the one millisecond timer 316 is set; and the 25 millisecond timer 318 is set. The microprocessor can enable or disable any of these interrupt conditions by loading an appropriate bit into control register 335, four bits of which enable corresponding signals to be applied to the microprocessor interrupt signal via gating circuitry 336.
The data interface unit is selected by microprocessor by providing the I/O enable signal, which is coupled via flip-flop 302 and gate 303 to enable decoding logic gates 304-308. Decoding logic gates 306-308 are responsive to address bits A0 and A1 and the R/W signal for providing corresponding control signals (see Table III hereinbelow). Gate 305 provides a read/enable signal to gate 351, while gate 304 provides a write/enable signal to gates 306-308. The control signal from gate 306 is utilized to write a reverse data signal from data bus lines D0-D7 into latch 320. The data loaded into latch 320 is then parallel loaded into reverse data register 321 to be Manchester coded and transmitted via gates 340, 342 and 343 to radio unit 120 in FIG. 1. The output from gate 306 also resets flip-flop 326 by way of gate 330. The output of flip-flop 326, the reverse interrupt signal is coupled to gating circuitry 336 for application to the microprocessor interrupt signal and to flip-flop 329 via NAND gate 328, causing the output of flip-flop 329 to have a binary one state. The output of flip-flop 329 is applied to the D input of reverse data register 321 and to the D input of flip-flop 331. The outputs of flip-flops 329 and 331 are combined by gate 332 to provide a shift enable signal which is coupled via gate 323 to the P/S input of the reverse data register 321 causing it to serially shift out the bits of the reverse data signal. Once the reverse data signal has been shifted out of reverse data register 321 and applied via gates 340, 342 and 343 to radio unit 120 in FIG. 1, the output of gate 323 changes state causing the reverse data register 321 to be returned to the parallel load mode again.
The output of gate 308 is utilized to reset the 1 ms timer 316 and the 25 ms timer 318. Divider 315 is responsive to the 10 KHz clock signal for providing a pulse at 1 ms intervals, causing the output of flip-flop 316 to have a binary one state. Divider 317 is responsive to the output of divider 315 for providing a pulse at 25 ms intervals, causing the output of flip-flop 318 to have a binary one state. The 1 ms timer signal and 25 ms timer signal from these flip-flops 316 and 318 are utilized by the microprocessor control program (see Table VIII) for timing and scheduling the primary and secondary tasks to be performed on a cyclical basis, as shown in FIG. 6. Both the 1 ms timer signal and the 25 ms timer signal are gated with corresponding bits of control register 335 and applied to the microprocessor interrupt signal by gating circuitry 336. Once the microprocessor has responded to the interrupt signal caused by either the 1 ms timer signal or the 25 ms timer signal, the microprocessor may then access the data interface unit and enable gate 308 to reset flip-flops 316 and 318, preparing for the next 1 ms and 25 ms time interval.
Gate 307 is coupled to control register 335 and clocks a data signal from data bus lines D0-D7 into control register 335. The first four bits of the data signal loaded into control register 335 enable corresponding signals applied by gating circuitry 336 to the microprocessor interrupt signal. Of the other four bits loaded into control register 335, one bit is utilized to enable gates 340 and 341 for transmitting Manchester coded data signals to the radio unit 120 in FIG. 1, another bit is utilized to reset the forward data interrupt signal 379 via gates 355, 356, 380 and 381, another bit is used to identify the presence of data signals or voice signals, and the last bit is utilized to select internally generated data in place of data from synchronization unit 106 in FIG. 1. The bits loaded into control register 335 can be read by the microprocessor by enabling gates 358 and 351 for applying the bits of control register 335 to the data bus lines D0-D7 350 via gate 352 and transmission gate 350. The microprocessor may also read the binary state of the various interrupt signals by enabling gates 359 and 351 for applying the interrupt signals to the data bus lines D0-D7 via gate 353 and transmission gate 350.
The data interface unit can select between data signals recovered by the synchronization unit 106 in FIG. 1 and internally generated data signals from gate 341 by means of one of the bits in control register 335. If the internally generated data signals from gate 341 are selected, transmission gates 361-363 are enabled, and, if the data signals from synchronization unit 106 in FIG. 1 are selected, transmission gates 365-367 are enabled via gate 357. The selected data signal is applied via gate 368 to shift register 385. The selected clock signal is coupled by gate 376 to gate 377 and the clock input of the forward data register 385. The data synchronization signal from transmission gates 361 and 365 is utilized to reset divider 371 and to set latch 372, 373, providing a binary one state at the output of gate 374. Divider 371 is clocked by the selected clock signal and enables flip-flops 379 by way of gates 377 and 378 to provide a forward interrupt signal when eight bits of the data signal have been shifted into forward data register 385. The output of gate 377 causes the eight bits shifted into forward data register 385 to be loaded into latch 386. The forward data interrupt signal from flip-flop 379 is reset via gate 381 by enabling gate 370, and also by the last bit of control register 335 via gates 355, 356 and 380.
The data interface chip gives the microprocessor a great degree of flexibility in accommodating various formats of supervisory signalling, since the transmission format is under control of the microprocessor. The data interface unit also gives the microprocessor complete control over the selection and priority of interrupts. Thus, the microprocessor can dynamically prioritize the various interrupt signals depending on the degree of system usage and loading.
Referring to FIG. 4, there is illustrated a unique display and keyboard interface adapter 400 (described in further detail in co-pending application Ser. No. 187,305, now U.S. Pat. No. 4,398,265) that may be advantageously utilized in a radiotelephone embodying the present invention. The keyboard and display interface adapter 400 can store and refresh up to sixteen digits for display in a suitable display 435, such as an LED type or liquid crystal type display. If ten or less digits of the display are utilized, one can programmably shorten the display refresh cycle, thereby increasing the intensity of the displayed digits. The keyboard and display interface adapter 400 can also scan and debounce up to thirty-two keys of a pushbutton keyboard 425. When an activated key is detected, one can programmably enable an audio tone generator (not shown) to provide audible feedback. If the display refresh cycle is shortened for a ten digit display 435, the keyboard and interface adapter 400 will then scan and debounce twenty keys of a pushbutton keyboard 425.
The keyboard and display interface adapter 400 is coupled to microprocessor 101 in FIG. 1 by way of self-clocking serial data bus 113. Sixteen-bit data signals including address, control and data portions, are transmitted on the serial data bus 113 by microprocessor 101 in FIG. 1 to the keyboard and display interface adapter 400 in a self-clocking format on two forward data signal lines (see Table I hereinabove).
The sixteen-bit data signals are received on the serial data bus by data bus logic 401 and timing and control logic 402. As illustrated in Table IV hereinbelow, each sixteen-bit data signal includes address and control bits 1-8 and data bits 9-16 (where bit one is received first). In order to properly select the keyboard and display interface adapter, bits 1-6 of a data signal are XXX000 or 000100 depending on whether the status of the display 435 or LED's 430 is to be updated. The data portion, bits 9-16, of received data signals are used to control LED's 430, transistors 405 and 407 for powering BCD decoder/driver 408 and lamp 440, and to update the digits stored in memory 404 for application to display 435.
The timing and control logic 402 enables BCD decoder/driver 408 and memory and drivers 404 so that display 435 is continuously strobed with the digits stored in memory 404. At the same time, the timing and control logic enables BCD decoder/driver 409 to sequentially strobe each row of keys in keyboard 425. The +V power supply to BCD decoder/driver 408 and lamp 440 can be programmably disabled by turning off transistors 407 and 405. If a particular key of keyboard 425 is activated, a signal is returned by way of the column conductors to timing and control logic 402. Since the keyboard and display interface adapter 400 is coupled to the microprocessor 101 in FIG. 1 only by way of a serial data bus, the keyboard and display interface adapter 400 may by located with the display 435 and keyboard 425 at a considerable distance from microprocessor 101.
Referring to FIG. 5, there is illustrated a general block diagram of a microprocessor 101 in FIG. 1 (described in further detail in co-pending application Ser. No. 187,302, now U.S. Pat. No. 4,434,461). Microprocessor 500 is an eight-bit microprocessor that may be constructed on an integrated circuit utilizing conventional silicon gate CMOS technology to provide relatively low power consumption. Microprocessor 500 is architectured such that the bit manipulations required by high speed supervisory signalling, such as that required in cellular type radiotelephone systems, can be quickly and efficiently accommodated. Thus, microprocessor 500 can be advantageously utilized in any application where both low power consumption and fast bit manipulations are required.
The architecture of microprocessor 500 is organized around three buses, data bus 510, register bus 520, and adrress bus 530. Data signals are routed between the various blocks of microprocessor 500 by selectively interconnecting the three buses 510, 520 and 530 in response to control signals provided by ALU and control programmable logic arrays (PLA) 502. PLA's 502 decode program instructions loaded in instruction register (IR) 501 to provide the appropriate control signals for executing each instruction in Table V hereinbelow. The various control signals provided by PLA's 502 are described in further detail in the aforementioned co-pending application Ser. No. 187,302 now U.S. Pat. No. 4,434,461.
Microprocessor 500 also includes three general purpose registers 516, R0, R1 and R2, an arithmetic logic unit (ALU) 513 with two temporary registers 511 and 512, T1 and T2, and zero and carry flags 514, serial bus circuitry 560 including format generator 537 and registers 535 and 536, a special purpose register 532, R3, a stack pointer counter 503, a twelve-bit program counter register 522, a temporary program counter register 504 and associated incrementer 506, and a temporary address register 521, T3. All of the registers in microprocessor 500 are latching type registers since a full clock cycle interval is allowed for transfers between registers.
The unique architecture of the inventive microprocessor 500 insures that instructions are executed in a minimum number of clock cycles. For example, the loading of the instruction register 501 with the next instruction from memory via data bus 510 can occur at the same time that the results of the last instruction are being written by way of the register bus 520 into the appropriate register. As a result of the unique architecture of the microprocessor 500, all instructions in Table V hereinbelow can be completed in four or less clock cycles. Thus, the inventive microprocessor 500 can be operated at slower speeds to reduce power consumption, while maintaining the through-put necessary for accommodating high-speed, cellular type supervisory signalling.
Another feature of the unique architecture of microprocessor 500 is that interrupts are serviced in a minimum number of clock cycles because general purpose registers 516, condition flags 514 and program counter register 522 include primary and duplicate registers (indicated by primes in FIG. 5). Thus, the primary set of registers 516 and 522 and flags 514 is used during normal operation, and the duplicate set is used during interrupts. By utilizing duplicate registers 516 and 522 and duplicate condition flags 514, a considerable amount of processing time is saved since microprocessor 500 does not have to store the contents of the registers and condition flags before transferring to the interrupt service subroutines. Thus, during an interrupt, the duplicate registers 516 and 522 and duplicate condition flags 514 are used by microprocessor 500, while the contents of the primary registers and flags remain unchanged. After processing the interrupt, microprocessor 500 switches back to the primary registers 516 and 522 and flags 514, returning to normal operation in at most two clock cycle intervals.
Another feature of the unique architecture of microprocessor 500 is that the R0, R1, R2 and R3 registers 516 and 531 may be directly controlled by the control program in ROM 103 in FIG. 1. Of the R0, R1 and R2 registers 516, the R1 and R2 registers are multipurpose registers which can be used as address pointer or data registers, and the R0 register is a single purpose register which can be used as a data register only. R3 register 531 is also a special purpose register, whose four least significant bits are used for page addressing when accessing data from ROM 103 or RAM 104 in FIG. 1 and whose four most significant bits are used to control the four direct I/O lines 540.
Another feature of the unique architecture of microprocessor 500 is that seven levels of subroutine nesting are allowed. For each level of nesting, the subroutine return addresses are saved in a stack, addressed by stack pointer counter 503 and located in the upper sixteen bytes of page zero of RAM 104 in FIG. 1. These locations of RAM are reserved for access only by jump to subroutine JSR and return from subroutine RTS instructions (see Table V hereinbelow). When using the rest of the instruction set of microprocessor 500, accessing these locations of RAM will result in activation of the I/O enable line to data interface unit 105 rather than the RAM enable line to RAM 104 in FIG. 1. This operation of microprocessor 500 is utilized to uniquely address up to sixteen different I/O devices, such as data interface unit 105 in FIG. 1, when the I/O enable line is activated.
The unique architecture of microprocessor 500 also provides for two condition flags 514, the zero flag and carry flag. The zero flag is set to a binary one state if the result of an arithmetic operation in ALU 513 is zero, and it is otherwise cleared to a binary zero state. The carry flag has a binary one state if a carry has resulted from an arithmetic operation in ALU 513 or if a high order binary one bit has been shifted out of ALU 513 during a shift operation. Microprocessor 500 includes four conditional jump instructions, JEQ, JNE, JCC, JCS (see Table V hereinbelow), for responding to the binary zero or one state of the zero and carry flags 514.
According to another unique feature of the architecture of microprocessor 500, serial data bus circuitry 560 provides bidirectional communications between microprocessor 500 and a number of interface adapters 107-112 in FIG. 1 by way of serial data bus 550. Sixteen-bit data signals are loaded into registers 535 and 536 and applied according to a self-clocking transmission scheme by format generator 537 to serial data bus 550 for transmission to the interface adapters. The particular interface adapter addressed by the sixteen-bit data signal transmits a return data signal on the serial data bus 550, which is loaded into register 536 while the last eight bits of the sixteen-bit data signal are being transmitted. Data transmission on the serial data bus 550 is completely under control of microprocessor 500, which polls the various interface adapters on a time available basis. Since the self-clocking transmission scheme is insensitive to speed and timing variations, microprocessor 500 can interrupt data transmission on the serial data bus for long periods of time (seconds, minutes, etc.) without affecting the transmission or reception of the data signals. The data bus circuitry 560 and the self-clocking transmission scheme are described in further detail in the aforementioned co-pending application Ser. No. 187,303, now U.S. Pat. No. 4,369,516.
The instruction repertoire of microprocessor 500 is shown in Tables V, VI and VII hereinbelow. The microprocessor has six addressing modes, immediate, direct, pointer, inherent, extended and register, each of which is described in Table VII. These addressing modes give the microprocessor a great amount of flexibility, resulting in more efficient and simpler control programs. A control program is included in Table VIII, hereinbelow, which is loaded into ROM 103 in FIG. 1 for enabling the microprocessor to control the operation of a portable radiotelephone in a cellular radiotelephone system of the type described in the aforementioned Motorola Instruction Manual 68P81039E25 and in the aforementioned Motorola developmental cellular system application.
Referring to FIG. 6, there is illustrated a generalized flowchart of the control program stored in ROM 103 in FIG. 1 and included in Table VIII hereinbelow. The various tasks of the microprocessor for controlling either a portable or mobile radiotelepone can be divided into primary tasks 601--609 and secondary tasks 610-617. The primary tasks 601-609 are handled on a high priority basis by the microprocessor, while the secondary tasks 610-617 are handled on a lower priority basis due to the fact that they occur infrequently and are less critical to system operation. Referring to the primary tasks, the microprocessor goes through a start-up sequence at block 601 where all circuitry and program constants are initialized. Next, after the power start-up is complete, an initialization phase is entered at block 602. During the initialization phase, all sigalling channels are scanned for the one having the strongest signal, and system parameters are then received on the strongest signalling channel. Also, a determination is made as to whether the radiotelephone is in its home cell or is roaming. When the initialization is complete, the microprocessor enters an idle state at block 603, corresponding to the inactive period when the radiotelephone is on-hook and the signalling channel is being monitored for pages. Periodically, the microprocessor returns back to the initialization block 602 and rescans all of the signalling channels to insure that the radiotelephone is always monitoring the strongest signalling channel.
From the idle state of block 603, the microprocessor can proceed to block 604 if the radiotelephone user initiates a call, block 605 if the microprocessor receives a page on the signalling channel, or block 606 if the microprocessor receives an order on the signalling channel. If a program timer expires while executing the tasks in blocks 604, 605 or 606, the microprocessor returns back to the initialization block 602 for rescanning the signalling channels and returning to the idle state at block 603. If after the origination sequence is complete at block 604, the microprocessor may then proceed to block 608 to enter the conversation phase. Then, once the conversation phase is complete, the microprocessor proceeds to block 609 to release the call. Upon completion of the release of the call, the microprocessor then proceeds back to the initialization block 602.
After receiving a paging sequence at block 605, the microprocessor responds to the page and alerts the radiotelephone user of an incoming call at block 607. If the call is to be aborted, a release request causes the microprocessor to proceed to block 609 to release the call. If the radiotelephone user answers the call, the microprocessor proceeds to block 608 for the conversation phase. Upon completion of the conversation phase, the microprocessor proceeds to block 609 and releases the call as described hereinabove.
During the order response sequence at block 606, the microprocessor responds to various orders received on the signalling channel and, upon completion of the appropriate response, returns to the initialization phase at block 602.
During the time that the primary tasks 601-609 are being handled by the microprocessor, the various secondary tasks 610-617 may also be underway. Each of the secondary tasks 610-617 may be underway during the primary tasks identified in the lower right-hand corner of each of the secondary task blocks. Thus, the transmission and reception of supervisory data signals in block 610 may occur during any of the primary tasks 602-608. Supervisory data signals are communicated between the microprocessor and the radio unit 120 via data interface unit 105 and synchronization unit 106 in FIG. 1. It may also be necessary to vary the magnitude of the RF power output in block 611 during primary tasks 602-609. The microprocessor controls the magnitude of the radiated RF power from radio unit 120 by way of interface adaptor 108 in FIG. 1. If the particular radio unit 120 has two antennas 121 for the purposes of diversity, the microprocessor controls the diversity switch in block 612 for selecting between the two antennas. The diversity switch control task 612 may be initiated during any of the primary tasks 602-609. The microprocessor must also accommodate the user interface, including the display 140, keyboard 150 and off-hook switch 170 in FIG. 1, during any of the primary tasks 602-609. The microprocessor controls the display 140, keyboard 150 and off-hook switch 170 by way of the keyboard and display interface adapter 112 in FIG. 1. It may also be necessary to process the autonomous time-out task 614 during the primary tasks 602-609. During the autonomous time-out task 614, a remote watchdog timer is reset. The remote watchdog timer is used to turn off the radiotelephone transmitter when it times out, protecting against a microprocessor failure causing the transmitter to be permanently on. The microprocessor may process the identification task 615 during any of the primary tasks 603-606. The identification task involves the transmitting of the serial number and telephone number of the particular radiotelephone back to the radiotelephone central control station. The microprocessor accesses the serial number memory 130 and telephone number memory 131 by way of interface adapters 110 and 111 in FIG. 1 to obtain the serial and telephone numbers. The microprocessor also handles the interruption task 616 during the primary tasks 607 and 608. An interruption of the call may be required in order to process hand-off or higher priority calls. Also during primary tasks 607 and 608, the microprocessor must handle the voice channel supervision task 617, which involves both hand-off of the radiotelephone to another radio channel and control of the received and transmitted audio signals. The microprocessor is coupled to the radio unit 120 by interface adapters 107, 108 and 109 for controlling the received and transmitted audio signals and transceiver frequencies of radio unit 120 in FIG. 1.
Referring to the radiotelephone 100 in FIG. 1, the microprocessor 101, data interface unit 105, synchronization unit 106, interface adapters 107-111 and keyboard and display interface adapter 112 can each be constructed of conventional integrated circuit devices, such as the CMOS devices described in the CMOS Integrated Circuits Book, published by Motorola Semiconductor Products, Inc., Austin, Tex., 1978. Furthermore, each of these blocks of radiotelephone 100 can be constructed with electrical circuit devices suitable for integration into a semiconductive substrate, such as CMOS, and provided in a single integrated circuit device.
In summary, an improved radiotelephone includes a unique microprocessor system for accommodating high-speed supervisory control signals on a high priority basis and radio transceiver control signals on a low speed time available basis. The radiotelephone microprocessor is coupled by a data interface unit and synchronization unit to the radio transceiver for transmitting and receiving supervisory control signals thereby on a prioritized interrupt basis and is coupled by a self-clocking serial data bus to the radio transceiver, serial and telephone number memories, keyboard and display for controlling the operation thereof on a polled time available basis. The improved radiotelephone can be substantially adapted to operate in any selected radiotelephone system by tailoring the microprocessor control program to meet the specifications of the selected system.