United States Patent5619274
Roop , ; et al.April 8, 1997

Title

Television schedule information transmission and utilization system and process

Abstract

Television schedule information transmission and utilization systems (50A-50D) transmit TV schedule data and associated network control messages provided by computer (54) as packets via the Video Blanking Interval (VBI) lines in the TV signal from various television program providers (51). This data is acquired by regional data processing systems and forwarded by the regional data processing systems to subscriber units (52) and used to construct an internal database. This internal database can be accessed by the subscriber unit (52) to display a TV schedule for the channels that are received by the user's TV.


Inventors:Roop; John H. (Palo Alto, CA), Ebright; Alan R.  (Los Gatos, CA), Kochy; Jeffrey J.  (San Jose, CA), Warden; David P.  (Redwood City, CA), Sokolik; Konstantine  (Redwood City, CA), Alegiani; Giambattista A.  (San Francisco, CA)
Assignee:StarSight Telecast, Inc. (Fremont, CA)
Appl. No.:243598
Filed:May 13, 1994

Current U.S. Class:348/461 348/478 725/39 725/54 725/68 
Field of Search:348/906,460,461,478,473,474,468,467,465,6,8,10,7,12,13,5,9,476 358/335 455/5.1,3.1,3.2

U.S. Patent Documents
3848193November 1974Martin et al.
3987398October 1976Fung
4287592September 1981Paulish et al.
4307446December 1981Barton et al.
4347498August 1992Lee et al.
4587514May 1986Schas et al.
4691351September 1987Hayashi et al.
4706121November 1987Young
4710971December 1987Nozaki et al.
4742543May 1988Frederiksen
4751578June 1988Reiter et al.
4787085November 1988Suto et al.
4829569May 1989Seth-Smith et al.
4857799August 1989Spindt et al.
4866770September 1989Seth-Smith et al.
4868866September 1989Williams, Jr.
4890321December 1989Seth-Smith et al.
4908707March 1990Kinghorn
4908713March 1990Levine
4977455December 1990Young
4987486January 1991Johnson et al.
4991011February 1991Johnson et al.
4994908February 1991Kuban et al.
4994909February 1991Graves et al.
5001554March 1991Johnson et al.
5053883October 1991Johnson
5075771December 1991Hashimoto
5077607December 1991Johnson et al.
5091936February 1992Katznelson et al.
5099319March 1992Esch et al.
5151789September 1992Young
5182640January 1993Takano
5200823April 1993Yoneda et al.
5220420June 1993Hoarty et al.
5283639February 1994Esch et al.
5285272February 1994Bradley et al.
5301028April 1994Banker et al.
5319707June 1994Wasilewski et al.
5337155August 1994Cornelis
5343300August 1994Hennig
5345594September 1994Tsuda
5355480October 1994Smith et al.
5357276October 1994Banker et al.
B14706121December 1993Young
Foreign Patent Documents
0055674A1Dec., 1981EP
01018380Jan., 1989JP
0566454Oct., 1993EP
0648980Aug., 1990AU
2556549Dec., 1992GB
2918846A1May., 1979DE
PCT/US89/05806Dec., 1989WO
PCT/US92/10110Nov., 1992WO
PCT/US93/11649Dec., 1993WO
PCT/US94/00593Jan., 1994WO
PCT/US94/00711Jan., 1994WO
PCT/US94/01486Feb., 1994WO
PCT/US94/01487Feb., 1994WO
PCT/US94/01488Feb., 1994WO
PCT/US94/06340Jun., 1994WO
PCT/US94/06341Jun., 1994WO
PCT/US94/06361Jun., 1994WO
Other References
A James, "Oracle--Broadcasting the Written Word", Wireless World, Jul. 1973, pp. 314-316. .
G.A. McKenzie, "Oracle--An Information Broadcasting Service Using Data Transmission in the Vertical Interval", Journal of the SMPTE, Jan. 1974, vol. 83, No. 1, pp. 6-10. .
N. W. Green, "ORACLE--The Problems of Implementing a Teletext System On Independent Television and Their Solution", Colloquium on Broadcast and Wired Teletext Systems-Ceefax Oracle, Viewdata Organized by Professional Group E14, Jan. 13, 1976, Digest No. 197613. .
G. Robinson and W. Loveless, "`Touch-Tone` Teletext, A Combined Teletext-Viewdata System", IEEE Transactions On Consumer Electronics, vol. CE25, No. 3, Jul. 1979, pp. 299-303. .
G.O. Crowther, "Teletext and Viewdata Systems and Their Possible Extension To Europe and USA", IEEE Transactions On Consumer Electronics, vol. CE25, No. 3, Jul. 1979, pp. 288-294. .
Joseph Roizen, "Teletext in the USA", Journal of the SMPTE, Jul. 1981, pp. 602-610. .
Jan Gecsei, The American Architecture Of Videotex Systems, 1983, pp. 174-177; 233-238. .
S. Money, Teletext and Viewdata (1979) "Ch. 10: Viewdata", pp. 112-123. .
System as described in DIP II ad. .
System as described in Cable Data ad..~
Primary Examiner: Metjahic; Safet
Attorney, Agent or Firm:Cooley Godward LLP

Parent Case Text



ORIGIN OF THE INVENTION

This application is a continuation in part of commonly assigned Young et al., U.S. patent application Ser. No. 08/198,538, filed Feb. 18, 1994, now U.S. Pat. No. 5,479,268 and entitled "User Interface for Television Schedule System," which is in turn a file wrapper continuing application of U.S. patent application Ser. No. 07/579,555, filed Sep. 10, 1990, now abandoned. This application is further a continuation in part of copending, commonly assigned Roop et al., Pending U.S. patent application Ser. No. 08/239,225, filed May 4, 1994 and entitled "Television Schedule Information Transmission and Utilization System and Process," Attorney Docket STAR-005/00US.

Claims


What is claimed is:
1. In a television schedule information transmission system including a direct broadcast satellite, a central data processing system having means for transmitting television schedule data for the direct broadcast satellite to the direct broadcast satellite, and subscriber data processing systems having means for receiving the television schedule data for the direct broadcast satellite from the direct broadcast satellite, the improvement which comprises a plurality of regional data processing systems, each located in a region of a predetermined territory, a means for transmitting television schedule data for the predetermined territory to said plurality of regional data processing systems, said plurality of regional data processing systems each including means for receiving the television schedule data for the predetermined territory, means, coupled to said means for receiving the television schedule data for the territory, for selecting the television schedule data for the region in which each of said plurality of regional data processing system is located and means, coupled to said means for selecting the television schedule data for the region, for transmitting the television schedule data for the region to a plurality of said subscriber data processing systems in each of the regions.

2. The television schedule information transmission system of claim 1 in which each of said plurality of subscriber data processing systems includes means for receiving the television schedule data for the region from the one of said plurality of regional data processing systems for the region, means, coupled to said means for receiving the television schedule data for the direct broadcast satellite and to said means for receiving the television schedule data for the region, for storing at least a portion of the television schedule data received by the subscriber data processing system from said direct broadcast satellite and the one of said plurality of regional data processing systems, means, coupled to said means for storing, for assembling portions of the stored television schedule data received by the subscriber data processing system for display to a user of the subscriber data processing system and a display coupled to said means for assembling portions of the schedule information data to display the assembled portions of the schedule information data.

3. The television schedule information transmission system of claim 1 in which said system additionally includes at least one intermediate data processing system between at least one of said plurality of regional data processing systems and a portion of the plurality of subscriber data processing systems in a region in which said at least one of said plurality of regional data processing systems is located, said intermediate data processing system including means for receiving the television schedule data for the region from said at least one of said plurality of regional data processing systems, means, coupled to said means for receiving the television schedule data for the region, for selecting television schedule data for the portion of the plurality of subscriber data processing systems in the region from the television schedule data for the region and means, coupled to said means for selecting television schedule data for the portion of the plurality of subscriber data processing systems, for transmitting the television schedule data for the portion of the plurality of subscriber data processing systems in the region, said means for transmitting being coupled to the portion of the plurality of subscriber data processing systems.

4. The television schedule information transmission system of claim 3 in which said at least one intermediate data processing system is a cable operator data processing system.

5. The television schedule information transmission system of claim 1 in which the schedule information data is transmitted in the form of commands, the commands including instructions for the plurality of subscriber data processing systems in each region and television schedule information used by the commands to assemble portions of the television schedule information to display the portions of the schedule information data.

6. The television schedule information transmission system of claim 5 in which the schedule information commands for the predetermined territory include region commands each identifying channels which are available in one of the regions in the territory and a region identification, each of said regional data processing systems having a region identification for comparing with the region identification of each region command to recognize region commands intended for that regional data processing system.

7. The television schedule information transmission system of claim 1 in which said means for transmitting schedule data for the direct broadcast satellite is configured to transmit the television schedule data for the direct broadcast satellite as commands, said means for transmitting television schedule data for the predetermined territory is configured to transmit the television schedule data for the predetermined territory as commands and said means for transmitting the television schedule data for the region is configured to transmit the television schedule data for the region as commands, said plurality of subscriber data processing systems in each of the regions includes a means for determining if certain of the television schedule data in the commands has already been acquired by the subscriber data processing system, and in which the certain of the television schedule information is acquired if it has not already been acquired.

8. The television schedule information transmission system of claim 7 in which the certain of the television schedule information includes show titles.

9. The television schedule information transmission system of claim 8 in which the show titles include character strings that have previously been acquired.

10. The television schedule information transmission system of claim 7 in which the certain of the television schedule information includes missing data for future time periods.

11. The television schedule information transmission system of claim 1 in which each of said plurality of subscriber data processing systems in each of the regions includes a memory for storing database items comprising the television schedule data, each of the database items having a handle as an index into a handle table identifying memory locations corresponding to the handle.

12. In a television schedule information transmission system, the method which comprises transmitting television schedule data including day, time and channel of television programs for a direct broadcast satellite to the direct broadcast satellite, receiving the television schedule data for the direct broadcast satellite from the direct broadcast satellite at a subscriber data processing system, transmitting television schedule data including day, time and channel of television programs for a predetermined territory to a plurality of regional data processing systems each located in a region of the territory, receiving the television schedule data for the predetermined territory in a regional data processing system located in a region of the predetermined territory, selecting the television schedule data for the region in which the regional data processing system is located and transmitting the television schedule data for the region to the subscriber data processing system for use by a user along with the television schedule data for the direct broadcast satellite to select television programs for reception.

13. The method of claim 12 additionally comprising the steps of receiving the television schedule data for the region from the regional data processing system for the region at the subscriber data processing system, storing at least a portion of the television schedule data received by the subscriber data processing system from the direct broadcast satellite and the regional data processing system, assembling portions of the stored television schedule data received by the subscriber data processing system for display to a user of the subscriber data processing system and displaying the assembled portions of the television schedule data.

14. The method of claim 13 in which the television schedule data received by the subscriber data processing system from the direct broadcast satellite and the regional data processing system is stored as database items comprising the television schedule data, each of the database items having a handle as an index into a handle table identifying memory locations corresponding to the handle.

15. The method of claim 12 additionally comprising the steps of receiving the television schedule data for the region at an intermediate data processing system between the regional data processing system and the subscriber data processing system, selecting a portion of the television schedule data for the subscriber data processing system from the television schedule data for the region and transmitting the portion of the television schedule data for the subscriber data processing system to the subscriber data processing system.

16. The method of claim 12 in which the television schedule data is transmitted in the form of commands, the commands including instructions for the subscriber data processing system and television schedule data used by the commands to assemble portions of the television schedule data to display the portions of the television schedule data.

17. The method of claim 16 in which the television schedule data commands include a region command identifying channels which are available in the region and a region identification, the regional data processing system having a region identification for comparing with the region identification of the region command to recognize the region command intended for the regional data processing system.

18. The method of claim 16 additionally comprising the steps of determining if certain of the television schedule data in the commands has already been acquired by the subscriber data processing system, and acquiring the certain of the television schedule data if it has not already been acquired.

19. A television schedule information system, comprising:
(a) a central data processing system;
(b) a data source coupled to the central data processing system, the data source having:
(1) television schedule data including day, time and channel of television programs for direct broadcast satellite and for a predetermined territory;
(c) the central data processing system comprising:
(1) a formatter that changes the television schedule data received from the data source into formatted television schedule data conforming to a predetermined format; and
(2) a central transmitter coupled to the formatter which transmits the formatted television schedule data received from the formatter;
(d) a direct broadcast satellite which receives the formatted television schedule data for the direct broadcast satellite from the central transmitter;
(e) a plurality of regional data processing systems, each regional data processing system receiving the formatted television schedule data for the predetermined territory for the central transmitter and comprising:
(1) a data selector which selects a regional portion of the formatted television schedule data for the predetermined territory; and
(2) a regional transmitter coupled to the data selector which transmits the regional portion of the formatted television schedule data to a corresponding region;
(f) a plurality of subscriber data processing systems located in each region, comprising:
(1) a data receiver which receives the formatted television schedule data for the direct broadcast satellite from the direct broadcast satellite and at least part of the regional portion of the formatted schedule data supplied by the regional transmitter;
(2) a data selector coupled to the data receiver to select at least some of the formatted television schedule data from the direct broadcast satellite and at least some of the regional portion of the formatted television schedule data from the regional transmitter;
(3) a memory coupled to the data selector which stores the formatted television schedule data selected by the data selector;
(4) a data assembler coupled to the memory which assembles portions of the formatted television schedule data stored in the memory; and
(5) a display coupled to the data assembler that displays the assembled portions of the schedule data.

20. The television schedule information system of claim 19 in which said system additionally includes:
(g) at least one intermediate data processing system between at least one of the plurality of regional data processing systems and a portion of the plurality of subscriber data processing systems in a region in which said at least one of said plurality of regional data processing systems is located, said intermediate data processing system including:
(1) an intermediate receiver which receives the regional portion of the formatted television schedule data from the regional transmitter;
(2) an intermediate data selector coupled to the intermediate receiver which selects a part of the formatted television schedule data for the portion of the plurality of subscriber data processing systems in the region from the regional portion of the formatted television schedule data; and
(3) an intermediate transmitter coupled to said intermediate data selector which transmits the part of the formatted television schedule data for the portion of the plurality of subscriber data processing systems in the region, said intermediate transmitter being coupled to the portion of the plurality of subscriber data processing systems.

21. The television schedule information system of claim 20 in which said at least one intermediate data processing system is a cable operator data processing system.

22. The television schedule information system of claim 19 in which the formatted television schedule data is transmitted in the form of commands, the commands including instructions for the plurality of subscriber data processing systems in each region and television schedule data used by the commands to assemble portions of the television schedule data to display the portions of the television schedule data.

23. The television schedule information system of claim 22 in which the formatted television schedule data commands for the predetermined territory include region commands each identifying channels which are available in one of the regions in the territory and a region identification, each of the regional data processing systems having a region identification for comparing with the region identification of each region command to recognize region commands intended for that regional data processing system.

24. The television schedule information system of claim 22 in which each of the plurality of subscriber data processing systems in each of the regions includes:
(3) a comparator coupled to the data selector which determines if certain of the formatted television schedule data in the commands has already been acquired by the subscriber data processing system,
and in which the certain of the formatted television schedule data is acquired by a subscriber data processing system in said plurality of subscriber data processing systems if it has not already been acquired.

25. The television schedule information system of claim 24 in which the certain of the formatted television schedule data includes show titles.

26. The television schedule information system of claim 25 in which the show titles include character strings that have previously been acquired.

27. The television schedule information system of claim 24 in which the certain of the formatted television schedule data includes missing data for future time periods.

28. The television schedule information transmission system of claim 19 in which the memory in each of said plurality of subscriber data processing systems stores database items comprising the formatted television schedule data, each of the database items having a handle as an index into a handle table identifying memory locations corresponding to the handle.

29. A television schedule information system, comprising:
(a) a central data processing system with a transmitter which transmits first and second television schedule data including day, time and channel of television programs for a direct broadcast satellite and for a predetermined territory, respectively;
(b) a direct broadcast satellite which receives the first television schedule data from the transmitter of the central data processing system and re-transmits the first television schedule data;
(c) a plurality of regional data processing systems each of which receives the second television schedule data, selects second television schedule data corresponding to a region of the receiving regional data processing system and transmits the second schedule data for the region to the region;
(d) a plurality of subscriber data processing systems, each of which receives the first television schedule data from the direct broadcast satellite and second television schedule data from one of the regional data processing systems and assembles the first and second television schedule data for display; and
(e) a television coupled to one of the plurality of subscriber data processing systems which displays at least some of the first and second assembled schedule data.

30. The television schedule information system of claim 29 in which at least some of the subscriber data processing systems receive the second television schedule data from:
(f) an intermediate data processing system coupled between the one of the regional data processing systems and the at least some of the subscriber data processing systems.

31. The television schedule information system of claim 30 in which the intermediate data processing system is a cable operator data processing system.

32. The television schedule information system of claim 29 in which a memory in each of the subscriber data processing systems stores database items comprising the first and second television schedule data, each of the database items having a handle as an index into a handle table identifying memory locations corresponding to the handle.

Description

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to a system and method for broadcasting, receiving and using television schedule information. More particularly, it relates to such a system and method in which the television schedule information is broadcast in, e.g., the vertical blanking interval (VBI) of a television broadcast, a schedule of television programs for a user's broadcast area or cable system is compiled from the broadcast, and the schedule is displayed on the user's television set for interactive use. As used herein, the term "broadcast" is used in a broad sense to include such transmission modes as cable and telephonic transmission.

2. Description of the Prior Art

It is known in the art to provide an interactive television program schedule system utilizing broadcast schedule information. For example, such a schedule system is disclosed in commonly assigned Young, U.S. Pat. No. 4,706,121, issued Nov.
10, 1987 and the above referenced Young et al. pending application.

In the design of such a schedule system, only a limited amount of memory and data processing capability can be provided in the user's equipment that receives the schedule information broadcast, compiles the schedule for the user's broadcast area or cable system, displays the schedule on the user's television set and interacts with the user, while enabling that equipment to be provided at a low enough price for mass marketing. This memory and data processing limitation was recognized by Hallenbeck, U.S. Pat. No. 5,038,211, issued Aug. 6, 1991. The solution proposed by Hallenbeck is to subdivide the schedule information into prioritized categories, store the highest priority category, and as much of the lower priority categories as possible in the amount of memory available. A significant problem with this approach is that less information may be provided about programs in the schedule when there are more programs in the schedule and the need for more information is greatest. Further development in light of the memory and processor limitations of consumer electronics is therefore required.

When schedule information is transmitted as part of a program broadcast signal and a prior art subscriber unit acquires the schedule information from the program broadcast signal, a potential problem arises when previously broadcast programs have been recorded on a VCR and are played back. The prior an subscriber unit lacks any ability to distinguish a video signal generated from a recorded program from a video signal received in real time from a broadcast. As a result, the subscriber unit may overwrite more recent program schedule information acquired from a real time broadcast with older program schedule information coming from a video tape.

Proposals to transmit television schedule information with television broadcast signals often use a low bandwidth transmission mode, such as one or more lines in the vertical blanking interval (VBI) of the television broadcast signals. The use of such low bandwidth transmission modes means that the format and management of the transmissions must be carefully planned in order to avoid practical problems. For example, when a schedule update is to be transmitted, unless special provisions are made for such updates, worst case transmission delay until the update is received and entered in a user's subscriber unit could amount to five hours, the time for transmission of a complete schedule for a week in an NTSC television broadcast signal using one line of the VBI for the schedule information. In the case of last minute schedule changes, such a delay would be unacceptable.

Data encryption is essential for a subscription-based broadcast television schedule system. Without data encryption, the schedule information could be acquired and used by pirate user equipment without payment of the subscription fee. However, decryption of encoded data is a processor intensive. A conventional approach of encrypting the entire schedule information transmission requires a faster and more expensive microprocessor than would otherwise be suitable for the subscriber units.

When implementing a television schedule system on a national or even international basis, provision must be made for different time zones. Adjusting times in the schedule for the different time zones in the process of transmitting the schedule adds substantial overhead to the data transmission. It would be desirable to eliminate the need for such adjustments in the transmission.

It may be desirable in the operation of a television schedule system to provide the schedule information embedded at different places in the television signal at different parts of the system in order to avoid the necessity of imposing uniformity throughout the system. To do so, it is necessary to provide a way for recipients of the schedule information to identify it in the television signal.

In the operation of a broadcast television schedule system, acquisition of new schedule information by the subscriber units consumes a substantial proportion of available microprocessor processing time. When obsolete schedule information is deleted and new schedule information is acquired, a substantial portion of the new information, such as program titles, duplicates information already present in stored schedule information or to be deleted with the obsolete schedule information. Avoiding the deletion of information that will form part of new schedule information would help to minimize the amount of processor time devoted to the acquisition of new schedule information.

Because of the severe memory limitations in consumer electronic products, it is necessary to use the memory efficiently in order to provide as much information and as much functionality in the subscriber unit as possible with the available memory.

SUMMARY OF THE INVENTION

Accordingly, it is an object of this invention to provide an interactive television program schedule system and method that can be implemented with low cost microprocessors and memory in subscriber data processing systems.

It is another object of the invention to provide an interactive television program schedule system and method in which television program schedule data is transmitted and stored in a manner that allows a low cost microprocessor suitable for use in a mass produced consumer product to carry out subset searching of the television program schedule data.

It is a further object of the invention to provide such a system and method in which television program schedule information is transmitted in an efficient manner.

It is still another object of the invention to provide such a system and method in which the television program schedule information is acquired by the subscriber data processing systems in an efficient manner.

It is a still further object of the invention to provide such a system and method in which fast schedule updates to accommodate schedule updates can be provided with a low bandwidth transmission system.

It is yet another object of the invention to provide such a system and method that will be able to distinguish between currently broadcast schedule information and older schedule information included with a broadcast that was recorded.

It is yet a further object of the invention to provide such a system and method in which schedule update information is given priority treatment.

It is another object of the invention to provide such a system and method in which the schedule information transmission is selectively encrypted.

It is a further object of the invention to provide such a system and method in which a single system time is employed in schedule information transmission portions of the system and compensation for local time is carried out in the subscriber units.

It is still another object of the invention to provide such a system and method in which the subscriber units are able to identify schedule information provided in different locations of a television broadcast signal.

It is still another object of the invention to provide such a system and method in which portions of schedule information already acquired by a subscriber unit and which duplicate portions of new schedule information are retained, so that such schedule information portions need not be acquired again by the subscriber unit.

It is yet another object of the invention to provide such a system and method in which data compression is employed in a unique way to make most efficient use of available memory.

The attainment of these and related objects may be achieved through use of the novel television schedule information transmission and utilization system and method herein disclosed. In one aspect, a television schedule information transmission and utilization system in accordance with this invention has a central data processing system. A means is connected to the central data processing system for providing schedule information data for a predetermined territory to the central data processing system. The central data processing system includes means for formatting the schedule information data for the predetermined territory into a predetermined schedule information transmission format. A means is coupled to the central data processing system for transmitting the schedule information data for the predetermined territory in the predetermined schedule information transmission formats. A plurality of regional data processing systems, each located in a region of the predetermined territory, include means for receiving the schedule information data for the predetermined territory, means for selecting the schedule information data for the region in which each of the plurality of regional data processing systems is located and means for transmitting the schedule information data for the region. A plurality of subscriber data processing systems are in each of the regions. Each of the plurality of subscriber data processing systems include means for receiving at least a portion of the schedule information data for the region, means for storing the schedule information data received by the subscriber data processing system, means for assembling portions of the schedule information data received by the subscriber data processing system for display to a user of the subscriber data processing system and a display connected to the means for assembling portions of the schedule information data to display the portions of the schedule information data.

In another aspect of the invention, a television schedule information transmission system includes a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory and subscriber data processing systems in the predetermined territory. The system is improved with a plurality of regional data processing systems, each located in a region of the predetermined territory. The plurality of regional data processing systems each include means for receiving the schedule information data for the predetermined territory, means for selecting the schedule information data for the region in which each of said plurality of regional data processing systems is located and means for transmitting the schedule information data for the region to a plurality of the subscriber data processing systems in each of the regions.

In a further improvement of the television schedule transmission system, the means for transmitting the schedule information data for the region in each of said plurality of regional data processing systems has an ability to transmit the schedule information data for the region in different places of a television broadcast signal. Each of the subscriber data processing systems includes a means for locating the schedule information data in the television broadcast signal.

In a further aspect of the invention, a method in a television schedule information transmission system includes transmitting schedule information data for a predetermined territory to a plurality of regional data processing systems each located in a region of the territory. The schedule information data for each region is selected with its regional data processing system The schedule information data for each region is transmitted with its regional data processing system to a plurality of subscriber data processing systems in each region. Portions of the schedule information data received by each subscriber data processing system are assembled for display to a user of each subscriber data processing system. The portions of the schedule information data are displayed to the user.

The method further desirably includes having at least some of the plurality of regional data processing systems transmit the schedule information data in different places of a television broadcast signal. Each of the plurality of subscriber data processing systems locates the schedule information data in the television broadcast signal.

In still another aspect of the invention, a television schedule information transmission system includes a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory. The system is improved by providing means in the central data processing system for transmitting the television schedule data as commands. The commands include instructions for the plurality of subscriber data processing systems in the system and television schedule information in elemental form used by the commands in the plurality of subscriber data processing systems to assemble and display a television schedule.

In a still further aspect of the invention, a method in a television schedule information transmission system includes transmitting commands from a central data processing system to a plurality of subscriber data processing systems. The commands include instructions for the plurality of subscriber data processing systems in the system and television schedule information used by the commands in the plurality of subscriber data processing systems to assemble and display a television schedule. The television schedule is assembled from the television schedule information in each of the plurality of subscriber data processing systems. The television schedule is displayed to a user of each of the plurality of subscriber data processing systems.

In a still further aspect of the invention, a television schedule information transmission system includes a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory. The system is improved with means in the central data processing system for transmitting a predetermined character string comprising a portion of the schedule information to the plurality of subscriber data processing systems. A means in each of the plurality of subscriber data processing systems determines whether the predetermined character string has been acquired by that subscriber data processing system. A means in each of the plurality of subscriber data processing systems stores the predetermined character string in that subscriber data processing system if it has not already been acquired.

In yet another aspect of the invention, a method in a television schedule information transmission system includes transmitting a predetermined character string comprising a portion of the schedule information to a plurality of subscriber data processing systems in the system. Whether the predetermined character string has been acquired by a particular subscriber data processing system is determined. The predetermined character string is stored in that subscriber data processing system if it has not already been acquired.

In a further aspect of the invention, a television schedule information transmission system includes a direct broadcast satellite. A central data processing system has means for transmitting television schedule data for the direct broadcast satellite to the direct broadcast satellite. Subscriber data processing systems have means for receiving the television schedule data for the direct broadcast satellite from the direct broadcast satellite. The system is improved with a plurality of regional data processing systems, each located in a region of a predetermined territory. The plurality of regional data processing systems each include means for receiving the schedule information data for the predetermined territory. Means selects the schedule information data for the region in which each of the plurality of regional data processing systems is located. Means transmits the schedule information data for the region to a plurality of the subscriber data processing systems in each of the regions.

In another aspect of the invention, a method in a television schedule transmission system includes transmitting television schedule data for a direct broadcast satellite to the direct broadcast satellite. The television schedule data for the direct broadcast satellite is received from the direct broadcast satellite at a subscriber data processing system. Schedule information data for a predetermined territory is received in a regional data processing system located in a region of the predetermined territory. The schedule information data for the region in which the regional data processing system is located is selected in the regional data processor. The schedule information data for the region is transmitted to the subscriber data processing system.

In still another aspect of the invention, a television schedule information transmission system includes a central data processing system having means for transmitting television schedule data. A subscriber data processing system has means for receiving at least some of the television schedule data transmitted by the central data processing system. The system is improved by providing a subscriber data processing system including a memory for efficiently storing database items comprising the television schedule information. Each of the database items has a handle as an index into a handle table identifying memory locations corresponding to the handle. This allows physical movement of database items from one memory location to another for garbage collection. This allows holes in the database memory which arise as data ages and is discarded to be recovered and concatenated into large useful memory blocks. This wades "free" microcontroller cycles for memory, which is expensive.

In a still further aspect of the invention, a method in a television schedule information transmission system includes transmitting television schedule data. At least some of the television schedule data is received at a subscriber data processing system as database items comprising the television schedule information. Each of the database items has a handle. The handle is used as an index into a handle table identifying memory locations corresponding to the handle.

In another aspect of the invention, a television schedule information transmission system includes a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory including updates of television schedule data previously transmitted. There are a plurality of subscriber data processing systems in the predetermined territory. Each of the plurality of subscriber data processing systems includes a receiver for television schedule data and a memory for storing television schedule data. The memory is coupled to the receiver. The system is improved by including means in the central data processing system for assigning a transmission priority for the updates of television schedule data previously transmitted relative to other television schedule data.

In a further aspect of the invention, a method in a television schedule information transmission system includes establishing a relative priority for transmission of the television schedule information between updates of originally transmitted television schedule information and originally transmitted schedule information. The television schedule information is transmitted in accordance with the relative priority. At least some of the transmitted television schedule information is received at a subscriber data processing system.

In yet another aspect of the invention, a television schedule information transmission system includes a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory. Each of the plurality of subscriber data processing systems includes a receiver for television schedule data. A memory for storing television schedule data is coupled to the receiver. The system is improved by including means in the central data processing system for identifying the transmitted television schedule data by time relative to other transmitted television schedule data. Means in the subscriber data processing system determines if television schedule data received by the subscriber data processing system has a time identification later than a time identification of television schedule data stored in the memory.

In yet a further aspect of the invention, a method in a television schedule transmission system includes transmitting television schedule data with an identification of the transmitted television schedule data by time relative to other transmitted television schedule data. The transmitted television schedule data is received with a subscriber data processing system. The television schedule data is stored in a memory of the subscriber data processing system. Television schedule data is subsequently supplied including an identification by time relative to other television schedule data. The identification by time of the subsequently supplied television schedule data is compared with the identification by time of the television schedule data stored in the memory. The stored television schedule data is replaced with the subsequently supplied television schedule data if the identification by time of the subsequently supplied television schedule data is later than the identification by time of the stored television schedule data. The stored television schedule data is maintained in the memory if the identification by time of the stored television schedule data is later than the identification by time of the subsequently supplied television schedule data.

In still another aspect of the invention, a television schedule information transmission system includes a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory. Each of the plurality of subscriber data processing systems includes a receiver for television schedule data. A memory for storing television schedule data is coupled to the receiver. The system is improved by including means in the central data processing system for encrypting a selected portion of the television schedule data required by the subscriber data processing system to assemble a television schedule for display. Means in the subscriber data processing system decrypts the selected portion of the television schedule data.

In a still further aspect of the invention, a method in a television schedule transmission system includes selectively encrypting a portion of television schedule data necessary to assemble a television schedule for display. The television schedule data including the encrypted portion is transmitted. The television schedule data is received in a subscriber data processing system. The encrypted portion of the television schedule data is decrypted. The television schedule data, including the now decrypted portion, is used to assemble a television schedule for display.

In another aspect of the invention, a television schedule information transmission system includes a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory. Each of the plurality of subscriber data processing systems includes a receiver for television schedule data. A memory for storing television schedule data is coupled to the receiver. The system is improved by including a real time clock in the central data processing system for establishing a single system time for the transmission system. The means for transmitting television schedule data includes means for transmitting the single system time. The receiver includes means for receiving the single system time. The memory has a stored value for calculating local real time from the single system time.

In a further aspect of the invention, a method in a television schedule transmission system includes establishing a single system time related to real time. The single system time is transmitted to a subscriber data processing system. Television schedule data expressed in the single system time is transmitted to the subscriber data processing system. A value is provided to the subscriber data processing system for calculating local real time from the single system time. Local times are calculated for a television schedule from the schedule data expressed in the single system time using the value.

In still another aspect of the invention, a television schedule information transmission system includes a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory. Each of the plurality of subscriber data processing systems includes a receiver for television schedule data. A memory for storing television schedule data is coupled to the receiver. The system is improved by having the means for transmitting television schedule data configured to transmit the television schedule data as a show list for each day in the television schedule. The subscriber data processing system is configured to maintain show lists for a rolling window comprising a plurality of days extending from present time into future time.

In a still further aspect of the invention, a method in a television schedule information transmission system includes transmitting television schedule data as a show list for each day in the television schedule. Show lists are maintained for a rolling window comprising a plurality of days extending from present time into future time.

In yet another aspect of the invention, a television schedule information transmission system includes a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory. Each of said plurality of subscriber data processing systems includes a receiver for television schedule data. A memory for storing television schedule data is coupled to the receiver. The system is improved by having the subscriber data processing systems configured to store the television schedule data in compressed form in the memory. A read only memory in the data processing system stores fixed text for the system. The fixed text is stored in said read only memory in compressed form.

In yet a further aspect of the invention, a method in a television schedule information transmission system includes storing television schedule data in compressed form in a memory of the system. Fixed text for the system is stored in a read only memory, also in compressed form.

The attainment of the foregoing and related objects, advantages and features of the invention should be more readily apparent to those skilled in the art, after review of the following more detailed description of the invention, taken together with the drawings, in which:

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1-5 are block diagrams of television schedule information transmission and utilization systems in accordance with the invention.

FIGS. 6-25 are schematic representations of message formats used in the systems of FIGS. 1-5.

FIGS. 26-60 are schematic representations of data structures, flow charts and display formats used in the systems of FIGS. 1-5.

DETAILED DESCRIPTION OF THE INVENTION

Turning now to the drawings, more particularly to FIGS. 1-4, there is shown television schedule information transmission and utilization systems 50A-50D. The systems 50A-50D transmit TV schedule data and associated network control messages as packets via the Video Blanking Interval (VBI) lines in the TV signal from various television program providers 51, such as PBS, MTV or Showtime. This data is acquired by StarSight Subscriber Units 52 and used to construct an internal database. This internal database can be accessed by the Subscriber Unit 52 to display a TV schedule for the channels that are received by the user's TV.

Since access to the network systems 50A-50D is via a subscription service, certain messages are encrypted by a security computer 53 to prevent access by nonsubscribers. Essentially any encryption system can be used with the invention, but an encryption system as disclosed in U.S. Pat. Nos. 4,531,020 and 4,531,021 is preferred.

Packets contain error detection information and system overhead bytes for finding the head of a packet. The information embedded in a Packet is termed a Message. Messages consist of one or more Commands. There are various types of Commands, each type distinguished by a unique code number. Commands contain the different types of information necessary to construct and maintain a TV schedule database, time markers, and user authorization information.

The systems 50A-50D are data networks that deliver specially formatted data to subscribers 52 located throughout the USA. This data is used to build an "on screen program guide" that enables the system subscribers to interactively view television program listings on their TV screen. The information for this network is derived from a database that is built by a computer program running on a UNIX computer 54. To build this database a data provider (DP) 56 is required to supply the computer 54 with program listing files called Show list files.

Television program schedule data is generated by a vendor company at 56 and provided to the StarSight computer center 54 in a simple interchange format. Information is encoded that specifies what television programs are on at what time and on what channel. This data is received and processed for all channels for the entire country for 10 days. Any changes to the TV schedule are transmitted as soon as they are available on an as needed basis. The following description describes the specific information and fields that are contained in the files.

The Show list files are transferred electronically to the file system in computer 54 through a router connected to the DP's Ethernet and a digital leased line 58, using the standard TCP/IP program, FTP, or other file transfer protocol standard mutually agreed upon. The files may require compression, due to the bulk of data being transferred, using a mutually agreed upon data compression algorithm compatible with the UNIX file system in computer 54. The operating speed of the leased line 58
will be sufficient to transfer all data files in a reasonable length of time.

The files are transferred to the computer 54 on a daily basis 7 days a week, with the file transfer completed by 0800 hours PST. The daily file transfer will be into the home directory corresponding to the login name used to perform the file transfer.

The "Main" file download to the computer 54 will always be for the date 12 days into the future. Thus if today is the 10th, today's data download would be for start times beginning at 0000 hours GMT on the 22nd.

Since the data files are sent on a daily basis some mechanism must be in place to allow for the updating of a program listing that has already been transferred. This is accomplished via the "Update" file. An Update file contains records of all changes that have been made since the last Update file was produced, which modify any of the data for any date which is still "active". An "active" date is defined as the dates beginning with today's date, and spanning the 11 days following (that is, all dates from today to the date covered by today's "Main" file, but not including that date.

Last minute schedule changes require "Flash Updates", which provide a "Flash Update" file within 5 minutes after entry of any change. Such files "trickle" across the leased line 58 to the computer 54 throughout the day.

The TV schedule information is processed by the computer 54 and inserted into a master database. During this process, redundant information is removed. For example, if the I Love Lucy show is playing more than one time during the 10 days of schedule information, the character string for the title of that show is only stored once in the master database. For each channel and day, information is stored that specifies what shows are on at what time for the entire day. Each show may, but not necessarily, contain a show title and a show description.

The purpose of the master database is to store all of the TV schedule data in a relational database with standardized methods to access the data. The data is organized in a way that makes retrieval of the data efficient.

Television viewers receive a set of television video signals at the viewing location. Cable television providers assign broadcast and satellite program channels to specific channels. Every cable company has a unique assignment of channels. Every geographic location has a set of broadcast channels that may be received in that locality. A subscriber unit must have a listing of the program channels and the channel assignments in order to provide a subscriber with the TV schedule data relevant to that subscriber.

Each unique set of channel assignments are assigned to a Reception Group. Associated with each Reception Group is a region name, reception group type (cable, broadcast, satellite), set of zip codes where this set of program channels may be received, a list of program channels received, and the channel assignment for those program channels.

The Reception Group and program channel information is referred to as a Line Up. Line Up information comes from many sources, such as commercial companies that collect the information, subscribers, cable companies and analysis of broadcast channel transmission coverage.

Line Up information obtained from a single source is not considered correct. Various processes are used to align data from the multiple sources to obtain one database with superior quality. A master database is created to which all other Line Up data is compared. Changes are made to the master database when a correction is verified. The primary key to associating one Line Up to another is by verifying that the zip code of the Line Ups are the same. Once the zip code information is verified, the channel assignments are compared and verified by phone calls to the cable company or subscribers in the area.

Once the TV schedule data and Reception Group data are entered into the master database, a computer program processes the data to emit a data stream suitable for transmission over the PBS data network. The data is compressed and organized optimally for the Station Nodes and subscribers 52. The specific format of the output data stream is described below.

The output data stream is grouped and ordered by the data type. Due to the methods employed in the subscriber unit, it is optimal to sequence the data in a particular order. This allows the subscriber unit to collect an entire TV schedule in one pass of the data. The data blocks and their order is as follows:

1. Security Keys

Security keys are required to restrict access to the data to only those subscribers authorized to receive the data. Portions of the data stream are encrypted using the industry standard Data Encryption Standard security key algorithm. These keys may be changed at any time. To keep all of the desired subscriber units authorized and to change the keys, a series of messages are transmitted that contain the current and future security keys. A subscriber unit's initial set of decryption keys are sent in the network message that authorizes the unit to begin collecting data. The keys in this authorization message are encrypted with a key that is unique to the individual subscriber unit.

2. Theme Data

Most of the TV programs are categorized by theme categories and sub categories. The master database contains a set of attributes for each category that indicates if that TV program falls into a particular genre. Each unique combination of genre attributes are assigned a unique theme identification. Each show is assigned a theme identification based on a set of genre attributes. A table is transmitted that assigns a text description to each theme identification in the theme data block.

3. Daylight Savings Time Change

Data is transmitted that specifies the time when daylight savings begins and ends. A message is repeatedly transmitted on the data network that specifies the exact time that daylight savings time begins and the time that it ends. The subscriber units 52 pick this message and adjust the local time to compensate for the effect of daylight savings.

4. Reception Group Data

Reception Group data contains the necessary channel line up data for all of the unique Reception Groups. This data includes Regiod ID (unique number associated with the reception group), region type (broadcast, cable, satellite), Channel ID (unique number associated with the particular channel), and tune channel number (channel to which the TV must be tuned to receive the channel). Any particular subscriber unit 52 is assigned to a Reception Group during the authorization process. The subscriber unit will only process the data for the Reception Group for which it was authorized. All other Reception Group data is ignored by the subscriber unit.

5. Channel Data

Each channel reference in any reception group must have an associated channel data command. The channel data command contains information about that channel. The native channel number (tune channel for that channel if it were a broadcast channel), station call letters, network affiliation (ABC, NBC, CBS), and an abbreviation for the channel name. The later abbreviation is used to display a 1 to 4 character icon for that channel on the subscriber unit. Data for any particular channel is only transmitted once per data cycle.

6. Show List Data

A show list contains a list of the TV programs and their duration for a particular channel and day. The command contains a Channel ID, start time for the first program, and a list of subsequent programs and their duration. Each show contains a Show ID and an optional Description ID. The Show ID and Description ID are each a unique number associated with the text of that show title or description, respectively. Each show also contains a flag that indicates if it is a pay per view program.

7. Show Title Data

Every unique show title reference in a show list has an associated Show Title command. The Show Title command contains the Show ID, Theme ID, and show title text. Each unique Show Title is included only once in the data stream, and may be used many times by the subscriber unit 52. The text in the show title is compressed using Huffman compression techniques.

8. Show Description Data

Every unique show description reference in a show list has an associated Show Description command. The Show Description command contains the Show Description ID, MPAA rating, critics rating, and show description text. Each unique Show Description is included only once in the data stream, and may be used many times by the subscriber unit 52. The text in the show description is compressed using Huffman compression techniques.

9. Station Node Data Messages

Each PBS station node receives blocks of data that will be retransmitted by that station node. Only data that is required by the subscriber units in the area serviced by the station node is sent to that station node. For example, the station node in San Francisco only receives data for the cable systems and TV stations received by subscribers in the San Francisco area. None of the Los Angeles data is received by the San Francisco station node.

The goal of the security software for the StarSight system is provide conditional access to the StarSight data stream. Portions of the data are encrypted. Access to the schedule data is conditional in the sense that a subscriber unit 52 must know the decryption key. Only units that are authorized may receive the decryption key.

The conditional access system involves three levels of encryption. At the top, each unit has an RSA public/private key pair. Next, batches of up to 256 units share a DES key, which is called the batch key. At the bottom, program guides are encrypted with a DES key shared by all authorized units, which is called the program key. The program keys, changed periodically, are distributed under the batch keys, and the batch keys are distributed under the RSA keys, giving a three-level hierarchy.

The various keys are distributed either at the factory, or in later messages as follows:

The RSA private key, as well as a serial number identifying the unit, are preprogrammed at the factory. StarSight keeps a copy of the corresponding RSA public key.

The batch key is distributed in an authorization message, which is encrypted with the unit's RSA public key. The authorization message also gives the unit a batch number, and a unit number within the batch, a "service type" field, as well as the current and next program keys. The authorization message would typically be the first interaction between StarSight and a unit in the field, although it can be sent at any time to reassign batches.

Program keys are distributed in a key distribution message, which is encrypted with a batch key. The key distribution message also indicates, according to a unit number in the batch, whether a unit is still authorized.

Two of the security system functions are to process the authorization and key distribution messages. A third function is to decrypt encrypted text with one of the program keys. The text is encrypted in cipher block chaining (CBC) mode.

Periodically, the program keys are changed and distributed with the key distribution message. If a subscriber is to be de-authorized, they will not receive a new key distribution message, and will thus be unable to decrypt TV schedule data.

The subscriber unit 52 is a microprocessor based system designed to receive, process and display the TV program schedule data. The subscriber unit 52 hardware includes a microprocessor, read only memory, random access memory, security co-processor, IR blaster co-processor, on screen display co-processor, and power management circuitry. These components are combined with software that implements the Electronic Program Guide system.

1. Operating System Executive

The microprocessor has many tasks to perform as will be described. Each task must be serviced in real time, but may not necessarily be completed each time slice. A "round robin" executive is used to perform this function. A main loop sequentially calls each of the individual tasks. When a task is called, it will perform its defined function, based on its current state. The tasks are required to complete the entire task or a subtask in a pre-defined time period. This way, all of the tasks have an opportunity to execute their defined task within a time period. After the last task has executed its function, the first task is executed again.

2. Memory Management

Television program data is dynamic and always changing. Showlists, show titles, and descriptions are variable length and change from day to day. For this reason, a memory management system is deployed that allows dynamic allocation and recovery of data blocks. Memory is divided into equal sized allocation blocks. The set of memory blocks is referred to as the pool. A handle table is created that makes references to the memory blocks in the pool. An application software subroutine may allocate memory by creating and storing an entry in the handle table, which references one or more allocation units in the memory pool. Memory may be deallocated by releasing the memory references in the handle table.

It is a requirement of the application to have contiguous blocks of memory that exceed the length of a single memory block in the pool. This is done by allocating multiple contiguous memory blocks when needed.

After many memory blocks are de-allocated, the memory pool will be fragmented. There will be many blocks of memory of varying size that are not contiguous. One of the background tasks is to de-fragment the memory pool. A procedure is run that moves the allocated memory blocks to the lowest possible memory location. When a block of memory is moved, the references to that memory are changed in the handle table. This way the application program still has a reference to the memory block. Each allocation unit is moved so that any deallocated blocks that are between allocated blocks are collapsed. The net result is that all of the de-allocated memory is at the highest possible memory location and all of the blocks are contiguous.

3. VBI Data Processing

VBI data is decoded from the video stream and processed by an 8032 microprocessor. A buffer is used to store the data and assemble packets. A comparator is used to detect a special sync character sequence. As soon as these characters are detected, the buffer is reset and the packet header is assembled. If the correct cyclic redundancy check (CRC) of the packet header is detected, the remaining portion of the packet is assembled. After the complete packet is assembled, an additional CRC is computed to verify that the complete packet was received without an error. Once this is verified, the packet is broken up and individual network messages are passed to the command processor.

4. Command Processor

The command processor determines if the encryption bit is set in the command header, and if so, the data is passed to the security module. The security module then decrypts the data and returns it to the command processor. The command processor functions as a dispatcher to send the command to the correct processing module, based on the command function.

5. Database Processing

The database processor is responsible for storing and retrieving all TV schedule and channel data. It receives data from the command processor and stores that data into the database. A set of function calls is used to retrieve data for the application program. The organization of the database is described below.

6. Security Processing

The security processor has two major functions: key management and data decryption. When messages are received from the command processor that contain the correct serial number or batch number, the security processor receives the message and decrypts the message. In the case of an authorization message, the data is decrypted using the RSA private key. The batch number, batch key and other control information is decoded and stored for future use. In the case of a key management message, the data is decrypted using the batch key, and the information is stored for future use. Program keys are distributed encrypted under the batch key.

7. User Interface

The user interface takes remote control commands as its primary input. A user requests various functions by pressing a button on a remote control. The user interface receives these commands and responds with the requested display screen. In addition, display commands are generated asynchronously when a recording begins or when the unit attempts to collect data.

The application has over 20 different and distinct display screens. Each display screen has associated with it a particular state. The data and format of the screen is dependent on the previous screen, the time of day, the contents of the database, and what remote control button was pressed. A state table is used to define the screen flow.

For every defined screen, there is an entrance function, an exit function, an update function, and an array of key-handling functions. The entrance function is called when a state is first entered, to collect all necessary data and format the screen. The exit function is called to release memory and data for the screen. The update function is called once per minute to update the screen time and to re-draw the screen if any shows have ended or any recordings have started or completed. Once in a particular state, the table contains a reference to another software function for every key on the remote control. These functions will be executed when the associated remote control button is pressed.

The user interface also manages an array of pop-up windows that may appear and disappear on the screen either synchronously or in response to key presses. There are over 18 popup categories that define the screen priority for each, i.e., which one covers which when several popups are on the screen at once. These popups may be cursors, show descriptions, error messages, help messages, or requests for more information. Each popup category has its own entrance, exit, update, and key-handling routines similar to those of the main screen states.

In addition, the user interface is responsible for locking and unlocking the database while the user is interacting with the program guides, maintaining the selection and ordering of the program channels, controlling the tuner from the guide screens, performing the theme searches in the database, and controlling a demon that automatically collects schedule data at a pre-determined time from the data provider channel.

8. VCR Recording

The purpose of the record manager is to maintain a list of recording requests and to then start a recording at the correct time on the correct channel. The user interface defines three types of recordings, once, weekly and daily. The user may record the shows he/she is currently watching or select a particular title from one of the guide screens. The user will move the cursor to a particular title on one of the guides (grid, channel or theme), press the "record" button, and select if the program is to be recorded once, weekly or daily.

Once the user confirms the recording request, an entry is made in the recording queue. The recording queue contains entries for each of these types of recordings. In the case of the daily recordings, up to five individual entries are made in the working record queue. A single entry is made for the weekly and once recordings. The working record queue represents all of the recordings that are to be done for the coming week sorted by show start times.

A record demon is called from the real time executive that determines if it is time to start a recording. The leading entry in the working record queue is examined to determine if it is time to start that recording. If it is time, a software function is executed that will start the recording. Once a recording is started, the record demon will determine if it is time to terminate a recording. When the stop time is reached, a software function is executed that will terminate the recording.

Starting and stopping a VCR recording is done in several ways, based on the configuration of the user's equipment. In the case where a cable converter is not being used, the following actions are taken to start a recording:

1. Toggle the VCR power.

2. Tune the VCR to the desired channel.

3. Put the VCR in record mode.

If a cable converter is being used, the following actions are done:

1. Toggle the VCR power.

2. Tune the VCR to channel 2, 3 or 4.

3. Tune the cable converter to the desired channel.

4. Put the VCR in record mode.

5. Tell the user interface software what the currently tuned channel is.

To stop the recording, the VCR is put in stop mode and then the power is toggled. In all cases, these commands are performed by sending infrared commands to the device.

Another function of the record demon is to examine the queue of weekly and daily record requests and then to spawn a new entry in the working queue. For example, if it is Monday morning and a daily record request is entered for a program in the afternoon, 5 entries will be made in the working queue, i.e. Monday, Tuesday, Wednesday, Thursday and Friday. After the first recording is finished on Monday afternoon, the entry in the working queue for Monday will be deleted. The record demon will examine the record queue and discover that it is time to add a new entry in the working queue for next Monday. This entry will be added in the time sorted order position in the working queue.

Additionally, the demon maintains the proper start time when a daylight savings boundary is crossed. That is, the demon must add one hour to a show's start time in the fall and subtract one hour in the spring, provided daylight savings time is applicable to the user's region.

The record manager handles deletions, either singly or multiply depending on the original type of recording. 9. On Screen Display

An on screen display (OSD) is used to display the text and graphic information that makes up the various display screens. A common interface is used to control various devices. Three different devices can be used: the ITT TPU2740, the ITT CCD
3005, and the Zilog Z89300. The user interface has a set of functions defined to draw text, draw an embossed rectangle, draw a channel icon, and to set the display attributes. A set of software functions are used that translate these commands into the correct functions for the particular device.

Details of the subscriber units 52 are provided in FIG. 5. The following description is in terms of a subscriber unit 52 for a TV Receive Only (TVRO) system (see also FIG. 4). With appropriate modifications, the subscriber unit 52 can also be incorporated in a cable decoder box for use with cable systems. The subscriber unit can also be built into televisions or VCRs or provided as a separate stand alone unit.

This description is for the electronic hardware of the StarSight Telecast "TVRO Subscriber Unit" 52. TVRO customers are people who have home satellite dishes for television viewing. TVRO stands for "TV Receive Only". The TVRO Subscriber Unit
52 will hook up to the customers TVRO Satellite system and will enable the customer to subscribe to StarSight's Electronic Program Guide Service. The TVRO Subscriber Unit 52 is a fully self contained, separate unit, that is installed in series with the existing customer TVRO equipment.

The Subscriber Unit receives Baseband Video from the customer TVRO system. The Program guide display screens are merged with the customer video in the Subscriber Unit. The customer has the options of Baseband Video out or Channel 3/4 RF out.

The Subscriber Unit formats and displays TV program schedule information in real time, overlaid on top of the TV viewing screen. The TV schedule information is transmitted in one of the Vertical Blanking Interval (VBI) lines of a conventional TV broadcast. The Subscriber Unit stores this information in local on board memory. The information is displayed in the form of a "Grid Guide" on the TV screen when the customer presses a button on the remote control.

The Subscriber Unit 52 consists of the following sub-sections:

Inexpensive 8 bit Microprocessor 100.

64K Bytes of code ROM 101.

512K of RAM 102 for program data storage.

Custom gate array 103.

Segmented Base Registers 104 for fast memory data manipulation.

Security logic 106 for decoding incoming encrypted data.

Serial "I.M." Bus 108 for display controller interface.

Serial "StarSight" Bus 110 for inter processor communications. (ISB)

Watchdog timer 112 for error recovery.

IR input 113.

Infrared Receiver circuits 114.

Infrared Transmitter circuits 116 for TV, VCR control.

IR output 117.

CRC-32 encoding and decoding logic 118.

On board power supply 120.

Power down RAM data retention 122.

Video Input 123.

On Screen Display Controller and Formatter 124.

Custom Color Converter 126 for overlay display.

RF Modulator 127.

Choice of Baseband Video or RF outputs 128 or 130.

The heart of the TVRO Subscriber Unit 52 is an "8032, 8 bit Microprocessor" 100. This microprocessor controls all sections of the Subscriber Unit. A brief description of this processor will be given for reference. For more detail, refer to the
8032 data books from Intel or Signetics.

The 8032 has an 8 bit Data Bus and a 16 bit Address Bus. The upper 8 bits of the address bus are always present. The lower 8 bits of the Address Bus are time multiplexed with the Data Bus and an External Address Latch is required to de-multiplex this bus. This latch is located inside of the DBE 1200 Gate Array 103. The 8032 has two address spaces, the "CODE" space and the "DATA" space. The DATA space is further divided into the RAM Memory area and the I/O area.

"CODE" refers to any access to Program ROM. The Program CODE space is 64K bytes long and the 8032 can only "READ" from this space. All Code access uses the "PSEN" (Program Store ENable) line. The -WR and -RD lines do not assert during CODE accesses. +ALE is the control signal used to de-multiplex the Address Bus. The falling edge of +ALE will latch the lower 8 bits of the address. -PSEN will then assert to start the ROM read. The current design has the EPROM -CS line always tied to ground. This makes the EPROM "OE ACCESS" time the determining spec for ROM reads. By today's standards, this microprocessor bus timing is very slow and this allows for the use of inexpensive ROMs.

"DATA" refers to any access to external RAM 102. Special additional hardware has been added to the TVRO Subscriber Unit so that the DATA area can extend past the 64K addressing limit. This is done via segmenting "BASE REGISTERS" 104 and will be discussed later. The 8032-RD strobe will assert for RAM Data Reads and the -WR strobe will assert for RAM Data Writes. PSEN will not assert during Data accesses. The RAM Data accesses can only take place via the "MOVX" instruction. No other 8032
instruction will cause -RD or -WR to assert. Once again, +ALE is used to latch the address, then -RD or -WR will assert to start the data transfer. Read data must be valid just before -RD negates. The Write data is valid the entire time that -WR is asserted.

Along with the RAM Data Space, there is also a "64K I/O SPACE". This I/O space occupies the same first 64K segment as the DATA RAM. There is a signal called +DRAM.sub.13 ENABLE that is used to determine which area will be accessed. The I/O space is where the system control registers are located. There are 18 write registers and 13 read registers. These registers are used to control the various subsystems in the Subscriber Unit. Features like clock frequency selection, serial bus control, I.R. status and control, etc. . . . , are all controlled through this register set. There are other control registers located in the peripheral chips. The 8032 uses two serial Busses to communicate and control these peripheral chips. The "IM BUS" 108 is a 3 wire serial bus used to talk to the transaction processing unit (TPU 2740) 124. The TPU 2740 collects the incoming VBI data and also formats and displays the various StarSight overlay screens.

The Software Serial Bus 110 is used to talk to the Security Microprocessor 106 and also to the IR Blaster Chip 116. This is a two wire bus with a unique serial timing protocol.

The first 64K of 8032 Address Space has three separate overlapping functions.

1. If -PSEN is asserted, then the CODE ROM will be accessed.

2. If +DRAM.sub.-- ENABLE=logic `0`, then the I/O registers will be accessed.

3. If +DRAM.sub.-- ENABLE=logic `1`, then the first 64K of RAM will be accessed.

The area above 64K is always RAM and the total length is 512K bytes. 8032 SIGNAL SUMMARY

Table I summarizes the input and output signals of the 8032 microprocessor:

TABLE I __________________________________________________________________________ Signal Name FUNCTION Direction __________________________________________________________________________ +ALE Latches the low 8 bits of the Address Bus. Output -PSEN Enables Op-Code read fetches from ROM. Output -WR Asserts to Write to external DATA RAM Output -RD Asserts to Read from external DATA RAM Output -INT0 Interrupt 0-Indicates the ISB circuit requesting Inputce. -INT1 Interrupt1 -- Indicates that power is about to fail. Input PORT 0 8 bit Multiplexed 8032 Data and Address Bus. I/O PORT 1 Various system control bits. I/O PORT 2 Upper 8 bits of the Address Bus Output PORT 3 8032 control bits. I/O __________________________________________________________________________

Base Register Description

The 8032 Data Address space is only 64K bytes long. The TVRO Subscriber Unit however, is required to store more than 64K bytes of TV program data. The "READ and WRITE BASE REGISTERS" allow the 8032 to access additional memory above the 64K limit.

The 8032 uses an internal 16 bit register called the "Data Pointer Register" (DPTR) to hold the address of the external DATA location. The Base Registers (located in the DBE 1200 Gate Array) hold another 16 bit value that is added to the Data Pointer value to form the actual RAM address. The Base Register contents is shifted 4 bits left with respect to the Data Pointer so that the RAM address becomes 20 bits long. 20 bits allows for a 1 Megabyte total Data RAM size. The 8032 can access any
64K byte chunk of the external RAM starting at the address written in the Base Registers. (Since the base register is shifted 4 bits left, the 8032 can access any 64K byte segment starting on even 16 byte boundaries.) There are two base registers so that Memory Block Moves can be performed quickly. It would be very slow and cumbersome to the software if the value of the DPTR had to be changed for each read and then changed again before a write during block moves. The dual Base Registers allow you to put the starting address of the Read (Source) Block into the Read Base Register, and the starting address of the Write (Destination) block into the Write Base Register. A software loop can then be written that does a read followed by a write to the same DPTR address. The DPTR is then incremented and the process repeated. This allows software to quickly move blocks of Data anywhere in external RAM.

A provision has also been added to quickly disable the Base Registers. The signal +ENABLE.sub.-- BASE will force the outputs of both Base Registers to all zeros. This is done without altering the contents of the Base Registers. This feature provides a quick method of accessing the first 64K segment of RAM. Both RAM Reads and Writes will go to the same location. Processor related data will be stored in the first 64K segment (Register Images, Software Counter Values, System Parameters etc. . . . ). The upper segments are used to store TV program information.

Table II below tries to show how the DPTR is added to the Base Register to form the 20 bit RAM address.

TABLE II ______________________________________ Base Reg 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 +8032 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Addr =20 bit 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Addr ______________________________________ +DRAM.sub.-- EN must = 1 to access the external memory area Note: Base Reg shifted 4 bits left with respect to Address bus.

As an example:

The READ BASE REGISTER is set to 0001 Hex.

The WRITE BASE REGISTER is set to 1080 Hex.

The Data Pointer (DPTR) is set to 382A Hex.

An 8032 Read (MOVX A,@DPTR), will access address 0383A Hex (note: 20 bits!).

An 8032 Write (MOVX @DPTR,A), will access address 1403A Hex (note: 20 bits!).

+DRAM.sub.-- EN must =0 to access the I/O area.

DATA RAM DESCRIPTION

As previously mentioned, the DATA RAM 102 stores the TV program guide information. This RAM is currently available in 3 sizes, 128K bytes, 256K bytes or 512K bytes. The TVRO product uses 512K bytes. The Data RAM uses "PSRAM" chips. "PS" stands for Pseudo Static. The PSRAM is a standard DRAM that has been packaged with STATIC RAM pinouts. Extra logic is added so that DRAM refreshes are simplified. These PSRAMs also have a power down data retention feature that works down to 3 Volts.

There are four modes of PSRAM operation in this product. They are:

1. Sequence Up Mode.

2. Normal Data Transfer Mode.

3. Sequence Down Mode.

4. Power Down Data Retention Mode.

There are two sizes of PSRAM that can be used in this design. The 128K by 8 chip or the 512K by 8 chip. There is a provision to use two of the 128K by 8 parts to obtain 256K bytes of total memory.

These two parts have slightly different pin outs and operate in slightly different methods. Circuitry has been added to compensate for these differences. There is a bit called +512KRAM that must be set by the software depending on which chip is used.

Also the PSRAMs must go through a "Sequence Up" state after power on and a "Sequence Down" state just prior to power off.

PSRAM OPERATION (Sequence Up Operation)

After initial power up, the PSRAMs must be "SEQUENCED UP" before any reads or writes can be done. The Sequence Up procedure is slightly different for 128K and 512K parts. This procedure was added to insure that logic and timing specifications of the PSRAM are maintained when the PSRAMs are in the power down data retention mode. There is a provision to use a large Capacitor or a Battery to keep the PSRAMs powered up when the system power is lost. In order to preserve PSRAM data when the power is off, certain of the PSRAM inputs must be held in a known logic state. On top of this, these pins must follow defined timing constraints when they are put into the known logic states. The pins and logic levels are different for the 128K and the
512K parts.

For the 128K parts: +Chip.sub.-- Enable2 (Pin 30) and -REFRESH (Pin 1) must both be held at logic `0` when the power is removed to insure data retention. When going from data retention mode to normal operation, -REFRESH (Pin1) must go high at least 225 nS before +CHIP.sub.-- ENABLE (Pin 30) goes high.

For the 512K parts: -Chip.sub.-- Enable (Pin 22) must be held at logic `0` and -OE/-REFRESH (Pin 24) must be held at logic `0` when the power is removed to insure data retention. When going from data retention mode to normal operation, -Chip.sub.-- Enable (Pin 22) must go high at least 50 nS before -OE/-REFRESH (Pin 24) goes high.

There is also a timing constraint as to how soon after normal PSRAM REFRESH the above sequences can occur. The Sequence Up logic in the DBE 1200 Gate Array controls the above timing. After a Power On Reset (POR) sequence is finished, the Microprocessor toggles a bit called +SEQUENCE.sub.-- UP [Wr Addr 7400 Hex, bit 5]. (Be sure to always return this bit to logic `0`). Toggling the +SEQUENCE.sub.-- UP bit will start the Sequence Up State Machine. This State Machine will wait for the end of the next normal Refresh Pulse and then it will remove the forced logic levels using the correct timing as mentioned above. The refresh pulses occur about every 11 uS and the Sequence Up process takes about 1uS. Software should wait at least 15
uS from the time that +SEQUENCE.sub.13 UP is set till when the first PSRAM access is attempted.

PSRAM OPERATION (Normal Operation)

Normal PSRAM operation is very straightforward. Refreshes are automatic and transparent to the microprocessor. The PSRAM must be Refreshed at least once every 15 uS. The Refresh address is generated inside the PSRAM and is transparent to the user. In order to do a Refresh, the Refresh pin on the PSRAM must be held low for a minimum time. For ease of circuit design, the Refresh Request is generated by the internal clock divided by 256. With a 24 MHz clock, this happens about every 10.7 uS.

The Refresh Pulse to the PSRAM chip must not occur at the same time as a PSRAM read or write access. Since the Refresh Request and any PSRAM access are asynchronous, the -PSEN line is used to start a Refresh. When the Refresh Request is detected, the Refresh circuit waits until the next -PSEN falling edge. -PSEN falls at the beginning of a CODE access to ROM. CODE accesses to ROM happen all the time as the 8032 fetches OP-CODES. During this time, it is impossible for the 8032 to access PSRAM. The Refresh is very fast and it will be finished before the -PSEN CODE fetch is complete.

CAUTION: This system must have -PSEN toggling in order to refresh PSRAM. In normal operation this will happen all of the time. Be careful if you use an 8032 emulator. The refreshes will stop if you ever break and stop the emulator. Most emulators have an option to insure that -PSEN still asserts even when an emulator breakpoint occurs.

PSRAM OPERATION (Sequence Down Operation)

Sequence Down is the opposite of Sequence Up. The system has an "Early Warning Power Fail Detector" that will interrupt the 8032 before the supply voltage staffs to drop. The 8032 responds to this interrupt by saving any critical PSRAM data and then asserting the +SEQUENCE.sub.-- DOWN bit. Sequence Down will force the PSRAM critical inputs to their correct state and will do so insuring that the timing specification is maintained. The Sequence Down logic will not start until the end of the next Refresh to insure proper timing. The SEQUENCE DOWN rules are shown below.

For the 128K parts:

+Chip.sub.-- Enable2 (Pin 30) must go to logic `0` at least 60 nS before -REFRESH (Pin 1) is forced to logic `0`. After the power dies, external components should hold these lines at logic `0` as the gate array outputs will be undefined.

For the 512K parts: -Chip.sub.-- Enable (Pin 22) must be forced to logic `1` at least 50 nS before -OE/-REFRESH (Pin 24) is forced to logic `0`.

PSRAM OPERATION (Power Down Data Retention)

As long as the critical input pins are held at their power down levels (See Above) and the voltage to the PSRAM chips stays above 3.0 Volts, the data will be retained.

PSRAM POWER DOWN LATCH

There is a very low current J-K Flip Flop that is powered by the same backup capacitor that powers the PSRAMs. This flip flop lets the software know if the voltage dropped below the minimum voltage specification during a power off period.

At initial power on, this latch should power up to logic `0`. The microprocessor can read the state of this latch on the +RAMV.sub.-- OK line. If the latch is `0`, then it should be assumed that the voltage dropped below the PSRAM minimum data retention specification and all RAM data is invalid. If the latch=`1`, then the PSRAM data is still valid from before the power down.

If +RAMV.sub.-- OK is logic `0`, then the microprocessor can set it to logic `1` after self test diagnostics pass. Once this latch is set to logic `1`, it will stay set until the PSRAM Vdd Voltage drops below about 3.1 Volts.

Five conditions are necessary to set this latch.

1. The PSRAM voltage must be greater than 3.1 Volts. (This releases the J-K Flip Flop Reset Pin).

2. The PCB +5 Volt supply must be greater than about 4.5 Volts. (This releases system POR).

3. The-ENBLAT line must be set to logic `0`.

4. The +BAND0 line must be set to logic `1`.

5. The +LAT.sub.-- CLK line must be toggled to logic `0` and then to logic `1`.

The -ENBLAT and +LAT.sub.-- CLK lines are driven by 8032 microprocessor PORT pins. These pins will be initialized to logic `1` by 8032 hardware at POR time. The +BAND0 line comes from the DBE 1200 gate array and is reset to logic `0` at POR time.

By requiring all of these conditions, it is hoped that the latch will not be able to be set by spurious noise glitches at power up. It would not be a bad idea to have checksum locations in PSRAM to verify that the data is valid if the latch reads a logic `1`. (Just in case the latch can be set by a noise glitch.)

The MC14xxx series CMOS devices were chosen for the latch circuit because this family guaranteed very low worst case current drain. DBE 1200 GATE ARRAY 103

The Gate Array 103 is packaged in an 84 pin PLCC package. The Gate Array terminology is slightly different from the PCB terminology. The PCB uses "+" in front of a signal name to indicate "active high ". The Gate Array dropped the "+" and just uses the signal name when the signal is "active high". The PCB uses "-" in front of a signal name to indicate "active low". The Gate Array adds the letter "X" in front of a signal name when it is "active low".

The following abbreviations for addresses and bits will be used.

(6000 W.5)=Write Address 6000 hex, bit 5.

(6C00R.3)=Read Address 6C00 hex, bit 3.

ADDRESS DECODING

74F138 type 1 of 8 decoders are used with the 8032 -RD or -WR strobe used for an enable. The outputs of the 74F138 will be valid only when the proper address is written or read.

The following tables show the Write and Read addresses that are decoded. The "Gate Array Name" is the name of the decoded signal. Table III below shows the I/O Write register decodes and Table IV shows the I/O read register decodes.

TABLE III __________________________________________________________________________ 8032 I/O WRITE REGISTERS +DRAM.sub.-- EN must = 0 to access these registers. WRITE WRITE Gate Array ADDRESS Pg REGISTER ACCESSED Name __________________________________________________________________________ 8032 PORT 1 X VARIOUS OUTPUT CONTROL BITS 8032 PORT 3 X VARIOUS CONTROL AND I/O BITS 0000H 3 READ.sub.-- BASE.sub.-- REGISTER.sub.-- LOW XRBASELO 0400H 3 READ.sub.-- BASE.sub.-- REGISTER.sub.-- HIGH XRBASEHI 0800H 3 WRITE.sub.-- BASE.sub.-- REGISTER.sub.-- LOW XWBASELO 0C00H 3 WRITE.sub.-- BASE.sub.-- REGISTER.sub.-- HIGH XWBASEHI 1000H 10 PWM.sub.-- CONTROL.sub.-- REGISTER.sub.-- LOW XPWM.sub.-- LO 1400H 10 PWM.sub.-- CONTROL.sub.-- REGISTER.sub.-- HI XPWM.sub.-- HI 2000H 12 I.M. BUS ADDRESS REGISTER XL.sub.-- IM.sub.-- AD 2400H 12 I.M. WRITE DATA 1 REGISTER XL.sub.-- IM.sub.-- D1 2800H 12 I.M. WRITE DATA 2 REGISTER XL.sub.-- IM.sub.-- D2 2C00H
12 I.M. BUS START TRANSFER REGISTER XSTRT.sub.-- IM 3000H 9 IM BUS CONTROL REGISTER XIM.sub.-- CTRL 3C00H 9 SECURITY CHIP CLOCK FREQ REGISTER XCLK.sub.-- REG 6000H 9 OUTPUT CONTROL REGISTER XCNTRL.sub.-- 1 6400H 13 REFRESH WATCHDOG REGISTER XWDOG.sub.-- CS 6800H 18 CRC-32 DATA REGISTER XWR.sub.-- CRC 6C00H 29 ISB CONTROL REGISTER XISBCTRL 7000H 24 ISB TRANSMIT DATA REGISTER XISBXMIT 7400H 31 RAM SEQUENCE AND GATE ARRAY XWR.sub.-- TEST TEST REGISTER __________________________________________________________________________

TABLE IV __________________________________________________________________________ 8032 I/O READ REGISTERS READ READ Gate Array ADDRESS Pg REGISTER ACCESSED Name __________________________________________________________________________
0400H 31 READ TEST MULTIPLEXER REGISTER XRD.sub.-- MUX 0800H 5 I.R. RECEIVE DATA REGISTER XIRR.sub.-- REG 0C00H 6 ISB INTERRUPT STATUS REGISTER XRD.sub.-- STAT 1000H 12 I.M. READ DATA BYTE #1 XRD.sub.-- BYT1 1400H 12 I.M. READ DATA BYTE #2
XRD.sub.-- BYT2 1800H 6 I.M. STATUS AND CHIP I.D. REGISTER XSW.sub.-- LO 1C00H 6 I.R. RECEIVER STATUS REGISTER XSW.sub.-- HI 6800H 24 ISB RECEIVE DATA REGISTER XRRECREG 6C00H 29 ISB STATUS REGISTER 2 XISB.sub.-- ST2 7000H 16 CRC-32 READ REGISTER 3 XRDCRC3 7400H 16 CRC-32 READ REGISTER 2 XRDCRC2 7800H 17 CRC-32 READ REGISTER 1 XRDCRC1 7C00H 17 CRC-32 READ REGISTER 0 XRDCRC0 __________________________________________________________________________

PSRAM CONTROL

This logic consists of simple gates that route the control signals to their proper pins depending on the mode the chip is in. The chip has two memory size modes, 128K and 512K. There is also a Sequence Up mode and Sequence Down mode.

PSRAM CONTROL SIGNALS

XRFSH.sub.18 (-ReFreSH or address.sub.-- bit.sub.13 18)

This is a dual purpose signal that should be tied to pin 1 of the PSRAM chips. When Sequenced Up, this signal is mode dependent.

In 128K mode, the -REFRESH signal is routed to this pin.

In 512K mode, Bit 18 from the Address Mux is routed to this pin.

When Sequenced Down, this signal is forced to logic "0".

XRAM.sub.-- OE0 (-RAM Output Enable 0)

This is a dual purpose signal that should be tied to pin 24 of the lower PSRAM chip. When Sequenced Up, this signal is mode dependent.

In 128K mode, this is the PSRAM read output enable line for the lower 128K PSRAM chip. It can only assert (active low) if the address is to the lower 128K and the 8032 -RD line asserts.

In 512K mode, this is the PSRAM read output enable AND the Refresh input. If this signal asserts by itself, then a refresh happens. If it asserts along with the -Chip Select pin, then a PSRAM read takes place. When Sequenced Down, this signal is forced to logic "0".

XRAM.sub.-- WE0 (-RAM Write Enable 0)

This signal should tie to pin 29 of the low order PSRAM chip. A PSRAM write will be done when this signal asserts along with a valid chip select. When Sequenced Up, this signal is the Write Enable to the PSRAMs in both modes. When Sequenced Down, this signal is a don't care.

XRAM.sub.-- OE1 (-RAM Output Enable 1)

This is a dual purpose signal that should be tied to pin 24 of the upper PSRAM chip. When Sequenced Up, this signal is the Output Enable control for reads from the upper PSRAM chip in 128K mode. This signal is not used in 512K mode as there is no upper chip installed. When Sequenced Down, this signal is a don't care.

XRAM.sub.-- WE1 (-RAM Write Enable 1)

This signal should tie to pin 29 of the high order PSRAM chip. A PSRAM write will be done when this signal asserts along with a valid chip select. When Sequenced Up, this signal is the Write Enable to the upper PSRAM in 128K mode. (Note: The current design does not use an "upper" chip in 512K mode.) When Sequenced Down, this signal is a don't care.

XCE1 (-Chip Enable 1)

This is a dual purpose signal that should be tied to pin 22 of the PSRAM chips. When Sequenced Up, this signal enables the PSRAM chips to read and write in both modes. When Sequenced Down, this signal is forced to logic "1". The 512K PSRAM chip requires this line to be forced to logic "1" during power down data retention mode. This line is a don't care on 128K PSRAMs.

CE2.sub.-- A17 (+Chip Enable 2 or Address.sub.-- bit.sub.-- 17)

This is a dual purpose signal that should be tied to pin 30 of the PSRAM chips. When Sequenced Up, this signal is mode dependent.

In 128K mode, this signal is tied to +Chip Enable and it is always logic "1".

In 512K mode, Bit 17 from the Address Mux is routed to this pin. XWRSTROB (-WRite STROBe)

During write, this is a shorter version of the 8032 write strobe. XWRSTROB is the timing signal used to write to PSRAMS. Data is written to PSRAM at the rising edge of XWRSTROB. This rising edge hits before the rising edge of the 8032 -WR to insure that any PSRAM data hold times are met.

BASE REGISTERS AND ADDRESS MULTIPLEXER

See above for a description of the Base Register functions. This section will deal with the circuitry. The outputs of these registers pass through "AND" gates before going into the Adders. The AND gates allow the base register outputs to be quickly forced to all zeros at the Adder inputs.

The outputs of the Adders feed over to the MUX. This MUX places the results of the READ ADDERS on the PSRAM address pins most of the time by default. There is no way to know that the 8032 is going to do a write until the -WR strobe asserts. When -WR asserts, a flip flop switches the MUX over to the WRITE ADDER output. The read adder was chosen for the default value because RAM reads take a little longer than writes. The dual adders are there so that the write address is stable as soon as the -WR strobe asserts.

I.R. RECEIVE CIRCUIT

The I.R. Receive circuit has various modes of operation depending on whether the button on the remote is released or if it is continuously held down.

When a valid code is clocked into the I.R. RECEIVE DATA REGISTER (0800R), the +IRR.sub.-- VAL (IR Receive Valid) bit and the +VALTILRD (VALid TIL RD) bits will set. The +IRR.sub.-- VAL bit will remain set until the remote button is released. There are 2 ways to clear the +VALTILRD bit.

1. Reading the I.R. RECEIVE DATA REGISTER will clear +VALTILRD.

2. If the remote button is released and then pressed again, then +VALTILRD will clear when the button is re-pressed.

+IRR.sub.-- NC (I.R. RECEIVER NO CHANGE) will set the first time that the I.R. RECEIVE DATA REGISTER is read. It will remain set until the remote button is released.

+IRR.sub.-- RDY goes high as soon as the remote button is pressed and stays set until released.

SECURITY CLOCK GENERATOR

This is a programmable clock generator for the Motorola Security Chip. The original spec for this clock was 5 MHz. To allow for changing oscillator frequencies, this clock was made programmable.

Both the high time and the low time of this clock period can be programmed independently by writing to I/O address 3C00 hex. The high time is set with the upper nibble while the lower nibble sets the low time. This time is in multiples of the input oscillator frequency.

The circuit works by loading the program nibbles into 74F169 type counters. These counters are set up as "down counters" and only one of them will decrement at any one time. After one counter reaches zero, the output will toggle, the counter will re-load and then the other counter will decrement. The inverters at the output of the program register set the initial value to "divide-by-7".

I.M. SERIAL BUS CIRCUIT The I.M. Bus is used to talk to the TPU 2740 chip. Refer to the I.M. bus specification for a detailed explanation of this bus. Briefly, the I.M. bus is a 3 wire serial communication bus. The 3 lines are called I.M..sub.-- CLOCK, I.M..sub.-- DATA and I.M..sub.-- IDENTIFY. The DBE 1200 gate array is always the I.M. Bus Master and therefore always drives the I.M..sub.-- CLOCK line. The I.M..sub.-- DATA line is a bi-directional data line (Open Drain with an external pull up resistor). The I.M..sub.-- IDENTIFY line is an output used to identify the "I.M. Address" and also to terminate the transfer. An "IM BUS WRITE" is a transfer out of the 8032 to the IM Slave. An "IM BUS READ" is into the 8032 from the IM Slave device.

I.M. bus transfers always start with a 1 byte address and then 1 or 2 bytes of data. A bit called I1 BYTE (3000W.0) determines how many data bytes to transfer. Another bit called WXR.sub.-- BIT (3000W.1) determines if the transfer will be a read or a write.

I.M. CIRCUIT OVERVIEW

The I.M. circuit is operated via the control and data registers. Here is a quick summary:

I.M. BUS ADDRESS REGISTER (2000W page 12 XL.sub.-- IM.sub.-- AD). The 8032 writes the 8 bit address of the slave device that communication should be established with here. This address is latched in the 74HCT273 and is transferred to the shift register when the transfer begins. It is not necessary to reload this register if the same address is accessed on two successive I.M. transfers. The byte written to this register will always be the first byte written out of the Gate Array for all I.M. transfers.

I.M. WRITE DATA 1 REGISTER (2400W XL.sub.-- IM.sub.-- D1). The byte contained in this register will be the 2nd byte shifted out onto the I.M. bus during I.M. Writes. This register must be reloaded after each transfer.

I.M. WRITE DATA 2 REGISTER (2800W XL.sub.-- IM.sub.-- D2). The byte contained in this register will be the 3rd byte shifted out during I.M. Writes, but only if the transfer length is set to 2 bytes. This regi