KR100984630B1 - 트랙 패드 장치의 원시 데이터를 처리하기 위한 시스템 및방법 - Google Patents

트랙 패드 장치의 원시 데이터를 처리하기 위한 시스템 및방법 Download PDF

Info

Publication number
KR100984630B1
KR100984630B1 KR1020087006252A KR20087006252A KR100984630B1 KR 100984630 B1 KR100984630 B1 KR 100984630B1 KR 1020087006252 A KR1020087006252 A KR 1020087006252A KR 20087006252 A KR20087006252 A KR 20087006252A KR 100984630 B1 KR100984630 B1 KR 100984630B1
Authority
KR
South Korea
Prior art keywords
fingers
file
touch
host
cursor
Prior art date
Application number
KR1020087006252A
Other languages
English (en)
Other versions
KR20080045201A (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
Priority claimed from US10/949,060 external-priority patent/US7719522B2/en
Priority claimed from PCT/US2005/033255 external-priority patent/WO2006036607A1/en
Priority claimed from US11/232,299 external-priority patent/US7728823B2/en
Application filed by 애플 인크. filed Critical 애플 인크.
Priority claimed from PCT/US2006/031524 external-priority patent/WO2007037806A1/en
Publication of KR20080045201A publication Critical patent/KR20080045201A/ko
Application granted granted Critical
Publication of KR100984630B1 publication Critical patent/KR100984630B1/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/044Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means
    • 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/044Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means
    • G06F3/0446Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means using a grid-like structure of electrodes in at least two directions, e.g. using row and column electrodes
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Position Input By Displaying (AREA)

Abstract

원시 트랙 패드 센서 데이터를 획득(측정)하여 하나 이상의 호스트 컴퓨터 중앙 처리 장치 상에서 실행되는 어플리케이션에 의해 이를 분석하는 호스트 컴퓨터로 전송하는 입력 장치 및 시스템이 기술된다. 결과적으로 입력 처리 구조는 제조 비용 면에서 저렴하고 종래 기술의 트랙 패드 입력 장치보다 유연한 트랙 패드 입력 장치를 제공한다. 트랙 패드 센서 데이터를 처리하기 위한 종래 기술의 전용 하드웨어(즉, 프로세서 및 관련 펌웨어 메모리)를 제거함으로써 비용을 낮출 수 있다. 또한 호스트 컴퓨터의 CPU 상에서 실행되는 소프트웨어를 통한 특징 집합의 기능성(feature set functionality)을 제공함으로써 유연성을 향상시킬 수 있다. 이러한 구조에서, 트랙 패드의 기능성은 소프트웨어 업그레이드 절차를 통하여 수정, 갱신 및 향상될 수 있다.
트랙 패드(track pad), 센서 어레이(sensor array), 입력 장치, 손가락 터치 입력 장치(finger touching input device).

Description

트랙 패드 장치의 원시 데이터를 처리하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR PROCESSING RAW DATA OF TRACK PAD DEVICE}
관련 출원과의 상호 참조
본 출원은 2004년 9월 24일에 출원되어 함께 출원 중인 미국 특허 출원(출원 번호 10/949,060)의 일부 계속 출원이며, 상기 출원에 대한 우선권을 주장하고, 상기 출원에 개시된 내용은 전부 그대로 본 명세서에서 참조된다.
배경기술
본 발명은 일반적으로 컴퓨터 입력 장치에 관한 것으로, 특히 측정된 (원시) 센서 데이터를 호스트 컴퓨터 시스템으로 생성 및 전송하는 트랙 패드 입력 장치에 관한 것이다. 호스트 컴퓨터 시스템에서 실행되는 소프트웨어는 원시 센서 데이터를 분석하여 사용자의 동작을 판단한다.
트랙 패드(track pad)는 마우스 또는 트랙볼 대신에, 또는 이들과 함께 사용되는, 접촉 감지 평면 디지타이저(touch-sensing planar digitizer) 입력 장치이다. 사용 중에, 조작자는 손가락을 트랙 패드 위에 놓고 접촉 감지 평면의 표면을 따라 손가락을 움직인다. 트랙 패드는 손가락의 움직임을 감지하며 그에 따라 컴퓨터에 위치 및/또는 동작 신호를 제공한다. 트랙 패드 센서 장치에는 두 가지 유형, 즉 저항성(resistive) 및 용량성(capacitive) 유형이 있다. 저항성 트랙 패드 센서는 통상적으로 공기에 의해 분리되는 두 계층의 물질을 사용하는 기계적인 센서이다. 손가락의 압력으로 상단 층(일반적으로 얇고 투명한 폴리에스테르 필름)을 눌러서 하단 층(일반적으로 유리)에 접촉하도록 한다. 접촉 지점의 전압이 측정되어 손가락의 위치 및/또는 동작이 계산되고 이것이 호스트 컴퓨터 시스템으로 전송된다. 손가락을 떼고 나면, 상단 층은 본래 형태로 "튀어 돌아간다(bounce back)." 이와 달리, 용량성 트랙 또는 터치 패드 센서는, PCB(printed circuit board) 또는 플렉스 회로 기술(flex circuit technology)을 이용하여 만들어진 고체 상태(solid-state) 센서이다. 전도성 트레이스(conductive trace)의 상단 격자(grid) 위에, 또는 그에 근접하여 손가락을 대면, 인접한 트레이스 간의 용량성 결합(capacitive coupling) 또는 각 트레이스의 커패시턴스가 변화한다. 이러한 커패시턴스의 변화가 측정되어 손가락의 위치 및/또는 동작이 계산되고 이것이 호스트 컴퓨터 시스템으로 전송된다.
도 1을 참조하면, 종래 기술의 컴퓨터 시스템(100)은 통신 경로(115)를 통해 호스트 컴퓨터 모듈(110)에 연결된 트랙 패드 장치(105)를 포함한다. 트랙 패드 장치(105)는 센서(120), 데이터 획득 회로(125), 프로세서(130), 메모리(135) 및 전송 회로(140)를 포함한다. 용량성 트랙 패드 장치의 경우, 사용자의 손가락(들)이 센서(120)의 표면 위를 이동할 때, 데이터 획득 회로(125)는 인접 센서 요소들 간의 용량성 결합(또는 주어진 센서 요소의 자기-커패시턴스)의 변화를 측정한다. 프로세서(130)는 메모리(135)와 함께, 획득된 커패시턴스 신호를 처리하여 센서(120) 상의 사용자의 손가락 위치를 나타내는 신호(예를 들면 △x 및 △y 신호) 를 계산한다. 일부 종래 기술의 트랙 패드 장치에 있어서, 프로세서(130)는 복수의 손가락이 센서(120)를 활성화시키고 있는지, 그리고 사전에 결정된 특정한 손가락 동작(흔히 "제스처(gesture)"라고 불린다)이 이루어지고 있는지 - 예를 들면, "선택(select)", "드래그(drag)", "파일 열기" 및 "파일 닫기" 동작 - 를 결정할 수 있다. 특정 시간 간격(예를 들어, 초당 50회)마다, 프로세서에 의해 결정된 사용자의 손가락 위치 및/또는 동작이 통신 경로(115)를 통하여 호스트 컴퓨터 모듈(110)로 전송된다. 호스트 컴퓨터 모듈(110)에서, 수신 회로(145)는 전송된 트랙 패드 신호를 수신하여 그 정보를 드라이버 어플리케이션(150)으로 전달한다. 그 다음에 드라이버 어플리케이션(150)은, 예를 들어 윈도우 디스플레이 서브 시스템 어플리케이션(155)과 같은 기타의 어플리케이션이 계산된 센서 정보를 이용할 수 있도록 한다. 이렇게, 종래 기술의 시스템(100)은 원시 트랙 패드 센서 데이터를 측정 및 분석하는 전용 프로세서를 이용하여 사용자의 동작을 나타내는 신호를 생성한다.
당업자라면 프로세서(130)가 범용 프로세서(예를 들어 마이크로프로세서), 마이크로컨트롤러, 또는 특정 목적의 프로세서 또는 주문 제작된 프로세서 또는 상태 머신(예를 들어 주문형 반도체(ASIC) 또는 주문 제작된 게이트 어레이 디바이스)에 의해 구현될 수 있음을 인지할 것이다. 또한 메모리(135)는 통상적으로 프로세서(130)를 구동하는 명령을 위한 영구 저장 장치(즉, 펌웨어)를 제공하는데 사용되며, 선택적으로 RAM(random access memory) 및/또는 레지스터 저장 장치(register storage)를 포함할 수 있다. 도 1 구조(architecture)의 이점은 호스 트 컴퓨터 모듈(110)이 센서(120)에 의해 생성되는 데이터의 타입에 대해 알거나 이해할 필요가 없다는 것이다. 이러한 특징은 호스트 컴퓨터 모듈(110)이 트랙 패드 센서 데이터를 처리하지 않는다는 것으로 귀결된다.
또한 당업자라면, 도 1 구조에 대한 결점은 트랙 패드 장치(105)에 의해 제공되는 특징 집합(즉, 어떤 동작이 감지 가능한가)이 본질적으로 그것의 전용 하드웨어 - 프로세서(130) 및 관련 펌웨어(메모리(135)) - 에 의해 고정되는 것이라는 사실을 인식할 것이다. 도 1 구조에 대한 또 다른 결점은 제조된 장치(105) 각각이 프로세서(130) 및 관련 펌웨어 메모리(135)에 대한 비용을 포함한다는 것이다. 따라서, 이러한 본질적인 결점을 극복하는 트랙 패드 장치를 제공하는 것은 유익할 것이다.
일 실시예에서 본 발명은, 트랙 패드 센서 특성(즉, 커패시턴스 또는 레지스턴스)을 나타내는 출력 신호를 생성하는 트랙 패드 센서 요소, 트랙 패드 센서의 특성을 인코딩한 (디지털) 값을 측정하는 데이터 획득 회로, 및 측정된 트랙 패드 센서 값을 분석하기 위해 범용 프로세서로 전송하는 통신 회로를 포함하는 트랙 패드 입력 장치를 제공하는데, 여기서 위 범용 프로세서는 사용자 레벨 및 기타 시스템 레벨의 작업 또는 어플리케이션을 실행하는 역할을 한다. 하나의 특정 실시예에서, 트랙 패드 센서는 용량성 트랙 패드 센서로서, 측정된 값은 원시 트랙 패드 센서 값을 포함하고 범용 프로세서는 호스트 컴퓨터 시스템의 중앙 처리 장치에 해당하게 된다.
도 1은 종래 기술에 따른 트랙 패드 컴퓨터 시스템 구조를 도시하는 블록도.
도 2는 본 발명의 일 실시예에 따른 트랙 패드 컴퓨터 시스템 구조를 도시하는 블록도.
도 3은 본 발명의 일 실시예에 따른 트랙 패드 장치 및 호스트 컴퓨터 시스템을 도시하는 블록도.
도 4는 본 발명의 일 실시예에 따른 트랙 패드 센서 데이터 획득 시스템을 도시하는 블록도.
도 5는 본 발명의 일 실시예에 따른 데이터 획득 방법을 도시하는 흐름도.
도 6 내지 도 9는 본 발명의 명세서에 따라 개시된 시스템을 사용하여, 터치 패드 상에서 이루어지고 사용자 레벨의 작업으로 해석될 수 있는 다양한 제스처를 도시함.
도 10은 개시된 터치 패드 장치, 및 측정된 데이터 값을 호스트 어플리케이션을 위해 사용자 레벨의 작업으로 해석하기 위한 호스트 모듈을 도시함.
도 2를 참조하면, 본 발명에 따라 트랙 패드 장치를 통합하는 시스템의 일반적인 구조가 도시되어 있다. 도시된 바와 같이, 시스템(200)은 통신 경로(215)를 통해 호스트 모듈(210)에 연결되는 트랙 패드 장치(205)를 포함한다. 트랙 패드 장치(205)는, 사용자 조작에 따른 신호를 생성하는 트랙 패드 센서(220), 센서 데이터를 캡쳐하거나 측정하는 데이터 획득 회로(225) 및 측정된 센서 데이터 값을 취합하여 통신 경로를 통해(215) 호스트 모듈(210)로 주기적으로 전송하는 전송 회로(230)를 포함한다. 호스트 모듈(210)에서, 수신 회로(235)는 측정된 센서 데이터를 수신하여 드라이버 어플리케이션(240)으로 전달한다. 그 다음 드라이버 어플리케이션(240)은 측정된 데이터를 처리 또는 분석하여 사용자의 행위(예를 들면, "싱글 클릭", "더블 클릭", "스크롤" 또는 "드래그" 동작)을 결정하며, 계산된 위치 및/또는 이동 정보를, 예를 들어 윈도우 디스플레이 서브 시스템 어플리케이션(245)과 같은 다른 어플리케이션으로 전달한다. 본 발명에 따르면, 드라이버 어플리케이션(240)은, 설명된 바와 같이, 하나 이상의 사용자 어플리케이션 또는 프로세스(255)를 (적어도 부분적으로) 실행시키는 역할도 하는 호스트 프로세서(250)에 의해 실행된다. 트랙 패드 장치(205)는 센서(220)로부터 획득한 데이터 신호 (값)을 처리 또는 분석할 능력이 없음을 주목하여야 한다. 본 발명에 따르면, 센서 데이터는 호스트 컴퓨터 시스템의 범용 프로세서 또는 중앙 처리 장치("CPU")에 의해 분석된다.
도 2 구조는 호스트 컴퓨터 시스템(예로, 노트북 또는 기타 퍼스널 컴퓨터, 워크스테이션 및 서버)에 통합된 최신 CPU의 프로세싱 능력의 고유한 이점을 인식하고 이를 취한다. 이러한 인식과 도 2 구조를 이용하면 제조 비용에 있어서 저렴하면서도 종래 기술이 제공하는 시스템보다 유연하다는(flexible), 두 가지를 모두 갖춘 컴퓨터 시스템(200)을 얻을 수 있다. 트랙 패드 센서 데이터를 처리하기 위한 종래 기술의 전용 하드웨어(즉, 프로세서 및 연관된 펌웨어 메모리 - 도 1의 구성 요소(130 및 135) 참조)를 제거함으로써 비용을 낮출 수 있다. 또한 호스트 컴 퓨터의 CPU 상에서 실행되는 소프트웨어를 통하여 특징 집합의 기능성(feature set functionality)을 제공함으로써 유연성(flexibillity)을 향상시킬 수 있다 - 즉, 측정된 트랙 패드 센서 데이터를 하나 이상의 호스트 컴퓨터의 CPU 상에서 처리/분석하는 것이다. 이러한 구조에서, 트랙 패드의 기능성은 통상적인 소프트웨어 업그레이드 절차를 통하여 수정, 갱신 및 향상될 수 있다.
이하의 설명은 당업자라면 누구나 청구된 바와 같이 본 발명을 만들고 사용할 수 있도록 기술되었고, 이하 논의되는 특정한 예시의 맥락으로 제공되며, 그에 대한 변경은 당업자에게 자명할 것이다. 따라서, 본 명세서에 첨부된 청구항의 범위는 개시된 실시예에 한정되어서는 아니되며, 본 명세서에 개시된 원리 및 특징에 부합하는 가장 넓은 범위로 부여되어야 한다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 트랙 패드 장치(300)는 m-열 x n-행의 용량성 센서 어레이(305), 데이터 획득 회로(310)(자체에 멀티플렉서("MUX") 회로(315), 저장 커패시터(320) 및 스캔 회로(325)를 포함함) 및 "USB" 전송 회로(330)를 포함한다. 동작 중, MUX 회로(315)는 연속적인 센서 어레이 요소(예로, 행, 열, 또는 개별 픽셀 - 즉, 행과 열의 교차점에서의 요소)를 제어된/순차적 방식으로 저장 커패시터(320)에 연결하고 자극하는 역할과, 측정 사이클이 시작되었음을 스캔 회로(325)로 알리는 역할을 한다. 저장 커패시터(320)의 충전량이 특정 값 또는 임계치에 도달하면, 스캔 회로(325)는 저장 커패시터를 특정 임계치까지 충전하는데 필요한 시간을 기록한다. 따라서 스캔 회로(325)는 선택된 센서 어레이 요소의 커패시턴스에 대한 직접적인 표시가 되는 디지털 값을 제공한 다. USB 전송 회로(330)는 측정된 커패시턴스 값을 패킷으로 취합하여 USB 프로토콜에 따라 USB 버스(340)를 통해 호스트 모듈(335)로 전송하는 역할을 한다. 당업자라면, 사용된 USB의 버전 및 버스(340)의 대역폭에 따라, USB 전송 회로(330)가 각 데이터 프레임을 하나 또는 하나 이상의 패킷으로 호스트 모듈(335)로 전송할 수 있다는 것을 이해할 것이다. 호스트 모듈의 USB 수신 회로(345)가 USB 버스(340)를 통해 트랙 패드 장치(300)로부터 측정된 센서 데이터를 수신하면, USB 수신 회로(345)는 측정된 커패시턴스 데이터를 해독하여 드라이버 어플리케이션(350)으로 전달한다. 이어서, 드라이버 어플리케이션(350)은 (측정된) 원시 커패시턴스 데이터를 획득 및 처리하여 의미 있는(meaningful) 커서 이동 입력을 운영 체제 어플리케이션(355)에 제공한다. (당업자라면 스캔 회로(325)가 센서 어레이(305)로부터 커패시턴스 값을 사전 결정된 순서 또는 시퀀스로 측정한다는 것과 이러한 시퀀스는 드라이버 어플리케이션(350)에게 미리(a priori) 알려지거나 측정된 센서 데이터와 함께 드라이버 어플리케이션(350)에 전달되어야 한다는 것을 인지할 것이다.) 일 실시예에서, 드라이버 어플리케이션(350)은, 예를 들면 도 1의 프로세서(130) 및 펌웨어 메모리(135)와 같은 전용 트랙 패드 프로세서에 의해 전통적으로 제공되는 트랙 패드 알고리즘을 구현한다.
도 4를 참조하면, 행과 열로 어드레스 가능한(addressible) 용량성 센서 어레이에 대해 구현될 수 있는 것과 같은 MUX 회로(315)의 보다 상세한 그림이 도시되어 있다. 도시된 바와 같이, 센서 어레이(400)의 각 행(row)은 MUX-1(410)을 통해 전압원 Vcc(405)에 전기적으로 연결되고, MUX-2(420)을 통해 저장 커패시 터(415)에 전기적으로 연결된다. (상세히 도시되지 않았으나, 센서 어레이(400)의 각 열(column)도 이와 유사하게 MUX 회로를 통해 Vcc(405)와 저장 커패시터(415)에 연결된다 - 블록(425).)
이제 도 5를 참조하면, MUX-1(410)은 동작 시에 제1 센서 어레이 행을 특정 시간 동안 Vcc(405)에 연결하고(블록(500)) 그 후 Vcc(405)로부터 상기 행을 차단 또는 분리한다(블록(505)). 다음으로, MUX-2(420)는 동일한 행을 특정 시간 동안, 또는 저장 커패시터(415)의 전압이 특정 임계치에 도달할 때까지 저장 커패시터(415)에 연결한다(블록(510)). 만일, MUX-2(420)가 선택된 센서 행을 저장 커패시터(415)에 연결한 시간 동안 저장 커패시터의 전압이 특정 임계치에 도달하게 되면(블록(515)의 "예" 분기), 저장 커패시터(415)를 임계치까지 충전시키는 데 소요된 시간에 해당하는 디지털 값이 스캔 회로(325)에 의해 기록된다(블록(520)). 만일, MUX-2(420)가 선택된 행을 저장 커패시터(415)에 연결한 시간동안 저장 커패시터의 전압이 특정 임계치에 도달하지 않으면(블록(515)의 "아니오" 분기), 블록(500) 내지 블록(510)의 동작이 반복된다. 선택된 행의 커패시턴스에 대한 디지털 값이 획득되고 나면(블록(520)), 센서 어레이(400) 내에 샘플링되어야 할 추가적인 행이 있는지 확인하기 위해 체크가 이루어진다. 센서 어레이(400) 내의 모든 행이 블록(500-520)에 따라 샘플링되었다면(블록(525)의 "예" 분기), 센서 어레이(400) 내의 센서 요소의 각 열에 대한 커패시턴스 값을 획득하기 위해 동일한 프로세스가 이용된다(블록(535)). 모든 행과 열이 블록(500-535)에 따라 처리되고 나면, 전체 프로세스가 반복된다(블록(540)). 반면, 만일 센서 어레이(400) 내에 블록(500-520)에 따라 샘플링되지 않은 행이 있다면(블록(525)의 "아니오" 분기), 다음 행이 선택되어(블록(530)) 블록(500-525)의 동작이 수행된다.
하나의 예시적인 실시예에 있어서, 센서 어레이(400)는 16x32의 용량성 격자를 포함하며, 48개의 출력 채널을 제공하고; Vcc는 3.3 V; 저장 커패시터(415)는 약 10000 pF이며, 행의 평균 커패시턴스 값은 약 12 pF; 열의 평균 커패시턴스 값은 약 9 pF; 사용자 손가락의 센서 어레이(400) 접촉에 의한 행과 열 전극의 커패시턴스의 평균 변화량은 약 0.2 pF; 디지털 커패시턴스 값이 획득되는 임계치 값은 1.6 V; MUX 회로(410, 420 및 425)가 스위치되는 속도(rate)는 6 MHz이다. 이러한 값들에 대해, 저장 커패시터(415)를 임계치 전압으로 충전시키는데 약 580-600 샘플 사이클이 소요된다고 밝혀졌다. 일 실시예에서, 디지털 커패시턴스 값은, 사실, 저장 커패시터(415)를 임계치 전압으로 충전시키는데 필요한 샘플링 사이클 수를 카운트한 것이다. 당업자라면 이러한 값이 센서 요소(예를 들면 행 또는 열)의 커패시턴스 값과 직접적으로 관련된 것임을 인지할 것이다. 이러한 실시예에서, (MUX 회로(410, 420 및 425) 및 저장 커패시터(415)와 연계된) 스캔 회로(325)는 48개의 센서 어레이 출력 각각을 초당 125회 측정하며, 각각의 측정치는 10 비트 값(언사인드 정수(unsigned integer))을 포함한다. 125회 각각을 하나의 프레임으로 하여 센서 어레이(400)로부터 스캔 회로(325)에 의해 획득된 48개의 측정치를 참조하여, 예시 트랙 패드 센서 장치는 다음을 생성한다.
Figure 112008018580745-pct00001
도 2와 관련하여 표시된 바와 같이 또한 도 3에 도시된 바와 같이, 드라이버 어플리케이션(350)은 사용자 어플리케이션 및 작업(예를 들면 도 3의 365)을 실행시키는 역할도 갖는 범용 프로세싱 유닛(360)에 의해 실행된다. 즉, 본 발명에 따르면 원시 트랙 패드 센서 데이터는, 트랙 패드 장치(300)와 연관된 전용 프로세서 또는 프로세싱 회로에 의해서가 아니라, 호스트 컴퓨터 시스템과 연관된 하나 또는 하나 이상의 범용 프로세싱 유닛에 의해 분석된다. 도 2 및 도 3 구조의 직접적인 결과로, 트랙 패드 센서 데이터의 분석을 담당하는 프로세싱 자원(예를 들면 CPU)이 다른 시스템 레벨에서의, 그리고 사용자 레벨에서의 어플리케이션들과 같은 기타의 컴퓨터 시스템 프로세싱 요구들과 공유되어야 한다는 것이다.
기술된 실시예의 재료, 구성요소 및 회로 요소에 있어서 이하의 청구항의 범주를 벗어나지 않고 다양한 변경이 가능하다. 예로, 도 3의 시스템을 고찰한다. 다른 실시예는 더 작은(예로 10x16) 또는 더 큰(예로, 32x32) 센서 어레이(305)를 포함할 수 있다. 또한 125 Hz 외의 프레임 레이트(rate) 및 10 bit 이외의 샘플 해상도도 가능하다. 또한 호스트 컴퓨터 시스템은 하나 이상의 범용 프로세싱 유닛(예로, 프로세서(250))을 포함할 수 있음을 알 수 있을 것이다. 그 외에, 도 2 및 도 3에서 트랙 패드 장치(205 또는 300)에 통합된 것으로 표시된 회로의 일부는 다른 기능을 위해서도 사용되는 회로 내에 구현될 수 있다. 예를 들면, 전송 회로(230 및 330)는, 예를 들면 키보드와 같은 기타 USB 입력 장치에 의해 공유될 수 있다. 또한 당업자라면 본 발명이 행렬로 어드레스 가능한 것과 상이하게 픽셀 처리된 트랙 패드 센서 장치에도 적용 가능함을 인지할 것이다. 또한 도 5에 설명된 동작 프로시저(procedure)도 수정될 수 있다는 것을 인식할 것이다. 예를 들면, 센서의 열 값이 센서의 행 값보다 먼저 획득될 수 있다. 이와 달리, 센서 행 및 센서 열 데이터가 동시에 조합 및/또는 측정될 수 있다. 임의의 이벤트에 있어서, 스캔 회로(325)는 센서 패드 특성 값(예로, 커패시턴스 또는 레지스턴스)을 세트 순서로 측정할 수 있으며 이러한 순서는 드라이버 어플리케이션(350)에 알려지거나 전달되어야 한다는 것을 인지할 것이다. 또 다른 실시예에서, 스캔 회로(325)는 센서 특성 값을 임의의 편리한 방식으로 측정하여 전송 회로(330)에 의해 전송되기 전에 드라이버 어플리케이션(350)이 알고 있거나 기대하는 시퀀스로 이를 재구성할 수 있다.
다양한 제스처가 트랙 패드 장치(300)에 의해 탐지될 수 있고, 사용자 레벨 작업 또는 동작으로 해석될 수 있다. 예를 들어, 한 손가락 터치, 동시에 두 개 이상의 손가락 터치, 하나 이상의 손가락으로 슬라이딩 이동하며 터치, 하나 이상의 손가락을 고정된 상태로 터치한 채 동시에 하나 이상의 손가락으로 터치 및 슬라이딩 이동, 두 개 이상의 손가락으로 터치 및 수축 이동, 하나 이상의 손가락으로 탭핑(tap)하는 동작, 두 개 이상의 손가락으로 터치 및 확장 이동, 하나 이상의 손가락으로 탭핑하면서 하나 이상의 손가락으로 터치, 손의 일부(예를 들어 손바닥)로 터치, 및 손의 일부로 터치 및 이동 등이 트랙 패드 장치(300)의 감지 요소(305) 상에서 이루어지는 사용자 제스처에 포함된다. 또한, 한 손 또는 두 손의 손가락 또는 일부가 트랙 패드 장치 상에서 이루어지는 제스처를 위하여 사용될 수 있다.
한 손가락 제스처에는, 왼쪽 클릭 마우스 동작을 구현하기 위해 트랙 패드 장치 상에서 한 손가락을 탭핑하는 동작, 및 커서 이동을 구현하기 위해 트랙 패드 상에서 한 손가락을 누른 채 유지하는 동작 등이 포함된다. 트랙 패드 장치 상에서의 두 손가락 제스처에는 다음과 같은 것들이 포함된다 - (1) 종 스크롤 동작을 구현하기 위하여 두 손가락을 함께 누른 채 종 방향으로 이동하는 동작; (2) 횡 스크롤 동작을 구현하기 위하여 두 손가락을 함께 누른 채 횡 방향으로 이동하는 동작; (3) 일 동작을 구현하기 위하여 두 손가락을 탭핑하는 동작; (4) 줌 동작을 구현하기 위하여 두 손가락을 모두 누른 채로 벌렸다가 다시 오므리는 동작; (5) 회전 동작을 구현하기 위하여 두 손가락을 함께 누르고 시계방향 또는 반 시계방향으로 원형 회전하는 동작; (6) 일 동작을 구현하기 위하여 한 손가락을 누른 후 두 번째 손가락을 누르는 동작; (7) 일 동작을 구현하기 위하여 한 손가락을 누른 후 두 번째 손가락으로 탭핑하는 동작; 및 (8) 일 동작을 구현하기 위하여 두 손가락을 함께 누르고 대각선 방향으로 이동하는 동작.
사용자 레벨 작업 또는 동작을 구현하기 위한 트랙 패드 장치 상의 세 손가락 제스처 및 네 손가락 제스처를 아래 표에 나타내었다.
세 손가락 동작 네 손가락 동작
세 손가락 탭핑 네 손가락 탭핑
세 손가락을 함께 누르고, 손가락들이 멀어지는 방향 또는 가까워지는 방향으로 쓸고 지나가기 네 손가락을 함께 누르고, 트랙 패드 상에서 손가락들이 멀어지는 방향 또는 가까워지는 방향으로 쓸고 지나가기
세 손가락을 함께 누르고, 왼쪽 또는 오른쪽을 향해 가장자리를 쓸고 지나가기 네 손가락을 함께 누르고, 트랙 패드 상에서 왼쪽 또는 오른쪽을 향해 가장자리를 쓸고 지나가기
세 손가락을 함께 누르고, 종 방향, 횡 방향, 또는 대각선 방향으로 이동 네 손가락을 함께 누르고, 종 방향, 횡 방향, 또는 대각선 방향으로 이동
세 손가락을 함께 누르고, 시계방향 또는 반 시계방향으로 원형 회전 네 손가락을 함께 누르고, 시계방향 또는 반 시계방향으로 원형 회전
두 손가락을 누른 후, 세 번째 손가락을 누르거나 탭핑 세 손가락을 누른 후, 네 번째 손가락을 누르거나 탭핑
한 손가락을 누른 후, 두 손가락을 누르거나 탭핑 두 손가락을 누른 후, 두 손가락을 누르거나 탭핑
한 손가락을 누른 후, 세 손가락을 누르거나 탭핑
다수의 예시적인 제스처(600, 700, 800, 및 900)와 이에 대응하는 사용자 레벨 작업 또는 동작을 도 6 내지 도 9에 도시하였고 이하에서 설명한다. 이러한 제스처(600, 700, 800, 및 900) 및 이에 대응하는 사용자 레벨 작업은 예시적이다. 당업자라면, 이 명세서에 기술된 바를 넘어서 기타의 다른 제스처 및 사용자 레벨 작업들이 가능하다는 것을 이해할 것이다.
도 6을 참조하면, 트랙 패드 장치(도시 생략)의 감지 요소 상에서 사용자 제스처(600)들을 사용하여 호스트 어플리케이션의 다양한 마우스 동작 또는 작업을 수행할 수 있다. 이러한 마우스 동작에는 포인팅, 클릭, 더블 클릭, 오른쪽 클릭, 드래그/선택, 및 스크롤 등이 포함될 수 있으나 이에 한정되는 것은 아니다. 예를 들어, 트랙 패드 장치 상에서 임의의 두 개의 인접한 손가락을 터치 및 이동하는 첫 번째 제스처(602)를 사용하여 포인팅 동작을 구현할 수 있다. 트랙 패드 장치 상에서 임의의 두 개의 인접한 손가락으로 탭핑(순간적인 터치)하는 두 번째 제스처(604)를 사용하여 클릭 동작을 구현할 수 있다. 트랙 패드 상에서 임의의 세 개 의 인접한 손가락으로 탭핑(순간적인 터치)하는 세 번째 제스처(606)를 사용하여 더블 클릭 동작을 구현할 수 있다. 트랙 패드 상에서 엄지, 중지, 약지로 탭핑하는 네 번째 제스처(608)를 사용하여 오른쪽 클릭 동작을 구현할 수 있다. 트랙 패드 상에서 세 손가락을 터치 및 이동하는 다섯 번째 제스처(610)를 사용하여 드래그/선택 동작을 구현할 수 있다. 트랙 패드 상에서 네 손가락을 터치 및 상/하 슬라이딩하는 여섯 번째 제스처(612)를 사용하여 스크롤 동작을 구현할 수 있다.
이 시스템은 3-버튼 마우스의 동작을 에뮬레이팅하는 데에도 사용될 수 있다. 예를 들어, 가운데 버튼 클릭은 트랙 패드 상에서 엄지, 검지, 중지 끝을 탭핑하는 일곱 번째 제스처(614)를 사용하여 구현될 수 있다. 또한, 손을 벌린 후 트랙 패드 장치 상에서 엄지, 약지, 새끼손가락을 탭핑하는 여덟 번째 제스처(616)를 사용하여 3-버튼 에뮬레이션에서의 오른쪽 클릭이 구현될 수 있다.
도 7을 참조하면, 트랙 패드 장치 상에서의 추가적인 사용자 제스처(700)를 사용하여, 호스트 어플리케이션의 다양한 편집 및 커서 동작을 구현할 수 있다. 편집 동작에는, 잘라내기, 복사하기, 붙이기, 이전 작업 되돌리기, 이전 작업 반복하기 동작 등이 포함되나 이에 한정되는 것은 아니다. 커서 동작에는, 커서 이동, 커서로 선택, 커서 탭(tab), 커서를 처음 위치(home)로 이동, 커서를 마지막 위치(end)로 이동, 페이지 업, 페이지 다운 등이 포함되나 이에 한정되는 것은 아니다.
예를 들어, 트랙 패드 상에서 엄지와 중지를 터치하고 꼬집는 첫 번째 제스처(702)를 사용하여 잘라내기 동작을 구현할 수 있다. 트랙 패드 상에서 엄지와 중지를 탭핑하는 두 번째 제스처(704)를 사용하여 복사하기 동작을 구현할 수 있다. 트랙 패드 상에서 엄지와 중지를 터치하고 벌리는 세 번째 제스처(706)을 사용하여 붙이기 동작을 구현할 수 있다. 되돌리기/반복하기 동작은 트랙 패드 상에서 엄지와 중지를 터치하고 상하로 슬라이딩하는 네 번째 제스처(708)을 사용하여 구현될 수 있다. 단 하나의 작업 단계를 되돌리는 것은 빠른 슬라이딩으로 구현될 수 있고, 여러 단계를 되돌리는 것은 점진적인 슬라이딩으로 구현될 수 있다. 트랙 패드 장치 상에서 엄지와 중지를 터치하고 좌우로 슬라이딩하는 다섯 번째 제스처(710)를 사용하여 탭(Tab)/백탭(BackTab) 동작을 구현할 수 있다. 탭 한번은 빠른 슬라이딩으로, 탭 반복은 점진적인 슬라이딩으로 구현될 수 있다.
텍스트 커서를 이동하기 위하여 트랙 패드 장치 상에서 임의의 손가락을 슬리이딩하며 터치하는 여섯 번째 제스처(712)를 사용하여 화살표 동작을 구현할 수 있다. 트랙 패드 장치 상에서 세 개의 손가락을 벌려서 상하로 슬라이딩하며 터치하는 하는 일곱 번째 제스처(714)를 사용하여 텍스트 선택 동작을 구현할 수 있다. 트랙 패드 장치 상에서 엄지와 중지를 터치하고 좌우로 슬라이딩하는 여덟 번째 제스처(716)를 사용하여 탭/백탭 동작을 구현할 수 있다. 트랙 패드 장치 상에서 네 개의 손가락을 벌려서 터치하고 좌우로 슬라이딩하는 아홉 번째 제스처(718)를 사용하여 처음 위치로(home)/끝 위치로(end) 동작을 구현할 수 있다. 마지막으로, 트랙 패드 장치 상에서 네 개의 손가락을 벌려서 터치하고 상하로 슬라이딩하는 열 번째 제스처(720)를 사용하여 페이지 업/다운 동작을 구현할 수 있다.
도 8을 참조하면, 트랙 패드 장치의 감지 요소상에서 추가적인 사용자 제스 처(800)를 사용하여, 호스트 어플리케이션의 다양한 파일 및 어플리케이션 동작 또는 작업을 구현할 수 있다. 파일 동작에는, 파일 열기, 파일 닫기, 파일 저장하기, 새 파일, 파일 프린트, 다음 파일, 이전 파일 등이 포함되나 이에 한정되는 것은 아니다. 응용 동작에는, 데스크탑 보기, 어플리케이션 종료, 어플리케이션 창 전환 등이 포함되나 이에 한정되는 것은 아니다.
예를 들어, 트랙 패드 장치 상에서 엄지 및 세 손가락을 반 시계방향으로 회전하며 터치하는 첫 번째 제스처(802)를 사용하여 파일 열기 동작을 구현할 수 있다. 트랙 패드 장치 상에서 엄지 및 세 손가락을 시계방향으로 회전하며 터치하는 두 번째 제스처(804)를 사용하여 파일 닫기 동작을 구현할 수 있다. 트랙 패드 장치 상에서 엄지 및 세 손가락을 오므리며 터치하는 세 번째 제스처(806)를 사용하여 파일 저장하기 동작을 구현할 수 있다. 트랙 패드 장치 상에서 엄지 및 세 손가락을 벌리면서 터치하는 네 번째 제스처(808)를 사용하여 새 파일 동작을 구현할 수 있다. 손을 미리 벌린 후 트랙 패드 장치 상에서 엄지와 바깥쪽 세 손가락을 더 벌리면서 터치하는 다섯 번째 제스처(810)를 사용하여 파일 프린트 동작을 구현할 수 있다. 트랙 패드 장치 상에서 엄지와 세 손가락 끝을 왼쪽으로 슬라이딩하며 터치하는 여섯 번째 제스처(812)를 사용하여 다음 파일 동작을 구현할 수 있다. 트랙 패드 장치 상에서 엄지와 세 손가락 끝을 오른쪽으로 슬라이딩하며 터치하는 일곱 번째 제스처(814)를 사용하여 이전 파일 동작을 구현할 수 있다.
엄지와 세 손가락을 벌려서 트랙 패드를 터치하고 트랙 패드 장치 상에서 왼쪽으로 슬라이딩하는 여덟 번째 제스처(816)를 사용하여 데스크탑 보기 동작을 구 현할 수 있다. 트랙 패드 장치 상에서 엄지와 세 손가락을 벌려서 시계방향으로 회전하며 터치하는 아홉 번째 제스처(818)를 사용하여 어플리케이션 종료하기 동작을 구현할 수 있다. 세 손가락과 엄지를 벌려서 트랙 패드를 터치하고 트랙 패드 장치 상에서 왼쪽 또는 오른쪽으로 슬라이딩하는 열 번째 제스처(820)를 사용하여 어플리케이션 전환 동작을 구현할 수 있다. 힘차게 슬라이딩하여 단 하나의 창을 앞으로 내보낼 수 있고, 점진적으로 슬라이딩하여 전체 리스트를 훑으며 스크롤할 수 있다.
도 9를 참조하면, 트랙 패드 장치 상에서의 추가적인 사용자 제스처(900)를 사용하여, 호스트 어플리케이션의 다양한 웹 브라우징 및 키보드 동작 또는 작업을 구현할 수 있다. 브라우저 동작에는, 뒤로, 앞으로, 스크롤, 줌 인, 줌 아웃, 페이지에서 찾기 등이 포함되나 이에 한정되는 것은 아니다. 키보드 동작에는, 쉬프트, 컨트롤/명령, 선택 키 등이 포함되나 이에 한정되는 것은 아니다.
예를 들어, 트랙 패드 장치 상에서 엄지 및 세 손가락 끝을 왼쪽으로 슬라이딩하며 터치하는 첫 번째 제스처(902)를 사용하여 뒤로 동작을 구현할 수 있다. 트랙 패드 장치 상에서 엄지 및 세 손가락 끝을 오른쪽으로 슬라이딩하며 터치하는 두 번째 제스처(904)를 사용하여 앞으로 동작을 구현할 수 있다. 트랙 패드 장치 상에서 네 손가락을 상하로 슬라이딩하며 터치하는 세 번째 제스처(906)를 사용하여 스크롤 동작을 구현할 수 있다. 원한다면 트랙 패드 위에서 슬라이딩을 시작한 후에는 엄지손가락을 트랙 패드 장치 위에 올려 놓을 수도 있다. 트랙 패드 장치 상에서 엄지와 네 손가락을 벌리면서 터치하는 네 번째 제스처(908)를 사용하여 줌 인 동작을 구현할 수 있다. 트랙 패드 장치 상에서 엄지와 네 손가락을 오므리며 터치하는 다섯 번째 제스처(910)를 사용하여 줌 아웃 동작을 구현할 수 있다. 트랙 패드 장치 상에서 엄지 및 두 손가락 끝을 꼬집으며 터치하는 여섯 번째 제스처(912)를 사용하여 페이지에서 찾기 동작을 구현할 수 있다. 트랙 패드 장치 상에서 손가락을 슬라이딩하는 대신에 "롤링(roll)"하는 일곱 번째 제스처(914)를 사용하여 정교한 스크롤 동작을 구현할 수 있다. 원한다면 스크롤을 시작한 후에는 엄지손가락을 트랙 패드 장치 위에 올려 놓을 수도 있다. 일단 포인팅이 시작된 후 트랙 패드 상에서 다섯 개의 모든 손가락을 사용하여 포인팅하기 위해 다른 손가락들을 떨어뜨리는 여덟 번째 제스처(916)를 사용하여 포인팅 동작을 구현할 수 있다. 기타 추가적인 제스처에는 트랙 패드 장치 상에서 다섯 개의 모든 손가락을 이동시키는 아홉 번째 제스처(918)와 트랙 패드 상에서 손의 일부(예를 들어 손바닥)를 터치하고 이동시키는 열 번째 제스처(920)가 포함될 수 있다.
도 10에는, 본 명세서의 특정 지침에 따른 컴퓨터 시스템(1000)이 도시되었다. 센서 어레이(1012), 데이터 획득 회로(1014), 및 제1 통신 회로(1016)를 구비하는 트랙 패드 장치(1010)와, 제2 통신 회로(1042), 하나 이상의 호스트 프로세서(1044), 소프트웨어(1046), 및 호스트 어플리케이션(1048)을 구비하는 호스트 모듈(1040)이 시스템(1000)에 포함되는데, 이들 각각은 전술한 실시예와 유사하다. 예를 들어, 제2 통신 회로(1042)는 USB 버스와 같은 통신 경로(1030)을 통하여 제1 통신회로(1016)에 동작적으로 결합된다. 하나 이상의 호스트 프로세서(1044)는 제2 통신 회로(1042)와 동작적으로 결합되며, 적어도 하나의 호스트 프로세서(1044) 는 (적어도 부분적으로) 호스트 어플리케이션(1048)의 사용자 레벨 작업을 실행하는 역할을 한다.
트랙 패드 어레이(1012)의 센서 요소는 어레이(1012) 상에서 사용자 제스처(예를 들어, 도시된 두 손가락 제스처)를 수행하는 사용자에 응답하여 (예를 들어 원시 데이터와 같은) 데이터 값(1120)을 측정한다. 터치 패드 장치(1010)는 사용자 제스처를 나타내는 원시 측정 데이터 값을 처리하지 않는다. 대신에, 데이터 획득 회로(1014)가 어레이(1012)의 측정 데이터 값(1020)를 획득하고, 제1 통신 회로(1016)가 호스트 모듈(1040)의 제2 통신 회로(1042)에게 상기 측정 데이터 값(1020)을 전송한다. 호스트 모듈(1040)의 제스처 처리 소프트웨어(1046)는 적어도 하나의 호스트 프로세서(1044) 상에서 실행된다. 원시 데이터 값(1020)을 수신하면, 제스처 처리 소프트웨어(1046)는 트랙 패드 장치(1010)으로부터 전달된 원시 데이터 값(1020)을 해석하여, 호스트 어플리케이션(1048)이 사용자 레벨 작업으로서의 실행을 위해 해석된 데이터(1122)를 이용할 수 있도록 한다.
소프트웨어(1046)는 원시 데이터 값(1020)을 해석하기 위하여, 데이터를 처리하고 사용자 레벨 작업 또는 동작들이 호스트 모듈(1040)에서 구현될 수 있도록 데이터를 해석하기 위한 알고리즘을 사용한다. 위에서 사용되는 알고리즘은 터치 스크린에 사용되는 기존의 알고리즘, 터치 패드에서 제스처를 처리하는 기존의 알고리즘, 그리고 종래의 만년필형 터치 패드(fountain touch pad)에서 제공되는 네비게이션 기능을 위해 사용되는 기존의 알고리즘 등과 같이 이 기술 분야에서 이미 알려진 알고리즘들을 포함할 수 있다. 예를 들어, 소프트웨어(1046)는 미국 특허 번호 6,570,577 및 6,677,932, 그리고 미국 특허 공개 번호 2005/0104867 및 2002/0015024등(이들을 참조로써 본 명세서에 포함함)에 개시된 것과 같은 알고리즘을 사용할 수 있다.
간략하게, 시스템(1000)을 위한 예시적인 알고리즘은, 우선 제1 시점에 센서 어레이(1012)로부터 원시 행 및 열 데이터를 획득하여, 호스트 모듈(1040)로 이 원시 데이터를 전송하는 트랙 패드 장치(1010)를 수반할 수 있다. 소프트웨어(1046)는 위의 행 및 열 데이터를 현재 프레임으로서 수신한다. 그 다음에 소프트웨어(1046)는 상기 데이터를 필터링 또는 평탄화(smooth)하고, 현재 프레임의 행 및 열에서 증가된 신호를 생성한 구역의 수를 각각 샌다. 증가된 신호를 생성한 이들 구역은 트랙 패드 장치(1010)상의 사용자 손가락 그림에 대응한다. (세기가 증가된 구역은 여기서 핑거 카운트라고 지칭한다). 만약 현재 프레임의 행 또는 열 중 하나에서의 핑거 카운트가 0이라면, 현재 프레임에서 트랙 패드 장치(1010) 전체의 핑거 카운트가 0으로 간주된다. 그렇지 않으면 트랙 패드 장치(1010) 전체의 핑거 카운트가 행 핑거 카운트 또는 열 핑거 카운트의 최대치로 설정된다. 일단 현재 프레임의 최대 핑거 카운트가 인정되면, 이를 트랙 패드 장치(1010)에서 획득한 하나 이상의 이전 데이터 프레임의 최대 핑거 카운트와 비교한다. 만약 현재 프레임과 이전 프레임 사이에 최대 핑거 카운트가 변경되었다면, 이 변경의 상태를 검사하여, 핑거 카운트의 변경이 하나의 제스처를 의미하는 것인지 아니면 제스처의 일부를 의미하는 것인지 판단한다.
현재 핑거 카운트와 이전 핑거 카운트 사이의 상태를 검토할 때, 이전 핑거 카운트의 유지 시간을 고려할 수 있다. 일례로, 현재 프레임에서의 최대 핑거 카운트가 1인 반면, 이전 프레임의 최대 핑거 카운트는 2였을 수 있다. 만약 이전 프레임의 2-핑거 카운트가 250ms 이하로 지속되었다면, 사용자는 예를 들어 마우스 버튼 동작을 위한 제스처에 해당하는, 트랙 패드 장치(1010) 상의 제2의 손가락 탭핑을 행한 것이다. 다른 한편으로, 만약 이전 프레임의 2-핑거 카운트가 250ms 이상으로 지속되었다면, 사용자는 예를 들어 스크롤 동작을 수행하기 위한 제스처에 해당하는, 2-손가락 제스처를 이용한 것이며, 마우스 버튼 동작은 발생하지 않는다.
현재의 핑거 카운트와 이전의 핑거 카운트 사이의 상태를 검토할 때, 신호 세기가 증가한 구역의 위치(즉, 트랙 패드 장치(1010)상에서 사용자 손가락의 행과 열)를 고려할 수 있다. 일례로, 현재 프레임과 과거 프레임의 최대 핑거 카운트가 모두 2일수도 있다. 이전 프레임의 2-핑거 카운트가 현재 프레임의 제2 행 값 및 제2 열 값과 다른 제1 행 값 및 제1 열 값을 가졌다면, 사용자가 트랙 패드 장치(1010) 상에서 두 손가락을 이동한 것이고, 이는 스크롤 동작 등을 위한 제스처에 해당할 수 있다.
바람직한 실시예 및 기타 실시예에 대해 전술한 내용은 출원인이 고안한 발명의 사상의 범주 또는 응용 가능성을 제한 또는 한정하기 위함이 아니다. 이 명세서에 포함된 발명의 사상을 공개하는 대신에, 출원인은 첨부된 청구항에 의해 제공되는 모든 특허권을 원한다. 따라서 첨부된 청구항은 후술할 청구항 또는 이들의 균등 범위에 들어가는 범위 전부의 모든 수정 및 변경을 포함한다.

Claims (37)

  1. 터치 감지 영역(touch-sensing area)을 통해 실질적으로 분포된 복수의 전도성 라인들 - 각각의 전도성 라인은 상기 전도성 라인과 하나 이상의 다른 전도성 라인들 사이의 용량성 결합 커패시턴스(capacitive coupling capacitance)와 상기 전도성 라인의 자기-커패시턴스(self-capacitance) 중 하나를 가지고, 상기 터치 감지 영역에 접촉하거나 근접한 객체가 전도성 라인의 커패시턴스를 변경함 -, 복수의 상기 전도성 라인들 각각의 커패시턴스의 직접적인 표시인 디지털 값을 획득하는 데이터 획득 시스템, 및 범용 직렬 버스(universal serial bus) 프로토콜에 따라 패킷들로 취합된 상기 디지털 값들을 전송하는 제1 통신 회로를 포함하는 트랙 패드 장치(track pad device); 및
    통신 경로를 통하여 상기 제1 통신 회로에 동작적으로 결합되고(operatively coupled) 상기 디지털 값들을 수신하는 제2 통신 회로, 상기 제2 통신 회로에 동작적으로 결합된 하나 이상의 호스트 프로세서들 - 상기 호스트 프로세서들 중 적어도 하나는 적어도 부분적으로 호스트 어플리케이션의 사용자 레벨 작업들을 실행하는 역할을 함 -, 및 상기 호스트 프로세서들 중 적어도 하나에서 실행되고 상기 트랙 패드 장치로부터의 상기 디지털 값들을 해석하는 소프트웨어 - 상기 해석하는 것은 상기 터치 감지 영역에 접촉하거나 근접한 상기 객체의 이동 정보(movement information)를 계산하는 것과 사용자 레벨 작업으로서의 실행을 위해 상기 해석된 데이터를 상기 호스트 어플리케이션이 이용할 수 있도록 만드는 것을 포함함 - 를 포함하는 호스트 모듈
    을 포함하는 컴퓨터 시스템.
  2. 제1항에 있어서,
    상기 소프트웨어는, 하나 이상의 손가락으로 터치 및 슬라이딩 이동, 하나 이상의 손가락을 고정된 상태로 터치한 채 동시에 하나 이상의 손가락으로 터치 및 슬라이딩 이동, 두 개 이상의 손가락으로 터치 및 수축 이동, 두 개 이상의 손가락으로 터치 및 확장 이동, 및 손의 일부로 터치 및 이동 중 하나를 포함하는 사용자 제스처를 결정하도록 상기 디지털 값들을 해석하는, 컴퓨터 시스템.
  3. 제1항에 있어서,
    상기 호스트 어플리케이션의 상기 사용자 레벨 작업은 마우스 동작, 편집 동작, 커서 동작, 파일 동작, 어플리케이션 동작, 브라우저 동작, 및 키보드 동작 중 하나를 포함하는, 컴퓨터 시스템.
  4. 제3항에 있어서,
    상기 마우스 동작은 포인팅, 클릭, 더블 클릭, 오른쪽 클릭, 드래그/선택, 및 스크롤 중 하나를 포함하는, 컴퓨터 시스템.
  5. 제3항에 있어서,
    상기 편집 동작은 잘라내기, 복사하기, 붙이기, 이전 동작 취소하기, 및 이전 동작 반복하기 중 하나를 포함하는, 컴퓨터 시스템.
  6. 제3항에 있어서,
    상기 커서 동작은 커서 이동, 커서를 통한 선택, 커서 탭 이동(tab cursor), 커서를 처음 위치(home)로 이동, 커서를 마지막 위치(end)로 이동, 페이지 업, 및 페이지 다운 중 하나를 포함하는, 컴퓨터 시스템.
  7. 제3항에 있어서,
    상기 파일 동작은 파일 열기, 파일 닫기, 파일 저장하기, 새 파일, 파일 프린트, 다음 파일, 및 이전 파일 중 하나를 포함하는, 컴퓨터 시스템.
  8. 제3항에 있어서,
    상기 어플리케이션 동작은 데스크탑 보기, 어플리케이션 종료, 및 어플리케이션 창 전환 중 하나를 포함하는, 컴퓨터 시스템.
  9. 제3항에 있어서,
    상기 브라우저 동작은 뒤로, 앞으로, 스크롤, 확대(zoom in), 축소(zoom out), 및 페이지에서 찾기 중 하나를 포함하는, 컴퓨터 시스템.
  10. 제3항에 있어서,
    상기 키보드 동작은 쉬프트(shift), 컨트롤/명령(control/command), 및 선택(select) 키 중 하나를 포함하는, 컴퓨터 시스템.
  11. 제1항에 있어서,
    복수의 패킷들이 상기 범용 직렬 버스 프로토콜 하에서 단일 프레임으로 전송되는, 컴퓨터 시스템.
  12. 삭제
  13. 제1항에 있어서,
    상기 데이터 획득 시스템은 연속적인 전도성 라인들을 저장 커패시터에 전기적으로 결합하는 멀티플렉서 회로를 포함하는, 컴퓨터 시스템.
  14. 트랙 패드 장치에 동작적으로 결합된 호스트 모듈에 있어서,
    상기 트랙 패드 장치는, 터치 감지 영역을 통해 실질적으로 분포된 복수의 전도성 라인들 - 각각의 전도성 라인은 상기 전도성 라인과 하나 이상의 다른 전도성 라인들 사이의 용량성 결합 커패시턴스와 상기 전도성 라인의 자기-커패시턴스 중 하나를 가지고, 상기 터치 감지 영역에 접촉하거나 근접한 객체가 전도성 라인의 커패시턴스를 변경함 -, 복수의 상기 전도성 라인들 각각의 커패시턴스의 직접적인 표시인 디지털 값을 획득하는 데이터 획득 시스템, 및 범용 직렬 버스 프로토콜에 따라 패킷들로 취합된 상기 디지털 값들을 전송하는 제1 통신 회로를 포함하고,
    상기 호스트 모듈은,
    통신 경로를 통하여 상기 제1 통신 회로와 동작적으로 결합되고 상기 디지털 값들을 수신하는 제2 통신 회로;
    상기 제2 통신 회로와 동작적으로 결합된 하나 이상의 호스트 프로세서들 - 상기 호스트 프로세서들 중 적어도 하나는 적어도 부분적으로 호스트 어플리케이션의 사용자 레벨 작업을 실행하는 역할을 함 -; 및
    상기 호스트 프로세서들 중 적어도 하나에서 실행되고, 상기 트랙 패드 장치로부터의 상기 디지털 값들을 해석하는 소프트웨어 - 상기 해석하는 것은 상기 터치 감지 영역에 접촉하거나 근접한 상기 객체의 이동 정보를 계산하는 것과 사용자 레벨 작업으로서의 실행을 위해 상기 해석된 데이터를 상기 호스트 어플리케이션이 이용할 수 있도록 만드는 것을 포함함 -
    를 포함하는, 호스트 모듈.
  15. 제14항에 있어서,
    상기 소프트웨어는, 하나 이상의 손가락으로 터치 및 슬라이딩 이동, 하나 이상의 손가락을 고정된 상태로 터치한 채 동시에 하나 이상의 손가락으로 터치 및 슬라이딩 이동, 두 개 이상의 손가락으로 터치 및 수축 이동, 두 개 이상의 손가락으로 터치 및 확장 이동, 및 손의 일부로 터치 및 이동 중 하나를 포함하는 사용자 제스처를 결정하도록 상기 디지털 값들을 해석하는, 호스트 모듈.
  16. 제14항에 있어서,
    상기 사용자 레벨 작업은, 마우스 동작, 편집 동작, 커서 동작, 파일 동작, 어플리케이션 동작, 브라우저 동작, 및 키보드 동작 중 하나를 포함하는, 호스트 모듈.
  17. 제16항에 있어서,
    상기 마우스 동작은 포인팅, 클릭, 더블 클릭, 오른쪽 클릭, 드래그/선택, 및 스크롤 중 하나를 포함하는, 호스트 모듈.
  18. 제16항에 있어서,
    상기 편집 동작은 잘라내기, 복사하기, 붙이기, 이전 동작 취소하기, 및 이전 동작 반복하기 중 하나를 포함하는, 호스트 모듈.
  19. 제16항에 있어서,
    상기 커서 동작은 커서 이동, 커서를 통한 선택, 커서 탭 이동(tab cursor), 커서를 처음 위치(home)로 이동, 커서를 마지막 위치(end)로 이동, 페이지 업, 및 페이지 다운 중 하나를 포함하는, 호스트 모듈.
  20. 제16항에 있어서,
    상기 파일 동작은 파일 열기, 파일 닫기, 파일 저장하기, 새 파일, 파일 프린트, 다음 파일, 및 이전 파일 중 하나를 포함하는, 호스트 모듈.
  21. 제16항에 있어서,
    상기 어플리케이션 동작은 데스크탑 보기, 어플리케이션 종료, 및 어플리케이션 창 전환 중 하나를 포함하는, 호스트 모듈.
  22. 제16항에 있어서,
    상기 브라우저 동작은 뒤로, 앞으로, 스크롤, 확대(zoom in), 축소(zoom out), 및 페이지에서 찾기 중 하나를 포함하는, 호스트 모듈.
  23. 제16항에 있어서,
    상기 키보드 동작은 쉬프트(shift), 컨트롤/명령(control/command), 및 셀렉트(select) 키 중 하나를 포함하는, 호스트 모듈.
  24. 제14항에 있어서,
    복수의 패킷들이 상기 범용 직렬 버스 프로토콜 하에서 단일 프레임으로 전송되는, 호스트 모듈.
  25. 제14항에 있어서,
    상기 소프트웨어는, 상기 디지털 값들로부터 컴퓨터 명령을 판단 - 현재 프레임의 상기 디지털 값들을 평탄화(smooth)하고 상기 터치 감지 영역에 접촉하거나 근접한 객체에 대응하는 증가된 커패시턴스를 가지는 영역들의 수를 별도로 세며, 상기 현재 프레임의 최대 객체 수를 결정하고, 상기 현재 프레임의 상기 최대 객체 수를 하나 이상의 이전 프레임들에서의 최대 객체 수와 비교하며, 상기 사용자 레벨 작업으로서의 실행을 위해 상기 컴퓨터 명령을 상기 호스트 어플리케이션이 이용할 수 있도록 만드는 것을 포함함 - 하는 드라이버 어플리케이션을 포함하는, 호스트 모듈.
  26. 트랙 패드 장치의 터치 감지 영역을 통해 실질적으로 분포된 복수의 전도성 라인들의 커패시턴스들의 직접적인 표시들인 디지털 값들을 획득하는 단계 - 각각의 커패시턴스는 상기 전도성 라인들 중 하나와 하나 이상의 다른 전도성 라인들 사이의 용량성 결합 커패시턴스와 상기 전도성 라인들 중 하나의 자기-커패시턴스 중 하나이며, 상기 터치 감지 영역에 접촉하거나 근접한 객체가 전도성 라인의 커패시턴스를 변경함 - ;
    호스트 모듈의 하나 이상의 호스트 프로세서들에 범용 직렬 버스 프로토콜에 따라 패킷들로 취합된 상기 디지털 값들을 전송하는 단계 - 상기 호스트 프로세서들 중 적어도 하나는 적어도 부분적으로 호스트 어플리케이션의 사용자 레벨 작업들을 실행하는 역할을 함 - ;
    상기 호스트 프로세서들 중 적어도 하나에서 실행되는 소프트웨어로 상기 디지털 값들을 해석하는 단계 - 상기 터치 감지 영역에 접촉하거나 근접한 상기 객체의 이동 정보를 계산하는 단계를 포함함 - ; 및
    상기 호스트 어플리케이션에 의한 사용자 레벨 작업으로서의 실행을 위해, 상기 해석된 데이터를 상기 호스트 어플리케이션이 이용할 수 있도록 만드는 단계
    를 포함하는 방법.
  27. 제26항에 있어서,
    상기 디지털 값들을 해석하는 단계는, 하나 이상의 손가락으로 터치 및 슬라이딩 이동, 하나 이상의 손가락을 고정된 상태로 터치한 채 동시에 하나 이상의 손가락으로 터치 및 슬라이딩 이동, 두 개 이상의 손가락으로 터치 및 수축 이동, 두 개 이상의 손가락으로 터치 및 확장 이동, 및 손의 일부로 터치 및 이동 중 하나를 포함하는 사용자 제스처를 결정하는 단계를 더 포함하는, 방법.
  28. 제26항에 있어서,
    상기 사용자 레벨 작업은 마우스 동작, 편집 동작, 커서 동작, 파일 동작, 어플리케이션 동작, 브라우저 동작, 및 키보드 동작 중 하나를 포함하는, 방법.
  29. 제26항에 있어서,
    상기 디지털 값들을 획득하는 단계는 연속적인 전도성 라인들을 저장 커패시터에 전기적으로 결합하여 상기 전도성 라인들을 멀티플렉싱하는 단계를 포함하고, 상기 디지털 값들 중 하나는 각각의 결합 동안에 획득되는, 방법.
  30. 삭제
  31. 제26항에 있어서,
    복수의 패킷들이 상기 범용 직렬 버스 프로토콜 하에서 단일 프레임으로 전송되는, 방법.
  32. 제1항에 있어서,
    상기 전도성 라인들은 (i) 용량성 센서 어레이의 행들 및 (ii) 용량성 센서 어레이의 열들 중 적어도 하나를 포함하는, 컴퓨터 시스템.
  33. 제1항에 있어서,
    상기 전도성 라인들은 용량성 센서 어레이의 픽셀들을 포함하는, 컴퓨터 시스템.
  34. 제14항에 있어서,
    상기 전도성 라인들은 (i) 용량성 센서 어레이의 행들 및 (ii) 용량성 센서 어레이의 열들 중 적어도 하나를 포함하는, 호스트 모듈.
  35. 제14항에 있어서,
    상기 전도성 라인들은 용량성 센서 어레이의 픽셀들을 포함하는, 호스트 모듈.
  36. 제26항에 있어서,
    상기 전도성 라인들은 (i) 용량성 센서 어레이의 행들 및 (ii) 용량성 센서 어레이의 열들 중 적어도 하나를 포함하는, 방법.
  37. 제26항에 있어서,
    상기 전도성 라인들은 용량성 센서 어레이의 픽셀들을 포함하는, 방법.
KR1020087006252A 2004-09-24 2006-08-11 트랙 패드 장치의 원시 데이터를 처리하기 위한 시스템 및방법 KR100984630B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US10/949,060 US7719522B2 (en) 2004-09-24 2004-09-24 Raw data track pad device and system
WOPCT/US2005/033255 2005-09-15
PCT/US2005/033255 WO2006036607A1 (en) 2004-09-24 2005-09-15 Raw data track pad device and system
US11/232,299 2005-09-21
US11/232,299 US7728823B2 (en) 2004-09-24 2005-09-21 System and method for processing raw data of track pad device
PCT/US2006/031524 WO2007037806A1 (en) 2005-09-15 2006-08-11 System and method for processing raw data of track pad device

Publications (2)

Publication Number Publication Date
KR20080045201A KR20080045201A (ko) 2008-05-22
KR100984630B1 true KR100984630B1 (ko) 2010-09-30

Family

ID=56290845

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087006252A KR100984630B1 (ko) 2004-09-24 2006-08-11 트랙 패드 장치의 원시 데이터를 처리하기 위한 시스템 및방법

Country Status (1)

Country Link
KR (1) KR100984630B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011105768A2 (ko) 2010-02-23 2011-09-01 엘지전자 주식회사 단말기를 구비하는 냉장고 및 그 제어방법
US20120019453A1 (en) * 2010-07-26 2012-01-26 Wayne Carl Westerman Motion continuation of touch input
KR101936250B1 (ko) * 2012-01-13 2019-01-08 엘지전자 주식회사 전자책을 제공하는 단말 및 그 제어방법
KR101449159B1 (ko) * 2012-12-12 2014-10-08 (주)아이디피쉬 터치패널이 구비된 입력 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997018547A1 (en) * 1995-11-16 1997-05-22 Ure Michael J Multi-touch input device, method and system that minimize the need for memorization
WO1999038149A1 (en) 1998-01-26 1999-07-29 Wayne Westerman Method and apparatus for integrating manual input

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997018547A1 (en) * 1995-11-16 1997-05-22 Ure Michael J Multi-touch input device, method and system that minimize the need for memorization
WO1999038149A1 (en) 1998-01-26 1999-07-29 Wayne Westerman Method and apparatus for integrating manual input

Also Published As

Publication number Publication date
KR20080045201A (ko) 2008-05-22

Similar Documents

Publication Publication Date Title
US7728823B2 (en) System and method for processing raw data of track pad device
JP2013069350A (ja) トラックパッドデバイスの未加工データを処理するシステム及び方法
KR100920861B1 (ko) 원시 데이터 트랙 패드 장치 및 시스템
US9122947B2 (en) Gesture recognition
US9182884B2 (en) Pinch-throw and translation gestures
US20090051671A1 (en) Recognizing the motion of two or more touches on a touch-sensing surface
US9417728B2 (en) Predictive touch surface scanning
US5825352A (en) Multiple fingers contact sensing method for emulating mouse buttons and mouse operations on a touch sensor pad
US8830181B1 (en) Gesture recognition system for a touch-sensing surface
EP0777875B1 (en) Object position detector with edge motion feature
US8723825B2 (en) Predictive touch surface scanning
US8502785B2 (en) Generating gestures tailored to a hand resting on a surface
EP0609021A2 (en) Capacitive position sensor
WO2006036607A1 (en) Raw data track pad device and system
US20080165140A1 (en) Detecting gestures on multi-event sensitive devices
US8743061B2 (en) Touch sensing method and electronic device
JPH11511580A (ja) 圧力感知スクロールバー機能
JP2000181613A (ja) タッチスクリ―ン用複数同時入力分類方法および装置
GB2479457A (en) Correlating a transition from a first finger or prosthetic contact portion to a second contact portion with a function
US20120169640A1 (en) Electronic device and control method thereof
KR100984630B1 (ko) 트랙 패드 장치의 원시 데이터를 처리하기 위한 시스템 및방법
TW202201208A (zh) 觸控處理方法、裝置與觸控系統
WO2023129826A1 (en) Mouse device provided with multi-touch region on button
TW201027411A (en) Touch apparatus and touch method

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: 20130906

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140901

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150827

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160831

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180903

Year of fee payment: 9