KR102414143B1 - I²c 슬레이브 장치용 제어 장치 - Google Patents

I²c 슬레이브 장치용 제어 장치 Download PDF

Info

Publication number
KR102414143B1
KR102414143B1 KR1020150160262A KR20150160262A KR102414143B1 KR 102414143 B1 KR102414143 B1 KR 102414143B1 KR 1020150160262 A KR1020150160262 A KR 1020150160262A KR 20150160262 A KR20150160262 A KR 20150160262A KR 102414143 B1 KR102414143 B1 KR 102414143B1
Authority
KR
South Korea
Prior art keywords
input
flip
flop
control
reset
Prior art date
Application number
KR1020150160262A
Other languages
English (en)
Other versions
KR20160058709A (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 KR20160058709A publication Critical patent/KR20160058709A/ko
Application granted granted Critical
Publication of KR102414143B1 publication Critical patent/KR102414143B1/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
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0016Inter-integrated circuit (I2C)

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

제어 장치(100)를 이용하여 I2C 슬레이브 장치를 제어하는 방법은,
I2C 버스의 데이터 라인(SDA) 및 클록 라인(SCL) 상의 상태들을 평가하는 단계와,
데이터 라인(SDA) 및 클록 라인(SCL) 상의 상태들을 상태 다이어그램(FSM)의 상태들(DL, DH, I, SP, ST)에 할당하는 단계로서, 제어 장치(100)에 의해 상태 다이어그램(FSM)의 상태들(DL, DH, I, SP, ST)로부터 I2C 슬레이브 장치를 위한 제어 신호(START, RESET)가 생성되는 단계를 포함한다.

Description

I²C 슬레이브 장치용 제어 장치{CONTROL DEVICE FOR I²C SLAVE DEVICE}
본 발명은 하나 이상의 I2C 슬레이브 장치의 제어 방법에 관한 것이다. 또한, 본 발명은 하나 이상의 I2C 슬레이브 장치용 제어 장치에 관한 것이다.
I2C(Inter-Integrated Circuit) 인터페이스는 하나 이상의 마스터와 하나 이상의 슬레이브 간의 통신을 제공하기 위해 2개의 양방향 라인을 사용한다. 데이터를 송신하고, 인터페이스 또는 버스 상에서의 트랜잭션의 시작 및 종료를 표시하기 위해, 상기 두 라인 SDA(Serial Data Line) 및 SCL(Serial Clock Line)이 사용된다. 트랜잭션의 시작 및 종료는 "스타트(START)" 및 "스톱(STOP)"으로 지칭된다. I2C 버스에서의 각각의 슬레이브 장치는 스타트/스톱 상태를 검출하고, 그리고/또는 데이터를 송신하고, 그리고/또는 수신하는 장치를 구비해야 한다.
그러나 슬레이브 장치는 정확한 트랜잭션과 부정확한 트랜잭션도 구별해야 하고, 정확한 트랜잭션에만 반응해야 한다. 상기 허용되지 않은 전송은 I2C 규격에 부합하진 않지만, I2C 버스 상의 모든 장치를 리셋(reset)하기 위해, 종종 시중에 출시되어 있는 다양한 마이크로 컴퓨터 장치에서 사용된다.
예를 들어 US 6530029 또는 CN 202600693에 공개되어 있는 이미 공지된 회로들은 전술한 표준에 부합하지 않는 전송의 문제를 가지며, 장치가 더 이상 올바르게 동작하지 않는 상태들을 야기할 수 있다.
EP 1607864에 공개된 워치독 타이머는 상기 문제를 해결할 수도 있다. 그러나 이 경우 일부 트랜잭션이 인식되지 않거나 거부되는 경우가 발생할 수 있으며, 이는 데이터 손실을 야기할 수 있다.
GB 2313987에서 제안된 또 다른 해결책은, SDA 신호 및 SCL 신호를 오버샘플링(oversampling)하기 위해 사용될 수 있는 장치 내에 훨씬 더 높은 주파수를 갖는 시스템 클록이 존재하는 경우에만 유효하다.
따라서 본 발명의 과제는, I2C 버스에서 I2C 슬레이브 장치의 신뢰성 있는 기능을 지원하는 방법을 제공하는 것이다.
상기 과제는 제1 양태에 따라,
- I2C 버스의 데이터 라인 및 클록 라인 상의 상태들을 평가하는 단계와,
- 데이터 라인 및 클록 라인 상의 상태들을 상태 다이어그램의 상태들에 할당하는 단계로서, 제어 장치에 의해 상태 다이어그램의 상태들로부터 I2C 슬레이브 장치를 위한 제어 신호가 생성되는 단계를 포함하는, I2C 슬레이브 장치의 제어 방법에 의해 해결된다.
바람직하게는, 본 발명에 따른 방법에 의해, 버스 가입자를 위한 I2C 버스에서의 금지된 혹은 불법적인 동작이 "차단"될 수 있다. 버스에서 불법 상태가 발생하는 경우, 항시 리셋 상태가 활성화된다. 이는 바람직하게는 동기 회로에 의해 간단하게 구현된다. 그 결과, I2C 버스에서 불법적인 이벤트가 실행되어도, I2C 슬레이브는 항상 올바르게 작동될 수 있다. 따라서, 버스로의 잘못된 응답으로부터 I2C 슬레이브가 보호되며, 바람직하게는 I2C 버스에 연결된 모든 I2C 슬레이브 장치가 본 발명에 의해 이득을 얻는다.
제2 양태에 따라 상기 과제는,
- I2C 버스의 데이터 라인의 안내부, 및
- I2C 버스의 클록 라인의 안내부를 갖는, I2C 슬레이브 장치의 제어를 위한 제어 장치로서,
- 상기 제어 장치는 데이터 라인 및 클록 라인 상의 상태들을 상태 다이어그램의 상태들에 할당하도록 구성되고,
- 이때, 상태 다이어그램의 상태들로부터 I2C 슬레이브 장치를 위한 제어 신호가 생성될 수 있는, I2C 슬레이브 장치의 제어를 위한 제어 장치에 의해 해결된다.
상기 방법 및 제어 장치의 바람직한 개선예들은 종속 청구항들의 대상이다.
방법의 한 바람직한 개선예에서, 클록 라인 상에서 하강 에지에 후속하여, 클록 라인이 하이 레벨을 가지고 데이터 라인이 하강 에지를 갖는 경우, 제1 제어 라인 상에서 스타트 제어 신호가 활성화된다. 이러한 방식으로, I2C 슬레이브 장치를 위한 제어 신호가 생성될 수 있으며, 상기 신호의 전달 이후에 I2C 버스에서의 유효 전송이 가능하다.
방법의 한 바람직한 개선예에서, 클록 라인이 하이 레벨을 갖는 경우, 제1 제어 라인 상에서 스타트 제어 신호가 비활성화된다. 이러한 방식으로, I2C 슬레이브 장치를 위한 제어 신호가 생성될 수 있으며, 상기 신호의 전달 이후에 I2C 버스에서의 유효 전송이 가능하다.
방법의 또 다른 바람직한 개선예들에서, 데이터 라인 상에서 하강 에지가 발생하고 클록 라인이 하이 레벨을 갖는 경우, 제2 제어 라인 상에서 리셋 제어 신호가 활성화된다. 이러한 방식으로, 리셋 제어 신호는 규정된 방식으로 I2C 버스의 라인들 상의 신호 상태들로부터 생성될 수 있다.
방법의 또 다른 한 바람직한 개선예에서, 리셋 제어 신호는 스타트 제어 신호가 생성된 이후에 비활성화된다.
제어 장치의 바람직한 개선예에서는, 데이터 라인이 제1 인버터의 입력부, 제2 D-플립플롭의 반전된 클록 입력부, 및 제4 D-플립플롭의 클록 입력부와 연결되며,
제1 인버터의 출력부는 OR 게이트의 제2 입력부와 연결되며,
클록 라인은 제2 D-플립플롭의 입력부, 제2 D-플립플롭의 리셋 입력부, 제1 D-플립플롭의 클록 입력부, 제4 D-플립플롭의 데이터 입력부, 및 제3 D-플립플롭의 클록 입력부와 연결되며,
제2 D-플립플롭의 출력부는 제2 인버터의 입력부, 제3 D-플립플롭의 입력부, 및 NOR 게이트의 제1 입력부와 연결되며,
제2 인버터의 출력부는 제1 D-플립플롭의 리셋 입력부와 연결되며,
제4 D-플립플롭의 출력부는 NOR 게이트의 제2 입력부와 연결되며,
제3 D-플립플롭의 출력부는 I2C 슬레이브 장치의 제1 제어 라인, OR 게이트의 제1 입력부, 및 제3 인버터의 입력부와 연결되며,
제3 인버터의 출력부는 제4 D-플립플롭의 리셋 입력부와 연결되며,
OR 게이트의 출력부는 제1 D-플립플롭의 입력부와 연결되며,
제1 D-플립플롭의 출력부는 제4 인버터의 입력부와 연결되며,
제4 인버터의 출력부는 제3 D-플립플롭의 리셋 입력부와 연결되며,
NOR 게이트의 출력부는 I2C 슬레이브 장치용 제2 제어 라인과 연결된다.
이하, 본 발명의 추가 특징들 및 장점들이 여러 도면을 참조로 상세히 설명된다. 모든 특징은 명세서 본문과 도면에 기재된 설명 및 청구항들에서의 종속 관계와 관계없이, 본 발명의 대상을 형성한다.
도 1은 본 발명의 기능 원리의 설명을 위한 기능 상태 다이어그램이다.
도 2는 본 발명에 따른 제어 장치의 일 실시예를 도시한 도면이다.
도 3은 본 발명에 따른 방법에 의해 구현되는 제어 신호들의 시간 그래프이다.
도 4는 본 발명에 따른 방법의 일 실시예의 기본 흐름도이다.
도 1은 본 발명의 기능 원리의 설명을 위한 기능 상태 다이어그램을 도시한다.
데이터 라인(SDA) 및 클록 라인(SCL) 상의 전기적인 상태들에 기초하여 세팅될 수 있는 상이한 5가지 상태(DL, DH, SP, ST, I)가 도시되어 있으며, 상기 상태들은 하기의 의미를 갖는다.
DL .... 데이터 전송 진행 중, 데이터 라인(SDA) 상의 0 또는 GND 전위
DH .... 데이터 전송 진행 중, 데이터 라인(SDA) 상의 1 또는 고전위 (HIGH potential)
SP .... I2C 버스에서 "스톱" 상태 인식
ST .... I2C 버스에서 "스타트" 상태 인식
I .... I2C 버스에서 허용되지 않은 상태 인식
상기 상태들(DL, DH, SP, ST, I) 간에 표시된 화살표는 개별 상태들 간의 전위 또는 전환을 나타내며, 이때 첫째 자리는 데이터 라인(SDA)과 관련되고, 둘째 자리는 클록 라인(SCL)과 관련된다.
첫째 자리의 "L"은 데이터 라인(SDA) 상의 하강 에지를 의미하며, 첫째 자리의 "0"은 데이터 라인(SDA) 상의 일정한 로우 레벨을 의미한다.
첫째 자리의 "H"는 데이터 라인(SDA) 상의 상승 에지를 의미하며, 첫째 자리의 "1"은 데이터 라인(SDA) 상의 일정한 하이 레벨을 의미한다.
둘째 자리의 "0"은 클록 라인(SCL) 상의 일정한 로우 레벨을 의미하며, 둘째 자리의 "1"은 클록 라인(SCL) 상의 일정한 하이 레벨을 의미한다.
둘째 자리의 "H"는 클록 라인(SCL) 상의 상승 에지를 의미하며, 둘째 자리 "L"은 클록 라인(SCL) 상의 하강 에지를 의미한다.
라인(SDA, SCL)들 간의 상태 변경이 실시되지 않으면, 도 1의 상태 다이어그램에서의 전환도 실시되지 않는다.
예를 들어 L1은, 데이터 라인(SDA) 상에 하강 에지가 존재하고 클록 라인(SCL) 상에 일정한 하이 레벨이 존재함을 의미한다.
도 2는 I2C 슬레이브 장치의 제어를 위한 본 발명에 따른 제어 장치(100)의 실시예이다. 제어 장치(100)는 D-플립플롭들을 갖는 동기 로직으로서 형성되는데, 상기 D-플립플롭들은 모두 각각 하나의 비동기 리셋 입력을 갖는다. 도면에서 인지되는 2개의 라인(SCL, SDA)은 그 전기적 상태 및 레벨이 제어 장치(100)를 위한 자극(stimulus)으로서 사용된다.
데이터 라인(SDA)은 제1 인버터(70)의 입력부, 제2 D-플립플롭(20)의 반전된 클록 입력부, 및 제4 D-플립플롭(40)의 클록 입력부로 안내된다. 클록 라인(SCL)은 제2 D-플립플롭(20)의 데이터 입력부, 제2 D-플립플롭(20)의 리셋-입력부, 제1 D-플립플롭(10)의 클록 입력부, 제3 D-플립플롭(30)의 반전된 클록 입력부, 그리고 제4 D-플립플롭(40)의 데이터 입력부로 안내된다.
제2 D-플립플롭(20)의 출력부는 제3 D-플립플롭(30)의 입력부, 제2 인버터(71)의 입력부, 그리고 NOR 게이트(60)의 입력부로 안내된다. 제4 D-플립플롭(40)의 출력부는 NOR 게이트(60)의 제2 입력부로 안내된다.
제3 D-플립플롭(30)의 출력부는, I2C 슬레이브 장치(도시되지 않음)를 위한 신호(START)가 송출되는 제1 제어 라인(LTG1)을 형성한다. 또한, 제3 D-플립플롭(30)의 출력부는 OR 게이트(50)의 제1 입력부로 안내되며, 계속해서 제3 인버터(72)의 입력부로 안내된다. 제3 인버터(72)의 출력부는 제4 D-플립플롭(40)의 리셋 입력부로 안내된다.
제1 인버터(70)의 출력부는 OR 게이트(50)의 제2 입력부로 안내되며, OR 게이트(50)의 출력부는 제1 D-플립플롭(10)의 데이터 입력부로 안내된다. 제2 인버터(71)의 출력부는 제1 D-플립플롭(10)의 리셋 입력부로 안내된다. 제1 D-플립플롭(10)의 출력부는 제4 인버터(73)의 입력부로 안내되고, 상기 제4 인버터의 출력부는 제3 D-플립플롭(30)의 리셋 입력부로 안내된다. 제3 인버터(72)의 출력부는 제4 D-플립플롭(40)의 리셋 입력부로 안내된다.
NOR 게이트(60)의 출력부는, I2C 슬레이브 장치를 위해 리셋 제어 신호(RESET)가 제공되는 제2 제어 라인(LTG2)을 형성한다. 제2 D-플립플롭(20) (상태 "ST"가 I2C 버스에서 검출됨) 또는 제4 D-플립플롭(40) (상태 "SP"가 I2C 버스에서 검출됨)의 하나 이상의 출력부가 활성화되면, NOR 게이트(60)로부터 리셋 제어 신호(RESET)가 생성된다. 이는, I2C 버스에서 상태 "ST"가 인식되는 경우 또는 I2C 버스에서 I2C 규격에 부합하지 않는 버스 이벤트가 발생하는 경우에만 로우 액티브 리셋 제어 신호(RESET)가 활성화됨을 의미한다.
그 결과, 제1 제어 라인(LTG1) 상에서 스타트 제어 신호(START)는 올바른 ST 상태에 따라, 즉 클록 라인(SCL) 상에서 하강 에지에 후속하여 데이터 라인(SDA) 상에서 하강 에지가 발생하고 클록 라인(SCL)이 하이 레벨을 갖는 경우에, 제어 장치(100)를 이용하여 생성된다.
흐속하여 스타트 제어 신호(START)는 클록 라인(SCL) 상의 하이 레벨에 의해 리셋된다. 스타트 제어 신호(START)는 I2C 슬레이브 장치를 위해, 바람직하게는 I2C 버스에서의 유효 전송을 표시하기 위해 사용된다.
리셋 제어 신호(RESET)는 제2 제어 라인(LTG2) 상에서, 도 1의 상태 다이어그램을 이용하여 I2C 버스에서 ST 또는 SP 또는 I의 상태가 검출될 때마다 매번 생성된다. 이는, 데이터 라인(SDA) 상에서 하강 에지가 발생하고 클록 라인이 하이 레벨을 갖는는 경우(ST 상태), 또는 데이터 라인(SDA) 상에서 상승 에지가 발생하고 클록 라인(SCL)이 하이 레벨을 갖는 경우(SP 상태), 또는 상태(SP)가 존재할 때 데이터 라인이 하이 레벨을 가지며 클록 라인 상에서 하강 에지가 발생하는 경우(상태 "I"로의 전환)마다 매번 리셋 제어 신호(RESET)가 생성됨을 의미한다.
그러면 리셋 제어 신호(RESET)는 후속 스타트 제어 신호(START)에 의해 리셋된다. 그럼으로써 리셋 제어 신호(RESET)는 I2C 슬레이브 장치를 위한 비동기 리셋 신호로서 이용될 수 있다.
그 결과, 이러한 방식으로 (도시되지 않은) I2C 슬레이브 장치에 공급되는 스타트 제어 신호(START) 및 리셋 제어 신호(RESET)가 제어 장치(100)에 의해 제어된다.
제2 D-플립플롭(20)은, 클록 라인(SCL)이 하이 레벨에 있는 동안 데이터 라인(SDA) 상의 하강 에지를 이용하여 I2C 규격에 따른 상태(ST)의 시작을 인지한다.
제3 D-플립플롭(30)은, 상태(ST)가 검출된 후 클록 라인(SCL) 상의 하강 에지를 이용하여 I2C 버스에서의 상태(ST)의 종료를 검출한다.
제4 D-플립플롭(40)은, 클록 라인(SCL)이 일정한 하이 레벨에 있는 동안 데이터 라인(SDA) 상에서의 상승 에지를 이용하여 I2C 규격에 따른 상태(SP)를 검출한다.
이러한 방식으로, 하나의 스캔 체인(scan chain) 내에 전체 제어 장치(100)를 내장할 수 있으며, 그 결과 스캔 체인 패턴(scan chain pattern)에 의한 추가 테스트를 구현할 필요가 없기 때문에 전체 제어 장치(100)의 경제적이면서도 자동화된 디지털 테스트가 지원된다. 바람직하게는, D-플립플롭을 갖는 제어 장치의 구현에 의해 제어 장치(100)의 기하구조상 소형인 구성이 지원된다.
제1 D-플립플롭(10)은 스타트 제어 신호(START)의 리셋을 발생시키며, 이를 위한 준비는 OR 게이트(50)를 이용하여 제공된다. 즉, 클록 라인(SCL) 상에서 상승 에지가 제1 D-플립플롭(10)의 클록 입력부로 안내되는 경우, OR 게이트(50)는 제1 D-플립플롭(10)에 의해 무엇이 샘플링되어야 하는지를 준비한다.
제어 장치(100)는 바람직하게 I2C 슬레이브 장치의 한 부분으로서 형성될 수 있다. 그 결과, 제어 장치(100)에 의해 I2C 버스에서의 규격에 부합하는 거동이 가능하다. 특히, I2C에 연결된 다른 버스 가입자의 운영이 I2C 규격에 부합하지 않더라도, I2C 버스에 연결된 I2C 슬레이브 장치를 위해 올바르게 작동할 수 있다.
I2C 버스에서의 4개의 시나리오를 기초로 하여, 하기에서는 도 3을 참조로 제어 장치(100)의 기능을 설명한다.
도 3에는 라인(SDA, SCL) 상에서의 자극에 대한 반응으로, 상술된 구성 요소(10 내지 60)의 시간별 신호 거동의 예시가 도시되어 있다.
도 3의 하단에는 I2C 버스에서의 상태를 나타내는, 도 1의 상태 다이어그램에 상응하는 상태 다이어그램(FSM)이 도시되어 있으며, 이때 스타트 제어 신호(START) 및 리셋 제어 신호(RESET)는 I2C 규격에 부합하도록 발생한다.
그 결과, 제어 신호들(START, RESET)의 거동은, I2C 슬레이브 장치가 상황에 따라서는 라인들(SDA, SCL) 상에서의 규격에 부합하는 신호 거동과 관계없이, 항상 I2C 규격에 상응하게 반응하도록 형성된다. 허용된 거동의 예로서 상태 다이어그램(FSM)의 섹션(A)에는, 스타트 제어 신호(START)가 올바르게 생성됨에 따라 리셋 제어 신호(RESET)가 리셋되는 상황이 도시되어 있다.
이로써, 리셋 제어 신호(RESET)는 I2C 버스에서 규격에 부합하지 않는 이벤트가 검출되는 경우 I2C 슬레이브 장치의 비활성을 지원한다.
도 3의 상태 다이어그램(FSM)의 섹션(B)에서는 I2C 버스가 상태(SP)로부터 상태(I)로 변경되는데, 이는 I2C 버스에서의 허용되지 않은 이벤트를 나타낸다. 그 결과, 리셋 제어 신호(RESET)가 활성화되며, 다시 말해 로우 액티브 리셋 제어 신호(RESET)가 로우 레벨을 취한다.
후속하여 섹션(C)에서는 I2C 버스에서 상태(SP)로부터 상태(ST)로의 전환이 수행되며, 이 역시 I2C 규격에 부합하지 않는다.
이 경우, 예를 들어 I2C 버스에 연결된 마스터 또는 슬레이브에 의해 상태(ST)를 발생시키는 점이 사전 설정되나, 이는 I2C 규격에 부합하지 않는다. 따라서, 제어 장치(100)는 I2C 규격에 상응하게 제어 라인(LTG1) 상에서 스타트 제어 신호(START)를 발생시키지도 않으며, 제어 라인들(LTG1, LTG2)의 상태를 그대로 유지한다.
섹션(D)에서는, I2C 버스에서 상태(ST)로부터 상태(DL)로의 허용된 전환이 수행된다. 따라서, 제1 제어 라인(LTG1) 상에서 스타트 제어 신호(START)도 발생하고, 제2 제어 라인(LTG2)이 리셋되며, 즉, 제어 라인(LTG2)이 하이 레벨을 취한다.
도 4에는 본 발명에 따른 방법의 기본 흐름도가 도시되어 있다.
단계(200)에서는, I2C 버스의 데이터 라인(SDA) 및 클록 라인(SCL) 상의 상태들의 평가가 수행된다.
단계(210)에서는, 상태 다이어그램(FSM)의 상태들(DL, DH, I, SP, ST)에 대한 데이터 라인(SDA) 및 클록 라인(SCL) 상의 상태들의 할당이 수행되며, 이때 제어 장치(100)를 이용하여 상태 다이어그램(FSM)의 상태들(DL, DH, I, SP, ST)로부터 I2C 슬레이브 장치를 위한 제어 신호(START, RESET)가 생성된다.
단계(210) 이후에는 단계(200)로의 복귀가 수행됨으로써, 단계들(200, 210)이 순환식으로 처리될 수 있다.
요약해보면, 본 발명에 의해 I2C 버스 상에서 규격에 부합하지 않는 거동이 I2C 버스에 연결된 슬레이브 장치에 불리하게 작용하지 않도록 할 수 있는 방법 및 장치가 제안된다. I2C 규격이 매우 엄격하여 버스 상에서의 대부분의 조합이 금지된다는 사실에 근거하여, 상기 방식으로 I2C 버스에서의 버스 가입자의 거동은 I2C 버스에서 있을 수 있는 에러 거동에 의해 방해받지 않으면서 수행될 수 있다.
바람직하게는, 본 발명에 따른 전환 거동은 도시되거나 설명되지 않은 대안적인 많은 회로 변형예에 의해 달성될 수 있다. 따라서, 도 2의 제어 장치의 실시예는 단지 일례일 뿐이다.
본 발명은 하기의 일련의 장점들과 관련된다.
예를 들어, 본 발명에 따른 제어 장치는 I2C 버스에서의 I2C 프로토콜의 오용 또는 장해들에 대해 내구성을 갖는다. 또한, 바람직하게는, 상태 인식을 위해 I2C 버스의 샘플링을 위한 추가의 외부 클록이 제공될 필요가 없다. 또한, POR(Power On Reset)을 제외한 추가의 리셋 제어 신호가 불필요하다. 또한, 제어 장치의 구현을 위해 예를 들어 플립플롭 및 논리 게이트와 같은 표준화된 디지털 구성 요소를 사용할 수 있으며, 이는 예를 들어 VHDL 또는 Verilog®와 같은 RTL(Register Transfer Language)로의 회로를 구현할 수 있게 해 주고, 제어 장치가 표준 툴을 사용하여 구현될 수 있게 해 준다. 제어 장치는 표준화된 스캔 기법 또는 IDDQ 기법을 사용하여 테스트될 수 있다.
즉, 통상의 기술자는 본 발명의 핵심을 벗어나지 않으면서 상술되지 않은 본 발명의 실시예들도 구현할 수 있다.

Claims (8)

  1. 제어 장치(100)를 이용하여 I2C 슬레이브 장치를 제어하는 방법으로서,
    I2C 버스의 데이터 라인(SDA) 및 클록 라인(SCL) 상의 상태들을 평가하는 단계와,
    데이터 라인(SDA) 및 클록 라인(SCL) 상의 상태들을 상태 다이어그램(FMS)의 상태들(DL, DH, I, SP, ST)에 할당하는 단계로서, 제어 장치(100)에 의해 상태 다이어그램(FSM)의 상태들(DL, DH, I, SP, ST)로부터 I2C 슬레이브 장치를 위한 제어 신호(START, RESET)가 생성되는 단계를 포함하고,
    클록 라인(SCL) 상에서 하강 에지에 후속하여, 데이터 라인(SDA)은 하강 에지를 가지고 클록 라인(SCL)은 하이 레벨을 갖는 경우, 제1 제어 라인(LTG1) 상에서 스타트 제어 신호(START)가 활성화되는, I2C 슬레이브 장치의 제어 방법.
  2. 삭제
  3. 제1항에 있어서, 클록 라인(SCL)이 하이 레벨을 갖는 경우, 제1 제어 라인(LTG1) 상에서 스타트 제어 신호(START)가 비활성화되는, I2C 슬레이브 장치의 제어 방법.
  4. 제1항 또는 제3항에 있어서, 데이터 라인(SDA) 상에서 하강 에지가 발생하고 클록 라인(SCL)이 하이 레벨을 갖는 경우, 제2 제어 라인(LTG2) 상에서 리셋 제어 신호(RESET)가 활성화되는, I2C 슬레이브 장치의 제어 방법.
  5. 제4항에 있어서, 스타트 제어 신호(START)가 생성된 후에, 제2 제어 라인(LTG2) 상에서 리셋 제어 신호(RESET)가 비활성화되는, I2C 슬레이브 장치의 제어 방법.
  6. I2C 슬레이브 장치를 제어하기 위한 제어 장치(100)로서, 상기 장치는,
    I2C 버스의 데이터 라인(SDA)의 안내부, 및
    I2C 버스의 클록 라인(SCL)의 안내부를 가지며,
    이때, 제어 장치(100)는 데이터 라인(SDA) 및 클록 라인(SCL) 상의 상태들을 상태 다이어그램(FSM)의 상태들(DL, DH, I, SP, ST)에 할당하도록 구성되며,
    이때, 상태 다이어그램(FSM)의 상태들(DL, DH, I, SP, ST)로부터 I2C 슬레이브 장치를 위한 제어 신호(START, RESET)가 생성될 수 있고,
    클록 라인(SCL) 상에서 하강 에지에 후속하여, 데이터 라인(SDA)은 하강 에지를 가지고 클록 라인(SCL)은 하이 레벨을 갖는 경우, 제1 제어 라인(LTG1) 상에서 스타트 제어 신호(START)가 활성화되는, I2C 슬레이브 장치의 제어 장치.
  7. I2C 슬레이브 장치를 제어하기 위한 제어 장치(100)로서, 상기 장치는,
    I2C 버스의 데이터 라인(SDA)의 안내부, 및
    I2C 버스의 클록 라인(SCL)의 안내부를 가지며,
    이때, 제어 장치(100)는 데이터 라인(SDA) 및 클록 라인(SCL) 상의 상태들을 상태 다이어그램(FSM)의 상태들(DL, DH, I, SP, ST)에 할당하도록 구성되며,
    이때, 상태 다이어그램(FSM)의 상태들(DL, DH, I, SP, ST)로부터 I2C 슬레이브 장치를 위한 제어 신호(START, RESET)가 생성되고,
    데이터 라인(SDA)은 제1 인버터(70)의 입력부, 제2 D-플립플롭(20)의 반전된 클록 입력부, 및 제4 D-플립플롭(40)의 클록 입력부와 연결되며,
    제1 인버터(70)의 출력부는 OR 게이트(50)의 제2 입력부와 연결되며,
    클록 라인(SCL)은 제2 D-플립플롭(20)의 입력부, 제2 D-플립플롭(20)의 리셋 입력부, 제1 D-플립플롭(10)의 클록 입력부, 제4 D-플립플롭(40)의 데이터 입력부, 및 제3 D-플립플롭(30)의 클록 입력부와 연결되며,
    제2 D-플립플롭(20)의 출력부는 제2 인버터(71)의 입력부, 제3 D-플립플롭(30)의 입력부, 및 NOR 게이트(60)의 제1 입력부와 연결되며,
    제2 인버터(71)의 출력부는 제1 D-플립플롭(10)의 리셋 입력부와 연결되며,
    제4 D-플립플롭(40)의 출력부는 NOR 게이트(60)의 제2 입력부와 연결되며,
    제3 D-플립플롭(30)의 출력부는 I2C 슬레이브 장치의 제1 제어 라인(LTG1), OR 게이트(50)의 제1 입력부, 및 제3 인버터(72)의 입력부와 연결되며,
    제3 인버터(72)의 출력부는 제4 D-플립플롭(40)의 리셋 입력부와 연결되며,
    OR 게이트(50)의 출력부는 제1 D-플립플롭(10)의 입력부와 연결되며,
    제1 D-플립플롭(10)의 출력부는 제4 인버터(73)의 입력부와 연결되며,
    제4 인버터(73)의 출력부는 제3 D-플립플롭(30)의 리셋 입력부와 연결되며,
    NOR 게이트(60)의 출력부는 I2C 슬레이브 장치용 제2 제어 라인(LTG2)과 연결되는, I2C 슬레이브 장치의 제어 장치(100).
  8. 제6항 또는 제7항에 있어서, 제어 장치(100)는 I2C 슬레이브 장치의 일부인, I2C 슬레이브 장치의 제어 장치(100).
KR1020150160262A 2014-11-17 2015-11-16 I²c 슬레이브 장치용 제어 장치 KR102414143B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102014223362.3 2014-11-17
DE102014223362.3A DE102014223362A1 (de) 2014-11-17 2014-11-17 Steuerungseinrichtung für I²C-Slave-Einrichtungen

Publications (2)

Publication Number Publication Date
KR20160058709A KR20160058709A (ko) 2016-05-25
KR102414143B1 true KR102414143B1 (ko) 2022-06-29

Family

ID=55855084

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150160262A KR102414143B1 (ko) 2014-11-17 2015-11-16 I²c 슬레이브 장치용 제어 장치

Country Status (4)

Country Link
US (1) US9892085B2 (ko)
KR (1) KR102414143B1 (ko)
CN (1) CN105608038B (ko)
DE (1) DE102014223362A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113342725A (zh) * 2021-06-09 2021-09-03 上海南芯半导体科技有限公司 一种用于i2c从机设备地址重置的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110087914A1 (en) * 2009-08-28 2011-04-14 Enfora, Inc. I2c buffer clock delay detection method

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0184136B1 (ko) 1996-06-03 1999-05-15 구자홍 범용 마이컴을 이용한 아이 스퀘어 씨 통신 장치
US6530029B1 (en) 1999-09-23 2003-03-04 National Semiconductor Corporation I2C/SMBus start-stop detecting circuit that reduces the likelihood of stalling the bus due to glitches on the data line
US6799233B1 (en) * 2001-06-29 2004-09-28 Koninklijke Philips Electronics N.V. Generalized I2C slave transmitter/receiver state machine
EP1607864A2 (en) 2004-05-28 2005-12-21 Thomson Licensing Error recovery method for an I2C bus slave
US7493433B2 (en) * 2004-10-29 2009-02-17 International Business Machines Corporation System, method and storage medium for providing an inter-integrated circuit (I2C) slave with read/write access to random access memory
US20100185896A1 (en) * 2009-01-22 2010-07-22 International Business Machines Corporation Method and apparatus for fully redundant control of low-speed peripherals
US8521931B2 (en) * 2010-12-30 2013-08-27 Lsi Corporation Serial input output (SIO) port expansion apparatus and method
CN202600693U (zh) 2011-12-23 2012-12-12 苏州华芯微电子股份有限公司 I2c总线启动与停止电路结构
US9152598B2 (en) * 2012-11-28 2015-10-06 Atmel Corporation Connecting multiple slave devices to a single master controller in bus system
US8878569B1 (en) * 2013-04-23 2014-11-04 Atmel Corporation Self-recovering bus signal detector
US8996737B1 (en) * 2013-10-17 2015-03-31 Cisco Technology, Inc. Method for emulating communication standards of transceiver modules for native host devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110087914A1 (en) * 2009-08-28 2011-04-14 Enfora, Inc. I2c buffer clock delay detection method

Also Published As

Publication number Publication date
KR20160058709A (ko) 2016-05-25
US20160140078A1 (en) 2016-05-19
US9892085B2 (en) 2018-02-13
CN105608038A (zh) 2016-05-25
CN105608038B (zh) 2020-06-30
DE102014223362A1 (de) 2016-05-19

Similar Documents

Publication Publication Date Title
KR101086426B1 (ko) I2c 컨트롤러에서 직렬 데이터 라인의 상태 변화의타이밍 제어 장치 및 그 제어 방법
US10277213B1 (en) Glitch detection in input/output bus
US8103896B2 (en) Method and system for I2C clock generation
US20140095750A1 (en) Method for Managing the Operation of a Circuit Connected to a Two-Wire Bus
US9685953B1 (en) Low latency asynchronous interface circuits
WO2014071515A1 (en) Adaptive clock mismatch compensation symbol insertion in signal transmissions
US9213355B2 (en) Selective insertion of clock mismatch compensation symbols in signal transmissions based on a receiver's compensation capability
US20150286607A1 (en) Determination of the state of an i2c bus
US11080158B2 (en) Microcontroller and method for modifying a transmission signal
CN105468548A (zh) 串行外围接口的通信
US9954534B2 (en) Methods and circuits for preventing hold time violations
KR20140008260A (ko) Spi 인터페이스 및 spi 인터페이스를 통한 직렬 통신 방법
CN110647486B (zh) 一种PCIe链路训练方法、端设备及通讯系统
US20220309023A1 (en) An inter-integrated circuit (i2c) apparatus
JP2019096960A (ja) 伝送装置及び伝送方法
KR102414143B1 (ko) I²c 슬레이브 장치용 제어 장치
CN107533533B (zh) 集成电路之间的通信
CN108369565A (zh) 通信装置、通信方法、程序、以及通信系统
US8996757B2 (en) Method and apparatus to generate platform correctable TX-RX
CN107132469B (zh) 多路信号检测方法和电路及控制芯片
CN112395143B (zh) 运用于i3c总线的开始与结束检测装置与方法
US20180137079A1 (en) Inter-integrated circuit bus arbitration system capable of avoiding host conflict
CN105068967B (zh) I2c设备的控制方法、装置及终端
Cvejanovic et al. Control device for I 2 C slave device
JP6062795B2 (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