KR100718082B1 - Multi-port I2C controller and method thereof - Google Patents

Multi-port I2C controller and method thereof Download PDF

Info

Publication number
KR100718082B1
KR100718082B1 KR1020050094616A KR20050094616A KR100718082B1 KR 100718082 B1 KR100718082 B1 KR 100718082B1 KR 1020050094616 A KR1020050094616 A KR 1020050094616A KR 20050094616 A KR20050094616 A KR 20050094616A KR 100718082 B1 KR100718082 B1 KR 100718082B1
Authority
KR
South Korea
Prior art keywords
controller
cpus
control
bus
cpu
Prior art date
Application number
KR1020050094616A
Other languages
Korean (ko)
Other versions
KR20070039375A (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 KR1020050094616A priority Critical patent/KR100718082B1/en
Publication of KR20070039375A publication Critical patent/KR20070039375A/en
Application granted granted Critical
Publication of KR100718082B1 publication Critical patent/KR100718082B1/en

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
    • 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/0038System on Chip

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

멀티포트 I2C컨트롤러 및 그의 동작제어방법이 개시된다. 본 발명에 따른 멀티포트 I2C컨트롤러 및 그의 동작제어방법은 복수의 CPU를 구비하는 멀티코어SOC(System on Chip)에 구비되는 멀티포트 I2C(Inter-IC)컨트롤러에 있어서, 복수의 CPU로부터 이에 각각 할당된 시스템버스를 통해 제어요청을 전달받는 복수의 시스템버스 랩퍼(Wrapper), 복수의 시스템버스 랩퍼로부터 제어요청을 전달받아, 복수의 CPU 중 우선권을 가진 CPU에게 제어권한을 할당하는 아비터(Arbiter), 및 제어권한을 할당받은 CPU의 명령에 따라, 연결된 I2C버스를 제어하고, I2C버스와 연결된 외부 슬레이브소자(Slave device)와 통신하는 I2C컨트롤부를 포함한다. 이에 의해, 복수의 CPU가 하나의 I2C컨트롤러를 공유하도록, I2C컨트롤러의 시스템버스 랩퍼를 복수로 구성함으로써, 복수의 CPU를 구비한 멀티코어SOC의 회로 구성을 집적화하고, I2C버스를 효율적으로 제어하는 효과가 있다.Disclosed are a multi-port I 2 C controller and an operation control method thereof. Multi-port I2C controller and its operation control method according to the present invention is a multi-port I2C (Inter-IC) controller provided in a multi-core SOC (System on Chip) having a plurality of CPUs, each assigned from a plurality of CPUs Arbiter that receives control requests from multiple system bus wrappers, receives control requests from multiple system bus wrappers, and assigns control authority to the CPUs with priority among the multiple CPUs. And an I2C control unit for controlling the connected I2C bus and communicating with an external slave device connected to the I2C bus according to a command of a CPU assigned control authority. Thus, by configuring a plurality of system bus wrappers of the I2C controller so that a plurality of CPUs share one I2C controller, the circuit configuration of a multicore SOC having a plurality of CPUs can be integrated to efficiently control the I2C bus. It works.

멀티포트 I2C컨트롤러, 시스템버스 랩퍼, 아비터, I2C컨트롤부, I2C버스 Multiport I2C controller, system bus wrapper, arbiter, I2C controller, I2C bus

Description

멀티포트 I2C 컨트롤러 및 그의 동작제어방법{Multi-port I2C controller and method thereof}Multi-port I2C controller and operation control method thereof

도 1은 본 발명의 일실시 예에 따른 멀티포트 I2C컨트롤러를 구비한 멀티코어SOC(System on Chip)의 블럭도,1 is a block diagram of a multicore SOC (System on Chip) having a multiport I2C controller according to one embodiment of the present invention;

도 2는 본 발명의 일실시 예에 따른 멀티포트 I2C컨트롤러의 내부 블럭도, 그리고,2 is an internal block diagram of a multiport I2C controller according to an embodiment of the present invention, and

도 3은 본 발명의 일실시 예에 따른 멀티포트 I2C컨트롤러의 동작제어방법에 관한 흐름도이다.3 is a flowchart illustrating an operation control method of a multiport I2C controller according to an embodiment of the present invention.

* 도면의 주요 부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

100: 멀티코어SOC 110: 멀티포트 I2C컨트롤러100: Multicore SOC 110: Multiport I2C Controller

111-1: 시스템버스 랩퍼1 111-N: 시스템버스 랩퍼N111-1: System Bus Wrapper 1 111-N: System Bus WrapperN

113: 아비터 115: I2C컨트롤부113: Arbiter 115: I2C control unit

121-1: 시스템버스1 121-N: 시스템버스N121-1: System Bus 1 121-N: System Bus N

122-1: CPU-1 122-N: CPU-N122-1: CPU-1 122-N: CPU-N

131: I2C버스 132: 슬레이브소자1131: I2C bus 132: slave device 1

본 발명은 I2C컨트롤러에 관한 것으로, 더욱 상세하게는 멀티포트 I2C컨트롤러 및 그의 동작제어방법에 관한것이다.The present invention relates to an I2C controller, and more particularly to a multi-port I2C controller and its operation control method.

여기서, I2C(Inter-IC)란 직렬클럭(Serial CLock : SCL)과 직렬데이터(Serial DAta : SDA) 2개의 신호선을 통해 디바이스(device)간의 정보전달을 실시하는 인터페이스이고, 버스의 형태로 구현된다.Here, I2C (Inter-IC) is an interface for information transfer between devices through two signal lines, Serial CLock (SCL) and Serial Data (SDA), and is implemented in the form of a bus. .

"I2C컨트롤러"는 CPU의 명령을 전달받아, I2C컨트롤러와 연결된 I2C버스를 제어하여, CPU가 I2C버스를 통해 연결된 외부 슬레이브소자와 통신 가능하도록 하는 장치를 말한다.The "I2C controller" refers to a device that receives a command from the CPU and controls the I2C bus connected to the I2C controller so that the CPU can communicate with an external slave device connected through the I2C bus.

일반적으로, CPU가 I2C버스를 사용하여 외부 슬레이브소자와 통신을 하기 위해서는 I2C컨트롤러가 필요한데, I2C컨트롤러는 시스템버스를 통해서 CPU에 의해 제어된다.In general, an I2C controller is required for the CPU to communicate with an external slave device using the I2C bus, which is controlled by the CPU through the system bus.

이와 같이, CPU가 시스템버스를 통해 I2C컨트롤러를 제어하여, I2C버스에 연결된 외부 슬레이브소자와 통신을 하는 시스템을 SOC(System on Chip)라고 하는데, 기술의 발전에 따라 하나의 칩에 복수의 CPU를 탑재한 멀티코어 SOC가 일반화되고 있는 추세에 있다.As such, a system in which a CPU controls the I2C controller through a system bus and communicates with an external slave device connected to the I2C bus is called a system on chip (SOC). Onboard multicore SOCs are becoming more common.

멀티코어 SOC는 크게 두 가지 종류로 나눌 수 있다. Multicore SOC can be divided into two types.

첫째는, 하나의 I2C컨트롤러가 복수의 CPU중 기설정된 하나의 CPU에 의해서만 제어되도록 설계된 멀티코어 SOC이고, 둘째는, 복수의 I2C컨트롤러가 각각 1:1로 할당된 복수의 CPU에 의해 제어되도록 설계된 멀티코어 SOC이다.First, a multicore SOC is designed such that one I2C controller is controlled only by a predetermined one of the plurality of CPUs. Second, a plurality of I2C controllers are designed to be controlled by a plurality of CPUs each assigned 1: 1. It is a multicore SOC.

첫 번째 경우는, I2C컨트롤러가 단일로 존재하기 때문에, 복수의 CPU중 I2C컨트롤러를 제어하도록 기설정된 CPU를 제외한 나머지 CPU들이 I2C컨트롤러에 연결된 I2C버스를 사용하자고 할 경우, I2C컨트롤러의 제어권한을 가진 기설정된 CPU를 통해야하므로, 복수의 CPU들 간에 데이터를 교환할 수 있는 별도의 장치가 필요하게 된다.In the first case, since there is a single I2C controller, if the CPUs other than the CPU which is preset to control the I2C controller among the multiple CPUs use the I2C bus connected to the I2C controller, the I2C controller has the control authority of the I2C controller. Since it must be through a predetermined CPU, a separate device capable of exchanging data between a plurality of CPUs is required.

이에 의해, 나머지 CPU들이 I2C컨트롤러를 제어하도록 기설정된 CPU로 데이터를 보내기 위한 회로의 설계가 추가되어야 하고, 이를 구동하기 위한 소프트웨어가 추가되어야 하는 문제점이 있다.Thereby, there is a problem that a design of a circuit for sending data to a CPU which is set so that the remaining CPUs control the I2C controller must be added, and a software for driving the CPU must be added.

두 번째 경우는, 복수의 CPU가 각각 할당된 I2C컨트롤러를 제어하기 때문에, 멀티코어 SOC의 회로가 I2C컨트롤러의 개수에 비례해서 증가하게 되는 문제점이 있다. 또한, I2C컨트롤러의 개수에 비례하여 이와 연결되는 I2C버스의 개수도 증가하게 되므로, 외부 핀의 개수도 증가하는 문제점이 있다.In the second case, since a plurality of CPUs control the allocated I2C controllers, there is a problem that the circuit of the multicore SOC increases in proportion to the number of I2C controllers. In addition, since the number of I2C buses connected thereto increases in proportion to the number of I2C controllers, the number of external pins also increases.

위와 같은 두 경우의 문제점에 의해, 멀티코어 SOC의 회로 구성을 집적화함과 동시에 I2C컨트롤러를 효율적으로 제어할 수 있는 기술이 요청된다.As a result of the above two problems, a technique for integrating a circuit configuration of a multicore SOC and efficiently controlling an I2C controller is required.

따라서, 본 발명의 목적은, 복수의 CPU를 구비한 멀티코어SOC의 회로 구성을 집적화하고, I2C버스를 효율적으로 제어하기 위해, 복수의 CPU가 하나의 I2C컨트롤러를 공유하도록, I2C컨트롤러의 시스템버스 랩퍼를 복수로 구성하는데 목적이 있다.Accordingly, it is an object of the present invention to integrate a circuit configuration of a multicore SOC having a plurality of CPUs and to efficiently control the I2C bus so that the plurality of CPUs share a single I2C controller so that the system bus of the I2C controller The purpose is to construct a plurality of wrappers.

상기 목적을 달성하기 위한 본 발명에 따른 멀티포트 I2C컨트롤러 및 그의 동작제어방법은 복수의 CPU를 구비하는 멀티코어SOC(System on Chip)에 구비되는 멀티포트 I2C(Inter-IC)컨트롤러에 있어서, 상기 복수의 CPU로부터 이에 각각 할당된 시스템버스를 통해 제어요청을 전달받는 복수의 시스템버스 랩퍼(Wrapper), 상기 복수의 시스템버스 랩퍼로부터 상기 제어요청을 전달받아, 상기 복수의 CPU 중 우선권을 가진 CPU에게 제어권한을 할당하는 아비터(Arbiter), 및 상기 제어권한을 할당받은 CPU의 명령에 따라, 연결된 I2C버스를 제어하고, 상기 I2C버스와 연결된 외부 슬레이브소자(Slave device)와 통신하는 I2C컨트롤부를 포함한다.Multi-port I2C controller and its operation control method according to the present invention for achieving the above object is a multi-port I2C (Inter-IC) controller provided in a multi-core SOC (System on Chip) having a plurality of CPUs, A plurality of system bus wrappers receiving control requests from a plurality of CPUs through system buses assigned to them, and receiving the control requests from the plurality of system bus wrappers, to a CPU having priority among the plurality of CPUs. An arbiter for allocating control authority and an I2C control unit for controlling the connected I2C bus and communicating with an external slave device connected to the I2C bus according to a command of the CPU to which the control authority is assigned. .

바람직하게는, 상기 제어요청 및 제어권한은, 상기 I2C버스 컨트롤부의 제어요청 및 제어권한인 것을 포함한다.Preferably, the control request and the control authority includes the control request and the control authority of the I2C bus control unit.

더 바람직하게는, 상기 복수의 시스템버스 랩퍼는, 이에 각각 연결된 시스템버스의 종류가 서로 상이한 경우에도 인터페이스 제공이 가능한 것을 포함한다.More preferably, the plurality of system bus wrappers include those capable of providing an interface even when the types of system buses connected thereto are different from each other.

또한, 상기 복수의 CPU는 각각 하나의 시스템버스 랩퍼를 할당받아 상기 I2C컨트롤부를 1:1로 제어하는 것이 바람직하다.In addition, the plurality of CPUs are preferably assigned one system bus wrapper and control the I2C control unit 1: 1.

그리고, 복수의 CPU를 구비하는 멀티코어SOC(System on Chip)에 구비되는 멀티포트 I2C(Inter-IC)컨트롤러의 동작제어방법에 있어서, 상기 복수의 CPU로부터 이에 각각 할당된 시스템버스를 통해 제어요청을 전달받는 단계, 상기 제어요청을 전달받아, 상기 복수의 CPU 중 우선권을 가진 CPU에게 제어권한을 할당하는 단계, 및 상기 제어권한을 할당받은 CPU의 명령에 따라, 연결된 I2C버스를 제어하고, 상기 I2C버스와 연결된 외부 슬레이브소자(Slave device)와 통신하는 단계를 포함하 는 것이 바람직하다.In addition, in the operation control method of a multi-port I2C (Inter-IC) controller provided in a multi-core SOC (System on Chip) having a plurality of CPUs, the control request from the plurality of CPUs through a system bus assigned thereto Receiving a control request, receiving a control request, allocating control authority to a CPU having priority among the plurality of CPUs, and controlling a connected I2C bus according to a command of the CPU to which the control authority is allocated, Preferably, the method includes communicating with an external slave device connected to the I2C bus.

이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.Hereinafter, with reference to the drawings will be described the present invention in more detail.

도 1은 본 발명의 일실시 예에 따른 멀티포트 I2C컨트롤러를 구비한 멀티코어SOC(System on Chip)의 블럭도이다.1 is a block diagram of a multicore SOC (System on Chip) with a multiport I2C controller according to one embodiment of the invention.

도 1을 참조하면, 멀티코어SOC(100)는 멀티포트 I2C컨트롤러(110), 시스템버스1~N(121-1 ~ 121-N), CPU1~N(122-1 ~ 122-N), 및 I2C버스(131)를 구비한다. Referring to FIG. 1, the multicore SOC 100 includes a multiport I 2 C controller 110, a system bus 1 to N (121-1 to 121-N), a CPU 1 to N (122-1 to 122-N), and An I2C bus 131 is provided.

그리고, 멀티포트 I2C컨트롤러(110)는 I2C버스(131)를 통해 외부 슬레이브소자 1(132) 및 외부 슬레이브소자 2(134)와 연결되어 있다.The multiport I2C controller 110 is connected to the external slave device 1 132 and the external slave device 2 134 through the I2C bus 131.

다만, 멀티코어SOC(100) 내에 포함될 수 있는 기타의 구성요소는 도면에서 배제하고 본 발명을 설명함에 있어 필요한 구성요소만을 도시하는 것으로 한다.However, other components that may be included in the multicore SOC 100 are excluded from the drawings and only those components necessary for describing the present invention are shown.

멀티포트 I2C컨트롤러(110)란 복수의 CPU가 하나의 I2C컨트롤러를 공유하도록, I2C컨트롤러의 시스템버스 인터페이스 포트를 복수로 구성한 I2C컨트롤러를 말한다.The multiport I2C controller 110 refers to an I2C controller configured with a plurality of system bus interface ports of the I2C controller such that a plurality of CPUs share one I2C controller.

다시 말하면, 멀티포트 I2C컨트롤러(110)의 시스템버스 인터페이스 포트가 복수로 구성됨으로써, CPU1~N(122-1 ~ 122-N)이 각각에 할당된 시스템버스1~N(121-1 ~ 121-N)을 통해서 멀티포트 I2C컨트롤러(110)에 동시에 연결될 수 있는 장치이다.In other words, the system bus interface ports of the multi-port I2C controller 110 are configured in plural, so that the system buses 1 to N (121-1 to 121-N) to which the CPUs 1 to N 122-1 to 122-N are assigned to each. It is a device that can be simultaneously connected to the multi-port I2C controller 110 through N).

멀티포트 I2C컨트롤러(110)는 연결된 CPU1~N(122-1 ~ 122-N) 중 제어권한을 가진 하나의 CPU에 의해 제어되며, 이에 의해 멀티포트 I2C컨트롤러(110)는 제어권한을 가진 하나의 CPU가 I2C버스(131)를 통해 연결되어 있는 외부의 슬레이브소자 1(132)~슬레이브소자2(134)와 통신할 수 있는 인터페이스를 제공한다.The multiport I2C controller 110 is controlled by one CPU having control authority among the connected CPU1 to N 122-1 to 122-N, whereby the multiport I2C controller 110 has one control authority. The CPU provides an interface for communicating with an external slave device 1 132 to a slave device 2 134 connected through the I2C bus 131.

도 2는 본 발명의 일실시 예에 따른 멀티포트 I2C컨트롤러의 내부 블럭도이다.2 is an internal block diagram of a multiport I2C controller according to an embodiment of the present invention.

도 1 및 도 2를 참조하면, 멀티포트 I2C컨트롤러(110)는 시스템버스 랩퍼1~N(111-1 ~ 111-N), 아비터(113), I2C컨트롤부(115)를 구비한다.1 and 2, the multiport I 2 C controller 110 includes system bus wrappers 1 to N 111-1 to 111 -N, an arbiter 113, and an I 2 C controller 115.

그리고, 시스템버스 랩퍼1~N(111-1 ~ 111-N)은 각각 시스템버스1~N(121-1 ~ 121-N)에 연결되어 있고, I2C컨트롤부(115)는 I2C버스(131)에 연결되어 있다.In addition, the system bus wrappers 1 to N (111-1 to 111-N) are connected to the system bus 1 to N (121-1 to 121-N), respectively, and the I2C control unit 115 is an I2C bus 131. Is connected to.

다만, 멀티포트 I2C컨트롤러(110) 내에 포함될 수 있는 기타의 구성요소는 도면에서 배제하고 본 발명을 설명함에 있어 필요한 구성요소만을 도시하는 것으로 한다.However, other components that may be included in the multiport I2C controller 110 are excluded from the drawings and only those components necessary for describing the present invention will be shown.

시스템버스 랩퍼1~N(111-1 ~ 111-N)은 CPU1~N(122-1 ~ 122-N)이 각각에 할당된 시스템버스1~N(121-1 ~ 121-N)을 통해 I2C컨트롤부(115)의 제어요청을 전달할 수 있도록, 시스템버스1~N(121-1 ~ 121-N)에 인터페이스를 제공한다.System bus wrappers 1 to N (111-1 to 111-N) are connected to I2C via System Bus 1 to N (121-1 to 121-N) assigned CPU1 to N (122-1 to 122-N), respectively. In order to transmit the control request of the control unit 115, the interface is provided to the system bus 1 ~ N (121-1 ~ 121-N).

여기서, 시스템버스 랩퍼1~N(111-1 ~ 111-N)은 이에 각각 연결된 시스템버스1~N(121-1 ~ 121-N)의 종류가 서로 상이한 경우에도 인터페이스를 제공한다.Here, the system bus wrappers 1 to N (111-1 to 111-N) provide interfaces even when the types of the system buses 1 to N (121-1 to 121-N) connected thereto are different from each other.

예를 들어, 시스템버스1(121-1)의 종류가 AMBA버스이고, 시스템버스N(121-N)의 종류가 OCP버스일 경우에도, 각각에 인터페이스를 제공하여 이를 통해 각각에 연결된 CPU 1(122-1)과 CPU N(122-N)으로부터 I2C컨트롤부(115)의 제어요청을 전달받는다.For example, even if the type of the system bus 1 121-1 is an AMBA bus and the type of the system bus N 121-N is an OCP bus, the CPU 1 connected to each of them is provided with an interface to each of them. 122-1) and the control request of the I2C control unit 115 from the CPU N (122-N).

아비터(113)는 시스템버스 랩퍼1~N(111-1 ~ 111-N)을 통해 I2C컨트롤부(115) 의 제어요청을 전달받아, CPU1~N(122-1 ~ 122-N) 중 우선권을 가진 CPU에게 I2C컨트롤부(115) 제어권한을 할당한다.The arbiter 113 receives the control request of the I2C control unit 115 through the system bus wrappers 1 to N (111-1 to 111-N), and gives priority to the CPU1 to N (122-1 to 122-N). The control authority of the I2C control unit 115 is assigned to the owned CPU.

I2C컨트롤부(115)는 제어권한을 할당받은 CPU의 명령에 따라, 이에 연결된 I2C버스를 제어하여, 제어권한을 할당받은 CPU가 I2C버스와 연결된 외부의 슬레이브소자1(132)~슬레이브소자2(134)와 통신가능하게 한다.The I2C control unit 115 controls the I2C bus connected thereto according to the command of the CPU to which the control right is assigned, so that the external slave devices 1 132 to the slave device 2 (where the CPU to which the control right is assigned are connected to the I2C bus are connected). 134).

위의 과정을 정리하면, 멀티포트 I2C컨트롤러(110)는 복수의 시스템버스 랩퍼(Wrapper)가 이에 할당된 복수의 시스템버스를 통해 복수의 CPU부터 I2C컨트롤부(115) 제어요청을 전달받아 이를 아비터(Arbiter)(113)로 전달하고, 제어요청을 전달받은 아비터(113)는 복수의 CPU중 우선권을 가진 CPU에 I2C컨트롤부(115)의 제어권한을 할당하여, 제어권한을 할당받은 CPU가 I2C컨트롤부(115)와의 1:1통신을 통해 I2C버스를 제어하도록 하는 장치를 말한다.In summary, the multi-port I2C controller 110 receives the I2C controller 115 control requests from a plurality of CPUs through a plurality of system buses to which a plurality of system bus wrappers are allocated to the multi-port I2C controller 110. (Arbiter) 113, and the arbiter 113, which receives the control request, allocates the control authority of the I2C control unit 115 to the CPU having priority among the plurality of CPUs, and the CPU to which the control authority is assigned is I2C. Refers to a device for controlling the I2C bus through 1: 1 communication with the control unit 115.

도 3은 본 발명의 일실시 예에 따른 멀티포트 I2C컨트롤러의 동작제어방법에 관한 흐름도이다.3 is a flowchart illustrating an operation control method of a multiport I2C controller according to an embodiment of the present invention.

도 1 내지 도 3을 참조하면, 복수의 시스템버스 랩퍼가 복수의 CPU로부터 이에 각각 할당된 시스템버스를 통해 I2C컨트롤부(115) 제어요청을 전달받는다(S410).1 to 3, a plurality of system bus wrappers receive an I2C control unit 115 control request from a plurality of CPUs through system buses allocated thereto (S410).

다시 말하면, 시스템버스 랩퍼1~N(111-1 ~ 111-N)은 이에 대응하는 CPU1~N(122-1 ~ 122-N)으로부터 이에 할당된 시스템버스1~N(121-1 ~ 121-N)을 통해 I2C컨트롤부(115) 제어요청을 전달받는다.In other words, the system bus wrappers 1 to N (111-1 to 111-N) are allocated from the corresponding CPU 1 to N (122-1 to 122-N) and assigned to the system bus 1 to N (121-1 to 121-N). N) receives the I2C control unit 115 control request.

위와 같은 과정에 의해, 복수의 CPU는 각각 하나의 시스템버스 랩퍼를 할당 받아 I2C컨트롤부를 1:1로 제어할 수 있는 권한을 가지게 된다.By the above process, a plurality of CPUs are each assigned a system bus wrapper and have the authority to control the I2C controller 1: 1.

아비터(113)가 복수의 시스템버스 랩퍼를 통해 복수의 CPU의 제어요청을 전달받아, 복수의 CPU 중 우선권을 가진 CPU에게 제어권한을 할당한다(S420).The arbiter 113 receives the control requests of the plurality of CPUs through the plurality of system bus wrappers, and assigns control authority to the CPUs having priority among the plurality of CPUs (S420).

예를 들어, CPU1~N(122-1 ~ 122-N)이 각각에 할당된 시스템버스 랩퍼1~N(111-1 ~ 111-N)을 통해 동시에 아비터(113)로 I2C컨트롤부(115)의 제어를 요청하면, 아비터(113)는 CPU1~N(122-1 ~ 122-N) 중 I2C컨트롤부(115) 제어우선권을 가진 하나의 CPU에게 제어권한을 할당하여, 제어권한을 가진 CPU와 I2C컨트롤부(115)를 1:1로 연결해주는 역할을 한다.For example, the I2C control unit 115 to the arbiter 113 at the same time through the system bus wrappers 1 to N (111-1 to 111-N) to which CPU1 to N (122-1 to 122-N) are assigned to each. When requesting control, the arbiter 113 assigns control authority to one CPU having the control priority right of the I2C control unit 115 among the CPU1 to N 122-1 to 122-N, It serves to connect the I2C control unit 115 in a 1: 1.

I2C컨트롤부(115)가 제어권한을 할당받은 CPU의 명령에 따라 연결된 I2C버스를 제어하고, 이에 의해 제어권한을 할당받은 CPU가 I2C버스와 연결된 외부 슬레이브 소자와 통신한다(S430).The I2C controller 115 controls the connected I2C bus according to the command of the CPU to which the control right is assigned, whereby the CPU to which the control right is assigned communicates with an external slave device connected to the I2C bus (S430).

예를 들어, CPU 1(122-1)이 아비터(113)로부터 I2C컨트롤부(115)의 제어권한을 할당받았다고 하면, I2C컨트롤부(115)는 CPU 1(122-1)에 의해 1:1로 제어된다.For example, if the CPU 1 122-1 is assigned the control authority of the I 2 C controller 115 from the arbiter 113, the I 2 C controller 115 is 1: 1 by the CPU 1 122-1. Is controlled.

즉, I2C컨트롤부(115)는 CPU 1(122-1)의 제어명령에 따라 I2C버스를 제어하여, CPU 1(122-1)이 슬레이브소자1(132)~슬레이브소자2(134)와 통신할 수 있도록 한다.That is, the I2C controller 115 controls the I2C bus according to the control command of the CPU 1 122-1 so that the CPU 1 122-1 communicates with the slave devices 1 132 to the slave device 2 134. Do it.

이상에서 설명한 바와 같이, 본 발명에 따르면, 복수의 CPU가 하나의 I2C컨트롤러를 공유하도록, I2C컨트롤러의 시스템버스 랩퍼를 복수로 구성함으로써, 복수의 CPU를 구비한 멀티코어SOC의 회로 구성을 집적화하고, I2C버스를 효율적으로 제어하는 효과가 있다.As described above, according to the present invention, by configuring a plurality of system bus wrappers of the I2C controller so that the plurality of CPUs share one I2C controller, the circuit configuration of the multicore SOC having the plurality of CPUs is integrated and This effectively controls the I2C bus.

또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어 저서는 안 될 것이다.In addition, although the preferred embodiment of the present invention has been shown and described above, the present invention is not limited to the above-described specific embodiment, the technical field to which the invention belongs without departing from the spirit of the invention claimed in the claims. Of course, various modifications can be made by those skilled in the art, and such modifications should not be individually understood from the technical spirit or the prospect of the present invention.

Claims (5)

복수의 CPU를 구비하는 멀티코어SOC(System on Chip)에 구비되는 멀티포트 I2C(Inter-IC)컨트롤러에 있어서,In the multi-port I2C (Inter-IC) controller provided in a multi-core SOC (System on Chip) having a plurality of CPUs, 상기 복수의 CPU에 각각 할당된 복수의 시스템버스에 연결되며, 상기 복수의 CPU로부터 상기 복수의 시스템버스를 통해 제어요청을 전달받는 복수의 시스템버스 랩퍼(Wrapper);A plurality of system bus wrappers connected to a plurality of system buses each assigned to the plurality of CPUs, and receiving control requests from the plurality of CPUs through the plurality of system buses; 상기 복수의 시스템버스 랩퍼로부터 상기 제어요청을 전달받아, 상기 복수의 CPU 중 우선권을 가진 CPU에게 제어권한을 할당하는 아비터(Arbiter); 및An arbiter receiving the control requests from the plurality of system bus wrappers and assigning control authority to a CPU having priority among the plurality of CPUs; And 상기 제어권한을 할당받은 CPU의 명령에 따라, 연결된 I2C버스를 제어하고, 상기 I2C버스와 연결된 외부 슬레이브소자(Slave device)와 통신하는 I2C컨트롤부;를 포함하는 것을 특징으로 하는 멀티포트 I2C컨트롤러.And an I2C controller for controlling the connected I2C bus and communicating with an external slave device connected to the I2C bus according to a command of the CPU assigned the control right. 제 1항에 있어서,The method of claim 1, 상기 제어요청 및 제어권한은, The control request and control authority, 상기 I2C버스 컨트롤부의 제어요청 및 제어권한인 것을 특징으로 하는 멀티포트 I2C컨트롤러.Multi-port I2C controller, characterized in that the control request and control authority of the I2C bus control unit. 제 1항에 있어서,The method of claim 1, 상기 복수의 시스템버스 랩퍼는, The plurality of system bus wrappers, 이에 각각 연결된 시스템버스의 종류가 서로 상이한 경우에도 인터페이스 제공이 가능한 것을 특징으로 하는 멀티포트 I2C컨트롤러.The multi-port I2C controller, characterized in that the interface can be provided even if the type of system bus connected to each other are different. 제 1항에 있어서,The method of claim 1, 상기 복수의 CPU는, The plurality of CPUs, 각각 하나의 시스템버스 랩퍼를 할당받아 상기 I2C컨트롤부를 1:1로 제어하는 것을 특징으로 하는 멀티포트 I2C컨트롤러.Multi-port I2C controller characterized in that each one is assigned a system bus wrapper to control the I2C control unit 1: 1. 복수의 CPU를 구비하는 멀티코어SOC(System on Chip)에 구비되는 멀티포트 I2C(Inter-IC)컨트롤러의 동작제어방법에 있어서,In the operation control method of a multi-port I2C (Inter-IC) controller provided in a multi-core SOC (System on Chip) having a plurality of CPUs, 상기 복수의 CPU에 각각 할당되어 연결된 복수의 시스템버스를 통해 상기 복수의 CPU로부터 제어요청을 전달받는 단계;Receiving a control request from the plurality of CPUs through a plurality of system buses allocated and connected to the plurality of CPUs, respectively; 상기 제어요청을 전달받아, 상기 복수의 CPU 중 우선권을 가진 CPU에게 제어권한을 할당하는 단계; 및Receiving the control request and allocating control authority to a CPU having priority among the plurality of CPUs; And 상기 제어권한을 할당받은 CPU의 명령에 따라, 연결된 I2C버스를 제어하고, 상기 I2C버스와 연결된 외부 슬레이브소자(Slave device)와 통신하는 단계;를 포함하는 것을 특징으로 하는 멀티포트 I2C컨트롤러의 동작제어방법.Controlling the connected I2C bus and communicating with an external slave device connected to the I2C bus according to a command of the CPU to which the control right is assigned; operation control of the multiport I2C controller, comprising: Way.
KR1020050094616A 2005-10-07 2005-10-07 Multi-port I2C controller and method thereof KR100718082B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050094616A KR100718082B1 (en) 2005-10-07 2005-10-07 Multi-port I2C controller and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050094616A KR100718082B1 (en) 2005-10-07 2005-10-07 Multi-port I2C controller and method thereof

Publications (2)

Publication Number Publication Date
KR20070039375A KR20070039375A (en) 2007-04-11
KR100718082B1 true KR100718082B1 (en) 2007-05-16

Family

ID=38160254

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050094616A KR100718082B1 (en) 2005-10-07 2005-10-07 Multi-port I2C controller and method thereof

Country Status (1)

Country Link
KR (1) KR100718082B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101884469B1 (en) * 2012-01-10 2018-08-01 엘지전자 주식회사 Mobile terminal and method for controlling thereof

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09305535A (en) * 1996-05-15 1997-11-28 Nec Corp Asynchronous multiplexing system for control system serial bus
KR20010083932A (en) * 1999-09-02 2001-09-03 롤페스 요하네스 게라투스 알베르투스 Device for and method of preventing bus contention
US20040049293A1 (en) 1999-11-05 2004-03-11 Analog Devices, Inc. Bus architecture and shared bus arbitration method for a communication processor
US20050027900A1 (en) 2003-04-18 2005-02-03 Nextio Inc. Method and apparatus for a shared I/O serial ATA controller

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09305535A (en) * 1996-05-15 1997-11-28 Nec Corp Asynchronous multiplexing system for control system serial bus
KR20010083932A (en) * 1999-09-02 2001-09-03 롤페스 요하네스 게라투스 알베르투스 Device for and method of preventing bus contention
US20040049293A1 (en) 1999-11-05 2004-03-11 Analog Devices, Inc. Bus architecture and shared bus arbitration method for a communication processor
US20050027900A1 (en) 2003-04-18 2005-02-03 Nextio Inc. Method and apparatus for a shared I/O serial ATA controller

Also Published As

Publication number Publication date
KR20070039375A (en) 2007-04-11

Similar Documents

Publication Publication Date Title
US8255095B2 (en) Modular avionics system of an aircraft
US7305510B2 (en) Multiple master buses and slave buses transmitting simultaneously
US7113488B2 (en) Reconfigurable circular bus
CN101158935B (en) South bridge system and method
EP3167374B1 (en) Bridging inter-bus communications
EP0848327A2 (en) Multiprocessor computer having configurable hardware system domains
JPH0844681A (en) Centralized management of resource shared by plurality of processors
US4933838A (en) Segmentable parallel bus for multiprocessor computer systems
CN101981554A (en) System and method for transforming PCIE SR-IOV functions to appear as legacy functions
CN108255755A (en) PCIE functional universal communication interface modules based on FPGA
CN106021141B (en) Semiconductor device with a plurality of semiconductor chips
CN101911033B (en) Sharing bandwidth of a single port sram between at least one dma peripheral and a cpu operating with a quadrature clock
KR20140078161A (en) PCI express switch and computer system using the same
US5708784A (en) Dual bus computer architecture utilizing distributed arbitrators and method of using same
KR100718082B1 (en) Multi-port I2C controller and method thereof
US7802038B2 (en) Communication steering for use in a multi-master shared resource system
US9858222B2 (en) Register access control among multiple devices
JPH052552A (en) Workstation having burst mode capacity
US20230240036A1 (en) Riser cards with inline slots
JP7146075B2 (en) Data processing device having multiple processor devices and multiple interfaces
CN102722466A (en) 16-bit multibus circuit in 2 in 3 or 2 in 2 control system
JP5763519B2 (en) USB hub controller, USB host controller, and system
JPH052555A (en) Internal bus for workstation interface device
TWI596483B (en) Data channel allocation
US20240220436A1 (en) Supporting multiple controller circuits on a multiplexed communication bus

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
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee