KR20180071268A - 제어기와 센서들을 동기화하기 위한 장치 및 방법들 - Google Patents

제어기와 센서들을 동기화하기 위한 장치 및 방법들 Download PDF

Info

Publication number
KR20180071268A
KR20180071268A KR1020187011318A KR20187011318A KR20180071268A KR 20180071268 A KR20180071268 A KR 20180071268A KR 1020187011318 A KR1020187011318 A KR 1020187011318A KR 20187011318 A KR20187011318 A KR 20187011318A KR 20180071268 A KR20180071268 A KR 20180071268A
Authority
KR
South Korea
Prior art keywords
sensor
message
time
synchronization
timing
Prior art date
Application number
KR1020187011318A
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 US15/251,757 external-priority patent/US20160370845A1/en
Priority claimed from US15/299,382 external-priority patent/US20170041897A1/en
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20180071268A publication Critical patent/KR20180071268A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0685Clock or time synchronisation in a node; Intranode synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q9/00Arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom
    • H04Q9/04Arrangements for synchronous operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2209/00Arrangements in telecontrol or telemetry systems
    • H04Q2209/30Arrangements in telecontrol or telemetry systems using a wired architecture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2209/00Arrangements in telecontrol or telemetry systems
    • H04Q2209/80Arrangements in the sub-station, i.e. sensing device
    • H04Q2209/84Measuring functions
    • H04Q2209/845Measuring functions where the measuring is synchronized between sensing devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)
  • Electric Clocks (AREA)
  • Information Transfer Systems (AREA)

Abstract

호스트 제어기를 이용하여 센서 타이밍 정정 메시지들을 송신하기 위한 방법들 및 장치가 개시된다. 방법들 및 장치는, 인터페이스를 통해 호스트 제어기와 커플링되는 센서에 송신되는 동기화 메시지들을 결정하며, 여기서, 메시지들은, 호스트 제어기와 센서의 타이밍을 동기화하기 위한 동기화 기간의 시작을 표시한다. 부가적으로, 동기화 기간의 시작과 동기화 메시지의 실제 송신 시간 사이의 시간 지연을 표시하는 지연 시간 메시지가 결정된다. 동기화 메시지는, 정보 메시지에서 지연 시간 메시지와 함께 센서로 송신되며, 여기서, 정보 메시지는, 센서가 지연 시간을 고려함으로써 센서 타이머의 타이밍을 정정하는 것을 허용하도록 구성된다.

Description

제어기와 센서들을 동기화하기 위한 장치 및 방법들
[0001] 본 출원은, "CORRECTION OF SYNC TICK IN A SYSTEM SYNCHRONIZING CONTROLLER AND SENSORS"라는 명칭으로 2015년 10월 23일자로 미국 특허상표청에 출원된 가출원 제62/245,914호, "ACHIEVING ACCEPTABLE CONTROL FOR THE RANGE OF SENSOR CLOCK TIMING IN A SYSTEM SYNCHRONIZING CONTROLLER AND SENSORS"라는 명칭으로 2015년 10월 23일자로 미국 특허상표청에 출원된 가출원 제62/245,917호, "REDUCTION OF TIME STAMP OVERHEAD IN A SYSTEM SYNCHRONIZING CONTROLLER AND SENSORS"라는 명칭으로 2015년 10월 23일자로 미국 특허상표청에 출원된 가출원 제62/245,922호, "TIMESTAMP FOR ASYNCHRONOUS EVENT"라는 명칭으로 2015년 10월 23일자로 미국 특허상표청에 출원된 가출원 제62/245,924호, "SYSTEM AND METHODS OF REDUCING ENERGY CONSUMPTION BY SYNCHRONIZING SENSORS"라는 명칭으로 2016년 8월 30일자로 미국 특허상표청에 출원된 정규 출원 제15/251,757호, 및 "APPARATUS AND METHODS FOR SNYCHRONIZING A CONTROLLER AND SENSORS"라는 명칭으로 2016년 10월 20일자로 미국 특허상표청에 출원된 정규 출원 제15/299,382호의 이득 및 이들에 대한 우선권을 주장하며, 상기 출원들의 전체 내용들은 인용에 의해 본원에 포함된다.
[0002] 본원에 개시된 요지는 전자 디바이스들에 관한 것으로, 더 상세하게는, 제어기들 및 센서들을 동기화하기 위한 방법들, 장치, 및 시스템들에 관한 것이다.
[0003] 현대의 모바일 디바이스들은 많은 센서들을 포함한다. 일반적으로, 데이터 프로세싱 유닛, 제어기, 호스트 디바이스, 또는 마스터(master) 디바이스(이하에서, 간단히 제어기 또는 호스트 제어기로 지칭됨)는, 센서들 또는 슬레이브(slave) 유닛들(이하에서, "센서"로 지칭됨)에 의해 수집되는 데이터를 수신 및 프로세싱하도록 제공된다. 전력을 보존하기 위해, 센서들로부터 제어기로 어떠한 데이터도 전달되지 않는 경우, 제어기는 규칙적으로 슬립(sleep) 상태가 된다.
[0004] 센서들로부터 제어기로 데이터를 전달하는 데 있어 2개의 방법들이 통상적으로 활용된다. 비동기식 방법으로 알려져 있는 제1 방법에서, 전달할 가용 데이터를 갖는 센서는, 제어기를 웨이크 업(wake up)시키는 신호를 송출(예컨대, DRI(Data Ready Interrupt) 신호를 특정한 알려진 시스템들에 대한 전용 DRI 핀을 통해 송출)함으로써 제어기에 통지하며, 그런 다음, 제어기가 준비될 때, 센서가 데이터를 전달한다. 동기식 방법으로 알려져 있는 제2 방법에서, 제어기는, 미리결정된 시간 인터벌(interval)들로 슬립 상태로부터 자발적으로(spontaneously) 웨이크 업하고, 센서들을 폴링(poll)하며, 무엇이든 센서들에 존재하는 데이터를 센서들로부터 수신한다. 동기식 방법은 다수의 센서들을 포함하는 디바이스에서 더 에너지 효율적인데, 그 이유는, 하나 초과의 센서로부터의 데이터 전달들이 단일 폴(poll) 및 전달 세션 내에 통합(consolidate)될 수 있기 때문이다.
[0005] 다수의 센서들 또는 다른 디바이스들이 주기적으로 샘플링된 데이터를 제공하는 시스템들에서, 본질적으로 동기화된 시간들에 데이터를 수집할 것을 센서들에 지시할 수 있고 그리고 동일한 어웨이크(awake) 시간 윈도우(window) 또는 시스템 어웨이크 기간 내에 여러 센서들로부터의 데이터를 제어기가 판독하는 것이 추가적으로 유리하다. 이상적으로, 센서가 가장 최신의 결과들만을 전달한다고 가정하면, 센서의 샘플링 주파수와 일치하는 주파수에서 센서를 폴링하는 것은, 센서에 의해 수집되는 데이터 전부를 획득하기에 충분하다. 그러나, 제어기 및 센서들은 일반적으로 타이밍 신호들을 공유하지 않고, 그에 따라 타이밍 신호들의 오정렬(misalignment)이 초래될 수 있기 때문에, 센서들이 그들의 샘플링 주파수들에서 폴링되는 경우라 하더라도 일부 센서 데이터 샘플들은 두 번 판독될 수 있고, 일부 센서 데이터 샘플들은 유실될 수 있다. 그 현상은, 일부 센서들이 불량한 클록 또는 타이머 정확도(예컨대, 온도 범위에 걸쳐 그리고 디바이스마다 ± 15 %의 편차)를 갖는다는 사실에 의해 악화된다.
[0006] 일 양상에 따르면, 호스트 제어기로 구현되는 센서 타이밍 정정 메시지들을 송신하기 위한 방법이 개시된다. 방법은, 동기화 메시지를 결정하는 단계를 포함하며, 동기화 메시지는, 센서에 송신되도록 그리고 호스트 제어기와 센서의 타이밍을 동기화하기 위한 동기화 기간의 시작을 표시하도록 구성된다. 지연 시간 메시지가 또한 결정되며, 지연 시간 메시지는, 동기화 기간의 시작과 동기화 메시지의 실제 송신 시간 사이의 시간 지연을 표시하도록 구성된다. 방법은, 정보 메시지에서 지연 시간 메시지와 함께 동기화 메시지를 센서에 송신하는 단계를 더 포함하며, 여기서, 정보 메시지는, 센서가 센서 타이머의 타이밍을 정정하는 것을 허용하도록 구성된다.
[0007] 다른 양상에서, 적어도 하나의 전송 매체를 통해 적어도 하나의 센서 디바이스에 통신가능하게 커플링되도록 구성되는 전송 매체 인터페이스를 갖는 호스트 제어기 디바이스가 개시된다. 호스트 제어기, 전송 매체 인터페이스에 통신가능하게 커플링되고 그리고 동기화 메시지를 결정하도록 구성되는 적어도 하나의 프로세싱 회로를 더 포함하며, 동기화 메시지는, 센서에 송신되도록 그리고 호스트 제어기와 센서의 타이밍을 동기화하기 위한 동기화 기간의 시작을 표시하도록 구성된다. 적어도 하나의 프로세싱 회로는 추가로, 동기화 기간의 시작과 동기화 메시지의 실제 송신 시간 사이의 시간 지연을 표시하게 구성되는 지연 시간 메시지를 결정하도록 구성되고, 그리고 정보 메시지에서 지연 시간 메시지와 함께 동기화 메시지를 센서에 송신하도록 구성되며, 여기서, 정보 메시지는, 센서가 센서 타이머의 타이밍을 정정하는 것을 허용하도록 구성된다.
[0008] 또 다른 추가적인 양상에 따르면, 프로세서-판독가능 저장 매체가 개시되며, 여기서, 매체는 하나 이상의 명령들을 갖고, 명령들은, 적어도 하나의 프로세싱 회로에 의해 실행되는 경우, 적어도 하나의 프로세싱 회로로 하여금, 동기화 메시지를 결정하게 하고, 동기화 메시지는, 전송 매체를 통해 호스트 제어기로부터 센서로 송신되도록 그리고 호스트 제어기와 센서의 타이밍을 동기화하기 위한 동기화 기간의 시작을 표시하도록 구성된다. 명령들은 추가로, 적어도 하나의 프로세싱 회로로 하여금, 동기화 기간의 시작과 동기화 메시지의 실제 송신 시간 사이의 시간 지연을 표시하게 구성되는 지연 시간 메시지를 결정하게 하도록 구성되고, 그리고 정보 메시지에서 지연 시간 메시지와 함께 동기화 메시지를 센서에 송신하게 하도록 구성되며, 여기서, 정보 메시지는, 센서가 센서 타이머의 타이밍을 정정하는 것을 허용하도록 구성된다.
[0009] 도 1은, 현재 개시된 방법들 및 장치가 구현될 수 있는 예시적인 모바일 디바이스를 예시하는 블록도이다.
[0010] 도 2는, 현재 개시된 방법들 및 장치가 구현될 수 있는 예시적인 하드웨어 환경을 예시하는 블록도이다.
[0011] 도 3은, 호스트 제어기와 센서 타이머들을 동기화하기 위한 예시적인 방법을 예시하는 흐름도이다.
[0012] 도 4는, 인터페이스 상의 활동의 예시적인 시스템 타이밍 도면을 예시한다.
[0013] 도 5는, 인터페이스 상의 동기화 절차의 예를 도시하는 타임라인(timeline) 도면을 예시한다.
[0014] 도 6은, 지터(jitter) 및 동기화 메시징 타이밍을 고려하는 것에 의한 폴링 타이밍의 셋팅을 도시하는 타임라인 도면을 예시한다.
[0015] 도 7은, 센서 타이밍 정정 메시지들을 송신하기 위한 예시적인 방법의 흐름도를 예시한다.
[0016] 도 8은, 도 6에 예시된 바와 같은 판독 시간 윈도우를 결정하기 위한 예시적인 방법(800)을 예시하는 흐름도를 예시한다.
[0017] 도 9는, 본 개시내용에 따른 예시적인 호스트 제어기 또는 마스터 디바이스를 예시한다.
[0018] 도 10은, 본 개시내용에 따른 예시적인 슬레이브 또는 센서 디바이스를 예시한다.
[0019] 도 11은, 호스트 제어기에 대한 하드웨어 구현의 간략화된 예를 예시하는 도면이다.
[0020] 개시된 방법들 및 장치의 양상들은, 특정한 실시예들에 관한 다음의 설명 및 관련된 도면들에서 개시된다. 본 개시내용의 범위를 벗어나지 않으면서 대안적인 실시예들이 고안될 수 있다. 부가적으로, 잘 알려진 엘리먼트들은, 본 개시내용의 관련 세부사항들을 불명료하게 하지 않기 위해, 상세하게 설명되지 않을 수 있거나 생략될 수 있다.
[0021] "예시적인"이라는 단어는, "예, 예증 또는 예시로서 기능하는" 것을 의미하도록 본원에서 사용된다. "예시적인" 것으로서 본원에 설명된 어떠한 실시예도 다른 실시예들에 비해 바람직하거나 또는 유리한 것으로 해석될 필요는 없다. 마찬가지로, 용어 "실시예들"은, 실시예들 전부가 논의된 특징, 이점, 또는 동작 모드를 포함하는 것을 요구하지 않는다.
[0022] 본원에 사용된 용어는 특정 실시예들을 설명하려는 목적만을 위한 것이며, 본 발명의 실시예들을 제한하는 것으로 의도되지 않는다. 본원에 사용된 바와 같이, 맥락이 명확하게 달리 표시하지 않으면, 단수 형태들은 복수 형태들을 또한 포함하도록 의도된다. 추가로, "포함하다", "포함하는", "구비하다" 및/또는 "구비하는"이라는 용어들이 본원에 사용될 때, 서술된 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 및/또는 컴포넌트들의 존재를 특정하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들, 및/또는 이들의 그룹들의 존재 또는 부가를 배제하지는 않는다는 것이 이해될 것이다.
[0023] 추가로, 많은 실시예들은, 예컨대 컴퓨팅 디바이스(예컨대, 서버 또는 디바이스)의 엘리먼트들에 의해 수행될 동작들의 시퀀스들의 관점들에서 설명된다. 본원에 설명된 다양한 동작들은, 특정 회로들(예컨대, 주문형 집적 회로들)에 의해, 하나 이상의 프로세서들에 의해 실행되는 프로그램 명령들에 의해, 또는 이 둘 모두의 결합에 의해 수행될 수 있다는 것이 인지될 것이다. 부가적으로, 본원에 설명된 동작들의 이러한 시퀀스들은, 실행 시에, 연관된 프로세서로 하여금 본원에 설명된 기능을 수행하게 할 컴퓨터 명령들의 대응하는 세트가 저장된 임의의 형태의 컴퓨터 판독가능 저장 매체 내에서 완전히 구현되는 것으로 고려될 수 있다. 따라서, 본 발명의 다양한 양상들은 다수의 상이한 형태들로 구현될 수 있으며, 이들 전부는 청구된 요지의 범위 내에 있는 것으로 고려된다. 부가하여, 본원에 설명된 실시예들 각각에 대해, 임의의 그러한 실시예들의 대응하는 형태는, 예컨대, 설명된 동작을 수행 "하도록 구성된 로직"으로서 본원에서 설명될 수 있다.
[0024] 도 1은, 본 개시내용의 실시예들이 실시될 수 있는 예시적인 모바일 디바이스를 예시하는 블록도이다. 시스템은, 하나 이상의 프로세서들(101), 메모리(105), I/O 제어기(125), 및 네트워크 인터페이스(110)를 포함할 수 있는 디바이스(예컨대, 디바이스(100))일 수 있다. 디바이스(100)는 또한, 프로세서(101)에 추가로 커플링되는 하나 이상의 버스들 또는 신호 라인들에 커플링되는 다수의 디바이스 센서들을 포함할 수 있다. 디바이스(100)는 또한 디스플레이(120), 사용자 인터페이스(예컨대, 키보드, 터치-스크린, 또는 유사한 디바이스들), 전력 디바이스(121)(예컨대, 배터리)뿐만 아니라 전자 디바이스들과 통상적으로 연관되는 다른 컴포넌트들을 포함할 수 있다는 것이 인식되어야 한다. 일부 실시예들에서, 디바이스(100)는 모바일 또는 비-모바일 디바이스일 수 있다. 본원에서 "프로세서" 및 "데이터 프로세싱 유닛"은 상호교환가능하게 사용된다.
[0025] 디바이스(예컨대, 디바이스(100))는, 주변 광 센서(ALS; ambient light sensor)(135), 가속도계(140), 자이로스코프(145), 자력계(150), 온도 센서(151), 대기압 센서(155), 적-녹-청(RGB) 컬러 센서(152), 자외선(UV) 센서(153), UV-A 센서, UV-B 센서, 컴퍼스, 근접 센서(167), 근접 장 통신(NFC)(169), 및/또는 GPS(Global Positioning Sensor)(160)와 같은 센서들을 포함할 수 있다. 일부 실시예들에서, 다수의 카메라들이 디바이스에 통합되거나, 디바이스가 다수의 카메라들에 액세스가능하다. 예컨대, 모바일 디바이스는 적어도 전방 및 후방 장착 카메라를 가질 수 있다. 일부 실시예들에서, 다른 센서들이 또한 다수의 설비들 또는 버전들을 가질 수 있다.
[0026] 프로세서(101)에 의한 실행을 위한 명령들을 저장하기 위해 메모리(105)가 프로세서(101)에 커플링될 수 있다. 일부 실시예들에서, 메모리(105)는 비-일시적이다. 메모리(105)는 또한, 아래에 설명된 실시예들을 구현하기 위한 하나 이상의 모델들 또는 모듈들을 저장할 수 있다. 메모리(105)는 또한, 통합된 센서들 또는 외부 센서들로부터의 데이터를 저장할 수 있다.
[0027] 네트워크 인터페이스(110)는 또한, 무선 링크를 통해 무선 네트워크로/로부터 데이터 스트림들을 송신 및 수신하기 위한 다수의 무선 서브시스템들(115)(예컨대, 블루투스(166), WiFi(111), 셀룰러(161), 또는 다른 네트워크들)에 커플링될 수 있거나, 또는 네트워크들(예컨대, 인터넷, 이더넷, 또는 다른 유선 또는 무선 시스템들)로의 직접 연결을 위한 유선 인터페이스일 수 있다. 모바일 디바이스는, 하나 이상의 안테나들(도시되지 않음)에 연결되는 하나 이상의 로컬 영역 네트워크 트랜시버들을 포함할 수 있다. 로컬 영역 네트워크 트랜시버는, 무선 AP들과 통신하고 그리고/또는 무선 AP들로의/로부터의 신호들을 검출하기 위한, 그리고/또는 네트워크 내의 다른 무선 디바이스들과 직접적으로 통신하기 위한 적절한 디바이스들, 하드웨어, 및/또는 소프트웨어를 포함한다. 일 양상에서, 로컬 영역 네트워크 트랜시버는, 하나 이상의 무선 액세스 포인트들과 통신하는 데 적절한 WiFi(802.11x) 통신 시스템을 포함할 수 있다.
[0028] 디바이스(100)는 또한, 하나 이상의 안테나들에 연결될 수 있는 하나 이상의 광역 네트워크 트랜시버(들)를 포함할 수 있다. 광역 네트워크 트랜시버는 네트워크 내의 다른 무선 디바이스들과 통신하고 그리고/또는 이들로의/로부터의 신호들을 검출하기 위한 적절한 디바이스들, 하드웨어, 및/또는 소프트웨어를 포함한다. 일 양상에서, 광역 네트워크 트랜시버는 무선 기지국들의 CDMA 네트워크와 통신하는 데 적절한 CDMA 통신 시스템을 포함할 수 있지만, 다른 양상들에서, 무선 통신 시스템은 다른 타입의 셀룰러 텔레포니(telephony) 네트워크 또는 펨토셀들, 이를테면, 예컨대 TDMA, LTE, LTE Advanced, WCDMA, UMTS, 4G, 5G, 또는 GSM을 포함할 수 있다. 부가적으로, 임의의 다른 타입의 무선 네트워킹 기술들, 예컨대 WiMax(802.16), 초광대역(Ultra Wide Band), ZigBee, 무선 USB 등이 사용될 수 있다.
[0029] 부가적으로, 디바이스(100)는, 모바일 디바이스, 무선 디바이스, 셀 폰, 개인 휴대 정보 단말, 모바일 컴퓨터, 웨어러블(wearable) 디바이스(예컨대, 헤드 장착형(head mounted) 디스플레이, 가상 현실 안경 등), 로봇 내비게이션 시스템, 태블릿, 개인용 컴퓨터, 랩탑 컴퓨터, 또는 프로세싱 및/또는 통신 능력들을 갖는 임의의 타입의 디바이스일 수 있다. 본원에 사용된 바와 같이, 모바일 디바이스는, 하나 이상의 무선 통신 디바이스들 또는 네트워크들에 무선 신호들을 송신하고 이들로부터 송신되는 무선 신호들을 획득하도록 구성가능한 임의의 휴대가능 또는 이동가능 디바이스 또는 머신일 수 있다. 따라서, 제한이 아닌 예로서, 디바이스(100)는 라디오 디바이스, 셀룰러 텔레폰 디바이스, 컴퓨팅 디바이스, 개인 통신 시스템 디바이스, 또는 다른 유형의 이동가능 무선 통신을 갖춘 디바이스, 기기(appliance), 또는 머신을 포함할 수 있다. 상기의 것들의 임의의 동작가능한 결합이 또한 "모바일 디바이스"로 고려된다.
[0030] 또한, 모바일 디바이스(100)는, RF 신호들의 변조 및 정보 패킷들의 교환을 위한 표준화된 프로토콜들(예컨대, IEEE 802.11x) 및 RF 신호들(예컨대, 2.4 GHz, 3.6 GHz, 및 4.9/5.0 GHz 대역들)을 사용하여 복수의 무선 액세스 포인트(AP)들, NodeB들, eNodeB들, 기지국들 등과 무선으로 통신할 수 있다.
[0031] 이하에서 설명될 예들은, 디바이스(100)의 프로세서(101) 및/또는 디바이스(100)의 다른 회로에 의한 (이를테면 메모리(105) 또는 다른 엘리먼트에 저장된 명령들과 같은) 명령들의 실행을 통해 구현될 수 있다는 것이 인식되어야 한다. 특히, 프로세서(101)를 포함하는(그러나 이에 제한되지 않음) 디바이스(100)의 회로는, 본 발명의 실시예들에 따른 방법들 또는 프로세스들을 실행하기 위해, 명령들의 실행, 루틴, 또는 프로그램의 제어 하에 동작할 수 있다. 예컨대, 그러한 프로그램은, (예컨대, 메모리(105) 및/또는 다른 위치들에 저장된) 펌웨어 또는 소프트웨어로 구현될 수 있고, 프로세서들, 이를테면 프로세서(101), 및/또는 디바이스의 다른 회로에 의해 구현될 수 있다. 추가로, 프로세서, 마이크로프로세서, 회로, 제어기 등의 용어들은 로직, 커맨드들, 명령들, 소프트웨어, 펌웨어, 기능 등을 실행하는 것이 가능한 임의의 타입의 로직 또는 회로를 지칭할 수 있다는 것이 인식되어야 한다.
[0032] 추가로, 본원에 설명된 기능들, 엔진들, 또는 모듈들 중 일부 또는 전부가 디바이스 그 자체에 의해 수행될 수 있고 그리고/또는 본원에 설명된 기능들, 엔진들, 또는 모듈들 중 일부 또는 전부가 I/O 제어기(125) 또는 네트워크 인터페이스(110)를 통해 디바이스에 (무선으로 또는 유선으로) 연결되는 다른 시스템에 의해 수행될 수 있다는 것이 인식되어야 한다. 따라서, 기능들 중 일부 및/또는 전부는 다른 시스템에 의해 수행될 수 있고, 결과들 또는 중간 계산들이 다시 디바이스(100)로 전달될 수 있다. 일부 실시예들에서, 그러한 다른 디바이스들은, 실시간 또는 거의 실시간으로 정보를 프로세싱하도록 구성되는 서버를 포함할 수 있다. 일부 실시예들에서, 다른 디바이스는, 예컨대, 디바이스의 알려진 구성에 기반하여 결과들을 미리결정하도록 구성된다. 추가로, 도 1에 예시된 엘리먼트들 중 하나 이상이 디바이스(100)로부터 생략될 수 있다. 예컨대, 일부 실시예들에서, 센서들(130-165) 중 하나 이상이 생략될 수 있다.
[0033] 도 2는, 본 개시내용의 양상들이 실시될 수 있는 예시적인 하드웨어 환경(200)을 예시하는 블록도이다. 호스트 제어기(205)(또는 마스터)는, 다른 기능들 중에서도, 센서(210)(또는 호스트 또는 마스터에 샘플링된 데이터를 제공하는 임의의 다른 디바이스)로부터 전달되는 데이터 샘플들을 수신 및 프로세싱하도록 제공될 수 있다. 일 예에서, 호스트 제어기(205)는 디바이스(100)의 프로세서(101)에 의해 또는 프로세서(101) 내에 구현될 수 있지만 그렇게 제한되지 않으며, 프로세서(101)와 별개로 구현될 수 있다. 센서(210)는, 위에 설명된 것들과 같은 임의의 타입을 갖는 센서, 또는 샘플링된 데이터를 수집 및 전송하는 임의의 디바이스일 수 있다. 현재 개시된 실시예들은 센서들의 개수에 의해 제한되지 않으며, 더 많은 센서들(도시되지 않음)이 존재할 수 있다. 일부 실시예들에서, 호스트 제어기(205)에는 클록(207)으로부터의 클록 신호 또는 타이머 신호가 제공될 수 있다. 다른 실시예들에서, 내부 클록 생성기가 제어기(205)와 함께 임베딩(embed)될 수 있다. 센서(210)는, 센서(210)에 의한 샘플들의 수집 및 송신을 타이밍하기 위한 타이머 신호를 생성하는 내부 타이머 생성기(215)를 포함한다. 데이터 연결부, 버스, 또는 인터페이스(217)는, 프로세서(101)와 센서(210)를 링크하고 그리고 다른 것들 중에서도, 호스트 제어기(205)와 센서(210) 사이에서의 데이터의 전달의 타이밍을 허용한다. 도 2에 도시된 예에서, 데이터 연결부는, SDA(Serial Data) 라인(220) 및 SCL(Serial Clock) 라인(230)을 포함하는 I2C 버스(Inter IC 버스) 또는 I3C 버스일 수 있다. SDA 라인(220) 및 SCL 라인(230) 둘 모두는 풀 업(pull-up) 저항기들(도시되지 않음)로 풀 업될 수 있다. I2C 또는 I3C 버스들의 동작은 당업계에 알려져 있으며, 간략화를 위해 본원에서 상세히 설명되지 않을 것이다.
[0034] 데이터 연결부는 또한, UART(universal asynchronous receiver/transmitter) 연결부, SPI(Serial Peripheral Interface) 버스, SMBus(System Management Bus), SLIMbus™(Serial Low-power Inter-chip Media Bus), SoundWire 버스, 무선 인터페이스일 수 있다. 일부 실시예들에서, 센서(210)는 DRI(Data Ready Interrupt) 라인(240)을 통해 제어기(205)에 연결될 수 있는 DRI 핀을 가질 수 있다. 하나 초과의 센서들이 존재하는 실시예들에서, 다수의 센서들로부터의 DRI 라인들이 프로세서(101)에 연결되기 전에 멀티플렉싱(multiplex)될 수 있다. 일부 다른 실시예들에서, DRI 핀에 부가하여 또는 그 대신에, 센서(210)는, 클록 정정 라인(250)을 통해 프로세서(101)에 연결될 수 있는 전용 클록 정정 핀을 가질 수 있다.
[0035] 컴퓨팅 디바이스(100)는, 센서 타이머(215)를 포함하거나 그에 커플링되는 센서(210), 및 클록 또는 타이머(207)를 포함하거나 그에 커플링되는 호스트 제어기(205)를 포함할 수 있으며, 호스트 제어기(205)는, 제1 시간에 센서 타이머(215)를 정정하고, 센서(210)로부터 데이터를 전달하고, 그리고 제2 시간에 센서 타이머(215)를 정정하기 위한 것이며, 여기서, 센서 타이머(215)의 두 번의 정정들 간의 시간 인터벌은, 센서 타이머(215)가 그 시간 인터벌 동안 호스트 제어기 타이머(207)와 충분히 정렬되도록 선택될 수 있다.
[0036] 센서(210)로부터 호스트 제어기(205)로 데이터를 전달하는 데 있어 2개의 방법들이 통상적으로 활용된다. 비동기식 방법으로 또한 알려져 있는 제1 방법에서, 전달할 가용 데이터를 갖는 센서(210)는, 프로세서를 슬립 상태로부터 웨이크 업시키는 DRI(Data Ready Interrupt) 신호를 전용 DRI 핀을 통해 송출함으로써 호스트 제어기(205)에 통지할 수 있으며, 프로세서가 데이터 전달에 대해 준비가 된 경우 데이터를 전달한다. 동기식 방법으로 또한 알려져 있는 제2 방법에서, 호스트 제어기(205)는, 미리결정된 시간 인터벌들로 슬립 상태로부터 자발적으로 웨이크 업할 수 있고, 데이터를 수신하기 위해 센서(210)를 폴링할 수 있다. 동기식 방법은 다수의 센서들을 포함하는 디바이스에서 더 에너지 효율적인데, 그 이유는, 하나 초과의 센서로부터의 데이터 전달들이 단일 폴 및 전달 세션 내에 통합될 수 있기 때문이다.
[0037] 이상적으로, 센서가 가장 최신의 결과만을 전달한다고 가정하면, 센서의 샘플링 주파수와 일치하는 주파수에서 센서를 폴링하는 것은, 센서에 의해 수집되는 데이터 샘플들 전부를 획득하기에 충분하다. 그러나, 호스트 제어기(205) 및 센서(210)는 일반적으로 클록 또는 타이밍 신호를 공유하지 않고, 개개의 타이머들의 타이밍의 오정렬이 초래될 수 있기 때문에, 센서(210)가 자신의 샘플링 주파수들에서 폴링되는 경우라 하더라도 일부 센서 데이터 샘플들은 두 번 판독될 수 있고, 일부 센서 데이터 샘플들은 유실될 수 있다. 그 현상은, 일부 센서들이 매우 불량한 타이머 정확도(즉, 온도 범위에 걸쳐 그리고 디바이스마다 ± 15 %의 편차)를 가질 수 있다는 사실에 의해 악화될 수 있다.
[0038] 도 3을 참조하면, 센서 타이밍을 동기화하기 위한 예시적인 방법(300)을 예시하는 흐름도가 도시된다. 동작(310)에서, 제1 시간에 센서 타이머가 정정될 수 있다. 센서 타이머를 정정하는 것은, 샘플링 이벤트들이 기반할 수 있는 내부 타이머에 타이머 정정 팩터를 적용함으로써, 내부 센서 타이머가 호스트 제어기 클록 또는 타이머(207)에 의해 사용되는 클록 신호와 충분히 정렬되게 하는 것을 포함할 수 있다. 센서의 특정된 샘플링 주파수와 일치하는 주파수에서 센서를 폴링하는 것이 센서 데이터 샘플들 전부를 수신하는 것을 초래할 것이고 어떠한 데이터 샘플도 유실되지 않고 그리고 어떠한 데이터 샘플도 두 번 판독되지 않는다는 것이 충분히 긴 시간 기간 동안 보증될 수 있는 경우, 내부 센서 타이머(215)는 폴링 이벤트들이 기반할 수 있는 프로세서 클록과 충분히 정렬된다. 2개의 타이머 신호들이 완벽하게 정렬되는 경우, 그들의 실제 주파수들 사이의 비는 그들의 특정된 주파수들 사이의 비와 동일하다는 것이 유의되어야 한다. 동작(320)에서, 센서(210)는 호스트 제어기(205)에 의해 폴링될 수 있고, 센서 데이터 샘플들은 센서(210)로부터 호스트 제어기(205)로 전달될 수 있다. 동작(320)은, 다수의 폴들 및 다수의 데이터 샘플 전달들로 이루어질 수 있다. 동작(330)에서, 센서 클록은, 동작(310)에서 제1 시간에 정정된 것과 동일한 방식으로 제2 시간에 정정될 수 있다. 센서 타이머(215)의 두 번의 정정들 사이의 시간 인터벌은, 위에 정의된 바와 같이, 인터벌 동안 누적되는 클록 신호들의 부정확성들에도 불구하고 인터벌 동안 타이머 신호들이 충분히 정렬된 채 유지되도록 선택될 수 있다. 선택된 인터벌이 너무 짧으면, 센서 타이머들(215)을 필요한 것보다 더 자주 정정하면서 에너지가 낭비될 수 있다. 반면, 선택된 인터벌이 너무 길면, 타이머 신호들이 오정렬되게 될 수 있고, 위에 설명된 데이터 샘플 유실 또는 반복이 발생할 수 있다.
[0039] 두 번의 센서 타이머 정정들 간의 시간 인터벌은 위상 시간(Phase Time) 또는 시간 위상 인터벌(T_Ph)로 지칭될 수 있다. 특히, 시간 위상 인터벌(T_Ph)은, 슬레이브들 또는 센서들(210)에 의해 그들이 내부 타이머들 및 샘플링 이벤트들의 시퀀스의 시작을 조정하기 위해 사용되는 미리-설정된 시간 지속기간을 표시하는, 호스트 또는 마스터 제어기(205)에 의해 제공되는 시간 기간일 수 있다. "T"는 "시간" 또는 "기간"을 의미하고, "위상"에 대한 "Ph"는, 샘플링 이벤트들의 시퀀스가 동일한 시간 기간 내에 발생하고 동일한 순간(moment)에 시작된다는 사실을 나타낸다. 특정 양상에서, T_Ph는, T_Ph 기간에 걸친 샘플링 이벤트들의 시퀀스에서의 미리결정된 수의 샘플들 또는 샘플링 이벤트들로서 표현가능하거나 그러한 관점들에서 정의될 수 있다. 예컨대, T_Ph는, 각각의 T_Ph 기간에 발생하는 20개의 샘플링 이벤트들의 관점들에서 정의될 수 있다.
[0040] 동작들(310 내지 330)을 반복적으로 수행함으로써, 내부 센서 타이머(215)는 호스트 제어기 클록과 충분히 정렬된 채 유지될 수 있다. 일부 실시예들에서, T_Ph는 존재하는 센서들의 샘플링 주기(period)들의 공배수일 수 있다. 예컨대, 각각 200 Hz, 100 Hz, 및 10 Hz의 샘플링 주파수들(5 ms, 10 ms, 및 100 ms의 샘플링 주기들에 대응함)을 갖는 3개의 센서들이 존재하는 실시예에서, 100 ms가 T_Ph로서 선택될 수 있다. 존재하는 복수의 센서들의 샘플링 주기들의 공배수인 T_Ph를 사용하여 실질적으로 동시에 복수의 센서들을 동기화하는 것은 센서 클록들을 서로에 대해 정렬시키며, 그에 따라, 동기식 방법에 대해 가장 적은 웨이크 윈도우들로 프로세서가 샘플들 전부를 획득하게 한다는 것이 인식되어야 한다. 위에-언급된 예에서, 200 Hz, 100 Hz, 및 10 Hz의 샘플링 주파수들을 갖는 3개의 센서들의 센서 클록들이 서로 정렬되지 않으면, 프로세서가 각각의 웨이크 윈도우에서 단일 센서로부터 단일 샘플을 수신하는 최악의 경우의 시나리오에서 프로세서는 샘플들 전부를 획득하기 위해 초당 총 310회(200 Hz 센서에 대해 초당 200회, 100 Hz 센서에 대해 초당 100회, 및 10 Hz 센서에 대해 초당 10회) 웨이크 업해야 할 수 있다. 반면, 3개의 센서들의 센서 타이머들이 위에 설명된 바와 같이 정렬되면, 프로세서는 샘플들 전부를 획득하기 위해 매 초 200회만을 웨이크 업할 필요가 있는데, 즉, 200 Hz 센서는 프로세서가 웨이크 업할 때마다 폴링되고, 100 Hz 센서는 프로세서가 두 번 웨이크 업할 때마다 한 번씩(every other time) 폴링되고, 그리고 10 Hz 센서는 프로세서가 20회 웨이크 업할 때마다 폴링된다. 요구되는 웨이크 윈도우들의 수를 감소시키는 것은 그것이 전력을 보존하고 배터리 수명을 연장시키기 때문에 바람직하다. 일부 실시예들에서, T_Ph는 대략적으로 1초일 수 있다. T_Ph는 또한, 클록-관련 피드백 정보가 센서(210)에 의해 제공되는 실시예들에서, 실행-시간(run-time)에서 조정될 수 있다.
[0041] 센서 타이머(215)를 정정하기 위한 다수의 비-제한적인 방법들이 고려된다. 일부 실시예들에서, 센서(210)는, 프로세서 클록 또는 타이머에 관한 정보를 수신하고, 타이머 또는 클록 정정 팩터를 도출하고, 그리고 타이머 정정 팩터를 적용할 수 있다. 일부 실시예들에서, 센서(210)는, 자신의 내부 타이머 또는 클록에 관한 정보를 호스트 제어기(205)에 전송하고, 호스트 제어기(205)에서 도출되는 타이머 정정 팩터를 수신하고, 그리고 타이머 정정 팩터를 적용할 수 있다.
[0042] 타이머-관련 정보가 호스트 제어기(205)와 센서(210) 사이에서 교환되는 실시예들의 경우, 클록 또는 타이머 관련 정보를 교환하기 위한 다수의 비-제한적인 방법들이 고려된다. 일부 실시예들에서, 클록 또는 타이머 정보는 DRI 라인(240)을 사용하여 전달될 수 있다. 일부 실시예들에서, 클록 또는 타이머 정보는 전용 클록 또는 타이머 정정 라인(250)을 사용하여 전달될 수 있다. 일부 또 다른 실시예들에서, 클록 또는 타이머 정보는, 위에 설명된 I2C 또는 I3C 버스와 같은, 프로세서(101)와 센서(210) 사이의 규칙적 데이터 연결을 사용하여 전달될 수 있다.
[0043] 제1 그룹의 실시예들에서, 센서(210)는, 프로세서 타이머 또는 클록(207)에 관한 정보를 수신하고, 타이머 정정 팩터를 도출하고, 그리고 센서 타이머(215)가 정정되는 경우 타이머 정정 팩터를 적용할 수 있다.
[0044] 일 실시예에서, 센서 타이머(215)가 정정되는 경우, 호스트 제어기(205)는, 미리결정된 수의 펄스들로 이루어지는 펄스들의 버스트(burst)를 센서(210)에 송신할 수 있다. 펄스들의 버스트는 호스트 제어기 타이머로부터 도출될 수 있고, 펄스들의 버스트의 주파수는 호스트 제어기 타이머의 주파수에 의존할 수 있다. 버스트는 비교적 짧은 시간 기간만 지속될 필요가 있다. 여기서, 센서(210)는 버스트의 예상된 주파수에 대해 연역적으로(a priori) 구성될 수 있다. 일단 센서(210)가 버스트를 수신하면, 센서는 수신된 버스트의 주파수를 예상 주파수와 비교하고, 그에 따라 타이머 정정 팩터를 도출하고, 그리고 타이머 정정 팩터를 적용하여 내부 센서 타이머(215)를 정정할 수 있다.
[0045] 다른 실시예에서, 센서 타이머(215)가 정정되는 경우, 호스트 제어기(205)는 2개의 펄스들을 센서(210)에 송신할 수 있으며, 여기서, 펄스들은, 프로세서 타이머에 의해 측정되는 바와 같은 미리결정된 시간 인터벌만큼 이격된다. 시간 인터벌은, 센서 타이머(215)를 정정하기 위한 타이머 정정 팩터를 도출하는 데 신뢰가능하게 사용될 수 있도록 선택된다. 이러한 시간 인터벌은 주파수 시간 인터벌(T_Fq)로 지칭될 수 있다. 일부 실시예들에서, T_Fq는 수 밀리초의 범위 내에 있을 수 있다. 일부 실시예들에서, T_Fq는, 존재하는 가장 짧은 센서 샘플링 주기와 일치하도록 선택된다. 일부 다른 실시예들에서, T_Fq는 T_Ph만큼 길도록 선택될 수 있다. 예컨대, T_Fq는 1초일 수 있다. 여기서, 센서(210)는 미리결정된 T_Fq에 대해 연역적으로 구성될 수 있다. 일단 센서(210)가 2개의 펄스들을 수신하면, 센서(210)는, 수신되는 2개의 펄스들에 의해 북엔드되는(bookended) 시간 인터벌의 지속기간(센서 타이머의 의해 측정됨)을 미리결정된 T_Fq(또한 센서 타이머에 의해 측정됨)와 비교하고, 그에 따라 타이머 정정 팩터를 도출하고, 그리고 타이머 정정 팩터를 적용하여 내부 센서 타이머를 정정할 수 있다.
[0046] 또 다른 실시예에서, 센서 타이머가 정정되는 경우, 호스트 제어기(205)는, 타이머 정정 메시지들의 송신 동안 생성되는 2개의 식별가능한 눈에 띄는 엣지들이 프로세서 타이머에 의해 측정되는 바와 같은 미리결정된 T_Fq만큼 이격되도록, 호스트 제어기(205)와 센서(210) 사이의 데이터 연결을 통해 타이머 정정 메시지들을 센서(210)에 송신할 수 있다. 위에 설명된 바와 같이, 호스트 제어기(205)와 센서(210) 사이의 데이터 연결은 I2C 버스 또는 I3C 버스일 수 있다. 그러한 데이터 연결은 또한 UART 버스 연결, SPI 버스, 또는 제어기와 센서 사이에서 데이터를 전달하는 데 적절한 임의의 다른 타입의 연결일 수 있다. 미리결정된 T_Fq는 위에 설명된 것과 동일한 것일 수 있다. 여기서, 센서(210)는 미리결정된 T_Fq에 대해 연역적으로 구성될 수 있다. 일단 센서(210)가 타이머 정정 메시지들을 수신하면, 센서(210)는, 타이머 정정 메시지들에 포함된 2개의 식별가능한 눈에 띄는 엣지들에 의해 북엔드되는 시간 인터벌의 지속기간(센서 타이머(215)에 의해 측정됨)을 미리결정된 T_Fq(또한 센서 타이머에 의해 측정됨)와 비교하고, 그에 따라 타이머 정정 팩터를 도출하고, 그리고 타이머 정정 팩터를 적용하여 내부 센서 타이머를 정정할 수 있다
[0047] 예컨대, 호스트 제어기(205)와 센서(210) 사이의 데이터 연결이 I2C 또는 I3C 버스인 실시예에서, 2개의 클록 정정 메시지들이 송신될 수 있다. 이들 2개의 타이머 정정 메시지들은 각각 MS1 및 MS2로 지칭될 수 있다. T_Fq는, MS1에 대한 시작(START) 조건에서의 SDA 라인(220)에 대한 하강(falling) 엣지 및 MS2에 대한 시작 조건에서의 SDA 라인(220)에 대한 하강 엣지에 의해 북엔드될 수 있거나, 또는 대안적으로, MS1에 대한 정지(STOP) 조건에서의 SDA 라인(220)에 대한 상승(rising) 엣지 및 MS2에 대한 시작 조건에서의 SDA 라인(220)에 대한 하강 엣지에 의해 북엔드될 수 있다. T_Fq가 T_Ph만큼 길도록 선택되는 실시예들에서, 단지 하나의 타이머 정정 메시지, 예컨대 MS1이 요구될 수 있으며, MS1 메시지는, 예컨대 각각의 T_Ph의 시작에서 프로세서(101)에 의해 송신될 수 있다. 따라서, T_Ph와 동일한 시간 기간 T_Fq는, 예컨대, 일 실시예에서, 2개의 연속적인 MS1 메시지들에 대한 시작 조건에서의 SDA 라인(220)에 대한 하강 엣지들에 의해 북엔드될 수 있다. 물론, 본 발명은 본원에 제공된 예들에 의해 제한되지 않는다. 더욱이, 센서 타이머(215)를 정정하려는 목적을 위한 I2C 또는 I3C 버스의 사용은 또한, 보완적(supplementary) 에러 정정 절차들, 장애(fault) 검출들, 및 중단(abort) 커맨드들 등을 허용한다. 예컨대, 센서(210)는, 시간 편차 정보를 포함하는 메시지 또는 타임스탬프(timestamp)를 송신할 수 있고, 호스트 제어기(205)는 그에 따라 데이터의 후속 스트림들을 정정할 수 있다. 이러한 절차를 활용함으로써, T_Ph의 정확도 요건들이 완화될 수 있다. 타이머 정정 목적들을 위해 I2C 또는 I3C 버스의 양-방향 통신 능력들을 활용하는 다른 방법들이 또한 고려된다.
[0048] 제2 그룹의 실시예들에서, 센서(210)는, 자신의 내부 타이머에 관한 정보를 호스트 제어기(205)에 전송하고, 호스트 제어기(205)에서 도출되는 타이머 정정 팩터를 수신하고, 그리고 센서 타이머(215)가 정정되는 경우 타이머 정정 팩터를 적용할 수 있다.
[0049] 일 실시예에서, 센서 타이머(215)가 정정되는 경우, 센서(210)는, 센서 타이머에 의해 측정되는 바와 같은 미리결정된 T_Fq 또는 출력 데이터 레이트(ODR; Output Data Rate) 기간만큼 이격되는 2개의 펄스들을 호스트 제어기(205)에 송신할 수 있다. 미리결정된 T_Fq는 위에 설명된 것과 동일한 것일 수 있다. 여기서, 호스트 제어기(205)는 미리결정된 T_Fq에 대해 연역적으로 구성될 수 있다. 일단 호스트 제어기(205)가 2개의 펄스들을 수신하면, 호스트 제어기(205)는, 수신되는 2개의 펄스들에 의해 북엔드되는 시간 인터벌의 지속기간(프로세서 타이머에 의해 측정됨)을 미리결정된 T_Fq(또한 프로세서 타이머에 의해 측정됨)와 비교하고, 그에 따라 타이머 정정 팩터를 도출하고, 그리고 호스트 제어기(205)와 센서(210) 사이의 I2C 또는 I3C 버스와 같은 인터페이스(217)를 통해 타이머 정정 팩터를 센서(210)에 송신할 수 있다. 그런 다음, 센서(210)는 타이머 정정 팩터를 수신하고 타이머 정정 팩터를 적용할 수 있다.
[0050] 제3 그룹의 실시예들에서, 어떠한 타이머 정정 팩터도 사용되지 않는다. 이러한 실시예들에서, 프로세서 타이머 또는 프로세서 타이머로부터 도출되는 신호는 센서(210)에 제공될 수 있고, 센서(210)는 샘플링 이벤트들에 대해 프로세서 타이머 또는 프로세서 타이머로부터 도출되는 신호에 직접적으로 기반할 수 있다. 프로세서 타이머 또는 프로세서 타이머로부터 도출되는 신호는, 전용 라인(DRI 라인(240))을 사용하여 송신될 수 있거나, 프로세서(101)와 센서(210) 사이의 데이터 연결을 통해 전달되는 메시지들 내에서 송신될 수 있다.
[0051] 일 실시예에서, 호스트 제어기(205)는, 프로세서 타이머에 기반하여 샘플링 타이머 신호를 생성할 수 있고, 샘플링 타이머를 센서(210)에 송신할 수 있다. 샘플링 타이머의 주파수는 센서(210)의 샘플링 주파수와 동일한 주파수일 수 있다. 센서(210)는, 자신의 내부 센서 타이머를 무시하도록, 그리고 호스트 제어기(205)에 의해 송신되는 샘플링 타이머 신호에서의 펄스를 직면(encounter)하는 경우에만 샘플을 수집하도록 구성될 수 있다.
[0052] 다수의 센서들이 존재하는 일 실시예에서, 프로세서(101)에 의해 생성되는 샘플링 타이머 신호의 주파수는, 샘플링 타이머 신호의 주파수가, 존재하는 센서들의 샘플링 주파수들의 공배수이도록 선택될 수 있다. 예컨대, 각각 200 Hz, 100 Hz, 및 10 Hz의 샘플링 주파수들을 갖는 3개의 센서들이 존재하는 실시예들의 경우, 프로세서(101)는, 프로세서 타이머에 기반하여 200 Hz의 주파수를 갖는 샘플링 타이머 신호를 생성할 수 있고, 샘플링 타이머 신호를 3개의 센서들 전부에 송신할 수 있다. 그런 다음, 200 Hz 샘플링 주파수를 갖는 센서는 샘플링 타이머 신호에서 직면하는 모든 각각의 펄스에서 샘플을 수집하도록 구성될 수 있고, 100 Hz의 샘플링 주파수를 갖는 센서는 샘플링 타이머 신호에서 펄스를 두 번 직면할 때마다 한 번씩 샘플을 수집하도록 구성될 수 있으며, 10 Hz의 샘플링 주파수를 갖는 센서는 샘플링 타이머 신호에서 직면하는 모든 각각의 20번째 펄스에서 샘플을 수집하도록 구성될 수 있다.
[0053] 샘플링 타이머가 호스트 제어기 타이머에 기반하기 때문에, 센서(210)의 샘플링 이벤트들 및 호스트 제어기(205)의 폴링 이벤트들은 항상 정렬될 수 있다는 것이 인식되어야 한다. 또한, 일부 실시예들에서, 샘플링 타이머 신호는 동시에 폴링 신호로서도 기능할 수 있다는 것이 인식되어야 한다. 다른 실시예에서, 프로세서 타이머는 센서(210)에 직접적으로 제공될 수 있고, 센서(210)는 샘플링 이벤트들에 대해 자신의 내부 센서 타이머 대신 프로세서 타이머에 기반할 수 있다.
[0054] 본원에 설명된, 센서 타이머들을 동기화하기 위한 예시적인 방법들을 이용함으로써, 제어기는, 센서들에 대한 타이머 정정들을 조정할 수 있고, 필요한 것보다 더 높은 주파수에서 센서들을 폴링하는 것에서 에너지를 낭비함이 없이, 에너지-효율적인 동기식 모드에서 배치들로(in batches) 다수의 센서들로부터 센서 데이터 샘플들 전부를 수신할 수 있다.
[0055] 프로세서로부터의 하나 이상의 메시지들을 포함하는 타이머 정정 메시지들의 단일 세트를 센서들에 송신함으로써 센서들을 재동기화하는 주파수를 결정하기 위한 방법이 고려되었다. 센서들을 재동기화하는 주파수는 T_Ph의 곱셈의 역원 또는 역수임이 인식되어야 한다.
[0056] 본 개시내용의 추가적인 양상들에 따르면, 시간-제어된 동기화 이벤트들에 대해 특정 하드웨어 이벤트들(또는, 다른 예에서는 하드웨어 및 소프트웨어)을 활용하는 방법들 및 장치가 개시된다. 특정 하드웨어 이벤트들은, 사용되는 전송 시스템 또는 인터페이스에 의존할 수 있는데, 예컨대, 이벤트는, I2C, I3C, SPI 등과 같은 상이한 버스 인터페이스들뿐만 아니라 제어기/마스터 디바이스들과 센서/슬레이브 디바이스들 사이의 무선 인터페이스들 간에 상이할 것이다. 그럼에도 불구하고, 이벤트들은 특정 세트의 커맨드들 및 데이터로 식별될 수 있다. 일 예에서, 그러한 커맨드들은, 예컨대, 그렇지 않았다면 정상적인 데이터 교환(예컨대, 센서들로부터의 데이터 판독)에 사용되는 동일한 I2C 또는 I3C 트랜잭션(transaction) 내에서 전송되며, 그러므로, 요구되는 에너지는 무시가능하다. 시간 동기화 이벤트들은 특히, T_Ph 인터벌들에서 호스트 제어기에 의해 전송될 수 있다. 일 양상에서, 시간 동기화 이벤트는, 전송 시스템 또는 인터페이스 상에서 발생하는 것으로 알려진 하드웨어(HW) 이벤트들 중에서 선택될 수 있다. I2C 또는 I3C와 같은 버스들에 대한 특정 양상에서, 시간 동기화 이벤트들로서 사용될 수 있는, 인터페이스 상에서 발생하는 것으로 알려진 몇몇 시작(START) 조건들이 존재하지만, HW 이벤트는 그러한 것으로 제한되지 않는다. 일 양상에서, 전송 시스템 또는 인터페이스에 관계없이, HW 이벤트는, 호스트 제어기 및 센서 둘 모두에게 연역적으로 알려진 상호(mutually) 식별가능 메시지로 이루어질 수 있다. 따라서, 센서들(및 호스트 제어기)은, 상호 식별가능한 HW 이벤트가 전송 시스템 또는 인터페이스 상에서 발생할 때 시작되는 T_Ph 인터벌들을 식별할 수 있다.
[0057] 위에 논의된 바와 같이, 일부 시스템들에서, 상이한 센서들 또는 다른 디바이스들이 상이한 시간들에서 그들의 데이터를 샘플링할 것이다. 이는 공통 샘플링 주파수를 셋팅한 경우라 하더라도 발생할 수 있는데, 그 이유는, 상이한 센서 디바이스들에서의 타이머들 또는 오실레이터(oscillator)들이 통상적으로, 최종적으로 떨어지게 드리프트(drift)되지 않기에 충분히 정확하지 않기 때문이다. 특정 시스템들(예컨대, I2C 버스 또는 MIPI I3CSM 규격에 따른 I3C 버스 시스템)에서 제안되는 동기식 시간 제어 메커니즘 또는 HW 이벤트는, 제어기가 ST(SYNC Tick)로 호칭되는 동기화 펄스 또는 메시지를 형성하기 위한 방식을 제공한다. 이러한 방식으로, 센서 타이머들 또는 오실레이터들에서의 변동들에도 불구하고, 샘플링은, 그들의 샘플링 메커니즘의 준비 및 활성화를 허용하면서, 시간의 관점에서 서로 매우 가깝게 수행될 것이다. 또한, HW는 호스트 제어기/마스터 및 센서/슬레이브에 의해 상호 동의되고, 슬레이브/센서에 의해 그의 시간 베이스(time base)(즉, 그의 내부 타이머/카운터)에 대해 타임스탬핑될 이벤트이다. 다른 예들에서, HW 이벤트는, I2C, I3C, 또는 SMBus(System Management Bus)의 경우, 예들로서, 센서/슬레이브에 의해 기록/타임스탬핑될 시간 순간일 송신 시작들 중 하나로서 선택될 수 있는 라인 상의 통신의 시작일 수 있다. 다른 인터페이스들의 경우, HW 이벤트는 일부 다른 메커니즘일 수 있다. SPI에서의 예로서, HW 이벤트는 송신을 위해 CS 라인이 LOW가 되는 것일 수 있다. 다른 예로서, HW 이벤트의 타이밍에 대한 매우 빠른 인터페이스를 가정하면, 그 순간은, SPI의 경우에서와 같이, 심지어 ST 메시지 그 자체일 수 있으며(여기서, 메시지는 1마이크로초만을 소요함), 따라서, 1초 길이 T_Ph를 동기화하기에 충분할 것이다.
[0058] 다른 양상에서, ST는 일반적으로, 인터페이스 상에 존재하는 많은 유사한 HW 이벤트들 중 어느 이벤트가 T_Ph의 올바른 시작의 추가적인 계산에 사용되어야 하는 이벤트인지를 유효화(validate)하고 그리고 실제로 식별하도록 구성되는 메시지임이 유의된다. HW 이벤트는 임의의 수의 알려진 이벤트들일 수 있다. HW 이벤트의 예로서, ST 그 자체가 SPI 전송에서 동의된 이벤트를 구성할 수 있으며, 여기서, ST 메시지는 총 1마이크로초의 시간만을 소요할 것이며, 이는 동기화 이벤트에 대해 충분히 짧을 것이다. HW 이벤트들의 다른 예들은, 전송 매체 상의 펄스들의 엣지들일 수 있다. 일부 HW 이벤트들은, 정의된 세트의 펄스들의 마지막 엣지인 것과 같은 보완적 특성을 가질 수 있다. 무선 시스템들에서, 무선 인터페이스 상의 통신들의 시작은 HW 이벤트를 구성할 수 있다. 무선 인터페이스들에 대한 다른 예에서, HW 이벤트들은 통신될 수 있고 그리고 다양한 알려진 무선 프로토콜들에 대해 특정한 특수 또는 전용 통신들 또는 통신 채널들의 사용을 통해 통신될 수 있다. 부가적으로, DT 또한 메시지이다. 이러한 3개의 엘리먼트들, 즉, HW 이벤트, ST 식별 메시지, 및 DT 유효화 및 정정 메시지를 이용하여, 현재 개시된 동기화 절차가 달성될 수 있다. 그리고, 메시지들(예컨대, HW 이벤트, ST 및 DT)이 T_Ph의 올바른 시작으로부터 일정 시간 이후에 전송될 수 있기 때문에, 방법은, 전체 시스템의 모든 불확정성들을 커버한다. 본 개시내용의 목적들을 위해, HW 이벤트와 HW 이벤트를 식별하는 ST 메시지의 결합은 총괄적으로 "동기화 메시지"로 지칭될 수 있음이 유의된다. 양상들에서, HW 이벤트는 ST 메시지에 포함될 수 있으며, 여기서, ST 메시지의 시작 엣지 또는 시간이 HW 이벤트를 구성한다.
[0059] 도 4는 인터페이스 상의 활동도의 예시적인 시스템 타이밍 도면(400)을 예시하며, 여기서, 도면은, 시스템의 비동기화된 또는 랜덤 샘플링 타이밍으로부터 T_Ph 시간 기간들에 걸친 샘플링을 위한 동기화된 타이밍 상태로의 트랜지션(transition)을 도시한다. 인터페이스는 특정 전송 시스템으로 제한되지 않으며, 다른 예들에서는 유선 버스들 또는 무선 인터페이스들을 포함할 수 있다는 것이 유의된다. 도 4의 예에서, 3개의 센서들이 가정되지만, 당업자들은, 이는 단지 예시적인 것이고 시스템 내의 더 적거나 더 많은 센서들이 가능하고 그리고 본원에 개시된 개념들이 하나 이상의 센서들에 적용될 수 있다는 것을 인식할 것이다. 도 4의 상위 3개의 타임라인들(402, 404, 및 406)은 I2C, I3C, SPI 등의 인터페이스와 같은 인터페이스 상에서 가시적인 활동도를 예시하며, 호스트 제어기에 의해 다양한 센서들 또는 인터페이스 상에서 데이터 샘플들을 제공하는 다른 디바이스들로 전송되는 커맨드들, 및 다양한 센서들 또는 다른 디바이스들로부터의 데이터 샘플들을 포함할 수 있다. 타임라인들(402, 404, 및 406)은 또한, 비동기화된 상태(402)로부터 동기화된 상태(406)로의 시간 또는 상태들의 변화를 예시한다. 하위 3개의 타임라인들(408, 410, 및 412)은, 개별 센서들(또는 데이터를 제공하는 다른 디바이스들) 내부에서의 데이터 가용성을 예시한다. 타임라인들(402, 404, 406)에 대해서와 같이, 타임라인들(408, 410, 및 412)은 또한, 비동기화된 상태(408)로부터 동기화된 상태(412)로의 시간 또는 상태들의 변화를 예시한다. 타임라인(402)의 타임라인은 동기화 프로세스들이 시행(effectuate)되기 전의 시간에 대응하고 그리고 타임라인(406)은 동기화 프로세스들이 시행된 후의 시간에 대응한다는 것이 유의된다.
[0060] 타임라인(402)에서 볼 수 있는 바와 같이, 인터페이스에 의해 연결된 상이한 센서들로부터의 센서 데이터(즉, 제1 센서에 대한 데이터(414), 제2 센서에 대한 데이터(416), 및 제3 센서에 대한 데이터(418))는, 센서들이 그들 자신 개개의 ODR들 및 비관련 타이머들로 실행되어 데이터가 다양한 그리고 외견상 랜덤 시간들로 인터페이스 상에서 전송되므로, 동기화되지 않는다. 이러한 비동기화된 상태의 특정 양상들에서, 호스트 제어기는 각각의 센서의 DRI 이벤트들마다 어웨이큰(awaken)할 것이며, 이는 상당한 양의 시스템 에너지를 낭비한다. 유사하게, 타임라인(408)은, 다양한 센서들에서의 센서 데이터(414, 416, 418)의 비동기화된 상태를 도시한다.
[0061] 타임라인(404)은, 호스트 제어기가, 각각의 T_Ph 기간의 시작에서, 인터페이스와 커플링된 다양한 센서들에 전송되는 시간 동기화 이벤트로서 정보 신호들 또는 메시지들(420)을 송신할 수 있음을 예시한다. 일 양상에 따르면, 정보 메시지들(420) 각각은, 동기화 엣지, 동기화 펄스, 또는 동기화 메시지(즉, Sync Tick 또는 "ST" 메시지)와 같은 HW 이벤트뿐만 아니라 아래에서 더 상세히 논의될 지연 시간(DT) 메시지로 이루어질 수 있다. 본 개시내용의 목적들을 위해, 본원에 사용된 "정보 메시지"라는 용어는 결합된 ST + DT 메시지를 의미하며, 또한, "정보 메시지"(420)가 본원에서 ST + DT 메시지로 지칭될 수 있다는 것이 이해될 것이다. 메시지(420)의 ST 엣지 또는 메시지는, 도 4에서 정보 메시지(420)로부터 DT 정보와 별개인 것으로 도시되지는 않지만, 메시지(420)의 시작에서 발생할 것이고, DT 메시지와 구별될 수 있거나, 대안적으로, 정보 메시지(420)의 상승 엣지가 ST 메시징을 제공하고 나머지가 DT 정보로 이루어지도록 구성될 수 있다. 정보 메시지들(420)은, 센서들에 의해 그들의 타이밍을 정정하기 위해, 즉, 호스트 제어기와의 동기화의 목적들을 위해 그들의 타이머들을 정정하기 위해 사용가능하다.
[0062] 이상적으로, 정보 메시지들(420) 간의 시간 기간은 시간 위상 기간 T_Ph이어야 한다. 그러나, 앞서 언급된 하드웨어 및 소프트웨어 오버헤드(overhead)로 인해, 새로운 T_Ph 기간들의 예상되는 시작과 정보 메시지들(420)의 송신들 사이에 지연이 존재할 수 있으며, 이는 본원에서, 도 4에서 참조번호 422로 예시된 지연 시간 또는 "DT"로 명칭된다. T_Ph 기간(및 ST 엣지 또는 메시지의 송출)의 예측불가능하고 가변적인 시작들로부터 초래될 수 있는 잠재적인 부정확성들을 보상하기 위해, DT 기간이 호스트 제어기에 의해 측정될 수 있고, 이러한 측정된 시간 기간은 정보 메시지(420)의 DT 부분으로서 호스트 제어기에 의해 통신된다. 또한, 일 양상에서, 정보 메시지(420)의 DT 부분은, 정보 메시지(420)의 ST 엣지 또는 메시지 부분의 송신 이후에 송신된다. I3C 인터페이스의 예에 따르면, 정보 메시지(420)는 대역 내에서(in-band) 송신될 수 있으며, 따라서, 단지 2개의 라인들(예컨대, SDA 및 SCL)이 요구된다. 또한, DT 메시지 또는 커맨드는 시간 단위 수를 제공하도록 구성될 수 있으며, 시작 조건은, 이 시간 단위들 만큼, 완벽하게 동기화된 타이밍(perfectly in-sync timing)에 대해 전송 시스템 또는 매체(예컨대, I2C 또는 I3C 버스) 상에서 지연된다. DT 메시지는 하나의 데이터 바이트를 사용할 수 있는데, 여기서, 데이터 바이트의 MSB(Most Significant Bit)는, 시간 지연 카운터의 오버플로우(overflow)가 발생했는지 여부를 표시하는 플래그(flag)이다. 예컨대, 값 1b'0은 오버플로우가 없음을 표시할 것이다. 데이터 바이트의 하위 7비트는 유효한 타이머 값을 포함하도록 구성될 수 있다. MSB의 값 1b'1은, 오버플로우가 발생했고, 데이터 바이트의 하위 7비트가 유효 값을 포함하지 않고, 그리고 센서 또는 슬레이브가 현재 동기화 절차를 중단해야 함을 표시할 것이다.
[0063] 여기서, 일 예에서, DT는 호스트 제어기의 내부 클록 또는 타이머를 참조하여 호스트 제어기에 의해 측정됨이 유의된다. 일 예에서, 호스트 제어기는 미리결정된 시간(예컨대, "워터마크(watermark)") 또는 자신의 실행 타이머 상의 일치(coincidence) 시간을 활용할 수 있으며, 이는 시작 T_Ph에 대한 완벽한 시간("시작 T_Ph 시간"으로 명칭됨)에 대응한다. 그런 다음, 호스트 제어기는, ST 메시지를 센서 또는 슬레이브 디바이스들에 전송하기 위한 커맨드를 인터페이스 제어기(예컨대, 이후 논의될 도 9에 도시된 전송 매체 인터페이싱 회로(910))에 전송할 수 있다. 그런 다음, 이러한 인터페이스 제어기는 송신을 스케줄링하고 그리고 최종적으로는 인터페이스가 이용가능할 때 송신을 시작할 것이다. 인터페이스 제어기는, 호스트 제어기 시간 베이스에 대해 송신이 시작된 실제 시간 순간("실제 T_Ph 시간"으로 명칭됨)을 기록한다(예컨대, 이러한 타이밍은, 호스트 제어기가 워터마크 또는 일치 시간을 결정하기 위해 사용한 동일한 실행 타이머, 또는 그 타이머의 도함수(derivative)에 기반하여 결정될 수 있음). 그에 관계없이, 2개의 시간 정보(즉, "시작 T_Ph 시간" 및 "실제 T_Ph 시간")는 관련되어 있고 동일한 시간 베이스, 즉, 호스트 제어기의 시간 베이스에 기반한다. 그런 다음, 호스트 제어기는, "시작 T_Ph 시간"과 "실제 T_Ph 시간" 간의 차이를 계산하고, 그런 다음, 슬레이브/센서와 사전에 동의된 바와 같은 시간 단위들로 그 차이를 표현하고, DT 메시지를 포맷팅하고, 그리고 그것을 동일한 인터페이스를 통해 슬레이브/센서에 전송한다. 따라서, 슬레이브/센서는, 자신이 실제 시간 HW 이벤트를 (즉, "실제 T_Ph 시간"에서) 수신한 시간으로부터 통신된 DT를 차감(deduct)할 수 있으며, 따라서, 슬레이브/센서 시간 베이스(즉, 센서의 타이머/카운터)에 대해, T_Ph가 실제로 시작되었어야 할 시작 T_Ph 시간에 도달한다. 또한, 지연 시간 기간을 표시하는 정보는, 지연 기간이 시간 위상 기간 T_Ph의 대략적으로 1/n만큼 길다는 것을 표시할 수 있으며, 여기서, n은 2의 거듭제곱(예컨대, 1, 2, 4, 8 ...)이다. 동기화 메시지의 타이밍 및 지연 시간 기간들을 표시하는 정보에 기반하여, 센서들/슬레이브들은 새로운 T_Ph 기간들의 예상되는 시작을 결정할 수 있다.
[0064] 지연 시간 정보를 포함하는 정보 메시지(420)의 타이밍에 기반하여, 이러한 정보를 수신하는 센서들은 다음 또는 새로운 T_Ph 기간의 예상되는 시작을 결정할 수 있으며, 이는, 예컨대, 정보 메시지(420)의 프로세싱이 발생했음을 나타내는 타임라인(410)에서의 펄스 또는 타임스탬프(424)에 의해 표시된다. 그런 다음, 결정된 다음 T_Ph 기간의 시작과 함께, 센서들은, 타임라인(412)에서 볼 수 있는 바와 같은 T_Ph 기간 내에, 특정한 미리결정된 반복들 또는 시스템 어웨이크 인터벌들로 데이터를 송신할 수 있다. 센서들의 타이머들이 동기화된 때, 센서 데이터는, 타임라인(412)에서 볼 수 있는 바와 같이 각각의 타임스탬프에서 또는 동기화된 센서들 각각의 샘플 주파수에서 송신될 수 있다. 따라서, 센서 데이터는 동기화되고(도 4에서 일반적으로 426을 참조), 이러한 데이터는, 인터페이스 상에서 동기화될 것이며(일 예로서, 타임라인(406)의 428 참조), 동일한 시스템 어웨이크 인터벌(이 인터벌 동안, 센서 폴링이 달성됨) 내에서 데이터 세트들이 판독됨에 따라 호스트 제어기에 의해 더 효율적으로 판독될 수 있을 것이다. 추가로, 일 양상에 따르면, 시스템 어웨이크 기간들은 조정가능함이 유의된다.
[0065] 도 4는, 동기화된 시스템이 센서들의 샘플링 주기들의 주파수 및 위상의 조정을 제공함을 예시한다. 호스트 제어기 또는 마스터는, T_Ph의 반복 주기로 동기화 정보(즉, 정보 메시지(420) 또는 동기화 이벤트)를 전송한다. 이전에 논의된 바와 같이, 시간 위상 기간 T_Ph는 비교적 큰 시간 인터벌, 이를테면 1초일 수 있으며, 호스트 제어기에 커플링된 센서들의 샘플링 주기들의 최소 공배수로 정확하게 나눌 수 있다. 그러나, 실제 경우들에서, 최소 공배수가 유용한 값을 가질 것이도록 상이한 슬레이브들/센서들과 그들의 상이한 ODR들 간에 적절한 대응성을 갖는 것이 항상 가능하지는 않다. 그러한 경우들에서, 동기화 프로세스는 ODR들 중 일부를 조정할 수 있거나, 최악의 경우에서, 더 많지만 더 작은 그룹들로 센서들을 동기화할 수 있다.
[0066] 추가로, 도 4의 동기화된 타임라인 예들의 경우, 호스트 제어기가 위상 및 주파수 정보(T_Ph)를 송신한 후에, 센서들은 타임라인(412)에 예시된 바와 같은 상호 동기화된 순간들에 그들의 데이터를 준비할 것임이 유의된다. 이는, 호스트 제어기 어웨이크 기간들의 수를 감소시키고, 원하는 센서 데이터를 판독하기 위해 필요한 소모되는 에너지를 최소화한다.
[0067] 또한, 호스트 제어기(예컨대, 205)는, 다양한 커맨드들 및 대응하는 데이터를 인터페이스(217)(이를테면, I2C 또는 I3C 인터페이스)를 통해 송신하도록 구성될 수 있음이 유의된다. 특정 양상에서, 호스트 제어기는, 센서(들)에 대한 실행 출력 데이터 레이트를 셋팅 또는 설정하는 출력 데이터 레이트(ODR) 커맨드 및 데이터를 특정 센서들 또는 디바이스들에 송신할 것이다. ODR 값은, 주어진 시간 기간에 센서에 의해 취해지는 샘플들의 수를 표시하며, 또한, 인터페이스를 통해 데이터를 샘플링 및 송신하는 각각의 특정한 센서 또는 디바이스에 대해 특정된다. 부가적으로, 호스트 제어기는 또한, 시간 위상 기간 T_Ph를 통신하는 커맨드 및 데이터를 송출한다. 일 양상에서, T_Ph는, 선택된 ODR의 샘플링 기간들의 수로 표현될 수 있다. 호스트 제어기에 의해 송출될 수 있는 다른 커맨드 및 데이터는, 지연 시간(DT)의 분해능(resolution) 비를 표현하는 분해능 비(RR; resolution ratio)이다. RR은, 이후 더 상세히 논의될 바와 같이, T_Ph 시간의 2의 선택된 거듭제곱의 분할들의 수로 표현될 수 있다.
[0068] 이전에 언급된 바와 같이, ST 및 DT는 많은 상이한 타입들의 인터페이스들을 통해 전송될 수 있고, 본원에 개시된 방법은 임의의 하나의 타입의 인터페이스로 제한되지 않는다. 추가적인 양상에서, 방법은, 몇몇 센서들이 호스트 제어기의 내부 시간 베이스에 대해 동기화될 수 있는 다수의 인터페이스 프로토콜들뿐만 아니라 몇몇 또는 다수의 인터페이스들 상에서 사용될 수 있다. 이는, HW 이벤트가(즉, ST가, 그리고/또는 ST와 DT 가 함께 또는 페어링(pair)된 ST와 DT가), 지연 시간의 측정 및 송신으로 인해, T_Ph의 올바른 시작에 관해 정확하거나 정밀한 타이밍으로 전송될 필요가 없기 때문에 가능하다.
[0069] 위에 논의된 바와 같이, T_Ph 인터벌의 시작은 센서들 대부분이 동시에 데이터를 수집할 시간에 대응할 수 있고, 몇몇 센서들의 샘플링 순간들은 하나의 T_Ph 기간 동안 적어도 한 번 일치해야 한다. 이러한 일치하는 샘플링 순간들은, 예컨대, 타임라인(412)에서 또한 볼 수 있는 바와 같이, 동일한 트랜잭션 동안 센서들 전부로부터의 데이터 전달이 발생하는 것을 허용하며, 샘플링 순간들은 도 4에서 수직 파선들에서 볼 수 있다(예컨대, 도 4의 라인(430) 참조). 또한, 일 양상에서, T_Ph 값은 일반적으로, 센서들의 타이머들이 T_Ph 지속기간(일반적으로 약 1초임)에 대해 0.1 % 정확도를 유지하도록 선택된다.
[0070] 도 5는, I2C 또는 I3C 버스와 같은 인터페이스 상의 동기화 절차의 예를 도시하는 타임라인 도면(500)을 예시한다. 특히, 도 5는, 제어기(예컨대, 호스트 제어기(205)와 센서(예컨대, 210) 사이에서의 인터페이스를 통한 통신들의 타임라인을 예시하며, 여기서, 센서의 타이밍은, 다수의 센서들을 조정하는 데 있어 효율성을 제공하도록 그리고 센서 판독들이 데이터를 복제(duplicate)하지 않거나 원하는 데이터를 누락시키지 않는다는 것을 보증하도록 조정된다. 이러한 센서 타이밍 조정의 일부로서, 도 5의 예는, 호스트 제어기에 대한 센서 타이머들의 동기화를 위한 지연 시간(DT) 메시지가 후속되거나 또는 지연 시간(DT) 메시지와 페어링된 ST 메시지를 포함하는 정보 메시지(예컨대, 메시지(420))를 활용한다.
[0071] 타임라인(502)은, 인터페이스 상의 센서(예컨대, 210)로부터 비롯되는 통신들의 호스트 제어기(예컨대, 205)에 의한 판독 이벤트들을 도시한다. 타임라인(502)은, I2C 또는 I3C의 경우의 시작(504) 이벤트, 및 그 다음의 센서로부터의 데이터 및 제어 정보(506)를 포함하는 통신을 도시한다. 정보(505)의 제1 부분은 ST(Sync Tick) 및 지연 시간(DT)을 포함할 수 있으며, 통신 정보의 나머지는, 폴링된 데이터 및 제어 정보를 교환하는 통상적인 통신들을 포함한다. 일 양상에 따르면, ST가 I2C 또는 I3C 통신들의 일부인 경우, 센서는, ST가 발생하는 때를 내부적으로 기록하고, 그 정보를, 그 정보가 동기화 펄스 또는 이벤트로 사용된다고 표시하는 커맨드가 그 정보에 후속되는 경우 사용한다. 다른 양상에서, 동기화 이벤트들은, 제어기와 센서 사이의 상호 식별가능한 하드웨어 이벤트들이며, 이는 연역적으로 결정될 수 있다. 일 양상에서, 하드웨어 이벤트는, I2C 또는 I3C 인터페이스들에 알려져 있는 다양한 시작 조건들 중 하나, 이를테면 SDA 라인들의 하강 엣지에 의해 정의된 시작 조건일 수 있지만, 그 이벤트가 그러한 것으로 확실히 제한되는 것은 아니다. T_Ph 기간 내의 후속 통신들(506)은 폴링 또는 다른 커맨드들/메시지들을 포함할 수 있다.
[0072] 특히, 폴링 메시지들을 포함하는 메시지들(506)은, 센서들이 센서 샘플 데이터를 호스트 제어기로 다시 송신할 수 있는 센서들로부터의 응답을 유도한다. 센서들은 또한, 그들 자신의 개개의 센서 타이머들에 기반하여 송신 시간을 표시하는 타임스탬프들을 송신할 수 있다. 타임스탬프들은, 예컨대, 센서 샘플 데이터와 함께 I2C 또는 I3C 버스 응답 메시지의 일부로서인, I2C 또는 I3C보다 빠른 프로토콜(예컨대, SPI)이 사용되는 경우 전용 메시지로서인, 또는 프로세서와 센서 사이의 별개의 연결 상에 있는, 임의의 적절한 형태일 수 있다.
[0073] 다음 타임라인(508)은, 센서 타임스탬프들(510)이 센서 그 자체 상에 기록되는 타이밍을 예시하는데, 이는, 시간상으로 시작 메시징(504)에 대응한다. 타임라인(508)의 이러한 타임스탬프들(510)은 비동기화된 동작을 표현한다. 일 양상에서, 센서는 최종적으로, 이러한 타임스탬프들을, 임의의 대응하는 센서 데이터와 함께 호스트 제어기로 다시 송신할 수 있다. 이러한 타임스탬프들(510)은, 이를테면, I2C 또는 I3C 통신의 일부로서인(즉, SDA 밀 SCL 라인들 상에 있는), 별개의 라인 상에 있는, 또는 심지어, 통신 시스템이 I2C보다 빠른 경우(이를테면, 일 예로서, SPI)에는 완전한 메시지인, 많은 형태들로 구성될 수 있다.
[0074] 타임라인(512)은, 호스트 제어기와 센서를 동기화하는 데 사용되는 ST 및 DT 메시지(514)(예컨대, 앞서 논의된 바와 같은 정보 메시지(420))를 도시한다. ST 메시지는, 타이밍 정정을 위해 센서에 의해 사용가능한 시간 지연을 제공하는 DT 메시지에 의해 유효화된다. 여기서, 호스트 제어기에서 발생하는 지연에 대한 정정은, ST 펄스들 사이의 시간에 기반하여 센서 내에서 결정되는 센서 클록 레이트 정정과 상이하다는 것이 유의된다. 다른 양상에서, 메시지(514) 내의 ST 메시지 및 DT 메시지는, 각각의 메시지에 대한 바이트 정의 필드(Defining Byte field)에 상이한 값들을 셋팅함으로써 서로 구별될 수 있다는 것이 유의된다.
[0075] 위에 설명된 바와 같이, 호스트 제어기는 지연 시간(DT)(520)을 결정 또는 측정할 수 있는데, 이는, 동기화된 T_Ph 시작에서의 타임스탬프 펄스(518)에서 타임라인(516) 상에 표시된 바와 같은 T_Ph 기간(시퀀스 기간)의 예상되는 시작으로부터의 시간이다. T_Ph 기간 동안의 부가적인 센서 타임스탬프들(522)이 호스트 제어기와 동기화된다. DT 메시지에 의해 통신되는 시간 정정은, T_Ph의 시작과 ST 메시지가 인터페이스 상에서 전송된 때 사이의 시간을 고려한다. 이전에 설명된 바와 같이, 시간 지연은, 호스트 제어기에 하드웨어 및 소프트웨어 오버헤드가 존재하기 때문에 발생할 수 있다. 하드웨어 오버헤드는 일반적으로, 호스트 제어기의 디지털 로직의 레이턴시 전의 시간에 알려진다. 반면, 소프트웨어 오버헤드 레이턴시는 덜 안정적일 수 있고, 운영 시스템 또는 제어 소프트웨어에서의 경쟁 우선순위들로부터 발생할 수 있다. 예컨대, 소프트웨어는, ST가 전송되려 하는 시간 동안 우선순위 인터럽트(interrupt)들을 핸들링(handling)할 수 있다. 이는, ST의 전송이 지연되는 것을 야기할 수 있다. 또한, 이러한 지연들은, 사이클마다 변할 수 있다. 따라서, 측정된 DT(520)를 ST와 함께 전송하는 것은, 센서들이 T_Ph 기간의 시작 및 ST의 전송의 지연에 적응하는 능력을 제공한다. 따라서, DT 메시지는 각각의 ST 타임스탬프를 효과적으로 자격검증(qualify)한다. 다른 양상들에 따르면, ST 메시지가 가능한 한 시작 조건(및 다이렉트 메시지(Direct Message)에 대해서는 슬레이브 어드레스) 이후에 즉시 전송되어 DT 메시지가 전송 및 수신되기에 충분한 시간을 제공하는 것이 바람직하다는 것이 유의된다. 부가적으로, DT 메시지는, 이후 더 상세히 논의될 바와 같이, 다음 가장 짧은 폴링 시간 윈도우 전에 도달해야 한다. 또 다른 추가적인 양상들에 따르면, DT 메시지는, 시작 조건과 요구되는 T_Ph 시작 간의 시간 지연 또는 그렇지 않으면 현재 동기화 윈도우에 대한 중단 명령(order) 중 어느 하나를 포함할 수 있다.
[0076] 동작 시, 각각의 센서는, HW 이벤트가 검출되는 순간에, 자신의 내부 타이머의 값을 기록하도록 구성될 수 있다. 일 예에서, 시작 조건의 SDA 하강 엣지는, I2C 또는 I3C 버스를 사용하는 예에서, 인터페이스 상에서 검출될 HW 이벤트일 수 있다. 그러한 경우, 마지막 시작의 기록은 레지스터 또는 값을 저장하기 위한 유사한 디바이스에 저장될 수 있다. 센서가 자신의 슬레이브 어드레스 또는 브로드캐스트 커맨드, 및 ST 메시지를 인식하는 경우, 그런 다음, 각각의 센서 또는 슬레이브 디바이스는, 저장된 시작 시간을 새로운 T_Ph 기간의 시작 시간에 대한 기준으로서 사용하도록 구성된다. 그런 다음, 정보 메시지(예컨대, 420 또는 514)의 일부인 후속 DT 메시지를 인식할 시, 각각의 센서 또는 슬레이브 디바이스는, 자신의 내부 타이머에 대해 T_Ph 시작 시간 및 T_Ph 지속기간(필요한 경우)을 정정할 수 있거나, 내부 타이머의 실행 파라미터들을 유지하면서 현재 동기화 절차를 중단한다. T_Ph 인터벌이 (예컨대, 일 예에서, 대략적으로 1.0초 이후) 만료되는 경우, 호스트 제어기 또는 마스터는, 이후, 위에 설명된 방식으로, DT 메시지가 후속되는 다음 ST 메시지를 전송함으로써, 동기화 이벤트를 반복한다.
[0077] 도 5의 동기화된 타이밍을 구현하기 위한 시스템의 구성 또는 셋 업(set up) 동안, 다양한 커맨드들이 마스터 또는 호스트 제어기(예컨대, 205)에 의해 센서들(예컨대, 센서/슬레이브(210))로, 예컨대, 특히, I2C 및 I3C 시스템들로 송출될 수 있지만, 이들의 기능들이 반드시 I2C 및 I3C 시스템들로 제한되는 것은 아니다. 이전에 논의된 바와 같이, 호스트 제어기는 각각의 센서에 대해 출력 데이터 레이트(ODR) 커맨드를 송출한다. 일 양상에서, ODR 커맨드는 실행 ODR을 센서에 통신할 수 있다. 다른 양상에서, ODR 커맨드 코드는, 센서 특정 데이터의 다른 바이트와 함께 단일 바이트(0xXX)로 이루어질 수 있다.
[0078] 구성 동안의 다른 파라미터는, TPH 커맨드로서 또한 지칭될 수 있는, T_Ph 시간 기간(즉, 동기화 이벤트 반복 기간 또는 동기화 기간)의 지속기간을 셋팅하기 위한 커맨드이다. 이러한 커맨드는 T_Ph의 반복 레이트를 셋팅한다. 일 양상에서, ST 메시지는 바이트 정의 필드 내에 이러한 TPH 커맨드 코드를 포함할 수 있으며, 그 이후에, 특정 시간 셋팅들 또는 값들에 관한 특정 데이터 바이트(들)가 후속된다.
[0079] 구성 동안 사용될 수 있는 또 다른 커맨드는, 각각의 센서 또는 모든 센서들에 특정할 수 있는 시간 단위(TU; time unit) 커맨드이다. 이러한 커맨드는, 센서 또는 슬레이브 디바이스들에 전달될 시간 단위의 값을 셋팅한다. 일 양상에서, ST 메시지는 바이트 정의 필드 내에 이러한 TPH 커맨드 코드를 포함할 수 있으며, 그 이후에, 특정 시간 셋팅들 또는 값들에 관한 특정 데이터 바이트(들)가 후속된다.
[0080] 부가적으로, 시스템의 구성 동안의 다른 커맨드는, 호스트 제어기에 의해 센서들로 전송되는 분해능 비(RR) 커맨드이다. 분해능 비 커맨드는, DT 커맨드에 대한 T_Ph 시간의 분해능 단계들을 계산하기 위해 적용되는 분할 팩터를 제공한다. 지연 시간을 송신하기 위한 T_Ph의 상대적인 분할의 사용은, 호스트 제어기 또는 센서들이 서로의 실제 타이머 또는 클록 값을 알 필요성을 피한다.
[0081] T_Ph 분해능 단계의 계산은, 대응하는 T_Ph 시간 기간에 RR을 곱함으로써 결정된다. 이전에 설명된 바와 같이, RR은, T_Ph 시간의 2의 선택된 역거듭제곱들에 의한 분할들의 수로 표현된다. 일 예로서, RR 값들은 2-x로 표현될 수 있으며, 여기서, x는 11 내지 14의 정수 값들일 수 있다(따라서, RR 값들은 2-11 내지 2-14의 범위임). RR 커맨드 또는 메시지의 구조의 관점들에서, 2의 역거듭제곱들인 정수 값들 11 내지 값 14의 시간 분해능 단계들(예컨대, 2'b00 ↔ 2^(-11), 2'b01 ↔ 2^(-12), 2'b10 ↔ 2^(-13) 2'b11 ↔ 2^(-14))을 계산하기 위해 어느 T_Ph 분할 팩터가 사용되는지를 센서들에 표시하기 위해 RR 메시지의 2개의 LSB(least significant bit)들이 사용될 수 있다. 따라서, T_Ph 기간이 1초(즉, 1000 ms)인 것으로 가정되고 RR 값이 2-11로 셋팅된 경우, 예컨대, 분해능 단계 시간은 1000 ms × 2-11 또는 488 ㎲일 것이다. 분할 팩터가 2의 정수 거듭제곱으로 표현되므로, 곱셈 연산은 분할 값의 양의 정수 지수와 동일한 자릿수(number of positions)만큼의 단순한 우측 시프트(right shift)이라는 것이 유의된다. 일 양상에서, DT 메시지는, 7비트가 지연 단계들을 통신하기 위해 사용될 수 있고 그리고 MSB(most significant bit)가 중단을 표시할 것이도록, 1바이트로 구성될 수 있다(그렇지만, 메시지가 반드시 1바이트의 데이터로 제한되는 것은 아님). 따라서, 절대 최대 지연 시간(absolute maximum delay time)은 127 분해능 단계들에 대응하는 시간 기간일 것이다. T_Ph 기간의 분할 팩터로 결정된 분해능 단계 시간, 및 ST + DT 메시지가 송신되어야 하는 최대 지연 시간(DT)에 대한 미리결정된 수의 분해능 단계들에 기반하여, 최대 지연 시간이 컴퓨팅(compute)될 수 있다. 예컨대, 분해능 단계 시간이 위의 예로부터 488 ㎲라면, 최대 DT 정정 범위는 488 ㎲ × 127 또는 62.01 ms일 것이다. 아래의 표 1은, 상이한 T_Ph 기간들 및 11 내지 14의 RR 값들이 주어지는, 최대 ST + DT 지연 시간들(또는 DT 정정 범위)의 다양한 수들의 예들을 예시한다.
Figure pct00001
[0082] 특정 시스템들에서는, ST + DT 메시지가 전송될 수 없거나 시스템이 에러 상태에 있다 하더라도 센서들이 데이터를 이용가능한 것이 필수적임이 유의된다. 이는, 센서 데이터가, 직접적으로 호스트 제어기의 제어 하에 있지 않은 다른 디바이스들 또는 프로세스들에 필요할 수 있기 때문에 그러하다. ST와 DT가 함께 페어링되고 그로써 센서 디바이스에 의해 확인응답(acknowledge)되는 것을 본 방법이 제공하므로, ST 커맨드가 DT 정정 범위 내에 제공될 수 없다면, ST 커맨드는 훨씬 나중에 제공되어야 할 것이다. 그러한 경우, ST 메시지 이후에, 동기화 중단 명령을 갖는 DT가 후속되어야만 한다. 후속하여, ST의 페어링된 DT에 의해 유효화되는 올바른 ST가 후속할 것이다.
[0083] 여기서, RR은, 호스트 제어기/마스터 및 센서/슬레이브의 타이머들이 기반하는 임의의 실제 시간 단위들에 적절한 지연 시간을 표현하는 간결한 방식을 제공함이 유의된다. 전체 T_Ph의 2의 거듭제곱 수들의 분할들로 DT를 특정함으로써, 결과의 분해능이 묵시적으로(implicitly) 셋팅된다. DT를 표현하기 위해 RR을 사용하는 효율성과 대조적으로, T_Ph가 200 ms인 경우 밀리초 단위로 DT를 표현하거나 1초 또는 더 긴 T_Ph에 대해 마이크로초 단위로 DT를 표현하는 것은 매우 유용하지 않거나 효율적이지 않을 것이다.
[0084] 본원에 개시된 동기화 동작에 영향을 미치는 다른 팩터들은, 적어도, 가능 느린 가능한 센서 또는 슬레이브를 캐치(catch)하도록 동기화된 타이머들의 예상되는 드리프트 이후에 ST + DT 메시지의 시작 이벤트가 버스 상에 도달해야 한다는 고려사항을 포함한다. 또한, 하드웨어, 펌웨어, 및 소프트웨어 래그(lag)에 기인한 호스트 제어기 불확정성(이러한 불확정성은 본원에서 "지터"로 명칭됨)으로 인해, ST + DT 메시지의 시작 이벤트에 대한 SDA 하강 엣지가 훨씬 나중에 발생할 수 있다. 그러나, ST + DT 메시지의 시작 이벤트 조건은 올바른 데이터를 판독하는 데 수용가능한 타이밍보다 나중에 발생할 수 없는데, 즉, 새로운 데이터가 출력 레지스터들을 또는 FIFO 버퍼를 센서들에서 채우기 시작하기 전에 판독이 발생할 필요가 있다. 따라서, 동기화된 타이머들의 드리프트 및 호스트 제어기 지터가 고려되고 완화되는 것을 보장하기 위한 방법들 및 장치가 또한 고려된다.
[0085] 일 양상에서, "지터"라는 용어는, 호스트 제어기가 이상적인 시간 또는 예상되는 시간에 ST 메시지를 송출하는 통계적 불확정성의 합을 의미할 수 있다(예컨대, 불확정성이 ± 1 ms이면, 가능한 변동들 전부를 커버하기 위한 전체 인터벌에 대해 총 불확정성은 1 ms + 1 ms = 2 ms임). 부가적으로, 센서들 상에 일정 범위의 타이머 타이밍들이 존재하는데, 이는, 양자화(quantization) 에러들을 포함하는 지터에 기인할 수 있다. 이러한 타이밍들의 범위는, 호스트 제어기의 타이머에서 측정된 T_Ph 기간의 퍼센티지로서 표현될 수 있다. 전체 시스템의 주어진 지터에 대해, 최대 T_Ph가 결정될 수 있다.
[0086] 도 6은, 지터 및 동기화 메시징 타이밍을 고려하는 것에 의한 폴링 타이밍의 셋팅을 도시하는 타임라인 도면(600)을 예시한다. 특히, 도 6은, 센서 동기화 및 폴링에 대한 지터의 영향들, 및 시스템 내의 센서들로부터의 데이터의 적절한 폴링 또는 판독을 보장하기 위한 최대 판독 윈도우의 결정을 예시한다. 제1 타임라인(602)은, 출력 데이터 레이트(ODR) 기간 또는 폴링 기간(603)의 시작에서 3개의 가능한 T_Ph 기간 마크들(604, 606, 608)을 예시하여 나타낸다. 마크(604)는 이상적인 타이밍 포인트를 표현하는 반면, 마크(606 및 608)는 각각 빠른 제한 및 느린 제한들을 표현한다(예컨대, 단지 일 예로서, 마크(606)에서는 T_Ph 기간의 - 0.1 % 그리고 마크(608)에서는 T_Ph 기간의 + 0.1 %). 이상적인 마크, 빠른 마크, 및 느린 마크는, 이러한 타이밍들이 발생하는 경우의 시각화로서 단지 예시의 목적들을 위해 도시됨이 유의된다. 다음 3개의 타임라인들(610, 612, 및 614)은, 센서들 상의 이상적인, 빠른, 그리고 느린 타이머들 또는 클록들을 표현하며, 여기서, 이상적인 것으로부터의 빠르거나 느린 편차들은 센서의 허용가능 범위를 표현한다. 시간 관점(즉, 빠른 타임스탬프(618), 이상적 타임스탬프(616), 및 느린 타임스탬프(620))에서 센서 타임스탬프가 오프인 시간량은 센서의 타이머 또는 클록 생성에 의해 결정된다. 이러한 타이밍은, 온도, 공급 전압, 및 다른 센서 동작 엘리먼트들에 의해 영향을 받을 수 있다.
[0087] 타임라인(622)은, 이상적인, 빠른, 또는 느린 센서 타이밍의 상이한 상황들을 고려함으로써 호스트 제어기가 센서를 폴링할 수 있는 시간을 예시한다. 펄스(624)에 의해 도시된 바와 같이 폴링을 시작하기 위한 최소 지연은, 심지어 느린 센서 타이밍이, 느린 센서 타이밍의 타임스탬프(620) 직후의 시간에 발생하는 (시점(626)에서 볼 수 있는 바와 같은) 펄스 타이밍(624)에 의해 예시된 바와 같은 데이터 샘플링을 완료하는 것을 보장하도록 충분히 늦어야만 한다. 그러나, 이러한 타이밍은, 호스트 제어기가 정확한 시간에서의 폴링을 보증할 수 있는 경우에만 가능할 것이다. 그러나, 이전에 언급된 바와 같이, 호스트 제어기 그 자체가 변동을 가지며, 이러한 변동은, 하드웨어, 펌웨어, 및 소프트웨어에서의 지연들로 인해, 실제로 폴링을 달성하는 데 이용가능하다. 이러한 변동은 최대 호스트 지터(628)로서 도시되며, 여기서, 이러한 최대 지터는 가능한 가장 긴 지연 시간을 표현하며, 이러한 지연 시간의 종료는, ST + DT 펄스에 대한 최대 지연 타이밍(630)으로 예시된다. 최대 호스트 지터(628) 시간 기간은, 연역적으로 또는 호스트 제어기에 의해 수행되는 측정들 또는 계산들에 기반하여 알려질 수 있다.
[0088] 최대 호스트 지터(628) 시간이 경과한 후, 호스트 제어기는, ST + DT 정보 메시지(630)를 송신하는 데 필요한 수반되는 시간 기간으로 ST + DT 정보 메시지(630)를 전송함으로써 재동기화를 수행할 것이다. 다음 센서 출력 데이터 기간에 센서 데이터의 적절한 샘플을 캡쳐(capture)하기 위해, 호스트 제어기는, 가장 빠른 센서가 업데이트되기 전에 센서를 폴링해야 한다(빠른 센서 타임스탬프(618)를 참조하면, 그 데이터가 시점(632) 직전에 준비됨이 표시되며, 이는, 빠른 센서가 그 데이터를 준비하기 전의 센서 판독 윈도우에 대한 최대 시간(즉, 최대 판독 윈도우(636))으로서 마크(634)에서 도시됨). 최대 판독 윈도우에 대한 시간은, 시간 윈도우가 현존(extant)함을 보장하기 위해 음이 아닐(non-negative) 필요가 있을 것이다. 빠른 그리고 느린 센서 시간에 대한 주어진 요건 및 주어진 최대 호스트 지터(628)에 대해 최대 판독 윈도우 타이밍이 음이 아닌 값임을 보증하기 위해, ST + DT 정보 메시지(630) 전송 레이트는, 최대 판독 윈도우가 음이 아니도록 충분히 낮게 셋팅된다. 따라서, 최대 판독 윈도우(636)의 결정은, ST + DT 정보 메시지(630)를 능동적으로 셋팅 또는 조정하는 것을 포함한다. 또한, 도 6의 방법은, 동기화 기간(즉, T_Ph) 동안 센서 데이터가 샘플링될 수 있는 ODR 기간들의 수(예컨대, 기간(603))의 결정의 컴퓨테이션(computation)을 허용한다는 것이 인식될 것이다. 예컨대, 가장 빠른 가능한 센서 샘플링 타이밍이 다음 ODR(즉, 타임스탬프(618) 및 타이밍 마크(632))에서 판독될 데이터를 변경하기 전에 센서 데이터의 샘플링을 허용하는 ODR 기간들의 수가 결정될 수 있다. 이러한 결정으로부터, 동기화 기간(T_Ph)(또는 초기 동기화 이후에 발생하는 경우에는 재동기화) 동안의 ODR 기간들의 수(또는 폴링 타이밍 또는 폴링 사이클들의 수)가 호스트 제어기에 의해 셋팅 또는 결정될 수 있다.
[0089] 추가로, 도 6에 표현된 바와 같은 가장 빠른 센서 타이밍 내지 가장 느린 센서 타이밍(즉, 606 내지 608)의 범위는 반드시 특정 수의 센서들을 표현하는 것이 아니라, 오히려, 특정 센서의 타이밍들의 가능한 변동들의 가능한 범위를 예시하는 것이고(또는 대안적으로, 이는, 총괄적으로, 다수의 센서들의 가능한 타이머 변동들의 범위일 수 있음), 물리적 시스템 내의 센서들의 수는 하나 이상일 수 있고, 그 범위는 하나 이상의 센서들의 가장 빠른 그리고 가장 느린 가능한 타이밍들을 포괄함이 유의된다.
[0090] 다른 양상에 따르면, 호스트 제어기는, 데이터가 호스트 제어기에 이용가능하게 되는 시간 인스턴트(instant)들을 표시하는 송신 타임스탬프들(예컨대, 616, 618, 620, 또는 도 6에 도시되지 않은 다른 시간들)로부터의 센서 타이머들의 점진적 드리프트를 모니터링할 수 있다. 이러한 모니터링으로부터, 최소 및/또는 최대 지연 시간들(즉, 가장 느린 센서 타이밍과 가장 빠른 센서 타이밍 간의 변동 범위)의 결정들이 동적으로 조정될 수 있다.
[0091] 도 7은, 센서 타이밍 정정 메시지들을 송신하기 위한 예시적인 방법(700)의 흐름도를 예시한다. 방법(700)은, 예들로서, 마스터 또는 호스트 제어기, 이를테면 호스트 제어기(205) 또는 프로세서(101)로 구현될 수 있다. 블록(702)에 도시된 바와 같이, 방법(700)은, 동기화 메시지(예컨대, ST 메시지)를 결정하는 단계를 포함하며, 동기화 메시지는, 센서(예컨대, 센서(210))에 송신되도록 그리고 호스트 제어기와 센서의 타이밍을 동기화하기 위한 동기화 기간(예컨대, T_Ph 기간)의 시작을 표시하도록 구성된다. 블록(704)에서, 방법은, 지연 시간 메시지(즉, DT)를 결정하는 단계를 더 포함하며, 지연 시간 메시지는, 동기화 기간의 시작과 동기화 메시지의 실제 송신 시간 사이의 시간 지연을 표시하도록 구성된다. 블록(704)의 프로세스는, 호스트 제어기가 동기화 기간의 시작으로부터 동기화 메시지의 실제 송신까지의 시간을 측정함으로써 달성될 수 있음이 유의된다.
[0092] 방법(700)은, 블록(706)에 도시된 바와 같이, 정보 메시지에서 지연 시간 메시지와 함께 또는 그와 페어링된 동기화 메시지를 센서에 송신하는 단계를 더 포함하며, 여기서, 정보 메시지는, 센서가 센서 타이머의 타이밍을 정정하는 것을 허용하도록 구성된다. 일 양상에서, DT 메시지는 지연 시간을 센서에 통신하며, 이는 결국, 센서가 이러한 지연을 고려하여 자신의 내부 타이머(예컨대, 타이머(215))를 정정하는 것을 허용하고, 이에 따라, 호스트 제어기와의 동기화가 정확하게 유지된다.
[0093] 이전에 표시된 바와 같이, 동기화 신호 또는 메시지(예컨대, HW 이벤트 및 ST(Sync Tick))는, 새로운 동기화 또는 시간 위상 기간(예컨대, T_Ph)의 시작을 표시하는 데 사용되고, 커맨드 및 데이터와 함께 시작 조건으로서 구성될 수 있거나 단순히 I2C 또는 I3C 버스 메시지의 시작 조건의 상승 엣지 또는 하강 엣지일 수 있다. 다른 예에서, 신호는 SPI 버스 상의 메시지일 수 있다. 부가적으로, 도 5의 예에서 볼 수 있는 바와 같이, 특정 동기화 기간(T_Ph) 동안, ST + DT를 포함하는 정보 메시지 이후, 하나 이상의 폴링 메시지들 또는 커맨드들(예컨대, 505 또는 506)이 센서에 송신될 수 있다. 부가적으로, 이러한 폴링 메시지들은, 호스트 제어기에 의해 또한 셋팅될 수 있는 특정 레이트 또는 사이클(ODR)로 전송될 수 있다.
[0094] 도 8은, 도 6에 예시된 바와 같은 판독 시간 윈도우를 결정하기 위한 예시적인 방법(800)을 예시하는 흐름도를 예시한다. 먼저, 방법(800)은, 도 7과 관련하여 설명된 방법과 함께 또는 그와 병행하여 구현될 수 있음이 유의된다. 도 8에서 볼 수 있는 바와 같이, 블록(802)에서, 적어도 하나의 센서에서 데이터가 이용가능해질 때, 호스트 제어기의 가능한 최대 지터 및 센서 타이밍들의 범위에 대한 결정이 이루어진다. 일 양상에서, 블록(802)의 프로세스들은, 호스트 제어기(예컨대, 프로세서(101) 또는 호스트 제어기(205))에 의해 결정될 수 있으며, 도 6에서 볼 수 있는 바와 같이, 최대 호스트 지터(628), 및 가장 이른 타임스탬프(618) 및 가장 늦은 타임스탬프(620)로부터의 타이밍들의 범위의 결정일 수 있다.
[0095] 방법(800)은 또한 블록(804)의 프로세스를 포함하며, 이 프로세스는, 센서 타이밍들의 범위 내의 가장 빠른 센서 타이밍이 다음 폴링 사이클(즉, 다음 ODR 사이클)에서 센서 데이터의 변경을 표시하기 전에 적어도 하나의 센서로부터 데이터를 판독하기 위한 시간 윈도우(즉, "판독 윈도우")의 할당을 보장하기 위해, 결정된 가능한 최대 지터 및 센서 타이밍들의 범위에 기반하여 정보 메시지(즉, ST + DT 메시지)를 송신하는 데 요구되는 시간을 셋팅하는 것을 포함한다. 블록(804)의 프로세스들은 또한 호스트 제어기, 이를테면 호스트 제어기(205) 또는 프로세서(101)에 의해 구현될 수 있다. 또한, 블록(804)의 프로세스들은, 다음 ODR 기간(예컨대, 도 6의 634 참조)의 다음의 가장 이른 또는 가장 빠른 가능한 센서 데이터 전에 현재 ODR 기간 또는 폴링 사이클 동안 센서로부터의 데이터의 판독을 보장하기 위한, 도 6에 도시된 최대 판독 윈도우(636)의 결정 및 할당을 포함한다. 추가적인 양상에서, 방법(800)은, 결정된 최대 판독 윈도우 및 센서 타이밍들의 범위 내의 가장 빠른 센서 타이밍 중 적어도 하나에 기반하여, 동기화 기간 내의 폴링 사이클들(즉, ODR 사이클들)의 수를 결정 및 셋팅하는 단계를 포함할 수 있다.
[0096] 도 9는, 적어도 슬레이브 또는 센서 디바이스들과 통신가능하게 커플링된 버스 인터페이스 또는 회로 상에서 신호들, 커맨드들, 및 데이터를 송신 및 수신하기 위한 송신기/수신기 회로(906)와 커플링되는 프로세싱 또는 로직 회로(904)를 포함할 수 있는 예시적인 호스트 제어기 또는 마스터 디바이스(902)를 예시한다. 송신기/수신기 회로(906)는, 버스 인터페이스를 통해 호스트 제어기(902)에 커플링되는 슬레이브 또는 센서 디바이스의 동기화에서의 타이밍을 결정하기 위해 적어도 사용되는 타이머 회로 또는 클록(908)을 포함할 수 있다. 도시되진 않지만, 호스트 제어기(902)는, 일 예로서, 프로세싱 회로(904)에 대한 클로킹(clocking)과 같은 내부 클로킹을 위한 다른 클로킹 또는 타이밍 디바이스들을 이용할 수 있다. 추가로, 송신기/수신기 회로(906)는 또한, 예들로서, I2C 또는 I3C 버스일 수 있는 물리적 인터페이스, 또는 심지어 무선 인터페이스와 송신기/수신기 회로를 인터페이싱하도록 구성되는 전송 매체 인터페이싱 회로(910)를 포함한다. 또한, 전송 매체는, 적어도 2개의 라인들, 이를테면 버스의 예에서는 SDA 라인 및 SCL 라인을 이용할 수 있지만, 도 2의 인터페이스(217)에 관해 앞서 논의된 바와 같이 추가적인 라인들을 포함할 수 있다.
[0097] 호스트 제어기(902)는 또한, 적어도 프로세싱 회로(904)와 커플링되는 메모리 또는 저장 매체(912)를 포함할 수 있고, 도 3-8과 관련하여 개시된 것들과 같은 본원에 개시된 다양한 방법들을, 회로(904)로 하여금, 구현하게 하거나 또는 송신기/수신기 회로(906)가 구현하도록 지시하게 하기 위한 코드 또는 명령들을 포함할 수 있다. 다른 양상에서, 호스트 제어기(902)는, 도 3-8에서 개시된 것과 같은 센서 타이머 정정을 달성하는 기능들 중 일부 또는 전부를 수행하는 전용 동기화 회로 또는 로직(914)을 포함할 수 있다.
[0098] 도 10은, 적어도 호스트 제어기 또는 마스터 디바이스와, 그러나 또한 버스 상의 다른 디바이스들과도 통신가능하게 커플링된 버스 인터페이스 또는 회로 상에서 신호들 및 데이터를 송신 및 수신하기 위한 송신기/수신기 회로(1006)와 커플링되는 프로세싱 또는 로직 회로(1004)를 포함할 수 있는 예시적인 센서 또는 슬레이브 디바이스(1002)를 예시한다. 송신기/수신기 회로(1006)는, 버스 인터페이스를 통해 호스트 제어기(예컨대, 제어기(902))의 지시 하에서 슬레이브 또는 센서 디바이스(1002)의 동기화에서의 타이밍을 결정하기 위해 적어도 사용되는 타이머 회로 또는 클록(1008)을 포함할 수 있다. 도시되진 않지만, 센서(1002)는, 일 예로서, 프로세싱 회로(1004)에 대한 클로킹과 같은 센서의 내부 클로킹을 위한 다른 클로킹 또는 타이밍 디바이스들을 이용할 수 있다. 추가로, 송신기/수신기 회로(1006)는 또한, 단지 몇몇 예를 들면, I2C 또는 I3C 버스일 수 있는 물리적 인터페이스, 또는 심지어 무선 인터페이스들과 송신기/수신기 회로를 인터페이싱하도록 구성되는 전송 매체 인터페이싱 회로(1010)를 포함한다. 또한, 전송 매체 인터페이싱 회로(910)는, 적어도 2개의 라인들, 이를테면 버스의 예에서는 SDA 라인 및 SCL 라인을 이용할 수 있지만, 도 2의 인터페이스(217)에 관해 앞서 논의된 바와 같이 추가적인 라인들을 포함할 수 있다.
[0099] 센서(1002)는 또한, 적어도 프로세싱 회로(1004)와 커플링되는 메모리 또는 저장 매체(1012)를 포함할 수 있고, 도 3-8과 관련하여 개시된 것들과 같은 본원에 개시된 다양한 방법들(특히, 예컨대, 타이머 회로(1008)의 정정을 위한 ST + DT 메시지뿐만 아니라 최대 DT 타이밍을 계산하기 위한 RR 커맨드를 적용하는 것)을, 회로(1004)로 하여금, 구현하게 하거나 또는 송신기/수신기 회로(1006)가 구현하도록 지시하게 하기 위한 코드 또는 명령들을 포함할 수 있다. 다른 양상에서, 센서(1002)는, 도 3-8에서 개시된 것과 같은 센서 타이머 정정을 달성하는 기능들 중 일부 또는 전부를 수행하는 전용 동기화 회로 또는 로직(1014)을 포함할 수 있다.
[00100] 앞서 설명된 본 발명의 양상들은, 앞서 설명된 바와 같이, 컴퓨팅 디바이스(100)의 프로세서(101), 호스트 제어기(205), 센서(210), 호스트 제어기 또는 마스터(902), 및 슬레이브 또는 센서 디바이스(1002)에 의한 명령들(예컨대, 애플리케이션들)의 실행과 함께 구현될 수 있음이 인식되어야 한다. 특히, 프로세서를 포함하는(그러나 이에 제한되지 않음) 디바이스의 회로는, 본 발명의 실시예들에 따른 방법들 또는 프로세스들(예컨대, 도 3-8에 의해 예시된 프로세스들)을 실행하기 위해, 명령들의 실행, 루틴, 프로그램, 또는 애플리케이션의 제어 하에 동작할 수 있다. 예컨대, 그러한 프로그램은, (예컨대, 메모리 및/또는 다른 위치들에 저장된) 펌웨어 또는 소프트웨어로 구현될 수 있고, 프로세서들 및/또는 디바이스들의 다른 회로에 의해 구현될 수 있다. 추가로, 프로세서, 마이크로프로세서, 회로, 제어기 등의 용어들은 로직, 커맨드들, 명령들, 소프트웨어, 펌웨어, 기능 등을 실행하는 것이 가능한 임의의 타입의 로직 또는 회로를 지칭한다는 것이 인식되어야 한다.
[00101] 도 11은, 프로세싱 회로(1102)를 이용하는 호스트 제어기(1100)에 대한 하드웨어 구현의 간략화된 예를 예시하는 도면이다. 호스트 제어기(1100)에 의해 수행되는 동작들의 예들은, 도 3, 도 7, 및 도 8의 흐름도뿐만 아니라 도 4-6의 타임라인들에 대해 위에 설명된 동작들을 포함한다. 프로세싱 회로(1102)는 통상적으로, 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서, 시퀀서 및 상태 머신 중 하나 이상을 포함할 수 있는 프로세서(1104)를 갖는다. 프로세싱 회로(1102)는, 일반적으로 버스(1106)에 의해 표현되는 버스 아키텍쳐로 구현될 수 있다. 버스(1106)는 프로세싱 회로(1102)의 특정 애플리케이션 및 전체적인 설계 제약들에 의존하여, 임의의 개수의 상호접속 버스들 및 브릿지들을 포함할 수 있다. 버스(1106)는, 프로세서(1104)에 의해 표현되는 하나 이상의 프로세서들 및/또는 하드웨어 모듈들, 및 (선택적 안테나(1112)에 의해 도시된 바와 같은) 다양한 전송 프로토콜들 또는 무선 인터페이스들에 따라 동작가능한 다양한 커넥터들 또는 와이어들(1110)을 통한 통신을 지원하도록 구성가능한 인터페이스 모듈 또는 회로(1108), 및 컴퓨터-판독가능 저장 매체(1114)를 포함하는 다양한 회로들을 통신가능하게 커플링시킨다. 버스(1106)는 또한 타이밍 소스들, 주변장치들, 전압 조정기들 및 전력 관리 회로들과 같은 다양한 다른 회로들을 링크시킬 수 있고, 이들은 당업계에 널리 공지되어 있으며, 따라서 본원에서 더 상세히 설명되지 않는다. 인터페이스들(1110)은, 하나 또는 다수의 전송 포맷들에 따라 동작가능할 뿐만 아니라 하나 이상의 슬레이브/센서 디바이스들 또는 다른 호스트 제어기들에 통신가능하게 커플링되는 하나 이상의 인터페이스들일 수 있음이 또한 유의된다.
[00102] 프로세서(1104)는, 컴퓨터-판독가능 저장 매체(1114)에 저장된 소프트웨어/명령들의 실행을 비롯하여, 일반적인 프로세싱을 담당한다. 소프트웨어/명령들은, 프로세서(1104)에 의해 실행되는 경우, 프로세싱 회로(1102)로 하여금, 임의의 특정 장치에 대해 이전에 설명된 다양한 기능들을 수행하게 한다. 컴퓨터 또는 프로세서 판독가능 저장 매체(1114)는 또한, 커넥터들 또는 와이어들(1110) 또는 안테나(1112)를 통해 송신되는 심볼들로부터 디코딩된 데이터를 비롯하여, 소프트웨어를 실행할 때 프로세서(1104)에 의해 조작되는 데이터를 저장하기 위해 사용될 수 있다. 프로세싱 회로(1102)는, 컴퓨터-판독가능 저장 매체(1114)에 상주/저장되어 프로세서(1104)에서 실행되는 소프트웨어 모듈들, 프로세서(1104)에 커플링되는 하나 이상의 하드웨어 모듈들, 또는 이들의 임의의 결합일 수 있는, 모듈들/회로들(1108) 중 적어도 하나를 더 포함한다. 모듈들/회로들(1108)은 마이크로제어기 명령들, 상태 머신 구성 파라미터들, 또는 이들의 임의의 결합을 포함할 수 있다.
[00103] 일 구성에서, 프로세서 판독가능 매체(1114)는, 동기화 메시지를 결정하기 위한 명령들을 포함하며, 동기화 메시지는, 센서에 송신되도록 그리고 호스트 제어기와 센서의 타이밍을 동기화하기 위한 동기화 기간의 시작을 표시하도록 구성된다. 이러한 명령들은, 프로세서(1104)로 하여금, 예컨대, 도 7의 블록(702)에 예시된 프로세스들을 포함하는 다양한 기능들을 수행하게 하도록 구성된다. 프로세서 판독가능 매체(1114)는 또한, 지연 시간 메시지를 결정하기 위한 명령들을 포함하며, 지연 시간 메시지는, 동기화 기간의 시작과 동기화 메시지의 실제 송신 시간 사이의 시간 지연을 표시하도록 구성된다. 이러한 명령들은, 프로세서(1104)로 하여금, 예컨대, 도 7의 블록(704)에 예시된 프로세스들을 포함하는 다양한 기능들을 수행하게 하도록 구성된다. 부가적으로, 프로세서 판독가능 매체(1114)는 또한, 정보 메시지에서 지연 시간 메시지와 함께 동기화 메시지를 센서에 송신하기 위한 명령들을 포함하며, 여기서, 정보 메시지는, 센서가 센서 타이머의 타이밍을 정정하는 것을 허용하도록 구성된다. 이러한 명령들은, 프로세서(1104)로 하여금, 예컨대, 도 7의 블록(706)에 예시된 프로세스들을 포함하는 다양한 기능들을 수행하게 하도록 구성된다. 추가적으로 언급하자면, 프로세서 판독가능 매체(1114)는, 프로세서(1104)로 하여금, 도 8의 블록들(802 및 804) 및 도 6의 타임라인의 기능들을 수행하게 하기 위한 명령들(도시되지 않음)을 포함할 수 있다.
[00104] 본원에서 설명된 무선 방법들은, WWAN(wireless wide area network), WLAN(wireless local area network), WPAN(wireless personal area network) 등과 같은 다양한 무선 통신 네트워크들과 함께 구현될 수 있다. "네트워크" 및 "시스템"이라는 용어는 종종 상호교환가능하게 사용된다. WWAN은 CDMA(Code Division Multiple Access) 네트워크, TDMA(Time Division Multiple Access) 네트워크, FDMA(Frequency Division Multiple Access) 네트워크, OFDMA(Orthogonal Frequency Division Multiple Access) 네트워크, SC-FDMA(Single-Carrier Frequency Division Multiple Access) 네트워크 등일 수 있다. CDMA 네트워크는, cdma2000, W-CDMA(Wideband-CDMA) 등과 같은 하나 이상의 RAT(radio access technology)들을 구현할 수 있다. cdma2000은 IS-95, IS-2000, 및 IS-856 표준들을 포함한다. TDMA 네트워크는 GSM(Global System for Mobile Communications), D-AMPS(Digital Advanced Mobile Phone System), 또는 몇몇 다른 RAT를 구현할 수 있다. GSM 및 W-CDMA는 "3GPP(3rd Generation Partnership Project)"로 명칭된 컨소시엄으로부터의 문헌들에 설명되어 있다. cdma2000은 "3GPP2(3rd Generation Partnership Project 2)"로 명칭된 컨소시엄으로부터의 문헌들에 설명되어 있다. 3GPP 및 3GPP2 문헌들은 공개적으로 이용가능하다. WLAN은 IEEE 802.11x 네트워크일 수 있고, WPAN은 블루투스 네트워크, IEEE 802.15x, 또는 몇몇 다른 타입의 네트워크일 수 있다. 기법들은 또한, WWAN, WLAN, 및/또는 WPAN의 임의의 결합과 함께 구현될 수 있다.
[00105] 본원에 제공된 예시적인 방법들, 장치들, 또는 제조 물품은, 전체적으로 또는 부분적으로, 모바일 통신 디바이스들에서의 사용을 위해 또는 모바일 통신 디바이스들로 구현될 수 있다. 본원에서 사용된 바와 같이, "모바일 디바이스", "모바일 통신 디바이스", "핸드-헬드(hand-held) 디바이스", "태블릿들" 등 또는 그러한 용어들의 복수 형태는, 상호교환가능하게 사용될 수 있고, 하나 이상의 통신 프로토콜들에 따른 적절한 통신 네트워크들을 통한 정보의 무선 송신 또는 수신을 통해 통신할 수 있고 시간마다 변하는 포지션 또는 위치를 가질 수 있는 임의의 종류의 특수 목적 컴퓨팅 플랫폼 또는 디바이스를 지칭할 수 있다. 예시로서, 특수 목적 모바일 통신 디바이스들은, 예컨대, 셀룰러 텔레폰들, 위성 텔레폰들, 스마트 텔레폰들, 히트 맵(heat map) 또는 라디오 맵 생성 툴(tool)들 또는 디바이스들, 관측 신호 파라미터 생성 툴들 또는 디바이스들, 개인 휴대 정보 단말(PDA)들, 랩톱 컴퓨터들, 개인 엔터테인먼트 시스템들, e-book 리더들, 태블릿 개인용 컴퓨터(PC)들, 개인용 오디오 또는 비디오 디바이스들, 개인용 내비게이션 유닛들 등을 포함할 수 있다. 그러나, 이들은 단지 본원에 설명된 하나 이상의 프로세스들 또는 동작들을 가능하게 하거나 지원하는 데 이용될 수 있는 모바일 디바이스들에 관련된 예시적인 예들이라는 것이 인식되어야 한다.
[00106] 본원에 설명된 방법들은 특정한 애플리케이션에 의존하여 상이한 방식들로 그리고 상이한 구성들로 구현될 수 있다. 예컨대, 그러한 방법들은, 소프트웨어와 함께, 하드웨어, 펌웨어, 및/또는 이들의 결합들에서 구현될 수 있다. 하드웨어 구현에서, 예컨대, 프로세싱 유닛은 하나 이상의 ASIC(application specific integrated circuit)들, DSP(digital signal processor)들, DSPD(digital signal processing device)들, PLD(programmable logic device)들, FPGA(field programmable gate array)들, 프로세서들, 제어기들, 마이크로-제어기들, 마이크로프로세서들, 전자 디바이스들, 본원에 설명된 기능들을 수행하도록 설계된 다른 디바이스 유닛들, 및/또는 이들의 결합들 내에서 구현될 수 있다.
[00107] 본원에 설명된 메모리 또는 저장 매체들은 1 차, 2 차, 및/또는 3 차 저장 매체들을 포함할 수 있다. 1 차 저장 매체들은, 예컨대, 랜덤 액세스 메모리 및/또는 판독-전용 메모리와 같은 메모리를 포함할 수 있다. 2 차 저장 매체들은, 자기 또는 고체 상태 하드 드라이브와 같은 대용량 저장부를 포함할 수 있다. 3 차 저장 매체들은, 자기 또는 광학 디스크, 자기 테이프, 고체 상태 저장 디바이스 등과 같은 착탈형 저장 매체들을 포함할 수 있다. 특정한 구현들에서, 저장 매체들 또는 저장 매체들의 부분들은, 프로세서와 같은 컴퓨팅 플랫폼의 다른 컴포넌트들을 동작가능하게 수용할 수 있거나 또는 그렇지 않으면 그에 커플링되도록 구성가능할 수 있다.
[00108] 적어도 몇몇 구현들에서, 본원에 설명된 저장 매체들 중 하나 이상의 부분들은, 저장 매체들의 특정한 상태에 의해 표현되는 데이터 및/또는 정보를 나타내는 신호들을 저장할 수 있다. 예컨대, 데이터 및/또는 정보를 나타내는 전자 신호는, 데이터 및/또는 정보를 2진 정보(예컨대, 1들 및 0들)로 표현하도록 저장 매체들(예컨대, 메모리)의 해당 부분들의 상태에 영향을 주거나 이러한 상태를 변경함으로써 저장 매체들의 부분에 "저장"될 수 있다. 그러므로, 특정한 구현들에서, 데이터 및/또는 정보를 나타내는 신호를 저장하기 위한 저장 매체들의 부분의 상태에 대한 그러한 변경은, 다른 상태 또는 다른 것으로의 저장 매체들의 변환을 구성한다.
[00109] 전술한 상세한 설명에서, 청구된 요지의 완전한 이해를 제공하기 위해 다수의 특정한 세부사항들이 기재되었다. 그러나, 청구된 요지는 그 특정한 세부사항들 없이 실시될 수 있다는 것이 당업자들에 의해 이해될 것이다. 다른 예시들에서, 당업자에게 알려져 있을 방법들 및 장치들은 청구된 요지를 불명료하게 하지 않기 위해 상세히 설명되지 않았다.
[00110] 전술한 상세한 설명의 몇몇 부분들은, 특정한 장치 또는 특수 목적 컴퓨팅 디바이스 또는 플랫폼의 메모리 내에 저장된 2진 디지털 전자 신호들에 대한 동작들의 알고리즘들 또는 기호적 표현들의 관점들에서 제시되었다. 본 특정한 명세서의 맥락에서, 특정한 장치 등의 용어는, 특정한 장치가 프로그램 소프트웨어로부터의 명령들에 따라 특정한 기능들을 수행하도록 프로그래밍되면, 범용 컴퓨터를 포함한다. 알고리즘 설명들 또는 기호적 표현들은, 자신들의 작업의 본질을 본 기술분야의 다른 당업자들에게 전달하기 위해, 신호 프로세싱 또는 관련 기술 분야들에서의 당업자들에 의해 사용되는 기술들의 예들이다. 알고리즘은, 본원에서 그리고 일반적으로, 원하는 결과를 유도하는 동작들 또는 유사한 신호 프로세싱의 자기-부합적(self-consistent) 시퀀스인 것으로 고려된다. 이러한 맥락에서, 동작들 또는 프로세싱은 물리적 양들의 물리적 조작을 수반한다. 반드시 그러한 것은 아니지만 통상적으로, 그러한 양들은, 정보를 표현하는 전자 신호들로서, 저장, 전달, 결합, 비교, 또는 다른 방식으로 조작될 수 있는 전기 또는 자기 신호들의 형태를 취할 수 있다. 때로는, 주로 일반적인 용법의 이유들로, 그러한 신호들은 비트들, 데이터, 값들, 엘리먼트들, 심볼들, 문자들, 항들, 숫자들, 수치들, 정보 등으로 지칭하는 것이 편리한 것으로 증명되었다. 그러나, 이들 또는 유사한 용어들 전부가 적절한 물리적 양들과 연관되어야 하고, 단지 편리한 라벨들이라는 것이 이해되어야 한다.
[00111] 달리 구체적으로 언급되지 않으면, 다음의 논의로부터 명백한 바와 같이, 본 명세서의 논의들 전체에 걸쳐, "프로세싱", "컴퓨팅", "계산", "식별", "결정", "설정", "획득" 등과 같은 용어들을 이용하는 것은 특정한 장치, 예컨대, 특수 목적 컴퓨터 또는 유사한 특수 목적 전자 컴퓨팅 디바이스의 동작들 또는 프로세스들을 지칭함이 인식된다. 따라서, 본 명세서의 맥락에서, 특수 목적 컴퓨터 또는 유사한 특수 목적 전자 컴퓨팅 디바이스는, 특수 목적 컴퓨터 또는 유사한 특수 목적 전자 컴퓨팅 디바이스의 메모리들, 레지스터들, 또는 다른 정보 저장 디바이스들, 송신 디바이스들, 또는 디스플레이 디바이스들 내에서 통상적으로 물리적 전자 또는 자기 양들로서 표현되는 신호들을 조작하거나 또는 변환하는 것이 가능하다. 본 특정한 특허 출원의 맥락에서, 용어 "특정한 장치"는, 특정한 장치가 프로그램 소프트웨어로부터의 명령들에 따라 특정한 기능들을 수행하도록 프로그래밍되면, 범용 컴퓨터를 포함할 수 있다.
[00112] 본 명세서 전체에 걸쳐 "일 예", "예", "특정한 예들", 또는 "예시적인 구현"에 대한 참조는, 특성 및/또는 예와 관련하여 설명된 특성, 구조, 또는 특징이, 청구된 요지의 적어도 하나의 특성 및/또는 예에 포함될 수 있다는 것을 의미한다. 따라서, 본 명세서 전체에 걸친 다양한 위치들에서 어구 "일 예에서", "예", "특정한 예들에서", 또는 "몇몇 구현들에서" 또는 다른 유사한 어구들의 출현들 전부가 반드시 동일한 특성, 예, 및/또는 제한을 참조하는 것은 아니다. 또한, 특정한 특성들, 구조들, 또는 특징들은 하나 이상의 예들 및/또는 특성들에서 결합될 수 있다.
[00113] 예시적인 특성들인 것으로 현재 고려되는 것이 예시되고 설명되었지만, 청구된 요지로부터 벗어나지 않으면서 다양한 다른 변형들이 행해질 수 있고 등가물들이 치환될 수 있다는 것이 당업자들에 의해 이해될 것이다. 부가적으로, 본원에 설명된 중심 개념으로부터 벗어나지 않으면서 청구된 요지의 교시들에 특정한 상황을 적응시키도록 많은 변형들이 행해질 수 있다. 따라서, 청구된 요지는 개시된 특정한 예들에 제한되지 않지만, 그러한 청구된 요지들은 또한 첨부된 청구항들의 범위 내에 속하는 모든 양상들 및 이의 등가물들을 포함할 수 있다는 것이 의도된다.
[00114] 개시된 프로세스들의 단계들의 특정 순서 또는 계층 구조는 단지 예시적인 접근법들의 예라는 것이 이해된다. 설계 선호도들을 기초하여, 프로세스들의 단계들의 특정 순서 또는 계층 구조는 본 개시내용의 범위 내에 그대로 있으면서 재배열될 수도 있음이 이해된다. 첨부된 방법 청구항들은 다양한 단계들의 엘리먼트들을 예시적인 순서로 제시하며, 제시된 특정 순서 또는 계층 구조로 한정되는 것으로 여겨지는 것은 아니다.
[00115] 정보 및 신호들은 다양한 상이한 기술들 및 기법들 중 임의의 기술 및 기법을 사용하여 표현될 수 있음을 당업자들은 이해할 것이다. 예컨대, 위의 설명 전반에 걸쳐 참조될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 자기 입자들, 광학 필드들 또는 광학 입자들, 또는 이들의 임의의 결합에 의해 표현될 수 있다.
[00116] 본원에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이 둘의 결합들로서 구현될 수 있음을 당업자들은 추가적으로 인식할 것이다. 하드웨어와 소프트웨어의 이러한 상호교환가능성을 명확히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 그들의 기능의 관점들에서 일반적으로 위에 설명되었다. 이러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지는 특정 애플리케이션 및 전체 시스템에 부과된 설계 제한들에 의존한다. 당업자들은 설명된 기능을 각각의 특정 애플리케이션에 대해 다양한 방식들로 구현할 수 있지만, 이러한 구현 결정들이 본 발명의 범위를 벗어나는 것으로 해석되어서는 안 된다.
[00117] 본원의 개시된 실시예들과 관련하여 설명되는 다양한 예시적인 로지컬 블록들, 모듈들, 및 회로들이 범용 프로세서, DSP(digital signal processor), ASIC(application specific integrated circuit), FPGA(field programmable gate array) 또는 다른 프로그램가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들 또는 본원에 설명된 기능들을 수행하도록 설계된 이들의 임의의 결합으로 구현되거나 또는 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 조합, 예컨대 DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로서 구현될 수 있다.
[00118] 본원에 개시된 실시예들과 관련하여 설명되는 알고리즘 또는 방법의 단계들은 직접적으로 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 이 둘의 결합으로 구현될 수 있다. 소프트웨어 모듈은, RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 착탈식 디스크, CD-ROM, 또는 당업계에 알려져 있는 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적인 저장 매체는 프로세서에 커플링되고, 그러한 프로세서는 저장 매체로부터 정보를 판독하고, 저장 매체에 정보를 기입할 수 있다. 대안으로, 저장 매체는 프로세서에 통합될 수 있다. 프로세서 및 저장 매체는 ASIC에 상주할 수 있다. ASIC는 사용자 단말에 상주할 수 있다. 대안으로, 프로세서 및 저장 매체는 사용자 단말에서 이산 컴포넌트들로서 상주할 수 있다.
[00119] 개시된 실시예들의 이전 설명은 임의의 당업자가 본 발명을 사용 또는 실시할 수 있도록 제공된다. 이들 실시예들에 대한 다양한 변형들은 당업자들에게 용이하게 명백할 것이며, 본원에 정의된 일반적인 원리들은 본 발명의 사상 또는 범위를 벗어나지 않으면서 다른 실시예들에 적용될 수 있다. 따라서, 본 발명은 본원에 도시된 실시예들로 제한되도록 의도되는 것이 아니라, 본원에 개시된 원리들 및 신규한 특성들과 일치하는 가장 넓은 범위에 부합할 것이다.

Claims (17)

  1. 호스트 제어기로 구현되는 센서 타이밍 정정 메시지들을 송신하기 위한 방법으로서,
    동기화 메시지를 결정하는 단계 ― 상기 동기화 메시지는, 센서에 송신되도록 그리고 상기 호스트 제어기와 상기 센서의 타이밍을 동기화하기 위한 동기화 기간의 시작을 표시하도록 구성됨 ―;
    지연 시간 메시지를 결정하는 단계 ― 상기 지연 시간 메시지는, 상기 동기화 기간의 시작과 상기 동기화 메시지의 실제 송신 시간 사이의 시간 지연을 표시하도록 구성됨 ―;
    정보 메시지에서 상기 지연 시간 메시지와 함께 상기 동기화 메시지를 상기 센서에 송신하는 단계 ― 상기 정보 메시지는, 상기 센서가 센서 타이머의 타이밍을 정정하는 것을 허용하도록 구성됨 ―; 및
    분해능 비(resolution ratio) 커맨드를 상기 센서에 통신하는 단계를 포함하며,
    상기 분해능 비 커맨드는, 상기 지연 시간 메시지에 대한 분해능 단계 시간을 계산하기 위한 상기 동기화 기간의 분할 팩터를 포함하고,
    상기 분해능 단계 시간은, 상기 분할 팩터에 상기 동기화 기간의 길이를 곱함으로써 계산되는, 센서 타이밍 정정 메시지들을 송신하기 위한 방법.
  2. 제1항에 있어서,
    상기 정보 메시지는, 상기 센서에서 타이밍을 정정하기 위한 상기 지연 시간 메시지 및 상기 동기화 메시지의 타이밍에 기반하여, 다음 동기화 기간 위상 시간 기간의 예상되는 시작을 상기 센서가 결정하는 것을 허용하도록 구성되는, 센서 타이밍 정정 메시지들을 송신하기 위한 방법.
  3. 제1항에 있어서,
    상기 센서에서, 상기 분해능 단계 시간, 및 최대 지연 시간에 대한 미리결정된 수의 분해능 단계들에 기반하여, 상기 지연 시간 메시지에 대한 최대 지연 시간을 계산하는 단계를 더 포함하는, 센서 타이밍 정정 메시지들을 송신하기 위한 방법.
  4. 제1항에 있어서,
    상기 분해능 비 커맨드는, 분해능 단계들을 결정하기 위해 2의 역거듭제곱(inverse power)들로서 적용되는 복수의 정수 값들을 통신하는 2비트 메시지로서 구성되는, 센서 타이밍 정정 메시지들을 송신하기 위한 방법.
  5. 제1항에 있어서,
    상기 동기화 기간은 시간 위상 기간(T_Ph)을 포함하며,
    상기 시간 위상 기간은, 상기 시간 위상 기간에 걸쳐 발생하는 미리결정된 수의 샘플링 이벤트들의 관점들로 표현가능한, 센서 타이밍 정정 메시지들을 송신하기 위한 방법.
  6. 제5항에 있어서,
    인터페이스는, I2C 버스, I3C 버스, SPI 버스, SMBus, SLIMbus, UART 버스, SoundWire 버스, 또는 무선 인터페이스 중 하나 이상을 포함하는, 센서 타이밍 정정 메시지들을 송신하기 위한 방법.
  7. 제1항에 있어서,
    적어도 하나의 센서에서 데이터가 이용가능해질 때, 상기 호스트 제어기의 가능한 최대 지터(jitter) 및 센서 타이밍들의 범위를 결정하는 단계; 및
    상기 센서 타이밍들의 범위 내의 가장 빠른 센서 타이밍이 다음 폴링(polling) 사이클에서 센서 데이터의 변경을 표시하기 전에 상기 적어도 하나의 센서로부터 데이터를 판독하기 위한 시간 윈도우의 할당을 보장하기 위해, 결정된 가능한 최대 지터 및 상기 센서 타이밍들의 범위에 기반하여 상기 정보 메시지를 송신하는 데 요구되는 시간을 셋팅하는 단계를 더 포함하는, 센서 타이밍 정정 메시지들을 송신하기 위한 방법.
  8. 제6항에 있어서,
    적어도 하나의 센서로부터 데이터를 판독하기 위한 결정된 최대 시간 윈도우 및 센서 타이밍들의 범위 내의 가장 빠른 센서 타이밍 중 적어도 하나에 기반하여, 상기 동기화 기간 내의 폴링 사이클들의 수를 결정 및 셋팅하는 단계를 더 포함하는, 센서 타이밍 정정 메시지들을 송신하기 위한 방법.
  9. 호스트 제어기 디바이스로서,
    적어도 하나의 전송 매체를 통해 적어도 하나의 센서 디바이스에 통신가능하게 커플링되도록 구성되는 전송 매체 인터페이스; 및
    상기 전송 매체 인터페이스에 통신가능하게 커플링되는 적어도 하나의 프로세싱 회로를 포함하며,
    상기 적어도 하나의 프로세싱 회로는,
    동기화 메시지를 결정하고 ― 상기 동기화 메시지는, 센서에 송신되도록 그리고 상기 호스트 제어기와 상기 센서의 타이밍을 동기화하기 위한 동기화 기간의 시작을 표시하도록 구성됨 ―,
    지연 시간 메시지를 결정하고 ― 상기 지연 시간 메시지는, 상기 동기화 기간의 시작과 상기 동기화 메시지의 실제 송신 시간 사이의 시간 지연을 표시하도록 구성됨 ―,
    정보 메시지에서 상기 지연 시간 메시지와 함께 상기 동기화 메시지를 상기 센서에 송신하고 ― 상기 정보 메시지는, 상기 센서가 센서 타이머의 타이밍을 정정하는 것을 허용하도록 구성됨 ―, 그리고
    분해능 비(resolution ratio) 커맨드를 상기 센서에 통신하도록
    구성되고,
    상기 분해능 비 커맨드는, 상기 지연 시간 메시지에 대한 분해능 단계 시간을 계산하기 위한 상기 동기화 기간의 분할 팩터를 포함하고,
    상기 분해능 단계 시간은, 상기 분할 팩터에 상기 동기화 기간의 길이를 곱함으로써 계산되는, 호스트 제어기 디바이스.
  10. 제9항에 있어서,
    상기 정보 메시지는, 상기 센서에서 타이밍을 정정하기 위한 상기 지연 시간 메시지 및 상기 동기화 메시지의 타이밍에 기반하여, 다음 동기화 기간 위상 시간 기간의 예상되는 시작을 상기 센서가 결정하는 것을 허용하도록 구성되는, 호스트 제어기 디바이스.
  11. 제9항에 있어서,
    상기 분해능 비 커맨드는, 분해능 단계들을 결정하기 위해 2의 역거듭제곱들로서 적용되는 복수의 정수 값들을 통신하는 2비트 메시지로서 구성되는, 호스트 제어기 디바이스.
  12. 제9항에 있어서,
    상기 전송 매체는, I2C 버스, I3C 버스, SPI 버스, SMBus, SLIMbus, UART, SoundWire 버스, 또는 무선 인터페이스 중 하나 이상을 포함하는, 호스트 제어기 디바이스.
  13. 제9항에 있어서,
    상기 적어도 하나의 프로세싱 회로 추가로,
    적어도 하나의 센서에서 데이터가 이용가능해질 때, 상기 호스트 제어기의 가능한 최대 지터 및 센서 타이밍들의 범위를 결정하고; 그리고
    상기 센서 타이밍들의 범위 내의 가장 빠른 센서 타이밍이 다음 폴링 사이클에서 센서 데이터의 변경을 표시하기 전에 상기 적어도 하나의 센서로부터 데이터를 판독하기 위한 시간 윈도우의 할당을 보장하기 위해, 결정된 가능한 최대 지터 및 상기 센서 타이밍들의 범위에 기반하여 상기 정보 메시지를 송신하는 데 요구되는 시간을 셋팅하도록
    구성되는, 호스트 제어기 디바이스.
  14. 하나 이상의 명령들을 갖는 프로세서-판독가능 저장 매체로서,
    상기 하나 이상의 명령들은, 적어도 하나의 프로세싱 회로에 의해 실행되는 경우, 상기 적어도 하나의 프로세싱 회로로 하여금,
    동기화 메시지를 결정하게 하고 ― 상기 동기화 메시지는, 전송 매체 상에서 호스트 제어기로부터 센서로 송신되도록 그리고 상기 호스트 제어기와 상기 센서의 타이밍을 동기화하기 위한 동기화 기간의 시작을 표시하도록 구성됨 ―,
    지연 시간 메시지를 결정하고 ― 상기 지연 시간 메시지는, 상기 동기화 기간의 시작과 상기 동기화 메시지의 실제 송신 시간 사이의 시간 지연을 표시하도록 구성됨 ―,
    정보 메시지에서 상기 지연 시간 메시지와 함께 상기 동기화 메시지를 상기 센서에 송신하고 ― 상기 정보 메시지는, 상기 센서가 센서 타이머의 타이밍을 정정하는 것을 허용하도록 구성됨 ―, 그리고
    분해능 비 커맨드를 상기 센서에 통신하게 하며,
    상기 분해능 비 커맨드는, 상기 지연 시간 메시지에 대한 분해능 단계 시간을 계산하기 위한 상기 동기화 기간의 분할 팩터를 포함하고,
    상기 분해능 단계 시간은, 상기 분할 팩터에 상기 동기화 기간의 길이를 곱함으로써 계산되는, 프로세서-판독가능 저장 매체.
  15. 제14항에 있어서,
    상기 정보 메시지는, 상기 센서에서 타이밍을 정정하기 위한 상기 지연 시간 메시지 및 상기 동기화 메시지의 타이밍에 기반하여, 다음 동기화 기간 위상 시간 기간의 예상되는 시작을 상기 센서가 결정하는 것을 허용하도록 구성되는, 프로세서-판독가능 저장 매체.
  16. 제14항에 있어서,
    상기 전송 매체는, I2C 버스, I3C 버스, SPI 버스, SMBus, SLIMbus, UART 버스, SoundWire 버스, 또는 무선 인터페이스 중 하나 이상을 포함하는, 프로세서-판독가능 저장 매체.
  17. 제14항에 있어서,
    상기 하나 이상의 명령들은 추가로, 상기 적어도 하나의 프로세싱 회로로 하여금,
    적어도 하나의 센서에서 데이터가 이용가능해질 때, 상기 호스트 제어기의 가능한 최대 지터 및 센서 타이밍들의 범위를 결정하게 하고; 그리고
    상기 센서 타이밍들의 범위 내의 가장 빠른 센서 타이밍이 다음 폴링 사이클에서 센서 데이터의 변경을 표시하기 전에 상기 적어도 하나의 센서로부터 데이터를 판독하기 위한 시간 윈도우의 할당을 보장하기 위해, 결정된 가능한 최대 지터 및 상기 센서 타이밍들의 범위에 기반하여 상기 정보 메시지를 송신하는 데 요구되는 시간을 셋팅하게 하는,
    프로세서-판독가능 저장 매체.
KR1020187011318A 2015-10-23 2016-10-21 제어기와 센서들을 동기화하기 위한 장치 및 방법들 KR20180071268A (ko)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US201562245914P 2015-10-23 2015-10-23
US201562245917P 2015-10-23 2015-10-23
US201562245924P 2015-10-23 2015-10-23
US201562245922P 2015-10-23 2015-10-23
US62/245,924 2015-10-23
US62/245,922 2015-10-23
US62/245,917 2015-10-23
US62/245,914 2015-10-23
US15/251,757 2016-08-30
US15/251,757 US20160370845A1 (en) 2013-11-12 2016-08-30 System and methods of reducing energy consumption by synchronizing sensors
US15/299,382 US20170041897A1 (en) 2013-11-12 2016-10-20 Apparatus and methods for synchronizing a controller and sensors
US15/299,382 2016-10-20
PCT/US2016/058284 WO2017070588A1 (en) 2015-10-23 2016-10-21 Apparatus and methods for synchronizing a controller and sensors

Publications (1)

Publication Number Publication Date
KR20180071268A true KR20180071268A (ko) 2018-06-27

Family

ID=58558165

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187011318A KR20180071268A (ko) 2015-10-23 2016-10-21 제어기와 센서들을 동기화하기 위한 장치 및 방법들

Country Status (7)

Country Link
EP (1) EP3365994A1 (ko)
JP (1) JP2018534688A (ko)
KR (1) KR20180071268A (ko)
CN (1) CN108141293A (ko)
BR (1) BR112018008278A2 (ko)
CA (1) CA3000011A1 (ko)
WO (1) WO2017070588A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020256900A1 (en) * 2019-06-18 2020-12-24 Commscope Technologies Llc Synchronizing a cloud radio access network to a network time protocol reference clock

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10707984B2 (en) * 2017-07-14 2020-07-07 Qualcomm Incorporated Techniques for synchronizing slave devices
EP3573342B1 (en) * 2018-05-25 2021-03-31 Harman Becker Automotive Systems GmbH Multi-rate digital sensor synchronization
CN108923876B (zh) * 2018-06-27 2020-11-27 北京旷视机器人技术有限公司 时间同步方法、装置及系统
CN111077941B (zh) * 2019-11-06 2024-04-02 深圳震有科技股份有限公司 一种时钟同步设置方法、设备及存储介质
CN111309094A (zh) * 2020-02-06 2020-06-19 上海图趣信息科技有限公司 一种传感器设备采集数据的同步板卡及方法
CN111585682B (zh) * 2020-05-09 2022-10-04 森思泰克河北科技有限公司 传感器时间同步方法、装置及终端设备
JP7487551B2 (ja) 2020-05-18 2024-05-21 富士電機株式会社 同期制御システム
TWI767234B (zh) * 2020-05-21 2022-06-11 大陸商北京集創北方科技股份有限公司 串行周邊介面的傳輸速率提升方法、資料傳輸電路及資訊處理裝置
CN111711558B (zh) * 2020-05-28 2023-06-09 腾讯科技(深圳)有限公司 一种消息控制方法及装置
DE102020207995A1 (de) 2020-06-29 2021-12-30 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und System zur Synchronisation zwischen einer Datenausgaberate eines Sensors und einem Synchronisationssignal
CN116348930A (zh) * 2020-10-16 2023-06-27 株式会社岛津制作所 数据测量系统及执行测量数据的数据处理的方法
CN113821469A (zh) * 2021-09-23 2021-12-21 深圳市元征科技股份有限公司 多处理器的同步方法、装置、终端设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW401539B (en) * 1997-08-04 2000-08-11 Matsushita Electric Ind Co Ltd Delay time adjuster and adjusting method between multiple transmission lines
DE102012207138A1 (de) * 2012-04-27 2013-10-31 Robert Bosch Gmbh Sensorzeit-Synchronisation
AU2013204757A1 (en) * 2012-06-03 2013-12-19 Chronologic Pty Ltd Synchronisation of a system of distributed computers
JP6170311B2 (ja) * 2013-02-26 2017-07-26 キヤノン株式会社 撮像装置及びその制御方法
US9436214B2 (en) * 2013-11-12 2016-09-06 Qualcomm Incorporated System and methods of reducing energy consumption by synchronizing sensors

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020256900A1 (en) * 2019-06-18 2020-12-24 Commscope Technologies Llc Synchronizing a cloud radio access network to a network time protocol reference clock
US11134460B2 (en) 2019-06-18 2021-09-28 Commscope Technologies Llc Synchronizing a cloud radio access network to a network time protocol reference clock

Also Published As

Publication number Publication date
WO2017070588A1 (en) 2017-04-27
CN108141293A (zh) 2018-06-08
EP3365994A1 (en) 2018-08-29
JP2018534688A (ja) 2018-11-22
CA3000011A1 (en) 2017-04-27
BR112018008278A2 (pt) 2018-10-23

Similar Documents

Publication Publication Date Title
US20170041897A1 (en) Apparatus and methods for synchronizing a controller and sensors
KR20180071268A (ko) 제어기와 센서들을 동기화하기 위한 장치 및 방법들
US10707984B2 (en) Techniques for synchronizing slave devices
US20170041688A1 (en) Apparatus and methods for timestamping in a system synchronizing controller and sensors
KR20180074684A (ko) 제어기와 센서들을 동기화하기 위한 장치 및 방법들
US20160370845A1 (en) System and methods of reducing energy consumption by synchronizing sensors
TWI545985B (zh) 透過藍芽之裝置同步
US10863469B2 (en) System and method for accurate timestamping of virtual reality controller data
US9572102B2 (en) Correction of clock errors in a wireless station to enable reduction of power consumption
US20180224887A1 (en) Apparatus and method for asynchronous event timestamping
EP2854458B1 (en) Wireless sensor time synchronization
US20130343365A1 (en) Methods and apparatus for synchronization among integrated circuits within a wireless network
WO2012071977A1 (zh) 一种机架内的时间同步方法及设备
WO2020095413A1 (ja) 通信システム、通信装置、方法、及びプログラム
EP3814868B1 (en) Precision timing between systems
KR102263092B1 (ko) 프로그래머블 게이트 어레이를 이용한 시각 동기장치 및 방법
JP2008205805A (ja) 間欠受信装置