KR20050076924A - 양방향 통신이 가능한 i2c 통신시스템 및 그 방법 - Google Patents
양방향 통신이 가능한 i2c 통신시스템 및 그 방법 Download PDFInfo
- Publication number
- KR20050076924A KR20050076924A KR1020040004743A KR20040004743A KR20050076924A KR 20050076924 A KR20050076924 A KR 20050076924A KR 1020040004743 A KR1020040004743 A KR 1020040004743A KR 20040004743 A KR20040004743 A KR 20040004743A KR 20050076924 A KR20050076924 A KR 20050076924A
- Authority
- KR
- South Korea
- Prior art keywords
- slave
- interrupt
- data
- master
- communication
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- E—FIXED CONSTRUCTIONS
- E06—DOORS, WINDOWS, SHUTTERS, OR ROLLER BLINDS IN GENERAL; LADDERS
- E06B—FIXED OR MOVABLE CLOSURES FOR OPENINGS IN BUILDINGS, VEHICLES, FENCES OR LIKE ENCLOSURES IN GENERAL, e.g. DOORS, WINDOWS, BLINDS, GATES
- E06B7/00—Special arrangements or measures in connection with doors or windows
- E06B7/16—Sealing arrangements on wings or parts co-operating with the wings
- E06B7/18—Sealing arrangements on wings or parts co-operating with the wings by means of movable edgings, e.g. draught sealings additionally used for bolting, e.g. by spring force or with operating lever
- E06B7/20—Sealing arrangements on wings or parts co-operating with the wings by means of movable edgings, e.g. draught sealings additionally used for bolting, e.g. by spring force or with operating lever automatically withdrawn when the wing is opened, e.g. by means of magnetic attraction, a pin or an inclined surface, especially for sills
- E06B7/215—Sealing arrangements on wings or parts co-operating with the wings by means of movable edgings, e.g. draught sealings additionally used for bolting, e.g. by spring force or with operating lever automatically withdrawn when the wing is opened, e.g. by means of magnetic attraction, a pin or an inclined surface, especially for sills with sealing strip being moved to a retracted position by elastic means, e.g. springs
-
- E—FIXED CONSTRUCTIONS
- E06—DOORS, WINDOWS, SHUTTERS, OR ROLLER BLINDS IN GENERAL; LADDERS
- E06B—FIXED OR MOVABLE CLOSURES FOR OPENINGS IN BUILDINGS, VEHICLES, FENCES OR LIKE ENCLOSURES IN GENERAL, e.g. DOORS, WINDOWS, BLINDS, GATES
- E06B7/00—Special arrangements or measures in connection with doors or windows
- E06B7/28—Other arrangements on doors or windows, e.g. door-plates, windows adapted to carry plants, hooks for window cleaners
- E06B7/36—Finger guards or other measures preventing harmful access between the door and the door frame
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- E—FIXED CONSTRUCTIONS
- E05—LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
- E05Y—INDEXING SCHEME ASSOCIATED WITH SUBCLASSES E05D AND E05F, RELATING TO CONSTRUCTION ELEMENTS, ELECTRIC CONTROL, POWER SUPPLY, POWER SIGNAL OR TRANSMISSION, USER INTERFACES, MOUNTING OR COUPLING, DETAILS, ACCESSORIES, AUXILIARY OPERATIONS NOT OTHERWISE PROVIDED FOR, APPLICATION THEREOF
- E05Y2800/00—Details, accessories and auxiliary operations not otherwise provided for
- E05Y2800/40—Physical or chemical protection
- E05Y2800/41—Physical or chemical protection against finger injury
-
- E—FIXED CONSTRUCTIONS
- E06—DOORS, WINDOWS, SHUTTERS, OR ROLLER BLINDS IN GENERAL; LADDERS
- E06B—FIXED OR MOVABLE CLOSURES FOR OPENINGS IN BUILDINGS, VEHICLES, FENCES OR LIKE ENCLOSURES IN GENERAL, e.g. DOORS, WINDOWS, BLINDS, GATES
- E06B3/00—Window sashes, door leaves, or like elements for closing wall or like openings; Layout of fixed or moving closures, e.g. windows in wall or like openings; Features of rigidly-mounted outer frames relating to the mounting of wing frames
- E06B3/02—Wings made completely of glass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0016—Inter-integrated circuit (I2C)
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Civil Engineering (AREA)
- Structural Engineering (AREA)
- Information Transfer Systems (AREA)
Abstract
양방향 I2C 통신이 가능한 통신 시스템 및 그 방법이 개시된다. SCL(Serial Clock Line) 및 SDA(Serial DAta line)로 구성된 I2C 버스를 통해 통신하는 마스터와 적어도 하나의 슬레이브를 포함하는 통신 시스템은, 마스터와 슬레이브는 인터럽트라인으로 직접 연결되며, 슬레이브가 통신을 요청하는 인터럽트를 마스터에 전송하면, 마스터는 상기 SCL 및 SDA를 상기 슬레이브와 통신을 수행한다. 따라서, 슬레이브에서 인터럽트를 발생함으로써 마스터에 통신을 요청할 수 있어 간단한 하드웨어 구현으로 프로세서 간의 양방향 통신이 가능하다.
Description
본 발명은 I2C 통신 시스템에 관한 것으로서, 보다 상세하게는, I2C 버스에 의해 연결된 마스터와 슬레이브 간의 양방향 통신이 가능한 I2C 통신 시스템 및 그 방법에 관한 것이다.
I2C는 TV, VCR 및 오디오 장비 등과 같은 대량 생산되는 제품용 집적회로들 간의 통신 링크를 제공하는 두 가닥의 양방향 직렬 버스로서, 필립스에 의해 소개되었다. I2C는 오늘날, 내장 응용을 위한 사실상의 표준 솔루션이 되었다.
I2C 버스는 클록 전송을 위한 직렬 클록 라인(SCL)(Serial Clock Line)과 데이터를 직렬로 전송하기 위한 직렬 데이터 전송 라인(SDA)(Serial DAta line)으로 구성되며, 데이터는 클록에 따라서 송수신된다. 또한, I2C 버스에 접속된 디바이스들은 마스터(master)와 슬레이브(slave) 관계로 통신한다. I2C는 다수의 슬레이브 장치와 통신이 가능한 직렬버스 프로토콜로서, 다수의 슬레이브 장치가 전원선과 두 가닥의 선(SCL, SDA)으로 연결되어 데이터 송수신이 가능하다.
일반적인 시스템은 마이콤과 각종 I/O 디바이스 예를 들면, ADC(Analog to Digital Converter), 센서, EEPROM(Electrically Erasable and Programmable ROM) 등의 통신을 위해서 I/O 개수에 해당하는 신호선과 전원선을 필요로 한다. 시리얼 인터페이스 프로토콜(serial interface protocol)인 I2C는 이러한 복잡함을 줄이기 위해 도입된 것으로, 마이콤은 두 가닥의 SCL, SDA 선으로 공통으로 연결된 I2C 버스를 통해 각 디바이스와 통신할 수 있다.
도 1은 일반적인 I2C 버스의 구성을 개략적으로 도시한 블록도이다. 도면을 참조하면, I2C 마스터(1)는 SCL, SDA 두 개의 라인을 통해 I2C 슬레이브(2)와 연결되어 있다. 슬레이브는 편의상 하나 만을 도시한다. I2C 마스터(1)는 I2C를 지원하는 I/O 디바이스들의 제어를 위해 I2C 버스 컨트롤러(미도시)를 이용해서 I2C 버스 상의 I/O 디바이스들에 단순히 데이터를 쓰거나, 읽는 동작을 수행한다.
또한, I2C 마스터(1)는 전송을 개시하는 장치로서 클록 펄스를 생성하고, 전송을 종료하는 역할을 하는 장치이며, I2C 슬레이브(2)는 I2C 마스터(1)가 어드레싱하는 장치이다. I2C 마스터(1)가 시작 상태(start condition)를 만들면, 버스에 연결된 슬레이브 장치들이 이후의 데이터를 기다린다.
I2C 마스터(1)가 슬레이브 어드레스를 보내면, 각각의 디바이스는 자신의 고유 어드레스와 비교하며, 어드레스가 일치하는 디바이스(여기서는 I2C 슬레이브(2))는 이어지는 ACK 신호 구간에 이에 대한 응답을 보낸다. 그러면, 마스터(1)는 슬레이브(2)와 데이터를 송수신 할 수 있다. 데이터 송수신이 끝나면, 마스터는 정지 상태(stop contion)를 만들고, 버스를 해제(release)한다.
상기한 바와 같은 종래 기술에 따르면, I2C 버스를 통한 데이터 송수신을 위한 어드레싱은 마스터(1)에 의해서 수행되며, 슬레이브(2)는 마스터(1)에 의해 데이터 송수신이 요청되는 경우에만 이에 응답하여 통신에 참여할 수 있다. 따라서, 슬레이브(2)가 데이터 송수신을 요구할 수 없는 문제점이 있다.
특히, 슬레이브(2)가 타 장치를 제어하는 프로세서인 경우, 타 장치에서 발생하는 각종 상황을 마스터(1)에게 통지할 필요성이 있음에도 불구하고, 종래 기술에 따르면 슬레이브(2)가 이러한 상황을 마스터(1)에게 통지할 방법이 없다는 문제점이 있다.
본 발명은 상기한 문제점을 해결하기 위해 안출한 것으로, 본 발명의 목적은 I2C 버스에 의해 연결된 슬레이브가 통신이 필요한 경우 마스터로 인터럽트를 발생하여 통신을 요청함으로써 양방향 통신을 구현할 수 있는 I2C 통신 시스템을 제공하는 것을 목적으로 한다.
상기의 목적을 달성하기 위한 본 발명에 따른 SCL(Serial Clock Line) 및 SDA(Serial DAta line)로 구성된 I2C 버스를 통해 통신하는 마스터와 적어도 하나의 슬레이브를 포함하는 통신 시스템은, 상기 마스터와 상기 슬레이브는 인터럽트라인으로 직접 연결되며, 상기 슬레이브가 통신을 요청하는 인터럽트를 상기 마스터에 전송하면, 상기 마스터는 상기 SCL 및 SDA를 통해 상기 슬레이브와 통신을 수행한다.
바람직하게는, 상기 인터럽트라인은 상기 각 슬레이브에 따라 상기 마스터의 병렬 인터페이스에 각각 연결된다.
또한, 상기 슬레이브는, 상기 마스터 프로세서와 직접 연결된 상기 인터럽트 라인을 통해, 통신을 요청하는 인터럽트를 발생하는 인터럽트발생부, 상기 인터럽트를 수신한 상기 마스터에서 상기 SDL을 통해 전송한 클록에 따라 상기 SDA를 통해 데이터를 송수신 하는 SDA부 및 상기 SDA부를 통해 송수신되는 데이터를 전송 방식에 따라 처리하는 데이터처리부를 포함하는 것이 바람직하다.
또한, 상기 데이터처리부는 전송될 상기 데이터를 적어도 하나의 바이트로 구성된 페이로드(Payload)를 포함하는 패킷으로 처리하는 것이 바람직하다.
바람직하게는, 상기 데이터는 패킷화되어 상기 SDA를 통해 패킷 단위로 연속적으로 송수신되며, 하나의 패킷에 대한 송수신이 종료되면 상기 통신은 종료된다.
또한, 상기 데이터는 상기 SDA를 통해 바이트 단위로 송수신되며, 하나의 바이트에 대한 송수신이 종료되면 상기 통신은 종료되는 것이 바람직하다.
바람직하게는, 상기 마스터는, 상기 슬레이브로부터 통신을 요청하는 상기 인터럽트가 수신되었는지를 검출하는 인터럽트검출부, 상기 슬레이브와의 통신을 위한 클록을 발생하여 상기 SCL을 통해 전송하는 SCL부 및 상기 인터럽트검출부로부터 상기 인터럽트를 전송한 상기 슬레이브 및 상기 상기 인터럽트 검출을 알리는 검출 신호를 수신하면, 상기 SCL을 통해 상기 슬레이브로 클록을 송신하고, 상기 SDA를 통해 상기 슬레이브의 어드레스를 전송하여 상기 데이터 송수신을 시작하는 제어부를 포함한다.
또한, 상기의 목적을 달성하기 위한 SCL(Serial Clock Line) 및 SDA(Serial DAta line)로 구성된 I2C 버스를 통해 마스터와 적어도 하나의 슬레이브가 통신하는 방법은, 상기 슬레이브로부터 상기 마스터와 직접 연결된 인터럽트라인을 통해 통신을 요청하는 인터럽트를 송신하는 단계 및 상기 마스터가 상기 인터럽트를 수신하면, 상기 SCL 및 상기 SDA를 통해 상기 슬레이브와의 통신을 수행하는 단계를 포함한다. 바람직하게는, 상기 인터럽트라인은 상기 각 슬레이브에 따라 상기 마스터의 병렬 인터페이스에 각각 연결된다.
또한, 상기 통신 수행 단계는, 상기 마스터에서 상기 SDL을 통해 전송한 클록에 따라 상기 SDA를 통해 데이터를 송수신 하는 단계 및 상기 SDA를 통해 수신된 상기 데이터를 처리하는 단계를 포함하는 것이 바람직하다.
바람직하게는, 상기 데이터는 적어도 하나의 바이트로 구성된 페이로드(Payload)로 구성되어 패킷화된다. 또한, 상기 데이터는 패킷화되어 상기 SDA를 통해 패킷 단위로 연속적으로 송수신되며, 하나의 패킷에 대한 송수신이 종료되면 상기 통신은 종료된다.
바람직하게는, 상기 데이터는 상기 SDA를 통해 바이트 단위로 송수신되며, 하나의 바이트에 대한 송수신이 종료되면 상기 통신은 종료된다.
또한, 상기 통신 수행 단계는, 상기 슬레이브로부터 통신을 요청하는 상기 인터럽트가 수신되면, 상기 인터럽트를 전송한 상기 슬레이브 및 상기 상기 인터럽트 검출을 알리는 검출 신호를 발생하는 단계, 상기 검출 신호가 발생하면, 상기 슬레이브와의 통신을 위한 클록을 발생하여 상기 SCL을 통해 전송하는 단계, 상기 SDA를 통해 상기 슬레이브의 어드레스를 전송하여 상기 데이터 송수신을 시작하는 단계 및 상기 데이터 송수신이 종료되면, 상기 데이터에 포함된 첵섬을 계산하여 오류를 점검하는 단계를 포함하는 것이 바람직하다.
이하, 첨부된 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 2는 본 발명에 따른 양방향 I2C 버스의 기본적인 구성을 개략적으로 설명하기 위해 도시한 도면이다. 도면을 참조하면, I2C 마스터(100)와 I2C 슬레이브(200)는 I2C 버스의 SCL, SDA 두 개의 라인 외에 인터럽트라인(300)에 의해 연결되어 있다. I2C 마스터(100)는 예를 들면 마이콤 등에 해당하며, I2C 버스를 통해 I2C 슬레이브(200)를 어드레싱하고, 클록을 발생하여 데이터를 송수신한다. 또한, 슬레이브(200)는 타 장치를 유무선을 통해 제어하는 프로세서 등 자체 통신 인터페이스를 구비하는 장치에 해당한다.
인터럽트라인(300)은 하나의 신호선을 형성하며, 병렬 인터페이스인 GPIO(General-purpose I/O) 포트에 구비된 핀 중 하나에 연결하여 구현된다. 즉, 각 슬레이브에 대해 마스터(100)에 마련된 GPIO 인터페이스(미도시)의 핀 하나씩을 할당하여 연결하는 간단한 구조로 구현된다. 따라서, 슬레이브(200)에서 전송한 인터럽트는 인터럽트라인(300)을 통해 마스터(100)의 GPIO 인터페이스(미도시)로 인가되어 마스터(100)에 통신을 요청하게 된다.
도 3은 본 발명에 따른 I2C 통신 시스템을 상세히 설명하기 위해 도시한 도면이다. 도면을 참조하면, 마스터(100)는 SCL부(110), SDA부(120), 인터럽트검출부(130), 데이터처리부(140), 제어부(150) 및 저장부(160)를 포함한다.
SCL부(110)는 슬레이브(200)의 동작 주파수를 생성하고, 클록을 발생하여 SCL 라인을 통해 I2C 슬레이브(200)로 송신한다. SDA부(120)는 슬레이브(200)을 어드레싱하기 위해 SDA 라인을 통해 슬레이브 어드레스를 송신하고, 통신이 시작되면 SDA 라인을 통해 슬레이브(200)와 데이터를 송수신한다.
데이터처리부(140)는 슬레이브(200)에 송신할 데이터를 미리 설정된 포맷에 따라 생성하거나, 슬레이브(200)로부터 수신한 데이터를 처리한다. 마스터(100)와 슬레이브(200) 간에 송수신되는 데이터의 구조에 대해서는 후술한다.
제어부(150)는 I2C 버스의 상태를 모니터링하여 SCL부(110) 및 SDA부(120)를 제어하여 초기조건을 발생하고 슬레이브(200)와 데이터를 송수신하거나 종결조건을 발생하여 데이터 송수신을 종결한다. 또한, 제어부(150)는 인터럽트검출부(130)에 의해 슬레이브(200)로부터의 인터럽트가 검출되면 SCL부(110), SDA부(120) 및 데이터처리부(140)를 제어하여 슬레이브(200)와의 통신을 수행한다.
제어부(150)의 동작을 위해 필요한 각종 데이터, 프로그램, 프로토콜 및 제어부(150)의 동작 수행에 의해 발생하는 각종 데이터는 저장부(160)에 저장된다. 저장부(160)는 또한 SCL부(110), SDA부(120) 및 데이터처리부(140)의 동작에 필요한 각종 데이터를 저장하고, 데이터처리부(140)에 의해 처리된 데이터를 저장한다.
인터럽트검출부(130)는 인터럽트라인(300)을 통해 슬레이브(200)로부터 수신된 인터럽트를 검출하여, 인터럽트를 전송한 슬레이브(200)에 대한 정보를 포함하는 검출 신호를 제어부(150)로 출력한다. 인터럽트검출부(130)는 상기한 병렬 인터페이스(미도시)를 통해 인터럽트라인(300)에 연결되어 인터럽트가 검출된 핀에 따라 인터럽트를 발생한 슬레이브(200)를 판단할 수 있다.
도 3을 다시 참조하면, 슬레이브(200)는 SCL부(210), SDA부(220), 인터럽트발생부(230), 데이터처리부(240), 제어부(250) 및 저장부(260)를 포함한다.
SCL부(210)는 SCL 라인을 통해 마스터(100)로부터 수신되는 클록을 수신한다. SDA부(220)는 마스터(100)와 연결된 SDA 라인을 통해 슬레이브 어드레스를 수신하고, 통신이 시작되면 SCL 라인을 통해 수신되는 클록에 따라 마스터(100)와 데이터를 송수신한다.
데이터처리부(240)는 마스터(100)에 송신할 데이터를 미리 설정된 포맷에 따라 생성하거나, 마스터(100)로부터 수신한 데이터를 처리한다.
제어부(250)는 I2C 버스의 상태를 모니터링하고 통신이 시작되면 SDA부(220)를 제어하여 마스터(100)와 데이터를 송수신한다. 또한, 제어부(250)는 마스터(100)와 통신이 필요한 경우 통신을 요청하는 인터럽트를 발생하도록 인터럽트발생부(230)를 제어한다. 인터럽트발생부(230)에 의해 발생된 인터럽트는 병렬 인터페이스(미도시) 및 인터럽트라인(300)을 통해 마스터(100)로 전송된다.
저장부(260)의 기능은 마스터(100)의 저장부(160)의 기능과 동일하며 여기서는 그 상세한 설명은 생략한다.
도 4a 및 4b는 본 발명에 따른 I2C 통신 시스템에서 송수신 되는 데이터의 구조를 설명하기 위해 도시한 도면이다. 도 4a는 마스터(100)에서 슬레이브(200)로 전송되는 패킷을 나타내며, 첫 바이트는 어드레스에 해당하고, 다음 바이트는 첵섬을 포함하는 페이로드(payload)의 길이를 나타낸다. 다음으로 데이터를 구별하기 위한 ID를 포함하는 "Opcode"에 이어서, 데이터가 "1" 내지 "N" 바이트를 차지하며, 마지막에는 첵섬이 위치한다. 도 4b는 슬레이브(200)에서 마스터(100)로 전송되는 패킷을 나타내며, 그 형식은 어드레스를 나타내는 첫 바이트 외에는 도 4a와 동일함을 알 수 있다.
마스터(100)와 슬레이브(200)간의 통신에서 사용되는 데이터의 포맷은 일반적인 I2C 프로토콜에 따른다. 그러나, 본 발명에 따른 데이터 전송 방식으로 상기한 패킷 단위의 통신이 가능하며, 이에 대해서는 상세히 후술한다.
도 5는 본 발명에 따른 I2C 통신 시스템의 동작을 설명하기 위해 나타낸 흐름도이다. 도면을 참조하여 본 발명에 따른 I2C 버스 컨트롤러의 동작 및 작용을 상세하게 설명한다.
마스터(100)가 슬레이브(200)와의 통신을 시작하여 I2C 버스를 통해 데이터를 송수신하는 과정은 종래 기술과 동일하며, 이는 당업자에게 자명하므로 여기서는 그 상세한 설명은 생략한다.
슬레이브(200)는 여기서는 프로세서에 해당하며, 슬레이브(200) 또는 자신이 관리하는 타 장치에서 발생한 상황을 마스터에 알리고 그에 따른 동작을 요청할 필요가 있는 경우 인터럽트를 발생하여 마스터(100)와의 통신을 요청한다. 인터럽트는 슬레이브(200)의 인터럽트발생부(230)에 의해 발생되어 인터럽트라인(300)을 통해 마스터(100)레 전송된다.
마스터(100)의 제어부(150)는 인터럽트검출부(130)에 의해 인터럽트가 수신되었는지를 판단한다(S510). 인터럽트검출부(130)는 인터럽트를 검출하면 인터럽트를 송신한 슬레이브(200) 및 인터럽트의 검출을 알리는 검출신호를 제어부(150)로 전송한다.
제어부(150)는 SCL부(110) 및 SDA부(120)를 제어하여 인터럽트를 발생한 슬레이브(200)의 동작 주파수를 생성하고, 클록을 발생하여 SCL 라인을 통해 슬레이브(200)로 송신하고, SDA 라인을 통해 슬레이브 어드레스를 전송한다(S520).
어드레싱이 완료된 후에는, SDA 라인을 통해 마스터(100)의 SDA부(120)와 슬레이브(200)의 SDA부(220) 사이의 데이터 송수신이 이루어진다(S530).
슬레이브(100)가 데이터를 송신하는 경우 패킷 단위로 송신하는 방식과 바이트 단위로 송신하는 방식이 있다. 패킷 단위로 송신하는 경우에는, 슬레이브(200)가 상기 인터럽트에 의해 통신을 요청하여 어드레싱이 이루어진 후, 마스터(100)는 I2C의 독출(read) 방식에 따라 슬레이브(200)로부터 데이터를 수신한다. 마지막 바이트까지 패킷을 모두 읽어 온 후에는 마스터는 데이터 통신을 종료한다. 이경우 패킷은 도 4b에 도시된 바와 같이 어드레스 바이트 및 패킷 길이를 나타내는 바이트로부터 마지막으로 첵섬에 이르기까지 SDA 라인을 통해 연속적으로 전송되며, 따라서 SDA 라인은 패킷 송수신이 끝날 때까지 슬레이브(200)와 마스터(100) 간의 통신에 전속적으로 할당되게 된다. 슬레이브(200)는 또 다른 패킷을 전송하고자 하는 경우에는 다시 인터럽트를 발생하여 마스터(100)에게 통신을 요청하고, 마스터(100)로 하여금 통신을 위한 어드레싱을 수행하도록한다.
다음으로, 바이트 단위로 데이터를 전송하는 경우에는, 슬레이브(200)의 인터럽트에 의해 요청되어 시작된 마스터(100)와 슬레이브(200) 간의 통신은 매 바이트가 전송됨으로써 종료되므로, 한 바이트의 전송이 종료된 후에도 또 다시 전송할 바이트가 있으면 슬레이브(200)는 다시 인터럽트를 발생하여 마스터(100)에 통신을 요청하여야 한다. 따라서, 바이트 전송시 마다 인터럽트를 발생하여야 하나 I2C의 SDA 라인이 독점되지 않아, 바이트가 전송되는 사이 구간에 타 슬레이브와의 통신에 할당될 수 있고, 마스터(100)는 슬레이브(200)와의 통신 이외에 타 동작을 병렬적으로 수행할 수 있다.
데이터처리부(140)는 슬레이브(200)에서 수신된 데이터를 처리한다. 데이터가 패킷 단위로 전송된 경우에는 수신된 패킷의 맨 마지막으로 수신된 바이트의 첵섬을 계산하여 수신된 패킷의 오류 여부를 검사하고 오류가 없으면, 처리된 데이터에 따른 동작을 수행하게 된다. 또한, 데이터처리부(140)는 데이터가 바이트 단위로 전송된 경우에는 전송된 각 바이트를 순서대로 다시 조합하여 첵섬을 수행하고 처리된 데이터에 따른 동작을 수행한다. 따라서, 종래 기술에 따른 마스터(100)에 의한 슬레이브(200)로의 통신 뿐만 아니라 슬레이브(200)로부터 마스터(100)로의 통신이 가능하게 되어, 간단한 하드웨어의 구현으로 양방향 통신이 가능해진다.
본 발명에 따르면, 양방향 통신이 가능한 I2C 통신시스템은 슬레이브에서 인터럽트를 발생함으로써 마스터에 통신을 요청할 수 있어 간단한 하드웨어 구현으로 프로세서 간의 양방향 통신이 가능하다.
이상에서는 본 발명의 바람직한 실시예에 대해서 도시하고 설명하였으나, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
도 1은 일반적인 I2C 버스의 구성을 개략적으로 도시한 도면,
도 2는 본 발명에 따른 양방향 I2C 버스의 기본적인 구성을 개략적으로 설명하기 위해 도시한 도면,
도 3은 본 발명에 따른 I2C 통신 시스템을 상세히 설명하기 위해 도시한 도면,
도 4a 및 4b는 본 발명에 따른 I2C 통신 시스템에서 송수신 되는 데이터의 구조를 설명하기 위해 도시한 도면, 그리고
도 5는 본 발명에 따른 I2C 통신 시스템의 동작을 설명하기 위해 나타낸 흐름도이다.
* 도면의 주요부분에 대한 부호의 설명 *
100 : 마스터 프로세서 200 : 슬레이브 프로세서
110 : SCL부 120 : SDA부
130 : 인터럽트검출부 140 : 데이터처리부
150 : 제어부 160 : 저장부
210 : SCL부 220 : SDA부
230 : 인터럽트발생부 240 : 데이터처리부
250 : 제어부 260 : 저장부
Claims (14)
- SCL(Serial Clock Line) 및 SDA(Serial DAta line)로 구성된 I2C 버스를 통해 통신하는 마스터와 적어도 하나의 슬레이브를 포함하는 통신 시스템에 있어서,상기 마스터와 상기 슬레이브는 인터럽트라인으로 직접 연결되며, 상기 슬레이브가 통신을 요청하는 인터럽트를 상기 마스터에 전송하면, 상기 마스터는 상기 SCL 및 SDA를 통해 상기 슬레이브와 통신을 수행하는 것을 특징으로 하는 양방향 I2C 통신 시스템.
- 제 1항에 있어서,상기 인터럽트라인은 상기 각 슬레이브에 따라 상기 마스터의 병렬 인터페이스에 각각 연결되는 것을 특징으로 하는 양방향 I2C 통신 시스템.
- 제 1항에 있어서,상기 슬레이브는,상기 마스터 프로세서와 직접 연결된 상기 인터럽트 라인을 통해, 통신을 요청하는 인터럽트를 발생하는 인터럽트발생부;상기 인터럽트를 수신한 상기 마스터에서 상기 SDL을 통해 전송한 클록에 따라 상기 SDA를 통해 데이터를 송수신 하는 SDA부; 및상기 SDA부를 통해 송수신되는 데이터를 전송 방식에 따라 처리하는 데이터처리부;를 포함하는 것을 특징으로 하는 양방향 I2C 통신 시스템.
- 제 3항에 있어서,상기 데이터처리부는 전송될 상기 데이터를 적어도 하나의 바이트로 구성된 페이로드(Payload)를 포함하는 패킷으로 처리하는 것을 특징으로 하는 양방향 I2C 통신 시스템.
- 제 3항에 있어서,상기 데이터는 패킷화되어 상기 SDA를 통해 패킷 단위로 연속적으로 송수신되며, 하나의 패킷에 대한 송수신이 종료되면 상기 통신은 종료되는 것을 특징으로 하는 양방향 I2C 통신 시스템.
- 제 3항에 있어서,상기 데이터는 상기 SDA를 통해 바이트 단위로 송수신되며, 하나의 바이트에 대한 송수신이 종료되면 상기 통신은 종료되는 것을 특징으로 하는 양방향 I2C 통신 시스템.
- 제 1항에 있어서,상기 마스터는,상기 슬레이브로부터 통신을 요청하는 상기 인터럽트가 수신되었는지를 검출하는 인터럽트검출부;상기 슬레이브와의 통신을 위한 클록을 발생하여 상기 SCL을 통해 전송하는 SCL부; 및상기 인터럽트검출부로부터 상기 인터럽트를 전송한 상기 슬레이브 및 상기 상기 인터럽트 검출을 알리는 검출 신호를 수신하면, 상기 SCL을 통해 상기 슬레이브로 클록을 송신하고, 상기 SDA를 통해 상기 슬레이브의 어드레스를 전송하여 상기 데이터 송수신을 시작하는 제어부;를 포함하는 것을 특징으로 하는 양방향 I2C 통신 시스템.
- SCL(Serial Clock Line) 및 SDA(Serial DAta line)로 구성된 I2C 버스를 통해 마스터와 적어도 하나의 슬레이브가 통신하는 방법에 있어서,상기 슬레이브로부터 상기 마스터와 직접 연결된 인터럽트라인을 통해 통신을 요청하는 인터럽트를 송신하는 단계; 및상기 마스터가 상기 인터럽트를 수신하면, 상기 SCL 및 상기 SDA를 통해 상기 슬레이브와의 통신을 수행하는 단계;를 포함하는 것을 특징으로 하는 양방향 I2C 통신 방법.
- 제 8항에 있어서,상기 인터럽트라인은 상기 각 슬레이브에 따라 상기 마스터의 병렬 인터페이스에 각각 연결되는 것을 특징으로 하는 양방향 I2C 통신 방법.
- 제 8항에 있어서,상기 통신 수행 단계는,상기 마스터에서 상기 SDL을 통해 전송한 클록에 따라 상기 SDA를 통해 데이터를 송수신 하는 단계; 및상기 SDA를 통해 수신된 상기 데이터를 처리하는 단계;를 포함하는 것을 특징으로 하는 양방향 I2C 통신 방법.
- 제 10항에 있어서,상기 데이터는 적어도 하나의 바이트로 구성된 페이로드(Payload)로 구성되어 패킷화되는 것을 특징으로 하는 양방향 I2C 통신 방법.
- 제 10항에 있어서,상기 데이터는 패킷화되어 상기 SDA를 통해 패킷 단위로 연속적으로 송수신되며, 하나의 패킷에 대한 송수신이 종료되면 상기 통신은 종료되는 것을 특징으로 하는 양방향 I2C 통신 방법.
- 제 10항에 있어서,상기 데이터는 상기 SDA를 통해 바이트 단위로 송수신되며, 하나의 바이트에 대한 송수신이 종료되면 상기 통신은 종료되는 것을 특징으로 하는 양방향 I2C 통신 방법.
- 제 8항에 있어서,상기 통신 수행 단계는,상기 슬레이브로부터 통신을 요청하는 상기 인터럽트가 수신되면, 상기 인터럽트를 전송한 상기 슬레이브 및 상기 상기 인터럽트 검출을 알리는 검출 신호를 발생하는 단계;상기 검출 신호가 발생하면, 상기 슬레이브와의 통신을 위한 클록을 발생하여 상기 SCL을 통해 전송하는 단계;상기 SDA를 통해 상기 슬레이브의 어드레스를 전송하여 상기 데이터 송수신을 시작하는 단계; 및상기 데이터 송수신이 종료되면, 상기 데이터에 포함된 첵섬을 계산하여 오류를 점검하는 단계;를 포함하는 것을 특징으로 하는 양방향 I2C 통신 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040004743A KR20050076924A (ko) | 2004-01-26 | 2004-01-26 | 양방향 통신이 가능한 i2c 통신시스템 및 그 방법 |
US11/028,319 US20050165989A1 (en) | 2004-01-26 | 2005-01-04 | I2C communication system and method enabling bi-directional communications |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040004743A KR20050076924A (ko) | 2004-01-26 | 2004-01-26 | 양방향 통신이 가능한 i2c 통신시스템 및 그 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20050076924A true KR20050076924A (ko) | 2005-07-29 |
Family
ID=34793315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040004743A Withdrawn KR20050076924A (ko) | 2004-01-26 | 2004-01-26 | 양방향 통신이 가능한 i2c 통신시스템 및 그 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20050165989A1 (ko) |
KR (1) | KR20050076924A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101426712B1 (ko) * | 2007-11-21 | 2014-08-13 | 삼성전자주식회사 | 직렬 주변장치 인터페이스 기반의 양방향 데이터 전송 방법및 장치 |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7013355B2 (en) * | 2003-01-09 | 2006-03-14 | Micrel, Incorporated | Device and method for improved serial bus transaction using incremental address decode |
KR20050122678A (ko) * | 2004-06-25 | 2005-12-29 | 삼성전자주식회사 | 인터 인테그레이티드 회로 버스를 이용한 통신장치 및 그통신방법 |
US8090810B1 (en) | 2005-03-04 | 2012-01-03 | Netapp, Inc. | Configuring a remote management module in a processing system |
US8291063B2 (en) * | 2005-03-04 | 2012-10-16 | Netapp, Inc. | Method and apparatus for communicating between an agent and a remote management module in a processing system |
US7899680B2 (en) * | 2005-03-04 | 2011-03-01 | Netapp, Inc. | Storage of administrative data on a remote management device |
US7805629B2 (en) * | 2005-03-04 | 2010-09-28 | Netapp, Inc. | Protecting data transactions on an integrated circuit bus |
ATE460706T1 (de) * | 2005-04-29 | 2010-03-15 | Nxp Bv | Kommunikationssystem und -verfahren mit einer slave-einrichtung mit zwischengespeicherter service-anforderung |
JP2009535677A (ja) * | 2006-03-31 | 2009-10-01 | エヌエックスピー ビー ヴィ | I2cクロックの生成方法及びシステム |
JP2008113207A (ja) * | 2006-10-30 | 2008-05-15 | Sumitomo Electric Ind Ltd | 光データリンク |
US7840734B2 (en) * | 2006-12-21 | 2010-11-23 | Hendon Semiconductors Pty Ltd. | Simple bus buffer |
US7739435B2 (en) * | 2006-12-29 | 2010-06-15 | Texas Instruments Incorporated | System and method for enhancing I2C bus data rate |
TWI365408B (en) * | 2008-05-08 | 2012-06-01 | Ind Tech Res Inst | Apparatus and method of signal transmitting for servo motor in embedded system |
JP5217982B2 (ja) | 2008-12-04 | 2013-06-19 | ソニー株式会社 | 情報処理装置および方法、並びにプログラム |
FR2939926B1 (fr) * | 2008-12-17 | 2010-12-10 | St Microelectronics Rousset | Transmission sur bus i2c |
WO2011121873A1 (ja) * | 2010-03-30 | 2011-10-06 | 日本電気株式会社 | プログラム処理方法、プログラム処理装置、およびコンピュータプログラム |
TWI474179B (zh) * | 2010-04-28 | 2015-02-21 | Hon Hai Prec Ind Co Ltd | 多設備連接系統 |
US8582606B2 (en) * | 2010-05-24 | 2013-11-12 | Cortina Systems, Inc. | Network system with synchronization and method of operation thereof |
FR2963450B1 (fr) * | 2010-07-27 | 2013-04-19 | St Microelectronics Rousset | Message d'interruption sur bus i2c |
TW201210256A (en) * | 2010-08-24 | 2012-03-01 | Hon Hai Prec Ind Co Ltd | Apparatus and method for testing SNMP card |
FR3009633B1 (fr) * | 2013-08-08 | 2017-02-24 | Stmicroelectronics Rousset | Communication sur bus i2c |
US10373282B2 (en) | 2013-11-18 | 2019-08-06 | Samsung Electronics Co., Ltd. | Method and system for controlling display parameters through multiple pipelines |
CN105099644B (zh) * | 2014-04-23 | 2020-03-17 | 小米科技有限责任公司 | 半双工通信方法及相关装置 |
US10007628B2 (en) * | 2014-06-18 | 2018-06-26 | Qualcomm Incorporated | Dynamically adjustable multi-line bus shared by multi-protocol devices |
US10241955B2 (en) | 2014-06-18 | 2019-03-26 | Qualcomm Incorporated | Dynamically adjustable multi-line bus shared by multi-protocol devices |
JP6359955B2 (ja) * | 2014-11-13 | 2018-07-18 | ルネサスエレクトロニクス株式会社 | シリアル通信システム、通信制御装置および電子装置 |
CN104680991B (zh) * | 2015-03-03 | 2017-03-08 | 深圳市华星光电技术有限公司 | 用于goa架构液晶面板的电平移位电路及电平移位方法 |
BR112017019170A2 (pt) | 2015-03-09 | 2018-07-10 | Intekrin Therapeutics, Inc. | métodos para o tratamento de doença do fígado gorduroso não alcoólico e / ou lipodistrofia |
CN105183685B (zh) * | 2015-06-24 | 2019-03-15 | 深圳市振邦智能科技股份有限公司 | 一种基于i2c通信协议的获取从机地址的方法及i2c通信系统 |
DE102015219130B4 (de) * | 2015-10-02 | 2017-10-26 | Siemens Aktiengesellschaft | Einheit für ein Master-Slave Bussystem |
CN106598891B (zh) * | 2015-10-15 | 2021-04-30 | 恩智浦美国有限公司 | 集成电路间i2c总线系统中的从设备报警信号 |
CN105512070B (zh) * | 2015-12-02 | 2018-07-06 | 中国电子科技集团公司第四十一研究所 | 一种基于串行总线的控制系统 |
DE102016207986A1 (de) * | 2016-05-10 | 2017-11-16 | Robert Bosch Gmbh | Primäre Recheneinheit |
KR20180105452A (ko) * | 2017-03-15 | 2018-09-28 | 엘지이노텍 주식회사 | 단말장치의 중복주소 판단방법, 주소 갱신 방법, 중복주소 판단 및 주소 갱신 시스템 |
KR20200036808A (ko) | 2017-04-03 | 2020-04-07 | 코히러스 바이오사이언시스, 인크. | 진행성 핵상 마비 치료를 위한 PPARγ 작용제 |
US20190171611A1 (en) * | 2017-12-05 | 2019-06-06 | Qualcomm Incorporated | Protocol-framed clock line driving for device communication over master-originated clock line |
CN108170627A (zh) * | 2017-12-12 | 2018-06-15 | 晶晨半导体(上海)股份有限公司 | 一种通过时钟信号控制的数据传输方法 |
CN108920401B (zh) * | 2018-06-04 | 2020-07-28 | 深圳柴火创客教育服务有限公司 | 多主多从的i2c通信方法、系统及节点设备 |
US20210293643A1 (en) * | 2018-07-05 | 2021-09-23 | The Regents Of The University Of Colorado, A Body Corporate | Multi-Modal Fingertip Sensor With Proximity, Contact, And Force Localization Capabilities |
EP3958514A1 (de) * | 2020-08-19 | 2022-02-23 | Siemens Aktiengesellschaft | Datenübertragung an einem bussystem |
CN114168508B (zh) * | 2020-09-10 | 2023-10-13 | 富联精密电子(天津)有限公司 | 单线双向通信电路及单线双向通信方法 |
CN114020679B (zh) * | 2021-11-12 | 2023-11-07 | 中国船舶集团有限公司第七一一研究所 | I2c总线控制电路及用于船舶的电路系统 |
CN114443551B (zh) * | 2021-12-25 | 2023-07-14 | 苏州浪潮智能科技有限公司 | 一种单线路实现i2c通信的方法、系统、设备以及介质 |
US20250103538A1 (en) * | 2023-09-21 | 2025-03-27 | Microchip Technology Incorporated | Detection of an error condition on a serial data bus |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4912723A (en) * | 1984-06-28 | 1990-03-27 | Westinghouse Electric Corp. | Multipurpose digital IC for communication and control network |
IT1232090B (it) * | 1989-05-04 | 1992-01-23 | Sgs Thomson Microelectronics | Sistema di collegamento tra un unita di elaborazione principale e del le unita periferiche |
US5793993A (en) * | 1995-01-26 | 1998-08-11 | General Magic, Inc. | Method for transmitting bus commands and data over two wires of a serial bus |
KR100285956B1 (ko) * | 1998-06-30 | 2001-04-16 | 윤종용 | 고속직렬버스에연결된동기식및비동기식장치의제어시스템과제어방법 |
US6697897B1 (en) * | 1999-10-28 | 2004-02-24 | Microchip Technology Incorporated | Data communication interface between host and slave processors |
US6931524B2 (en) * | 2001-08-29 | 2005-08-16 | Koninklijke Philips Electronics N.V. | System for bus monitoring using a reconfigurable bus monitor which is adapted to report back to CPU in response to detecting certain selected events |
GB0219570D0 (en) * | 2002-08-22 | 2002-10-02 | Ibm | Disk drive arrangement, enclosure, adapter and method |
US7010639B2 (en) * | 2003-06-12 | 2006-03-07 | Hewlett-Packard Development Company, L.P. | Inter integrated circuit bus router for preventing communication to an unauthorized port |
-
2004
- 2004-01-26 KR KR1020040004743A patent/KR20050076924A/ko not_active Withdrawn
-
2005
- 2005-01-04 US US11/028,319 patent/US20050165989A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101426712B1 (ko) * | 2007-11-21 | 2014-08-13 | 삼성전자주식회사 | 직렬 주변장치 인터페이스 기반의 양방향 데이터 전송 방법및 장치 |
Also Published As
Publication number | Publication date |
---|---|
US20050165989A1 (en) | 2005-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20050076924A (ko) | 양방향 통신이 가능한 i2c 통신시스템 및 그 방법 | |
US20190146944A1 (en) | Dynamically adjustable multi-line bus shared by multi-protocol devices | |
US20120191889A1 (en) | Method to differentiate identical devices on a two-wire interface | |
JP2017520053A (ja) | マルチプロトコルデバイスによって共有される動的調整可能なマルチラインバス | |
KR20160065206A (ko) | 카메라 제어 인터페이스 슬레이브 디바이스 대 슬레이브 디바이스 통신 | |
KR100373617B1 (ko) | 전자기기및그동작모드제어방법 | |
US7414516B2 (en) | System and method for remote controlling and monitoring electric home appliances | |
Kalinsky et al. | Introduction to I2C | |
JP2009244991A (ja) | データ通信方法、データ通信システム、電子制御ユニット、及び回路基板 | |
JPH11275122A (ja) | データ伝送装置 | |
KR100506366B1 (ko) | 복합마이컴형 제품 및 슬레이브 리셋 방법 | |
US20010028656A1 (en) | Information signal processing apparatus and method | |
CN111130678B (zh) | 数据传输方法、装置、设备及计算机可读存储介质 | |
CN113282532B (zh) | 一种通信装置、通信装置的通信方法和电子设备 | |
KR100609493B1 (ko) | 복수의 센서 데이터를 하나의 캔 메시지로 전송하는 방법 | |
WO2017067842A1 (en) | Control system for communicating with devices connected to a bus, and communication method | |
KR100619353B1 (ko) | 이중 데이터 송신이 가능한 i2c 버스 제어 시스템 | |
JP3134821B2 (ja) | 通信システム | |
KR100668976B1 (ko) | 버스확장장치 | |
KR20080020788A (ko) | 무선 usb를 이용한 특정 파일의 멀티 다운로드 기능을구비한 시스템 및 그 제어방법 | |
JP2012238989A (ja) | 通信システム | |
KR100427764B1 (ko) | 서로 다른 데이터 버스를 가지는 디바이스들의 정합 장치 | |
KR20110085538A (ko) | 영상표시 시스템 및 그 제어 방법 | |
JP2008227570A (ja) | 差動型伝送装置 | |
KR100386922B1 (ko) | Usb장치용 인터넷 접속 어댑터 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20040126 |
|
PG1501 | Laying open of application | ||
PC1203 | Withdrawal of no request for examination | ||
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |