datasheets.com EBN.com EDN.com EETimes.com Embedded.com PlanetAnalog.com TechOnline.com  
Events
UBM Tech
UBM Tech

Design Article

Digital and analog PC TV dongles—The basics

Rama Sai Krishna, Cypress Semiconductor

7/19/2012 2:50 PM EDT

digital and analog PC TV dongles--The basics

BDA Driver:

The media player application, which decodes the MPEG2-TS, requires a BDA driver in the host PC to play the MPEG2-TS stream. BDA driver development is specific and customized to the MPEG2-TS source used in the design. If isochronous endpoints are used for streaming MPEG2-TS data, then the BDA driver just needs to send commands to read data from the isochronous endpoint at every polling interval. However, if an interrupt endpoint is used for reading MPEG2-TS data, then a Ping-Pong buffer mechanism needs to be implemented in the BDA driver to ensure there is no data loss in the video. If BULK endpoints are used, then there are definite chances of seeing glitches in the video output because of the bursty nature of the BULK transfers.

 

Figure 2. Analog PC TV Dongle

Description:

The main components are the analog TV dongle are the analog tuner, analog demodulator, CVBS to ITU656 Converter Bridge, and an USB controller. The tuner present in the TV dongle tunes the RF signal to the specific demodulator connected to it. Then the analog demodulator takes the NTSC/PAL/SECAM inputs and outputs composite video signal (CVBS) and SIF signals. The USB controller cannot pass these analog signals to the PC, so a converter chip is needed to convert the CVBS to a digitized parallel data format – ITU656. ITU656 is a parallel 8/10 bit interface for uncompressed digital video streaming. The Pixel CLK runs at 27 MHz and the active video data is given out based on the HSYNC signal (HSYNC = ‘1’) from the demodulator. The length of the video line is calculated with the help of the time-based codes:  Start of Active Video (SAV) and End of Active Video (EAV). SAV and EAV are each four bytes long, where the first three bytes are FF, 00, 00 and the last byte xx is the time-based data used to calculate the length of the video line. There is a sequence of blanking data 80 10 80 10 between the EAV and SAV. The length of the blanking sequence is 280 in the case of PAL and 268 in the case of NTSC.

The length of the Active Video Line is 1440 Bytes.
Thus, the total length is 1728 for PAL (4 +1440 + 4 + 280 = 1728) and 1716 for NTSC. (4 + 1440 + 4 + 268 = 1716).

The USB controller sends this ITU656 data to the connected PC across the USB interface. Also, this USB controller needs to support an I2S interface to stream audio data to the connected PC. This USB controller enumerates as a vendor class with one Isochronous IN endpoint for video and another Isochronous IN endpoint for audio. This device is mapped to the BDA driver .sys file in the PC. The BDA driver forwards this data to the media player application where it is played.

Feature enhancement:

When the user is watching a particular program on channel ‘X’ using this PC TV dongle, then there might be some other program running on another channel ‘Y’ that the user is also interested in. The user is going to miss the second program if a normal TV dongle is in use. The user experience can be enhanced by enable the dongle to demodulate two channels.

 

Figure 3. Block diagram of digital PC TV dongle with new feature

To achieve this, the PC TV dongle contains an extra tuner with demodulator circuitry. The user can then watch a program on channel ‘X’ with the help of digital tuner-1/demodulator-1 and the USB controller. While the user is watching channel ‘X’, the program on the channel ‘Y’ can be recorded in the background with the help of digital tuner-2/demodulator-2 and the USB controller. The challenging part in this design is that the USB controller needs to pass two MPEG2 transport streams at the same time. To support this, the USB controller enumerates with 2 Isochronous IN endpoints and the driver in the PC needs to read data from the 2 endpoints simultaneously.

Figure 4. Digital and analog PC TV dongle with USB Controller

Next-generation SuperSpeed USB 3.0 peripheral controllers enables developers to add USB 3.0 device functionality to any system. The EZ-USB FX3 shown in Figure 4. has an integrated USB 3.0 and USB 2.0 physical layer (PHYs) along with a 32-bit ARM926EJ-S microprocessor for powerful data processing and for building custom applications. It also has a fully configurable, General Programmable Interface (GPIF™ II) that can interface with the demodulator. This GPIF II supports an 8-bit, 16-bit and 32-bit parallel data bus and enables interface frequencies up to 100 MHz. The EZ-USB FX3 contains 512 KB of on-chip SRAM for code and data. It also provides interfaces to connect to serial peripherals such as UART, SPI, I2C, and I2S. The EZ-USB FX3’s internal block diagram is shown above.

In the case of a digital PC TV dongle design, the demodulator is connected to the GPIF II of FX3.  The GPIF II reads the MPEG2 transport stream from the demodulator and then passes this data to the PC. I2C hardware block in the FX3 chip is used to initialize/configure the tuner and the demodulator present in this TV dongle design. To support dual channel support, the FX3 needs to be interfaced with two demodulators. Demodulator-1 is connected to the data bus and the other demodulator is connected to the address bus of FX3. FX3 can read these two MPEG2 transport streams simultaneously and passes this data to the PC connected to it over the USB interface.

The snap shot of the GPIF II designer tool is shown below. Using this flexible GPIF II designer tool, users can configure the FX3 registers to interface with any type of demodulator or with ITU656 Bridge.

Figure 5. GPIF II Designer Tool

In the case of analog PC TV dongle design, a CVBS to ITU656 chip is connected to the GPIF II of FX3.  The GPIF II reads the digital data and then it passes this data to the PC. As this ITU656 runs at 27MHz, the FX3 needs to read and pass this data to PC at the rate not less than 27MBps. If this design is done with a USB2.0 controller, then the video output in the PC may not have high enough quality, as the USB interface cannot support data rates more than 24MBps with an isochronous endpoint. Thus, we need a USB3.0 controller (FX3) to match these data rate requirements. An I2S hardware block in the FX3 is used to stream audio data to the PC.


About the Author

Rama Sai Krishna. V holds an M.Tech in Systems and Control Engineering from IIT Bombay, India. He is currently working as an applications engineer on Cypress USB 2.0 peripherals.

 

 





Davglez

7/20/2012 2:17 AM EDT

It is a very interesting information, so the main thing is the demodulator's speed of processing.

Sign in to Reply



Davglez

7/20/2012 2:29 AM EDT

So if we use USB 2.0 is there any other protocol that permits to reach the best TX rate to the computer? O probably any buffering process into the device or in the computer to recover the delay on the transmission via USB 2.0???

Sign in to Reply



kinnar

7/20/2012 6:39 AM EDT

No, buffering can not work here as the basic data-rate supported by USB 2.0 itself is limiting factor.

Sign in to Reply



kinnar

7/20/2012 6:42 AM EDT

Why the author has limited the application of this interfacing for the PC-USB TV, this scheme is equally applicable to any of the LCD/LED/Plasma TV as well, only display driver hardware will be required in between or may be ARM Processor can taken care of if processing power is there after taking care of the MPEG-TS.

Sign in to Reply



cmathas

7/20/2012 10:02 AM EDT

I've pinged the author to comment. Stay tuned.

Sign in to Reply



Rama Sai Krishna

7/20/2012 10:47 AM EDT

Davglez,

Right. Buffering does not help us as the bandwidth offered by USB2.0 is not sufficient to get a clean video from a analog signal, As kinnar rightly pointed out above. You can go for BULK transfers but as you know BULK transfers are bursty in nature. So you will observe some glitches (data loss) in the final video output.

Thanks,
Sai Krishna.

Sign in to Reply



Rama Sai Krishna

7/20/2012 11:07 AM EDT

Kinnar,

Yes. Actually, I wrote this article by keeping only PC TV dongles in my mind. As you said, this is valid for TVs as well if we have display driver hardware.

Thanks,
sai krishna.

Sign in to Reply



Davglez

7/20/2012 11:31 PM EDT

Cmathas, Rama and Kinnar,

Thank you for the explanation it is more clear for me right now, and yes, I agree with the data loss in Bulk, well so now I undesrtand that USB 3 is a high step in the quality of the achivement of the PC TV devices. I hope we can meet us again in future articules it is a plesure to be here, it is my first time on this. Thanks again and regards.

Sign in to Reply



cmathas

7/21/2012 9:51 AM EDT

Thanks for visiting the site. I hope you come back often.

Sign in to Reply



StvNordquist

7/23/2012 6:30 PM EDT

So much for bluescreening component video with one transistor and relaying indie NTSC 10 watts at a time; on the other hand, so much for reaping long yards of broadcast metadata and other data on CC/SAP, and using 8 tuners (why wouldn't BestBuy want to throw more $100 (retail) antennas through their channel, after all) to have device intelligence throw out bad programs and reencode, time-shift, run the deep-data ads (3D broadsheets, yay,) to hyper-refine data before presentation! More USB device declarations and their PCIx correspondences! Would the LED to make an ultra-speed device indicate new 5.2 audio put it over the power draw limits? With the antennas, perhaps it is better as a premium rain barrel or solar power patch first, and video amanuensis second.

Sign in to Reply



Please sign in to post comment

Navigate to related information

Datasheets.com Parts Search

185 million searchable parts
(please enter a part number or hit search to begin)