[go: up one dir, main page]

CA2276198A1 - Advanced priority statistical multiplexing communication method - Google Patents

Advanced priority statistical multiplexing communication method Download PDF

Info

Publication number
CA2276198A1
CA2276198A1 CA002276198A CA2276198A CA2276198A1 CA 2276198 A1 CA2276198 A1 CA 2276198A1 CA 002276198 A CA002276198 A CA 002276198A CA 2276198 A CA2276198 A CA 2276198A CA 2276198 A1 CA2276198 A1 CA 2276198A1
Authority
CA
Canada
Prior art keywords
high priority
data
priority data
bytes
low priority
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002276198A
Other languages
French (fr)
Inventor
Vasant Kumar Kanchan
Harinarayana Arimilli
Ashish A. Thanawala
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Multi Tech Systems Inc
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/229,958 external-priority patent/US5682386A/en
Priority claimed from US08/333,365 external-priority patent/US5757801A/en
Application filed by Individual filed Critical Individual
Publication of CA2276198A1 publication Critical patent/CA2276198A1/en
Abandoned legal-status Critical Current

Links

Landscapes

  • Facsimiles In General (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Time-Division Multiplex Systems (AREA)

Abstract

A data multiplexing network is described which multiplexes a plurality of asynchronous data channels with an asynchronous data stream representing compressed voice signals and/or facsimile signals onto a single synchronous data packet stream. The single synchronous data packet stream is then transmitted by a high speed statistical multiplexer over a composite link to a second site using a modified high-level synchronous data link control protocol with an overlay of an advanced priority statistical multiplexing algorithm. The asynchronous data channels and the compressed voice channel and/or facsimile signals are demultiplexed and reconstructed for sending to other asynchronous computer terminals and to a standard telephone or facsimile analog port at the second site, respectively. PBX trunk interfaces are also provided to allow PBX's to share the composite link between sites. Communication between the first site by voice or facsimile and the second site is transparent to the users. The multiplexer efficiently allocates the bandwidth of the composite link by detecting silence periods in the voice signals and suppressing the sending of the voice information to preserve bandwidth. An advanced priority statistical multiplexer is also described which dynamically allocates composite link bandwidth to both time-sensitive and non-time-sensitive data to maximize data throughout efficiency and quality while simultaneously reducing multiplexer processing overhead.

Description

ADVA~1~D PRIatITY ~STI(~L ~TIPL~LaIG
OQ~~IQ,TIQ~1 Field of the Im~ention The present invention relates to data communication multiples and in particular to automatic data bandwidth allocation in ' communication multiplexeis which multiplex data, facsimile and compressed voice over a single bite link.
Data multiplexers in the telecommunications field are used to combine several asyr>chronous and synchronous data commtu~ication signals from individual data terminal equit (DTE) sauces such as ~
I S tennir~als or personal computers (PC's) ~to a single composite link. The individual asynctnnnous and synchronous signals fiom the PC's are ~
to the multiplexes channel inputs and converted into a single signal called the composite signal which is the sent over a single analog or digital link called the composite link. Of course, the composite link may be a dedicated telephone line, a leased line, or a single private wire.
The data multiplexes cmnbines the c~nel signals linen individual PCs into a composite signal by using one of a variety of techniques such as frequency division multiplexing, time divisiml nwltiplexing and statistical time division multiplexing. Frequency division multiplea~rs assign separate fi~equeaxies to each signal and oombir~e the ties onto the single cx~posite link. Tune divisi~ multiplexers assign a time slice of a single carrier to each of the channels being combined. Statistical time division multiplexers are an adaptati~ of time division ~ltipleacers in which only those chnrlels actually sending data get a slice of time. This results in a mere e~xcient use of the composite link.
Typically, a data multiplexes is used ~ an eil'lcient alternative to traditional data commwiications in which a single cl>armel uses a single telephone line link. By combining a plurality of asynci'amnels into a composite link,, fewer telephone lines or leased lines and less equip~nt is used to transfer the data. This is especially cost effective when a four wire "leased" line is used to connect a pair of synchronous modems. This type of private line offers a agree of security that public dial-up telephone lines cannot math. In addition, the superior error crnrection of a synchronous multiplexes network is preferred over the single telephone line asynus connections. Better yet, the use of a digital Iine with a DSU (Digital Service Unit) connection is more reliable and eaor free than analog.
Figure 1 shows a typical arrant for a prior art conne~on of a plurality of PC's at building A 101 and a computer system at building B
102. The computer system at building B may be ~ computers (PC's) 103 such as those shown in building A or any variety of computer equipment devices. Traditional dial-up tell links IOSa, IOSb, lOSc through lOSn are used between the plurality of PC's in building A 101 and the plurality of data te'rmir>al equipment (DTE) devices of building B such as a VAX
computer 106. Each asynchronous link, therefore, requires its own dial-up link lOSa, IOSb, IOSc through lOSn , which is in many cases not cost eiTective. 'Ihe connections may be between two sites, or multiple sites may be connected.
Figure Z shows a prior art data multiplexes sd~ne in which a plurality of PCs 203 at budding "A" 201 are multiplexed using a data multiplexes and synclmonous modem 207 to tiansinit the ir~forrr~ion over a single tell link 205 to building "B" 202. The signals are then detrnxltiplexed by a similar multiplexor/rrn 208 and tnu>sinitted to the DTE of building "B" 202, which for illustrative purposes is shovm as a VAX
oorr~xrter 206.
In ge~al, Figure 2 de~ibes a data multiplexes 207 and, in particular, a device manufechued by tl~ assignee of the pre~nt invention called the MultiMux (model 900, 1600 or 3200) pnxfiom Multi-Tech Systems, Inc. of Mounds View, Mnnesota. The product allows for up to n-RS232 connecxions to local PC's 203) dumb teaminals, host cogs such as a DEC VAX 206, or other devices which communicate via async~onous connection. In one product emrironment, n equals eight where eight PCs or other asynchronous devices can be atta~ed to eight RS232 parts. The composite link is typically handled through an proprietary protocol with data rates up to 64 kilobytes per second Not shown is a command port for menu driven control of the operational settings of the data multiplexer.
Cions from one site to site over a composite link S using a dedicated line is an e~cient use of the line resources, however additional line co~mections are still typically rberg the two sites ~
more sites for traditional telephone voice or facsimile cotmections between the sites. There is a need in the art, therefore, to combine compressed voice grade telephone signals with data signals and facsimile signals and transmit all 10 over a composite link to further increase the efficient use of a single telephone Iine connection. There is yet a fiuther need in the art to combine voice grade telephone signals with both syndmonous and asynchronous data signals for transmission over a composite link for enhanced efficiency of a single telephone line connection.

The present inv~tion solves the afo~neaitioned deficiencies of the prior rot and solves other problans that will be uctood and appreciated by those skilled in the art upon reading arid unde,~ding the 20 present specific~ion. The sent invention descaibes a data multiplexing network which combines a plurality of asynchronous and sync~ous data cl~nnels with an asyncln~onous data stream ruing compressed voice signals and/or facsimile signals onto a single synchronous data stream.
The single synclaonous data packet stream is then transmitted by a high speed 25 statistical multiplexer over a composite link to a second site using a n>odified high-level synclmonous dada link corrirol protocol with an overlay of an advancxd priority statistical multiplexing algorithm. The asynd~nousl syr~c~onous data channels and the ~ voice d~nel and/ facsimile signals me demultiplexed and reconstruc,~ted at the second site for sending to 30 other asynchronous and synchronous data terminal equip and to a standard telephone or facsimile analog port or PBX int~e, respectively.
Communication between the first site by voice or facsimile and the second site is transparent to the users.
The total bandwidth of the composite link communicating between sites may be instantaneously allocated to high ~iority data (time 5 sensitive) and low priority data (non-time-sensitive) based on instantaneous system demands. In voice over data communications it is possible to greatly reduce bandwidth allocated to the high priority voice packet information by elirninating transmissions of repeated silent packets. The voice detection algorithm tells the data processor that the packet is empty which is 10 ~tative of sihce. The data then does not send the packet, but instead sends a flag to the other side of the c~poeite link to indicate no voice is. being sent. In the event of silence, the maacimoum low ~iority data (asynchronou<s or syndnonous data) sire is dynmnically ganged based on the use of the voice channel. If there is a lot of silea~ce, or the voice 15 channel is not active at all, then the rnaadmum low priority data packet sire can grow to be quite.large providing a larger asyngr~OUS and synchmnOUs data chonel ~. An advanced priority kcal multiplexes maximum data throughput cp~ality and efl~ciency while simully reducing multiplexes pmooessing overhead.

In the drawings, where like nwri~als describe like compone~
throug#mut the several views, Figure 1 is a drawing of a prior art cone between 25 building A and building B using traditional dial~p tele links by modern;
Figure 2 is a prior art desaiptiorl of the vonnecti~ betuNam building A and building B using a statistical multiplexes link;
Figure 3 is a general block diagram showing the ~
earlbodiira'nt of the print invention which combines both telephone and 30 fa~imile inforn~ati~ through a number of possible alt~ve traces with digital data i~armation for transmission to and dearnxltiplexing at a remote site;

Figure 4A (two sheets of drawings) is a detailed block diagram showing the use of the multiplexor 300 of the present invention to combines both telephone (voice), facsimile ttaough a variety of connecxions with data over a single composite link to a remote site;
5 Figure 4B is a detailed block diagram showing the divisi~ of major components of the datalvoioelfax multiplex~r of Figure 4A including the FXS, FXO and E&M into;
Figure SA is a diagram showing a first ~e of the prefe<red cormecti~s of the present imrention which multiplexes voice telephone, 10 facsimile information and digital data information for tca~nission to and demultiplexing at a rerr~ote site for connexion to other DTE devices and for ion to remote voice telephone and facsimile equipment;
Figure SB is a diagram showing a sod one of the preferred connections of the present invention which multiplexes voice telephone, 15 facsimile infon~ation and digital data information for transmission to and demultiplexing at a reanote site far connection to other DATE devices and to a remaxe PBX;
Figure SC is a diagram showing a third one of the pref8rad connections of the present anion which multiplexes voice telephone, 20 facsimile information and digital data ion for tra~missio~n to and derrniltiplexing at a rate site for fan to att~et D1'E devices and to remote voice telephone and facsimile equqxnent to rem~e PBS
Figure SD is a dia~n sl'~ving a fa~edme of die ~
dons of the pit im~tion which multiplexes voice teleplmne and 25 facsimile ~i~ through a local PBX with local digital data information for transmissi~ to and demultiplexing at a remote site for coru~c~i~ to other DTE devices and to remote PBX for remote voice telephone and facsimile ~P
Figures 6A, 6B and 6C are detailed block diagrams of the 30 asyncln~~ous c~nel cards, the aggregare cards and tt~ voice/ fax cads, respectively, of the multiplexes shown in Figure 4B;
Figures 7A-7I, 8A 8I, 9A-9I and l0A l0I are detailed electrical schematic diagrarr~s of the voi~lfax card of Figure 6C;
Figure 11 is a signal flow diagram of the speech compression al~~
5 Figure 12A is a d~ailed fiuxti~ flow diagram of the speech compression algorithm;
Figure 12B is a signal flow diagram of tlx speech comp~sion algorithm showing details of the cod book synthesis;
Figure 13 is a detailed fimction flow diagram of the speech 10 decompression algorithm;
Figtme 14 is a flow d~att of the modified HDLC tn~nsmission packet protocol using priority statistical multiplexing of the data/voiceJfax multiplexes of Figures 6A, 6B and 6C;
Figure 15 shows a Link Request Frame used to initiate and 15 establish a carmection bets multiplexers using modified HDLC with Advanced Priority Staristical Multiplexing, Figure 16 shows a Voic~/Fax Data Frame used to transmit voice/fax channel data;
Figure 17 shows a Network Control Frame used in a 20 networking emrii~nn~t;
Figure 18 shoves an AsynC~u~l Data Frame used to transmit asynus ct>annel data;
Figure 19 shows an AcknowlFra~r~ used to aclmowledge corrnr~nic~tions betweea~ multiplexea~s;
25 Figure 20A shows one einbodimeart ~of a two priority level multiplex;
Figure 20B shows a portion of the multiplexed high priority and low priority data tra~nittsd by one anbodiment of a two ~iority level ~ar~ed priority statistical multiplexes, 30 Figure 21 is an example of multiplexing two priority levels of data in a hybrid flame;
Figure 22 is another example of multiplexing two priority levels of data in a hybrid flame; and - ' Figure 23 shows one embodiment of a three priority level multiplex.
In the following Detailed Descxi~ion of the Preferred Embodiment, reference is made to the acconying drawings which form a part hereof and in which is shown by way of illustration specific embodiments in which the invention may be practiced. These embodiments are des~ibed in sufficient c~tail to enable these skilled in the art to practice and use the invention, and it is to be understood that other embodiments rr~y be utilized and that elearical, logical, and strucxlusl changes may be made without departing fiom the spirit and the scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense and the scope of the pit invention is dehr~ed by the appended claims.
Figure 3 is a :block diagram showing a plurality of conneckion ZO combinations far the preferred embodiment of the preset ion which is a co~rnunication system in which a data/voioe/fax multiplexer 300a is configured to take voice ir~foi~ fmm tell eqwfacsimile information from facsimile machines and asynchronous and syndnonous data from data tertr~inal equiprrie~t (DTE) devices and combine this info and data for transmission over a single bite cornmunicatians link.
I~tafvoice/fan muhiplexers 300a and 300b (generally to as datalvoice/fax multiplexes 300) are ic~rtically configured for multiplexing and demultiplexing this data and infortnabon. The result of this comrection allows telephone, facsimile and data communications between sites "A" and "B~~ in a merlwd of commvmic~tion which appears to users at both sites to be simultaneous arxi traps g The present invention shown in Figure 3 connects a plurality of data terminal equipment (DTE) devices such as computers, terminals, printers, modems, etc., through asynchronous and synclmonous cl~u~els to the data/voicelfax multiplexes 300 at site "A". Also, telephone equipment such as 5 telephone desk sets, PBX equipment and facsimile (fax) equiprrmt are also connected to data/voic~/fax multiplexes 300. The datalvoice/fax multiplexes 300 is configured to take analog voice channel inputs fiom telepl~ne equipm~t through specially configured voice cannel interfaces to be digitized, cod and encoded into a special packet protocol using a voice 10 compression algorithm. Multiplexes 300 is also configured to connect to fax equipment to receive and derr~odulate the fax picture data to place the decoded picture data into the special packet protocol. The asyrichronous/synctuonous data received by multiplexes 300 fmm the DTE devices is combined with packetized picau~e data and packetized compressed voice infom~ion for 15 multiplexing and synchronous transmission over the composite link.
At site "B", multiplexes 300b S identically to multiplexes 300a at Site "A" to multiplex outgoing data, voice os feat infon~tion and to danultiplex incoming data fmm site "A". Each multiplexes 300 to compress or decompress the. digitized voice data fiom telephone equipment 20 using a voice Vision algorithm described more fully below.
Multiplexers 300 also to modulate and demodulate the fax picture data so that all three forms of data (DTE data, con.~x~essed voice data and facsimile picture data) are combined using a special packet prota~ol for t~mission over the composite link, and synchronous data, such as LAN signals are 25 rriodulated and derrmdulated as well. The connposite link 313 rrriay be an analog line such as a public telephone line using syridmOnous modems, a private Leased line using synchronous moderns or a digital Line using DSU
(Digital Service Units).
30 I~ti~t As shown in Figure 4, the pre~t inventiarl combines a plurality of asynchronous data channels 302s~-302n, which in marry cases are RS232 interfaces 303a through 303n, along with a data packet stream of compressed voice or facsimile information into a single data stream. The single packetized data stream is transmitted using synchronous modean 314 over a single telephone line 315 to a remote site (Site "B"). As described 5 more fully below, the composite link 313 may be selected to be an analog line such as a ~blic teleph~ line using syn~u~Onous modes, a private leased line using synchronous moc~ms or a digital line using DStJ (Digital Service Units). Figure 4 shoves only one such composite link implementation which is a public tele~one line 315 using synchronous modems 314.
10 As shown in Figure 4, the tic elements at the local site (Site "A") conned to multiplexes 300a are terminals or PCs 301~301n which are connected to dimv~el ports 302~302n which in turn to RS232 interfaces 303~303n. The charuiel ports 302a-302n provide aces to data buffers 304a-304n cmmolled by microp~ncwsor 306 which assembles the c~ta 15 packets for the data psor 318. 'Ihe combined data are connected to the a line 31.5 by synclmonous modem 314 for transmissi~ at high speeds over the dedicated phone line 315.
Asynchronous data fiom the individual PCs cxa~ain stmt and stop flags. 'Ihe asyn~r~On~ data is collected firm the individual PC's and is 20 assembled into syncrmxious data pack, each with a head and a trailer.
Typically, 85% to 90% of an asyncinrn~ line is n~ usod efficiexitly since the line is not carrying any data most of the time. By using a statistical multiplexes 314, the sporadic data activity of severRl individual GIs 302x-302n ~ to PC's 301a-301n can be combined onto a single line 25 315 to make more e~cieait use of that lire. The mianpmoessar statistically multiplexes and collects the asynchronous data and padaeti~s it into synchronous deals packets for transmission.
Syndnnnous data tiransmissions also gain e~cie~ncy over asynchronous data trransmissions by reducing frarniag wad. By way of 30 example of the data transmission e~ciency gain, asynd~ou's data is by definition foxed by g each c~rac~r with a start and stop bit. This process can acxotuit to up to on~third of the bits in a single fic~nsmission on an asynchronous link. In cormast to this, synchronous data is transmitted in a packet that first contains a header (which contains destination address), followed by a block of data chaiact~s and followed by trailer information (such as error checking cads, checks sums, etc.). Since the packet is 5 ate, a statistical multiplexes can tlx Wicket in any order with the other asyn~ data based ~ demand and use of the asynchronous data lines.
Data firm the asynchronous cl~els 302a-202n cormected to the PC's 301~301n is sent to the microprocessor for statistical multiplexing 10 after first being buffered through buffet' 305 and collected by internal micropmocessor 306. The micropro~or 306 assembles the data into the synchronous data stream i~ the form of sync data packets which are framed by the address and error correcting data and sent to data processor 318 for multiplexing with voice and fax data packets for transmission over the 15 synchronous composite link.
The composite link 315 may be a digital or analog network link, a simple analog leased line, a four-wire leased line ~ private line.
Communication over the cite link is d>nxigh a special syncln~onous modems operating typically.-at 300 to 19.2kbps, 38.4kbps or DSU's (Digital 20 Service Units) operating at 9600 to in of 256Kbps. The manat and cool format of the data fitted over the composite link is described more fully below. 'Ibis format is similar to the high-level sync~n~onous data link control format (I~LC) used for intea modern ar DStJ cornrmnicaction. A
proprietary rr~dified form of the HI)LC is used with the preferred 25 embodiment of the print invention which is called Modified HI~LC or N~LC. MEmLC is used in combinaotian with an Advanced Priority Statistical Multiplexing (APSM) algorithm to achieve a highly e~cient use of the bite link.

Figure 4B is a block diagram of a singly datalvoice/fax multiplexes 300 with the circuits shown divided Wing to the physical implementation on multiple cards. Those skilled in the art will readily recognize that the physical implementation of the present invention need not follow the physical partitioning exemplified here. The multiplexer 300 uses statistical time division multiplexing to trac~nit data, voice mid facsimile data 5 in a fashion that appears simulto the user at each er~d. In the illustrated embodiment of the present invention, two eight-channel cards 401a and 401b are included to provide a total of sixteen RS232 asynchronous ports for connection to PC's, mainfi~ne corr>puters, and other DTE devices, although as shown below, more clnar>nel cards may be added to 10 extend the numbs of asynchrrnious channels serviced. In the preferred impleman, 32 asynchronous charmels are interfaced using four 8-charmel cards: The charuiels are buffed and connected to the host or aggregate card 400 of the multiplexer 300 for multiplexing with packetized voice or facsimile information from Voice Channel Equit (VCE) Channel 1 circuit 308 or 15 VCE Channel 2 circuit 309 (both VCE c~nnels implem~ted on a single card).
Those skilled in the art will readily recognize that a variable number of asynchronous RS232 port cards mid a variable number of voice or facsimile irn~fa~ cards nay be combined in tl~ pref~d embodiment of the 20 present invention without limiting the scope of the irmenaon. Thus, the design of the data/voioelfaJC multiplexor 300 is modular to allow the addition of cards to expand the capability of the system In the prefezred impleme~ation slxmm in Figure 4B, two VCE ~xl circuits 308 and 309 on a single card are used to seazd/reoeive fa~imile or analog voice 25 information oorn~ions for packetizing and transmission over the composite link lines 313a and 313b. As pmt of the modular design, the preferred implemea~tation of data voioelfax/multiplexor 300 is shown with two dedicated lines 313a and 313b ~re~ed to parts 403a and 403b respectively. Netvvork ports 403a and 403b each -intea~face to she lines using dedicated 30 syn~manous modems 314 for analog lines or to DSU's (Data Service Units) for digital lines.

The facsimile information from a fax ~ is received as a telephone connection on VCE channel 1 circuit 308 or VCE channel 2 circuit 309. The facsimile information is taken off the analog carrier by demodulating the carrier so that the picaae or pixel padoets are recovered.
The pic,~a~e or pixel packs are tt>en passed ttdual post RAM 307 to be received by the data processor 318. The data processor 318 combine the facsimile or pixel packs with the synchnmous data received firm the asynchronous data channels 401x-401b for statistical multiplexing and transmission over one of the composite link lines 313a or 313b through network ports 403a or 403b, respectively.
In addition, or alteanatively, tell equip connected to either VCE channel 1 circuit 308 or VCE channel 2 circuit 309 will receive analog voice information, digitize the voice ion, oomp~s and encode the digitized voice information into packets and load the into dual post RAM ('Random Access Merrxx~y) 307 for receipt by tile data processor 318. These compressed voice packets are then statistically multiplexed with the facsimile pict~a~e padcd~s and/or the a~yrrGht~~s data fiom asynchronous cannel cads 401a and 401b far multiplexed tiransmission over the corr~site link lines 313a or 313b. The packs are collected and tra~mitted over the telephone line using a ~optietary syn~Onous data link format which, for ~rcpo~ of the presort disa~ssi~, is described as a modified high speed data link control or PLC using a prc~rietmy advanced priority statistical multiplexing algorithm described arore fully below.
The VCE channel 1 circuit 308 and VCE dal 2 circuit 309 of Figure 4B are identical circuits which are capable of operating in parallel to transmit and receive signals to and from telepl»es and facsimile machines.
Illushated in Figure 4B for VCE cel 1 circuit 308 and VCE chm~t~el 2 circuit 309 are ttu~ee types of telephone line interfaces labeled FXS, FXO, and F~BcM. The FxS aa~nym stands for Foreign Exchange Static. The FxS

interface mimics the subscriber-side of a standard tip and ring two-wire telephone connection either as a loop or a ground start configuration. The FXO acronym stands for Foreign Exchange OBice. The FXO interface mimics the central office or provider-side of a standard tip and ring two-wire S telephone oonnecti~. The 1.,&M acronym was historically desig<tated in tell circuit diagrams as the "e" in "received" arui the "m" in "tn~rnit"
for trunk signalling. The E&M inte,~ce mimics a typical PBX tnmk interface.
As shown in more detail in Figure 6C, each voice charnel card 10 is capable of handling the three into: FXS, FXO and E&M to provide a wide variety of oonne~ivity for interfacing to different types of teleph~e equipment. Four of these types of connections are illust~ed in Figures SA
though SD.
As shown in Figure SA, a telephone oT facsimile machine may 15 be connected to the FXS interface at Site "A", which will to this equipment as though ft were corned to the subscriber side of a standard tip and ring two-wire analog telephorbe connection. The F3~S crora~ion on VCE
channel 1 circuit 308 or VCE channel 2 circuit 309 shown in Figures 4A and 4B would appear to be a telephone central office (CO) to this teleph~e 20 equiprn~t (or a PBX mimic of a CO). Thus, if a user picked up the handset of a stand telephone coed to the FXS interlace at Site "A" of Figure SA, the telephone o~r fax machine at site "B" would ring.
A PBX may be ~ to the >~'XO interface on VCE
l 1 circuit 308 or VCE d~nnel 2 circuit 308 shown in Figures 4A and 25 4B. Referring to Figure SB, the PBX at site "B" is at~hed to the FXO
interface of the multiplexer 300b. The PBX at site "B" will see the multiplex~er FXO ~ as a piece of telephone equip responding to the PBX c~rmerxion. A telephone or fax mrudzine at site "A" is cornzocted to the FxS into of multiplexer 300a but will appear to be c~nected to the 30 station ion of the PBX at site "B". The telepl~e or f~c machine at site "A" will then be able to dial any extension serviced by the PBX at site "B" or dial out to the local Public Switched Telephones Netv~orlc (PSTI~

from the PBX The telephone or fax equipment at site "A" appears to be directly connected to the PBX at site "B".
A PBX trunk inte~Ce may also be c~rtected to the E&M
interface on VCE channel 1 circuit 308 or VCE X12 circuit 308 shown 5 in Figures 4A and 4B. Referring to Figure SC, the tnmk int~oe of the PBX
at site "B" is attached to the E&M inte~e of the muldplexer 300b. The PBX at site "B" will see the ma~ltiplexer E&M interface as a trunk telephone line responding to the PBX connection. A telephone or fax machine at site "A" is connected to the FXS interface of muldplexer 300a but will appear to 10 be connected to the PBX at site "B" through the trunk inte~e. The telephone or fax machine at site "A" will then be able to dial any extension serviced by the PBX at site "B" or dial out to the local Public Switched Telephones Network (PS'fI~ firm the PBX The telephone ~ fax equipment at site "A" appears to be directly oonr~ected to the PBX at site "B". The 15 telephone or fax equipment serviced by the PBX at site "B" can access the teleptlane or fax equipment at site "A" by calling tlx ~propri~aot~ee tnmk numbes~ for site "A".
A PBX trunk interface of PBX equipment at bath sites "A" and "B" may be connected to tt>e E&M inte~oe on VCE duel 1 circuit 308 or 20 VCE chapel 2 circuit 308 shown in Figures 4A and 4B. R~cfemng to Figure SD, a tnmk ~ of the PBX at site "A" is to the E&M
of the multiplexer 30~ and a tnmk iri~aoe of tl~ PBX at site "B" is d to the E&M inte'rfaoe of the multipleacer 300b. The PBX at site "A"
will see the multiplexer E&M interface ~ a trunk tele~ne line rending 25 to the PBX corn~ection and the PBX at site "B" will see the multiplexes E&M
inters as a trunk telephone line x~sponding to the PBX ion. Both PBxs will see the other PBX as a direct cxmnecrian through a tnmk line.
The telephone or fax machine at site "A" will tlxn be able to dial airy extension savic~d by the PBX at site "B" or dial out to the local Public 30 Switched Telephones Network (PSTN) from the PBX at site "B" Similarly, the telephone or fax machine at site "B" will the be able to dial arty extension serviced by the PBX at site "A" or dial out to the local Public Switched Telephones Network (PSTI~ from the PBX at site "A"
5 Figure 6A is a detailed block diagrams of the asynchronous channel cue. As described above, the present system is ~ in its design to allow a variable number of asynchronous d~nnel ~. Thus, Figure 6A such channel boards 600a, 600b, 600c, 6004, each cable of collecting asynchronous data from eight RS 232 ~ for a total of 32 10 RS 232 ~,hronous into.
Each ctrarmel board 600a, 600b, 600c, 6004, is identical in design and commonly referenced as chcmel board 600. Each charnzel board 600 is controlled by a chnnel ~ 306 to collect and distribute asynchronous data to and from the eight channels through UO int~fa~oes 602x, 15 602b, 602c, 602d, the 1/0 ink communicate with cd~nnel processor 306 via a bus to share a data path Charnel prooessar 306 utilises a local RAM m~ra~y 604. for sting the ion and ooutrol programs. The asynclmonous data collected or the asynchronous data to be distributed is transferred to and fiom the' aggregate card or board 400 of figure 6B al~g 20 charnzel deals bus 605. The channel data bus 605 is continued on Figure 6B
through conne~cxion point A.
In an alteanate embodiment of the pre~nt invention, the channel processor 306 can cod the asyn~ data using a cion algorithm such as the algarithm used in tl~ CCITT V.42b is 25 stmidard. Also, the cannel boards 600x, 600b, 600c, ~ maY ~
reccive syndmor~us data for multiplexing over the c;omp~ite link.
Aggregate card 400 of Figure 4B is shown in greeter derail in 30 the block diagram of Figure 6B. A data ~ 318 controls the inteanal operation of aggregate card 400 and perf~s the functions of collecting asynchronous data from bus 605, collecting voice and fax data packets from interface 607, and multiplexing and framing the various data packexs and call signalling packets into synchronous data packets. Data processor 318 in the preferred embodiment is a 2180 microprocessor. A RAM mem~y 611 on internal bus 608 supports data ~ 318 to store c~mol programs and to buffer packet info~mtion received from the voioelfax bond 402 via connection 607. The synchronous data packets are sent from data processor 318 along internal bus 608 to a serial comrrnu~ic~tions holler 609. Serial communications controller 609 operate ands the corntrol of the data processor 318 via control lines separate from the internal bus 608. The synchronous data stream may be transmitted via a variety of paths through serial communicxitions controller 609 as comp~ite links. F.xrett~al syncdmonous modems 314a and 314b provide n~dem communications over active two-wire or four wire leased lines or an alternative corrnrn~nication path may be established via DSU (Digital Service Units) 610a and 610b to digital data n~works.
Data prooessar 318 is urxie< carrirol of oonunand ~ 612 which supports a local conn~on to a status and coritnol PC
613 and a rerr~te c~rnxxtion to the status and corrirol PC at the remote site through dial-up modem 615=for coaa~dination of configucati~ information and operating mss. The command processor maintains the c~nfigurati~
information and operating parameters in a non-volatile EPROM memory 614.
A dual channel voice/fax card 402 is shown in the c~tailed block diagram of Figure 6C. Voice Chancel Eqtrint (VCE) Channel 1 circuit 402a and VCE Channel 2 circuit 402b of Figure 5 are implaon a single card 402 shown in Figure 6C. The local incoming analog voice information or fax carrier is revived on the FX5 irn. 'Ihe remote reconstructed analog voice information or fax c~trier is produced locally on t3~e FXO ~. The PBX trunk signalling is produced on the E&M
into.

The incoming analog voice information or fax carrier is received on the FXS interface 624a and 624b and cometted fiom analog information to digital samples by analog to digital converters 622a or 622b, respectively. The digital samples are passed to digital signal processor 620 which either codes the fax carrier ion if feat infam~ion is detected or compresses the voice data if voice infrnmation was detrecxed. The voice compression algorithms are described more fully below. The compressed voice data is placed in packets by the digital signal processor 620 and passed to the data processor 318 of Figure 6B in via interface 607 through connection point B. The fax picture data is similarly paaketi~ed by the digital signal processor 620 and passed to the data ~ 318 of Figure 6B.
Figures 7A 7I, 8A 8I, 9A 9I and l0A l0I are detailed electrical 1S ~c diagrams of the circuits depicted in block diagram form in Figures 6C. In Figure 7A, the DSP 56002 cira~it U14 corresponds to the digital signal poor (DSP) 620 of Figum 6C which fiuxtions to s and decompress digiti~od voice signals and har~le the call progc~ess signals. 'Ihe call progress signalling establishes the calls before tl~ voice com~ession or decompression starts through the FXS, FXO and F.,&M irn. DSP 56002 also functions to detect the fax tones and perform fax modulation and c~nodulation and to perform far-end echo-~ncellation in the digital dorrmin.
DSP 56002 circuit U14 contirols the FxS, FXO and F.&M
into to handle the call progress via the data bus DO-D23 through buffer circuits U2 and U3 for c~armel 1 and channel 2, respe~vely. For example, for the FXS interlace, the DSP 56002 cirwit U14 operates to oor~rol the ring of the telephone and detect the off hoc of the telephone. For the FXO
int~faOe, DSP 56002 circuit U14 op~tes to detect the ring firnn the PBX
and returns an off hook signal to the station side of the PBX. For the E&M
ir~te~Ce, DSP 56002 circuit U 14 to corny to the trunk of the PBX
to prirriarily carol the &lead and M lead for trunk sig«alling. Integrated circuit Ul is a buffer circuit used to contml the status indicator LED's shown in Figure 7B.
As described above, channel 1 and channel 2 of the voioe/fax board are identical and con~.spond to Voice Channel Equipment (VCE) 5 Channel 1 circuit 402a or VCE Channel 2 circuit 402b of Figure 5. Only one channel circuit is shown in the electrical schematic diag<ams of Figures IOA
and lOB and the control signal labels shown in the electrical schematic diagram of Figure 7B mate by placing a "B" in front of any control signal label to indicate channel 1. For example, the signal E&ME of the electrical 10 schematic diagram of Figure 7B matches the signal F,8rME of the electrical schematic diagram of Figure l0A for channel 2 and the signal BEBrME of the elearical schematic diagram of Figure 7B matches the signal E&ME of the elearical schematic diagram of Figure l0A for channel 1. In Figures IOA
and l OB, the FXS, FXO and E&M connections for the voicelfax card 402 are 15 shown to the right of Figure lOB. The E&M tnulk lire connector JS handles both two-wire and four-wire into.
Refemng to Figures 8A and 8B, the dual port RAM memory U10 ca~responds to the dual port RAM merry 307 of Figures 6C, S and 4.
Dual port RAM 307 is used to transfer the voice and fax paclo~s to and from 20 the command ~xooessor 612 of Figure 6B. SRAM cira~s U5, U6 and U7 in tlx~ upper pairs of Figure 8A and 8B corresporai to the RAM y 618 of Figure 6C. This m~nory contains tlx operating prog~ms for DSP U14 of Figure 7A (ca~sponding to I3SP 620 of Figuire 6C). DSP U14 executes the pirogram code from SRAM memory circuits U5, U6 and U7 but the code is 25 partly stored in nonvolatile EPROM miry 619 of Figure bC
corresponding to EPROM circuits U8 and U69 of Figure 8B. The code executes much faster firm the RAM memory 618 so the opting program code is loaded from the EPROM 618 to the RAM 619 upon pov~er up of the system.
30 Referring to Figures 9A and 9B, connector Jl is the interlace 607 with the main aggregate board of Figure 6B. The operational amplifiers in the top portion of Figure 9B are used f~ gain confirol and level control of the analog voice signals. Not shown in these schematic diag~ran~s are the AC
(ring voltage) and DC voltage sources.
CODEC 621 a for channel 1 of Figure 6C corresponds to CODEC circ,-uit U24 of Figure 8B. CODEC 621b for channel 2 of Figure 6C
5 corresponds to CODEC circuit U16 of Figure 8B. CODECs U24 and U16 include an analog to digital (AID) converter mid a digital to analog (D!A) converter.
Additional detail regarding echo cllatian, voice digitizati~
and voice compression can be found in copmlding US Patent A~lication 10 Serial Number 081002,467 filed 3anuary 8, 1993 entitled "COMPUTER BASED MULTIFUNCTION PERSONAL
COMMUNICATIONS SYSTEIV)". This application is assigned to the same assignee as the t invention. The DSP 56002 DSP U14 is described more fully in the DSP56002 Digital Signal Poor User's Manual 15 published in 1993 Motorola, Inc. CODEC chid U16 and U24, in the preferred embodiment, are pmt number T7540 Digital Telephone CODEC
manufand sold by AT&T lVficroele~or~ics. A more derailed description of this telephone CODEC chip U12 is des~aibed in the T7540 Digital Telephone CODEC Data Sheet and Addendum published July, 1991 20 by AT&T lVhcx~oela~ronics.
The Speech Cion Algorithm for cort>pressing/decornp~sing the digiti~od speech information of the present 25 system is dished via the DSP 620 of Figure 6C. The analog voice signals are received and digitised by the telephone CODEC circuits 621a or 621b. The digiti~ad voice infrnmation is passed from the digital telephone CODEC circuits to the digital signal ~OCessor (DSP) 620 which is pmt to do the voice comlmessian algorithm. The DSP 620 30 cod the speech and places the cmnpressod digital rep~a~tations of the speech into special voice packeets des~ribed more fully below. As a result of the voice comp~.sion algorithm, the ,gad voice information is passed to the dual port RAM circuit 307 for forwarding to the aggregate board in Figure 6B.
5 To multiplex high-fidelity speadi with digital data and trait both over the over the tele~One line, a high available bandwidth would normally be required. In the present invention, the analog voice infom~tion is digitized into &bit PCM data at an 8 kHz sampling rate producing a serial bit stream of 64,000 bps serial data rate. This rate c~rmot be transmitted over 10 the telephone line. With the Speech Coion algo~id~n descaribed below, the 64 kbs digital voice data is compressed into a 9500 bps encoding bit stream using a fixed point (non-floating point) DSP such that the corrrpcessed speech of charniel 1 can be firansmitted over the tell line multiplexed with fax data, corrypspeech of channel 2, or async~rOnous data. This is 15 accomplished in an effici~t manner such that enangh machine cycles remain during real time speecfi corrrpression to allow to allow for echo cancellation in the same fixedpoint DSP 620.
A silence detection funcxion is used to detax quiet intervals in the speech signal which allows the data ~ 620 to substitute 20 asynchronous data in lial of voice data pads over the c~osite link to efficiently time multiplex the voice and asyn~ dad ttm~scnission. The allocation of tirr~ f~ asyn~ data transmission is qtly changing dep~ding on how much silence is on either of the voice c~nnels.
The voice coxrrpcnssion algorid~m of the present system relies 25 ~ a model of fi~amn speech which shows that hwmm speech cxxntains redundancy intarralt in the voice . Only the uiatal innovations (changes) need to be transmitted. The algorid~n operates ~ 128 digitized speech samples (20 milliseconds at 6400 I-iz), divides the speech samples into time sego of 32 samples (5 millise) each, and uses ~edicted coding 30 on each set Thus, the inert to the algorithm could be either PCM data sampled at 6400 Hz or 8000 Hz If the sampling is at 8000 Hz, or arty other selected sampling rate, the input sample data stream natal be decimated from 8000 Hz to 6400 Hz before processing the speech data. At the output, the 6400 Hz PCM signal is interpolated back to 8000 Hz and passed to the CODEC.
With this algorithm, the cxrrrent is predicxed as best as possible based on the past recreated segos and a differ signal is determined. The did values are compared to the stored difl=eree values in a lookup table or cod book, and tlxr address of the closest value is sent to the ranote site along with the predicxed gain and pitch values for each segment. In this fashion, the entire 20 millise~ds of speech can be rued by 190 bits.
To prod~e this compassion, the pit system includes a unique Vector Quantization (VQ) speed lion algrnridnn designed to provide maximum fidelity with minimum ~ power' and bandwidth. The VQ algorithm has two major components. The first section reduces the dynamic range of the inert speech signal by removing short tam and Iong tam redundancies. This reduction is done in the vvavefosm domain, with the syrrthesi~ed part used as tt~e referee for determining the inc~nen~tal ~~new'~
Wit. The seed section maps the residual signal into a code book optimi~d for preserving the dal spectiral shape of the speech signal.
Figure 11 is a high level signal flow block diagn~n of the speech cornpregsion algorithm used in the present system to combs tt~
digitised voice for transmission over the telephone lure in the voice over data mode of operation or for storage and use on the coal'. The transmitter aril receiver comb are imphnented using the DSP 620 of Figure 6C.
The DC rexr~val stage 1101 receives the digiti~od speech signal and removes the D.C. bias by calculating the longterm average and suing it from each sample. This ensures that the digital samples of the speech are centered about a zero n~an value. The pr~hasis stage 1103 whitens tlx spectral t of the speech signal by balking the extra energy in the low band with the rin the high band.

The system finds the innovation in the cun~nt speech segment by subtracting 1109 the prediction fiom reconspast samples -- synthesized from synthesis stage 1107. This process requires the synthesis of the past speech samples locally (analysis by synthesis}. The synthesis block 1107 at the fitter performs the same function as the syis block 1113 at the receiver. When the reconst<u~d previous segment of speech is subtracted fiom the present segment {before prediction), a difference team is produced in the form of an error signal. This residual ernor is used to find the best match in the code book 1105. The code book 1105 quanti~s the error signal using a code book generated from a repcive set of speakers and environments. A minimum mean squared error match is determined in segments. In addition, the code book is designed to provide a quanti~tion error with spectral rolloff (higher quantiz~on error far low fi~equaxies and lower quon error for higher frequencies). Thus, the quantization noise spectrum in the reconstructed signal will always tend to be smaller than the underlying speech signal.
The charmel 1111 corresponds to tlx ag~e~te board 402 and the composite link in which the compered speech bits are multiplexed with data bits using a packet founat described below. The voice bits are sent in of S frames each, each fi~me cairesponding to 20ms of speech in 128 samples. The sire of the pas depaids upon the type of cession used.
Three compression algoridzms are described which will be called 8K, 9.6K
and 16K. The 8K and 9.6K algorittu~ results in a 24 byte while the 16K algoridzm produces a packet of 48 bytes for each 20 ms speech segment.
F..ach frame of 20ms is divided into 4 sub-blocks or segirarnts of Sms each. In each sub-block of the data consists of a plurality of bits for the long tern predictor, a plurality of bits far the long term predictor gain, a plurality of bits for the sub-block gain, and a plurality of bits for each code book entry for each Sms. The bits for the code book eanries consists of four or five table entries in a 256 long code book of 1.25 rns duration. In the code book block, each 1.25ms of speech is looked up in a 256 word code book for the best match. The table entry is traps-miffed rather than the actual samples.

The code book entries are pre-computed from reptative speech segments, as described more fully below.
On the receiving end 1200, the synthesis block 1113 at the receiver performs the sine finncti~ as the syntla'sis block 1107 at the 5 transmitter. The synthesis block 1113 reco~~shucts the or iginal signal from the voice data packets by using the gain and pitch values and cod book address c~responding to the error signal most closely rnatd~ed in the code book. The code book at the receiver is similar to the cock book 1105 in the transmitter.
Thus the synthesis block rea~ates the original pre-emphasized signal. The 10 de-emphasis stage 111 S invexts the p~emphasis opQa~tion by restoring the balance of original speech signal.
The compl~e speech compression algorithm is summarized as follows:
a) Digitally sample the voice to produce a PCM sample bit 15 stream sampled at 16,000 samples per seed, 9600 samples per second or 8,000 samples pea' second.
b) Decimate the sampled data to a common sampling rate of 8,000 samples per second from all of the actual sample rates.
20 c) Remove arty D.C. bias in the spoorh signal.
d) Pre-emphasize the sig~l.
e) Find the innovation in the c~ure~ speech segment by subtracting the p~odiction fiom recon~u~od past samples.
This step requires the synthesis of the past speech samples 25 locally (analysis by syntta;sis) such that the resid~l error is fed back into the system Qua~zre the error signal using a cod book ~
firm a representative sd of speakers and errvironmerns. A
minimum mean squared error match is dete~rnined in Sms 30 segments. In ackiition, the code book is designed to provide a quantizatian error with spectral rolloff (higher quantization error for low ficies and lower qumrd~on error f~

higher fi~equencies). Thus, the quantization npise spectrum in the reconstructed signal will always tend to be smaller than the underlying speech signal.
g) At the transmitter and the , t~aconstruct the 5 speech from the qua error signal fod into tlx imrerse of the fiuiction in step (e) above. Use this sigr~l for analysis by synthesis and for the output to the reconsritlction stage below.
h) Use a de-emphasis filter to reconstruct the output.
The major advantages of this approach over other low bit-rate 10 algorithms are that there is no need f~ any complicated calculation of reflection coefl~cients (no matrix im~e or lattice filter ions). Also, the duantirJation noise in the output speech is hidden under the speech sig~ai and there are no pitch tn~lcing artifacts: the sounds "natural°, with only minor increases of background hiss at lower bit rates. The co~~ional 15 load is reduced significantly corr>pared to a VSELP algorithm and variations of the t algorithm thus provides bit rates of 8, 9.6 and 16 Kbit/s, and can also provide bit rates of 9.2kbits/s, 9.Skbits/s and many other rates. The total delay through the analysis section is less than 20 nvllisec~ds in the preferred embodiment. The punt algorithm is dished cro~r~pletely in 20 the waveform dotrmin and these is no spectral ion being fed and no filter compt~tions are needed The speech lion algorithm is descaibed in detail 25 with re~oe to Figures 11 13, and with referee to the block diagram of the hardware cOnents of the present system shown at Figure 6C. Also, refs is made to the detailed sc~nanc diagrams in Figures 7A IOB. The voice coion algoridun within the prod cont< of of the DSP circuit 620. In option. the or analog voice 30 signal is received dvrough the telephone i~faces such as FxS and is digitized by the CODEC circuit 621a or 621b. The CODEC for circuit 621a or 621b is a c~anding ~r-law CODEC. The analog voice signal from the telephone into is band-limited to about 3,000 Hz and sampled at a selected sampling rate by digital telephone CODEC 621a or 621b. The - sample sates in the deferred embodiment of the pn~t irnention are 8kbJs, 9.6kbJs and l6kbJs. Each sample is d into 8-bit PCM data pacing a 5 serial 64kb/s, 76.8kbJs or 128kbJs signal, respeedvely. Tl~ digitised sales are passed to the DSP 620. There, the 8-bit p-law PCM data is c~vated to 13-bit linear PCM data The 13-bit n~~an is necessary to aaxu~tely represent the linear version of the logarithmic 8-bit p-law PCM data With linear PCM data, simpler mathematics may be performed on the PCM data 10 The sart~led and did PCM voice signals from the teleptrorie ~-law CODEC 621a or 621b are passed to the DSP 620 via direct data lines clocked and synchronised to a clocking fiequency. The sample notes in CODEC 621a or 621b in the p~ferred embodiment of the present invemion are BkbJs, 9.6kb/s and l6kh/s. The digital samples are loaded into DSP 620 15 one at a tip thcnugh the serial input and stored into an internal qu~e held in RAM, converted to linear PCM dente and decimated to a sample rate of 6.4KbJs. As the sales are loaded into the erxi of the queue in the RAM of the DSP 620, the samples at the head of the queue are opa~ted upon by the voice compression algorithm: The voice compressi~ alg~ithm then produces 20 a gnratly compressed representation of tlx speech signals in a digital packet form. The compressed speech signal pats are then passed to the dual port RAM circuit 308 shaven in Figure 6C for use by the data processor 318 for tnmsmission.
Concurrent with this fit operation, DSP 620 is receiving 25 compressed voice data from dual port RAM circuit 307, unvsing the voice data and transfeaing the uncarr~mesged and reconsrrucre~ digital PCM voice data to the digital telephone CODEC 621a or 621b for digital to analog c~version aril eventual to tlx user through one of the tele~One intaJaces of Figure 6C. This is the receive mode of option of the DSP 620 ponding to receiver block 1200 of Figure 11 and corresponding to the deLOrnpression algorithm of Figure 13. Thus, the DSP circuit 620 is processing the voice data in both directions in a full-duplex fashion.
Digital Signal Pro~or (DSP) 620 operates at a clods frequency of approximately 24.576MHz while proving data at sampling S rates of approximately 8KHz in both directions. The voice compression/decomp~sion algorithms and packeti~on of the voice data is accomplished in a quick and efficient fashiar~ to ensure that all lxocessing is done in real-time vvidiout loss of voice information. This is ao~lished in an ei~cient manner such that enough machine cycles remain in the voice control DSP circuit 620 dining real time speech comp~sion to allow real time acoustic and line echo c~ncellatian in the same fixed-point DSP.
In programmed apemtion, the availability of an eight-bit sample of PCM voice data fi om the ~,-law digital tell CODEC circuit 621 a or 621b causes an interrupt in DSP 620 wt~re the sample is loaded into internal registers for processing. Once loaded into an internal register it is transferred to a RAM ad~ss which holds a queue of sac~les. The queued PCM digital voice samples are converted from 8-bit p,-law d~a to a 13-bit lirtea~r data format using table lookup for the conversion. Those skilled in the art will readily recognise that the digital telephone CODEC circuit 621a or 621b could also be a linear CODEC.
The sampled sand digiti~ad PCM voice signals from the tell p,-law CODEC 621a or 621b shown in Figure 6C are passed DSP
620 via direct data lines clocked and synchrnnii;aod to a clocking fir~Cy.
The sample n3tes in the preferred embodiment of the present ~ are 8kbls, 9.6kbJs and l6kbJs. The digital samples for the 9.6K and 8K
algorithms are decimated using a digital decimation prOOess to a 6.4K and 6K sample rate, respe~ively. At the 16K sampling rate for the 16K
algorithm, no decimati~ is needed f~ the voice cosion algorithm Refemng to Figure 11, the decimated digital samples are shown as speech entering the transmitter block 1100. The transmitter block, of course, is the mode of operation of DSP 620 operating to receive local digitized voice information, compress it and ~cketi~e it f~ transfer to the dual port RAM 307 for eventual multiplexing oral transmission on the composite link, which corresponds to the charmel 1111 of Figure 11. A flame S rate for the voice compressi~ algoridmi is 20 millisooor~ds of f~ each compre~ion. 'Ibis correlates to 128 samples to process per flame for the 6.4K decimated sampling rate. When 128 samples are accumulated in the queue of the internal DSP RAM, the compression of that sample fian~ is begun.
~Ci~
DSP circuit 620 is programmed to first remove the DC
component 1101 of the incoming speech. The DC removal is ~ adaptive function to establish a center base line on the voice signal by digitally adjusting the values of the PCM data. This ~ to the DC removal stage 1203 of the software flow chart of Figure 12. The fornmla for removal of the DC bias or drift is as follows:

z(n) = s(n) - s(n-1) + a * a (o-1} where a=

and where n = samQle n~ber, s(n) ~ the cm~t and x(n) is the sank with the DC bias removed The removal of the DC is for the 20 millisecond flame of voice which to 128 samples at the 6.4K decimated sampling rate which con~esponds to the 9.6K algorithm. The selection of a is based on empirical observation to Imovide the best result.
Referring again to Figure 12, the voice lion algorithm in a control flow diagram is shown which will assist in the ceding of the block diagram of Figure 11. Figure 12B is a simplified data flow description of the flow chart of Figure 12A showing tt>e sample rate decimator 1241 and the sample rate ineremer~tor 1242. The analysis and oon~pression begin at block 1201 where the 13-bit linear PCM speech samples are accxurn~lated until 128 samples (for the 6.4K decimated sampling note) representing 20 milliseconds of voice or one flame of voice is to the DC removal portion of code operating within tlx DSP 620. The DC removal S poiti~ of the code described above approximates the base line of the fi~
of voice by using an adaptive DC removal technique.
A silence detecti~ algorithm 1205 is also included in the programmed code of the DSP 620. The silence detection function is a summation of the square of each sample of the voice signal over the flame.
10 If the power of the voice flame falls below a preselected Id, this would indicate a silent flame. The detection of a silence :flame of speech is important for later multiplexing of the V data (voice data) and C-data (asyri~nous ~ data) described below. During silent portions of the speech, data pn~sor 318 will convea~tional digital data (C-data) over 15 the telephone line in lieu of voice data (V-data). The fonrnda for computing the power is 20 PWR = ~ x (D) * x (D) D=O
W~1CDISt~~C1'~~
25 x (n) is ll~e aampte value If the power PWR is lower than a preselected threshold, then the print voice flame is flagged as containing silence. The 128-sample 30 silent flame is still ~ by the voice compression algorithm; however, the silent fi time are discarded by the data p~ro318 so drat asynchronous digital data may be tram in lieu of voice data. The rest of the voice compressi~ is operated ups in segments where there are four segm~ts par fire mnounting to 32 samples of data per Wit. It is only 35 the DC removal and silence detection which is accomplished ova an entire 20 millise~nd frame.

The pre-emphasis 1207 of the voice compression algorithm shovm in Figure 12A is the next step. The sub-blocks are first through a pre-emphasis stage which whitens the spearal content of the speech signal by balancing the extra in the low band with the reduced energy in the 5 high band. The pnr-emphasis essentially flattens the signal by reducing the dynamic range of the signal. By using pre-emphasis to flatten the dynamic range of the signal, less of a signal range is req<drad f~ c~i~ making the cornpression algorithm opiate more efficiently. The formula for the pre-emphasis is x (n) =x (r~ - p * x (n-1) where p = 0.5 and where n is fhe sample nm~ber, x (n) is the sample 15 Ead~ segmalt thus amour to five milliseconds of voice which is equal to 32 samples. Pro-is then is one on eadl segment. Tl~
selection of p is based on e~irical ob~vation to provide the best result.
The next step is the longtelm prediction (LTP). The longterm prediction is a method to detect the innovation in the voice signal. Since the 20 voice signal cps manyedtux~t voice segmarts, we can tl~se redundancies and only send inforr~ion about the d~anges in the signal from one segr~nt to the next. This is lisi~d by comparing the speech samples of tile current seg~t on a sample by sample basis to the reconst<v~cted speech samples from the previous set to obtain the 25 innovation inf~rr~ion and an indictor of the error in the prediction.
The longterm predictor gives the pitch and the LTP-Gain of the sub-block which are encoded in the transmitted bit stream. In order to predict the pitch in the cxurent segm~t, we need at least 3 past sub-blocks of reconstructed speech. This gives a pitch value in the rmige of MITT PITCH
30 (32) to MAX PITCH (95). This value is coded with 6-bits. But, in order to accommodate the corr~pressed data rate within a 9600 bps link, the pitch for set 0 and 3 is encoded with 6 bits, while the pitch f~ set 1 aril 2 is encoded with 5 bits. Vfhen performing the prediction of the Pitch for segments 1 and 2, the con~elation lag is adjusted amend the pt~edicted pitch value of the previous seg~ni~ This gives us a good of predicting the correct pitch f~ the current seat even dough the entire range for 5 prediction is not used. 'The ooa~ians far t~ lae~te~m correlation lag PITCH and associated LTP gain factor (3 j (where j = 0, 1, 2, 3 corresponding to each of the four of the frame) are done as follows:
For j = ndn~ .... nua_pi~h, first perf~tn the following computations betv~n the curent speech samples x(n) and the past 10 reconstructed speech samples x'~r~) 5,~, (~) _ ~x (i) * x' (i +MAX PITCH- j) r~

5,~, (~) _ ~ x' (i + MAX PITCHj) * x' (i+MAX PITCH; j) i~

The Pitch j is c~ that which maidini~es S'~~ .
25 Since (3 j is positive, only j with positive 5,~21S conslda~ed. Sxk' Since the Pitch is encodod with t rn>rnber of bits for each sub-segment, the value of min_pibCh and r>n~a~p~Ch (range of the synthesized speech fig pitch prediction of the c~urent segcn~t) is ~ as follows:

if (sent= 0 ar 3) min~itch = MIN PITCH
max~itch = MAX PITCH
S ) if (seg_number = 1 or 2) min pitch = prev~itch - 15 if (prev_pitch < MIN PITCH + 15) min~itch = M>r1 PITCH
if (prev~itch > MAX PITCH + 15) min~itch = MAX PTI'CH - 30 max_pitch = min,~itch + 30 The p,~w~ ~ in the above equation, is the pitch of the previous sub-segn~t. The pitch j is the in 6 bits or 5 bits as:
~=J-~
'Il~ LTP-Gain is given by S~~ ~1~
(3 = ~ for Sxx~)~4 Sxx~ VJ
the value of the (3 is a ~malized quantity between zero and unity for this segment where (3 is an indicator of the correlation between tlx segn~ents. Far example, a pe'~ecx sine wave would pmduCe a (3 which would be close to unity since the carrelatiar~ betv~een the cxnrent and the previous reoonstnuted s~e~er~ts should be almost a perfect match so ~ is one.
The LTP gain factor is quairti~ firm a LTP Gain Faicode Table. This table is characterized in Table 1. The resulting index (bcode) is transmitted to the far end. At the receiver, the LTP Gain Factor is retrieved fivm Table 2, as follows:
S ~ = dlb ta~b[bco~]
TABLE l: LTP Ge~in ~coc~e Table 0.1 0.3 0.5 0.7 0.9 bcode= 0 1 2 3 4 5 20 TABS 2: LTP C~etia Dearode Table ~= 0.0 0.2 0.4 0.5 0.8 1.0 bcode=0 1 2 3 4 5 After the LongTetm Prediction, we mss the signal through a pitch filter to whiten the signal so that all the pitch effects are removed.
The pitch filter is given by:
e(n)=x(n)-(~ *x'(n-~~
where j is the Lag, and (3~ is the associated Gain.
Next, tlx error signal is normalized with respect to the maximum amplitude in the sulrsegment for vector-quantizaaon of the earor signal. the maximum amplitude in the segment is obtained as follows:

GW{le(n)I}
The mauimum amplituc~ (f~ is encoded using the Gain Fxxo~
Table. This table is characterized in Table 3. The encoded amplitude (geode) 5 is transmitted to the far end At the receiver, the maaacimutn ac~litude is retrieved from Table 4, as follows:
Gq = ~g t~lg~l The en or signal e(n) is then normalized by e(n) 10 e(n) _ Gq 15 TABLE 3: C3sia ~cod~e Taible G=16 32 64 128 256 512 1024 2048 4096 8192 20 (gcocle) T.ABLS 4: c3aia Diode Table G=16 32 64 128 256 512 1024 2048 4096 8192 (-(geode') 35 From the Gain ar~i LTP Gain Encode tables, we can see that we would require 4 bits f~ geode and 3 bits for txrode. 'Ibis results in total of 7 bits for both parameters. In order to reduce the bandwidth of the ooh bit st«am, the geode and hoods pararrreters are encoded together in 6 bits, as follows:

BGCODE = 6 * gcode + bcode The encoded bits for the G and LTP-Gain (~ at the receiver can be obtained as follows:
S
gcode = BGCODE / 6 bcode = BGCODE - 6 * gcoc~
Each segment of 32 samples is divided into 4 vectors of 8 10 samples each. Each vector is compared to the vect~s stored in the CodeBook and the Indea of the (bde Vecbur that is chest to the signal vector is selected. The CodeBook consists of S I2 entries (512 addresses). The index chosen has the least differ according to the following minimalization formula:

~ '~~ (x ~ - y;~
where x; = the inert vector of 8 samples, and 20 v; = the code book vector of 8 samples The nunimization coion, to find the best rr>~ch betw~oen the subsegn~t and the cxxle book entries is tonally ir~sive. A
brute fomce comparison may ex~d the available ~ cycles if real time 25 processing is to be dished Thus, some shorthe~ posing yes are taken to reduce the conons required to find the best fit.
The above formula can be computed in a shorthand fashion as follows.
By expanding out the above formula, sots of the unnecessary terns may be removed and some fixed terms may be pre-muted:

(xi - Yip _ (xi - Yi)*(~i - Yi) - (x;2 - xiYi - xiYi + y.?) - (xi2 - ~iYi '+ Y 2) 5 where x 2 is a count so it may be dropped firm the formula, and the vale of -%z ~y;2 may be precoand stored as the 9th value in the code book so that the only real-time con>put~~ involved is the following formula:

M~ ~~ (x i Yi ) Thus, for a segment of 32 samples, we will transmit 4 15 Codel3ook Indexes (9 bits each) corresponding to 4 subsegments of 8 samples each. This means, for each segment, we have 36 bits to tt'ansmit.
After the appropriate index into t~ code book is chosen, the input speech samples are replaced by the corresponding vectors in the c~sen indexes. These values are then multiplied by the Grq to ~i~e the 20 ~i~ed error signal, e'(n). This signal is then passed through the Inverse Pitch Filter to reit~tra~uCe the Pitch that was taken out by tlx Pitch filter. The Inverse Pitch Filter is perfon~r~ed as follows:
Y~~ = e~~~ + ~Q * x~ ~n -.1~
where (3 Q is the d LTP-Gain firm Table 3, and j is the Lag.
25 The Irme~e Pitch Filter output is used to updaee the syntl'xsi~ed speech buffer which is used for the analysis of the next sub-segment. The update of the state buffer is as follows:
x~ (k) =x~ (k +tl~N PITCI~

where k = 0, ... , (MAX PITCH - MIT1 PITCI~ - 1 x ~~~ =Y<n~

where 1 = MAX PITCH - MIN PITCH, ..., MAX PITCH - 1 The signal is then passed through the his filter since preemphasis was performed at the beginning of the processing. In the 5 analysis, only the preemp'hasis state is updated so that we pro~rly satisfy the Analysis-by-Synthesis rriext>od of performing the Vision. In the Synthesis, the output of the deemphasis filter, s' (n), is passed on to the D/A
to a analog speech. The deemphasis filter is implemented as follows:
10 s'(n) = y (n) + p * s' (n - 1) where p = 0.5 The voice is reconstructed at the receiving end of the voice-over data link aiding to the reverse of the cornpression algorithm as shown as the decompression algorithm in Figure 13.
15 If a silence flame is received, the decompression algorithm simply the received fine and initialize the output with zeros. If a speech flame is received, the pitch, LTP-Gain and GAIN are decoded as explained above. The atur signal is recansrntcxed fi~om the cadebook indexes, which is then dealized with respect to the GAIN value. This 20 signal is then passed through the Inverse filter to g~de the recor~strucxed signal. The Pitch and the LTP-Gain are the deed values, same as those used in the Analysis. The filtered signal is passed through the Deear~phasis filter whose output is passed on to the DrA to put out analog speech.
The cott~pressed flame contains 23 &bit words and one 6-bit 25 word. The a total of 24 wards. Total number of bits transferred is 190, which corresponds to 9500 bps as shown in Table 5.

Table 5 Compressed Frame Packet for 9.6K Algorithm 7 6 5 4 3 2 1 0 Bit Number S S ps Po Po' Poz Po' Po Comp Frame[0]
_ Vz VI8 Voa P14 $ Plz PIl Pi Comp Frame[1]

Vs V48 V3s Pz4 8 Pzz Pzl Pi Comp Frame[2]
Pzj V~8 Vb8 P3 P34 P33 P3z P3~ Pi Comp Frame[3]

V9g Vg$ BGs BGo4 BG' BG BGo' BGo Comp Frame[4]
z V"8 V,a BG,s BG,4 BG,' BG,z BG,' BG, Comp Frame[5]

V,3a V,z$ BGzs BGz4 BGz3 BGzz BGz' BGZ Comp Frame[6]

V,sB V,48 BG;s BG34 BG;' BG;z BG;' BG3 Comp Frame[7]

VQo' VQ6 VQ5 VQo VQ VQo VQo~ VQo Comp Frame[8]
o LS 8 bits VQ[0]

VQ,' VQ,6 VQ,s VQ14 VQ,3 VQ,z VQ,' VQ, Comp Frame[9]
_ LS 8 bits VQ[1]

VQ14 VQ14 VQ14 VQ14 vQl4 VQ14 VQ1~ VQ14 Comp Frame[22]
-7 6 s 4 3 2 1 0 LS 8 bits VQ[14]

VQIS VQIS VQu VQu VQIS VQIS VQIS VQIS Comp Frame[23]
-7 6 s 4 3 2 1 0 LS 8 bits VQ[15J

where BG = Beta/Gain, P = Pitch, VQ = CodeBook Index and S = Spare Bits 1~~.8~1 ' The code books used for the VQ algorithm described above are different for the 8K, 9.6K and 16K algorittar~s. Table 6 describes die forn~t 5 of the code book for the 9.6K algorithm. The code book values are stored in a signed floating point famat which is cxazverted to a Q22 value fixed point digital former when stored in the lookup tables of the present invention.
There are 256 entries in each code book coding to 256 different speech segments which can be used to and reoonsa~uct the speech.

15 Code Book Entries - %2 Sum2 C,onstar~t---8 eamies 1 er~y For the 9.6K algo~id~m, the code book o~ a table of 20 nine columns and 256 rows of floating point data. The first 8 rows corresp~d to the 8 sages of speac~h and the ninth erntcy is tt>e pt~ecorr~ted instant des~ibed above as -'/~ E y.,2. An example of the code book data is shown in Table 7.

Table 7: Code Book Example for the 9.6K Algorithm 0.786438 t .1328751.2083751.2067501.1142500.9376880.7720620.5832503.93769 0.609667 1.0191670.9091670.9577500.9998330.8543331.0056670.9112503.36278 0.614750 1.1507501.4777501.5487501.4347501.3042501.3497501.4282506.95291 0.657000 1.1329091.2799091.2047271.3356361.2808181.1620000.958818524933 0.592429 0.8975711.1017141.3372861.3235711.3490001.3048571.3471435.6239 0.325909 0.7741821.0357271.2636361.4564551.3562731.0762730.8728184.628 10 The code books are converted into Q22 famat and stored in PROM memory accessible by the Voice DSP as a lookup table. The table data is loaded into local DSP memory upon the selection of the app~iate algorithm to increase access speed. The code books cod a table of data in which each entry is a sequential addt~ss from 000 to 511. For the 9.6K
15 algorithm, a 9 X 512 code book is used. For the 16K algorithm, a 9 X 512 code book is used and for the 8K algorithm, a 9 X 512 code book is used.
Depending ups which voice compression quality and compression rate is selected, the corresponding code book is used to enoode/decode the speed samples.

'>he code books are statistically by encoding a wide variety of speech . The cod books are g~ in a Teaming mode for the above-described algorithm in which each speech segment which the 25 compression algorithm is first exposed to is plaood in the cx>de book until entries are recorded. Then the algorithm is continually fed a vari~y of speech S upon which the code book is adjusted As new speech segri~its are encountered, the code book is searched to find the best match. If the error b~ween the observed speech segment and the code book values exceed a 30 nred~eternnined threshold, then the closest speech segalent in the code book and the new speech segment is averaged and the new average is placed in the code book in place of the closest match. In this learning mode, the code book is continually adjusted to have the lowest difference ratio between observed speech segment values and code book values. The learning mode of operation may take hours or days of exposure to differelit speech patterns to adjust the code books to the best fit.
5 The code books may be exposed to a single pexson's speech which will result in a code book being tailored to ttmt p~mticular pas method of spealang. For a mass market sale of this pact, the speech ~ of a wide variety of speakc~s of both genders are exposed to the code book learning algorithm for the average fit for a given language. For other 10 languages, it is best to expose the algorithm to speech patterns of only one language such as English or Japanese.
Voicg or Fax Data When the DSP circuit 620 completes the co~ression of one 15 20ms portion of voice or fax information, it will send a block of voice or fax data every 20 ~ to the dual port RAM 307 where tl~ daota processor 318 can retrieve it for transmission. Eadmoice err fax data packet has thr~ae heac~r bytes and 23 bytes of voice ~ fax data (for 9200 baud voice lion) or 43 bytes of voice data (for 16K baud voice comp~sion) in the dual port 20 RAM. The header bytes indicate the destination adds, ion d>annel, frame ID, byte etc. Bits 6 and 7 of tt~ first byte indicate the packet type. The voice/fax packet is described in Table 5.
Bits 6 and 7 of the first byte of the the packet identifier which identifies the contents of the packet (see Table 5 above).
25 These bits are defined as follows:
00 = the following voice packet contains silent sound O1 = the following voicxlfax pad cxa~ins information 10 = the following Wicket cxsrtaias tele signalling or control imforn~ation 30 11 = reseNed If there is a silence period indicated by the DSP 620 in an empty packet sent to the data processor 318 through the dual port ItAM 307, the data processor 318 will not send the silence packets to the ren~te site.
S Instead, the data processor will send a two-byte pa~cet indicating no voice information to be sent or the data processor will set a bit in one of the acknowled~na~t, data, or network 1 ~ to alert the receiving side.
The detection and suppression of the transmission of tlx voice packets frees up bandwidth for the transmission of other data. In this fashion, the use of 10 the bandwidth over the composite link is dynamically allocated beh~ voice, fax and data. Since human is typically 60% silence (pauses betv~n spoken words and sentences), a highly efl'lcient multiplexing is accomplished 15 Referring once again to Figure 4, the multiplexed deals ova bite link 313 betw~o~ the syncimonous r~ltiplexors 300 uses advanood priority statistical multiplexing (APSlVn on tc~ of a modified foam of high-level synchs data link control (I~LC) to trareanit atxi receive the c~ta packets. In general, this protocol follows the CClfiT V.32 standard and the 20 like for handshaking and communication. In the initial handshake period in establishing a comrnrn~nic~tions link, a special link protocol is used. This protocol is de~ibed in the flow chart of Figure 14.
25 Bath multiplexes 300 and the associated co~n~posite link (either analog or digital) trar>smit and receive a link request A or link request B, and a link a~movvledtt as shown in Figure 15. Data c~not be transferred until the link has been established Link Reqta~t A (LRA) is transmitted by the initiating modem to the remote a~ n~oeiving modean to initiate a link 30 process. This link request is retransmitted every three suntil link request B is received.

The called, or receiving, modem t<arLSmits Link Request B
(LRB) to the transmitting multiplexor after LRA is received LRB is -- " t<ar~smitted every three set until link aclmowledga~t is received. Link Acknowledgeir~nt (LA) is transmitted to remote multiplexeors only after LRA
is sent and LItB is received, and LRA is received and LItB is sit, by the t<ansmitting and receiving rnodems, respectively.
Acknowledgement blocks are used to acknawled~ valid (uncomipted) data blocks that were received as well as to relay control infrnmation to die remote multiplexes. An ~dmowledgema~t is always transmitted with the sequence number of the last received data block as shown in Figure 19. Forced acknowledge~r~ents are aclmowledgeln~s which must be transmitted imrr>ediately. If one of the following ~nditions exist, a foroed acknowledgemem is required:
1.) Control inforrnetian needs to be sent to the rerriote multiplexes. F~ example, a receive >x~$~ of a local duel is full.
2.) Fir data blocks have been received an aclalowlt.
3.) Two consecutive out-of sequerroe data blocdcs are received.
4.) A window flow time expires (see below).
Unforced acknowledgemems are transmitted only after all of the following conditi~s are cliedCed:
1.) A forced acknowledgen~,~t condition doesn't exist.
2.) A retransmissions of a data block is not necessary.
3.) There ~e no new data blocks to send.
4.) Orie or more data blocks have been received widzout an aclmowledgement being transmitted.
the fiarne in Fig. 19 is used to a~nawledge asyncl>ronous channel data frames, transmit control ~tiari and provide syndmoniz~on between multiplexers. Block 1D with bit 7 set indicates a forced a~cknowledt condition d~ to the receive being full or a change in FfIA signals. Block IDs with bits 5 andlor 6 set indicates silence for the respective voice channel. Bit 6 set indicates silence for voice channel 2 and bit 6 being set indicates voice channel 1 is silent. She numbers are NO-N8 where N repres~ts the buffer number of the a~clmowledged asynchronous 5 data frame.
l~a.T~an~
A voicelfax data fnmx: is shown in Figure 16 and an asynchta~nous channel data flame is shown in Figure 18. Transfer of data takes place under the following conditions:
10 A.) A retransmission of data blocks is needed if one or two events oocx~r:
1.) Duplicate aclaiowledts (consecutive acknow ledgerramts with the same seqt~ce number) are received while outstanding data blocks still exist.
15 2.) The retransmission tuner .
Retransmission of a data block should start with the first unfaroed aclmowledge~t. Data blocks follow in sequ~ial order.
B.) New data blocks are transmitted ply if data elasts in the transmit buffer and all of the following conditions are met:
20 1.) Faaoed acla~avvledg~rient oo~ition doesn't exist.
2.) R,etiransmission of data is not racy.
3.) The source charnel 't have more than four ourstmxkng iowledgad cxalditions.
4.) The total rnrmber of outstanding data blocks doesn't 25 exceed sever.
The fi~me in Figure 16 is a Voice/Fax/Data Fray. This f~mr~e transmits voioe/fax 1 data The flame in Figure 18 is an asynchronous ch~el data fimne and is usod to trm~mit asynch~ou~s channel dta. A byte count of ~o (0) represer~s a break condition and requires the respective 30 destir~ion c~nel to tra~mit a break. Block IDs with bits 5 aml/or 6 set indicates sil~ce for the respective voice c~mmel. Bit 5 being set indicates a silent packet for voice channel 2 and bit 6 being set indicates a silent packet for voice channel 1.
5 The following timers are used far the present modified HDLG;
1. A link request timer is a three second tuner which is initiated on a reset of the multiplexes 300 or if the Link Request A (described above) is received This tuner is cancelled once the link has been established. This tirncr is 10 reset each time LRA (Link Request A), LRB (Link Request B) or LA (Link Aclawwledgesr~t) is tnmsrnitted 2.) A window flow tirt~er is a three second timer which is initiated after the link has boen established. This timer is reset only when an acla~owlt (forced or unforced) is 15 tn~nitted If this timer e~ired, a forced acla~ovvledgerrient is 3.) An aclawwledga~t tin~r is a two second timer which is initiated what a valid data block is revived. 'Ibis timed is cancelled when an acknowledgar~a~t is transmitted.
20 This timer is reset but it is eitl~ initiated err cancelled If this timer expires, a forced ada~vledg~t is required.
4.) A retransmit timer is a fwu seed tia~ which is initiatod at the tip a data block is fitted. 'Ibis tier is reset when a positive a~Owledgeanent (an admowl~t 25 for any outstanding deals blocks) is rGCeivod or why a duplicate aclanowledgemex~t is received while ~ outstanding exisrs. The latter is a re~msmission condition. this timer is cancelled wl~ all ou~ding data bloc~CCS have been adamwledged.
This timer should only be initiated if this timer has been 30 cancelled and a data block is to be transmitted. If this timer expires, retransmission of all blocks is required starting with the first unacknowledged block.

Receive Status Bytes are bytes which are inch in the aclmow ledgerrie~t fi~cne. The number of Receive Status Bytes is a minimum of one byte (for an eight channel multiplexes) and a maximum of four (for a 5 thirty-two ch~el multiplexes) in tl~ preferred e~mboditr~at. One bit is assigned per chrmel wh~by each bit rats the status of the crnresponding channel receive buffer (ie.: bit pro of Receive Status Byte number one corresponds to channel 1 and bit five of Receive Status Byte number four corresponds to channel 30). Fach bit being set indicates that the 10 corresponding channel receive buffer is full. In such a conditi~, the remote multiplexes will hold any data blocks that are intendod for that channel. If the bit is clear, then the corresponding receive buffer is clear for receiving data Any change in status of any of these bits a forced acknowledgem~t to be sent.
15 Rye Paramder Bytes are byte used to configure the remote slave unit (multiplexes) 300 and are included in the LRA (Link Request A) and LRB (Link Request B) fires only if the local lexer 300 is configured as a master unit. The configuration of a master err slave is by selection of switches on the multiplexes 300. There are 59 bytes per eight 20 GIs with a minumum of 59 bytes (for eight ls) and a n»dmum of 236 bytes (for a 32 channel multiplexes).
The imre~ntion will emulate the Hewl~t Paclcard INQIACK flow cool. If the ENQ is received by a d~nel port, it is through to the re~r~e site and mi ACK (aclawwledge'rrlent) is 25 immediately ~rm~nitted by the local dal to the HP device. If the remote channel detects ENQ in its data stream to the HP (1-Iewlett Pac~rd) device, it will transmit the ENQ and wait for a ACK (aclaiowledgement) to be received before transmitting any snore data. Once the ACK is received, transmission is continued and the ACK is discarded.

The multiplexor 300 may be a part of a series or chain of identical multiplexers 300 connecxed to pass data, voice and fax information along the chain. Thus, a~regate card 400 of Figure 6B shows two composite 5 links 610a ~d 610b which may be fed to "up~m" and "downstream" multiplexers 300. The aggregate card 400 contains pass-througtl buffers which simply pass along packets to the ~ multiplexers if those packets are not used to the local site.
The network control flame shown in Figure 17 is used for 10 network c~gestion control. If the pass-through buffers of the local multiplexes become full, the local multiplexes must tell the upsr~n multiply that are sending packets to stop until the downstream multiply have emptied the local pass-through bu$e~. The rietu~rk control flame of Figure 17 is sent upstream to all multiplexers until it is 15 received by the multiplexes on the end of the chain. The packet of Figure is then rehnned d~ownsrream as a farm of ada~ovvledgment that all multiplexers upst~m have ceased ser>ding packets.
The fiarr~e in Figure 17 is a netvwrk ~vl flame. This fia~r~e is initiated when the re,~tive-piss (Link A > Buffer 9, Line 20 B > Buffs 4) of a multiplexes has c~m~ged sta~,us (E~,y < > Full). This flame is only used in a nexvvorking emrironrnem. The initiaoring rrnnc the first four bytes (Block m, Ful)/Empty, Byte Count arxi Souc~
Noc~ Niunber). All intermediate muxes in tlx network receive this carol flame. They set/reset flags to stopJz~esume transmission of the nodes in the 25 network that utilise the pass-through lof the initiating node. After setting the appropriate flags, the interme~ate trnrnes append their soutrx node number to the fiatne, in~ezn~t the byte coLmt and pass tlx flame out the other composite link port. The end node receives the control frame, sets/resets its flags, appends its some nod number, ink the byte 30 count, and tra~mits the ~1 fume out the same composite link port. The cxsltTOl is te.mvnated after the orig maxx receives the frame with all source node numbers of the adjacent muJCes appe~ed to the original frame. The initiating mux generates this control fiarne every five (5) seconds until it receives the original control frame.
5 In one embodiment of the t invention, an advanced priority statistical multiplexing scheme is ino~po~ed to ms~cimi~e data througt~ut on any particular co~mmmicatian channel while preserving quality and reliability of high priority data and maintaining tlx efficiency of statistical multiplexing.
10 A 1~P~~'Y ~ Pn~ty statistical multipleadng (APSIVn paradigm is impletred in conjuncxion with the abovc-described modified HDLG protocol to allow high-priority (tilrie sensitive) data such as voice, fax, LAN (local area netvwrk), synchronous, and video to be multiplexed with low priority data (such as asynchronous data) over a bite link. The 1 S fundam~tal differ between the two groups of data is the absence of tlx modified HDLG protocol overhead with high priorri' y data. This absence of the modified HDLC protocol overhead is due to the time-sensitive nattme of the high priority data which requires that ttar high priority data be trans~nitbed and received with a minimal ennrnmt of delay. The time sensitive condition 20 removes any type of error ion or detection , any type of retransmissions or arty type of aclmowl~ that acre associated with the modified HDLC prarocol employed with high priority data.
'Ibis advancod priority statistical multiplexing uses variably length packs and statistical multiplexing of low priority data for tcansmi.~si~
25 efficiency and quality. Advanced piiority statistical multiplexing also assums predictable and minimal delay of highs priority packers by Wing low priority data transmission when higher priority data is ready for transmission.
30 In g~eral, Pa~ckebz~l data may be ~g~i~ad as high priority or low priority. Ira which is designated as high pri~ity data is time-critical data. Tirr~cxidcal data is any data which angst be ~d in a given time period due to the nature of the infom'ation transferred. Some examples of time-critical (high priority) data are voice and video data An example of low priority data is asynchronous digital data, such as a binary file.
Transmission and reception of voice data must occ~a regularlly to ensure that the voice 5 inform~ion is not delayed or garbled, however, binary files can be transferred in bursts and accumulated at the receiver over an pei iod of time.
'iheref~e the transmissi~ of high priority data takes precede over tow priority data in order to meet the time criticality of the high lniority data If the communication channel has bandwidth in excess of that Wed to transmit 10 the maximum number of high priority data bytes, the there is bandwidth available for the tiransmission of low priority data. By flexing the low priority data within the transmissions of high priority data, the total bandwidth of the composite link can be exploited, resulting in throughput and efficiency of data transferred ova the composite link.

Figure 20A is a block diagam of are eanbodimern of the invention. I-hgh ~i~ity data is transrnittod, roceived, packetized and unpacketized by high priority ~eket module (HPPIV~ 2001. I~gh priority 20 packet module 2001 can be any trm~oeiver of high priority data, sub as voice/fax board 402, shown in Figure 6C. I~gh priority packet module 2001 may perform her funcxions as well, such as coznpressian arai ckCOmpression of high priority data. Low priority data is tzm~nitted, rooeived, packized and unpacketized by low priority pack module (LPP1VI) 2003. Low priority 25 pack module 2003 is arty for of low pri~ity data, such as channel board 401, shown in Figure 6A Those skilled in the art will readily recognize that several other generators of high priority mid low priority data are possible without departing firm the scope and spirit of this embodiment of the present invention, and these examples are not offered in a limiting or 30 exhaustive sense.
High priority packet.module 2001 comimmicateS with aggre~te module (Alvn 2005 via commoil ~ 2002, and low priority pack module 2003 communicates with aggregate module 2005 via common memory 2004. Aggregate module 2005 tr~ceives high priority packets (HPPs) and low priority packets (LPPs) from high priority packet module 2001 and low priority packet module 2004, vely. Aggregate module 2005 contains hardware and firmware to prioritise, multiplex, act der~rn.~hipleac the high priority packets and low priority ved betvveerl high pri~ity packet ~dule 2001 and low priority packet module 2004, respectively. One ale of an aggre~te module 2005 is aggregate board 400 shown in Figure 6B.
in one embodiment of the present invention in which voice over data corrnrnmic~tions are performed, it is inert to transmit the voice packets as. highest priority to minimise sys~n voice delay. Advanced priority statistical multiplexing can ensure t<ansmission quality and efficiency by multiplexing the voice packets as high priority packets and digital data packets as low priority ~.
Another eanbodiment of tlxr pit invention includes multiple high priorri' y packet irxxiules 2001 which have independent high priority packet times. Such systems must use the s~rtest high priority packet time in order to preserve the time-criticality of each high priority in the syst~n. Additionally, there are other embodime~r~s of the present invention having net~k topologies which result in high priority packet tn~c passing through a node. The advanced priority statistical multiplexing sc~r~e must aooamt for the worst case number of high priority gene~Otars in each node to dctan~ne both the smallest high priority packet time and the lar~t numb of high priority packets which may be transmitted during that high priority packs time. This inf~rnation is ne~saiy to ~a~e that the high priority deals is given priority in the tirr~ multiplex and that the composite link will have su~cient bandwidth to handle the worst case high pritarity tragic.
Those skilled in the art will readily recognise that other oombinatiams of modules are possible without departing fin the scope and spirit of this embodiment of the preset irnention, For example, this embodiment of the present invention is not affected if the carnrnoll memories 2002 and 2004 resided in the same storage device or separate storage devices.
Another example is the data stored in common memories 2002 and 2004 could be saved in a pa~ti~ad format or in a raw binary format. Other variations are possible as well without departing firm tl~ scope and spirit of 5 the punt inventi~.
High priority packets typically ~ not inquire attar detection or retransmission, however low pri~ity packet data typically must be dived en~ar free, so enrn d~ection and rerrans~russion is incorporated into low priority packet transmissions. Aggregate r~dule 2005 contains software and 10 hardvvare to perform the neressary ennr detection and retransmission funcxions. It also constiuds a new voice and data frame (a hybrid fire) according to a new protocol which is discussed below.
15 In the present system, if the bandwidth of the sampled high priority data is much lower than the bandwidth of the composite link over which it is ca~mic~otsd, then the high priority data appears as padceri~ed bursts over tl~ oornposite link. As the bandwidth of the high priority data approaches the bandwidth of the composite link) the high Iniority data appears 20 as a cods transmission of data, with few spaces interspersed. As long as the bandwidth of the composite link excxeds tire bandwidth of the high priority data there is mom for rrn~ltipleaced tc~nissian of low priority data.
However, the multiplexing problem is complicated by the fact that high priority data packers may be gin different combinations, 25 resulting in varying burst lengths. Two app~hes to multiplexing such data are: ( 1 ) reserving an irl in the t~ mulfiplex for the maximum number of high priority data bytes which potentially could be sent by the system and transmitting low priority bytes this 'reared space' in the tirrye multiplex; and (2) by tra~mitting high priority data bytes whenever they are 30 ,generated ~d instantaneously packing low priority data bytes around the high priority data bytes.

Method ( 1 ) is adequate if the statistical variation in high priority packet length is relaxively small when compared to the average packet l~gth, however, if large fluc~ations in high pricxity length are observed, then narthod (1) results in a substantial loss of unused bandwidth 5 which could be exploited for transmission of low priority daxa. Method (2) can utilise the entire bandwidth of the composite link, but is much more processor int~sive than rrarthod (1) due to cx~tant monitoring for gaps in high priority data.
One embodiment of the present inventi~ multiplexes low 10 priority packs data by periodically inter~t~ting the low priority packet datastream to tra~nit high priority packet daxa. The ~ period is based on the highest possible bandwidth of high priority Wicket daxa, and low pri~ity packet data is sent in increments based on the intecn~pt period when high priority packet data is not being sent. The multiplex ~.sures that the 15 maximum possible high priority packet data will always be sent with only pea~iodic int~n~iams of the low priority packet data. Gaps in high priority packet transmissions are filed to efficiernly use the entire bandwidth of the chmmel to trananit low priority packet data on a lower priority basis. This embodirrient of the present invention offers inch ~rt over na~hod 20 ( 1 ) and reduced processor time over method (2).
The resulting daota t<ansmissions can be ~iaed by various indices such as high priority packet time (HPPT~ which is a measure of the 25 time high priority packet module 2001 noeds to construct a high priority packet. The high priority packet time is commensurate with the sampling rate of the high priority input and is dictated by the nattne of the high priority signal, level of oosion of that signal, mid requisite bandwidth. Each high priority packet is loaded into shared rnemmy 2002 by high priority 30 packet module 2001 for later transmission by aggregate module 2005.
Aggregate module 2005 dives the packets ai the same rate as high priority module 2001 so each packet will be t~sf~ed within one high priority packet time, ensuring that the high priority data is timely. If the high priority packet module 2001 is the voice/fax card 308, then the high pri~ity packet time is ~t on the speech lion alb selected. For ale, the earlier section entitled "Speed C.oion Algorithm" described a 20ms speech sample time. In this case ~ high priority packet time would be 20ms, since voice pado~s are gene~~ed and must be processed every 20ms. The high priority packer time irniltiplied by the overall baud transmission rate of the link sets the maxitrnun bandwidth (in bytes} which may be allocated to high priority packet tran~nission, known as HPPT". Another index is the interrupt boundary byte count (IBBC), which is the excess overhead of the communications 1 assuming the ma~cimum number of high priority packet bytes were corninually transmitted The calculation of the inte'<rupt boundary byte c~mt is described below by the following pseudocode prooe~ses:
1. L~etmnvine the high priority packet time (I~'P'f), which is the arrraucrt of time it takes an active high priority pad module 2001 to construct a high priority and load it in shared mecr~rny 2002 for transmissi~ by the ag~gate module 2005.
2. Detezmine the total number of bytes transmitted by the system in one high priority pact time (~PT,~ where:
HPPT" = link baud rate x HPPT.
3. Determine the number of high priority chcuxls in the node and channels passing through.
4. Determine the meximlun number' of high priority bytes tn~nitted per charmel. In the case of voice over data corrununicaotions, for instance, it is c~~oeivable that the number of high priority byres would be multiplied by a factor of j for j voice generators being transmitted by the link (either originating at the link or passing through).

5. Calculate the sum of the maximum number of high pri~ity bytes transmitted over all the channels, I-iPPT""".
6. Calculate the intelntpt boundary byte count, which is equal to 5 HPPT" - HPPT~",.
A transmission period is defined as the mnovnt of time it takes to transfer arts byte of information. For instance, if the bytes in the system are eight (8) bits long and the baud rate is 9,600 baud, then a transmissi~
10 period is equal to 8/9,600 of a sect or approximately 833 mirxosecottds.
The multiplexing algorithm and my (IC) which polls shared memory 2002 every IBBC transmission periods after the last high priority packet byte is transmitted The IC rrtust increrttestt on each transmission period whether data is being transmitted or not, since the 15 interrupt bomidary byte count interrupt must occur regularly in tirta~, even if there is no low priority packet data to transmit. This that at least every IBBC transmission periods the shared n~r>oty 2002 ~ with pending high Ixiicaity packet c~Ota is polled, and th~efoae, the high priority packet data is regularly detected and transmitted.

In this errtbodimeltt of the preset inv~tia~n ale module 2005 monitors for and detects pending high ptzarity pada~ mid low pricuity packet data in ordex to properly multiplex the pending data. Pending high 25 priority deals is high priority data stored in common memory 2002 and awaiting transrni.SSion via aggregate module 2005. Similarly, pending low priority data is low priority data shed in comtnatt rt~ry 2004 and awaiting transmission via aggregate module 2005. If aggregate module 2005 polls the shared memories 2002 and 2004 and deten~ines that the only 30 periling data is high priority packet deals, voice or fax data, far example, then a module 2005 transmits a voice flame according to tl~ ptntocol green in Figure 16. If aggc~te module 2005 has only digital asyndn~oz>ous data to transfer, then the packet is sent according to the asynchronous channel data flame of Figure 18. If high priority packet data is pending during the transmission of low priority Vita, this embodiment of the present invention will interupt the low priority data transmission on the 5 IBBCth byre of low priority packet data transfer to inset the high priority packet data with an identifying byte to denote which type of data follows. This way the ink at the receiving end need only scan the first byte of header inf~rr~tion on every IBBC+lth word to d~xmine ~ the following data is high priority packet or low priority packet data. Therefore, 10 in this embodiment of the present irlverition, the voiceJfax flame of Figure 16 corrtairls only voioe/fax data, lrovNe~rer, the asyncha~orrers channel data flame of Figure 18 is modified to include both low priority packs and high pri~ity packet data, yielding a hybrid flame similar in format to Figure 18. The hybrid flame length, FM is limited by considerati~rs such as buffer memory 15 sizes and link speed.
The multiplexing algorithm must check far one potemal ambiguity in oonoar of the hybrid frame. Since ideitific~tion ~
are used in the hybrid flame to signal a switch in the datastream firm high priority packet .to low priority packet data, the rrntltzplexing algorithm must 20 check for the case of when a data byte in the IBBCth+1 position in the flame is identical to a voice/fax identification rnnrrber. The receiver would misinterpret such a byte as ~ indicxitor that the datastt~eam switd~ed over to voice data, when in fact, the byte is merely a data byte which t~td~ed the identification rn>mber only by chance. To pct this condition, when a 25 poteltiai idea~tification probletrr arises, the current hybrid flame is terminated and a new hybrid fisnre is transmitted The misidentification is irrrpossible in the new packet, since the header information clearly defines the following bytes as data. However, every time an identification word is piasent in the IBBCth byte, this pmced<ue must be performed to prevart the recxiver from 30 misinterpreting the resulting fiarne. the of this happening are statistically low, and therefore the correction will occx~u~ infi~equently.
For example, in one embodirrxnt where there are 256 possible identification codes _ 55 there is a 1/26 chance of a misinterpretation, assuming a random generation of data bytes.
The following algorithm can be used to multiplex the data:
5 1. Select a hybrid packet len~h (prodetermined based on available buffer memory size and transmission considerations), F~, and 2. Transmit high priority packet and low pri~ity packet data:
2a. if only high priority packet data is pending, transmit the 10 high priority packet data and complete the transmission of high priority pad data before sewing low priority packet data or hybridized low priority packet and high priority packs data (fission of the high priority data is according to the frame protocol of Figure 16);
15 2b. if low priority packet data is pending, - . transmit header information far the iracne, - transmit X bytes of low priority pa~cet data, wherein X is less than or equal to IBBC
(ding on whether the packet leaigth is 20 gmata than or equal to IBBG~, and - ~'P~8h1~~5'P
2c. if there is high priority p~x~et data, insert it into the datastream with the approp~~iate identification rnunber for the high priority packet data at ttar X+lth byte;
25 2d if there is no pealing high priority packet c~ta, then check the IBBCth +1 byte to ensure it is not equivalent to an identification byte;
2e. if this byte is equivalent, then terminate the present fi~ame and send the remaining data via a new fiarne;
30 2f. if the byte is not equivalent, then add IBBC byoes of the low peiority packet to the present &arne ~ until the end of frame is r(F" bytes in the frame);

2g. continue multiplexing low priority packed and high priority packet data in the frame until end of flame is reached (F~ bytes in the flame); and 2h. add en~or con~cti~ bytes to the end of the fiac~
5 (CRCI and CRC2):
Using this algorithm, aggmgate module 2005 polls for high priority data at the befinrung of each transmission of a flame and in IBBC
byte intervals ~ from the transmission of the last high priority data byte. In one embodiment of the preset invention the low priority packet 10 module 2003 transfers packeti~ed data to comrr~n ~ 2004 upon three conditions: (1) reaching a predetermined maximum low priority packet packet byte count; (2) when a flash timer signals the transfer prior to filling the packet up to the packet byte count; or (3) if a high priority header ~ on the IBBC+lth byte in the hybrid stream. Therefore, X may be less than 15 IBBC, since the low priority packet byte cotmt is less than IBBC bytes in cases (1) and (2).
This alg~ithm automatically adjusts the dynamic bandwidth of the high priority packets based on the inseous volume of high Iniority packet iizfonrtation transmitted. Similarly, the width associated with the 20 low priority packets is also airtrnr~ically adjusted to fill the remaining bandwidth left imaged by the high ptirnity padCets. Assuming an ample aunt of low priority lion to be fican.~fared, the bandwidth relationship is described by the equation:
25 No. of high priority pxived + Na of law pnoiity pacl~
d~eived = HhPTo (per HPPT ittbetval).
This censures that the high priont' y packet ion is 30 always c~nrent within every high Iuiority paclaet time irneival as long as the iri~ru~ bomdary byte count is greater than ~eero. The extent to which the interrupt boundary byte count exceeds ~o is indicative of the available bandwidth for low priority packet data. Therefore, the bandwidths of both the high priority packet and low priority packet data are constantly changing to provide continuous transfer of high pri~ity packet data, and maximum handwidth for tc~sf~ of low priority packet data An alte~te embodiment of tl~ fait invemian combir~s the feahu~es of the above embodiment with an additional prioriti~tion scheme for syste~r~s with r~ltiple high priority packet modules. For ale, if multiple high priority packet modules are transceiving infom~ati~ on the system, then latency for paccets passing through the system can be minimizcd by transmitting the high prig ity and low priority paedcets in the following deso~ding order:
1. pass through high priority packets, 2. local high priority packets, 3. pass-through low priority packets, and 4. local low priority packets.
Using this prioritisation the latency for packers passing dmaugln is nW
inni~ed.
In one e<r~bOdin~ent of the present invention the int~n~pt bawr>dary byte count can be coded into the header of the ~&mnes tra~nitted from one node to the next. Other ar~bodirr~nts might employ an irneir~
boundary byte count negotiation when link commmic~rtions are initiated, enabling the bay byte count to be la~ovvn by all active nodes in the system prior to the irnerclange of low priority and high priority packet infom~tion.
Assucrring the receiving node has the intetng~t boundmy byte count ion, the receiver can demultiplex received packets by the following algorithm:
1. fine length counter is set to F".
2. if the frame is an async~ror~ous channel data fig, them the process is as follows:

2a. reading X bytes of data, wherein X is the lesser of the number of bytes read before the end of packet is reached or IBBC bytes are read (the fu~t time this operatic is perfortr~ed, the data must be low priority pa~ck~ data to start with);
2b. ctiedCing the IBBG'th+1 byte for an idenfific~tion byte identifying the following data as continuing low pricxity packet data or high priority packs data;
2c. subtracting X from the flame length c~u~r;
2d. if the identification byte indicates a switch between low priority packet and high ~iority packs data, then storing the following data in the appropriate memory buffer; and 2e. if the flame length counter is gt~eater than ~o, repeating this 3. if the flame is a voice/fax flame, then plea the voice information according to the flame shown in Figure 16.
De~rn~ltiplexed high psiicxity packet fan may be instantly used by the receiver, since enrn ~ and retransmission is not typically perforrr~ed on high priority packet data. This allows the high priority (for instance, voicelfiix information) received to be used irnrriediately, and potentially prior to complete transmission of the hybrid flame by the transmitter.
In this einbodim~t of the prat invention, transmission of rely high priority data (for example, voioe/fax data) employs no error checking mechanisms. Defective high priority flames are discarded or used by the system without significant impact to transmission fidelity. Hybridized flames have error checking incorporated into both the voice and data portions of the flame, however, the receiver requests reroransmission of only the convpt data portior~s (low priority) of each transmission.
One skilled in the art would readily recognize that other flame protocols could be incotpomted without deporting firm the scope and spirit of the present invention, and that other frnms of information, such as video, could be chara~i~ad as low priority packet and high priority packet data for the purposes of this invention. Therefore this embodiment of the present invention is not limiting or exclusive. ~ error ~c~ing and 5 re~nsmission care also possible without modifying the spirit and scope of the present invention.
Advanced priority statistical multiplexing not only high quality and efficient transmissions, but actually reduces processor ove~d in the composite link as the aggregate baud rate of the link inc~es. As baud 10 rates increase, typically ~ boundary byte count values also incaease, since a larger average number of low priority bytes may be transmitted with the high priority bytes. 'Ibis results in less ir~rn~s to the multiplexing hardware in aggre~te module 2005 as link spend inces, since such interrupts are ton the int~n,~pt boundary byte cmmt. The result is an 15 efficient, high quality throughput of the low priority and high prig ity data with a statically minimal amount of pmoaessor ovd at both the transmitting and receiving ends, with improved e»ciaicy with in<xeasing baud rate.

The following examples are providod for demonst<ating di~ent embodin~ of the present ion mid are not exclusive or limiting. Those skilled in the art wild readily ra~gni~e that the param~s 25 and pnxe~u~s demonstrated may be modified without departing from the spirit and scope of the present invention Figure 20B shows the output fio~m one embodiment of a two priority level advar~oed priority statistical multiplexer. Data seat 2020 is an enlargement of one segment of duration equal to one high priority packet 30 tiny taken firm an output data stream 2010. The rnunber of bytes which can be transmitted in a~ high priority pack time is HPPT" 2012. In order to graphically ilhastrate the interrupt boundary byte count, the high ~iority portion of the segment 2020 demonstrates the maximum number of high priority data bytes which can be transmitted in one high priority packet time, HPPT~", 2022. The differ between HPPT" 2012 and HPPT""" 2022 is the interrupt bouru~y byte count 2024. Howcver, in or~ay transmissi~s the 5 high priority porti~ of a segmeart may have anywheat firm pro to HPPT"~"
bytes of high priority data.
Figure 21 demonstrates how 150 bytes of low priority packet data (LPP,~ could be multiplexed with high priority packet data. The details of one example are given in Table 8 below. In this example) high priority 10 packet time is given as 20 cosec and the bail rate is 7 bytes/msec, therefore HPPT" is 140 bytes. HPPT~", is given as 92 bytes, so the IBBC is 140 minus 92 or 48 bytes. As the first byte of LPPx is being transmitted 48 bytes (IBBG~ of LPPx are sent in fiarrre segment 2101. During that segment transmission HPPO becomes available for transmission Since the sheared 15 memory 2002 is polled every IBBC transmission periods after the last high priority byte is sent, HPPO is detected and sent in the rx~ct segment, 2102, which is only 24 bytes long. Since these is still love priority pack data to sad (recall LPPx is 150 bytes long) seg<rient 2103 consists of 48 bytes (IBBC) of LPPx data, however, there is no pen~ng high priority packet data, 20 so another low priority pa~dcet fi~ame segrr~ is sent 2104 of 48 (IBBC) bytes. Since HPPO has become available in segment 2104, it is land tran~itted at byte 168 as 24 bytes of HPPO in segmart 2105. Dicing the transrnissi~ of segment 2105 HPP1, 2, and 3 have beg available, so a total of 68 bytes of HPPl, 2, and 3 are seat in segnarts 2106, 7, and 8, 25 respectively. These pacts are followed by the rernaiaing 6 bytes of LPPx in segment 2109.

S Link Speed = 56,000 bps = 7 Kbytes/sec = 7 bytes/msec HPPT = 20 msec No. high priority chacaarls in mode = 2 (HPPO, HPPI) No. high priority channels passing through = 2 (I~P2, HPP3) Mar. no. of high priority bytes in HPPT = 92 bytes 10 HPPO = 24 bytes HPPl = 33 bytes HPP2 = 22 bytes HPP3 = 13 bytes Mar no of bytes per HPPT = 7 bytesJmsec x 20 msec =140 bytes IBBC = 140 - 92 = 48 bytes LPPx = 1 SO bytes Figure 22- demoa~ates how LPPY of 128 bytes is multiplexed with pending high priority pae~t data. The details of ~ ele are given 20 in Table 9 below. The high priority packet time is given as 20 msec, therefore with a baud rate of 2.4 bytes/rnsec the HPPT" is 48 bytes. HPPT"", is given as 46 bytes, so IBBC is 48 minus 46 or 2 bytes. Mewing the data transfer as the first byte of LPPY is being hm~itted, 2 bytes (IBBC) of LPPy are sent in segment 2201. Then, since HPPl has beg avail~le dtair~g the 25 transmission of this segma~t, HPPI is setrt in segment 2202, which is only bytes leg. Next, 22 bytes of low priority pa~ck~ data are serif in 11 transmissions of 2 bytes in segment 2204. HPPl has become available in the l lth transmission, so transmission of LPPY is to transnnit 23 bytes of HPPI in segmeirt 2205. Meanwhile, HPPO has become available, so the 23 30 bytes of HPPO are sent in seat 2206. The remaining bytes of low priority packet data will be sent in 2 byte increan~ inters~sod thigh priority packet bytes in the same fashion as treated.

Link speed =19,200 BPS = 2,400 Byteslsec = 2.4 bytes/msec HPPT = 20 cosec No. high priority channels in node = 2 (HPPO, HPPI) No. high priority clamnels passing through = 0 Max no. high priority bytes in HPPT = 46 bytes HPPO = 23 bytes HPP 1 = 23 bytes Max. no. bytes per I3PPT = 2.4 bytes/msec x 20 cosec = 48 bytes IBBC = 48 - 46 = 2 bytes LPPY = 128 Bytes 20 Figure 23 shoves the topology of an alteanate embodiment of the present invention incorporating a rx;w data pria~ity level. Figure 23 is similar to Figure 20A in thaot it illustrates a low priority packet module 2303, common memories 2304 aril 2302, and high priority packet module 2301, but shows the additi~ of a rriedium priority pearket module (11~PIVn 2310 which comtrnaucates with an advanced aggregate module 2305 via corrunon memory 2312. Medium priority module 2310 medium priority data, which is data with less time-c~idcality than high priority data but greaoter time criticality than the low priority data An example of mednun priority data is synchronous data or LAN data. The medium priority iWon is multiplexed with the high priority data aril the low priority data by assigning privy' prioril.Y to high Priority data, secondary Priority to the medium priority data, and third priority to the low priority data.
The addition of medium priority data to the present invention requires that the excess non-high priority bandwidth be shared betvveen the low priority data and the medium priority data, based on system needs and the particularities of the low priority and medium priority c~ta. In one ..
embodiment of the present invention the tr~dium priority data takes absolute pry over the low, pri~ity data transfearod. lha~efore, after all the high S pri~ity data is transferred, all medium priority deals is tr~sferred before low lxiarity data can be transfen~ed. In anot~ embot of the present invention low pri~ity data and medium Ixiority data can shoe the non-high priority bandwidths during transmissions, so as to not transfer all mediiun priority information prior to the transfer of low priority information. This may be accomplished by setting a medium pricnity maximum bandwidth, which must be selected to satisfy the transrnissi~ requirements of the medium priority data, Yet still transfer soy low priority data. For instance, the system could transfer high priority infom~ati~ as stated in earlier embodiments and then transfer only 100 byte increments of the medium priority data, depending on the interrupt boundary byte count, filling the remaining bandwidth with low priority data.
The aspects taught for the low and high priorifiy data in preceding sections apply directly to irrtelmediate level systems. Calculation of the various ~r~mission indices is for a thmee level system is identical to that for a two level system, excxpt that the ir~n~pt botux~ty byte cxamt must be shared betv~ri the mednurl ar>d low priority data. The multiplexing and dernultiplexing rare similar as well, except new identification bytes must be used to identify intermediate priority in the fim~. In addition, further checking will be needed to ensume that those new identification bytes are not misinteapreted by the receiver by c~Cking the IBBC+lth byte for both high priority and irmern~ediate priority identification codes.
Other iriterr~diate priority levels are possible and can be arbitrated in a similar fashion. For example, a four level system (two intermediate levels) or five level system (three intsrtnediate levels) is contemplated by different etnbodimems of the prat invention. In addition, time criticality is not the only factor by which c~ta may be segregated, and other factors known to those skilled in the art may be substituted. For example, priority could be assigned to packets acxarding to a priority based on their origination or destination, rather than on a time priority basis.
Priority could also be assigned based on the contexrt of the infom~ation 5 (other than time-aiticality).
Several priority hietamhies can be established within the scope and spirit of the pre~t invention and many variations of priority assignment are possible. Therefore, the examples given are f~ illustrative purposes and are not limiting or exclusive.
10 Many of the examples given in this ion oonoem the voice over data application of advanced pa~i~ity statistical multiplexing, however; several other applications exist and the concepts of low, high, and intermediate prig ity data apply equally well to those applications as well.
In specific voice over data embodiments the words "voice data" and "high 15 priority data" were ofl~r used interchangeably, as wage "asynchronous data"
and "low priority data". Those skilled in the art will readily appreciate that the of the present invention which w~a~e applied to high priority, inteerxr~ediate priority, and low priority data are applicable to a variety of transmissions and are not limited to the specific embodiments p~ted.
20 I~'rgh priority data could be video as well as voice. I~iate lxiaaity data could be synchrony data or LAN data. Other variatiars lmavm to those skilled in the art are included as well.
25 The transmission of facsimile information is perfaa~d by demodulating the fax transmissions, sending only the facsimile image packets over the multiplexed composite link and remodulating the facsimile signals at the remote site for retransmission over an analog telepho~ line to a remote facsimile machine. The ulaoting arxi remodulaxing of the facsimile 30 image by the preseart invention is ~t to the facsimile machines exit that certain proprietary facsimile protocols are suppressed by the stripping off the pmprietacy information from the facsimile header packets.

The facsimile tone is demodulated in the digital domain by DSP 620 and the facsimile data is placed in a data similar to the voice data packet described above in Table 2 except the header of the packet distinguishes b~ween voice data and facsimile deals.

Ald~ough specific embodime~s have been illustrated and described hea~eir~, it will be appreciated by those of ordinary skill in the art that any anangetr~nt which is calculated to achieve the same purpose may be 10 substituted for the specific embodiment shown. This application is intended to cover ~y dons or variations of the pit inverrtion. Therefore, it is manifestly intended that this invention be limited only by the claims and the equivalents thereof.

Claims (36)

  1. What is claimed is:

    A method for transmitting information, comprising the steps of:
    if there is pending high priority data and pending low priority data to be transferred, then sending a hybrid frame by the steps including:
    (1) transmitting the pending high priority data;
    (2) transmitting up to K bytes of the pending low priority data, K
    not to exceed an interrupt boundary byte count, wherein the interrupt boundary byte count is equal to a number of bytes transferable in a high priority packet time minus a maximum number of high priority bytes generated per the high priority packet time, and wherein the high priority packet time is an interval of time between a generation of a plurality of high priority bytes; and (3) transmitting further high priority data and low priority data by the steps including:
    (i) if there is high priority data to be transferred, transmitting the high priority data, the high priority data preceded by a high priority data identifier; and (ii) if there is low priority data to be transferred, transmitting up to K bytes of low priority data.
  2. 2. The method of claim 1, further comprising the step of:
    checking a memory for pending high priority data and pending low priority data to be transferred over a link.
  3. 3. The method of claim 1, further comprising the steps of if there is pending high priority data and no pending low priority data, then sending a high priority packet; and if there is pending low priority data and no pending high priority data, then sending a low priority packet.
  4. 4. The method of claim 1, further comprising the step of transmitting a hybrid frame header.
  5. 5. The method of claim 1, further comprising the step of inserting a high priority data identifier preceding the high priority data.
  6. 6. The method of claim 1, wherein the step (3) of transmitting further high priority data and low priority data further comprises the step of:
    (iii) repeating steps (i) and (ii) until one or more termination conditions occurs, the one or more conditions including (A) transmission of a set number of low priority bytes.
  7. 7. The method of claim 1, wherein the step (3) of transmitting further high priority data and low priority data further comprises the step of:
    (iii) repeating steps (i) and (ii) until one or more termination conditions occurs, the one or more conditions including (A) transmission of a set number of low priority bytes, (B) detection that a first byte of the K bytes of low priority data matches a high priority data identifier.
  8. 8. The method of claim 1, wherein the step (3) of transmitting fiuther high priority data and low priority data further comprises the step of (iii) repeating steps (i) and (ii) until one or more termination conditions occurs, the one or more conditions including (A) transmission of a set number of low priority bytes, (B) detection that a first byte of the K bytes of low priority data matches a high priority data identifier, and (c) there is no pending low priority data for a set time interval.
  9. 9. The method of claim 1, wherein the high priority data includes voice data.
  10. 10. The method of claim 1, wherein the high priority data includes facsimile data.
  11. 11. The method of claim 1, wherein the high priority data includes video data.
  12. 12. The method of claim 1, wherein the step of (1) of transmitting the high priority data comprises the step of placing a byte count identifier preceding the high priority data.
  13. 13. The method of claim 1, further comprising the step of placing a frame identifier prior to any data.
  14. 14. The method of claim 1, further comprising the step of placing an error correction code in the hybrid frame.
  15. 15. The method of claim 1, wherein the interrupt boundary byte count is calculated by:
    determining a maximum number of bytes transferred across a link in one high priority packet time, B, by multiplying the high priority packet time by a bit rate of the link divided by a number of bits per byte;
    determining a maximum number of high priority data bytes transmitted over the link in one high priority packet time, M; and subtracting M from B to obtain an interrupt boundary byte count.
  16. 16. The method of claim 1, wherein the maximum number of high priority bytes generated per the high priority packet time is calculated by including a maximum number of high priority bytes generated for each channel passing through.
  17. 17. A method for transmitting information, comprising the steps of:
    (a) checking a memory for pending high priority data and pending low priority data to be transferred over a link;
    (b) if there is pending high priority data and no pending low priority data, then sending a high priority packet;

    (c) if there is pending low priority data and no pending high priority data, then sending a low priority packet; and (d) if there is pending high priority data and pending low priority data to be transferred, then sending a hybrid frame by the steps including:
    (1) transmitting a hybrid frame header;
    (2) transmitting the pending high priority data, the pending high priority data preceded by a high priority data identifier;
    (3) transmitting up to K bytes of the pending low priority data, K
    not to exceed an interrupt boundary byte count, wherein the interrupt boundary byte count is equal to a number of bytes transferable in a high priority packet time minus a maximum number of high priority bytes generated per the high priority packet time, and wherein the high priority packet time is an interval of time between a generation of a plurality of high priority bytes; and (4) transmitting further high priority data and low priority data by the steps including:
    (i) if there is high priority data to be transferred, transmitting the high priority data, the high priority data preceded by a high priority data identifier;
    (ii) if there is low priority data to be transferred, transmitting up to K bytes of low priority data; and (iii) repeating steps (i) and (ii) until one or more conditions occurs, the one or more conditions including (A) transmission of a set number of low priority bytes, (B) detection that a first byte of the K bytes of low priority data matches a high priority data identifier, and (c) there is no pending low priority data for a set time interval.
  18. 18. The method of claim 17, wherein the high priority data includes voice data.
  19. 19. The method of claim 17, wherein the high priority data includes facsimile data.
  20. 20. The method of claim 17, wherein the high priority data includes video data.
  21. 21. The method of claim 17, wherein the step of inserting comprises the step of placing a byte count identifier at the beginning of the high priority data.
  22. 22. The method of claim 17, further comprising the step of placing a frame identifier prior to any data.
  23. 23. The method of claim 17, further comprising the step of placing an error correction code in the hybrid frame.
  24. 24. The method of claim 17, wherein the interrupt boundary byte count is calculated by:
    determining a maximum number of bytes transferred across a link in one high priority packet time, B, by multiplying the high priority packet time by a bit rate of the link divided by a number of bits per byte;
    determining a maximum number of high priority data bytes transmitted over the link in one high priority packet time, M; and subtracting M from B to obtain an interrupt boundary byte count.
  25. 25. A method for receiving information, comprising the steps of:
    (1) detecting a hybrid frame;
    (2) receiving a next byte in the hybrid frame;
    (3) if the next byte is a high priority data identifier, receiving one or more high priority data bytes in the hybrid frame;
    (4) if the next byte in the hybrid frame is not a high priority identifier, receiving one or more bytes of low priority data, the number of low priority bytes not to exceed the interrupt boundary byte count, wherein the interrupt boundary byte count is equal to a number of bytes transferable in a high priority packet time minus a maximum number of high priority bytes generated per the high priority packet time, and wherein the high priority packet time is an interval of time between a generation of a plurality of high priority bytes; and (5) returning to step (2) until a last data byte of the hybrid frame is received.
  26. 26. The method of claim 25, wherein step (1) of detecting a hybrid frame comprises the step of decoding a frame identifier.
  27. 27. The method of claim 25, wherein the interrupt boundary byte count is received from a remote source.
  28. 28. The method of claim 25, wherein the interrupt boundary byte count is calculated, comprising the steps of determining a maximum number of bytes transferred across a link in one high priority packet time, B, by multiplying the high priority packet time by a bit rate of the link divided by a number of bits per byte;
    determining a maximum number of high priority data bytes transmitted over the link in one high priority packet time, M; and subtracting M from B to obtain the interrupt boundary byte count.
  29. 29. The method of claim 25, further comprising the step of decoding an error correction code to determine whether an error occurred.
  30. 30. The method of claim 25, wherein the step (3) of if the next byte is a high priority data identifier, receiving one or more high priority data bytes in the hybrid frame, comprises the step of processing the one or more high priority data bytes.
  31. 31. The method of claim 25, wherein the step (4) of if the next byte in the hybrid frame is not a low priority identifier, receiving one or more bytes of low priority data, comprises the step of storing the one or more bytes of low priority data in a memory.
  32. 32. A method for receiving information, comprising the steps of:
    (a) detecting an identifier to determine a type of packet being received;
    (b) if a high priority packet is detected, receiving high priority data;
    (c) if a low priority packet is detected, receiving low priority data; and (d) if a hybrid flame is detected, receiving low priority data and high priority data by the steps including:
    (1) receiving a next byte in the hybrid frame;
    (2) if the next byte is a high priority data identifier, receiving one or more high priority data bytes in the hybrid frame;
    (3) if the next byte in the hybrid frame is not a high priority identifier, receiving one or more bytes of low priority data, the number of low priority bytes not to exceed the interrupt boundary byte count, wherein the interrupt boundary byte count is equal to a number of bytes transferable in a high priority packet time minus a maximum number of high priority bytes generated per the high priority packet time, and wherein the high priority packet time is an interval of time between a generation of a plurality of high priority bytes;
    (4) returning to step (1) until a last data byte of the hybrid frame is received; and (5) error checking the low priority data using an error correction code from the hybrid flame;
    wherein the high priority data is processed with a higher priority than the low priority data.
  33. 33. The method of claim 32, wherein the interrupt boundary byte count is received from a remote source.
  34. 34. The method of claim 32, wherein the interrupt boundary byte count is calculated, comprising the steps of:
    determining a maximum number of bytes transferred across a link in one high priority packet time, B, by multiplying the high priority packet time by a bit rate of the link divided by a number of bits per byte;

    determining a maximum number of high priority data bytes transmitted over the link in one high priority packet time, M; and subtracting M from B to obtain the interrupt boundary byte count.
  35. 35. The method of claim 32, wherein the step (3) of if the next byte in the hybrid frame is not a low priority identifier, receiving one or more bytes of low priority data, comprises the step of storing the one or more bytes of low priority data in a memory.
  36. 36. The method of claim 32, wherein the high priority data is processed as received and the low priority data is stored.
CA002276198A 1994-04-19 1995-04-18 Advanced priority statistical multiplexing communication method Abandoned CA2276198A1 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US08/229,958 1994-04-19
US08/229,958 US5682386A (en) 1994-04-19 1994-04-19 Data/voice/fax compression multiplexer
US08/333,365 1994-11-02
US08/333,365 US5757801A (en) 1994-04-19 1994-11-02 Advanced priority statistical multiplexer
CA002188171A CA2188171C (en) 1994-04-19 1995-04-18 Data/voice/fax advanced priority statistical multiplexer

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CA002188171A Division CA2188171C (en) 1994-04-19 1995-04-18 Data/voice/fax advanced priority statistical multiplexer

Publications (1)

Publication Number Publication Date
CA2276198A1 true CA2276198A1 (en) 1995-11-02

Family

ID=31191498

Family Applications (2)

Application Number Title Priority Date Filing Date
CA002276198A Abandoned CA2276198A1 (en) 1994-04-19 1995-04-18 Advanced priority statistical multiplexing communication method
CA002276196A Abandoned CA2276196A1 (en) 1994-04-19 1995-04-18 Multiplex information network

Family Applications After (1)

Application Number Title Priority Date Filing Date
CA002276196A Abandoned CA2276196A1 (en) 1994-04-19 1995-04-18 Multiplex information network

Country Status (1)

Country Link
CA (2) CA2276198A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10306329B2 (en) 2016-11-30 2019-05-28 The Directv Group, Inc. Facilitating mixed service use of bonded satellite transponders

Also Published As

Publication number Publication date
CA2276196A1 (en) 1995-11-02

Similar Documents

Publication Publication Date Title
EP0756796B1 (en) Data/voice/fax advanced priority statistical multiplexer
US5682386A (en) Data/voice/fax compression multiplexer
US5812534A (en) Voice over data conferencing for a computer-based personal communications system
US5787088A (en) Method and system for interoperating between ISDN and PSTN transport for allowing simultaneous transmission of voice and data over one telephone line
EP0851653B1 (en) Local telephone service over a cable network using packet voice
US5412660A (en) ISDN-to-ISDN communication via satellite microwave radio frequency communications link
US6263016B1 (en) Methods for interfacing a subscriber link to digital networks
US6320867B1 (en) Method and apparatus for hierarchical management of subscriber link traffic on digital networks
US5619508A (en) Dual port interface for a computer-based multifunction personal communication system
US5768350A (en) Real-time and non-real-time data multplexing over telephone lines
US5815503A (en) Digital simultaneous voice and data mode switching control
TW387171B (en) Transmission equipment for an interexchange connection
US6868081B1 (en) Method and apparatus for simultaneous multiline phone and data services over a single access facility
EP0843442A2 (en) Communication system for communicating a plurality of time-division multiplexed data, and control method therefor
MXPA96005498A (en) Method and system to interoperate between integrated services digital network transportation and a public switched telephony network, to allow simultaneous transmission of voice and data on a telephone line
JPH03121665A (en) Communication system
JPH07250188A (en) Communication between noncompressive sound and data at modemfor multifunctional personal communication system based on computer
AU2004244647A1 (en) Call processing system and method in a voice and data integrated switching system
US6839341B1 (en) Device capable of accommodating existing voice terminals
CA2276198A1 (en) Advanced priority statistical multiplexing communication method
KR20010105042A (en) Multiple telecommunication coupling device
WO1996015601A2 (en) Voice over data conferencing communications system
US7035282B1 (en) Wideband telephones, adapters, gateways, software and methods for wideband telephony over IP network
JP2002516509A (en) Method and apparatus for real-time transmission of compressed data
KR100322017B1 (en) Method for transferring voice signal in isdn

Legal Events

Date Code Title Description
EEER Examination request
FZDE Dead