|
Description  |
|
|
BACKGROUND OF THE INVENTION
The present invention relates to cable television and particularly to a
technique whereby a cable subscriber can send a request via telephone to
the cable operator to receive only a selected cable program. This is known
as an "impulse pay per view" system.
The preferred embodiment of the present invention is compatible with
one-way addressable CATV systems. Prior to describing the invention, it
will be useful to have a rudimentary understanding of a typical one-way
addressable CATV system. In use, a cable operator at a "headend" station
receives signals via satellite, microwave, and super trunks, encodes the
signals, modulates them, and provides them to the cable plant. The cable
plant is a distribution network typically carrying up to 80 channels or
move over a distance of up to 20 miles or so to various subscribers. Each
of the cable subscribers is provided with a one-way addressable converter
(also called a decoder) which is connected to the cable and to a
television receiver or monitor. The basic function of the converter is to
interface the cable signals with the subscriber according to authorization
codes received from the headend. The subscriber will select a channel
containing a program desired to be viewed. The converter will determine
whether that channel or program on the channel is authorized for viewing
by the subscriber. If so, the converter descrambles the selected signal
provided by the cable operator and provides a descrambled signal to the
television receiver or monitor. The scrambling may, for example, be done
by sync suppression wherein sync information is randomly suppressed, as
well as video inversion.
To achieve the foregoing system, use may be made of the vertical blanking
interval, e.g., line numbers 10, 11, 12 and 13, or an out-of-band data
channel during which information can be transmitted by the headend station
to the subscribers or any selected subscriber. Each converter has a
respective unique address code illustratively having 20 binary bits so
that over one million subscribers can be individually addressed by the
headend. Additionally, each converter typically includes a random access
memory (RAM) whixh is capable of storing 20 bits, for example. Each of the
stored bits is representative of a service or channel which may be
subscribed to. Typically, at installation, the RAM is loaded with all zero
bits. When the subscriber chooses the services he wants, that information
will be entered as data in a subscriber data base. The subscriber data
base is accessed by a system controller at the headend station which is
capable of addressing any or all of the converters in the field. The
system controller also communicates with a billing and management
computer.
More particularly, in this example the system controller transmits a
selected 20 bit address code (sometimes referred to as an "identification
code") followed by an associated authorization code using each of line
numbers 10, 11, and/or 12 in the vertical blanking interval. Each
converter receives the 20 bit address code, but only one converter will
decode it as matching its own unique address. Following the transmitted 20
bit address code are the five bits of the authorization code. These five
authorization bits will be loaded into a proper location in the RAM, the
location having been determined by information from line 13 in the prior
field. The RAM in the converter will illustratively contain 20 bits
arranged in four groups which may be called row A, row B, row C, and row
D. Illustratively, the five bit authorization code will be loaded into one
of the rows of the RAM. Line number 13 of the vertical interval is used to
transmit a "program tag," a "market code," and further information to the
converters in the field. The market code is used to prevent a converter
from being taken from one cable market to another market. The transmitted
program tag is used to identify a particular channel or program and is
compared in the addressed converter with the stored authorization bits to
establish whether that converter is authorized to descramble the
corresponding program material. Illustratively, this is done by performing
a logical AND operation between the 5 bit program tag transmitted on line
13 of the channel which has been selected by the subscriber with the
content of a selected row of the RAM. The result of this logical operation
will indicate to the converter whether the selected channel or program on
the channel has been authorized to be descrambled by the converter. It
will be appreciated that each of the channels transmitted by the cable
operator has its own respective program tag. This particular system has
exceptional versatility in that the contents of the RAM at any
subscriber's converter can be changed instantly via the system controller
through the transmission of the appropriate address code during the
vertical blanking interval followed by updated information for storage in
the RAM. Moreover, there can be tiers of authorization wherein various
programs on a given channel will be authorized for some subscribers but
not for others, depending on the service to which they have subscribed.
For further information about one such addressable system, refer to
Ensinger and Hendrickson U.S. Pat. No. 4,460,922, whose disclosure is
hereby incorporated, which patent is owned by Zenith Electronics Corp.
To date, the market penetration of cable systems has been on the order of
only 50 percent. Some television owners prefer not to pay the monthly
charges for cable service to receive one or more of the packages or
services provided by the cable operator. These non-subscribers, however,
may be willing to pay the cable operator for only an occasional program.
Such type of service is called "pay per view". In order to achieve this
and to provide control over billing, the cable operator must have
information regarding what programs are desired by various subscribers. In
an addressable CATV system of the type described above, for example, a
particular subscriber's converter may be updated so that it will
descramble a given program--once it is determined that the subscriber is
willing to pay for that program. This can be done by having the subscriber
telephone the cable operator in advance of the program to be purchased,
mail a postcard, or communicate by some other means.
The problem with this type of service, however, is that it precludes
impulse purchases and simultaneous response from the time the pay-per-view
subscriber determines he wishes to purchase a particular program and the
time it is actually viewed by him. It would be considerably more
advantageous to permit a subscriber to obtain immediate results by, for
example, pushing a button. This would alert the cable operator to a
request for service. The system controller at the headend station
immediately would change the contents of the RAM at that subscriber's
converter to permit the selected program to be descrambled. This is called
"impulse pay per view" (IPPV) service.
The problem facing the industry is how to provide a system permitting IPPV
service. In 1975, the Federal Communications Commission mandated that all
cable systems being installed would be required to have two-way
communications capability. This would permit interaction between the
subscriber and the headend station. To date, about 20 percent of installed
systems are capable of two-way communications, and of these only about
one-half have active two-way communication. With two-way communication,
the subscriber can use his home terminal or other unit to communicate with
the headend station and achieve IPPV. The problem, however, resides in
providing a mechanism for other subscribers served by one-way cable
systems, which constitute the vast majority, to have IPPV service.
For cable subscribers without two-way cable systems, a hydrid system is
required for impulse pay per view service. This involves a telephone
request by a subscriber for a PPV cable event followed by delivery from
the cable operator headend station to the individual subscriber of a new
authorization level permitting the PPV cable event to be descrambled.
The problem with hybrid systems using the telephone is substantial. The
telephone system in a given city or community includes one or more central
offices, each communicating with up to about 50,000 telephone subscribers.
Each of the several central offices communicates with the others by trunk
cables. The headend station of the cable operator will be located within a
region serviced by one central office. When cable subscribers telephone
for pay per view service, their telephone central offices will route all
of the telephone calls to the one central office servicing the headend
station. Too many telephone requests at the same time to the cable
operator can cause the telephone central office to "crash" due to
excessive requests for physical telephone connections between numerous
telephone subscribers and a single cable operator headend station. This
problem is common to all hybrid systems, whether a manual telephone system
or an automatic dialing system is used.
Further problems attend manual call-in systems and auto-dialing systems.
The manual call-in systems are labor intensive, require long processing
and holding time, have limited capacity, are not impulse in nature, and
have lower penetration. They also involve possible human error.
Auto-dialing systems have an advantage over manual systems, except that
there is the additional expense of in-home installation of the automatic
dialer.
To avoid overloading on the telephone system, one solution to providing
IPPV service for one-way addressable cable systems would be to refrain
from making physical telephone connections between the cable subscribers
and the headend station through the various central offices. To achieve
this, a new system based on automatic number identification passing
referred to as "ANI passing" has been developed. ANI passing is an upgrade
achieved by adding software to some central offices or by adding hardware
to others, depending on their existing capabilities. In ANI passing, the
central office of the telephone company will collect information based on
each subscriber telephone call and pass it on to other equipment.
Thus, when a cable subscriber intends to make an IPPV request and picks up
his telephone (takes it "off-hook"), a dial tone is issued to the
subscriber's premises by the telephone company, and the telephone number
is automatically identified, as customary within the telephone company.
Now the cable subscriber can enter information using the telephone.
Typically, to place a phone call, seven digits (or ten, if an area code is
needed) are entered. To use ANI passing, however, some prescribed sequence
of digits is used. This can take virtually any form. For example, the
subscriber may enter "*85" or any other prescribed NNX number (exchange
number) and then some number of digits, such as four further digits. In
general, however, the total number of digits need not be seven, so long as
some prescribed subscriber-entered information alerts the telephone
company central office not to make a physical connection between the
telephone subscriber and whatever location is identified by the code which
follows the reserved block of codes which follows the NNX (or *85 signal).
After dialing the NNX number, for example, the cable subscriber will
provide further information on the telephone by sending illustratively
four digits. Hence the telephone transmission to the central office may
take the following form: NNX-YVVZ. In this illustrative examle, the code
represented by NNX activates the ANI passing system at the central office.
The remaining four digits YVVZ identify what the subscriber wants to do.
Illustratively, the Y digit is used to identify the cable company. In any
given metropolitan area, there will be fewer than ten different cable
operators, so the one digit (Y) will be able to identify the cable
operator uniquely. Illustratively, the next two digits represented by VV
identify the event or cable television program which the cable subscriber
wishes to purchase. Next, the Z digit may represent a password which is
useful for security purposes. For example, within a given household where
a cable television system has been installed, parents may, through the use
of a password, prevent access by children to certain types of pay per view
programming. Alternatively, the Z digit can be used for other purposes. In
using "*85, five digits can be entered by the cable subscriber to his
telephone, for a total of, for example, seven digits preceded by one
special character. One of the digits may identify the cable company, two
of the digits may identify the cable event to be purchased (or canceled),
and two digits may be used as a password. It will be understood that these
are purely illustrative, and that wide variation can occur.
As mentioned, the NNX or *85 message tells the telephone central office
that it need not make a physical connection. This avoids overburdening the
telephone plant. In response to receiving such an ANI transmission, the
receiving telephone central office will collect and store data. Then, it
will communicate by the system of the present invention with the cable
headend station which has been "telephoned" and provide it with various
information, including the telephone number of the cable subscribers who
called, the user entered data, and various other information. In an area
served by plural cable companies, the equipment at the telephone company
central offices will send data, using the present invention, to the plural
cable companies.
The object of the present invention is to provide a system which will
receive information from the telephone company central offices and
implement the impulse pay per view requests by cable subscribers in a
satisfactory manner.
A related object of the invention is to provide a system having the ability
to receive data from the telephone companies as fast as the information
can be provided using the ANI passing systems.
Another object of the present invention is to permit the authorizations of
the subscribers to be checked in real time.
A further object is to translate the telephone number of the cable
subscriber (provided by the telephone company) into a cable subscriber
code at a fast rate.
BRIEF DESCRIPTION OF THE DRAWINGS
In describing the various aspects of the present invention, reference will
be made to the accompanying drawings wherein:
FIG. 1 is a block diagram of a system according to the present invention
showing plural central offices and a headend station;
FIG. 2 is a block diagram of one of the several telephone communication
units (TCUs);
FIG. 3 is a flow chart of the TCU software;
FIGS. 4A and 4B are diagrams of the telephone communication controller
(TCC) located at the cable headend station, and FIG. 4C is a flow chart of
part of the TCC operations pertaining to adaptive window multiplexing;
FIG. 5 is a flow chart of the TCC software;
FIGS. 6A, 6B and 6C are diagrams of the multiplexer circuitry;
FIG. 7 describes the inputting of data to the multiplexer from the TCC;
FIG. 8 describes the outputting of data from the multiplexer to the system
controller;
FIG. 9 shows the message format of the data sent from the multiplexer to
the system controller;
FIG. 10 shows the phase inverted synchronous input/output buffer system
used in the system controller;
FIG. 11 is a sketch illustrating processing by the system controller, CATV
encoder, and billing computer;
FIG. 12 is a sketch showing the two level searching used in the mapping
algorithm applied in the system controller; and
FIG. 13 illustrates further how the four words sent to the system
controller are processed.
DESCRIPTION OF THE PREFERRED EMBODIMENT
FIG. 1 shows a block diagram of a system according to the present
invention. The preferred embodiment of the invention is the Zenith
PHONEVISION system. As shown, the system comprises a plurality of
telephone communication units (TCUs) 20 each located at a corresponding
telephone company central office 22. Several central offices 22 are shown
in FIG. 1 to indicate the several central offices of any metropolitan area
. In the preferred embodiment of the present invention there may be as
many as sixteen central offices. Also located at the telephone company
central office is an automatic number identification (ANI) computer 24.
The ANI computer is provided by the phone company and is activated upon
receipt of a telephone call from a customer utilizing a special ANI
telephone code. The ANI computer then provides specific information to its
TCU on a cable 26.
Coupled to each telephone communication unit 20 is a corresponding modem
30. Modems 30 are coupled via leased telephone lines 32 or other
communication channels to corresponding modems 34 located at a cable
headend station 36. Each modem 34 is coupled by a cable 38 to a respective
telephone communication controller (TCC) 40. The TCC's 40 are in turn
coupled to a multiplexer 42 by a bus 44. Multiplexer 42 selects which one
of the TCCs corresponding to the various telephone company central offices
will supply data to a system controller 46. The system controller in turn
is coupled to a cable TV encoder 48 as well as a billing computer 50.
In order to utilize the impulse pay per view system of the preferred
embodiment described herein, a cable television subscriber would tune his
addressable cable television decoder to the desired channel. The cable
subscriber would then use his telephone to enter the ANI telephone code
and then four or more digits. Two of the digits entered by the cable
subscriber signify the particular IPPV cable event the subscriber wishes
to view. Two of the other digits for illustrative purposes constitute a
password number or could be used to identify which of a plurality of
encoder units the subscriber wishes to enable for the desired cable event.
The telephone company central office 22 serving the cable subscriber's
telephone area will be alerted by the ANI code so that when it receives
the call, it will transform the "dialed" phone number (called the
"destination telephone number") and other data into the so-called bulk
calling line identification (BCLID) format by using the ANI computer. It
will be understood that other protocols can be used by the telephone
company, and that the present invention is not limited to the specific
protocol adopted. In any event, the telephone company central office will
not connect the incoming call from the cable subscriber to its local
switch. Thus, the telephone company central offices will not become
overburdened with the incoming calls from nunerous cable subscribers who
may all be calling on impulse to purchase a particular cable event.
The ANI computer at the telephone company central office will send the
BCLID data (using seven bit ASCII code) to the TCU 20 located at the
central office. The data is sent serially at 1200 baud in RS-232 format.
The BCLID message contains ASCII characters representing the seven digit
"destination telephone number," the ten digit origination telephone
number, as well as considerable other data such as carriage return and
line feed, a BCLID input/output message identifier, numerous ASCII spaces,
the time of day in hours, minutes and seconds, the terminating line status
and the calling line status indicator. The data sent in the telephone
company's BCLID format is shown in Table I.
The "destination telephone number" carries the information entered by the
cable subscriber. This will include the cable event which is to be
purchased and the password. Ordinarily, this will comprise the last four
of the seven digits entered by the subscriber, although any number of
digits could be entered, and of these, any nunmber could be dedicated to
identifying the program to be purchased, a password, an identifier of
which particular converter box at the subscriber's premises is to be used,
and any other information deemed necessary or desirable by the cable
company.
TABLE I
______________________________________
Format of BCLID Message Sent
By ANI Computer 24 to TCU 20
<cr-lf>BCsaabbccssdddddddsoooooooooosfsgs<cr-lf>
______________________________________
<cr-lf>
All messages start and stop with carriage
return line feed
BC
BCLID I/O message identifier
ASCII "space"
aa
Hours (24 hour format)
bb
Minutes
cc
Seconds
ddddddd
7-digit "destination telephone number"
oooooooooo
10-digit origination telephone number
f
Terminating line busy, idle status,
("0" = idle, "1" = busy)
g
Calling line DN multi-status indicator
______________________________________
This data is sent by the ANI computer 24 to its corresponding TCU 20
asynchronously without handshaking, and can be a continual data stream.
The TCU 20 must be able to receive and transmit the data as fast as the ANI
computer 24 can send it. To promote speed, each TCU 20 strips away
unneeded data and temporarily stores the remaining data in a buffer. The
stored data is then transmitted synchronously to the cable headend station
using a telephone line 32. Preferably, a contracted synchronous data link
control (SDLC) protocol is used for transmitting the data from each TCU 20
to its corresponding TCC 40 at the cable headend station. After the data
has been transmitted to the headend station, the TCU 20 waits for an
acknowledgment message from the headend TCC 40 before transmitting the
next data packet. If no acknowledgment or a negative acknowledgment
message is received, TCU 20 retransmits the previously transmitted data
packet. The TCU 20 provides for error free transmission to TCC 40 with no
data loss. Since much of the unnecessary information of Table I is
removed, as will be described, by the TCU 20, and due to the buffering
occurring at each TCU 20, each TCU 20 is able to operate at a rate fast
enough to keep up with ANI computer 24. Each TCU 20 also provides for the
conversion of the BCLID data received fron the phone company to the
modified SDLC protocol format.
A block diagram of a TCU 20 located at one of the telephone central offices
is shown in FIG. 2. It includes an Intel 8085 central processing unit
("CPU") 52, a 4k.times.8 static RAM 53, a 16K.times.8 EPROM 54, a
4k.times.8 EPROM 55, two Intel 8250 Asynchronous Communication Elements
56, 57, an Intel 8273 programmable HDLC/SDLC protocol controller 58, chip
select logic 59 and watchdog reset circuitry 60. A sixteen bit address and
eight bit data bus 61 provide communication among the various components
of TCU 20. The serial data from the telephone office ANI computer 24 is
applied to a serial data input pin of communication element 57 by a line
62 which is coupled to cable 26 through a line receiver (not shown). The
equipment on this board, according to the preferred embodiment, has two
asynchronous channels and one synchronous channel.
The CPU 52 in the preferred embodiment illustratively operates at four
megahertz. Its instruction code is stored in EPROM 54. The EPROM 55 may
contain look-up tables. RAM 53 is used to buffer data packets, for stack
purposes and for program use. Chip select logic 59 is used to determine
whether the read or write operation is required of the memory mapped
devices and to determine the exact device being addressed.
As mentioned, once the data from the telephone office ANI computer 24 is
received, TCU 20 strips away unwanted data. The data that is kept is the
seven digit (illustratively) "destination telephone number" entered by the
cable subscriber (which includes the data the cable event to be
purchased), the ten digit phone number of the cable subscriber, the
terminating line status and the calling line indicator. These nineteen
characters are ASCII characters, and are temporarily stored or buffered in
RAM 53 to await transmission to the corresponding TCC 40 at cable headend
station 36.
FIG. 3 contains a flow chart of the software which controls the inputting
of data from the telephone office ANI computer 24 and the outputting of
data to the cable headend TCC 40. A listing of the TCU software is
contained in Appendix I. Referring to FIG. 3, after data is received from
ANI computer 24 at block 64, unwanted data is stripped, temporarily
stored, and then sent in packets to the headend unit as shown at blocks
65, 66 and 67. Then TCC 20 determines at decision diamonds 68 and 69
whether a positive acknowledgment has been received from the headend. If
not, retransmission of the data packet occurs, as indicated by route 70.
If there is stored data in RAM 53, determined at diamond 71, further data
packets are sent to the headend, as indicated by route 72. Otherwise, data
continues to be received, as always, and put into a buffer (RAM) until
processed.
The nineteen ASCII characters sent by TCC 20 to its TCC 40 are sent via a
line using a contracted SDLC protocol which is reflected in Appendix I.
Briefly, however, the SDLC protocol is modified to preserve the package
format, zero bit insertions, and the frame check sequence ("FCS code"),
with all else eliminated. The data is sent synchronously, serially, at
1200 baud, and is RS-232 compatible. Handshaking is used, so that for
every packet sent from the TCU 20, a positive acknowledgment is required
in the preferred embodiment before the next packet is transmitted. Table
II shows the illustrative message format of the data sent from a TCU 20 to
its TCC 40. Table III shows the illustrative acknowledgment message sent
from a TCC 40 to its corresponding TCU 20.
TABLE II
______________________________________
Message Sent From
The TCU To The TCC
[address] [packet ID]NNXDDDDAAACCCCLLLYZ[FCS] [FCS]
______________________________________
[ ] denotes an 8-bit quantity
address = FF hex
NNX = ANI identifier, e.g., *85 or 1st 3 digits of
destination phone no.
D = User data
A = Area Code
C = First 4-digits of subscriber's phone number
L = Last 3-digits of subscriber's phone number
Y = Terminating line status (line busy or not)
Z = Calling line indicator (public line or private
branch exchange)
[FCS] = Frame check sequence for error checking
______________________________________
TABLE III
______________________________________
Acknowledgment Message
Sent From The TCC 40 To The TCU 20
[address] [packet ID] [acknowledgment byte] [FCS] FCS]
______________________________________
acknowledgment byte
= C3 hex for NACK
= A5 hex for ACK
[ ] denotes an 8-bit quantity
______________________________________
It will be understood that these processes occur at each of the several
central offices of the telephone company serving the cable companies
areas. The system as described so far collects data in real time. The
collected data are the requests of subscribers, and this is achieved using
a system compatible with ANI passing. Data is sent from multiple telephone
central offices to a cable headend station. The data provided includes the
subscriber's telephone number and his request, which is couched in the
destination telephone number.
Turning now to the cable headend station 36, the basic functions of each
TCC 40 in the preferred embodiment are to receive data packets from the
several telephone central offices 22, store the data temporarily, perform
some conversions into binary and BCD, reformat the data, and communicate
it quickly to system controller 46 via temporary storage in multiplexer
42. As seen in FIG. 1, there are several TCC units 40 corresponding to the
several telephone central offices 22.
A block diagram of an illustrative TCC 40 located at the cable headend
station 36 is shown in FIG. 4A. The same components are used in the TCC 40
as in the TCU 20, and in the same configuration. As with TCU 20, this
board has asynchronous and synchronous capability. In TCC 40, the
synchronous port of the 8250 chips are used. Each TCC 40 additionally
includes a board select and I/O bus control logic circuit 74 shown more
particularly in FIG. 4B. This circuitry illustratively comprises two Intel
8255 programmable peripheral interface (PPI) chips represented by 75, an
eight bit transceiver 76, a four bit magnitude comparator 77 and a four
pole DIP switch 78. Switch 78 is used to set the select address of the
particular TCC. For example, the first TCC would have all four poles of
the switch arranged so that each outputs a logic "0." The switch outputs
are connected to one side of the magnitude comparator, and the other side
of the comparator is coupled to four board select lines 79 coupled to
multiplexer 42. When comparator 77 sees a match in its two inputted
values, it generates a match signal that is inputted via a serial input
data (SID) line 80 to the CPU of FIG. 4A alerting it that the TCC board is
being offered the opportunity by multiplexer 42 to output data.
The I/O control logic part of circuit 74 handles the outputting of eight
bit parallel data sent to multiplexer 42. In order to transfer data from
TCC 40 to multiplexer 42, a check is made to ensure that multiplexer 42 is
ready to receive a data byte. Then transceiver 76 (FIG. 4B) is enabled by
the one of PPI chips 75. The data to be transferred is then written into
the same PPI chip. If multiplexer 42 is ready, the data byte is strobed
into the multiplexer by performing a write operation. Four bus control
lines 81, 82, 83 and 84 (CLEAR/RESET, STOP, FULL, WRITE) are used to check
if the multiplexer is ready for data and to strobe the data into the
multiplexer.
This process can be referred to as part of what is referred to herein as
"adaptive window multiplexing" wherein multiplexer 42 addresses in
sequence each of several TCCs 40, any of which may or may not have data to
output. However, the time allotted to any one TCC is not fixed, as in
conventional multiplexing. For the most part, the time taken by any single
TCC 40 depends on how much data, if any, needs to be sent from that TCC 40
to multiplexer 42, subject to limitations of the memory used for buffering
in the multiplexer, as described infra. Referring to FIG. 4C, multiplexer
42 provides address outputs in sequence. The CPU on each TCC 40 looks for
its own address (i.e. the address of its board) being issued by the
multiplexer, as indicated by diamond 85. The CPU will know whether it has
any data (stored temporarily in RAM) to send. If there is such data, then
when the CPU sees its address issue, it will stop multiplexer 42 from
progressing to the address of the next TCC in sequence by bringing the
STOP line 82 low, indicated at block 86. A short time later (interposed
for example by the execution of a few instructions), the CPU on TCC 40
checks to make sure that the address at which multiplexer 42 did stop is
indeed the address of this particular TCC 40 (diamond 87). If so, then the
CPU will cause a fast data transfer (at a rate of 56K bytes/sec) to the
multiplexer (block 88, 89, 90). If the address is wrong, then the CPU will
release STOP line 82, and thereby multiplexer 42, and not send data (block
91). This is a double check to ensure that only one TCC 40 sends data to
the multiplexer 42 connected to bus 44. In FIG. 4B, bus 44 comprises lines
79 and 81 to 84.
As stated, each TCC 40 has circuitry 74 not included in any of the TCUs 20.
While each TCC 40 uses different software than the TCUs, both the TCU and
the TCC program is stored in the 16K.times.8 EPROM, and the 4K.times.8 RAM
is used to buffer data, for stack purposes and for program use. The RAM
has a portion which is used as an input buffer and another portion used as
an output buffer. A flow chart of the software used in the TCC of FIG. 4A
is shown in FIG. 5. A listing of the TCC software is contained in Appendix
II.
An important function of each TCC 40 in the preferred embodiment is to
convert the ASCII data received from its corresponding TCU 20 into a
format more readily usable by the system controller 46, which preferably
is a Hewlett-Packard HP-1000 computer. The conversion occurs at block 94
of FIG. 5. The last three digits of the originating phone number (LLL in
Table II) are converted into a ten bit binary number. The first four
originating digits (CCCC in Table II) are converted into a fourteen bit
binary number. The area code of the originating phone number is converted
into a two bit binary number (it being assumed that no more than four area
code regions are covered by the several telephone central offices which
serve the subscribers of the cable operator). The numbers entered by the
cable subscriber (DDDD in Table II) representing the cable event and the
password are converted into binary coded decimal (BCD) values.
The following example illustrates the novel conversion of a three digit
ASCII number to a ten bit binary number. In this example "h" following a
number indicates that hexadecimal base is used and "d" indicates that the
number is a decimal number. The number to be converted is 0110100 (34h)
0110011 (33h) 0110010 (32h), i.e. 432d. The least significant ASCII digit
(i.e., the decimal "2" in the "ones" decimal column) is converted into its
binary equivalent by subtracting 30h from the digit: 32-30=02h. The second
ASCII digit (the next most significant digit, i.e. the "3" in the "tens"
column) is then converted to binary with tens-place weighting. This is
converted to binary as in the previous conversion, i.e. 33h-30h=03h. Then
the base address of a look-up table stored in an EPROM in TCC 40 for the
tens units is added to this value in order to find an address in the
look-up table. Then, using this address, a value is obtained from the
look-up table. For the number 03h in the tens place, the value read from
the look-up table is 1Eh (30d). This is a weighted conversion process. The
same weighted conversion process is used for the third ASCII digit, but
with different weighting. For 04h (34h-30h) in the hundreds place, the
look-up table value is 190h (400d). The hexadecimal values are then
combined: 190h+1Eh+02h=1B0h (432d). The conversion process for a four
digit ASCII number is similar to the process explained above except, of
course, thousands-place weighting is also used.
The following is an example of a conversion of a three digit ASCII value
area code to a two bit binary number. In this example "b" following a
number indicates that the number is in binary, and again "h" indicates
hexadecimal. The area code to be converted is 33 31 32, i.e. 312d. The
first ASCII digit is converted into a hexadecimal value by subtracting 30h
(32h-30h=02h). The second digit is converted in the same manner
(31h-30h=01h=00000001b) and this value is rotated left four places
(0000001b.fwdarw.00010000b). The first and second values are then
combined, and stored in a register of the CPU of the TCC 40
(000000010b+00010000b=00010010b=12h). The third ASCII digit is converted
into a hexadecimal value to which the look-up table base address (F0h) is
added (33h-30h=03h; 03h+F0h=F3h). The sum value is stored in a CPU
register. The first and second register pair (F312h) contains the address
where the desired two bit value is found corresponding to the 312 area
code.
After the ASCII numbers are converted into the appropriate form, they are
stored (block 95 of FIG. 5) in the output buffer portion of the on-board
RAM of TCC 40 until multiplexer 42 indicates that it is ready to receive
data (indicated at 96). In addition, the data to be sent to the
multiplexer is arranged in a particular format by the TCC 40 before it is
transferred. This is done so that when the data is eventually sent to
system controller 46, it will be able to process the data without
excessive manipulation. The format of the data sent to multiplexer 42 is
shown in Table IV. As can be seen, the data is transferred (block 97) in
eight bytes, each byte having eight bits. Note that byte 1 contains the
two bit binary area code data as well as the first six binary bits of the
converted last four digits of the originating phone number. Note also that
zeros are inserted into a portion of byte 3 and in all eight bits of bytes
5 and 7.
TABLE IV
______________________________________
Data Sent To The
Multiplexer From the TCC
______________________________________
BYTE 1: [(2-bit area code) (1st 6-bits of CCCC)]
BYTE 2: [remaining 8-bits of CCCC]
BYTE 3: [000000(1st 2-bits of LLL)]
BYTE 4: [remaining 8-bits of LLL]
BYTE 5: [00000000]
BYTE 6: [8-bit event #]
BYTE 7: [00000000]
BYTE 8: [8-bit user pass word]
C = One of the first 4 digits of subscriber's telephone
number (now binary)
L = One of the last 3 digits of subscriber's telephone
number (now binary)
______________________________________
Several steps are taken in each TCC 40 to ensure the reliability of data.
The system overwrites (block 98) any data which is retransmitted (which
can occur when a negative acknowledgment issues) (decided at diamond 99).
This avoids excessive data. Note also that in this flow chart, if TCC 40
determines that data is to be received from its TCU 20 (diamond 100) then
the TCC will postpone a data transfer, even if data is in the output
buffer (decided at diamond 101). Thus, inputting has priority over
outputting, to ensure against losing data. The rationale is that inputted
data and data ready for outputting can both be buffered. The data transfer
rate on outputting is so high (illustratively 56K bytes/sec) that some
delays can be tolerated to allow for inputting.
A block diagram of the preferred embodiment of multiplexer 42 is shown in
FIG. 6A. The multiplexer performs three major functions, namely: (1)
selecting one of the sixteen possible TCCs to receive data from at any
given time, (2) buffering the received data until system controller 46 is
ready to receive it, and (3) transferring the buffered data to the system
controller.
Multiplexer 42 illustratively comprises two Mostek 4501 first-in, first-out
(FIFO) dual port memory chips 102, 103, bus interface control and buffer
load logic 104, oscillator and select logic 106, reset circuitry 108,
input/output control logic 110 and two output buffers 112 and 114. Data is
received from TCC 40 on an eight bit data bus 116 and transmitted to the
system controller 46 on a sixteen bit data bus 118.
The oscillator and select logic 106, illustrated further in FIG. 6B,
selects which one of the TCC units 40 data is to be received from. This
oscillator circuitry may comprise a schmitt-trigger inverter with its
output looped back to its input through a low-pass filter to form an 8 KHz
oscillator 120 (FIG. 6). This clock signal is used to perform dummy read
operations during a system controller request for reset and to increment a
board select counter. The board select counter of circuit 106 is
illustratively a four bit binary counter 121 with its Enable control
coupled to a single stop line 122 which in turn is coupled to all sixteen
of the TCC units 40. Counter 121 continually cycles from 0 to 15 until
halted by any of the TCC 40 requesting a data transfer by taking stop line
82 low. Once the data transfer is completed (i.e., the output buffer
portion of the RAM in the TCC of the addressed TCC has been emptied), stop
line 82 is returned high by such TCC 40, and counter 121 is allowed to
resume its counting in order to address the next TCC in sequence. As shown
in FIG. 5, if there is no data in the output buffer of the addressed TCC
(decision diamond 101), then such TCC will not seize the opportunity to
write data onto the eight bit bus 116 (FIG. 6) coupled to multiplexer 42.
Instead, such TCC 40 will continue receiving and processing synchronously
sent packets of data from its TCU 20 and will permit multiplexer 42 to
address the next TCC 40 in sequence. Thus, the length of time or the
window during which data is received by the multiplexer from a particular
TCC adapts ac | | |