KR20150070436A - 멀티 터치 인터페이스 방안 - Google Patents

멀티 터치 인터페이스 방안 Download PDF

Info

Publication number
KR20150070436A
KR20150070436A KR1020157015204A KR20157015204A KR20150070436A KR 20150070436 A KR20150070436 A KR 20150070436A KR 1020157015204 A KR1020157015204 A KR 1020157015204A KR 20157015204 A KR20157015204 A KR 20157015204A KR 20150070436 A KR20150070436 A KR 20150070436A
Authority
KR
South Korea
Prior art keywords
data
touch
hid
report
interface data
Prior art date
Application number
KR1020157015204A
Other languages
English (en)
Other versions
KR101786277B1 (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 KR20150070436A publication Critical patent/KR20150070436A/ko
Application granted granted Critical
Publication of KR101786277B1 publication Critical patent/KR101786277B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • G06F3/04166Details of scanning methods, e.g. sampling time, grouping of sub areas or time sharing with display driving
    • 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/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0412Digitisers structurally integrated in a display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/04104Multi-touch detection in digitiser, i.e. details about the simultaneous detection of a plurality of touching locations, e.g. multiple fingers or pen and finger

Abstract

HID(Human Interface Device) 소스 디바이스를 이용하여, HID 싱크 디바이스가 멀티 터치 데이터와 같은 인터페이스 데이터를 제공하도록 구성하는 것을 포함하는 시스템들, 디바이스들 및 방법들이 기술된다. HID 소스 디바이스는 인터페이스데이터를 생성하기 위해 HID 싱크 디바이스에서의 데이터 모듈을 인에이블링시킬 수 있다. 인터페이스 데이터를 수신한 후에, HID 소스 디바이스는 출력 데이터를 생성하고, 출력 데이터를 HID 싱크 디바이스에 제공할 수 있다.

Description

멀티 터치 인터페이스 방안{MULTI-TOUCH INTERFACE SCHEMES}
관련 출원들
본 출원은 2011년 10월 26일자로 출원된 미국 가특허 출원 제 61/551,712 호의 우선권을 주장하며, 그 이점을 취한다.
기술분야
본 발명은 멀티 터치 인터페이스 방안에 관한 것이다.
DisplayPort® (DP) 디스플레이 인터페이스 프로토콜 또는 표준(예를 들면, DisplayPort® 버젼 1.2(2009년 12월)를 참조)과 같은 최근에 개발된 디스플레이 인터페이스 방안들은, 비디오 그래픽 어레이(Video Graphics Array; VGA) 및 디지털 비디오 인터페이스(Digital Video Interface; DVI)와 같은 보다 오래된 표준들을 대체하도록 설계되며, 이더넷, USB 및 PCI Express와 같은 다른 데이터 통신 프로토콜들과 유사한 패킷화된 데이터 송신에 의존한다. 예를 들어, DP는 외부(예를 들면, 박스 투 박스) 및 내부(예를 들면, 랩탑 디스플레이 패널) 디스플레이 접속들 둘다를 지원하며, 차동 쌍들(differential pairs)이 픽셀 데이터 및 클록 신호를 송신하는 DVI 및 저전압 차동 시그널링(Low-voltage Differential Signaling) 표준들과는 달리, DP 프로토콜은 임베디드 클록을 갖는 작은 데이터 패킷들의 송신에 기초한다. 또한, 데이터 패킷들을 이용하는 것은 DP와 같은 인터페이스 표준들이, 인터페이스 자체에는 커다른 변경없이 추가적인 특징들이 부가되도록 함으로써 확장가능하도록 허용한다. Embedded DisplayPort® (eDP)는 DP 표준에 대한 컴패니언 표준(companion standard)(예를 들면, 임베디드 DisplayPort® 버젼 1.3(2011년 2월) 참조)이고, (예를 들면, 그래픽 프로세서와 노트북 디스플레이 패널 사이의) 내부 접속들에 대해 표준화된 디스플레이 패널 인터페이스를 제공하며, LVDS 표준을 대체하도록 설계된다.
본 명세서에 기술된 내용들은 예로서 도시되며, 첨부 도면들에서의 제한을 위한 것이 아니다. 도시의 간략성 및 명료성을 위해, 도면들에 도시된 요소들이 실제 축적으로 도시될 필요는 없다. 예를 들어, 명료성을 위해 일부 요소들의 치수들은 다른 요소들에 대하여 과장될 수 있다. 더욱이, 적절한 경우, 도면들 사이에서 참조 라벨들이 반복되어, 대응하거나 유사한 요소들을 나타낸다.
도 1 및 2는 예시적인 디스플레이 인터페이스 시스템들의 예시적인 도면이다.
도 3 내지 5는 예시적인 레지스터 레이아웃들을 도시한다.
도 6 내지 12는 예시적인 디스플레이 인터페이스 프로세스들을 도시한다.
도 13은 예시적인 데이터 스킴의 예시적인 도면이다.
도 14는 예시적인 시스템의 예시적인 도면이다.
도 15는 예시적인 디바이스의 예시적인 도면이며, 모두 본 개시내용의 적어도 몇몇 구현들에 따라 배열된다.
이제, 하나 이상의 실시예들 또는 구현들이 첨부된 도면들에 대하여 기술된다. 특정한 구성들 및 배열들이 기술되지만, 그것은 단지 예시의 목적을 위한 것임을 이해해야 한다. 관련 기술분야의 당업자라면, 서술 내용의 사상 및 영역을 벗어나지 않고서도, 다른 구성들 및 배열들이 이용될 수 있음을 알 것이다. 관련 기술분야의 당업자라면, 본 명세서에 기재된 기술들 및/또는 배열들은 본 명세서에 기재된 것과는 다른 다양한 시스템들 및 애플리케이션들에서 이용될 수도 있음을 명백히 알 것이다.
이하의 설명은, 예를 들면, 노트북 또는 데스크탑 컴퓨터들과 같은 아키텍쳐들에서 명백할 수 있는 다양한 구현들을 개시하지만, 본 명세서에 기재된 기술들 및/또는 배열들의 구현은 특정 아키텍쳐들 및/또는 컴퓨팅 시스템들로 제한되지 않으며, 유사한 목적들을 위한 임의의 아키텍쳐 및/또는 컴퓨팅 시스템에 의해 구현될 수 있다. 예컨대, 예를 들어 다수의 집적 회로(IC) 칩들 및/또는 패키지들을 이용하는 다양한 아키텍쳐들, 및/또는 셋탑 박스, 스마트 폰 등과 같은 다양한 컴퓨팅 디바이스들 및/또는 소비자 전자(CE) 장치들이 본 명세서에 기재된 기술들 및/또는 배열들을 구현할 수 있다. 더욱이, 이하의 설명은 로직 구현들, 타입들 및 시스템 구성요소들의 연관성들, 로직 분할/통합 선택 등과 같은 다양한 특정한 세부사항들을 개시할 수 있지만, 청구된 주된 내용은 그러한 세부사항들 없이도 실시될 수 있다. 다른 경우에 있어서, 예를 들어, 제어 구조들 및 전체 소프트웨어 인스트럭션 시퀀스들과 같은 몇몇 내용들은, 본 명세서에 개시된 내용들을 불명료하게 하지 않도록 세부적으로 도시되지 않을 수 있다.
본 명세서에 개시된 내용은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 본 명세서에 개시된 내용은 하나 이상의 프로세서에 의해 판독 및 실행될 수 있는, 머신 판독가능 매체 상에 저장된 인스트럭션들로서 구현될 수도 있다. 머신 판독가능 매체는 머신(예를 들면, 컴퓨팅 디바이스)에 의해 판독가능한 형태로 정보를 저장 또는 송신하기 위한 임의의 매체 및/또는 메카니즘을 포함할 수 있다. 예를 들어, 머신 판독가능 매체는 ROM(read only memory), RAM(random access memory), 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 디바이스, 전기, 광학, 음향 또는 다른 형태의 전파 신호(예를 들면, 반송파, 적외선 신호, 디지털 신호 등) 등을 포함할 수 있다.
명세서에서 "하나의 구현", "구현", "예시적인 구현" 등에 대한 참조는, 서술된 구현이 특정한 특징, 구조 또는 특성을 포함할 수 있으나, 모든 구현이 특정한 특징, 구조 또는 특성을 포함할 필요는 없음을 나타낸다. 더욱이, 그러한 문구들이 동일한 구현을 지칭할 필요는 없다. 더욱이, 특정한 특징, 구조 또는 특성이 소정의 구현과 함께 기술될 때, 그것은 그러한 특징, 구조 또는 특성이 본 명세서에서 명시적으로 기술되었는지의 여부와는 관계없이 다른 구현들과 함께 실시되도록 본 기술분야의 당업자의 지식내에 있는 것이다.
본 개시내용에 따르면, 본 명세서에서 이용된 문구 "HID(Human Interface Device)"는 컴퓨터 시스템들의 동작을 제어하는데 이용된 디바이스들을 기술할 수 있다(예를 들면, USB-IF(Universal Serial Bus Implementers Forum)에 의해 제공되는 HID 클래스 정의와 일치하는 임의의 디바이스. 참조: "Device Class Definition for Human Interface Devices(HID)" 펌웨어 사양, 버젼 1.11, 2001년 6월 27일 발행; 이후 "HID 1.11" 사양이라 함). 더욱이, 문구 "터치 데이터(touch data)"는 문구 "멀티 터치 데이터"와 동의어로 이용될 수 있으며, 본 명세서에서 이용된 바와 같이, 터치 감지 표면(예를 들면, 터치 스크린 디스플레이)과의 컨택이 발생된 하나 이상의 위치들을 기술하는 데이터를 지칭할 수 있다.
또한, 문구 "터치 싱크(touch sink)" 및 "터치 싱크 디바이스"는 용어 "싱크" 및 문구 "싱크 디바이스"와 동의어로 이용될 수 있으며, 본 명세서에서 DisplayPort® (DP) 및/또는 Embedded DisplayPort® (eDP) 표준들(2011년 2월에 발행된 Embedded DisplayPort® 버젼 1.3 참조)을 지원하도록 구성되고, 터치 데이터를 보고할 수 있는 싱크 디바이스를 지칭하는데 이용될 수 있다. 더욱이, 문구 "터치 소스" 및 "터치 소스 디바이스"는 용어 "소스" 및 문구 "소스 디바이스"와 동의어로 이용될 수 있으며, 예를 들어, 터치 싱크 디바이스로부터 수신된 터치 데이터를 처리하도록 구성되는, 본 명세서에서 DP 1.2 표준(참조: 2009년 12월에 발행된 DisplayPort® 버젼 1.2; 이하 "DP 1.2" 표준)에 정의된 소스 디바이스를 지칭하는데 이용될 수 있다. 명료성을 위해, 본 명세서에서 다양한 디바이스들, 시스템들 및 프로세스들이 DP 및/또는 eDP 표준들의 문맥으로 기술될 것이지만, 본 개시내용은 임의의 특정 터치 및/또는 디스플레이 인터페이스 표준들, 및/또는 사양들로 제한되지 않는다.
본 명세서에서 다양한 시스템들, 디바이스들, 방안들 및/또는 프로세스들이 터치 데이터의 문맥으로 기술될 수 있지만, 본 개시내용은 터치 데이터 및/또는 터치 디바이스들로 제한되지 않는다. 그러므로, 터치 싱크와 터치 소스 사이에서 전달되는 정보가 HID 순응적일 수 있기 때문에, 터치 싱크는, 제한적인 것은 아니지만, 키패드, 영숫자 디스플레이 등을 포함하는 다른 타입의 HID 디바이스들을 제공할 수 있다. 따라서, 본 명세서에서 기술된 다양한 인터페이스 방안들 및/또는 프로세스들이, 터치 싱크에 의해 제공될 수 있는 다른 타입의 HID 디바이스들에 적용될 수 있으며, 하나 이상의 다른 타입의 HID 디바이스들과 HID 터치 디바이스들의 임의의 조합에 적용될 수 있다. 더욱이, 본 명세서에서 용어 "인터페이스 데이터"는 주로 터치 데이터를 지칭하는데 이용될 수 있지만, 다양한 구현들에서, 본 개시내용에 따른 인터페이스 데이터는 키패드, 영숫자 디스플레이 등과 같은 임의의 타입의 HID 디바이스들에 의해 생성된 데이터를 지칭할 수 있다.
다양한 구현들에서, 터치 싱크는 미처리(raw) 터치 데이터를 생성하기 위한 터치 센서들 및 미처리 터치 데이터를 본 명세서에서 기술된 포맷들로 변환하기 위한 포맷기(formatter)를 포함할 수 있다. 더욱이, 터치 싱크는 터치 데이터를 본 명세서에서 기술된 터치 소스로 전달하도록 구성될 수 있다. 다양한 구현들에서, 터치 소스는 본 명세서에서 기술된 바와 같이 터치 데이터를 분석 및/또는 해석하도록 구성되는 것 외에도, 터치 싱크로부터 터치 데이터를 수신 또는 획득하는 능력을 가질 수 있다. 예를 들어, 도 1은 본 개시내용에 따른 멀티 터치 디스플레이 인터페이스 시스템(100)을 도시하며, 터치 싱크(104)에 통신가능하게 연결된 터치 소스(102)를 포함한다. 터치 데이터가 터치 싱크(104)와 터치 소스(102) 사이에서 송신될 수 있는 예시적인 포맷, 및 그러한 데이터의 전송이 실시될 수 있도록 하는 다양한 메카니즘들이 이하에서 보다 상세히 기술될 것이다.
다양한 실시예들에서, 터치 소스(102)는 DP 1.2 표준을 구현하도록 구성될 수 있으며, 분석기 모듈(106) 및 해석기 모듈(108) 각각을 이용하여 터치 데이터와 같은 인터페이스 데이터를 분석 및 해석하도록 구성되는 GPU(graphics processing unit), DSP(Digital Signal Processor) 등과 같은 마이크로프로세서를 포함할 수 있다. 터치 소스(102)는 본 명세서에서 기술될 다양한 방안들 또는 프로세스들을 구현하기 위한 인터페이스 로직(109)을 또한 포함할 수 있다. 예를 들어, 인터페이스 로직(109)은 이하에 보다 상세히 기술될 데이터 전송 프로세스들 또는 그것의 일부들을 구현하도록 구성된 로직을 포함할 수 있다.
다양한 실시예들에서, 터치 싱크(104)는 터치 센서들(110) 및 포맷기 모듈(112)을 각각 이용하여 멀티 터치 데이터 형태의 인터페이스 데이터를 캡쳐하고, 터치 데이터를 포맷하도록 구성된 멀티 터치 가능 디스플레이(도시되지 않음)를 포함할 수 있다. 다양한 구현들에서, 터치 센서들(110)은 터치 싱크(104)가 멀티 터치 데이터를 캡쳐할 수 있도록 하는 용량성 터치 센서들과 같은 임의의 타입의 알려진 터치 센서들일 수 있다. 또한, 터치 싱크(104)는 본 명세서에서 기술될 다양한 방안들 또는 프로세스들을 구현하기 위한 인터페이스 로직(123)을 포함할 수 있다. 예를 들어, 인터페이스 로직(123)은 이하에 보다 상세히 기술될 데이터 전송 프로세스들 또는 그 일부들을 구현하도록 구성된 로직을 포함할 수 있다.
다양한 구현들에서, 터치 싱크(104)는 모바일 통신 디바이스(예를 들면, 스마트 폰), 모바일 컴퓨터, 태블릿 컴퓨터 등에 통합될 수 있다. 다양한 실시예들에서, 시스템(100)의 구성요소들은 모바일 통신 디바이스, 태블릿 컴퓨터 등과 같은 단일의 디바이스 내에 구현될 수 있으며, 여기서 터치 싱크(104)는 터치 스크린 디스플레이와 관련된 하나 이상의 로직 및/또는 하드웨어 모듈(들)에 응답할 수 있고, 터치 소스(102)는 터치 싱크(104)의 로직 및/또는 하드웨어 모듈(들)에 통신가능하게 연결된 마이크로프로세서를 포함할 수 있다.
도 1에 도시된 바와 같이, 시스템(100)은 터치 소스(102)를 터치 싱크(104)에 통신가능하게 연결하며 메인 링크(116), 보조 또는 고속-보조 채널 (F)AUX(118) 및 HPD(Hot Plug Detect) 신호 라인(120)을 포함하는 DP 링크(114)를 포함한다. 다양한 구현들에서, 메인 링크(116)는 터치 소스(102)로부터 터치 싱크(104)로의 비압축된 비디오 및/또는 오디오 데이터와 같은 등시성(isochronous) 스트림들의 전송을 위해 이용된 단방향성, 고대역폭 및 로우-레이턴시(low-latency) 채널일 수 있다. 다양한 구현들에서, (F)AUX 채널(118)은 본 개시내용에 따른 방안들을 이용하여 링크 관리 및 디바이스 제어를 위해 이용된 하프-듀플렉스 양방향 채널(half-duplex bidirectional channel)일 수 있다. 예를 들어, 다양한 구현들에서, 터치 소스(102) 및 터치 싱크(104)는 마스터 및 슬레이브로서 각각 지정될 수 있다. 일반적으로, (F)AUX 채널(118)을 통한 트랜잭션들은 터치 소스(102)에 의해 개시된다. 그러나, 다양한 구현들에서, 터치 싱크(104)는, 예를 들면, 신호 라인(120)을 통해 인터럽트(IRQ)를 터치 소스(102)에게 송신함으로써, (F)AUX 채널 트랜잭션들의 개시를 프롬프팅할 수 있다.
다양한 구현들에서, 본 개시내용에 따른 멀티 터치 디스플레이 인터페이스 시스템들 및/또는 방안들은 터치 싱크를 터치 소스와 통신가능하게 연결하는 하나 이상의 중간 디바이스들 및/또는 시스템들을 포함할 수 있다. 예를 들어, 도 2는 본 개시내용에 따른 멀티 터치 디스플레이 인터페이스 시스템(200)을 도시하며, 시스템은 터치 소스(104)를 터치 싱크(102)와 통신가능하게 연결하는 중간 브랜치 디바이스(202)를 포함한다. 다양한 구현들에서, 브랜치 디바이스(202)는 DP 1.2 표준에 따라 구성된 디바이스일 수 있으며, 이하에 보다 상세히 기술되는 바와 같은 사이드밴드(sideband) 메시지들을 구현할 수 있다. 더욱이, 다양한 구현들에서, 브랜치 디바이스는 터치 싱크(102)가 터치 데이터를 생성하는 레이트에 기초한 특정 제한 시간 내에 (신호 라인(120) 상에 나타나는 인터럽트들과 같은) 다운스트림 신호들을 처리할 수 있다. 예를 들어, 브랜치 디바이스(202)는 50Hz의 최소 터치 데이터 샘플 레이트를 지원하기 위해 20msec 내에 인터럽트들을 처리할 필요가 있을 수 있다.
도 1의 설명으로 돌아가면, 다양한 구현들에서, 그리고 이하에 보다 상세히 기술되는 바와 같이, 터치 소스(102)는 (F)AUX 채널(118)을 통해 터치 싱크(104)로부터 터치 데이터와 같은 인터페이스 데이터를 획득할 수 있으며, 여기서 터치 데이터는 HID 리포트 서술자(참조: Device Class Definition for Human Interface Devices (HID) 펌웨어 사양, 버젼 1.11, 2001년 6월 27일 발행; 이하 "HID 1.11 사양")에 의해 정의된 바와 같은 HID(Human Interface Device) 포맷일 수 있다. 더욱이, 본 개시내용에 따르면, 터치 싱크(104)는 HID 사용 테이블(참조: HID Usage Tables, 버젼 1.12, 2004년 10월 28일 발행)을 수정하는 디지타이저에 대한 멀티 터치 확장(multi-touch extensions for digitizers)(참조: "Addition of usages related to multi-touch digitizers", Request #HUTRR34, 2009년 2월 27일 발행; 이하 "HUTRR34" 문서)에 개시된 바와 같은 터치 관련 포맷 요건들을 따를 수 있다. 또한, 터치 싱크(104)는 HID 1.11 사양에 따른 디지타이저 디바이스로서 터치 능력을 노출할 수 있다. 본 개시내용에 따르면, HID 리포트 서술자를 포함하는 HID 정보가 (F)AUX 채널(118)을 통해 터치 싱크(104)와 터치 소스(102) 사이에 전달될 수 있다.
다양한 구현들에서, 그리고 이하에 보다 상세히 설명되는 바와 같이, 터치 싱크(104)는 터치 소스(102)가 (F)AUX 채널(118)을 통해 액세스할 수 있는 구성 데이터, 터치 데이터 등과 같은 데이터를 터치 싱크(104)가 일시적으로 저장하는데 이용할 수 있는 레지스터들(122)을 포함할 수 있다. 다양한 구현들에서, 레지스터들(122)은 DPCD(DP Configuration Data) 레지스터들을 포함할 수 있고, 터치 소스(102)는, 이하에 보다 상세히 설명되는 바와 같이, 다양한 목적을 위해 그러한 DPCD 레지스터들에 대한 판독 및 기입 액세스를 가질 수 있다. 더욱이, 다양한 구현들에서, 이하에 보다 상세히 설명되는 바와 같이, (센서들(110) 및 포맷기 모듈(112)을 포함하는) 데이터 모듈(124)은 레지스터들(122) 중 하나 이상의 DPCD 레지스터들에 응답하여 구성될 수 있다.
다양한 구현들에서, 터치 싱크(104)는 터치 데이터에 대해 적어도 50Hz의 샘플 레이트를 지원할 수 있다. 다양한 구현들에서, 터치 싱크(104)는 터치 데이터 관련 인터럽트들을 터치 소스(102)에 전달할 수 있으며, 터치 소스(102)는 터치 싱크(104)의 샘플 레이트에 적합한 레이트에서 그러한 인터럽트들을 처리할 수 있다. 예를 들어, 터치 싱크(104)는 신호 라인(120)을 통해 IRQ_HPD 인터럽트들을 터치 소스(102)에 전달할 수 있다. DP 1.2 표준은 (10Hz의 샘플 레이트에 대응하는) 100msec 이내에 IRQ_HPD를 처리하기 위해 소스 디바이스들을 필요로 하지만, 다양한 구현들에서, 본 개시내용에 따르면, 터치 소스(102)는 터치 싱크(104)에 의해 50Hz의 레이트에서 샘플링된 터치 데이터의 처리를 지원하기 위해 20msec 이내에 IRQ_HPD들을 처리할 수 있다.
다양한 구현들에서, 시스템(100)은 터치 능력을 지정하는 별도의 디바이스 서술자들을 지원하지 않을 수 있다. 그러나, 다른 구현들에서, 터치 싱크(104)는 DP 1.2 표준에 따라 EDID(Extended Display Identification Data)를 제공하여, 터치 싱크(104)가 터치 능력을 가짐을 나타낼 수 있다. 또한, 터치 싱크(104)는 PnP(Plug-and-Play) 목적을 위해 벤더 정보를 포함할 수 있다. 그러한 EDID 및/또는 벤더 정보는 터치 싱크(104) 내부의 메모리(도시되지 않음)에 저장될 수 있다. 또한, 다양한 구현들에서, 터치 소스(102)는 본 명세서에 기술된 바와 같은 HID 부트 모드 동작 및 HID 서술자 분석을 지원하는 시스템 소프트웨어 및/또는 펌웨어를 포함할 수 있다.
능력 발견
다양한 구현들에서, 터치 싱크(104)는 레지스터들(122)의 TOUCH_CAPABILITY DPCD 레지스터 부분에서의 TOUCH_SUPPORTED 비트를 통해 그의 터치 능력을 알릴 수 있다. 그 다음, 터치 소스(102)는 싱크 발견에 의해 트리거링된 싱크 능력 발견의 일부로서 TOUCH_SUPPORTED 비트를 판독할 수 있다.
다양한 구현들에서, 터치 싱크(104)는 HID 사양에서 기술된 바와 같은 HID 서술자 및 HID 리포트 서술자를 제공할 수 있다. 이러한 2개의 서술자들 (및 선택적으로, HID 1.11 사양에서 허용되는 것으로서의, 다른 HID 클래스 서술자들)은 터치 싱크(104)에서 터치 능력을 확인한 후에 레지스터들(122)의 개별적인 HID_CLASS_DESCRIPTORS DPCD 레지스터 부분들로부터 터치 소스(102)에 의해 획득될 수 있다. 다양한 구현들에서, HID 서술자에서 선언된 클래스 서술자들은, 그것이 HID 서술자에서 선언된 순서로 HID_DESCRIPTORS DPCD 레지스터들에서의 HID 서술자를 바로 따를 수 있다.
터치 싱크 구성
본 개시내용에 따르면, 터치 소스(102)는 다양한 방식으로 터치 싱크(104)를 구성할 수 있다. 예를 들어, 표 1은 터치 소스(102)가 터치 싱크(104)에 대해 발행할 수 있는 다양한 예시적인 코맨드들을 열거한다.
Figure pat00001
다양한 구현들에서, 터치 싱크(104)는 DP 1.2 표준에 정의된 바와 같은 표준 DPCD AUX 트랜잭션 메카니즘들을 통해, 표 1의 코맨드들에 응답하여, 성공 또는 실패를 수신확인(acknowledge)할 수 있다.
다양한 구현들에서, 터치 소스(102)는 데이터 모듈(124)을 인에이블링 또는 디스에이블링함으로써 터치 싱크(104)의 터치 특징들을 인에이블 또는 디스에이블할 수 있다. 예를 들어, 표 1에 개시된 바와 같이, 터치 소스(102)는 CONFIGURE_TOUCH DPCD 레지스터에서 ENABLE_TOUCH_FEATURE 비트를 세팅함으로써 터치 싱크(104)에서의 데이터 모듈(124) (및 관련된 데이터 리포팅)을 디스에이블할 수 있다. 반대로, 터치 소스(102)는 해당 비트를 리세팅함으로써 데이터 모듈(124)을 인에이블할 수 있다. 예를 들어, 터치 소스(102)는 ENABLE_TOUCH_FEATURE 비트에 0을 기입함으로써 데이터 모듈(124)을 디스에이블하고, 해당 비트에 1을 기입함으로써 데이터 모듈(124)을 인에이블할 수 있다.
다양한 구현들에서, 터치 소스(102)는 터치 싱크(104)로부터의 터치 데이터에 액세스하기 위한 방법을 구성할 수 있다. 다양한 구현들에서, 데이터 액세스 메쏘드는 인터럽트 기반 데이터 액세스 메쏘드 또는 폴(poll) 기반 데이터 액세스 메쏘드이도록 구성될 수 있다. 예를 들어, 터치 소스(102)는 CONFIGURE_TOUCH DPCD 레지스터에서 DATA_ACCESS METHOD 비트를 폴드(Polled)로 세팅하여, 터치 싱크(104)에 의한 터치 관련 IRQ HPD 인터럽트 생성이 디스에이블되도록 함으로써 폴 기반 데이터 액세스 메쏘드를 구성할 수 있다. 반대로, 터치 소스(102)는 DATA_ACCESS METHOD 비트를 인터럽트로 세팅하여, 터치 싱크(104)에 의한 IRQ_HPD 인터럽트 생성이 인에이블되도록 함으로써 인터럽트 기반 데이터 액세스 메쏘드를 인에이블할 수 있다.
표 1의 설명을 계속하면, 터치 소스(102)는 CONFIGURE_TOUCH DPCD 레지스터에서 RESET 비트를 세팅함으로써 터치 싱크(104)에서의 터치 기능을 리세팅할 수 있다. 그 다음, 터치 싱크(104)는 이러한 코맨드에 응답하여 데이터 모듈(124)을 리세트 상태로 할 수 있다. 특히, 다양한 구현들에서, 리세트 상태를 세팅하는 것은 데이터 모듈(124)을 디스에이블할 수 있고, (이하에 기술될) 입력 리포트 큐(Input Report queue)를 플러시할 수 있으며, 레지스터들(122)에서의 TOUCH_STATUS 레지스터를 리세팅하여 가용한 리포트 데이터가 없음을 나타낼 수 있다.
다양한 구현들에서, 터치 소스(102)는 관심이 있는 리포트 ID를 TOUCH_PARAMETERS[0] DPCD 레지스터에 기입하고, CONFIGURE_TOUCH DPCD 레지스터에서 GET_FEATURE_REPORT 비트를 1로 세팅함으로써 특징 리포트에 대한 판독 요청을 발행할 수 있다. 다양한 구현들에서, 터치 싱크(104)는 특징 리포트의 가용성이 오프셋 0에서 REPORT_DATA DPCD 영역에서 판독됨을 나타낼 수 있다.
다양한 구현들에서, 이하에 보다 상세히 설명되는 바와 같이, 터치 소스(102)는 터치 싱크(104)에게 특징 리포트를 발행할 수 있다. 예를 들어, 터치 소스(102)는 특정 오프셋에서 레지스터들(122)의 REPORT_DATA DPCD 영역에 특징 리포트를 기입함으로써, 그리고 레지스터들(122)의 CONFIGURE_TOUCH DPCD 레지스터에서 SET_FEATURE_REPORT를 세팅함으로써 그렇게 할 수 있다.
또한, 다양한 구현들에서, 이하에 보다 상세히 설명되는 바와 같이, 터치 소스(102)는 터치 싱크(104)에게 출력 리포트를 발행할 수 있다. 예를 들어, 터치 소스(102)는 특정 오프셋에서 레지스터들(122)의 OUTPUT_REPORT DPCD 영역에 출력 리포트를 기입함으로써, 그리고 레지스터들(122)의 CONFIGURE_TOUCH DPCD 레지스터에 SET_OUTPUT_REPORT 비트를 세팅함으로써 그렇게 할 수 있다.
표 1의 설명을 결론지으면, 다양한 구현들에서, 터치 소스(102)는 터치 싱크(104)에 의해 생성된 입력 리포트들에 대한 리포팅 레이트를 세팅할 수 있다. 예를 들어, 터치 소스(102)는 레지스터들(122)의 IDLE_RATES DPCD 영역에 이러한 코맨드에 대한 파라미터들을 기입함으로써, 및 레지스터들(122)의 CONFIGURE_TOUCH DPCD 레지스터에 SET_IDLE_RATE 비트를 세팅함으로써 그렇게 할 수 있다. 다양한 구현들에서, 각각의 리포트 ID에 대한 아이들 레이트는 이하의 규칙들에 따라 밀리초로 지정될 수 있다. (1) HID 사양에 정의된 바와 같이, 0의 값은 지속기간이 무기한임을 나타낸다(이 값에 대해, 터치 소스(102)가 DATA_ACCESS_METHOD를 인터럽트로 프로그래밍하는 경우에도, 터치 싱크(104)에 의해 어떠한 인터럽트들로 생성되지 않을 것이다); (2) 1 내지 4의 값들이 지원되지 않는다; (3) 아이들 레이트의 최소 유효 값은 5 밀리초이며, 이것은 200Hz의 최대 샘플 레이트를 의미한다; (4) 50Hz의 최소 샘플 레이트가 주어지는 경우, 최대 스캔 레이트는 20 밀리초이다.
본 개시내용에 따르면, 터치 소스(102)는 터치 싱크(104)의 데이터 모듈(124)을 슬립(sleep)(저전력) 상태로 세팅할 수 있다. 예를 들어, 터치 소스(102)는 CONFIGURE_TOUCH DPCD 레지스터에서 SET_LOW_POWER 비트를 세팅함으로써 그렇게 할 수 있다. 다양한 구현들에서, SET_LOW_POWER가 0의 값을 가질 때, 데이터 모듈(124)은 ON 상태에 있을 수 있다. 다양한 구현들에서, SET_LOW_POWER 비트는, 터치 싱크(104)가 (DP 1.2 표준의 도 5-2에서의 STATE 1과 같이) ACTIVE 상태에 있을 때에만 유효할 수 있다.
레지스터 레이아웃 및 액세스 규칙들
본 개시내용에 따르면, 레지스터들(122)의 HID_CLASS_DESCRIPTORS DPCD 레지스터 부분들은 HID 클래스 서술자들의 어레이를 포함할 수 있으며, 여기서 제1 서술자는 HID 서술자일 수 있다. 다양한 구현들에서, HID 서술자의 레이아웃은 HID 1.11 사양의 섹션 6.2.1을 따를 수 있다. HID 서술자는 그것이 지원하는 HID 사양의 수정사항, 및 HID 디바이스에 특정적인 다른 정보를 식별할 수 있다. 또한, HID 서술자의 bNumDescriptors 필드는 가용한 추가적인 HID 클래스 서술자들의 수를 정의할 수 있다. bNumDescriptors 필드 이후에 3 바이트 엔트리들의 어레이가 뒤따를 수 있으며, 여기서 엔트리의 제1 바이트(bDescriptorType)는 HID 클래스 서술자의 타입을 정의하고, 엔트리의 나머지 2 바이트들(wDescriptorLength)는 HID 클래스 서술자의 크기를 정의한다. 다양한 구현들에서, HID 클래스 타입 값들의 할당은 HID 1.11 사양의 섹션 7.1을 따를 수 있다.
다양한 구현들에서, 도 3에 도시된 바와 같이, HID 클래스 서술자들은 레지스터들(122)의 HID_CLASS_DESCRIPTORS DPCD 영역 레이아웃(300) 내의 바이트 경계들 상에 패킹될 수 있다. 예컨대, HID 서술자 필드(302)는 오프셋 0에서 시작될 수 있으며, HID 서술자(302)의 제1 바이트(bLength)는 HID 서술자들의 크기를 바이트들로 식별할 수 있다. 하나 이상의 HID 클래스 서술자들이 HID 서술자와 관련될 수 있다. 예컨대, 2개의 예시적인 HID 클래스 서술자들(304, 306)이 도 3에 도시된다. 다양한 구현들에서, HID 서술자(302)는 레이아웃(300)에서 나타나는 HID 클래스 서술자들의 크기, 갯수 및/또는 타입을 식별할 수 있다. 다양한 구현들에서, HID 클래스 서술자(304)는 오프셋 HID Descriptor:bLength에서 시작될 수 있고, HID 클래스 서술자(306)는 오프셋 HID Descriptor:bLength + wDescritorLength[0]에서 시작될 수 있고, 제3 HID 클래스 서술자(도시되지 않음)는 HID Descriptor:bLength + wDescritorLength[0] + wDescritorLength[1]에서 시작될 수 있는 등으로 된다. 다양한 구현들에서, HID 디바이스는 하나의 추가적인 HID 클래스 서술자, 즉, 리포트 서술자만을 정의할 수 있다.
리포트들
본 개시내용에 따르면, 이하에 보다 상세히 기술될 입력 리포트들, 출력 리포트들 및 특징 리포트들이 제공될 수 있다. 다양한 구현들에서, 터치 소스(102)는 출력 리포트들 및 특징 리포트들을 발생시킬 수 있고, 터치 싱크(104)는 입력 리포트들 및 특징 리포트들을 발생시킬 수 있다. 다양한 구현들에서, 터치 싱크(104)에 의해 생성된 입력 리포트는 데이터 모듈(124)에 의해 생성된 터치 데이터와 같은 인터페이스 데이터를 포함할 수 있다. 다양한 구현들에서, 터치 소스(102)에 의해 생성된 출력 리포트는 입력 리포트에 의해 제공된 터치 데이터에 응답하여 터치 소스(102)에 의해 생성된 하나 이상의 사용자 인터페이스 코맨드들과 같은 출력 데이터를 포함할 수 있다. 다양한 구현들에서, 특징 리포트는 디지타이저(예를 들면, 터치 싱크(104))가 동작하고 있는 모드 및 인터페이스에 의해 지원되는 동시 컨택들/터치들의 최대 수를 식별할 수 있다. 예를 들어, 이하에 보다 상세히 기술되는 도 13은 입력 리포트와 결합하여 특징 리포트의 예시적인 레이아웃을 도시한다.
다양한 구현들에서, 터치 싱크(104)가 입력 리포트들을 지원하는 것이 의무적일 있고, 터치 싱크(102)가 특징 리포트들을, 그들이 대응하는 HID 서술자에서 선언되는 경우에만, 지원할 수 있다. 다양한 구현들에서, 터치 소스(102)가 터치 싱크(104)로부터 수신된 입력 리포트들 및 특징 리포트들을 분석할 수 있고, 그에 응답하여 출력 리포트들 및 특징 리포트들을 생성하는 것이 의무적일 수 있다. 다양한 구현들에서, 터치 소스(102)의 하나 이상의 소프트웨어 애플리케이션들이, HUTRR34 문서에 개시된 바와 같은 HID 이용들을 지원할 수 있다.
터치 싱크 생성된 리포트들
본 개시내용에 따르면, 터치 싱크(104)는 터치 소스(102)에 의해 액세스될 수 있는 입력 리포트 및 (적용가능한 경우의) 특징 리포트를 저장할 수 있다. 예를 들어, 도 4에 도시된 바와 같이, 터치 싱크(104)는 입력 리포트(402) 및 대응하는 특징 리포트(404)를 레지스터들(122)의 REPORT_DATA DPCD 영역 레이아웃(400)에 저장함으로써 그렇게 할 수 있다. 다양한 구현들에서, 특징 리포트(404)가 대응하는 리포트 서술자에서 선언된다면, 그의 리포트 ID의 각각의 경우는 고정된 크기를 가질 수 있다. 다양한 구현들에서, REPORT_DATA DPCD 영역(400)의 특징 리포트 필드의 크기는 대응하는 HID 서술자에 의해 정의될 수 있으며, 특징 리포트(404)에 대해 가장 큰 리포트 ID의 크기일 수 있다. 리포트 서술자가 특징 리포트를 포함하지 않는다면, 특징 리포트(404)는 레이아웃(400)에 존재하지 않을 수 있다. 다양한 구현들에서, 입력 리포트(402)의 크기는 데이터 모듈(124)에 의해 캡쳐된 터치 컨택들의 수에 기초하여 변할 수 있다. HID 서술자는 레이아웃(400)의 입력 리포트 크기 영역(406)에서의 입력 리포트(402)의 크기를 식별할 수 있다. 예컨대, 입력 리포트 크기(406)는 입력 리포트(402)에서의 유효 바이트들의 수를 식별할 수 있다. 다양한 구현들에서, 입력 리포트 크기 필드(406)는 2 바이트의 크기를 가질 수 있다. 더욱이, HID 서술자는 입력 리포트(402)의 최대 크기를 식별할 수 있다.
터치 소스 생성된 리포트들
본 개시내용에 따르면, 터치 소스(102)는 (적용가능한 경우) 출력 리포트를 터치 싱크(104)의 레지스터들(122)에 저장할 수 있다. 예를 들어, 터치 소스(102)는 도 5의 레이아웃(500)에 도시된 바와 같이 구조화될 수 있는 OUTPUT_REPORT DPCD 영역에 출력 리포트(502)를 저장할 수 있다. 다양한 구현들에서, 리포트 서술자는 출력 리포트 부영역(sub-region)의 최대 크기를 정의할 수 있다. 다양한 구현들에서, 출력 리포트(502)의 크기는 터치 소스가 제공하는 콘텐츠에 기초하여 변할 수 있으며, 출력 리포트 크기 필드(504)는 출력 리포트(502)의 크기를 지정할 수 있다. 다양한 구현들에서, 출력 리포트 크기 필드(504)는 2 바이트의 크기를 가질 수 있다. 더욱이, HID 서술자는 출력 리포트(502)의 최대 크기를 식별할 수 있다.
다양한 구현들에서, 터치 소스(102) 및 터치 싱크(104)는 REPORT_DATA DPCD 영역(400)에서 특징 리포트 레지스터들을 공유할 수 있다. 그러한 구현들에서, 터치 소스들 및 터치 싱크들은, 이하에 보다 상세히 기술되는 바와 같이 TOUCH_STATUS DPCD 레지스터에서의 FEATURE_DATA_AVAILABLE 비트를 이용하여 액세스를 동기화할 수 있다.
다양한 구현들에서, 리포트 서술자가 리포트 ID를 이용하여 특정 타입(예를 들면, 특징, 입력 또는 출력)의 다수의 리포트들을 정의한다면, 리포트 부영역의 크기는 동일한 타입의 모든 정의된 리포트들의 크기의 조합(union)일 수 있다. 본 개시내용에 따르면, 터치 소스(102)와 관련된 소프트웨어는 리포트 서술자를 분석함으로써 각각의 리포트의 최대 크기를 결정할 수 있고, 리포트 부영역에 선행하는 크기 필드를 검사함으로써 현재 리포트에서의 유효 바이트들의 수를 결정할 수 있다.
데이터 전송
본 개시내용에 따르면, 터치 싱크(104)는 터치 데이터를 터치 소스(102)에게 전송할 수 있다. 예를 들어, 터치 소스(102)는 (F)AUX 채널(118)을 이용하여 터치 싱크(104)로부터 터치 데이터를 획득할 수 있다. 본 개시내용에 따르면, 터치 소스(102)는 다양한 방법들을 이용하여, 터치 싱크(104)에 의해 생성된 터치 데이터를 포함하는 입력 리포트들과 같은 HID 리포트들에 액세스할 수 있다. 예컨대, 전술한 바와 같이, 터치 소스(102)는 터치 소스(102)에 의한 터치 데이터 액세스를 위해 인터럽트 기반 데이터 액세스 메쏘드 또는 폴 기반 데이터 액세스 메쏘드가 가능하도록 터치 싱크(104)를 구성할 수 있다.
도 6은 본 개시내용의 다양한 구현들에 따른, 터치 소스에 의한 인터럽트 기반 데이터 액세스를 구현하기 위한 예시적인 프로세스(600)의 흐름도를 도시한다. 도 7은 프로세스(600)에 대응하는 예시적인 시퀀스 챠트(700)를 도시한다. 다양한 구현들에서, 프로세스(600)는 터치 싱크의 DPCD 레지스터들에 저장된 터치 데이터와 같은 인터페이스 데이터에 액세스하는데 이용될 수 있다. 예를 들어, 터치 소스(102)는 터치 싱크(104)의 레지스터들(122)로부터 입력 리포트 및/또는 특징 리포트를 판독하도록 프로세스(600)를 구현할 수 있다. 프로세스(600)는 도 6의 블록들(602, 604, 606, 608, 610, 612) 중 하나 이상에 의해 예시된 바와 같은 하나 이상의 동작들, 기능들 또는 액션들을 포함할 수 있다. 비제한적인 예로서, 본 명세서에서 프로세스(600)는 도 1의 예시적인 시스템(100)을 참조하여 기술될 것이다.
프로세스(600)는 블록(602)에서 시작될 수 있으며, 여기서 터치 소스는 인터럽트 기반 액세스 메쏘드를 구성할 수 있다. 예를 들어, 터치 소스(102)는 터치 싱크(104)가 CONFIGURE_TOUCH DPCD 레지스터에서의 DATA_ACCESS_METHOD 비트를 이용하여 인터럽트를 생성하도록 명령함으로써 인터럽트 기반 데이터 액세스를 위해 터치 싱크(104)를 구성할 수 있다. 블록(604)에서, 터치 소스는 터치 싱크에서의 데이터 모듈을 인에이블시킬 수 있다. 예를 들어, 터치 소스(102)는 CONFIGURE_TOUCH DPCD 레지스터에서 ENABLE_TOUCH 비트를 세팅함으로써 데이터 모듈(124)을 인에이블시킬 수 있다. 다양한 구현들에서, 블록들(602, 604)은 터치 데이터를 제공하기 위해 터치 싱크를 구성하는 단일의 초기화 동작(605)으로 결합될 수 있다. 예를 들어, 터치 소스(102)는 (F)AUX 채널(118)을 통해 단일 기입 동작을 착수하여, 블록들(602, 604)을 동작(605)로서 구현할 수 있다. 다양한 구현들에서, 터치 소스는 프로세스(600)를 통해 리포트를 판독하는 각각의 경우 동안 초기화 동작(605)을 수행하지 않을 수 있으며, 그보다는, 그러한 구현들에서, 터치 소스는 터치 싱크 구성에서의 변경(예를 들면, 시스템(100)의 구성에서의 변경)에 응답하여서만 초기화 동작을 실행할 수 있다.
블록(606)에서, 터치 소스는 리포트를 요청할 수 있다. 예를 들어, 터치 소스(102)는 TOUCH_PARAMETERS[0]을 원하는 리포트 ID로 세팅하고, TOUCH_COMMAND DPCD 레지스터에서 GET_FEATURE_REPORT 비트를 세팅함으로써 특정 리포트 ID에 대해 특징 리포트를 요청할 수 있다.
블록(606)에서의 리포트 요청에 응답하여, 터치 싱크는 데이터를 제공하고, 대응하는 인터럽트를 세팅할 수 있다(블록 608). 예를 들어, 멀티 터치 데이터의 가용성의 각각의 경우, 터치 싱크(104)는, TOUCH_STATUS DPCD 레지스터에서의 INPUT_REPORT_AVAILABLE 비트 및 TOUCH_INTERRUPT 비트가 클리어된다면, REPORT_DATA DPCD 영역의 입력 리포트 섹션을 멀티 터치 데이터로 파퓰레이팅할 수 있다. 그 다음, 터치 싱크(104)는 멀티 터치 데이터를 포함하는 입력 리포트의 가용성을 시그널링하도록 인터럽트를 세팅할 수 있다. 예를 들어, 터치 싱크(104)는 DEVICE_SERVICE_IRQ_VECTOR에서의 TOUCH_INTERRUPT 비트 및 INPUT_REPORT_AVAILABLE 비트를 세팅함으로써 인터럽트에 대한 이유를 세팅할 수 있고, 그 다음 인터럽트를 터치 소스(102)에 제공하도록 IRQ_HPD를 어서트할 수 있다.
더욱이, 다양한 구현들에서, GET_FEATURE_REPORT 비트가 세팅되는 것으로 검출시에, 블록(608)에서 터치 싱크는 TOUCH_PARAMETERS[0]로부터 리포트 ID를 판독할 수 있고, TOUCH_STATUS DPCD 레지스터에서의 FEATURE_REPORT_AVAILABLE 비트 및 TOUCH_INTERRUPT 비트가 클리어된다면, REPORT_DATA[0]에서 원하는 리포트 ID에 대해 특징 리포트를 파퓰레이팅하고, DEVICE_SERVICE_IRQ_VECTOR에서의 TOUCH_INTERRUPT 비트 및 FEATURE_REPORT_AVAILABLE 비트를 세팅함으로써 인터럽트에 대한 이유를 세팅하고, IRQ_HPD를 어서트한다.
그 다음, 프로세스(600)는 블록(610)에서 계속될 수 있으며, 여기서 터치 소스는 인터럽트 이유를 판독할 수 있다. 그 다음, 프로세스(600)는 블록(612)에서 마무리되며, 여기서 터치 소스는 데이터를 판독하고, 인터럽트 이유를 클리어할 수 있다. 예컨대, IRQ_HPD의 검출시에, 터치 소스(102)는 DEVICE_SERVICE_IRQ_VECTOR를 판독하여, TOUCH_INTERRUPT 비트가 세팅되는지를 체크할 수 있다. TOUCH_INTERRUPT 비트가 세팅된다면, 터치 소스(102)는 TOUCH_STATUS DPCD 레지스터를 판독하여, INPUT_REPORT_AVAILABLE 또는 OUTPUT_REPORT_AVAILABLE 비트들이 세팅되는지의 여부를 결정할 수 있고, 가용성 표시에 대응하는 데이터(예를 들면, 입력 리포트에서의 멀티 터치 데이터)를 판독할 수 있고(예를 들면, 몇몇 경우에서, 입력 및 특징 리포트들 둘다 가용할 수 있으며, 터치 소스는 두 리포트들을 판독할 수 있다), 처리된 가용성 비트(들)을 클리어하고, TOUCH_INTERRUPT 비트를 클리어함으로써 인터럽트 이유를 클리어할 수 있다. 다양한 구현들에서, 프로세스(600)는, 터치 소스(102)가 INPUT_REPORT_AVAILABLE 및 OUTPUT_REPORT_AVAILABLE 비트들 둘다 세팅되지 않은 것으로 결정한다면, 블록(612)이 아닌 블록(610)에서 종료될 수 있다.
도 8은 본 개시내용의 다양한 구현들에 따른, 터치 소스에 의한 폴드 데이터 액세스를 구현하기 위한 예시적인 프로세스(800)의 흐름도를 도시한다. 도 9는 프로세스(800)에 대응하는 예시적인 시퀀스 챠트(900)를 도시한다. 다양한 구현들에서, 프로세스(800)는 터치 싱크의 DPCD 레지스터들에 저장된 데이터에 액세스하는데 이용될 수 있다. 예를 들어, 터치 소스(102)는 터치 싱크(104)의 레지스터들(122)로부터 입력 리포트 및/또는 특징 리포트를 판독하도록 프로세스(800)를 구현할 수 있다. 프로세스(800)는 도 8의 블록들(802, 804, 806, 808, 810, 812) 중 하나 이상에 의해 예시된 바와 같은 하나 이상의 동작들, 기능들 또는 액션들을 포함할 수 있다. 비제한적인 예로서, 본 명세서에서 프로세스(800)는 도 1의 예시적인 시스템을 참조하여 기술될 것이다.
프로세스(800)는 블록(802)에서 시작될 수 있으며, 여기서 터치 소스는 폴드 액세스 메쏘드에 대해 터치 싱크를 구성할 수 있다. 예를 들어, 터치 소스(102)는 DATA_ACCESS_METHOD 비트를 CONFIGURE_TOUCH DPCD 레지스터에서 폴드로 세팅함으로써 폴드 액세스에 대해 터치 싱크(104)를 구성할 수 있다. 블록(804)에서, 터치 싱크는 터치 싱크에서의 데이터 모듈을 인에이블시킬 수 있다. 예를 들어, 터치 소스(102)는 CONFIGURE_TOUCH DPCD 레지스터에서 ENABLE_TOUCH 비트를 세팅함으로써 데이터 모듈(124)을 인에이블시킬 수 있다. 다양한 구현들에서, 블록들(802, 804)은 터치 데이터를 제공하기 위해 터치 싱크를 구성하는 단일의 초기화 동작(805)으로 결합될 수 있다. 예를 들어, 터치 소스(102)는 (F)AUX 채널(118)을 통해 단일의 기입 동작을 착수하여 동작(805)을 구현할 수 있다. 다양한 구현들에서, 터치 소스는 프로세스(800)를 통해 리포트를 판독하는 각각의 경우에 대해 초기화 동작(805)을 수행하지 않을 수 있으며, 그보다는, 그러한 구현들에서, 터치 소스는 현재 터치 싱크 구성에서의 변경(예를 들면, 시스템(100)의 구성에서의 변경)에 응답하여서만 동작(805)을 실행할 수 있다.
블록(806)에서, 터치 소스는 리포트를 요청할 수 있다. 예를 들어, 터치 소스(102)는 TOUCH_PARAMETERS[0]을 원하는 리포트 ID로 세팅하고, TOUCH_COMMAND DPCD 레지스터에서 GET_FEATURE_REPORT 비트를 세팅함으로써 특정 리포트 ID에 대해 특징 리포트를 요청할 수 있다.
블록(806)에서의 리포트 요청에 응답하여, 터치 싱크는 데이터를 제공하고, 데이터를 가용한 것으로서 플래그할 수 있다(블록 808). 예를 들어, 터치 데이터의 가용성의 각각의 경우, 터치 싱크(104)는, TOUCH_STATUS DPCD 레지스터에서의 INPUT_REPORT_AVAILABLE 비트 및 TOUCH_INTERRUPT 비트가 클리어된다면, REPORT_DATA DPCD 영역의 입력 리포트 섹션을 터치 데이터로 파퓰레이팅할 수 있다. 그 다음, 터치 싱크(104)는 리포트 가용성 플래그를 세팅할 수 있다(예를 들면, 입력 리포트에 대해 INPUT_REPORT_AVAILABLE 비트, 및 특징 리포트에 대해 FEATURE_REPORT_AVAILABLE 비트). 다양한 구현들에서, 블록(808)을 착수할 때, 터치 싱크(104)는 TOUCH_STATUS에서의 대응하는 가용성 비트들을 세팅할 수 있지만, 프로세스(600)와는 달리, TOUCH_INTERRUPT 비트는 세팅하지 않을 수 있고, IRQ_HPD 신호를 어서트하지 않을 수 있다.
블록(810)에서, 터치 소스는 리포트 가용성을 폴링할 수 있다. 예를 들어, 터치 소스(102)는 하나 또는 둘다 세팅될 때까지 (예를 들면, 입력 리포트에 대해 INPUT_REPORT_AVAILABLE 비트를 체크하고, 특징 리포트에 대해 FEATURE_REPORT_AVAILABLE 비트를 체크함으로써) 리포트 가용성 플래그들의 존재를 폴링할 수 있다. 블록(812)에서, 프로세스(800)는, 터치 소스가 데이터를 판독하고, 대응하는 플래그를 클리어할 때, 마무리될 수 있다. 예를 들어, 터치 소스(102)가 블록(810)에서 하나 또는 두 입력 리포트 가용성 플래그들이 세팅되는 것으로 결정하면, 블록(812)은 터치 소스가 REPORT_DATA DPCD 레지스터들로부터 대응하는 리포트(들)을 판독하고, 세팅된 것으로 발견되었던 리포트 가용성 플래그(들)을 클리어하는 것을 포함할 수 있다.
다양한 구현들에서, 터치 소스는 인터럽트 기반 및 폴드 데이터 액세스 메쏘드들을 인터리빙하여, 도 6 및 8의 설명에서 전술한 바와 같이 터치 싱크를 대안적으로 구성함으로써 인터럽트 통지들과 관련된 레이턴시를 최소화할 수 있다. 인터리빙된 데이터 액세스가 착수된다면, 터치 소스는 그것이 액세스 메쏘드들 간의 전환 동안에 데이터를 잃지 않도록 보장해야 한다.
도 10은 본 개시내용의 다양한 구현들에 따른, 터치 싱크에 대한 출력 리포트 통신을 위한 예시적인 프로세스(1000)의 흐름도를 도시한다. 도 11은 프로세스(1000)에 대응하는 예시적인 시퀀스 챠트(1100)를 도시한다. 다양한 구현들에서, 프로세스(1000)는 터치 싱크의 DPCD 레지스터들에 출력 데이터를 기입하는데 이용될 수 있다. 예를 들어, 터치 소스(102)는 터치 싱크(104)의 레지스터들(122)에 출력 리포트를 기입하도록 프로세스(1000)를 구현할 수 있다. 프로세스(1000)는 도 10의 블록들(1002, 1004, 1006, 1008, 1010, 1012) 중 하나 이상에 의해 예시된 바와 같은 하나 이상의 동작들, 기능들 또는 액션들을 포함할 수 있다. 비제한적인 예로서, 본 명세서에서 프로세스(1000)는 도 1의 예시적인 시스템(100)을 참조하여 기술될 것이다.
프로세스(1000)는 블록(1002)에서 시작될 수 있으며, 여기서 터치 소스는 데이터 액세스를 위한 터치 싱크를 구성할 수 있다. 예를 들어, 터치 소스(102)는 도 6의 블록(602)에 대해 전술한 바와 같은 인터럽트 기반 데이터 액세스를 위한 터치 싱크(104)를 구성하거나, 또는 도 8의 블록(802)에 대해 전술한 바와 같은 폴드 데이터 액세스를 위한 터치 싱크(104)를 구성할 수 있다. 블록(1004)에서, 터치 소스는 도 6의 블록(604) 및 도 8의 블록(804)에 대하여 전술한 바와 같이 터치 싱크에서의 데이터 모듈을 인에이블시킬 수 있다. 다양한 구현들에서, 블록들(1002, 1004)은 터치 데이터를 제공하기 위해 터치 싱크를 구성하는 단일의 초기화 동작(1005)로 결합될 수 있다. 예를 들어, 터치 소스(102)는 동작(1005)를 구현하기 위해 (F)AUX 채털(118)을 통해 단일의 기입 동작을 착수할 수 있다. 다양한 구현들에서, 터치 소스는 프로세스(1000)를 통해 리포트를 판독하는 각각의 경우에 대해 초기화 동작(1005)을 수행하지 않을 수 있으며, 그보다는, 그러한 구현들에서, 터치 소스는 현재 터치 싱크 구성에서의 변경(예를 들면, 시스템(100)의 구성에서의 변경)에 응답하여서만 초기화 동작을 실행할 수 있다.
터치 싱크에 통신될 출력 데이터의 가용성의 경우, 터치 소스는 블록(1006)에서 임의의 출력 리포트 판독 요청들을 체크할 수 있다. 예를 들어, 터치 소스(102)는, 폴드 액세스의 경우에, OUTPUT_REPORT_READ 비트가 TOUCH_STATUS DPCD 레지스터에서 세팅되도록 폴링하거나, 인터럽트 기반 액세스의 경우에, IRQ_HPD를 TOUCH_INTERRUPT 비트로 필딩 및 OUTPUT_REPORT_READ 비트를 세팅되도록 함으로써, SET_OUTPUT_REPORT가 0으로 세팅되는지 체크하여, 이전의 출력 리포트가 완료되었는지 여부를 결정할 수 있다. 터치 소스가, 이전의 출력 리포트가, 있는 경우, 완료되었다고 결정하면, 블록(1008)에서 터치 소스는 다음 출력 리포트를 기입하고, 출력 리포트 판독 요청을 클리어할 수 있다. 예를 들어, 터치 소스(102)는 출력 리포트를 OUTPUT_REPORT DPCD 영역에서의 그의 대응하는 위치에 기입하고, OUTPUT_REPORT_READ 비트를 클리어하고, 인터럽트 기반 액세스의 경우에, TOUCH_INTERRUPT 비트를 클리어할 수 있다. 블록(1010)에서, 터치 소스는 세트 출력 리포트 이벤트를 발행할 수 있다. 예를 들어, 터치 소스(102)는 CONFIGURE_TOUCH DPCD 레지스터에서 SET_OUTPUT_REPORT 비트를 세팅할 수 있다.
프로세스(1000)는 블록(1012)에서 계속되며, 여기서 터치 싱크는 출력 리포트를 판독하고, 출력 리포트 판독 요청을 세팅할 수 있다. 예를 들어, 터치 싱크(104)가 (예를 들면, 터치 싱크 펌웨어를 통해), SET_OUTPUT_REPORT 비트가 1의 값을 갖는 것으로 검출할 때 (그리고, 인터럽트 기반 액세스의 경우에, TOUCH_INTERRUPT가 클리어될 때), 터치 싱크(104)는 OUTPUT_REPORT DPCD 영역으로부터 출력 리포트를 판독하고, OUTPUT_REPORT_READ 비트를 세팅하고, 인터럽트 기반 액세스의 경우에, TOUCH_INTERRUPT 비트를 세팅하고, SET_OUTPUT_REPORT 비트를 클리어할 수 있다. 다양한 구현들에서, OUTPUT_REPORT_SET 비트가 터치 싱크에서의 인터럽트를 트리거하거나, 또는 터치 싱크 펌웨어가 이러한 비트를 때때로 폴링할 수 있다.
다양한 구현들에서, 터치 소스는 출력 리포트 통신에 대해 도 10에 도시된 것과 유사한 방식으로 특징 리포트 통신을 위해 터치 싱크를 구성할 수 있으며, 단지 예외적인 것은, 터치 소스가 CONFIGURE_TOUCH DPCD 레지스터에서 SET_OUTPUT_REPORT 비트보다는 SET_FEATURE_REPORT 비트를 세팅 (그리고, 터치 싱크가 클리어) 할 수 있고, 판독 및 기입 레이트들이 OUTPUT_REPORT_READ 비트보다는 FEATURE_REPORT_READ 비트를 이용하여 제어될 수 있으며, 특징 리포트는 오프셋 0에서 REPORT_DATA DPCD 영역에서 가용하게 만들어 질 수 있고, 특징 리포트가 세팅되는 리포트 ID가 TOUCH_PARAMETERS[0] DPCD 레지스터에서 통신될 수 있다는 것이다. 다양한 구현들에서, TOUCH_PARAMETERS[0] DPCD 레지스터가 GET_FEATURE_REPORT 코맨드에 의해 이용될 수도 있기 때문에, 터치 소스는 임의의 이전의 코맨드들이 전술한 표시들(indications)을 이용하여 완료되는 것을 보장할 필요가 있다.
도 12는 본 개시내용의 다양한 구현들에 따른 예시적인 프로세스(1200)의 흐름도를 도시한다. 프로세스(1200)는 도 12의 블록들(1202, 1204, 1206, 1208, 1210) 중 하나 이상에 의해 예시된 바와 같은 하나 이상의 동작들, 기능들 또는 액션들을 포함할 수 있다. 비제한적인 예로서, 프로세스(1200)는 전술한 바와 같은 예시적인 시스템(100) 및 예시적인 프로세스들(600, 800, 1000)을 참조하여 기술될 것이다.
프로세스(1200)는 블록(1202)에서 시작될 수 있으며, 여기서 HID 싱크 디바이스는, 보조 (AUX) 채널을 통해, 인터페이스 데이터를 제공하도록 구성될 수 있으며, 여기서 HID 싱크 디바이스는 인터페이스 데이터를 생성하기 위한 데이터 모듈을 포함한다. 다양한 구현들에서, 시스템(100)을 참조하면, 블록(1202)은 터치 소스(102)가, 터치 싱크(104)로 하여금 (F)AUX 채널(118)을 통해 멀티 터치 데이터의 형태로 인터페이스 데이터를 제공하게 구성하는 것을 포함할 수 있다. 예를 들어, 터치 소스(102)는 프로세스(600)의 블록(602)에서 전술한 것과 유사한 방식으로 블록(1202)을 착수할 수 있다.
프로세스(1200)는 블록(1204)에서 시작될 수 있으며, 여기서 데이터 모듈은 AUX 채널을 통해 인에이블될 수 있다. 다양한 구현들에서, 블록(1204)은 터치 소스(102)가 (F)AUX 채널(118)을 통해 터치 싱크(104)의 데이터 모듈(124)을 인에이블링시키는 것을 포함할 수 있다. 예를 들어, 터치 소스(102)는 프로세스(600)의 블록(604)에서 전술한 것과 유사한 방식으로 블록(1204)을 착수할 수 있다.
블록(1206)에서, 인터페이스 데이터가 AUX 채널을 통해 수신될 수 있다. 다양한 구현들에서, 블록(1206)은 터치 소스(102)가 (F)AUX 채널(118)을 통해 터치 싱크(104)로부터 멀티 터치 데이터를 수신하는 것을 포함할 수 있다. 예를 들어, 터치 소스(102)는 프로세스(600)의 블록들(606-612) 또는 프로세스(800)의 블록들(806-812)에서 전술한 것과 유사한 방식으로 블록(1206)을 착수할 수 있다.
프로세스(1200)는 그 다음 블록들(1208, 1210)에서 마무리될 수 있으며, 여기서 인터페이스 데이터에 응답하여 출력 데이터가 생성될 수 있고(블록 1208), 출력 데이터는 AUX 채널을 통해 HID 싱크 디바이스에 제공될 수 있다(블록 1210). 다양한 구현들에서, 블록들(1208, 1210)은 터치 소스(102)가 블록(1206)에서 수신된 멀티 터치 데이터를 이용하여 출력 데이터를 생성하고, 그 다음 출력 데이터를 (F)AUX 채널(118)을 통해 터치 싱크(104)에 제공하는 것을 포함할 수 있다. 예를 들어, 터치 소스(102)는 프로세스(1000)의 블록들(1006-1012)에서 전술한 것과 유사한 방식으로 블록(1208)을 착수할 수 있다.
리포트 프레쉬니스( Report Freshness )
본 개시내용에 따르면, 특징 리포트들 및/또는 출력 리포트들에 대한 터치 소스와 터치 싱크 디바이스들 사이의 상호작용은 리포트 가용성 플래그들을 이용하여 두 디바이스들에서 조절될 수 있다. 입력 리포트들은 구성된 아이들 레이트에서 생성될 수 있다. 터치 소스의 판독 레이트가, 터치 싱크가 입력 리포트들을 생성하는 레이트보다 느린 경우, 입력 리포트들은 이전에 기술된 바와 같은 순서로 큐잉되고, 터치 소스에 가용하게 만들어질 수 있다. 몇몇 경우들에 있어서, 터치 싱크의 버퍼가 오버플로우될 수 있다. 이것이 발생된다면, 터치 싱크는, 예를 들어, TOUCH_STATUS 레지스터에서 BUFFER_OVERFLOWED 비트를 세팅하고, IRQ_HPD를 어서트할 수 있다. 그에 응답하여, 터치 소스는, 예를 들면, 터치 싱크에서의 아이들 레이트를 낮추는 것을 포함하는 이러한 표시에 기초하여 특정 액션을 구현할 수 있다.
다양한 구현들에서, 터치 싱크들은 (리포트 서술자에서 기술된 바와 같은) 적어도 4 최대 크기 입력 리포트들의 큐 깊이를 제공하도록 요구받을 수 있다. 더욱이, 다양한 구현들에서, 터치 소스는 처리 효율성을 개선하기 위해 본 명세서에서 기술된 버퍼링 메카니즘들의 이용을 선택적으로 선택할 수 있다. 예를 들어, 다양한 구현들에서, 싱크 디바이스는 본 명세서에서 기술된 버퍼링 및 인터럽트 메카니즘들을 이용하여 가용한 데이터를 가질 수 있으며, 소스 디바이스에 의한 처리를 위해 준비가 될 수 있지만, 소스 디바이스는 예를 들면, 데이터를 배치 처리함으로써 보다 느린 레이트에서 데이터를 선택적으로 처리할 수 있다. 예컨대, 터치 싱크는 50Hz의 레이트에서 터치 데이터를 선택할 수 있는 반면, 터치 소스는 25Hz의 레이트에서 2 세트 배치들에서, 또는 12.5Hz의 레이트에서 4 세트 배치들에서, 등등으로 터치 데이터를 배치 처리할 수 있다.
사이드밴드 메시지들
터치 소스와 터치 싱크 사이의 경로에 있는 도 2의 브랜치 디바이스(202)와 같은 브랜치 디바이스들은 DP 1.2 표준에 따라 구성되어야 한다. 도 2의 시스템(200)과 같은 시스템들에서, 터치 소스(102)는 REMOTE_DPCD_READ 및 REMOTE_DPCD_WRITE 사이드밴드 메시지들을 이용하여 터치 싱크(104)에서의 DPCD 레지스터들에 액세스할 수 있다. 더욱이, 터치 싱크(104)는 SINK_EVENT_NOTIFY를 이용하여 터치 인터럽트들을 나타낼 수 있으며, 이것은 메시지에서의 파라미터로서 Sink_Event를 갖는 업워드-고잉(upward-going) 방송 메시지 트랜잭션일 수 있고, Sink_Event의 Bit 7로서 TOUCH_INTERRUPT를 이용한다.
DPCD 어드레스 공간에 대한 변경들
본 개시내용에 따르면, DPCD 어드레스 공간에 대한 다양한 변경들이 표 3에 개시된 바와 같이 구현될 수 있다.
Figure pat00002
Figure pat00003
Figure pat00004

예시적인 DP 터치 구현
본 개시내용에 따르면, "멀티 입력" 모드 동작을 지원하는 HID 디바이스(예를 들면, 터치 소스 또는 터치 싱크 디바이스)는 2개의 리포트들, 즉, 디바이스 구성 특징 리포트 및 입력 리포트를 정의하는 터치 인터페이스를 구현할 수 있다. 다양한 구현들에서, 특징 리포트는 디지타이저가 동작하는 모드(Digitizer:Device Mode) 및 인터페이스에 의해 지원되는 동시 컨택들/터치들의 최대 수(Digitizer:Contact Count Maximum)를 식별할 수 있다. 다양한 구현들에서, 소프트웨어는 디바이스가 발견될 때 특징 리포트를 판독할 수 있다. 다양한 구현들에서, 터치 리포트는 Digitizer:Contact Count Maximum 필드 및 컨택 정보 필드들의 어레이를 포함할 수 있으며, 여기서 특징 리포트에서의 Digitizer:Contact Count Maximum 필드는 컨택 정보 어레이의 크기를 식별한다. Digitizer:Contact Count 필드는 현재 유효한 컨택 정보 어레이에서의 엔트리들의 수를 식별할 수 있다(예를 들어, 단지 4개의 핑거들이 검출된다면, Contact Count = 4이고, 컨택 정보 어레이에서의 처음 4개의 엔트리들 (0-3)이 유효하다).
다양한 구현들에서, HID 서술자는 9 바이트 크기일 수 있으며(USBHIDDescriptor.bLength = 9), HID_CLASS_DESCRIPTORS DPCD 레지스터들에서 오프셋 0에서 시작될 수 있다. 예를 들어, HID 서술자는 다음과 같이 포맷팅될 수 있다.
Figure pat00005
다양한 구현들에서, 리포트 서술자는 342 바이트 크기일 수 있으며(USBHIDDescriptor.cd[0].wDescriptorLength = 0x156), HID_DESCRIPTOR 영역에서 오프셋 10(USBHIDDescriptor.bLength + 1)에서 시작될 수 있다. 다른 HID 클래스 서술자가 HID 서술자에서 정의되었다면, 그것은 리포트 서술자의 끝(즉, 오프셋 352, 또는 10 + 342)에서 시작될 것이다. 가령, 리포트 서술자는 다음과 같이 포맷팅될 수 있다.
Figure pat00006
Figure pat00007
Figure pat00008
Figure pat00009
Figure pat00010
Figure pat00011
Figure pat00012
Figure pat00013
리포트 데이터 레이아웃
도 13은 전술한 리포트 서술자에 의해 정의된 바와 같은 REPORT_DATA 영역의 레이아웃(1300)을 도시한다. 다양한 구현들에서, 특징 리포트는 입력 리포트 이전에 할당될 수 있다. 도 13에 도시된 바와 같이, 레이아웃(1300)은 2개의 필드, 즉, 디바이스 모드(Device Mode) 및 컨택 카운트 최대(Contact Count Maximum)를 정의하는 단일의 바이트를 갖는 특징 리포트(1302)를 포함한다. 터치 입력 리포트(1304)는 특징 리포트 및 입력 리포트 크기 필드들 바로 뒤를 따른다. 입력 리포트는 31 바이트 크기일 수 있으며, 10개의 3 바이트 컨택 엔트리들의 어레이가 뒤따르는 1 바이트 컨택 카운트 필드를 포함할 수 있다. 각각의 컨택 엔트리는 12-비트 X 및 12-비트 Y 필드에 의해 뒤따르는 8-비트 컨택 ID로 구성될 수 있다. 컨택 카운트는 얼마나 많은 컨택 엔트리들이 현재 유효한지를 식별한다. 예를 들어, 컨택 카운트 = 4 라면, 컨택 엔트리들 0-3이 유효하다. 리포트 서술자는 레이아웃(1300)에 도시된 바와 같이, 입력 리포트(1304) 이전에 특징 리포트(1302)를 정의할 수 있지만, 리포트들은 리포트 서술자에서 반대의 순서로 정의될 수 있으며, 특징 리포트(1302)가 처음에 나타나면서 REPORT_DATA 영역에 제공될 수 있다.
도 6, 8, 10, 12에 예시된 바와 같은 예시적인 프로세스들(600, 800, 1000, 1200)의 구현은 예시된 순서로 도시된 모든 블록들을 착수할 수 있지만, 본 개시내용은 이것으로 제한되지 않으며, 다양한 예들에서, 프로세스들(600, 800, 1000, 1200)의 구현은 도시된 블록들의 서브세트만을 착수하는 것 및/또는 예시된 것과는 다른 순서로 착수하는 것을 포함할 수 있다.
또한, 6, 8, 10 및 12의 임의의 하나 이상의 블록들이, 하나 이상의 컴퓨터 프로그램 제품들에 의해 제공된 인스트럭션들에 응답하여 착수될 수 있다. 그러한 프로그램 제품들은, 예를 들면, 프로세서에 의해 실행될 때, 본 명세서에서 기술된 기능을 제공하는 인스트럭션들을 제공하는 신호 포함 매체를 포함할 수 있다. 컴퓨터 프로그램 제품들은 임의의 형태의 컴퓨터 판독가능 매체로 제공될 수 있다. 따라서, 예를 들어, 하나 이상의 프로세서 코어(들)을 포함하는 프로세서가, 컴퓨터 판독가능 매체에 의해 프로세서에 전달된 인스트럭션들에 응답하여 도 6, 8, 10, 12에 도시된 블록들의 하나 이상을 착수할 수 있다.
본 명세서에서 기술된 임의의 구현에서 이용된 바와 같이, 용어 "모듈" 및/또는 "로직"은 본 명세서에서 기술된 기능을 제공하기 위해 구성된 소프트웨어, 펌웨어 및/또는 하드웨어의 임의의 조합을 지칭한다. 소프트웨어는 소프트웨어 패키지, 코드 및/또는 인스트럭션 세트 또는 인스트럭션들로서 구현될 수 있으며, 본 명세서에서 기술된 임의의 구현에서 이용된 "하드웨어"는, 예를 들면, 개별적으로 또는 임의의 조합으로, 하드와이어드 회로, 프로그래밍가능 회로, 상태 머신 회로, 및/또는 프로그래밍가능 회로에 의해 실행되는 인스트럭션들을 저장하는 펌웨어를 포함할 수 있다. 모듈들 및/또는 로직은, 집합적으로 또는 개별적으로, 보다 큰 시스템, 예를 들면, 집적 회로(IC), Soc(system-on-chip) 등의 부분을 형성하는 회로로서 구현될 수 있다.
도 14는 본 개시내용에 따른 예시적인 시스템(1400)을 도시한다. 다양한 구현들에서, 시스템(1400)은, 시스템(1400)이 이러한 문맥으로 제한되는 것은 아니지만, 매체 시스템일 수 있다. 예를 들어, 시스템(1400)은 개인용 컴퓨터(PC), 랩탑 컴퓨터, 울트라-랩탑 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, PDA(personal digital assistant), 셀룰라 전화, 결합 셀룰라 전화/PDA, 텔레비젼, 스마트 디바이스(예를 들면, 스마트 폰, 스마트 태블릿 또는 스마트 텔레비젼), MID(mobile internet device), 메시징 디바이스, 데이터 통신 디바이스 등으로 통합될 수 있다.
다양한 구현들에서, 시스템(1400)은 디스플레이(1420)에 연결된 플랫폼(1402)을 포함한다. 플랫폼(1402)은 콘텐츠 서비스 디바이스(들)(1430) 또는 콘텐츠 전달 디바이스(들)(1440) 또는 다른 유사한 콘텐츠 소스들과 같은 콘텐츠 디바이스로부터 콘텐츠를 수신할 수 있다. 하나 이상의 네비게이션 특징들을 포함하는 네비게이션 제어기(1450)가, 예를 들면, 플랫폼(1402) 및/또는 디스플레이(1420)와 상호 작용하는데 이용될 수 있다. 이들 구성요소들 각각은 이하에 보다 상세히 기술된다.
다양한 구현들에서, 플랫폼(1402)은 칩셋(1405), 프로세서(1410), 메모리(1412), 스토리지(1414), 그래픽 서브시스템(1415), 애플리케이션들(1416) 및/또는 라디오(1418)의 임의의 조합을 포함할 수 있다. 칩셋(1405)은 프로세서(1410), 메모리(1412), 스토리지(1414), 그래픽 서브시스템(1415), 애플리케이션들(1416) 및/또는 라디오(1418) 사이의 상호 통신을 제공할 수 있다. 예를 들어, 칩셋(1405)은 스토리지(1414)와의 상호 통신을 제공할 수 있는 스토리지 어댑터(도시되지 않음)를 포함할 수 있다.
프로세서(1410)는 CISC(Complex Instruction Set Computer) 또는 RISC(Reduced Instruction Set Computer) 프로세서들, x86 인스트럭션 세트 호환 프로세서들, 멀티-코어, 또는 임의의 다른 마이크로프로세서 또는 CPU(central processing unit)로서 구현될 수 있다. 다양한 구현들에서, 프로세서(1410)는 듀얼-코어 프로세서(들), 듀얼-코어 모바일 프로세서(들) 등일 수 있다.
메모리(1412)는, 제한적인 것은 아니지만, RAM(Random Access Memory), DRAM(Dynamic Random Access Memory), 또는 SRAM(Static RAM)과 같은 휘발성 메모리 디바이스로서 구현될 수 있다.
스토리지(1414)는, 제한적인 것은 아니지만, 자기 디스크 드라이브, 광학 디스크 드라이브, 테이프 드라이브, 내부 저장 디바이스, 부착형 저장 디바이스, 플래시 메모리, 배터리 백업 SDRAM(synchronous DRAM), 및/또는 네트워크 액세스가능 저장 디바이스와 같은 비휘발성 저장 디바이스로서 구현될 수 있다. 다양한 구현들에서, 스토리지(1414)는, 예를 들면, 다수의 하드 드라이브들이 포함될 때, 가치 있는 디지털 매체에 대한 저장 성능 향상 보호를 증가시키기 위한 기법을 포함할 수 있다.
그래픽 서브시스템(1415)은 디스플레이를 위한 스틸(still) 또는 비디오와 같은 이미지들의 처리를 수행할 수 있다. 그래픽 서브시스템(1415)은, 예를 들면, GPU(graphics processing unit) 또는 VPU(visual processing unit)일 수 있다. 아날로그 또는 디지털 인터페이스가 그래픽 서브시스템(1415)과 디스플레이(1420)를 통신가능하게 연결하는데 이용될 수 있다. 예를 들어, 인터페이스는 고선명 멀티미디어 인터페이스(High-Definition Multimedia Interface), 디스플레이포트(DisplayPort), 무선 HDMI, 및/또는 무선 HD 호환 기술들 중 임의의 것일 수 있다. 그래픽 서브시스템(1415)은 프로세서(1410) 또는 칩셋(1405) 내로 통합될 수 있다. 몇몇 구현들에서, 그래픽 서브시스템(1415)은 칩셋(1405)에 통신가능하게 연결된 독립형 카드일 수 있다.
본 명세서에 기술된 그래픽 및/또는 비디오 처리 기술들은 다양한 하드웨어 아키텍쳐로 구현될 수 있다. 예를 들어, 그래픽 및/또는 비디오 기능은 칩셋 내에 통합될 수 있다. 대안적으로, 개별적인 그래픽 및/또는 비디오 프로세서가 이용될 수 있다. 다른 구현으로서, 그래픽 및/또는 비디오 기능들은, 멀티-코어 프로세서를 포함하는 범용 프로세서에 의해 제공될 수 있다. 다른 실시예들에서, 기능들은 소비자 전자 장치에서 구현될 수 있다.
라디오(1418)는 다양한 적절한 무선 통신 기법들을 이용하여 신호들을 송신 및 수신할 수 있는 하나 이상의 라디오들을 포함할 수 있다. 그러한 기법들은 하나 이상의 무선 네트워크들을 통한 통신들을 포함할 수 있다. 예시적인 무선 네트워크들은 (제한적인 것은 아니지만) WLAN(wireless local area network), WPAN(wireless personal area network), WMAN(wireless metropolitan area network), 셀룰라 네트워크 및 위성 네트워크를 포함한다. 그러한 네트워크들을 통한 통신시에, 라디오(1418)는 임의의 버젼의 하나 이상의 적용가능한 표준들에 따라 동작할 수 있다.
다양한 구현들에서, 디스플레이(1420)는 임의의 텔레비젼 타입 모니터 또는 디스플레이를 포함할 수 있다. 디스플레이(1420)는, 예를 들면, 컴퓨터 디스플레이 스크린, 터치 스크린 디스플레이, 비디오 모니터, 텔레비젼형 디바이스, 및/또는 텔레비젼을 포함할 수 있다. 디스플레이(1420)는 디지털 및/또는 아날로그일 수 있다. 다양한 구현들에서, 디스플레이(1420)는 홀로그래픽 디스플레이일 수 있다. 또한, 디스플레이(1420)는 가시적인 투영을 수신할 수 있는 투명 표면일 수 있다. 그러한 투영들은 다양한 형태의 정보, 이미지 및/또는 객체를 전달할 수 있다. 예를 들어, 그러한 투영들은 MAR(mobile augmented reality) 애플리케이션을 위한 가시적인 오버레이일 수 있다. 하나 이상의 소프트웨어 애플리케이션들(1416)의 제어하에, 플랫폼(1402)은 디스플레이(1420) 상에 사용자 인터페이스(1422)를 디스플레이할 수 있다.
다양한 구현들에서, 콘텐츠 서비스 디바이스(들)(1430)은 임의의 국내, 국제 및/또는 독립 서비스에 의해 호스팅될 수 있으며, 따라서, 예를 들면, 인터넷을 통해 플랫폼(1402)에 액세스가능하다. 콘텐츠 서비스 디바이스(들)(1430)은 플랫폼(1402) 및/또는 디스플레이(1420)에 연결될 수 있다. 플랫폼(1402) 및/또는 콘텐츠 서비스 디바이스(들)(1430)은 네트워크(1460)에 연결되어, 네트워크(1460)로 및 네트워크(1460)로부터 매체 정보를 통신(예를 들면, 송신 및/또는 수신)할 수 있다. 콘텐츠 전달 디바이스(들)(1440)이 또한 플랫폼(1402) 및/또는 디스플레이(1420)에 연결될 수 있다.
다양한 구현들에서, 콘텐츠 서비스 디바이스(들)(1430)은 케이블 텔레비젼 박스, 개인용 컴퓨터, 네트워크, 전화기, 디지털 정보 및/또는 콘텐츠를 전달할 수 있는 인터넷 인에이블드 디바이스들 또는 어플라이언스, 및 콘텐츠 제공자들과 플랫폼(1402) 사이에서, 네트워크(1460)를 통해서 또는 직접적으로, 단방향으로 또는 양방향으로 콘텐츠를 통신할 수 있는 임의의 다른 유사한 디바이스를 포함할 수 있다. 콘텐츠는 시스템(1400)에서의 구성요소들 및 콘텐츠 제공자 중 임의의 하나로/로부터 네트워크(1460)를 통해 단방향으로 및/또는 양방향으로 통신될 수 있음을 이해할 것이다. 콘텐츠의 예는, 예를 들면, 비디오, 음악, 의료 및 게이밍 정보 등을 포함하는 임의의 매체 정보를 포함할 수 있다.
콘텐츠 서비스 디바이스(들)(1430)은 매체 정보, 디지털 정보, 및/또는 다른 콘텐츠를 포함하는 케이블 텔레비젼 프로그래밍과 같은 콘텐츠를 수신할 수 있다. 콘텐츠 제공자들의 예는, 임의의 케이블 또는 위성 텔레비젼 또는 라디오 또는 인터넷 콘텐츠 제공자들을 포함할 수 있다. 제공된 예들은 본 개시내용에 따른 구현들을, 어떠한 방식으로든 제한하는 것을 의미하지는 않는다.
다양한 구현들에서, 플랫폼(1402)은 하나 이상의 네비게이션 특징들을 갖는 네비게이션 제어기(1450)로부터 제어 신호들을 수신할 수 있다. 제어기(1450)의 네비게이션 특징들은, 예를 들면, 사용자 인터페이스(1422)와 상호 작용하는데 이용될 수 있다. 실시예들에서, 네비게이션 제어기(1450)는 사용자가 공간적인 (예를 들면, 연속적 및 다차원의) 데이터를 컴퓨터 내로 입력할 수 있도록 하는 컴퓨터 하드웨어 구성요소(구체적으로, 인간 인터페이스 디바이스)일 수 있는 포인팅 디바이스일 수 있다. GUI와 같은 많은 시스템들, 및 텔레비젼 및 모니터는 물리적인 제스쳐를 이용하여 사용자가 컴퓨터 또는 텔레비젼에 대한 데이터를 제어 및 제공할 수 있도록 한다.
제어기(1450)의 네비게이션 특징들의 이동들은, 디스플레이 상에 디스플레이된 포인터, 커서, 포커스 링(focuc ring), 또는 다른 가시적 표시자들의 이동들에 의해 디스플레이(예를 들면, 디스플레이(1420)) 상에 복제될 수 있다. 예를 들어, 소프트웨어 애플리케이션들(1416)의 제어하에서, 네비게이션 제어기(1450) 상에 위치된 네비게이션 특징들은, 예를 들면, 사용자 인터페이스(1422) 상에 디스플레이된 가상 네비게이션 특징들로 맵핑될 수 있다. 실시예들에서, 제어기(1450)는 분리된 구성요소가 아닐 수 있으며, 플랫폼(1402) 및/또는 디스플레이(1420) 내로 통합될 수 있다. 그러나, 본 개시내용은 본 명세서에서 도시되거나 기술된 요소들 또는 문맥으로 제한되지 않는다.
다양한 구현들에서, 드라이버들(도시되지 않음)이 사용자로 하여금, 예를 들면, 인에이블링될 때, 초기 부트업(boot-up) 이후에 버튼의 터치로, 텔레비젼과 같은 플랫폼(1402)을 즉각적으로 턴 온 및 오프할 수 있도록 하는 기술을 포함할 수 있다. 플랫폼 로직은 플랫폼(1402)이, 플랫폼이 턴 "오프"된 경우에도, 콘텐츠를 매체 어댑터들 또는 다른 콘텐츠 서비스 디바이스(들)(1430) 또는 콘텐츠 전달 디바이스(들)(1440)에게 스트리밍하도록 할 수 있다. 또한, 칩셋(1405)은, 예를 들면, 5.1 서라운드 사운드 오디오 및/또는 고선명 7.1 서라운드 사운드 오디오에 대한 하드웨어 및/또는 소프트웨어 지원을 포함할 수 있다. 드라이버들은 통합된 그래픽 플랫폼들에 대한 그래픽 드라이버를 포함할 수 있다. 실시예들에서, 그래픽 드라이버는 PCI(peripheral component interconnect) Express 그래픽 카드를 포함할 수 있다.
다양한 구현들에서, 시스템(1400)에 도시된 구성요소들 중 임의의 하나 이상이 통합될 수 있다. 예를 들어, 플랫폼(1402)과 콘텐츠 서비스 디바이스(들)(1430)이 통합되거나, 또는 플랫폼(1402)과 콘텐츠 전달 디바이스(들)(1440)이 통합되거나, 또는 플랫폼(1402), 콘텐츠 서비스 디바이스(들)(1430) 및 콘텐츠 전달 디바이스(들)이 통합될 수 있다. 다양한 구현들에서, 플랫폼(1402)과 디스플레이(1420)는 통합된 유닛일 수 있다. 예를 들어, 디스플레이(1420)와 콘텐츠 서비스 디바이스(들)(1430)이 통합되거나, 또는 디스플레이(1420)와 콘텐츠 전달 디바이스(들)(1440)이 통합될 수 있다. 이러한 예들은, 본 개시내용을 제한하는 것을 의미하지 않는다.
다양한 구현들에서, 시스템(1400)은 무선 시스템, 유선 시스템 또는 이들의 조합으로서 구현될 수 있다. 무선 시스템으로서 구현될 때, 시스템(1400)은 하나 이상의 안테나, 송신기들, 수신기들, 송수신기들, 증폭기들, 필터들, 제어 로직 등과 같은, 무선 공유된 매체를 통해 통신하기에 적합한 구성요소들 및 인터페이스들을 포함할 수 있다. 무선 공유된 매체의 예는 RF 스펙트럼 등과 같은 무선 스펙트럼의 부분들을 포함할 수 있다. 유선 시스템으로서 구현될 때, 시스템(1400)은 입/출력(I/O) 어댑터들, I/O 어댑터를 대응하는 유선 통신 매체와 접속시키기 위한 물리적 접속기들, 네트워크 인터페이스 카드(NIC), 디스크 제어기, 비디오 제어기, 오디오 제어기 등과 같은, 유선 통신 매체를 통해 통신하기에 적합한 구성요소들 및 인터페이스들을 포함할 수 있다. 유선 통신 매체의 예는, 와이어, 케이블, 금속 리드들, PCB(printed circuit board), 백플레인, 스위치 패브릭(switch fabric), 반도체 재료, 트위스트쌍 와이어, 동축 케이블, 광섬유 등을 포함할 수 있다.
플랫폼(1402)은 정보를 통신하기 위해 하나 이상의 논리적 또는 물리적 채널들을 형성할 수 있다. 정보는 매체 정보 및 제어 정보를 포함할 수 있다. 매체 정보는 사용자에 대한 콘텐츠를 나타내는 임의의 데이터를 지칭할 수 있다. 콘텐츠의 예는, 예를 들면, 음성 대화, 화상 회의, 스트리밍 비디오, 전자 메일(email) 메시지, 음성 메일 메시지, 영숫자 심볼들, 그래픽, 이미지, 비디오, 텍스트 등으로부터의 데이터를 포함할 수 있다. 음성 대화로부터의 데이터는, 예를 들면, 스피치 정보, 침묵 기간들, 배경 잡음, 컴포트 잡음(comfort noise), 톤(tone) 등일 수 있다. 제어 정보는 자동화된 시스템에 대한 코맨드들, 인스트럭션들 또는 제어 워드들을 나타내는 임의의 데이터를 지칭할 수 있다. 예를 들어, 제어 정보는 시스템을 통해 매체 정보를 라우팅하거나, 또는 노드에게 매체 정보를 미리결정된 방식으로 처리하도록 지시하는데 이용될 수 있다. 그러나, 실시예들은 도 14에 도시되거나 기술된 요소들 또는 문맥으로 제한되지 않는다.
전술한 바와 같이, 시스템(1400)은 가변적인 물리적 스타일들 또는 폼 팩터들(form factor)로 구현될 수 있다. 도 15는 시스템(1400)이 구현될 수 있는 작은 폼 팩터 디바이스(1500)의 구현들을 도시한다. 실시예들에서, 예를 들어, 디바이스(1500)는 무선 능력을 갖는 모바일 컴퓨팅 디바이스로서 구현될 수 있다. 모바일 컴퓨팅 디바이스는, 예를 들면, 하나 이상의 배터리와 같은 모바일 전력 소스 또는 공급기 및 처리 시스템을 갖는 임의의 디바이스를 지칭할 수 있다.
전술한 바와 같이, 모바일 컴퓨팅 디바이스의 예는 개인용 컴퓨터(PC), 랩탑 컴퓨터, 울트라-랩탑 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, PDA, 셀룰라 전화, 결합 셀룰라 전화/PDA, 텔레비젼, 스마트 디바이스(예를 들면, 스마트 폰, 스마트 태블릿 또는 스마트 텔레비젼), MID, 메시징 디바이스, 데이터 통신 디바이스 등을 포함할 수 있다.
또한, 모바일 컴퓨팅 디바이스의 예는, 손목(wrist) 컴퓨터, 핑거(finger) 컴퓨터, 링(ring) 컴퓨터, 아이글래스(eyeglass) 컴퓨터, 벨트-클립(belt-clip) 컴퓨터, 암-밴드(arm-band) 컴퓨터, 신발(shoe) 컴퓨터들, 의류(clothing) 컴퓨터들, 및 다른 웨어러블 컴퓨터들과 같은, 사람이 착용하도록 배열되는 컴퓨터들을 포함할 수 있다. 다양한 구현들에서, 예를 들어, 모바일 컴퓨팅 디바이스는 컴퓨터 애플리케이션들 뿐만 아니라, 음성 통신 및/또는 데이터 통신을 실행할 수 있는 스마트 폰으로서 구현될 수 있다. 몇몇 실시예들이 예로서 스마트 폰으로 구현된 모바일 컴퓨팅 디바이스와 함께 기술될 수 있지만, 다른 무선 모바일 컴퓨팅 디바이스를 마찬가지로 이용하여 다른 실시예들이 구현될 수 있음을 이해할 수 있다. 실시예들은 이러한 문맥으로 제한되지 않는다.
도 15에 도시된 바와 같이, 디바이스(1500)는 하우징(1502), 디스플레이(1504), 입/출력(I/O) 디바이스(1506) 및 안테나(1508)를 포함할 수 있다. 또한, 디바이스(1500)는 네비게이션 특징들(1512)을 포함할 수 있다. 디스플레이(1504)는 모바일 컴퓨팅 디바이스에 적합한 정보를 디스플레이하기 위한 임의의 적절한 디스플레이 유닛을 포함할 수 있다. I/O 디바이스(1506)는 정보를 모바일 컴퓨팅 디바이스에 입력하기 위한 임의의 적절한 I/O 디바이스를 포함할 수 있다. I/O 디바이스(1506)에 대한 예는 영숫자 키보드, 숫자 키보드, 터치 패드, 입력 키, 버튼, 스위치, 락커 스위치, 마이크로폰, 스피커, 음성 인식 장치 및 소프트웨어 등을 포함할 수 있다. 또한, 정보가 마이크로폰(도시되지 않음)에 의해 디바이스(1500) 내로 입력될 수 있다. 그러한 정보는 음성 인식 장치(도시되지 않음)에 의해 디지털화될 수 있다. 실시예들은 이러한 문맥으로 한정되지 않는다.
다양한 실시예들이 하드웨어 요소들, 소프트웨어 요소들, 또는 이들의 조합을 이용하여 구현될 수 있다. 하드웨어 요소들의 예는, 프로세서들, 마이크로프로세서들, 회로들, 회로 요소들(예를 들면, 트랜지스터들, 저항기들, 캐패시터들, 인덕터들 등), 집적 회로들, ASIC(application specific integrated circuits), PLD(programmable logic devices), DSP(digital signal processors), FPGA(field programmable gate array), 로직 게이트들, 레지스터들, 반도체 디바이스, 칩들, 마이크로칩들, 칩 셋들 등을 포함할 수 있다. 소프트웨어의 예는 소프트웨어 구성요소들, 프로그램들, 애플리케이션들, 컴퓨터 프로그램들, 애플리케이션 프로그램들, 시스템 프로그램들, 머신 프로그램들, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈들, 루틴들, 서브루틴들, 기능들, 방법들, 절차들, 소프트웨어 인터페이스들, 애플리케이션 프로그램 인터페이스들(API), 인스트럭션 세트들, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트들, 컴퓨터 코드 세그먼트들, 워드들, 값들, 심볼들, 또는 이들의 임의의 조합을 포함할 수 있다. 실시예들이 하드웨어 요소들 및/또는 소프트웨어 요소들을 이용하여 구현되는지의 여부를 결정하는 것은, 원하는 연산 레이트, 전력 레벨들, 열 허용도(heat tolerances), 처리 사이클 버짓(processing cycle budget), 입력 데이터 레이트들, 출력 데이터 레이트들, 메모리 자원들, 데이터 버스 속도 및 다른 설계 또는 성능 제약들에 따라 변할 수 있다.
적어도 하나의 실시예의 하나 이상의 양상들이, 머신에 의해 판독될 때, 머신으로 하여금 본 명세서에서 기술된 기술들을 수행하도록 로직을 제조하는, 프로세서 내의 다양한 로직을 나타내는 머신 판독가능 매체 상에 저장된 대표적인 인스트럭션들에 의해 구현될 수 있다. "IP 코어들"로서 알려진 그러한 표현들은 유형의, 머신 판독가능 매체 상에 저장되고, 다양한 고객들 또는 제조 설비들에 공급되어, 로직 또는 프로세서를 실제로 만드는 제조 기계들 내로 로딩될 수 있다.
본 명세서에서 개시된 특정한 특징들은 다양한 구현들을 참조하여 설명되었지만, 그러한 설명은 제한적인 의미로 해석되지 않는다. 그러므로, 본 명세서에서 기술된 구현들 뿐만 아니라, 본 발명이 속하는 기술 분야의 당업자에게 명백한 다른 구현들의 수정들은, 본 개시내용의 사상 및 영역 내에 속하는 것으로 간주된다.

Claims (24)

  1. 휴먼 인터페이스 디바이스(Human Interface Device; HID) 소스 디바이스에서,
    보조 (auxiliary; AUX) 채널을 통해, HID 싱크 디바이스가 인터페이스 데이터를 제공하도록 구성하는 단계 - 상기 HID 싱크 디바이스는 상기 인터페이스 데이터를 생성하기 위한 데이터 모듈을 포함함 - 와,
    상기 AUX 채널을 통해 상기 데이터 모듈을 인에이블링시키는 단계와,
    상기 AUX 채널을 통해 상기 인터페이스 데이터를 수신하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 인터페이스 데이터는 멀티 터치 데이터를 포함하는
    방법.
  3. 제1항에 있어서,
    상기 AUX 채널은 고속 보조 (F)AUX 채널을 포함하는
    방법.
  4. 제1항에 있어서,
    상기 HID 싱크 디바이스가 인터페이스 데이터를 제공하도록 구성하는 단계는 데이터 액세스 메쏘드를 구성하는 것을 포함하는
    방법.
  5. 제1항에 있어서,
    상기 HID 싱크 디바이스가 인터페이스 데이터를 제공하도록 구성하는 단계 및 상기 데이터 모듈을 인에이블링시키는 단계는 단일의 기입 동작을 포함하는
    방법.
  6. 제1항에 있어서,
    상기 인터페이스 데이터를 수신하는 단계는,
    상기 HID 소스 디바이스에서,
    인터럽트 이유(interrupt reason)를 판독하고,
    상기 인터럽트 이유를 판독하는 것에 응답하여 상기 인터페이스 데이터를 판독하고,
    상기 인터럽트 이유를 클리어하는 것을 포함하는
    방법.
  7. 제1항에 있어서,
    상기 인터페이스 데이터를 수신하는 단계는,
    상기 HID 소스 디바이스에서,
    리포트를 요청하고,
    리포트 가용성 플래그를 폴링하고,
    상기 리포트 가용성 플래그를 검출하는 것에 응답하여 상기 인터페이스 데이터를 판독하고,
    상기 리포트 가용성 플래그를 클리어하는 것을 포함하는
    방법.
  8. 제1항에 있어서,
    상기 인터페이스 데이터를 수신하는 단계는 상기 HID 싱크 디바이스의 적어도 하나의 레지스터로부터 상기 인터페이스 데이터를 획득하는 것을 포함하는
    방법.
  9. 인스트럭션들이 저장된 컴퓨터 프로그램 제품을 포함하는 물품으로서,
    상기 인스트럭션들은, 실행될 때,
    HID 소스 디바이스에서,
    보조 (AUX) 채널을 통해, HID 싱크 디바이스가 인터페이스 데이터를 제공하도록 구성 - 상기 HID 싱크 디바이스는 상기 인터페이스 데이터를 생성하기 위한 데이터 모듈을 포함함 - 하고,
    상기 AUX 채널을 통해 상기 데이터 모듈을 인에이블링시키고,
    상기 AUX 채널을 통해 상기 인터페이스 데이터를 수신하도록 하는
    물품.
  10. 제9항에 있어서,
    상기 HID 소스 디바이스에서,
    상기 인터페이스 데이터에 응답하여 출력 데이터를 생성하고,
    상기 출력 데이터를 상기 HID 싱크 디바이스에 제공하는 것을 더 포함하는
    물품.
  11. 제9항에 있어서,
    상기 HID 싱크 디바이스가 인터페이스 데이터를 제공하도록 구성하는 것은 데이터 액세스 메쏘드를 구성하는 것을 포함하는
    물품.
  12. 제11항에 있어서,
    상기 데이터 액세스 메쏘드는 인터럽트 기반 데이터 액세스 메쏘드, 폴드 데이터 액세스 메쏘드, 또는 인터리브드 데이터 액세스 메쏘드 중 적어도 하나를 포함하는
    물품.
  13. 제9항에 있어서,
    상기 HID 싱크 디바이스가 인터페이스 데이터를 제공하도록 구성하는 것 및 상기 데이터 모듈을 인에이블링시키는 것은 단일의 기입 동작을 포함하는
    물품.
  14. 제9항에 있어서,
    상기 인터페이스 데이터를 수신하는 것은,
    상기 HID 소스 디바이스에서,
    인터럽트 이유를 판독하고,
    상기 인터럽트 이유를 판독하는 것에 응답하여 상기 인터페이스 데이터를 판독하고,
    상기 인터럽트 이유를 클리어하는 것을 포함하는
    물품.
  15. 제9항에 있어서,
    상기 인터페이스 데이터를 수신하는 것은,
    상기 HID 소스 디바이스에서,
    리포트를 요청하고,
    리포트 가용성 플래그를 폴링하고,
    상기 리포트 가용성 플래그를 검출하는 것에 응답하여 상기 인터페이스 데이터를 판독하고,
    상기 리포트 가용성 플래그를 클리어하는 것을 포함하는
    물품.
  16. 인터페이스 데이터를 캡쳐하기 위한 데이터 모듈을 포함하는 HID 싱크 디바이스와,
    인터럽트 또는 플래그 중 하나를 이용하여 보조 (AUX) 채널을 통해 상기 인터페이스 데이터를 제공하고 상기 인터페이스 데이터의 가용성을 시그널링하기 위한 상기 HID 싱크 디바이스에서의 로직을 포함하는
    장치.
  17. 제16항에 있어서,
    상기 HID 싱크 디바이스는 복수의 레지스터 영역들을 더 포함하는
    장치.
  18. 제17항에 있어서,
    상기 로직은 상기 복수의 레지스터 영역들 중 적어도 하나에 상기 인터페이스 데이터를 저장함으로써 상기 인터페이스 데이터를 제공하는
    장치.
  19. 제17항에 있어서,
    상기 로직은 상기 복수의 레지스터 영역들 중 적어도 하나에 비트를 세팅함으로써 상기 플래그를 이용하여 상기 인터페이스 데이터의 가용성을 시그널링하는
    장치.
  20. 인터페이스 데이터를 캡쳐하기 위한 데이터 모듈을 포함하는 HID 싱크 디바이스와,
    보조 (AUX) 채널에 의해 상기 HID 싱크 디바이스에 통신가능하게 연결된 HID 소스 디바이스를 포함하고,
    상기 HID 소스 디바이스는 상기 AUX 채널을 이용하여,
    상기 HID 싱크 디바이스가 상기 인터페이스 데이터를 제공하도록 구성하고,
    상기 데이터 모듈을 인에이블링시키고,
    상기 인터페이스 데이터를 수신하는
    시스템.
  21. 제20항에 있어서,
    상기 HID 소스 디바이스는 또한,
    상기 인터페이스 데이터에 응답하여 출력 데이터를 생성하고,
    상기 출력 데이터를 상기 AUX 채널을 통해 상기 HID 싱크 디바이스에 제공하는
    시스템.
  22. 제20항에 있어서,
    상기 HID 싱크 디바이스가 상기 인터페이스 데이터를 제공하도록 구성하기 위해, 상기 HID 소스 디바이스는, 인터럽트 기반 데이터 액세스 메쏘드, 폴드 데이터 액세스 메쏘드, 또는 인터리브드 데이터 액세스 메쏘드 중 적어도 하나를 포함하는 데이터 액세스 메쏘드를 구성하는
    시스템.
  23. 제22항에 있어서,
    상기 인터럽트 기반 데이터 액세스 메쏘드를 이용하여 상기 인터페이스 데이터를 수신하기 위해, 상기 HID 소스 디바이스는,
    인터럽트 이유를 판독하고,
    상기 인터럽트 이유를 판독하는 것에 응답하여 상기 인터페이스 데이터를 판독하고,
    상기 인터럽트 이유를 클리어하는
    시스템.
  24. 제22항에 있어서,
    상기 폴드 데이터 액세스 메쏘드를 이용하여 상기 인터페이스 데이터를 수신하기 위해, 상기 HID 소스 디바이스는,
    리포트를 요청하고,
    리포트 가용성 플래그를 폴링하고,
    상기 리포트 가용성 플래그를 검출하는 것에 응답하여 상기 인터페이스 데이터를 판독하고,
    상기 리포트 가용성 플래그를 클리어하는
    시스템.
KR1020157015204A 2011-10-26 2011-12-16 멀티 터치 인터페이스 방안 KR101786277B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161551712P 2011-10-26 2011-10-26
US61/551,712 2011-10-26
PCT/US2011/065447 WO2013062602A1 (en) 2011-10-26 2011-12-16 Multi-touch interface schemes

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020147011032A Division KR101590820B1 (ko) 2011-10-26 2011-12-16 멀티 터치 인터페이스 방안

Publications (2)

Publication Number Publication Date
KR20150070436A true KR20150070436A (ko) 2015-06-24
KR101786277B1 KR101786277B1 (ko) 2017-10-17

Family

ID=48168264

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020157015204A KR101786277B1 (ko) 2011-10-26 2011-12-16 멀티 터치 인터페이스 방안
KR1020147011032A KR101590820B1 (ko) 2011-10-26 2011-12-16 멀티 터치 인터페이스 방안

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020147011032A KR101590820B1 (ko) 2011-10-26 2011-12-16 멀티 터치 인터페이스 방안

Country Status (7)

Country Link
US (1) US9262000B2 (ko)
JP (1) JP2014534522A (ko)
KR (2) KR101786277B1 (ko)
CN (1) CN103890744B (ko)
DE (1) DE112011105779B4 (ko)
GB (1) GB2512214B (ko)
WO (1) WO2013062602A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101786277B1 (ko) 2011-10-26 2017-10-17 인텔 코포레이션 멀티 터치 인터페이스 방안
CN102662514B (zh) * 2012-03-30 2017-03-29 中兴通讯股份有限公司 一种控制触摸屏的方法和移动终端
TW201441826A (zh) * 2013-04-26 2014-11-01 Wistron Corp 資料傳輸方法、觸控資料處理方法以及電子裝置
US9417726B2 (en) * 2013-04-29 2016-08-16 Intel Corporation Supporting keyboard and mouse over embedded displayport without using a universal serial bus
US9665186B2 (en) 2014-03-19 2017-05-30 Toshiba Tec Kabushiki Kaisha Desktop information processing apparatus and control method for input device
KR20160098700A (ko) 2015-02-11 2016-08-19 삼성전자주식회사 멀티 터치 입력을 처리하기 위한 전자 장치 및 그 동작 방법
CN111913606A (zh) * 2015-04-20 2020-11-10 株式会社和冠 传感器控制器、主机处理器、通信方法和系统
KR102317897B1 (ko) 2015-06-04 2021-10-28 삼성디스플레이 주식회사 테스트 보드 및 그의 구동방법
CN109871190B (zh) * 2015-06-16 2022-05-31 广州视睿电子科技有限公司 一种无线传屏方法、扩展设备和无线传屏系统
WO2018003841A1 (ja) * 2016-06-28 2018-01-04 株式会社ワコム シリアル通信方法及びセンサコントローラ
JP6216909B1 (ja) * 2016-06-28 2017-10-18 株式会社ワコム シリアル通信方法及びセンサコントローラ
US11374623B2 (en) * 2020-05-27 2022-06-28 Qualcomm Incorporated Connected isochronous stream swapping

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63175612A (ja) 1986-12-26 1988-07-20 ベロルススキ−、チエフノロギチエスキ−、インスチツ−ト、イメ−ニ、エス、エム、キ−ロワ 懸濁物を液相と固体粒子に分離する方法および装置
JPH0310363A (ja) * 1989-06-08 1991-01-17 Nippon Steel Corp 並列計算機における待ち時間設定方法
US5329625A (en) 1992-04-15 1994-07-12 International Business Machines Corp. System to service processor interface for a tablet computer
JP2000259523A (ja) 1999-03-09 2000-09-22 Fuji Xerox Co Ltd データ転送装置、lan通信システム及びデータ転送方法
JP3606145B2 (ja) 1999-12-27 2005-01-05 セイコーエプソン株式会社 データ転送制御装置及び電子機器
CA2398798A1 (en) * 2001-08-28 2003-02-28 Research In Motion Limited System and method for providing tactility for an lcd touchscreen
US8407347B2 (en) * 2004-11-19 2013-03-26 Xiao Qian Zhang Method of operating multiple input and output devices through a single computer
US7432916B2 (en) * 2004-12-09 2008-10-07 Universal Electronics, Inc. Controlling device with dual-mode, touch-sensitive display
CN1664802A (zh) * 2005-03-30 2005-09-07 中国人民解放军国防科学技术大学 面向大规模并行系统的可程控中断控制方法
US7928964B2 (en) 2005-04-22 2011-04-19 Microsoft Corporation Touch input data handling
JP4657116B2 (ja) * 2006-02-06 2011-03-23 アルパイン株式会社 表示装置、メニュー提供装置およびメニュー提供方法
US8190785B2 (en) 2006-05-26 2012-05-29 Smart Technologies Ulc Plug-and-play device and method for enhancing features and settings in an interactive display system
US20080180412A1 (en) * 2007-01-31 2008-07-31 Microsoft Corporation Dual mode digitizer
TWM321662U (en) 2007-02-14 2007-11-01 Inventec Appliances Corp Keyboard for mobile electronic device
US8063504B2 (en) * 2007-05-07 2011-11-22 Analogix Semiconductor, Inc. Systems and methods for powering circuits for a communications interface
JP4978373B2 (ja) 2007-08-27 2012-07-18 富士電機株式会社 プログラマブルコントローラ、そのcpuモジュール
US8009147B2 (en) * 2007-09-27 2011-08-30 At&T Intellectual Property I, Lp Multi-touch interfaces for user authentication, partitioning, and external device control
JP4479776B2 (ja) 2007-10-05 2010-06-09 ソニー株式会社 表示装置および送信装置
JP2010157820A (ja) 2008-12-26 2010-07-15 Sharp Corp 制御システム、及び制御方法
US20100332373A1 (en) * 2009-02-26 2010-12-30 Jason Crabtree System and method for participation in energy-related markets
JP5218293B2 (ja) 2009-06-22 2013-06-26 ソニー株式会社 情報処理装置、表示制御方法、およびプログラム
US8242803B2 (en) * 2009-06-26 2012-08-14 Broadcom Corporation HDMI and displayport dual mode transmitter
US8686759B2 (en) 2009-08-07 2014-04-01 Synaptics Incorporated Bi-directional channel amplifier
JP2011188230A (ja) 2010-03-09 2011-09-22 Panasonic Corp 通信制御システム、シンク機器及び、ソース機器
US8842081B2 (en) * 2011-01-13 2014-09-23 Synaptics Incorporated Integrated display and touch system with displayport/embedded displayport interface
US9323698B2 (en) * 2011-09-22 2016-04-26 Synaptics Incorporated System and method for transmitting USB data over a DisplayPort transmission link
KR101786277B1 (ko) 2011-10-26 2017-10-17 인텔 코포레이션 멀티 터치 인터페이스 방안

Also Published As

Publication number Publication date
JP2014534522A (ja) 2014-12-18
GB2512214A (en) 2014-09-24
CN103890744B (zh) 2019-08-16
KR101590820B1 (ko) 2016-02-02
DE112011105779B4 (de) 2023-08-03
WO2013062602A1 (en) 2013-05-02
CN103890744A (zh) 2014-06-25
GB201406778D0 (en) 2014-05-28
GB2512214B (en) 2020-10-07
DE112011105779T5 (de) 2014-08-07
KR101786277B1 (ko) 2017-10-17
US9262000B2 (en) 2016-02-16
US20140002399A1 (en) 2014-01-02
KR20140089524A (ko) 2014-07-15

Similar Documents

Publication Publication Date Title
KR101590820B1 (ko) 멀티 터치 인터페이스 방안
CN105930327B (zh) 可穿戴式显示器的序列视觉呈现的方法和可穿戴式装置
US10045061B2 (en) Electronic device, adapter device, and video data processing method thereof
TWI601093B (zh) 執行對於圖像硬體之排程操作技術
US20140152894A1 (en) Transfer to target disambiguation
KR101593010B1 (ko) 외부 디스플레이-데이터 입력/출력 포트를 통해 그래픽 처리를 확장하는 방법, 장치 및 시스템
US20080088636A1 (en) System and method for the display and control of virtual environments in a single pipe graphics memory controller hub using picture-in-picture
CN108848333A (zh) 信号转换模块和移动终端
CN101989187B (zh) 利用一笔记本电脑控制一电脑主机的系统
EP4325809A1 (en) Control method and apparatus, electronic device, and readable storage medium
CN113253877B (zh) 电子白板系统及其控制方法
CN115733549B (zh) Pcie网卡及其接口模式的切换方法、电子设备及存储介质
CN112433689A (zh) 用于同屏器的数据传输方法、装置、同屏器及介质
TWI493536B (zh) 在與顯示控制器相關連的中斷暫存器中設定中斷範圍之操作的系統、設備及物件、和電腦實施方法
CN102810054B (zh) 显示装置及显示装置的控制方法
CN212084130U (zh) 一种usb信号传输系统和触摸显示设备
US20170220069A1 (en) Docking apparatus and control method thereof
WO2021098284A1 (zh) 显示控制系统及显示设备
JP5968463B2 (ja) データを別の記憶装置にコピーせずにデータソースによりバッファに格納されたデータを処理するためのポインタのスワッピング
TWI537905B (zh) Display device and display device
US9417726B2 (en) Supporting keyboard and mouse over embedded displayport without using a universal serial bus
CN108352161B (zh) 动态音频编解码器枚举
TW201109884A (en) Laptop computer
KR20210000280U (ko) 디스플레이 보드 usb 주변장치 연결시스템
TW201351153A (zh) 主機板及其主板控制卡

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant