Claims
- 1. A method for multiplexing high priority data and low priority data for transmission over a communications link, the communications link having a baud rate, the communications link transferring bytes equal to Y bits, and the communications link having a byte transfer period equal to Y divided by the baud rate, the method comprising the steps of:
a. determining a high priority packet time; b. determining a maximum number of bytes transferred across the communications link in one high priority packet time by dividing the high priority packet time by the byte transfer period; c. determining a worst case number of high priority data bytes transferred over the communications link in one high priority packet time; d. subtracting the worst case number of high priority data bytes of step c from the maximum number of bytes of step b to obtain an interrupt boundary byte count; and e. multiplexing high priority data bytes and low priority data bytes, wherein the step of multiplexing comprises the substeps of:
1) if there are high priority data bytes to be transferred across the link, transmitting the high priority data bytes, concluding with a final high priority data byte; 2) if there are low priority data bytes to be transferred across the link, transmitting K low priority data bytes, K not exceeding the interrupt boundary byte count; 3) waiting V byte transfer periods, wherein V equals the interrupt boundary byte count minus K; and 4) returning to step 1).
- 2. The method of claim 1 wherein the substep of transmitting the high priority data bytes comprises the substep of transmitting voice data.
- 3. The method of claim 1 wherein the substep of transmitting the high priority data bytes comprises the substep of transmitting facsimile data.
- 4. The method of claim 1 wherein the substep of transmitting the high priority data bytes comprises the substep of transmitting video data.
- 5. The method of claim 1 wherein the substep of transmitting a number of low priority data bytes comprises the substep of transmitting asynchronous digital data.
- 6. A method for transmitting high priority data and low priority data over a communications link in a hybrid data frame of length Fn bytes, the communications link having a baud rate, the communications link transferring bytes equal to Y bits, and the communications link having a byte transfer period equal to Y divided by the baud rate, the method comprising the steps of:
a. determining a high priority packet time; b. determining a maximum number of bytes transferred across the communications link in one high priority packet time by dividing the high priority packet time by the byte transfer period; c. determining a worst case number of high priority data bytes transferred across the communications link in one high priority packet time; d. subtracting the worst case number of high priority data bytes from the maximum number of bytes to obtain an interrupt boundary byte count; and e. transmitting high priority data bytes and low priority data bytes, comprising the substeps of:
1) setting a frame length count equal to the frame length; 2) transmitting header information; 3) if there are high priority data bytes to be transferred across the link, transmitting high priority data bytes, concluding with a final high priority data byte, and decrementing the frame length count for each high priority data byte transmitted; 4) if there are low priority data bytes to be transferred across the link, transmitting K low priority data bytes, K not exceeding the interrupt boundary byte count, and decrementing the frame length count K times; 5) waiting V byte transfer periods, wherein V equals the interrupt boundary byte count minus K; and 6) repeating steps 3), 4) and 5) until the frame length count is equal to zero.
- 7. The method of claim 6, wherein the step of transmitting high priority data bytes and low priority data bytes further comprises the substep of transmitting error correction codes.
- 8. The method of claim 6, wherein the step of transmitting high priority data bytes further comprises the substep of transmitting a high priority data identification byte, and wherein the step of transmitting K low priority data bytes further comprises the substep of transmitting a low priority data identification byte.
- 9. A method for demultiplexing frames of packetized high priority data and low priority data, the low priority data packed into a hybrid frame in interrupt boundary byte count (IBBC) increments, the method comprising the steps of:
a. determining a frame length, Fn; b. setting a frame length counter to Fn; c. reading an identification byte; d. decoding the identification byte to determine whether high priority or low priority data is being received; e. if low priority data is being received, reading Y low priority data bytes and subtracting Y from the frame length counter, wherein Y is not greater than the interrupt boundary byte count; and f. if high priority data is being received: 1. determining a length of the high priority data, X; 2. reading X bytes of high priority data; 3. subtracting X from the frame length counter; and 4. if the frame length counter is a positive, nonzero number, continuing to demultiplex at step c, else terminating the demultiplex.
- 10. The method of claim 9 wherein the step of determining a frame length is performed by reading frame header information containing a frame length.
- 11. The method of claim 9 wherein the step of determining a frame length is performed by referring to a lookup table to obtain a frame length.
- 12. The method of claim 9 wherein the step of determining a length of the high priority data, X, is performed by reading header information in the identification byte of the high priority data.
- 13. The method of claim 9 wherein the step of determining a length of the high priority data, X, is performed by referring to a lookup table to obtain a high priority data frame length.
- 14. An apparatus for multiplexing low priority data and high priority data comprising:
aggregate module means for multiplexing high priority and low priority data; low priority packet module means for transceiving low priority data; low priority common memory means, connected to the low priority packet module means and the aggregate module means, for buffering low priority data transceived by the aggregate module means and the low priority packet module means; high priority packet module means for transceiving high priority data; and high priority common memory means, connected to the high priority packet module means and the aggregate module means, for buffering low priority data transceived by the aggregate module means and the high priority packet module means.
- 15. An apparatus for multiplexing low priority data and high priority data comprising:
an aggregate module for multiplexing high priority and low priority data; a low priority packet module for transceiving low priority data; a low priority common memory, connected to the low priority packet module and the aggregate module, for buffering low priority data transceived by the aggregate module and the low priority packet module; a high priority packet module for transceiving high priority data; and a high priority common memory, connected to the high priority packet module and the aggregate module, for buffering low priority data transceived by the aggregate module and the high priority packet module.
- 16. A method for multiplexing high priority data, intermediate priority data, and low priority data for transmission across a communications link, the link having a maximum bandwidth with a byte transfer period equal to an amount of time needed to transfer one byte of data over the communications link, the method comprising the steps of:
a. determining a high priority packet time; b. determining a maximum number of bytes transferred in one high priority packet time; c. determining a worst case number of high priority data bytes transferred in one high priority packet time; d. subtracting the worst case number of high priority bytes from the maximum number of bytes to obtain an interrupt boundary byte count; e. storing high priority data in a first memory, intermediate priority data in a second memory, and low priority data in a third memory; and f. multiplexing high priority data, intermediate priority data, and low priority data, wherein the step of multiplexing comprises the substeps of:
1. if there is high priority data, transmitting the high priority data, including a final high priority data byte; 2. transmitting J bytes of intermediate priority data and low priority data, wherein J is not greater than the interrupt boundary byte count; 3. waiting N byte transfer periods, wherein N equals the interrupt boundary byte count minus J; and 4. returning to step 1.
- 17. The method of claim 20 wherein step 2 further comprises the substep of transmitting all intermediate priority data bytes prior to transmitting low priority data bytes.
- 18. The method of claim 20 wherein step 2 further comprises the substep of transmitting X intermediate priority data bytes prior to transmitting low priority data bytes, wherein X is not greater than the interrupt boundary byte count.
- 19. The method of claim 20 wherein the step of storing includes the substeps of storing digital voice data in the first memory, storing synchronous digital data in the second memory, and asynchronous digital data in the third memory.
Parent Case Info
[0001] This is a continuation in part of U.S. patent application Ser. No. 08/229,958 filed Apr. 19, 1994 entitled “Data/Voice/Fax Compression Multiplexer” which is hereby incorporated by reference.
Divisions (1)
|
Number |
Date |
Country |
Parent |
08885534 |
Jun 1997 |
US |
Child |
09536309 |
Mar 2000 |
US |
Continuations (2)
|
Number |
Date |
Country |
Parent |
09536309 |
Mar 2000 |
US |
Child |
10272463 |
Oct 2002 |
US |
Parent |
08333365 |
Nov 1994 |
US |
Child |
08885534 |
Jun 1997 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
08229958 |
Apr 1994 |
US |
Child |
08333365 |
Nov 1994 |
US |