Abstract:
In an apparatus and method to upgrade software of a set-top box, when a malfunction renders it impossible to receive software upgrade data through System Information (SI), the data is received through Program Specific Information (PSI). Accordingly, it is not only possible to upgrade the software when a malfunction occurs, but also to recover from the malfunction.

Description:
CLAIM OF PRIORITY 
     This application makes reference to, incorporates the same herein, and claims all benefits accruing under 35 U.S.C. §119 from an application for APPARATUS AND METHOD FOR UPGRADING SOFTWARE OF SET-TOP BOX earlier filed in the Korean Intellectual Property Office on Feb. 18, 2005 and there duly assigned Serial No. 10-2005-0013740. 
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates generally to upgrading software of a Set-Top Box (STB), and more particularly, to an apparatus and method for upgrading software when a malfunction occurs in an STB. 
     2. Description of the Related Art 
     Remote software upgrade is a technique that enables a system&#39;s software to be upgraded without directly accessing the system. This technique is fast and easy and therefore quite useful. Due to its convenience, remote software upgrade is being applied to systems in which large quantities of data are transmitted from a remote location. One such system is a digital broadcasting system, in which remote software upgrade is supported over a broadcasting network. 
     A digital broadcasting system includes a digital broadcasting transmission station, at least one head end connected to the digital broadcasting transmission station through a network, and a Set-Top Box (STB) connected to the head end. The digital broadcasting system can utilize various types of networks, such as a satellite broadcasting network, a terrestrial broadcasting network, a cable broadcasting network, and so on. 
     The STB can receive software upgrade data when software is damaged and fails to operate properly, or when software is upgraded from an older version, in order to improve broadcasting services. The STB receives the software upgrade data from the digital broadcasting transmission station. The digital broadcasting transmission station can transmit the software upgrade data together with a broadcasting signal through the network in order to upgrade the software of the set-top box. The head end makes it possible to transmit the broadcasting signal between the STB and the digital broadcasting transmission station by generating information on the system. Depending on the type of system, the head end can be omitted. 
     In general, the STB upgrades its software through System Information (SI). Specifically, the STB receives and analyzes SI to detect a location of downloadable software, tunes into the frequency of the location, and then finds software upgrade data to upgrade its software. 
     An STB first determines whether or not its software requires upgrading. If it is determined that upgrading is required, the STB determines whether or not there is software-related SI in a received signal. If the result of checking indicates that there is no software-related SI, the STB performs a step of attempting to receive new SI, and a step of determining whether the newly received SI is associated with a software upgrade, until software-related SI has been received. 
     If there is software-related SI in the received signal, the STB receives data for upgrading its software using the corresponding SI, and upgrades its software using the received data. 
     Normally, the software upgrading scheme of the STB that makes use of the above-described SI has the advantage of being able to rapidly retrieve the corresponding software. 
     However, in the case of damaged or malfunctioning software, the STB is often unable to fully perform a software upgrade. Damaged or malfunctioning software can be a result, for example, of a power supply malfunction during software upgrading, or accidental removal of a power plug by a user while saving software. In such a case, because power is cut off before completion of the upgrade or saving operation, an error is generated in an integrity test. In order to repair the error, a new attempt must be made to upgrade the software. 
     When normal service can no longer be provided due to software damage, the STB attempts to forcibly analyze the SI, to detect the location of usable software, and to upgrade the detected software after frequency tuning. However, when something is wrong with a head end or a transfer channel for a control message, etc., it is impossible to receive normal SI. Thus, software cannot be downloaded until the problem is solved. 
     The problem is that according to the software upgrading scheme using SI, software can be received only when SI is received from the head end. Of course, there are digital broadcasting systems where no head end is used, like Out-Of-Band (OOB) systems. In such systems, the SI is transmitted alone through a separately defined channel, and if something is wrong with the corresponding channel, the STB cannot obtain the SI for upgrading the software. Furthermore, since SI downloading modes defined in different standards are all different, a problem of compatibility between the STB and the SI of the corresponding mode arises. 
     SUMMARY OF THE INVENTION 
     It is, therefore, an object of the present invention to provide an apparatus and method of upgrading software, capable of upgrading software of a malfunctioning Set-Top Box (STB). 
     It is another object of the present invention to provide an apparatus and method of upgrading software, capable of performing recovery of the malfunctioning Set-Top Box (STB). 
     It is yet another object of the present invention to provide an apparatus and method of upgrading software, capable of being applied universally to Set-Top Boxes (STBs) having different standards. 
     According to one aspect of the present invention, an apparatus to upgrade software of a Set-Top Box (STB) is provided, the apparatus including: a receiver adapted to receive a digital broadcasting signal and to extract Program Specific Information (PSI) from the received digital broadcasting signal; and a controller adapted to receive the PSI from the receiver and to receive software upgrade data using the received PSI to upgrade the software. 
     The controller is preferably adapted to detect a location of the software upgrade data using the PSI and to receive the software upgrade data from the detected location. The controller is preferably adapted to detect the location of the software upgrade data using program_number, stream_ type, and transport_stream_id information included in the PSI. 
     The receiver preferably includes: a tuner adapted to scan for a frequency of the digital broadcasting signal to receive the signal; and a demultiplexer adapted to receive a multiplexed signal from a channel of the frequency scanned by the tuner, to demultiplex the received signal, and to split the demultiplexed signal into original signals. 
     The controller is preferably adapted to control the tuner to scan for a channel of another frequency upon the PSI received through the demultiplexer not being the PSI containing the software upgrade data. The controller is preferably adapted to receive the software upgrade data using System Information (SI) when the software needs to be upgraded, and to receive the software upgrade data through the PSI upon the software upgrade data not being received normally using the SI. The controller is preferably adapted to determine whether or not the software upgrade data has been received normally through the SI by performing a Cyclic Redundancy Check (CRC). 
     According to another aspect of the present invention, a method of upgrading software of a Set-Top Box (STB) is provided, the method including: detecting, by the set-top box, whether or not a request to upgrade the software has been made; extracting Program Specific Information (PSI) from received information; receiving software upgrade data using the PSI; and upgrading the software using the received software upgrade data. 
     The set-top box detecting the request to upgrade the software preferably determines whether or not the software upgrade data is receivable through System Information (SI), and receives the software upgrade data through the PSI only upon a determination that the software upgrade data is not receivable through the SI. 
     The determination of whether or not the software upgrade data is receivable through the SI preferably includes performing a Cyclic Redundancy Check (CRC). 
     Receiving the software upgrade data preferably includes: checking for a location of the software upgrade data using the PSI and receiving the software upgrade data from the location of the software upgrade data. 
     Checking for the location of the software upgrade data is preferably effected using program_number, stream_type and transport_stream_id information contained in the PSI. 
     Detecting that a request to upgrade the software has been made preferably includes detecting that an error has been generated as a result of performing a Cyclic Redundancy Check (CRC). 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       A more complete appreciation of the present invention, and many of the attendant advantages thereof, will be readily apparent as the present invention becomes better understood by reference to the following detailed description when considered in conjunction with the accompanying drawings, in which like reference symbols indicate the same or similar components, wherein: 
         FIG. 1  is a view of a configuration of a digital broadcasting system; 
         FIG. 2  is a flowchart of a process of upgrading software of an Set-Top Box (STB); 
         FIG. 3  are views of signals transmitted between a digital broadcasting station and an STB in a digital broadcasting system; 
         FIG. 4  is a block diagram of an apparatus for upgrading software of an STB in accordance with an embodiment of the present invention; and 
         FIG. 5  is a flowchart of a process of upgrading software using an STB employing PSI in accordance with an embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       FIG. 1  is a view of a configuration of a digital broadcasting system. As shown in  FIG. 1 , a digital broadcasting system includes a digital broadcasting transmission station  120 , at least one head end  110  connected to the digital broadcasting transmission station  120  through a network, and a Set-Top Box (STB)  100  connected to the head end. The digital broadcasting system can utilize various types of networks, such as a satellite broadcasting network, a terrestrial broadcasting network, a cable broadcasting network, and so on. 
     The STB  100  can receive software upgrade data when software is damaged and fails to operate properly, or when software is upgraded from an older version, in order to improve broadcasting services. The STB  100  receives the software upgrade data from the digital broadcasting transmission station  120 . The digital broadcasting transmission station  120  can transmit the software upgrade data together with a broadcasting signal through the network in order to upgrade the software of the set-top box. The head end  110  makes it possible to transmit the broadcasting signal between the STB  100  and the digital broadcasting transmission station  120  by generating information on the system. Depending on the type of system, the head end  110  can be omitted. 
     In general, the set-top box  100  upgrades its software through System Information (SI). Specifically, the set-top box  100  receives and analyzes SI to detect a location of downloadable software, tunes into the frequency of the location, and then finds software upgrade data to upgrade its software. 
       FIG. 2  is a flowchart of a process of upgrading software of an STB. An STB  100  first determines whether or not its software requires upgrading (S 200 ). If it is determined that upgrading is required, the STB  100  determines whether or not there is software-related SI in a received signal (S 202 ). If the result of checking in step S 202  indicates that there is no software-related SI, the STB performs a step S 220  of attempting to receive new SI, and a step S 222  of determining whether the newly received SI is associated with a software upgrade, until software-related SI has been received. 
     If there is software-related SI in the received signal, the STB  100  receives data for upgrading its software using the corresponding SI (S 204 ), and upgrades its software using the received data (S 206 ). 
     Hereinafter, the present invention is described in more detail with reference to the accompanying drawings, in which exemplary embodiments of the invention are shown. To enable a clear understanding of the present invention, related technology that is well known to those of ordinary skill in the technical field to which the present invention pertains, has not been described in detail. 
     The present invention is characterized by upgrading the software of a Set-Top Box (STB) using Program Specific Information (PSI) rather than System Information (SI). PSI is information defined basically in the Motion Picture Experts Group (MPEG) standard. 
     Before describing the configuration of an apparatus for upgrading the software of an STB according to the present invention, the reason why PSI makes it possible to upgrade software in a malfunctioning STB will first be explained. 
       FIG. 3  is a view of signals transmitted between a digital broadcasting station and an STB in a digital broadcasting system. 
     As shown in  FIG. 3 , a digital broadcasting system has a variety of information such as PSI, Advanced Television Systems Committee (ATSC) information, Digital Video Broadcast (DVB) information, and so on, including audio/video signals. Unlike ATSC information, DVB information, etc., which include SI according to different standards, PSI includes SI as basic information together with an AV channel. Since PSI is defined in the MPEG standard and is needed at least to playback AV data, all broadcasting channels of MPEG-2 have PSI. In other words, unlike SI, PSI is always transmitted in an AV channel whenever AV data is transmitted. Furthermore, PSI does not require a separate configuration for its extraction. Therefore, a software upgrade mode using PSI would enable continuous provision of service after software is upgraded, even when an STB malfunctions. 
     Generally, information such as PSI, ATSC information, DVB information, etc., used in a digital broadcasting system, is tabulated. A PSI table includes information required for the STB  100  to demultiplex a Transport Stream (TS) received from the digital broadcasting station  120 . The PSI table can include a Program Association Table (PAT), a Conditional Access Table (CAT), and a Program Map Table (PMT). 
     The PSI allows the STB  100  intended to upgrade the software to detect a location of the software upgrade data. Information on the location of the software upgrade data, i.e., program_number, stream_type, and transport_stream_id, can be included in the PSI. Among this information, program_number is used to distinguish each program in frequency, and stream_type is used to determine whether each stream in a program corresponds to audio, video, data, or is user-defined. These two pieces of information are essential for AV playback. The third piece of information, transport_stream_id, is used to distinguish each frequency. The present invention is adapted to detect the location of downloadable software and upgrade software of the STB using PSI, and especially, using transport_stream_id. It is assumed that the program_number, the stream_type, and the transport_stream_id are preset between the digital broadcasting transmission station  120  and the STB  100 . 
     Signals containing the above-mentioned A/V data, PSI, ATSC data, DVB data, etc., are multiplexed by a multiplexer of the digital broadcasting transmission station  120 , transmitted to the STB  100  through the network, and then demultiplexed by a demultiplexer. In other words, the STB  100  demultiplexes the received signals in order to obtain necessary information. 
     An apparatus for upgrading software of an STB using PSI according to an embodiment of the present invention is described as follows. 
       FIG. 4  is a block diagram of an apparatus for upgrading software of an STB according to an embodiment of the present invention. 
     As shown in  FIG. 4 , an apparatus for upgrading software of an STB according to an embodiment of the present invention includes a tuner  400 , a demultiplexer  410 , and a controller  420 . The tuner  400  scans for a frequency of a signal in order to receive signals from a digital broadcasting transmission station  120 . A tuned signal is output to the demultiplexer  410 . The demultiplexer  410  demultplexes the received signal, splits it into original signals that were multiplexed at the digital broadcasting transmission station  120 , and then outputs the split signals to the controller  420 . 
     The controller  420  checks whether there is PSI in the demultiplexed signals received from the demultiplexer  410 . If there is PSI in the received signals, the controller  420  receives software upgrade data using the PSI, and then upgrades the software using the received software upgrade data. If there is no PSI in the received signals, the controller  420  instructs the tuner  400  to scan for signals having other frequencies. Furthermore, the controller  420  can comprehensively control a process of upgrading software according to the present invention, for example, a process of determining whether or not the STB  100  needs to upgrade software. 
     Operation of the apparatus for upgrading software of an STB according to an embodiment of the present invention is described below with reference to the drawings. 
       FIG. 5  is a flowchart of a process of upgrading software of an STB employing PSI in accordance with an embodiment of the present invention. 
     An apparatus of the present invention determines whether or not the STB  100  requires a software upgrade at present (S 500 ). A determination is made that the STB  100  requires a software upgrade when the software of the STB  100  malfunctions or when the software of the STB  100  needs to be replaced with a newer version, etc. In other words, the apparatus of the present invention determines whether or not the STB  100  is malfunctioning, and if it is, determines that the software needs to be upgraded. A determination of whether or not a malfunction exists can utilize an integrity test, such as an error detection method, e.g., a Cyclic Redundancy Check (CRC). 
     Among all of the various integrity test methods, the CRC is the simplest, most commonly used error detection method capable of checking every byte of software and determining whether any part is damaged. Of course, the STB  100  software upgrade can be performed when existing software is replaced with new software, or when an upgrade is requested by a system operator. 
     For example, the integrity test, etc. can be performed through a boot loader when the STB  100  is booted. The boot loader is the simplest type of software and operates when a system is started up. The boot loader can be used to initialize the system, detect problems, etc. 
     If a determination has been made that the software of the STB  100  needs to be upgraded, the apparatus of the present invention determines whether the STB  100  can operate normally to receive SI (S 502 ). If a determination has been made that the STB  100  can operate normally, the STB  100  operates normally (S 504 ). Normal operation refers to detecting the location of the software upgrade data using the SI, and then receiving the data from the detected location to upgrade the software. 
     If a determination has been made in step S 502  that the STB  100  cannot operate normally, the software upgrading apparatus of the present invention performs the processes from step S 510  to step S 518  to upgrade the STB  100  using the PSI. The processes from step S 510  to step S 518  are described in detail as follows. 
     In step S 510 , frequency scanning for signal reception is carried out. This frequency scanning continues until a channel having a signal is detected in step S 512 . 
     If a channel having a signal has been detected, a determination is made as to whether there is software related PSI in the signal received through the channel. This is checked because PSI is not received through all channels. To be specific, information used in the present invention is program_number, stream_type, and transport_stream_id. Therefore, it can be said that steps S 510  to S 514  are processes for checking whether the program_number, stream_type, and transport_stream_id are present. The detailed description of these processes is as follows. The apparatus of the present invention scans a range of predetermined frequencies, and if there is a signal in the corresponding frequency range, attempts reception of a Program Association Table (PAT). If a PAT having the desired transport_stream_id has been received, a determination is made as to whether the PAT contains the desired program_number. If so, an attempt is made to obtain a PID (Program IDendifier) corresponding to the program_number, and then to receive the PMT corresponding to the PID again. If the PMT has not been received, the apparatus proceeds to the next frequency. However, if the PMT has been received, the stream_type is examined to determine if it is a software download type. If so, the apparatus receives the PID corresponding to the stream from the PMT, and attempts to receive the software. If the software has not been received, the apparatus proceeds to the next frequency. This process is performed for all frequencies until the program_number information, the stream_type information, and the transport_stream_id information are received. 
     In step S 516 , the apparatus of the present invention detects a location of software upgrade data using the PSI obtained through the above-mentioned processes, and then receives the software upgrade data from the location. In step S 518 , the apparatus of the present invention upgrades the software using the received software upgrade data. 
     As set forth above, the present invention upgrades the software of the STB using the PSI defined in MPEG-2, thereby being capable of upgrading software even when the STB malfunctions due to damaged software, and consequently enabling recovery from the malfunction. 
     Of course, since upgrading software using the SI and upgrading software using the PSI both have their advantages and drawbacks, it is preferable to use both methods. For example, when the STB operates normally, the software is upgraded using the SI. When the STB does not operate normally, the software is upgraded using the PSI. However, this is simply suggested as one exemplary embodiment of the present invention and does not restrict the present invention. 
     The present invention is adapted to upgrade the software of the STB using the PSI, thereby being capable of upgrading the software even when the STB malfunctions due to damaged software, and consequently enabling recovery from the malfunction. Furthermore, the present invention makes use of the PSI defined in the MPEG-2 standard, so that it can be applied universally to all STBs regardless of their different standards. 
     Although exemplary embodiments of the present invention have been described, it will be understood by those skilled in the art that the present invention is not limited to the described exemplary embodiments. Various changes and modifications can be made within the spirit and scope of the present invention as defined by the following claims.