EP1287436A2 - Abstraktes gerätetreiber-modell für die beweglichkeit von gerätetreibern über verschiedene betriebs-system-plattformen - Google Patents

Abstraktes gerätetreiber-modell für die beweglichkeit von gerätetreibern über verschiedene betriebs-system-plattformen

Info

Publication number
EP1287436A2
EP1287436A2 EP00992393A EP00992393A EP1287436A2 EP 1287436 A2 EP1287436 A2 EP 1287436A2 EP 00992393 A EP00992393 A EP 00992393A EP 00992393 A EP00992393 A EP 00992393A EP 1287436 A2 EP1287436 A2 EP 1287436A2
Authority
EP
European Patent Office
Prior art keywords
device driver
operating system
client
interface
abstract
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP00992393A
Other languages
English (en)
French (fr)
Inventor
Robert Gazda
Chris Del Sordo
David A. Prezuhy
Jack M. Birnbaum
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Arris Technology Inc
Original Assignee
Arris Technology Inc
General Instrument Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Arris Technology Inc, General Instrument Corp filed Critical Arris Technology Inc
Publication of EP1287436A2 publication Critical patent/EP1287436A2/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver

Definitions

  • the present invention relates to the field of digital set-top software/firmware for use, e.g., in a cable or satellite television subscriber network.
  • an abstract interface model is provided for device drivers in a set-top terminal.
  • subscriber television networks such as cable/satellite television networks.
  • Such terminals can support increased levels of programming services and a variety of software-based applications and functions, such as an electronic program guide, stock or weather banners, shop and bank at home services, games, and the like.
  • this trend is expected to continue with the convergence of telephone, television and computer networks, and the rise of in- home computer networks.
  • Each terminal includes different hardware devices, for example, tuners, demodulators, MPEG-2 Decoders (e.g., audio, video, and data), video encoders, audio mixers, and so forth, which are controlled by respective drivers.
  • MPEG-2 Decoders e.g., audio, video, and data
  • video encoders e.g., video, and data
  • audio mixers e.g., audio mixers, and so forth, which are controlled by respective drivers.
  • each terminal uses an operating system (OS) platform for controlling the functions of the terminal .
  • the OS has a hierarchical structure wherein functions are separated according to their level of abstraction. At the bottom of the structure, the least abstract level or layer is the hardware device level . The next higher level is the device driver level . At the top of the structure, the most abstract level is typically the client level.
  • each level manages a set of objects, which can be hardware or software objects, and defines operations that can be carried out on the objects.
  • a device driver it is necessary for a device driver to be implemented separately for each operating system platform, e.g., for different set-top manufacturers, or different set-top models from the same manufacturer.
  • a single hardware platform may be required to support different OS platforms. It is even possible for different terminals in the same network to have different operating systems .
  • device drivers for a particular OS are tightly bundled to the OS, which means each driver contains OS-specific details throughout the driver's implementation, so a full development cycle is required to develop drivers for each OS platform.
  • the interface should allow a device driver to be implemented only once while being usable under several operating systems and set-top platforms.
  • One such suitable platform is the DCT5000 series terminals, manufactured by General Instrument Corporation, the assignee hereof.
  • the interface should allow two-way communication between the device driver and a client.
  • the interface should ensure that the hardware device appears the same to the terminal's client (e.g., whatever application or other entity is communicating with the device) regardless of the OS under which the hardware device operates. Similarly, the client should appear the same to the actual device driver regardless of the operating system.
  • the interface should allow the sharing of architecture and code across both OS platforms and hardware platforms .
  • the interface should be usable with operating systems that have, or do not have, a dedicated (operating system-specific) device driver interface.
  • the interface should be implementable using object-oriented or procedure-oriented programming languages .
  • the present invention provides a device driver abstract interface model having the above and other advantages .
  • the present invention relates to an abstract interface model for device drivers in a set-top terminal .
  • the invention allows the development of driver core logic only once.
  • the core still needs to be compiled separately for each OS platform.
  • a method for allowing communication between a client and a device driver in a terminal, where the terminal has an associated specific operating system under which the device driver operates .
  • the method includes the step of providing a first abstract interface for converting a service request from the client that has a format that is operating system-independent into a call to the device driver that has a format that is compatible with the specific operating system.
  • the first abstract interface is adapted to provide the call to the device driver in any one of a plurality of different formats that are compatible with a corresponding plurality of different operating systems .
  • the device driver interface When a dedicated (OS-specific) device driver interface is present, the device driver interface is adapted to receive a second call directly from another client that has a format that is compatible with the specific operating system. The second call does not pass through the first abstract interface. Moreover, the device driver interface provides the second call to the device driver via a second abstract interface.
  • a related method for allowing communication between a client and a device driver in a terminal, where the terminal has an associated specific operating system under which the device driver operates includes the step of providing a first abstract interface for converting a message from the device driver that is in the format of the specific operating system to a corresponding message in an operating system- independent format for use by the client.
  • the first abstract interface is adapted to convert the message from any one of a plurality of different formats that are compatible with a corresponding plurality of different operating systems into the operating system- independent format for use by the client.
  • FIG. 1 illustrates a device driver abstract interface model for use with an operating system that has a dedicated device driver interface in accordance with the present invention.
  • FIG. 2 illustrates a device driver abstract interface model for use with an operating system that does not have a dedicated device driver interface in accordance with the present invention.
  • the present invention relates to an abstract interface model for device drivers in a set-top terminal .
  • Known object-oriented design techniques provide a method for abstractly creating objects. Mainly, the designer can create an object that provides an abstract interface without directly knowing the details of the instantiation of the object. This occurs dynamically, at the run time of the software.
  • the invention extends or modifies this idea as follows. Only a single driver interface is created for all operating systems. This is done at the time the source code is compiled, and only happens once (statically) .
  • the device driver core control resides immediately above the hardware device level, and communicates with the hardware device either directly, or with the assistance of the OS-specific driver support subsystem.
  • the core control includes the majority of all the code in this architecture.
  • the device driver core control implements the logic defined in the device driver abstract interface. This interface defines what services the driver must provide.
  • the core control includes all code required to provide those services .
  • FIG. 1 illustrates a device driver abstract interface model for use with an OS that has a dedicated device driver interface in accordance with the present invention.
  • the dedicated device driver interface 130 may be, e.g., Windows CE from Microsoft (tm) .
  • a layered device driver model 100 includes a number of levels 110, 120, 130, 140, 150 and 160. Typically, the OS requires just a driver implemented to its interface, in one level.
  • a bottom level 160 which is the least abstract level, includes the hardware device itself 162 in the set-top terminal.
  • the next abstract level 150 includes a second device driver abstract interface 152, a device driver core control 154, and an OS-specific driver support 156.
  • the next abstract level 140 includes an OS- specific device driver implementation 142.
  • the next abstract level 130 includes an OS device driver interface 132.
  • the next abstract level 120 includes the first device driver abstract interface 122, and a device driver proxy 124.
  • the next abstract level 110 which is the highest level, includes a client 112 that is using the device driver abstract interface 122, and a client 114 that is using the OS device driver interface 132. Note that while only one device is shown, the invention is suitable for use with any number of devices in a set-top.
  • the OS-specific device driver 142 controls or drives the device driver core control 154 using the second device driver abstract interface 152.
  • this level 140 with the OS-specific device driver 142 converts or transforms OS-specific device driver calls (tied specifically to an OS) into abstract device driver calls that are defined by the device driver abstract interface 152.
  • the OS itself invokes services within the OS- specific device driver 142 through the operating system's defined driver interface 132.
  • the OS may be
  • Microsoft (tm) Windows CE for example.
  • This OS invokes calls having the format "xxx_IOCTL" within a Windows CE Device Driver, where "xxx" represents the Windows CE names of the device.
  • Windows CE represents an example where a proxy would invoke a "DeviceloControl" call to passing the Win CE name of the device.
  • the device driver proxy 124 represents the device driver 154 to the client 112 using the abstract interface 122, which is functionally the same as the device driver abstract interface 152 that is implemented by the device driver core control 154.
  • These clients can include, e.g., middleware and applications. Hence, it appears as if the client is interfacing directly to the driver core itself.
  • the proxy 124 converts or transforms interface service requests from the client 112 into their associated OS-specific system device.
  • the abstract interfaces 122, 152 handle data that is communicated from the driver to the client, which can be synchronous or asynchronous.
  • the driver 154 With synchronous communication, the driver 154 only provides data to the client 110, 114 when asked. The data is transferred across the OS driver boundary as described in connection with the client to driver communication.
  • Asynchronous communication occurs when a driver wishes to send a client data (e.g., a message) without the client asking for it. Note that the driver can only inform the client that it has data, and the client must then synchronously retrieve the data. This is summarized by the following steps:
  • the driver signals the client asynchronously through an event .
  • Client issues a synchronous operation to retrieve or read the data.
  • the device driver proxy 124 converts abstract interface requests from a client 110 into OS- specific device driver system calls.
  • the OS invokes OS-specific driver entry points.
  • the OS- specific driver 142 converts the request back into a driver abstract interface request, which is the same interface call that the client originally performed. This request is executed in the device driver core 154.
  • external clients can chose two interface paths when accessing drivers.
  • the abstract interface 122, 152 can be used in the manner the internal clients (e.g., clients developed by the set- top manufacturer) use it, such as the client 112 is doing in FIG. 1.
  • the OS driver interface can be directly used, as the client 114 is doing in FIG 1.
  • An external client is external to the set-top manufacturer.
  • External clients include any entity that needs to use the manufacturer's driver including, e.g., a middleware developer such as Liberate Technologies (tm) , San Carlos, California, USA, or an OS developer such as Microsoft.
  • FIG. 2 illustrates a device driver abstract interface model for use with an operating system that does not have a dedicated device driver interface in accordance with the present invention.
  • the hierarchical model 200 includes levels 210,
  • the bottom level 260 includes the hardware device 262.
  • the next abstract level 250 includes a device driver abstract interface 252, a device driver core control 254, and an OS-specific driver support 256.
  • the next level 210 includes the client 212 that is using the abstract interface 252.
  • FIG. 2 refers to a set-top system containing an OS without a device driver interface.
  • An example of such an OS is VRTX from Mentor Graphics Corporation, Wilsonville, Oregon, USA.
  • This layered architecture compresses (e.g., fewer layers are required) when the OS does not require the use of a dedicated OS-specific interface.
  • the client 212 again, views the device driver 254 using the device driver abstract interface 252. But, the client directly connects to the driver core 254. Only the abstract interface 252 is available under the OS without dedicated driver interfaces.
  • the device driver 254 views the client via the interface 252 to allow two-way communication. Accordingly, it can be seen that the present invention provides an abstract interface model for device drivers in a set -top terminal.
  • the device driver To clients using the abstract interface, the device driver always appears the same. The client does not need to be redeveloped for each operating system. Also, the client cannot tell or see the difference between the two very different OS implementations (see FIGs 1 and 2) . The driver appears the same. A key point is that the device drivers support an abstract interface allowing clients to be developed once, and utilized across operating systems.
  • the driver core control sub-system is implemented in a OS-independent manner. Typically, this sub-system requires a great amount of effort to develop (e.g., up to 90% of all driver development man-hours) . However, since the driver core control sub-system of the invention only needs to be developed once, and can then be utilized across different OS platforms, the abstract device driver model can greatly improve the time to market for new set-top products.
  • LANs local area networks
  • MANs metropolitan area networks
  • WANs wide area networks
  • internets intranets
  • intranets and the Internet, or combinations thereof, may be used.
  • the invention may be implemented using any known hardware, firmware and/or software techniques.
EP00992393A 1999-12-21 2000-12-06 Abstraktes gerätetreiber-modell für die beweglichkeit von gerätetreibern über verschiedene betriebs-system-plattformen Withdrawn EP1287436A2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US468047 1990-01-22
US46804799A 1999-12-21 1999-12-21
PCT/US2000/042614 WO2001046819A2 (en) 1999-12-21 2000-12-06 Abstract device driver model for the portability of device drivers across different operating system platforms

Publications (1)

Publication Number Publication Date
EP1287436A2 true EP1287436A2 (de) 2003-03-05

Family

ID=23858234

Family Applications (1)

Application Number Title Priority Date Filing Date
EP00992393A Withdrawn EP1287436A2 (de) 1999-12-21 2000-12-06 Abstraktes gerätetreiber-modell für die beweglichkeit von gerätetreibern über verschiedene betriebs-system-plattformen

Country Status (7)

Country Link
EP (1) EP1287436A2 (de)
JP (1) JP2003521027A (de)
KR (1) KR20020073481A (de)
CN (1) CN1434942A (de)
AU (1) AU4310001A (de)
CA (1) CA2395468A1 (de)
WO (1) WO2001046819A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6139603A (en) * 1989-02-22 2000-10-31 L'air Liquide, Societe Anonyme Pour L'etude Et L'exploitation Des Procedes Georges Claude Process for recovering oxygen

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676814B2 (en) * 2004-03-25 2010-03-09 Globalfoundries Inc. Four layer architecture for network device drivers
CN100343803C (zh) * 2004-07-26 2007-10-17 国际商业机器公司 将个性化计算环境从源平台移植到目标平台的方法和系统
CN100454238C (zh) * 2005-04-28 2009-01-21 上海贝尔阿尔卡特股份有限公司 一种实现与设备对象无关的dohm软件接口
CN100351788C (zh) * 2005-05-18 2007-11-28 大唐移动通信设备有限公司 嵌入式设备的驱动方法
US20070067499A1 (en) * 2005-09-08 2007-03-22 Honeywell International Inc. Systems and methods for satellite payload application development
US8046570B2 (en) 2007-02-06 2011-10-25 Microsoft Corporation Supporting multiple operating systems in media devices
US20080222659A1 (en) * 2007-03-09 2008-09-11 Microsoft Corporation Abstracting operating environment from operating system
CN101163074B (zh) * 2007-11-12 2010-12-08 中兴通讯股份有限公司 一种WiMAX终端设备主机驱动方法
FR2930058B1 (fr) * 2008-04-14 2010-06-11 Bull Sas Dispositif portable et procede de demarrage externe d'une installation informatique
CN101615125B (zh) * 2008-06-24 2012-09-19 纬创资通股份有限公司 视频装置代理驱动方法以及其模块
CN102467381A (zh) * 2010-11-16 2012-05-23 北京中电华大电子设计有限责任公司 一种wlan驱动实现方法
US8683428B2 (en) * 2011-03-23 2014-03-25 Microsoft Corporation Automated generation of client/driver communication interfaces
CN103164207B (zh) * 2011-12-16 2016-09-07 深圳市快播科技有限公司 基于安卓系统的跨硬件平台的应用程序开发方法和系统
CN106878467B (zh) * 2017-04-07 2023-06-16 同方威视技术股份有限公司 远程控制设备的方法及远程控制系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5878237A (en) * 1997-07-11 1999-03-02 Compaq Computer Corp. Apparatus, method and system for a comuter CPU and memory to PCI bridge having a pluarlity of physical PCI buses

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO0146819A2 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6139603A (en) * 1989-02-22 2000-10-31 L'air Liquide, Societe Anonyme Pour L'etude Et L'exploitation Des Procedes Georges Claude Process for recovering oxygen

Also Published As

Publication number Publication date
CN1434942A (zh) 2003-08-06
WO2001046819A2 (en) 2001-06-28
WO2001046819A3 (en) 2002-11-28
AU4310001A (en) 2001-07-03
KR20020073481A (ko) 2002-09-26
CA2395468A1 (en) 2001-06-28
JP2003521027A (ja) 2003-07-08

Similar Documents

Publication Publication Date Title
WO2001046819A2 (en) Abstract device driver model for the portability of device drivers across different operating system platforms
AU763158B2 (en) Method and apparatus for providing a virtual desktop system architecture
KR100262432B1 (ko) 인터액티브어플리케이션실행방법,클라이언트-서버다이얼로그시스템
US6286003B1 (en) Remote controlling method a network server remote controlled by a terminal and a memory storage medium for HTML files
US6915347B2 (en) Associating multiple display units in a grouped server environment
EP1322084B1 (de) Skalierung und abgabe von verteilten anwendungen
US20030074485A1 (en) Dynamic corba gateway for CORBA and non-CORBA clients and services
US20120042079A1 (en) Techniques for providing services and establishing processing environments
JP4567115B2 (ja) 条件付きアクセスモジュールへの直接アクセスによってデジタルビデオ放送共通インタフェース機能を拡張する方法及び装置
KR102426381B1 (ko) Api 요청 처리 시스템
KR20080040104A (ko) Sca 기반 시스템의 애플리케이션 컴포넌트 통신 장치 및방법
CN111045781A (zh) 一种云平台创建镜像的方法、装置和存储介质
US20010039566A1 (en) Method and apparatus for controlling an animatronic device using a web enabled cellular phone
US20020073218A1 (en) Stream device management system for multimedia clients in a broadcast network architecture
CN100405760C (zh) 从具有网关的服务环境提供Web服务的方法和系统
US6976263B2 (en) Mechanism for encoding and decoding upgradeable RPC/XDR structures
US8200749B2 (en) Data processing method for generating service interface descriptions
US20030028903A1 (en) System and method for storing and processing data for display on a display device
KR20050094372A (ko) 멀티미디어 콘텐츠 서비스 시스템과 방법 및 그 기록매체
US6721949B1 (en) Kernel abstraction layer for digital television set-top box firmware
KR20080052112A (ko) 컴포넌트 스타트 순서에 따른 sca기반의 파형어플리케이션의 스타트 방법
US20030055874A1 (en) System for automatically recognizing devices connected in a distributed processing environment
US8464218B2 (en) Method port arrangement and configuration method thereof for robot software component
KR100544151B1 (ko) 디지털 텔레비젼의 임베디드 오에스 소프트웨어 통합 시스템
US6401135B1 (en) Translator object for testing an interface to a server object

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20020625

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

AX Request for extension of the european patent

Extension state: AL LT LV MK RO SI

17Q First examination report despatched

Effective date: 20060627

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20061128

P01 Opt-out of the competence of the unified patent court (upc) registered

Effective date: 20230520