Abstract:
An improved data terminal equipment (DTE)-modem arrangement is disclosed. In this arrangement, a single processor, such as one that resides within a DTE, both executes an application program and implements a modem. A DTE that utilizes this arrangement, therefore, needs only a single processor to perform both the application and modem functions.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This is a continuation-in-part of a prior application Ser. No. 07/314,671, filed on Feb. 21, 1989, entitled &#34;Personal Computer Modem&#34;, by the identical applicants of the present application, and assigned to the same assignee of the present invention, which prior application is now abandoned. 
    
    
     TECHNICAL FIELD 
     This application relates to data terminal equipment (DTE) in general and more particularly to any processor having an application program and arranged to communicate with an external point via a modem coupled to a transmission facility such as a telephone line. 
     BACKGROUND OF THE INVENTION 
     Programmable processor-controlled data terminal equipment (DTE) such as work stations, data terminals, and personal computers are increasingly common in today&#39;s society. 
     It is known to program such a DTE to perform a desired function or application such as, for example, word processing or data terminal emulation. This is accomplished by programming the DTE&#39;s processor with a suitable application program that has been customized for the desired function. 
     It is also known to program such a DTE to communicate with another remote DTE or other source. This is accomplished by coupling the DTE&#39;s processor to a data communications equipment (DCE) or modem via a suitable DTE-DCE interface such as an RS-232 type. The modem, in turn, is coupled to a telephone line or other transmission facility. The processor may then be programmed to exchange information with the modem which, in turn, converts the information into signals suitable for transmission to the remote source via the telephone line. 
     A wide variety of modems are available to support such DTE-modem arrangements. In the prior art, these modems have either been stand-alone units external to the DTE or else customized plug-in units that are mounted internal to the DTE. 
     The problem with this DTE-modem arrangement is it is processor-redundant. This is because the modem itself typically contains at least one onboard processor to implement various modem functions such as modulation, demodulation, interfacing with the DTE, and other control functions. As a result, the total cost of the DTE-modem arrangement includes the cost of both the DTE&#39;s processor as well as the modem&#39;s processor. In the long run, this arrangement is inefficient, since it forces the DTE-modem user ultimately to pay for two (or more) processors when, with appropriate software and hardware, the single processor of the DTE could perform the same function. 
     Therefore, it would be desirable to provide an improved DTE-modem arrangement. Further, it would be particularly desirable to arrange the DTE processor to both execute an application program and implement a modem, thereby eliminating the need for the stand-alone modem. 
     SUMMARY OF THE INVENTION 
     It is an object of the present invention to provide an improved DTE-modem arrangement. Accordingly, a processor modem arrangement is described whereby a single processor, such as one that resides within a DTE, both executes an application program and implements a modem. 
     A DTE utilizing this arrangement, therefore, needs only a single processor to perform both the modem and the application program functions. This is an advantage over the prior art, since a prior DTE would utilize at least two processors to perform these functions. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram that shows a DTE such as a personal computer, data terminal, or work station arranged with a first embodiment of the processor modem, according to the invention. 
     FIG. 2 is a second block diagram that shows the DTE of FIG. 1 arranged with the first embodiment. 
     FIGS. 3A-3C and 4A-4C show exemplary flow diagrams for the processor modem, according to the invention, as follows: 
     FIG. 3A shows a transmit word routine; 
     FIG. 3B shows a transmit baud routine; 
     FIG. 3C shows a transmit sample routine; 
     FIG. 4A shows a receive sample routine; 
     FIG. 4B shows a receive baud routine; 
     FIG. 4C shows a receive word routine. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     FIG. 1 is a block diagram that shows a DTE such as a personal computer, data terminal, or work station arranged with a first embodiment of the processor modem, according to the invention. 
     Referring to FIG. 1, there is shown a DTE 1 containing a processor 2. The processor 2, in turn, is arranged to execute an application program and to implement a modem. The arrangement depicted in FIG. 1 transmits information as follows: The processor 2 applies the appropriate input signals to the input of a suitable line output means 3 such as, for example, a digital-to-analog (D/A) converter, via a first link 4. The line output means 3, in turn, applies corresponding output signals to a hybrid 5 via a second link 6. The hybrid 5, in turn, applies corresponding outgoing signals to a suitable facility 7 such as, for example, a two-wire telephone line. 
     The arrangement depicted in FIG. 1 receives information as follows: The facility 7 applies incoming signals to the hybrid 5 which, in turn, applies input signals to the input of a suitable line input means 8 such as, for example, an analog-to-digital (A/D) converter, via a third link 9. The line input means 8, in turn, applies the corresponding output signals to the processor 2 via a fourth link 10. 
     In the arrangement of FIG. 1, the DTE 1, processor 2, line output means 3, line input means 8, hybrid 5, links 4, 6, 9, 10, and the facility 7 are all well-known in the art. 
     Although FIG. 1 depicts a first embodiment of the invention arranged with a two-wire facility 7, it will be appreciated that a four-wire facility (not shown) comprising a two-wire transmit leg and a two-wire receive leg may also be used. In such an arrangement, the transmit leg would terminate directly on the output of the line output means 3, and the receive leg would terminate directly on the input of the line input means 8. Therefore, the second link 6, third link 9, and hybrid 5 would not be used. 
     Referring now to FIG. 2, there is a second block diagram depicting DTE 1 arranged with the first embodiment of the processor modem. As shown, processor 2 comprises both a user application program 11 and a modem program 12. The modem program 12, in turn, includes both a transmit program 13 and a receive program 14. 
     Referring still to FIG. 2, the transmit program 13 comprises three routines, as follows: a transmit word routine, a transmit baud routine, and a transmit sample routine, which routines will be shown in the following FIGS. 3A-3C. Similarly, the receive program 14 comprises three routines, as follows: a receive sample routine, a receive baud routine, and a receive word routine, which routines will be shown in the following FIGS. 4A-4C. The term &#34;routine&#34;, as used herein, refers to a predetermined sequence of software steps. 
     Referring now to FIG. 3A, there is shown an exemplary flow diagram for the transmit program 13 transmit word routine, according to the invention. This routine is designated a word routine because it is driven by a word-generated interrupt. 
     Referring still to FIG. 3A, the process starts with the processor performing the application program, step 101. At this point, the process determines whether the application program has an output word to transmit, step 102. It will be appreciated that each word typically will consist of an integral number of eight-bit segments, or bytes, such as, for example, one byte (as in an 8-bit word) or two bytes (as in a 16-bit word). If the answer to this determination is negative, the process continues with the application program, step 101. If the answer to this determination is affirmative, however, the process receives an output word from the application program, step 103. This may be accomplished by any convenient receiving method such as, for example, by reading the output word from a suitable predetermined buffer. The process next writes this output data word to a transmit word buffer, step 104. The transmit word routine is now complete, step 105, and the process returns to step 101, where it continues with the application program. 
     FIG. 3B shows an exemplary flow diagram for a transmit program 13 transmit baud routine, according to the invention. This routine is designated a baud routine because it is driven by a baud-oriented timed interrupt. 
     Referring now to FIG. 3B, the process starts with the processor performing the application program, step 111. At this point, the process determines whether it is time to send a baseband transmit point, step 112. This is also known in the art as determining when it is time to send a new baud, and the result depends on the type of modem being implemented. For example, if a 300-baud modem such as a Bell 103-type or a Bell 212-type modem is being implemented, a new baud is sent every 1/300 of a second. On the other hand, if a 600-baud modem such as a V.22bis-type modem were being implemented, a new baud would be sent every 1/600 of a second. If the answer to this determination is negative, the process continues with the application program, step 111. 
     If the answer to this determination is affirmative, however, the process reads at least one information bit from the transmit word buffer, step 113. Here the number of bits read depends on the type of modem being implemented. For example, in a Bell 103-type modem, one information bit is sent with each baud and, therefore, only one bit would be read if this type of modem were being emulated. On the other hand, in a V.22 bis-type modem, two information bits are sent with each baud and, therefore, two bits would be read if this type of modem were being implemented. 
     The process proceeds to step 114, where it selects a baseband transmit point based on the values of the bits read in the previous step 113. It will be appreciated that the transmit point can be selected from a predetermined look-up table which essentially maps each unique state of information bit values to be sent onto a corresponding unique baseband transmit point. In the art, a graphical display of this collection of baseband transmit points versus information bit values is known as a constellation, or eye pattern. It will be appreciated that, whatever modem type is being implemented, the process can use a suitable predetermined eye pattern or constellation corresponding to the modem type to determine the baseband transmit point corresponding to the predetermined information bits. After selecting a baseband transmit point (step 114), the process writes this transmit point to a transmit baud buffer, step 115. The transmit baud routine is now complete, step 116, and the process returns to step 111, where it continues with the application program. 
     FIG. 3C shows an exemplary flow diagram for a transmit program 13 transmit sample routine, according to the invention. The routine is designated a sample routine because it is driven by a transmit sample-oriented time interrupt. 
     Referring now to FIG. 3C, the process starts with the processor performing the application program, step 121. At this point, the process determines whether it is time to send a passband transmit signal value, step 122. This is also known in the art as determining when it is time to send a new Nyquist transmit sample, and the resulting transmit sample rate must be at least twice the transmit baud rate of the modem being implemented. For example, as pointed out earlier, if a 600-baud modem such as a V.22bis-type is being implemented, a new baud would be sent every 1/600 of a second. The Nyquist transmit sampling rate then would be twice this rate, and so a new transmit sample must be sent at least every 1/1200 of a second, or preferably more often. If the answer to this determination is negative, the process continues with the application program, step 121. 
     If the answer to this determination is affirmative, however, the process reads the baseband transmit point from the transmit baud buffer, step 123. The process next proceeds to step 124, where it selects a passband transmit signal value based on the baseband transmit point read in the previous step 123. This is known in the art as modulating the transmit carrier signal, and the result will depend on the type of modem being implemented. The particular technique utilized may modulate the frequency, phase, or amplitude of the transmit carrier signal. In a Bell 103-type modem, for example, simple frequency keying is used to modulate the carrier. More complex schemes are also known. For example, in a Bell 212-type modem, phase-shifting is used to modulate the carrier signal. Also, in a high-speed synchronous modem such as a V.29-type, phase-and-amplitude shifting is used to modulate the carrier. It will be appreciated that, whatever modulation method is used to modulate the carrier, the process can use a suitable predetermined algorithm corresponding to the modulation method to determine the passband transmit signal value corresponding to the predetermined baseband transmit point. After selecting a passband transmit signal value (step 124), the process provides this signal value to the line output means, step 125. The transmit sample routine is now complete, step 126, and the process returns to step 121, where it continues with the application program. 
     Referring now to FIG. 4A, there is shown an exemplary flow diagram for a receive program 14 receive sample routine, according to the invention. This routine is designated a sample routine because it is driven by a receive sample-oriented timed interrupt. 
     Referring still to FIG. 4A, the process starts with the processor performing the application program, step 201. At this point, the process determines whether it is time to receive a passband receive signal value, step 202. This is also known in the art as determining when it is time to receive a new Nyquist receive sample, and the resulting receive sample rate must be at least twice the receive baud rate of the modem being implemented. For example, assuming a 600-baud modem such as a V.22bis-type were being implemented, a new baud would be received every 1/600 of a second. The corresponding Nyquist receive sampling rate would be twice this rate, and so a new receive sample would be received at least every 1/1200 of a second, or preferably more often. If the answer to this determination is negative, the process continues with the application program, step 201. 
     If the answer to this determination is affirmative, however, the process receives a receive signal value from the line input means, step 203. 
     The process next proceeds to step 204, where it selects a baseband receive point based on the passband receive signal value received in the previous step 203. This is known in the art as demodulating the receive carrier signal, and the result will depend on the type of modem being implemented. The particular technique utilized may demodulate the frequency, phase, or amplitude of the receive carrier signal. In a Bell 212-type modem, for example, the phase-shift of the receive carrier signal would be detected. Further, in a high-speed synchronous modem such as a V.29-type, for example, the phase- and amplitude-shifts of the receive carrier signal would be detected. It will be appreciated that, whatever demodulation method is employed, the process can use a suitable predetermined algorithm corresponding to the demodulation method to determine the baseband receive point corresponding to the predetermined passband receive signal value. After selecting a baseband receive point (step 204), the process writes this baseband receive point to a receive sample buffer, step 205. The receive sample routine is now complete, step 206, and the process returns to step 201, where it continues with the application program. 
     FIG. 4B shows an exemplary flow diagram for a receive program 14 receive baud routine, according to the invention. This routine is designated a baud routine because it is driven by a baud-oriented timed interrupt. 
     Referring now to FIG. 4B, the process starts with the processor performing the application program, step 211. At this point, the process determines whether it is time to receive a baseband receive point, step 212. This is also known in the art as determining when it is time to receive a new baud, and the result depends on the type of modem being implemented. For example, if a 300-baud modem such as a Bell 103-type or a Bell 212-type modem is being implemented, a new baud is received every 1/300 of a second. On the other hand, if a 600-baud modem such as a V.22bis-type modem were being implemented, a new baud would be received every 1/600 of a second. If the answer to this determination is negative, the process continues with the application program, step 211. 
     If the answer to this determination is affirmative, however, the process reads the baseband receive point from the receive sample buffer, step 213. The process then goes to step 214, where it selects at least one information bit based on the baseband receive point read from the previous step, step 213. Here the number of bits read depends on the type of modem being implemented. For example, in a Bell 103-type modem, one information bit is received with each baud and, therefore, only one bit would be read if this modem were being implemented. On the other hand, two information bits are received with each baud in a V.22bis-type modem and, therefore, two bits would be read if this type of modem were being implemented. It will be appreciated that the bit values can be selected from a predetermined look-up table which essentially maps each unique baseband receive point onto a corresponding state of information bit values to be received. In the art, a graphical display of this collection of baseband receive points versus information bit values is known as a modem constellation, or eye pattern. It will be appreciated that, whatever modem type is being implemented, the process can use a suitable predetermined eye pattern or constellation corresponding to the modem type to determine the information bits corresponding to the predetermined baseband receive point. After selecting the corresponding received information bit or bits (step 214), the process then writes this information bit or bits to a receive baud buffer, step 215. The receive baud routine is now complete, step 216, and the process returns to step 211, where it continues with the application program. 
     FIG. 4C shows an exemplary flow diagram for a receive program 14 receive word routine, according to the invention. This routine is designated a word routine because it is driven by a word-generated interrupt. 
     Referring now to FIG. 4C, the process starts with the processor performing the application program, step 221. At this point, the process determines whether the receive baud buffer contains an input word, step 222. As discussed above, each word typically will consist of an integral number of 8-bit increments, or bytes. If the answer to this determination is negative, the process continues with the application program, step 221. If the answer to this determination is affirmative, however, the process reads an input word from the receive baud buffer, step 223. The process next provides this input word to the application program, step 224. This may be accomplished by any convenient providing method such as, for example, by writing the input word to a suitable predetermined buffer. The receive word routine is now complete, step 225, and the process returns to step 221, where it continues with the application program. 
     While various embodiments of a processor modem, according to the present invention, have been described hereinabove, the scope of the invention is defined by the following claims.