BACKGROUND OF THE INVENTION
The present invention relates to set-top boxes of the type used in consumer/home applications for processing audio/video signals, including signals provided by cable and, more particularly, to a hardware/firmware organization that allows for a reduction in memory requirements and a consequent savings in cost.
Set-top boxes (STB) are a common electronic device in many homes and are used to process televisions signals provided, for example, from a cable, into various consumer devices, particularly television sets. In general, set-top boxes include signal processing devices to process the particular digital (and/or analog) audio and/or video signals, one or more microprocessors that handle supervisory and control functions, and one or more volatile and non-volatile memories designed to store short-term and long-term information. The microprocessors are controlled by firmware that includes control sequences and sub-sequences for all the functions provided by the set-top box.
FIG. 1 illustrates, in schematic form, the general architecture of a known set-top box STB manufactured by the Sony Corporation of Tokyo, Japan for the processing of digital television (DTV) signals. The set-top box STB includes a DTV board DTVB that includes, among other devices, a microprocessor DTV μp and an associated non-volatile memory DTV MEM that stores various user settings and other operating parameters. Additionally, the set-top box STB includes a front-panel board FPB that includes a register FP REG for recording or otherwise storing user command key presses, and, like the DTV board, includes a microprocessor FP μp and associated non-volatile memory FP MEM. Lastly, the set-top box STB includes a front-end board FEB that includes a board-specific microprocessor FE μp and a tuner and a down-converter. As shown in generic dotted-line illustration, data and control busses/lines interconnect the various boards. In the particular implementation shown, each microprocessor is run or operated by its own firmware and effects control of its own board-specific functions. Thus, the microprocessor DTV μp on the DTV board DTVB is under the control of a DTV application DTV APPLN, the microprocessor FP μp on the front-panel board FPB is under the control of a front-panel program FP PGM, and, lastly, the microprocessor FE μp on the front-end board FEB is under the control of a front-end program FE PGM. In addition to their specific application program, each microprocessor includes a boot-up or initialization routine that runs or executes when electrical power is initially supplied to the microprocessor. The boot-up sequence can automatically invoke the desired application or invoke the application in response user initiated command or key press.
The set-top box STB described above in relationship to FIG. 1 has a “power-down” sequence, as shown in FIG. 2, and a “power-up” sequence, as shown in FIG. 3.
As shown in FIG. 2, the “power-down” sequence is invoked in response to a user-command. The firmware includes a sequence that waits for a user-command interrupt. The user-command interrupt can occur in response to a button press on the set-top box STB or a button press on a ‘remote’ unit (not shown) associated with the set-top box STB. Once a user-command interrupt is detected, a query determines whether or not the command is a ‘power-down’ command. If the interrupt is not a ‘power-down’ command, the application processes that command or request and returns to its wait state to again wait for another command interrupt. Conversely, if the interrupt is a ‘power-down’ command, the DTV application notifies the front-panel board FPB to force the DTV board DTV into its reset mode and, either concurrently therewith or shortly thereafter, sets a variable in the non-volatile memory FP MEM on the front-panel board FPB indicative of the running/not-running state to the “not-running” state. The DTV board DTVB is then concurrently or shortly thereafter forced into its reset mode by the front-panel board FPB. Thus, the power-down sequence shown in FIG. 2 is effective to both store a “not-running” value or flag in the non-volatile memory FP MEM on the front-panel board FPB and also force the DTV board DTVB into its reset mode in response to a ‘power-down’ user-command.
As can appreciated, the power-down sequence does not occur in the event of an unintentional power interruption, i.e., a power failure or inadvertent removal of the power plug from the wall outlet. As a consequence of an unintentional power-down, the running/not-running variable remains set in its running state.
The power-up sequence for the physical architecture of FIG. 1 is shown in FIG. 3. As shown, power is supplied to the set-top box STB with the front-panel board program FP PGM thereafter reading its non-volatile memory FP MEM in order to recover the running/not-running variable. The subsequent query determines whether or not the DTV board DTVB was running or not-running on the last power-down or power interruption. In the event the DTV board DTVB was ‘running’, the front-panel board FPB takes the DTV board DTVB out of reset; the microprocessor DTV up on the DTV board DTVB runs its boot-up sequence and then starts the DTV application DTV APPLN on the DTV board DTVB. Conversely, if the DTV board DTVB was ‘not-running’, the front-panel board FPB waits for a user-command interrupt in the form of a button press on the set-top box STB or its remote. If a command interrupt is detected and that command interrupt is a “power-on” command, the front-panel board FPB sets the “running/not-running” variable to its “running” state in its non-volatile memory FP MEM. Concurrently therewith or shortly thereafter, the DTV board DTVB is taken out of reset which then starts the DTV application DTV APPLN on the DTV board DTVB.
The architecture of FIG. 1 thus utilizes the nonvolatile memory FP MEM on the front-panel board FPB as part of the power-down/power-up sequence; a cost benefit can be realized if the architecture thereof can be reorganized to eliminate the need for the non-volatile memory FP MEM on the front-panel board FPB.
SUMMARY OF THE INVENTION
In view of the above, it is an object of the present invention, among others, to provide an improved architecture for a set-top box of the type described that reduces memory requirements to effect a decrease in manufacturing costs.
It is another object of the present invention to provide an improved memory utilization for a set-top box of the type described in which the non-volatile memory associated with the front-panel board is eliminated.
The present invention advantageously provides an improved memory utilization for set-top boxes of the type used to process audio/video signals in a DTV context. The set-top box architecture includes a front-panel board and a DTV board that has its own non-volatile memory for storing various user default settings, the auto programming tables, and related information. The nonvolatile memory is also used to also store the running/reset state of the DTV board by providing a “power state” variable to the parameters saved into the memory. When power is initially applied to the set-top box, the front-panel board takes the DTV board out of reset to cause the boot-up firmware on the DTV board to execute.
The boot-up firmware reads the non-volatile memory on the DTV board and determines the value of the “power state” variable. If the “power state” value is “on” (i.e., the DTV application was actually running at the time the set-top box was last powered down), the boot-up firmware continues initialization and starts the DTV application. Conversely, if the power state variable is “off”, the boot-up firmware determines the cause of the DTV board being taken out of reset, i.e., whether or not the DTV board was taken out of reset upon a normal power-up or if the user pressed the “power-up” button. The sequence discriminates between the two possible events by reading the state of a front-panel register that is set with each user-initiated key press on the remote unit with the value of the depressed key being stored in the front-panel 5 register. When the value of the “power state” variable is “off”, the boot application reads the front-panel register: if the value in the front-panel register corresponds to a valid DTV “power-up” key, the boot application starts the DTV application in response to the user-requested “power-up” command. Otherwise, the boot application stops its initialization phase and sends a request to the front-panel board to put the DTV board back into its reset mode. Every time the DTV application is started, the “power state” variable is set to “on” and its new value is saved into the non-volatile memory on the DTV board. The “power state” value will be reset to an “off” value only in response to a user commanded “power-down” key press. In the event of a “power-down” key press, the DTV application saves the new value in the non-volatile memory on the DTV board and sends a request to the front-panel board to put the DTV board into reset.
The improved set-top box architecture dispenses with the need for the hithertofore used separate non-volatile memory on the front-panel board with the improved instruction firmware sequence providing reliable operation with reduced memory utilization and resulting cost benefits.
Other objects and further scope of applicability of the present invention will become apparent from the detailed description to follow, taken in conjunction with the accompanying drawings, in which like parts are designated by like reference characters.