KR20050039299A - I2c 인터페이스를 사용하는 시스템 - Google Patents

I2c 인터페이스를 사용하는 시스템 Download PDF

Info

Publication number
KR20050039299A
KR20050039299A KR1020030074732A KR20030074732A KR20050039299A KR 20050039299 A KR20050039299 A KR 20050039299A KR 1020030074732 A KR1020030074732 A KR 1020030074732A KR 20030074732 A KR20030074732 A KR 20030074732A KR 20050039299 A KR20050039299 A KR 20050039299A
Authority
KR
South Korea
Prior art keywords
fifo
data
interface
interrupt
main processor
Prior art date
Application number
KR1020030074732A
Other languages
English (en)
Inventor
전규필
Original Assignee
매그나칩 반도체 유한회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 매그나칩 반도체 유한회사 filed Critical 매그나칩 반도체 유한회사
Priority to KR1020030074732A priority Critical patent/KR20050039299A/ko
Publication of KR20050039299A publication Critical patent/KR20050039299A/ko

Links

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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

본 발명은 I2C 인터페이스를 담당하는 로직 내부에 FIFO를 설치하여 원하는 크기(depth)의 바이트가 칩들간에 전송될 때까지 메인 프로세서로 인터럽트를 요청하지 않기 때문에 메인 프로세서의 부하(load)를 줄여 전체 시스템의 성능을 향상시킬 수 있는 I2C 인터페이스를 사용하는 시스템에 관한 것이다.

Description

I2C 인터페이스를 사용하는 시스템{System using I2C interface}
본 발명은 I2C 직렬 통신 방식을 사용하는 시스템에 관한 것으로, 보다 상세하게는 I2C 인터페이스를 담당하는 로직 내부에 FIFO(First In First Out)를 설치하여 원하는 크기(depth)의 바이트가 칩들간에 전송될 때까지 메인 프로세서로 인터럽트를 요청하지 않기 때문에 메인 프로세서의 부하(load)를 줄여 전체 시스템의 성능을 향상시킬 수 있는 I2C 인터페이스를 사용하는 시스템에 관한 것이다.
일반적으로 I2C는 집적회로들 간의 통신 링크를 제공하는 두 가닥 선의 양방향 직렬 버스이다.
I2C 버스는 이미 20년 전에 필립스에서 TV, VCR 및 오디오 장비 등과 같은 대량 생산되는 제품에 적용되었는데, 현재 내장 응용을 위한 사실상의 표준 솔루션이 되었다.
I2C 버스에는 표준, 고속 및 초고속 등 속도에 따라 세 가지 데이터 전송 모드가 있는데, 표준 모드는 100 Kbps, 고속은 400 Kbps, 그리고 초고속 모드에서는 최고 3.4 Mbps의 속도를 지원한다. 이 세 가지 모두 하위 호환성을 갖는다. I2C 버스는 7 비트와 10 비트 주소 공간을 갖는 장비들과, 서로 다른 전압에서 동작하는 장비들을 지원한다.
I2C 인터페이스를 사용하는 시스템은 단지 2개의 핀(클럭(SCL), 데이터(SDA))만을 이용해서 칩들간에 데이터를 교환한다.
I2C 모듈은 마스터 슬레이브 모드(master slave mode)로 동작할 수 있고, 각 모드에서 송신기(transmitter) 또는 수신기(receiver)가 될 수 있으며, 각 동작 모드는 마스터에 의해 결정된다.
2개의 직렬 버스 라인(serial bus line)은 오픈 드레인 패드(open drain pad)를 사용하게 되며, 버스가 아이들(idle) 상태일 때는 SCL, SDA 라인 모두 풀업(하이 레벨) 상태를 유지한다.
도 1은 I2C의 시작 조건(start condition) 및 종료 조건(stop condition)을 나타낸 타이밍도이다.
통신이 시작되는 시작 조건은 SCL이 하이 레벨일 때 SDA가 로우 레벨로 천이하여 생성되고, 종료 조건은 SCL이 하이 레벨일 때 SDA가 하이 레벨로 천이하여 생성된다. 종료 조건이 되면 데이터 전송 동작은 종료된다. 여기서, 데이터는 8 비트 단위로 전송되며 MSB가 먼저 전송되는 구조이다.
도 2는 일반적인 I2C 직렬 버스의 통신 프로토콜(protocol)을 나타낸 개념도이다. 여기서, 빗금친 부분은 마스터로부터 슬레이브로 요청하는 동작을 나타내며, 나머지 부분은 슬레이브로부터 마스터로 요청하는 동작을 나타낸다. 또한 A는 확인(acknowledge)(SDA 로우 상태), /A는 미확인(not acknowledge)(SDA 하이 상태), S는 시작 조건, 및 P는 종료 조건을 나타낸다.
통신 프로토콜은 마스터에 의한 시작 조건(S) 이후에 7 비트의 슬레이브 어드레스(Slave Address)와 R/W 비트가 전송되고, 슬레이브에 의한 어드레스 확인(AA; address acknowledge) 이후에 마스터에 의한 종료 조건(P) 또는 슬레이브에 의한 데이터 미확인(/DA; data not acknowledge) 조건이 발견되지 않는 한 1 바이트의 데이터(DATA)와 데이터 확인(DA; data acknowledge) 단계(phase)의 반복으로 통신이 이루어진다.
I2C 인터페이스를 내장하고 있는 범용 칩들의 경우 1 바이트의 데이터 전송(데이터(DATA)와 데이터 확인(DA))이 이루어진 후 메인 프로세서(CPU)에 인터럽트를 요청하여 수신한 바이트를 읽거나 전송할 데이터를 송신 레지스터(transmit register)에 라이트한 후 다음 데이터 전송이 이루어진다.
이와 같이 종래 기술에 따른 I2C 인터페이스를 사용하는 시스템의 경우 1 바이트 버퍼만을 구비하기 때문에, 1 바이트의 데이터 전송이 이루어질 때마다 메인 프로세서로 인터럽트를 발생시켜 수신한 바이트를 읽거나 전송할 바이트를 써줘야 하기 때문에 전체적으로 시스템의 성능이 낮아지는 문제점이 있다.
상기 문제점을 해결하기 위한 본 발명의 목적은 I2C 인터페이스를 담당하는 로직의 내부에 FIFO를 설치하여 원하는 크기(depth)의 바이트가 칩들간에 전송될 때까지 메인 프로세서로 인터럽트를 요청하지 않아 메인 프로세서의 부하(load)를 줄여 전체 시스템의 성능을 향상시키는 것이다.
상기 목적을 달성하기 위한 본 발명의 I2C 인터페이스를 사용하는 시스템은 상기 I2C 인터페이스를 담당하는 로직 내부에 FIFO를 설치하여, 원하는 크기(depth)의 바이트가 칩들간에 전송될 때까지 메인 프로세서로 인터럽트를 요청하지 않는 것을 특징으로 한다.
상술한 목적 및 기타의 목적과 본 발명의 특징 및 이점은 첨부도면과 관련한 다음의 상세한 설명을 통해 보다 분명해 질 것이다.
이하, 첨부 도면을 참조하여 본 발명의 실시예를 상세히 설명하면 다음과 같다.
본 발명은 I2C 인터페이스를 담당하는 로직 내부에 송신기(transmitter)와 수신기(receiver) 모두에 사용되는 적절한 크기(depth)의 FIFO(First In First Out)를 설치하여 원하는 바이트의 데이터를 전송하거나 수신한 후에 메인 프로세서(CPU)에 인터럽트(interrupt)를 요청함으로써 메인 프로세서(CPU)에 인터럽트를 요청하는 회수를 최대 FIFO 크기만큼 줄일 수 있다. 따라서 전체 시스템의 성능 향상을 꾀할 수 있다.
도 3은 본 발명에 따른 I2C 인터페이스를 사용하는 시스템에 사용되는 FIFO 블록을 나타낸 개념도이다.
FIFO 블록은 16 바이트의 데이터를 저장할 수 있는 FIFO(1)와 FIFO(1)를 제어하는 제어부(2)를 포함한다.
I2C 모듈이 송신기(transmitter)로 동작할 때에는 Readfifo_tx/Writefifo_tx 신호가 FIFO(1)의 리드/라이트 신호가 되며, 수신기(receiver)로 동작할 때에는 Readfifo_rx/Writefifo_rx 신호가 FIFO(1)의 리드/라이트 신호가 된다.
먼저, Writefifo_tx 신호가 인에이블되면 메인 프로세서(CPU)가 FIFO(1)에 데이터를 라이트하고, Readfifo_tx 신호가 인에이블되면 FIFO(1)의 1 바이트 데이터가 직렬 데이터 라인(I2C)을 통해 송신된다.
한편, Writefifo_rx 신호가 인에이블되면 직렬 데이터 라인(I2C)을 통해 1 바이트의 데이터(FifoDin<7:0>)가 FIFO(1)에 라이트 되고, Readfifo_rx 신호가 인에이블 되면 메인 프로세서(CPU)가 FIFO(1)의 데이터(FifoDout<7:0>)를 리드한다.
이때, FIFO(1)에 데이터가 수신되면(data in) WriteFifo 신호가 인에이블되어 FIFO(1)의 라이트 포인터(write pointer)를 증가시키고, FIFO(1)의 데이터가 송신되면(data out) ReadFifo 신호가 인에이블되어 FIFO(1)의 리드 포인터(read pointer)를 증가시킨다.
I2C의 경우 2개의 직렬 라인인 SCL(클럭), SDA(데이터)만을 사용하기 때문에 송신과 수신이 동시에 이루어질 수 없기 때문에 내부에 사용되는 FIFO(1)는 송신 모드 또는 수신 모드와 관계없이 동시에 사용될 수 있다. 따라서, FIFO(1)를 Rx/Tx 모드에서 동시에 사용함으로써 칩 크기를 줄일 수 있다.
예를 들어 FIFO(1)의 크기(depth)가 16 바이트일 경우 I2C 제어기가 마스터 모드로 동작한다고 가정하면, 내부 FIFO(1)에 16 바이트의 데이터를 미리 라이트한 후에 슬레이브 장치에 데이터를 전송할 수 있다.
이러한 경우 메인 프로세서(CPU)로 요청되는 인터럽트는 16 바이트가 모두 전송된 후에 발생하도록 설정할 수 있다.
또한 인터럽트 임계값(interrupt threshold)(FDD)을 설정할 수 있도록 FIFO(1)를 구성하면 송신 모드일 경우 FDD만큼의 데이터가 전송된 후, 수신 모드로 전환된 후 설정된 값(FDD)만큼의 데이터를 수신한 후에 인터럽트를 발생시키도록 만들 수 있다. 이러한 경우 FIFO(1)가 모두 비어 있거나(empty) 가득 차기(full) 이전에 FIFO(1) 데이터를 제어(handling)할 수 있다.
즉, 송신기일 경우 FIFO(1)에서 전송된 데이터의 개수가 FDD<3:0>과 일치할 경우 또는 수신기일 경우 FIFO(1)가 수신한 데이터의 개수가 FDD<3:0>과 일치할 경우 Data_request 신호를 메인 프로세서(CPU)에 전달하여 송신기 또는 수신기 각각의 경우에 FIFO(1)에 데이터를 라이트 하거나 FIFO(1)의 데이터를 리드하는 역할을 수행한다.
이상에서 살펴본 바와 같이, 본 발명에 따른 I2C 인터페이스를 사용하는 시스템은 I2C를 담당하는 로직에 FIFO를 추가하여 원하는 바이트만큼의 데이터를 전송한 후에 인터럽트를 요구하기 때문에 메인 프로세서의 부하를 줄일 수 있는 효과가 있다.
아울러 본 발명의 바람직한 실시예는 예시의 목적을 위한 것으로, 당업자라면 첨부된 특허청구범위의 기술적 사상과 범위를 통해 다양한 수정, 변경, 대체 및 부가가 가능할 것이며, 이러한 수정 변경 등은 이하의 특허청구범위에 속하는 것으로 보아야 할 것이다.
도 1은 I2C의 시작 조건(start condition) 및 종료 조건(stop condition)을 나타낸 타이밍도.
도 2는 일반적인 I2C 직렬 버스의 통신 프로토콜(protocol)을 나타낸 개념도.
도 3은 본 발명에 따른 I2C 인터페이스를 사용하는 시스템에 사용되는 FIFO 블록을 나타낸 개념도.

Claims (3)

  1. I2C 인터페이스를 사용하는 시스템에 있어서,
    상기 I2C 인터페이스를 담당하는 로직 내부에 FIFO를 설치하여, 원하는 크기(depth)의 바이트가 칩들간에 전송된 후에 메인 프로세서로 인터럽트를 요청하는 것을 특징으로 하는 I2C 인터페이스를 사용하는 시스템.
  2. 제 1 항에 있어서, 상기 FIFO는
    송신 모드 또는 수신 모드에서 동시에 사용할 수 있는 것을 특징으로 하는 I2C 인터페이스를 사용하는 시스템.
  3. 제 2 항에 있어서, 상기 FIFO는
    인터럽트 임계값(interrupt threshold)을 설정하여, 상기 송신 모드에서 상기 인터럽트 임계값만큼의 데이터를 전송한 후, 상기 수신 모드에서 상기 인터럽트 임계값만큼의 데이터를 수신한 후에 인터럽트를 발생하는 것을 특징으로 하는 I2C 인터페이스를 사용하는 시스템.
KR1020030074732A 2003-10-24 2003-10-24 I2c 인터페이스를 사용하는 시스템 KR20050039299A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030074732A KR20050039299A (ko) 2003-10-24 2003-10-24 I2c 인터페이스를 사용하는 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030074732A KR20050039299A (ko) 2003-10-24 2003-10-24 I2c 인터페이스를 사용하는 시스템

Publications (1)

Publication Number Publication Date
KR20050039299A true KR20050039299A (ko) 2005-04-29

Family

ID=37241550

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030074732A KR20050039299A (ko) 2003-10-24 2003-10-24 I2c 인터페이스를 사용하는 시스템

Country Status (1)

Country Link
KR (1) KR20050039299A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100672064B1 (ko) * 2005-01-07 2007-01-22 삼성전자주식회사 버스 컨트롤러
KR100745780B1 (ko) * 2006-02-15 2007-08-02 엘지전자 주식회사 정렬 유닛을 갖는 노광기용 정렬장치 및 그를 이용한 패턴글래스 정렬 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100672064B1 (ko) * 2005-01-07 2007-01-22 삼성전자주식회사 버스 컨트롤러
KR100745780B1 (ko) * 2006-02-15 2007-08-02 엘지전자 주식회사 정렬 유닛을 갖는 노광기용 정렬장치 및 그를 이용한 패턴글래스 정렬 방법

Similar Documents

Publication Publication Date Title
EP2397949B1 (en) Flow control for universal serial bus (USB)
US9720866B2 (en) Interface circuit executing protocol control in compliance with first and second interface standards
US20110087914A1 (en) I2c buffer clock delay detection method
GB2488223A (en) Serial peripheral interface with handshake signals
US11216407B2 (en) Single communication interface and a method with internal/external addressing mode
JP2004334417A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
US11630796B2 (en) Serial peripheral interface (SPI) automatic register address incrementation across data frames
US20050091564A1 (en) Data transfer control device, electronic instrument, and data transfer control method
WO2005091591A1 (en) Device and method for electronic data conversion
KR20040076730A (ko) 고속의 무선 통신에 적합한 하이브리드형 직렬 데이터전송 장치 및 그 방법
CN108733600B (zh) 具有直接存储器访问控制器的电子系统及其操作方法
US20030101308A1 (en) Bus system and bus interface for connection to a bus
JP7437220B2 (ja) アダプタ装置及び通信方法
KR20050039299A (ko) I2c 인터페이스를 사용하는 시스템
US8131890B1 (en) Circuit and method for increasing universal serial bus (USB) device endpoints
WO2020102037A1 (en) Reducing latency on long distance point-to-point links
KR20040043198A (ko) 버스 시스템 및 버스 인터페이스
KR100619353B1 (ko) 이중 데이터 송신이 가능한 i2c 버스 제어 시스템
WO2020107727A1 (en) Single communication interface and a method with internal/external addressing mode
KR20070102823A (ko) I2c 프로토콜에서의 어드레스 제어 장치
CN112783811B (zh) 微控制器架构及架构内数据读取方法
US20050262262A1 (en) USB host protocol
US20230214607A1 (en) Main Device, Sub-device and Communication System
KR100698303B1 (ko) 직렬 버스 디렉션 컨트롤러
US20210119631A1 (en) Semiconductor device including subsystem interfaces and communications method thereof

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITB Written withdrawal of application