`(10) Patent No.:
`(12) United States Patent
`US 6,453,470 B1
`
`
`(45) Date of Patent:Gazdaetal. Sep. 17, 2002
`
`(54) DYNAMIC DETECTION OF HARDWARE
`CONFIGURATIONIN A DIGITAL TERMINAL
`
`2/2000 Perlmanetal. ............. 717/173
`6,023,585 A *
`FOREIGN PATENT DOCUMENTS
`
`(75)
`
`Inventors: Robert Gazda, Wayne; David A.
`Prezuhy, Chalfont; Jack M.
`Birnbaum, Southampton; Rocky C.
`Torsitano, Ambler; Chris Del Sordo,
`Souderton, all of PA (US)
`
`JP
`JP
`JP
`*
`
`*
`8/1990 eee GO06F/1/00
`
`*
`... GOOF/13/14
`9/1994
`* 8/1999 eee HO4L/12/56
`
`02-212910
`09-250954
`11-234340
`.
`cited b
`OY examiner
`ented
`Primary Examiner—Gregory Morse
`Assistant Examiner—John Q. Chavis
`(74) Attorney, Agent, or Firm—Barry R. Lipsitz; Douglas
`M. McAllister
`
`(73) Assignee: General Instruments Corporation,
`Horsham, PA (US)
`.
`.
`.
`.
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`(57)
`ABSTRACT
`US.C. 154(b)
`by 0 days.
`
`
`(b) by0days A method and apparatus for detecting a hardware configu-
`ration in a digilal
`terminal, and, in response, selecting a
`(21) Appl. No.: 09/410,010
`corresponding executable software path for initializing the
`(22) Tiled:
`Sep. 30, 1999
`hardware. All terminals in a digital communication network,
`such as a television network, are provided with a single
`(SV) Tite C0 ence cceeeesteeneceeneeeneees GO06F 9/445
`commonset-top firmware/software object that containsall
`
`
`(52)US.Ch.cccceeeeseseseeeeiees 717/174; 713/100 software components required to run on all hardware plat-
`
`(58) Field of Search........... 717/11, 174; 370/254—-258;
`forms. The total amount of software needed at the terminals
`709/220-222; 710/8-14; 713/100
`is reduced over prior art schemes since the common sott-
`ware object includes software that is commonto the different
`hardware component types only once, instead of providing
`a different object for each hardware type which results in
`duplication of the common software. The software from the
`software object can execute on platforms with different
`hardware components and circuits. This provides freedom to
`the network operator to select terminals with reduced cost
`components, e.g.,
`from different manufacturers.
`Additionally, the system avoidsthe needto provide different
`software to the terminals based on their hardware platform
`type.
`
`.
`(*) Notice:
`
`(56)
`
`References Cited
`U.S, PATENT DOCUMENTS
`5,325,532 A *
`6/1994 Crosswyet al. cee 713/2
`
`5,359,730 A * 10/1994 Marron............
`. TL7/169
`4/1997 Russell etal. ....
`+ TA7/167
`5,623,604 A *
`
`..
`- 709/301
`5,696,970 A * 12/1997 Sandageetal.
`5,742,829 A *
`4/1998 Davis et al...
`717/179
`3,794,032 A *
`8/1998 Leyda ........
`sooo 713/2
`5,812,857 A *
`9/1998 Nelsonet al.
`TAT/173
`5,826,090 A * 10/1998 Mealey et al.
`wee 717/162
`
`wee 709/217
`5,951,639 A
`9/1999 MacInnis ......
`9/1999 Kampeetal... 345/348
`5,953,010 A *
`
`
`
`16 Claims, 2 Drawing Sheets
`
`100
`
`105
`
`PROCESSOR AND
`MEMORY START-UP
`
`
`
`
`
`q
`110
`VERIFY VALIDITY
`OF IDENTIFYING
`INFORMATION
`ERROR
`—___I_
`BEGIN.
`INITIALIZATION
`OF COMPONENT N
`
`EC
`READ COMPONENT
`IDENTIFIER
`
`
`
`[-~ 150
`
`160
`
`
`
`
`
`awa135
`7140
`
`
`COMPONEN
`NO
`TYPE
`
`
`STORE COMPONENT
`TYPE AS A
`
`GLOBAL VARIABLE
`
`EE
`INTIALIZE
`COMPONENT
`
`NO.
`
`!-170
`ust ~\ ves
`COMPONENT?
`
`EXIT
`
`120
`
`Google Exhibit 1059
`Google v. VirtaMove
`
`Google Exhibit 1059
`Google v. VirtaMove
`
`
`
`U.S. Patent
`
`Sep. 17, 2002
`
`Sheet 1 of 2
`
`US 6,453,470 B1
`
`START
`
`PROCESSOR AND
`MEMORY START-UP
`
`VERIFY VALIDITY
`OF IDENTIFYING
`INFORMATION
`
`100
`
`105
`
`+10
`
`ERROR
`
`BEGIN INITIALIZATION[~~'2°
`OF COMPONENT N
`
`
`
`
`
`
`STORE COMPONENT
`
`TYPE AS A
`GLOBAL VARIABLE
`
`
`
`READ COMPONENT
`IDENTIFIER
`
`130
`
`
`
`COMPONENT
`NO
`COMPONENT
`TYPE “A”?
`TYPE "B”?
`
`
`140
`
`INITIALIZE
`COMPONENT
`
`160
`
`
`COMPONENT?
`
`LAST
`
`170
`YES
`
`EXIT
`
`FIG.1
`
`NO
`
`180
`
`
`
`U.S. Patent
`
`Sep. 17, 2002
`
`Sheet 2 of 2
`
`US 6,453,470 BI
`
`JLIOA-NON
`
`JIEVINDAXS
`
`JYVMLIOS
`
`YOSSIOOYd
`
`AYOWAWN
`
`NLNAINOdWOD
`
`LLNINOdWOD
`
`6Old
`
`002“TWNINYSL
`
`
`
`US 6,453,470 Bl
`
`1
`DYNAMIC DETECTION OF HARDWARE
`CONFIGURATIONIN A DIGITAL
`TERMINAL
`
`BACKGROUND OF THE INVENTION
`
`The present invention relates to a method and apparatus
`for detecting a hardware configuration in a digital terminal,
`such as a set-top television terminal used for receiving
`digital video and other data in a subscriber network, and, in
`response, selecting a corresponding executable software
`path, e.g., to initialize the hardware.
`The recent adventof digital set-top terminals has spurred
`the growth of subscriber television networks, such as cable/
`satcllite television networks. Such terminals can support
`increased levels of programming services and a variety of
`software-based applications/functions, such as an electronic
`program guide, stock or weather banners, shop and bank at
`home services, games, and the like. Moreover, this trend is
`expected to continue with the convergence of telephone,
`television and computer networks, and the rise of in-home
`computer networks.
`However,it is difficult to maintain compatibility between
`the software and the hardwareof the different terminals in a
`network. Kor example, different terminals in one network
`may have hardware from different manufacturers, or differ-
`ent component versions from the same manufacturer.
`The hardware may include,
`for example,
`tuners,
`demodulators, MPEG-2 Decoders (e.g., Audio, Video, and
`Data), Video Encoders, Audio Mixers, and so forth.
`Generally, continual hardware changes in set-top termi-
`nals is a result of improvements, cost reductions, new
`components, and second source manufacturers.
`Hardware changes force the development of separate
`software executables(e.g., software objects) for the different
`hardware components. A software objectis a single software
`executable. Conventionally, each hardware component type
`requires ils own object or executable.
`This is problematic since it creates confusion and requires
`additional record keeping to maintain a history of the status
`of each terminal in a network.
`
`Additionally, updated software must be provided to the
`terminals, which leads to additional expense and record
`keeping requirements for the network provider. Commonly,
`the software can be downloaded to specific terminals in
`download messages. However, this process consumes the
`limited bandwidth in the network. Delivery of the software
`via other means, such as local installation via a smart card,
`is similarly burdensome.
`For example, if ten hardware platforms exist in a cable
`television system, ten corresponding objects would need to
`be downloaded, one for each platform.
`Moreover, these problem are compounded by the con-
`tinual upgrading and replacement of terminals in a network
`as technology advances.
`Accordingly, it would be desirable to provide a system for
`dynamically detecting hardware configuration information
`in a digital
`television terminal.
`In response to this
`information, the system should select software components
`from a single executable platform firmware, which includes
`all software necessary to run the terminal’s platform.
`In particular, the system should provide a single set-top
`firmware/software object that contains all software compo-
`nents required to run on all hardware platforms in a network.
`The software should decide which components to use based
`on the hardware configuration.
`
`2
`The system should store the hardware configuration infor-
`mation in a mannerthat avoids corruption.
`The system should reduce the burden in managing soft-
`ware executables in a subscriber television network.
`
`The system should reduce the amount of bandwidth
`required to deliver software to terminals in a communication
`network.
`
`10
`
`The detection of the hardware configuration information
`should be initiated in response to any desired pre-condition,
`e.g., such as whenthe terminalis initialized (e.g., powered
`on or reset), in response to a signal from the network’s
`headend,or periodically, according to a clock signal at the
`terminal.
`
`The system should be compatible with networks that
`communicate digital video, audio and other data to sub-
`scriber terminals.
`
`The present invention provides a system having the above
`and other advantages.
`SUMMARY OF THE INVENTION
`
`The present invention relates to a method and apparatus
`for detecting a hardware configuration in a digital terminal,
`and, in response, selecting a corresponding executable soft-
`ware path, e.g., for initializing the hardware.
`In a particular embodiment, a method is presented for
`initializing a hardware componentin a digital terminal. The
`terminal can be a television terminal or computer terminal,
`for example. The method includes the step of reading data
`from a memory of the terminal that provides identifying
`information regarding at least one hardware component of
`the terminal. An executable software path is selected from a
`plurality of available executable software paths according to
`the identifying information. Additionally,
`the selected
`executable software path is executed at a processor of the
`terminal to initialize the hardware component.
`The identifying information may be, e.g., a manufacturer
`and/or model number of
`the hardware component.
`Moreover,
`the hardware component may be a tuner,
`demodulator, decoder, encoder, or mixer, for example.
`Preferably, the plurality of available executable software
`paths are provided for a corresponding plurality of types of
`hardware components using a commonsoftware object. The
`common software object includes software that is common
`to different types of hardware components,and softwarethat
`is specific to each of the different types of hardware com-
`ponents.
`Advantageously, the total amount of software needed at
`the terminals is reduced over prior art schemes since the
`common software object includes software that is common
`to the different hardware componenttypes only once,instead
`of providing a different object for each hardware component
`type which results in duplication of the common software.
`A corresponding apparatus is also disclosed.
`A method is also presented for initializing hardware
`components in a plurality of digital television terminals in a
`digital television network, where the terminals have differ-
`ent respective types of hardware components. The method
`includes the step of: providing data in respective memories
`of the terminals that provides identifying information
`regarding at least one hardware component type of each
`respective terminal. A common software object is provided
`to the terminals that contains a plurality of different execut-
`able software paths corresponding to the different hardware
`component types.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 illustrates a method for detecting hardware con-
`figuration information in a digital terminal, and selecting
`corresponding software,
`in accordance with the present
`invention.
`
`20
`
`25
`
`30
`
`35
`
`40
`
`50
`
`55
`
`60
`
`65
`
`
`
`US 6,453,470 Bl
`
`3
`FIG. 2 illustrates a digital terminal that detects hardware
`configuration information and selects corresponding soft-
`ware in accordance with the present invention.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`The present invention relates to a method and apparatus
`for detecting a hardware configuration in a digital terminal,
`and, in response, selecting a corresponding executable soft-
`ware path.
`In accordance with the invention, manufacturer, model
`and other hardware-specific information is provided in a
`non-volatile, write-protected area of memory. This informa-
`tion is accessed during initialization of the terminal hard-
`ware platform, e.g., during terminal power onorreset. ‘The
`information is used to select software that is required to
`control and initialize specific pieces of hardware.
`By detecting hardware-specific information during termi-
`nal initialization, the software is able to execute on platforms
`with different hardware components and circuits. This pro-
`vides freedom to the network operator to select terminals
`with reduced cost components, e.g., from different manu-
`facturers.
`
`Manufacturer, model number and other hardware compo-
`nent
`information is stored in protected memory in the
`terminal. The memoryis preferably non-volatile and write-
`protected by hardware to prevent corruption. For example,
`an Electrically Erasable Programmable Read-Only Memory
`(EEPROM)storage device with an Inter-Integrated Circuit
`(°C) businterface, and a protected sector of flash may be
`used. An I?C busis used to connectintegrated circuits (ICs).
`It is a multi-master bus, which means multiple chips can be
`connected to the same bus, and each one can act as a master
`by initiating a data transfer.
`A provision for storing 128 bytes of hardware-identifying
`data is believed to be sufficient for most situations, although
`more or less space can be allocated as required.
`A device driver can be used that has the ability to read the
`contents of a non-volatile protected memory.
`Portions of the memoryare read duringinitialization. ‘he
`contents of the memory are then used to select software
`components (e.g., paths of execution). Tor example, there
`may be a numberof tuners that can be used on a given
`terminal platform. The V860D and V860DL, manufactured
`by General Instrument Corporation, the assignee hereof, are
`two examples of tuner models. Duringstartup, the tuner type
`is read from the memory. A corresponding software path is
`executed based on the determined tunertypeto initialize the
`tuner.
`
`Moreover, both tuner paths are located in a single soft-
`ware object. If more than two paths are present, they are all
`preferably located in a single software object. Therefore, this
`single, common software object can run on different plat-
`forms that have the different tuner types.
`Information included in non-volatile memory ensures that
`downloaded executables will run on the platform.
`FIG. 1 illustrates a method for detecting hardware con-
`figuration information in a digital terminal, and selecting
`corresponding software,
`in accordance with the present
`invention.
`
`The method beginsat block 100. At block 105, processor
`and memorystartup occur. At block 110, the validity of the
`hardware configuration informationis verified, e.g., using a
`known checksum procedure. At blocks 125-170, platform
`hardware is initialized. Specifically, at block 125, the ini-
`
`4
`tialization of the first of “n” hardware components in the
`terminal begins. One or more components can be initialized.
`At block 130, component-identifying data (e.g.,
`hardware-specific information)is read from memoryfor the
`current component.
`At block 135, if the componentis a first type (e.g., type
`“A”), the corresponding information is stored as a global
`variable (block 150). The term “global” is used to describe
`variables that are in scope for any external module that
`requires access to it. For example,
`if the tuner type is
`required by a separate module, storing it as a global when the
`type is dynamically determined will allow the other module
`to use the variable by declaring it as external.
`At block 140,if the componentis a secondtype(e.g., type
`“B”), the corresponding information is stored as a global
`variable (block 150).
`‘The method can account for any
`numberofdifferent component types. Moreover, some com-
`ponents may have only one componenttype. If the compo-
`nent type that is read does not correspond to any known
`componenttype, an error has occurred, and anther attempt to
`read the component may occur.
`At block 160,
`the component is initialized using the
`corresponding software path for the componenttype.
`If the current componentis not the last component to be
`initialized, processing continues at block 125 for the next
`component. If no further components are to be initialized,
`and exit path is taken (block 180).
`FIG. 2 illustrates a digital terminal that detects hardware
`configuration information and selects corresponding soft-
`ware in accordance with the present invention.
`The terminal 200, shownin a simplified form, includes a
`bus 260, such as an I°C bus, a non-volatile memory 210
`(such as EEPROM),a processor 220, an executable software
`function 230, and any number of components, represented
`by component1 (240),. .. , component n (250). Information
`can be exchanged between the various functions via the bus
`260.
`
`the processor can query the component
`Generally,
`240, .. .
`, 250 to obtain the hardware-specific information,
`and transfer this information for storage in the memory 210.
`Upon initialization of the terminal, the processor reads the
`information from the memory 210 and provides it to the
`executable software function 230 to choose the correspond-
`ing software path, e.g., for initializing the component.
`Accordingly, it can be seen that the present invention
`provides a method and apparatus for detecting a hardware
`configuration in a digital terminal, and, in response, select-
`ing a corresponding executable software path. In particular,
`the invention provides all terminals with a single, common
`set-top firmware/software object that contains all software
`components required to run on all hardware platforms.
`Specific details for providing such an object are believed to
`be within the purview of those skilled in the art in view of
`the present disclosure. Moreover, any suitable object-
`oriented programming language may be used.
`The total amount of software needed at the terminals is
`
`reduced over prior art schemes since the common software
`object includes software that is common to the different
`hardware componenttypes only once, instead of providing
`a different object for each hardware type which results in
`duplication of the common software.
`The invention allows software from a common software
`object at a digital television terminal to execute on platforms
`with different hardware components and circuits. This pro-
`vides freedom to the network operator to select terminals
`with reduced cost components, e.g., from different manu-
`facturers.
`
`10
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`
`
`US 6,453,470 Bl
`
`5
`The techniques of the present invention may be imple-
`mented using any known hardware, software and/or firm-
`ware.
`
`Although the invention has been described in connection
`with various specific embodiments, those skilled in the art
`will appreciate that numcrous adaptations and modifications
`may be made thereto without departing from the spirit and
`scope of the invention as set forth in the claims.
`For example, while the invention was discussed in con-
`nection with terminals for cable or satellite television broad-
`band communication networks, it will be appreciated that
`other networks such as local area networks (LANs), metro-
`politan area networks (MANs), wide area networks (WANS),
`internets,
`intranets, and the Internet, or combinations
`thereof, may be used.
`Whatis claimedis:
`1. A method for initializing a hardware component in a
`digital terminal in a communication network, comprising the
`steps of:
`providing a commonsoftware object to the terminal, said
`commonsoftware object containing a plurality of dif-
`ferent executable software paths corresponding to a
`plurality of different hardware component types;
`reading data from a memory of the terminal to obtain
`identifying information regarding at least one hardware
`componentof the terminal;
`selecting an executable software path from the plurality of
`executable software paths according to the identifying
`information; and
`executing the selected executable software path at a
`processorof the terminalto initialize the corresponding
`hardware component.
`2. The method of claim 1, wherein:
`the identifying information comprises at least one of a
`manufacturer and a model of the hardware component.
`3. The method of claim 1, wherein:
`the terminal is a television terminal.
`4. The method of claim 1, wherein:
`the hardware component comprises one of a tuner,
`demodulator, decoder, encoder, and mixer.
`5. The method of claim 1, wherein:
`the common software object includes software that is
`common to the different
`types of hardware
`components, and software that is specific to each of the
`different types of hardware components.
`6. A method for initializing hardware components in a
`plurality of digital terminals in a communication network,
`wherein the terminals have different respective types of
`hardware components, comprising the steps of:
`providing data in respective memories of the terminals
`that provides identifying information regardingat least
`one hardware component type of each respective ter-
`minal; and
`providing a commonsoftware object to the terminals, said
`commonsoftware object containing a plurality of dif-
`
`10
`
`20
`
`25
`
`30
`
`35
`
`40
`
`50
`
`55
`
`6
`ferent executable software paths corresponding lo the
`ditferent hardware component types;
`wherein the terminals are adapted to read their respective
`memories to obtain the identifying information thereof,
`select one of the different executable software paths
`according to the identifying information, and cxccute
`the selected executable software path at a respective
`processor of the terminal
`to initialize the hardware
`componentthereof.
`7. The method of claim 6, wherein:
`is
`the common software object includes software that
`common to the different
`types of hardware
`components, and software that is specific to each of the
`different types of hardware components.
`8. The method of claim 6, wherein:
`the identifying information comprises at least one of a
`manufacturer and a model of the hardware component.
`9. The method of claim 6, wherein:
`the terminal is a television terminal.
`10. The method of claim 6, wherein:
`the hardware component comprises one of a tuner,
`demodulator, decoder, encoder, and mixer.
`11. A digital
`terminal for a communication network,
`comprising:
`a memoryfor storing data that provides identifying infor-
`mation regarding at least one hardware component of
`the terminal;
`means for reading the data trom the memoryto obtain the
`identifying information;
`means for selecting an executable software path from a
`plurality of available executable software paths accord-
`ing to the identifying information; and
`means for executing the selected executable software path
`to initialize the hardware component;
`wherein the plurality of different executable software
`paths are provided for a corresponding plurality of
`different types of hardware components using a com-
`mon software object.
`12. The terminal of claim 11, wherein:
`the identifying information comprises at least one of a
`manufacturer and a model of the hardware component.
`13. The terminal of claim 11, wherein:
`the terminal is a television terminal.
`14. The terminal of claim 11, wherein:
`the hardware component comprises one of a tuner,
`demodulator, decoder, encoder, and mixer.
`15. The terminal of claim 11, wherein:
`is
`the common software object includes software that
`common to the different
`types of hardware
`components, and software that is specific to each of the
`different types of hardware components.
`16. The terminal of claim 11, wherein:
`the memory comprises a non-volatile memory.
`
`