By Gopal Miglani
Based on several years of work on set-top box software, including the software for an HDTV receiver, I have compiled a list of several of the more interesting software challenges in the advanced television (ATV) domain.
The Fat Pipe Challenge
The maximum data rate for any current proposed standard is 39Mbps. Handling data that fast is a challenge in itself. For every device in the receiver, the designer has to determine the worst-case interrupt response time, and assign interrupt priorities so that critical interrupts will not be lost. Having a real-time operating system that supports interrupt prioritization helps. This disqualifies some RTOSes, like Windows CE, though working around this shortcoming by developing your own interrupt dispatching code is possible. Watch out for interrupt prioritization – “capable” operating systems as well. These operating systems can support interrupt prioritization but for one reason or another, may not support it on your processor of choice.
Polling
Polling is a simple technique that was quite adequate for analog receivers in which several eight-bit micros were controlling individual components of the receiver. ATV receivers typically use a single 32-bit processor. Polling can drain the processor’s resources by providing a constant activity it must keep on performing. “The front key-panel is handle is hardly used, so let’s make it polled” is a common suggestion. that common logic is wrong. Because the keypanel is hardly used, it makes sense to make it interrupt-driven and save around 1% CPU bandwidth.
Slow Buses
The IIC or Inter-IC (also called “I square C” and written as (