KR20200074917A - 직렬 통신을 위한 슬레이브 디바이스 및 방법 - Google Patents

직렬 통신을 위한 슬레이브 디바이스 및 방법 Download PDF

Info

Publication number
KR20200074917A
KR20200074917A KR1020197038605A KR20197038605A KR20200074917A KR 20200074917 A KR20200074917 A KR 20200074917A KR 1020197038605 A KR1020197038605 A KR 1020197038605A KR 20197038605 A KR20197038605 A KR 20197038605A KR 20200074917 A KR20200074917 A KR 20200074917A
Authority
KR
South Korea
Prior art keywords
data
clock signal
serial
bit data
slave device
Prior art date
Application number
KR1020197038605A
Other languages
English (en)
Other versions
KR102289930B1 (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 KR20200074917A publication Critical patent/KR20200074917A/ko
Application granted granted Critical
Publication of KR102289930B1 publication Critical patent/KR102289930B1/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
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • 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
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Dc Digital Transmission (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 직렬 통신을 위한 슬레이브 디바이스 및 방법을 개시하며, 상기 방법은, 클럭 신호 단자를 통해 직렬 클럭 신호를 수신하는 단계; 데이터 입력 단자를 통해 복수의 연속된 비트 데이터를 포함하는 데이터를 수신하는 단계; 시스템 클럭 신호와 동기화하여 상기 데이터를 시프트하여 비트 데이터를 획득하는 단계; 및 상기 직렬 클럭 신호와 동기화하고, 상기 데이터를 래치하고 데이터 출력 단자를 통해 적어도 일부의 래치된 비트 데이트를 송신하는 단계를 포함하며, 상기 직렬 클럭 신호 및 시스템 클럭 신호는 제1 클럭 주기 및 제2 클럭 주기를 각각 갖고 상기 제1 클럭 주기는 상기 제2 클럭 주기보다 크다. 상기 방법은 시스템 클럭 신호와 동기화 하여 비트 데이터를 시프트하며 직렬 클럭 신호와 동기화 하여 미리 시프트된 비트 데이터를 래치 및 송신하여 송신 데이터 준비 시간이 론치 에지 전에 시프트되어 시스템 클럭/직렬 클럭 신호 주파수 비율이 낮아지도록 하여 전송 속도를 향상시킬 수 있다.

Description

직렬 통신을 위한 슬레이브 디바이스 및 방법
본 출원은 2018년12월 10일자로 출원된 "직렬 통신을 위한 슬레이브 디바이스 및 방법"이란 중국 특허 출원 제201811501631.6호에 대한 우선권을 주장하며, 상기 출원 전반에 걸친 내용을 참조하고 인용하였다.
본 발명은 통신기술 분야에 관한 것이고, 구체적으로 직렬 통신을 위한 슬레이브 디바이스 및 방법에 관한 것이다.
종래 기술에서, SPI(Serial Peripheral Interface, 직렬 주변 장치 인터페이스)슬레이브 디바이스로부터 데이터를 전송하기 위한 공통 설계 방법의 구조도가 도 1에 도시되어 있다. SPI 슬레이브 디바이스(100)는 클럭 신호 단자(SCLK)를 통해 직렬 클럭 신호(SCLK)를 수신하고, 데이터 입력 단자(MOSI)를 통해 데이터를 수신하고, 데이터 출력 단자(MISO)를 통해 데이터를 전송한다. SPI 슬레이브 디바이스는 SPI 직렬 클럭(SCLK)의 내부에 주파수보다 수배 높은 주파수를 갖는 시스템 클럭이 배치되며, 에지 검출 모듈(110)은 SPI 직렬 클럭 신호(SCLK)의 에지, 즉 론치 에지(Launch edge)를 동기적으로 검출하며, 즉, 직렬 클럭 신호(SCLK)의 상승 에지 또는 하강 에지의 점프를 검출하여, 론치 에지 신호를 획득한다. 상기 론치 에지 신호는 인에이블 신호(ENTX)로서 사용되고, 하나의 시스템 클럭(SYSCLK) 주기의 하이 레벨만이 유효하게 유지된다. 로직 모듈(120)은 인에이블 신호에 따라 저장 모듈(130)로부터 데이터를 판독하고, 1 비트의 송신 데이터를 시프트 출력하여 출력 단자(MISO)로 전송하고, 하나의 데이터 세트(일반적으로 8 비트)가 시프트되고, 다음 데이터 세트가 메모리로부터 추출되고 다시 시프트된다.
도 2는 본 방법의 SPI 모드 0에 의해 전송된 데이터의 파형도이다. 도면에 도시된 바와 같이, SPI 직렬 클럭은 일반적으로 SPI가 데이터(CS 유효 기간)를 송신할 때에만 동작하고, 다른 시간은 고정된 레벨을 변경되지 않게 유지한다 (심지어 변경이 CS 도어에 의해 제어될 수 있다). SPI 모드 0 은 제1SPI 직렬 클럭 론치 에지가 도착하기 전에 제1 비트 데이터를 준비하 데이터 출력 단부(MISO)에 출력하는 것을 필요로 한다. SPI 직렬 클럭이 도달하기 전에, SPI 직렬 클럭은 제1 비트 데이터 전송을 수행하기 위해 메모리로부터 데이터를 판독하기 위해 사용될 수 없어서, 시스템 클럭 신호 (SYSCLK)는 일반적으로 데이터를 전송하기 위해 사용된다.
이런 데이터 전송 방법은 일부 결함을 갖는다. 도 2에서, SPI 직렬 클럭의 론치 에지로부터 시스템 클럭(SYSCLK)으로 클럭 영역을 가로질러 동기화되고 SPI 직렬 클럭의 론치 에지에 대한 점프 신호가 검출되며, 이 점프 신호는 인에이블 신호 (ENTX) 변위 출력 데이터로 되고 이 데이터 준비 지연 Ta(MISO data prepare delay)는 일반적으로 2~3개의 시스템 클럭(SYSCLK) 주기(TSYSCLK)이다. 또 다른 하나의 지연은 데이터가 PAD/board에서 지연 Tb(MISO PAD/board delay)를 전송한다. SPI 직렬 클럭의 반주기(TSCLK/2)에서 데이터 준비 지연(Ta)과 PAD/board에서 데이터의 전송 지연 Tb(MISO PAD/board delay)를 빼면 수신단의 출력 데이터의 설정 시간Tc(MISO setup time)이다. 일 프로젝트에서는, PAD/board에서 데이터의 전송 지연(Tb)은 고정되고, 더 큰 데이터 준비 지연(Ta)은 출력 데이터 설정 시간(Tc)이 더 작아지고 전송 속도의 증가가 제한되도록 한다.
수신단에서 출력 데이터의 설정 시간 조건을 충족하기 위해 SPI 직렬 클럭 주파수(즉, 전송 속도)가 일정한 경우(즉, TSCLK/2가 일정함), 데이터 준비 지연(Ta)을 줄이기 위해 높은 주파수를 갖는 시스템 클럭 신호(SYLSCK)가 필요하거나, 시스템 클럭 신호(SYLSCK)가 일정한 경우, 지원할 수 있는 SPI 직렬 클럭의 최고 주파수가 낮으며, 이는 시스템 클럭(SYSCLK)/직렬 클럭(SCLK)의 주파수 비율이 높은 것으로 표현된다.
본 발명은 상기와 같은 문제점을 해결하기 위해 창출된 것으로, 본 발명의 목적은 시스템 클럭(SYSCLK)/직렬 클럭 신호(SCLK)의 주파수 비율을 낮춰 더 이상적인 출력 데이터의 설정 시간을 획득하기 위해 직렬 통신을 위한 슬레이브 디바이스 및 방법을 개시하는 것을 목적으로 한다.
본 발명의 일측면에 있어서, 슬레이브 디바이스를 위한 직렬 통신 방법을 개시하며, 상기 방법은, 클럭 신호 단자를 통해 직렬 클럭 신호를 수신하는 단계; 데이터 입력 단자를 통해 복수의 연속된 비트 데이터를 포함하는 데이터를 수신하는 단계; 시스템 클럭 신호와 동기화하여 상기 데이터를 시프트하여 비트 데이터를 획득하는 단계; 및 상기 직렬 클럭 신호와 동기화하고, 상기 비트 데이터를 래치하고 데이터 출력 단자를 통해 적어도 일부의 래치된 비트 데이트를 송신하는 단계를 포함하며, 상기 직렬 클럭 신호 및 시스템 클럭 신호는 제1 클럭 주기 및 제2 클럭 주기를 각각 갖고 상기 제1 클럭 주기는 상기 제2 클럭 주기보다 크다.
선택적으로는, 상기 직렬 클럭 신호의 연속 주기에서 상기 데이터의 선택 비트 데이터는 시프트 및 래치되고 각각 전송된다.
선택적으로는, 상기 직렬 클럭 신호에 따라 구동 클럭 신호를 발생시키며, 상기 구동 클럭 신호의 에지에서 상기 비트 데이트를 송신하는 단계를 더 포함한다.
선택적으로는, 상기 구동 클럭 신호는 상기 직렬 클럭 신호에 따라 게이팅 및/또는 위상 변환에 의해 획득될 수 있다.
선택적으로는, 상기 데이터를 시프트하는 단계는, 상기 직렬 클럭 신호의 제1 클럭 주기에서 적어도 하나의 제2 클럭 주기를 지연시켜 상기 시스템 클럭 신호에 동기된 인에이블 신호를 획득하는 단계; 및 상기 인에이블 신호에 따라 상기 데이터를 시프트하여 비트 데이터를 획득하는 단계를 포함한다.
선택적으로는, 상기 인에이블 신호에 따라 상기 비트 데이터를 시프트하여 제1 비트 데이터를 획득하고, 상기 제1 비트 데이터를 래치하고, 래치된 제1 비트 데이터를 송신하는 단계를 더 포함한다.
선택적으로는, 상기 직렬 클럭 신호에 따라 선택 신호가 얻어지고, 상기 데이터의 제1 비트 데이터 및 나머지 비트 데이터를 데이터 출력 단자에 선택적으로 제공하는 단계를 더 포함한다.
선택적으로는, 상기 슬레이브 디바이스의 동작 모드에 따라 상기 직렬 클럭 신호의 상승 에지 또는 하강 에지에서 상기 비트 데이터를 송신한다.
선택적으로는, 상기 슬레이브 디바이스의 동작 모드에 따라, 상기 직렬 클럭 신호의 제1 에지 전 또는 후에 상기 제1 비트 데이터를 송신한다.
본 발명의 다른 측면에 있어서, 직렬 통신을 위한 슬레이브 디바이스를 개시하며, 상기 슬레이브 디바이스는 클럭 신호 단자를 통해 직렬 클럭 신호를 수신하고 데이터 입력 단자를 통해 데이터를 수신하며 데이터 출력 단자를 통해 상기 데이터를 송신하며, 상기 슬레이브 디바이스는 상기 데이터를 저장하는 저장 모듈; 저장 모듈에 접속하되고 시스템 클럭 신호와 동기화하여 상기 데이터를 시프트하여 비트 데이터를 획득하는 로직 모듈; 로직 모듈에 접속되고 상기 제1 비트 데이터를 래치하는 제1 래치 모듈; 로직 모듈에 접속되고 상기 데이터의 나머지 데이터 비트 데이터를 래치하는 제2 래치 모듈; 상기 직렬 클럭 신호와 동기화하는 선택 신호를 획득하는 선택 신호 생성 모듈; 제1 래치 모듈, 제2 래치 모듈 및 선택 신호 생성 모듈에 접속되고 선택 신호에 따라 상기 제1 비트 데이터와 상기 나머지 데이터 중의 하나를 상기 데이터 출력 단자에 제공하는 선택 모듈을 포함하며, 상기 직렬 클럭 신호와 상기 시스템 클럭 신호는 제1 클럭 주기 및 제2 클럭 주기를 각각 갖고 상기 제1 클럭 주기는 상기 제2 클럭 주기보다 크다.
선택적으로는, 상기 직렬 클럭 신호의 제1 클럭 주기에서 적어도 하나의 제2 클럭 주기를 지연시켜 상기 시스템 클럭 신호에 동기된 인에이블 신호를 획득하는 에지 검출 모듈을 더 포함한다.
선택적으로는, 상기 직렬 클럭 신호에 따라 게이팅 및/또는 위상 변환에 의해 획득되는 구동 클럭 신호를 위한 클럭 모듈을 더 포함하고 상기 선택 신호 생성 모듈은 상기 구동 클럭 신호의 에지 검출에 따라 상기 선택 신호를 생성한다.
선택적으로는, 상기 로직 모듈은 슬레이브 디바이스의 동작 모드에 따라 제1 비트 데이터를 상기 제1 래치 모듈 또는 상기 제2 래치 모듈로 시프트한다.
선택적으로는, 상기 제1 래치 모듈은 트리거 및 제어 로직을 포함하며, 제1 비트 데이터를 래치 및 출력하기 위한 것이다.
선택적으로는, 상기 제2 래치 모듈은 트리거를 포함하고, 상기 구동 클럭 신호는 트리거의 클럭 단부에 작용하고, 다른 비트 데이터를 래치 및 출력한다
선택적으로는, 상기 선택 신호 생성 모듈은 트리거 및 제어 로직 모듈을 포함하고, 선택 신호을 제어한다.
본 발명에 따른 직렬 통신을 위한 슬레이브 디바이스 및 방법은 다음과 같은 장점 또는 이점을 갖는다. 시스템 클럭(SYSCLK)를 사용하여 검출된 직렬 클럭 신호(SCLK) 에지에 따라, 론치 에지라고도 하며, 즉 직렬 클럭 신호(SCLK)의 상승 에지 또는 하강 에지는 송신될 데이터를 준비하기 위해 미리 시프트되고, 직렬 클럭 신호(SCLK)의 론치 에지가 도착할 때, 즉 상기 클럭 에지를 이용하여 트리거에 작용하며, 상기 송신될 데이터는 래치되고 송신되며, 선택기에 의해 선택되고 출력된다. 따라서, 데이터를 송신하는 준비 지연이 론치 에지가 도착하기 전에 시프트되고, 송신 데이터가 수신 단부에 도달하면, 송신 지연(PAD/board delay)만이 존재하여, 최상의 송신 데이터 설정 시간이 얻어지고, 시스템 클럭(SYSCLK)/직렬 클럭 신호(SCLK)의 주파수 비율이 감소된다.
또한, 송신될 데이터는 미리 시프트되어 준비되는 것은, 시스템 클럭(SYSCLK)에의해 검출되는 직렬 클럭 신호(SCLK) 론치 에지에 따라 수행되며, 최대 지연 시간은 3 개의 시스템 클럭(SYSCLK) 주기이며, 전송될 데이터는 시스템 클럭 (SYSCLK) 에 의해 검출된 직렬 클럭 신호 (SCLK) 전송 에지를 따라 전송되고, 최대 지연 시간은 3 개의 시스템 클럭 syk 사이클이며, 직렬 클록 신호(SCLK)의 2 개의 론치 에지의 간격(즉 주기)가 3 개의 시스템 클록(SYSCLK)주기보다 큰 한, 직렬 클럭 신호(SCLK)의 론치 에지(모드에 따라 구동 클록 신호(GSCLK)로 변함)를 이용하여 시스템 클록(SYSCLK)에 의해 미리 시프트되어 준비되는 송신될 데이터를 직접적으로 래치되고 송신되어, 송신 트리거의 설정 시간 및 보유 시간 요건이 충족되고, 데이터의 정확한 송신이 보장된다.
또한, 시스템 클럭(SYSCLK)을 이용하여 저장 모듈을 작도하는 것은 SPI 전송이 시작되기 전에 직렬 클럭 신호(SCLK)가 생성되지 않는 조건 하에서 제1 비트 데이터가 판독, 준비 및 송신되고, 비-직렬 클럭 신호 (SCLK)동안 메모리 모듈의 제어 문제(예를 들어, 비움, 동기화 등)가 해결된다.
또한, 제1 비트 데이터 래치 모듈이 추가되어, 제1직렬 클럭 신호(SCLK) 론치 에지 전에 SPI 상이한 모드에서의 제1 비트 데이터가 송신되며 제1 비트 데이터 래치 모듈에 대해 단지 하나의 트리거만이 사용되어, 비용이 낮다.
또한, 시프트 데이터 래치 및 송신 모듈을 추가함으로써, 송신 데이터의 각 비트가 각각의 직렬 클럭 신호(SCLK)의 론치 에지가 송신된 후에 송신 비트 데이터만을 송신하는 것이 보장되어, 수신 단부에서의 송신 데이터의 유지 시간(hold time)이 보장되고, 데이터 송신이 스태거되는 것이 방지되며, 시프트 데이터 래치 및 송신 모듈은 단지 하나의 트리거만이 사용되어, 비용이 낮다.
또한, 선택 신호 생성 모듈 및 선택 모듈을 추가함으로써, 선택 모듈은 상이한 모드에서 정확한 변위 비트 데이터 출력을 선택할 수 있다.
이하 첨부된 도면을 참조하여 본 발명의 실시예에 대한 설명을 통해 본 발명의 상기 및 기타 목적, 특징 및 장점을 더욱 명백하게 하며, 첨부된 도면에서,
도 1은 종래의 기술에 따른 직렬 통신을 위한 슬레이브 디바이스의 구조적 블록도를 보여준다.
도 2는 종래의 기술에 따른 슬레이브 디바이스의 직렬 통신의 시퀀스 다이어그램을 보여준다.
도 3은 본 발명의 제1 실시예에 따른 슬레이브 디바이스의 직렬 통신 방법의 흐름도를 보여준다.
도 4는 본 발명의 제2 실시예에 따른 슬레이브 디바이스의 직렬 통신 방법의 흐름도를 보여준다.
도 5는 본 발명의 실시예에 따른 슬레이브 디바이스의 직렬 통신의 4가지 작동 모드를 보여준다.
도 6은 본 발명의 제3 실시예에 따른 직렬 통신을 위한 슬레이브 디바이스의 구조적 블록도를 보여준다.
도 7은 본 발명의 제4 실시예에 따른 슬레이브 디바이스 SPI 모드0에서 데이터를 송신하는 방법에 대한 시퀀스 다이어그램을 보여준다.
도 8은 본 발명의 제5 실시예에 따른 슬레이브 디바이스 SPI 모드 1에서 데이터를 송신하는 방법에 대한 시퀀스 다이어그램을 보여준다.
이하, 본 발명의 다양한 실시예는 첨부된 도면을 참조하여 설명한다. 각 도면에서 동일한 소자는 동일하거나 유사한 부호를 사용하여 표시한다. 명확히 하기 위해 첨부된 도면의 각 부분은 비례적으로 그려지지 않는다.
아래는 첨부된 도면과 실시 예를 참조하여 본 발명의 구체적인 실시 방식에 대해 좀 더 자세히 설명한다.
SPI 버스는 전이중이고 동기화된 주변기기 인터페이스 버스이며, 상기 인터페이스는 로우 레벨이고 유효한 슬레이브 선택 라인(CS), 직렬 클럭 라인(SCLK), 마스터 입력/슬레이브 출력 데이터 라인(MISO), 마스터 출력/슬레이브 입력 데이터 라인(MISO) 4개의 신호 라인을 포함한다. 신호 라인이 적고 프로토콜이 간단하기 때문에 상대적인 데이터 속도가 높고 대부분의 칩이 SPI 인터페이스를 집적한다. SPI는 주종 방식으로 작업하는데, 이러한 모드는 보통 하나의 마스터 디바이스와 하나 또는 복수의 슬레이브 디바이스가 있으며, 데이터는 주종 디바이스 사이에서 SPI 직렬 클럭의 샘플링에 따라 한 비트의 데이터를 수신하고 론치 에지가 한 비트의 데이터를 송신하여 데이터 송수신을 수행하고 전이중 통신 방식(송수신)을 구현한다.
CS는 칩 선택 신호로, 마스터 디바이스로부터 발생하며, 각 슬레이브 디바이스가 유일한 CS에 대응하며, 슬레이브 디바이스가 마스터 디바이스에 의해 선택되었는지 여부를 표현하며, 보통 로우 레벨이고 유효한다. CS 유효 기간이 주종 디바이스 사이에서 한 번에 유효한 SPI 전송으로, 복수의 그룹에 포함된 복수 비트의 데이터를 전송할 수 있다. SPI 직렬 클럭(SCLK)도 마스터 디바이스로부터 발생하며, 주종 디바이스는 SPI 직렬 클럭(SCLK)의 샘플링 에지/론치 에지에 따라 데이터를 수송신하며; 마스터 디바이스는 샘플링 에지에서 샘플링에 의해 디바이스로부터 송신된 MISO 데이터를 수신하고, 론치 에지에서 데이터 MOSI를 슬레이브 디바이스에 송신하며, 슬레이브 디바이스는 샘플링 에지에서 디바이스로부터 송신된 MOSI데이터를 샘플링하여 수신하고 론치 에지에서 데이터 MISO를 마스터 디바이스에 송신한다.
론치 에지는 클럭 신호의 레벨 점프 에지로, 상승 에지 또는 하강 에지이며, 하나의 시퀀스 다이어그램에서 시퀀스 분석의 시작점이 된다.
도 3은 본 발명의 제1 실시예에 따른 슬레이브 디바이스의 직렬 통신 방법의 흐름도를 보여주며, 상기 방법은 슬레이브 디바이스 직렬 통신 장치를 통해 구현되고, 구체적으로는 다음과 같은 단계를 포함한다.
단계(S301)에서, 직렬 클럭 신호 및 데이터를 수신한다.
SPI 슬레이브 디바이스의 칩 선택 신호(CS)가 유효하기 전에 마스터 디바이스로부터 전송된 직렬 클럭 신호(SCLK)를 수신하여 데이터 입력 단자(MOSI)를 통해 송신할 데이터(DATA)를 수신하여 데이터 저장 모듈에 저장한다.
직렬 클럭 신호(SCLK)는 SPI 슬레이브 디바이스 시스템의 클럭 신호로서 슬레이브 디바이스에 의해 생성된다.
단계(S302)에서, 시스템 클럭 신호와 동기화하여 데이터를 시프트하여 비트 데이터를 획득한다.
시스템 클럭 신호(SYSCLK)는 SPI 슬레이브 디바이스 내부의 시스템 클럭이고, 시스템 클럭 신호(SYSCLK)를 이용하여 직렬 클럭 신호(SCLK)의 에지를 동기화하여 검출하여 인에이블 신호(ENBIT)를 획득한다. 인에이블 신호(ENBIT) 가 해당 한 유효 시간대를 유지하도록 하며, 유효 시간대는 직렬 클럭 신호의 에지 지연 제1 시간대로부터 시작하여 제2 시간대를 지속하며, 제1 시간대와 상기 제2 시간대는 각각 최소 하나의 제2 클럭 주기를 포함합니다. 예를 들어, 시스템 클럭 신호(SYSCLK)의 주기는 제2 클럭 주기이며, 인에이블 신호(ENBIT)의 유효 시간대는 직렬 클럭 신호(SCLK)의 에지에 비교하면 2~3개의 시스템 클럭 신호 주기 지연이 있고 유효 시간대는 하나의 시스템 클럭 주기만의 유효를 유지한다.
인에이블 신호(ENBIT)의 에지와 시스템 클럭 신호(SYSCLK)의 에지를 동기화하고 이 에지에서 메모리에 저장된 데이터를 시프트하여 비트 데이터를 획득한다.
상기 에지는 클럭 신호의 레벨 점프 에지로, 상승 에지 또는 하강 에지이며, 론치 에지라고도 한다.
단계(S303)에서, 직렬 클럭 신호와 동기화하고, 미리 시프트된 비트 데이터를 래치하여 송신한다.
직렬 클럭 신호(SCLK)의 에지, 즉 론치 에지에서 미리 시프트된 비트 데이터를 래치하여 송신하며, 제2 래치 모듈에 래치하여 선택 모듈로 송신한다.
상기 미리 시프트된 비트 데이터는 현재의 론치 에지에 의해 송신된 데이터로, 시스템 클럭 신호(SYSCLK)가 지난 론치 에지에 의해 획득된 인에이블 신호(ENBIT)를 동기화하고 검출하여 시프트된 데이터이고, 시스템 클럭 신호(SYSCLK)가 현재의 론치 에지에 의해 획득된 인에이블 신호(ENBIT)를 동기화하고 검출하여 시프트된 데이터는 다음 론치 에지 시간에서 송신된다.
직렬 클럭 신호(SCLK)에 비해 인에이블 신호(ENBIT)의 에지가 하나의 지연이 존재하기 때문에 인에이블 신호(ENBIT)에 따라 시프트된 비트 데이터는 직렬 클럭 신호(SCLK)에 비해 에지가 하나의 지연이 존재하며, 즉 직렬 클럭 신호와 동기화하고 래치되어 송신된 시프트 데이터는 직렬 클럭 신호(SCLK)의 지난 주기의 에지를 검출하여 획득된 인에이블 신호(ENBIT) 에 따라 시프트된 비트 데이터이다.
단계(S304)에서, 선택 신호를 생성하고 선택 모듈이 선택 신호에 따라 비트 데이터를 출력하도록 선택한다.
선택 신호(SEL)는 직렬 클럭 신호(SCLK)에 따라 획득된다. 직렬 클럭 신호(SCLK)의 제1 론치 에지가 도착하기 전에 선택 신호(SEL)가 1이고, 제1 론치 에지가 지난 후에 선택 신호(SEL)가 0이다. 선택 신호(SEL)가 1일 경우, 선택 모듈은 제1 래치 출력단에 연결되고 선택 신호(SEL)가 0일 경우, 선택 모듈은 제2 래치 출력단에 연결된다.
상기 단계는 슬레이브 디바이스 직렬 통신 방법의 데이터 전송이 시작된 후, 즉 제1 론치 에지에서 시작된 데이터 전송 흐름만 보여준다. 슬레이브 디바이스가 데이터를 전송하기 전, 즉 제1 론치 에지의 전에 상기 방법은 제1 론치 에지의 전에 하나의 시프트 비트 데이터를 준비하여 제1 론치 에지 시간에 송신하는 단계를 더 포함한다. SPI슬레이브 디바이스 모드의 선택에 따라 상기 방법은 하나의 시프트 비트 데이터를 미리 준비하기 전에 하나의 비트 데이터에 대한 시프트 및 래치를 수행하여 이가 제1 모듈에 시프트되어 래치되고 제1 론치 에지의 전에 이를 데이터출력단(MISO)으로 송신한다.
도 4는 본 발명의 제2 실시예에 따른 슬레이브 디바이스의 직렬 통신 방법의 흐름도를 보여준다. 도 3에 도시된 방법과 비교하여 도 4는 바람직한 실시예로서, 다른 점은 하나의 구동 클럭 신호(GSCLK)를 추가하여 구동 클럭의 에지에서 시프트 비트 데이터에 대해 래치 및 송신을 수행하며, 이 방법은 다음과 같은 단계를 포함한다.
단계(S401)에서, 직렬 클럭 신호 및 데이터를 수신한다.
SPI 슬레이브 디바이스의 칩 선택 신호(CS)가 유효하기 전에 마스터 디바이스로부터 전송된 직렬 클럭 신호(SCLK)를 수신하여 데이터 입력 단자(MOSI)를 통해 송신할 데이터(DATA)를 수신하여 데이터 저장 모듈에 저장한다.
직렬 클럭 신호(SCLK)는 SPI 슬레이브 디바이스 시스템의 클럭 신호로서 슬레이브 디바이스에 의해 생성된다.
단계(S402)에서, 직렬 클럭 신호에 따라 구동 클럭 신호를 획득한다.
하나의 모듈을 추가하는데 직렬 클럭 신호(SCLK)를 입력하고 구동 클럭 신호(GSCLK)를 출력하며, 구체적으로 구동 클럭 신호(GSCLK)는 위상 변환 및/또는 게이팅 직렬 클럭 신호(SCLK)에 의해 생성될 수 있다. CS가 유효한 동안에만 게이팅이 제어되도록 하여 구동 클럭 신호(GSCLK)작업을 허용한다.
단계(S403)에서, 시스템 클럭 신호와 동기화하고, 데이터를 시프트하여 비트 데이터를 획득한다.
시스템 클럭 신호(SYSCLK)는 SPI 슬레이브 디바이스 내부의 시스템 클럭이고, 시스템 클럭 신호(SYSCLK)를 이용하여 직렬 클럭 신호(SCLK)의 에지를 동기화하여 검출하여 인에이블 신호(ENBIT)를 획득한다. 인에이블 신호(ENBIT) 가 해당 한 유효 시간대를 유지하도록 하며, 유효 시간대는 직렬 클럭 신호의 에지 지연 제1 시간대로부터 시작하여 제2 시간대를 지속하며, 제1 시간대와 상기 제2 시간대는 각각 최소 하나의 제2 클럭 주기를 포함합니다. 예를 들어, 시스템 클럭 신호(SYSCLK)의 주기는 제2 클럭 주기이며, 인에이블 신호(ENBIT)의 유효 시간대는 직렬 클럭 신호(SCLK)의 에지에 비교하면 2~3개의 시스템 클럭 신호 주기 지연이 있고 유효 시간대는 하나의 시스템 클럭 주기만의 유효를 유지한다.
인에이블 신호(ENBIT)의 에지와 시스템 클럭 신호(SYSCLK)의 에지를 동기화하고 이 에지에서 메모리에 저장된 데이터를 시프트하여 비트 데이터를 획득한다.
상기 에지는 클럭 신호의 레벨 점프 에지로, 상승 에지 또는 하강 에지이며, 론치 에지라고도 한다.
단계(S404)에서, 구동 클럭 신호와 동기화하고, 미리 시프트된 비트 데이터를 래치하여 송신한다.
구동 클럭 신호(SCLK)의 에지, 즉 론치 에지에서 미리 시프트된 비트 데이터를 래치하여 송신하며, 제2 래치 모듈에 래치하여 선택 모듈로 송신한다.
상기 미리 시프트된 비트 데이터는 현재의 론치 에지에 의해 송신된 데이터로, 시스템 클럭 신호(SYSCLK)가 지난 론치 에지에 의해 획득된 인에이블 신호(ENBIT)를 동기화하고 검출하여 시프트된 데이터이고, 시스템 클럭 신호(SYSCLK)가 현재의 론치 에지에 의해 획득된 인에이블 신호(ENBIT)를 동기화하고 검출하여 시프트된 데이터는 다음 론치 에지 시간에서 송신된다.
제2 실시예에서, 구동 클럭 위상 변환 및/또는 게이팅 직렬 클럭 신호(SCLK)에 의해 획득되기 때문에 이때 구동 클럭의 에지와 직렬 클럭의 에지를 동기화한다.
직렬 클럭 신호(SCLK)에 비해 인에이블 신호(ENBIT)의 에지가 하나의 지연이 존재하기 때문에 인에이블 신호(ENBIT)에 따라 시프트된 비트 데이터는 직렬 클럭 신호(SCLK)에 비해 에지가 하나의 지연이 존재한다. 구동 클럭 신호와 동기화하며, 즉 직렬 클럭 신호와 동기화하고 래치되어 송신된 시프트 데이터는 직렬 클럭 신호(SCLK)의 지난 주기의 에지를 검출하여 획득된 인에이블 신호(ENBIT)에 따라 시프트된 비트 데이터이다.
단계(S405)에서, 선택 신호를 생성하고 선택 모듈이 선택 신호에 따라 비트 데이터를 출력하도록 선택한다.
선택 신호(SEL)는 직렬 클럭 신호(SCLK)와 구동 클럭 신호(GSCLK)에 따라 획득된다. 직렬 클럭 신호(SCLK)의 제1 론치 에지가 도착하기 전에 선택 신호(SEL)가 1이고, 제1 론치 에지가 지난 후에 선택 신호(SEL)가 0이다. 선택 신호(SEL)가 1일 경우, 선택 모듈은 제1 래치 출력단에 연결되고 선택 신호(SEL)가 0일 경우, 선택 모듈은 제2 래치 출력단에 연결된다.
상기 단계는 슬레이브 디바이스 직렬 통신 방법의 데이터 전송이 시작된 후, 즉 제1 론치 에지에서 시작된 데이터 전송 흐름만 보여준다. 슬레이브 디바이스가 데이터를 전송하기 전, 즉 제1 론치 에지의 전에 상기 방법은 제1 론치 에지의 전에 하나의 시프트 비트 데이터를 준비하여 제1 론치 에지 시간에 송신하는 단계를 더 포함한다. SPI 슬레이브 디바이스 모드의 선택에 따라 상기 방법은 하나의 시프트 비트 데이터를 미리 준비하기 전에 하나의 비트 데이터에 대한 시프트 및 래치를 수행하여 이가 제1 모듈에 시프트되어 래치되고 제1 론치 에지의 전에 이를 데이터 출력단(MISO)으로 송신한다.
도 5는 본 발명의 실시예에 따른 슬레이브 디바이스의 직렬 통신의 4가지 작동 모드를 보여준다. 도면에 도시된 바와 같이, 시스템 클럭의 위상(CPHA)과 극성(CPOL)에 따라 이를 4가지의 작동 방식으로 나눈다.
방식1(SPI0): 극성(CPOL)은 0이고, 위상(CPHA)은 0이며,
방식2(SPI1): 극성(CPOL)은 0이고, 위상(CPHA)은 1이며,
방식3(SPI2): 극성(CPOL)은 1이고, 위상(CPHA)은 0이며,
방식4(SPI3): 극성(CPOL)은 1이고, 위상(CPHA)은 1이며,
극성(CPOL)은 SPI가 유휴 상태일 때 직렬 클럭 신호(SCLK)가 하이 레벨인지 로우 레벨이지를 나타내기 위해 사용된다. CPOL이 1로 설정되면 이 디바이스는 유휴 상태일 때 직렬 클럭 신호(SCLK)의 핀 아래에서의 클럭 신호는 하이 레벨이다. CPOL이 0으로 설정되면 상반된다.
위상(CPHA)은 직렬 클럭 신호(SCLK) 핀 위의 클럭 신호가 상승 에지가 될 때 데이터 샘플링을 트리거하거나 직렬 클럭 신호(SCLK)가 하강 에지로 변화될 때 데이터 샘플링을 트리거하기 위해 SPI 디바이스가 사용된다. CPHA가 1로 설정되면 SPI 디바이스는 직렬 클럭 신호(SCLK)가 하강 에지로 변화될 때 데이터 샘플링을 트리거하고 하강 에지에서 데이터를 송신한다. CPHA가 0으로 설정되면 상반된다.
본 발명에서, 4가지 모드의 차이점은 다음과 같다.
표 1: SPI 4가지 모드의 차이점
모드 직렬 클럭 신호SCLK 구동클럭 신호 GSCLK 제1 비트 데이터
샘플링 에지 론치 에지
SPI모드
0
상승에지 하강에지 역상 제1 론치 에지 전
SPI모드 1 하강에지 상승에지 동상 제1 론치 에지 후
SPI모드 2 하강에지 상승에지 동상 제1 론치 에지 전
SPI모드 3 상승에지 하강에지 역상 제1 론치 에지 후
도 5와 표 1에서 알 수 있는 바와 같이, SPI 모드 2 및 모드 0 의 송신 데이터 틱은 동일하고, 유일한 차이는 모드 2 의 구동 클럭 신호(GSCLK)가 직렬 클럭 신호(SCLK)와 동일한 위상으로 존재한다.SPI 모드 1은 모드 3의 송신 데이터 틱과 동일하지만, 모드 1은 구동 클럭 신호(GSCLK)가 직렬 클럭 신호(SCLK)와 동일한 위상으로 존재하고, 모드 3은 구동 클럭 신호(GSCLK)가 직렬 클럭 신호(SCLK)와 상반된다.
SPI 모드 1은 모드 0의 송신 데이터 틱의 차이점은 SPI 모드 0이 제1 론치 에지가 도착하기 전에 제1 비트 데이터를 송신하고 SPI 모드 1이 제1 론치 에지 후에 제1 비트 데이터를 송신한다.
모드 1과 모드 3에서, 모든 송신 데이터는 제2 래치 모듈로부터 송신되고 선택 신호(SEL)는 항상 0으로 유지된다. 모드 1과 모드 3에서, 제1송신 데이터는 제1 래치 모듈로부터 송신되고 다른 송신 데이터는 제2 래치 모듈로부터 송신되며, 선택 신호(SEL)의 레벨은 제1 론치 에지 전에 1이고 제1 론치 에지 후에 0으로 유지된다.
도 6은 본 발명의 제3 실시예에 따른 직렬 통신을 위한 슬레이브 디바이스의 구조적 블록도를 보여준다. 특히, 도 4에 도시된 흐름도에 대응하는 구조적 블록 다이어그램에 관한 것이다. 도면에 도시된 바와 같이, 본 발명의 실시예에 따른 SPI 슬레이브 디바이스(200)는 시스템 클럭 도메인(D1) 및 구동 클럭 신호(GSCLK)도메인(D2)로 분할될 수 있고, 또한 클럭 모듈(310) 및 선택 모듈(214)을 포함한다.
상기 시스템 클럭 도메인(D1)은 에지 검출 모듈(110), 저장 모듈(130), 로직 모듈(120) 및 제1 래치 모듈(211)을 포함한다.
상기 구동 클럭 신호 도메인(D2)은 제2 래치 모듈(212) 및 선택 신호 생성 모듈(213)을 포함한다.
에지 검출 모듈(110)은 내부 시스템 클럭(SYSCLK)을 이용하여 직렬 클럭 신호(SCLK)의 론치 에지를 검출하여 하나의 내부 시스템 클럭 주기를 유지하기 위한 론치 에지 인에이블 신호(ENBIT)를 획득한다.
저장 모듈(130)은 송신할 데이터가 모두 저장된다.
로직 모듈(120)은 메모리 모듈(130)로부터 데이터 세트를 일일이 획득하고, 인에이블 신호(ENBIT)가 검출될 때 송신 데이터 세트 내의 하나의 비트 데이터(BITDATA)를 제2 래치 모듈(212)로 시프트한다
제1 래치 모듈(211)은 하나의 트리거 및 제어 로직을 포함하며, SPI 모드 0 및 모드 2에서 사용되고; 현재 전송된 제1 그룹 제1 비트 송신 데이터는 각각의 전송이 시작되기 전에 래치되고, 제1 비트 데이터는 CS 가 유효한 후에 전송되고, 현재 전송에서 유지된다.
클럭 모듈(310)은 CS가 유효한 경우에만 게이트가 제어되도록 하고, SPI 모드0 및 모드 3에서 역상 직렬 클럭 신호(SCLK)를 취하고, 모드 1 및 모드 2에서 동상 직렬 클럭 신호(SCLK)를 취하여 구동 클럭 신호(GSCLK)를 얻는다. 구동 클럭 신호(GSCLK)는 CS의 유효 기간 동안에만 동작하고, 구동 클럭 신호(GSCLK)의 론치 에지는 SPI 다양한 모드의 직렬 시스템 클럭 (SCLK)의 론치 에지에 대응하고, 구동 클럭 신호(GSCLK)의 론치 에지는 다양한 모드에서 상승 에지이며, 따라서 구동 클럭 신호 도메인(D2)은 통일적으로 상승 에지 트리거로 동작하도록 된다.
제2 래치 모듈(212)은 하나의 트리거를 포함하고, 구동 클럭 신호 (GSCLK)의 론치 에지는 트리거의 클럭 단부에 작용하고, 시스템 클럭 도메인(D1)를 래칭 및 송신하는데 준비된 송신 비트 데이터(BITDATA)를 미리 시프트하며, 제2 래칭 모듈(212)의 출력 단부를 통해 선택 모듈(214)로 전송한다.
선택 신호 생성 모듈(213)은 하나의 트리거와 제어 로직을 포함하고 선택 신호(SEL)를 생성하고 비트 데이터 출력을 선택하여 송신하기 위해 사용되며, SPI 모드 0 및 모드 2의 선택 신호는 제1 론치 에지 전에 1이고, 제1 론치 에지 후에 0이며, 1번의 SPI 송신이 완료될 때까지 항상 0으로 유지되고, SPI 모드 1 및 모드 3은 항상 0으로 유지된다.
선택 모듈(214)은 선택 신호(SEL)를 이용하여 시스템 클럭 도메인(D1) 내의 제1 래치 모듈(211)의 출력 단자 데이터 또는 구동 클럭 신호 도메인(D2) 내의 제2 래치 모듈(212)의 출력 단자 데이터를 선택한다. 구체적으로, 선택 신호(SEL)가 1일 때, 제1 래치 모듈 (211) 의 출력 단자 데이터가 선택되고, 선택 신호(SEL)가 0일 때, 제2 래치 모듈 (212)의 출력 단자 데이터가 선택된다.
도 7은 본 발명의 제4 실시예에 따른 SPI 슬레이브 디바이스가 SPI 모드 0에서 데이터를 송신하는 방법에 대한 시퀀스 다이어그램을 보여준다. 도 5를 참조하여 시퀀스 다이어그램은 두개의 부분을 나누는데, 점선 위의 신호는 시스템 클럭 도메인(D1)에서 동작하고, 점선 아래의 신호는 구동 클럭 신호(GSCLK) 도메인(D2)에서 동작한다.
SPI 모드 0의 구동 클럭 신호(GSCLK)는 직렬 클럭 신호(SCLK)의 역상을 취한다.
CS가 로우 레벨로 되기 전에 시스템 클럭 도메인(D1)에서, 슬레이브 디바이스는 저장 모듈(130)로부터 제1 데이터 세트를 추출하고, 제1 비트 데이터(BIT0)를 제1 래치 모듈(211)에 저장하고, 제1 론치 에지에 의해 송신될 데이터(BITDATA)를 BIT1-N 제2 래치 모듈(212)로 시프트한다. 한편, 시스템 클럭 도메인(D1)은 하나의 비동기 리셋 신호를 생성하고, 구동 클럭 신호(GSCLK) 도메인(D2) 내의 선택 신호(SEL)는 1로 리셋된다.
CS가 로우 레벨로 된 후에 구동 클럭 신호 도메인(D2)에서, 제1 론치 에지 전에 선택 신호(SEL)는 1이고, 선택 모듈(214)이 BIT0의 제1 래치 모듈(211)의 bit 0을 선택하여 MISO 상에 bit 0으로 출력된다. 제1 론치 에지 후에 구동 클럭 신호(GSCLK)는 제2 래치 모듈(212)을 통해 선택 모듈(214)에 BITDATA를 래치하여 전송하며, 선택 신호(SEL)는 0으로 변환되고, 선택 모듈(214)은 제2 래치 모듈(212)의 데이터를 선택하여 MISO로 출력한다.
한편, 시스템 클럭 도메인(D1)에서, 시스템 클럭(SYSCLK)은 직렬 클럭 신호(SCLK)의 론치 에지를 검출하여 인에이블 신호 (ENBIT)를 획득하며, 로직 모듈(120)은 인에이블 신호(ENBIT)에 따라 하나의 비트 데이터 (BITDATA)를 시프트시키고, 상기 비트 데이터 (BITDATA)는 제2 래치 모듈(212)로 시프트된다.
구체적으로, 도 7에 도시된 바와 같이, 제1 론치 에지 시간(t0) 전에, BIT0제1 래치 모듈(211) 내의 비트 데이터(bit0)은 MISO로 출력되고, 시간(t0)에서, 구동 클럭 신호(GSCLK)는 전송이 시작되기 전에 준비된 bit1을 래치하고 전송하며, BIT1-N 제2 저장 모듈(212) 내의 bit 1이고, MISO 에 출력되도록 선택 모듈(214)에 의해 선택된다.
한편, 시간(t0)에서, 직렬 클럭 신호(SCLK) 론치 에지는 시스템 클럭(SYSCLK)에 의해 검출되어 인에이블 신호(ENBIT)(하나의 시스템 클럭(SYSCLK)주기의 유효 시간대를 유지)를 발생시키고, 인에이블 신호 (ENBIT)는 시간(t1)에서 데이터를 시프트하여 bit2를 획득하고, 제2 론치 에지에 대한 데이터를 준비한다.
제2 론치 에지 시간(t2)에서, 구동 클럭 신호(GSCLK)는 전송이 시작되기 전에 준비된 bit2, 즉 제2 저장 모듈의 bit2를 래치하고 전송하며, bit2는 MISO로 출력되도록 선택 모듈(214)에 의해 선택된다.
한편, 시간(t2)에서, 직렬 클럭 신호(SCLK) 론치 에지는 시스템 클럭(SYSCLK)에 의해 검출되어 인에이블 신호(ENBIT)를 발생시키고, 상기 인에이블 신호는 시간(t3)에서 데이터를 시프트하여 bit3을 획득하고, 제3 론치 에지에 대한 데이터를 준비한다.
시간(t4)은, 즉 제3론치 에지 시간이고, 상기 비트에 따라 순차적으로 데이터를 송신한다. 데이터의 제1 세트가 전송된 후에, 다음 데이터 세트는 현재의 SPI 전송의 완료(CS가 로우부터 하이까지 무효로 변함)될 때까지 메모리로부터 취해진다.
전송 과정에서, 시스템 클럭(SYSCLK)의 클럭 주기가 직렬 시스템 클럭(SCLK) 주기의 적어도 3배인 한, 전송될 데이터 (DATA1)는 직렬 시스템 클럭 신호(SCLK)의 론치 에지가 도착될 때 충분히 안정화될 수 있고, BITDATA의 준비 시간(t1)이 충족된다.
도 8은 본 발명의 제5 실시예에 따른 SPI슬레이브 디바이스가 SPI 모드 1에서 데이터를 송신하는 방법에 대한 시퀀스 다이어그램을 보여준다. 도면을 참조하여 시퀀스 다이어그램은 두 개의 부분을 나누는데, 점선 위의 신호는 시스템 클럭 도메인(D1)에서 동작하고, 점선 아래의 신호는 구동 클럭 신호 도메인(D2)에서 동작한다. SPI 모드 1의 구동 클럭 신호(GSCLK)는 직렬 클럭 신호(SCLK)의 동상을 취한다.
CS가 로우 레벨로 되기 전에 시스템 클럭 도메인(D1)에서, 슬레이브 디바이스는 저장 모듈(130)로부터 제1 데이터 세트를 추출하고, 제1 비트 데이터(BIT0)를 제2 래치 모듈(212)에 시프트한다. 선택 신호(SEL)는 항상 0으로 유지한다.
CS가 로우 레벨로 된 후에 구동 클럭 신호 도메인(D2)에서, 제1 론치 에지 전과 후에 선택 신호(SEL)는 0으로 유지하며, 선택 모듈(214)이 선택 신호(SEL)에 따라 제2 래치 모듈(212)의 데이터를 선택하여 MISO로 출력된다.
한편, 시스템 클럭 도메인(D1)에서, 시스템 클럭(SYSCLK)은 직렬 클럭 신호(SCLK)의 론치 에지를 검출하여 인에이블 신호 (ENBIT)를 획득하며, 로직 모듈(120)은 인에이블 신호(ENBIT)에 따라 저장모듈(130)의 하나의 비트 데이터를 시프트시켜 BITDATA를 획득하고, 상기 비트 데이터 (BITDATA)는 제2 래치 모듈(212)로 시프트된다.
구체적으로, 도 8에 도시된 바와 같이, 제1 론치 에지 시간(t0) 전에, 저장모듈(130)의 데이터를 시프트시켜 BITDATA를 획득하고, 시간(t0)에서, 구동 클럭 신호(GSCLK)는 전송이 시작되기 전에 준비된 bit0을 래치하고 전송하며, BIT1-N제2저장 모듈(212) 내의 bit0이고, MISO에 출력되도록 선택 모듈(214)에 의해 선택된다.
한편, 시간(t0)에서, 직렬 클럭 신호(SCLK) 론치 에지는 시스템 클럭(SYSCLK)에 의해 검출되어 인에이블 신호(ENBIT)(하나의 시스템 클럭(SYSCLK)주기의 유효 시간대를 유지)를 발생시키고, 상기 인에이블 신호 (ENBIT)는 시간(t1)에서 데이터를 시프트하여 bit1을 획득하고, 제2 론치 에지에 대한 데이터를 준비한다.
제2 론치 에지 시간(t2)에서, 구동 클럭 신호(GSCLK)는 전송이 시작되기 전에 준비된 bit1, 즉 제2저장 모듈의 bit1을 래치하고 전송하며, bit1은 MISO로 출력되도록 선택 모듈(214)에 의해 선택된다.
한편, 시간(t2)에서, 직렬 클럭 신호(SCLK) 론치 에지는 시스템 클럭(SYSCLK)에 의해 검출되어 인에이블 신호(ENBIT)를 발생시키고, 상기 인에이블 신호는 시간(t3)에서 데이터를 시프트하여 bit2를 획득하고, 제3 론치 에지에 대한 데이터를 준비한다.
시간(t4)은, 즉 제3론치 에지 시간이고, 상기 비트에 따라 순차적으로 데이터를 송신한다. 데이터의 제1 세트가 전송된 후에, 다음 데이터 세트는 현재의 SPI 전송의 완료(CS가 로우부터 하이까지 무효로 변함)될 때까지 메모리로부터 취해진다.
본 발명은 직렬 통신을 위한 슬레이브 디바이스 및 방법을 개시하며, 시스템 클럭(SYSCLK)/직렬 클럭 신호(SCLK)의 주파수 비율이 크게 감소될 수 있고, 슬레이브 디바이스의 데이터 전송 속도를 향상시키거나, 슬레이브 디바이스의 시스템 클럭(SYSCLK)의 주파수가 감소될 수 있다. 이하, 두개의 실시예를 통해 본 발명이 종래 기술과 비교한 유익한 효과에 대해 설명한다.
슬레이브 디바이스의 데이터 전송 지연(PAD/board delay)시간(도 7의 T3)이 15ns (다른 관련 미세 시간 지연은 여기서 고려되지 않으며, 전체 지연로 카운트될 수 있음)이면, 슬레이브 디바이스의 전송 데이터의 설정시간(도 7의 T4)은 최소로 5ns 이고, 이를 예로로 들어 두 방법을 비교한다.
표 2: 시스템 클럭(SYSCLK)이 50MHz일 때 지원할 수 있는 SPI 직렬 클럭 신호(SCLK)의 최고 주파수
SYSCLK
(MHz)
TSYSCLK
(ns)
Timing Formula TSCLK
(ns)
SCLK
(MHz)
원방법 50 20
3TSYSCLK+15+5 <= TSCLK/2
>= 160 <= 6.25
본방법 50 20 3TSYSCLK<= TSCLK
15+5 <= TSCLK/2
>= 60 <= 16.6
표 2에서 알 수 있는 바와 같이, 시스템 클럭 신호(SYSCLK)는 50 MHz 이고, 원방법은 SPI 직렬 클럭 신호(SCLK)를 지원하고, 최고 주파수는 6.25 MHz이고, 본 방법에 있어서, SPI 직렬 클럭 신호(SCLK)의 최고 주파수는 16.6 MHz로 지원된다.
표 3: SPI 직렬 클럭 신호(SCLK)가 10MHz일 때, 시스템 클럭 신호(SYSCLK)에 대한 최저 주파수 요구
SCLK
(MHz)
TSCLK
(ns)
TSCLK/2
(ns)
Timing Formula TSYSCLK
(ns)
SYSCLK
(MHz)
원방법 10 100 50
3TSYSCLK+15+5<=TSCLK/2(50)
<=10 >=100
본방법 10 100 50 3TSYSCLK <=TSCLK(100)

15+5 <=TSCLK/2(50)
<=33 >= 33
표 3에서 알 수 있는 바와 같이, SPI 직렬 클럭 신호(SCLK)는 10 MHz이고, 원방법은 시스템 클럭 신호(SYSCLK)의 최저 주파수는 100 MHz이고, 본 방법에 있어서, 시스템 클럭 신호(SYSCLK)의 최저 주파수는 33 MHz로 지원된다. 두 개의 표를 비교하면, SPI 시스템 클럭(SYSCLK)의 주파수가 결정되면, 본 발명은 직렬 클럭 신호(SCLK)의 지원 주파수를 크게 향상시켜 SPI 데이터 전송의 속도를 높일 수 있지만, SPI 직렬 클럭 신호(SCLK)의 주파수가 결정되면 본 발명은 시스템 클럭(SYSCLK)의 주파수에 대한 요구를 대폭 낮춰 전력 소모를 낮춘다. 따라서, 본 발명은 데이터 전송률을 향상시키고 전력 소모를 줄일 수 있는 효과가 있다.
본 발명의 실시예에 대한 상술한 내용에 따라, 이러한 실시예는 모든 사소한 부분까지 상세하게 설명하지 않았고 본 발명은 상술한 구체적인 실시예에 한정되지 않는다. 상술한 내용에 따라 여러 가지 수정 및 변경을 실행할 수 있는 것은 말할 나위도 없다. 본 명세서에서 이러한 실시예를 선택하여 구체적으로 설명한 것은 본 기술분야의 통상의 기술자들에게 본 발명의 원리 및 실제 응용을 더욱 명백하게 해석하여 본 기술분야의 통상의 기술자가 본 발명을 더욱 잘 적용하고 본 발명의 기초 상에 수정 사용하도록 하기 위한 것이다. 본 발명은 오직 첨부된 특허 청구 범위, 그 전부 범위 및 동등물의 제한을 받는다.

Claims (17)

  1. 클럭 신호 단자를 통해 직렬 클럭 신호를 수신하는 단계;
    데이터 입력 단자를 통해 복수의 연속된 비트 데이터를 포함하는 데이터를 수신하는 단계;
    시스템 클럭 신호와 동기화하여 상기 데이터를 시프트하여 비트 데이터를 획득하는 단계; 및
    상기 직렬 클럭 신호와 동기화하고, 상기 비트 데이터를 래치하고 데이터 출력 단자를 통해 적어도 일부의 래치된 비트 데이트를 송신하는 단계
    를 포함하며,
    상기 직렬 클럭 신호 및 상기 시스템 클럭 신호는 제1 클럭 주기 및 제2 클럭 주기를 각각 갖고 상기 제1 클럭 주기는 상기 제2 클럭 주기보다 큰 것을 특징으로 하는 슬레이브 디바이스를 위한 직렬 통신 방법.
  2. 제1항에 있어서,
    상기 직렬 클럭 신호의 연속 주기에서 상기 데이터의 선택 비트 데이터는 시프트 및 래치되고 각각 전송되는 것을 특징으로 하는 슬레이브 디바이스를 위한 직렬 통신 방법.
  3. 제1항에 있어서,
    상기 직렬 클럭 신호에 따라 구동 클럭 신호를 발생시키며, 상기 구동 클럭 신호의 에지에서 상기 비트 데이트를 송신하는 단계를 더 포함하는 것을 특징으로 하는 슬레이브 디바이스를 위한 직렬 통신 방법.
  4. 제3항에 있어서,
    상기 구동 클럭 신호는 상기 직렬 클럭 신호에 따라 게이팅 및/또는 위상 변환에 의해 획득되는 것을 특징으로 하는 슬레이브 디바이스를 위한 직렬 통신 방법.
  5. 제1항에 있어서,
    상기 데이터를 시프트하는 단계는,
    상기 직렬 클럭 신호의 제1 클럭 주기에서 적어도 하나의 제2 클럭 주기를 지연시켜 상기 시스템 클럭 신호에 동기된 인에이블 신호를 획득하는 단계; 및
    상기 인에이블 신호에 따라 상기 데이터를 시프트하여 비트 데이터를 획득하는 단계
    를 포함하는 것을 특징으로 하는 슬레이브 디바이스를 위한 직렬 통신 방법.
  6. 제5항에 있어서,
    상기 인에이블 신호에 따라 상기 비트 데이터를 시프트하여 제1 비트 데이터를 획득하고, 상기 제1 비트 데이터를 래치하고, 래치된 제1 비트 데이터를 송신하는 단계
    를 더 포함하는 것을 특징으로 하는 슬레이브 디바이스를 위한 직렬 통신 방법.
  7. 제6항에 있어서,
    상기 직렬 클럭 신호에 따라 선택 신호가 얻어지고, 상기 데이터의 제1 비트 데이터 및 나머지 비트 데이터를 데이터 출력 단자에 선택적으로 제공하는 단계
    를 더 포함하는 것을 특징으로 하는 슬레이브 디바이스를 위한 직렬 통신 방법.
  8. 제1항에 있어서,
    상기 슬레이브 디바이스의 동작 모드에 따라 상기 직렬 클럭 신호의 상승 에지 또는 하강 에지에서 상기 비트 데이터를 송신하는 것을 특징으로 하는 슬레이브 디바이스를 위한 직렬 통신 방법.
  9. 제1항에 있어서,
    상기 슬레이브 디바이스의 동작 모드에 따라, 상기 직렬 클럭 신호의 제1 에지 전 또는 후에 상기 제1 비트 데이터를 송신하는 것을 특징으로 하는 슬레이브 디바이스를 위한 직렬 통신 방법.
  10. 상기 슬레이브 디바이스는 클럭 신호 단자를 통해 직렬 클럭 신호를 수신하고 데이터 입력 단자를 통해 데이터를 수신하며 데이터 출력 단자를 통해 상기 데이터를 송신하는 직렬 통신을 위한 슬레이브 디바이스에 있어서,
    상기 데이터를 저장하는 저장 모듈;
    저장 모듈에 접속하되고 시스템 클럭 신호와 동기화하여 상기 데이터를 시프트하여 비트 데이터를 획득하는 로직 모듈;
    로직 모듈에 접속되고 상기 데이터의 제1 비트 데이터를 래치하는 제1 래치 모듈;
    로직 모듈에 접속되고 상기 데이터의 나머지 데이터 비트 데이터를 래치하는 제2 래치 모듈;
    상기 직렬 클럭 신호와 동기화하는 선택 신호를 획득하는 선택 신호 생성 모듈; 및
    제1 래치 모듈, 제2 래치 모듈 및 선택 신호 생성 모듈에 접속되고 선택 신호에 따라 상기 제1 비트 데이터와 상기 나머지 데이터 중의 하나를 상기 데이터 출력 단자에 제공하는 선택 모듈
    을 포함하며,
    상기 직렬 클럭 신호와 상기 시스템 클럭 신호는 제1 클럭 주기 및 제2 클럭 주기를 각각 갖고 상기 제1 클럭 주기는 상기 제2 클럭 주기보다 큰 것을 특징으로 하는 직렬 통신을 위한 슬레이브 디바이스.
  11. 제10항에 있어서,
    상기 직렬 클럭 신호의 연속 주기에서, 상기 로직 모듈 및 상기 제2 래치 모듈은 상기 데이터의 선택 비트 데이터를 각각 시프트 및 래치하고, 상기 데이터를 전송하는 것을 특징으로 하는 직렬 통신을 위한 슬레이브 디바이스.
  12. 제10항에 있어서,
    상기 직렬 클럭 신호의 제1 클럭 주기에서 적어도 하나의 제2 클럭 주기를 지연시켜 상기 시스템 클럭 신호에 동기된 인에이블 신호를 획득하는 에지 검출 모듈을 더 포함하는 것을 특징으로 하는 직렬 통신을 위한 슬레이브 디바이스.
  13. 제10항에 있어서,
    상기 직렬 클럭 신호에 따라 게이팅 및/또는 위상 변환에 의해 획득되는 구동 클럭 신호를 위한 클럭 모듈을 더 포함하고,
    상기 선택 신호 생성 모듈은 상기 구동 클럭 신호의 에지 검출에 따라 상기 선택 신호를 생성하는 것을 특징으로 하는 직렬 통신을 위한 슬레이브 디바이스.
  14. 제10항에 있어서,
    상기 로직 모듈은 슬레이브 디바이스의 동작 모드에 따라 상기 제1 비트 데이터를 상기 제1 래치 모듈 또는 상기 제2 래치 모듈로 시프트하는 것을 특징으로 하는 직렬 통신을 위한 슬레이브 디바이스.
  15. 제10항에 있어서,
    상기 제1 래치 모듈은 트리거 및 제어 로직을 포함하며, 제1 비트 데이터를 래치 및 출력하는 것을 특징으로 하는 직렬 통신을 위한 슬레이브 디바이스.
  16. 제10항에 있어서,
    상기 제2 래치 모듈은 트리거를 포함하고, 상기 구동 클럭 신호는 트리거의 클럭 단부에 작용하고, 다른 비트 데이터를 래치 및 출력하는 것을 특징으로 하는 직렬 통신을 위한 슬레이브 디바이스.
  17. 제10항에 있어서,
    상기 선택 신호 생성 모듈은 트리거 및 제어 로직 모듈을 포함하고, 선택 신호을 제어하는 것을 특징으로 하는 직렬 통신을 위한 슬레이브 디바이스.

KR1020197038605A 2018-12-10 2019-03-19 직렬 통신을 위한 슬레이브 디바이스 및 방법 KR102289930B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201811501631.6 2018-12-10
CN201811501631.6A CN109710556B (zh) 2018-12-10 2018-12-10 用于串行通信的从设备及方法
PCT/CN2019/078699 WO2020118950A1 (zh) 2018-12-10 2019-03-19 用于串行通信的从设备及方法

Publications (2)

Publication Number Publication Date
KR20200074917A true KR20200074917A (ko) 2020-06-25
KR102289930B1 KR102289930B1 (ko) 2021-08-17

Family

ID=66255539

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197038605A KR102289930B1 (ko) 2018-12-10 2019-03-19 직렬 통신을 위한 슬레이브 디바이스 및 방법

Country Status (4)

Country Link
JP (1) JP7212637B2 (ko)
KR (1) KR102289930B1 (ko)
CN (1) CN109710556B (ko)
WO (1) WO2020118950A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111061337A (zh) * 2019-12-10 2020-04-24 北京智联安科技有限公司 一种主机收发接口设计方法
CN113626355B (zh) * 2020-05-06 2023-11-14 华润微集成电路(无锡)有限公司 实现串行接口全双工通信的从机芯片的电路结构
CN111785309B (zh) * 2020-07-01 2021-03-19 深圳市芯天下技术有限公司 非型闪存接口电路的实现方法、电路、存储介质和终端
CN112559426A (zh) * 2020-12-15 2021-03-26 广州智慧城市发展研究院 数据传输方法、接口电路以及装置
CN112860613B (zh) * 2021-04-06 2024-04-19 北京集创北方科技股份有限公司 通信系统
CN113407476B (zh) * 2021-06-17 2024-02-23 芯天下技术股份有限公司 一种提升数据通道速度的方法、装置、存储介质和终端
CN113656340A (zh) * 2021-08-20 2021-11-16 西安易朴通讯技术有限公司 I2c总线的通信控制方法、系统和装置
CN115328845B (zh) * 2022-08-26 2023-05-12 润芯微科技(江苏)有限公司 一种四线串行外设接口通信协议设计的方法
CN115766332B (zh) * 2023-01-03 2023-05-12 杭州视芯科技股份有限公司 串行通信装置、串行通信系统及串行通信方法
CN116841939A (zh) * 2023-06-30 2023-10-03 珠海市凌珑宇芯科技有限公司 Spi从机接口电路和芯片
CN117251403B (zh) * 2023-11-08 2024-05-14 北京紫光芯能科技有限公司 一种spi协议主从设备的通讯模式配置方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130297829A1 (en) * 2012-05-02 2013-11-07 SMSC Holdings Sarl. Point-to-point serial peripheral interface for data communication between devices configured in a daisy-chain
CN103678209A (zh) * 2012-09-18 2014-03-26 格科微电子(上海)有限公司 基于串行外围设备接口总线的数据传输方法和系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01118951A (ja) * 1987-10-31 1989-05-11 Nec Ic Microcomput Syst Ltd シリアルインターフェイス回路
JP2636534B2 (ja) * 1991-03-22 1997-07-30 三菱電機株式会社 通信システム
JPH10126396A (ja) * 1996-10-17 1998-05-15 Sony Corp 集積回路
US7082481B2 (en) * 2003-11-25 2006-07-25 Atmel Corporation Serial peripheral interface (SPI) apparatus with write buffer for improving data throughput
US7430624B2 (en) 2005-10-04 2008-09-30 International Business Machines Corporation High speed on-chip serial link apparatus and method
CN102207922B (zh) * 2010-03-30 2014-07-30 新唐科技股份有限公司 总线接口以及总线接口的时钟频率控制方法
JP2012150656A (ja) 2011-01-19 2012-08-09 Renesas Electronics Corp 半導体装置
US9582441B2 (en) * 2014-02-27 2017-02-28 Infineon Technologies Ag Clockless serial slave device
CN105512070B (zh) * 2015-12-02 2018-07-06 中国电子科技集团公司第四十一研究所 一种基于串行总线的控制系统
CN105550151B (zh) * 2015-12-02 2018-07-24 中国电子科技集团公司第四十一研究所 一种高效串行总线控制电路
CN107703815B (zh) * 2017-10-29 2020-04-24 北京联合大学 循环地址式三线spi通讯系统
CN108768450A (zh) * 2018-06-01 2018-11-06 威创集团股份有限公司 通信方法和系统、计算机存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130297829A1 (en) * 2012-05-02 2013-11-07 SMSC Holdings Sarl. Point-to-point serial peripheral interface for data communication between devices configured in a daisy-chain
CN103678209A (zh) * 2012-09-18 2014-03-26 格科微电子(上海)有限公司 基于串行外围设备接口总线的数据传输方法和系统

Also Published As

Publication number Publication date
CN109710556B (zh) 2020-08-11
JP7212637B2 (ja) 2023-01-25
KR102289930B1 (ko) 2021-08-17
WO2020118950A1 (zh) 2020-06-18
JP2021536043A (ja) 2021-12-23
CN109710556A (zh) 2019-05-03

Similar Documents

Publication Publication Date Title
KR102289930B1 (ko) 직렬 통신을 위한 슬레이브 디바이스 및 방법
CN1747376B (zh) 同步装置和半导体装置
US5432823A (en) Method and circuitry for minimizing clock-data skew in a bus system
US6279073B1 (en) Configurable synchronizer for double data rate synchronous dynamic random access memory
US5621774A (en) Method and apparatus for synchronizing parallel data transfer
CN103036667B (zh) 一种高速串行通讯接口自适应时序校准方法
US20070300097A1 (en) Data transmission system and data transmission apparatus
EP2334003B1 (en) Asymmetrical i/o devices and system
US8305837B2 (en) Semiconductor memory device for guaranteeing reliability of data transmission and semiconductor system including the same
JP7471447B2 (ja) マルチチャネル信号同期システム、回路及び方法
US8266467B2 (en) Data transfer device and data transfer method
US5335337A (en) Programmable data transfer timing
KR20090061515A (ko) Gals 시스템용 접속회로 및 그의 동작방법
CN104954009A (zh) 用于半导体装置的输出控制电路和包括其的输出驱动电路
CA2007644C (en) Common bus control method
US7558151B1 (en) Methods and circuits for DDR-2 memory device read data resynchronization
US20110316589A1 (en) Method of compensating clock skew, clock skew compensating circuit for realizing the method, and input/output system including the clock skew compensating circuit
US6760803B1 (en) Aligning and offsetting bus signals
US11018677B1 (en) Transmission enable signal generation circuit and integrated circuit
US7526017B2 (en) Transmitting device, receiving device, transmission system, and transmission method
WO2023087588A1 (zh) 采样电路、采样电路的使用方法、存储介质、电子装置
TW202022625A (zh) 資料發送方法、具有序列周邊介面之從屬裝置及資訊處理裝置
JP4765668B2 (ja) データ受信回路
KR20020041511A (ko) 디피램을 이용한 버퍼 위상정렬장치

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant