`by
`Michael R. Truog
`
`Submitted to the Department of Electrical Engineering and Computer Science
`in Partial Fulfillment of the Requirements of the Degree of
`
`Bachelor of Science in Electrical· Engineering and Engineering
`
`at the Massachusetts Institute of Technology
`
`May 1989
`
`Copyright Mich~el R. Truog 1989
`
`The author hereby grants to M.I.T. the permission to reproduce and to
`distribute copies of this thesis document in whole or in part.
`
`Signature of the Author
`
`~ae~ R. Truog
`r
`Department of Electrical Engineering and Computer Science
`May 16, 1989
`
`Certified by
`
`------------~t ---~~------------------ ----
`
`Walter Bender
`Principle Research Scientist, Media Laboratory
`Thesis Supervisor
`
`Accepted by
`
`. . f:>(;;&>
`
`...
`
`Leonard A. Gould
`Chairman, Department Committee on Undergraduate Theses
`
`A8.CH1Y£s
`~;;usms INSTITUTE
`OF TECHNOLOGY
`JUN 16 1989
`
`UIRARIIiS
`
`Dish, Exh. 1002, p. 1
`
`
`
`The Television Pause Function
`by
`Michael R. Truog
`
`Submitted to the
`Department of Electrical Engineering and Computer Science
`
`May 16, 1989
`
`In Partial Fulfillment of the requirements of the degree of
`Bachelor of Science in Electrical Engineering and Engineering
`
`ABSTRACT
`
`A new pause function is designed and implemented which enables a television
`viewer to pause a live television program for a variable length of time, and then
`return at a later time and continue watching without missing any portion of the
`program. The system uses three VCR,s controlled by digital circuitry to provide
`this feature.
`
`Thesis Supervisor: Walter Bender
`Title: Principle Research Scientist, Media Laboratory
`
`This work was supported in part by I.B.M.
`
`Dish, Exh. 1002, p. 2
`
`
`
`Table of Contents
`
`1. lntroduction ..................................................................... p. 1
`2. Definitions and Explanation of Terms ....................... p. 2-4
`3. Design Requirements ..................................................... p. 4
`4. VCR Deficiencies ............................................................. pp. 5-6
`5. Design Overview ............................................................. pp. 6-7
`6. Software Design ............................................................... pp. 7-16
`6.1 Goals of the Software ........................................ pp. 7-8
`6.2 Software Organization.................
`. ................ pp. 6-16
`6.2.1 Initialization ....................................... p. 8
`6.2.2 Pause ..................................................... pp. 8-15
`6.2.3 The Playback Loop .............................. pp.15-16
`7. Hardware Design ............................................................. pp. 16-21
`7.1 Hardware Requirements ................................. pp. 16-17
`7.2 Hardware Organization ................................... pp. 18-21
`7.2.1 The Controller ..................................... pp. 18-19
`7.2.2 The Registers ....................................... p. 19
`7.2.3 The Switches ....................................... pp. 19-20
`7.2.4 The Synchronization Section .......... p. 21
`8. Implementation .............................................................. pp. 21-22
`9. Applications ..................................................................... p. 22
`10. Possible Additions ......................................................... p. 23
`Appendix A ........................................................................... pp. 23-42
`Appendix B ............................................................................ pp. 43-47
`Appendix C ............................................................................ pp. 48-53
`.Acknowledgements ............................................................. p. 54
`
`Dish, Exh. 1002, p. 3
`
`
`
`Chapter 1. Introduction
`
`This thesis describes a circuit that adds a new pause option to
`
`television. Often people are in a situation where they have just started
`
`watching a television program when some minor interruption, such as a
`
`phone call, takes them away from the viewing area for a short time. To
`
`continue their viewing, there are two opdons. Their first option is to push
`
`record when they leave, rewind the tape after the show is over, and watch
`
`from where they had left off. The second option is simply to skip the portion
`
`they missed. The new 'television pause' function I have designed is a third
`
`option which will enable the viewers to continue watching the program from
`
`where they left off to completion as soon as they return.
`
`Although the television program continues to be broadcast, the
`
`'television pause' feature leads the viewer to believe that the broadcast has
`
`been put on hold. Since the broadcast does not stop, some method was
`
`needed to store the video signal, so that it could be played back at any time.
`
`Before describing my circuit, some background information on video signals
`
`and their storage must be given.
`
`Video signals are transmitted as electro-magnetic radiation from either
`
`an antenna or a satellite. They are received by viewers though a receiving
`
`antenna and are displayed as pictures on a television set (TV). The general
`
`design of the video signal is such that it is composed of discrete packets of
`
`information called frames. Each frame is 1/30th of a second in length and
`
`corresponds to a TV picture 1 /30th of a second in duration. Within each
`
`frame, different frequencies and the amplitudes of these frequencies
`
`1
`
`Dish, Exh. 1002, p. 4
`
`
`
`determine what the picture looks like. The frequencies present in video
`
`signals range from 30 Hz to 4.5M Hz.
`
`There are two methods for storing these signals for later playback. One
`
`is digitizing the signals and storing the information on a disk in the form of
`
`bytes of video information. This method provides very easy access to video
`
`data. Using conventional means it is extremely costly and also difficult to do
`
`due to the high frequency at which the signals are broadcast. A much more
`
`simple method for storing video signals is to record the video using a video
`
`cassette recorder (VCR). The VCR stores the signal in its analog form on a
`
`magnetic tape, which can be read at any time later. The VCR method is much
`
`less expensive but is very awkward to use. (VCR functions and their inherent
`
`problems are discussed in Chapters 2 and 4.) To make this function realizable
`
`as a consumer product the cost of the function is very important, which
`
`makes the choice of methods simple.
`
`Chapter 2. Definitions and Explanation of Temts
`
`VCR stands for video cassette recorder. The brand and model used for
`
`this project was the JVC model HR-SSOOOU Super VHS recorder. The
`
`following VCR functions are used to implement the 'television pause'
`
`function:
`
`Record-- This function causes the VCR to store the video signal on the
`
`tape. It is analogous to a computer writing to mernory. The signal is stored in
`
`discrete packets, frames, similar to the way it is broadcast. Before each frame
`
`2
`
`Dish, Exh. 1002, p. 5
`
`
`
`is recorded, a signal is written on the tape to mark the start of a new frame.
`
`On playback this signal informs the VCR that a new frame is ready to be read.
`
`This signal is referred to as a control pulse. One other note to make about the
`
`record function is that there is a delay between when record is pressed and the
`
`VCR starts recording. This delay was important to account for in the design
`
`of the 'television pause' feature. The delay results from the method used by
`
`the VCR to either record or play. In its rest state, the tape is removed from
`
`the recording/playback head. To write or read the video signal, the tape has
`
`to be wrapped around the recording head so that the recording head is in
`
`physical contact with the tape. The recording delay is the amount of time it
`
`takes to wrap the tape around the recording head. The delay is approximately
`
`three seconds.
`
`Play-- This function reads the video information stored by the record
`
`command and causes the recorded signal to be displayed on a TV. The
`
`control pulses vvritten by record are read by play and used to insure that each
`
`frame is played back accurately. The tape must be touching the
`
`recording/playback head to read the tape, so the same delay that is present in
`
`recording is also found on playback.
`
`Pause -- This function suspends the playback of a recorded video signal.
`
`It is used only when the VCR is in 'play' mode.
`
`Search Rewind -- This function is used to rewind the tape, while
`
`always reading the video and control pulse information. It is invoked by
`
`pressing rewind while the VCR is playing, causing the tape to be rewound
`
`without removing it from the record/playback head.
`
`It is used instead of
`
`3
`
`Dish, Exh. 1002, p. 6
`
`
`
`straight rewind because tape position needs to be known by my circuit and
`
`reading and counting control pulses is the only way to figure tape movement.
`
`Search Forward -- This function is the fast forward version of search
`
`rewind.
`
`The Intel 8751
`
`is an eight bit microprocessor.
`
`It has
`
`programmable ROM on chip as well as 128 bytes of RAM.
`
`Chapter 3. Design Requirements
`
`There are five requirements that my circuit had to fulfill. First, there
`
`should be only one button for the viewer to push to activate the television
`
`pause function. One button makes the function easier to use for a public that
`
`feels inundated with buttons and functions on entertainment equipment.
`
`Second, the user should not have to wait to watch the program after he
`
`returns. Upon returning, the only delay the user should have to wait for is
`
`only the play function delay. Third, the user should be able to watch the
`
`entire program from where he left off. No portion of the program should be
`
`omitted. Fourth, the user should not be able to tell the difference between the
`
`paused program and the original broadcast of the program other than the
`
`lessened quality caused by playing front tape. It is extremely important that
`
`the picture quality is not reduced by the use of the new pause function. The
`
`final requirement is that the user should be able to catch up to actual time by
`
`fast forwarding through commercials.
`
`4
`
`Dish, Exh. 1002, p. 7
`
`
`
`Chapter 4. VCR Deficiencies
`
`To accomplish these goals, the software algorithm had to account for
`
`three short comings that are inherent in home video recorders. The first is
`
`that VCR functions do not react immediately. For instance, once the 'play'
`
`button is pushed, a delay of approximately three seconds takes place before
`
`any video is displayed on the screen. The software needed to plan for this
`
`delay by allowing set up times after asserting any of the VCR's functions.
`
`Second, keeping an accurate record of position on the video tape is very
`
`difficult. The counter on most VCR displays is only accurate on a
`
`macroscopic scale. Using this counter, real position will change by a few
`
`seconds after a rewind or a stop function is used making it impossible to find
`
`a certain frame. My circuit must be able to find the tape position within a
`
`single frame accuracy, so another method was needed. This method was to
`
`count the frames from where recording began and thus the relative distance
`
`between any two frames would always be known. Counting frames is
`
`accomplished by counting control pulses, since a control pulse is recorded
`
`before each frame. Each VCR's tape position is extremely important in
`
`deciding when to turn on or off VCR functions, so whenever the tape is
`
`moving my circuit should know how far it has moved from the number of
`
`control pulses read. This prohibits any tape movement that does not read
`
`control pulses. The functions that do not read control pulses are rewind and
`
`fast forward. Instead of these functions, search rewind and search forward are
`
`5
`
`Dish, Exh. 1002, p. 8
`
`
`
`used, since they read control pulses. The software keeps records of these
`
`relative positions by counting the control pulses and storing them as
`
`variables.
`
`Third, the VCR's have very slow seek times. Finding a certain packet
`
`of information, such as a frame, can be long process. This is because the tape
`
`is a one dimensional storage device. Thus, data can only be searched for in
`
`two directions, forwards and backwards. Search forward and search rewind
`
`are the VCR functions that correspond to these directions. Having a second
`
`dimension to move makes reading much faster, since large portions of
`
`information can be skipped over quickly. A good example of a two
`
`dimensional storage medium is a computer disk. Not having this ability, my
`
`circuit had to plan for search times that were on the same order of magnitude
`
`as the write and read times. Normal search speeds are seven times play speed
`
`in standard play and seventeen times play speed in extended play mode.
`
`Chapter 5. Design Overview
`
`The circuit must perform the 'television pause' function defined by the
`
`design requirements but at the same time it needs to work around the VCR
`
`deficiencies. The method I used to implement the television pause function
`
`is fairly simple. One VCR is recording at all times after the 'television pause'
`
`button is pushed. This makes sure the viewer is able to see the complete
`
`program. Once the viewer returns, one VCR is playing at all times, so there
`
`are no noticeable breaks on playback. Finally, when switching between VCR
`
`6
`
`Dish, Exh. 1002, p. 9
`
`
`
`playback outputs, the VCR next in line to play must be ready to play the
`
`beginning of its recorded segment before the VCR that is playing is finished.
`
`Three VCR's are needed to allow these three states to occur simultaneously
`
`and my circuit has to control them. The system diagram is shown in figure
`
`5.1. This method and its implementation are des"Tibed in detail in the next
`
`two sections.
`
`Figure 5.1 System Diagram
`
`Chapter 6. Software Design
`
`6.1 Goals of the Software
`
`In designing the software, I had the following goals: the state of each
`
`VCR should be known at all times (this includes knowing the function each
`
`7
`
`Dish, Exh. 1002, p. 10
`
`
`
`VCR is performing and each tape position at any moment); signals sent by the
`
`8751 software should be used by the hardware to cause the VCR's to perform
`
`certain functions, and to combine the first two goals into a state machine
`
`that produces the new pause function and would meet the five requirements
`
`listed in section III.
`
`6.2 Software Organization
`
`The software is written in Intel 8051 assembler code. The code is
`
`organized so that all the variables needed are placed in internal RAM. The
`
`listing of variables, what they are for, and their RAM locations is on the first
`
`page of the assembly code listing in Appendix A. The software has three
`
`sections: initialization, the pause, and the playback loop.
`
`6.2.1 Initialization
`
`The initialization section is entered upon power up or an external
`
`reset. The microprocessor reacts by resetting its program counter to location 0.
`
`At this location, there is a jump command to the start of the program. Upon
`
`power up or reset, the circuit should not be interacting with any of the VCR's.
`
`The software clears all control registers at this point by writing four
`
`initialization bytes.
`
`6.2.2 Pause
`
`After initializing the system, the software waits for the user to push the
`
`pause button. Once pushed, the software reacts by switching control of the
`
`8
`
`Dish, Exh. 1002, p. 11
`
`
`
`VCR functions from the VCR control panel to my circuit. It then sends the
`
`record signal for all the VCR's to the control registers. The VCR's begin
`
`recording the program and the software counts the length of the pause.
`
`However, the first VCR does not continue recording until the user returns.
`
`Instead only 44 seconds of the program are recorded. By recording only a
`
`short segment, the tape can be rewound and ready to play before the user
`
`returns. The requirement that the user should not wait is fulfilled here, but
`
`is subject to the constraint he is gone for at least one minute.
`
`Three steps must be taken before rewinding the first VCR. First, to
`
`simplify the switching between outputs of the VCR's, the recorded material
`
`on the VCR's must contain an overlap. This overlap is taken care of by
`
`recording on the second VCR during the first 44 seconds. However, VCR 2's
`
`counter is set so that the code only thinks that it has recorded for six seconds.
`
`This way VCR 2 will not be rewound passed the switch point. The second
`
`step is to stop VCR 1. Once the 'stop' signal is sent, the software waits for two
`
`seconds to insure that the VCR will have time to react to the 'stop' signal
`
`before the software sends another signal. The third step is to send the 'pia y'
`
`signal so that when the tape needs to be rewound, it will be in search rewind
`
`mode instead of rewind mode. The difference may seem subtle but it is very
`
`important. The first goal of the software, knowing each VCR's state, is
`
`dependent upon receiving accurate control pulse inputs. The only way to
`
`obtain accurate information from the video tape is to have the video head
`
`touching the tape. In play and record modes, the head is always in contact
`
`with the tape. So whenever the tape is being moved, the VCR has to be in
`
`9
`
`Dish, Exh. 1002, p. 12
`
`
`
`either play, record, search forward, or search rewind. Figure 6.1 is a diagram
`
`of these steps.
`
`beginning of
`Rewind time tapf reached
`.....
`.......
`Time
`
`REWIND
`
`STOP
`
`button
`pushed
`
`VCR 1
`
`35 sec.
`
`9 sec.
`overlap
`
`~ s 7 sec.
`
`STCP PLAY
`
`VCR 2
`
`VCR 3
`
`Time
`
`Time
`
`Figure 6.1 Initial Record and Rewind Sequence
`
`After another delay of seven seconds, VCR 1 is rewound. Each frame
`
`that is encountered during the rewind is counted and compared to the
`
`number of frames recorded. When they are equal, the beginning of the
`
`recording has been found and the VCR is sent the signal to stop. The time it
`
`10
`
`Dish, Exh. 1002, p. 13
`
`
`
`In stop
`rrme
`
`VCR 1
`
`PLAY
`
`SfCP
`blank screen
`
`I I I
`r vertap •
`recording ~
`• ~
`
`VCR 2
`
`•
`
`STOP PLAY REWIND
`
`PLAY
`
`(A) Too much material was recorded to rewind in time
`resulting in a break in the playback
`
`In stop
`mode
`
`VCR 1
`
`PLAY
`
`overlap~ I I
`
`VCR 2
`
`STCP
`
`STOP PLAY REWIND
`
`PLAY
`
`(B) Recording limit was not exceeded resulting in
`a smooth playback
`
`Time
`
`Time
`
`Time
`
`Time
`
`Figure 6.2 Switching Timing Problem (A) and Solution (B)
`
`1 1
`
`Dish, Exh. 1002, p. 14
`
`
`
`takes to rewind is stored for future use. Figure 6.1 also shows these actions.
`
`At this point, the user could return and immediately view the portion he
`
`missed.
`
`By setting the minimum pause time at only one minute, not only have
`
`I limited the amount of material that can be recorded on the first VCR but
`
`also the second VCR Since the first VCR only has 44 seconds of video to play
`
`when the user returns, the second VCR only has 44 seconds to rewind. This
`
`problem and its solution are illustrated in figures 6.2a and b. The amount of
`
`material that can be recorded on VCR 2 is dependent upon the rewind speed.
`
`The rewind speed is found by dividing the rewind length by the rewind time
`
`found when VCR 1 was rewound. The limit for recording on VCR 2 in
`
`seconds is:
`
`(44 - 8) * rewind time
`
`where the eight corresponds to the set-up time necessary to find the
`
`beginning of each recorded section.
`
`For very short pause times, this limit will not be reached (See figure
`
`6.3a). For these cases, the first VCR is told to play while the third VCR records
`
`the nine second overlap of VCR 2. After the overlap, the second VCR is
`
`stopped and rewound using the same search rewind procedure that was used
`
`for VCR 1.
`
`When the pause times exceed the recording limit for VCR 2, a different
`
`path is follow~d (figure 6.3b). Once this limit is reached, the overlap time for
`
`the third VCR is set to be six seconds. VCR 2 is then stopped but not
`
`rewound. Just as there was a minimum pause time, there is also a maximum
`
`12
`
`Dish, Exh. 1002, p. 15
`
`
`
`con't from
`fig. 4.1
`
`:
`
`button pressed
`again
`
`,con't on fig 4.4
`
`VCR 1
`
`VCR 2
`
`rewinding! st~o_rt_p_a_u_s_e~l----------------------------~---------4--~
`rverlap I I I
`
`,
`STOP'
`' '
`
`recording
`
`PLAY
`
`Time
`
`Time
`
`REWIND
`STOP
`PLAY
`
`VCR 3 re_c_o_rd_in_g--------------------------------------------~4--·
`Time
`
`Figure 6.3a User returns before VCR 2's recording limit
`
`con't from
`fig. 4.1
`
`button pressed
`again
`
`con't on fig 4.4
`
`'
`
`rewinding I i·lo_n ... g ... p_a_u_se ___ +-----------------.:·-----4e-•
`
`VCR 1
`
`,
`STOP'
`
`overlap
`
`PLAY
`
`VCR 2
`
`recording
`
`I I I I
`
`STOP
`
`PLAY REWIND
`
`Time
`
`Time
`
`VCR 3 re_c_o_rd_in•g---.--------------------------------._--------~--·
`Time
`
`Figure 6.3b User returns after VCR 2's recording limit
`
`1 3
`
`Dish, Exh. 1002, p. 16
`
`
`
`pause time. This constraint results from using sixteen bit counters counting
`
`thirty frames a second. z16 is reached in 36 minutes.
`
`When the user finally returns, the first VCR is told to play and then the
`
`second goes into search rewind. At this point, both paths will meet again.
`
`Once the beginning of VCR 2's recorded segment is found, the signal
`
`'play' is sent. This is unlike the first VCR because the second VCR needs to
`
`find the exact frame where switching will take place. Finding this frame and
`
`switching VCR's is a five step process shown in figure 6.4. The VCR is
`
`can't from
`fig. 4.3
`
`.
`
`can't on
`. fig. 4.5
`
`~
`
`VCR 1 p_la.yi_ng--~--------------------------------~:f-+!:~
`'
`'
`Time
`'STOP
`'
`
`~
`~
`'
`'
`'
`
`' '
`rewinding'
`
`VCR 2
`
`(VCR 3 is recording)
`
`beginning of
`recorded segment
`found
`
`2 sec.
`
`-4 sec. of waiting
`
`2 sec.
`
`PLAY
`
`PAUSE
`
`PLAY
`
`SWITCH VCR
`OUTPUT TO
`VCR2
`
`Figure 4.4 Sequence to switch outputs of VCR's
`
`....
`,..,...
`Time
`
`allowed to play to the frame two seconds before the switching point, where it
`
`is paused (the normal pause function). While VCR 2 is in pause mode, the
`
`1 4
`
`Dish, Exh. 1002, p. 17
`
`
`
`software waits for the segment playing on the first VCR to get near its end.
`
`When the ftame on VCR 1 is eight frames behind VCR 2's position, VCR 2
`
`continues playing. After two seconds, VCR 1 will have caught up to VCR 2
`
`and the output to the TV is switched from VCR 1 to VCR 2. These switches
`
`are fairly accurate so as to meet the fourth requirement of the circuit -- that
`
`the user does not realize this is not a live broadcast. After the switch has been
`
`made, VCR 1 is stopped.
`
`6.2.3 The Playback Loop
`
`The software then enters the third section, the loop. The loop is a
`
`series of eight steps that are repeated until the stop button on my circuit is
`
`pressed (See figure 6.5). The process consists of recording an overlap, search
`
`rewinding, finding the frame upon which switching will take place, then
`
`switching the VCR outputs, and finally stopping the VCR that finished
`
`playing. This process is very similar to that used for VCR 2. After each pass
`
`through the loop, the commands are switched so that each VCR cycles
`
`through this process. In figure 6.5, the commands given for the second pass is
`
`given in parentheses beneath the first pass commands.
`
`During the loop, the user is allowed to fast forward through parts of the
`
`recorded video, thus fulfilling the fifth requirement. To fast forward, the fast
`
`forward button on my circuit is pushed to start the fast forward mode, and it
`
`is pushed again to end this mode. However, there are restrictions. If any
`
`VCR is rewinding or is within eighteen seconds of rewinding, the fast
`
`forward function is not possible, since breaks would develop when the VCR's
`
`are switched.
`
`15
`
`Dish, Exh. 1002, p. 18
`
`
`
`EXITS LOOP ON ).
`STOPBUlTON
`PUSHED BY THE
`USER AT ANY
`TIME IN THE LOOP
`
`Figure 6.5 Flowchart of the loop
`
`Chapter 7. Hardware Design
`
`7.1 Hardware Requirements
`
`The hardware has two duties : implernenting the control signals
`
`generated by the software to work the VCR and receiving and configuring the
`
`inputs to a form the software can use. To implement the control signals, the
`
`circuit was connected to the internal circuits of the VCR. For the VCR to react
`
`16
`
`Dish, Exh. 1002, p. 19
`
`
`
`to my circuit's control, the signals that are used by the VCR to produce certain
`
`functions had to be duplicated. The duplication had two requirements. The
`
`first is that my circuit needed to output the correct voltages. Thus to produce:
`
`a 'stop' command, a signal of zero volts needed to be sent to the VCR. The
`
`voltage requirements are listed in table 7.1. The second requirement for
`
`Table 7.1
`Voltages That Produce VCR Functions
`
`FUNCTION
`
`VOLTAGE
`
`Stop
`Pause
`Play
`Rewind
`Fast Forward
`Record
`No Function
`
`o.oov
`o.sov
`1.00 v
`1.50 v
`2.30V
`3.50V
`5.10 v
`
`duplication was that the voltages needed to be stable for a at least a quarter of
`
`a second. The reason for this is to insure that the VCR will have enough
`
`time to see the command. This means that a voltage cannot be generated and -
`
`replaced within a quarter of a second. The second duty of the hardware also
`
`has two requirements. These are that the software should receive all inputs
`
`and that the software should only have to look at each input once. When
`
`these two requirements are met, the amount of code necessary is greatly
`
`reduced.
`
`17
`
`Dish, Exh. 1002, p. 20
`
`
`
`7.2 Hardware Organization
`
`7.2.1 The Controller
`
`The hardware is implemented in four sections that are shown in a
`
`block diagram in figure 7.1 (Also see appendix B for the schematics). The first
`
`STOP BlJITON
`
`...
`- CONTROLLER
`
`CXM'RCl.
`SIGNALS
`
`..
`-
`
`REGISTERS
`
`~~
`
`SYNCHRONIZED
`SIGNALS
`
`PAUSE BUTTON
`
`FAST FORWARD
`BUTTON
`
`... -
`... SYNCHRONIZATION
`-
`t
`CXM'RCl.
`PULSES
`
`SWITCH
`CCNTRl..
`SIGNAL
`
`,,
`
`CXNTRCl..
`SIGNALS
`
`,,
`
`SWITCHES
`
`I
`I + FUNCTION
`\O..TAGES
`
`VCR'S
`
`Figure 5.1 Hardware Block Diagram
`
`18
`
`Dish, Exh. 1002, p. 21
`
`
`
`section is the controller. This section is comprised of the Intel 8751
`
`microprocessor and a 16R8 pal. Its function is to keep track of the state of each
`
`of the VCR's and output certain signals based on these states. The state of
`
`each VCR is determined by the software encoded in the 8751. The software
`
`also produces the output signals. It does this by writing data to its output
`
`ports. The pal produces the load signals used to store these signals in the
`
`second section. The pal also determines whether my circuit should have
`
`control of the VCR's functions or not though its output 'cntl on.'
`
`7.2.2 The Registers
`
`The second section is made up of four registers. The sole purpose of
`
`these registers is to hold the control signals sent from the microprocessor. As
`
`explained above, any inputs to the VCR's need to be stable for a least a quarter
`
`second. It is impossible for the microprocessor to meet this requirement by
`
`itself since the written data is only valid for a very short time (approximately
`
`one microsecond). The registers can hold the data for a much longer period
`
`and thus provide the stability that is necessary.
`
`7.2.3 The Switches
`
`The third section uses the output of the registers to produce a signal the
`
`VCR's can understand and will react to. The signals that need to be produced
`
`are the voltages listed in Table 7.1. To produce these voltages, a set of resistors
`
`in series with switches placed at each of the nodes are used. Three resistor(cid:173)
`
`switch groups were used, each one corresponding to one VCR. The resistors
`
`are connected to pins within the VCR and each switch has its 'on' input
`
`19
`
`Dish, Exh. 1002, p. 22
`
`
`
`connected to ground. The resistors form one half of a voltage divider, with
`
`the other half inside the VCR. By turning on any of the switches and thus
`
`connecting a node to ground, the voltage divider is changed as is the voltage
`
`sent to the VCR. Each switch produces a voltage corresponding to a VCR
`
`function such as 'play' or 'rewind', so turning on the 'record' switch is the
`
`same as pushing the 'record' button on the VCR control panel.
`
`This section must also be able to switch control from the VCR control
`
`panel to my circuit, and vice versa. My circuit should be connected to the
`
`VCR circuitry when the pause function is in use, but the VCR should
`
`maintain control of its functions when the pause function is not being used.
`
`To be able to electronically choose between control sources, switches are
`
`connected to both the VCR and my circuit and are controlled by the 'cntl on'
`
`output of the pal. This arrangement is shown in figure 7.2.
`
`VCR input (In this postion
`when circuit is not in use
`so that the VCR control
`_. ____ ;/"_CFF ,.•---..... p panel is usable)
`
`VCR input
`
`• My circuit hook up (gives
`-•,...--..4• control of VCR functions
`It is only
`to my circuit.
`connected when pause function
`is in use)
`
`Figure 5.2 VCR Function Control Switch
`
`20
`
`Dish, Exh. 1002, p. 23
`
`
`
`7.2.4 The Synchronization Section
`
`Aside from outputting signals, my circuit is constantly receiving
`
`signals both from the VCR and the user. The VCR sends control signals to
`
`my circuit so that position information can be determined. The user can send
`
`three signals to my circuit. These signals are 'television pause', 'fast forward',
`
`and 'stop.' The duration and occurrence of these signals can vary greatly.
`
`The software is written so that each signal is only seen once, so the final
`
`section of the hardware is used to synchronize and configure the inputs to a
`
`form that can be used by the software. The section uses four pals to
`
`accomplish the synchronization. The pals use a scheme where the input is
`
`held until the software wants to use it. The pals wait until the input signal is
`
`unasserted before they look at the signal again, thus eliminating the problem
`
`of multiple reads of the same signal.
`
`8. Implementation
`
`In implementing the 'television pause' function, I had to transfer
`
`control from each VCR to my circuit, assemble the assembler code, and debug
`
`my circuit. Debugging the circuit and assembling the code are fairly standard
`
`and do not need to be explained. In transferring control to my circuit, wires
`
`within each VCR needed to be cut and rewired within my circuit. The VCR
`
`schematics in figures 6.1 and 6.2 show the connections made to the insides of
`
`the VCR's. The switches shown on board 29 in figure 6.1 are buttons on VCR
`
`control panel. The lines were cut at the input of board 30 because the wires
`
`21
`
`Dish, Exh. 1002, p. 24
`
`
`
`were the most accessible at this point. Emulating the functions of board 29
`
`and 30 required little more than relays, resistors and a diode making this
`
`board a good choice. By cutting these wires I disabled many of the buttons on
`
`the control panel, but by hooking them up as shown in figure 7.2, the buttons
`
`were reactivated when the 'television pause' function is not in use. All the
`
`functions that my circuit needed to use, were controlled by placing signals on
`
`the five lines shown in figure 6.1. Figure 6.2 shows the point where I
`
`soldered to get the record and play control pulses.
`
`9. Applications
`
`This circuit has two main uses. One use is that it allows the user to
`
`miss a portion of a television program and be able to view the remaining
`
`program upon returning. The circuit can also be used as a commercial
`
`eliminator. By pushing the 'pause' button at the beginning of the show and
`
`returning ten minutes later, the user will be viewing the show from video
`
`tape. When a commercial is reached, the 'fast forward' button should be
`
`pushed. My circuit will then tell the VCR to search in fast forward mode.
`
`When the commercials are over, the 'fast forward' button is pushed again, so
`
`that my circuit knows to end the search mode. By allowing the user to fast
`
`forward through unnecessary portions, he will be able to approach real time
`
`and thus save viewing time.
`
`22
`
`Dish, Exh. 1002, p. 25
`
`
`
`10. Possible Additions
`
`One feature that could be added to this circuit is a multiple pause
`
`feature. Using this feature the user could miss a section of the program,
`
`return to watch a portion of the program, then repeat this process as many
`
`times as needed. A good deal of software would have to be written but it
`
`would not require any additional hardware since the 'pause' button could be
`
`used.
`
`Once digital encoding of video becomes more prevalent and less
`
`expensive, a digital recording technique should be used in place of the VCR's.
`
`If the search time of a disk became fast enough to switch within a time much
`
`less than the vertical sync of a TV sig