throbber
US006453470B1
`(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.
`
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket