KR101193057B1 - 복수의 센서 데이터 입력 방법 및 장치 - Google Patents

복수의 센서 데이터 입력 방법 및 장치 Download PDF

Info

Publication number
KR101193057B1
KR101193057B1 KR1020110031474A KR20110031474A KR101193057B1 KR 101193057 B1 KR101193057 B1 KR 101193057B1 KR 1020110031474 A KR1020110031474 A KR 1020110031474A KR 20110031474 A KR20110031474 A KR 20110031474A KR 101193057 B1 KR101193057 B1 KR 101193057B1
Authority
KR
South Korea
Prior art keywords
data
sensor
dll
mipi
value
Prior art date
Application number
KR1020110031474A
Other languages
English (en)
Other versions
KR20120113843A (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 엠텍비젼 주식회사
Priority to KR1020110031474A priority Critical patent/KR101193057B1/ko
Publication of KR20120113843A publication Critical patent/KR20120113843A/ko
Application granted granted Critical
Publication of KR101193057B1 publication Critical patent/KR101193057B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • H04L7/0033Correction by delay
    • H04L7/0041Delay of data signal

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

복수의 센서 데이터 입력 방법 및 장치가 개시된다. 복수의 MIPI 센서로부터 데이터를 입력받는 호스트 장치로서, 상기 호스트 장치에 연결된 제1 및 제2 MIPI 센서 중 제1 MIPI 센서로부터 입력되는 싱크 데이터를 지정된 DLL(Delay Lock Loop) 값에 따라 위상 시프트(phase shift)하여 출력하는 위상 시프트부; 및 상기 위상 시프트부로부터 출력된 상기 제1 MIPI 센서에 대한 싱크 데이터가 미리 설정된 데이터와 일치하지 않는 경우, 위상 시프트를 위한 DLL 값 변경 명령을 상기 위상 시프트부로 출력하는 검증부를 포함할 수 있다. 본 발명의 실시예에 따르면, 검증용 컨트롤 로직(control logic)의 추가만으로 하나의 데이터 변환부(MIPI PHY)를 통해 복수의 센서 데이터를 입력받을 수 있다.

Description

복수의 센서 데이터 입력 방법 및 장치{Method and device for input a plurality of sensors}
본 발명은 복수의 센서 데이터 입력 방법 및 장치에 관한 것이다.
최근 이동통신 단말기 또는 개인 휴대 정보 단말기(Personal Digital Assistant)등의 휴대용 단말기가 많이 사용되고 있는데, 이러한 휴대용 단말기는 단순한 전화 통화 또는 일정 관리 등의 목적뿐만 아니라 장착된 디지털 카메라에 의한 이미지 촬영하거나, 위성 방송의 시청, 게임, 컴퓨터 통신 및, 인터넷 접속 기능 등 그 활용범위가 갈수록 커지고 있다.
이와 같이, 휴대용 단말기는 다양한 응용 프로그램의 탑재 및 디스플레이의 고해상도화 등으로 인해 전송 데이터의 양이 급격히 증가하고 있다.
그러나, 이와 같은 휴대용 단말기의 발전은 내부의 배선 수 증가 및 EMI 잡음이 증대되는 경향이 있으므로, 예를 들어 MIPI(Mobile Industry Processor Interface) 등과 같이 직렬 인터페이스 기술을 이용하여 이러한 문제점을 해결하기 위한 시도가 이루어지고 있다.
현재의 어플리케이션 프로세서(AP, Application Processor)나 카메라 신호 프로세서(CSP, Camera Signal Processor)는 MIPI 센서의 입력을 받기 위한 구조로서 1개의 클럭(clock) 래인(lane)과 4개의 데이터 래인을 구비하고 있다.
예를 들어, 현재의 프로세서와 하나의 2래인 MIPI 센서는 도 1과 같이 연결될 것이다.
즉, 1개의 클럭과 2개 래인의 데이터가 센서(100)로부터 프로세서(즉, 호스트)(110)로 입력된다.
그러나 만일 해당 프로세서(100)가 2개의 2래인 MIPI 센서와 연결되어 데이터를 입력 받기 위해서는 도 2에 예시된 바와 같이 호스트가 2개의 센서(100a, 100b)로부터 각각 데이터를 입력받을 수 있도록 설계되어야 한다.
즉, 도 2에 도시된 바와 같이 2개의 센서 데이터 입력을 위해서는 데이터 싱크(data sync)를 맞추기 위해 2개의 클럭이 요구된다.
따라서, 도 3a에 도시된 바와 같이, 현재의 프로세서(110)는 하나의 클럭 래인만을 구비하고 있어, 2개의 MIPI 센서(100a, 100b)로부터 데이터를 모두 입력받을 수 없는 구조적 한계를 가지고 있다.
즉, 도 3a의 경우, 센서 1(sensor_1)(100b)는 클럭(Cp/Cn)에 동기되어 데이터가 정상적으로 입력될 수 있으나, 센서 0(sensor_0)(100a)의 경우는 클럭이 연결되어 있지 않아 거의 대부분의 데이터들이 위상(phase)가 맞지 않아 정상적인 데이터 입력이 이루어지지 않는다.
데이터 타이밍이 도시된 도 3b를 참조하면, 센서 0(100a)과 센서 1(100b)이 모두 0xA3이라는 데이터를 전송했을 때, Sensor 1(100b)은 정상적으로 0xA3을 입력 받지만, Sensor 0(100a)은 싱크(sync)가 맞지 않으므로 잘못된 값(예를 들어, 0x51)을 입력받게 된다.
이와 같이, 프로세서(110)에 데이터 래인이 남는 경우일지라도, 남는 데이터 래인들을 다른 센서로부터 데이터를 입력받기 위한 용도로 이용할 수는 없는 문제점이 있다.
전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 발명은 검증용 컨트롤 로직(control logic)의 추가만으로 하나의 데이터 변환부(MIPI PHY)를 통해 복수의 센서 데이터를 입력받을 수 있는 복수의 센서 데이터 입력 방법 및 장치를 제공하기 위한 것이다.
본 발명은 칩에서 패드(PAD)가 부족할 경우 클럭 패드를 제거함으로써 패드 확보가 가능해지는 복수의 센서 데이터 입력 방법 및 장치를 제공하기 위한 것이다.
본 발명의 이외의 목적들은 하기의 설명을 통해 쉽게 이해될 수 있을 것이다.
본 발명의 일 측면에 따르면, 복수의 MIPI(Mobile Industry Processor Interface) 센서로부터 데이터를 입력받는 호스트(Host) 장치로서, 상기 호스트 장치에 연결된 제1 및 제2 MIPI 센서 중 제1 MIPI 센서로부터 입력되는 싱크 데이터를 지정된 DLL(Delay Lock Loop) 값에 따라 위상 시프트(phase shift)하여 출력하는 위상 시프트부; 및 상기 위상 시프트부로부터 출력된 상기 제1 MIPI 센서에 대한 싱크 데이터가 미리 설정된 데이터와 일치하지 않는 경우, 위상 시프트를 위한 DLL 값 변경 명령을 상기 위상 시프트부로 출력하는 검증부를 포함하는 호스트 장치가 제공된다.
상기 제1 및 제2 MIPI 센서 중 상기 제1 MIPI 센서는 클럭 신호 라인이 상기 호스트 장치와 연결되지 않을 수 있다.
호스트 장치는, 상기 제1 및 제2 MIPI 센서로부터 입력되는 직렬(serial) 데이터인 싱크 데이터를 병렬(parallel) 데이터로 변환하여 출력하는 데이터 변환부를 더 포함하되, 상기 제1 MIPI 센서로부터 입력된 싱크 데이터는 병렬 데이터로 변환되어 상기 검증부로 입력될 수 있다.
호스트 장치는 상기 검증부를 통해 상기 제1 MIPI 센서의 센서 데이터를 입력받고, 상기 데이터 변환부를 통해 상기 제2 MIPI 센서의 센서 데이터를 입력받아 미리 지정된 이미지 처리를 수행하는 수신 블록을 더 포함할 수 있다.
상기 수신 블록은 듀얼 카메라 입력을 받을 수 있으므로 3차원 이미지 구현을 위한 처리를 수행할 수 있다.
상기 검증부는 데이터 셋업 타임(Ts, Data setup time) 및 데이터 홀드 타임(Data hold time)이 만족되어 미리 설정된 데이터와 일치하는 싱크 데이터가 입력되는 하나 이상의 DLL 값을 찾기 위해 상기 DLL 값 변경 명령을 반복적으로 출력할 수 있다.
상기 검증부는 복수의 DLL 값이 찾아진 경우, 해당 DLL 값들의 평균값을 최적 DLL 값으로 결정하여 상기 위상 시프트부가 센서 데이터를 위상 시프트하기 위한 DLL 값으로 지정되도록 할 수 있다.
상기 검증부는 복수의 DLL 값이 찾아진 경우, 해당 DLL 값들의 평균값보다 큰 DLL 값 중 어느 하나를 최적 DLL 값으로 결정하여 상기 위상 시프트부가 센서 데이터를 위상 시프트하기 위한 DLL 값으로 지정되도록 할 수 있다.
상기 호스트 장치는 카메라 신호 프로세서(CSP, Camera Signal Processor) 및 어플리케이션 프로세서(AP, Application Processor) 등 중 하나 이상으로 구현될 수 있다.
본 발명의 다른 측면에 따르면, 호스트(Host) 장치가 복수의 MIPI(Mobile Industry Processor Interface) 센서로부터 데이터를 입력받는 방법으로서, 센서 데이터의 위상 시프트(phase shift)를 위한 DLL(Delay Lock Loop) 값을 결정하는 단계 (a); 상기 호스트 장치에 연결된 제1 및 제2 MIPI 센서 중 제1 MIPI 센서로부터 입력되는 싱크 데이터를 결정된 DLL 값에 따라 위상 시프트하여 출력하는 단계 (b); 상기 출력된 싱크 데이터가 미리 설정된 데이터와 일치하는지 여부를 판단하는 단계 (c); 및 일치하지 않는 경우, 위상 시프트를 위한 DLL 값을 변경하여 상기 단계 (b) 및 (c)를 재수행하는 단계를 포함하는 복수의 센서 데이터 입력 방법이 제공된다.
상기 단계 (b)에서의 위상 시프트는 상기 호스트 장치와 클럭 신호 라인이 연결되지 않은 상기 제1 MIPI 센서의 싱크 데이터에 대해서만 수행할 수도 있다.
상기 제1 및 제2 MIPI 센서로부터 입력되는 직렬(serial) 데이터인 싱크 데이터를 병렬(parallel) 데이터로 변환하여 출력하는 단계가 상기 단계 (c)에 선행할 수 있다.
위상 시프트되고 병렬 데이터로 변환된 상기 제1 MIPI 센서의 센서 데이터 및 병렬 데이터로 변환된 상기 제2 MIPI 센서 데이터를 이용하여 미리 지정된 이미지 처리가 수행될 수 있다.
상기 이미지 처리는 3차원 이미지 구현을 위한 처리일 수 있다.
미리 설정된 DLL 값의 범위 내에서 데이터 셋업 타임(Ts, Data setup time) 및 데이터 홀드 타임(Data hold time)이 만족되어 미리 설정된 데이터와 일치하는 싱크 데이터가 입력되는 모든 DLL 값이 확인될 때까지 상기 단계 (a) 내지 (d)가 수행될 수 있다.
미리 설정된 데이터와 일치하는 싱크 데이터가 입력되는 복수의 DLL 값이 확인된 경우, 해당 DLL 값들의 평균값이 제1 MIPI 센서의 센서 데이터를 위상 시프트하기 위한 DLL 값으로 최종 결정될 수 있다.
미리 설정된 데이터와 일치하는 싱크 데이터가 입력되는 복수의 DLL 값이 확인된 경우, 해당 DLL 값들의 평균값보다 큰 DLL 값 중 임의의 어느 하나가 제1 MIPI 센서의 센서 데이터를 위상 시프트하기 위한 DLL 값으로 최종 결정될 수 있다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
본 발명의 실시예에 따르면, 검증용 컨트롤 로직(control logic)의 추가만으로 하나의 데이터 변환부(MIPI PHY)를 통해 복수의 센서 데이터를 입력받을 수 있는 효과가 있다.
또한, 칩에서 패드(PAD)가 부족할 경우 클럭 패드를 제거함으로써 패드 확보가 가능해지는 효과도 있다. 즉, 12 메가바이트 이상인 고화소 데이터를 입력받기 위해서는 MIPI 4래인(Lane)이 요구되며, 3차원 이미지를 구현하기 위해서는 2개의 센서가 요구된다. 이러한 요구를 만족시키기 위해서는 4래인을 입력받기 위한 MIPI 패드가 요구(4래인의 경우 클럭 및 데이터를 위한 10핀이 필요함)되고, 3차원 이미지를 구현하기 위해서 최소한 2래인의 MIPI 패드가 요구(2래인의 경우 클럭 및 데이터를 위한 6핀이 필요)된다. 그러나, 본 발명의 실시예에 따르면 2래인의 MIPI 패드가 불필요해지는 효과가 있다.
도 1은 호스트(Host)에 하나의 센서를 연결하는 방법을 나타낸 도면.
도 2는 호스트(Host)에 두 개의 센서를 연결하는 방법을 나타낸 도면.
도 3a 및 도 3b는 호스트(Host)에 두 개의 센서를 연결하는 방법과 데이터 타이밍(data timing)을 각각 나타낸 도면.
도 4는 본 발명의 일 실시예에 따른 호스트(Host)의 구성을 개략적으로 나타낸 블록 구성도.
도 5는 DLL(Delay Lock Loop)에 따른 데이터 타이밍을 나타낸 도면.
도 6은 본 발명의 일 실시예에 따른 데이터 싱크(data sync)를 맞추는 방법을 나타낸 순서도.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
또한, 명세서에 기재된 "…부", "…유닛", "…모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 4는 본 발명의 일 실시예에 따른 호스트(Host)의 구성을 개략적으로 나타낸 블록 구성도이고, 도 5는 DLL(Delay Lock Loop)에 따른 데이터 타이밍을 나타낸 도면이다.
도 4를 참조하면, 호스트(400)는 위상 시프트부(410), 데이터 변환부(420), 검증부(430), 수신 블록(440) 및 먹스(MUX)(450)를 포함할 수 있다.
호스트(400)는 예를 들어 복수의 MIPI 센서(100a, 100b)로부터 직렬 데이터(serial data)인 MIPI 데이터를 입력받아 처리하는 프로세서, 예를 들어 어플리케이션 프로세서(Application Processor), 카메라 신호 프로세서(Camera Signal Processor) 등 중 하나 이상일 수 있다.
호스트(400)에 연결되는 2개의 MIPI 센서들(100a, 100b)은 동일한 센서로서, 동일한 속도로 데이터를 출력하여야 한다.
위상 시프트부(410)는 센서 0(100a)으로부터 클럭 신호 없이 입력되는 데이터의 위상(Phase)을 DLL(Delay Lock Loop) 값에 따라 변경(shift)시킨다. 즉, 위상 시프트부(410)는 도 5에 예시된 바와 같이, 센서 0(100a)의 데이터 타이밍(Data timing)을 DLL 값에 따라 변경시킨다. 여기서, DLL 값은 입력신호의 위상을 바꾸기 위한 기능 수행을 위해 이용된다.
데이터 변환부(420)는 연결된 MIPI 센서들(100a 및 100b)로부터 입력되는 직렬 데이터를 병렬 데이터(parallel data)로 변경시켜 출력한다.
검증부(430)는 특정의 DLL 값에 따라 위상 시프트부(410) 및 데이터 변환부(420)로부터 입력되는 데이터가 정확한 데이터인지를 확인하고, 정확한 데이터인 경우 수신 블록(440)으로 해당 데이터를 출력한다. 그러나, 해당 데이터가 정확한 데이터가 아닌 경우에는 위상 시프트부(410)로 DLL 값 변경 명령을 출력하여 변경된 DLL 값에 따른 데이터가 출력되도록 한다. 즉, 검증부(430)는 위상 시프트부(410)의 데이터 출력을 위한 DLL 값 변경을 지시하고, 이에 따라 출력된 데이터의 적절성을 검증한다.
검증부(430)는 센서에 부여된 장치 ID, 센서에 대해 특정된 임의의 삽입 데이터(embedded data), 프레임의 시작을 나타내는 SOF(Start Of Frame) 등 중 하나 이상과 같이 해당 센서로부터 입력될 데이터로서 미리 알고 있는 데이터(후술되는 싱크 데이터(sync data))를 이용하여 클럭 신호와 무관하게 입력되는 데이터(즉, 도 4의 센서 0(100a)에서 입력되는 데이터)가 정확한 데이터인지 여부에 대한 검증을 수행한다. 검증부(430)의 동작에 관해서는 이후 순서도를 참조하여 상세히 설명하기로 한다.
수신 블록(440)은 데이터 변환부(420)에 의해 변경되어 출력되는 2개의 MIPI 센서들의 데이터를 이미지 처리한다. 이미지 처리는 예를 들어, 화질 개선(예를 들어, 렌즈 셰이딩 보상(lens shading compensation), 데드픽셀 보상(dead pixel compensation), 컬러 보간(color interpolation), 플릭커 검출(flicker detection) 등 중 하나 이상), 3차원 이미지 획득/처리(예를 들어, 듀얼 카메라 입력을 이용한 3차원 이미지 처리) 등 중 하나 이상일 수 있다.
먹스(MUX)(450)는 센서 0(100a)로부터 입력된 MIPI 센서 데이터 또는 위상 시프트부(410)에 의해 변경된 MIPI 센서 데이터 중 어느 하나를 출력한다. 만일 센서 0(100a)가 MIPI 4래인(lane) 센서인 경우라면, 데이터가 클럭에 동기되어 입력되므로 위상 시프트부(410)의 처리될 필요없이 기존 방식(즉, 도시된 센서 1(100b)과 같은 방식)으로 데이터 변환부(420)에 입력될 수 있다.
일반적으로, 직렬 데이터인 MIPI 데이터를 입력받기 위해서는 직렬 데이터를병렬 데이터로 변환하는 데이터 변환부(420)가 필요하며, 2개의 MIPI 센서(100a, 100b)로부터 데이터를 입력받아 처리하도록 하기 위해 2개의 데이터 변환부(420)가 필요하다.
그러나 본 실시예에 따른 호스트(400)는 도시된 바와 같이, 클럭(clock)을 입력 받지 않는 데이터 래인(Data lane)에 위상 시프트부(410)를 배치하고, 위상 시프트부(410)를 제어할 수 있는 검증부(430)를 데이터 변환부(420)의 후단에 배치함으로써 하나의 데이터 변환부(420) 만으로 복수의 MIPI 센서(100a, 100b)에 대한 데이터 처리가 가능한 특징을 가진다.
이하, 도 5를 참조하여 본 실시예에 따른 호스트(400)의 동작 과정을 간략히 설명한다.
도 5에 도시된 바와 같이, 센서 1(100b)의 데이터(Sensor_1 Data)는 센서 1(100b)의 클럭 신호(Sensor_1 Clock)에 동기(sync)되어 입력된다. 그러나, 클럭 신호가 없는 센서 0(100a)의 데이터에 대해 호스트(400)는 어떠한 타이밍에 어떻게 입력되는 것인지 인식할 수 없다.
따라서, 호스트(400)는 센서 0(100a)에 싱크 데이터(sync data)를 요청하고, 입력된 싱크 데이터가 정확한 데이터인지 여부를 판단한다.
싱크 데이터는 호스트(400)가 이미 알고 있는 데이터로서, 예를 들어 장치 ID(Device ID), SOF(Start of Frame) 데이터, 센서의 특정 삽입 데이터(embedded data) 등 중 하나 이상일 수 있다.
싱크 데이터가 정확한 데이터인지 여부는 검증부(430)에 의해 검증된다. 만일, 검증부(430)는 입력된 데이터가 싱크 데이터와 다른 데이터이거나(예를 들어, 싱크 데이터가 0xA3이지만 입력된 데이터는 0x51인 경우 등), 데이터 변환부(420)에서 에러(error)가 발생한 경우(예를 들어, 입력된 데이터가 MIPI 프로토콜 스펙에 존재하는 것으로서 다른 값인 인식되는 경우 등) 위상 시프트부(410)로 위상 시프트(phase shift)를 지시한다.
또한 호스트(400)는 시프트된 위상에서의 싱크 데이터 검증을 위해 센서 0(100a)으로 싱크 데이터의 전송을 다시 요청한다. 이러한 과정을 반복함으로써 동기된 데이터의 위상을 찾을 수 있다.
DLL 값을 조절하며 센서 0(100a)으로부터 데이터를 입력받을 때, 도 5에 도시된 바와 같이, DLL이 3 내지 5인 경우 정상적으로 데이터가 입력될 수 있다. 그러나 경우에 따라서 DLL이 3인 경우 데이터 홀드 타임(Th, Data hold time)이 문제될 수 있고, DLL이 5인 경우 데이터 셋업 타임(Ts, Data setup time)이 문제될 수도 있다.
여기서, 데이터 셋업 타임은 입력되는 데이터를 인식하기 위해 클럭 에지(Clock edge) 이전에 유지되어야 하는 시간을 의미하고, 데이터 홀드 타임은 입력되는 데이터를 인식하기 위해 클럭 에지 이후에 유지되어야 하는 시간을 의미한다. 데이터 홀드 타임과 데이터 셋업 타임은 반도체 칩마다 고유하게 지정될 수 있고, 위상을 바꾸어가면서 정상적인 데이터가 인식되면 해당 시간들이 맞은 것으로 판단될 수 있다.
도 6은 본 발명의 일 실시예에 따른 데이터 싱크(data sync)를 맞추는 방법을 나타낸 순서도이다.
도 6을 참조하여 데이터 싱크(data sync)를 맞추는 방법을 설명함에 있어, 도 4의 구성과 같이 센서 1(100b)만이 클럭 신호와 함께 데이터를 입력하는 것으로 가정하여 설명한다.
도 6을 참조하면, 단계 610에서 호스트(400)는 연결된 MIPI 센서들(100a, 100b)의 동작을 위한 센서 초기화를 수행한다.
단계 615에서, 호스트(400)는 연결된 MIPI 센서들(100a, 100b)에 싱크 데이터의 전송을 요청한다.
단계 620에서 호스트(400)는 데이터 셋업 타임(Ts) 및 데이터 홀드 타임(Th)을 찾기 위해 DLL 카운트를 1만큼 증가시키고, 단계 625로 진행하여 센서 0(100a)으로부터 수신한 싱크 데이터가 미리 설정된 싱크 데이터와 일치하는지 판단한다. 단계 625에서 센서 0(100a)의 싱크 데이터만의 일치 여부를 판단하는 이유는 센서 1(100b)의 싱크 데이터는 클럭 신호와 함께 인가되기 때문에 일치 여부의 판단이 불필요하기 때문이다.
단계 625의 판단에 의해 센서 0(100a)의 싱크 데이터가 미리 설정된 싱크 데이터와 일치하지 않는 경우에는, 일치하는 싱크 데이터로 판단될 때까지 단계 615 내지 단계 625를 반복하여 수행한다.
그러나, 만일 일치하는 싱크 데이터로 판단되면, 단계 630으로 진행하여 DLL 값(dllValue)을 DLL 카운트에서 1만큼 차감한 값으로 설정한다. DLL 카운트에서 1만큼 차감하는 이유는 단계 620에서 DLL 카운트를 1만큼 증가한 값에서 판단하였기 때문이다. 또한, 보다 정확한 데이터 셋업 타임(Ts) 및 데이터 홀드 타임(Th)을 찾기 위한 이후의 절차를 진행하기 위해 DLL 카운트를 0으로 초기화한다.
이어서, 단계 635에서 호스트(400)는 연결된 MIPI 센서들(100a, 100b)에 싱크 데이터의 전송을 다시 요청하고, 단계 640에서 호스트(400)는 DLL 카운트를 1만큼 증가시킨다.
앞서 단계 625에 의해 데이터 셋업 타임(Ts) 및 데이터 홀드 타임(Th)이 만족된 DLL 값으로부터 DLL 카운트를 1씩 증가(즉, DLL 값도 1씩 증가)시키면서 센서 0(100a)으로부터 싱크 데이터가 정확하게 입력되지 않는 DLL 값이 될 때까지 단계 635 내지 단계 645를 반복한다. 데이터 셋업 타임(Ts) 및 데이터 홀드 타임(Th)이 만족되는 DLL 값들을 찾기 위해 단계 635 내지 단계 645는 반복 수행된다.
이러한 과정을 통해 앞서 도 5에 도시된 DLL 값인 3, 4 및 5가 검출될 수 있다. 즉, 센서 0(100a)의 데이터는 센서 1(100b)의 클럭 신호 기반으로 볼 때 DLL 값이 0 내지 7인 타이밍 중 하나 이상으로 입력될 것입니다. 이때, 센서 0(100a)의 데이터가 센서 1(100b)의 데이터와 같은 주기일 수도 있고, 한 주기가 빠르거나 느릴 수도 있을 것이다.
그러나 센서 0(100a)의 데이터를 정확히 인식하기 위해서 센서 0(100a)의 데이터가 센서 1(100b)의 데이터와 동일한 시점에 입력될 필요는 없다. 즉, 데이터 셋업 타임(Ts) 및 데이터 홀드 타임(Th)이 만족되기만 하면, 타이밍이 어느 정도 불일치할지라도 정상적으로 데이터가 인식될 수 있다. 따라서, 도 5의 경우 DLL 값이 4인 경우 데이터 인식이 가능함은 당연하며, DLL 값이 3 또는 5인 경우에도 데이터 셋업 타임(Ts) 및 데이터 홀드 타임(Th)이 만족되기만 하면 싱크 데이터를 정확히 인식할 수 있음은 당연하다.
단계 650에서 호스트(400)는 찾은 DLL 값들(즉, 데이터 셋업 타임(Ts) 및 데이터 홀드 타임(Th)이 만족되는 DLL 값들) 중에서 최적의 DLL 값을 선택하고, 위상 시프트부(410)에서 적용되도록 한다.
최적의 DLL 값을 선택하는 방법은 다양할 수 있으며, 일 예로는 찾은 DLL 값들의 평균값을 최적의 DLL 값으로 적용할 수 있다. 앞서 도 5에 예시된 바와 같이, 찾은 DLL 값이 3, 4 및 5인 경우 그 평균값인 4를 최적의 DLL 값으로 선택할 수 있다.
다른 예로는, 복수의 DLL 값이 찾아진 경우, 평균값보다 뒤쪽에 위치하는 임의의 DLL 값을 최적의 DLL 값으로 선택할 수도 있다. 앞서 도 5에 예시된 바와 같이, 찾은 DLL 값이 3, 4 및 5인 경우 그 평균값인 4보다 뒤쪽에 위치하는 5를 최적의 DLL 값으로 선택할 수 있고, 찾은 DLL 값이 2부터 6까지라면 5 또는 6을 최적의 DLL 값으로 선택할 수 있다. 이는, 일반적으로 데이터 셋업 타임이 길고 데이터 홀드 타임이 짧기 때문이다.
최적의 DLL 값을 선택하기 위한 방법이 예를 들어 검증부(430)에 적용될 컨트롤 로직에 포함되거나, 레지스터로 세팅하여 가변적으로 선택되도록 할 수도 있을 것이다.
이후 단계 655에서 호스트(400)는 연결된 각 MIPI 센서(100a, 100b)로 센서 데이터의 전송을 요청한다. 호스트(400)는 최적의 DLL 값에 따라 위상 시프트되고 병렬 데이터로 변환된 센서 0(100a)의 센서 데이터와 병렬 데이터로 변환된 센서 1(100b)의 센서 데이터를 이용하여 미리 지정된 이미지 처리(예를 들어, 3차원 이미지 구현 등)를 수행할 것이다.
상술한 복수의 센서 데이터 입력 방법은 호스트(400)에 내장된 소프트웨어 프로그램 등에 의해 시계열적 순서에 따른 자동화된 절차로 수행될 수도 있음은 자명하다. 상기 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 프로그램은 컴퓨터가 읽을 수 있는 정보저장매체에 저장되고, 컴퓨터에 의하여 읽혀지고 실행됨으로써 상기 방법을 구현한다. 상기 정보저장매체는 자기 기록매체, 광 기록매체 및 캐리어 웨이브 매체를 포함한다.
상기에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
400 : 호스트
410 : 위상 시프트부
420 : 데이터 변환부
430 : 검증부
440 : 수신 블록
450 : 먹스

Claims (18)

  1. 복수의 MIPI(Mobile Industry Processor Interface) 센서로부터 데이터를 입력받는 호스트(Host) 장치로서,
    상기 호스트 장치에 연결된 제1 및 제2 MIPI 센서 중 제1 MIPI 센서로부터 입력되는 싱크 데이터를 지정된 DLL(Delay Lock Loop) 값에 따라 위상 시프트(phase shift)하여 출력하는 위상 시프트부; 및
    상기 위상 시프트부로부터 출력된 상기 제1 MIPI 센서에 대한 싱크 데이터가 미리 설정된 데이터와 일치하지 않는 경우, 위상 시프트를 위한 DLL 값 변경 명령을 상기 위상 시프트부로 출력하는 검증부를 포함하는 호스트 장치.
  2. 제1항에 있어서,
    상기 제1 및 제2 MIPI 센서 중 상기 제1 MIPI 센서는 클럭 신호 라인이 상기 호스트 장치와 연결되지 않는 것을 특징으로 하는 호스트 장치.
  3. 제1항에 있어서,
    상기 제1 및 제2 MIPI 센서로부터 입력되는 직렬(serial) 데이터인 싱크 데이터를 병렬(parallel) 데이터로 변환하여 출력하는 데이터 변환부를 더 포함하되,
    상기 제1 MIPI 센서로부터 입력된 싱크 데이터는 병렬 데이터로 변환되어 상기 검증부로 입력되는 것을 특징으로 하는 호스트 장치.
  4. 제3항에 있어서,
    상기 검증부를 통해 상기 제1 MIPI 센서의 센서 데이터를 입력받고, 상기 데이터 변환부를 통해 상기 제2 MIPI 센서의 센서 데이터를 입력받아 미리 지정된 이미지 처리를 수행하는 수신 블록을 더 포함하는 것을 특징으로 하는 호스트 장치.
  5. 제4항에 있어서,
    상기 수신 블록은 3차원 이미지 구현을 위한 처리를 수행하는 것을 특징으로 하는 호스트 장치.
  6. 제1항에 있어서,
    상기 검증부는 데이터 셋업 타임(Ts, Data setup time) 및 데이터 홀드 타임(Data hold time)이 만족되어 미리 설정된 데이터와 일치하는 싱크 데이터가 입력되는 하나 이상의 DLL 값을 찾기 위해 상기 DLL 값 변경 명령을 반복적으로 출력하는 것을 특징으로 하는 호스트 장치.
  7. 제6항에 있어서,
    상기 검증부는 복수의 DLL 값이 찾아진 경우, 해당 DLL 값들의 평균값을 최적 DLL 값으로 결정하여 상기 위상 시프트부가 센서 데이터를 위상 시프트하기 위한 DLL 값으로 지정되도록 하는 것을 특징으로 하는 호스트 장치.
  8. 제6항에 있어서,
    상기 검증부는 복수의 DLL 값이 찾아진 경우, 해당 DLL 값들의 평균값보다 큰 DLL 값 중 어느 하나를 최적 DLL 값으로 결정하여 상기 위상 시프트부가 센서 데이터를 위상 시프트하기 위한 DLL 값으로 지정되도록 하는 것을 특징으로 하는 호스트 장치.
  9. 제1항에 있어서,
    상기 호스트 장치는 카메라 신호 프로세서(CSP, Camera Signal Processor) 및 어플리케이션 프로세서(AP, Application Processor) 중 하나 이상으로 구현되는 것을 특징으로 하는 호스트 장치.
  10. 호스트(Host) 장치가 복수의 MIPI(Mobile Industry Processor Interface) 센서로부터 데이터를 입력받는 방법으로서,
    상기 호스트 장치에 연결된 제1 및 제2 MIPI 센서 중 제1 MIPI 센서의 센서 데이터의 위상 시프트(phase shift)를 위한 DLL(Delay Lock Loop) 값을 결정하는 단계 (a);
    상기 제1 MIPI 센서로부터 입력되는 싱크 데이터를 결정된 DLL 값에 따라 위상 시프트하여 출력하는 단계 (b);
    상기 출력된 싱크 데이터가 미리 설정된 데이터와 일치하는지 여부를 판단하는 단계 (c); 및
    일치하지 않는 경우, 위상 시프트를 위한 DLL 값을 변경하여 상기 단계 (b) 및 (c)를 재수행하는 단계 (d)를 포함하는 복수의 센서 데이터 입력 방법.
  11. 제10항에 있어서,
    상기 단계 (b)에서의 위상 시프트는 상기 호스트 장치와 클럭 신호 라인이 연결되지 않은 상기 제1 MIPI 센서의 싱크 데이터에 대해서만 수행하는 것을 특징으로 하는 복수의 센서 데이터 입력 방법.
  12. 제10항에 있어서,
    상기 제1 및 제2 MIPI 센서로부터 입력되는 직렬(serial) 데이터인 싱크 데이터를 병렬(parallel) 데이터로 변환하여 출력하는 단계가 상기 단계 (c)에 선행하는 것을 특징으로 하는 복수의 센서 데이터 입력 방법.
  13. 제12항에 있어서,
    위상 시프트되고 병렬 데이터로 변환된 상기 제1 MIPI 센서의 센서 데이터 및 병렬 데이터로 변환된 상기 제2 MIPI 센서 데이터를 이용하여 미리 지정된 이미지 처리가 수행되는 것을 특징으로 하는 복수의 센서 데이터 입력 방법.
  14. 제13항에 있어서,
    상기 이미지 처리는 3차원 이미지 구현을 위한 처리인 것을 특징으로 하는 복수의 센서 데이터 입력 방법.
  15. 제10항에 있어서,
    미리 설정된 DLL 값의 범위 내에서 데이터 셋업 타임(Ts, Data setup time) 및 데이터 홀드 타임(Data hold time)이 만족되어 미리 설정된 데이터와 일치하는 싱크 데이터가 입력되는 모든 DLL 값이 확인될 때까지 상기 단계 (a) 내지 (d)가 수행되는 것을 특징으로 하는 복수의 센서 데이터 입력 방법.
  16. 제15항에 있어서,
    미리 설정된 데이터와 일치하는 싱크 데이터가 입력되는 복수의 DLL 값이 확인된 경우, 해당 DLL 값들의 평균값이 제1 MIPI 센서의 센서 데이터를 위상 시프트하기 위한 DLL 값으로 최종 결정되는 것을 특징으로 하는 복수의 센서 데이터 입력 방법.
  17. 제15항에 있어서,
    미리 설정된 데이터와 일치하는 싱크 데이터가 입력되는 복수의 DLL 값이 확인된 경우, 해당 DLL 값들의 평균값보다 큰 DLL 값 중 임의의 어느 하나가 제1 MIPI 센서의 센서 데이터를 위상 시프트하기 위한 DLL 값으로 최종 결정되는 것을 특징으로 하는 복수의 센서 데이터 입력 방법.
  18. 제10항 내지 제17항 중 어느 하나에 기재된 복수의 센서 데이터 입력 방법을 수행하기 위하여 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체.
KR1020110031474A 2011-04-06 2011-04-06 복수의 센서 데이터 입력 방법 및 장치 KR101193057B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110031474A KR101193057B1 (ko) 2011-04-06 2011-04-06 복수의 센서 데이터 입력 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110031474A KR101193057B1 (ko) 2011-04-06 2011-04-06 복수의 센서 데이터 입력 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20120113843A KR20120113843A (ko) 2012-10-16
KR101193057B1 true KR101193057B1 (ko) 2012-10-22

Family

ID=47283232

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110031474A KR101193057B1 (ko) 2011-04-06 2011-04-06 복수의 센서 데이터 입력 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101193057B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9697168B2 (en) 2015-03-25 2017-07-04 Intel Corporation Apparatus, system and method for sharing physical layer logic across multiple protocols
CN112086064B (zh) * 2020-09-22 2022-04-26 禹创半导体(深圳)有限公司 一种mipi指令比对机制应用于背光调整的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100231285A1 (en) 2009-03-12 2010-09-16 Boomer James B Mipi analog switch for automatic selection of multiple image sensors
JP2010206747A (ja) 2009-03-06 2010-09-16 Toshiba Corp 半導体装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010206747A (ja) 2009-03-06 2010-09-16 Toshiba Corp 半導体装置
US20100231285A1 (en) 2009-03-12 2010-09-16 Boomer James B Mipi analog switch for automatic selection of multiple image sensors

Also Published As

Publication number Publication date
KR20120113843A (ko) 2012-10-16

Similar Documents

Publication Publication Date Title
US20150220472A1 (en) Increasing throughput on multi-wire and multi-lane interfaces
WO2012063949A1 (ja) 画像出力装置、画像出力方法、画像処理装置、画像処理方法、プログラム、データ構造、および撮像装置
US9456147B2 (en) Video generating system with multiple image sensors and related method thereof
WO2018017232A1 (en) Signaling camera configuration changes using metadata defined for a camera command set
JP5100489B2 (ja) 撮像装置及び当該装置における信号処理方法
US11509410B2 (en) Method for a slave device for calibrating its output timing, method for a master device for enabling a slave device to calibrate its output timing, master device and slave device
CN101729237B (zh) 串行信号接收装置、串行发送系统、和串行发送方法
CN106612395B (zh) 陀螺仪和致动器驱动电路的光学图像增稳同步方法
KR101193057B1 (ko) 복수의 센서 데이터 입력 방법 및 장치
US20110228105A1 (en) Data transfer device and electronic camera
KR102401996B1 (ko) 타이밍 조절이 가능한 고속 멀티 레벨 신호 수신기를 포함하는 반도체 장치 및 상기 수신기를 포함하는 반도체 테스트 장치
CN108471308B (zh) 半导体装置以及数据同步方法
US10057524B2 (en) Image capturing apparatus
JP6356972B2 (ja) 記録装置、撮像装置、及び記録装置の制御方法
CN112838860A (zh) 数据输出方法、装置和系统
CN113132044B (zh) 音频同步处理电路及其方法
CN111901533B (zh) 一种图像数据通道分时复用的采集方法和系统
JP6985846B2 (ja) 信号処理装置及び信号処理方法
WO2011129050A1 (ja) 半導体集積回路およびそれを備えた撮像システム
KR100734521B1 (ko) 시스템 온 칩을 위한 ip 모듈
JP3719413B2 (ja) データ伝送システム及びそれに用いられるデータ送受信装置と、その方法
JP5123770B2 (ja) 画像処理装置及びプログラム
US20090172334A1 (en) Data sorting device and method thereof
JP2021087052A (ja) 通信システム、及び通信システムにおける制御方法
KR20240120481A (ko) 이미지 프로세서 및 이를 포함하는 이미지 처리 시스템

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 7