KR20050013434A - 클럭신호 발생 장치 및 그 방법 - Google Patents

클럭신호 발생 장치 및 그 방법

Info

Publication number
KR20050013434A
KR20050013434A KR1020030052089A KR20030052089A KR20050013434A KR 20050013434 A KR20050013434 A KR 20050013434A KR 1020030052089 A KR1020030052089 A KR 1020030052089A KR 20030052089 A KR20030052089 A KR 20030052089A KR 20050013434 A KR20050013434 A KR 20050013434A
Authority
KR
South Korea
Prior art keywords
clock signal
dco
bit
control bit
dco clock
Prior art date
Application number
KR1020030052089A
Other languages
English (en)
Other versions
KR100524979B1 (ko
Inventor
성혁준
김찬용
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR10-2003-0052089A priority Critical patent/KR100524979B1/ko
Publication of KR20050013434A publication Critical patent/KR20050013434A/ko
Application granted granted Critical
Publication of KR100524979B1 publication Critical patent/KR100524979B1/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/081Details of the phase-locked loop provided with an additional controlled phase shifter
    • H03L7/0812Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used
    • H03L7/0818Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used the controlled phase shifter comprising coarse and fine delay or phase-shifting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/14Details of the phase-locked loop for assuring constant frequency when supply or correction voltages fail or are interrupted
    • H03L7/146Details of the phase-locked loop for assuring constant frequency when supply or correction voltages fail or are interrupted by using digital means for generating the oscillator control signal
    • H03L7/148Details of the phase-locked loop for assuring constant frequency when supply or correction voltages fail or are interrupted by using digital means for generating the oscillator control signal said digital means comprising a counter or a divider

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

클럭신호 발생 장치 및 그 방법이 개시된다. 본 발명에 따른 클럭신호 발생 장치는 (m+n)비트의 컨트롤 비트의 초기값을 설정하고 있으며, DCO 클럭신호가 기준 클럭신호와 같은가, 빠른가 또는 느린가를 나타내는 영역신호에 응답하여 MSB에 LSB의 순으로 컨트롤 비트의 각 비트를 조정하는 SAR 제어부, 컨트롤 비트에 상응하는 발진주파수를 갖는 DCO 클럭신호를 생성하는 DCO, 내부의 i비트 카운터를 이용하여 DCO 클럭신호를 카운팅하며, 입력 데이터가 천이될 때의 카운터값을 샘플 카운터값으로서 출력하는 카운터값 샘플부 및 현재의 샘플 카운터값을 기준으로, 카운터값 샘플부에서 DCO 클럭신호를 카운트한 값을 DCO 클럭신호가 기준 클럭신호보다 주파수가 빠른 FAST 영역, 주파수가 느린 SLOW 영역 및 주파수가 같은 정상 영역으로 각각 나누며, 다음 샘플 카운터값이 입력되면 다음 샘플 카운터값이 어느 영역에 속하는 가를 나타낸는 영역신호를 출력하는 FAST/SLOW 결정부를 포함하는 것을 특징으로 하며, USB 데이터가 입력될 때마다, 현재의 DCO 클럭신호(DCO_CLK)가 기준 클럭신호보다 빠른가 또는 느린가를 판단하면서 DCO 클럭신호(DCO_CLK)의 주파수를 조정하는 컨트롤 비트를 한비트씩 순차적으로 조정한다. 따라서, 종래와 같이 고속의 클록신호를 이용하지 않고도 요구되는 DCO 클럭신호(DCO_CLK)를 쉽게 복원할 수 있다.

Description

클럭신호 발생 장치 및 그 방법{Clock signal generating system and method thereof}
본 발명은 클럭신호 발생 장치에 관한 것으로, 특히, 풀 스피드 USB(Full Speed Universal Serial Bus) 통신 시스템에서 USB 스마트 카드와 같이 호스트로부터 클럭신호를 제공받지 못하는 펑션이 수신된 데이터로부터 데이터 전송에 필요한 클럭신호를 복원하는 클럭신호 발생 장치 및 그 방법에 관한 것이다.
일반적인 스마트 카드는 클록 신호를 카드 리더기(card reader)를 통해 제공받아 동작하지만, USB 스마트 카드는 호스트가 리더기가 아니고 PC이기 때문에 클록신호를 제공받지 못한다. 즉, USB 통신 프로토콜은 DATA(D+, D-) 라인만을 사용하여 통신을 하는 직렬(Serial) 데이터 통신이기 때문이다. 따라서, USB 스마트 카드는 수신되는 USB 데이터를 통하여 스펙 1.1에 명시된 12MHz±0.25%의 클록을 복원해야 할 필요성이 있다.
한편, USB 통신 프로토콜은 다른 패킷 통신들과 마찬가지로 호스트로 신호를 전송하기 이전에 반드시 스마트 카드와 같은 펑션(Function 또는 slave)은 신호를수신하는 구간이 존재하게 된다. 이처럼, 데이터를 수신하는 구간(RX) 동안에는 데이터 전송속도의 2배 이상의 속도를 가지는 클록신호가 있으면 정확한 데이터를 복원할 수 있으며, 이 구간동안 데이터를 수신하면서 송신하기 위한 정확한 클록을 복원하여 정확한 전송률로 데이터 송신을 할 수 있다. 또한, 계속적으로 존재하는 RX구간에서 그 때마다 데이터 송신을 위한 클럭신호를 복원하므로, 여러 가지 환경변화에 민감하지 않도록 전송 클록을 제어 할 수 있다.
도 1은 USB 통신에서 사용되는 호스트 PC와 스마트 카드의 연결도이다.
도 1에 도시된 바와 같이, USB 통신 프로토콜에서 DP와 DM을 통하여 데이터도 송수신하고, 리셋신호도 발생시킨다. USB 펑션(Function) 기능을 하는 회로가 스마트 카드 이외에 다른 시스템에 응용된다면, 일반적인 시스템에서는 정확한 크리스털 오실레이터(crystal oscillator) 클록을 가지고 있기 때문에 문제가 없다. 그러나, 스마트카드는 일반적으로 클록을 리더기(card reader)기가 제공해 주기 때문에, 도 1에 도시된 USB 통신과 같이, 클록을 제공하지 않는 시스템과 접속하여 통신을 하기 위해서는 스마트 카드 내부에서 클록을 생성하여야 한다. 즉, USB 통신에서 스마트 카드가 Rx(Receiving) 모드일 경우에는 정확한 클록을 사용하지 않고 오버 샘플링(over sampling)에 의하여 데이터를 수신할 수 있지만, TX(Transmission)의 경우에는 정확한 클럭을 이용하여 정확한 전송 속도로 데이터를 전송하여야 한다.
USB 프로토콜 1.1 규정에 명시되어 있는 사양은 USB가 저속(Low speed)일 경우에는 1.5MHz±1.5%의 속도로 데이터를 전송하여야 하고, 풀 스피드(Full speed)일 경우에는 12MHz±0.25% 속도로 데이를 전송하여야 한다. 시간적으로 보면 저속일 경우에는 666.6ns±10ns 이고, 풀 스피드일 경우에는 83.3ns±200ps의 오차 범위를 가져야 한다. 위의 사양에서 보는 바와 같이 USB 풀 스피드 통신에서는 저속 통신보다 훨씬 더 정확한 클록이 필요하다.
USB 프로토콜에서 펑션(Function)이 호스트에 처음 접촉되었을 때, 호스트와 펑션(Function) 사이에 endpoint0로 초기 데이터를 주고받는 컨트롤 트랜스퍼(Control transfer) 구간이 있는데, 이는 셋업 위상(Setup phase), 데이터 위상(Data phase), 핸드쉐이크 위상(Handshake phase)으로 나뉘어 진다. 여기서는, USB 프로토콜에 관한 자세한 설명은 제외하고, 간단한 개념만 설명한다.
도 2는 상기된 3가지 위상 중에서 셋업 위상의 송수신을 보여주고 있다. 호스트는 SOF 토큰(token)을 보내고, 셋업 토큰과 셋업 데이터 팩킷(Setup data packet)을 보내면서 전송이 시작된다. 이는 반드시 호스트가 스마트 카드와 같은 펑션(Function)으로 보내는 데이터이므로, 펑션(Function)은 RX 구간이다. 또한, 도 3에서 보는 바와 같이 벌크 전송(Bulk transfer) 구간에서 데이터가 입/출력될 때에도, 펑션(FUNCTION)은 호스트로부터 반드시 토큰 패킷(IN PACKET, OUT PACKET)을 받게 된다. 이와 같이 호스트가 마스터이므로 어떤 트랜잭션이 시작하기 전에 반드시 IN PACKET, OUT PACKET, SOF PACKET을 전송하게 되므로, 펑션(Function)은 항상 RX가 먼저 존재하게 되며, 이 RX 구간에서 수신된 데이터를 이용하여 데이터 전송을 위한 클럭신호를 복원한다.
도 4는 종래의 저속 통신에 사용되는 클록 복원 기술을 풀 스피드 프로토콜에 적용시켜 표현한 도면이다. 이 방식은 정해져 있는 셋업 토큰 앞에 8비트인 동기 패턴과 셋업 토큰의 처음 1비트를 이용하여 RXDD4와 RXDD8 신호를 만든 후 샘플링을 하여 ±1.5% 오차 범위의 클록을 발생시키는 회로이다.
도 5는 일반적인 링 오실레이터(Ring oscillator)를 나타내는 도면으로, 도 5에 도시된 링 오실레이터의 클록 주기는 2(7d + 2*d/2) = 16d가 된다. 여기서, d는 링 오실레이터를 이루는 인버터의 지연시간이다. 이러한 링 오실레이터를 이용하여 이를 50MHz를 목표로 설계하면 50MHz±30%로 발진하게 된다. 이를 도 4의 클럭신호(CLKOSC)로 하여 RXDD4와 RXDD8 구간동안 샘플링하여 샘플링된 수를 8로 나누어서 클록으로 사용하는 것이다. 다시 설명하면, 실제로 오실레이터가 50MHz로 발진하여 20ns 주기를 갖는다고 가정하면, RXDD8의 구간은 5332ns 이므로, 266번 샘플링되며, 이를 8로 나누면 한 클록의 주기는 클럭신호(CLKOSC)의 33클럭 즉, 660ns 이다. 이때, 위에서 샘플링이 되는 것이 위상이 맞지 않을 경우에 265번이 될 수 있으므로 도 5에서 FL1, FL2, FL3 신호를 모두 사용하여 최대의 샘플링 수로 결정하여야 오차 안에 들어간다. 만약 발진 주파수가 50MHz-30%일 경우에는 35MHz이고 이때 위와 같은 방법으로 하면 186번이 샘플링 되므로 8로 나누면 한 클록의 주기는 클럭신호(CLKOSC)의 23클럭 즉, 599.4ns 얻을 수 있다. 발진 주파수가 50MHz+30%일 경우에는 65MHz이므로 이때 위와 같은 방법으로 하면 346번 샘플링 되므로 8로 나누면 한 클록의 주기는 클럭신호(CLKOSC)의 43클럭 즉, 661.3ns을 얻을 수 있다. 결과적으로 오차 범위가 ±10ns안에 들어가므로 ±1.5%내에 구현되었다. 그러나, 이 방식은 풀 스피드를 만족하는 ±200ps(스펙 1.1규정:12MHz±0.25%) 안에 구현될 수 없어 풀 스피드에 적용하기 힘들다는 문제점이 있다.
종래의 클럭 복원 기술을 풀 스피드에 적용하기 위해서는 아주 높은 주파수의 클럭신호(CLKOSC)가 필요하고, 고속으로 동작하는 로직들이 필요하다. 또한, 기존의 PC 주변 장치들의 대부분이 저속이므로 고속을 위한 클록 발생기가 거의 없는 상태이다. 따라서, 스마트 카드에 적합하도록 풀 스피드를 만족하며 오차 범위에 들 수 있는 클록신호 발생 장치가 요구된다.
본 발명이 이루고자 하는 기술적 과제는 USB 통신 시스템에서 USB 스마트 카드에 적합하도록, 풀 스피드를 만족하며 오차 범위에 들 수 있는 클럭신호 발생 장치 및 그 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는 상기 클럭신호 발생 방법을 컴퓨터에서 실행 가능한 프로그램 코드로 기록된 기록 매체를 제공하는 데 있다.
도 1은 USB 통신에서 사용되는 호스트 PC와 스마트 카드의 연결도이다.
도 2는 USB 통신에서 사용되는 3가지 위상 중에서 셋업 위상의 송수신을 보여주고 있다.
도 3은 벌크 전송(Bulk transfer) 구간에서 데이터의 입/출력을 나타내는 도면이다.
도 4는 종래의 저속 통신에 사용되는 클록 복원 기술을 풀 스피드 프로토콜에 적용시켜 표현한 도면이다.
도 5는 일반적인 링 오실레이터(Ring oscillator)를 나타내는 도면이다.
도 6은 본 발명에 따른 클럭신호 발생 장치를 개략적으로 나타내는 블록도이다.
도 7(a)~(c)는 FAST/SLOW 결정부(140)의 기본 동작 개념을 설명하기 위한 도면이다.
도 8은 도 6의 장치에서 DCO(120)를 제어하는 컨트롤 비트(CON_BIT)와 DCO 클럭신호(DCO_CLK)의 주파수 관계의 일예를 나타낸 도면이다.
도 9는 도 6의 장치에서 SAR 제어부(130)가 최적의 컨트롤 비트(CON_BIT)를찾아가는 과정의 일예를 나타내는 도면이다.
도 10은 도 6에서 DCO(120)가 컨트롤 비트(CON_BIT)의 조정에 따라 목표하는 기준 클럭신호를 생성하는 과정을 나타내는 플로우 챠트이다.
도 11은 도 6에 도시된 DCO(120)의 일실시예를 개략적으로 나타낸 도면이다.
도 12는 도 11에 도시된 LSB 셀의 일실시예를 나타내는 도면이다.
상기 과제를 이루기 위해, 입력 데이터의 수신구간동안, 데이터 전송에 필요한 기준 클럭신호에 동기되는 DCO 클럭신호를 복원하고, 복원된 DCO 클럭신호를 이용하여 데이터를 전송하는 통신 장치에서 DCO 클럭신호를 복원하는 본 발명에 따른 클럭신호 발생 장치는, (m+n)비트의 컨트롤 비트의 초기값을 설정하고 있으며, DCO 클럭신호가 기준 클럭신호와 같은가, 빠른가 또는 느린가를 나타내는 영역신호에 응답하여 MSB에 LSB의 순으로 컨트롤 비트의 각 비트를 조정하는 SAR 제어부, 컨트롤 비트에 상응하는 발진주파수를 갖는 DCO 클럭신호를 생성하는 DCO, 내부의 i비트 카운터를 이용하여 DCO 클럭신호를 카운팅하며, 입력 데이터가 천이될 때의 카운터값을 샘플 카운터값으로서 출력하는 카운터값 샘플부 및 현재의 샘플 카운터값을 기준으로, 카운터값 샘플부에서 DCO 클럭신호를 카운트한 값을 DCO 클럭신호가 기준 클럭신호보다 주파수가 빠른 FAST 영역, 주파수가 느린 SLOW 영역 및 주파수가 같은 정상 영역으로 각각 나누며, 다음 샘플 카운터값이 입력되면 다음 샘플 카운터값이 어느 영역에 속하는 가를 나타낸는 영역신호를 출력하는 FAST/SLOW 결정부를 포함하는 것이 바람직하다.
상기 과제를 이루기 위해, DCO의 내부 지연시간을 조절하여, 목표로 하는 기준 클럭신호에 동기되는 DCO 클럭신호를 발생하는 방법은 컨트롤 비트를 초기설정하고, 설정된 컨트롤 비트에 해당하는 주파수를 갖는 DCO 클럭신호를 i비트의 카운터로 카운트하며, 입력 데이터가 천이될 때의 카운트값을 현재 샘플 카운트값으로서 생성하는 (a)단계, 현재 샘플 카운트값을 이용하여 DCO 클럭신호가 기준 클럭신호와 주파수가 같은가 빠른가 또는 느린가를 판단하고, 판단결과에 따라 컨트롤 비트의 취상위 비트를 결정하는 (b)단계, 현재 샘플 카운트값을 이용하여 DCO 클럭신호가 기준 클럭신호와 주파수가 같은가, 빠른가 또는 느린가를 나타내는 영역을 설정하는 (c)단계, 컨트롤 비트의 나머지 비트들을 다시 임의 설정하고, 설정된 컨트롤 비트에 해당하는 주파수를 갖는 DCO 클럭신호를 i비트 카운터를 이용하여 DCO 클럭신호를 카운트하며, 입력 데이터가 천이될 때의 카운트값을 현재 샘플 카운트값으로서 생성하는 (d)단계, (d)단계에서 생성된 현재 샘플 카운트값이 (c)단계에서 설정된 영역중 어느 영역에 속하는 가를 판단하여, DCO 클럭신호가 기준 클럭신호와 주파수가 같은가 빠른가 또는 느린가를 판단하고, 판단결과에 따라 다음 순서의 컨트롤 비트의 비트를 결정하는 (e)단계, 컨트롤 비트의 최하위 비트까지 결정이 완료되었는가를 판단하여, 아직 결정되지 않은 컨트롤 비트의 비트들이 있다면, (d)~(g)단계를 반복 수행하여 컨트롤 비트의 모든 비트들을 결정이 완료하는 (f)단계 및 최종 결정된 컨트롤 비트에 상응하는 주파수를 갖는 DCO 클럭신호를 기준 클럭신호에 동기된 DCO 클럭신호로서 출력하는 (g)단계를 포함하는 것이 바람직하다.
이하, 본 발명에 따른 클럭신호 발생 장치 및 그 방법을 첨부된 도면들을 참조하여 다음과 같이 설명한다.
도 6은 본 발명에 따른 클럭신호 발생 장치를 개략적으로 나타내는 블록도이다. 도 6을 참조하여, 본 발명에 따른 클럭신호 발생 장치는 카운터값 샘플부(110), DCO(Digital controled oscillator, 120), FAST/SLOW 결정부(140) 및 SAR 제어부(130)를 포함하여 구성되며, 필요에 따라 클록-데이터 동기부(100), N/M 필터(150) 및 리셋 제어부(160)를 더 구비할 수 있다.
도 6을 참조하여, SAR 제어부(130)는 초기 컨트롤 비트를 결정하고, 이후, N/M 필터(150)에서 출력되는 영역신호(S1) 및 유지신호(S2)에 응답하여, MSB에 LSB까지 순차적으로 조정하며 컨트롤 비트(CON_BIT)를 생성하여 DCO(120)로 출력한다. 여기서, 영역신호(S1)는 DCO 클럭신호(DCO_CLK)가 기준 클럭신호보다 빠른가 또는 느린가를 나타내는 신호로, SAT 제어부(130)는 영역신호(S1)에 따라 컨트롤 비트(CON_BIT)에서 현재 조정할 차례의 비트를 조정한다. 유지신호(S2)는 SAT 제어부(130)가 현재 조정할 차례의 비트 조정을 하지 않도록 제어하는 신호이다. 유지신호(S2)가 발생되면 SAT 제어부(130)는 현재 조정할 차례의 비트조정을 다음에 입력되는 영역신호(S1)에 응답하여 조정한다. N/M 필터(150)가 구성되지 않는 경우, SAR 제어부(130)는 FAST/SLOW 결정부(140)에서 출력되는 영역신호(S1)에 응답하여, 컨트롤 비트(CON_BIT)를 생성하여 DCO(120)로 출력한다. 궁극적으로, SAT 제어부(130)는 DCO 클럭신호(DCO_CLK)가 목표하는 기준 클럭신호가 되도록 한다. 여기서, 기준 클럭신호(REF_CLK)는 USB의 데이터 전송 속도 예컨대, 12Mbps의 정수배에서 임의로 설정될 수 있으며, 이하, 설명의 편의를 위해 기준 클럭신호는 USB 데이터 전송속도 12MHz의 8배인 96MHz인 것으로 한다. SAR 제어부(130)의 동작은 도 8 및 도 9를 참조하여 보다 상세히 설명될 것이다.
DCO(120)는 컨트롤 비트(CON_BIT)에 따라 내부의 지연시간을 조절하면서, 컨트롤 비트(CON_BIT)에 대응하는 주파수가 기준 클럭신호인 96MHz가 되는 DCO 클럭신호(DCO_CLK)를 출력한다. DCO(120)에 대해서는 도 11 및 12를 참조하여 보다 상세히 설명될 것이다.
클럭-데이터 동기부(100)는 DCO 클럭신호(DCO_CLK)에 입력 USB 데이터(USB DATA)를 동기시켜, DCO 클럭신호(DCO_CLK)에 동기된 데이터를 출력한다.
카운터값 샘플부(110)는 내부의 i비트 카운터를 이용하여 DCO 클럭신호(DCO_CLK)를 반복적으로 카운팅하며, 동기된 USB 데이터가 로우 로직에서 하이로직 또는, 하이로직에서 로우로직으로 천이될 때의 카운터값을 샘플 카운터값(SMP_CNT)으로서 출력한다. 실질적으로, 카운터값 샘플부(110)는 USB 데이터(USB DATA)가 로우 로직에서 하이로직 또는, 하이로직에서 로우로직)으로 천이될때의 카운터값을 샘플 카운터값(SMP_CNT)으로서 출력한다. 그러나, USB 데이터(DATA)와 DCO 클럭신호(DCO_CLK)의 동기가 맞지 않으면, 잘못된 샘플 카운터값(SMP_CNT)을 출력할 수 있다. 이를 방지하기 위해, 카운터값 샘플부(110)는 클럭-데이터 동기부(100)에 의해 DCO 클럭신호(DCO_CLK)에 동기된 USB 데이터를 이용하여 샘플 카운터값(SMP_CNT)을 출력한다.
FAST/SLOW 결정부(140)는 카운터값 샘플부(110)에서 출력되는 현재의 샘플 카운터값(SMP_CNT)을 기준으로, DCO 클럭신호(DCO_CLK)가 기준 클럭신호(REF_CLK)보다 주파수가 빠른 FAST 영역, 주파수가 느린 SLOW 영역 및 주파수가 같은 정상 영역을 나누며, 다음에 입력되는 샘플 카운터값이 속해있는 영역에 대한 신호를 영역신호(S1)로서 출력한다. 도 7(a)~(c)는 FAST/SLOW 결정부(140)의 기본 동작 개념을 설명하기 위한 도면으로, 도 7(a)는 동기된 USB 데이터를 나타내고, 도 7(b)는 DCO 클럭신호(DCO_CLK)를 나타내고, 도 7(c)는 카운터값 샘플부(110)에서 DCO 클럭신호(DCO_CLK)를 카운트한 값을 나타낸다. 예컨대, USB 데이터 전송 속도를 12Mbps라 하고 목표로하는 DCO 클럭신호(DCO_CLK)가 96MHz라면, 카운터값 샘플부(110)에서는 USB 데이터 1비트당 8번의 DCO 클록신호가 카운트된다. 즉, DCO 클록신호(DCO_CLK)의 주파수가 USB 데이터의 정확히 8배라면, USB 데이터가 처음 천이될 때의 DCO 클럭신호(DCO_CLK)를 카운트한 값에 8클럭을 더한 값마다 USB 데이터의 천이가 발생한다. 만약에, DCO 클록신호(DCO_CLK)가 96MHz 보다 빠르다면 USB 데이터의 천이는 8 클럭 이후에 천이가 발생하고, DCO 클록신호(DCO_CLK)가 96MHz 보다 느리다면, USB 데이터의 천이는 8클럭 이전에서 천이가 발생한다. 도 7의 경우, 처음 USB 데이터의 천이는 DCO 클럭신호(DCO_CLK)를 카운트한 값이 7일 때 발생하고, 그 다음 천이는 6클럭 만인 13일 때 발생하였으므로, DCO 클록신호(DCO_CLK)가 96MHz보다 느리다는 것을 알 수 있다. 이처럼, USB 데이터가 천이할 때의 DCO 클럭신호(DCO_CLK)를 카운트한 샘플 카운터값을 이용하여 DCO 클럭신호(DCO_CLK)가 96MHz보다 빠른가 느린가 또는 정확히 96MHZ인 가를 결정할 수 있다. 또한, FAST/SLOW 결정부(140)는 현재 입력되는 샘플 카운터값을 기준으로 FAST 영역, SLOW 영역 및 정상 영역을 나눈다. 그리고, 다음 입력되는 샘플 카운터값이 어느 영역에 속해있는 가를 판단하여, 현재 DCO 클럭신호(DCO_CLK)가 기준 클럭신호 96MHz과 같은가, 빠른가 또는 느린가를 나타내는 영역신호(S1)를 출력한다. 도 7에 도시된 바와 같이 현재 샘플 카운터값이 7인 경우, FAST/SLOW 결정부(140)는 다음에 입력되는 샘플 카운터값이 15이면 DCO 클럭신호(DCO_CLK)는 96MHz인 정상영역으로 정한다. 여기서, 15는 현재 샘플 카운터값에 2i-1클럭을 더한 값이며, 설명의 편의를 위해 n으로 일반화한다. 그리고, i는 전술된 바와 같이 DCO 클럭신호를 카운트하는 카운터의 비트수이며, i=4인 것으로 한다. 그리고, 현재 샘플 카운터값이 8~14 사이의 값 즉, n보다 1 내지 7(=2i-1-1)클럭 전에 카운트되는 값이면 DCO 클럭신호(DCO_CLK)는 96MHz보다 느린 SLOW 영역, 0~6 사이의 값 즉, n보다 1 내지 7(=2i-1-1)클럭 후에 카운트되는 값이면, DCO 클럭신호(DCO_CLK)는 96MHz보다 빠른 FAST 영역으로 각각 나눈다. 도 7의 경우, 다음 샘플 카운터값은 13이며, 이는 SLOW 영역에 속함을 알 수 있다. 따라서, FAST/SLOW 결정부(140)는 DCO 클럭신호(DCO_CLK)가 기준 클럭신호인 96MHz보다 느림을 나타내는 영역신호(S1)를 출력한다.
계속해서, N/M 필터(150)는 컨트롤 비트(ON_BIT)의 신뢰성을 높이기 위한 필터로, N은 연속적으로 발생되는 FAST 또는 SLOW 영역신호(S1)의 수를 나타내며, M은 결정구간을 나타낸다. 예를 들어, N=4, M=6이라고 설정되면, N/M 필터(150)는 FAT/SLOW 결정부(140)로부터 영역신호(S1)가 6회 발생되기 전에, FAST(또는 SLOW) 영역을 나타내는 영역신호(S1)가 연속해서 4번 이상 나타났는가를 확인한다. 만약, 영역신호(S1)가 6회 발생되기 전에, FAST(또는 SLOW) 영역을 나타내는 영역신호(S1)가 4번 이상 나타나면, 현재 DCO 클럭신호(DCO_CLK)가 기준 클럭신호 96MHz보다 빠른(또는 느린)것으로 판단하며, 이에 해당하는 영역신호(S1)를 SAT 제어부(130)로 출력하여 컨트롤 비트(CON_BIT)가 조정되도록 한다. 즉, FAST(또는 SLOW) 영역을 나타내는 영역신호(S1)가 4번 연속으로 나타나거나 또는 중간에 SLOW(또는 FAST)를 나타내는 영역신호(S1)가 한 번 나타나도, 영역신호(S1)가 6회 발생되기 전에 FAST(또는 SLOW) 영역을 나타내는 영역신호(S1)가 4번 이상 나타나므로 현재 DCO 클럭신호(DCO_CLK)가 기준 클럭신호 96MHz보다 빠른(또는 느린)것으로 판단한다. 그러나, 영역신호(S1)가 6회 발생되기 전에, FAST(또는 SLOW) 영역을 나타내는 영역신호(S1)가 4번 이상 나타나지 않으면 예컨대, SLOW(또는 FAST)를 나타내는 영역신호(S1)가 2회 이상 나타나면, 오류에 의한 것으로 판단하여, N/M 필터(150)는 SAT 제어부(130)가 현재의 컨트롤 비트를 조정하지 않고 그대로 유지하도록 유지 신호(S2)를 SAT 제어부(130)로 출력한다. 이럴 경우, SAT 제어부(130)는조정해야할 차례의 컨트롤 비트(CON_BIT)를 조정하지 않으며, N/M 필터(150)는 영역신호(S1)가 6회 발생되기 전에, FAST(또는 SLOW) 영역을 나타내는 영역신호(S1)가 연속해서 4번 이상 나타나는 가를 다시 한 번 확인하여 정상적으로 나타나면, 해당 컨트롤 비트(CON_BIT)를 조정하도록 해당 영역신호(S1)를 SAT 제어부(150)로 출력한다. 이처럼, N/M 필터(150)를 이용하여 한번의 영역신호(S1)를 이용하여 DCO 클럭신호(DCO_CLK)의 FAST 또는 SLOW를 판단하지 않고, 소정회 이상의 영역신호(S1)를 이용하여 DCO 클럭신호(DCO_CLK)의 FAST 또는 SLOW를 판단하므로 신뢰성을 높일 수 있다.
리셋 제어부(160)는 USB 데이터 수신구간동안 기준 클럭신호에 동기되는 DCO 클럭신호를 찾고, 이를 이용하여 USB 데이터의 송신이 완료되면, 각 부를 리셋시켜, 다음의 USB 수신 구간동안 새롭게 DCO 클럭신호(DCO_CLK)를 찾도록 한다.
도 8은 도 6의 장치에서 DCO(120)를 제어하는 컨트롤 비트(CON_BIT)와 DCO 클럭신호(DCO_CLK)의 주파수 관계의 일예를 나타낸 도면이다. 도 8에 도시된 DCO 클럭신호(DCO_CLK)의 주파수 곡선의 함수의 기울기는 마이너스(-) 값을 가진다. 그 이유는, 컨트롤 비트(CON_BIT)의 값이 증가할수록 DCO 클럭신호(DCO_CLK)의 주파수가 낮아지도록 DCO(120)가 설계되었기 때문이다. 만약에, 컨트롤 비트(CON_BIT)의 값이 증가할수록 DCO 클럭신호(DCO_CLK)의 주파수가 높아지도록 설계된다면 기울기는 플러스(+) 값을 갖게 된다.
도 9는 도 6의 장치에서 SAR 제어부(130)가 최적의 컨트롤 비트(CON_BIT)를 찾아가는 과정의 일예를 나타내는 도면이다.
이제, 도 8 및 도 9를 이용하여 SAR 제어부(130)가 DCO 클럭신호(DCO_CLK)가 960MHz의 주파수를 갖도록 제어하는 컨트롤 비트(CON_BIT)를 추적하는 방법을 설명한다. 이하, 설명의 편의를 위해, 컨트롤 비트(CON_BIT)는 도 8 및 도 9에 도시된 바와 같이 3비트인 것을 설명된다.
먼저, 컨트롤 비트(CON_BIT)가 011일 경우 DCO 클럭신호(DCO_CLK)가 96MHz라고 가정하고, 처음에 컨트롤 비트(CON_BIT)를 100로 임의 설정하고 첫 번째 MSB부터 추적하여 나간다. 이 경우, 도 9를 참조하면 DCO 클럭신호(DCO_CLK)의 주파수는 96MHz보다 느리므로 더 빠르게 하기 위하여, SAT 제어부(130)는 컨트롤 비트(CON_BIT)의 첫 번째 MSB는 0으로 결정한다. 다음에는 두 번째 MSB를 찾기 위하여, SAT 제어부(130)는 도 10에 도시된 바와 같이, 컨트롤 비트(CON_BIT)를 010로 설정한다. 도 9에 도시된 바와 같이, 이때는 DCO 클럭신호(DCO_CLK)의 주파수가 96MHz 보다 빠르다는 것을 알 수 있으므로 느리게 하기 위하여 SAT 제어부(130)는 두 번째 MSB는 1로 결정한다. 다음에는, SAT 제어부(130)가 3번째 비트를 결정하기 위하여 011을 설정하는데, 이 경우는 도 9에 도시된 바와 같이, DCO 클럭신호(DCO_CLK)의 주파수가 96MHz이므로, SAT 제어부(130)는 컨트롤 비트(CON_BIT)를 011로 결정한다. 이처럼, DCO 클럭신호(DCO_CLK)가 960MHz가 되면, 일정한 샘플 카운트값에서 USB 데이터는 변이가 발생하게 된다. 이상에서와 같은 방법으로 DCO 클럭신호(DCO_CLK)의 주파수를 추적하게 되면 DCO 클럭신호(DCO_CLK)의 주파수가 온도에 따라 변이 되어도, 매 RX 구간마다 주파수를 보정하여 TX의 전송 클럭으로 사용하므로, 일정한 전송 속도를 갖는 클록 발생 회로를 만들 수 있다.
도 10은 도 6에서 DCO(120)가 컨트롤 비트(CON_BIT)의 조정에 따라 목표하는 기준 클럭신호를 생성하는 과정을 나타내는 플로우 챠트이다.
이제, 도 6 내지 도 10을 참조하여, 카운터값 샘플부(110), DCO(120), FAST/SLOW 결정부(140) 및 SAR 제어부(130)이 상호 동작이 설명될 것이다. 또한, 설명의 편의를 위해 카운터값 샘플부(110)는 내부의 4비트 카운터를 이용하여 DCO 클럭신호(DCO_CLK)를 카운트하는 것으로 한다.
도 6 내지 도 10을 참조하여, SAR 제어부(130)는 최초에 임의로 컨트롤 비트(CON_BIT)를 도 8 및 도 9에 도시된 바와 같이 100으로 결정한다(제200단계). DCO(120)는 컨트롤 비트(CON_BIT) 100에 상응하는 주파수를 갖는 DCO 클럭신호(DCO_CLK)를 출력한다.
카운트값 샘플부(110)는 DCO(120)에서 출력되는 DCO 클럭신호(DCO_CLK)를 카운트하며, 입력되는 동기된 USB 데이터가 처음 천이될 때의 카운트값을 현재 샘플 카운트값으로서 생성한다(제210단계).
FAST/SLOW 결정부(140)는 카운트값 샘플부(110)에서 출력되는 현재 샘플 카운트값을 이용하여, 현재 DCO 클럭신호(DCO_CLK)가 96MHz과 같은 정상 영역인가, 96MHz보다 빠른 FAST 영역인가 또는 96MHz보다 느린 SLOW 영역인가의 영역설정을 한다(제220단계). 예컨대, 도 7을 참조하여 전술된 바와 같이, 현재 샘플 카운터값이 7인 경우, FAST/SLOW 결정부(140)는 다음에 입력되는 샘플 카운터값이 15이면 DCO 클럭신호(DCO_CLK)가 96MHz인 정상영역, 8~14 사이의 값이면 DCO클럭신호(DCO_CLK)는 96MHz보다 느린 SLOW 영역, 0~6 사이의 값이면 DCO 클럭신호(DCO_CLK)는 96MHz보다 빠른 FAST 영역으로 각각 나눌 수 있다.
제220단계 후에, FAST/SLOW 결정부(140)는 제210단계의 현재 샘플 카운트값이 8인가를 비교한다(제230단계).
제230단계에서, 현재 샘플 카운트값이 8이면, 현재 DCO 클럭신호(DCO_CLK)가 96MHz에 근접한 것이며, FAST/SLOW 결정부(140)는 현재 샘플 카운트값이 정상 영역에 있다는 것을 나타내는 영역신호(S1)를 SAR 제어부(130)로 출력한다. 그러면, SAT 제어부(130)는 제200단계에서 초기 설정된 컨트롤 비트(CON_BIT) 100의 첫 번째 MSB를 '1'로 유지한다(제240단계). 반면, 제230단계에서, 현재 샘플 카운트값이 8과 같지 않으면, 현재 샘플 카운트값이 8보다 큰가를 판단한다(제250단계).
제250단계에서, 현재 샘플 카운트값이 8보다 크면, 현재 DCO 클럭신호(DCO_CLK)가 96MHz보다 빠르다는 것이므로, FAST/SLOW 결정부(140)는 현재 샘플 카운트값이 FAST 영역에 있다는 것을 나타내는 영역신호(S1)를 SAT 제어부(130)로 출력한다. 그러면, SAT 제어부(130)는 DCO 클럭신호(DCO_CLK)가 느려지도록 제200단계에서 설정된 컨트롤 비트(CON_BIT)의 첫 번째 MSB를 조정한다(제260단계). 이 경우, 제200단계에서 초기 설정된 컨트롤 비트(CON_BIT)의 첫 번째 비트가 '1'이며, 따라서 첫 번째 MSB를 변경하여 DCO 클럭신호(DCO_CLK)의 주파수가 더 느려지도록 조정할 수 없으므로 그대로 MSB를 '1'로 그대로 유지한다. 반면, 제230단계에서, 현재 샘플 카운트값이 8보다 작으면, 현재 DCO 클럭신호(DCO_CLK)가 96MHz보다 느리다는 것이므로, FAST/SLOW 결정부(140)는 현재 샘플 카운트값이SLOW 영역에 있다는 것을 나타내는 영역신호(S1)를 SAT 제어부(130)로 출력한다. 그러면, SAT 제어부(130)는 DCO 클럭신호(DCO_CLK)가 빨라지도록 제200단계에서 설정된 컨트롤 비트(CONT_BIT)의 첫 번째 MSB를 조정한다(제270단계). 이 경우, 제200단계에서 설정된 컨트롤 비트(CON_BIT)의 첫 번째 MSB를 '1'에서 '0'으로 변환함으로써 DCO 클럭신호(DCO_CLK)를 더 빨라지게 할 수 있다.
이상에서와 같이, 컨트롤 비트(CON_BIT)의 첫 번째 MSB가 결정되면, SAT 제어부(130)는 컨트롤 비트(CON_BIT)의 나머지 비트를 임의 설정한다(제280단계). 이 때, 제240단계에서와 같이, 이전의 DCO 클럭신호(DCO_CLK)가 96MHz에 근접한 경우, SAR 제어부(130)는 컨트롤 비트(CON_BIT)를 제200단계에서 설정된 100으로 그대로 유지한다. 반면, 제260단계 및 제270단계에서와 같이, DCO 클럭신호(DCO_CLK)가 FAST 영역 또는 SLOW 영역에 있을 경우, SAT 제어부(130)는 두 번째 MSB를 '1'로 임의로 설정한다. 즉, 제260단계에서와 같이, DCO 클럭신호(DCO_CLK)가 FAST 영역에 있으면, SAT 제어부(130)는 컨트롤 비트(CON_BIT)를 110으로 설정한다. 반면, 제270단계에서와 같이, DCO 클럭신호(DCO_CLK)가 SLOW 영역에 있으면, SAT 제어부(130)는 컨트롤 비트(CON_BIT)를 010으로 설정한다. DCO(120)는 컨트롤 비트(CON_BIT) 제280단계에서 결정된 컨트롤 비트(CON_BIT)에 상응하는 주파수를 갖는 DCO 클럭신호(DCO_CLK)를 출력한다. 이하, 도 8 및 도 9를 참조한 설명의 편의를 위해, 제260단계에서와 같이 DCO 클럭신호(DCO_CLK)가 FAST 영역에 있으며, 따라서 SAT 제어부(130)는 010의 컨트롤 비트(CON_BIT)를 출력하는 것을 중점적으로 설명한다.
카운트값 샘플부(110)는 DCO(120)에서 출력되는 DCO 클럭신호(DCO_CLK)를 카운트하며, 입력되는 동기된 USB 데이터가 다시 천이될 때의 카운트값을 현재 샘플 카운트값으로서 생성하여 FAST/SLOW 결정부(140)로 출력한다(제290단계).
제290단계 후에, FAST/SLOW 결정부(140)는 입력된 현재 샘플 카운트값이 제220단계에서 설정된 영역 중 정상 영역에 속하는 가를 판단한다(제300단계).
제300단계에서, 입력된 현재 샘플 카운트값이 정상 영역에 속한다고 판단되면, 현재 DCO 클럭신호(DCO_CLK)가 96MHz에 근접한 것이며, FAST/SLOW 결정부(140)는 현재 샘플 카운트값이 정상 영역에 있다는 것을 나타내는 영역신호(S1)를 SAR 제어부(130)로 출력한다. 그러면, SAT 제어부(130)는 제280단계에서 초기 설정된 컨트롤 비트(CON_BIT) 010의 두 번째 MSB를 '1'로 유지한다(제310단계). 반면, 제300단계에서, 현재 샘플 카운트값이 정상영역에 있지 않으면, 현재 샘플 카운트값이 FAST 영역에 있는가를 판단한다(제320단계).
제320단계에서, 현재 샘플 카운트값이 FAST 영역에 있다면, 현재 DCO 클럭신호(DCO_CLK)가 96MHz보다 빠르다는 것이므로, FAST/SLOW 결정부(140)는 현재 샘플 카운트값이 FAST 영역에 있다는 것을 나타내는 영역신호(S1)를 SAT 제어부(130)로 출력한다. 그러면, SAT 제어부(130)는 DCO 클럭신호(DCO_CLK)가 느려지도록 제280단계에서 설정된 컨트롤 비트(CON_BIT)의 두 번째 MSB를 조정한다(제330단계). 이 경우, 제280단계에서 초기 설정된 컨트롤 비트(CON_BIT)의 두 번째 비트가 '1'이며, 따라서 첫 번째 MSB를 변경하여 DCO 클럭신호(DCO_CLK)의 주파수가 더 느려지도록 조정할 수 없으므로 그대로 두 번째 MSB를 '1'로 그대로 유지한다. 반면,제320단계에서, 현재 샘플 카운트값이 SLOW 영역에 있으면, 현재 DCO 클럭신호(DCO_CLK)가 96MHz보다 느리다는 것이므로, FAST/SLOW 결정부(140)는 현재 샘플 카운트값이 SLOW 영역에 있다는 것을 나타내는 영역신호(S1)를 SAT 제어부(130)로 출력한다. 그러면, SAT 제어부(130)는 DCO 클럭신호(DCO_CLK)가 빨라지도록 제280단계에서 설정된 컨트롤 비트(CONT_BIT)의 두 번째 MSB를 조정한다(제340단계). 이 경우, 제280단계에서 설정된 컨트롤 비트(CON_BIT)의 첫 번째 MSB를 '1'에서 '0'으로 변환함으로써 DCO 클럭신호(DCO_CLK)를 더 빨라지게 할 수 있다.
제340단계 후에, FAST/SLOW 결정부(140)는 다음에 입력되는 샘플 카운트값이 어느 영역에 속하는가를 판단할 수 있도록, 제290단계에서의 현재 샘플 카운터값을 이용하여 영역설정을 다시 설정한다(제350단계). 예를 들어, 도 7을 참조하여 설명하면, 두 번째 입력된 현재 샘플 카운터값이 13인 경우, FAST/SLOW 결정부(140)는 다음에 입력되는 샘플 카운터값이 5이면 DCO 클럭신호(DCO_CLK)가 96MHz인 정상영역, 0~4 및 14~15 사이의 값이면 DCO 클럭신호(DCO_CLK)는 96MHz보다 느린 SLOW 영역, 6~12 사이의 값이면 DCO 클럭신호(DCO_CLK)는 96MHz보다 빠른 FAST 영역으로 각각 나눌 수 있다.
제350단계 후에, 컨트롤 비트(CON_BIT)의 결정이 완료되었는가를 판단하여(제360단계), 컨트롤 비트(CON_BIT)의 결정이 완료되면 결정된 컨트롤 비트(CON_BIT)로 정하며, 아직 결정해야할 컨트롤 비트가 존재하면 다음 MSB들 및 LSB들의 결정을 위해 제280단계 내지 제350단계를 반복 진행하여 나머지 MSB들 및LSB들을 순차적으로 결정한다. 즉, 컨트롤 비트(CON_BIT)는 상위 n비트와 하위 m비트로 이루어지며, 이 때, 상위 n비트를 MSB들로, 하위 m비트를 LSB들로 각각 구분하여 결정하며, 그 이유에 대해서는 도 11 및 도 12를 참조하여 후술될 것이다.
도 11은 도 6에 도시된 DCO(120)의 일실시예를 개략적으로 나타낸 도면으로, 인버터들(400,410,420), 스위치들(460,470,480), LSB 셀(430,440) 및 낸드 게이트(450)를 포함하여 구성된다.
도 12는 도 11에 도시된 LSB 셀의 일실시예를 나타내는 도면이다.
도 11은 컨트롤 비트(CON_CLK)의 상위 2비트의 MSB들의 조절을 통해, 스위치들(460,470,480)의 온/오프를 제어하여 DCO의 지연 단수를 조정하면서 DCO 클럭신호(DCO_CLK)의 주파수를 크게 조절하고, 컨트롤 비트(CON_BIT)의 나머지 LSB들의 조절을 통해, 도 12에 도시된 바와 같이, LSB 셀(430,440)의 W/L을 조절하여 DCO 클럭신호(DCO_CLK)의 주파수를 미세 조정한다.
예를 들어, 컨트롤 비트(CON_BIT)가 상위 n비트와 하위 m비트로 이루어졌다면, 상위 n비트를 MSB들로, 하위 m비트를 LSB들로 각각 구분한다. 구체적으로, 도 12는 n=2인 경우로, 최상위 비트 MSB1에 의해 스위치(460)가 온되고, 차상위 비트 MSB2에 의해 스위치(480)가 온되고 스위치(470)이 오프될 때, DCO의 지연시간이 가장 길어지며 이때 가장 느린 주파수의 DCO 클럭신호(DCO_CLK)가 발생된다. 반면, 최상위 비트 MSB1에 의해 스위치(460)이 오프되고, 차상위 비트 MSB2에 의해 스위치(480)이 오프되고 스위치(470)이 온될 때, DCO의 지연시간이 가장 짧아지며 이때 가장 빠른 주파수의 DCO 클럭신호(DCO_CLK)가 발생된다. 이처럼, 컨트롤비트(CON_BIT)의 MSB들의 조정을 통해 DCO의 지연 단수를 조정하며 주파수를 크게 조절할 수 있다.
반면, LSB 셀(430,440)은 컨트롤 비트(CON_BIT)의 하위 m비트의 LSB들에 의해 LSB 셀(430,440)의 W/L을 조절하여 DCO 클럭신호(DCO_CLK)의 주파수를 조정한다. 구체적으로, 도 12에는 m=3인 경우로, LSB 셀(430,440)은 W/L이 서로 다른 트랜지스터들이 구성되며, 3비트의 LSB들이 이들 트랜지스터의 온/오프를 제어하여 전체적인 LSB 셀(430,440)의 W/L을 조정하면서 LSB 셀의 지연시간을 조정하며, DCO 클럭신호(DCO_CLK)의 주파수를 세밀하게 조정한다.
이상에서 설명된 바와 같이, 본 발명에 따른 풀 스피드 USB 클럭신호 발생 장치 및 그 방법은 USB 데이터가 입력될 때마다, 현재의 DCO 클럭신호(DCO_CLK)가 기준 클럭신호보다 빠른가 또는 느린가를 판단하면서 DCO 클럭신호(DCO_CLK)의 주파수를 조정하는 컨트롤 비트를 한비트씩 순차적으로 조정한다. 따라서, 종래와 같이 고속의 클록신호를 이용하지 않고도 요구되는 DCO 클럭신호(DCO_CLK)를 쉽게 복원할 수 있다.
또한, DCO(120)를 제외한 대부분이 디지털 회로로 구성되어 계산되므로 정확한 값을 얻을 수 있고, 아날로그 회로인 DCO(120)는 컨트롤 비트(CON_BIT)에 따른 주파수의 선형성 및 조절 범위(tuning range)에 관계없이 정확한 12MHz±0.25%를 복원할 수 있다. 이와 같은 클록 복원 방식을 응용하면 USB 통신뿐만 아니라 패킷 전송을 통한 동기 통신 방식에도 유용하게 적용될 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플라피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상 도면과 명세서에서 최적 실시예들이 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술된 바와 같이, 본 발명에 따른 클럭신호 발생 장치 및 그 방법은 USB 데이터가 입력될 때마다, 현재의 DCO 클럭신호(DCO_CLK)가 기준 클럭신호보다 빠른가 또는 느린가를 판단하면서 DCO 클럭신호(DCO_CLK)의 주파수를 조정하는 컨트롤 비트를 한비트씩 순차적으로 조정한다. 따라서, 종래와 같이 고속의 클록신호를 이용하지 않고도 요구되는 DCO 클럭신호(DCO_CLK)를 쉽게 복원할 수 있다.

Claims (12)

  1. 입력 데이터의 수신구간동안, 데이터 전송에 필요한 기준 클럭신호에 동기되는 DCO 클럭신호를 복원하고, 복원된 DCO 클럭신호를 이용하여 데이터를 전송하는 통신 장치에서 상기 DCO 클럭신호를 복원하는 클럭신호 발생 장치에 있어서,
    (m+n)비트의 컨트롤 비트의 초기값을 설정하고 있으며, 상기 DCO 클럭신호가 상기 기준 클럭신호와 같은가, 빠른가 또는 느린가를 나타내는 영역신호에 응답하여 MSB에 LSB의 순으로 상기 컨트롤 비트의 각 비트를 조정하는 SAR 제어부;
    상기 컨트롤 비트에 상응하는 발진주파수를 갖는 상기 DCO 클럭신호를 생성하는 DCO;
    내부의 i비트 카운터를 이용하여 상기 DCO 클럭신호를 카운팅하며, 상기 입력 데이터가 천이될 때의 카운터값을 샘플 카운터값으로서 출력하는 카운터값 샘플부; 및
    상기 현재의 샘플 카운터값을 기준으로, 상기 카운터값 샘플부에서 상기 DCO 클럭신호를 카운트한 값을 상기 DCO 클럭신호가 상기 기준 클럭신호보다 주파수가 빠른 FAST 영역, 주파수가 느린 SLOW 영역 및 주파수가 같은 정상 영역으로 각각 나누며, 다음 샘플 카운터값이 입력되면 상기 다음 샘플 카운터값이 어느 영역에 속하는 가를 나타낸는 상기 영역신호를 출력하는 FAST/SLOW 결정부를 포함하는 것을 특징으로 하는 클럭신호 발생 장치.
  2. 제1항에 있어서,
    상기 DCO 클럭신호에 상기 입력 데이터를 동기시켜, DCO 클럭신호에 동기된 입력 데이터를 상기 카운터값 샘플부로 제공하는 클럭-데이터 동기부; 및
    상기 FAST/SLOW 결정부 및 상기 SAR 제어부 사이에 구성되며, 상기 FAST/SLOW 결정부로부터 상기 영역신호가 M(>0)회 발생되기 전에, 동일한 영역을 나타나내는 영역신호가 N회 이상 발생되는 경우를 필터링하여, N(0<N<M)회 이상 발생된 영역신호를, 이외의 경우에는 유지신호를 상기 SAR 제어부로 출력하는 N/M 필터를 더 구비하고,
    상기 SAR 제어부는 상기 유지신호에 응답하여 현재 조정할 차례의 컨트롤 비트를 조정하지 않고 그대로 유지하며, 다음에 상기 N/M 필터로부터 입력되는 영역신호에 응답하여 상기 현재 조정할 차례의 컨트롤 비트를 조정하는 것을 특징으로 하는 클럭신호 발생 장치.
  3. 제1항 또는 제2항에 있어서,
    상기 입력 데이터의 수신구간동안 상기 기준 클럭신호에 동기되는 상기 DCO 클럭신호를 복원한 후, 다음 입력 데이터의 수신구간이 되기 전에 상기 각 부들을 리셋시키는 리셋 제어부를 더 포함하는 것을 특징으로 하는 클럭신호 발생 장치.
  4. 제1항에 있어서, 상기 기준 클럭신호는 상기 입력 데이터가 전송되는 속도의 정수배가 되는 것을 특징으로 하는 클럭신호 발생 장치.
  5. 제1항에 있어서, 상기 SAR 제어부는 상기 영역신호에 응답하여 MSB에 LSB의 순으로 한 비트씩 상기 컨트롤 비트의 각 비트를 조정하는 것을 특징으로 하는 클럭신호 발생 장치.
  6. 제1항에 있어서, 상기 DCO는
    (n+m)비트의 상기 컨트롤 비트의 상위 n비트의 MSB들 각각에 대응하여 연결되는 단수가 조절되며, 조절된 지연시간에 상응하는 주파수를 갖는 상기 DCO 클럭신호를 출력하는 다수의 지연단들; 및
    상기 다수의 지연단들 사이에 각각 연결되며, 상기 컨트롤 비트의 하위 m비트의 LSB들 각각에 대응하여, 셀의 폭/길이(W/L) 비를 조정하면서 지연시간을 미세하게 조정하여 상기 DCO 클럭신호의 주파수를 미세조정하는 다수의 지연 셀들을 포함하는 것을 특징으로 하는 클럭신호 발생 장치.
  7. DCO의 내부 지연시간을 조절하여, 목표로 하는 기준 클럭신호에 동기되는 DCO 클럭신호를 발생하는 방법에 있어서,
    (a)컨트롤 비트를 초기설정하고, 설정된 컨트롤 비트에 해당하는 주파수를 갖는 DCO 클럭신호를 i비트의 카운터로 카운트하며, 입력 데이터가 천이될 때의 카운트값을 현재 샘플 카운트값으로서 생성하는 단계;
    (b)상기 현재 샘플 카운트값을 이용하여 상기 DCO 클럭신호가 상기 기준 클럭신호와 주파수가 같은가 빠른가 또는 느린가를 판단하고, 판단결과에 따라 상기 컨트롤 비트의 취상위 비트를 결정하는 단계;
    (c)상기 현재 샘플 카운트값을 이용하여 DCO 클럭신호가 기준 클럭신호와 주파수가 같은가, 빠른가 또는 느린가를 나타내는 영역을 설정하는 단계;
    (d)컨트롤 비트의 나머지 비트들을 다시 임의 설정하고, 설정된 컨트롤 비트에 해당하는 주파수를 갖는 DCO 클럭신호를 상기 i비트 카운터를 이용하여 상기 DCO 클럭신호를 카운트하며, 상기 입력 데이터가 천이될 때의 카운트값을 현재 샘플 카운트값으로서 생성하는 단계;
    (e)상기 (d)단계에서 생성된 현재 샘플 카운트값이 상기 (c)단계에서 설정된 영역중 어느 영역에 속하는 가를 판단하여, 상기 DCO 클럭신호가 상기 기준 클럭신호와 주파수가 같은가 빠른가 또는 느린가를 판단하고, 판단결과에 따라 다음 순서의 상기 컨트롤 비트의 비트를 결정하는 단계;
    (f)상기 컨트롤 비트의 최하위 비트까지 결정이 완료되었는가를 판단하여, 아직 결정되지 않은 컨트롤 비트의 비트들이 있다면, 상기 (d)~(g)단계를 반복 수행하여 컨트롤 비트의 모든 비트들을 결정이 완료하는 단계; 및
    (g)최종 결정된 컨트롤 비트에 상응하는 주파수를 갖는 DCO 클럭신호를 상기 기준 클럭신호에 동기된 DCO 클럭신호로서 출력하는 단계를 포함하는 것을 특징으로 하는 클럭신호 발생 방법.
  8. 제7항에 있어서, 상기 입력 데이터는 상기 DCO 클럭신호에 동기된 데이터인것을 특징으로 하는 클럭신호 발생 방법.
  9. 제7항에 있어서, 상기 DCO 클럭신호가 상기 기준 클럭신호와 주파수가 같은가 빠른가 또는 느린가를 판단하는 각 단계는,
    상기 입력 데이터가 M(>0)번 천이하는 동안, 적어도 N(0<N<M)회 이상 상기 현재 샘플 카운터값이 동일한 영역에 속하면 해당 영역으로 판정하는 것을 특징으로 하는 클럭신호 발생 방법.
  10. 제7항에 있어서, 상기 (b)단계는
    (b1)상기 현재 샘플 카운트값이 2i-1인가를 비교하는 단계;
    (b2)상기 현재 샘플 카운트값이 2i-1이면, 상기 DCO 클럭신호가 상기 기준 클럭신호에 근접한 것으로 판단하여, 상기 (a)단계에서 설정된 컨트롤 비트의 최상위 비트를 그대로 유지하는 단계;
    (b3)상기 현재 샘플 카운트값이 0~2i-1-1 사이의 값이면, 상기 DCO 클럭신호가 상기 기준 클럭신호보다 주파수가 느린 것으로 판단하여, 상기 DCO 클럭신호가 현재의 주파수보다 빨라질 수 있도록 상기 (a)단계에서 설정된 컨트롤 비트의 최상위 비트를 변경하는 단계; 및
    (b4)상기 현재 샘플 카운트값이 (2i-1+1)~(21-1) 사이의 값이면, 상기 DCO 클럭신호가 상기 기준 클럭신호보다 주파수가 빠른 것으로 판단하여, 상기 DCO 클럭신호가 현재의 주파수보다 느려질 수 있도록 상기 (a)단계에서 설정된 컨트롤 비트의 최상위 비트를 변경하는 단계를 포함하는 것을 특징으로 하는 클럭신호 발생 방법.
  11. 제7항에 있어서, 상기 (C)단계의 영역 설정은
    상기 DCO 클럭신호를 카운트한 값이 n보다 1 내지 21-1-1클럭 전에 카운트되는 값이면, 상기 SLOW 영역으로 설정하고,
    상기 DCO 클럭신호를 카운트한 값이 n이면, 상기 정상 영역으로 설정하고,
    상기 DCO 클럭신호를 카운트한 값이 n보다 1 내지 21-1-1클럭 후에 카운트되는 값이면, 상기 FAST 영역으로 각각 설정하며,
    여기서, n은 상기 현재 샘플 카운트값에 21클럭을 더한 값인 것을 특징으로 하는 클럭신호 발생 방법.
  12. 제7항 내지 제11항의 방법을 컴퓨터에서 실행 가능한 프로그램 코드로 기록한 기록 매체.
KR10-2003-0052089A 2003-07-28 2003-07-28 클럭신호 발생 장치 및 그 방법 KR100524979B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2003-0052089A KR100524979B1 (ko) 2003-07-28 2003-07-28 클럭신호 발생 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0052089A KR100524979B1 (ko) 2003-07-28 2003-07-28 클럭신호 발생 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20050013434A true KR20050013434A (ko) 2005-02-04
KR100524979B1 KR100524979B1 (ko) 2005-10-31

Family

ID=37224943

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0052089A KR100524979B1 (ko) 2003-07-28 2003-07-28 클럭신호 발생 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR100524979B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100717880B1 (ko) * 2005-05-19 2007-05-14 최중호 Sar 방식을 이용한 연속-시간 아날로그 필터의 주파수 보정 회로
WO2010085008A1 (ko) * 2009-01-22 2010-07-29 주식회사 글로넷시스템즈 디지털 클럭 데이터 복원기 및 이를 적용한 트랜시버

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100717880B1 (ko) * 2005-05-19 2007-05-14 최중호 Sar 방식을 이용한 연속-시간 아날로그 필터의 주파수 보정 회로
WO2010085008A1 (ko) * 2009-01-22 2010-07-29 주식회사 글로넷시스템즈 디지털 클럭 데이터 복원기 및 이를 적용한 트랜시버
KR101109198B1 (ko) * 2009-01-22 2012-01-30 서울대학교산학협력단 디지털 클록 데이터 복원기 및 이를 적용한 트랜시버

Also Published As

Publication number Publication date
KR100524979B1 (ko) 2005-10-31

Similar Documents

Publication Publication Date Title
KR100436676B1 (ko) 고속, 동기된 데이터 통신을 위한 시스템 및 방법
US8634503B2 (en) Fast lock clock-data recovery for phase steps
US9425781B2 (en) Syncless unit interval variation tolerant PWM receiver circuit, system and method
JPH08507668A (ja) 直列データ・バス用スキュー除去装置
US9001951B1 (en) Techniques for transferring time information between clock domains
US7134035B2 (en) Method for generating a synchronization signal based on the clock ratio between two clock domains for data transfer between the domains
JP4141885B2 (ja) シリアル通信装置
US7254201B2 (en) Clock and data recovery circuit and method
CN106301378A (zh) 一种高速dac同步方法及电路
WO2021142828A1 (zh) 时间同步方法及装置、网络节点设备
US7864906B2 (en) System and method for clock signal synchronization
US7194057B2 (en) System and method of oversampling high speed clock/data recovery
US7443213B2 (en) Staged locking of two phase locked loops
EP1965537B1 (en) Clock recovery apparatus
KR100524979B1 (ko) 클럭신호 발생 장치 및 그 방법
US6137851A (en) System and method for synchronizing a signal with respect to another signal
CN111404658A (zh) 亚稳态校正方法
US7366207B1 (en) High speed elastic buffer with clock jitter tolerant design
KR100418017B1 (ko) 데이터 및 클럭 복원회로
JP2002009745A (ja) 受信装置およびデータ伝送装置
JPH1098763A (ja) パイロット信号の基地局間同期方法及び回路
EP1540863B1 (en) Staged locking of phase locked loops
KR100333717B1 (ko) 입력신호의에지검출을이용한클럭발생장치
JP3493111B2 (ja) 半導体集積回路装置
JP2003174484A (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
LAPS Lapse due to unpaid annual fee