METHOD AND APPARATUS FOR GENERATING A CONTROL SIGNAL BITSTREAM

Abstract: A method and apparatus for generating control signals for both an infrared driver (110) and/or a digital satellite equipment control (DiSEqC) driver (112). Using a universal asynchronous receiver transmitter (UART), the UART (110) may be programmed to produce an appropriate bitstream that is then used to modulate a carrier for the appropriate device, i.e., the IR is infrared driver or the DiSEqC driver. Using the UART to generate the sequential bitstream reduces the overhead on the central processing unit (102). Alternatively, the UART can be programmed to generate a DiSEqC signal directly.

Description: METHOD AND APPARATUS FOR GENERATING A CONTROL SIGNAL BITSTREAM This invention relates to television receivers, and more particularly, to set top terminals having circuitry for controlling external devices. Current televisions and satellite set top boxes (also known as set top terminals) increasingly must function to control external devices. Devices that are generally controlled by a set top terminal include, but are not limited to, a video cassette recorder, satellite receiver switches, satellite receiver antenna orientation control systems and the like. These external devices require a command signal to be sent from the set top terminal to the device in the form of a modulated carrier. Typically, this modulated carrier is in the form of a pulse width key coded signal (an asynchronous control bitstream) To generate such pulse width key coded signals, additional hardware and software is necessary within the set top terminal to generate appropriate signals to control the various devices. At times, the control signals require substantial computation that may cause a processor within the set top terminal to stop decoding received video signals in order to create the control signals. Therefore, a need exists in the art for an improved method and apparatus for generating control signals, particularly with regard to reducing the overhead of the microprocessor. The invention provides a method and apparatus for generating control signal bitstreams for both an infrared driver and/or a digital satellite equipment control (DiSEqC) driver using a universal asynchronous receiver transmitter (UART) The UART may be programmed to produce an appropriate bitstream that is then used to modulate a carrier for controlling a particular device, i.e., the IR infrared driver or the DiSEqC driver. Alternatively, the UART can be programmed to generate a DiSEqC signal directly. Using a UART in the present invention reduces the interrupts processed by a microprocessor, thereby reducing the microprocessor overhead. The teachings of the present invention is described with reference to the accompanying drawings, wherein: FIG. 1 depicts a block diagram of a set top terminal including the present invention; FIG. 2 depicts a representation of a 0 bit and a 1 bit as produced by a universal asynchronous receiver transmitter (UART) for modulating an IR driver; FIG. 3 depicts a representation of a 0 bit and a 1 bit as produced by a UART for modulating a DiSEqC driver; FIG 4 depicts a bitstream generated in accordance with the present invention; and FIG 5 depicts a bitstream that is produced by a UART that is programmed by start/stop bits. To facilitate understanding, identical reference numerals have been used, where possible, to designate elements that are common to the figures. FIG. 1 depicts a block diagram of a set top terminal 1 00 that operates in accordance with the present invention Set top terminal 1 00 comprises central processing unit 1 02, signal processor 1 04, memory 1 06, universal asynchronous receiver transmitter (UART) 1 08, infrared driver 1 1 0, and digital satellite equipment control (DiSEqC) driver 1 1 2. Details of the structure and operation of the various components are well known to those skilled in the art and will not be discussed here. Processor 1 02 operates in conjunction with signal processor 1 04 and memory 1 06 to receive and demodulate audio visual signals in a manner that is well known in the art. Signal processor 1 04 includes a tuner, RF and IF filtering, and other signal processing components necessary to generate a baseband video signal. Set top terminal 1 00 may be used for receiving cable television signals, high definition television signals, satellite television signals, or any other kind of signal that requires a set top terminal. In addition, set top terminal 100 may not be a stand alone device but may be built into a television set or other consumer electronics product. Processor 1 02 is used for both decoding audio-visual signals as well as generating control signals for external devices that are controlled by the set top terminal. To facilitate generation of the control signals in accordance with the invention, processor 1 02 in conjunction with memory 1 06 produces commands on path 1 1 4 that are coupled to UART 1 08. As well known by those skilled in the art, UART 1 08 converts the parallel signals on path 1 1 4 into a serial bitstream on path 1 1 6. The serial bitstream is used in a first embodiment of the invention to modulate a carrier in infrared driver 1 10. The infrared signals are generated by infrared driver 1 1 0 and coupled through a transmission mode to infrared receivers in devices that are to be controlled by set top terminal 1 00. Such devices include video cassette recorders, digital video disk players and recorders, and the like. In a second embodiment of the invention, the serial bitstream generated on path 1 1 6 by UART 1 08 is coupled to digital satellite equipment control (DiSEqC) driver 1 1 2. DiSEqC driver 1 1 2 generates a control signal that is carried by coaxial cable to a slave device such as a satellite receiver antenna oπenter, a satellite dish switch box for selecting between multiple satellite antennas, and the like. When used as an infrared driver source signal, the technique for sending infrared signals to various consumer electronics devices having infrared receivers is known as infrared (IR) blasting IR blasting is the act of transmitting an IR code in the format of the receiving device. In the case of set top terminal products with record capability, large tables of hundreds of IR codes for each manufacturer's products are stored in memory 1 06 Although each of the codes are slightly different, they share many common traits. Each code consists of a predetermined sequence of 0 and 1 bits which make up the respective commands for each of the manufacturers. Each IR code format comprises a plurality of marks, sync bits, O's, 1 's, etc. which ultimately involve either the presence or absence of a carrier frequency. Each code format also specifies the signal structure representative of a 0 bit and a 1 bit. For example, FIG. 2 depicts a 0 bit and a 1 bit structure associated with one type of IR code. Each bit is 1 .5 milliseconds in length where a 0 bit includes the presence of 0.5 milliseconds of the carrier frequency and a 1 bit includes the presence of 1 millisecond of the carrier frequency. Each bit, whether 0 or 1 , begins with a low level for 0.5 milliseconds. The signal level transitions to a high level, i.e., the presence of carrier frequency, for a second 0.5 milliseconds or stays at the low level for the second 0.5 milliseconds depending on whether the bit is a 0 bit or a 1 bit. Then, the signal level ends with the final 0.5 milliseconds being high for either bit. A sequence of these bits is used to drive the infrared driver 1 1 0 to produce an infrared signal having a modulation pattern that is representative of the sequence of bits. The bit structure is similar for DiSEqC driver 1 1 2 except that the bits are inverted as shown in FIG. 3. In FIG. 1 , UART 1 08 may generate the inverted signals directly or inverter 1 1 8 may be used between UART 1 08 and DiSEqC driver 1 1 2. To produce the appropriate bitstreams, UART 108 must be programmed using appropriate start and stop bits. The UART transmission appears as follows: start bit (logical low), followed by some programmable number of bits, terminated with a stop bit (logical high) . Consequently, an 1 8 bit DiSEqC signal consisting of 1 1001 1 00101 00001 1 1 would be formed as follows. The start and stop bits always fall on the correct logical states in the waveform because there is no control of the polarity of the output signal. Using the above definition of a 0 or 1 bit, both bit types start with 0.5 milliseconds of logic low, followed by 0.5 milliseconds of either logic high or logic low, followed by 0.5 milliseconds of high. As such, a 0 or 1 can be represented as 0X1 (where each symbol is 0.5 milliseconds duration and X = 0 when a 0 bit is being generated and X = 1 when a 1 bit is being generated) . Therefore, a generic DiSEqC command that is 1 8 bits long would be represented as shown in FIG. 5. In this example, UART 1 08 was initialized for 1 start bit, 7 data bits, 1 stop bit at a baud rate of 0.5 milliseconds/bit. By transmitting 6 UART bytes, any arbitrary 1 8 bit IR driver command can be represented. With the use of an inverter at the output of the UART, any DiSEqC command can be represented. To transmit the 1 8 bit DiSEqC signal indicated above, the following sequence would be output from UART 1 08: 011011001001011011001001011001011001001001001011011 011 wherein the following six bytes are written to UART 1 08 (the start and stop bits are indicated in parenthesis) : (0)1101100(1), (0)0101101(1), (0)0100101(1), (0)0101100(1), 0x6c, 0x2d, 0x27, 0x2c, (0)0100100(1), (0)1101101(1) 0x24, 0x6d To produce the DiSEqC signal for transmission through the coaxial cable to the slave devices, the bitstream produced by the inverter is used to modulate a 22 kHz carrier signal to produce the appropriate pulse width key (PWK) coded signal for controlling slave devices in a DiSEqC system. In an infrared system, the bitstream produced by the UART is used to directly control the output of an infrared diode. A major benefit of the arrangement for generating control signals according to the present invention is that UART 1 08 is shifting out the bits to the driver(s), and microprocessor 1 02 is only interrupted after a full byte has been shifted out. This reduces the overhead of microprocessor 1 02 by one ninth since interrupts will only occur every 4.5 milliseconds instead of every 0.5 milliseconds which is needed in the prior art "bitbang " approach. Additionally, because UART 1 08 is typically able to latch one byte while the previous byte is being clocked out, the system's real time constraints are greatly reduced because microprocessor 1 02 has an added 4.5 milliseconds of added latency when an interrupt occurs to get the next byte written to UART 1 08. In another embodiment of the invention, UART 1 08 can be used to generate the modulated DiSEqC signal directly. In this arrangement the circuitry for generating the frequency (driver 1 1 2) is eliminated. Depending upon the UART, an inverter may be used to produce a correct DiSEqC signal. In that case, UART 1 08 is set up exactly the same as discussed above for 8 data bits, while the baud rate is set to the carrier frequency, i.e., set to 22 kHz for a DiSEqC signal. As such, many more bytes need to be written out of UART 1 08 using this approach. UART 1 08 provides logical O's by transmitting continuous O's for 0.5 milliseconds with a baud rate set to 22 kHz. This results in 9 logic low bits being shifted out (start plus 8 data bits) followed by 1 logic high bit, which is not desired, but acceptable because the 1 bit is rolled off by a low pass filter in an envelope detector within a receiver in a slave device. UART 1 08 provides logical 1 's by writing out OxCC ( 1 01 01 01 0 binary) for the 0.5 millisecond logic high. The overall pattern output from UART 1 08 including start and stop bits is 0 (start) 1 01 0101 01 (stop) which generates a perfect carrier frequency. FIG. 4 depicts a representation of a directly generated bitstream having the 22 kHz carrier generated by UART 1 08 for directly driving a DiSEqC slave device i.e., UART 1 08 is used as a general purpose programmable timer. The bitstream 400 contains a first bit 402 having a low level signal, then a burst of the 22 kHz carrier for a period of 0.5 milliseconds to generate a 0 bit. This is followed by bit 404 which is identical to the first bit 402, followed by a 1 bit at bit 406 and another 1 bit at bit 408. The 1 bits begin with a low level signal and then are followed by a burst of one millisecond of the 22 kHz carrier signal. To produce a standard DiSEqC signal without using an inverter, UART 1 08 is used to generate a 0.5 millisecond interrupt by setting the baud rate at 20 kHz and shifting out a dummy bit. Every 0.5 milliseconds, an I/O line is toggled appropriately to generate the correct DiSEqC waveform. Although various embodiments which incorporate the teachings of the present invention have been shown and described in detail herein, those skilled in the art can readily devise many other varied embodiments that still incorporate these teachings.

Claims: What is claimed is: 1 . In signal processing apparatus comprising a universal asynchronous receiver transmitter (UART), a method of generating a control signal comprising the steps of: loading the UART (108) with a bitstream sequence representative of a control signal; sequentially reading the bitstream sequence from the UART; and modulating a carrier signal using the sequentially read bitstream sequence to produce a pulse width key (PWK) coded signal. 2. The method of claim 1 , wherein the PWK coded signal comprises bits that are each 1 .5 millisecond in width. 3. The method of claim 2, wherein each bit represent either a logical 1 or 0, where a logical 1 comprises a 500 millisecond period of low signal level, and a 1000 millisecond period of high signal level, and a logical 0 comprises a 1 000 millisecond period of low signal level and a 500 millisecond period of high signal level. 4. The method of claim 2, wherein each bit represent either a logical 1 or 0, where a logical 0 comprises a 500 millisecond period of low signal level, and a 1 000 millisecond period of high signal level, and a logical 1 comprises a 1 000 millisecond period of low signal level and a 500 millisecond period of high signal level. 5. The method of claim 1 , further comprising the step of enabling the UART to provide a start bit and a stop bit, and reading the start bit and the stop bit as part of the bitstream sequence. 6. The method of claim 1 , wherein the carrier signal is an infrared signal. 7. The method of claim 1 , wherein the carrier signal is a 22 KHz signal. 8. The method of claim 1 , wherein the UART operates at a baud rate of approximately 500 milliseconds. 9. The method of claim 1 , wherein the UART operates at a baud rate of approximately 22 KHz. 10. Apparatus for generating control signals comprising: a processor ( 1 02) for generating bitstream sequence representing a control signal; a universal asynchronous receiver transmitter (UART) coupled to said processor, the UART ( 1 08) receiving the bitstream sequence and providing a sequential output in response to the bitstream sequence; a driver, coupled to said UART, for modulating a carrier with the bitstream sequence for receiving the sequential output and to produce a pulse width key (PWK) coded signal. 1 1 . The apparatus of claim 1 0, wherein the PWK coded signal comprises bits that are each 1 .5 millisecond in width. 1 2. The apparatus of claim 1 0, wherein each bit represent either a logical 1 or 0, where a logical 1 comprises a 500 millisecond period of low signal level, and a 1 000 millisecond period of high signal level, and a logical 0 comprises a 1 000 millisecond period of low signal level and a 500 millisecond period of high signal level. 1 3. The apparatus of claim 1 0, wherein each bit represent either a logical 1 or 0, where a logical 0 comprises a 500 millisecond period of low signal level, and a 1 000 millisecond period of high signal level, and a logical 1 comprises a 1 000 millisecond period of low signal level and a 500 millisecond period of high signal level. 14. The apparatus of claim 1 0, wherein the carrier signal is an infrared signal. 1 5. The apparatus of claim 1 0, wherein the carrier signal is a 22 KHz signal. 1 6. The apparatus of claim 1 0, wherein the UART operates at a baud rate of approximately 500 milliseconds. 1 7. The apparatus of claim 10, wherein the UART operates at a baud rate of approximately 22 KHz. 1 8. The apparatus of claim 1 0, wherein the driver is a DiSEqC driver. 1 9. The apparatus of claim 1 0, wherein the driver is an infrared driver. 20, The apparatus of claim 1 0, wherein the UART provides a start bit and a stop bit, the start bit and stop bit being included in the sequential output.

Inventors: DINWIDDIE AARON HAL, DINWIDDIE, AARON, HAL
Applicants: DINWIDDIE AARON HAL, THOMSON LICENSING SA, DINWIDDIE, AARON, HAL, THOMSON LICENSING S.A.
Application year: 2000
Main classification: G06F13
IPC codes: G06F13, H04B1, H04H40, H04L25, H04N5, H04Q9