KR102662356B1 - 프로토콜 변환 장치 - Google Patents

프로토콜 변환 장치 Download PDF

Info

Publication number
KR102662356B1
KR102662356B1 KR1020210066902A KR20210066902A KR102662356B1 KR 102662356 B1 KR102662356 B1 KR 102662356B1 KR 1020210066902 A KR1020210066902 A KR 1020210066902A KR 20210066902 A KR20210066902 A KR 20210066902A KR 102662356 B1 KR102662356 B1 KR 102662356B1
Authority
KR
South Korea
Prior art keywords
command
user
terminal
port
protocol conversion
Prior art date
Application number
KR1020210066902A
Other languages
English (en)
Other versions
KR20220159529A (ko
Inventor
이선복
김용대
양원우
한재혁
신동진
우창완
이푸름
Original Assignee
(주) 임베디드 솔루션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주) 임베디드 솔루션 filed Critical (주) 임베디드 솔루션
Priority to KR1020210066902A priority Critical patent/KR102662356B1/ko
Publication of KR20220159529A publication Critical patent/KR20220159529A/ko
Application granted granted Critical
Publication of KR102662356B1 publication Critical patent/KR102662356B1/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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • 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
    • 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)
    • 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/0042Universal serial bus [USB]

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

본 발명은 프로토콜 변환 장치에 관한 것으로서, 상기 프로토콜 변환 장치는 클럭 신호를 생성하는 클럭 발생부 및 상기 클럭 발생부에 연결되어 있고, 사용자 단말로부터 전달되는 사용자 명령어를 실행 명령어로 변환하고, 상기 클럭 발생부로부터 인가되는 클럭 신호에 동기하여 변환된 실행 명령어에 해당하는 상태의 제어 신호를 전자 장치로 출력하는 제어부를 포함한다.

Description

프로토콜 변환 장치{PROTOCOL CONVERTING APPARATUS}
본 발명은 프로토콜 변환 장치에 관한 것으로서, 보다 상세하게는 USB로 입력되는 명령을 I2C(또는 I2C)(Inter-Integrated Circuit bus) 신호로 변환하여 출력하는 프로토콜 변환 장치에 관한 것이다.
주변장치(예, TV, VCR, 오디오 장비 등)와 개인용 컴퓨터와 같은 단말에 접속되어 단말과 주변장치 사이의 데이터를 송수신하는 외부 인터페이스들이 개발되어 사용되어 있다.
이러한 외부 인터페이스들로는 USB(Universal Serial Bus), I2C 버스(Inter-IC bus), SPI(Serial Peripheral Interface) 및 UART(Universal Asynchronous Receiver/Transmitter) 등이 있다.
이러한 외부 인터페이스 중에서 I2C 버스는 직렬 컴퓨터 버스로서, 마스터 장치(master)와 슬레이브 장치(slave)가 양방향 오픈 컬렉터 회선인 두개의 신호선에 물리적으로 연결되어 있다.
이때, 두 개의 신호선은 풀업 저항이 연결되고 데이터 신호를 전송하는 직렬 데이터선(SDA)과 클럭 신호를 전송하는 직렬 클럭선(SCL)이다.
또한, 적어도 하나의 슬레이브 장치는 각각의 주소(address)를 구비하고 있고, 마스터 장치는 각 슬레이브 장치의 주소를 저장하고 있다.
따라서, 마스터 장치와 슬레이브 장치는 I2C 버스 프로토콜을 기반으로 두 개의 직렬 데이터선(SDA)과 직렬 클럭선(SCL)을 이용하여 직접적인 통신이 이루어진다.
대한민국 등록특허 제10-1222107호(공고일자: 2013년01월15일, 발명의 명칭: I2C 버스 프로토콜 기반의 직렬 클럭 버스 스위칭을 이용한 멀티플렉싱 장치 및 그 방법)
본 발명이 해결하려는 과제는 서로 다른 통신 프로토콜을 이용하는 통신 모듈 사이의 통신이 원활히 이루어져 사용자의 편리성을 높이기 위한 것이다.
본 발명의 한 특징에 따른 프로토콜 변환 장치는 클럭 신호를 생성하는 클럭 발생부 및 상기 클럭 발생부에 연결되어 있고, 사용자 단말로부터 전달되는 사용자 명령어를 실행 명령어로 변환하고, 상기 클럭 발생부로부터 인가되는 클럭 신호에 동기하여 변환된 실행 명령어에 해당하는 상태의 제어 신호를 전자 장치로 출력하는 제어부를 포함한다.
상기 사용자 단말과 프로토콜 변환 장치 사이는 USB 통신이 행해질 수 있고, 상기 프로토콜 변환 장치와 상기 슬레이브 장치 사이는 I2C 통신이 행해질 수 있다.
상기 프로토콜 변환 장치는 상기 사용자 단말과 연결되는 USB 포트와 상기 전자 장치에 연결되는 I2C 포트를 포함할 수 있고, 상기 I2C 포트는 상기 클럭 신호를 전달하는 직렬 클럭 단자와 상기 제어 신호를 전달하는 직렬 데이터 단자를 포함할 수 있다.
상기 사용자 명령어는 w, r, s, @ 및 p를 포함할 수 있고, 상기 p는 종료 명령을 포함하고, 상기 w는 시작 명령과 쓰기 명령을 포함하고, 상기 r은 읽기 명령을 포함하고, 상기 s는 슬레이브 장치의 8비트 어드레스를 직접 지정하는 명령을 포함하며, 상기 @는 슬레이브 장치로부터 전달된 데이터를 사용자 단말로 전달하라는 명령을 포함할 수 있다.
이러한 특징에 따르면, 사용자는 자신의 단말을 이용하여 정해진 명령어를 이용해 I2C통신을 위한 사용자 명령어(즉, I2C 신호)를 전달하여, 해당 전자 장치와의 I2C 통신을 실시할 수 있다.
따라서, 사용자 단말은 슬레이브 장치로 기능하는 해당 전자 장치로 용이하게 데이터의 송수신을 실시할 수 있다.
도 1은 본 발명의 일 실시예에 따른 프로토콜 변환 시스템의 개략적인 블럭도이다.
도 2은 본 발명의 일 실시예에 따른 프로토콜 변환장치의 개략적인 블럭도이다.
도 3은 본 발명의 일 실시예에 따른 프로토콜 변환 시스템에서 사용되는 I2C 패킷 구조를 도시한 도면이다.
도 4a 및 도 4d는 I2C 통신을 위해 사용되는 다양한 신호에 대응하는 직렬 클록 단자와 직렬 데이터 단자에 대응하는 파형도이다.
도 5a 내지 도 5f는 본 발명의 일 실시예에 따른 프로토콜 변환 시스템에서 사용자 단말로 입력되는 다양한 사용자 명령어에 대응하는 실행 명령어를 도식적으로 도시한 도면으로서, 무늬가 없는 부분은 마스터 장치에서 해당 상태의 신호를 직렬 데이터 단자로 출력하는 부분이고, 무늬가 있는 부분은 슬레이브 장치에서 해당 상태의 신호를 직렬 데이터 단자로 출력하는 부분이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, 설명되는 각 단계들은 특별한 인과관계에 의해 나열된 순서에 따라 수행되어야 하는 경우를 제외하고, 나열된 순서와 상관없이 수행될 수 있다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 첨부된 도면들을 참조하여 본 발명에 대해 설명한다.
먼저, 도 1을 참고하여, 본 발명의 일 실시예에 따른 프로토콜 변환 장치(30)를 포함하는 프로토콜 변환 시스템에 대하여 설명한다.
도 1에 도시한 것처럼, 본 예의 프로토콜 변환 시스템은 제1 통신을 위한 제1 통신 포트를 구비하는 사용자 단말(10), 제1 통신과 다른 제2 통신을 위한 통신 포트(21)를 구비하는 전자 장치(20), 및 그리고 서로 다른 통신을 위한 제1 및 제2 통신 포트(301, 302)를 구비하고, 사용자 단말(10)과 전자 장치(20) 사이에 위치하는 프로토콜 변환 장치(30)를 구비할 수 있다.
본 예에서, 제1 통신은 USB 통신일 수 있으므로, 사용자 단말(10)은 USB 통신을 위해 제1 통신 포트(11)가 설치된 USB 통신 모듈을 구비할 수 있다.
따라서, 사용자 단말(10)의 제1 통신 포트(11)는 제1 USB 포트(11)일 수 있다.
이러한 사용자 단말(10)은 데스크탑 컴퓨터나 휴대용 컴퓨터와 같은 개인용 컴퓨터일 수 있다.
따라서, 사용자 단말(10)은 제1 USB 포트(11)뿐만 아니라 사용자 입력부, 사용자 입력부에 연결되어 있는 동작 제어부 및 동작 제어부에 연결되어 있는 정보 출력부를 추가로 구비할 수 있다.
사용자 입력부는 전자 장치(20)의 동작을 제어하는 명령어(즉, 사용자 명령어)를 입력하는 것으로서, 키보드 등일 수 있다.
동작 제어부는 사용자 입력부로부터 인가되는 신호를 이용하여 사용자 입력부로 인가되는 사용자 명령어를 판정하여 제1 USB 포트(11)를 통해 프로토콜 변환 장치(30)로 전송될 수 있다.
정보 출력부는 시각 정보를 출력하기 위한 것으로, 액정 표시 장치, 유기 발광 표시 장치 등과 같은 디스플레이 모듈을 구비할 수 있다.
따라서, 동작 제어부는 사용자 입력부를 통해 입력되는 신호에 대응하는 영상 데이터를 정보 출력부로 출력하여, 사용자 입력부로 입력되는 사용자 명령어를 정보 출력부로 출력할 수 있다.
이로 인해, 사용자는 정보 출력부로 출력되는 영상을 이용하여 오타나 오기없이 자신이 원하는 사용자 명령어의 입력을 실현할 수 있다.
USB 통신을 위한 제1 USB 포트(11)는 두 개의 데이터 단자(Tx, Rx)와 두 개의 전원 단자(GND, VCC)를 구비할 수 있다. 여기서, Tx 단자는 데이터 송신 단자이고 Rx 단자는 데이터 수신 단자일 수 있다. 또한 GND 단자는 접지 단자이고 VCC 단자는 전원 단자일 수 있다.
전자 장치(20)는 프로토콜 변환 장치(30)를 통해 사용자 단말(10)과 통신을 실시하는 것으로 적어도 하나를 구비할 수 있다.
각 전자 장치(20)는 I2C 통신을 이용하여 데이터의 전송 및 수신을 실시하는 장치로서, 내부에 I2C 통신을 위한 통신 포트인 I2C 포트(예, 제1 I2C 포트)(21)를 갖는 I2C 통신 모듈을 구비할 수 있다.
이때, 제1 I2C 포트(21)는 직렬 데이터 단자(SDA), 직렬 클럭 단자(SCL), 전원 단자(VCC, GND)를 구비할 수 있다.
따라서, I2C 통신을 이용하는 전자 장치(20)는 프로토콜 변환 장치(30)를 이용하여 USB 통신을 실시하는 사용자 단말(10)과 통신하여 사용자 단말(10)로부터 전송되는 데이터를 수신하여 쓰거나, 전자 장치(20)에 저장되어 있는 데이터를 읽어 사용자 단말(10)로 전송하는 읽기 동작을 실시할 수 있다.
본 예에서, 쓰기 동작과 읽기 동작은 사용자 단말(10)의 기준으로 정해질 수 있다.
이로 인해, 쓰기 동작은 사용자 단말(10)에서 전자 장치(20)로 데이터를 전달하여 전자 장치(20)에 쓰는 동작일 수 있고, 읽기 동작은 전자 장치(20)에 기록되어 있는 데이터를 해당 전자 장치(20)가 읽어 사용자 단말(10)로 전달하여 사용자 단말(10)이 해당 데이터를 읽을 수 있도록 하는 동작일 수 있다.
따라서, 쓰기 동작일 때 데이터의 전송 방향은 사용자 단말(10)에서부터 해당 전자 장치(20) 쪽인 반면, 읽기 동작일 때, 데이터의 전송 방향은 해당 전자 장치(20)에서부터 사용자 단말(10) 쪽일 수 있다.
본 예에서, 각 전자 장치(20)는 센서(sensor)일 수 있고, 각 전자 장치(20)마다 고유의 어드레스(즉, 식별번호)가 부여되어 있고, 각 전자 장치(20)의 내부 메모리 등에 자신의 고유 어드레스가 저장될 수 있다.
또한, 각 전자 장치(20)는 복수 개의 레지스터(register)가 존재할 수 있으며, 각 레지스터 역시 고유의 어드레스가 부여되어, 내부 메모리에 저장되어 있다.
프로토콜 변환 장치(30)는 USB 통신으로 사용자 단말(10)과 통신하고, I2C 통신으로 전자 장치(20)와 통신할 수 있다.
따라서, 프로토콜 변환 장치(30)는 제1 통신 포트(301)를 통해 사용자 단말(10)과 연결될 수 있고, 제2 통신 포트(302)를 통해 각 전자 장치(20)와 연결될 수 있으므로, 제1 통신 포트(301)는 제2 USB 포트(301)이고, 제2 통신 포트는 제2 I2C 포트(302)일 수 있다.
제2 USB 포트(301)는 제1 USB 포트(11)와 동일하게 데이터 단자(Tx, Rx)와 전원 단자(VCC, GND)를 구비할 수 있다. 이때, 도 1에 도시한 것처럼, 제2 USB 포트(301)의 데이터 송신 단자(Tx)는 제1 USB 포트(11)의 데이터 수신 단자(Rx)와 연결될 수 있고, 제2 USB 포트(301)의 데이터 수신 단자(Rx)는 제1 USB 포트(11)의 데이터 송신 단자(Tx)와 연결될 수 있다.
또한, 제2 I2C 포트(21) 역시 직렬 데이터 단자(SDA), 직렬 클럭 단자(SCL), 전원 단자(VCC, GND)를 구비할 수 있고, 직렬 데이터 단자는 각 전자 장치(20)의 직렬 데이터 단자와 연결될 수 있고, 직렬 클럭 단자는 각 사용자 단말(10)의 직렬 클럭 단자와 연결될 수 있다.
이와 같이, 프로토콜 변환 장치(30)는 서로 다른 방식으로 통신을 하는 사용자 단말(10)과 전자 장치(20) 사이에 위치하여 사용자 단말(10)과 전자 장치(20) 사이의 통신을 제어하므로, USB 프로토콜을 통해 사용자 단말(10)로부터 입력되는 명령을 I2C 프로토콜로 변환하여 해당하는 전자 장치(20)로 전달할 수 있다.
따라서, 이러한 프로토콜 변환 장치(30)는, 도 2에 도시한 것처럼, 프로토콜 변환 장치(30)의 전반적인 동작을 제어하는 제어부(31), 제어부(31)에 연결되어 있는 클럭 발생부(32), 및 제어부(31)에 연결되어 있는 저장부(33)를 구비할 수 있다.
제어부(31)는 일측이 제2 USB 포트(301)에 연결될 수 있고 타측이 제2 I2C 포트(302)에 연결될 수 있고, 프로세서(processor)를 구비할 수 있다.
따라서, 제어부(31)는 사용자 단말(10)로부터 전달되는 사용자 명령어를 정해진 규칙에 따라 변환하여 실행 명령어로 변환한 후, 변환된 실행 명령어에 맞게 직렬 데이터 단자(SDA)로 인가되는 신호(예, 제어 신호)의 상태를 변화시켜 직렬 데이터 단자(SDA)로 출력할 수 있다. 이때, 직렬 데이터 단자(SDA)로 인가되는 제어 신호의 출력은 클럭 발생부(32)로부터 인가되는 클럭 신호에 동기하여 출력될 수 있다.
따라서, 실행 명령어는 사용자 명령어를 이용하여 실질적으로 직렬 클럭 신호(SCL)에 맞게 직렬 데이터 단자(SDA)로 인가되는 신호의 상태를 해석한 것일 수 있다.
이와 같이, 제어부(31)는 제2 USB 포트(301)로부터 전송되는 사용자 명령어를 정해진 규칙에 따라 변환하여 직렬 데이터 단자(SDA)로 인가되는 해당 상태의 제어 신호와 클럭 신호를 제2 I2C 포트(302)의 직렬 데이터 단자(SDA)와 직렬 클럭 단자(SCL)로 출력할 수 있다.
이러한 제어부(31)는 직렬 데이터 단자(SDA)로 인가되는 제어 신호의 생성을 위한 신호 발생 모듈을 구비할 수 있다.
이러한 제어부(31)의 동작은 다음에 상세히 설명한다.
클럭 발생부(32)는 제어부(31)의 제어에 따라 I2C 통신을 위한 클럭 신호를 생성하여 제어부(31)로 출력할 수 있다.
따라서, 제어부(31)는 클럭 발생부(32)로부터 인가되는 클럭 신호를 직렬 클럭 신호로서 제2 I2C 포트(302)의 직렬 클럭 단자(SCL)로 출력하며, 위에 기재한 것처럼, 이 직렬 클럭 신호에 따라 직렬 데이터 단자(SDA)로 인가되는 제어 신호의 상태를 제어할 수 있다.
저장부(33)는 동작 중에 생성되는 데이터 등을 저장하기 위한 곳으로서 레지스터(register), 버퍼(buffer) 및 메모리(memory) 중 적어도 하나를 구비할 수 있다.
이러한 저장부(33)에는 사용자 단말(10)로부터 전달되는 사용자 명령어의 각 명령에 대한 정해진 규칙이 저장될 수 있다.
이로 인해, 제어부(31)는 사용자 단말(10)로부터 사용자 명령어가 전달되면, 저장부(33)에 저장된 규칙에 대한 사용자 명령어에 포함된 명령을 해석하여 실행 명령어로 변환할 수 있다.
프로토콜 변환 장치(30)는 이러한 구성요소 이외에 전원부(34)와 같이 적어도 하나의 구성요소가 추가적으로 구비될 수 있다. 이때, 전원부(34)는 프로토콜 변환 장치(30)의 동작에 필요한 전원(예, VCC, GND)을 생성하여 각 구성요소에 공급하여, 프로토콜 변환 장치(30)의 동작이 정상적으로 이루어질 수 있도록 할 수 있다.
이와 같이, 프로토콜 변환 장치(30)에서 I2C 통신을 위한 직렬 클럭 신호를 생성하며 사용자 단말(10)로부터 전송된 사용자 명령어에 따라 제어 신호의 상태를 제어하여 직렬 데이터 단자(SDA)로 출력하므로, I2C 통신에서 프로토콜 변환 장치(30)는 마스터 장치로 기능하고 각 전자 장치(20)는 슬레이브 장치로 기능할 수 있다.
도 1에 도시한 것처럼, 프로토콜 변환 장치(30)와 이에 병렬로 연결되어 있는 적어도 하나의 전자 장치(20) 사이에는 배선부(40)가 존재할 수 있다.
이때, 배선부(40)는 마스터 장치와 슬레이브 장치의 각 직렬 클럭 단자(SCL) 사이를 연결하는 직렬 클럭선(SCL)과 마스터 장치와 슬레이브 장치의 각 직렬 데이터 단자(SDA) 사이를 연결하는 직렬 데이터선(SDA)을 포함할 수 있다.
따라서, 배선부(40)는 이들 직렬 클럭선(SCL)과 직렬 데이터선(SDA)이 인쇄되어 있는 인쇄회로기판, 가요성 회로기판 또는 양 단에 커넉터를 구비한 배선 유닛일 수 있다.
다음, 도 3 내지 도 5f를 참고하여, 프로토콜 변환 시스템에 대하여 설명한다.
먼저, 도 3 및 도 4d를 이용하여 I2C 통신 방식에 대하여 설명한다.
이하에서, 프로토콜 변환 장치(30)는 마스터 장치이고, 각 전자 장치(20)는 슬레이브 장치로 칭할 수 있다.
I2C 통신을 위한 패킷의 구조의 일 예는 도 3과 같다.
도 3에 도시한 것처럼, 패킷은 왼쪽에서부터 시작 신호(start)의 출력을 위한 비트부(예, 시작 비트)(51)이고, 복수 개의 슬레이브 장치 중 해당 슬레이브 장치를 식별하기 위한 비트부(예, 슬레이브 어드레스 비트부)(52), ack 신호를 위한 비트부(예, 제1 ack 비트)(53), 데이터 전송을 위한 비트부(예, 데이터 비트부)(54), ack 신호 또는 Nack 신호를 위한 비트부(예, 제2 ack 비트)(55), 및 종료 신호를 위한 비트부(예, 종료 비트부)(56)를 구비할 수 있다.
도 3에 도시한 것처럼, 시작 비트부(51), 제1 및 제2 ack 비트부(53, 55) 각각은 1비트일수 있고, 슬레이브 어드레스 비트부(52)는 8비트일 수 있으며, 데이터 비트부(54) 역시 8배트일 수 있다.
슬레이브 어드레스 비트부(52)는 슬레이브 장치의 어드레스를 나타내는 슬레이브 어드레스 부분(521)과 읽기(R) 또는 쓰기(W) 명령을 위한 명령 부분(522)을 구비할 수 있다.
이러한 패킷 구조를 갖고 통신하는 I2C 통신의 아이들(idle) 상태는 직렬 데이터 신호(DSA)와 직렬 클럭 신호(SCL) 모드 하이(high)(즉, '1')일 때이다.
시작 신호는 통신 시작을 위한 신호로서, 도 4a에 도시한 것처럼, 직렬 데이터 신호(SDA)가 먼저 로우(low)(즉, '0')로 하강한 후 직렬 클럭 신호(SCL) 역시 로우로 하강하는 조건일 수 있다. 따라서, 슬레이브 장치는 이러한 조건의 직렬 데이터 신호(SDA)와 직렬 클럭 신호(SCL)가 감지되면 I2C 통신의 시작을 감지하여 통신 준비를 실시할 수 있다.
종료 신호는 통신 종료를 위한 신호로서, 도 4b에 도시한 것처럼, 직렬 데이터 신호(SDA)가 로우인 상태에서 직렬 클럭 신호(SCL)가 로우에서 하이(high)(즉, 1)로 상승하는 조건일 수 있다. 따라서, 슬레이브 장치는 이러한 조건의 직렬 데이터 신호(SDA)와 직렬 클럭 신호(SCL)가 감지되면 I2C 통신을 종료할 수 있다.
ack 신호는 마스터 장치나 슬레이브 장치에서 데이터를 정상으로 수신하였음을 표시하는 신호일 수 있다.
이러한 ack 신호는 도 4c에 도시한 것처럼, 데이터의 전송이 완료된 후, 직렬 클럭 신호(SCL)가 하이인 상태에서 직렬 데이터 신호(SDA)는 로우인 경우이다. 따라서, 데이터 전송이 완료된 후 첫 번째 직렬 클럭 신호(SCL)가 생성된 상태에서 직렬 데이터 신호(SDA)가 로우이면, 데이터를 전송한 발신 측에서는 정상적으로 데이터 수신이 완료된 상태임을 확인할 수 있다.
하지만, 데이터 전송이 완료된 후 첫 번째 직렬 클럭 신호(SCL)가 생성된 상태에서 직렬 데이터 신호(SDA)가 하이 상태가 되면, 데이터의 수신이 정상적으로 이루어지지 않거나, 데이터의 수신 의사가 없거나 또는 데이터의 전송 의사가 없는 Nack 상태를 의미할 수 있다.
이러한 Ack 신호나 Nack 신호는 데이터를 수신하거나 전송하는 측에서 발생하여 직렬 데이터 단자(SDA)로 출력할 수 있다.
어드레스 및 데이터의 전송은 도 4d에 도시한 것처럼, 직렬 클럭 신호(SCL)가 하이인 동안 이루어질 수 있으므로, 직렬 클럭 신호(SCL)가 하이 상태를 유지하는 동안이 데이터 유효 구간이 될 수 있다.
이와 같이, I2C 통신을 이용하여 데이터의 전송을 실시하기 위해서는 위에 기재한 패킷에 따라 직렬 클럭 단자(SCL)와 직렬 데이터 단자(SDA)로 각각 해당 상태[예, 로우(low)('0') 또는 하이(high)('l')] 상태의 신호를 출력해야 한다.
따라서, 본 예는 사용자 단말(10)에서 USB 통신을 이용하여 I2C 통신을 위한 사용자 명령어가 입력되면, 프로토콜 변환 장치(30)는 입력된 사용자 명령어를 I2C 통신을 위한 실행 명령어로 변환하여 변환된 실행 명령어에 맞게 클럭 신호와 데이터 신호를 생성하여 각각 직렬 클럭 단자(SCL)와 직렬 데이터 단자(SDA)로 출력할 수 있다.
이로 인해, 사용자 단말(10)은 전자 장치(20)와 I2C 통신을 실시하여 데이터의 송수신을 실시하여 전자 장치(20)에서 원하는 데이터를 읽어오거나, 원하는 전자 장치(20)로 원하는 데이터를 기록할 수 있다.
이때, 사용자 명령어는 I2C 통신을 위한 명령어를 사용자가 직접 정한 명령어이고, 실행 명령어는 사용자 명령어에 대응하는 I2C 통신에 사용되는 실제 명령어로서, 전자 장치(20)는 이 실제 명령어에 따라 직렬 데이터 단자(SDA)를 통해 인가되는 신호의 상태에 따라 해당 동작을 실행할 수 있다.
따라서, 사용자는 키보드 등을 이용하여 사용자 단말(10)로 원하는 사용자 명령어를 입력할 수 있다. 이와 같이 사용자 단말(10)로 사용자 명령어가 입력되면, 사용자 단말(10)은 USB 통신을 이용하여 입력된 사용자 명령어를 프로토콜 변환 장치(30)로 전송할 수 있다.
따라서, 프로토콜 변환 장치(30)는 사용자 단말(10)로부터 전송된 사용자 명령어를 실행 명령어로 변환하여 그에 맞는 상태의 직렬 클럭 신호(SCL)과 직렬 데이터 신호(SDA)를 생성하여 전자 장치(20)로 출력할 수 있다.
본 예에서, 사용자 명령어는 w, r, s, @ 및 p를 구비할 수 있다. 본 예에서, 사용자 명령어에 대한 대문자와 소문자의 구분이 존재하지 않으므로, W와 w는 모두 같은 명령어를 나타낼 수 있다. 각 명령 사이, 어드레스 사이, 데이터 사이에는 스페이스(space)가 존재하여, 각각을 구분할 수 있도록 한다.
사용자 명령어 p는 종료 명령을 포함할 수 있다.
사용자 명령어 w는 시작 명령과 쓰기 명령을 포함할 수 있고, 시작 명령과 쓰기 명령 사이에는 슬레이브 장치의 어드레스가 위치할 수 있다.
사용자 명령어 r은 읽기 명령을 포함할 수 있다.
사용자 명령어 s는 슬레이브 장치의 8비트 어드레스를 직접 지정하는 명령으로서, 이런 경우, 별도의 쓰기 명령이나 읽기 명령이 기재되어 있지 않아도 8비트의 슬레이브 어드레스의 LSB(최소 유효 비트)의 값에 따라 쓰기 명령이나 읽기 명령이 정해질 수 있다. 이때, LSB의 값이 '0'인 경우 쓰기(write) 명령일 수 있고, LSB의 값이 '1'인 경우 읽기(read) 명령일 수 있다.
사용자 명령어 @는 슬레이브 장치로부터 전달된 데이터를 사용자 단말(10)로 전달하라는 명령으로서, 프로토콜 변환 장치(30)는 사용자 단말(10)로부터 @의 사용자 명령어가 전달되면 해당 슬레이브 장치로부터 전달된 데이터를 사용자 단말(10)로 전달할 수 있다. 이때, @의 개수는 전달되는 데이터의 비트수에 따라 정해질 수 있고, 한 예로 한 개의 @는 1바이트(byte)를 의미할 수 있다.
다음, 도 5a 내지 도 5f를 이용하여, 본 예에 따른 사용자 명령어의 다양한 사용 예를 설명한다.
한 예로, w 41 02 12 34 p의 사용자 명령어는 41번 슬레이브 장치의 02번 레지스터에 데이터 12와 34를 쓰기라는 명령어이다.
따라서, 이러한 w 41 02 12 34 p의 사용자 명령어가 사용자 단말(10)로 입력되어 프로토콜 변환 장치(30)로 전달되면, 프로토콜 변환 장치(30)는 도 5a와 같이 해석하여 실행 명령어를 생성할 수 있다.
따라서, 프로토콜 변환 장치(30)의 제어부(31)는 w 41 02 12 34 p가 입력되면 도 5a에 도시한 것에 따라 시작 비트부에 존재하는 S에 의해 시작 동작을 위해 직렬 데이터 단자(SDA)와 직렬 클럭 단자(SCL)로 해당 상태의 신호를 출력할 수 있다.
그런 다음, 하이와 로우 상태를 교번하는 직렬 클럭 신호(SCL)에 따라 도 5a에 도시한 것처럼 슬레이브 어드레스 비트부에 기재된 상태(10000010)의 신호를 직렬 데이터 단자(SDA)로 출력할 수 있다.
따라서, 슬레이브 어드레스 비트부의 LSB에 기재된 '0'에 의해, 해당 슬레이브 장치(즉, 41번의 어드레스를 갖는 슬레이브 장치)는 데이터의 쓰기 동작이 행해짐을 인지할 수 있고, 이에 따라, 41번 슬레이브 장치는 '10000010'의 신호가 인가된 후 직렬 데이터 단자(SDA)의 상태를 '0'로 하여 ack 신호를 프로토콜 변환 장치(30)로 전송할 수 있다.
ack 신호를 받은 프로토콜 변환 장치(30)는 '02'에 대응하는 상태(00000010)에 신호를 직렬 데이터 단자(SDA)로 전송하여 41번 슬레이브 장치가 자신의 02번의 레지스터에 쓰기 동작이 행해짐을 인지할 수 있도록 한 후, 41번 슬레이브 장치로부터 ack 신호를 수신 받을 수 있다.
따라서, 프로토콜 변환 장치(30)는 '12'에 대응하는 상태(00010010)와 '34'에 대응하는 상태(00110100)의 신호를 직렬 데이터 단자(SDA)로 전송하면, 41번 슬레이브는 02번 레지스터에 전송된 데이터, 즉 '12'에 대응하는 값(00010010)과 '34'에 대응하는 값(00110100)을 각각 기록할 수 있다. 이때, 41번 슬레이브 장치는 각 데이터(12 및 34에 대응하는 값)을 정상적으로 수신하면 ack 신호를 직렬 데이터 단자(SDA)로 전달할 수 있다.
이와 같이, 해당 데이터의 전송을 완료한 후, 프로토콜 변환 장치(30)는 종료 비트부에 존재하는 P에 의해 종료 동작을 위해 직렬 데이터 단자(SDA)와 직렬 클럭 단자(SCL)로 해당 상태의 신호를 각각 출력하여, 41번 슬레이브 장치에 해당 동작의 완료를 전달할 수 있다.
또한, w 44 00 r 44 @rawL @rawH p의 사용자 명령어는 44번 슬레이브 장치의 00번 레지스터에서 데이터 2바이트(56 및 78)를 읽어와 사용자 단말(10)로 전달하라는 명령일 수 있다.
따라서, 이러한 w 44 00 r 44 @rawL @rawH p의 사용자 명령어가 사용자 단말(10)을 통해 프로토콜 변환 장치(30)로 전달되면, 프로토콜 변환 장치(30)와 해당 슬레이브 장치는 도 5b와 같은 실행 명령어를 생성하여, 그에 맞게 직렬 데이터 단자(SDA)로 해당 상태의 신호를 전달할 수 있다.
이로 인해, 44번 슬레이브 장치는, 도 5a를 참고로 하여 설명한 것과 유사하게, 자신의 00번 레지스터에서 '56'에 대응하는 값(01010110)과 '78'에 대응하는 값(01111000)을 읽어와 직렬 데이터 단자(SDA)로 전달하여 프로토콜 변환 장치(30)로 전달할 수 있다.
이로 인해, 프로토콜 변환 장치(30)의 제어부(31)는 직렬 데이터 단자(SDA)를 통해 해당 슬레이브 장치로부터 전달된 '01010110'과 '01111000'를 저장부(33 등에 임시 저장한 후, @의 명령어에 따라 사용자 단말(10)로 전달할 수 있다. 본 예에서, 슬레이브 장치로부터 전달되는 데이터는 2바이트('01010110'과 '01111000')이므로, @의 개수는 2개가 된다. @ 뒤에 각각 기재된 'rawL'와 'rawH'는 데이터의 형식을 맞추기 위한 것으로서 해당 자릿수만큼 임의의 숫자나 문자가 기재될 수 있다.
r 44 @rawL @rawH p의 사용자 명령어는 별도의 레지스터 지정없이 지정된 슬레이브 장치의 데이터를 읽어와 사용자 단말(10)로 전달하라는 명령일 수 있다.
따라서, 44번 슬레이브 장치의 현재 버퍼에 저장된 데이터(예, 56 및 78)를 읽어와 사용자 단말(10)로 전달하라는 명령이므로, 도 5c에 도시한 것처럼, 44번의 슬레이브 장치는 현재 버퍼에 저장되어 있는 데이터, 예를 들어 '56'과 '78'에 각각 대응하는 '01010110'과 '01111000'을 읽어와 프로토콜 변환 장치(30)로 전달할 수 있다.
이때, '01010110'과 '01111000'를 각각 전달받은 프로토콜 변환 장치(30)는 직렬 데이터 단자(SDA)의 값은 제어하여 ack 신호(A)를 44번 슬레이브 장치로 전달할 수 있다.
s 82 02 12 34 p의 사용자 명령어는 w 41 02 12 34 p와 동일한 기능을 수행하는 명령어이다.
다만, w 41 02 12 34 p는 쓰기 명령(W)을 직접 명기한 것인 반면, s 82 02 12 34 p는 '82'에 대한 8비트의 이진수값을 이용하여 해당 동작 명령(예, 쓰기 명령(W))을 명기할 수 있다.
따라서 s 82 02 12 34 p는 슬레이브 어드레스 비트부의 LSB의 값에 따라 해당 동작 명령이 정해지므로, 사용자는 LSB의 값을 슬레이브 어드레스 비트부에 기재되는 값을 정할 수 있다. 본 예의 경우, 82에 대응하는 8비트의 이진수 값이 '10000010'이므로 LSB는 '0'이 되므로, 동작 명령은 쓰기 명령으로서 해당 슬레이브 장치는 쓰기 명령을 인지할 수 있다(도 5d 참고).
또한, s 88 00 s 89 @rawL @rawH p의 사용자 명령어는 's'다음에 기재된 88에 대한 8비트의 이진수 값은 '10001000'이고, 89에 대한 8비트의 이진수 값은 '10001001'이므로, 10001000'의 LSB는 '0'(즉, 쓰기 명령)이고 '10001001' LSB는 '1'(즉, 읽기 명령)이 된다. 따라서, s 88 00 s 89 @rawL @rawH p의 사용자 명령어는 w 44 00 r 44 @rawL @rawH p와 동일한 명령어가 된다. 이러한 사용자 명령에 의한 직렬 데이터 단자(SDA)의 신호 상태는 도 5e와 같을 수 있다.
동일한 원리로, s 89 @rawL @rawH p의 사용자 명령어는 r 44 @rawL @rawH p와 동일하며, 이때, 직렬 데이터 단자(SDA)의 신호 상태는 도 5f와 같을 수 있다. 따라서, 도 5f에 도시한 신호 상태에 맞게, 프로토콜 변환 장치(30) 및 '1000100'에 대응하는 어드레스는 갖는 슬레이브 장치는 56과 78에 대응하는 8비트의 2진수 값의 데이터('01010110' 및 '01111000')를 읽어와 직렬 데이터 단자(SDA)로 전송할 수 있다. 각 데이터('01010110' 및 '01111000')를 수신한 프로토콜 변환 장치(30)는 직렬 데이터 단자(SDA)의 상태를 로우 상태로 변환하여 해당 슬레이브 장치로 ack 신호는 전달할 수 있다.
본 발명의 각 실시예에 개시된 기술적 특징들은 해당 실시예에만 한정되는 것은 아니고, 서로 양립 불가능하지 않은 이상, 각 실시예에 개시된 기술적 특징들은 서로 다른 실시예에 병합되어 적용될 수 있다.
따라서, 각 실시예에서는 각각의 기술적 특징을 위주로 설명하지만, 각 기술적 특징이 서로 양립 불가능하지 않은 이상, 서로 병합되어 적용될 수 있다.
본 발명은 상술한 실시예 및 첨부한 도면에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자의 관점에서 다양한 수정 및 변형이 가능할 것이다. 따라서 본 발명의 범위는 본 명세서의 청구범위뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.
10: 사용자 단말 20: 전자 장치, 슬레이브 장치
30: 프로토콜 변환 장치, 마스터 장치
31: 제어부 32: 클럭 발생부
33: 저장부 SCL: 직렬 클록 단자
SDA: 직렬 데이터 단자

Claims (4)

  1. 클럭 신호를 생성하는 클럭 발생부;
    상기 클럭 발생부에 연결되어 있고, 제1 USB 포트를 구비하고 있는 사용자 단말과 USB 통신을 위한 제2 USB 포트 및 제1 I2C 포트를 각각 구비하고 있는 복수의 전자 장치와 I2C 통신을 위한 제2 I2C 포트를 구비하며, 상기 사용자 단말로부터 복수 종류의 사용자 명령어를 입력 받는 제어부; 및
    상기 제어부에 연결되어 있고, 상기 사용자 단말로부터 전달되는 사용자 명령어의 각 명령에 대한 정해진 규칙을 저장하고 있는 저장부
    를 포함하고,
    상기 제어부는,
    상기 제2 USB 포트를 통해 상기 사용자 단말의 상기 제1 USB 포트로부터 사용자 명령어가 전달되면, 전달된 상기 사용자 명령어를 상기 정해진 규칙에 따라 해석하여 실행 명령어로 변환하고, 변환된 실행 명령어에 맞게 상기 제2 I2C 포트로 인가되는 제어 신호의 상태를 변화시키고, 상기 클럭 신호에 동기하여 상태가 변화된 상기 제어 신호를 상기 제2 I2C 포트로 출력하여 해당 전자 장치의 제1 I2C 포트로 입력되도록 하고,
    상기 사용자 명령어는 정해진 기능을 각각 수행하는 복 수개의 명령의 조합이고, I2C 통신을 위해 사용자에 의해 정해진 명령어이며,
    상기 실행 명령어는 상기 사용자 명령어에 대응하는 I2C 통신에 사용되는 실제 명령어인
    프로토콜 변환 장치.
  2. 제1 항에 있어서,
    상기 사용자 명령어는 종료 명령인 제1 명령, 시작 명령과 쓰기 명령인 제2 명령, 읽기 명령인 제3 명령, 전자 장치의 8비트 어드레스를 직접 지정하는 명령인 제4 명령, 상기 전자 장치로부터 전달된 데이터를 상기 사용자 단말로 전달하라는 명령인 제5 명령의 조합이고,
    상기 시작 명령과 상기 쓰기 명령 사이에는 상기 전자 장치의 어드레스가 위치하고,
    상기 제4 명령이 사용될 때, 상기 8비트 어드레스의 최소 유효 비트의 값에 따라 쓰기 명령이나 읽기 명령이 정해지고,
    상기 제5 명령의 개수는 전달되는 데이터의 비트수에 따라 정해지는 프로토콜 변환 장치.
  3. 제1 항에 있어서,
    상기 제2 I2C 포트는 상기 클럭 신호를 전달하는 직렬 클럭 단자와 상기 제어 신호를 전달하는 직렬 데이터 단자를 포함하는 프로토콜 변환 장치.
  4. 제2 항에 있어서,
    상기 제1 명령은 p로 표기되고,
    상기 제2 명령은 w로 표기되고,
    상기 제3 명령은 r로 표기되고,
    상기 제4 명령은 s로 표기되며,
    상기 제5 명령은 @로 표기되는 프로토콜 변환 장치.
KR1020210066902A 2021-05-25 2021-05-25 프로토콜 변환 장치 KR102662356B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210066902A KR102662356B1 (ko) 2021-05-25 2021-05-25 프로토콜 변환 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210066902A KR102662356B1 (ko) 2021-05-25 2021-05-25 프로토콜 변환 장치

Publications (2)

Publication Number Publication Date
KR20220159529A KR20220159529A (ko) 2022-12-05
KR102662356B1 true KR102662356B1 (ko) 2024-05-02

Family

ID=84391987

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210066902A KR102662356B1 (ko) 2021-05-25 2021-05-25 프로토콜 변환 장치

Country Status (1)

Country Link
KR (1) KR102662356B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100906423B1 (ko) 2008-02-18 2009-07-09 한국과학기술원 입출력 장치 및 이를 이용한 의복
KR101630426B1 (ko) 2015-08-05 2016-06-15 아람휴비스(주) 개인용 건강 정보를 취득하기 위한 장치 및 그 방법
US20200341935A1 (en) * 2018-07-02 2020-10-29 Venturi, Llc Usb to synchronous serial interface with external clock signal

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080022941A (ko) * 2006-09-08 2008-03-12 삼성전자주식회사 기능확장형 usb 장치 및 이를 구비한 전자기기
KR101222107B1 (ko) 2010-12-09 2013-01-15 인텔릭스(주) I2c 버스 프로토콜 기반의 직렬 클럭 버스 스위칭을 이용한 멀티플렉싱 장치 및 그 방법
KR102130171B1 (ko) * 2014-01-13 2020-07-03 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100906423B1 (ko) 2008-02-18 2009-07-09 한국과학기술원 입출력 장치 및 이를 이용한 의복
KR101630426B1 (ko) 2015-08-05 2016-06-15 아람휴비스(주) 개인용 건강 정보를 취득하기 위한 장치 및 그 방법
US20200341935A1 (en) * 2018-07-02 2020-10-29 Venturi, Llc Usb to synchronous serial interface with external clock signal

Also Published As

Publication number Publication date
KR20220159529A (ko) 2022-12-05

Similar Documents

Publication Publication Date Title
US5727184A (en) Method and apparatus for interfacing between peripherals of multiple formats and a single system bus
US7565470B2 (en) Serial bus device with address assignment by master device
Axelson USB complete: the developer's guide
EP1877911B1 (en) I2c slave/master interface enhancement using state machines
TWI223154B (en) Generalized I2C slave transmitter/receiver state machine
US20050138246A1 (en) Serial/parallel data transformer module and related computer system
CN107066746B (zh) 基于i2c接口通过cpld来实现pca9555功能的方法
WO2009046617A1 (fr) Système de transmission de données dans un ordinateur
JP2006500679A (ja) Usb接続のためのインタフェース集積回路デバイス
US5794014A (en) Method and apparatus for interfacing between peripherals of multiple formats and a single system bus
JP2007524880A (ja) 二重ポートusbインターフェース
US6286073B1 (en) Integrated circuit interface between a personal computer and an external device
KR102662356B1 (ko) 프로토콜 변환 장치
CN101685433B (zh) 由主装置指定地址的串联总线装置
KR19980040573A (ko) 피씨와 통신하는 모니터
CN212229622U (zh) 导航模组测试装置及系统
US20090185559A1 (en) Integration module for universal serial bus
CN108132902B (zh) 一种可自适应电压的uart转usb系统和方法
CN1321382C (zh) 串行/并行数据转换模块及相关计算机系统
CN111913904A (zh) 向利用主从通信协议的多个从属装置自动分配互不相同地址的方法及用于其的装置
CN217467655U (zh) 一种单片机单io口双向通信结构
EP1577786A1 (en) Serial/parallel data transformer module and related computer system
CN216561744U (zh) 手写屏及手写输入装置
LaMeres et al. Serial Communication in C
Zhang et al. SPI Implementation Based on M2e Microprocessor

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