Abstract:
A dual port external wireless modem is disclosed. According to one embodiment, the external wireless modem receives command and control information over a primary serial port, and real-time data over a secondary serial port. The primary serial port is further configured to received packet switched data, such as short message service messages, while the secondary serial port is configured to received circuit switched data. An RF transceiver in the wireless modem modulates data and control received over the respective serial ports, preferably using a GSM protocol stack. According to an embodiment, the circuit switched and packet switched data received at the wireless modem can be simultaneously transmitted by the RF transceiver without interrupting the circuit switched data transfer, thereby avoiding a context switch and a loss of throughput.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
   This application is related to copending U.S. patent application Ser. No. 09/398,724, filed Sep. 20, 1999, entitled, “DATA TERMINAL APPARATUS”, 09/444,020, entitled, “EVENT DETECTION AND NOTIFICATION USING GSM”, and 09/444,044, entitled, “OPERATOR INDEPENDENT, TRANSPARENT WIRELESS MODEM MANAGEMENT”, both filed Nov. 19, 1999, which are all incorporated herein by reference in their entirety. 
   BACKGROUND 
   1. Field of the Invention 
   The present invention is generally related to the field of wireless modems, and more particularly to a dual port wireless modem that handles circuit switched and packet switched data. 
   2. Background of the Invention 
   In existing external wireless modems, the wireless modem is configured to be coupled with a single external device, typically through a single serial port. When communication using the wireless modem is desired, data and control signals are received over the single serial port and modulated through the wireless modem so that the data and control signals are passed over an over-the-air interface using a wireless protocol such as GSM. 
   For example,  FIG. 1  depicts a known external wireless modem  100 . The wireless modem  100  consists of a microprocessor  104 , a read only memory (“ROM”)  112 , a random access memory (“RAM”)  108 , for holding runtime variables for the microprocessor  104 , and an RF transceiver  116 , for modulating and receiving data and control signals to and from the over-the-air interface  128 . Since the wireless modem  100  is external, a single serial port  120  is provided for communicatively coupling the wireless modem  100  to external equipment, usually via a physical communication line such as a serial cable. 
   A drawback to known external wireless modems is that all communications with the terminal equipment pass through the same serial port  120 . For example, a particular terminal equipment may be desirous of communicating real-time data via a circuit switched data (hereinafter “CSD”) call to a particular piece of remote equipment. If, for some reason, the terminal equipment suddenly needs to send non real-time data to the remote equipment, the terminal equipment must somehow interleave the non real-time data with the real-time data and communicate it to the wireless modem  100 . 
   While by itself, the interleaving of non real-time data with real-time data may not cause significant problems at the terminal equipment. Problems, however, are presented at the wireless modem  100 . This is so because the wireless modem must essentially make a context switch between real-time and non real-time data transfer, as the non real-time data is usually sent via a more efficient packet-type data transfer, such as short message service (hereinafter “SMS”) messages, rather than a CSD transfer. 
   For a microprocessor with limited computational abilities and resources, the effects of a context switch on memory resources can be significant, as a decision to switch between transfer modes will cause an interruption in the real-time data flow. 
   For instance,  FIG. 2  depicts a known process for switching between transfer modes (contexts) in a wireless modem. In step  204 , the single serial port  120  is initialized. At step  208 , a CSD call is initialized, for example by the terminal equipment sending or causing an “ATDTxxxxxxx” command to be received at the wireless modem  100 . The command in step  208  will cause the wireless modem  100  to dial a telephone number (“xxxxxxx”) and connect to remote equipment via the RF transceiver  116 . The remote equipment will send back a “CONNECT xxxx” signal, which is received at the wireless modem  100  in step  212 , thereby establishing a CSD call. 
   At step  216 , data transfer over the wireless modem  100  begins—transferring data from the terminal equipment to the remote equipment. At step  220 , a periodic poll will take place to determine if a SMS command has been received at the wireless modem  100  from the terminal equipment. If an SMS command has been received, then in step  232 , the CSD transfer over the serial port  120  is interrupted, and in step  236  a SMS data transfer is initialized. In step  240 , the SMS data transfer occurs over the RF transceiver. 
   In step  244 , a test is performed to determine if the SMS data transfer is complete. If the transfer is not complete, then the process continues to step  240 . Otherwise, in step  248 , a command, for example “AT0” is received over the serial port  100  to cause the wireless modem  100  to make a context switch back to the CSD mode. Next, the process continues to step  216 , where the CSD transfer is resumed. 
   After step  220 , if there is not a SMS message, then in step  224  a test is performed to determine whether the CSD call has ended. Usually, an “ATH” command is received over the serial port  120 . If the CSD call has not ended, then processing continues to step  216 . Otherwise, processing continues to step  228 , where the CSD call is ended and processing terminates. 
   Using the wireless modem and process described above in a real-time surveillance or control environment can have drawbacks. For instance, the wireless modem may be deployed in a school bus and real-time video could be fed through the serial port  120 . An alarm condition may occur in the school bus. When the alarm condition occurs, the real-time data stream is interrupted while the alarm condition is fed over the serial port  120 , thereby causing important real-time information to be lost. 
   Moreover, it may also be desired that non real-time data be received by the wireless modem  100 , for example by way of an SMS message while a CSD call is in progress. In the wireless modem&#39;s present configuration, receipt of SMS data is not possible until the CSD call is terminated. 
   In circumstances where the real-time data transfer is critical, or it is highly undesirable to interrupt the CSD transfer, the present wireless modem  100  has significant drawbacks. Essentially, the channel between the wireless modem  100  and the terminal equipment has two mutually exclusive modes (CSD or SMS) that can drain processing resources in the wireless modem and interrupt critical real-time communications. 
   SUMMARY OF THE INVENTION 
   A dual port external wireless modem is disclosed. According to one embodiment, the wireless modem comprises microprocessor, a read only memory coupled to the microprocessor, a random access memory coupled to the microprocessor, the random access memory comprising a transmission buffer, a RF transceiver coupled to the microprocessor, the RF transceiver configured to operate with the microprocessor to transmit and receive wireless signals, and a dual port serial port coupled to the microprocessor, the dual port serial port having a primary serial port and a secondary serial port, the primary serial port configured to receive data for circuit switched data transfer, and the secondary serial port configured to receive data for packet switched data transfer. 
   According to one embodiment, the read only memory comprises a wireless protocol stack, a command parser, and a data router, wherein the command parser examines command and control signals received over the primary serial port, and the data router directs data received over the primary serial port to the transmission buffer for transmission over the RF transceiver, directs data received over the secondary serial port to the RF transceiver, and further directs data received by the RF transceiver to the primary serial port. 
   Methods for operating the dual port external wireless modem, and a computer readable medium holding the same are also disclosed. 

   
     BRIEF DESCRIPTION OF THE FIGURES 
       FIG. 1  depicts a known wireless modem. 
       FIG. 2  is a flowchart of a known processing methodology for the wireless modem. 
       FIG. 3  depicts an embodiment of a dual port wireless modem. 
       FIG. 4  is a functional block diagram of the dual port wireless modem. 
       FIG. 5  depicts a wireless protocol stack, including the functional elements of the dual port wireless modem. 
       FIG. 6  is a flowchart depicting a processing methodology for the dual port wireless modem. 
   

   DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     FIG. 3  depicts a block diagram of a dual port external wireless modem  300 . According to this embodiment, the wireless modem  300  comprises a microprocessor  304 , a RAM  308 , for storing runtime data, and a ROM  312 , for storing persistent data, such as executable object code, and a RF transceiver  316 , which is preferably configured to receive and transmit data in both a circuit switched and a packet switched mode. The RAM  308 , ROM  312 , and RF transceiver  316  are communicatively coupled to the microprocessor  304 . 
   The wireless modem  300  further comprises a dual port serial port  320 . According to one embodiment, the dual port serial port  320  is a multi-port RS-232 communications chip. Significantly, the wireless modem  300  is configured to receive, simultaneously, data over both serial ports of the dual port serial port  320 . Command and control communications between the wireless modem  300  and terminal equipment flow through a primary serial port  324  in the dual port serial port  320 . Actual data, for instance real-time data, generally flows through the secondary serial port  328  in the dual port serial port  320 . However, according to one embodiment, a limited number of commands are also allowed to flow over the secondary serial port  328 . 
   Once data is received by the wireless modem  300 , it is then routed for transmission to the RF transceiver  316  over an over-the-air interface  332 , for instance the GSM or GPRS protocols. Further details of data parsing and routing are now described with reference to  FIG. 4 , which is a functional block diagram of the dual port external wireless modem  300 . 
   A dual port serial driver  404  handles incoming transmissions from both the primary serial port  324  and the secondary serial port  328 . As data is received, it is first examined by the AT command parser  408 . If command and control signals are only passed over the primary serial port  324 , then the AT command parser  408  need only examine signals from the primary serial port  324 . However, if AT commands can also be transferred over the secondary serial port  328 , then the secondary serial port  328  is also examined. According to one embodiment, AT command parser  408  monitors only a limited number of commands on the secondary serial port  328 . For example, the AT command parser  408  can monitor for a “hang up” or “disconnect” signal. Moreover, the AT command set can be extended to include a new command “AT˜S2PORT=[value]”, where a 0 disables the secondary serial port  328  and a “1” enables the secondary serial port  328 . 
   Movement of data to a proper transmission area is effectuated by the data router  412 . The data router  412  discriminates between real-time and non real-time data, or circuit switched and packet switched data—packet switched data such as SMS. If real-time data is received, then it is passed directly on to the RF transceiver  316 . However, if non real-time data is received, such as SMS, then it is queued in a non real-time transmission buffer  416  area of RAM  308  or an equivalent area in the RF transceiver  316 . 
     FIG. 5  depicts a wireless protocol stack  500 . The base components of GSM protocol stack  500  are generally known in the art. For example, the base software components of GSM protocol stack  500  are available from various venders such as debis Systemhaus in Berlin, Germany, CONDAT Datensystem Gmblt in Hannover, Germany, and other wireless communications vendors. According to one embodiment, the GSM protocol stack  500  can be implemented in a variety of logic devices or in computer-readable code executed by an embedded microprocessor already part of the wireless modem. However, the illustrated protocol stack  500  differs from existing wireless protocol stacks in that it further comprises the AT command parser  408  and the data router  412 , which are described above. 
   Aspects of the present invention are preferably embodied in software code that comprises the AT command interface  504 . For example, the AT command interface  504  includes the AT command parser  408 , which monitors the serial ports for AT commands from the terminal equipment. Based on a decision by the AT command interface, commands can either be passed on to the MN interface  512 , or to another algorithm in the microprocessor  304 . Other aspects of the invention are embodied in the physical layer  540 , which preferably controls the RF transceiver  316  and manages the transmission buffer  416 . Incoming data, for example an SMS message, from a remote device can be processed by the physical layer  540  and in turn passed up the GSM protocol stack  500  for further processing by the AT command parser  408 . 
   A general description of the remainder of the wireless protocol stack  500  is now appropriate. The mobile network man-machine interface (MN)  512  receives data (for example from the AT command interface  504 ) and passes the data to the appropriate messaging service—e.g., a short message service (SMS)  516 , a call control service (CC)  520 , or a supplementary service (SS)  524 . A registration element  508  will provide the mobility management layer  528  with necessary information about the data and the GSM network. From each of layers  508 ,  516 ,  520  and  524  data flow is then directed to and from the mobility management layer (MM)  528 . 
   The mobility management layer  528  establishes, maintains, and releases connections with the GSM network. From the mobility management layer  528 , data and control is passed to the radio resource management layer (RR)  532 . The radio resource management layer  532  establishes physical connections over the radio interface (for example RF transceiver  120 ) for call-related signaling and traffic channels with a base station in the GSM network. 
   Connected to the radio resource management layer  532  is the physical layer (L 1 )  540 . The physical layer  540  processes call-related signaling and traffic channels directly from the radio resource layer  532 , and also processes the data sent from the data link layer (L 2 )  536 . 
     FIG. 6  depicts a detailed flowchart for the computer readable medium stored in ROM  312 , such as executable object code, that is performed by the wireless modem  300 , or a combination of the microprocessor  304 , the dual port serial port  320 , and RF transceiver  316 . Usually, just prior the execution, the computer readable medium is moved from ROM  312  to an execution memory area, such as a reserved portion of RAM  308 . 
   In step  604 , both the primary serial port  324  and the secondary serial port  328  of the dual port serial port  320  are initialized. Usually, this involves sending a command string to the serial port  320  that specifies operating parameters for the modem. For instance, the baud, number of data bits, and parity option for each serial port can be specified. Of course, these values can vary depending on the type of terminal equipment attached to the wireless modem  300 , as well as the throughput of the RF transceiver  316 . 
   In step  608 , a control signal is received on the primary serial port  324  indicating that a CSD call is to be made. At step  612 , the “ATDTxxxxxxx” command causes the wireless modem to connect to a remote device using the RF transceiver  316 . The wireless modem will usually receive a “CONNECT baud” signal from the remote device that indicates a circuit has been established. The “CONNECT baud” signal can be repeated back to the terminal equipment over either the primary or secondary serial port. 
   In step  616 , circuit switched data transfer occurs between the wireless modem and the remote device. According to an aspect of the invention, the circuit switched data is received at the wireless modem  300  over the secondary serial port  328  from the terminal equipment. In step  620 , the real-time or circuit switched data received at the dual port serial port  320  is modulated with the RF transceiver  316 , preferably using a GSM protocol. 
   While the circuit switched data transfer is occurring, the primary serial port  324  of the wireless modem  300  explicitly polls, or waits for an interrupt signal from the terminal equipment. In step  624 , it is shown that the primary serial port  324  is tested for a short message service message (or “SMS”) command. If a SMS command is received, then processing continues to step  628 , otherwise processing continues to step  640 . 
   In step  628 , the SMS command is parsed, so that the command can be separated from the SMS message data. Alternatively, a subsequent message can include the SMS data. In step  632 , the data from the SMS message is stored in a transmission buffer  416  for later transmission by the RF transceiver  316 . When the RF transceiver  316  can, it transmits the SMS data to the remote device in step  636 . It is noted that the transmission may be immediate, or there may be a short delay. According to one embodiment, the SMS data is transmitted by the RF transceiver  316  simultaneously, but over a separate frequency (or channel) than the real-time data or CSD. 
   In step  640 , a test is performed to determine whether the data transfer is complete, either for the SMS or CSD transfer. If the data transfer is complete, for example and “ATH” or “AT˜S2PORT0” command is detected by the AT command parser  408 , then the wireless modem causes a disconnect or hang-up command to be sent by the RF transceiver  316 . Otherwise, as shown in connector  644 , the process continues to step  616 , where the CSD call, which has continued uninterrupted during performance of steps  624  through  636 , is continued. 
   An advantage of the present invention is that the circuit switched data call, or a real-time transfer of data does not have to be interrupted when packet switched, or SMS data is also received by the external wireless modem (from either the terminal equipment or the external device). Second, two serial ports, instead of one, are available for sending and receiving data and commands over the RF transceiver. This has the advantage of allowing intensive real-time data monitoring over one serial port, and low bandwidth alarm triggering events to be communicated simultaneously over, or received by the second serial port. A further advantage is that more than one external device can be connected to the wireless modem. Finally, while the description of the present invention has been described with respect to outgoing traffic from the terminal equipment to the remote device. The converse, data traffic from the remote device to the terminal equipment (or just the external wireless modem), can also occur in a substantially similar fashion. These and other advantages will be apparent upon review of the detailed description and figures.