KR20240004481A - 인터칩을 구비한 다중칩 카메라 제어기 시스템 - Google Patents

인터칩을 구비한 다중칩 카메라 제어기 시스템 Download PDF

Info

Publication number
KR20240004481A
KR20240004481A KR1020237038350A KR20237038350A KR20240004481A KR 20240004481 A KR20240004481 A KR 20240004481A KR 1020237038350 A KR1020237038350 A KR 1020237038350A KR 20237038350 A KR20237038350 A KR 20237038350A KR 20240004481 A KR20240004481 A KR 20240004481A
Authority
KR
South Korea
Prior art keywords
camera controller
controller device
primary
communication link
secondary camera
Prior art date
Application number
KR1020237038350A
Other languages
English (en)
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 US17/320,528 external-priority patent/US20210356843A1/en
Application filed by 시러스 로직 인터내셔널 세미컨덕터 리미티드 filed Critical 시러스 로직 인터내셔널 세미컨덕터 리미티드
Priority claimed from PCT/US2022/027863 external-priority patent/WO2022235928A1/en
Publication of KR20240004481A publication Critical patent/KR20240004481A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/67Focus control based on electronic image sensor signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices
    • H04N23/661Transmitting camera control signals through networks, e.g. control via the Internet
    • H04N23/662Transmitting camera control signals through networks, e.g. control via the Internet by using master/slave camera arrangements for affecting the control of camera image capture, e.g. placing the camera in a desirable condition to capture a desired image
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/14Two-way operation using the same type of signal, i.e. duplex
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • H04N17/002Diagnosis, testing or measuring for television systems or their details for television cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6812Motion detection based on additional sensors, e.g. acceleration sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • H04N23/685Vibration or motion blur correction performed by mechanical compensation
    • H04N23/687Vibration or motion blur correction performed by mechanical compensation by shifting the lens or sensor position

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Studio Devices (AREA)
  • Lens Barrels (AREA)
  • Structure And Mechanism Of Cameras (AREA)

Abstract

위치 센서로부터 수신된 센서 데이터와 호스트 프로세서로부터 수신된 이미지 센서 및/또는 렌즈에 대한 위치 정보를 기반으로 이미지 센서 및/또는 렌즈를 제어하기 위해 액추에이터를 사용하는 시스템은 프라이머리 카메라 제어기 디바이스, 적어도 하나의 세컨더리 카메라 그리고 프라이머리 카메라 제어기 디바이스와 세컨더리 카메라 제어기 디바이스를 연결하는 적어도 하나의 통신 링크를 포함한다. 상기 프라이머리 카메라 제어기 디바이스는 수신된 센서 데이터와 수신된 위치 정보를 처리하여 제어 데이터를 생성하고, 제어 데이터의 세컨더리 부분을 통신 링크를 통해 세컨더리 카메라 제어기 디바이스에게 전송하며, 그리고 상기 제어 데이터의 프라이머리 부분을 액추에이터에게로 구동한다. 상기 프라이머리 카메라 제어기 디바이스가 상기 제어 데이터의 프라이머리 부분을 액추에이터들에게로 구동하는 것과 동시에 상기 세컨더리 카메라 제어기 디바이스는 상기 제어 데이터의 수신된 세컨더리 부분을 상기 액추에이터들에게로 구동한다. 위치 센서로부터 수신된 센서 데이터에 기반하여 그리고 호스트 프로세서로부터 수신된 이미지 센서 및/또는 렌즈에 대한 위치 정보를 기반으로 이미지 센서 및/또는 렌즈를 제어하기 위해 액추에이터를 사용하는 시스템은 프라이머리 카메라 제어기 디바이스, 적어도 하나의 세컨더리 카메라 그리고 상기 프라이머리 카메라 제어기 디바이스와 상기 적어도 하나의 세컨더리 카메라 제어기 디바이스를 연결하는 적어도 하나의 통신 링크를 포함한다. 프라이머리 및 세컨더리 카메라 제어기 디바이스들은 위치 센서로부터 각자의 프라이머리 및 세컨더리 센서 데이터를 수신하고, 각자의 프라이머리 및 세컨더리 센서 데이터를 통신 링크를 통해 다른 카메라 제어기 디바이스로 보내고, 프라이머리 및 세컨더리 센서 데이터와 위치 정보를 처리하여 각자의 프라이머리 및 세컨더리 제어 데이터를 생성하며, 그리고 각자의 프라이머리 및 세컨더리 제어 데이터를 액추에이터들에게로 동시에 구동한다.

Description

인터칩을 구비한 다중칩 카메라 제어기 시스템
관련 출원에 대한 상호 참조
본 출원은 2021년 5월 14일에 출원된 미국 정규 출원 번호 17/320,528의 일부 계속 출원(continuation-in-part)이며, 이 출원은 2020년 5월 14일에 출원된 미국 가출원 일련번호 63/024,735에 기초하여 우선권을 주장하며 그리고 2021년 5월 7일에 출원된 미국 가출원 일련번호 63/186,022에 기초하여 우선권을 주장하며, 이들 각각은 그 전체가 본원에 참조로 포함되며, 그리고 본 출원은 2021년 5월 7일에 출원된 미국 가출원 일련 번호 63/186,022에 기초하여 우선권을 주장한다.
카메라 제어기는 카메라 (예를 들어, 카메라 렌즈 및 부품)를 제어하고 구동하는데 사용되며, 이러한 제어기 및 카메라는 스마트폰, 태블릿, 컴퓨터 등의 애플리케이션에 사용된다. 이러한 제어기나 디바이스는 카메라 렌즈와 부품으로부터 데이터를 얻고 처리하는 것을 필요로 한다. 카메라 제어기와 카메라 간의 데이터(예: 데이터 스트림 및 하위 스트림)의 정확하고 효율적인 전달 및 관리는 매우 중요하다. 그러한 데이터의 전달 및 관리의 예는 발명자가 James McFarland, Nariankadu Hemkumar, Sachin Deo 및 Younes Djadi인 2018년 7월 25일에 출원된 "FLEXIBLE LATENCY-MINIZED DELIVERY AND MANAGEMENT OF DISPARATE-RATE DATA STREAMS AND SUB-STREAMS FOR PROCESSING"이라는 제목의 미국 특허 출원 번호 16/522580에 의해 제공되며 (이하에서 "580 특허 출원"으로 언급됨), 이 출원인 2021년 1월 28일에 미국 특허 출원 공개 2021/0029319로 공개되었다. 580 특허 출원은 그 전체 내용이 참고로 본원에 포함된다.
본 개시의 실시예는 카메라 제어기 시스템에서 둘 이상의 디바이스들을 연결하는 통신 링크를 설명한다. 카메라 제어기 시스템은 센서로부터 센서 데이터를 수신하고 액추에이터, 예를 들면, 음성 코일 모터를 제어하는 두 개 이상의 카메라 제어기 디바이스를 포함한다. 카메라 제어기 시스템에는 프라이머리 디바이스를 세컨더리 디바이스에 연결하는 통신 링크도 포함된다. 상기 통신 링크는 반이중 (half-duplex) 모드 또는 전이중 모드 (full- duplex)로 작동할 수 있다. 호스트 프로세서는 카메라 제어기 시스템과 통신한다. 카메라 모듈은 카메라 제어기 시스템, 이미지 센서, 이미지 센서를 배치하는 액추에이터, 이미지 센서의 위치 데이터를 감지하는 센서를 포함할 수 있다.
상기 통신 링크는 동기식 및 시간 결정적 (time critical) 동작을 지원한다. 상기 통신 링크는 반이중 구성의 단일 와이어 또는 전이중 구성의 두 개 와이어를 포함하는 클록 없는 인터페이스를 포함할 수 있다. 통신 링크는 프라이머리 (primary) 디바이스와 세컨더리 (secondary) 디바이스 간에 음성 코일 모터(voice coil motor, VCM) 데이터와 센서 데이터를 전송한다. 상기 통신 링크는 프라이머리 디바이스로부터 세컨더리 디바이스로 제어 및 상태 정보를 전달한다. 통신 링크는 센서 데이터와 상태 정보를 세컨더리 디바이스로부터 프라이머리 디바이스로 전달한다. 통신 링크를 통해 프라이머리 디바이스는 세컨더리 디바이스의 메모리 및 레지스터에 액세스할 수 있다. 통신 링크는 유휴 (idle) 및 활성 모드에서 단일 비트 오류를 검출할 수 있다. 통신 링크에서의 데이터 전달은 개방 루프 모드에서는 호스트 프로세서에 의해 또는 폐쇄 루프 모드에서는 디바이스 DSP(디지털 신호 프로세서) 프레임에 의해 트리거된다. 통신 링크는 프라이머리 디바이스와 세컨더리 디바이스 간의 센서 데이터 캡처 및 VCM 드라이버 데이터 애플리케이션을 동기화하는 데 사용될 수 있다. 전송 측에서, 패킷 전송의 완료를 수신기에 표시하기 위해 플러시 바이트(예: OxFF)가 패킷 끝에 추가될 수 있다. 수신 측에서, 수신기 상태 머신은 플러시 바이트가 검출되거나 외부 노이즈 소스로 인해 비트가 뒤집힐 때 발생할 수 있는 패리티 오류 검출 시 다시 동기화한다. 세컨더리 디바이스 DSP 프레임은 프라이머리 디바이스 DSP 프레임에 동기화될 수 있다.
본 개시 내용의 실시예는 2개 이상의 디바이스로 확장될 수 있다.
일 실시예에서, 본 개시는 위치 센서로부터 수신된 센서 데이터에 기초하며 그리고 호스트로부터 수신된 이미지 센서 및/또는 렌즈에 대한 위치 정보에 기초하여 이미지 센서 및/또는 렌즈를 제어하기 위해 액추에이터를 사용하기 위한 시스템을 제공한다. 상기 시스템은 프라이머리 카메라 제어기 디바이스, 적어도 하나의 세컨더리 카메라 제어기 디바이스, 그리고 프라이머리 카메라 제어기 디바이스와 적어도 하나의 세컨더리 카메라 제어기 디바이스를 연결하는 적어도 하나의 통신 링크를 포함한다. 상기 프라이머리 카메라 제어기 디바이스는 수신된 센서 데이터와 수신된 위치 정보를 처리하여 제어 데이터를 생성하고, 제어 데이터의 세컨더리 부분을 통신 링크를 통해 세컨더리 카메라 제어기 디바이스에게 전송하며, 그리고 상기 제어 데이터의 프라이머리 부분을 액추에이터에게로 구동하도록 구성된다. 세컨더리 카메라 제어기 디바이스는 수신된 제어 데이터의 세컨더리 부분을, 프라이머리 카메라 제어기 디바이스가 제어 데이터의 프라이머리 부분을 액추에이터에게로 구동하는 것과 동시에 액추에이터에게로 구동하도록 구성된다.
다른 실시예에서, 본 개시는 위치 센서로부터 수신된 센서 데이터에 기초하며 그리고 호스트로부터 수신된 이미지 센서 및/또는 렌즈에 대한 위치 정보에 기초하여 이미지 센서 및/또는 렌즈를 제어하기 위해 액추에이터를 사용하기 위한 방법을 제공한다. 이 방법은 수신된 센서 데이터와 수신된 위치 정보를 프라이머리 카메라 제어기 디바이스에 의해 처리하여 제어 데이터를 생성하는 단계를 포함한다. 이 방법은 상기 프라이머리 카메라 제어기 디바이스와 적어도 하나의 세컨더리 카메라 제어기 디바이스를 연결하는 적어도 하나의 통신 링크를 통해 상기 제어 데이터의 세컨더리 부분을 상기 적어도 하나의 세컨더리 카메라 제어기 디바이스에게 상기 프라이머리 카메라 제어기 디바이스에 의해 송신하는 단계를 또한 포함한다. 상기 방법은 상기 프라이머리 카메라 제어기 디바이스에 의해 상기 제어 데이터의 프라이머리 부분을 액추에이터들에게로 구동하는 단계를 또한 포함한다. 상기 방법은 상기 프라이머리 카메라 제어기 디바이스가 상기 제어 데이터의 프라이머리 부분을 액추에이터들에게로 구동하는 것과 동시에 상기 제어 데이터의 수신된 세컨더리 부분을 상기 세컨더리 카메라 제어기 디바이스에 의해 상기 액추에이터들에게로 구동하는 단계를 또한 포함한다.
일 실시예에서, 본 개시는 위치 센서로부터 수신된 센서 데이터에 기초하며 그리고 호스트로부터 수신된 이미지 센서 및/또는 렌즈에 대한 위치 정보에 기초하여 이미지 센서 및/또는 렌즈를 제어하기 위해 액추에이터를 사용하기 위한 시스템을 제공한다. 상기 시스템은 프라이머리 카메라 제어기 디바이스, 적어도 하나의 세컨더리 카메라 제어기 디바이스, 그리고 프라이머리 카메라 제어기 디바이스와 적어도 하나의 세컨더리 카메라 제어기 디바이스를 연결하는 적어도 하나의 통신 링크를 포함한다. 상기 프라이머리 및 세컨더리 카메라 제어기 디바이스는 위치 센서로부터 각자의 프라이머리 및 세컨더리 센서 데이터를 수신하며, 각자의 프라이머리 및 세컨더리 센서 데이터를 통신 링크를 통해 다른 카메라 제어기 디바이스에게로 송신하며, 프라이머리 및 세컨더리 센서 데이터와 위치 정보를 츠리하여 각자의 프라이머리 및 세컨더리 제어 데이터를 생성하며, 그리고 각지의 프라이머리 및 세컨더리 제어 데이터를 액추에이터에게로 동시에 구동하도록 구성된다.
다른 실시예에서, 본 개시 내용은 위치 센서로부터 수신된 센서 데이터에 기초하며 그리고 호스트 프로세서로부터 수신된 이미지 센서 및/또는 렌즈에 대한 위치 정보에 기초하여 이미지 센서 및/또는 렌즈를 제어하기 위해 액추에이터를 사용하는 방법을 제공한다. 이 방법은 프라이머리 카메라 제어기 디바이스와 적어도 하나의 세컨더리 카메라 제어기 디바이스가 위치 센서로부터 각자의 프라이머리 및 세컨더리 센서 데이터를 수신하는 단계를 포함한다. 이 방법은 상기 프라이머리 카메라 제어기 디바이스 및 상기 적어도 하나의 세컨더리 카메라 제어기 디바이스에 의해, 상기 각자의 프라이머리 및 세컨더리 센서 데이터를 상기 프라이머리 카메라 제어기 디바이스와 상기 적어도 하나의 세컨더리 카메라를 연결하는 적어도 하나의 통신 링크를 통해 다른 카메라 제어기 디바이스로 송신하는 단계를 또한 포함한다. 상기 방법은 상기 프라이머리 카메라 제어기 디바이스 및 상기 적어도 하나의 세컨더리 카메라 제어기 디바이스에 의해 상기 프라이머리 및 세컨더리 센서 데이터와 상기 위치 정보를 처리하여 각자의 프라이머리 및 세컨더리 제어 데이터를 생성하는 단계를 또한 포함한다. 이 방법은 상기 프라이머리 카메라 제어기 디바이스와 상기 적어도 하나의 세컨더리 카메라 제어기 디바이스에 의해 상기 각자의 프라이머리 및 세컨더리 제어 데이터를 상기 액추에이터들에게로 동시에 구동하는 단계를 또한 포함한다.
도 1은 본 개시의 실시예에 따라 증가된 수의 동기화된 출력을 제공하기 위해 서로 통신하는 프라이머리 디바이스와 세컨더리 디바이스의 예시적인 시스템이다.
도 2는 본 개시의 실시예에 따른 도 1의 프라이머리 디바이스와 세컨더리 디바이스 상의 예시적인 펌웨어 드라이버 프레임워크이다.
도 3은 본 개시의 실시예에 따른 도 1의 프라이머리 디바이스와 세컨더리 디바이스 사이의 전송을 위한 예시의 UART (Universal Asynchronous Receiver Transmitter) 패킷 구조이다.
도 4는 본 개시의 실시예에 따른 도 1의 세컨더리 디바이스의 UART 수신 인터럽트 서비스 루틴(ISR) 프로세스를 예시하는 흐름도의 예이다.
도 5는 본 개시내용의 실시예에 따른 개방 루프 DAC(digital-to- analog converter) 코드에 대한 호스트 프로세서 명령을 서비스하는 I2C ISR에서 도 1의 프라이머리 디바이스의 개방 루프 코드를 처리하는 것을 설명하는 예시적인 흐름도이다.
도 6은 본 개시의 실시예에 따른 도 1의 프라이머리 디바이스의 UART 전송 ISR 프로세스를 도시하는 예시적인 흐름도이다.
도 7은 본 개시의 실시예에 따라 이벤트 타이머 ISR에서 음성 코일 모터(VCM) 코드의 전송을 도 1의 프라이머리 디바이스에 의해 처리하는 것을 예시하는 흐름도의 예이다. 집합적으로 도 8로 언급되는 도 8a 및 도 8b는 본 개시의 실시예에 따라 도 1의 시스템의 개방 루프 및 폐쇄 루프 상태에 대한 런타임 실행 흐름을 도시하는 예시적인 타이밍도이다.
도 9는 본 개시의 실시예에 따른 도 1의 시스템의 동작을 도시하는 예시적인 타이밍도이다.
도 10은 본 개시 내용의 실시예에 따른 시스템을 도시하는 예시적인 블록도이다.
도 11은 본 개시의 실시예에 따른 폐쇄 루프 모드의 제1 구성에서의 동작을 도시하는 예시적인 타이밍도이다.
도 12는 본 개시의 실시예에 따른 폐쇄 루프 모드의 제2 구성에서의 동작을 도시하는 예시적인 타이밍도이다.
도 13a 및 도 13b는 본 개시의 실시예에 따라 폐쇄 루프 모드에서 제3 구성에서의 동작을 도시하는 예시적인 타이밍도이다.
도 14는 본 개시 내용의 실시예에 따라 세컨더리 투(to) 프라이머리 DSP 프레임 동기화를 달성하기 위해 세컨더리 디바이스 상의 프리 런닝 카운터(free running counter)의 사용을 도시하는 예시적인 블록도이다.
도 15는 본 개시 내용의 실시예에 따른 반이중 구성인 시스템을 도시하는 예시적인 블록도이다.
도 16은 본 개시의 실시예에 따라 버스 경합 또는 칩 오류가 검출될 때 UART TX 패드 비활성화를 수행하는 회로를 도시하는 예시적인 블록도이다.
도 17은 본 개시 내용의 실시예에 따른 전이중 구성인 시스템을 도시하는 예시적인 블록도이다.
도 18은 본 개시의 실시예에 따라 시작 비트, 먼저 전송된 LSB(least significant bit)인 7개의 데이터 비트, 홀수 패리티 비트 및 정지 비트를 포함하도록 프레임화된 UART 데이터 바이트를 예시하는 블록도의 예이다.
도 19는 본 개시의 실시예에 따른 패킷 유형을 지정하는 헤더 바이트로 시작하는 통신 링크에서 사용되는 프라이머리 디바이스 투 세컨더리 디바이스 패킷 구조이다.
도 20은 본 개시의 실시예에 따른 VCM DAC 데이터 패킷의 예시적인 블록도이다. 도 21은 본 개시의 실시예에 따른 프라이머리 투 세컨더리 센서 데이터 패킷의 예시적인 블록도이다.
도 22는 본 개시의 실시예에 따른 세컨더리 투 프라이머리 센서 데이터 패킷의 예시적인 블록도이다.
도 23은 본 개시의 실시예에 따른 세컨더리 상태 패킷의 예시적인 블록도이다.
도 24는 본 개시의 실시예에 따라 프라이머리 디바이스가 상태를 요청하지 않는 VCM DAC 데이터 패킷을 전송할 때에 프라이머리 디바이스와 세컨더리 디바이스 사이의 통신을 나타내는 예시적인 타이밍도이다.
도 25는 본 개시의 실시예에 따라 프라이머리 디바이스가 상태를 요청하는 VCM DAC 데이터 패킷을 전송할 때에 프라이머리 디바이스와 세컨더리 디바이스 사이의 통신을 나타내는 예시적인 타이밍도이다.
도 26은 본 개시의 실시예에 따른 확장된 세컨더리 상태 패킷을 예시하는 예시적인 블록도이다.
도 27은 본 개시의 실시예에 따른 프라이머리 투 세컨더리 명령 패킷 헤더를 예시하는 예시적인 블록도이다.
도 28은 본 개시의 실시예에 따른 세컨더리 투 프라이머리 응답 패킷 헤더를 예시하는 예시적인 블록도이다.
도 29는 본 개시의 실시예에 따른 프라이머리 투 세컨더리 16비트 레지스터 읽기 명령 패킷을 예시하는 예시적인 블록도이다.
도 30은 본 개시의 실시예에 따른 16비트 레지스터 읽기 명령 패킷에 대한 세컨더리 응답 패킷을 예시하는 예시적인 블록도이다.
도 31은 본 개시의 실시예에 따른 프라이머리 투 세컨더리 32비트 레지스터 읽기 명령 패킷을 예시하는 예시적인 블록도이다.
도 32는 본 개시의 실시예에 따른 32비트 레지스터 읽기 명령 패킷에 대한 세컨더리 응답 패킷을 예시하는 예시적인 블록도이다.
도 33은 본 개시의 실시예에 따른 프라이머리 투 세컨더리 16비트 레지스터 쓰기 명령 패킷을 예시하는 예시적인 블록도이다.
도 34는 본 개시의 실시예에 따른 16비트 레지스터 쓰기 명령 패킷에 대한 ACK 패킷을 예시하는 예시적인 블록도이다.
도 35는 본 개시의 실시예에 따른 프라이머리 투 세컨더리 32비트 레지스터 쓰기 명령 패킷을 예시하는 예시적인 블록도이다. 도 36은 본 개시의 실시예에 따른 32비트 레지스터 쓰기 명령 패킷에 대한 ACK 패킷을 예시하는 예시적인 블록도이다.
이하의 설명은 본 개시에 따른 예시적인 실시예를 제시한다. 추가적인 예시적 실시예 및 구현은 당업자에게 명백할 것이다. 또한, 당업자는 이하 설명되는 실시예 대신에 또는 실시예와 함께 다양한 등가 기술이 적용될 수 있으며, 이러한 등가물은 모두 본 개시에 포함되는 것으로 간주되어야 한다는 점을 인식할 것이다.
특정 카메라 제어 시스템에서, 도 1의 프라이머리 디바이스(105)와 긴밀하게 동기화되어 직렬로 작동하는 도 1의 세컨더리 디바이스(107)를 사용하여 하나 이상의 음성 코일 모터(VCM) 드라이버 출력을 확장할 필요가 있다. 이러한 동기화를 달성하기 위한 UART(Universal Asynchronous Receiver/Transmitter) 및 이벤트 타이머 기반 방법 및 시스템이 개시된다. 이 방법과 시스템은 두 가지 주요 작동 상태, 즉 개방 루프 모드와 폐쇄 루프 모드를 둘 모두 수용한다.
카메라 제어기를 포함하지만 이에 국한되지 않는 단일 디바이스에서 지원되는 채널들의 수를 넘어 VCM 출력 드라이버 채널을 확장하기 위한 실행 가능한 옵션은, 도 1의 UART(109)를 통해 도 1의 VCM 코드(113)와 통신하는 두 개의 디바이스(예: 두 개의 카메라 제어기)를 프라이머리/세컨더리 구성으로 연결하는 것이다. 일반적으로, 프라이머리 디바이스와 세컨더리 디바이스는 서로 비동기적으로 작동한다. 그러므로, 도 1의 하나 이상의 VCM 드라이버 출력(101)의 복제를 달성하는 동시에 동일한 처리의 긴밀한 동기화를 또한 보장하기 위해 동일한 처리를 위해 구성되고 제어되는 두 개의 디바이스를 갖는 것은 실용적이지 않다. 긴밀한 동기화 및 복제를 달성하기 위해서, 프라이머리 디바이스만 (예를 들면, 도 1의 프로세서 M4F에 의한) 처리를 수행하고 세컨더리 디바이스는 원하는 출력(들)을 미러링하는 방법과 시스템이 개발되어야 한다.
프라이머리/세컨더리 출력 스큐(skew)는 프라이머리 디바이스와 세컨더리 디바이스에서의 VCM 코드(들) 애플리케이션 사이의 시간 기간인 것으로 정의된다. 프라이머리 디바이스와 세컨더리 디바이스 간의 출력 스큐를 최소화하고 프라이머리 디바이스와 세컨더리 디바이스 모두에서 처리 후 VCM 코드 애플리케이션 레이턴시를 최소화하는 것이 목표이다. 또한, (프라이머리 디바이스로부터의) VCM 코드 전송 및 (세컨더리 디바이스에서의) 수신이 비차단(어느 엔터티도 전송 및/또는 수신을 위해 다른 엔터티를 기다릴 필요가 없음)이 되도록 하는 것이 매우 바람직하다. 마지막으로, 상기 방법 및 시스템은 프라이머리 디바이스 및/또는 세컨더리 디바이스에서의 처리 능력에 최소한으로 영향을 미치도록 효율적이어야 한다.
도 1에 도시된 그리고 본 개시에 따른 시스템(100) 및 방법은 프라이머리 디바이스(105)로부터의 하나의 VCM 드라이버 출력(101)을 세컨더리 디바이스(107) 상으로 복제한다. 그러나, 상기 시스템 및 방법은 UART 통신 링크(103)의 속도, 과도한 처리 능력 및 VCM 코드(103)의 계산과 VCM 드라이버(101)에서의 원하는 애플리케이션 레이턴시 사이의 지속 시간에 의해서만 제한되는 프라이머리 디바이스의 VCM 드라이버 출력(101) 모두를 복제하기 위해서 또한 사용될 수 있다.
아래의 시스템 및 방법은 다음의 4개의 VCM 출력을 제공한다: 프라이머리 디바이스상에서 2개의 OIS(Optical Image Stabilization, 광학 이미지 안정화) + 1개의 AF(Auto-Focus, 자동 초점) 및 세컨더리 디바이스에서의 1개의 AF. 세컨더리 디바이스에서의 AF VCM 출력 드라이버는 프라이머리 디바이스에서의 AF VCM 출력 드라이버를 복제한다. 아래에 설명된 방법을 구체적으로 실현하는 것은 20ps 미만의 출력 스큐로 개방 루프 모드 및 폐쇄 루프 작동 모드 둘 모두에서 프라이머리 및 세컨더리 AF VCM 드라이버 출력들의 동기화된 업데이트를 가능하게 한다. 프라이머리 디바이스상에 2개의 OIS VCM 출력을 제공하고 세컨더리 디바이스상에 2개의 AF VCM 출력을 제공하기 위해 동일한 시스템이 또한 고안될 수 있다. 일반적으로, 위에서 설명한 대로 프라이머리 디바이스와 세컨더리 디바이스에서의 OIS 및 AF VCM 출력 교환을 포함하는 많은 구성들이 가능한다.
본 개시의 예시적인 실시예는 다음과 같이 상세하게 제공되고 구성된다: 소프트웨어 프레임워크, 기본적인 최소 무결성을 보장하기 위한 VCM 코드 패킷 구조, 프라이머리 디바이스에서의 UART 전송 드라이버, 세컨더리 디바이스에서의 UART 수신 드라이버 그리고 개방 루프 및 폐쇄 루프 작동 모드에서 UART 통신의 런타임 실행 컨텍스트 및 해당 모드 전환.
소프트웨어 프레임워크
프라이머리 디바이스와 세컨더리 디바이스에서의 펌웨어 드라이버 프레임워크는 도 2에서 보이는 다이어그램에 요약되어 있다. 프라이머리 디바이스는 UART를 통한 폐쇄 루프 모드 또는 개방 루프 모드라는 두 가지 시스템 상태들 중 하나에서 VCM 코드(블록 201 및 203)를 전송한다. 세컨더리 디바이스는 VCM 코드(블록 205 및 207)를 수신하고 이를 개방 루프 디지털-아날로그 변환기(DAC) 레지스터(블록 209)에 적용한다. 프라이머리 디바이스는 개방 루프 모드 또는 폐쇄 루프 모드의 작동에 있을 수 있지만 세컨더리 디바이스는 항상 개방 루프 모드에서 작동한다.
VCM 패킷 구조
각 11비트 AF VCM 현재 DAC(ID AC) 코드는 UART 패킷을 통해 송신된다. 시퀀스, 데이터 및 패킷의 기본적인 무결성을 보장하기 위한 2바이트 패킷 구조(301)가 도 3에 표시된다. 패리티 비트(Parity bit, PAR)는 비트들의 홀수 패리티를 표시하여 데이터 무결성을 확인하고, 바이트 시퀀스 비트(Byte sequence bit, BSEQ)는 패킷 내의 올바른 바이트 순서를 식별하며, 그리고 패킷 시퀀스 비트(Packet sequence bit, PSEQ)는 대체(홀수/짝수) 패킷을 예상 패킷 시퀀스 vs 수신 패킷 시퀀스에 관한 확인으로서 식별한다.
El ART 수신 드라이버
세컨더리 디바이스상에 VCM 코드를 적용하는 것은 El ART 수신 ISR(Interrupt Service Routine) - UART RX ISR - 컨텍스트에서 전적으로 수행된다. 완전한 VCM 패킷이 세컨더리 디바이스상에서 수신되자마자(블록 401~407), VCM 코드는 기본 무결성 검사(블록 411~417)를 통과한 후 패킷으로부터 추출된다. 추출된 VCM 코드는 즉각적인 효과를 위해 세컨더리 디바이스에서의 개방 루프 DAC 레지스터에 적용된다(블록 409 및 블록 419 및 423). 세컨더리 디바이스에서의 이 프로세스는 도 4의 흐름도에 나와 있다.
UART 전송 드라이버
수신 즉시 VCM 코드를 적용하는 세컨더리 디바이스와 달리, 프라이머리 디바이스는 애플리케이션의 타이밍을 조정하기 위해 VCM 코드의 적용을 정확하게 시간 맞추고 프라이머리/세컨더리 스큐를 최소로 유지한다. 프라이머리 디바이스사에서의 VCM 코드 처리는 시스템 상태 - (a) 개방 루프 모드 및 (b) 폐쇄 루프 모드에 따라 달라진다. 개방 루프
개방 루프 모드에서, 프라이머리 디바이스는 I2C 인터페이스를 통해 호스트 프로세서로부터 개방 루프 DAC 코드를 수신한다. 전이중 UART 통신이 없는 경우, 프라이머리/세컨더리 동기화는 프라이머리 디바이스가 UART를 통해 세컨더리 디바이스에게로 개방 루프 코드 전송을 시작한 후까지 수신된 개방 루프 코드 적용을 연기하고 정확하게 지연함으로써 달성된다. 프라이머리 디바이스에서, VCM 코드 패킷을 수신하는 세컨더리 디바이스 표시는 UART 전송 완료 시 트리거되는 UART TX ISR을 통해 수신 확인된다. 도 5에 표시된 흐름도는 개방 루프 DAC 코드에 대한 호스트 프로세서 명령을 서비스하는 I2C ISR의 프라이머리 디바이스에서의 개방 루프 코드 처리를 개략적으로 설명한다.
도 5의 위 흐름도에 도시된 바와 같이, 개방 루프 모드(블록 501)에서, 프라이머리 디바이스는 VCM 패킷을 형성하고 UART를 통한 전송을 시작한다(블록 503 내지 507). 프라이머리 디바이스는 UART 패킷의 전송이 완료되면(블록 601~609) 개방 루프 VCM 코드가 UART 전송 ISR - UART TX ISR에서의 프라이머리 디바이스에서의 출력 드라이버에 적용(블록 611)되어야 할 필요가 있다는 것을 나타내는 개방 루프 트랜잭션 보류 플래그(블록 509 및 511)를 또한 세팅한다. 도 6의 흐름도는 UART TX ISR을 개략적으로 보여준다.
개방 루프
폐루프 모드 동작(블록 701)에서, 제어 루프의 각 인스턴스에 대해 출력 드라이버에 폐루프 DAC 코드를 적용하는 고정되지만 프로그래밍 가능한 케이던스(cadence)가 있다. 제어 루프의 각 인스턴스는 센서 입력 및 호스트 위치 명령을 기반으로 폐쇄 루프 VCM 코드(블록 703 및 705)를 계산한다. 그러나, 출력 드라이버에 대한 폐쇄 루프 VCM 코드의 적용은 하드웨어 지원을 받으며 각 제어 루프 인스턴스의 시작부터 프로그래밍 가능한 지연 후에 발생한다. 프라이머리 디바이스와 세컨더리 디바이스 간의 VCM 코드 적용을 동기화하기 위해서, 상기 프라이머리 디바이스는 하드웨어의 이벤트 타이머(Event Timer) 기능을 사용한다. 이벤트 타이머는 외부 트리거에 대해 프로그래밍 가능한 지연으로 이벤트/인터럽트를 생성한다. 이 경우 제어 루프의 각 인스턴스가 시작되면 이벤트 타이머의 카운트다운이 시작된다. 제어 루프의 각 인스턴스의 시작과 프라이머리 디바이스에서의 이벤트 사이의 프로그래밍 가능한 지연이 프로그램되어, 전송을 용이하게 하며 (블록 707 및 709) 그리고 프라이머리 디바이스에서의 상기 하드웨어 픽업과 대략 일치하기 위해 세컨더리 디바이스에서의 VCM 코드 패킷 및 그것의 해당 애플리케이션을 전송하기 위한 시간을 설명하기 위해 상기 이벤트가 폐쇄 루프 DAC 코드의 하드웨어 픽업 전에 충분히 트리거되도록 한다. 이벤트 타이머 lSR에서 VCM 코드 전송 처리는 도 7의 흐름도에 표현된다.
런타임 실행 컨텍스트
개방 루프 및 폐쇄 루프 시스템 상태에 대한 런타임 실행 흐름은 집합적으로 도 8로 언급되는 도 8a 및 도 8b에 도시된다. 도 8에 표시된 것처럼, 프라이머리/세컨더리 동기화는 두 시스템 상태들 모두에서 달성된다. 폐쇄 루프 코드들의 전송 타이밍을 정밀하게 제어하여, 그래서 이런 코드들이 세컨더리 디바이스상에서 수신되어 적용될 때에 프라이머리 디바이스상에서 하드웨어 DAC 픽업이 동시에 발생하도록 하기 위해 이벤트 타이머를 사용하는 것이 입증되었다.
도 9는 본 개시의 실시예에 따른 도 1의 시스템(100)의 동작을 도시하는 예시적인 타이밍도이다. 도 9는 도 8의 수직 증가 시간에서 유사하게 도시된 폐쇄 루프 모드에서 시스템(100)의 수평 증가 시간 동작을 도시한다. 시스템(100)이 전체적으로 폐쇄 루프 모드에서 작동하고 있지만, 세컨더리 디바이스는 계속해서 개방 루프 모드에서 작동한다는 점에 유의한다. 즉, 프라이머리 디바이스가 호스트 프로세서로부터 이전에 (잠재적으로 많은 폐쇄 루프 간격 이전에)수신한 명령(예: 카메라 위치)을 달성하기 위해 주기적으로 자신의 출력을 업데이트하고 폐쇄 루프 방식으로 세컨더리 디바이스에게 DAC 코드를 전송하더라도, 세컨더리 디바이스는 항상 개방 루프 모드에서 작동하며, 즉, 프라이머리 디바이스에서 수신된 DAC 코드를 수신 후 가능한 한 항상 빨리 적용한다.
프라이머리 디바이스의 초기화 시, 프라이머리 디바이스는 3개의 타이머 값으로 프로그래밍된다. 먼저, 제어 루프 타이머는 도 9에서 P (예: 200마이크로초)로 표시된 지연으로 프로그래밍된다. 제어 루프 타이머는 주기적으로 트리거되어 제어 루프 IRQ를 생성한다. 제어 루프 IRQ의 두 인스턴스가 표시된다. 둘째, 이벤트 타이머는 도 9에 K (예: 80마이크로초)로 표시된 지연으로 프로그래밍된다. 제어 루프 타이머는 제어 루프 IRQ가 트리거될 때 실행되기 시작하고 제어 루프 IRQ가 트리거되는 끝에서 K 시간 동안 실행된다. 셋째, 하드웨어 픽업 타이머는 도 9에 J(예: 120마이크로초)로 표시된 지연으로 프로그래밍된다. 하드웨어 픽업 타이머는 제어 루프 IRQ가 J 시간에 대해 트리거되고 실행될 때 실행되기 시작하며, 이 시간이 끝나면 프라이머리 디바이스의 픽업 하드웨어가 이전에 프라이머리 디바이스의 레지스터에 기록된 DAC 코드를 선택하고 그 DAC 코드를 프라이머리 디바이스의 현재 DAC에 적용하여, 그 현재 DAC가 카메라 VCM (또는 대체 실시예에서는 다른 디바이스의 다른 제어 요소)에게 전류를 출력하도록 한다.
제어 루프 IRQ 이전에, 카메라 VCM으로부터 수신된 ADC 입력 (또는 대체 실시예에서는 다른 디바이스로부터의 다른 입력)이 안정되어 곧 시작될 제어 루프 반복에 대한 DAC 코드를 계산하기 위해 프라이머리 디바이스 펌웨어에 의한 사용에 이용 가능하다. 이벤트 타이머가 만료되기 전, 즉 이벤트 타이머 IRQ가 트리거되기 전에, 상기 프라이머리 디바이스의 펌웨어는 세컨더리 디바이스로 전송하기 위해 상기 안정된 ADC 입력을 기반으로 DAC 코드를 계산한다. 또한, 하드웨어 픽업 타이머가 만료되기 전에, 프라이머리 디바이스의 펌웨어는 픽업 하드웨어가 프라이머리 디바이스의 출력에 적용할 수 있도록 상기 안정된 ADC 입력을 기반으로 DAC 코드를 계산한다.
이벤트 타이머 IRQ에 응답하여, 프라이머리 디바이스는 예를 들어 도 7에 도시된 동작에 따라 통신 링크를 통해 DAC 코드를 세컨더리 디바이스로 전송한다. 프라이머리 디바이스 펌웨어 실행 및 DAC 코드 전송 시간은 이벤트 타이머 IRQ로부터의 시간 L로 도 9에 표시된다. DAC 코드 수신에 응답하여, 세컨더리 디바이스는 수신된 DAC 코드를 개방 루프 방식으로 (즉, 가능한 한 빨리 그리고 지연 없이) 자신의 현재 DAC에 적용하여, 상기 현재 DAC가 예를 들어 도 4에 표시된 작업에 따라 카메라 VCM에게 전류를 출력하도록 한다. 세컨더리 디바이스 펌웨어 실행 시간은 DAC 코드 수신 후의 시간 M으로 도 9에 표시된다. 따라서, 세컨더리 디바이스의 출력은 표시된 것처럼 제어 루프 IRQ 이후 사실상 K + L + M인 시점에서 카메라 VCM에 대한 새로운 전류 값을 생성한다. 위에서 설명된 것과 같이, 프라이머리 디바이스의 출력은 표시된 것처럼 전류 루프 IRQ 이후 프로그래밍 가능한 시간 J에 발생하는 하드웨어 픽업에 응답하여 카메라 VCM에 대한 새로운 전류 값을 생성한다. 프라이머리 디바이스의 출력과 세컨더리 디바이스의 출력 사이의 시간은 위에서 설명한 프라이머리/세컨더리 출력 스큐이며, 이는 도 9에서 시간 N으로 표시된다. 출력이 VCM에 대한 새로운 전류 값을 생성한 후 VCM에서의 센서로부터의 ADC 입력이 안정화되기 시작하고 제어 루프 IRQ의 다음 인스턴스 이전에 안정화된다.
전술한 바와 같이, 하드웨어 픽업 타이머 지연(J)과 이벤트 타이머 지연(K) 사이의 차이는 두 가지 경쟁 목표를 달성하기 위해 선택된다. 한 가지 목표는 프라이머리 디바이스 펌웨어 지연 더하기 전송 시간(L) 및 세컨더리 디바이스 펌웨어 지연(M)을 기반으로 출력 스큐(N)를 줄이는 것이다. 또 다른 목표는 이벤트 타이머와 하드웨어 픽업 타이머가 각각 트리거되기 전에 세컨더리 및 프라이머리 DAC 코드들을 계산할 수 있는 충분한 시간을 프라이머리 디바이스의 펌웨어가 제공하는 것이다. 유리하게도, J 및 K의 값은 프로그래밍 가능하므로 애플리케이션의 요구, 예를 들어 카메라 제어를 충족시키기 위해 시스템(100)을 조정하도록 조절될 수 있는 사실상 "노브(knob)"이다.
전술한 바와 같이, 프라이머리 및 세컨더리 디바이스들 각각은 개방 루프 모드에서 또는 폐쇄 루프 모드에서 동작하도록 개별적으로 구성될 수 있다. 그러나, 설명된 실시예에서, 세컨더리 디바이스는 개방 루프 모드에서 작동하도록 항상 구성된다. 프라이머리 디바이스가 폐쇄 루프 모드로 구성될 때에, 호스트 프로세서는 카메라 위치 정보와 같은 정보를 (예: I2C 인터페이스를 통해) 프라이머리 디바이스에게 보낸다. 그런 다음 프라이머리 디바이스는 카메라가 호스트 프로세서가 지정한 위치에 도달하고 머물도록 하기 위해 (DAC 코드를 통해) VCM에 출력될 필요가 있는 전류 값들을 결정한다. 반면, 프라이머리 디바이스가 개방 루프 모드로 구성된 때에, 호스트 프로세서는 현재 값(또는 현재 값을 결정하는 DAC 코드)을 직접 지정하고 프라이머리 디바이스는 DAC 코드 중 자신의 부분을 단순히 적용하고 다른 부분을 세컨더리 디바이스에게로 전송한다. 즉, 개방 루프 모드에서는, 카메라를 원하는 위치로 이동시키면서 프라이머리 디바이스는 그 위치를 알지 못하게 하는 것이 호스트 프로세서의 책임인 반면, 폐쇄 루프 모드에서는, 호스트 프로세서가 명령한 위치에 카메라를 가져오고 유지하는 것이 프라이머리 디바이스의 책임이다. 또한, 개방 루프 모드에서, 프라이머리 디바이스가 호스트 프로세서로부터 수신한 DAC 코드를 즉시 적용하여 출력 전류를 생성한다; 반면에, 폐쇄 루프 모드에서, 프라이머리 디바이스는 하드웨어 픽업 타이머가 트리거될 때까지 출력 전류를 생성하기 위해 자신이 계산하는 DAC 코드를 적용하기를 기다리며, 이는 주기적이며 프로그래밍 가능하다. 예를 들어, 시스템(100)이 포함된 디바이스(예: 카메라가 있는 전화기)가 시작되면 (예를 들어, 전원이 켜지거나 리셋되면), 전화기의 호스트 프로세서는 개방 루프 모드에서 프라이머리 디바이스를 설정하여, 카메라 렌즈를 대략적으로 배치하는 DAC 코드를, 예를 들어, 디폴트 위치로 송신한다. 나중에, 호스트 프로세서는 렌즈를 배치해야 하는 위치에 관한 (예를 들어, 사용자 입력에 기초한) 추가 정보를 수신할 수 있으며 프라이머리 디바이스를 폐쇄 루프 모드로 구성하고 해당 위치를 프라이머리 디바이스에 송신하며, 그에 응답하여 프라이머리 디바이스는 카메라 렌즈를 보다 세밀하게 배치하고 카메라 렌즈 위치의 품질을 유지한다.
유리하게는, 프라이머리 및 세컨더리 디바이스들은 출력이 동기화되는 단일 작동 개체로서 호스트 프로세서에 나타나도록 함께 작동한다. 일 실시예에서, 세컨더리 디바이스는 패킷 무결성 실패의 경우에 프라이머리 디바이스에게 알려서, 그 프라이머리 디바이스가 패킷을 재전송할 수 있도록 한다. 또한, 프라이머리 디바이스는 그런 실패 및 재전송을 호스트 프로세서에게 통지할 수 있다. 더욱 유리하게는, 상기 시스템은 프라이머리/세컨더리 디바이스 조합에 의해 제공되는 다중 출력에 대해 다중 성정으로 구성될 수 있다. 예를 들어, 프라이머리 디바이스와 세컨더리 디바이스 각각이 3개의 출력을 갖는 실시예가 위에서 설명되었다. 카메라의 OIS(Optical Image Stabilization) 서브시스템을 제어하는 VCM이 프라이머리 디바이스의 2개 출력에 의해 구동되고, 카메라의 AF(Auto-Focus) 서브시스템을 제어하는 VCM이 프라이머리 디바이스의 하나의 출력과 세컨더리 디바이스의 하나의 출력에 의해 구동되는 일 실시예가 위에서 설명되었다. OIS 서브시스템이 프라이머리 디바이스의 두 출력에 의해 구동되고 AF 서브시스템이 세컨더리 디바이스의 두 출력에 의해 구동되는 다른 실시예가 위에서 설명되었다. 그러나, 상기 시스템은 애플리케이션의 요구를 충족시키기 위해 다른 실시예에 따라 다른 조합으로 구성될 수 있다. 예를 들어, 일 실시예에서는, AF 서브시스템에 추가로 별개의 OIS-X 및 OIS-Y 서브시스템들이 있을 수 있다. 추가로, 상기 시스템은 다양한 모드에서 다양한 서브시스템의 작동을 수용하기 위해 다양한 차원으로 구성될 수 있다. 예를 들어, 프라이머리 디바이스는 하나 이상의 서브시스템에 대해 폐쇄 루프 모드로 구성되고 나머지 서브시스템 중 하나 이상에 대해 개방 루프 모드로 구성될 수 있다. 유리하게도, 본 명세서에 설명된 실시예는, 실제로 상기 프라이머리 및 세컨더리 디바이스들 각각이 개별적으로 N개의 총 출력보다 적은 개수의 출력을 포함할 때에 상기 프라이머리/세컨더리 디바이스 조합이 N개의 총 이용 가능한 출력을 갖는 단일 디바이스로서 호스트 프로세서에게 나타나는 시스템을 제공한다. 이러한 구성은 단일 디바이스 내에서 필요한 N개의 총 출력을 제공하기 위해 디바이스를 재설계할 필요성 - 이는 시간과 비용 측면에서 상당한 투자를 수반할 수 있음 - 을 완화하기 때문에 유리하다. 게다가, 디바이스가 이미 핀 제한을 갖고 있는 경우, 재설계는 불가능하거나 디바이스의 다른 기능을 희생해야만 가능할 수도 있다. 전술한 바와 같이, 일 실시예에서, 이벤트 타이머 기간은 제어 루프 IRQ 이벤트가 발생한 후에 실행되기 시작하는 시간의 양으로서 프로그래밍된다. 대안적인 실시예에서, 이벤트 타이머 기간은 하드웨어 픽업에 이르는 시간의 양으로서, 즉, 제어 루프 IRQ에 관련되기보다는 하드웨어 픽업에 관련하여 프로그래밍될 수 있다. 즉, 이벤트 타이머 IRQ는 하드웨어 픽업이 발생하기 전에 프로그래밍된 시간만큼 발생한다. 그러나, 대체 실시예에 따르면 하드웨어 픽업 타이머가 제어 루프 IRQ에 관련된다는 점과 추이적 특성으로 인해 이벤트 타이머 IRQ는 여전히 제어 루프 IRQ 이벤트에 대해 효과적으로 지정된다.
카메라, 특히 카메라의 보이스 코일 모터를 제어하는 데 사용하기 위한 실시예가 설명되었지만, 프라이머리/세컨더리 디바이스 조합이 다른 유형의 디바이스를 제어하는 데 사용되는 다른 실시예도 고려된다. 마지막으로, 단일 세컨더리 디바이스가 시스템의 출력 성능을 확장하기 위해 사용되는 실시예가 설명되었지만, 추가적인 세컨더리 디바이스 (또는 다수의 추가 세컨더리 디바이스들)가 - 프라이머리 디바이스와 추가 세컨더리 디바이스 사이의 다른 통신 링크를 통해 또는 프라이머리 디바이스와 다수의 세컨더리 디바이스에 의해 공유되는 통신 링크를 통해 - 프라이머리 디바이스와 통신하여, 프라이머리 디바이스는 업데이트된 값을 추가 세컨더리 디바이스에게 전송하고 추가 세컨더리 디바이스는 이에 응답하여 수신된 업데이트된 값을 자신의 출력들에게 적용하는 다른 실시예도 고려된다.
전술한 바와 같이, 현대의 카메라 제어기는 광학 이미지 안정화(OIS) 및 자동 초점(AF)을 위해 다중 센서 및 음성 코일 모터(VCM) 또는 다른 유형의 액추에이터를 필요로 할 수 있다. 복잡한 시스템의 경우, 단일 디바이스 대신 여러 카메라 제어기 디바이스들을 사용하는 것이 유리할 수 있다. 여러 디바이스를 사용하면 다음과 같은 이점을 얻을 수 있다. 첫째, 단일 디바이스에는 보이스 코일 모터에 필요한 전력을 구동하기에 충분한 출력 드라이버가 없을 수 있으므로 여러 디바이스가 전력 구동을 증가시킬 수 있다. 둘째, 출력 드라이버 채널 수를 늘리고, 센서 채널 수를 늘리고, 전체 신호 처리를 늘리기 위해 필요에 따라 더 많은 디바이스를 추가할 수 있으므로, 여러 디바이스를 사용하면 모듈식 설계가 가능하다. 셋째, 여러 디바이스는 미션 모드에서 호스트가 프라이머리 디바이스와만 통신하고 프라이머리 디바이스는 다시 세컨더리 디바이스와 통신하도록 하여 프로그래밍 모델을 단순화할 수 있다.
도 10은 본 개시의 실시예에 따른 시스템(1000)을 도시하는 예시적인 블록도이다. 시스템(1000)은 호스트 프로세서(133), 이미지 센서 및 렌즈(137), 프라이머리 카메라 제어기 디바이스(105) (여기에서는 프라이머리 디바이스 또는 프라이머리라고도 언급됨), 세컨더리 카메라 제어기 디바이스(107) (여기에서는 세컨더리 디바이스 또는 세컨더리라고도 함), 프라이머리 카메라 제어기 디바이스(105)와 세컨더리 카메라 제어기 디바이스(107)를 연결하는 통신 링크(103), 그리고 액추에이터/센서(131)를 포함한다. 일 실시예에서, 이미지 센서 및 렌즈(137), 액추에이터 및 센서(131), 프라이머리 카메라 제어기 디바이스(105) 및 세컨더리 카메라 제어기 디바이스(107)는 카메라 모듈(135)이라고 하는 물리적 개체 내에 통합된다.
프라이머리 카메라 제어기 디바이스(105)와 세컨더리 카메라 제어기 디바이스(107) 각각은 디지털 신호 프로세서(DSP), 통신 링크(103)를 통해 DSP에 의해 제공된 데이터를 전송하기 위해 사용되는 통신 링크 전송 패드 (도 10에서 "UART TX"로 표시됨), DSP에 제공하기 위해 통신 링크(103)로부터 데이터를 수신하기 위해 사용되는 통신 링크 수신 패드 (도 10에 "UART RX"로 표시됨), 그리고 통신 링크 전송 및 수신 패드들에 연결되며 통신 링크(103)에 연결된 EO 핀을 포함한다. 프라이머리 카메라 제어기 디바이스(105)와 세컨더리 카메라 제어기 디바이스(107) 각각은 센서 입력(141)에 제공되는 센서 데이터(도 10에서 "In A1" 내지 "In An"으로 도시됨)를 센서(131)로부터 또한 수신하먀, 센서 입력(141)은 디지털 출력들이 DSP에 제공되는 아날로그-디지털 변환기(ADC)에게 제공된다. 프라이머리 카메라 제어기 디바이스(105)와 세컨더리 카메라 제어기 디바이스(107) 각각은, DSP로부터 VCM 데이터(제어 데이터라고도 언급됨)를 수신하고 VCM 출력(도 10에서 "Out B1" 내지 "Out Bn"으로 표시됨)을 구동하여 액추에이터(131)를 제어하는 출력 드라이버(143)를 또한 포함한다. 출력 드라이버(143)는 디지털 VCM 데이터를 아날로그 VCM 출력으로 변환하는 DAC(Digital-to-Analog Converter)를 포함할 수 있다. 도 10에 도시된 실시예에서, 프라이머리 카메라 제어기 디바이스(105) DSP는 프라이머리 카메라 제어기 디바이스(105)의 DSP 프레임에 대해 지연(도 10에서 "T"로 도시됨)을 가지고 VCM 데이터를 출력 드라이버(143)에게로 구동하며, 이는 아래에서 더 자세히 설명된다. 간섭을 줄이기 위해 프라이머리 및 세컨더리 카메라 제어기 디바이스들이 선형 모드로 전환될 수 있도록 이미지 센서에 의해 사진이 촬영되고 있음을 프라이머리 및 세컨더리 카메라 제어기 디바이스들에 표시하기 위해 PWMLIN이 이미지 센서에 의해 사용될 수 있다.
프라이머리 카메라 제어기 디바이스(105)는 제1 패키지(예를 들어, 집적 회로 또는 칩)이고, 세컨더리 카메라 제어기 디바이스(107)는 제2 패키지(예를 들어, 집적 회로 또는 칩)이고, 상기 두 디바이스들은 통신 링크(103)를 통해 함께 결합되어, 상기 통신 링크에 의해 본원에서 설명된 다양한 방식으로 서로 통신한다. 유리하게도, 통신 링크(103)는 이미지 센서 및/또는 렌즈(137)를 검출하고 제어하는 작업이 프라이머리 카메라 제어기 디바이스(105)와 세컨더리 카메라 제어기 디바이스(107) 사이에 분산되는 것을 가능하게 한다. 단일 통신 링크(103)를 통해 프라이머리 카메라 제어기 디바이스(104)와 통신하는 단일 세컨더리 카메라 제어기 디바이스(107)가 있는 도 10 및 다른 도면과 관련하여 실시예들이 설명되었지만, 시스템(1000)이 다수의 세컨더리 카메라 제어기 디바이스를 포함하여, 여기에 설명된 이점들, 예를 들면, 증가된 전력 구동, 증가된 출력 드라이버 채널 수, 증가된 센서 채널 수, 증가된 전체 신호 처리 및 단순화된 프로그래밍 모델을 인식하기 위해 각 세컨더리 카메라 제어기 디바이스가 각자의 통신 링크를 통해 프라이머리 카메라 제어기 디바이스와 통신하는 다른 실시예가 고려된다.
프라이머리 및 세컨더리 디바이스 처리는 다음 중 하나를 수행하도록 호스트 프로세서에 의해 설정될 수 있다. 첫 번째 설정에서, 센서가 프라이머리 디바이스상에서만 활성화되고 센서/루프 처리는 프라이머리 디바이스상에서만 수행된다. 두 번째 설정에서, 센서들은 프라이머리 디바이스와 세컨더리 디바이스 모두에서 활성화되고 센서/루프 처리는 프라이머리 디바이스에서만 수행된다. 세 번째 설정에서, 센서들이 프라이머리 디바이스와 세컨더리 디바이스 모두에서 활성화되고 센서/루프 처리가 프라이머리 디바이스와 세컨더리 디바이스 둘 모두에서 수행된다.
첫 번째 설정에서, 모션 센서가 프라이머리 디바이스에서만 활성화된다. 프라이머리 센서 처리는 프라이머리 디바이스상에서 수행된다. 제어 루프 처리는 프라이머리 디바이스에서 수행된다. 프라이머리 및 세컨더리 VCM 코드들은 프라이머리 디바이스에서 생성된다. 일 실시예에서, 세컨더리 건강 검출(예: 온도 및 전압)는 세컨더리 디바이스에서 수행된다.
세 가지 설정 각각에는 초기화 모드와 미션 모드라는 두 가지 통신 모드가 있다. 초기화 통신 모드에서, 시작 시, 호스트 프로세서가 도 1의 제어 포트를 통해 프라이머리 디바이스와 세컨더리 디바이스를 다음과 같이 초기화하고 구성한다. 호스트 프로세서는 프라이머리 디바이스와 세컨더리 디바이스를 구성하고, 프라이머리 디바이스에서 통신 링크를 활성화하고, 세컨더리 디바이스에서 통신 링크를 활성화한다. 통신 링크는 UART일 수 있다. 일 실시예에서, UART는 도 1의 UART(109)와 유사할 수 있다. 초기화되면, 디바이스는 호스트가 주로 프라이머리 디바이스와 통신하는 미션 통신 모드로 전환된다. 호스트는 오류가 발생하거나 시스템을 다시 시작하는 경우 세컨더리 디바이스와 통신해야 할 수도 있다.
두 가지 작동 모드, 즉 개방 루프 모드와 폐쇄 루프 모드가 있다. 개방 루프 모드에서는 프라이머리 및 세컨더리 VCM 코드 값이 호스트에 의해 직접 제어된다. 호스트는 프라이머리 디바이스에서 개방 루프 모드를 활성화한다. 호스트는 프라이머리 및 세컨더리 DAC 코드를 프라이머리 디바이스에게 주기적으로 기록한다. 프라이머리 디바이스는 세컨더리 VCM 데이터 패킷을 세컨더리 디바이스로 보내며, 이 패킷에는 다음의 정보인 DAC(디지털-아날로그 변환기) 코드, 상태 요청 바이트, 프레임 종료 바이트 또는 플러시 바이트(예: OxFF 값)가 포함될 수 있다. 통신 링크 레이턴시와 일치하도록 고정된 지연 후에, 프라이머리 디바이스는 프라이머리 DAC 코드를 프라이머리 디바이스에 적용한다. 세컨더리 디바이스가 OxFF 프레임 종료 바이트를 수신할 때에, 세컨더리 디바이스는 오류를 확인하고, 오류가 검출되지 않는다면 세컨더리 디바이스는 DAC 코드 데이터를 자신의 출력 드라이버에 적용한다. 호스트가 요청할 때에, 프라이머리 디바이스는 상태 요청을 DAC 코드 패킷의 일부로서 세컨더리 디바이스에 보낸다. 프라이머리 디바이스가 요청할 때에, 세컨더리 디바이스는 디바이스 상태(디바이스 경고, 오류), 디바이스 온도 및 전압 측정, 통신 링크 상태를 포함할 수 있는 디바이스 및 링크 상태 정보로 응답한다. 프라이머리 디바이스가 타임아웃 기간 내에 세컨더리 응답을 수신하지 않는다면 타임아웃 오류가 생성될 수 있다.
도 11은 본 개시의 실시예에 따른 폐쇄 루프 모드의 제1 구성에서의 동작을 도시하는 예시적인 타이밍도이다. 폐쇄 루프 작동 모드에서, 호스트는 프라이머리 디바이스에서 폐쇄 루프 모드를 활성화한다. 프라이머리 디바이스는 고정된 프레임 속도로 호스트로부터의 센서 정보와 위치 코드를 처리한다. 각 프레임에서, 프라이머리 디바이스 DSP는 프라이머리 및 세컨더리 출력 드라이버들을 위한 DAC 코드를 생성하고 자신의 DAC 코드를 세컨더리 디바이스에게 송신한다. 세컨더리 디바이스가 OxFF 프레임 종료 바이트를 수신할 때에, 세컨더리 디바이스는 오류를 확인하고, 오류가 검출되지 않는다면 세컨더리 디바이스는 DAC 코드 데이터를 자신의 출력 드라이버에 적용한다. N개의 프레임(여기서 N은 프로그래밍 가능한 정수)마다 프라이머리 디바이스가 세컨더리 상태 정보를 요청한다. 프라이머리 디바이스가 요청할 때에, 세컨더리 디바이스는 디바이스 상태(디바이스 경고, 오류), 디바이스 온도 및 전압 측정, 통신 링크 상태를 포함할 수 있는 디바이스 및 링크 상태 정보로 응답한다. 프라이머리 디바이스가 타임아웃 기간 내에 세컨더리 응답을 수신하지 않는다면 타임아웃 오류가 생성될 수 있다.
위에서 언급한 바와 같이, 카메라 센서들이 프라이머리 디바이스와 세컨더리 디바이스에서 활성화되는 두 가지 설정(두 번째 및 세 번째 설정)이 있다. 두 번째 설정에서, 모든 루프 처리가 프라이머리 디바이스에서 수행된다. 세 번째 설정에서, 프라이머리 루프 처리가 프라이머리 디바이스에서 수행되고 세컨더리 루프 처리가 세컨더리 디바이스에서 수행된다. 세컨더리 디바이스 (및 프라이머리 디바이스)에서 카메라 센서가 활성화될 때에, 세컨더리 DSP 프레임이 프라이머리 DSP 프레임과 동기화되어 두 디바이스들에서의 VCM 데이터 업데이트들 사이의 레이턴시를 최소화한다.
도 12는 본 개시의 실시예에 따른 폐쇄 루프 모드의 제2 설정(프라이머리 및 세컨더리 디바이스에서 카메라 센서가 활성화되고 모든 루프 처리가 프라이머리 디바이스에서 수행됨)의 동작을 나타내는 예시적인 타이밍 다이어그램이다. 두 번째 설정에서, 세컨더리 센서 데이터(El)가 세컨더리 DSP 프레임 시작 시 캡처된다. 세컨더리 센서 데이터가 프라이머리 디바이스로 전송되는 데 충분한 시간을 허용하기 위해 프라이머리 DSP 프레임이 시작되기 전에 세컨더리 DSP 프레임이 시작되도록 시간설정된다. 프라이머리 센서 데이터(Al)는 프라이머리 DSP 프레임 시작 시 캡처된다. 프라이머리 DSP는 제어 루프 데이터를 처리한다. 프라이머리 DSP는 호스트로부터 프라이머리 센서 데이터(Al), 세컨더리 센서 데이터(El), VCM 위치 데이터를 가져와 프라이머리 디바이스(B1)를 위한 그리고 세컨더리 디바이스(D1)를 위한 VCM DAC 데이터를 생성한다. 세컨더리 VCM 데이터 D1은 통신 링크를 통해 세컨더리 디바이스로 전달된다. 통신 링크를 통한 세컨더리 VCM 데이터 전송과 동일한 레이턴시 이후에, 프라이머리 디바이스는 자신의 VCM 데이터를 적용한다. 거의 동시에, 세컨더리 디바이스도 VCM 데이터를 적용한다.
도 13 (도 13a 및 13Bb 집합적으로 도 13이라고 언급됨)은 본 개시의 실시예에 따른 폐쇄 루프 모드에서 제3 설정(프라이머리 및 세컨더리에서 카메라 센서가 활성화되고 프라이머리 루프 처리가 프라이머리 디바이스에서 수행됨)에서의 동작을 설명하는 예시적인 타이밍도이다. 세 번째 설정에서의 동작은 두 번째 설정의 동작과 유사하지만, 세 번째 설정에서는 각 디바이스가 자신의 루프 처리를 수행하여 자신의 VCM 출력을 생성한다. 개별 루프 처리는 프라이머리로부터 세컨더리로 더 많은 데이터를 전송하는 대신에 루프 레이턴시가 더 짧아지는 것을 가능하게 한다. 표시된 것처럼, 프라이머리 센서 데이터와 호스트 VCM 위치 데이터는 각 DSP 프레임 시작 시 세컨더리 디바이스로 전송된다. 프라이머리 디바이스는 각 DSP 프레임에서 세컨더리 디바이스에게 제어 데이터(레지스터 쓰기/읽기)를 보낼 수 있다. 세컨더리 디바이스는 프라이머리 레지스터 읽기 명령에 대한 응답으로 상태 데이터를 주기적으로 프라이머리 디바이스에게 송신한다. 세컨더리 데이터는 각 DSP 프레임이 시작될 때 세컨더리 디바이스로 전송된다. 프라이머리 디바이스와 세컨더리 디바이스 간의 레이턴시를 최소화하기 위해서, 세컨더리 DSP 프레임은 프라이머리 DSP 프레임에 동기화될 수 있다. 보다 구체적으로는, 도시된 것과 같이, DSP 프레임, 센서 데이터 샘플링 및 DAC 출력 업데이트가 프라이머리 카메라 제어기 디바이스와 세컨더리 카메라 제어기 디바이스 간에 동기화된다. 더 높은 전송 속도를 수용하기 위해, 링크는 더 높은 데이터 속도에서 전이중 모드 또는 반이중 모드로 작동될 수 있다. 도 13은 전이중 모드에서 링크를 사용하여 프라이머리로부터 세컨더리로의 그리고 세컨더리로부터 프라이머리로의 전송을 도시한다.
도 14는 본 개시 내용의 실시예에 따라 세컨더리 투 프라이머리 DSP 프레임 동기화를 달성하기 위해 세컨더리 디바이스 상의 프리 런닝 카운터(free running counter)의 사용을 도시하는 예시적인 블록도이다. 세컨더리 디바이스에서 카메라 센서가 활성화될 때에, 세컨더리 DSP 프레임이 프라이머리 DSP 프레임과 동기화되어 루프 레이턴시를 최소화한다. 세컨더리 투 프라이머리 DSP 프레임 동기화를 달성하기 위해서, 세컨더리 디바이스에서 프리 런닝 카운터를 사용하여 인커밍 통신 링크 프레임 주기를 측정한다. 제1 단계에서, 프라이머리 디바이스는 자신의 DSP 프레임에 비해 고정된 지연으로 데이터(VCM 또는 센서) 패킷들을 송신한다. 제2 단계에서, 세컨더리 디바이스에서 VCM UART 헤더 프레임이 검출된다. 수신된 UART 프레임에서 오류가 검출되지 않으면 카운터 출력이 래치되고 M은 1로 세팅된다. 제3 단계에서, 후속의 오류 없는 UART 헤더 프레임 검출 시, 프리 런닝 카운터 출력이 래치되어 상기 제2 단계에서 래치된 값으로부터 감해진다. 오류가 검출되면 프로세스는 제2 단계로 돌아간다. 제4 단계에서, 예상 프레임 주기에서 제3 단계에서의 델타 값을 빼서 주파수 오차가 계산된다. 제5 단계에서, M개 프레임에 대해 제3 및 제4 단계들이 반복된다. 제6 단계에서, M개 프레임에 대해 평균이 계산된다. 제7 단계에서, 상기 계산된 주파수 오차에 대응하는 코드만큼 DCO (Digitally Controlled Oscillator) 주파수가 조정된다. 제8 단계에서, 제2 단계부터 제7 단계까지가 반복된다.
통신 링크 구성의 실시예가 이제 설명될 것이다. 두 가지 통신 링크 구성이 존재한다. 프라이머리 디바이스와 세컨더리 디바이스 간의 통신 링크는 반이중 구성 또는 전이중 구성으로 구성될 수 있다.
도 15는 본 개시의 실시예에 따른 반이중 구성의 시스템(1000)을 나타내는 예시적인 블록도이다. 도 15의 시스템(1000)은 많은 측면에서 도 10의 시스템(1000)과 유사하다. 도 15의 시스템(1000)에서, 프라이머리 카메라 제어기 디바이스(105)와 세컨더리 카메라 제어기 디바이스(107) 각각은 DSP에 자신의 출력을 제공하는 도 14의 FRC(free running counter)와 DCO를 포함하는 것으로 또한 도시된다.
반이중 구성에서, 도 15에 도시된 바와 같이, 단일 와이어가 프라이머리 디바이스와 세컨더리 디바이스 사이의 데이터 전송을 위한 통신 링크로서 사용된다. UART 전송(TX) 패드는 푸시 풀 (push pull) 또는 오픈 드레인(open drain)일 수 있다. (내부 또는 외부의) 풀업 저항 또는 버스 키퍼를 사용하여 프라이머리 및 세컨더리 디바이스들이 구동되고 있지 않을 때에 링크를 높은 상태(high state)로 유지할 수 있다. 반이중 모드에서, 다음 프로토콜을 따른다. 프라이머리 디바이스는 전송 모드가 디폴트이다. 세컨더리 디바이스는 수신 모드가 디폴트이다. 세컨더리 상태가 요청될 때에 프라이머리 디바이스는 자신의 출력을 비활성화하고 수신을 위해 자신의 입력을 활성화하며, 세컨더리 디바이스는 전송을 위해 자신의 출력을 활성화하고 자신의 입력을 비활성화한다. 세컨더리 디바이스가 전송을 완료하는 때에, 세컨더리 디바이스는 수신 모드로 전환된다. 타임아웃 기간 이후에. 프라이머리 디바이스가 전송 모드로 전환된다. 프라이머리 디바이스는 요청받을 때에 세컨더리 디바이스로부터 응답을 받지 못하다면 타임아웃 오류를 세팅한다. 프라이머리 및 세컨더리 디바이스들은 UART TX를 지속적으로 모니터한다. UART TX 패드에서 경합이 검출될 때에, 오류 비트가 세팅될 것이며, 예를 들어, UART TX 패드를 3-상태화함으로써 TX 드라이버가 비활성화된다. 또한, 과열 상태 또는 감시 타이머 만료와 같은 주요 칩 오류가 검출되면 상기 프라이머리 및 세컨더리 디바이스들이 자동적으로 3-상태화한다.
도 16은 본 개시의 실시예에 따라 버스 경합 또는 칩 오류가 검출될 때 UART TX 패드 비활성화를 수행하는 회로를 도시하는 예시적인 블록도이다. 프라이머리 및 세컨더리 디바이스는 TX 출력 패드를 지속적으로 모니터하여 UART TX 패드 경합을 확인하며, 이는 프라이머리 및 세컨더리 디바이스들이 반이중 모드에서 UART 통신 링크를 동시에 구동하는 경우 발생한다. 경합 검출은 TX 패드 입력 신호를 TX 패드 출력 신호의 루프백 버전에 대해 비교하여 수행된다. 두 신호가 다른 경우, 오류 비트가 세팅되고 TX 패드가 비활성화된다.
도 17은 본 개시의 실시예에 따른 전이중 구성의 시스템(1000)을 나타내는 예시적인 블록도이다. 도 17의 시스템(1000)은 많은 측면에서 도 15의 시스템(1000)과 유사하다. 도 17의 시스템(1000)에서, 프라이머리 카메라 제어기 디바이스(105)와 세컨더리 카메라 제어기 디바이스(107) 각각은 두 개의 I/O 핀들 - 하나는 UART TX 패드에 연결되고 다른 하나는 UART RX 패드에 연결됨 - 을 포함하며 통신 링크(103)는 프라이머리 카메라 제어기 디바이스(105)와 세컨더리 카메라 제어기 디바이스(107) 사이의 I/O 핀들의 각자의 쌍을 연결하는 한 쌍의 와이어들을 포함한다.
전이중 구성에서, 2개의 UART 링크가 사용되며, 이는 프라이머리 디바이스와 세컨더리 디바이스 간의 추가 물리적 연결을 희생하여 더 높은 전송 대역폭을 가능하게 한다. 프라이머리 전송(TX)은 세컨더리 수신(RX)에 연결된다. 프라이머리 RX는 세컨더리 TX에 연결된다. 프라이머리 및 세컨더리 디바이스들은 별도의 와이어를 구동하므로, 전송 모드와 수신 모드 사이를 전환할 필요가 없으며 버스 경합이 발생할 가능성도 없다. 프라이머리 및 세컨더리 UART TX는 항상 활성화되어 있다. 프라이머리 디바이스가 세컨더리 디바이스로부터 응답을 받지 못한다면, 프라이머리 디바이스는 타임아눗 오류 플래그를 세팅한다.
링크 건강 모니터링을 수행하기 위해, 프라이머리 디바이스는 디바이스 상태(디바이스 경고, 오류), 통신 링크 상태(예: 패리티 오류 또는 패킷 시퀀스 오류) 및 디바이스 온도와 전압 측정을 포함할 수 있는 세컨더리 디바이스로부터의 상태 정보를 주기적으로 요청한다. 세컨더리 디바이스는 수신된 데이터의 패리티 오류를 확인하고, 패킷 시퀀스 오류를 확인하며, 그리고 패킷 끝에서의 OxFF 바이트를 확인한다.
프라이머리 디바이스는 다음과 같은 상태 정보가 호스트에게 이용 가능하게 할 수 있다: 세컨더리-프라이머리 타임아웃 오류 인디케이터, 세컨더리-프라이머리 패리티 오류 인디케이터, 패킷 시퀀스 오류 인디케이터, 상태 시퀀스 카운터 및 패킷 오류 카운터. 세컨더리 디바이스로부터의 패킷을 기다리는 동안 타임아웃이 발생하면, 프라이머리 디바이스는 세컨더리-프라이머리 타임아웃 오류 인디케이터를 참값으로 세팅한다. 프라이머리 디바이스가 세컨더리 디바이스로부터 수신된 패킷에서 패리티 오류를 검출한 때에, 프라이머리 디바이스는 세컨더리-프라이머리 패리티 오류 인디케이터를 참값으로 세팅한다. 세컨더리 디바이스가 세컨더리 상태 및 ACK (Secondary Status and ACK) 패킷에 패킷 시뭔스 오류 비트를 세팅한다면, 프라이머리 디바이스는 패킷 시퀀스 오류 인디케이터를 참 값으로 세팅한다. 상태 시퀀스 카운터는 프라이머리 디바이스가 세컨더리 디바이스로부터 수신한 유효한 상태 패킷들의 개수이다. 패킷 오류 카운터는 누락된 세컨더리-프라이머리 패킷들(예: 타임아웃이 발생한 패킷들), 드롭된 세컨더리-프라이머리 패킷들(예: 패리티 오류가 검출된 패킷들) 및 NACK 상태 패킷들의 카운트이다.
일 실시예에서, 데이터 전송을 위해 통신 링크에 의해 사용되는 칩간 통신 프로토콜은 UART 프로토콜이다. 정보는 도 18의 예시적인 실시예에 표시된 것처럼 시작 비트, 먼저 전송된 LSB (least significant bit)인 7개의 데이터 비트, 홀수 패리티 비트 및 정지 비트를 포함하도록 프레임화된 UART 데이터 바이트를 사용하여 송신된다.
통신 링크에서 사용되는 패킷 구조의 실시예가 이제 설명될 것이다. 프라이머리 디바이스 투 세컨더리 디바이스 (primary device to secondary device) 패킷 구조에서, 모든 패킷은 도 19의 예시적인 실시예에 도시된 바와 같이 패킷 유형을 지정하는 헤더 바이트로 시작한다. 프라이머리로부터 세컨더리로의 패킷들에는 VCM DAC 데이터 패킷과 명령 패킷의 두 가지 유형이 있다. 상기 패킷 유형은 헤더 바이트 내 COM 비트로 세팅된다. COM = 0은 VCM DAC 데이터 패킷 유형을 나타내고 COM = 1은 명령 패킷을 나타낸다.
도 20은 본 개시 내용의 실시예에 따른 VCM DAC 데이터 패킷의 예시적인 블록도이다. 패킷 구조 내 비트 필드에 대한 설명은 아래 표 1에서 보여진다.
[표 1]
센서 데이터 패킷은 세컨더리 디바이스에서 센서가 활성화될 때 일반적으로 사용된다. 센서 데이터는 (예를 들어, 제3 설정에서) 프라이머리 디바이스로부터 세컨더리 디바이스로 송신될 수 있고, 그리고 (예를 들어, 제2 및 제3 설정에서) 세컨더리 디바이스로부터 프라이머리 디바이스로 송신될 수 있다. 프라이머리 센서 데이터는 프라이머리 디바이스로부터 세컨더리 디바이스로, 예를 들어 도 21의 예시적인 실시예에 도시된 프라이머리 투 세컨더리(the primary to secondary, P2S) 센서 데이터 패킷을 통해 송신될 수 있으며, 여기에서 그것은 세컨더리 디바이스 센서 데이터와 결합되어 VCM DAC 데이터를 생성한다. 세컨더리 투 프라이머리 (Secondary to Primary, S2P) 센서 데이터 패킷은 P2S 센서 패킷과 유사하지만, 도 22의 예시적인 실시예에 도시된 바와 같이 상태 요청 바이트가 없다. 상기 도면들에서 향후 사용을 위해 예약된 필드는 "RFU"로 표시된다.
세컨더리 디바이스 상태 패킷은 P2S 센서 데이터 패킷 내 STAT REQ가 프라이머리 디바이스에 의해 참값으로 세팅되는 때에 세컨더리 디바이스에 의해 프라이머리 디바이스로 송신될 수 있다. 일 실시예에서, 상기 프라이머리 디바이스는 N번째 프레임마다 상태 패킷을 요청할 수 있으며, 여기에서 N은 호스트에 의해 설정 가능하다. 일 실시예에서, 세컨더리 상태 패킷(ACK 패킷이라고도 언급됨)은 3바이트를 가지며, 그 예가 도 23에 도시되어 있고, 패킷 구조 내 비트 필드에 대한 설명이 아래 표 2에 도시되어 있다.
[표 2]
도 24는 본 개시의 실시예에 따라 프라이머리 디바이스가 STAT REQ = 0인 VCM DAC 데이터 패킷을 전송할 때 프라이머리 디바이스와 세컨더리 디바이스 사이의 통신을 나타내는 예시적인 타이밍도이다. 표시된 바와 같이, 반이중 구성의 경우 프라이머리 디바이스는 TX를 활성화하고 RX를 비활성화한다. 프라이머리 디바이스는 STAT REQ = 0인 VCM DAC 바이트를 송신한다. TX가 끝나면 프라이머리 디바이스는 TX를 비활성화하고 RX를 활성화한다. 세컨더리 디바이스는 3바이트를 수신하지만 STAT REQ = 0이므로 응답하지 않는다. 반이중 구성의 경우 STAT_REQ=0 이므로 세컨더리 디바이스는 자신의 TX는 비활성화되고 RX는 활성화된 상태로 유지된다.
도 25는 본 개시의 실시예에 따라 프라이머리 디바이스가 STAT REQ = 1인 VCM DAC 데이터 패킷을 전송할 때 프라이머리 디바이스와 세컨더리 디바이스 사이의 통신을 나타내는 예시적인 타이밍도이다. 표시된 것처럼, 프라이머리 디바이스는 STAT REQ가 1로 세팅된 VCM DAC 바이트를 송신한다. 반이중 구성의 경우 TX가 끝나면 프라이머리 디바이스는 TX를 비활성화하고 RX를 활성화한다. 세컨더리 디바이스는 VCM DAC 패킷을 수신하고 STAT REQ =1인지 확인한다. 반이중 구성의 경우 세컨더리 디바이스는 TX를 활성화하고 RX를 비활성화한다. 표시된 것처럼 세컨더리 디바이스는 세컨더리 상태 패킷을 거꾸로 송신한다.
도 26은 본 개시의 실시예에 따른 확장된 세컨더리 상태 패킷을 예시하는 예시적인 블록도이다. 확장된 상태 및 ACK 패킷들이라고도 언급되는 확장된 세컨더리 상태 패킷들은 프라이머리 디바이스에서 요청할 때 세컨더리 디바이스로부터 프라이머리 디바이스로 송신된다. 확장된 세컨더리 상태 패킷의 처음 2바이트는 세컨더리 상태 및 ACK 패킷과 동일하며 나머지 바이트에는 세컨더리 디바이스 온도 및 전압 데이터가 포함된다. 확장된 세컨더리 상태 패킷은 두 개의 세컨더리 출력 드라이버들에 대해 9바이트 길이이며 확장될 수 있다. 확장된 세컨더리 상태 패킷 내 비트 필드에 대한 설명은 아래 표 3과 같다.
[표 3]
도 27은 본 개시의 실시예에 따른 프라이머리 투 세컨더리 명령 패킷 헤더를 예시하는 예시적인 블록도이다. 프라이머리 디바이스는 레지스터 읽기 및 쓰기를 요청하기 위한 명령 패킷을 세컨더리 디바이스로 송신한다. 명령 패킷은 도 27에 표시된 것처럼 COM 비트 = 1인 헤더 바이트로 시작된다. 프라이머리 투 세컨더리 명령 패킷 헤더의 명령 필드(COM[2:0]) 값에 대한 설명은 아래 표 4와 같다.
[표 4]
도 28은 본 개시의 실시예에 따른 세컨더리 투 프라이머리 응답 패킷 헤더를 예시하는 예시적인 블록도이다. 세컨더리 투 프라이머리 응답 패킷들은 레지스터 읽기 명령에 대한 응답이거나 레지스터 쓰기 명령에 대한 응답일 수 있다. 세컨더리 투 프라이머리 응답 패킷은 도 28에 표시된 것처럼 세컨더리 투 프라이머리 응답 패킷에 포함된 정보 유형을 나타내는 유형 필드를 포함하는 헤더 바이트로 시작한다. 세컨더리 투 프라이머리 응답 패킷 헤더 내 유형 필드(Type[2:0]) 값에 대한 설명은 아래 표 5와 같다.
[표 5]
도 29는 본 개시 내용의 실시예에 따른 프라이머리 투 세컨더리 16비트 레지스터 판독 명령 패킷을 예시하는 예시적인 블록도이다. 표시된 것처럼 프라이머리 디바이스는 COM 비트를 1로 세팅하고 그 뒤에 레지스터 주소가 포함된 3바이트가 이어지는 16비트 레지스터 읽기 명령을 송신하여 16비트 레지스터 읽기를 요청할 수 있다. 16비트 레지스터 읽기 명령 패킷은 세컨더리 디바이스 및 링크 상태뿐만 아니라 전압 및 온도 측정과 같은 기타 데이터를 읽는 데 사용될 수 있다. 세컨더리 디바이스가 16비트 레지스터 읽기 명령을 수신하면, 그 세컨더리 디바이스는 4바이트 세컨더리 응답 패킷으로 응답할 것이며, 이 패킷의 예시 블록 도면은 도 30에 표시되어 있으며, 여기에는 데이터와 유형 필드가 포함되어, 프라이머리 디바이스에게 응답 유형을 표시한다.
도 31은 본 개시의 실시예에 따른 프라이머리 투 세컨더리 32비트 레지스터 읽기 명령 패킷을 예시하는 예시적인 블록도이다. 표시된 것처럼 프라이머리 디바이스는 COM 비트를 1로 세팅하고 그 뒤에 레지스터 주소가 포함된 5바이트가 이어지는 32비트 레지스터 읽기 명령을 송신하여 세컨더리 디바이스 레지스터 또는 메모리 위치를 읽도록 요청할 수 있다. 세컨더리 디바이스가 32비트 레지스터 읽기 명령을 수신하면, 그 세컨더리 디바이스는 6바이트 세컨더리 응답 패킷으로 거꾸로 응답하며, 이 패킷의 예시 블록 도면은 도 32에서 보이며, 여기에는 데이터 및 유형 필드가 포함되어, 프라이머리 디바이스에게 응답의 유형을 표시한다.
도 33은 본 개시 내용의 실시예에 따른 프라이머리 투 세컨더리 16비트 레지스터 기록 명령 패킷을 예시하는 예시적인 블록도이다. 도시된 바와 같이 프라이머리 디바이스는 COM 비트를 1로 세팅하고 그 뒤에 16비트 주소가 이어지는 16비트 레지스터 쓰기 명령을 송신하여 16비트 레지스터 쓰기를 요청할 수 있다. 쓰기 명령이 수신되면, 세컨더리 디바이스는 2바이트 ACK 패킷으로 응답하며, 그 패킷의 예시의 블록도는 도 34에 나와 있으며, 쓰기가 성공했음을 나타낸다.
도 35는 본 개시의 실시예에 따른 프라이머리 투 세컨더리 32비트 레지스터 쓰기 명령 패킷을 예시하는 예시적인 블록도이다. 도시된 바와 같이, 프라이머리 디바이스는 COM 비트를 1로 세팅하고 그 뒤에 32비트 주소 및 32비트 쓰기 데이터가 이어지는 32비트 레지스터 쓰기 명령을 송신하여 32비트 레지스터 또는 메모리 쓰기를 요청할 수 있다. 쓰기 명령이 수신되면, 세컨더리 디바이스는 2바이트 ACK 패킷으로 응답하며, 그 패킷의 예시의 블록도는 도 36에 나와 있으며, 쓰기가 성공했음을 나타낸다.
일 실시예에서, 호스트 프로세서는 프라이머리 카메라 제어기 디바이스를 통해 세컨더리 카메라 제어기 디바이스로 "터널링"함으로써 세컨더리 카메라 제어기 디바이스를 설정하고 제어할 수 있다. 호스트 프로세서는 다음과 같이 터널링을 수행할 수 있다. 호스트 프로세서는 세컨더리 카메라 제어기 디바이스의 레지스터/메모리에 기록하라는 명령을 프라이머리 카메라 제어기 디바이스에 송신할 수 있으며; 이에 대한 응답으로, 프라이머리 카메라 제어기 디바이스는 호스트 프로세서로부터 수신된 명령에 기초하여 하나 이상의 레지스터/메모리 쓰기 패킷들을 세컨더리 카메라 제어기 디바이스에 송신한다. 추가로, 호스트 프로세서는 세컨더리 카메라 제어기 디바이스의 레지스터/메모리를 읽으라는 명령을 프라이머리 카메라 제어기 디바이스에 송신할 수 있고; 이에 응답하여, 프라이머리 카메라 제어기 디바이스는 호스트 프로세서로부터 수신된 명령에 기초하여 하나 이상의 레지스터/메모리 읽기 패킷들을 세컨더리 카메라 제어기 디바이스에게 송신하며; 프라이머리 카메라 제어기 디바이스는 세컨더리 카메라 제어기 디바이스로부터 레지스터/메모리 내 데이터를 수신하고 그 수신된 데이터를 호스트 프로세서에게 리턴한다.
카메라의 음성 코일 모터인 액추에이터를 제어하는 데 사용하기 위한 실시예가 설명되었지만, 프라이머리/세컨더리 디바이스 조합이 다른 유형의 액추에이터(예: 스테퍼 모터, 압전 모터)를 제어하는 데 사용되는 다른 실시예도 고려되며, 그리고 상기 시스템은 위에서 설명된 다양한 기능을 수행하기 위한 서보 루프의 표현으로 보일 수 있다. 추가로, 센서 데이터를 제공하기 위해 다양한 유형의 센서가 사용될 수 있는데, 예를 들어 홀 센서 또는 다른 유형의 자기 센서는 위치 데이터를 제공할 수 있으며, 그리고 다양한 온도 검출 디바이스가 온도 데이터를 제공하기 위해 사용될 수 있다. 마지막으로, 상기 통신 링크가 UART 유형 통신 링크일 수 있는 실시예가 설명되었지만, 프라이머리 카메라 제어기 디바이스와 세컨더리 카메라 제어기 디바이스 사이에서, 포인트-포인트 RS232 비동기 직렬 링크, 멀티드롭 RS485 비동기 직렬 링크, I2C (Inter-Integrated Circuit) 멀티드롭 동기 링크, SPI (Serial Peripheral Interface) 멀티드롭 동기 링크, 이더넷 링크, 범용 직렬 버스(USB) 링크, 고화질 멀티미디어 인터페이스(HDMI) 링크 및 파이버 채널 링크와 같은 다른 유형의 통신 링크들이 사용되는 다른 실시예도 고려된다.
특히 도면과 관련하여 본원에서 설명된 다양한 동작이 다른 회로 또는 다른 하드웨어 구성요소에 의해 구현될 수 있다는 것이 - 특히 본 개시 내용을 활용하는 당업자에 의해 - 이해되어야 한다. 주어진 방법의 각 동작이 수행되는 순서는 변경될 수 있으며, 본원에서 설명된 시스템의 다양한 요소는 추가, 재정렬, 결합, 생략, 수정 등이 될 수 있다. 본 개시는 이러한 모든 수정 및 변경을 포괄하도록 의도된 것이며, 따라서, 위의 설명은 제한적인 의미가 아니라 예시적인 의미로 간주되어야 한다.
마찬가지로, 본 개시 내용이 특정 실시예를 참조하지만, 본 개시 내용의 범위 및 적용 범위를 벗어나지 않으면서 이러한 실시예에 특정 수정 및 변경이 이루어질 수 있다. 더욱이, 특정 실시예와 관련하여 본 명세서에 설명된 문제점들에 대한 임의의 유리함, 이점 또는 해결책은 중요하거나, 필요하거나, 필수적인 특징 또는 요소로 해석되도록 의도되지 않는다.
마찬가지로, 본 개시 내용의 이점을 갖는 추가 실시예는 당업자에게 명백할 것이며, 그러한 실시예는 본원에 포함되는 것으로 간주되어야 한다.
예를 들어, 프라이머리 디바이스와 세컨더리 디바이스 간의 (동기화된) 업데이트 통신은 전이중 통신 또는 반이중 통신과 같은 다양한 통신 유형을 통할 수 있다. 이러한 통신은 데이터 전송의 견고성, 추가 구성, 추가 센서 및/또는 세컨더리 디바이스에서의 추가 처리 그리고 세컨더리 디바이스의 건강 및/또는 프라이머리 디바이스와 관련이 있는 다른 상태 또는 정보를 적어도 포함하는 그런 정보를 세컨더리 디바이스에 의해 전달하는 것을 지원할 수 있다.
본 개시에서는 다양한 "라벨"이 명사 또는 명사구 앞에 올 수 있다. 문맥상 달리 명시되지 않는 한, 특징부에 사용된 서로 다른 라벨(예: "제1 회로", "제2 회로", "특정 회로", "주어진 회로" 등)은 그 특징부의 서로 다른 인스턴스를 언급하는 것이다. 또한, 특징부에 적용된 "제1", "제2" 및 "제3" 라벨들은 달리 명시되지 않는 한 임의 유형의 순서(예: 공간적, 시간적, 논리적 등)를 의미하지 않는다.
마지막으로, 소프트웨어는 본원에서 설명된 장치 및 방법의 기능, 제작 및/또는 설명을 유발하거나 설정할 수 있다. 이는 일반 프로그래밍 언어(예: C, C++), Verilog HDL, VHDL 등을 포함한 HDL(hardware description languages) 또는 기타 사용 가능한 프로그램을 이용하여 달성될 수 있다. 이러한 소프트웨어는 자기 테이프, 반도체, 자기 디스크 또는 광 디스크(예: CD-ROM, DVD-ROM 등), 네트워크, 유선 또는 본원에서 설명된 장치 및 방법을 발생시키거나 설정할 수 있는 명령어들이 저장되어 있는 다른 통신 매체와 같은 알려진 비일시적 컴퓨터 판독 가능 매체에 배치될 수 있다.

Claims (46)

  1. 위치 센서들로부터 수신된 센서 데이터에 기초하여 그리고 호스트 프로세서로부터 수신된 이미지 센서 및/또는 렌즈들에 대한 위치 정보에 기초하여 상기 이미지 센서 및/또는 렌즈들을 제어하기 위해 액추에이터들을 사용하는 시스템으로서, 상기 시스템은:
    프라이머리 카메라 제어기 디바이스;
    적어도 하나의 세컨더리 카메라 제어기 디바이스; 그리고
    상기 프라이머리 카메라 제어기 디바이스와 상기 적어도 하나의 세컨더리 카메라 제어기 디바이스를 연결하는 적어도 하나의 통신 링크를 포함하며;
    상기 프라이머리 카메라 제어기 디바이스는:
    수신된 센서 데이터와 수신된 위치 정보를 처리하여 제어 데이터를 생성하며;
    상기 통신 링크를 통해 상기 제어 데이터의 세컨더리 부분을 상기 세컨더리 카메라 제어기 디바이스에게 송신하며; 그리고
    상기 제어 데이터의 프라이머리 부분을 상기 액추에이터들에게로 구동하고; 그리고
    상기 프라이머리 카메라 제어기 디바이스가 상기 제어 데이터의 상기 프라이머리 부분을 상기 액추에이터들에게로 구동하는 것과 동시에 상기 세컨더리 카메라 제어기 디바이스는 상기 수신된 상기 제어 데이터의 세컨더리 부분을 상기 액추에이터들에게로 구동하도록 구성된, 시스템.
  2. 제1항에 있어서,
    상기 세컨더리 카메라 제어기 디바이스는:
    상기 위치 센서들로부터 세컨더리 센서 데이터를 수신하며; 그리고
    수신된 세컨더리 센서 데이터를 상기 통신 링크를 통해 상기 프라이머리 카메라 제어기 디바이스에게 송신하도록 더 구성되며; 그리고
    상기 프라이머리 카메라 제어기 디바이스는:
    상기 수신된 프라이머리 센서 데이터 및 세컨더리 센서 데이터 그리고 상기 수신된 위치 정보를 처리하여 제어 데이터를 생성하도록 더 구성된, 시스템.
  3. 제1항에 있어서,
    상기 프라이머리 및 세컨더리 카메라 제어기 디바이스들 각각은 상기 통신 링크를 구동하는 각자의 전송 패드를 포함하며; 그리고
    상기 프라이미러 및 세컨더리 카메라 제어기 디바이스들 각각은:
    상기 프라이머리 및 세컨더리 카메라 제어기 디바이스들이 반이중 (half-duplex) 모드에서 각자의 전송 패드를 동시에 구동할 때에 발생하는 경합에 대해 각자의 전송 패드를 모니터하며; 그리고
    상기 경합을 검출한 것에 응답하여 전송 패드를 비활성화도록 구성된, 시스템.
  4. 제3항에 있어서,
    상기 프라이머 및 세컨더리 카메라 제어기 디바이스들 각각은, 다른 카메라 제어기 디바이스로부터 상기 전송 패드상으로 수신된 입력 신호를 상기 각자의 카메라 제어기 디바이스에 의해 상기 전송 패드상으로 구동된 출력 신호의 루프백 버전과 비교하여 경합에 대해 각자의 전송 패드를 모니터하도록 구성된, 시스템.
  5. 제1항에 있어서,
    제1항에 있어서, 상기 프라이머리 및 세컨더리 카메라 제어기 디바이스들 각각은 상기 통신 링크에 대한 과열 상태 또는 감시 타이머의 만료를 검출한 것에 응답하여 상기 통신 링크를 비활성화하도록 구성되는, 시스템.
  6. 제1항에 있어서,
    상기 프라이머리 카메라 제어기 디바이스는 상기 통신 링크를 통해 상기 세컨더리 카메라 제어기 디바이스로부터 상태 정보를 주기적으로 요청하도록 구성되며, 상기 상태 정보는:
    상기 세컨더리 카메라 제어기 디바이스의 상태;
    상기 통신 링크의 상태; 그리고
    상기 세컨더리 카메라 제어기 디바이스의 온도 및/또는 전압 측정들 중 하나 이상을 포함하는, 시스템.
  7. 제1항에 있어서,
    상기 세컨더리 카메라 제어기 디바이스는, 상기 프라이머리 카메라 제어기 디바이스로부터 수신된 데이터에 대한 패리티 오류; 및
    상기 프라이머리 카메라 제어기 디바이스로부터 수신된 패킷들에 대한 패킷 시퀀스 오류 중 하나 이상을 체크하도록 구성된, 시스템.
  8. 제1항에 있어서,
    상기 프라이머리 카메라 제어기 디바이스는 상기 세컨더리 카메라 제어기 디바이스로부터 예상되는 패킷이 타임아웃되었음을 상기 호스트 프로세서에게 보고하도록 구성된, 시스템.
  9. 제1항에 있어서,
    상기 프라이머리 카메라 제어기 디바이스는 상기 세컨더리 카메라 제어기 디바이스로부터 수신된 패킷에 패리티 오류가 있음을 상기 호스트 프로세서에게 보고하도록 구성된, 시스템.
  10. 제1항에 있어서,
    상기 프라이머리 카메라 제어기 디바이스는, 상기 프라이머리 카메라 제어기 디바이스에 의해 상기 세컨더리 카메라 제어기 디바이스로 송신된 패킷들에 대해 상기 세컨더리 카메라 제어기 디바이스가 패킷 순서 오류를 표시했음을 상기 호스트 프로세서에게 보고하도록 구성된, 시스템.
  11. 제1항에 있어서,
    상기 프라이머리 카메라 제어기 디바이스는 상기 세컨더리 카메라 제어기 디바이스로부터 수신된 유효한 상태 패킷들의 카운트를 상기 호스트 프로세서에게 보고하도록 구성된, 시스템.
  12. 제1항에 있어서,
    상기 프라이머리 카메라 제어기 디바이스는,
    상기 세컨더리 카메라 제어기 디바이스로부터 상기 프라이머리 카메라 제어기 디바이스로의 누락된 패킷들;
    상기 세컨더리 카메라 제어기 디바이스로부터 상기 프라이머리 카메라 제어기 디바이스로의 드랍된 패킷들; 그리고
    부정적인 수신확인(negative acknowledgement, NACK) 상태 패킷들의 카운트를 상기 호스트 프로세서에게 보고하도록 구성된, 시스템.
  13. 위치 센서들로부터 수신된 센서 데이터에 기초하여 그리고 호스트 프로세서로부터 수신된 이미지 센서 및/또는 렌즈들에 대한 위치 정보에 기초하여 상기 이미지 센서 및/또는 렌즈들을 제어하기 위해 액추에이터들을 사용하는 방법으로서, 상기 방법은:
    상기 수신된 센서 데이터 및 상기 수신된 위치 정보를 프라이머리 카메라 제어기 디바이스가 처리하여 제어 데이터를 생성하는 단계;
    상기 프라이머리 카메라 제어기 디바이스와 적어도 하나의 세컨더리 카메라 제어기 디바이스를 연결하는 적어도 하나의 통신 링크를 통해 상기 제어 데이터의 세컨더리 부분을 상기 적어도 하나의 세컨더리 카메라 제어기 디바이스에게 상기 프라이머리 카메라 제어기 디바이스에 의해 송신하는 단계;
    상기 프라이머리 카메라 제어기 디바이스에 의해 상기 제어 데이터의 프라이머리 부분을 액추에이터들에게로 구동하는 단계; 그리고
    상기 프라이머리 카메라 제어기 디바이스가 상기 제어 데이터의 프라이머리 부분을 액추에이터들에게로 구동하는 것과 동시에 상기 제어 데이터의 수신된 세컨더리 부분을 상기 세컨더리 카메라 제어기 디바이스에 의해 상기 액추에이터들에게로 구동하는 단계를 포함하는, 방법.
  14. 제13항에 있어서,
    상기 세컨더리 카메라 제어기 디바이스에 의해 상기 위치 센서들로부터 세컨더리 센서 데이터를 수신하는 단계;
    상기 수신된 세컨더리 센서 데이터를 상기 통신 링크를 통해 상기 프라이머리 카메라 제어기 디바이스로 상기 세컨더리 카메라 제어기 디바이스에 의해 송신하는 단계; 그리고
    상기 수신된 프라이머리 및 세컨더리 센서 데이터와 상기 수신된 위치 정보를 상기 프라이머리 카메라 제어기 디바이스에 의해 처리하여 제어 데이터를 생성하는 단계를 더 포함하는, 방법.
  15. 제13항에 있어서,
    상기 프라이머리 및 세컨더리 카메라 제어기 디바이스들 각각은 상기 통신 링크를 구동하는 각자의 전송 패드를 포함하며; 그리고
    상기 프라이미러 및 세컨더리 카메라 제어기 디바이스들 각각에 의해:
    상기 프라이머리 및 세컨더리 카메라 제어기 디바이스들이 반이중 모드에서 각자의 전송 패드를 동시에 구동할 때에 발생하는 경합에 대해 각자의 전송 패드를 모니터하며; 그리고
    상기 경합을 검출한 것에 응답하여 전송 패드를 비활성화하는, 방법.
  16. 제15항에 있어서,
    경합에 대해 각자의 전송 패드를 모니터하는 것은:
    다른 카메라 제어기 디바이스로부터 상기 전송 패드상으로 수신된 입력 신호를 상기 각자의 카메라 제어기 디바이스에 의해 상기 전송 패드에서 구동되는 출력 신호의 루프백 버전과 비교하는 것을 포함하는, 방법.
  17. 제13항에 있어서,
    상기 프라이미러 및 세컨더리 카메라 제어기 디바이스들 각각에 의해:
    통신 링크에 대한 과열 상태 또는 감시 타이머의 만료를 검출한 것에 응답하여 상기 통신 링크를 비활성화하는 단계를 더 포함하는, 방법.
  18. 제13항에 있어서,
    상기 프라이머리 카메라 제어기 디바이스가 상기 통신 링크를 통해 상기 세컨더리 카메라 제어기 디바이스로부터 상태 정보를 주기적으로 요청하는 단계를 더 포함하며, 상기 상태 정보는:
    상기 세컨더리 카메라 제어기 디바이스의 상태;
    상기 통신 링크의 상태; 그리고
    상기 세컨더리 카메라 제어기 디바이스의 온도 및/또는 전압 측정들 중 하나 이상을 포함하는, 방법.
  19. 제13항에 있어서,
    상기 세컨더리 카메라 제어기 디바이스에 의해:
    상기 프라이머리 카메라 제어기 디바이스로부터 수신된 데이터에 관한 패리티 오류; 및 상기 프라이머리 카메라 제어기 디바이스로부터 수신된 패킷들에 관한 패킷 순서 오류 중 하나 이상을 체크하는 단계를 더 포함하는, 방법.
  20. 제13항에 있어서,
    상기 세컨더리 카메라 제어기 디바이스로부터 예상되는 패킷이 타임 아웃되었음을 상기 프라이머리 카메라 제어기 디바이스에 의해 상기 호스트 프로세서에게 보고하는 단계를 더 포함하는, 방법.
  21. 제13항에 있어서,
    상기 세컨더리 카메라 제어기 디바이스로부터 수신된 패킷에 패리티 오류가 있음을 상기 프라이머리 카메라 제어기 디바이스에 의해 상기 호스트 프로세서에 보고하는 단계를 더 포함하는, 방법.
  22. 제13항에 있어서,
    상기 프라이머리 카메라 제어기 디바이스에 의해 상기 세컨더리 카메라 제어기 디바이스에게로 송신된 패킷들에 대해 상기 세컨더리 카메라 제어기 디바이스가 패킷 순서 오류를 표시했음을 상기 프라이머리 카메라 제어기 디바이스에 의해 상기 호스트 프로세서에게 보고하는 단계를 더 포함하는, 방법.
  23. 제13항에 있어서,
    상기 프라이머리 카메라 제어기 디바이스가 상기 세컨더리 카메라 제어기 디바이스로부터 수신한 유효한 상태 패킷들의 카운트를 상기 호스트 프로세서에게 보고하는 단계를 더 포함하는, 방법.
  24. 제13항에 있어서,
    상기 프라이머리 카메라 제어기 디바이스에 의해 상기 호스트 프로세서에게:
    상기 세컨더리 카메라 제어기 디바이스로부터 상기 프라이머리 카메라 제어기 디바이스로의 누락된 패킷들;
    상기 세컨더리 카메라 제어기 디바이스로부터 상기 프라이머리 카메라 제어기 디바이스로의 드랍된 패킷들; 그리고
    부정적인 수신확인(NACK) 상태 패킷들의 카운트를 보고하는 단계를 더 포함하는, 방법.
  25. 위치 센서들로부터 수신된 센서 데이터에 기초하여 그리고 호스트 프로세서로부터 수신된 이미지 센서 및/또는 렌즈들에 대한 위치 정보에 기초하여 상기 이미지 센서 및/또는 렌즈들을 제어하기 위해 액추에이터들을 사용하는 시스템으로서, 상기 시스템은:
    프라이머리 카메라 제어기 디바이스;
    적어도 하나의 세컨더리 카메라 제어기 디바이스; 그리고
    상기 프라이머리 카메라 제어기 디바이스와 상기 적어도 하나의 세컨더리 카메라 제어기 디바이스를 연결하는 적어도 하나의 통신 링크를 포함하며;
    상기 프라이미러 및 세컨더리 카메라 제어기 디바이스들은:
    상기 위치 센서들로부터 각자의 프라이머리 및 세컨더리 센서 데이터를 수신하며; 상기 통신 링크를 통해 각자의 프라이머리 및 세컨더리 센서 데이터를 다른 카메라 제어기 디바이스에게 송신하며;
    상기 프라이머리 및 세컨더리 센서 데이터 그리고 상기 위치 정보를 처리하여 각자의 프라이머리 및 세컨더리 제어 데이터를 생성하며; 그리고
    상기 각자의 프라이머리 및 세컨더리 제어 데이터를 상기 액추에이터들에게로 동시에 구동하도록 구성된, 시스템.
  26. 제25항에 있어서,
    상기 프라이머리 카메라 제어기 디바이스는:
    상기 호스트 제어기로부터 위치 정보를 수신하며; 그리고
    상기 통신 링크를 통해 상기 세컨더리 카메라 제어기 디바이스에게 상기 위치 정보를 송신하도록 구성된, 시스템.
  27. 제25항에 있어서,
    상기 프라이머리 및 세컨더리 카메라 제어기 디바이스들은 상기 세컨더리 카메라 제어기 디바이스의 디지털 신호 프로세서(DSP) 프레임을 상기 프라이머리 카메라 제어기 디바이스의 DSP 프레임에 동기화하도록 구성된, 시스템.
  28. 제27항에 있어서,
    상기 프라이머리 카메라 제어기 디바이스 및 상기 세컨더리 카메라 제어기 디바이스 각각은 DSP 및 상기 DSP에게 클록 신호를 제공하는 클록 소스를 포함하며; 상기 세컨더리 카메라 제어기 디바이스는 상기 클록 소스의 사이클들을 카운트하는 프리 런닝 (free running) 카운터를 포함하며; 그리고
    상기 세컨더리 카메라 제어기 디바이스의 DSP 프레임을 상기 프라이머리 카메라 제어기 디바이스의 DSP 프레임에 동기화하기 위해, 상기 세컨더리 카메라 제어기 디바이스는:
    상기 프리 런닝 카운터를 사용하여 상기 프라이머리 및 세컨더리 카메라 제어기 디바이스들의 클록 소스들의 주파수들 간의 주파수 오차를 판별하며; 그리고 상기 주파수 오차를 사용하여 상기 세컨더리 카메라 제어기 디바이스의 클록 소스 주파수를 조정하도록 구성된, 시스템.
  29. 제28항에 있어서,
    각 DSP 프레임에 대해, 상기 프라이머리 카메라 제어기 디바이스는 상기 DSP 프레임의 시작에 대해 미리 결정된 지연으로 상기 통신 링크를 통해 상기 세컨더리 카메라 제어기 디바이스에게 패킷을 송신하도록 구성되며; 그리고
    상기 프리 런닝 카운터를 사용하여 상기 프라이머리 카메라 제어기 디바이스와 상기 세컨더리 카메라 제어기 디바이스의 클럭 소스들의 주파수들 사이의 주파수 오차를 판별하기 위해, 상기 세컨더리 카메라 제어기 디바이스는:
    상기 통신 링크상으로 상기 프라이머리 카메라 제어기 디바이스로부터 수신된 패킷의 검출에 응답하여 상기 프리 런닝 카운터의 값을 래치하며;
    상기 DSP 프레임과 연관된 래치된 값을 바로 이전 DSP 프레임과 연관된 래치된 값으로부터 공제하여 측정된 DSP 프레임 기간을 생성하며; 그리고
    미리 결정된 예상 DSP 프레임 기간으로부터 상기 측정된 DSP 프레임 기간을 공제하여 주파수 오차를 생성하도로 구성된, 시스템.
  30. 제29항에 있어서,
    상기 세컨더리 카메라 제어기 디바이스는 복수의 DSP 프레임들에 걸쳐 생성된 주파수 오차를 평균화하며; 그리고
    상기 평균 주파수 오차를 사용하여 상기 세컨더리 카메라 제어기 디바이스의 클럭 소스 주파수를 조정하도록 구성된, 시스템.
  31. 제25항에 있어서,
    상기 통신 링크는 포인트-투-포인트 직렬 통신 링크이며; 그리고 상기 프라이머리 및 세컨더리 카메라 제어기 디바이스들은 상기 프라이머리 카메라 제어기 디바이스가 상기 포인트-투-포인트 직렬 통신 링크를 통해 상기 세컨더리 디바이스를 설정하고 제어하는 것이 가능하게 하도록 구성된, 시스템.
  32. 제31항에 있어서,
    상기 프라이머리 및 세컨더리 카메라 제어기 디바이스들은, 상기 프라이머리 카메라 제어기 디바이스가, 상기 포인트-투-포인트 직렬 통신 링크를 통해 메모리 및/또는 레지스터 읽기 및 쓰기 명령 패킷들을 송신함으로써 상기 세컨더리 카메라 제어기 디바이스의 메모리들 및/또는 레지스터들에 액세스하여 상기 포인트-투-포인트 직렬 통신 링크를 통해 상기 세컨더리 디바이스를 설정 및 제어하는 것이 가능하게 하도록 구성된, 시스템.
  33. 제25항에 있어서,
    상기 통신 링크는 전이중 (full-duplex) 통신 링크인, 시스템.
  34. 제25항에 있어서,
    상기 제어 데이터를 생성하기 위해 처리된 센서 데이터는 온도 센서들로부터 수신된 온도 데이터 및/또는 파워 서플라이 전압 센서들로부터 수신된 전압 데이터를 더 포함하는, 시스템.
  35. 제25항에 있어서,
    상기 프라이머리 및 세컨더리 카메라 제어기 디바이스들은, 상기 프라이머리 카메라 제어기 디바이스가 상기 세컨더리 카메라 제어기 디바이스의 오류들을 모니터하는 것을 가능하게 하기 위해 상기 통신 링크를 사용하도록 구성된, 시스템.
  36. 위치 센서들로부터 수신된 센서 데이터에 기초하여 그리고 호스트 프로세서로부터 수신된 이미지 센서 및/또는 렌즈들에 대한 위치 정보에 기초하여 상기 이미지 센서 및/또는 렌즈들을 제어하기 위해 액추에이터들을 사용하는 방법으로서, 상기 방법은:
    프라이머리 카메라 제어기 디바이스 및 적어도 하나의 세컨더리 카메라 제어기 디바이스에 의해 상기 위치 센서들로부터 각자의 프라이머리 및 세컨더리 센서 데이터를 수신하는 단계; 상기 프라이머리 카메라 제어기 디바이스 및 상기 적어도 하나의 세컨더리 카메라 제어기 디바이스에 의해, 상기 각자의 프라이머리 및 세컨더리 센서 데이터를 상기 프라이머리 카메라 제어기 디바이스와 상기 적어도 하나의 세컨더리 카메라를 연결하는 적어도 하나의 통신 링크를 통해 다른 카메라 제어기 디바이스로 송신하는 단계; 상기 프라이머리 카메라 제어기 디바이스 및 상기 적어도 하나의 세컨더리 카메라 제어기 디바이스에 의해 상기 프라이머리 및 세컨더리 센서 데이터와 상기 위치 정보를 처리하여 각자의 프라이머리 및 세컨더리 제어 데이터를 생성하는 단계; 그리고
    상기 프라이머리 카메라 제어기 디바이스와 상기 적어도 하나의 세컨더리 카메라 제어기 디바이스에 의해 상기 각자의 프라이머리 및 세컨더리 제어 데이터를 상기 액추에이터들에게로 동시에 구동하는 단계를 포함하는, 방법.
  37. 제36항에 있어서,
    상기 프라이머리 카메라 제어기 디바이스에 의해 상기 호스트 제어기로부터 위치 정보를 수신하는 단계; 그리고
    상기 프라이머리 카메라 제어기 디바이스에 의해 상기 위치 정보를 상기 통신 링크를 통해 세컨더리 카메라 제어기 디바이스로 송신하는 단계를 더 포함하는, 방법.
  38. 제36항에 있어서,
    상기 프라이미러 및 세컨더리 카메라 제어기 디바이스들에 의해, 상기 세컨더리 카메라 제어기 디바이스의 디지털 신호 프로세서(DSP) 프레임을 상기 프라이머리 카메라 제어기 디바이스의 DSP 프레임에 동기화하는 단계를 더 포함하는, 방법.
  39. 제38항에 있어서,
    상기 프라이머리 카메라 제어기 디바이스 및 상기 세컨더리 카메라 제어기 디바이스 각각은 DSP 및 상기 DSP에게 클록 신호를 제공하는 클록 소스를 포함하며; 상기 세컨더리 카메라 제어기 디바이스는 상기 클록 소스의 사이클들을 카운트하는 프리 런닝 카운터를 포함하며; 그리고
    상기 세컨더리 카메라 제어기 디바이스의 DSP 프레임을 상기 프라이머리 카메라 제어기 디바이스의 DSP 프레임에 동기화하는 단계는:
    상기 세컨더리 카메라 제어기 디바이스에 의해 상기 프리런 카운터를 사용하여, 상기 프라이머리 및 세컨더리 카메라 제어기 디바이스들의 클럭 소스들의 주파수들 사이의 주파수 오차를 판별하는 단계; 그리고
    상기 세컨더리 카메라 제어기 디바이스에 의해 상기 주파수 오차를 사용하여 상기 세컨더리 카메라 제어기 디바이스의 클록 소스의 주파수를 조정하는 단계를 포함하는, 방법.
  40. 제39항에 있어서,
    각 DSP 프레임에 대해:
    상기 프라이머리 카메라 제어기 디바이스에 의해, 상기 DSP 프레임의 시작에 대해 미리 결정된 지연으로 상기 통신 링크를 통해 상기 세컨더리 카메라 제어기 디바이스에게 패킷을 송신하는 단계를 더 포함하며,
    상기 프리런 카운터를 사용하여, 상기 프라이머리 및 세컨더리 카메라 제어기 디바이스들의 클럭 소스들의 주파수들 사이의 주파수 오차를 판별하는 단계는:
    상기 통신 링크상으로 상기 프라이머리 카메라 제어기 디바이스로부터 수신된 패킷의 검출에 응답하여 상기 세컨더리 카메라 제어기 디바이스에 의해 상기 프리 런닝 카운터의 값을 래칭하는 단계;
    측정된 DSP 프레임 주기를 생성하기 위해, 상기 DSP 프레임과 연관된 래치된 값을 바로 이전 DSP 프레임과 연관된 래치된 값으로부터 상기 세컨더리 카메라 제어기 디바이스에 의해 빼는 단계; 그리고
    측정된 DSP 프레임 주기를 미리 결정된 예상 DSP 프레임 주기로부터 상기 세컨더리 카메라 제어기 디바이스에 의해 빼서 상기 주파수 오차를 생성하는 단계를 포함하는, 방법.
  41. 제40항에 있어서,
    복수의 DSP 프레임들에 걸쳐 생성된 주파수 오차를 상기 세컨더리 카메라 제어기 디바이스에 의해 평균화하는 단계; 그리고
    상기 세컨더리 카메라 제어기 디바이스에 의해 상기 평균 주파수 오차를 사용하여, 상기 세컨더리 카메라 제어기 디바이스의 클록 소스의 주파수를 조정하는 단계를 더 포함하는, 방법.
  42. 제36항에 있어서,
    상기 통신 링크는 포인트-투-포인트 직렬 통신 링크이며; 그리고 상기 프라이머리 및 세컨더리 카메라 제어기 디바이스들에 의해, 상기 프라이머리 카메라 제어기 디바이스가 상기 포인트-투-포인트 직렬 통신 링크를 통해 상기 세컨더리 디바이스를 설정하고 제어하는 것을 가능하게 하는 단계를 더 포함하는, 방법.
  43. 제42항에 있어서,
    상기 프라이머리 및 세컨더리 카메라 제어기 디바이스들에 의해, 상기 프라이머리 카메라 제어기 디바이스가 상기 포인트-투-포인트 직렬 통신 링크를 통해 상기 세컨더리 디바이스를 설정하고 제어하는 것을 가능하게 하는 상기 단계는:
    상기 포인트-투-포인트 직렬 통신 링크를 통해 메모리 및/또는 레지스터 읽기 및 쓰기 명령 패킷들을 송신함으로써 상기 프라이머리 카메라 제어기 디바이스에 의해 상기 세컨더리 카메라 제어기 디바이스의 메모리들 및/또는 레지스터들에 액세스하는 단계를 포함하는, 방법.
  44. 제36항에 있어서,
    상기 통신 링크는 전이중 통신 링크인, 방법.
  45. 제36항에 있어서,
    상기 제어 데이터를 생성하기 위해 처리된 센서 데이터는 온도 센서들로부터 수신된 온도 데이터 및/또는 파워 서플라이 전압 센서들로부터 수신된 전압 데이터를 더 포함하는, 방법.
  46. 제36항에 있어서,
    상기 프라이머리 및 세컨더리 카메라 제어기 디바이스들에 의해 상기 통신 링크를 사용하여, 상기 프라이머리 카메라 제어기 디바이스가 상기 세컨더리 카메라 제어기 디바이스의 오류들을 모니터하는 것을 가능하게 하는 단계를 더 포함하는, 방법.
KR1020237038350A 2021-05-07 2022-05-05 인터칩을 구비한 다중칩 카메라 제어기 시스템 KR20240004481A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163186022P 2021-05-07 2021-05-07
US63/186,022 2021-05-07
US17/320,528 US20210356843A1 (en) 2020-05-14 2021-05-14 System and method for providing increased number of time synchronized outputs by using communicating primary and secondary devices
US17/320,528 2021-05-14
PCT/US2022/027863 WO2022235928A1 (en) 2021-05-07 2022-05-05 Multi-chip camera controller system with inter-chip communication

Publications (1)

Publication Number Publication Date
KR20240004481A true KR20240004481A (ko) 2024-01-11

Family

ID=88696385

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237038350A KR20240004481A (ko) 2021-05-07 2022-05-05 인터칩을 구비한 다중칩 카메라 제어기 시스템

Country Status (2)

Country Link
KR (1) KR20240004481A (ko)
GB (1) GB2619872A (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4599719A (en) * 1984-06-18 1986-07-08 At&T Information Systems Inc. Full duplex data set with half-duplex emulation
US8170408B2 (en) * 2009-05-18 2012-05-01 Invensense, Inc. Optical image stabilization in a digital still camera or handset

Also Published As

Publication number Publication date
GB2619872A (en) 2023-12-20
GB202314953D0 (en) 2023-11-15

Similar Documents

Publication Publication Date Title
US11979659B2 (en) Multi-chip camera controller system with inter-chip communication
US7849340B2 (en) Data transmission system and link state managing method thereof using turn-off acknowledgement and electrical idle waiting timeouts
EP3229461B1 (en) Accessory apparatus, image-capturing apparatus, image-capturing system, control method and control program
US20210356843A1 (en) System and method for providing increased number of time synchronized outputs by using communicating primary and secondary devices
US8414205B2 (en) Intermediate accessory for camera system, and camera system using the same
US20220201192A1 (en) Accessory apparatus, image-capturing apparatus, control method and storage medium storing control program
US10750078B2 (en) Image-capturing apparatus, accessory apparatus, and control method therefor with changing signal level of communication channel from one level to another
US20190171595A1 (en) Bit-interleaved bi-directional transmissions on a multi-drop bus for time-critical data exchange
US5133078A (en) Serial frame processing system in which validation and transfer of a frame's data from input buffer to output buffer proceed concurrently
JP2002258381A (ja) レンズ交換式カメラ、そのカメラボディおよび撮影レンズ
KR20240004481A (ko) 인터칩을 구비한 다중칩 카메라 제어기 시스템
KR102307573B1 (ko) 직렬 주변기기 인터페이스 마스터
JP2020052182A (ja) アダプタ装置、カメラシステム、制御方法、プログラム
WO2022235928A1 (en) Multi-chip camera controller system with inter-chip communication
EP3051418A1 (en) Information processing apparatus, information processing system, and communication device
US10489319B2 (en) Automatic transmission of dummy bits in bus master
JP6701109B2 (ja) アクセサリ装置、撮像装置
US11995012B2 (en) High speed interface for multi image sensor device
JP7460743B1 (ja) メモリコントローラ及びメモリコントローラ制御方法
JP2003249978A (ja) シリアル転送装置
JP2013172403A (ja) シリアル通信装置および電子カメラ
JP2018205465A (ja) 撮像装置およびその制御方法、外付け装置、通信システム
TW201438495A (zh) 無線同步系統及其方法