The present invention is directed to the transmission of data to and from a computer, and more particularly to a system for performing real-time signal processing of data that is serially transmitted to and from a computer.
Various devices are known for transmitting data between a computer and a remote site via wide-area telecommunications networks. One of the most widely used devices of this type is the modem, which enables data to be transmitted to and from a computer over a wide-area analog telephone network. Generally speaking, the modem includes one or more sets of registers, typically embodied in an UART or an USART, for storing bits of digital data transmitted to or from the computer, a processor for implementing modem operations, such as dialing a telephone number or answering a ringing signal, in response to commands sent from the computer and stored in the UART, and a modulator/demodulator for converting digital bits of data to be transmitted into analog signals, and vice versa. Originally, all of these features were hardwired in a separate peripheral device that could be externally connected to the computer via a serial I/O port, or internally connected to the computer""s data bus. More recently, some of the functions associated with these features, most notably the processing of commands to implement modem operations, have been removed from the hardwired configuration and incorporated into the computer itself. This approach has increased the versatility of the modem. For example, while the hardwired modem configuration had to be specifically designed for the telephone system requirements of a particular country, the later approach could enable a single product to be used in a variety of countries, each of which might have different telephone signaling requirements. Similarly, since the computer itself was handling the data to be transmitted, additional services, such as the ability to send information as a facsimile transmission, in which graphical data is processed, became feasible. However, the presence of the UART, or similar such device through which the data must flow, still limits the effective rate at which the data can be exchanged between the computer and the telephone lines.
To enhance the performance of modems, a digital signal processor (DSP) has been incorporated into its structure. In this arrangement, the modem software was designed to cooperate with the DSP to provide data thereto for processing prior to transmission or after reception over the telephone line. While the addition of the DSP provided increased capabilities in terms of the speed at which the data could be transmitted over a telephone network and the ease with which the modem could be configured, it was still limited in the types of data that could be processed. More particularly, because of the restrictions imposed by passing the data through an UART or the like, even the most modem modems are only capable of effectively transmitting data in the range of 9.6-14.4 Kb/sec. While this rate of data transfer may be useful for transmitting static information such as text files or the like, it is not suitable for many real-time applications in which the data is provided at much higher rates, such as speech or video conferencing.
Further in this regard, the modem control software had to be designed to work with the specific DSP incorporated into the computer. If a different DSP was to be used, the modem control software had to be reprogrammed to work with the new DSP.
While the analog telephone network was the only practical medium for transmitting information between geographically distributed computers for quite some time, more recently other, non-analog transmission mediums have become available. Examples of these other mediums include the integrated services digital network (ISDN), private branch exchange (PBX) telephone systems, and TI digital data links. Since information is transmitted over these mediums as digital data, conventional analog modem circuits are not suited for use with them. Thus, for example, a standard Group III facsimile machine cannot operate on a digital PBX system.
Similarly, digital signal processing systems which are designed to work with PCM-encoded analog data that is received and transmitted via a modem are likewise not suited for use with these other types of transmission mediums. While it is possible to incorporate another DSP system into a computer that can handle data transmitted via any of these digital networks, it would be more desirable to provide a single system that can process data that is received over any type of transmission medium, whether it be digital or analog. Further in this regard, it is desirable to provide a signal processing system that is not limited to one specific DSP, but rather one that can operate with any of a variety of different types of signal processors.
When personal computers communicate with one another through non-modem transport facilities, they typically operate in a burst mode. While this mode of operation enables data to be transferred at much higher rates than with modems, it is still not suitable for applications such as video or speech processing. These types of applications require isochronous data handling, i.e. data that is transmitted at a constant bit rate and that must be processed in real time. Generally speaking, therefore, it is desirable to provide a serial data transmitting and receiving system that is capable of processing real-time isochronous data.
Further in this regard, it is desirable to provide such a system that is capable of handling streams of data pertaining to different functions. For example, in a video conferencing application, speech data is transmitted at the same time as video and other graphic information. However, each of these types of data must be processed separately in real time. It is desirable, therefore, to provide a data transfer system that can handle each of two or more types of data at isochronous rates.
The present invention provides a data transmission system having a real-time data engine for processing isochronous streams of data. An interface device provides a physical and logical connection of the computer to any one or more of a variety of different types of data networks, including analog telephone, ISDN, PBX and the like. Data received at this device is presented to a serial driver, which disassembles different streams of data for presentation to appropriate data managers, such as the operating system of the host computer, a service provider or an application program. A device handler associated with the interface device sets up data paths and issues service requests. The device handler also presents data and commands from the data managers to a real-time data processing engine, that can be used for a variety of applications such as voice recognition, speech compression, and fax/data modems. This real-time engine can be shared by any application program running on the host computer.
The invention enables any arbitrary type of data, such as voice, facsimile, multimedia and the like, which is transmitted over any type of communication network, to be handled with any type of real-time engine, by abstracting the functions of each of the elements of the system from one another. This abstraction is provided through suitable interfaces that isolate the transmission medium, the data managers and the real-time engine from one another. The data is provided to the real-time engine as multiple streams of isochronous data, i.e. it is delivered as it arrives over the network without data handling delays. This feature allows more complex applications, such as speakerphones, videophones and high-speed modems to be readily implemented.
These features of the invention, as well as the advantages offered thereby, are described in greater detail hereinafter with reference to a specific embodiment illustrated in the accompanying figures.