KR101380681B1 - 클럭 정보를 포함하도록 인코딩된 신호를 통신하는 송수신기 - Google Patents

클럭 정보를 포함하도록 인코딩된 신호를 통신하는 송수신기 Download PDF

Info

Publication number
KR101380681B1
KR101380681B1 KR1020120061479A KR20120061479A KR101380681B1 KR 101380681 B1 KR101380681 B1 KR 101380681B1 KR 1020120061479 A KR1020120061479 A KR 1020120061479A KR 20120061479 A KR20120061479 A KR 20120061479A KR 101380681 B1 KR101380681 B1 KR 101380681B1
Authority
KR
South Korea
Prior art keywords
clock
sampling
timing
period
transmission data
Prior art date
Application number
KR1020120061479A
Other languages
English (en)
Other versions
KR20120136308A (ko
Inventor
히데키 가시마
도모히사 기시가미
나오지 가네코
Original Assignee
가부시키가이샤 덴소
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시키가이샤 덴소 filed Critical 가부시키가이샤 덴소
Publication of KR20120136308A publication Critical patent/KR20120136308A/ko
Application granted granted Critical
Publication of KR101380681B1 publication Critical patent/KR101380681B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/403Bus networks with centralised control, e.g. polling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • 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
    • H04J3/0697Synchronisation in a packet node
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code
    • H04L25/40Transmitting circuits; Receiving circuits
    • H04L25/49Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
    • H04L25/4902Pulse width modulation; Pulse position modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • H04L7/033Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
    • H04L7/0331Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop with a digital phase-locked loop [PLL] processing binary samples, e.g. add/subtract logic for correction of receiver clock

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Dc Digital Transmission (AREA)

Abstract

송수신기에 있어서, 클럭 생성기는 제 1 클럭과 동기된 제 2 클럭을 생성한다. 제 2 클럭은 디지털 신호의 한 비트의 기간에 대응하는 주기를 가진다. 제 1 전송 데이터가 제 2 클럭과 비동기된 채 송수신기에 공급될 때, 샘플링 타이밍 생성기는 시작 타이밍으로서 제 1 전송 데이터의 시작 데이터를 검출하고, 시작 타이밍에 응답하고 제 1 클럭에 기초하여 샘플링 타이밍들을 생성한다. 그 샘플링 타이밍들은 각각이 제 2 클럭의 주기에 대응하도록 정의된 간격을 가진다. 제 1 샘플링 타이밍은 시작 타이밍으로부터 이격된다. 샘플링 모듈은, 각 샘플링 타이밍에서 제 1 전송 데이터를 샘플링하여, 제 2 클럭과 동기된 제 2 전송 데이터를 생성한다.

Description

클럭 정보를 포함하도록 인코딩된 신호를 통신하는 송수신기{TRANSCEIVER FOR COMMUNICATING SIGNAL ENCODED TO INCLUDE CLOCK INFORMATION}
본 출원은 2011년 6월 8일자 출원된 일본특허출원 제 2011-128222호에 기초한 것으로, 그 일본특허출원으로부터의 우선권을 주장한다. 또한 그 일본특허출원은 본 명세서에서 참조로서 인용된다.
본 발명은 데이터 및 클럭 정보를 포함하도록 인코딩된 디지털 신호를 통신 버스를 통해 송신 및 수신하는 송수신기에 관한 것이다.
CAN 및 LIN 버스와 같은 통신 버스에 기반한 통신 시스템은 자동차에 설치가능한 것으로 빈번하게 이용된다. 예를 들어, 그러한 통신 시스템은 2001년 12월 1일 공개된 CQ PUBLISHING CO.,LTD의 MICHIO SATO에 의한 "DETAILED DESCRIPTION OF VEHICLE NETWORK SYSTEM"에 개시되어 있다.
이러한 유형의 통신 시스템은 통신 버스에 통신 가능하게 접속된 다수의 노드로 구성되며, 이 노드들은, 예를 들어, 하드웨어 컴퓨팅 단말 또는 소프트웨어 모듈이다. 그 통신 시스템에 있어서의 각 노드는 CPU 및 시퀀서(sequencer)와 같은 신호 프로세서와, 통신 버스를 통해 인코딩된 디지털 신호를 송수신하는 송수신기를 구비한다. 인코딩된 디지털 신호는 신호 프로세서로부터 공급된 전송 데이터 신호로부터의 샘플 데이터와 클럭 정보를 포함한다.
그러한 통신 시스템의 데이터 전송 효율을 개선하기 위해서는 통신 시스템의 각 노드의 송수신기를 서로 동기화하는 것이 바람직하다. 그러한 동기화를 구현하기 위한 한가지 기술적 방법이 알려져 있다. 그 기술적 방법은, 소정 노드의 송수신기가 신호 프로세서로부터 공급된 전송 데이터 신호로부터 데이터를 샘플링하고, 샘플 데이터를 인코딩함으로써, 인코딩된 디지털 신호가 샘플 데이터와 클럭 정보를 포함하도록 고안된다. 그 다음, 송수신기는 인코딩된 디지털 신호를 통신 버스에 전송한다.
그 시점에, 대체 노드(alternative node)는 버스 통신상의 인코딩된 디지털 신호로부터 클럭 정보를 복구한다. 그 다음, 대체 노드는 스스로 생성한 자기 클럭(self-clock)의 주파수를 분할하여, 클럭 정보에 의해 정의된 클럭과 동기되는 버스 클럭을 생성함으로써, 송수신기가 버스 클럭으로 동작할 수 있게 한다.
최근에, 전력 소모 및 비용의 절감 차원에서, 이들 통신 시스템의 각 노드의 송수신기는 적당한 정확성의 주파수(클럭 주파수)를 가진 자기 클럭을 생성하는 단순한 오실레이터, 예를 들어, 링 오실레이터를 구비하는 경우도 있다.
통상적으로, 각 노드의 신호 프로세서는 송수신기가 생성한 버스 클럭과는 다른 그 자신의 클럭으로 동작하도록 구성된다. 이것이 의미하는 것은, 각 노드의 신호 프로세서가 송수신기와 비동기라는 것이다.
즉, 버스 클럭으로 동작하는 노드의 송수신기는, 그 버스 클럭으로 신호 프로세서가 동작했을 경우에, 대응하는 비트의 기간(폭)의 중간 지점에서 신호 프로세서로부터 공급된 전송 데이터의 각 비트(1 또는 0)(프로셋 하이 신호 레벨(preset high signal level) 또는 프리셋 로우 신호 레벨(preset low signal level)에 대응함)를 샘플링할 수 있었다.
그러나, 신호 프로세서가 송수신기에 의해 생성된 버스 클럭과는 다른 그 자신의 클럭으로 동작하기 때문에, 그 송수신기는 신호 프로세서로부터 공급된 전송 데이터 신호로부터의 비트(신호 레벨)를 0에서 1로 또는 1에서 0으로의 천이시에 샘플링한다. 이에 따라, 송수신기는 신호 프로세서로부터 공급된 전송 데이터 신호의 신호 레벨(각 비트)을 오인할 수 있다.
각 노드의 신호 프로세서가 송수신기와 비동기되기 때문에, 송수신기에 의해 생성된 버스 클럭의 주기(각 사이클의 길이)와 신호 프로세서로부터 공급된 전송 데이터 신호의 각 비트의 기간(duration)간에 차이가 존재한다. 그 차이로 인해, 전송 데이터 신호의 각 비트의 기간내의 샘플림 포인트의 위치는, 샘플링 동안 대응하는 기간의 중간 지점과 같은 사전 결정된 위치로부터 점차적으로 시프트될 수 있다. 이러한 이유 때문에, 전송 데이터 신호의 시작 비트의 기간내의 샘플링 포인트의 위치를 폭의 중심 또는 그 근처로 결정하기 위한 요건이 존재한다.
특히, 각 노드의 송수신기가 적당한 정확성의 주파수를 가진 자기 클럭을 생성하는 간단한 오실레이터를 구비하는 경우, 아마도 송수신기에 의해 생성된 버스 클럭의 반복 주기와 신호 프로세서로부터 공급된 전송 데이터 신호의 각 비트의 기간간에는 차이가 존재할 것이다. 이에 따라, 전송 데이터 신호의 시작 비트의 기간내의 샘플링 포인트의 위치를 그 기간의 중간 또는 그 근처로 결정할 필요성이 커진다.
상술한 상황의 견지에서, 본 발명의 일 측면은, 데이터 및 클럭 정보를 포함하도록 인코딩된 디지털 신호를 송수신하되, 상술한 문제점 및 요건들 중 적어도 하나를 해결하도록 고안된 송수신기를 제공하고자 한다.
특히, 본 발명의 다른 측면은 전송 데이터 신호의 신호 레벨, 즉 비트의 오인을 줄일 수 있는, 다시 말해, 전송 데이터 신호의 신호 레벨을 적절히 샘플링할 수 있는 송수신기를 제공하기 위한 것이다.
본 발명의 또 다른 측면은 데이터 및 클럭 정보를 포함하도록 인코딩된 디지털 신호를 송수신하되, 전송 데이터 신호의 시작 비트의 기간내의 샘플링 포인트의 위치를 그 기간의 중간 또는 중간 근처로 결정하기 위한 필요성을 충족시킬 수 있는 송수신기를 제공하기 위한 것이다.
본 발명의 예시적인 제 1 측면에 따르면, 통신 버스를 통해 제 1 클럭의 정보를 포함하도록 인코딩된 디지털 신호를 전송하는 송수신기가 제공된다. 그 송수신기는 제 1 클럭과 동기된 제 2 클럭을 생성하도록 구성된 클럭 생성기를 포함한다. 제 2 클럭은 디지털 신호의 한 비트의 기간에 대응하는 주기를 가진다. 송수신기는, 제 1 전송 데이터가 제 2 클럭과 비동기된 채 송수신기에 공급될 때, 시작 타이밍으로서 제 1 전송 데이터의 시작 데이터를 검출하고, 시작 타이밍에 응답하고 제 1 클럭에 기초하여 샘플링 타이밍들을 생성하도록 구성된 샘플링 타이밍 생성기를 포함한다. 그 샘플링 타이밍들은 각각이 제 2 클럭의 주기에 대응하도록 정의된 간격을 가지며, 그 샘플링 타이밍들에 있어서의 제 1 샘플링 타이밍은 시작 타이밍으로부터 이격된다. 송수신기는 각 샘플링 타이밍에서 제 1 전송 데이터를 샘플링하여, 제 2 클럭과 동기된 제 2 전송 데이터를 생성하도록 구성된 샘플링 모듈을 포함한다. 송수신기는 제 2 전송 데이터를 디지털 신호로 인코딩하고 그 디지털 신호를 통신 버스를 통해 전송하도록 구성된 전송기를 포함한다.
본 발명의 예시적인 제 1 측면에서는, 샘플링 타이밍들의 각 간격이 제 2 클럭의 주기에 대응하도록 정의되고, 샘플링 타이밍들에 있어서의 제 1 샘플링 타이밍이 시작 타이밍과 이격되도록 제 1 전송 데이터에 대한 샘플링 타이밍을 결정한다. 이에 따라, 제 1 전송 데이터내의 각 비트의 레벨 천이와, 그 대응하는 비트의 대응하는 샘플링 타이밍간에 간격이 존재하게 된다. 따라서, 제 1 전송 데이터의 비트들을 적절하게 샘플링할 수 있게 된다.
본 발명의 예시적인 제 1 측면의 제 1 구조 유형에 있어서, 클럭 생성기는 제 2 클럭의 각 사이클내의 샘플링 에지(sampling edge)로서 N(N은 3 이상의 정수) 레벨 천이 에지를 가지는 배수 클럭(multiplication clock)을 생성하도록 구성되고, 샘플링 타이밍 생성기는, 시작 타이밍의 검출 이후 배수 클럭의 (P + k·N)번째 샘플링 에지가 발생할 때마다 샘플링 타이밍들 중 대응하는 타이밍을 생성한다. 여기서, N이 홀수일 때 P는 (N+1)/2이고, N이 짝수일 때 P는 (N+2)2이며, k는 0,1,2..., KLIM이고, KLIM은 전송 데이터의 길이에 기초하여 결정되는 k의 상한이다.
샘플링 에지와 같은 레벨 천이 에지로서, 배수 클럭의 상승 에지(rising edge), 배수 클럭의 하강 에지(falling edge) 또는 배수 클럭의 상승 및 하강 에지가 이용된다. 배수 클럭의 상승 에지와 하강 에지가 샘플링 에지로서만 이용되는 경우, 곱셈 에지는 주파수에 있어서의 제 2 클럭의 N배수, 다시 말해, 주기에 있어서 제 2 클럭의 N약수배이다. 그렇지 않고, 배수 클럭의 상승 에지와 하강 에지 모두가 샘플링 에지로서 이용되면, 배수 클럭은 주파수에 있어서 제 2 클럭의 2N배, 다시 말해, 주기에 있어서 제 2 클럭의 2N 약수배이다.
본 발명의 예시적인 제 1 측면의 제 1 구조적 유형의 구성에서는, (P-1)/N과 제 1 전송 데이터의 한 비트의 기간을 승산한 값에서부터 P/N과 제 1 전송 데이터의 한 비트의 기간을 승산한 값까지의 범위내에서 제 1 전송 데이터의 시작 데이터의 제 1 샘플링 타이밍을 결정한다. 이에 따라, 제 1 전송 데이터내의 각 비트의 레벨 천이와 대응하는 비트의 대응하는 샘플링 타이밍간의 마진이 확실히 보장되며, 심지어 최악의 경우에도, 그 마진은 제 1 전송 데이터의 대응하는 비트의 기간의 1/4과 동일한 길이를 가진다. 그러므로, 제 1 전송 데이터의 비트들을 적절하게 샘플링할 수 있게 되고, 제 1 전송 데이터의 비트들에 대한 오인(misrecognition)을 줄일 수 있게 되어, 샘플링된 제 1 전송 데이터의 신뢰성을 개선한다.
본 발명의 예시적인 제 1 측면의 제 1 구조적 유형에 있어서, 샘플링 타이밍 생성기는 주기 카운트값으로서 제 1 클럭에 따라 디지털 신호의 한 비트의 기간을 카운트하도록 구성된 카운터를 더 포함한다. 샘플링 타이밍 생성기는, 카운터에 의해 디지털 신호의 한 비트의 기간에 대응하는 주기 카운트 값의 1/2에 도달하는 타이밍에서 제 1 샘플링 타이밍을 생성하고, 제 1 샘플링 타이밍의 생성 이후에는, 카운터에 의해 디지털 신호의 한 비트의 기간에 대응하는 주기 카운트 값이 도달할 때 마다 잔여 샘플링 타이밍들 중 대응하는 타이밍을 생성하도록 구성된다.
본 발명의 예시적인 제 2 측면의 제 2 구조적 유형의 구성에 의해, 제 1 전송 데이터내의 각 비트의 레벨 천이와 대응하는 비트의 대응하는 샘플링 타이밍간의 마진이 확실히 보장되며, 그 마진은 제 1 전송 데이터의 대응하는 비트의 기간의 1/2과 실질적으로 동일한 길이를 가진다. 그러므로, 본 발명의 예시적인 제 1 측면의 첫 번째 예시와 마찬가지로, 샘플링된 제 1 전송 데이터의 신뢰성을 개선할 수 있으며, 그에 따라, 제 2 클럭의 주기와 제 1 전송 데이터의 각 비트의 기간간의 차이로 인해 발생되는 제 1 전송 데이터의 비트들의 오인을 줄일 수 있다.
본 발명의 예시적인 제 1 실시 예의 제 3 구조적 유형에 있어서, 샘플링 타이밍 생성기는 주기 카운트 값으로서 제 1 클럭에 따른 디지털 신호의 한 비트의 기간을 카운트하도록 구성된 카운터와, 타겟 에지에서 시작 타이밍간의 간격을 생성하도록 구성된 오프셋-값 생성기를 포함하되, 타겟 에지는 시작 타이밍 직전에 발생하는 제 2 클럭에 있어서의 레벨-천이 에지이다. 샘플링 타이밍 생성기는 카운터에 의해 디지털 신호의 한 비트의 기간에 대응하는 주기 카운트 값의 1/2이 도달하는 타이밍에서 제 1 샘플링 타이밍을 생성하고, 제 1 샘플링 타이밍의 생성 이후에는, 타겟 에지에 대응하는 제 2 클럭의 대응하는 천이 에지의 발생에 응답하여 카운터에 의해 오프셋 값과 사이클 카운트 값의 절반의 합이 도달할 때마다 잔여 샘플링 타이밍들 중 대응하는 타이밍을 생성하도록 구성된다.
본 발명의 예시적인 제 1 측면의 제 3 구조적 유형의 구성에서는, 제 1 전송 데이터내의 각 비트의 레벨 천이와 대응하는 비트의 대응하는 샘플링 타이밍간의 마진이 본 발명의 예시적인 제 1 측면의 제 2 예시와 동일한 마진이 되도록 보장한다. 따라서, 제 2 예시와 동일한 기술적 효과를 달성할 수 있다.
본 발명의 예시적인 제 2 측면에 따르면, 통신 시스템에 제공된다. 그 통신 시스템은 통신 버스와, 그 버스를 통해 서로 간에 통신 가능하게 결합된 다수의 노드를 포함한다. 다수의 노드 각각은 통신 버스를 통해 제 1 클럭의 정보를 포함하도록 인코딩된 디지털 신호를 전달하는 송수신기를 포함한다. 그 송수신기는 제 1 클럭과 동기된 제 2 클럭을 생성하도록 구성된 클럭 생성기를 포함한다. 제 2 클럭은 통신 버스상의 디지털 클럭의 한 비트의 기간에 대응하는 주기를 가진다. 송수신기는, 제 1 전송 데이터가 제 2 클럭과 비동기된 채 송수신기에 공급될 때, 시작 타이밍으로서 제 1 전송 데이터의 시작 데이터를 검출하고, 시작 타이밍에 응답하여 샘플링 타이밍을 생성하도록 구성된 샘플링 타이밍 생성기를 포함한다. 샘플링 타이밍은 각각이 제 2 클럭의 주기에 대응하도록 정의된 간격을 가진다. 그 샘플링 타이밍들에 있어서의 제 1 샘플링 타이밍은 시작 타이밍으로부터 이격된다. 송수신기는 각 샘플링 타이밍에서 제 1 전송 데이터를 샘플링하여, 제 2 클럭과 동기된 제 2 전송 데이터를 생성하도록 구성된 샘플링 모듈을 포함한다. 송수신기는 제 2 전송 데이터를 제 1 클럭의 정보를 포함하는 디지털 신호로 인코딩하고 그 디지털 신호를 통신 버스를 통해 전송하도록 구성된 전송기를 포함한다.
본 발명의 예시적인 제 2 측면에서는, 샘플링 타이밍들의 각 간격이 제 2 클럭의 주기에 대응하도록 정의되고, 샘플링 타이밍들에 있어서의 제 1 샘플링 타이밍은 시작 타이밍으로부터 이격되도록, 제 1 전송 데이터에 대한 샘플링 타이밍들을 결정한다. 이에 따라, 제 1 전송 데이터내의 각 비트의 레벨-천이와, 그 대응하는 비트의 대응하는 샘플링 타이밍간에 간격이 존재하게 된다. 따라서, 제 1 전송 데이터의 비트들을 적절하게 샘플링할 수 있게 된다.
본 발명의 여러 측면의 상술한 및/또는 다른 특징, 및/또는 장점은 첨부된 도면과 함께 이하의 설명으로부터 추가로 알게 될 것이다. 본 발명의 여러 측면은 다른 특징 및/또는 장점이 있다면, 그것들을 포함하거나 배제할 수 있다. 또한, 본 발명의 여러 측면은 다른 실시 예의 하나 이상의 특징이 있다면 그 특징들을 조합할 수 있다. 특정 실시 예의 특징에 대한 설명 및/또는 장점이 다른 실시 예 또는 청구범위를 제한하는 것으로 이해되어서는 안 된다.
따라서, 본 발명은 전송 데이터 신호의 신호 레벨, 즉 비트의 오인을 줄일 수 있는, 다시 말해, 전송 데이터 신호의 신호 레벨을 적절히 샘플링할 수 있는 효과가 있다.
본 발명의 다른 측면은 첨부된 도면을 참조하여 실시 예에 대한 이하의 설명으로부터 명백해질 것이다.
도 1은 본 발명의 제 1 실시 예에 따른 통신 시스템의 전체 구조의 예시를 개략적으로 도시한 블럭도이다.
도 2a는 도 3에 도시된 통신 버스에 이용되는 코드 신호의 예시를 개략적으로 도시한 도면이다.
도 2b는 통신 버스를 통해 통신할 수 있는 프레임 구조의 예시를 개략적으로 도시한 도면이다.
도 2c는 도 3에 도시된 신호 프로세스의 UART와 도 3에 도시된 송수신기간에 통신가능한 블럭 데이터를 개략적으로 도시한 도면이다.
도 3은 도 1에 도시된 통신 시스템을 구성하는 마스터 노드와 각 슬래이브 노드의 구조의 예시를 개략적으로 도시한 블럭도이다.
도 4는 도 3에 도시된 타이밍 생성기에 의해 생성된 여러 타이밍 신호를 개략적으로 도시한 타이밍도이다.
도 5는 도 3에 도시된 인코더/디코더의 구조의 예시를 개략적으로 도시한 블럭도이다.
도 6a는 도 5에 도시된 마스터 노드의 인코더의 동작을 개략적으로 도시한 타이밍도이다.
도 6b는 도 5에 도시된 각 슬래이브 노드의 인코더의 동작을 개략적으로 도시한 타이밍도이다.
도 7은 도 5에 도시된 동기화 회로의 구조의 예시를 개략적으로 도시한 블럭도이다.
도 8a는 동기화 회로의 동작에 대한 제 1 예시를 개략적으로 도시한 타이밍도이다.
도 8b는 동기화 회로의 동작의 제 2 예시를 개략적으로 도시한 타이밍도이다.
도 9는 본 발명의 제 2 실시 예에 따른 동기화 회로의 구조의 예시를 개략적으로 도시한 블럭도이다.
도 10은 도 9에 도시된 동기화 회로의 동작의 예시를 개략적으로 도시한 타이밍도이다.
도 11은 본 발명의 제 3 실시 예에 따른 동기화 회로의 구조의 예시를 개략적으로 도시한 블럭도이다.
도 12는 도 11에 도시된 동기화 회로의 동작의 예시를 개략적으로 도시한 타이밍도이다.
이하에서는 첨부된 도면을 참조하여 본 발명의 실시 예를 설명할 것이다. 이들 실시 예에 있어서, 유사한 참조 문자가 부여된 유사한 부분은 중복 설명을 피하기 위해 생략되거나 간략하게 설명된다.
제 1 실시 예
도 1에는 본 발명의 제 1 실시 예에 따른 타겟 자동차로서의 자동차에 설치된 통신 시스템(1)의 전체적인 구조의 예시가 도시된다.
통신 시스템(1)은 다수의 노드(3)와 통신 경로로서의 통신 버스(5)로 구성되며, 다수의 노드(3)는 통신 버스를 통해 서로 통신 가능하게 결합된다. 각 노드(3)는, 예를 들어, 하드웨어 컴퓨팅 단말(hardware computing terminal) 또는 소프트웨어 모듈이다. 제 1 실시 예에 있어서, 노드(3)는 타겟 자동차의 미러, 도어록(door rock), 윈도우(window)등과 같은 자동차 몸체의 일부에 대한 몸체 애플리케이션(애플리케이션 프로그램)을 구동하는 몸체 ECU를 포함한다. 또한, 노드(3)는 자동차의 동작 조건을 평가하고 타겟 자동차의 동작 조건을 제어하는, 조명 장치, 액튜에이터 및 센서와 같은 장치를 포함한다.
도 1을 참조하면, 노드(3)의 몸체 ECU는, 예를 들어, 몸체/와이퍼(wiper) ECU, 시트(seat) ECU, 미러 ECU, 슬라이딩 도어(sliding-door) ECU, 백-도어(back-door) ECU, 광 조절 ECU, 전기 틸트 및 텔레스코프(electric tile and telescopic) ECU등을 포함한다. 노드(3)의 그 장치들은, 예를 들어, 광 스위치(SW), 와이퍼 스위치, 광 센서, 레인 센서(rain sensor)등을 포함한다.
와이퍼 스위치는 통상적으로는 OFF 이고, 타켓 자동차의 드라이버에 의해 스위칭 온(switching on) 될 때 ON으로 바뀌며, 레인 센서는, 예를 들어, 타겟 자동자의 윈드실드(windshield)상의 물방울을 검출하도록 구성된다.
몸체/와이퍼 ECU는 레인 센서와, 자동차 몸체 부분의 와이퍼를 구동하는 와이퍼 액튜에이터에 전기적으로 접속된다. 몸체/와이퍼 ECU는 타겟 자동차의 몸체 부분, 다른 ECU 및 모든 스위치의 전체적인 제어를 실행하고, 특히, 와이퍼 스위치의 ON/OFF 상태 및/또는 레인 센서에 의해 검출된 정보에 따라 와이퍼 액튜에이터가 와이퍼를 활성화 또는 불활성화시키도록 제어한다.
시트 ECU는 타겟 자동차의 각 시트의 위치를 조정하는 액튜에이터에 전기적으로 접속된다. 시트 ECU는 타겟 자동차의 각 시트의 최적 위치를 거기에 저장하여, 각 시트에 대해 액튜에이터를 제어하고, 대응하는 파워-시트 스위치가 동작하면 대응하는 최적 위치로 각 시트의 위치를 조정하도록 구성된다.
적어도 하나의 슬라이딩 도어가 설치된 타겟 자동차내에 슬라이딩 도어 ECU가 설치된다. 특히, 슬라이딩 도어 ECU는, 적어도 하나의 슬라이딩 도어가 닫혀 있는 상태에서 대응하는 도어 스위치가 스위칭되면 타겟 자동차의 적어도 하나의 슬라이딩 도어를 자동적으로 개방하고, 적어도 하나의 슬라이딩 도어가 열려있는 상태에서 대응하는 도어 스위치가 스위칭되면 적어도 하나의 슬라이딩 도어를 자동적으로 폐쇄하는 액튜에이터에 전기적으로 접속된다.
미러 ECU는 타겟 자동차의 적어도 하나의 미러를 조정하는 액튜에이터에 전기적으로 접속된다. 미러 ECU는, 대응하는 스위치가 작동하면, 적어도 하나의 미러를 소정 각도로 조정하도록 적어도 하나의 미러에 대해 액튜에이터를 제어한다.
백 도어가 설치된 타겟 자동차에 백 도어 ECU가 설치된다. 특히, 백 도어 ECU는 백 도어가 닫혀있는 상태에서 대응하는 도어 스위치가 스위칭되면 백 도어를 자동적으로 개방하고, 백 도어가 열려있는 상태에서 대응하는 도어 스위치가 스위칭되면 백 도어를 자동적으로 폐쇄하는 액튜에이터에 전기적으로 접속된다.
타겟 자동차 주변의 대응하는 영역을 조사하는 각 조명 장치를 위한 광 스위치가 제공된다. 광 스위치는 통상적으로 OFF이며, 타겟 자동차의 드라이버에 의해 스위칭 온되면 ON으로 전환된다. 광 센서는 타겟 자동차 전면에서의 조명의 밝기 레벨을 측정하도록 구성된다.
광 제어 ECU는 광 스위치, 광 센서 및 각 조명 장치에 전기적으로 접속되며, 광 센서에 의해 측정된 조명의 밝기 레벨과, 광 스위치들 중 대응하는 스위치의 ON/OFF 상태에 따라 적어도 하나의 조명 장치를 제어하도록 구성된다. 전기 틸트 및 텔레스코프 제어 ECU는 전기적 스티어링(steering)-위치 조정 장치로서 작용하여 타겟 자동차의 스티어링 휠의 틸트 및 텔레스코프를 조정하도록 구성된다.
본 실시 예에 따른 통신 버스(5)는, 하이 및 로우 전압 레벨과 같은, 하이 및 로우 신호 레벨을 가질 수 있다. 통신 버스(5)의 고안은, 제 1 신호의 하이 레벨 부분과 제 2 신호의 로우 레벨 부분이 통신 버스(5)에 동시에 출력되면, 로우 레벨 부분이 통신 버스(5)상에 나타나도록, 다시 말해, 버스 중재에서 제 2 신호가 승리하도록(win)(제 1 신호가 패배하도록) 이루어진다.
이하에서는, 도 2a를 참조하여 통신 버스(5)를 통해 통신하는데 이용되는 코드 신호의 예시를 설명할 것이다.
도 2a를 참조하면, 제 1 실시 예에 있어서, PWM 코드 신호가 통신 버스(5)를 통해 통신하는 예시적인 코드 신호의 이용된다. PWM 코드 신호는 제 1 및 제 2 PWM 코드 세트로 이루어지며, 제 1 PWM 코드와 제 2 PWM 코드의 각각은 통신 버스(5)를 통해 전송될 데이터의 비트에 대응한다. 제 1 및 제 2 PWM 코드는 서로 다른 사전 설정된 제 1 및 제 2 듀티 사이클을 가지는데, 제 1 듀티 사이클과 제 2 듀티 사이클의 각각은 통신 버스(5)를 통해 전송될 각 데이터 비트의 기간에 대응하는 전체 기간에 대한 로우 신호 레벨 기간의 비율이다. 즉, 제 1 PWM 코드의 제 1 듀티 사이클은 데이터의 비트 0을 나타내고, 제 2 PWM 코드의 제 2 듀티 사이클은 데이터의 비트 1을 나타낸다.
특히, 통신 버스(5)를 통해 전송될 데이터의 비트 0은 논리값 세트 "001"로 구성된 제 1 PWM 코드로서 표명된다. 유사하게, 통신 버스(5)를 통해 전송될 데이터의 비트 1은 논리값 세트"011"로 구성된 제 2 PWM 코드로서 표명된다. 논리값 0은 통신 버스(5)상의 로우 신호 레벨에 대응하고, 논리값 1은 통신 버스(5)상의 하이 신호 레벨에 대응한다. 즉, 제 1 듀티 사이클은 제 2 듀티 사이클보다 크다.
보다 구체적으로, 통신 버스(5)를 통해 전송될 데이터의 비트 0의 첫번째 1/3 기간은 논리값 0(로우 신호 레벨) 기간에 대응하고, 다음 1/3은 논리값 0의 기간에 대응하며, 마지막 1/3은 논리값 1(하이 신호 레벨)의 기간에 대응한다. 유사하게, 통신 버스(5)를 통해 전송될 데이터의 비트 1의 첫번째 1/3 기간은 논리값 0의 기간에 대응하고, 다음 1/3은 논리값 1의 기간에 대응하며, 마지막 1/3은 논리값 1의 기간에 대응한다.
제 1 PWM 코드와 제 2 PWM 코드를 각각 도미넌트 코드(dominant code)(도미넌트 비트 0) 및 리세시브 코드(recessive code)(리세시브 비트 1)라 지칭함을 알아야 한다.
노드(3)로부터 전송된 신호의 도미넌트 코드가 통신 버스(5)상의 대체 노드(alternative node)(3)로부터 전송된 다른 신호의 리세시브 코드와 충돌하면, 버스 중재에서 도미넌트 노드가 승리(win)하는 반면, 대체 노드(3)는 패배한다(lose). 예를 들면, 본 실시 예에 따른 통신 시스템(1)은 CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)에 기초하여 구성된다. 따라서, 통신 버스(5)의 상태에 기초하여 버스 중재의 결과를 포착하면, 대체 노드는 신호의 전송을 중지시킴으로써, 버스 중재에서 승리한 노드(3)가 연속적으로 신호를 보내도록 한다.
본 실시 예에 따른 노드(3)는 사전 선택된 마스터-슬래이브 프로토콜에 따라 동작한다. 마스터-슬래이브 프로토콜에 있어서, 마스터 노드로서의 한 노드(3)가 슬래이브 노드로서의 다른 노드(3)와 통신하도록 고안되는데, 이러한 통신은 각각이 통신 버스(5)를 통해 송수신될 데이터 단위(a unit of data)인 프레임들을 이용하여 이루어진다. 도 2b는 본 실시 예에 따른 프레임의 구조를 개략적으로 도시한 도면이다.
도 2b에 도시된 바와 같이, 프레임 또는 메시지 프레임은 마스터 노드(3)가 전송을 허용한 데이터를 지정하는 헤더(H)와, 그 헤더에 의해 지정된 데이터를 포함하는 가변 길이 응답으로 구성된다. 프레임의 그 헤더는 마스터 노드(3)가 전송을 허용한 데이터의 ID를 포함한다. 그러한 프레임은, 헤더의 값이 낮을 수록 버스 중재에서 프레임이 승리할 가능성이 높아지도록 고안된다. 프레임의 응답은, 적어도 전송될 대응 데이터, 그 데이터의 크기(대응하는 응답의 크기)를 나타내는 정보 및, 예를 들어, 데이터내의 에러를 체크하기 위한 에러 검출 코드와 같은 CRC(Cyclic Redundancy Check) 코드를 포함한다. 그 결과, 데이터는 통신 버스(5)를 통해 헤더 및 응답 세트를 포함하는 프레임(메시지 프레임)으로서 전송된다. 통신 버스(5)상의 한 프레임마다 하나의 슬롯이 할당되는데, 그 슬롯은 한 프레임을 통과시키는데 필요하다.
ID는 데이터에 할당된 번호로서, 그 데이터의 고유 식별을 위해 전송이 허용됨을 알아야 한다.
다음, 각 노드(3)의 전체 구조에 대한 예시, 즉, 마스터(3a) 및 슬래이브(3b)의 각각을 설명하겠다.
각 노드(3)는 웨이크업 모드(wakeup mode) 또는 슬립 모드(sleep mode)에서 동작하도록 고안된다. 웨이크업 모드는, 각 노드(3)가 대응하는 노드에 할당된 모든 기능(작업)을 수행할 수 있는 동작 모드이고, 슬립 모드는, 각 노드(3)가 전원 소비를 줄이기 위해 일부 기능(작업)을 수행할 수 없는 동작 모드이다.
제 1 실시 예에 있어서, 노드(3)에 있는 몸체/와이퍼 ECU는 마스터 노드(마스터)(3a)로서 작용하고, 다른 노드(3)는 슬래이브 노드(슬래이브)(3b)로서 작용한다.
마스터-슬래이브 프로토콜에 있어서, 마스터(3a)는 제 1 통신 모드(정규 통신 모드)로 동작하여, 대응하는 슬래이브(3b)가 전송하도록 허용된 데이터의 조각들을 연속적으로 지정하도록 헤더를 연속적으로 전송하며, 그에 따라 데이터의 대응하는 그 조각들을 전송하도록 요청받은 타켓 슬래이브(3b)로서 대응하는 슬래이브(3b)가 지정된다. 다시 말해, 마스터(3a)는 슬래이브(3)의 폴링(polling)을 수행한다. 헤더에 의해 지정된 각 타겟 슬래이브(3b)는 제 1 통신 모드로 동작하여 응답(데이터)을 전송한다.
마스터-슬래이브 프로토콜에 있어서, 각 슬래이브(3b)는 제 2 통신 모드(이벤트(event) 통신 모드)로 동작하여 마스터(3a)로부터의 지시에 무관하게 능동적으로 데이터를 전송한다.
이하에서는, 도 3을 참조하여, 마스터(3a)의 구조 및 각 슬래이브(3b)의 구조에 대한 예시를 설명하겠다.
마스터(3a)는 신호 프로세서(10)와 송수신기(20)로 구성된다. 신호 프로세서(10)는 송수신기(20)와 통신 가능하며, 통신 버스(5)를 통해 마스터(3a)와 다른 노드(3)간의 통신에 의해 획득한 정보에 기초하여 거기에 할당된 작업을 실행하도록 구성된다. 송수신기(20)는 통신 버스(5)와 접속되며, 송수신기(20)의 내부 클럭(CK)과 비동기화된 채로 신호 프로세서(10)로부터 공급된 NRZ(Non-Return to ZERO) 코드 기반 전송 데이터(TXD)를 PWM 코드 기반 전송 데이터(TX)로 인코딩하여 통신 버스(5)에 그 전송 데이터(TX)를 출력하도록 구성된다. 또한, 송수신기(20)는 통신 버스(5)로부터 PWM 코드 기반 데이터(RX)를 수신하고, 수신된 데이터(RX)를 NRZ 코드 기반 수신 데이터(RXD)로 디코딩하여 디코딩된 데이터(RXD)를 신호 프로세서(10)로 공급한다.
신호 프로세서(10)는, 예를 들어, CPU, 비 휘발성 메모리를 포함하는 저장 매체, IO(입력 및 출력) 인터페이스등으로 구성된 통상적인 마이크로컴퓨터 회로로 고안된다. 특히, 신호 프로세서(10)는 UART(Univesal Asynchronous Receiver Transmitter)(11) 및 오실레이터(OSC)(12)로 구성된다.
UART(11)는, 예를 들어, 20Kbps와 같은 사전 설정된 데이터 전송 레이트(비트 레이트)로 시리얼 시작-중지 통신(시리얼 비동기 통신)을 실행하도록 구성된다. UART(11)는 하드웨어 회로 또는 소프트웨어 모듈로 고안될 수 있다. 오실레이터(12)는 동작 클럭을 생성하도록 구성되며, 그 동작 클럭으로 신호 프로세서(1)가 동작하여 UART(11)의 비트 레이트와 실질적으로 동일한 사전 설정된 레이트로 내부 클럭(CK)을 생성하고, 송수신기(20)에 내부 클럭(CK)을 공급한다.
일 실시 예에 있어서, 오실레이터(12)는 석영 크리스털 오실레이터를 이용하여 고안되며, 그에 따라, 안정 주파수를 가진 이들 클럭 신호를 생성할 수 있게 된다. 신호 프로세서(10)는 웨이크업(wakeup) 모드나 슬립(sleep) 모드로 동작하도록 고안되며, 대응하는 노드(마스터(3a))의 현재 동작 모드를 나타내는 모드 신호(MD)를 송수신기(20)에 공급한다.
도 2c에는 UART(11)로부터 전송된 데이터(TXD)와 그에 의해 수신된 데이터(RXD)의 각각의 구조에 대한 예시가 도시된다. 도 2c를 참조하면, UART(11)로부터의 데이터(TXD)와 그에 의해 수신된 데이터(RXD)의 각각은 블럭 데이터로서 고안되며, 그에 따라 데이터(TXD) 또는 데이터(RXD)는 데이터-블럭 단위로 전송되거나 수신된다. 데이터(TXD 또는 RXD)의 블럭은 로우 신호 레벨을 가진 시작 비트와 구성 가능 개수의 데이터 비트(본 실시 예에서는 8비트), 하이 신호 레벨을 가진 하나 이상의 정지 비트(본 실시 예에서는 하나의 정지 비트)로 구성된다. 즉, 본 실시 예에 따른 데이터(TXD)와 데이터(RXD)의 각각은 10비트-블럭 데이터로서 고안된다. 데이터(TXD)와 데이터(RXD)의 각각은, LSB(Least Significant Bit)가 대응하는 데이터(TXD) 또는 데이터(RXD)의 주요부로서 8비트 데이터의 첫번째 비트에 할당되고, MSB(Most Significant Bit)가 그의 마지막 비트에 할당되도록 구성된다.
본 실시 예에 있어서, 상술한 프레임의 헤더는 단일 블럭 데이터로 구성되고, 각 데이터(TXD/RXD)의 8비트 데이터 중 7비트가 ID로 설정되며, 8비트 데이터 중 남아있는 한 비트는 패리티 비트(parity bit)로서 이용된다. 노드(3)로부터 전송될 응답은 사전 설정된 개수, 예를 들어, 하나 이상의 블럭 데이터의 조각(piece)들로 구성된다. 크기 정보는 응답에 있어서 제 1 블럭내에 저장될 수 있다.
도 3을 참조하면, 송수신기(20)는 타이밍 생성기(21)와, 인코더/디코더(22)와, 전송 버퍼(23)와, 수신 버퍼(24)와, 모드 제어기(25)로 구성된다.
타이밍 생성기(21)는 링 오실레이터로 구성된 단순한 오실레이터(21)를 구비하며, 링 오실레이터는 링 형태로 접속된 다수의 인버터로 구성된다. 단순한 오실레이터(21)는 계수 클럭(CCK)을 생성하도록 구성된다. 타이밍 생성기(21)는 계수 클럭(CCK)을 분할하여 신호 프로세서(10)로부터 공급된 내부 클럭(CK)과 각각으로 동기된 여러 타이밍 신호를 생성한다.
인코더/디코더(22)는 타이밍 생성기(21)에 의해 생성된 타이밍 신호에 따라 데이터(전송 데이터)(TXD)를 인코딩하고, 타이밍 생성기(21)에 의해 생성된 타이밍 신호에 따라 수신 데이터(RXD)를 디코딩하도록 구성된다.
전송 버퍼(23)는, 인코딩된 전송 데이터(TX)로서, 인코더/디코더(22)에 의해 인코딩된 데이터를 통신 버스(5)에 전송하도록 구성된다.
수신 버퍼(24)는 통신 버스(5)상의 데이터(신호)를 수신 데이터(RX)로서 포획하도록 구성된다.
모드 제어기(25)는 신호 프로세서(10)로부터 공급된 모드 신호(MD)에 따라 타이밍 생성기(21)와 인코더/디코더(22)의 동작을 제어하도록 구성된다.
상술한 바와 같이, 통신 버스(5)상에서의 버스 중재를 실행하기 위해, 통신 버스(5)와 전송 버퍼(23)의 구조는, 예를 들어, 단일 와이어, 공통 개방-콜렉터 회로(common open-collector circuit) 및 풀-업 레지스터(full-up resistor)를 이용하여 구성될 수 있다. 예를 들어, 수신 버퍼(24)는 통상의 비교기로 고안되며, 통신 버스(5)상의 레벨이 프리셋 임계 레벨보다 높을 경우에는 하이 신호 레벨을 출력하고, 통신 버스(5)상의 레벨이 프리셋 임계 레벨보다 낮을 경우에는 로우 신호 레벨을 출력하도록 구성된다.
모드 제어기(25)는 타이밍 생성기(21)와 인코더/디코더(22)의 각각에 제어 신호를 출력하여, 모드 신호(MD)가 웨이크업 모드를 나타내면, 타이밍 생성기(21)와 인코더/디코더(22)의 각각을 인에이블하고, 모드 신호(MD)가 슬립 모드를 나타내면, 타이밍 생성기(21)의 타이밍 신호의 생성을 디스에이블하도록 구성된다.
도 4에는 타이밍 생성기(21)에 의해 생성된 여러 타이밍 신호를 개략적으로 도시한 타이밍도가 도시된다. 본 실시 예에 있어서, 계수 클럭(CCK)은 내부 클럭(CK)보다 주파수가 훨씬 높다.
예를 들어, 타이밍 생성기(21)는 오실레이터(21a)에 추가하여, 카운터(21b)와 분할기(21c)로 구성된다. 카운터(21b)는 내부 클럭(CK)의 인접하는 하강 에지(하이-로우 천이 에지)의 간격의 길이, 즉, 오실레이터(21a)에 의해 생성된 계수 클럭(CCK)에 따른 내부 클럭(CK)의 각 사이클의 길이를 측정하도록 구성된다. 분할기(21c)는 각각이 내부 클럭(CK)의 i(i=1,2,…)번째 사이클의 길이를 나타내는, 즉, 내부 클럭(CK)의 주기를 나타내는 카운터(21b)의 주기 카운트값(Ci)을 분할하여, 내부 클럭(CK)과 동기되는 여러 타이밍 신호를 생성하도록 구성된다.
특히, 카운터(21b)는, 내부 클럭(CK)의 각 i번째 사이클의 하강 에지와 실질적으로 동기되는 계수 클럭(CCK)의 펄스에 응답하여, 예를 들어, 0과 같은 초기값에서 부터 주기 카운트 값(Ci)의 카운트 업(count-up)을 시작하고, 내부 클럭(CK)의 대응하는 i번째 사이클의 하강 에지(로우-하이 천이 에지)와 실질적으로 동기되는 계수 클럭(CCK)의 펄스에 응답하여 주기 카운트 값(Ci)의 카운트 업을 중지하고 주기 카운트 값(Ci)을 초기값으로 리셋한다.
분할기(21c)는 내부 클럭(CK)의 각 i번째 사이클마다 주기 카운트 값(Ci)의 리셋 직전의 카운트-업의 중지시에 카운터(21b)의 주기 카운트 값(Ci)을 분할하여 내부 클럭(CK)과 동기된 여러 타이밍 신호를 생성한다.
본 실시 예에 있어서, 타이밍 생성기(21)는 이하에 설명할 여러 타이밍 신호로서 여러 클럭을 생성한다. 여러 클럭의 각각은 내부 클럭(CK) 주기의 정약수(integer multiple)인 주기를 가진다. 다시 말해, 분할기(21c)는 내부 클럭(CK)의 사이클마다 상승 에지 또는 하강 에지의 개수를 가진 각 클럭들을 생성하는 주파수 승산기로서 작용한다.
도 4를 참조하면, 타이밍 생성기(21)는 버스 클럭(BCK)과, 샘플링 클럭(SCK)과, 리세시브-생성 클럭(RCK)과, 도미넌트-생성 클럭(DCK)을 생성한다. 각 클럭은 주기적(사이클) 펄스(펄스형 웨이브)로 구성된 신호이다.
버스 클럭(BCK)은 통신 버스(5)를 통해 전송된 신호의 비트(리세시브 또는 도미넌트 비트) 기간에 대응하는 주기이다.
특히, 타이밍 생성기(21)는 버스 클럭(BCK)을 생성함으로써, 버스 클럭(BCK)의 (i+1) 사이클에 대한 버스 클럭(BCK)의 인접하는 하강 및 상승 에지로 된 각 쌍들간의 간격의 길이가 내부 클럭(CK)의 i번째 사이클동안의 카운터(21b)의 주기 카운트 값(Ci)의 절반으로 설정되도록 한다. 주기 카운트 값(Ci)은 내부 클럭(CK)의 i번째 사이클의 길이를 나타낸다. 따라서, 버스 클럭(BCK)은 내부 클럭(CK)의 반복 주기의 절반에 대응하는 50% 듀티 사이클을 가진다.
보다 구체적으로, 타이밍 생성기(21)는 버스 클럭(BCK)을 생성함으로써, 버스 클럭(BCK)의 각 사이클의 하강 에지가 내부 클럭(CK)의 대응하는 사이클의 하강 에지와 실질적으로 동기되고, 버스 클럭(BCK)의 각 사이클의 하강 에지와 그의 대응하는 사이클의 상승 에지간의 간격이 내부 클럭(CK)의 대응하는 사이클의 절반으로 설정되도록 한다.
예를 들어, 도 4를 참조하면, 타이밍 생성기(21)는 내부 클럭(CK)의 i번째 사이클의 하강 에지와 실질적으로 동기된 버스 클럭(BCK)의 i+1번째 사이클의 하강 에지를 생성하고, 버스 클럭(BCK)의 i+1번째 상승 에지를 생성함으로써, 버스 클럭(BCK)의 i+1번째 하강 에지와 상승 에지간의 간격이 내부 클럭(CK)의 i번째 사이클에 대한 카운터(21b)의 주기 카운트 값(Ci)의 절반(1/2)과 일치하도록 한다.
또한, 타이밍 생성기(21)는 샘플링 클럭(SCK)을 생성함으로써, 샘플링 클럭(SCK)의 한 사이클의 상승 에지가 내부 클럭(CK)의 대응하는 사이클의 하강 에지에 대응하는 버스 클럭(BCK)의 대응하는 사이클의 하강 에지와 실질적으로 동기되도록 하고, 샘플링 클럭(SCK)의 한쌍의 인접하는 상승 에지들 각각의 간격, 즉, 샘플링 클럭(SCK)의 각 사이클의 길이가 내부 클럭(CK)의 i번째 사이클 동안의 카운터(21B)의 주기 카운트 값(Ci)의 1/4로 설정되도록 한다. 주기 카운트 값(Ci)은 내부 클럭(CK)의 i번째 사이클의 길이를 나타낸다. 따라서, 샘플링 클럭(SCK)은 내부 클럭(CK)의 주기의 1/4에 대응하는 25% 듀티 사이클을 가진다.
다시 말해, 샘플링 클럭(SCK)은 버스 클럭(BCK))(내부 클럭(CK))의 사이클마다 4개의 상승 에지를 가진다.
예를 들어, 도 4를 참조하면, 타이밍 생성기(21)는 샘플링 클럭(SCK)을 생성하며, 그에 따라,
샘플링 클럭(SCK)의 첫번째 사이클의 상승 에지가 내부 클럭(CK)의 대응하는 i+1번째 사이클의 하강 에지에 대응하는 버스 클럭(BCK)의 대응하는 i+1번째 사이클의 하강 에지와 실질적으로 동기되고;
샘플링 클럭(SCK)의 첫번째 사이클의 상승 에지와 다음 두번째 사이클의 상승 에지간의 간격이 내부 클럭(CK)의 i번째 사이클동안의 카운터(21b)의 주기 카운트 값(Ci)의 1/4과 일치하며;
샘플링 클럭(SCK)의 두번째 사이클의 상승 에지와 다음 세번째 사이클의 상승 에지간의 간격이 내부 클럭(CK)의 i번째 사이클동안의 카운터(21b)의 주기 카운트 값(Ci)의 2/4와 일치하고;
샘플링 클럭(SCK)의 세번째 사이클의 상승 에지와 다음 네번째 사이클의 상승 에지간의 간격이 내부 클럭(CK)의 i번째 사이클동안의 카운터(21b)의 주기 카운트 값(Ci)의 3/4과 일치하게 된다.
타이밍 생성기(21)는 리세시브-생성 클럭을 생성함으로써, 버스 클럭(BCK)의 대응하는 사이클의 하강 에지에서부터 내부 클럭(CK)의 주기 길이의 1/3을 경과한 시점에 리세시브 생성 클럭(RCK)의 각 사이클의 상승 에지가 발생되도록 한다.
예를 들어, 도 4를 참조하면, 타이밍 생성기(21)는 리세시브-생성 클럭(RCK)을 생성함으로써, 버스 클럭(BCK)의 i+1번째 사이클의 하강 에지에서부터 내부 클럭(CK)의 i번째 사이클동안의 카운터(21b)의 주기 카운트 값(Ci)의 1/3을 경과한 시점에 리세시브 생성 클럭(RCK)의 i+1번째 사이클의 상승 에지가 발생되도록 한다.
타이밍 생성기(21)는 도미넌트 생성 클럭(DCK)을 생성함으로써, 버스 클럭(BCK)의 대응하는 사이클의 하강 에지에서부터 내부 클럭(CK)의 주기 길이의 2/3를 경과한 시점에 도미넌트 생성 클럭(DCK)의 각 사이클의 상승 에지가 발생되도록 한다.
예를 들어, 도 4를 참조하면, 타이밍 생성기(21)는 도미넌트-생성 클럭(DCK)을 생성함으로써, 버스 클럭(BCK)의 i+1번째 사이클의 하강 에지에서부터 내부 클럭(CK)의 i번째 사이클동안의 카운터(21b)의 주기 카운트 값(Ci)의 2/3를 경과한 시점에 도미넌트 생성 클럭(DCK)의 i+1번째 사이클의 상승 에지가 발생되도록 한다.
타이밍 생성기(21)는 오실레이터(21a)를 활성화시켜, 대응하는 노드(마스터(3a))의 동작 모드가 웨이크업 모드일 경우 모드 제어기(25)로부터 공급된 지시에 따라 계수 클럭(CCK)을 생성하고, 모드 신호(MD)가 슬립 모드를 나타내는 경우 타이밍 생성기(21)를 디스에이블하도록 구성됨을 알아야 한다.
다음, 이하에서는 도 5를 참조하여, 송수신기(20)의 인코더/디코더(22)의 예시적인 구조를 설명하겠다.
도 5를 참조하면, 인코더/디코더(22)는 동기화 회로(SYNC)(26)와, 인코더(27)와, 디코더(28)와, 비트 중재기(29)로 구성된다. 동기화 회로(26)는 신호 프로세서(10)로부터 공급된 NRZ 코드 전송 데이터(TXD)를 타이밍 생성기(21)에 의해 생성된 버스 클럭(BCK)에 동기화시켜, 동기화된 전송 데이터(dTXD)를 생성한다.
인코더(27)는 동기화 회로(26)로부터 출력된 동기화된 전송 데이터(dTXD)를 PWM-코드 전송 데이터(TX)로 인코딩하여 인코딩된 전송 데이터(TX)를 전송 버퍼(23)로 공급하도록 구성된다.
디코더(28)는 수신 버퍼(24)를 통해 수신된 PWM 코드 데이터(RX)를 NRZ 코드 수신 데이터(RXD)로 디코딩하여, 디코딩되고 수신된 데이터(RXD)를 신호 프로세서(10)로 공급하도록 구성된다.
비트 중재기(29)는 인코더(27)에 의해 인코딩된 전송 데이터(TX)를 수신 버퍼(24)에 의해 수신된 수신 데이터(RX)와 한 비트씩(bit by bit)(한 코드씩) 비교하고, 그 비교 결과에 기초하여, 통신 버스(5)상에서 전송 데이터(TX)의 제 1 또는 제 2 코드의 신호 레벨이 수신 데이터(RX)의 제 1 또는 제 2 코드의 신호 레벨과 일치하면, 인코더(27)에 충돌 검출 신호(CD)를 출력하도록 구성된다.
예를 들어, 본 실시 예에 따른 비트 중재기(29)는 XOR 게이트로 구성된다. 중재기(29)는 버스 클럭(BCK)의 각 사이클의 상승 에지와 동기되는 타이밍에서 송신 데이터(TX)와 수신 데이터(RX) 각각의 신호 레벨을 샘플링하고, XOR 게이트를 이용하여 전송 데이터(TX)의 샘플링된 신호 레벨과 수신 데이터(RX)의 신호 레벨을 비교한 후, 충돌 검출 신호(CD)의 활성 레벨(하이 또는 로우 신호)이나 불활성 레벨(활성 레벨의 반전 레벨)을 XOR 게이트의 출력으로서 출력한다.
특히, 중재기(29)는 대응하는 노드(마스터(3a))에 의해 생성된 전송 데이터(TX)의 샘플링된 신호 레벨을 다른 노드로부터 출력된 수신 데이터(RX)의 신호 레벨과 비교하고, 전송 데이터(TX)의 샘플링된 신호 레벨이 제 2 코드(리세시브 코드)이고, 수신 데이터(RX)의 샘플링된 신호 레벨이 도미넌트 코드이어서 대응하는 노드(마스터(3a))가 버스 중재에서 패배한 경우에, 충돌 신호(CD)의 활성 레벨을 출력한다. 다른 한편, 중재기(29)는, 전송 데이터(TX)의 샘플링된 신호 레벨이 제 2 코드(리세시브 코드)가 아니어서 대응하는 노드(마스터(3a))가 버스 중재에서 패배하지 않으면, 충돌 신호(CD)의 불활성 레벨을 출력한다.
도 6a에는, 마스터(3a)의 인코더(27)의 동작을 개략적으로 도시한 타이밍도가 도시된다.
도 6a를 참조하면, 동기화된 전송 데이터(dTXD)의 샘플링된 신호 레벨(샘플링된 비트)이 로우 신호 레벨(0비트)(예를 들어, 제 1 사이클 참조)을 나타내면, 인코더(27)는 버스 클럭(BCK)(특히, 대응하는 하강 에지)과 도미넌트-생성 클럭(DCK)을 이용하여, 인코딩된 전송 데이터(TX)의 도미넌트 코드를 생성하고, 그에 따라 동기화된 전송 데이터(dTXD)의 0비트의 기간의 2/3가 로우 신호 레벨로 되고, 0비트 기간의 남아 있는 1/3은 하이 신호 레벨로 된다.
다른 한편, 동기화된 전송 데이터(dTXD)의 샘플링된 신호 레벨(샘플링된 비트)이 하이 신호 레벨(1비트)(예를 들어, 제 2 사이클 참조)이면, 인코더(27)는, 버스 클럭(BCK)(특히, 대응하는 하강 에지)과 리세시브-생성 클럭(RCK)을 이용하여, 인코딩된 전송 데이터(TX)의 제 2 코드(리세시브 코드)를 생성하며, 그에 따라, 동기화된 전송 데이터(dTXD)의 1비트의 기간의 1/3은 로우 신호 레벨로 되고, 1비트 기간의 남아있는 2/3가 하이 신호 레벨로 된다.
신호 프로세서(10)로부터 공급되는 전송 데이터(TXD)가 없다면, 동기화 회로(26)의 입력 및 그에 따른 인코더(27)의 입력은 하이 레벨을 유지하게 되고, 그에 따라, 제 2 비트(리세시브 비트)가 인코더(27)로부터 전송 버퍼(23)를 통해 통신 버스(5)로 계속 공급됨을 알아야 한다.
이하에서는, 제 2 코드(리세시브 코드)에 대응하는 사전 결정된 수의 비트가 통신 버스(5)상에서 계속되는 주기를 IFS(Inter Frame State)라 지칭할 것이며, 만약 IFS가 통신 버스(5)의 현재 상태로서 검출되면, 통신 버스(5)는 유휴 상태이다.
충돌 검출 신호(CD)가 불활성 레벨에서 활성 레벨로 변경되면, 대응하는 동기화된 전송 데이터(dTXD)를 포함하는 블럭 데이터의 신호 처리가 동기화된 전송 데이터(dTXD)의 신호 레벨과 무관하게 완료될 때 까지, 인코더(27)는 제 2 코드(리세시브 코드)를 강제로 출력하도록 구성된다.
디코더(28)는 버스 클럭(BCK)의 각 사이클의 하강 에지에서 수신된 데이터(RX)를 샘플링하여, 샘플링된 결과를 디코딩되고 수신된 데이터(RXD)로서 출력하도록 구성된다.
다음, 이하에서는 도 7을 참조하여, 동기화 회로(26)의 예시적인 구조를 설명할 것이다.
도 7을 참조하면, 동기화 회로(26)는 시작-비트 검출기(51), 다운 카운터(52), OR 게이트(53), 카운트-값 선택기(54), 제 1 래치(55) 및 제 2 래치(56)로 구성된다.
시작-비트 검출기(51)는 신호 프로세서(10)로부터 공급된 전송 데이터(TXD)의 시작 비트의 하강 에지(시작 에지)를 검출하도록 구성된다. 다운 카운터(52)는 샘플링 클럭(SCK)의 상승 에지가 발생할 때마다, 카운트값 선택기(54)로부터 로딩된 카운트 값을 1까지 감소시키도록 구성된다.
OR 게이트(53)는, 시작 비트의 시작 에지의 제 1 타이밍 또는 다운 카운터(52)가 카운트 아웃(count out)(즉, 로딩된 카운트 값이 0에 도달한)한 제 2 타이밍에서 다운 카운터(52)에 카운트 값을 로딩하는 신호를 생성하도록 구성된다. 제 1 타이밍을 "시작 타이밍"이라 하고, 제 2 타이밍을 "CO 타이밍"이라 할 것이다.
카운트-값 선택기(54)는 시작 타이밍과 CO 타이밍에 따른 준비된 카운트 값들 중 하나를 다운 카운터(52)에 로딩될 카운트 값으로 선택하도록 구성된다. 제 1 래치(55)는 CO 타이밍에서 신호 프로세서(10)로부터 공급된 전송 데이터(TXD)의 신호 레벨을 래치하도룩 구성된다. 제 2 래치(56)는 버스 클럭(BCK)의 하강 에지가 발생할 때마다, 제 1 래치(55)의 출력을 래치하도록 구성된다. 동기화 회로(26)는 제 2 래치(56)의 출력을, 동기화된 전송 데이터(dTXD)로서 출력하도록 구성된다.
본 실시 예에 있어서, 준비된 카운트 값 2 및 4가 이용된다. 즉, 카운트-값 선택기(54)는 다운 카운터(52)에 로딩된 카운트 값으로서 아래의 값들을 선택하도록 구성된다:
시작 타이밍의 발생 이후 및 제 1 CO 타이밍의 발생 전에 다운 카운터(52)에 로딩될 카운트 값 2;
제 1 CO 타이밍의 발생 후에 다운 카운터(52)에 로딩될 카운트 값 4;
CO 타이밍이 전송 데이터(TXD)의 블럭의 비트 수(10비트)에 대응하여 10회 발생한 후, 즉, 10번째 CO 타이밍이 발생된 이후, 다운 카운터(52)에 로딩될 카운트 값 2.
특히, 도 8a 및 도 8b에 도시된 바와 같이, 신호 프로세서(10)로부터 공급된 전송 데이터(TXD)의 시작 비트의 시작 에지가 시간 t1에서 시작 비트 검출기(51)에 의해 검출되면, 시간 t1 이후에 샘플링 클럭(SCK)의 제 2 상승 에지가 발생하는 시간 t2에서 제 1 래치(55)는 전송 데이터(TXD)의 신호 레벨(비트)을 샘플링하며, 그에 따라, 제 1 래치(55)의 출력은 시간 t2에서 전송 데이터(TXD)의 샘플링 데이터로 유지된다.
이후, 제 1 래치(55)는, 대응하는 래치 동작(샘플링)이후 샘플링 클럭(SCK)의 제 4 상승 에지가 발생하는 각 시간(t3a1, t3a2, ..., t3a9)에 전송 데이터(TXD)의 신호 레벨(비트)을 샘플링(래치)함으로써 제 1 래치(55)의 출력이 그 시간들(t3a1, t3a2, ..., t3a9)에서 전송 데이터(TXD)의 샘플링 데이터로 유지되도록 한다.
그 시점에, 제 2 래치(56)는 버스 클럭(BCK)의 각 하강 에지에서 제 1 래치(55)의 출력을 샘플링(래치)하여, 버스 클럭(BCK)에 동기된 동기 전송 데이터(dTXD)를 생성한다.
즉, 제 1 래치(55)는, 시작 타이밍의 발생 이후, 샘플링 클럭(SCK)의 (4×k +2)번째 상승 에지(k=0,1,2...,9)가 발생할 때마다, 전송 데이터(TXD)의 신호 레벨을 샘플링(래치)함으로써, 제 1 래치(55)의 출력이 각 샘플링 타이밍에서 전송 데이터(TXD)의 샘플링된 데이터로 유지되도록 한다. 그 다음, 제 2 래치(56)는 버스 클럭(BCK)의 각 하강 에지에서 제 1 래치(55)의 출력을 샘플링(래치)하여, 버스 클럭(BCK)과 동기된 동기 전송 데이터(dTXD)를 생성한다.
도 8a 및 도 8b에 도시된 각 타이밍도는, 동기화 회로(26)의 동작을 보여준다. 도 8a에는 샘플 클럭(SCK)의 상승 에지 직후에 전송 데이터(TXD)의 시간 타이밍이 발생하는 경우 동기화 회로(26)의 예시적인 제 1 동작이 도시되고, 도 8b에는, 전송 데이터(TXD)의 시작 타이밍 직후에 샘플링 클럭(SCK)의 상승 에지가 발생하는 경우 동기화 회로(26)의 예시적인 제 2 동작이 도시된다.
제 1 예시 및 제 2 예시의 각각에 있어서, 전송 데이터(TXD)의 시작 비트의 샘플링 시점에서, 0에서 1로 또는 1에서 0으로의 전송 데이터(TXD)의 천이와, 샘플링 클럭(SCK)의 대응하는 상승 에지에 의해 전송 데이터(TXD)의 대응하는 비트의 샘플링 타이밍간에 간격이 보장된다. 그 간격은 전송 데이터(TXD)의 대응하는 비트 기간(폭)의 1/4과 같거나 그 보다 더 긴 길이를 가진다. 즉, 도 8b에 도시된 바와 같이, 샘플링 클럭(SCK)의 상승 에지가 전송 데이터(TXD)의 시작 타이밍 직후에 나타난다 할지라도, 전송 데이터(TXD)의 대응하는 비트 기간(폭)의 1/4과 같거나 그보다 더 긴 길이를 가진 간격이 보장될 수 있다.
상술한 바와 같이, 마스터(3a)의 송수신기(20)는 그의 동작 모드로서 웨이크업 모드에서 통신 버스(5)에 제 2 코드(리세시브 코드)의 계속적인 출력을 실행하도록 고안되는데, 이것은 신호 프로세서(10)로부터 공급된 전송 데이터(TXD)의 인코딩과 통신 버스(5)로부터의 수신 데이터(RXD)의 디코딩에 부가하여, 신호 프로세서(10)로부터 공급되는 전송 데이터(TXD)가 없더라도 그러하다. 이에 따라, 송수신기(20)는 내부 클럭(CLK)의 클럭 정보를 마스터(3a)와는 다른 노드(3)로 공급하기 위한 클럭 마스트로서 작용할 수 있게 된다.
도 3을 참조하면, 각 슬래이브(3b)는 마스터(3a)와 유사한 방식으로 신호 프로세서(30)와 송수신기(40)로 구성된다. 신호 프로세서(30)는 송수신기(40)와 통신가능하며, 통신 버스(5)를 통해 대응하는 슬래이브(3b)와 다른 노드(3)들 간의 통신에 의해 획득한 정보에 기초하여, 거기에 할당된 작업을 실행하도록 구성된다. 송수신기(40)는 통신 버스(5)에 접속되며, 신호 프로세서(30)로부터 공급된 NRZ 코드 기반 전송 데이터(TXD)를 PWM 기반 전송 데이터(TX)로 인코딩하고, 통신 버스(5)에 전송 데이터(TX)를 출력하도록 구성된다. 또한, 송수신기(40)는 통신 버스(5)로부터 PWM 기반 데이터(RX)를 수신하여, 수신 데이터(RX)를 NRZ 코드 기반 수신 데이터(RXD)로 디코딩하고, 디코딩된 데이터(RXD)를 신호 프로세서(30)에 공급하도록 구성된다.
신호 프로세서(30)는, 내부 클럭(CK)을 송수신기(40)로 공급하는 기능이 생략되었다는 점을 제외하고, 신호 프로세서(10)와 동일한 구조를 가진다.
신호 프로세서(30)는 마이크로컴퓨터 회로로서 구성될 필요가 없다는 점을 알아야 한다. 특히, 신호 프로세서(30)는 UART(11)로서 작용하는 시퀀서(sequencer)와, 시퀀서가 동작하는 동작 클럭을 생성하는 오실레이터로 구성될 수 있다.
송수신기(40)는, 송수신기(10)에서 처럼, 타이밍 생성기(41)와, 인코더/디코더(42)와, 전송 버퍼(43)와, 수신 버퍼(44)와 모드 제어기(45)로 구성된다.
특히, 타이밍 생성기(41)가 타이밍 생성기(21)와 다른 점은, 타이밍 생성기(41)가 내부 클럭(CK)과는 다른 수신 데이터(RX)와 동기된 여러 타이밍 신호를 생성하도록 구성된다는 점이며, 타이밍 생성기(21)에 의해 내부 클럭(CK)을 이용하는 동일한 방식으로 통신 버스(5)로부터 수신 버퍼(24)를 통해 수신 데이터(RX)를 포획한다(도 4 참조).
즉, 타이밍 생성기(41)는 통신 버스(5)로부터 포획된 수신 데이터(RX)의 하강 에지를 샘플링하도록 구성되며, 이들 하강 에지는 클럭 정보로서 수신 데이터(RX)의 인접하는 도미넌트 및/또는 리세시브 코드, 즉 인접하는 도미넌트 및/또는 리세시브 비트의 경계이다. 다음, 타이밍 생성기(41)는 수신 데이터(RX)의 클럭 정보와 동기된 하강 에지(샘플링된 하강 에지)를 가진 버스 클럭(BCK)을 생성하고, 그 버스 클럭(BCK)에 기초하여 신호 프로세서(30)로부터 공급된 전송 데이터(TXD)를 인코딩하고, 버스 클럭(BCK)에 기초하여 수신 데이터(RX)를 디코딩하도록 구성된다. 이에 따라 통신 버스(5)를 통해 노드(3)들간에 통신이 수립된다.
상술한 바와 같이, 통신 시스템(1)의 각 노드(3)의 송수신기(20 또는 40)의 동기화 회로(26)는, 시작 타이밍의 발생 이후의 샘플링 클럭(SCK)의 (4×k=2)번째 상승 에지가 발생하는 각 시점마다(k=0,1,2...,9) 신호 프로세서(10 또는 30)로부터 공급된 전송 데이터(TXD)의 신호 레벨을 샘플링하도록 구성된다. 그 다음, 동기화 회로(26)는 버스 클럭(BCK)의 각 하강 에지에서 래치된 신호 레벨을 샘플링(래치)하여 버스 클럭(BCK)과 동기된 동기 전송 데이터(dTXD)를 생성하도록 구성된다. 각 노드(3)의 송수신기(20 또는 40)의 인코더(27 또는 47)는 동기화 회로(26)에 의해 생성된 동기 전송 데이터(dTXD)를 인코딩하도록 구성된다.
동기화 회로(26)의 구성은 0에서 1로 또는 1에서 0으로의 전송 데이터(TXD)의 천이와, 샘플링 클럭(SCK)의 대응하는 상승 에지에 의한 전송 데이터(TXD)의 대응하는 비트의 샘플링 타이밍간의 소정 간격을 보장하며, 그 간격은, 최악의 경우에도, 전송 데이터(TXD)의 대응하는 비트의 기간(폭)의 1/4과 동일한 길이이다. 그러므로, 전송 데이터(TXD)의 신호 레벨(비트)을 적절히 샘플링하여, 전송 데이터(TXD)의 신호 레벨(비트)의 오인(misrecognition)을 감소시킬 수 있다.
각 노드(3)의 송수신기(20 또는 40)의 동기화 회로(26)는, 시작 타이밍의 발생 후, 샘플링 클럭(SCK)의 (4×k +2)번째 상승 에지(k=0,1,2...,9)가 나타날 때마다, 신호 프로세서(10 또는 30)로부터 공급된 전송 데이터(TXD)의 신호 레벨을 샘플링(래치)하도록 구성될 수 있으나, 시작 타이밍의 발생후, 샘플링 클럭(SCK)의 (4×k +3)번째 상승 에지(k=0,1,2...,9)가 나타날 때마다, 신호 프로세서(10 또는 30)로부터 공급된 전송 데이터(TXD)의 신호 레벨을 샘플링(래치)하도록 구성될 수도 있다.
또한, 전송 데이터(TXD)의 샘플링(래치) 타이밍은, 즉, 샘플링 클럭(SCK)의 (4×k +2)번째 상승 에지(k=0,1,2...,9)의 발생은, 샘플링 클럭(SCK)이 버스 클럭(BCK)의 사이클 마다 4개의 상승 에지를 갖는다는 사실에 기초하여 결정된다.
일반적으로, 샘플링 클럭(SCK)이 버스 클럭(BCK)의 사이클마다 N개의 상승 또는 하강 에지(N은 3 이상의 정수)를 가진 경우, 각 노드(3)의 송수신기(20 또는 40)의 동기화 회로(26)는, 시작 타이밍의 발생후, 샘플링 클럭(SCK)의 (P+k·N)번째 상승 레지가 나타날 때마다 신호 프로세서(10 또는 30)로부터 공급된 전송 데이터(TXD)의 신호 레벨을 샘플링(래치)하도록 구성될 수 있다. 이때, k=0,1,2,...,9이고, N이 홀수일 때 P는 (N+1)/2이고, N이 짝수일 때, P는 (N+2)/2이다. 즉, k는 전송 데이터(TXD)의 블럭의 크기(길이)에 기초하여 결정된다.
제 1 실시 예에 있어서, 각 타이밍 생성기(21 및 41)는 본 발명의 예시적인 제 1 측면의 예시적인 클럭 생성기로서 작용하고, 동기화 회로(26)의 시작 비트 검출기(26)와, 카운터(52)와 선택기(54)를 포함하는 제 1 회로는 본 발명의 예시적인 제 1 측면의 예시적인 샘플링 타이밍 생성기로서 작용한다. 제 1 및 제 2 래치(55,56)를 포함하는 제 2 회로는 본 발명의 예시적인 제 1 측면의 예시적인 샘플링 모듈로서 작용하고, 인코더(27)는 본 발명의 예시적인 제 1 측면의 예시적인 전송기로서 작용한다. 또한, 카운터(52)는 본 발명의 예시적인 제 1 측면의 샘플링 타이밍 생성기의 생성 모듈로서 작용한다.
제 2 실시 예
도 9 및 도 10을 참조하여, 본 발명의 제 2 실시 예에 따른 통신 시스템을 설명하겠다.
제 2 실시 예에 따른 제어 시스템의 구조 및/또는 기능은 아래와 같은 점에서 통신 시스템(1)과 다르다. 따라서, 이하에서는 다른 점을 중심으로 설명하겠다.
인코더/디코더(22 및 42)의 각각은 동기화 회로(26a)를 포함하되, 그 동기화 회로(26a)의 구조는 제 1 실시 예에 따른 동기화 회로(26)와 다르다. 즉, 마스터(3a)의 송수신기(20)의 동기화 회로(26a)는 각 슬래이브(3b)의 송수신기(40)의 동기화 회로(26)의 구조와 동일하다.
도 9를 참조하면, 동기화 회로(26a)는, 동기화 회로(26)에서 처럼, 시작 비트 검출기(51), 다운 카운터(52a), OR 게이트(53), 카운트-값 선택기(54a), 제 1 래치(55), 제 2 래치(56)로 구성된다. 시작 비트 검출기(51), OR 게이트(53), 제 1 래치(55), 제 2 래치(56)의 구조 및 동작은 동기화 회로(26)의 부품(51,53,55 및 56)과 실질적으로 동일하다.
다운 카운터(52a)는, 계수 클럭(CCK)의 상승 에지가 발생할 때 마다, 카운트-값 선택기(51a)로부터 로딩된 카운트 값을 감소시키도록 구성된다.
카운트-값 선택기(54a)는 내부 클럭(CK)의 각 i번째 사이클동안의 카운터(21b)의 주기 카운트 값(Ci)을 수신하여, 다운 카운터(52a)에 로딩된 카운트 값으로서 다음의 값들을 선택한다.
즉, 시작 타이밍의 발생 이후 및 제 1 CO 타이밍의 발생 전에 다운 카운터(52a)에 로딩될 주기 카운트 값(Ci)의 1/2인 Ci/2;
제 1 CO 타이밍의 발생 후에 다운 카운터(52a)에 로딩될 주기 카운트 값(Ci); 및
전송 데이터(TXD)의 블럭의 비트 수(10비트)에 대응하는 10개의 CO 타이밍이 발생된 후, 즉, 10번째 CO 타이밍이 나타난 후, 다운 카운터(52a)에 로딩될 주기 카운트 값(Ci)의 1/2인 Ci/2.
특히, 도 10에 도시된 바와 같이, 신호 프로세서(10)로부터 공급된 전송 데이터(TXD)의 시작 비트의 시작 에지가 시간 t1에서 시작-비트 검축기(51)에 의해 검출될 경우, 카운트 값 "C1/(2(i=1)"이 다운 카운터(52a)에 의해 카운트 아웃되는 시간 t12에서 제 1 래치(55)는 전송 데이터(TXD)의 신호 레벨(비트)을 샘플링(래치)함으로써, 제 1 래치(55)의 출력이 시간 t12에서 전송 데이터(TXD)의 샘플링된 데이터로 유지되도록 한다.
이후, 제 1 래치(55)는, 대응하는 래치 동작(샘플링 동작) 이후 다운 카운터(52a)에 의해 카운트 값(C2,C3,...,C9)이 카운트 아웃된 각 시점(t13a1, t13a2,...,t13a9)에서 전송 데이터(TXD)의 신호 레벨(비트)을 샘플링(래치)함으로써, 제 1 래치(55)의 출력이 각 시점(t13a1, t13a2,...,t13a9)마다 전송 데이터(TXD)의 샘플링된 데이터로 유지되도록 한다.
그 시점에 있어서, 제 2 래치(56)는 버스 클럭(BCK)이 각 하강 에지에서 제 1 래치(55)의 출력을 샘플링(래치)하여, 버스 클럭(BCK)에 동기된 동기 전송 데이터(dTXD)를 생성한다.
즉, 제 1 래치(55)는, 시작 타이밍의 발생 후 및 대응하는 래치 동작(샘플링 동작) 이후, 다운 카운터(52a)에 의해 카운트 값(CI/2 + k×Ci)이 카운트 아웃된 각 시점에 전송 데이터(TXD)의 신호 레벨(비트)을 샘플링(래치)함으로써, 제 1 래치(55)의 출력이 각 샘플링 시점에서 전송 데이터(TXD)의 샘플링된 데이터로 유지되도록 한다. 그 다음, 제 2 래치(56)는 버스 클럭(BCK)의 각 하강 에지에서 제 1 래치(55)의 출력을 샘플링(래치)하여, 버스 클럭(BCK)에 동기된 동기 전송 데이터(dTXD)를 생성한다.
동기화 회로(26a)의 구성에 있어서, 카운터(21b)의 주기 카운트 값(Ci)이 내부 클럭(CK)의 주기, 즉, 버스 클럭(BCK)을 나타내기 때문에, 그의 대응하는 비트의 기간의 중간 또는 중간 근처에서 전송 데이터(TXD)의 각 비트의 샘플링 타이밍(샘플링 위치)을 결정할 수 있게 된다. 따라서, 전송 데이터(TXD)의 신호 레벨(비트)을 적절히 샘플링하고, 전송 데이터(TXD)의 신호 레벨(비트)의 오인을 줄일 수 있게 된다.
또한, 동기화 회로(26)에 대한 버스 클럭(BCK)의 주기와 전송 데이터(TXD)의 각 비트 기간 간의 차이에 대해, 동기화 회로(26a)의 구성은, 버스 클럭(BCK)의 주기와 전송 데이터(TXD)의 각 비트 기간 간의 차이에 있어서 허용 가능한 범위를 증가시킬 수 있게 한다. 이에 따라, 그 차이로 인해 전송 데이터(TXD)의 각 비트에 대한 샘플링 타이밍에 있어서의 허용 가능한 변화 영역이 증가되고, 그에 따라 송수신기(20,40)의 고안 및 제조가 용이하게 된다.
본 실시 예에 있어서, 버스 클럭(BCK)의 각 사이클 동안에 획득된 카운터(2b)의 주기 카운트 값은 주기 카운트 값(Ci)으로서 이용될 수 있으며, 버스 클럭(BCK)의 각 사이클동안의 카운트 값의 단순한 평균 또는 그의 각 사이클동안의 카운트 값의 이동 평균(moving average)은 카운터(2b)의 주기적 카운트 값(Ci)으로서 이용될 수 있음을 알아야 한다.
제 2 실시 예에 있어서, 타이밍 생성기(21,41)의 각각의 카운터(21b)는 본 발명의 예시적인 제 1 측면의 제 2 구조 유형의 샘플링 타이밍 생성기의 예시적인 카운터로서 작용하고, 그 카운터(52)는 본 발명의 예시적인 제 1 측면의 제 2 구조 유형의 샘플링 타이밍 생성기의 예시적인 생성 모듈로서 작용한다.
제 3 실시 예
도 11 및 도 12를 참조하여, 본 발명의 제 3 실시 예에 따른 통신 시스템을 설명하겠다.
제 3 실시 예에 따른 제어 시스템의 구조 및/또는 기능은 다음과 같은 점에서 통신 시스템(1)과 다르다. 따라서, 이하에서는 그 차이점을 주로 설명하겠다.
인코더/디코더(22,42)의 각각은 제 1 실시 예에 따른 동기화 회로(26)의 구조와 다른 동기화 회로(26b)로 구성된다. 즉, 마스터(3a)의 송수신기(20)의 동기화 회로(26b)는 각 슬래이브(3b)의 송수신기(40)의 동기화 회로(26)와 구조가 동일하다.
도 11을 참조하면, 동기화 회로(26c)는 제 1 카운터(61), 시작-비트 검출기(62), 제 1 래치(63), 에지 선택기(64), 제 2 카운터(65), 계산기(66), 비교기(67), 제 2 래치(68) 및 제 3 래치(69)로 구성된다.
제 1 카운터(61)는, 계수 클럭(CCK)의 상승 에지 또는 하강 에지가 나타날 때마다 카운트 값을 카운트 업(count up)하고, 버스 클럭(BCK)의 각 상승 에지 및 하강 에지가 나타날 때마다 카운트 값을 리셋하도록 구성된다.
시작-비트 검출기(62)는 신호 프로세서(10)로부터 공급된 전송 데이터(TXD)의 시작 비트의 하강 에지(시작 에지)를 검출하도록 구성된다.
제 1 래치(63)는 시작-비트 검출기(62)에 의해 검출된 시작 에지의 타이밍(시작 타이밍)에서 제 1 카운터(61)의 카운트 값을 래치하도록 구성된다.
에지 선택기(64)는 버스 클럭(BCK)의 상승 에지 또는 하강 에지를, 타겟 에지로 선택하도록 구성된다. 타겟 에지의 유형(상승 에지 또는 하강 에지)은 시작 타이밍 직전에 발생하는 에지의 유형과 매칭된다.
제 2 카운터(65)는 계수 클럭(CCK)의 상승 에지 또는 하강 에지가 나타날 때마다 카운트 값을 카운트 업(count-up)하도록 구성된다.
OR 게이트(70)는 에지 선택기(64)에 의해 선택된 타겟 에지의 각 타이밍과 시작 타이밍에서 제 2 카운터(65)의 카운트 값을 리셋하는 리셋 신호를 생성하도록 구성된다.
계산기(66)는, OR 게이트(70)의 출력에 응답하여, 타이밍 생성기(21 또는 41)에 의해 생성된 카운터(21b)의 주기 카운터 값의 절반(Ci/2)과, 제 1 래치(63)에 의해 래치된 카운터(61)의 카운트 값(Cof)에 Ci/2를 가산하여 생성한 값 "Cof+Ci/2" 중 하나를 선택하도록 구성된다. 값 Ci/2를 "절반-주기 카운트 값"이라 하고, 카운트 값 Cof를 "오프셋 값"이라 할 것이다.
계산기(66)는 절반-주기 카운트 값 Ci/2와 오프셋 값 Cof 중 선택된 값을 비교 값으로 출력하도록 구성된다.
비교기(67)는 카운터(65)의 카운트 값과 비교값을 비교하고, 카운터(65)의 카운트 값이 비교값과 일치하는지를 판정할 때 신호를 출력한다.
제 2 래치(68)는, 카운터(65)의 카운트 값이 비교값과 일치한다고 비교기(67)가 판정하는 타이밍에 신호 프로세서(10)로부터 공급된 전송 데이터(TX)의 신호 레벨(비트)을 래치함으로써, 제 2 래치(68)의 출력이 전송 데이터(TXD)의 샘플링 데이터로 유지되도록 하는 구성을 갖는다.
제 3 래치(69)는 버스 클럭(BCK)의 각 하강 에지에서 제 2 래치(68)의 출력을 샘플링(래치)하고, 버스 클럭(BCK)과 동기된 동기 전송 데이터(dTXD)를 생성하도록 구성된다.
특히, 계산기(66)는 비교값으로서 다음과 같은 값을 선택하도록 구성된다:
제 1 타겟 에지의 발생 이후 및 비교기(67)의 제 1 출력의 발생 전의 절반-주기 카운트 값(Ci/2);
제 1 타겟 에지의 발생 이후의 오프셋 값(Cof)과 절반-주기 카운트 값(Ci/2)의 합(Cof+Ci/2); 및
전송 데이터(TXD)의 블럭의 비트의 수(10비트)에 대응하는 다수의 타겟 에지가 에지 검출기(64)에 의해 선택되고 난 이후의 절반-주기 카운트 값(Ci/2).
특히, 도 12에 도시된 바와 같이, 신호 프로세서(10)로부터 공급된 전송 데이터(TXD)의 시작 비트의 시작 에지가 시간 t21에서 시작-비트 검출기(62)에 의해 검출된 경우, 시간 t21에서의 카운터(61)의 현재 카운트 값은 제 1 래치(63)에 의해 오프셋 값(Cof)으로 래치된다. 시작 비트의 발생 직전의 버스 클럭(BCK)의 에지가 하강 에지이기 때문에, 그 하강 에지는 에지 선택기(64)에 의해 타겟 에지로서 선택된다.
버스 클럭(BCK)의 제 1 타겟 에지(제 1 하강 에지)가 시작 타이밍의 발생 이후에 나타나기 때문에(시간 t23), 계산기(66)의 비교값은 절반-주기 카운트 값(C1/2)(i=1)으로 유지된다. 따라서, 시간 t22에서 비교값(C1/2)이 제 2 카운터(65)의 카운트 값과 일치하는 경우, 제 2 래치(63)는 시간 t22에서 전송 데이터(TXD)의 신호 레벨(비트)을 샘플링함으로써, 제 2 래치(65)의 출력이 시간 t22에서 전송 데이터(TXD)의 샘플링된 데이터로 유지되도록 한다.
버스 클럭(BCK)의 제 1 타겟 에지(제 1 하강 에지)의 발생이 시간 t23에서 나타난 이후, 제 2 카운터(65)의 카운트 값은 리셋되며, 계산기(66)의 비교값은 오프셋 값(Cof)과 절반-주기 카운트 값(C2/2)(i=2)의 합인 "(Cof+C2/2)"로 설정된다. 그 다음, 비교값(Cof+C2/2)이 시간 t24a1에서 제 2 카운터(65)의 카운트 값과 일치하면, 제 2 래치(63)는 시간 t24a1에서 전송 데이터(TXD)의 신호 레벨(비트)을 샘플링함으로써, 제 2 래치(65)의 출력이 시간 t24a1에서 전송 데이터(TXD)의 샘플링된 데이터로 유지되도록 한다.
즉, 제 2 래치(65)는 제 2 카운터(65)의 카운트 값이 비교값(Cof+C2/2, Cof+C3/2, ..., Cof+C9/2)과 일치하는 각 시간(t24a1, t24a2, ..., t24a9)에 전송 데이터(TXD)의 신호 레벨(비트)을 샘플링함으로써, 제 2 래치(68)의 출력이 각 시간(t24a1, t24a2, ..., t24a9)에서 전송 데이터(TXD)의 샘플링된 데이터로 유지되도록 한다.
그 시점에, 제 3 래치(69)는 버스 클럭(BCK)의 각 하강 에지에서 제 2 래치(68)의 출력을 샘플링(래치)하여, 버스 클럭(BCK)과 동기된 동기 전송 데이터(dTXD)를 생성한다.
즉, 카운터(21b)의 주기 카운트 값(Ci)이 내부 클럭(CK)의 주기, 즉 버스 클럭(BCK)을 나타내기 때문에, 그의 대응하는 비트 기간의 중간 또는 그 근처에서 전송 데이터(TXD)의 각 비트의 샘플링 타이밍(샘플링 위치)를 판정할 수 있게 된다. 따라서, 제 2 실시 예의 통신 시스템에서와 동일한 효과를 달성할 수 있게 된다.
제 3 실시 예에 있어서, 타이밍 생성기(21 및 41)의 각각의 카운터(21b)는 본 발명의 예시적인 제 1 측면의 제 3 구조 유형의 샘플링 타이밍 생성기의 예시적인 카운터로서 작용하고, 제 1 카운터(61)와 제 1 래치(63)는 본 발명의 예시적인 제 1 측면의 제 3 구조적 유형의 샘플링 타이밍 생성기의 예시적인 오프셋-값 생성기로서 작용한다. 제 2 및 제 3 래치(68,69)는 본 발명의 예시적인 제 1 측면의 제 3 구조적 유형의 샘플링 모듈의 예시적인 제 1 및 제 2 래치로서 작용한다.
본 발명의 제 1 내지 제 3 실시 예가 설명되었지만, 본 발명은 이들 실시 예에 국한되는 것은 아니며, 그러므로, 본 발명은 그들의 범주내에서 제 1 내지 제 3 실시 예의 각각의 여러 수정을 포함할 수 있다.
제 1 실시 예에 있어서, 주기적 펄스-유형 웨이브로 구성된 신호를 샘플링 클럭(SCK)으로서 이용하고, 샘플링 클럭(SCK)의 상승 에지를 전송 데이터(TXD)를 샘플링한 샘플링 에지로서 이용하지만, 본 발명이 그에 국한되는 것은 아니다.
특히, 50% 듀티 사이클을 가진 신호는 샘플링 클럭(SCK)으로 이용될 수 있으며, 신호의 상승 및 하강 에지는 전송 데이터(TXD)를 샘플링하는 샘플링 에지로서 이용될 수 있다.
본 발명의 예시적인 실시 예가 본 명세서에서 설명되었지만, 본 발명은 본 명세서에서 설명한 실시 예에 국한되는 것은 아니며, 본 발명에 기초하여 당업자라면, 수정, 생략, 조합(예를 들어, 여러 실시 예에 걸친 측면들의 조합), 적용 및/또는 대안을 포함하는 임의의 실시 예 및 모든 실시 예를 포함함을 알 것이다. 청구범위에 있어서의 제한은 청구 범위에 채용된 언어에 기초하여 넓게 해석될 수 있으며, 애플리케이션의 실행 동안 또는 본 명세서에서 설명한 예시에 제한되지 않을 것이며, 그 예시들은 배타적이 아닌 것으로 이해되어야 한다.
10,30 : 신호 프로세서, 11 : UART, 12 : 오실레이터, 20 : 송수신기
21,41 : 타이밍 생성기, 22,42 : 인코더/디코더, 23,43 : 전송 버퍼
24,44 : 수신 버퍼, 25,45 : 모드 제어기, 26 : 동기화 회로
27 : 인코더, 28 : 디코더, 29 : 비트 중재기, 51,62 : 시작-비트 검출기
52 ; 다운 카운터, 53 : OR 게이트, 54 : 카운트-값 선택기,
55,63 : 제 1 래치, 56, 68 : 제 2 래치, 61 : 제 1 카운터,
64 : 에지 선택기, 65 : 제 2 카운터, 66 : 계산기, 67 : 비교기

Claims (11)

  1. 통신 버스를 통해 제 1 클럭의 정보를 포함하도록 인코딩된 디지털 신호를 전송하는 송수신기로서,
    제 1 클럭과 동기된 제 2 클럭을 생성하도록 구성된 것으로, 제 2 클럭은 통신 버스상의 디지털 신호의 한 비트의 기간에 대응하는 주기를 가진, 클럭 생성기와,
    제 1 전송 데이터가 제 2 클럭과 비동기된 채 상기 송수신기에 공급될 때, 시작 타이밍으로서 제 1 전송 데이터의 시작 데이터를 검출하고, 상기 시작 타이밍에 응답하여 샘플링 타이밍들을 생성하도록 구성된 것으로, 상기 샘플링 타이밍들은 각각이 제 2 클럭의 주기에 대응하도록 정의된 간격을 가지며, 상기 샘플링 타이밍들에 있어서의 제 1 샘플링 타이밍은 상기 시작 타이밍으로부터 이격되는, 샘플링 타이밍 생성기와,
    각 샘플링 타이밍에서 상기 제 1 전송 데이터를 샘플링하여, 제 2 클럭과 동기된 제 2 전송 데이터를 생성하도록 구성된 샘플링 모듈, 및
    상기 제 2 전송 데이터를 제 1 클럭의 정보를 포함하는 디지털 신호로 인코딩하고 상기 디지털 신호를 통신 버스를 통해 전송하도록 구성된 전송기를 포함하는
    송수신기.
  2. 제 1 항에 있어서,
    상기 클럭 생성기는, 상기 제 2 클럭의 각 사이클내의 샘플링 에지(sampling edge)로서 N(N은 3 이상의 정수) 레벨 천이 에지를 가지는 배수 클럭(multiplication clock)을 생성하도록 구성되고,
    상기 샘플링 타이밍 생성기는, 상기 시작 타이밍의 검출 이후 배수 클럭의 (P + k·N)번째 샘플링 에지가 발생할 때마다 샘플링 타이밍들 중 대응하는 타이밍을 생성하도록 구성되며,
    N이 홀수일 때 P는 (N+1)/2이고,
    N이 짝수일 때 P는 (N+2)2이며,
    k는 0,1,2..., KLIM이고,
    상기 KLIM은 전송 데이터의 길이에 기초하여 결정되는 k의 상한인,
    송수신기.
  3. 제 1 항에 있어서,
    상기 샘플링 타이밍 생성기는 주기 카운트값으로서 제 1 클럭에 따른 디지털 신호의 한 비트의 기간을 카운트하도록 구성된 카운터를 더 포함하고,
    상기 샘플링 타이밍 생성기는, 상기 카운터에 의해 디지털 신호의 한 비트의 기간에 대응하는 주기 카운트 값의 1/2에 도달하는 타이밍에서 상기 제 1 샘플링 타이밍을 생성하고,
    상기 제 1 샘플링 타이밍의 생성 이후에는, 상기 카운터에 의해 디지털 신호의 한 비트의 기간에 대응하는 주기 카운트 값에 도달할 때 마다 잔여 샘플링 타이밍들 중 대응하는 타이밍을 생성하도록 구성되는
    송수신기.
  4. 제 1 항에 있어서,
    상기 샘플링 타이밍 생성기는,
    주기 카운트 값으로서 상기 제 1 클럭에 따른 디지털 신호의 한 비트의 기간을 카운트하도록 구성된 카운터와,
    타겟 에지와 시작 타이밍간의 간격을 생성하도록 구성된 오프셋-값 생성기를 포함하되,
    상기 타겟 에지는 시작 타이밍 직전에 발생하는 상기 제 2 클럭에 있어서의 레벨-천이 에지이고,
    상기 샘플링 타이밍 생성기는 상기 카운터에 의해 디지털 신호의 한 비트의 기간에 대응하는 주기 카운트 값의 1/2에 도달하는 타이밍에서 상기 제 1 샘플링 타이밍을 생성하고, 상기 제 1 샘플링 타이밍의 생성 이후에는, 상기 타겟 에지에 대응하는 상기 제 2 클럭내의 대응하는 천이 에지의 발생에 응답하여 상기 카운터에 의해 상기 오프셋 값과 상기 주기 카운트 값의 절반의 합에 도달할 때마다 잔여 샘플링 타이밍들 중 대응하는 타이밍을 생성하도록 구성되는,
    송수신기.
  5. 제 2 항에 있어서,
    상기 샘플링 타이밍 생성기는,
    상기 제 1 전송 데이터의 시작 데이터를 시작 타이밍으로서 검출하도록 구성된 시작-타이밍 검출기와,
    상기 시작 타이밍의 검출 이후 상기 배수 클럭의 (P+k·N)번째 샘플링 에지가 발생할 때 까지의 주기를 측정하고, 상기 주기가 측정된 각 시간에 상기 샘플링 타이밍들 중 대응하는 타이밍을 생성하도록 구성된 생성 모듈을 포함하고,
    상기 샘플링 모듈은,
    상기 샘플링 타이밍의 각각에서, 상기 제 1 전송 데이터의 대응하는 비트를 래치하는 제 1 래치와,
    상기 제 2 클럭의 각 레벨-천이 에지와 동기되는 타이밍에서 상기 제 1 래치의 래치된 비트들 중 대응하는 비트를 래치하도록 구성된 제 2 래치를 포함하는
    송수신기.
  6. 제 3 항에 있어서,
    상기 샘플링 타이밍 생성기는,
    상기 제 1 전송 데이터의 시작 데이터를 시작 타이밍으로서 검출하도록 구성된 시작-타이밍 검출기와,
    상기 카운터에 의해 상기 디지털 신호의 한 비트의 기간에 대응하는 주기 카운트 값에 도달하는 각 시간에, 잔여 샘플링 타이밍들 중 대응하는 타이밍을 생성하도록 구성된 생성 모듈을 포함하고,
    상기 샘플링 모듈은,
    상기 샘플링 타이밍의 각각에서, 상기 제 1 전송 데이터의 대응하는 비트를 래치하는 제 1 래치와,
    상기 제 2 클럭의 각 레벨-천이 에지와 동기되는 타이밍에서 상기 제 1 래치의 래치된 비트들 중 대응하는 비트를 래치하도록 구성된 제 2 래치를 포함하도록 구성된 제 2 래치를 포함하는
    송수신기.
  7. 제 4 항에 있어서,
    상기 샘플링 타이밍 생성기는,
    상기 제 1 전송 데이터의 시작 데이터를 시작 타이밍으로서 검출하도록 구성된 시작-타이밍 검출기와,
    상기 타겟 에지에 대응하는 상기 제 2 클럭내의 대응하는 레벨 천이 에지의 발생에 응답하여, 상기 카운터에 의해 상기 주기 카운트 값이 절반과 상기 오프셋 값의 합에 도달하는 각 시간에, 잔여 샘플링 타이밍들 중 대응하는 타이밍을 생성하도록 구성된 생성 모듈을 포함하고,
    상기 샘플링 모듈은,
    상기 샘플링 타이밍의 각각에서, 상기 제 1 전송 데이터의 대응하는 비트를 래치하는 제 1 래치와,
    상기 제 2 클럭의 각 레벨-천이 에지와 동기되는 타이밍에서 상기 제 1 래치의 래치된 비트들 중 대응하는 비트를 래치하도록 구성된 제 2 래치를 포함하도록 구성된 제 2 래치를 포함하는
    송수신기.
  8. 통신 시스템으로서,
    통신 버스와,
    상기 버스를 통해 서로 간에 통신 가능하게 결합된 다수의 노드를 포함하되,
    상기 다수의 노드의 각각은, 상기 통신 버스를 통해 제 1 클럭의 정보를 포함하도록 인코딩된 디지털 신호를 전달하는 송수신기를 포함하고,
    상기 송수신기는:
    제 1 클럭과 동기된 제 2 클럭을 생성하도록 구성된 것으로, 제 2 클럭은 상기 통신 버스상의 디지털 클럭의 한 비트의 기간에 대응하는 주기를 가진, 클럭 생성기와,
    제 1 전송 데이터가 제 2 클럭과 비동기된 채 상기 송수신기에 공급될 때, 시작 타이밍으로서 제 1 전송 데이터의 시작 데이터를 검출하고, 시작 타이밍에 응답하여 샘플링 타이밍을 생성하도록 구성된 것으로, 상기 샘플링 타이밍은 각각이 제 2 클럭의 주기에 대응하도록 정의된 간격을 가지고, 상기 샘플링 타이밍들내의 제 1 샘플링 타이밍은 시작 타이밍으로부터 이격된, 샘플링 타이밍 생성기와,
    각 샘플링 타이밍에서 상기 제 1 전송 데이터를 샘플링하여, 상기 제 2 클럭과 동기된 제 2 전송 데이터를 생성하도록 구성된 샘플링 모듈과,
    상기 제 2 전송 데이터를 상기 제 1 클럭의 정보를 포함하는 디지털 신호로 인코딩하고 상기 디지털 신호를 통신 버스를 통해 전송하도록 구성된 전송기를 포함하는
    통신 시스템.
  9. 제 8 항에 있어서,
    상기 클럭 생성기는, 상기 제 2 클럭의 각 사이클내의 샘플링 에지(sampling edge)로서 N(N은 3 이상의 정수) 레벨 천이 에지를 가지는 배수 클럭(multiplication clock)을 생성하도록 구성되고,
    상기 샘플링 타이밍 생성기는, 상기 시작 타이밍의 검출 이후 배수 클럭의 (P + k·N)번째 샘플링 에지가 발생할 때마다 샘플링 타이밍들 중 대응하는 타이밍을 생성하도록 구성되며,
    N이 홀수일 때 P는 (N+1)/2이고,
    N이 짝수일 때 P는 (N+2)2이며,
    k는 0,1,2..., KLIM이고,
    상기 KLIM은 전송 데이터의 길이에 기초하여 결정되는 k의 상한인,
    통신 시스템.
  10. 제 8 항에 있어서,
    주기 카운트값으로서 제 1 클럭에 따른 디지털 신호의 한 비트의 기간을 카운트하도록 구성된 카운터를 더 포함하고,
    상기 샘플링 타이밍 생성기는, 상기 카운터에 의해 디지털 신호의 한 비트의 기간에 대응하는 주기 카운트 값의 1/2에 도달하는 타이밍에서 상기 제 1 샘플링 타이밍을 생성하고,
    상기 제 1 샘플링 타이밍의 생성 이후에는, 상기 카운터에 의해 디지털 신호의 한 비트의 기간에 대응하는 주기 카운트 값에 도달할 때 마다 잔여 샘플링 타이밍들 중 대응하는 타이밍을 생성하도록 구성되는
    통신 시스템.
  11. 제 8 항에 있어서,
    주기 카운트 값으로서 상기 제 1 클럭에 따른 디지털 신호의 한 비트의 기간을 카운트하도록 구성된 카운터와,
    타겟 에지와 시작 타이밍간의 간격을 생성하도록 구성된 오프셋-값 생성기를 더 포함하되,
    상기 타겟 에지는 시작 타이밍 직전에 발생하는 상기 제 2 클럭에 있어서의 레벨-천이 에지이고,
    상기 샘플링 타이밍 생성기는 상기 카운터에 의해 디지털 신호의 한 비트의 기간에 대응하는 주기 카운트 값의 1/2에 도달하는 타이밍에서 상기 제 1 샘플링 타이밍을 생성하고, 상기 제 1 샘플링 타이밍의 생성 이후에는, 상기 타겟 에지에 대응하는 상기 제 2 클럭내의 대응하는 천이 에지의 발생에 응답하여 상기 카운터에 의해 상기 오프셋 값과 상기 주기 카운트 값의 절반의 합에 도달할 때마다 잔여 플링 타이밍들 중 대응하는 타이밍을 생성하도록 구성되는,
    통신 시스템.
KR1020120061479A 2011-06-08 2012-06-08 클럭 정보를 포함하도록 인코딩된 신호를 통신하는 송수신기 KR101380681B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011128222A JP5541234B2 (ja) 2011-06-08 2011-06-08 トランシーバ
JPJP-P-2011-128222 2011-06-08

Publications (2)

Publication Number Publication Date
KR20120136308A KR20120136308A (ko) 2012-12-18
KR101380681B1 true KR101380681B1 (ko) 2014-04-02

Family

ID=47220754

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120061479A KR101380681B1 (ko) 2011-06-08 2012-06-08 클럭 정보를 포함하도록 인코딩된 신호를 통신하는 송수신기

Country Status (5)

Country Link
US (1) US8848767B2 (ko)
JP (1) JP5541234B2 (ko)
KR (1) KR101380681B1 (ko)
CN (1) CN102820900B (ko)
DE (1) DE102012209636B4 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012257122A (ja) * 2011-06-09 2012-12-27 Hitachi Automotive Systems Ltd 車両制御装置、車両制御システム
JP5609930B2 (ja) 2012-07-31 2014-10-22 株式会社デンソー トランシーバ
JP6304260B2 (ja) * 2013-11-05 2018-04-04 株式会社安川電機 モータ制御装置、モータ制御システム及びモータ制御方法
FR3023661B1 (fr) * 2014-07-11 2017-09-01 Somfy Sas Procede d'ajustement d'un signal de cadence d'un circuit d'emission/reception, dispositif de controle, systeme de controle, actionneur et unite de commande associes
DE102014110082B3 (de) * 2014-07-17 2015-10-15 Infineon Technologies Ag Empfänger, Verfahren zur Detektion eines Fehlers in einem Signal, welches einen Datenwert umfasst, Verfahren zur Übertragung eines Datenwerts und Verfahren zur Detektion eines Fehlers in einem Signal
JP6378966B2 (ja) * 2014-08-13 2018-08-22 ラピスセミコンダクタ株式会社 調歩同期式シリアルデータ取得装置及び調歩同期式シリアルデータ取得方法
DE102014116909B4 (de) * 2014-11-19 2016-07-28 Infineon Technologies Ag Empfänger, Sender, Verfahren zum Wiedergewinnen eines zusätzlichen Datenwerts aus einem Signal und Verfahren zum Übertragen eines Datenwerts und eines zusätzlichen Datenwerts in einem Signal
FR3029661B1 (fr) * 2014-12-04 2016-12-09 Stmicroelectronics Rousset Procedes de transmission et de reception d'un signal binaire sur un lien serie, en particulier pour la detection de la vitesse de transmission, et dispositifs correspondants
US10425268B2 (en) * 2015-06-23 2019-09-24 Microchip Technology Incorporated UART with line activity detector
US9628255B1 (en) * 2015-12-18 2017-04-18 Integrated Device Technology, Inc. Methods and apparatus for transmitting data over a clock signal
US9479182B1 (en) 2015-07-02 2016-10-25 Integrated Device Technology, Inc. Methods and apparatus for synchronizing operations using separate asynchronous signals
DE102016219663B4 (de) 2016-10-11 2018-08-02 Conti Temic Microelectronic Gmbh Verfahren zur Überwachung eines Netzwerks auf Anomalien
US10635619B2 (en) * 2016-10-12 2020-04-28 Cirrus Logic, Inc. Encoding for multi-device synchronization of devices
US10439639B2 (en) * 2016-12-28 2019-10-08 Intel Corporation Seemingly monolithic interface between separate integrated circuit die
CN108958092B (zh) * 2017-05-23 2022-11-04 佛山市顺德海尔电器有限公司 单片机时钟异常检测方法及装置、计算机可读存储介质、设备
DE102017214421A1 (de) * 2017-08-18 2019-02-21 Robert Bosch Gmbh Verfahren und Vorrichtung zur Synchronisation von Prozessen auf wenigstens zwei Prozessoren
US10447464B2 (en) * 2017-12-05 2019-10-15 Qualcomm Incorporated Super-speed UART with pre-frame bit-rate and independent variable upstream and downstream rates
CN110231783B (zh) * 2019-04-29 2020-10-27 东风商用车有限公司 一种总线式dcm休眠静态电流控制系统及控制方法
CN113242167B (zh) * 2021-04-12 2023-04-25 成都尼晟科技有限公司 一种基于单比特位同步的半异步can总线控制方法及控制器
US20240120908A1 (en) * 2022-10-11 2024-04-11 AyDeeKay LLC dba Indie Semiconductor Local Interconnected Network Bus Repeater Delay Compensation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001077799A (ja) * 1999-07-08 2001-03-23 Denso Corp 非同期シリアル通信装置を有するマイクロコンピュータ装置
JP2002232404A (ja) 2001-02-02 2002-08-16 Nec Corp データ伝送システム及びデータ伝送方法
KR20080053171A (ko) * 2006-12-08 2008-06-12 한국전자통신연구원 클럭 위상 정렬 장치 및 그 방법
KR20090123933A (ko) * 2007-03-08 2009-12-02 샌디스크 아이엘 엘티디 바이어스 및 랜덤 지연 소거

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3249270B2 (ja) * 1993-12-22 2002-01-21 株式会社 沖マイクロデザイン パルスサンプリング回路
JPH0898284A (ja) * 1994-07-25 1996-04-12 Nippondenso Co Ltd データ受信装置,送信装置および通信装置
JPH0936922A (ja) * 1995-07-21 1997-02-07 Toyota Motor Corp デジタル信号変調方式
US6704545B1 (en) * 2000-07-19 2004-03-09 Adc Telecommunications, Inc. Point-to-multipoint digital radio frequency transport
US6718476B1 (en) * 2000-11-27 2004-04-06 Sony Corporation Method of synchronizing each local clock to a master clock in a data bus system
US6463110B1 (en) * 2001-03-21 2002-10-08 Motorola, Inc. Timing synchronization in a communication device
JP3938395B2 (ja) * 2002-07-01 2007-06-27 富士通株式会社 クロック逓倍回路
SE533636C2 (sv) 2004-10-25 2010-11-16 Xinshu Man L L C Anordning vid bussförbindelse i CAN-system
JP4508072B2 (ja) * 2005-10-18 2010-07-21 株式会社デンソー シリアル通信回路及びa/d変換システム
JP5263973B2 (ja) 2009-12-15 2013-08-14 Necアクセステクニカ株式会社 画像読み取り装置および制振方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001077799A (ja) * 1999-07-08 2001-03-23 Denso Corp 非同期シリアル通信装置を有するマイクロコンピュータ装置
JP2002232404A (ja) 2001-02-02 2002-08-16 Nec Corp データ伝送システム及びデータ伝送方法
KR20080053171A (ko) * 2006-12-08 2008-06-12 한국전자통신연구원 클럭 위상 정렬 장치 및 그 방법
KR20090123933A (ko) * 2007-03-08 2009-12-02 샌디스크 아이엘 엘티디 바이어스 및 랜덤 지연 소거

Also Published As

Publication number Publication date
CN102820900B (zh) 2015-03-11
JP5541234B2 (ja) 2014-07-09
US8848767B2 (en) 2014-09-30
DE102012209636A1 (de) 2012-12-13
DE102012209636B4 (de) 2023-03-30
JP2012257035A (ja) 2012-12-27
CN102820900A (zh) 2012-12-12
KR20120136308A (ko) 2012-12-18
US20120314738A1 (en) 2012-12-13

Similar Documents

Publication Publication Date Title
KR101380681B1 (ko) 클럭 정보를 포함하도록 인코딩된 신호를 통신하는 송수신기
US8718120B2 (en) Transceiver
US9154175B2 (en) Transceiver and communication apparatus transmitting and receiving data encoded by transmission code
US20130067129A1 (en) Communication system and slave node
JP5678849B2 (ja) 通信システム及びトランシーバ
US8819466B2 (en) Method and device for waking users of a bus system and corresponding users
ES2527312T3 (es) Procedimiento y dispositivo para la activación de dispositivos participantes en un sistema de bus y dispositivo participante correspondiente
US8929431B2 (en) Transceiver for serial data communication utilizing PWM encoded signal
JP2008504784A (ja) バス・システムのデジタル信号ビットレート非依存符号化方法
US9130551B2 (en) Decoder for decoding PWM code and communications system
JP2013030932A (ja) 通信システム及び、当該通信システムに用いられるサブマスタノード
US9094279B2 (en) Communication apparatus for transmission of binary coded signal
JP5644725B2 (ja) トランシーバ
JP5617795B2 (ja) 通信システム及び、当該通信システムに用いられるマスタノード、スレーブノード
JP5922350B2 (ja) 通信システム,トランシーバ
JP6094609B2 (ja) 通信システム
JP5678828B2 (ja) トランシーバ

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170317

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180316

Year of fee payment: 5