Multiplexed asynchronous serial communication systems methods and computer program products
First Claim
1. A method for providing cooperative processing in an object oriented communication system, said object oriented communication system comprising:
- an object oriented computing environment executing on a computer, said object oriented computing environment comprising;
a multiplexer server object for connecting a plurality of applications generating data for transmission over an asynchronous serial communication port to the asynchronous serial communication port, said multiplexor server object comprising;
a first communication pipe object for receiving data from a first one of said plurality of applications and routing data to the asynchronous serial communication port; and
a second communication pipe object for receiving data from a second one of said plurality of applications and routing data to the asynchronous serial communication port;
causing said first communication pipe object to execute in said object oriented computing environment to thereby perform the following steps;
receiving data from a first one of said plurality of applications;
queuing received data for routing to the asynchronous serial communication port;
determining if a selected amount of received data has been queued by one of the first or the second communication pipe objects;
generating a first packet of data for routing to the asynchronous serial communication port when the selected amount of received data has been queued; and
routing the first packet of data to the asynchronous serial communication port; and
causing said second communication pipe object to execute in said object oriented computing environment to thereby perform the following steps;
receiving data from a second one of said plurality of applications;
queuing received data for routing to the asynchronous serial communication port;
determining if the selected amount of received data has been queued by one of the first or the second communication pipe objects;
generating a second packet of data for routing to the asynchronous serial communication port when the selected amount of received data has been queued; and
routing the second packet of data to the asynchronous serial communication port.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, apparatus and program product for increasing the performance of an asynchronous serial communications port by mulitplexing a plurality of communication pipes established between the user application programs and the serial port. To the user application programs, each pipe is treated as a separate output port. A thread of code is started associated with each pipe. On receipt of data by any pipe, all of the pipes are checked to determine if a predetermined amount of data has been queued for any pipe. If so, a packet of data is created containing queued data from all pipes or null data for a pipe with no queued data. A bitmap is generated specifying which fields contain data and which contain null data. Each field is associated with a specific pipe. The packet is routed over the computers serial port to a multiplexer which reads the bitmap, unpacks the data, and routes any contained data to the output port of the multiplexer which is associated with the respective pipe. Each output port of the multiplexer is independently configurable to operate at a baud rate (or other communication parameter such as parity) which is user selectable. A multiplexer circuit is also provided.
-
Citations
33 Claims
-
1. A method for providing cooperative processing in an object oriented communication system, said object oriented communication system comprising:
-
an object oriented computing environment executing on a computer, said object oriented computing environment comprising;
a multiplexer server object for connecting a plurality of applications generating data for transmission over an asynchronous serial communication port to the asynchronous serial communication port, said multiplexor server object comprising;
a first communication pipe object for receiving data from a first one of said plurality of applications and routing data to the asynchronous serial communication port; and
a second communication pipe object for receiving data from a second one of said plurality of applications and routing data to the asynchronous serial communication port;
causing said first communication pipe object to execute in said object oriented computing environment to thereby perform the following steps;
receiving data from a first one of said plurality of applications;
queuing received data for routing to the asynchronous serial communication port;
determining if a selected amount of received data has been queued by one of the first or the second communication pipe objects;
generating a first packet of data for routing to the asynchronous serial communication port when the selected amount of received data has been queued; and
routing the first packet of data to the asynchronous serial communication port; and
causing said second communication pipe object to execute in said object oriented computing environment to thereby perform the following steps;
receiving data from a second one of said plurality of applications;
queuing received data for routing to the asynchronous serial communication port;
determining if the selected amount of received data has been queued by one of the first or the second communication pipe objects;
generating a second packet of data for routing to the asynchronous serial communication port when the selected amount of received data has been queued; and
routing the second packet of data to the asynchronous serial communication port. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
generating a bitmap field identifying associated fields of the first packet of data which contain data from an associated one of the plurality of applications and associated fields which contain null data; and
routing the bitmap field with the first packet of data routed to the multiplexer.
-
-
4. A method according to claim 3 wherein the bitmap field is routed to the multiplexer before the first packet of data.
-
5. A method according to claim 2 wherein the multiplexer server object further comprises:
-
a multiplexer control object for establishing communications settings for the plurality of output ports; and
causing said multiplexer control object to execute in said object oriented computing environment to thereby perform the following steps;
receiving communications settings for at least one of the plurality of output ports;
packetizing the received communication settings;
routing the packet of received communication settings to the multiplexer through the asynchronous serial communication port; and
configuring the at least one of the plurality of output ports responsive to the packet of received communication settings.
-
-
6. A method according to claim 5 wherein each of said plurality of output ports has an associated baud rate and wherein said configuring step comprises the step of configuring a first of said plurality of output ports to a first associated baud rate and a second of said plurality of output ports to a second associated baud rate different from said first associated baud rate.
-
7. A method according to claim 5 wherein the object oriented computing environment further comprises:
-
a user interface object for providing user input of communication settings for the plurality of output ports; and
causing said user interface object to execute in said object oriented computing environment to thereby perform the following steps;
displaying a user input display on a monitor;
receiving user specified communication settings associated with at least one of the plurality of output ports; and
providing the user specified communication settings to the multiplexer control object.
-
-
8. A method according to claim 2 wherein the multiplexer server object further comprises:
-
a read object for receiving data from the multiplexer through the asynchronous serial communication port and providing the received data to at least one of the plurality of applications; and
causing said read object to execute in said object oriented computing environment to thereby perform the following steps;
receiving a data packet from the multiplexer through the asynchronous serial communication port;
reconstructing at least one data set from the received data packet;
determining a selected one of the plurality of applications to which said data set is addressed;
routing the data set to the selected one of the plurality of applications.
-
-
9. A method according to claim 8 further comprising the following steps performed by the multiplexer:
-
receiving data from at least one of the plurality of output ports;
determining if a selected amount of data has been received from the plurality of output ports;
generating a packet of data for routing to the multiplexer server object through the asynchronous serial communication port if a selected amount of data has been received from the plurality of output ports; and
routing the packet of data to the multiplexer server object through the asynchronous serial communication port.
-
-
10. A method according to claim 9 wherein the packet of data routed to the multiplexer server object contains a field associated with each of the plurality of output ports and further comprising the following steps:
-
generating a bitmap field identifying associated fields of the packet of data routed to the multiplexer server object which contain data from an associated one of the plurality of output ports and associated fields which contain null data; and
routing the bitmap field with the packet of data routed to the multiplexer server object.
-
-
11. A method of increasing the utilization of an asynchronous serial communication port on a first computer, the method comprising the following steps:
-
intercepting a first communication directed to a first communication pipe from a first application executing on a computer;
intercepting a second communication directed to a second communication pipe, different from the first communication pipe, from a second application, different from the first application, executing on a computer;
packetizing the first and second communication to provide a multiplexed data packet;
sending the multiplexed data packet to a multiplexer over the asynchronous serial communication port, wherein the multiplexer includes a plurality of output ports;
receiving the multiplexed data packet at the multiplexer and separating out the first and second communication;
routing the first communication to a first one of the plurality of output ports for transmission at a first baud rate; and
routing the second communication to a second one of the plurality of output ports for transmission at a second baud rate. - View Dependent Claims (12, 15, 16, 17)
receiving communications settings for at least one of the plurality of output ports;
packetizing the received communication settings;
routing the packet of received communication settings to the multiplexer through the asynchronous serial communication port; and
configuring the at least one of the plurality of output ports responsive to the packet of received communication settings.
-
-
16. A method according to claim 15 wherein each of said plurality of output ports has an associated baud rate and wherein said configuring step comprises the step of configuring a first of said plurality of output ports to a first associated baud rate and a second of said plurality of output ports to a second associated baud rate different from said first associated baud rate.
-
17. A method according to claim 11 further comprising the following steps:
-
receiving a data packet from the multiplexer through the asynchronous serial communication port;
reconstructing at least one data set from the received data packet;
determining a selected one of the first or the second application to which said data set is addressed;
routing the data set to the selected one of the first or the second application.
-
-
13. A method of increasing the utilization of an asynchronous serial communication port on a first computer, the method comprising the following steps:
-
intercepting a first communication directed to a first communication pipe from a first application executing on a computer;
intercepting a second communication directed to a second communication pipe from a second application executing on a computer;
packetizing the first and second communication to provide a multiplexed data packet;
sending the multiplexed data packet to a multiplexer over the asynchronous serial communication port, wherein the multiplexer includes a plurality of output ports;
receiving the multiplexed data packet at the multiplexer and separating out the first and second communication;
routing the first communication to a first one of the plurality of output ports for transmission at a first baud rate;
routing the second communication to a second one of the plurality of output ports for transmission at a second baud rate;
wherein said packetizing step comprises the following steps;
defining a first field in the multiplexed data package associated with the first application;
defining a second field in the multiplexed data package associated with the second application;
placing data intercepted from the first application in the first field;
determining if any data has been intercepted from the second application but not yet sent to the multiplexer;
placing any data which has been intercepted from the second application but not yet sent to the multiplexer in the second field; and
generating a bitmap field in the multiplexed data package identifying the first field as containing data and the second field as containing data if any data was placed in the second field or as null data if no data was placed in the second field; and
wherein said routing the second communication step comprises the steps of;
checking the bitmap field to determine if the second field contains data; and
routing data from the second field to a second one of the plurality of output ports if the second field contains data. - View Dependent Claims (14)
-
-
18. A method of increasing the utilization of an asynchronous serial communication port on a first computer, the method comprising the following steps:
-
intercepting a first communication directed to the asynchronous serial communication port from a first application executing on a computer;
intercepting a second communication directed to the asynchronous serial communication port from a second application executing on a computer;
packetizing the first and second communication to provide a multiplexed data packet;
sending the multiplexed data packet to a multiplexer over the asynchronous serial communication port, wherein the multiplexer includes a plurality of output ports;
receiving the multiplexed data packet at the multiplexer and separating out the first and second communication;
routing the first communication to a first one of the plurality of output ports for transmission at a first baud rate;
routing the second communication to a second one of the plurality of output ports for transmission at a second baud rate;
receiving a data packet from the multiplexer through the asynchronous serial communication port;
reconstructing at least one data set from the received data packet;
determining a selected one of the first or the second application to which said data set is addressed;
routing the data set to the selected one of the first or the second application;
receiving data from at least one of the plurality of output ports;
determining if a selected amount of data has been received from the plurality of output ports;
generating a received packet of data for routing to the asynchronous serial communication port if a selected amount of data has been received from the plurality of output ports; and
routing the received packet of data through the asynchronous serial communication port. - View Dependent Claims (19)
generating a bitmap field identifying associated fields of the received packet of data which contain data from an associated one of the plurality of output ports and associated fields which contain null data; and
wherein the step of routing the received packet of data further comprises routing the bitmap field with the received packet of data.
-
-
20. An independently configurable serial communication multiplexer circuit comprising:
-
an asynchronous serial communication port;
a controller coupled to the asynchronous serial communication port, said controller coupled to a data bus;
a plurality of latches each having an input coupled to the data bus and an output;
a first multiplexer having inputs and an output which is coupled to a selected one of the first multiplexer inputs responsive to an output of at least one of the plurality of latches;
a second multiplexer having inputs and an output which is coupled to a selected one of the second multiplexer inputs responsive to an output of at least one of the plurality of latches;
a clock generator having a plurality of baud rate outputs coupled to inputs of the first multiplexer and the second multiplexer;
a first asynchronous communication adapter having a plurality of data inputs coupled to the data bus and a transmit clock input coupled to the output of the first multiplexer;
a second asynchronous communication adapter having a plurality of data inputs coupled to the data bus and a transmit clock input coupled to the output of the second multiplexer; and
wherein said controller sets outputs of said plurality of latches over the data bus to select one of the plurality of baud rate outputs as the transmit clock input of the first asynchronous communication adapter and one of the plurality of baud rate outputs as the transmit clock input to the second asynchronous communication adapter. - View Dependent Claims (21)
-
-
22. An apparatus for increasing the utilization of an asynchronous serial communication port on a first computer, the apparatus comprising:
-
means for intercepting a first communication directed to the asynchronous serial communication port from a first application executing on a computer;
means for intercepting a second communication directed to the asynchronous serial communication port from a second application executing on a computer;
means for packetizing the first and second communication to provide a multiplexed data packet;
means for sending the multiplexed data packet to a multiplexer over the asynchronous serial communication port, wherein the multiplexer includes a plurality of output ports;
means for receiving the multiplexed data packet at the multiplexer and separating out the first and second communication;
means for routing the first communication to a first one of the plurality of output ports for transmission at a first baud rate; and
means for routing the second communication to a second one of the plurality of output ports for transmission at a second baud rate. - View Dependent Claims (23, 24, 25, 26, 27, 28)
means for defining a first field in the multiplexed data package associated with the first application;
means for defining a second field in the multiplexed data package associated with the second application;
means for placing data intercepted from the first application in the first field;
means for determining if any data has been intercepted from the second application but not yet sent to the multiplexer;
means for placing any data which has been intercepted from the second application but not yet sent to the multiplexer in the second field; and
means for generating a bitmap field in the multiplexed data package identifying the first field as containing data and the second field as containing data if any data was placed in the second field or as null data if no data was placed in the second field; and
wherein said means for routing the second communication comprises;
means for checking the bitmap field to determine if the second field contains data; and
means for routing data from the second field to a second one of the plurality of output ports if the second field contains data.
-
-
26. The system of claim 23 further comprising:
-
means for receiving a data packet from the multiplexer through the asynchronous serial communication port;
means for reconstructing at least one data set from the received data packet;
means for determining a selected one of the first or the second application to which said data set is addressed; and
means for routing the data set to the selected one of the first or the second application.
-
-
27. The system of claim 26 further comprising:
-
means for receiving data from at least one of the plurality of output ports;
means for determining if a selected amount of data has been received from the plurality of output ports;
means for generating a received packet of data for routing to the asynchronous serial communication port if a selected amount of data has been received from the plurality of output ports; and
means for routing the received packet of data through the asynchronous serial communication port.
-
-
28. The computer program product of claim 23 wherein the first baud rate is different from the second baud rate.
-
29. A computer program product for increasing the utilization of an asynchronous serial communication port on a first computer, the apparatus comprising:
-
a computer-readable storage medium having computer-readable program code means embodied in said medium, said computer-readable program code means comprising;
computer-readable program means for intercepting a first communication directed to the asynchronous serial communication port from a first application executing on a computer;
computer-readable program means for intercepting a second communication directed to the asynchronous serial communication port from a second application executing on a computer;
computer-readable program means for packetizing the first and second communication to provide a multiplexed data packet;
computer-readable program means for sending the multiplexed data packet to a multiplexer over the asynchronous serial communication port, wherein the multiplexer includes a plurality of output ports;
computer-readable program means for receiving the multiplexed data packet at the multiplexer and separating out the first and second communication;
computer-readable program means for routing the first communication to a first one of the plurality of output ports for transmission at a first baud rate; and
computer-readable program means for routing the second communication to a second one of the plurality of output ports for transmission at a second baud rate. - View Dependent Claims (30, 31, 32, 33)
computer-readable program means for defining a first field in the multiplexed data package associated with the first application;
computer-readable program means for defining a second field in the multiplexed data package associated with the second application;
computer-readable program means for placing data intercepted from the first application in the first field;
computer-readable program means for determining if any data has been intercepted from the second application but not yet sent to the multiplexer;
computer-readable program means for placing any data which has been intercepted from the second application but not yet sent to the multiplexer in the second field; and
computer-readable program means for generating a bitmap field in the multiplexed data package identifying the first field as containing data and the second field as containing data if any data was placed in the second field or as null data if no data was placed in the second field; and
wherein said computer-readable program means for routing the second communication comprises;
computer-readable program means for checking the bitmap field to determine if the second field contains data; and
computer-readable program means for routing data from the second field to a second one of the plurality of output ports if the second field contains data.
-
-
32. The computer program product of claim 30 further comprising:
-
computer-readable program means for receiving a data packet from the multiplexer through the asynchronous serial communication port;
computer-readable program means for reconstructing at least one data set from the received data packet;
computer-readable program means for determining a selected one of the first or the second application to which said data set is addressed; and
computer-readable program means for routing the data set to the selected one of the first or the second application.
-
-
33. The computer program product of claim 32 further comprising:
-
computer-readable program means for receiving data from at least one of the plurality of output ports;
computer-readable program means for determining if a selected amount of data has been received from the plurality of output ports;
computer-readable program means for generating a received packet of data for routing to the asynchronous serial communication port if a selected amount of data has been received from the plurality of output ports; and
computer-readable program means for routing the received packet of data through the asynchronous serial communication port.
-
Specification