KR100559158B1 - Ieee 셋탑 박스 디바이스 드라이버 - Google Patents

Ieee 셋탑 박스 디바이스 드라이버 Download PDF

Info

Publication number
KR100559158B1
KR100559158B1 KR1020007000770A KR20007000770A KR100559158B1 KR 100559158 B1 KR100559158 B1 KR 100559158B1 KR 1020007000770 A KR1020007000770 A KR 1020007000770A KR 20007000770 A KR20007000770 A KR 20007000770A KR 100559158 B1 KR100559158 B1 KR 100559158B1
Authority
KR
South Korea
Prior art keywords
interface
channel
identifier
device driver
application
Prior art date
Application number
KR1020007000770A
Other languages
English (en)
Other versions
KR20010022198A (ko
Inventor
제롬 메릭
크리스토프 디클레르크
Original Assignee
까날 + (쏘시에떼 아노님)
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 까날 + (쏘시에떼 아노님) filed Critical 까날 + (쏘시에떼 아노님)
Publication of KR20010022198A publication Critical patent/KR20010022198A/ko
Application granted granted Critical
Publication of KR100559158B1 publication Critical patent/KR100559158B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40058Isochronous transmission
    • 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
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40065Bandwidth and channel allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40117Interconnection of audio or video/imaging devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0012High speed serial bus, e.g. IEEE P1394

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
  • Stored Programmes (AREA)
  • Circuits Of Receivers In General (AREA)
  • Selective Calling Equipment (AREA)
  • Eye Examination Apparatus (AREA)
  • Small-Scale Networks (AREA)
  • Iron Core Of Rotating Electric Machines (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

수신된 신호가 리시버를 통해 리시버/디코더 및 텔레비젼 세트(2022)로 진행되는 방송 디지털 텔레비젼 시스템용 리시버/디코더(2020)에 사용하기 위한 장치 인터페이스가 개시된다. 이 리시버/디코더는 압축된 MPEG-타입 신호를 디코딩하고, 리시버/디코더의 인터페이스를 통해 원격 제어기/핸드셋(2026)에 의해 제어된다. 리시버/디코더의 동작은 런타임 엔진(RTE)(4008)을 포함하는 가상 컴퓨터(VM)에 의해 제어된다. 리시버/디코더는 외부 유닛과의 다수의 인터페이스를 포함한다. 장치 인터페이스는 RTE에 의해 실행되는 응용프로그램이 IEEE 1394 인터페이스에 의해 액세스될 수 있도록 한다.
리시버/디코더, 디바이스 드라이버, 인터페이스

Description

IEEE 셋탑 박스 디바이스 드라이버{IEEE SET TOP BOX DEVICE DRIVER}
본 발명은 물리적인 장치(주변장치)와 응용프로그램의 인터페이싱에 관한 것으로, 특히 디지털 텔레비젼 시스템용 리시버/디코더에 관한 것이다.
디지털 전송 시스템의 출현으로 이러한 시스템을 다른 목적으로 사용할 가능성이 열렸다. 그중 하나는 최종 사용자와의 쌍방향성을 제공한다는 것이다. 여기에서 사용된 용어 "디지털 전송 시스템(digital transmission system)"은 예를 들어 주로 시청각 또는 멀티미디어 디지털 데이터를 전송 또는 방송하는 모든 전송 시스템을 포함한다. 본 발명이 방송 디지털 텔레비전 시스템에 특히 적용가능하지만, 멀티미디어 인터넷 응용프로그램용 고정 통신망, 폐쇄회로 텔레비젼 등에도 적용가능하다. 여기에서 사용된 용어 "디지털 텔레비젼 시스템(digital television system)"은 예를 들어 모든 위성, 지상파, 케이블 시스템을 포함한다.
본 발명은 수신된 신호가 리시버를 통해 리시버/디코더 그리고 텔레비전 세트로 진행되는 방송 디지털 텔레비전 시스템에서 특히 적용가능하다. 여기에서 사용된 용어 "리시버/디코더(receiver/decoder)"는 어떠한 다른 수단에 의해 방송 또는 전송될 수 있는 인코딩 또는 비인코딩 신호, 예를 들어 텔레비젼 및/또는 라디오 신호를 수신하는 리시버를 내포할 수 있다. 이 용어는 수신된 신호를 디코딩하는 디코더를 내포할 수도 있다. 이러한 리시버/디코더의 실시예는 수신된 신호를 디코딩하는 리시버와 통합된 디코더를 포함할 수 있으며, 예를 들어 "셋탑 박스"에서 이러한 디코더는 물리적으로 분리된 리시버와 결합하여 기능하거나 또는 이러한 디코더는 웹 브라우져, 비디오 레코더, 또는 텔레비젼과 같은 부가 기구를 포함한다.
리시버/디코더는 압축된 MPEG 타입의 신호를 텔레비젼 세트용 텔레비젼 신호로 디코딩한다. 이것은 셋-탑 박스 또는 STB로서 공지된 리시버/디코더의 인터페이스를 통하여 원격 제어 핸드셋에 의해 제어된다. 용어 MPEG은 국제 표준화 기구 작업 그룹 "동영상 전문가 그룹"에 의해 개발된 데이터 전송 표준으로 언급되고 특히 디지털 텔레비젼 응용프로그램용으로 개발되고 문서 ISO 13818-1,ISO 13818-2,ISO 13818-3 및 ISO 13818-4에서 설명된 MPEG-2 표준으로 언급된다. 본 특허 출원에서, 이 용어는 디지털 데이터 전송 분야에서 적용가능한 MPEG 포맷의 모든 변형물, 수정물, 또는 개발물을 포함한다.
삭제
상술한 쌍방향성을 제공하는 하나의 방법은 텔레비젼 신호가 수신되는 리시버/디코더에서 응용프로그램을 실행시키는 것이다. 다양한 응용프로그램이 투명한 방식으로 다양한 물리적인 장치와 통신될 수 있도록 하는 것은 바람직하다. 우리의 계류중인 출원 PCT/EP97/02115와 PCT/EP97/02116은 하나 이상의 응용프로그램이 리시버/디코더에 의해 다운로드될 수 있으며 각각의 장치와 전체 장치관리자를 위한 디바이스 드라이버에 의해 병렬 및 직렬 인터페이스와 스마트카드 리더기와 같은 리시버/디코더의 물리적 장치와 통신할 수 있는 시스템을 설명한다. 여기에서 사용된 용어 "스마트 카드(smart card)"는 예를 들어 마이크로프로세서 및/또는 메모리를 가지는 유사한 기능 및 성능의 모든 칩 기반 카드 장치 또는 물체를 전적으로 그렇지는 않지만 포함한다. 이 용어는 카드와는 다른 물리적인 형태를 갖는 장치, 예를 들어 TV 디코더 시스템에서 종종 사용되는 것과 같은 키 형태의 장치가 포함된다.
본 발명에 따르면, 리시버/디코더가 고속 디지털 인터페이스를 통해 시청각 장치, 예를 들어 디지털 비디오 레코더와 통신할 수 있는 능력을 제공하는 것이 제안되었다. 최근에 개발된 IEEE 1394 표준은 100Mbit/s 이상의 직렬 통신속도를 제공하는 유망하고 융통성있는 인터페이스 프로토콜을 제공한다.
IEEE 1394 인터페이스의 사용에 따른 문제점은, 인터페이스 버스가 리셋되거나 또는 파라미터가 리시버/디코더 이외의 버스에 연결된 장치에 의해 변경될 수 있다는 것이며, 이것은 응용프로그램에 문제를 일으킬 수 있다. 이것에 의해 인터페이스로 처리할 수 있는 복잡한 응용프로그램을 실행하는데 보다 큰 메모리 및 처리 전력을 필요로 할 수 있다. 이것은 각 리시버/디코더의 비용과 응용프로그램의 개발 및 디버깅 비용 모두를 추가시킨다.
본 발명의 측면은 이러한 인터페이스와 응용프로그램과의 인터페이싱 문제를 완화한다. 본 발명이 리시버/디코더와 IEEE 1394 등의 인터페이스와의 인터페이싱에 가장 큰 장점을 제공하지만, 본 발명은 파라미터가 응용프로그램의 제어부 외부에서 변경될 수 있는 인터페이스와 다른 응용프로그램과의 인터페이싱에 적용될 수 있다는 것이 인정될 것이다.
제 1 측면에 있어서, 본 발명은 적어도 하나의 사상후에 변경될 인터페이스 식별자가 할당되는 적어도 하나의 기구를 갖는 인터페이스와 응용프로그램 사이에서 디바이스 드라이버를 통해 데이터를 통신하는 방법이 제공되며, 적어도 하나의 상기 기구에 대하여, 해당 논리 식별자를 저장하는 단계, 디바이스 드라이버와 응용프로그램 사이에서 해당 기구와 관련된 통신을 지시하는 응용프로그램에 논리 식별자를 제공하는 단계, 제공된 논리 식별자를 사용하여 지시된 디바이스 드라이버와 응용프로그램 사이의 통신이 해당 인터페이스 식별자의 기구로의 할당의 변경에 이어 해당하는 주어진 기구와 관련되도록 상기 기구에 할당된 인터페이스 식별자에 관계없이 각 기구와 각 논리 식별자 사이의 대응을 유지하는 단계를 포함한다.
이 방법에서, 인터페이스 식별자와 기구와의 관련이 때때로 변경될 수 있지만, 이러한 변경은 응용프로그램에 실질적으로 투명하게 행해져 결과적으로 단순해질 수 있다.
인터페이스와 디바이스 드라이버 사이의 통신은 바람직하게는 각 인터페이스 식별자를 기초로 지시되고 이것은 인터페이스를 이용한 통신을 수월하게한다.
논리 식별자는 하나 이상의 응용프로그램에 의해 지정된 기구에만 할당될 수 있다. 이것은 필요한 논리 식별자의 수를 감소시킬 수 있다.
대안적으로, 디바이스 드라이버는 상기 모든 기구, 또는 소정의 기준을 충족하는 모든 기구에 대한 논리 식별자와 대응 인터페이스 식별자의 리스트를 컴파일하기 위하여 배치될 수 있으며, 바람직하게는 이 리스트를 매번 업데이트하기 위하여 기구가 추가 또는 제거 또는 변경된다.
이 방법은 응용프로그램이 인터페이스 식별자를 알게 할 필요성을 없애지만, 바람직하게는 디바이스 드라이버는 요구시 논리 식별자에 할당된 인터페이스 식별자와 응용프로그램을 통신하기 위하여 배치된다. 이것은, 인터페이스 및 관련 디바이스 드라이버가 원하는 대로 기능하는 지를 고레벨 응용프로그램이 판단할 수 있기 때문에 시스템의 검사를 수월하게 하는 것으로 알게된다.
삭제
바람직하게, 디바이스 드라이버는 인터페이스 식별자 대신에 적어도 하나의 논리 식별자를 사용하여 버스에 연결된 물리적인 장치 사이의 연결을 정의하도록 응용프로그램으로부터의 요구를 수용하기 위하여 배치된다.
응용프로그램은 바람직하게는 장치 관리 수단을 통하여 디바이스 드라이버와 통신하기 위하여 배치된다. 장치 관리 수단에 의해 전반적인 통신제어가 효과적으로 진행되어 다수의 응용프로그램이 다수의 장치들과 충돌없이 통신할 수 있다.
바람직한 제 1 실시예에서, 인터페이스의 적어도 하나의 상기 기구는 인터페이스에 연결된 주변장치를 포함하고, 해당 인터페이스 식별자는 상기 주변장치에 할당된 (노드 어드레스로 공지된) 물리적인 어드레스를 포함하고, 논리 식별자는 주변장치에 할당된 (논리 주변 식별자로 불릴 수 있는) 논리 어드레스를 포함한다. 따라서, 소정의 논리 어드레스를 사용하는 응용프로그램은 주변장치의 물리적인 어드레스가 (예를 들어 버스와 다른 주변장치와의 연결에 이은 버스 리셋을) 변경시키더라도 소정의 주변장치(예를 들어 디지털 비디오 레코더)와의 통신을 지속시킬 수 있다.
이러한 경우에, 대응성을 유지하는 단계는 상기 또는 각 사상, 예를 들어 버스 리셋에 이어 주변장치에 할당된 물리적인 어드레스를 판단하기 위하여 논리 어드레스가 할당된 각 주변장치를 문의하는 단계를 포함한다. 이것에 의해, 물리적인 어드레스에서의 모든 변경에 이어 할당이 업데이트될 수 있다.
또한 이러한 경우에, 소정의 주변장치에 대한 인터페이스 식별자를 통신하는 단계가 주변장치의 물리적인 (또는 노드) 어드레스를 통신하는 단계와 주변장치의 다른 식별자 예를 들어 주변장치를 식별하는 다른 식별자를 통신하는 단계도 포함하면 특히 유리하다. 유일한 노드 식별자는 주변장치의 제조업자 및/또는 벤더 및/또는 모델넘버를 식별할 수 있으며, 일련번호를 포함할 수 있다. 이 유일한 노드 식별자는 바람직하게는 적어도 4 바이트, 보다 바람직하게는 8 바이트 길이이다.
바람직한 제 2 실시예에 따르면, 적어도 하나의 상기 인터페이스 기구는 인터페이스를 통하여 사용가능한 정의된 파라미터의 채널을 포함하고 대응하는 인터페이스 식별자는 인터페이스 채널번호 (또는 소위 채널식별자)를 포함하고, 논리 식별자는 논리 채널 식별자를 포함한다. 이 방식에서, 변경될 수 있는 인터페이스 채널번호의 트랙을 응용프로그램이 유지할 필요가 없다. 이 채널은 바람직하게는 정의된 밴드폭을 갖는 등시성 채널이다.
바람직하게는, 디바이스 드라이버는 정의된 파라미터의 채널(예를 들면, 정의된 최대 밴드폭을 갖는 채널)을 배치하기 위해 응용프로그램으로부터의 요구를 수용하고 그리고 배치가 성공적이면 논리 채널 식별자를 되돌리기 위하여 배치된다. 응용프로그램이 논리 채널 식별자를 알 필요가 없더라도, 바람직한 인터페이스 채널번호를 수용하고 그리고 사용가능하다면 상기 바람직한 인터페이스 채널을 배치하기 위하여 디바이스 드라이버가 배치되고, 또한 프리 채널을 배치하기 위하여 바람직한 인터페이스 채널을 사용할 수 없거나 바람직한 인터페이스 채널이 지정되지 않으면 바람직하다. 인터페이스 채널을 지정하는 능력에 의해, 인터페이스 채널 번호를 인식하기 위하여 모든 응용프로그램을 필요로 하지 않고 적절한 응용프로그램에 의해 인터페이스의 제어 및 검사를 수월하게 할 수 있다. 바람직하게는 디바이스 드라이버는 바람직한 인터페이스 채널의 식별자를 수신하고, 바람직한 인터페이스 채널을 지정하지 않고 유효한 인터페이스 채널 번호 대신에 소정의 키를 인식하여 다른 무효한 인터페이스 채널번호가 지정되면 응용프로그램에 에러를 보고하기 위하여 배치됨으로써 응용프로그램을 디버깅하는 데에 보조할 수 있다.
디바이스 드라이버가 응용프로그램과, 바람직하게는 다른 파라미터, 바람직하게는 채널에 배치된 최대속도, 현재 사용가능한 속도, 채널을 사용하는 연결부의 수, 채널을 사용하는 각 연결부의 식별자중 적어도 하나를 포함하는 파라미터와, 인터페이스 채널 식별자를 통신하기 위하여 배치되는 것도 바람직하다. 이것은 모든 응용프로그램을 필요로 하지 않고 적절한 응용프로그램에 의한 정밀한 통신 관리가 인터페이스를 사용하는 이러한 파라미터를 처리할 수 있도록 한다.
가장 바람직하게는, 상기 바람직한 제 1 및 제 2 실시예는 함께 사용되며, 상기 디바이스 드라이버는 논리 어드레스와 논리 채널 식별자를 참조하여 인터페이스에 부착된 주변장치들 사이의 하나 이상의 연결부를 정의하도록 응용프로그램으로부터의 요구를 수용하기 위하여 배치된다. 이러한 방식에서의 2가지 실시예의 결합은 관련된 주변장치 또는 연결부가 설치된 인터페이스 채널의 물리적인 어드레스의 모든 세부사항의 트랙을 유지할 필요없이 응용프로그램이 연결부를 정할 수 있는 시너지 효과를 제공한다. 바람직하게는, 디바이스 드라이버는 특정 주변장치와 방송 연결부 사이의 적어도 하나의 점대점(point-to-point) 연결을 정하기 위하여 배치된다.
인터페이스 파라미터가 변경되기 쉬운 버스 리셋과 같은 사상동안 통신이 인터럽트될 수 있다. 응용프로그램으로부터의 입력을 필요로 하지 않고 디바이스 드라이버가 특정 사상을 처리할 수 있지만, 디바이스 드라이버는 (응용프로그램이 요구되면) 응용프로그램에, 버스의 리셋(바람직하게는 리셋의 시작과 끝을 알리는 개별적인 사상들), 버스 형태의 변경 또는 채널 또는 연결 파라미터중 적어도 하나를 포함하는 하나 이상의 사상을 알리기 위하여 배치된다.
삭제
제 2 측면에 있어서, 본 발명은 적어도 하나의 사상후에 변경되기 쉬운 인터페이스 식별자가 할당된 적어도 하나의 기구를 갖는 인터페이스와 응용프로그램 사이의 통신을 행하는 디바이스 드라이버를 제공하며, 이 디바이스 드라이버는 개개의 인터페이스 식별자에 대응하는 적어도 하나의 논리 식별자를 저장하는 수단과, 디바이스 드라이버와 응용프로그램 사이의 대응하는 기구와 관련된 통신을 지시하는 응용프로그램에 논리 식별자를 제공하는 수단과, 소정의 논리 식별자를 사용하여 지시된 디바이스 드라이버와 응용프로그램 사이의 통신이 대응 인터페이스 식별자의 기구로의 할당의 변경에 이어 대응하는 소정의 기구와 관련되도록 상기 기구에 할당된 인터페이스 식별자의 상기 기구와 상기 논리 식별자 사이의 대응을 유지하는 수단을 포함한다.
디바이스 드라이버는 하드웨어, 예를 들어 전용 집적회로로 구현될 수 있으며 이것은 개선된 연산속도를 제공할 수 있다. 그러나, 보다 바람직하게는, 디바이스 드라이버는 적어도 부분적으로 소프트웨어로 구현되고, 바람직하게는 응용프로그램을 실행하는 처리수단에 의해 실행되고, 이것에 의해 보다 유연하고, 보다 적은 부품을 필요로 하고, 그리고 디바이스 드라이버가 보다 빠르게 업데이트될 수 있도록 한다.
제 3 측면에 있어서, 본 발명은 응용프로그램을 실행시키는 런타임 엔진 수단과; 적어도 하나의 장치에 연결하기 위한, 적어도 하나의 사상후에 변경되기 쉬운 인터페이스 식별자가 할당되는 적어도 하나의 기구를 구비한 인터페이스 수단과; 개개의 인터페이스 식별자에 대응하는 적어도 하나의 논리 식별자를 저장하는 수단과, 디바이스 드라이버와 응용프로그램 사이의 대응하는 기구와 관련된 통신을 지시하는 응용프로그램에 논리 식별자를 제공하는 수단과, 주어진 논리 식별자를 사용하여 지시된 디바이스 드라이버와 응용프로그램 사이의 통신이 대응 인터페이스 식별자의 기구로의 할당의 변경에 이은 대응하는 주어진 기구와 관련되도록 상기 기구에 할당된 인터페이스 식별자의 상기 기구와 상기 논리 식별자 사이의 대응을 유지하는 수단을 포함하는 장치 구동 수단을 포함하는 데이터 처리 시스템을 제공한다.
제 1 측면의 바람직한 특징은 제 2 및 제 3 측면에 적용될 수 있다.
삭제
바람직하게는 데이터 처리 시스템은 (인공위성 또는 케이블을 통하여) 방송 데이터를 수신하는 수단을 포함하는 리시버/디코더(예를 들면, 셋탑 박스)로 구현되며, 인터페이스는 디지털 비디오 레코더 또는 디지털 디스플레이 장치 또는 디스플레이용 컴퓨터 또는 적어도 일부의 수신된 데이터의 저장매체와의 연결을 위하여 배치된다. 바람직하게는 장치 구동 수단은 상기 인터페이스로 진행하는 변형된 데이터 스트림을 만들기 위하여 수신된 데이터 스트림을 변경하는 장치 수단과 함께 배치된다.
인터페이스는 바람직하게는 IEEE 1394 표준 또는 그 변경, 개선, 변형을 따른다. 데이터는 IEEE 1883 표준에 따라 전송될 수 있다.
응용프로그램은 바람직하게는 해석식 언어로 실행되고, 디바이스 드라이버는 바람직하게는 컴파일된다.
본 발명은 가장 바람직하게는 응용프로그램이 IEEE 1394 버스를 통해, 예를 들어 디지털 비디오 레코더와 통신할 수 있도록 하는 리시버/디코더에서 사용된다. 디바이스 드라이버는 응용프로그램으로부터 디지털 비디오 레코드를 제어하는 명령을 전송하고 및/또는 디지털 비디오 레코더에 저장된 정보와 관련된 데이터를 수신하기 위하여 배치될 수 있으며, 이러한 방식에 있어서 리시버/디코더에서 실행되는 쌍방향 응용프로그램은 프로그램 등의 데이터의 기록 및 재생을 제어할 수 있다. 통신될 데이터는 바람직하게는 (기본 MPEG 포맷의 모든 변형 또는 개발을 의미하는) MPEG 포맷 데이터이지만, 다른 포맷이 사용될 수도 있다.
이하, 본 발명의 바람직한 특징이 첨부한 도면을 참조하여 예시로서만 기술된다.
도 1은 리시버/디코더 인터페이스의 개략도.
도 2는 리시버/디코더의 기능 블럭도.
도 3은 가상 컴퓨터와 런타임 엔진의 소정의 구성요소를 보다 상세하게 나타낸 도면.
도 4는 디바이스 드라이버를 통해 응용프로그램과 원격 주변장치 사이의 통신흐름을 설명하는 개략도.
도 5는 디바이스 드라이버의 구성요소를 나타낸 개략도.
삭제
리시버/디코더의 기본
본 발명을 실시하는 디바이스 드라이버를 설명하기 전에, 바람직한 플랫폼인 디지털 위성 리시버/디코더의 기본적인 특징이 간략하게 설명될 것이다.
도 1을 참조하면, 본 실시예의 디바이스 드라이버가 설치될 디지털 쌍방향 텔레비젼 시스템에 사용하기 위한 리시버/디코더(2020) 또는 셋탑 박스가 개략적으로 도시되어 있다. 디지털 쌍방향 텔레비젼 시스템의 적절한 설명은 우리의 계류중인 출원 PCT/EP97/02106-02117에서 찾을 수 있으며 그 내용은 여기에 참조로서 포함되어 있다. 참조의 용이성을 위하여, 상술한 명세서에 보다 상세하게 설명된 부분은 일반적으로 그 명세서에서 사용되는 참조부호로 나타내었다. 디바이스 드라이버의 기능을 이해하는 데 도움을 주기 위하여 리시버/디코더의 기본 구성이 간략하게 기술될 것이다.
상기 명세서에서 보다 상세하게 기술된 것과 같이, 도 1에서 리시버/디코더 (2020)는 몇 개의 인터페이스, 특히 MPEG 신호 흐름을 위한 튜너(4028)와, 직렬 인터페이스(4030)와, 병렬 인터페이스(4032)와, 시스템의 일부를 형성하는 스마트용및 (홈뱅킹 등의 지불에 사용되는) 은행카드 등의 스마트카드용인 2개의 카드 리더(4036)를 포함한다. 리시버/디코더는 모뎀화된 백 채널(4002)과 텔레비젼 신호 발생기와의 인터페이스(4034)도 포함하여, 사용자는 선호도 등을 텔레비젼 신호(프로그램) 발생기에 나타낼 수 있다. 또한 리시버는 하나 이상의 응용프로그램(4056)을 실행하기 위한 런타임 엔진(4008), 장치 관리자(4068) 및 다수의 장치(4062)를 포함한다.
삭제
본 명세서의 목적을 위하여, 응용프로그램은 바람직하게는 리시버/디코더 (2020)의 하이레벨 기능을 제어하는 일종의 컴퓨터 코드이다. 예를 들면, 최종 사용자가 텔레비젼 세트(2022)의 스크린에 보여지는 버튼에 리모콘의 초점을 놓고 확인키를 누르는 경우에, 상기 버튼과 관련된 명령 시퀀스가 실행된다.
쌍방향 응용프로그램은 메뉴를 제안하고 최종 사용자의 요구시 명령을 실행하여 응용프로그램의 목적과 관련된 데이터를 제공한다. 응용프로그램은 리시버/디코더(2020)의 ROM (또는 FLASH 등의 비휘발성 메모리)에 저장되거나 또는 리시버/디코더(2020)의 RAM 또는 FLASH 메모리로 방송 및 다운로드되는 상주 응용프로그램일 수 있다.
상술한 응용프로그램의 보다 상세한 몇 가지의 응용프로그램 예는:
삭제
삭제
Figure 112003025274580-pct00001
리시버/디코더(2020)를 MPEG-2 환경에서 바로 동작될 수 있도록 하는 적절한 모듈의 집합인 개시 응용프로그램.
Figure 112003025274580-pct00002
다운로드되거나 상주하는 모든 응용프로그램이 리시버/디코더(2020)에서 실행될 수 있도록 하는 시동 응용프로그램.
Figure 112003025274580-pct00003
프로그래밍에 관한 전체 정보를 제공하는 쌍방향 응용프로그램인 프로그램 가이드.
Figure 112003025274580-pct00004
사용자가 현재의 사상을 구매할 수 있도록 디지털 TV 부케의 각 PPV 채널에서 사용가능한 쌍방향 서비스인 페이-퍼-뷰 응용프로그램.
Figure 112003025274580-pct00005
최종 사용자가 PC 다운로드 응용프로그램을 이용하여 컴퓨터 소프트웨어를 다운로드할 수 있도록 하는 PC 다운로드 응용프로그램.
Figure 112003025274580-pct00006
온-스크린 버튼을 통해 최종 사용자가 네비게이션하는 이미지의 순환적인 비디오 방송을 포함하는 매거진 브라우져 응용프로그램.
Figure 112003025274580-pct00007
판매용 상품이 리시버/디코더(2020)로 전송되고 텔레비젼(2022)에 디스플레이되어 사용자가 특정 품목을 구매하기 위하여 선택할 수 있도록 하는 텔레쇼핑 응용프로그램.
응용프로그램은 리시버/디코더(2020)의 메모리에 저장되고 리소스 파일로서 표현된다. 리소스 파일은 상술한 명세서에 보다 상세히 기술된 것과 같이 그래픽 객체 설명 유닛 파일, 가변 블럭 유닛 파일, 명령 시퀀스 파일, 응용프로그램 파일 및 데이터 파일을 포함한다.
MPEG 데이터 스트림에서 각 모듈은 MPEG 테이블 그룹을 포함한다. 각 MPEG 테이블은 다수의 섹션으로 포맷될 수 있다. MPEG 데이터 스트림에서, 각 섹션은 4 kbyte까지의 "크기"를 갖는다. 직병렬 포트를 통한 데이터 전송에 대해서는, 예를 들어 모듈은 테이블과 섹션으로 분할되며, 상기 섹션의 크기는 전송매체에 따라 다를 수 있다.
모듈은 각 타입의 데이터 스트림, 예를 들어 비디오 데이터 스트림, 오디오 데이터 스트림 및 텔레텍스 데이터 스트림내에서 전형적으로 188 바이트의 데이터 패킷 형태의 MPEG 데이터 스트림으로 전송된다. 각 패킷은 13 비트의 패킷 식별자 (Packet Identifier:PID)가 앞서게 되며, 그중 하나의 PID는 MPEG 데이터 스트림으로 전송된 각 패킷을 위한 것이다. 프로그램 맵 테이블(programme map table:PMT table)은 다른 데이터 스트림의 리스트를 포함하며 개개의 PID에 따른 각 데이터 스트림의 내용물을 정의한다. PMT 테이블을 사용하여 식별되는 PID는 장치가 데이터 스트림의 응용프로그램 존재를 감시할 수 있도록 한다.
삭제
디코더는 RAM 볼륨, FLASH 볼륨 및 ROM 볼륨으로 분할된 메모리를 포함하지만, 이러한 물리적인 구성은 논리적인 구성과는 구별된다. 메모리는 다양한 인터페이스와 관련된 메모리 볼륨으로 더 분할될 수 있다. 하나의 관점에서 메모리는 하드웨어의 일부로서 간주될 수 있으며, 다른 관점에서 메모리는 하드웨어를 제외한 전체 시스템을 지원 또는 포함하는 것으로서 간주될 수 있다.
시스템은 가상 컴퓨터(4007)의 일부를 형성하는 런타임 엔진(4008)의 중심에 있는 것으로 간주될 수 있다. 이것은 하나의 측면("하이 레벨" 측면)으로는 응용프로그램에 결합되고, 다른 측면("로우 레벨" 측면)으로는 하기에 기술된 다양한 중간 논리 유닛을 통하여 리시버/디코더 하드웨어(4061)에 결합된다. 리시버/디코더 하드웨어는 상술한 바와 같이 다양한 포트 또는 인터페이스(핸드셋(2026)용 인터페이스(2030), MPEG 스트림 인터페이스(4028), 직렬 인터페이스(4030), 병렬 인터페이스(4032), 카드 리더(4036)와의 인터페이스, 모뎀화된 백 채널(4002)과의 인터페이스(4034))를 포함하는 것으로서 간주될 수 있다.
도 2를 참조하면, 다양한 응용프로그램(4056)이 유닛(4007)에 결합되고, 보다 일반적으로 사용되는 응용프로그램의 일부는 참조부호 (4057)로 나타낸 것과 같이 시스템에서 얼마간 영구적으로 상주할 수 있는 반면에, 나머지들은 예를 들어 MPEG 데이터 스트림 또는 다른 포트로부터 필요한 만큼 시스템으로 다운로드될 것이다.
유닛(4007)은, 런타임 엔진(4008)에 더하여, 툴박스(4058)를 포함하는 소수의 상주 라이브러리 함수(4006)를 포함한다. 이 라이브러리는 엔진(4008)에 의해 사용되는 C 언어로 보조기능을 포함한다. 이것은 데이터 구조의 압축, 확장 또는 비교와 같은 데이터 조작 처리, 라인 드로잉 등을 포함한다. 라이브러리(4006)는 하드웨어 및 소프트웨어 버전 번호 및 사용가능한 RAM 공간과, 새로운 장치(4062)를 다운로드할 경우에 사용되는 함수와 같은, 리시버/디코더(2020)의 하드웨어 (4061)에 대한 정보도 포함한다. 함수는 라이브러리로 다운로드되어 플래쉬 또는 RAM 메모리에 저장될 수 있다.
런타임 엔진(4008)은 포트 또는 인터페이스에 교대로 결합되는 디바이스 드라이버(4060)에 결합된 일련의 장치(4062)에 결합된 장치 관리자(4068)에 결합된다. 넓은 의미로, 디바이스 드라이버는 논리적 인터페이스를 한정하는 것으로서 간주될 수 있어, 2개의 상이한 디바이스 드라이버가 공통의 물리적인 포트에 결합될 수 있다. 장치는 일반적으로 하나 이상의 디바이스 드라이버에 결합되며, 장치가 단일 디바이스 드라이버에 결합되면 그 장치는 일반적으로 통신하는 데 필요한 모든 기능성을 포함하도록 설계되어 개별적인 디바이스 드라이버에 대한 필요성이 없어질 것이다. 소정의 장치들은 그들 상호간에 통신할 수 있다.
삭제
하기에 기술된 것과 같이, 장치(4062)로부터 런타임 엔진까지는 3가지 통신형태, 즉 일련의 사상 큐로 진행되는 변수, 버퍼, 및 사상이 있다.
리시버/디코더(2020)의 각 기구는 장치(4062)로서 표현된다. 장치는 로컬 장치 또는 원격 장치일 수 있다. 로컬 장치(4064)는 스마트카드, SCART 연결기 신호, 모뎀, 직병렬 인터페이스, MPEG 비디오 및 오디오 플레이어 및 MPEG 섹션 및 테이블 추출기를 포함한다. 원격 위치에서 실행되는 원격 장치(4066)는 포트 및 프로시져가 리시버/디코더 제조업자에 의해 제공 및 설계된 장치 및 디바이스 드라이버에 의해서라기 보다는 시스템 설계자에 의해 정의되어야 하는 로컬 장치와는 다르다.
새로운 장치(4062)가 생성될 때, 방송 센터로부터 관련 응용프로그램(4056)을 다운로드함으로써 기존의 리시버/디코더(2020)에 설치될 수 있다. 이 다운로딩은 하드웨어와 소프트웨어 버젼을 체크하고, 올바르면 새로운 장치(4062)를 나타내는 소프트웨어 모듈을 로드하고, 라이브러리(4006)의 프로시져가 펌웨어(플래시 메모리)에 새로운 장치 코드를 설치하도록 요청하는 응용프로그램(4056)에 의해 리시버/디코더(2020)에서 수행된다. 이것은 소프트웨어의 나머지에 영향을 미치지 않고 리시버/디코더(2020)내에 새로운 기구의 융통성있고 안전한 설치를 제공할 수 있다.
장치관리자(4068)는 응용프로그램(4056)과, 리시버/디코더(2020)의 특정 기구 사이의 공통 소프트웨어 인터페이스이다. 장치관리자(4068)는 장치(4062)에 대한 액세스를 제어하고, 미예측 사상의 수신을 선언하고, 공유 메모리를 관리한다.
리얼타임 엔진(4008)은 마이크로프로세서와 공통 응용프로그램 프로그래밍 인터페이스의 제어하에서 실행된다. 이것은 각 리시버/디코더(2020)에 설치되기 때문에 응용프로그램의 관점에서 모든 리시버/디코더(2020)는 동일하다.
엔진(4008)은 리시버/디코더(2020)에서 응용프로그램(4056)을 실행시킨다. 이것은 쌍방향 응용프로그램(4056)을 실행하여 리시버/디코더(2020)의 외부로부터 사상을 수신하고, 그래픽 및 텍스트를 디스플레이하고, 서비스용 장치를 호출하고, 특정 계산을 위한 엔진(4008)에 연결된 라이브러리(4006)의 기능을 사용한다.
런타임 엔진(4008)은 각 리시버/디코더(2020)에 설치된 실행가능한 코드이며, 응용프로그램을 해석 및 실행시키는 해석기를 포함한다. 엔진(4008)은 (MS-DOS와 같은) 싱글 테스크 연산 시스템을 포함하는 모든 연산 시스템에 적용가능하다. 엔진(4008)은 (다양한 동작을 수행하기 위해여 키 프레스와 같은 다양한 사상을 수용하는) 프로세스 시퀀서 유닛을 기반으로 하고, 다른 하드웨어 인터페이스로부터 의 사상 큐를 관리하기 위하여 자체 스케쥴러를 포함한다. 이것은 그래픽과 텍스트의 디스플레이를 처리한다. 프로세스 시퀀서 유닛은 일련의 실행그룹을 포함한다. 각 사상은 프로세스 시퀀서 유닛이 사상의 특성에 따라 현재의 실행그룹에서 다른 실행그룹으로 이동하여 새로운 실행그룹의 실행을 수행할 수 있도록 한다.
엔진(4008)은 응용프로그램(4056)을 리시버/디코더 메모리(2028)로 로드 및 다운로드하도록 코드 로더(code loader)를 포함한다. 최적의 사용을 확보하기 위하여, 필요한 코드만이 RAM 또는 플래쉬 메모리로 로드된다. 다운로드된 데이터는 응용프로그램(4056)의 모든 변형 또는 허가되지 않은 모든 응용프로그램의 실행을 방지하기 위하여 인증 메커니즘에 의해 검증된다. 엔진(4008)은 감압기를 더 포함한다. MPEG-2 트랜스포트 스트림으로부터 또는 내장형 리시버/디코더 모드로부터 다운로딩 속도를 빠르게 하고 비용을 줄이기 위하여 응용프로그램 코드(중간 코드의 형태)가 압축되기 때문에, 코드는 RAM에 로딩하기전에 감압되어야한다. 엔진(4008)은 다양한 변수값을 업데이트하여 상태 변화를 결정하기 위하여 응용프로그램 코드를 해석하는 해석기와, 오류 검사기를 포함한다.
장치(4062)의 서비스를 사용하기 전에, (응용프로그램 명령 시퀀스와 같은)프로그램은 "클라이언트(client)", 즉 장치(4062) 또는 장치 관리자(4068)로의 논리적인 액세스 방향으로서 선언되어야 한다. 관리자는 클라이언트에 상기 장치로의 모든 액세스에서 참조되는 클라이언트 번호를 제공한다. 장치(4062)는 수 개의 클라이언트를 가질 수 있으며, 각 장치(4062)에 대한 클라이언트의 수는 장치(4062)의 형태에 따라 지정된다. 클라이언트는 프로시져 "Device_Open Channel"에 의해 장치(4062)에 도입된다. 이 프로시져는 클라이언트 번호를 클라이언트에 할당한다. 클라이언트는 프로시져 "Device_Close Channel"에 의해 장치 관리자(4068) 클라이언트 리스트로부터 취득될 수 있다.
장치관리자(4068)에 의해 제공된 장치(4062)로의 액세스는 동기식 또는 비동기식일 수 있다. 동기식 액세스에 대해서는, 프로시져 "Device:Call"이 사용된다. 이것은 즉시 사용가능한 데이터를 액세스하는 수단 또는 원하는 응답에 대한 대기를 포함하지 않는 기능성을 의미한다. 비동기식 액세스에 대해서는 프로시져 "Device:I/O"가 사용된다. 이것은 응답, 예를 들어 멀티플렉스를 찾거나 또는 MPEG 스트림으로부터 테이블을 되찾기 위한 스캐닝 튜너 주파수에 대한 대기를 포함하는 데이터를 액세스하는 수단이다. 요구 결과가 사용가능할 경우, 그 도착을 알리기 위하여 사상은 엔진의 큐에 놓여진다. 다른 프로시져 "Device:Event"는 우연 사상 (unexpected events)을 관리하는 수단을 제공한다.
상기에서 언급된 것과 같이, 런타임 엔진의 주요 루프는 다양한 프로세스 시퀀서 유닛에 결합되고, 주요 루프가 적절한 사상과 만날 경우 프로세스 시퀀서 유닛중 하나로 제어가 일시적으로 전달된다.
도 3을 참조하면, 장치관리자는 장치로부터의 사상이 일시적인 저장을 위하여 진행되는 큐(100)를 포함한다. 적절한 간격으로, 가상컴퓨터는 이 큐로 신호를 전송하여 그것으로부터 제 1 항목을 추출한다. 이 사상항목은 가상 컴퓨터의 큐 구조(101)로 이동된다. 사상 항목의 우선순위 레벨에 따라, 이것은 5개의 큐(0내지 4)중 적절한 하나로 삽입된다. 사상 항목은 런타임 엔진의 제어하에서 큐 셀렉터 유닛(102)에 의해 큐 구조(101)로부터 추출된다.
사상이 큐 구조(101)로부터 선택될 경우, 이것은 프로세스 시퀀서 유닛 드라이버(105)와 일련의 프로세스 시퀀서 유닛(106)으로 구성되는 프로세스 시퀀서 유닛 엔진(104)으로 진행된다. 각 프로세스 시퀀서 유닛은 함께 결합된 일련의 실행그룹이기 때문에, 하나의 실행그룹으로부터 다음 실행그룹으로의 각 단계는 일반적으로 현재의 실행그룹과 사상의 본질에 의존한다. "다음" 실행그룹, 즉 시스템이 사상에 반응하여 단계를 진행하는 실행그룹이 단지 사상의 본질에 의존하지만 현재의 실행그룹에는 독립적인 하나를 포함하는 다른 프로세스 시퀀서 유닛은 상이한 사이즈 및 복잡도를 갖는다. 또한, 프로세스 시퀀서 유닛 블록의 오른쪽에 나타낸 것과 같이, 단일 포트를 통하여 동일한 프로토콜을 사용하여 수 개의 개별적인 데이터 스트림을 처리하기 위하여 수 개 카피의 프로세스 시퀀서 유닛, 즉 수 개의 동일한 프로세스 시퀀서 유닛이 있을 수 있다.
사상이 선택될 경우, 이것은 적절한 프로세스 시퀀서 유닛으로 진행된다. 이것은 프로세스 시퀀서 유닛의 현재 실행그룹으로부터 적절한 출구를 선택한다. 이것에 의해 적절한 다음 실행그룹이 선택되고 이 실행그룹이 수행되는 동작은 장치관리자로의 메시지 전송 또는 명령 시퀀스의 실행을 포함할 수 있다. 프로세스 시퀀서 유닛의 실행그룹은 다른 프로세스 시퀀서 유닛으로 사상 메시지를 전송할 수도 있다.
명령 시퀀스가 선택되면, 명령 시퀀스의 식별은 명령 시퀀스 선택기(107)로 전송된다. 이것은 명령 시퀀스 메모리(108)에서 원하는 명령 시퀀스를 획득하고 그것을 명령 시퀀스를 실행하는 명령 시퀀스 해석기(109)로 진행시킨다.
시스템은 프로세스 시퀀서 유닛(106)으로부터 사상 형태로 로드되는 필터 (110)를 포함한다. 사상 항목이 장치 관리자의 큐(100)로부터 가상 컴퓨터의 큐 구조(100)로 진행될 경우, 그 타입 또는 특성은 필터(110)의 리스트에 대하여 매칭되고, 승인되지 않은 타입이면 거부된다. 이것은, 장치관리자 또는 키보드가 가상 컴퓨터가 처리할 수 없는 타입의 사상을 발생하면 그 사상이 큐 구조(101)로 진행되지 않도록 한다(이런 종류의 사상이 큐 구조(101)로 진행되면, 그것은 그 큐 구조에서 누적되거나 또는 프로세스 시퀀서 유닛 엔진(104)의 고장을 일으킬 수 있다).
따라서, 우리의 기본적인 리시버/디코더 플랫폼은 응용프로그램이 다양한 장치와 통신할 수 있도록 하는 고려할만한 유연성을 제공한다는 것을 알 수 있다.
IEEE 1394 버스용 디바이스 드라이버
삭제
도 4를 참조하면, IEEE 1394 버스 구동기는 IEEE 1394 버스에 연결된 디지털 비디오 레코더와 같은 주변장치와 응용프로그램 사이의 통신을 수월하게 하는 상술한 방식에 따라 동작한다는 것을 알 수 있다.
데이터의 고속통신에 대하여, 예를 들어 MPEG 실시간 데이터의 저장에 대하여, 응용프로그램으로 제어하기 위하여 상대적으로 직접적인 종래의 직렬 및 병렬 인터페이스는 충분히 빠르지 않을 수 있다. 하기에 설명된 디바이스 드라이버는 응용프로그램이 IEEE 1394 버스를 효과적으로 액세스할 수 있도록 하고, 예를들어 비교적 정교하지 않은 응용프로그램에 의해 버스에 연결된 디지털 비디오 레코더의 제어를 가능케 하는 다수의 새로운 기능을 포함한다.
디바이스 드라이버는 응용프로그램(이하 '명령어'라 함)에 의해 개별적으로 액세스가능한 다수의 기능 유닛을 포함하는 것으로 간주될 수 있다. 장치(4062)를 통해 응용프로그램을 갖는 각 명령 인터페이스는 다른 장치에 공통적인, 상술한 3가지의 표준 프로시져중 하나에 의해 장치관리자(4068)의 제어하에서 실행한다. 정보는 파라미터 테이블에 의해 응용프로그램과 디바이스 드라이버 사이에서 진행될 수 있다. 참조의 용의성을 위하여, 상기 3가지 기본 프로시져는 아래와 같이 간략하게 요약된다:
1) Device:Call. 이 명령어는 동기식 명령어 또는 데이터 전송을 수행하는 응용프로그램에 의해 사용될 수 있다. 응용프로그램의 실행은 디바이스 드라이버에 의한 동작이 완료될 때 제어가 복귀될 때까지 중지되고, 이것에 의해 엄격한 시퀀스로 수행되어야 하는 연산이 확실하게 제어될 수 있다.
2) Device:I/O. 이 명령어는 비동기식 연산을 가능케한다. 즉, 디바이스 드라이버에 의해 수행될 데이터 전송 또는 특정 기능에 대한 요구를 응용프로그램이 전송할 수 있어 데이터 전송 또는 기능이 디바이스 드라이버에 의해 수행되는 동안 응용프로그램의 실행이 지속될 수 있다.
3) Device:Event. 이 사상 트래핑 기능은 응용프로그램에 대한 디바이스 드라이버에 의해 사상이 알려질 수 있고, 코드와 관계없이 사상에 응답하여 응용프로그램에 의해 특정 실행이 취해질 수 있도록 하며, 상기 응용프로그램은 사상이 알려질 때에 실행되어, 효과적으로 응용프로그램이 인터럽트되고 사상을 우선시킬 수 있다. 사상은 버스 리셋과 같은, 인터페이스에서 발생하는 신호 사상에 사용될 수 있다.
삭제
삭제
이하 본 발명을 실시하는 디바이스 드라이버에서 제공되는 명령어가 설명된다. 각 명령어는 Device:Call 또는 Device:IO 문제를 통하여 파라미터로서 명령어의 식별자를 진행시킴으로써 응용프로그램에 의해 액세스될 수 있다. 하기에 설명된 모든 명령어가 제공될 필요가 없으며, 명령어의 기능은 변경될 수 있다. 명령어는 독립적으로 제공 또는 변경될 수 있지만, 소정의 시너지 효과는 설명된 명령어에 의해 제공되는 결합 기능성으로부터 발생한다.
명령어는, 선택적이고 바람직한 특징과 함께, 응용프로그램에 의해 알 수 있듯이, 각 명령어에 의해 제공된 특징 및 기능의 관점으로 기술될 것이다. 주어진 정보와 제공된 명세서로, 이러한 기능의 실제 구현이 당업자에 의해 이루어질 수 있으며, 정확한 설명은 실시자에게 남겨둔다. 예로서, 각 명령어는 바람직하게는 C 프로그래밍 언어로 기록된 소프트웨어로 구현되고 바람직하게는 응용프로그램을 실행하는 데 사용되는 프로세서에서 실행할 수 있도록 컴파일되어야 하지만, 디바이스 드라이버는 개개의 프로세서에서 실행될 수 있으며, 일부 또는 모든 명령어는 지정된 하드웨어로 구현될 수 있다. Call 또는 IO 명령어의 사용으로, 디바이스 드라이버는 어드레스가 디바이스 드라이버로 진행되는 메모리에 저장된 파라미터 테이블의 값을 설정함으로써 정보를 알리거나 또는 파라미터를 응용프로그램으로 되돌릴 수 있다.
명령에 대하여 아래에 기술된 기능성은 예를 들면 논리 주변장치 식별자와 논리 채널 식별자를 처리하기 위하여 디바이스 드라이버에 의해 구현될 소정의 잠재적인 기능을 포함하고, 디바이스 드라이버는 해당 인터페이스 특징(각각 물리적인 어드레스 또는 인터페이스 채널 번호)와 상호관련될 수 있도록 논리 주변장치 식별자와 논리 채널 식별자의 개개의 테이블을 유지하는 수단을 포함한다. 또한, 버스 리셋과 같은 사상에 있어서, 디바이스 드라이버는 새로운 물리적인 어드레스 및 채널번호를 확인하고 테이블을 업데이트하여 변환이 비교적 응용프로그램에 의해 보여지는 것과 같이 고르도록 하기 위하여 배치된다.
또한, 물론 디바이스 드라이버는 인터페이스와의 통신을 실제적으로 이루고 메모리 할당 및 반환과 같은 필요한 하우스키핑 테스크를 수행하는 수단을 포함한다. 이러한 기능중 일부가 도 5에 개략적으로 예시되어 있다. 이것의 상세한 설명은 사용되는 특정의 물리적인 하드웨어에 의존하지만 IEEE 1394 표준 문서(여기에 참조로서 포함됨)의 적절한 부분을 참조하여 본 명세서에서 제공된 안내를 기초로 이 기술분야의 당업자가 실시할 수 있으므로, 여기에서는 기술되지 않을 것이다.
명령어: Bus_1394_Set
이 명령어는 기본 인터페이스 파라미터, 바람직하게는 할당되어야 하는 데이터 수용 버퍼의 사이즈가 응용프로그램에 의해 설정될 수 있도록 하고 통신번호는 인터페이스를 통하여 비동기 명령어를 전송할 경우에 사용되도록 재시도한다. 이러한 파라미터는 사전조절되고 명령어는 생략될 수 있지만, 이 명령어에 의해 통신이 다른 응용프로그램에 대하여 최적화될 수 있도록 한다. 이러한 파라미터는 매우 양호하게 비동기적으로 조절되더라도, 이 명령어는 콜 방법을 통해 액세스하는 것이 바람직하기 때문에 후속 응용프로그램 명령어는 장치 파라미터가 설정된 후에만 실행된다. 바람직하게는 명령어는 디바이스 드라이버가 주변장치로부터 데이터를 수신하는 공정이면 응용프로그램으로 에러를 알린다.
명령어: Bus 1394 Info
이 명령어는 버스 형태와 관련한 기본 정보를 응용프로그램으로 복귀시킨다. 이것은 시간에 덜 중요하기 때문에, 바람직하게는 IO 명령어를 통하여 비동기적으로 액세스된다.
바람직하게, 이 비동기식 명령어 및 실제로 모든 또는 적어도 일부의 비동기식 명령어는 응답 (또는 코드, 예를 들어 최대 시간이 아님을 나타내는 제로)을 위해 필요한 최대시간(예를 들면, ms)을 통과하도록 배치되고, 이것에 의해 디바이스 드라이버가 요구를 우선시킬 수 있다.
바람직하게는, 명령어는 버스에 의해 관리되는 최대 데이터 속도에 관한 정보와, 호출시에 사용가능한 데이터 속도(즉, 버스에서 이미 활성화된 연결부를 고려함)와, 버스에 물리적으로 연결된 주변장치의 수와, 대응하는 논리 식별자(하기에 기술됨)를 복귀시키고, 논리 채널은 호출 시에 사용이 가능하다.
IEEE 1394 버스로, 버스에 연결된 각 주변장치는 때때로 변경되는 물리적인 어드레스가 할당된다.
이 명령어의 고유의 규정이 선택적이지만, 디바이스 드라이버는 각 주변장치에 대한 상수인 논리 어드레스의 테이블을 유지하는 것이 바람직하기 때문에, 각 수행에 있어서 응용프로그램은 대응하는 주변장치를 유일하고 명백하게 식별하기 위하여 단일 논리 어드레스를 사용할 수 있다. 채널에 할당된 채널번호도 변경될 수 있기 때문에, 디바이스 드라이버는 논리 채널번호의 테이블을 유지한다. 그리고, 디바이스 드라이버는 소정의 테이블에서 데이터를 탐색함으로써 정보 요구에 응답할 수 있다.
바람직하게는, 채널의 유용성에 관한 정보는 비트맵으로서 이진수 형태, 바람직하게는 각 비트가 64개의 논리채널중 하나의 유용성(예를 들면 "0"은 채널이 이미 배치되었음을 나타내고 "1"은 채널이 사용가능하는 것을 나타냄)을 인코딩하는 8 바이트의 정보로 진행된다.
명령어: Bus 1394 Info Periph
이 명령어는 논리 주변장치 식별자를 나타내는 파라미터를 수신하고, 인터페이스의 주변장치에 할당된 물리적인 어드레스에 대응하는 2 바이트의 물리적인 어드레스(노드 ID로서 알려짐)를 복귀시키고, 바람직하게는 주변장치를 포괄적으로 식별하거나 또는 적어도 주변장치의 벤더 또는 모델을 식별하는 바람직하게는 유일하게 8 바이트의 유일한 노드 식별자를 복귀시키기 위하여 배치된다. 이것은 예를 들어 특정 주변장치를 식별하는 정보를 기초로 특별한 장치능력을 판단하기 위하여 적절하게 정교한 응용프로그램에 대한 능력을 제공한다.
이 명령어는 바람직하게는 인터페이스가 기능적인 IEEE 1394 버스에 물리적으로 연결되지 않거나 또는 논리 주변장치 식별자가 무효이면(예를 들면 소정의 최대, 바람직하게는 63보다 크면) 에러를 알리고, 또한 지정된 논리 주변장치 식별자가 알려지지 않거나 또는 지정된 시간내에서 장치가 응답하는 것이 실패하면 에러, 즉 펜딩 버스 리셋을 알리기 위하여 배치된다.
이 명령어는 바람직하게는 Device:I/O 프로시져에 의해 비동기적으로 액세스되며, 완료 또는 실패를 나타내는 신호는 파라미터 블럭에 의해 진행된다.
명령어: Bus 1394 Alloc Channel
삭제
이 명령어는 바람직하게는 원하는 통신속도를 지정하는 채널과, 바람직하게는 사용될 원하는 인터페이스 채널을 할당하는 요구를 수신하도록 배치된다. 미리결정된 코드(예를 들면 OFFh)는 특별한 인터페이스 채널이 없다는 것을 의미하기 위하여 사용될 수 있으며, 원하는 인터페이스 채널이 사용되고 있는 경우에는 디바이스 드라이버가 사용가능한 채널을 할당한다.
성공적이면 이 명령어는 할당된 논리 채널 식별자를 복귀시키고, 바람직하게는 Bus_1394_Info_Periph 명령어에 대하여 설명한 적용가능한 경우 또는 사용가능한 채널이 없거나 요구한 데이터 속도가 사용가능한 최대속도보다 높으면 에러를 알린다.
예를 들어 매우 제한된 수의 채널을 사용하여 간단한 디바이스 드라이버의 구현에 있어서, 이 명령어 및 다음에 설명될 관련 2개의 명령어는 유연성을 위하여 생략될 수 있다.
이 명령어는 바람직하게는 Device:I/O 프로시져에 의해 비동기식으로 액세스되며, 완료 또는 실패를 나타내는 신호는 파라미터 블럭에 의해 진행된다.
명령어: Bus 1394 Info Channel
삭제
이 명령어는 지정된 논리 채널의 특성에 관한 정보를 응용프로그램으로 복귀시키기 위하여 배치된다. 이 명령어는 바람직하게는 채널에 할당된 최대속도 (Kbit/s)와, 호출시에 채널을 통하여 사용가능한 속도와, 실제 채널 식별자(즉, 디바이스 드라이버에 의해서라기보다는 인터페이스에 의해 할당된 것)과, 채널을 사용하는 연결부의 수와, 채널을 사용하는 각 연결부의 논리 식별자를 복귀시킨다.
이 명령어는 바람직하게는 지정된 채널 수가 할당되면, 무효 식별자의 사상시에, 펜딩 버스 리셋의 경우에, 또는 인터페이스가 물리적으로 연결되지 않으면 에러를 알린다.
이 명령어는 바람직하게는 Device:I/O 프로시져에 의해 비동기식으로 액세스되면, 완료 또는 실패를 나타내는 신호는 파라미터 블럭에 의해 진행된다.
명령어: Bus 1394 Free Channel
삭제
이 명령어는 파라미터로서 지정된 논리 채널에 대한 연결을 파괴하지만 (그러나 바람직하게는 연결부 식별자를 반환하지는 않음으로써) 통신용 채널을 자유롭게 한다. 이 명령어는 바람직하게는 비동기식으로 동작하며 통신이 사상에 의해 선택된 채널에서 여전히 계류되고 있다는 것을 알린다.
명령어: Bus 1394 Open Connect
삭제
이 명령어는 논리 채널 식별자와 바람직하게는 연결부 타입을 나타내는 요구를 수신하고 그리고 지정된 연결부 타입에 따라 장치 또는 연결부 안밖의 방송 사이의 점대점 연결을 초기화하기 위하여 배치된다. 점대점 연결이 지정된 경우, 2개의 주변장치의 논리 주변장치 식별자도 디바이스 드라이버로 진행되어야한다. 이 명령어의 변형물이 물리적인 어드레스와 인터페이스 실제 채널번호를 사용하여 동작할 수 있더라도, 논리 파라미터를 기초로 한 동작은 상기 언급된 단순화된 응용프로그램 동작의 장점을 제공한다.
성공적이면 이 명령어는 논리 연결 식별자를 복귀시킨다.
간략화된 구현은 지정될 점대점 연결을 정의하는 능력을 생략할 수 있으며, 통상적인 응용프로그램에 있어서 버스에 연결된 디지털 비디오 레코더와 같은 단일 장치뿐일 수 있기 때문에 방송 연결이면 충분할 수 있다.
일부 디바이스 드라이버의 구현에 있어서, 특정 연결의 개시는 리시버/디코더의 다른 신호경로의 경로변경(re-routing)을 자동적으로 일으킬 수 있다. 예를 들면 연결에 있어 방송의 개시는 디멀티플렉서 입력으로부터 전단의 자동해제를 초래할 수 있기 때문에, 디멀티플렉서는 IEEE 1394 버스를 통해 수신된 인입 데이터를 처리하는데 사용가능하다.
이 명령어는 최대 연결수에 도달한 경우, 또는 다른 명령어와 관련하여 상술한 다른 적용가능한 경우에 바람직하게는 에러를 알린다.
이 명령어는 바람직하게는 Device:I/O 프로시져에 의해 비동기식으로 액세스되며, 완료 또는 실패를 나타내는 신호가 사상에 의해 진행된다.
명령어: Bus 1394 Close Connect
이 명령어는 논리 연결 식별자를 수신하고 그 연결에서의 통신을 중단하고, 그 후에 재사용을 위한 연결 식별자를 자유롭게 한다.
신호가 연결의 개시에서 리시버/디코더내에서 자동적으로 경로변경되면, 장치는 연결의 폐쇄 또는 최종 관련 연결의 폐쇄에서 이전 상태와의 연결을 바람직하게는 복구시킨다. 예를 들면, 디멀티플렉서 입력은 연결의 최종 방송의 폐쇄시 전단에 재연결될 수 있다.
이 명령어는 바람직하게는 Device:I/O 프로시져에 의해 비동기식으로 액세스되며, 완료 또는 실패를 나타내는 신호가 사상에 의해 진행된다.
명령어: Bus 1394 List Connect
삭제
이 명령어는 연결수 및 각 연결에 대하여 연결형태(점대점, 방송)를 나타내는 논리 연결 식별자 및 플래그를 포함하는 바람직하게는 리스트 형태의, 호출시 사용가능한, 그 자체가 디코더를 포함하는 활성연결 리스트를 복귀시킨다.
간단한 연결만 제공되면, 하기에 설명된 이 및/또는 상기 명령어는 간단한 장치 구현에서 생략될 수 있다. 그러나, 이러한 명령어에 의해, 그 자체가 설정된 연결을 모니터하고, 하나 이상의 응용프로그램이 언제나 디바이스 드라이버를 사용할 수 있으면 다른 응용프로그램에 의해 설립된 연결을 모니터하고, 모든 연결이 갑자기 폐쇄되었는 지를 응용프로그램이 모니터할 수 있도록 한다.
이 명령어는, 연결이 빈번하게 변경되기 쉽고 그렇지 않으면 응용프로그램이 제한 날짜 정보를 기초로 통신을 제어하거나 디바이스 드라이버로부터의 응답의 폴링을 요구하기 때문에 Device:Call 프로시져에 의해 바람직하게는 비동기식으로 액세스된다.
명령어: Bus 1394 Info Connect
이 명령어는 논리 연결 식별자를 수신하고 연결이 설정된 논리 채널번호를 복귀시킨다. 이 명령어는 바람직하게는 연결 형태의 표시를 복귀시키고, 점대점 연결의 경우에 포함되어 있는 주변장치의 논리 어드레스를 복귀시킨다.
List_Connect 명령어와 같이, 이 명령어는 바람직하게는 동기식으로 액세스된다.
명령어: Bus 1394 Reset
삭제
이 명령어는 버스 리셋 프로시져를 초기화하거나, 또는 버스 리셋이 이미 계류중이면 에러를 복귀시킨다. 이 명령어는 리셋후에 즉시 IEEE 1394 버스의 제어를 응용프로그램이 파악할 수 있도록 하는 데 사용될 수 있으며, 바람직하게는 동기적으로 액세스된다. 디바이스 드라이버는 하기에서 더 설명된, 사상에 의해 버스 리셋의 완료를 알린다.
명령어: Bus 1394 Send FCP
삭제
이 명령어는 특히 상이하게 생략 또는 구현될 수 있다. 다음의 설명은 IEEE 1394 버스를 통해 데이터를 비동기식으로 전송하는 장치의 일예이다.
이 명령어는 IEEE 1394 버스에서의 주변장치에 대한 명령 또는 응답으로서 비동기식으로 전송될 메시지를 포함하는 파라미터 블럭을 수신한다. 파라미터 블럭은 바람직하게는 메시지 형태의 표시와, 응답을 위하여 배치되어야 하는 버퍼의 사이즈와, 목적지 주변장치의 논리 주변장치 식별자와, 메시지의 길이와, 메시지 자체를 포함한다.
이 명령어는 선결된 수의 재시도내에서 전송이 성공적이거나 또는 Info_ Periph 명령어에 대하여 상술한 적용가능한 경우에 성공적인 전송을 나타내거나 에러를 알린다.
대량의 데이터는 잠재적으로 전송될 수 있기 때문에, 이 명령어는 바람직하게는 비동기식으로 액세스되어 응용프로그램이 전이를 지속하는 동안 실행을 지속할 수 있도록 한다.
삭제
바람직하게는, 이 명령어는 미리 정의된 논리 주변장치 식별자가 지정되면 모든 주변장치로 메시지를 방송하기 위하여 배치된다.
디바이스 드라이버의 간단한 구현에서, 이 명령어는 고정된 길이, 예를 들어 32 바이트의 메시지의 전송으로 제한할 수 있으며, 이것은 명령어를 디지털 비디오 레코더로 전송하는 데 충분하다.
바람직하게는, 디바이스 드라이버는 다수의 요구를 반동시에 수신 및 전송할 수 있으며, 다수의 응답을 알릴 수 있다. 그러나, 간단한 구현은 단일 시퀀셜 요구에 대한 능력만을 제공할 수 있다.
삭제
응용프로그램이 디바이스 드라이버로 명령어를 전송할 수 있도록 하는 명령어에 더하여, 디바이스 드라이버는 장치관리자의 사상 처리 기능을 통해 응용프로그램으로 사상을 알리기 위하여 배치된다. 디바이스 드라이버는 다음의 사상을 구현한다.
Ev Bus 1394 Rcv FCP
삭제
이 사상은 주변장치로부터 FCP 프레임의 수신을 알리고, 메시지의 소스 주변장치 논리 어드레스, 타입, 길이 및 컨텐츠를 포함하는 파라미터 블럭을 제공한다.
Ev Bus 1394 Channel
삭제
이 사상은 채널 할당 및 반환을 알리고, Info 명령어와 관련하여 상술한 바와 같이 이진 형태로 인코딩된 채널이 할당되는 리시트 시그널링을 진행한다.
Ev Bus 1394 Config
삭제
이 사상은 주변장치의 연결 또는 해제를 알리고, 연결되는 주변장치의 수와 그 논리 어드레스를 포함하는 리스트를 제공한다.
이것과 관련한 인터페이스에서의 변경과 이전에 설명한 채널 사상은 디바이스 드라이버가 응용프로그램으로 이러한 사상을 알리지 않더라도 논리 및 업데이트된 인터페이스 식별자 사이의 대응하는 테이블을 유지하기 위하여 디바이스 드라이버에 의해 모니터되어 한다.
Ev Bus 1394 Connect
삭제
삭제
이 사상은 연결 제동을 알리기 위하여 사용되고, 절연결 응용프로그램과, 바람직하게는 Info_Connection 명령어에 대하여 상술한 것과 유사한 포맷에서 절연결에 관한 다른 정보를 포함하는 리스트로 논리 식별자를 제공한다.
Ev Bus 1394 Lo Events
삭제
이 사상은 하나 이상의 저레벨 인터페이스 에러, 예를 들면 허용된 것보다 긴 버스를 유지하는 주변장치, 데이터 또는 CRC 에러, 미예측 전이, 알려지지 않은 채널번호 또는 전이 코드 등을 알릴 수 있다. 이 사상은 디버깅하는 데 사용되며 디바이스 드라이버의 간단한 구현시 생략될 수 있다.
Ev Bus 1394 Hi Events
삭제
이 사상은 버스 리셋 개시 및 종료, 및 케이블 전력 실패, 버스내의 루프 검출, 또는 디바이스 드라이버가 다수의 재시도후에 그 자체로 복원될 수 없는 치명적인 에러중 적어도 하나 (및 바람직하게는 두 개)를 포함하는 하나 이상의 고레벨 버스 조건을 알릴 수 있다.
Ev Bus 1394 Off
삭제
다른 사상과 같이, 이 사상은 수신된 메시지를 저장하는 데 사용될 수 있는 버퍼를 구비하지 않는 디바이스 드라이버 내부의 에러를 알리는 데 사용될 수 있다.
상기 명령어와 사상들은 단지 예로서, 본 발명은 다양한 방식으로 구현될 수 있으며, 특히 몇몇 명령어들은 유사한 기능을 수행하는 다른것들과 함께 사용되거나 또는 간단한 구현에서는 생략된 수 있다. 각 기능의 하드웨어 및 소프트웨어 구현은 명령어와 단일 명령어 내에서 자유롭게 혼합될 수 있으며, 하드웨어 구현은 처리 전력을 빠르고 자유롭게 동작시킬 수 있는 반면에 소프트웨어 구현은 보다 빠르게 업데이트될 수 있다. 하드웨어, 컴퓨터 소프트웨어 등에 의해 수행되는 기능은 전기적인 신호를 사용하여 수행된다는 것을 쉽게 이해할 것이다. 소프트웨어 구현은 ROM 또는 FLASH에 저장될 수 있으며, 또는 FLASH에 패치될 수 있다.
본 발명은 단지 예시로서 상술되었으며 그 상세의 변경이 본 발명의 범위내에서 이루어질 수 있음을 이해할 것이다.
명세서, 청구범위 및 도면에 기술된 각 특징은 독립적으로 또는 어떠한 적절한 결합으로 제공될 수 있다.
삭제
삭제
삭제

Claims (46)

  1. 응용프로그램과, 대응하는 인터페이스 식별자가 할당되어 있는 적어도 하나의 특징을 갖는 인터페이스간의 디바이스 드라이버를 통한 데이터 통신 방법으로서, 상기 인터페이스 식별자의 상기 특징으로의 할당은 적어도 하나의 사상후에 변경될 수 있으며, 상기 방법은:
    적어도 하나의 상기 특징에 대하여, 대응하는 논리 식별자를 저장하는 단계;
    상기 디바이스 드라이버와 상기 응용프로그램간의 상기 대응하는 특징과 관련된 통신을 지시하는 상기 응용프로그램에 상기 논리 식별자를 제공하는 단계; 및
    상기 특징에 대한 대응하는 인터페이스 식별자의 할당 변경에 이어 소정의 논리 식별자를 이용하여 상기 응용프로그램과 상기 디바이스 드라이버간의 통신이 대응하는 소정의 특징과 관련되도록 상기 특징에 할당된 인터페이스 식별자에 무관하게 상기 논리 식별자와 상기 특징 사이의 대응성을 유지하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1항에 있어서, 상기 인터페이스와 상기 디바이스 드라이버간의 통신은 상기 인터페이스 식별자를 기반으로 하는 것을 특징으로 하는 방법.
  3. 제 1항에 있어서, 소정의 기준을 충족시키는 모든 특징에 대하여 논리 식별자 및 대응하는 인터페이스 식별자의 리스트를 컴파일링하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  4. 제 1항에 있어서, 상기 디바이스 드라이버는 요구시 논리 식별자에 할당된 인터페이스 식별자를 응용프로그램으로 전송하는 것을 특징으로 하는 방법.
  5. 제 1항에 있어서, 상기 디바이스 드라이버는 인터페이스 식별자 대신에 적어도 하나의 논리 식별자를 이용하여 버스에 연결된 물리적인 장치들간의 연결을 정의하기 위하여 응용프로그램으로부터 요구를 수신하는 것을 특징으로 하는 방법.
  6. 제 1항에 있어서, 상기 응용프로그램은 장치관리수단을 통해 상기 디바이스 드라이버와 통신하는 것을 특징으로 하는 방법.
  7. 제 1항에 있어서, 상기 인터페이스의 적어도 하나의 상기 특징은 상기 인터페이스에 연결된 주변장치를 포함하고, 상기 대응하는 인터페이스 식별자는 상기 주변장치에 할당된 물리적인 어드레스를 포함하고, 상기 논리 식별자는 상기 주변장치에 할당된 논리 어드레스를 포함하는 것을 특징으로 하는 방법.
  8. 제 1항에 있어서, 상기 대응성을 유지하는 단계는 버스 리셋에 이은 주변장치에 할당된 물리적인 어드레스를 결정하기 위하여 논리적 어드레스가 할당된 각 주변장치를 문의하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제 4항, 7항, 및 8항중 어느 한 항에 있어서, 소정의 주변장치에 대한 인터페이스 식별자를 전송하는 단계는 상기 주변장치의 물리적인 어드레스를 전송하는 단계와 상기 주변장치를 식별하는 추가 정보를 포함하는 유일한 노드 식별자를 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 제 1항에 있어서, 상기 인터페이스의 적어도 하나의 상기 특징은 상기 인터페이스를 통해 이용가능한 정의된 파라미터의 채널을 포함하고, 상기 대응하는 인터페이스 식별자는 상기 인터페이스 채널번호를 포함하고, 상기 논리 식별자는 논리채널 식별자를 포함하는 것을 특징으로 하는 방법.
  11. 제 10항에 있어서, 상기 디바이스 드라이버는 정의된 파라미터의 채널을 할당하고 할당이 성공적이면 논리 채널 식별자를 복귀시키기 위하여 응용프로그램으로부터 요구를 수신하는 것을 특징으로 하는 방법.
  12. 제 10항 또는 11항에 있어서, 상기 디바이스 드라이버는 바람직한 인터페이스 채널번호를 수신하고 이용가능하면 상기 바람직한 인터페이스 채널을 할당하고, 상기 바람직한 인터페이스 채널이 사용가능하지 않거나 바람직한 인터페이스 채널이 지정되지 않으면 프리 채널을 할당하는 것을 특징으로 하는 방법.
  13. 제 12항에 있어서, 상기 디바이스 드라이버는 바람직한 인터페이스 채널의 식별자를 수신하고, 바람직한 인터페이스 채널이 지정되지 않음을 나타내는 유효한 인터페이스 채널번호 대신에 소정의 키를 인식하고, 다른 무효한 인터페이스 채널번호가 지정되면 상기 응용프로그램에 에러를 보고하는 것을 특징으로 하는 방법.
  14. 제 13항에 있어서, 상기 디바이스 드라이버는 상기 응용프로그램으로 인터페이스 채널번호를 전송하고, 적어도 하나의 다른 파라미터는 상기 채널에 할당된 최대속도, 현재 이용가능한 속도, 상기 채널을 이용하는 연결수, 및 상기 채널을 이용하는 각 연결의 식별자로부터 선택되는 것을 특징으로 하는 방법.
  15. 제 1항에 있어서, 상기 디바이스 드라이버는 논리 어드레스 및 논리 채널 식별자를 참조하여 상기 인터페이스에 부착된 물리적인 장치들간의 하나 이상의 연결을 정의하기 위하여 응용프로그램으로부터 요구를 수신하는 것을 특징으로 하는 방법.
  16. 제 1항에 있어서, 상기 디바이스 드라이버는 적어도 방송 연결을 설정하는 것을 특징으로 하는 방법.
  17. 제 1항에 있어서, 상기 디바이스 드라이버는 하나 이상의 사상을 응용프로그램에 알리도록 구성되어 있으며, 상기 사상은 버스 리셋의 개시 및 종료와 버스 형태 또는 채널 또는 연결 파라미터의 변경을 포함하는 것을 특징으로 하는 방법.
  18. 응용프로그램과, 적어도 하나의 사상후에 변경되기 쉬운 인터페이스 식별자가 할당되는 적어도 하나의 특징을 갖는 인터페이스간의 통신이 가능하도록 하는 디바이스 드라이버로서, 상기 디바이스 드라이버는:
    개개의 인터페이스 식별자에 대응하는 적어도 하나의 논리 식별자를 저장하는 수단;
    상기 디바이스 드라이버와 상기 응용프로그램간의 대응하는 특징과 관련된 통신을 지시하는 상기 응용프로그램에 상기 논리 식별자를 제공하는 수단; 및
    소정의 논리식별자를 이용하여 상기 응용프로그램과 상기 디바이스 드라이버간의 통신이 상기 특징에 대한 상기 대응하는 인터페이스 식별자의 할당의 변경에 이은 상기 대응하는 소정의 특징과 관련되도록 상기 특징에 할당된 인터페이스 식별자와 관계없이 상기 논리 식별자와 상기 특징간의 대응성을 유지하는 수단을 포함하는 디바이스 드라이버.
  19. 제 18항에 있어서, 상기 디바이스 드라이버는 상기 응용프로그램을 실행하는 처리수단에 의해 실행가능한 소프트웨어로 구현되어 있는 것을 특징으로 하는 디바이스 드라이버.
  20. 제 18항 또는 19항에 있어서, 상기 디바이스 드라이버는 소정의 기준을 충족하는 모든 특징에 대하여 논리 식별자 및 대응하는 인터페이스 식별자의 리스트를 컴파일링하는 것을 특징으로 하는 디바이스 드라이버.
  21. 제 18항에 있어서, 논리 식별자에 할당된 상기 인터페이스 식별자를 요구시 상기 응용프로그램으로 전송하는 수단을 더 포함하는 것을 특징으로 하는 디바이스 드라이버.
  22. 제 18항에 있어서, 인터페이스 식별자 대신에 적어도 하나의 논리 식별자를 이용하여 상기 버스에 연결된 물리적인 장치간의 연결을 정의하기 위하여 응용프로그램으로부터 요구를 수신하는 수단을 더 포함하는 것을 특징으로 하는 디바이스 드라이버.
  23. 제 18항에 있어서, 상기 인터페이스의 적어도 하나의 상기 특징은 상기 인터페이스에 연결된 주변장치를 포함하고, 상기 대응하는 인터페이스 식별자는 상기 주변장치에 할당된 상기 물리적인 어드레스를 포함하고, 상기 논리 식별자는 상기 주변장치에 할당된 논리 어드레스를 포함하는 것을 특징으로 디바이스 드라이버.
  24. 제 23항에 있어서, 버스 리셋에 이어 상기 주변장치에 할당된 상기 물리적인 어드레스를 판단하기 위하여 논리 어드레스가 할당된 각 주변장치를 문의하는 것을 특징으로 하는 디바이스 드라이버.
  25. 제 21항, 23항, 및 24항중 어느 한 항에 있어서, 소정의 주변장치에 대한 인터페이스 식별자를 전송하는 수단은 상기 주변장치의 물리적인 어드레스를 전송하는 수단과, 상기 주변장치를 식별하는 추가 정보를 포함하는 유일한 노드 식별자를 전송하는 수단을 포함하는 것을 특징으로 하는 디바이스 드라이버.
  26. 제 18항에 있어서, 상기 인터페이스의 적어도 하나의 상기 특징은 상기 인터페이스를 통해 이용가능한 정의된 파라미터의 채널을 포함하고, 상기 대응하는 인터페이스 식별자는 상기 인터페이스 채널번호를 포함하고, 상기 논리 식별자는 논리 채널 식별자를 포함하는 것을 특징으로 하는 디바이스 드라이버.
  27. 제 26항에 있어서, 정의된 파라미터의 채널을 할당하여 할당이 성공적이면 논리 채널 식별자를 복귀시키기 위하여 응용프로그램으로부터 요구를 수신하는 채널 할당 수단을 더 포함하는 것을 특징으로 하는 디바이스 드라이버.
  28. 제 27항에 있어서, 상기 채널 할당 수단은 바람직한 인터페이스 채널번호를 수신하고 이용가능하면 상기 바람직한 인터페이스 채널을 할당하고, 상기 바람직한 인터페이스 채널이 이용가능하지 않거나 바람직한 인터페이스 채널이 지정되지 않으면 프리 채널을 할당하는 것을 특징으로 하는 디바이스 드라이버.
  29. 제 27항 또는 28항에 있어서, 상기 채널 할당 수단은 바람직한 인터페이스 채널의 식별자를 수신하고, 바람직한 인터페이스 채널이 지정되지 않음을 나타내는 유효한 인터페이스 채널번호 대신에 소정의 키를 인식하고, 다른 무효한 인터페이스 채널번호가 지정되면 상기 응용프로그램에 에러를 보고하는 것을 특징으로 하는 디바이스 드라이버.
  30. 제 26항에 있어서, 상기 응용프로그램으로 상기 인터페이스 채널번호를 전송하는 수단을 포함하고, 적어도 하나의 다른 파라미터는 상기 채널에 할당된 최대속도, 현재 이용가능한 속도, 상기 채널을 이용하는 연결수, 및 상기 채널을 이용하는 각 연결의 식별자로부터 선택되는 것을 특징으로 하는 디바이스 드라이버.
  31. 제 18항에 있어서, 논리 채널 식별자와, 점대점 연결을 정의하기 위한 요구의 경우에는 상기 주변장치의 논리 어드레스를 참조하여 상기 인터페이스에 부착된 물리적 장치들간의 하나 이상의 연결을 정의하기 위하여 응용프로그램으로부터 요구를 수신하는 수단을 더 포함하는 것을 특징으로 하는 디바이스 드라이버.
  32. 제 18항에 있어서, 응용프로그램에 의한 요구시 적어도 방송 연결을 설정하는 수단을 더 포함하는 것을 특징으로 하는 디바이스 드라이버.
  33. 제 18항에 있어서, 버스 리셋의 개시 및 종료와 버스 형태 또는 채널 또는 연결 파라미터의 변경을 포함하는 하나 이상의 사상을 응용프로그램에 알리는 수단을 포함하는 더 것을 특징으로 하는 디바이스 드라이버.
  34. 응용프로그램을 실행하기 위한 런타임 엔진 수단;
    적어도 하나의 사상후에 변경되기 쉬운 인터페이스 식별자가 할당되는 적어도 하나의 특징을 가지고, 적어도 하나의 장치와의 연결을 위한 인터페이스 수단; 및
    청구항 18에 따른 디바이스 드라이버 수단을 포함하는 데이터 처리 시스템.
  35. 제 34항에 있어서, 방송 데이터를 수신하는 수단을 포함하는 리시버/디코더에서 구현되며, 상기 인터페이스는 수신된 데이터의 적어도 일부의 표시 및 저장을 위한 디지털 비디오 레코더 또는 디지털 디스플레이 장치 또는 컴퓨터와의 연결을 위한 것을 특징으로 하는 데이터 처리 시스템.
  36. 제 35항에 있어서, 상기 디바이스 드라이버 수단은 상기 인터페이스를 지나는 수정된 데이터 스트림을 만들기 위하여 상기 수신된 데이터 스트림을 변경하는 추가 디바이스 드라이버 수단과 상호작용하는 것을 특징으로 하는 데이터 처리 시스템.
  37. 제 35항 또는 36항에 있어서, 상기 인터페이스는 IEEE 1394 표준 또는 그 변형물에 따르는 것을 특징으로 하는 데이터 처리 시스템.
  38. 제 35항에 있어서, 상기 응용프로그램은 해석된 언어로 실행되고, 상기 디바이스 드라이버는 컴파일링되는 것을 특징으로 하는 데이터 처리 시스템.
  39. 제 35항에 있어서, 상기 디바이스 드라이버는 상기 응용프로그램으로부터 디지털 비디오 레코더를 제어하는 명령어를 전송하고 및/또는 상기 디지털 비디오 레코더에 저장된 정보와 관련된 데이터를 수신하는 것을 특징으로 하는 데이터 처리 시스템.
  40. 제 39항에 있어서, 전송될 데이터는 MPEG 포맷의 데이터를 포함하는 것을 특징으로 하는 데이터 처리 시스템.
  41. 응용프로그램을 실행하기 위한 런타임 엔진 수단과 적어도 하나의 주변장치가 연결될 수 있는 IEEE 1394 인터페이스를 갖는 리시버/디코더에 사용하기 위한 디바이스 드라이버로서, 상기 주변장치는 할당되어 있는 개개의 물리적인 어드레스를 가질 수 있으며, 상기 인터페이스는 적어도 하나의 통신 채널을 제공할 수 있으며, 상기 채널은 할당되어 있는 개개의 실제 채널 식별자를 가지며, 각 채널에 할당된 실제 채널 식별자와 각 주변장치에 할당된 어드레스는 버스 리셋 후에 변경되기 쉬우며, 상기 응용프로그램과 상기 IEEE 1394 인터페이스간의 통신을 수월하게 하는 디바이스 드라이버로서:
    개개의 주변장치에 대응하는 적어도 하나의 논리 어드레스를 저장하고 개개의 실제 채널에 대응하는 적어도 하나의 논리 채널 식별자를 저장하는 수단;
    상기 디바이스 드라이버와 상기 응용프로그램간의 통신을 지시하는 상기 응용프로그램에 상기 논리 어드레스를 제공하는 수단;
    통신채널을 할당하기 위하여 응용프로그램으로부터 요구를 수신하고, 적절한 통신채널이 이용가능하면 상기 이용가능한 적절한 통신채널을 할당하고 상기 디바이스 드라이버와 상기 응용프로그램간의 통신을 지시하는 상기 응용프로그램에 논리 채널 식별자를 제공하는 채널 할당 수단;
    상기 논리 채널 식별자에 의해 식별되는 채널을 이용하여 인터페이스에 부착된 주변장치간의 연결을 할당하기 위하여 응용프로그램으로부터 요구를 수신하고, 가능하면 연결을 할당하여 상기 주변장치간의 점대점 연결을 위한 요구의 경우에 상기 주변장치는 상기 논리 어드레스를 이용하여 식별되는 연결 할당 수단;
    소정의 논리 어드레스에 대응하는 주변장치를 식별하기 위하여 응용프로그램으로부터 요구를 수신하고, 그에 응답하여 상기 대응하는 주변장치의 물리적인 어드레스를 전송하고 상기 주변장치를 식별하는 추가 정보를 포함하는 유일한 노드 식별자를 전송하기 위한 주변장치 식별 수단;
    인터페이스 버스 리셋을 포함하는 다수의 사상중 하나를 상기 응용프로그램에 알리는 사상 알림 수단; 및
    소정의 논리 채널 식별자에 대응하는 채널을 식별하기 위하여 응용프로그램으로부터 요구를 수신하고, 그에 응답하여 상기 대응하는 채널의 인터페이스 채널 식별자를 전송하고 최대 할당 채널 밴드폭과 현재 이용가능한 채널 밴드폭중 적어도 하나를 나타내는 채널의 적어도 하나의 추가 파라미터를 전송하기 위한 채널 식별 수단을 포함하고,
    상기 채널 할당 수단은 바람직한 실제 채널의 식별자를 수신하고 이용가능하면 상기 바람직한 실제 채널을 할당하고, 상기 바람직한 실제 채널이 이용가능하지 않거나 바람직한 실제 채널 식별자가 유효한 실제 채널 식별자 대신에 소정의 키를 포함하면 프리 채널을 할당하고 상기 바람직한 채널 식별자가 상기 소정 키 이외의 무효한 실제 채널 식별자에 대응하면 상기 응용프로그램에 에러를 알리는 것을 특징으로 하는 디바이스 드라이버.
  42. 방송데이터를 수신하는 수단; 적어도 하나의 응용프로그램을 실행하는 런타임 엔진 수단; 적어도 하나의 주변장치와의 연결을 위한 IEEE 1394 인터페이스 수단; 상기 IEEE 1394 인터페이스 수단 및 수신된 데이터를 상기 IEEE 1394 인터페이스로 전송하는 수단과 상기 응용프로그램을 상호연결하는 청구항 41에 따른 디바이스 드라이버 수단을 포함하는 리시버/디코더.
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
KR1020007000770A 1997-07-24 1998-07-23 Ieee 셋탑 박스 디바이스 드라이버 KR100559158B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP97401793A EP0893765A1 (en) 1997-07-24 1997-07-24 IEEE 1394 Set Top Box device driver
EP97401793.1 1997-07-24
PCT/IB1998/001172 WO1999005603A1 (en) 1997-07-24 1998-07-23 Ieee set top box device driver

Publications (2)

Publication Number Publication Date
KR20010022198A KR20010022198A (ko) 2001-03-15
KR100559158B1 true KR100559158B1 (ko) 2006-03-10

Family

ID=8229823

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007000770A KR100559158B1 (ko) 1997-07-24 1998-07-23 Ieee 셋탑 박스 디바이스 드라이버

Country Status (22)

Country Link
US (1) US6966063B1 (ko)
EP (2) EP0893765A1 (ko)
JP (1) JP4105382B2 (ko)
KR (1) KR100559158B1 (ko)
CN (1) CN1265206A (ko)
AT (1) ATE253752T1 (ko)
AU (1) AU741471B2 (ko)
BR (1) BR9810806A (ko)
CA (1) CA2296337C (ko)
DE (1) DE69819507T2 (ko)
ES (1) ES2206957T3 (ko)
HR (1) HRP20000039A2 (ko)
HU (1) HUP0004817A3 (ko)
ID (1) ID24447A (ko)
IL (1) IL134145A (ko)
NO (1) NO319201B1 (ko)
NZ (1) NZ502917A (ko)
PL (1) PL338243A1 (ko)
RU (1) RU2226710C2 (ko)
TR (1) TR200000179T2 (ko)
WO (1) WO1999005603A1 (ko)
ZA (1) ZA986604B (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU3752100A (en) * 1999-03-30 2000-10-16 Sony Electronics Inc. Interfacing a conditional access circuit to a digital device using input and output stream switching
US20020044656A1 (en) * 1999-10-13 2002-04-18 Brant L. Candelore Interfacing a conditional access circuit to a digital device using input and output stream switching
JP2002094472A (ja) * 2000-05-30 2002-03-29 Matsushita Electric Ind Co Ltd データ取得装置及びその方法
FI20002124A (fi) * 2000-09-27 2002-03-28 Nokia Corp Kanavaominaisuuksien muuttaminen
JP2002290853A (ja) 2001-03-22 2002-10-04 Canon Inc テレビジョン放送受信装置およびテレビジョン放送受信方法およびテレビジョン放送受信プログラム
US7690017B2 (en) * 2001-05-03 2010-03-30 Mitsubishi Digital Electronics America, Inc. Control system and user interface for network of input devices
US7415539B2 (en) * 2001-09-28 2008-08-19 Siebel Systems, Inc. Method and apparatus for detecting insufficient memory for data extraction processes
GB0224705D0 (en) 2002-10-24 2002-12-04 Zarlink Semiconductor Ltd Digital television convertor
PL361715A1 (en) * 2003-08-18 2005-02-21 Advanced Digital Broadcast Ltd. Integrated digital tv decoder
US8205235B2 (en) * 2003-11-14 2012-06-19 Sharp Laboratories Of America, Inc. Systems and methods for representing a tuner device in a media server content directory service
JPWO2005094066A1 (ja) * 2004-03-25 2008-02-14 ソニー株式会社 情報信号処理装置、機能ブロック制御方法および機能ブロック
US8249071B2 (en) 2004-03-26 2012-08-21 Harman International Industries, Incorporated Audio related system communication protocol
JP4574253B2 (ja) * 2004-07-09 2010-11-04 キヤノン株式会社 画像処理装置及びその制御方法
EP1796388A1 (en) * 2005-12-12 2007-06-13 Advanced Digital Broadcast S.A. Smart card with data storage, set-top box, portable player for operating smart card with data storage and method for manufacturing smart card with data storage
US8010849B2 (en) * 2006-09-05 2011-08-30 Arm Limited Diagnosing faults within programs being executed by virtual machines
US20080218581A1 (en) * 2007-03-06 2008-09-11 Midas Tsai Network audio/video communication system, comunication device and operation and audio/video data processing method for the same
US8590028B2 (en) 2007-07-09 2013-11-19 Infosys Limited Content licensing and conditional access using a mobile device
JP5178429B2 (ja) * 2008-09-25 2013-04-10 キヤノン株式会社 制御装置及び制御方法
RU2634874C2 (ru) * 2012-04-26 2017-11-07 ДЖОЙ ЭмЭм ДЕЛАВЭР, ИНК. Управляемое освещение области для среды горных разработок
CN103517026A (zh) * 2012-06-29 2014-01-15 深圳市快播科技有限公司 多屏适配器、多屏适配器的遥控方法及系统
US20160006793A1 (en) * 2014-07-04 2016-01-07 Boe Technology Group Co., Ltd. Osd subject file obtaining and providing method and device, updating system
US11611549B2 (en) * 2019-10-03 2023-03-21 Fset Inc System and method of securing access to a secure remote server and database on a mobile device

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3611588B2 (ja) * 1992-12-21 2005-01-19 ソニー株式会社 送信方法、受信方法、通信方法及び双方向バスシステム
US5815678A (en) * 1995-07-14 1998-09-29 Adaptec, Inc. Method and apparatus for implementing an application programming interface for a communications bus
US6393496B1 (en) * 1995-11-09 2002-05-21 Curtis A. Schwaderer Operating system and network independent application program interface for use in an intelligent communication device
US5787259A (en) * 1996-03-29 1998-07-28 Microsoft Corporation Digital interconnects of a PC with consumer electronics devices
US5815675A (en) * 1996-06-13 1998-09-29 Vlsi Technology, Inc. Method and apparatus for direct access to main memory by an I/O bus
US5883621A (en) * 1996-06-21 1999-03-16 Sony Corporation Device control with topology map in a digital network
US6219703B1 (en) * 1996-10-31 2001-04-17 Motorola, Inc. Method and apparatus for constructing a device management information base in a network management station
JP2002512713A (ja) 1997-03-21 2002-04-23 カナル プラス ソシエテ アノニム アクセス制御システム
WO1998043433A1 (en) 1997-03-21 1998-10-01 Canal+ Societe Anonyme Data processing system
US6286054B2 (en) * 1997-10-27 2001-09-04 Flashpoint Technology, Inc. Method and system for supporting multiple capture devices

Also Published As

Publication number Publication date
BR9810806A (pt) 2000-09-12
IL134145A0 (en) 2001-04-30
WO1999005603A1 (en) 1999-02-04
ES2206957T3 (es) 2004-05-16
NO319201B1 (no) 2005-06-27
HUP0004817A3 (en) 2003-02-28
ZA986604B (en) 1999-03-16
AU741471B2 (en) 2001-11-29
EP0996894A1 (en) 2000-05-03
KR20010022198A (ko) 2001-03-15
ID24447A (id) 2000-07-20
NZ502917A (en) 2001-08-31
JP4105382B2 (ja) 2008-06-25
JP2001511558A (ja) 2001-08-14
HRP20000039A2 (en) 2000-08-31
IL134145A (en) 2004-07-25
PL338243A1 (en) 2000-10-09
TR200000179T2 (tr) 2000-06-21
CA2296337C (en) 2008-07-15
CN1265206A (zh) 2000-08-30
HUP0004817A2 (hu) 2001-05-28
ATE253752T1 (de) 2003-11-15
EP0893765A1 (en) 1999-01-27
EP0996894B1 (en) 2003-11-05
AU8353398A (en) 1999-02-16
NO20000319D0 (no) 2000-01-21
US6966063B1 (en) 2005-11-15
DE69819507D1 (de) 2003-12-11
CA2296337A1 (en) 1999-02-04
RU2226710C2 (ru) 2004-04-10
NO20000319L (no) 2000-03-24
DE69819507T2 (de) 2004-09-23

Similar Documents

Publication Publication Date Title
KR100559158B1 (ko) Ieee 셋탑 박스 디바이스 드라이버
AU749225B2 (en) Digital transport stream processing
JP4895424B2 (ja) 複数ユーザ用マルチメディア・ターミナル
US9264757B2 (en) Service executing apparatus
JP2001519579A (ja) マルチスレッドデータ処理装置
EP1019836B1 (en) Modem control
EP0908821A1 (en) Digital code interpreter
AU742213B2 (en) Access control system
EP1064781B1 (en) Memory management in a receiver/decoder
MXPA00000776A (en) Ieee set top box device driver
CZ2000264A3 (cs) Způsob a řídící zařízení pro komunikaci dat
KR20000076405A (ko) 엑세스 제어 시스템
MXPA00003387A (en) Multithread data processor
MXPA00003213A (en) Modem control
CZ20001257A3 (cs) Zařízení pro zpracování digitálních audiovizuálních dat

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130221

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140220

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150224

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160203

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 13

EXPY Expiration of term