Abstract:
An electronic code plug programming apparatus and operating method that automatically recognizes and configures a radio frequency communication device without reference to a prestored signal in the radio frequency communication device. The programming apparatus uses a communication interface operating in either a first or second configuration using first and second signal sets, respectively. The first configuration and signal set allows communication with a non-microprocessor based radio frequency communication device while the second configuration and signal set allows communication with a microprocessor based radio frequency communication device. In response to the success or failure of a direct code plug read request communicated to an undetermined radio frequency communication device, a controller recognizes whether the device is microprocessor based without reference to a prestored signal therein and programs the device, configuring operational parameters according to its recognized capabilities.

Description:
This is a continuation of application Ser. No. 494,290, filed Mar. 16, 1990 and now abandoned. 
    
    
     FIELD OF THE INVENTION 
     This invention relates in general to programming devices and more particularly to a portable radio telephone programing device. 
     BACKGROUND OF THE INVENTION 
     The state of the art in achieving a radio&#39;s desired operating characteristics, or &#34;personality&#34; as it is commonly known, has readily advanced over the last five years. In the past, a radio&#39;s personality was determined at the time of assembly by combining unique components into a working unit. This is an expensive and inefficient method for manufacturing a multiplicity of models because of the large inventory that must be maintained in order to fulfill each customer order in a timely fashion. With the advent of high capacity digital decimal electronic signalling schemes in the paging industry, the need arose for a more efficient and cost effective means for manufacturing portable selective call radio receivers and transmitters. It was during the mid 1970&#39;s that the technology for the use of nichrome code plugs as a memory device became practical. The idea of a using pre-programmed fusible link code plug that could be read by a custom integrated circuit or a microprocessor revolutionized the paging industry. By using a nichrome code plug, the manufacturer could now design a fairly generic radio that could be configured to provide a wide variety of options by reading the state (electrical open or short circuits) of predetermined fusible links within the code plug and determining the desired operating mode accordingly. Nichrome code plugs were not without their problems as they are a one shot deal, that is, once you &#34;blow&#34; the links in the code plug, the radio&#39;s options relating to those links that are now fixed and cannot revert to their previous states. The fact that the links are permanently melted apart leads to the obvious conclusion that if you want to reprogram radio functions at a later date, you must replace the used code plug with a new one and reprogram the radio. Another problem with nichrome code plugs is that a substantial amount of electrical current is required to &#34;blow&#34; the links. Because of this, the radio itself is not able to program the code plug while installed. External programmers had to be developed to program and verify the nichrome code plugs. 
     With the development of low voltage EEPROM&#39;s (electrically erasable programmable read only memories) and other low power/low voltage memory devices such as battery powered static random access memory, portable radio devices can now be designed to take advantage of the permanent installation of these memory devices. They serve the same function as the nichrome code plugs but allow the manufacturer to further reduce the unit&#39;s cost to the customer by eliminating the need to replace the code plug. These devices also improve the reliability of the design by eliminating the temporary interconnects used to contact nichrome code plugs. 
     Another problem facing designers of portable radio products in the area of electronically configurable options is that all existing products require a microprocessor to control and interface the programming signals and data to the code plug. 
     Thus, what is needed is a method for recognizing and programing with minimal user intervention, a portable communication device&#39;s code plug to provide a dynamically reconfigurable personality for the portable communication device. 
     SUMMARY OF THE INVENTION 
     In carrying out the above, there is provided an electronic code plug programming apparatus and operating method that automatically recognizes and configures a radio frequency communication device without reference to a prestored signal in the radio frequency communication device. The programming apparatus uses a communication interface operating in either a first or second configuration using first and second signal sets, respectively. The first configuration and signal set allows communication with a non-microprocessor based radio frequency communication device while the second configuration and signal set allows communication with a microprocessor based radio frequency communication device. In response to the success or failure of a direct code plug read request communicated to an undetermined radio frequency communication device, a controller recognizes whether the device is microprocessor based without reference to a prestored signal therein and programs the device, configuring operational parameters according to its recognized capabilities. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of a radio telephone with a programming interface. 
     FIG. 2 is a block diagram of a selective call receiver with the programing interface. 
     FIG. 3 is a diagram of a programing system. 
     FIG. 4 is a block diagram of a selective call receiver with the programing interface and showing the options contained in a typical code plug. 
     FIG. 5 is a schematic of an implementation of a programming interface circuit in accordance with the preferred embodiment of the present invention. 
     FIG. 6 is a flow diagram of the algorithm for automatically detecting the unit model to be programed. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Referring to FIG. 1, a block diagram is shown of the battery 101 powered radio telephone. A radio frequency signal is received or transmitted by the antenna 102. The antenna is coupled to the receiver 103 and transmitter 104 by a diplexer 105. The diplexer 105 provides switching means and mutual isolation for the radio frequency transmitter and receiver paths respectively. The received signal is routed from the receiver 103 to the control circuitry 106 that recovers any information contained within the received signal. This recovered information is then used to activate the alert 107 (a ringer in the case of a cellular radio telephone) and after answering the call, sustain the connection. When a connection is completed, the user aurally communicates with the other party via the speaker 108 and a microphone 109. Recovered audio from the control circuitry 106 is routed to the speaker which converts electrical energy into acoustical energy thus enabling the user to hear any communications. The microphone 109 is used to convert acoustic energy into electrical energy for use by the control circuitry 106 in modulating the radio frequency carrier produced by the transmitter 104. The user may initiate a call by selecting the proper control 110 and dialing the number of the party to be contacted. When dialed, the number is presented on a display 111 to provide visual feedback for the user. 
     In accordance with the present invention, information is exchanged between the programmer (not shown) and radio telephone via a communication interface 112. The communication interface 112 allows information exchange using digital serial or parallel word oriented data formats. The word length in bits is defined according to the data throughput requirements of the programming action. When a large amount of data is to be exchanged between the programmer and the radio telephone, the serial data rate can be increased or the parallel word length and data rate can be increased. In this particular embodiment of the programming system, the word length is chosen at 8 bits. With the present integrated circuit technology, the choice of an 8 bit word size results in an economical, efficient hardware design as well as easing the task of developing software for the programmer. The present embodiment utilizes a physical electrical contacting scheme as a coupling means to transfer data between the programmer and radio telephone. Is is clear to one skilled in the art that the coupling means can be constructed in a variety of different ways (e.g. optical, acoustic, etc.) using any media capable of carrying information transmissions. 
     Referring to FIG. 2, a block diagram is shown of the battery 201 powered selective call receiver. The selective call receiver operates to receive a signal via an antenna 202. The received signal is routed from the antenna 202 to the receiver 203. The receiver 203 demodulates the received signals using conventional techniques and forwards the demodulated signal to the control circuitry 204, which decodes and recovers information contained within the received signal. In accordance with the recovered information and user controls 205, the selective call receiver presents at least a portion of the information, such as by a display 206, and signals the user via a sensible alert 207 that a message has been received. 
     In accordance with the present invention, the selecting call receiver is able to exchange information (communicate) with the programmer by using an interface 208 as described for the radio telephone shown in FIG. 1. The selective call receiver shown in FIG. 2 contains control circuitry 204 which may include a custom linear support integrated circuit (not shown) and microprocessor (not shown) with integrated EEPROM (electrically erasable programmable read only memory). The linear support integrated circuit acts to provide ancillary support interfaces to drive the display 206 and alert transducer 207 as well as accept and provide control signals from the controls 205, interface 208, and receiver 203. When a low power CMOS microprocessor is used as the primary control device in the control circuitry 204, the linear support integrated circuit is typically required to optimize system power comsumption and overall efficiency. Present CMOS microprocessor technology does not lend itself to the integration of the primary controller and linear support functions into a single integrated circuit. As can be realized by one skilled in the art, the development of a totally integrated controller in the near future using BIMOS (integrated bipolar/CMOS) technology is very possible and desirable. Since the functions achieved by the radio telephone and selective call receiver shown in FIG. 1 and FIG. 2 respectively, are quite similar, any advances in technology pertaining to one system can be applied directly to the other. 
     Referring to FIG. 3, a system diagram is shown of the preferred embodiment of the selective call receiver programing system. A microcomputer system 301 such as an IBM personal computer or Apple Macintosh computer (hereafter referred to as a PC) executes a software program that exchanges information with the programmer 302 via a conventional communication link 303 (e.g. serial standards RS-232, RS-422, or CENTRONICS parallel). In the preferred embodiment the communication link 303 is a serial RS-232 interface running at 9600 baud (9,600 communication symbols or in this case 8 bit words exchanged between the programmer and the PC per second). The radio device 304 is inserted into the programmer 302 for reading, writing, and verifying the programming information contained within the radio device 304. Electronic signals are coupled from the programmer 302 to the radio device 304 that convey the commands controlling the reading, writing, and verifying of information contained within the radio device 304. 
     Referring to FIG. 4, a block diagram is shown of the battery 401 powered selective call receiver. The selective call receiver operates to receive a signal via an antenna 402. The received signal is routed from the antenna 402 to the receiver 403. The receiver 403 demodulates the received signals using conventional techniques and forwards the demodulated signal to a custom integrated circuit controller 404, which is coupled to a decoder 406 that correlates recovered information contained within the received signal to at least one predetermined address contained within the code plug 407. In accordance with the recovered information and user controls 405, the selective call receiver presents at least a portion of the information, such as by a display 409, and signals the user via a sensible alert 408 that a message has been received. Information is exchanged between the programmer (not shown) and selective call receiver via a communication interface 410. Note that the interface connects directly to the code plug 407 in this embodiment of a selective call receiver. This selective call receiver is a cost reduced version of a standard selective call receiver in that it does not use a microprocessor as its controller 404. The selective call receiver&#39;s options are configured by programing the code plug 407 which is then read by the decoder 406. The decoder 406 in conjunction with the controller 404 sets the operating mode of the selective call receiver. This particular embodiment exchanges information between the programmer and selective call receiver using an interface standard developed by Motorola known as SPI (serial peripheral interface). For a more detailed description of the SPI interface see the Motorola publication &#34;Microprocessor, Microcontroller, and Peripheral Data, Volume I&#34;, MOTOROLA INC., 1988, pp.3-932 to 3-938 which is hereby incorporated by reference. This standard allows a master/slave buss style communication link to be established between devices sharing a common 5 signal interface. The programmer acts as the master and the selective call receiver&#39;s code plug 407 which incorporates the SPI circuitry acts as the slave. When communication is established, both devices can communicate via the MISO (master in/slave out) and MOSI (master out/slave in) communication ports. The data is clocked between master and slave using a SCK (serial clock) signal that is supplied by the master device. Using this configuration a low cost selective call receiver or radio telephone can be manufactured that does not require a microprocessor. 
     Referring to FIG. 5, the schematic shows the programmer communication interface circuitry. The output signals provided for programing consist of two separate sets, a first for programming, reading, and verifying SPI interfaced non-microprocessor based radios, and a second for programing microprocessor based radios. 
     The first signal set corresponds to a non-microprocessor based radio and comprises a SCK (serial clock) 501, MISO (master in/slave out) 502, low B+ 503 with a maximum DC magnitude of 3.2 volts, #SS (slave select active low) 504, MOSI (master out/slave in) 505, and system ground 506 signal. The signals are all referenced to the low B+ 503 signal as its maximum provides the selectable pull-up voltage available at the open collector transistor interface outputs. The low B+ 503 value is selected to prevent damage to any radio connected to the interface regardless of the interface present on that radio. This allows the application of the low output voltages to an incompatible interface while determining its functionality, without causing damage to that interface. Programming is accomplished by applying low B+ 503 to the radio, asserting #SS (slave select active low) 504, then clocking data between the radio and programmer with the SCK (serial clock) 501, MISO (master in/slave out) 502, and MOSI (master out/slave in) 505 signals. Verification (reading) of the programmed data is accomplished by reading the data received by the programmer at the MISO (master in/slave out) 502 port. 
     The second signal set corresponding with microprocessor based radios comprises a #TIMER 501&#39; (deadman timer disable active low), VPP 507 (high value programming voltage), VPC 502&#39; (high value programming voltage control), VDD 503&#39; (high B+ with a maximum DC magnitude of 5.0 volts), #IRQ 504&#39; (interrupt request disable active low), SD I-0 505&#39; (serial data input/output), and system ground 506&#39; signal. The signals are all referenced to the VDD 503&#39; signal as its maximum provides the selectable pull-up voltage available at the open collector transistor interface outputs. This allows the use of conventional (off the shelf) microprocessor and support circuitry to be used in microprocessor based radios. The VPP 507 signal at a nominal DC magnitude of 25 volts, allows the use of conventional (off the shelf) EEPROM&#39;s with microprocessor based radios. The #IRQ 504&#39; (interrupt request disable active low) and #TIMER 501&#39; (deadman timer disable active low) signals disable the microprocessor&#39;s interrupt request and linear support integrated circuit&#39;s deadman timer that otherwise must be read at regular intervals by the radio being programmed. This permits an executable program other than the ROM routine contained within the radio being programmed to be executed by the radio. The reason for programming in this manner is that the high voltage applied when using conventional EEPROM&#39;s is enabled by the pager itself after a downloaded program has set-up the radio&#39;s circuitry for programing. When the radio is ready to accept programming data, the radio asserts the VPC 502&#39; signal true causing the programmer to apply the VPP 507 signal to that radio and send programing data to the radio via the SD I-O 505&#39; (serial data input/output) port. Verification (reading) of the programmed data is accomplished by reading the data received by the programmer at the SD I-O 505&#39; (serial data input/output) port. Communications on the SD I-O 505&#39; (serial data input/output) port are half duplex (one way) and are able to be controlled by either the programmer or radio being programed. 
     Referring to FIG. 6, the diagram shows the algorithm for the automatic recognition of both microprocessor and non-microprocessor based radios. The flow starts 601 with the MAIN program sending a command to the programmer that tells the programmer&#39;s software to initialize the radio power voltage at the low B+ level 602 and attempting a SPI write/read operation on the radio. If this operation is successful 603, the model data that corresponds to the 5/6 tone signalling format non-microprocessor based radio is loaded 604 and the routine returns to the MAIN 605 program for configuring the recognized radio&#39;s options. The MAIN program is executed on a PC that is coupled to the programmer via a communications link. It contains the option configuration selections, screen drivers, model data tables, and other support routines required for radio programing and servicing. For more information on the MAIN program and programing system in general, see the publication &#34;KeyNote SERIES Radio Programming Software&#34;, MOTOROLA INC., 1989, pp. 8, which is hereby incorporated by reference. If the write/read SPI operation fails, the algorithm increments to the next predetermined model and attempts a SCI read 606 operation. Note that no predetermined token is read from an SPI interfaced radio and that the model type is determined solely by the functionality or lack of as determined by the write/read operation. An SCI read is attempted for all remaining models which in this case are microprocessor based radios using GSC (Golay Sequential Code signalling) 606 and 2 tone (2 tone sequential signalling) 609 schemes. If the GSC (Golay Sequential Code signalling) 606 read is successful 607, the appropriate model data is loaded 608 and the routine returns to the main 605 program for configuring the recognized radio&#39;s options. If the GSC (Golay Sequential Code signalling) 606 read. If the GSC (Golay Sequential Code signalling) 606 read fails, the flow proceeds to the 2 tone (2  tone sequential signalling) 609 read step. If the 2 tone (2 tone sequential signalling) 609 read is successful 610, the appropriate model data is loaded 611 and the routine returns to the main 605 program for configuring the recognized radio&#39;s options. If the 2 tone (2 tone sequential signalling) 609 read fails, control is passed to step 612, the READ error flag is set indicating that no successful communications have occured, and the program flow returns to the MAIN program 605. 
     After successful recognition of a model by the programmer, the MAIN program automatically invokes the correct model information and presents the appropriate programing screens to the user. This allows the user to determine the model data with no prior knowledge of the previous configuration.