KR20070070680A - Device and system for debugging device using control bus - Google Patents
Device and system for debugging device using control bus Download PDFInfo
- Publication number
- KR20070070680A KR20070070680A KR1020050133492A KR20050133492A KR20070070680A KR 20070070680 A KR20070070680 A KR 20070070680A KR 1020050133492 A KR1020050133492 A KR 1020050133492A KR 20050133492 A KR20050133492 A KR 20050133492A KR 20070070680 A KR20070070680 A KR 20070070680A
- Authority
- KR
- South Korea
- Prior art keywords
- master
- control signal
- slave
- host computer
- debugging
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
Abstract
Description
도 1은 종래의 I2C 버스를 포함하는 장치와 연결되는 디버깅 시스템의 구성을 나타낸 도면.1 is a diagram illustrating a configuration of a debugging system connected to a device including a conventional I2C bus.
도 2는 본 발명의 바람직한 일 실시예에 따라 I2C 버스를 포함하는 장치와 연결되는 디버깅 시스템의 구성을 나타낸 도면.2 is a diagram illustrating a configuration of a debugging system connected to a device including an I2C bus according to a preferred embodiment of the present invention.
도 3은 본 발명의 바람직한 일 실시예에 따라 I2C 버스를 포함하는 장치의 I2C 슬레이브 레지스터 맵의 구성을 나타낸 도면.3 is a diagram illustrating the configuration of an I2C slave register map of a device including an I2C bus in accordance with one preferred embodiment of the present invention.
본 발명은 슬레이브의 디버깅을 수행하기 위한 방법에 관한 것으로서 보다 상세하게는 제어 버스를 이용하여 통신하는 장치에 UART를 포함하지 않는 경우에도 정상 동작이나 오류 등을 디버깅하는 디버깅의 수행이 가능한 방법에 관한 것이다.The present invention relates to a method for debugging a slave. More particularly, the present invention relates to a method for debugging a normal operation or an error even when a device using a control bus does not include a UART. will be.
제어 버스란 제어 신호(예를 들어, 명령어 등)를 송수신하기 위한 버스를 말 하며, 제어 버스는 예를 들어 I2C 버스 또는 동종의 버스일 수 있다. 이하의 설명에서는 제어 버스중 가장 일반적인 I2C 버스를 기준으로 설명한다.The control bus refers to a bus for transmitting and receiving a control signal (eg, a command, etc.), and the control bus may be, for example, an I2C bus or a similar bus. The following description is based on the most common I2C bus among control buses.
I2C 버스란, Inter-IC라고도 불리우며, 집적 회로들 간의 통신 링크를 제공하는 두 가닥 선의 양방향 직렬 버스이다. 일반적으로 I2C로 지칭되며 현재 디지털 기기들의 내부 컴퓨팅 기능이 포함되는 Embeded System 구현을 위한 사실상의 표준으로 널리 사용되고 있다.The I2C bus, also called Inter-IC, is a two-wire, bidirectional serial bus that provides a communication link between integrated circuits. Commonly referred to as I2C, it is now widely used as a de facto standard for implementing an embedded system that includes the internal computing capabilities of digital devices.
본 명세서에서 슬레이브란 마스터에 제어 버스를 통해 연결되고, 제어 버스를 통해 수신되는 제어 신호에 의해 제어되는 종속 모듈로 특히 디지털 장치에 포함되어 다른 구성 요소들과 통신을 수행하는 장치를 말한다. 또한 슬레이브라고 칭하였으나 I2C 버스 외의 다른 제어 버스를 사용할 수 있으며 바람직하게는 장치나 기기의 형태가 아닌 칩(chip)의 구현될 수 있다.In the present specification, a slave is a slave module connected to a master through a control bus and controlled by a control signal received through the control bus, and particularly, a device included in a digital device to communicate with other components. It may also be called a slave, but other control buses other than the I2C bus may be used, and may be implemented as chips, preferably not in the form of devices or devices.
또한 슬레이브는 I2C 버스를 이용하여 통신하는 경우 I2C 장치라고 명칭한다.The slave is also called an I2C device when communicating using the I2C bus.
마스터는 디지털 처리 장치의 중심이 되는 부분으로 대개 베이스밴드로 불리우는 부분으로 특히 제어 버스를 통해 슬레이브와 연결되는 장치 또는 칩으로 구현될 수 있다. 이하의 설명에서는 일반적으로 지칭되는 베이스밴드라는 명칭을 사용하여 설명하기로 한다.The master is the central part of the digital processing device, usually referred to as baseband, and can be implemented in particular as a device or chip connected to the slave via a control bus. In the following description, a description will be made using a generally referred to baseband name.
디버깅(Debugging)이란, 특히 컴퓨터 분야에서 디버깅이란 컴퓨터 프로그램이나 하드웨어 장치에서 잘못된 부분, 즉 버그(bug)를 찾아서 수정하거나 또는 에러를 피해나가는 처리 과정을 말한다.Debugging, particularly in the computer field, refers to the process of finding and fixing bugs in a computer program or hardware device, such as bugs, or avoiding errors.
일반적으로 프로그램이나 하드웨어 장치의 결함을 제거하기 위해서는 문제가 되는 부분을 분리시킨 후 수정해야 한다. 대부분의 컴퓨터 프로그램과 하드웨어의 프로그램화된 부분은 수많은 코드로 구성되어 있기 때문에 많은 제품들이 어느 정도의 잘못된 부분을 포함하게 된다. 이러한 잘못된 부분을 찾아나가는 과정을 일반적으로 디버깅이라 한다.In general, in order to eliminate a defect in a program or hardware device, it is necessary to isolate the problem and fix it. Most computer programs and programmed parts of hardware consist of a lot of code, so many products contain a certain amount of errors. The process of finding these faults is usually called debugging.
특히 컴퓨터 등의 디지털 장치에서 포함되는 펌웨어(firmware)는 디지털 처리 장치의 기본 동작을 위해 반드시 필요한 경우가 대부분이므로 정상 동작이나 오류를 수정하는 디버깅하는 과정이 반드시 수행되어야 한다.In particular, since firmware included in a digital device such as a computer is most necessary for the basic operation of the digital processing device, a debugging process for correcting a normal operation or an error must be performed.
펌웨어란 메모리에 저장되어 영구적으로 디지털 장치의 일부가 되는 프로그램을 말하며 디지털 장치의 동작의 기본 역할을 모두 하드웨어적으로 구현하는 경우 구조가 복잡해지고 비용이 증가하는 문제점이 있으므로 이를 프로그램으로 구현한 것이다. Firmware refers to a program that is stored in memory and becomes part of a digital device permanently. If the hardware implements all the basic functions of the digital device, the structure is complicated and the cost increases.
UART란, Universal Asynchronous Receiver/Transmitter(이하 UART라 함)의 약어로 범용 비동기화 송수신기로 불리우며 컴퓨터에 부착된 직렬 장치들로 향하는 인터페이스를 제어하는 프로그램이 들어 있는 마이크로칩 또는 장치이다. UART is an abbreviation of Universal Asynchronous Receiver / Transmitter (hereinafter referred to as UART). It is a microchip or device that contains a program that controls an interface to a serial device attached to a computer.
UART는 컴퓨터에게 직렬 데이터 통신의 표준 프로토콜의 데이터 단말 장치인 RS-232C DTE 인터페이스를 제공함으로써 모뎀이나 기타 다른 직렬 장치들과 통신하거나 데이터를 주고받을 수 있게 한다. The UART provides a computer with an RS-232C DTE interface, a data terminal device in the standard protocol for serial data communication, to communicate with or send data to a modem or other serial device.
UART의 기본적인 기능은 컴퓨터로부터 병렬 회로를 통해 받은 바이트들을 외부에 전달하기 위해 하나의 단일 직렬 비트 스트림(stream)으로 변환하고 내부로 전송할 때에는, 직렬 비트 스트림을 컴퓨터가 처리할 수 있도록 바이트로 변환한다.The basic function of the UART is to convert the bytes received through the parallel circuit from the computer into a single serial bit stream for external transmission and, when transmitted internally, convert the serial bit stream into bytes for the computer to process. .
또한 외부 전송을 위해 패리티(parity) 비트를 추가하며, 수신되는 바이트들의 패리티를 확인하고, 패리티 비트를 제거하는 기능을 수행한다. 그리고 데이터를 외부로 내보낼 때에는 시작 비트와 정지 비트를 추가하고, 수신되는 데이터에서는 그것들을 제거하며 키보드나 마우스로부터 들어오는 인터럽트를 처리한다.It also adds a parity bit for external transmission, checks the parity of received bytes, and removes the parity bit. When exporting data, add start and stop bits, remove them from incoming data, and handle interrupts from the keyboard or mouse.
또한 다른 종류의 인터럽트 처리와 컴퓨터의 동작 속도를 장치의 속도와 동등하게 맞추도록 요구하는 장치를 관리할 수 있으며 최근에는 UART가 일정량의 데이터 버퍼링을 제공함으로써, 컴퓨터와 직렬 장치들의 데이터 스트림이 대등하도록 맞추어준다. It can also manage other types of interrupt processing and devices that require the computer's operating speed to be equal to the device's speed. Recently, the UART provides some amount of data buffering to ensure that the data streams of the computer and the serial devices are comparable. Match it.
이러한 I2C 버스를 이용하여 통신하는 장치(이하 I2C 장치라 함)의 디버깅을 수행하기 위한 종래의 방법을 도 1을 참조하여 살펴본다.A conventional method for performing debugging of a device (hereinafter, referred to as an I2C device) to communicate using the I2C bus will be described with reference to FIG. 1.
도 1은 종래의 I2C 장치의 펌웨어(firmware)에 대해 디버깅을 수행하기 위한 디버깅 시스템의 구성을 나타낸 도면이다.1 is a diagram illustrating a configuration of a debugging system for performing debugging on a firmware of a conventional I2C device.
도 1에 도시된 바와 같이, I2C 장치의 펌웨어에 대한 디버깅을 수행하기 위한 시스템은 I2C 장치(100), 베이스밴드(Baseband)부(140) 및 호스트 컴퓨터(160)를 포함한다.As shown in FIG. 1, a system for debugging the firmware of an I2C device includes an
I2C 장치(100)와 베이스밴드부(140)는 호스트 컴퓨터(160)와 각각 UART 케이블에 의해 연결되며 I2C 장치(100)와 베이스밴드부(160)는 I2C 버스를 통해 서로 연결된다.The
I2C 장치(100)와 베이스밴드부(140)는 내부에 UART 포트를 포함하고 있어 UART 케이블에 의해 연결되며 I2C 장치(100)와 베이스밴드부(140)는 I2C 슬레이브(110)와 I2C 마스터(145)로 서로 연결된다.The
이러한 방법에 의해 수행되는 디버깅의 내용은 I2C 장치(100)가 수행중인 명령, 수행에 대한 응답 등의 정보가 포함된다.The contents of debugging performed by this method include information such as a command being performed by the
이러한 구성을 가지는 종래의 I2C 장치(100)의 디버깅을 위한 시스템을 각각의 구성 요소별로 기능을 중심으로 살펴본다.The system for debugging the
먼저 종래의 I2C 장치(100)는 I2C 슬레이브 레지스터 맵(105), I2C 슬레이브(110), 프로세서(115), 메모리(120), UART 컨트롤러(125a), UART 포트(130a)를 포함한다.First, the
I2C 슬레이브 레지스터 맵(105)은 I2C 마스터(145)와 I2C 슬레이브(110)와의 통신을 위한 버퍼(buffer)로 I2C 마스터(145)로부터 전달받거나 전달하고자 하는 내용을 저장할 수 있는 공간이다.The I2C
I2C 마스터(145)가 I2C 슬레이브(110)에 명령을 전달할 때에는 전달하고자 하는 데이터와 그 데이터를 저장할 주소 정보를 함께 전송한다. 전송된 주소 정보와 데이터는 I2C 슬레이브 레지스터 맵(105)에 저장이 된다.When the
I2C 마스터(145)에서 I2C 슬레이브(110)로부터 데이터를 읽어 들일 때에도 I2C 슬레이브(110)에 대한 주소 정보를 넘겨주어서 주소 정보로부터 데이터를 읽을 수 있다.Even when the
I2C 슬레이브(110)는 베이스밴드부(140)와의 통신을 위한 통로로 I2C 버스를 사용한다.The
따라서 베이스밴드부(140)에 I2C 마스터(145)가 존재하고 I2C 장치(100)에는 I2C 슬레이브(110)가 존재하여 베이스밴드부(140)와 I2C 장치(100)가 서로 연결된다.Accordingly, the
프로세서(115)는 I2C 장치(100)의 운영을 위해 기본적인 명령어들을 처리하고 반응하기 위한 논리 회로이다.The
메모리(120)는 명령어가 수행되는 영역과, 명령어가 수행되면서 사용되는 영역으로 크게 두가지로 나눌 수 있다. 명령어가 수행되는 영역에 대한 메모리는 주로 플래쉬(flash) 형태가 사용되며 SRAM(Synchronous Dynamic Random Access Memory) 형태의 메모리가 사용되기도 한다. 명령어가 수행되면서 사용하는 메모리 영역은 주로 SRAM 형태의 메모리를 사용한다.The
UART 컨트롤러(125a)는 특정 디지털 기기의 개발시 디버깅을 위해 사용되며 현재 수행중인 I2C 장치(100)의 환경 정보의 확인 및 어떤 기능들이 수행되고 있는지에 대한 정보를 획득한다. The UART
주로 Shell(DOS의 명령 프롬프트)과 같은 형태로 구현되며 호스트 컴퓨터(160)에 구비되는 터미널 프로그램을 통하여 명령의 입력이 가능하며 수행된 명령에 대한 결과를 확인할 수 있다.It is mainly implemented in the form of a shell (DOS command prompt), and it is possible to input a command through a terminal program provided in the
UART 포트(130b)는 UART 컨트롤러(125a)와 연결되어 UART 컨트롤러(125a)에서 획득된 정보가 출력되도록 외부 장치 특히 호스트 컴퓨터(160)와 연결되는 부분이다.The UART
I2C 장치(100)와 연결되는 베이스밴드부(140)의 구성을 살펴보면, 베이스밴드부(140)는 I2C 마스터(145), 베이스밴드 프로세서(150), 메모리(155), UART 컨트롤러(125b), UART 포트(130b)를 포함한다.Looking at the configuration of the
I2C 마스터(145)는 다른 장치나 구성요소가 I2C 장치(100)와의 통신을 하기 위한 것으로 읽기/쓰기 명령 모두 I2C 마스터(145)에 의해 이루어진다.The
베이스밴드 프로세서(150)는 베이스밴드부(140)의 운영을 위해 기본적인 명령어들을 처리하고 반응하기 위한 논리 회로이다.The
메모리(155)는 베이스밴드(140)에서 수행되는 명령어가 수행되는 영역과 명령어가 수행되면서 사용되는 영역으로 크게 두 가지로 나눌 수 있으며 이러한 명령어들이 저장되는 영역이다.The
UART 컨트롤러(125b)와 UART 포트(130b)는 I2C 장치(100)에서와 같이 디지털 기기 등의 개발시 디버깅을 위해 사용되며 현재 수행중인 시스템의 환경 정보의 확인 및 어떤 기능들이 수행되고 있는지에 대한 정보를 획득하기 위해 사용되며 UART 포트(130b)는 UART 컨트롤러(125b)와 연결되며 UART 컨트롤러(125b)에서 획득된 정보가 출력되도록 외부 장치와 연결되는 부분이다.The UART
호스트 컴퓨터(160)는 펌웨어의 개발, 다운로드, 디버깅을 수행하기 위한 컴퓨터이다.The
이러한 종래의 디지털 기기의 개발을 위한 디버깅을 수행하기 위해서는 베이스밴드부(140)의 UART 포트(130b)를 통해 호스트 컴퓨터(160)와 연결하여 베이스밴드부(140)의 디버깅을 수행한다.In order to perform debugging for the development of the conventional digital device, the
또한 I2C 장치(100)의 경우에도 I2C 장치(100)의 UART 포트(125a)를 통해 호스트 컴퓨터(160)와 연결하여 I2C 장치(100)의 디버깅을 수행하여야 한다.In addition, in the case of the
따라서, I2C 장치 내에 디버깅 수행을 위해서는 UART 컨트롤러와 UART 포트를 포함하는 UART를 포함하여야만 하는 Therefore, debugging in an I2C device must include a UART that includes a UART controller and a UART port.
문제점이 있다. 따라서 I2C 장치 내에 UART를 포함하지 않은 경우에는 I2C 장치만의 디버깅을 수행할 수 없는 문제점이 있다.There is a problem. Therefore, when the UART is not included in the I2C device, only the I2C device can not be debugged.
또한 최근 생산되는 컴퓨터들이 대부분이 UART 포트를 하나만을 구비하고 있어 이러한 경우 디버깅을 수행하는 호스트 컴퓨터가 I2C 장치와 베이스밴드부를 동시에 디버깅할 수 없고 각각 별도로 수행하여야 하는 문제점이 있다.In addition, most of the computers produced recently have only one UART port. In this case, the host computer that performs debugging cannot debug the I2C device and the baseband at the same time.
또한 I2C 장치에 대한 디버깅은 UART 컨트롤러가 초기화된 후부터 디버깅의 수행이 가능하게 되므로 UART 컨트롤러가 안정적으로 동작하기 전까지의 과정에 대해서는 디버깅할 수 없는 문제점이 있다.In addition, since debugging of I2C device can be performed after the UART controller is initialized, there is a problem that cannot be debugged until the UART controller operates stably.
상기한 바와 같은 종래의 문제점을 해결하기 위해, 본 발명은 I2C 버스를 포 함하는 장치인 I2C 장치에 UART를 포함하지 않는 경우에도 I2C 장치의 오류를 수정하는 디버깅이 가능한 방법을 제안하는 것이다.In order to solve the conventional problems as described above, the present invention proposes a debugging method that can correct the error of the I2C device even if the U2 is not included in the I2C device that is a device including the I2C bus.
또한, 디버깅을 수행하는 호스트 컴퓨터가 UART 포트를 하나만 포함하는 경우에도 I2C 장치와 베이스밴드부를 함께 디버깅할 수 있는 방법을 제안하는 것이다.In addition, even if the host computer performing debugging includes only one UART port, the present invention proposes a method for debugging the I2C device and the baseband unit together.
그리고 I2C 장치 내에 UART를 포함하지 않아도 되게 함으로써 I2C 장치가 동작되는 전체 과정에 대한 디버깅을 수행할 수 있는 방법을 제안하는 것이다.In addition, the present invention proposes a method for debugging the entire process of operating the I2C device by eliminating the need for including the UART in the I2C device.
본 발명의 또 다른 목적들은 이하의 실시예에 대한 설명을 통해 쉽게 이해될 수 있을 것이다.Still other objects of the present invention will be readily understood through the following description of the embodiments.
상기한 바와 같은 목적을 달성하기 위해, 본 발명의 일 측면에 따르면 슬레이브를 디버깅하는 방법이 제공된다. In order to achieve the above object, according to an aspect of the present invention there is provided a method for debugging a slave.
본 발명의 바람직한 일 실시예에 따르면, 마스터와 제어 버스를 이용하여 통신하는 슬레이브를 디버깅하는 방법에 있어서, 상기 마스터와 범용 비동기화 송수신기(UART)에 의해 연결된 호스트 컴퓨터로부터 전송된 제어 신호를 상기 마스터를 통해 입력받는 단계(a); 상기 전송받은 제어 신호를 수행하는 단계(b); 및 상기 수행 결과를 마스터를 통해 호스트 컴퓨터로 전송하는 단계(c)를 포함하되 상기 호스트 컴퓨터는 상기 수행 결과를 이용하여 슬레이브를 버그를 수정하는 디버깅을 수행하는 것을 특징으로 하는 슬레이브의 디버깅 방법이 제공된다.According to a preferred embodiment of the present invention, in a method of debugging a slave communicating with a master and a control bus, the master transmits a control signal transmitted from a host computer connected by the master and a universal asynchronous transceiver (UART). Receiving an input through (a); Performing the received control signal (b); And (c) transmitting the execution result to the host computer through the master, wherein the host computer performs debugging to fix the bug by using the execution result. do.
본 발명의 다른 측면에 의하면, 슬레이브를 디버깅하는 방법을 구현하기 위한 프로그램을 기록한 기록매체가 제공된다.According to another aspect of the present invention, there is provided a recording medium recording a program for implementing a method for debugging a slave.
본 발명의 바람직한 일 실시예에 따르면, 마스터와 제어 버스를 이용하여 통신하는 슬레이브를 디버깅하는 방법을 수행하기 위해 슬레이브에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 상기 슬레이브에 의해 판독될 수 있는 프로그램을 기록한 기록매체에 있어서, 상기 마스터와 범용 비동기화 송수신기(UART)에 의해 연결된 호스트 컴퓨터로부터 전송된 제어 신호를 상기 마스터를 통해 입력받는 단계(a); 상기 전송받은 제어 신호를 수행하는 단계(b); 및 상기 수행 결과를 마스터를 통해 호스트 컴퓨터로 전송하는 단계(c)를 포함하되 상기 호스트 컴퓨터는 상기 수행 결과를 이용하여 슬레이브를 버그를 수정하는 디버깅을 수행하는 것을 특징으로 하는 프로그램을 기록한 기록매체가 제공된다.According to a preferred embodiment of the present invention, a program of instructions that can be executed by a slave to perform a method of debugging a slave communicating with a master and a control bus is tangibly implemented and read by the slave. A recording medium recording a program, comprising: receiving a control signal transmitted from a host computer connected by the master and a universal asynchronous transceiver (UART) through the master (a); Performing the received control signal (b); And (c) transmitting the execution result to the host computer through the master, wherein the host computer uses the execution result to debug the slave to fix the bug. Is provided.
본 발명의 다른 측면에 의하면, 슬레이브의 디버깅 시스템이 제공된다.According to another aspect of the present invention, a debugging system of a slave is provided.
본 발명의 바람직한 일 실시예에 따르면, 슬레이브의 디버깅 시스템에 있어서, 제어 신호들을 생성하고 슬레이브의 버그를 수정하는 디버깅을 수행하는 호스트 컴퓨터; 상기 호스트 컴퓨터와 범용 비동기화 송수신기로 연결되고 상기 슬레이브와 제어 버스를 통해 연결되는 마스터; 및 상기 호스트 컴퓨터로부터 전송된 제어 신호를 상기 마스터를 통해 입력받아 상기 전송받은 제어 신호를 수행하고, 상기 수행 결과를 상기 마스터를 통해 상기 호스트 컴퓨터로 전송하는 슬레이브를 포함하되, 상기 호스트 컴퓨터는 상기 수행 결과를 이용하여 상기 슬레이브의 버그를 수정하는 디버깅을 수행하는 것을 특징으로 하는 슬레이브의 디버깅 시스템이 제공 된다.According to one preferred embodiment of the present invention, there is provided a debugging system of a slave, comprising: a host computer for generating control signals and performing debugging to fix a bug of the slave; A master coupled with the host computer to a general purpose asynchronous transceiver and coupled with the slave through a control bus; And a slave receiving the control signal transmitted from the host computer through the master, performing the received control signal, and transmitting the result of the execution to the host computer through the master, wherein the host computer performs the performing. A debugging system of a slave is provided, wherein the debugging is performed to correct a bug of the slave by using the result.
본 발명의 다른 측면에 의하면, 범용 비동기화 송수신기를 포함하지 않고 디버깅이 가능한 슬레이브가 제공된다.According to another aspect of the invention, there is provided a slave capable of debugging without including a general purpose asynchronous transceiver.
본 발명의 바람직한 일 실시예에 따르면, 범용 비동기화 송수신기를 포함하지 않고 디버깅이 가능한 슬레이브에 있어서, 호스트 컴퓨터로부터 제어 신호를 수신하는 마스터의 마스터 송수신부와 연결되어 상기 마스터 송수신부로부터 상기 제어 신호를 수신하는 슬레이브 송수신부; 상기 슬레이브 송수신부에 의해 수신된 제어 신호에 상응하는 처리를 수행하는 프로세서부; 및 상기 슬레이브 송수신부에 의해 수신된 제어 신호가 저장되고, 상기 컨트롤러부에 의해 처리된 결과가 저장되는 레지스터 맵을 포함하는 것을 특징으로 하는 슬레이브가 제공된다.According to a preferred embodiment of the present invention, in a slave capable of debugging without including a general-purpose asynchronous transceiver, it is connected to a master transceiver of a master that receives a control signal from a host computer to receive the control signal from the master transceiver. A slave transceiver receiving unit; A processor unit which performs a process corresponding to the control signal received by the slave transceiver unit; And a register map in which a control signal received by the slave transceiver unit is stored and a result processed by the controller unit is stored.
이하, 본 발명의 바람직한 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면 번호에 상관없이 동일한 수단에 대해서는 동일한 참조 번호를 사용하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, the same reference numerals will be used for the same means regardless of the reference numerals in order to facilitate the overall understanding.
도 2는 본 발명의 바람직한 일 실시예에 따라 I2C 버스를 포함하는 장치와 연결되는 디버깅 시스템의 구성을 나타낸 도면이다. 도 1의 종래의 I2C 장치의 디버깅을 위한 시스템과의 차이를 중심으로 본 발명에 의한 I2C 장치의 디버깅을 위한 시스템을 설명한다.2 is a diagram illustrating a configuration of a debugging system connected to a device including an I2C bus according to an exemplary embodiment of the present invention. A system for debugging an I2C device according to the present invention will be described based on the difference from the system for debugging the conventional I2C device of FIG. 1.
도2에 도시된 바와 같이, 본 발명의 바람직한 일 실시예에 따른 I2C 버스를 포함하는 장치와 연결되는 디버깅 시스템은 I2C 장치(200), 베이스밴드(Baseband) 부(230) 및 호스트 컴퓨터(260)를 포함할 수 있다.As shown in FIG. 2, a debugging system connected to a device including an I2C bus according to an exemplary embodiment of the present invention includes an
베이스밴드부(230)는 호스트 컴퓨터(260)와 연결되며 종래와 달리 I2C 장치(200)는 베이스밴드부(230)에만 연결된다.The
베이스밴드부(230)는 호스트 컴퓨터(260)와 내부에 구비된 UART 포트(255)를 통해 연결되며, I2C 장치(200)와 베이스밴드부(230)는 I2C 슬레이브(210)와 I2C 마스터(235)로 서로 연결된다.The
이러한 구성을 가지는 본 발명의 바람직한 일 실시예에 따른 I2C 장치의 디버깅을 위한 시스템을 각각의 구성요소별로 기능을 중심으로 살펴본다.A system for debugging an I2C device according to an exemplary embodiment of the present invention having such a configuration will be described based on the function of each component.
먼저 I2C 장치(200)는 I2C 슬레이브 레지스터 맵(I2C slave register map)(205), I2C 슬레이브(I2C slave) (210), 프로세서(processor)(215), 메모리(memory)(220)를 포함할 수 있으며, 종래와 달리 UART 컨트롤러와 UART 포트는 포함하지 않는다.First, the
I2C 슬레이브 레지스터 맵(205)은 I2C 마스터(235)와 I2C 슬레이브(210)와의 통신을 위한 버퍼(buffer)로 I2C 마스터(235)로부터 전달받거나 전달하고자 하는 내용을 저장할 수 있는 공간이다.The I2C
I2C 마스터(235)가 I2C 슬레이브(210)에 명령을 전달할 때에는 전달하고자 하는 데이터와 그 데이터를 저장할 주소 정보를 함께 전송하고 주소 정보와 데이터는 I2C 슬레이브 레지스터 맵(205)에 저장이 된다.When the
I2C 마스터(235)에서 I2C 슬레이브(210)로부터 데이터를 읽어 들일 때에도 I2C 슬레이브(210)에 대한 주소 정보를 전송하여 주소 정보로부터 데이터를 읽을 수 있다.Even when the
또한 본 발명에서는 종래와 달리 I2C 슬레이브 레지스터 맵(205)에 디버깅 에리어(debugging area)가 더 포함된다. In addition, in the present invention, unlike the prior art, a debugging area is further included in the I2C
I2C 슬레이브 레지스터 맵(205)에 포함되는 디버깅 에리어는 호스트 컴퓨터(260)와 직접 연결되지 않고서도 베이스밴드부(230)를 통해 제어 신호를 전달받아 동작을 수행하고 수행한 결과를 저장하여 베이스밴드부(230)로 전송한다. 베이스밴드부(230)로 전송된 제어 신호 수행 결과는 호스트 컴퓨터(260)로 전달되어 호스트 컴퓨터(260)에서 I2C 장치(200)의 오류 여부를 점검하는 디버깅이 수행된다. 이러한 구성과 기능이 추가된 I2C 슬레이브 레지스터 맵(205)의 자세한 구성과 기능은 도 3에서 보다 상세하게 살펴본다.The debugging area included in the I2C
I2C 슬레이브(210)는 베이스밴드부(230)와의 통신을 위한 통로로 I2C 버스를 사용하고 있으며 베이스밴드부(230)에 I2C 마스터(235)가 존재하고 I2C 장치(200)에는 I2C 슬레이브(210)가 존재하여 베이스밴드부(230)와 I2C 장치(200)가 서로 연결된다.The
프로세서(215)는 I2C 장치(200)의 운영을 위해 기본적인 명령어들을 처리하고 반응하기 위한 논리 회로이다.The
메모리(220)는 명령어가 수행되는 영역과, 명령어가 수행되면서 사용되는 영역으로 크게 두가지로 나눌 수 있다.The
명령어가 수행되는 영역에 대한 메모리는 주로 플래쉬(flash) 형태가 사용되며 SRAM(Synchronous Dynamic Random Access Memory) 형태의 메모리가 사용되기도 한다. 명령어가 수행되면서 사용하는 메모리 영역은 주로 SRAM 형태의 메모리를 사용한다.The memory of the area where the instruction is executed is mainly used in the form of flash, and the memory in the form of synchronous dynamic random access memory (SRAM) is also used. The memory area used when the command is executed mainly uses SRAM type memory.
I2C 장치(200)와 연결되는 베이스밴드부(230)의 구성을 살펴보면, 베이스밴드부(230)는 I2C 마스터(I2C master)(235), 베이스밴드 프로세서(baseband processor)(240), 메모리(memory)(245), UART 컨트롤러(UART controller)(250), UART 포트(UART port)(255)를 포함할 수 있다.Looking at the configuration of the
I2C 마스터(235)는 I2C 장치(200)와의 통신을 위한 것으로 읽기/쓰기 명령은 I2C 마스터(235)에 의해 이루어진다.The
베이스밴드 프로세서(240)는 베이스밴드부(230)의 운영을 위해 기본적인 명령어들을 처리하고 반응하기 위한 논리 회로이다.The
메모리(245)는 베이스밴드부(230)에서 수행되는 명령어가 수행되는 영역과 명령어가 수행되면서 사용되는 영역으로 크게 두 가지로 나눌 수 있으며 이러한 명령어들이 저장되는 영역이다.The
UART 컨트롤러(250)와 UART 포트(255)는 특정 디지털 기기 등의 개발시 특정 디지털 기기에 포함되는 I2C 장치(200)의 디버깅을 위해 사용되며 현재 수행중인 시스템의 환경 정보의 확인 및 어떤 기능들이 수행되고 있는지에 대한 정보를 획득 하기 위해 사용되며 UART 포트(255)는 UART 컨트롤러(250)와 연결되며 UART 컨트롤러(250)에서 획득된 정보가 출력되도록 외부 장치와 연결되는 부분이다.The
호스트 컴퓨터(260)는 펌웨어의 개발, 다운로드, 디버깅을 수행하기 위한 컴퓨터이다.The
이러한 구성을 가지는 본 발명의 바람직한 일 실시예에 따라 I2C 버스를 포함하는 장치와 연결되는 디버깅 시스템에서 I2C 장치가 UART를 포함하지 않고도 디버깅이 가능하게 하는 I2C 슬레이브 레지스터 맵의 구성을 도3을 참조하여 살펴본다.Referring to FIG. 3, a configuration of an I2C slave register map that enables debugging without an I2C device including a UART in a debugging system connected to a device including an I2C bus according to an embodiment of the present invention having such a configuration is shown in FIG. 3. Take a look.
도 3은 본 발명의 바람직한 일 실시예에 따라 I2C 버스를 포함하는 장치의 I2C 슬레이브 레지스터 맵(205)의 구성을 나타낸 도면이다.3 is a diagram illustrating the configuration of an I2C
도 3에 도시된 바와 같이, 본 발명의 바람직한 일 실시예에 따른 I2C 버스를 포함하는 장치의 I2C 슬레이브 레지스터 맵(205)은 수신된 명령어들이 저장되고 명령어들이 수행된 결과가 저장되는 디버깅 에리어(debugging area)(300)를 더 포함할 수 있다.As shown in FIG. 3, the I2C
디버깅 에리어(300)는 수신된 명령어들이 저장되는 수신 디버깅 에리어(Rx debugging area)(310)와 명령어들이 수행된 결과가 저장되는 송신 디버깅 에리어(Tx debugging area)(320)로 구분될 수 있다.The
수신 디버깅 에리어(310)는 호스트 컴퓨터(260)를 통해 입력된 명령어가 베이스밴드(230)를 거쳐 I2C 버스를 통해 I2C 장치(200)에 전달되는 경우 명령어들이 저장되는 영역이다.The
송신 디버깅 에리어(320)는 수신된 명령어들에 의해 I2C 장치(200)가 명령어를 수행한 결과들이 저장되는 영역이다.The
I2C 슬레이브 레지스터 맵(205)의 디버깅 에리어(300)는 I2C 장치(200)를 직접 호스트 컴퓨터(260)와 연결하지 않고도 명령어의 수신과 명령어를 수행한 결과의 송신이 가능하게 한다. 따라서 I2C 슬레이브 레지스터 맵(205)에 디버깅 에리어(300)를 포함함으로써 I2C 장치(200)를 호스트 컴퓨터(260)와 직접 연결하지 않고도 I2C 장치(200)의 디버깅이 가능해진다.The
I2C 장치(200)와 베이스밴드부(230)는 I2C 버스를 통해 연결되므로 베이스밴드부(230)를 통해 명령어들을 전달받고 수행된 결과들을 베이스밴드부(230)를 통해 호스트 컴퓨터(260)에 전달할 수 있게 된다.Since the
이 과정에서 전달되는 명령어들과 명령어의 수행 결과가 I2C 슬레이브 레지스터 맵(205)에 포함되는 디버깅 에리어(300)에 저장되는 것이다.Instructions transmitted in this process and a result of the execution of the instructions are stored in the
이러한 구성에 의한 디버깅 시스템과 I2C 장치(200)의 I2C 슬레이브 레지스터 맵(205)의 구성을 참조하여 호스트 컴퓨터(260)의 터미널 프로그램에서 디버깅 수행을 위한 명령어를 입력하여 I2C 장치(200)에서 동작하게 하는 순서를 살펴본다.By referring to the debugging system and the configuration of the I2C
먼저 호스트 컴퓨터(260)에서 명령어를 입력하면 호스트 컴퓨터(260)의 UART 포트(미도시)와 UART 케이블(미도시)을 통해 베이스밴드부(230)와 연결되는 베이스밴드부(230)의 UART 포트(255)로 명령어들을 전송한다.First, when a command is input from the
베이스밴드부(230)의 UART 포트(255)를 통해 인입된 명령어들은 UART 포트(255)를 거쳐 UART 컨트롤러(250)에 전송된다.Commands received through the
명령어에는 다른 프로그램에 약속된 신호를 남기기 위한 용도로 사용되는 미리 정의된 비트인 플래그(flag)가 포함된다.Instructions include flags, which are predefined bits that are used to leave signals promised to other programs.
전송된 명령어는 먼저 베이스밴드부(230)의 UART 컨트롤러(250)와 연결된 shell 프로그램을 동작하게 한다. shell 프로그램이 동작하면서 플래그에 따라 shell 프로그램은 I2C 마스터(235)를 통하여 I2C 슬레이브 레지스터 맵(205)에 포함되는 디버깅 에리어(300)의 수신 디버깅 에리어(310)로 명령어를 전송한다.The transmitted command first operates a shell program connected to the
수신 디버깅 에리어(310)에 명령어를 수신한 I2C 장치(200)는 I2C 슬레이브 인터럽트(I2C Slave Interrupt) 처리 루틴(routine)을 동작하게 한다.The
I2C 슬레이브 인터럽트 처리 루틴은 I2C 장치(200)의 shell 프로그램을 동작하게 하고 I2C 장치(200)의 shell 프로그램은 베이스밴드부(230)로부터 전송받은 명령어를 수행함으로써 I2C 장치(200)가 동작한다.The I2C slave interrupt processing routine operates the shell program of the
이러한 과정을 수행하여 동작된 I2C 장치(200)의 명령어 수행에 의한 출력 정보가 호스트 컴퓨터(260)로 전송되는 순서를 살펴본다.The order in which the output information by the command execution of the
먼저 베이스밴드부(230)는 I2C 마스터(235)를 이용하여 I2C 슬레이브 레지스터 맵(205)에 포함되는 송신 디버깅 에리어(320)에 폴링(polling) 방식으로 출력할 내용이 있는지를 디버깅한다.First, the
폴링 방식이란 이나 장치에서 다른 프로그램이나 장치들이 어떤 상태에 있는 지를 지속적으로 디버깅하는 전송 제어 방식을 말한다.Polling is a transmission control method that continuously debugs what other programs or devices are in the device.
출력할 내용이 존재하면 출력할 내용의 정보를 UART 드라이버(미도시)에 전송하여 UART 드라이버는 출력 정보를 UART 컨트롤러(250)를 통하여 출력한다. 출력된 정보는 URAT 포트(255)를 통해 호스트 컴퓨터(260)로 전달되어 호스트 컴퓨터(260)의 터미널 프로그램 상에 출력된다. If there is content to be output, information of the content to be transmitted is transmitted to a UART driver (not shown), and the UART driver outputs the output information through the
이러한 명령어의 전달과 명령어의 수행 결과의 출력 과정을 통해 호스트 컴퓨터에서 I2C 장치의 오류 여부와 오류가 있는 경우 이를 수정하는 명령어를 입력하여 I2C 장치의 오류를 수정하는 디버깅 작업이 수행된다.Through the delivery of these commands and the output of the execution results of the commands, debugging is performed to correct the errors of the I2C device by inputting a command to correct the I2C device and if there is an error in the host computer.
상기한 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대해 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.Preferred embodiments of the present invention described above are disclosed for purposes of illustration, and those skilled in the art will be able to make various modifications, changes, and additions within the spirit and scope of the present invention. Additions should be considered to be within the scope of the following claims.
이상에서 설명한 바와 같이, 본 발명에 의한 I2C 버스를 포함하는 장치를 디버깅하는 하는 방법 및 이를 구현하는 프로그램을 기록한 기록매체에 의하면, I2C 버스를 포함하는 장치에 UART 컨트롤러와 UART 포트를 포함하지 않는 경우에도 I2C 버스를 포함하는 장치의 오류를 수정하는 디버깅이 가능한 장점이 있다.As described above, according to the method of debugging a device including an I2C bus according to the present invention and a recording medium recording a program for implementing the same, the device including the I2C bus does not include a UART controller and a UART port. This also has the advantage of being able to debug to correct errors on devices containing the I2C bus.
또한, 디버깅을 수행하는 호스트 컴퓨터가 UART를 하나만 포함하는 경우에도 I2C 장치와 베이스밴드부를 함께 디버깅할 수 있는 장점이 있다.In addition, even if the host computer for debugging includes only one UART, the I2C device and the baseband unit can be debugged together.
그리고 I2C 장치내에 UART 컨트롤러와 UART 포트를 포함하지 않아도 되므로 I2C 장치가 동작되는 전체 과정에 대한 디버깅을 수행할 수 있는 장점이 있다.And since the UART controller and the UART port do not need to be included in the I2C device, it is possible to debug the entire process of operating the I2C device.
또한 I2C 장치를 칩으로 구현하는 경우 디버깅 수행을 위한 별도의 Rx/Tx 핀을 제거할 수 있으므로 핀의 수가 줄어들거나 두개의 핀을 다른 용도로 활용할 수 있는 장점이 있다.In addition, when implementing the I2C device as a chip, separate Rx / Tx pins can be removed to perform debugging, thereby reducing the number of pins or using the two pins for other purposes.
Claims (18)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050133492A KR100801759B1 (en) | 2005-12-29 | 2005-12-29 | Device and system for debugging device using control bus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050133492A KR100801759B1 (en) | 2005-12-29 | 2005-12-29 | Device and system for debugging device using control bus |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070070680A true KR20070070680A (en) | 2007-07-04 |
KR100801759B1 KR100801759B1 (en) | 2008-02-11 |
Family
ID=38505946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050133492A KR100801759B1 (en) | 2005-12-29 | 2005-12-29 | Device and system for debugging device using control bus |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100801759B1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101026678B1 (en) * | 2009-06-26 | 2011-04-04 | 한국산업기술대학교산학협력단 | Apparatus for interfacing emulator and method thereof |
US20130151902A1 (en) * | 2011-12-12 | 2013-06-13 | Hon Hai Precision Industry Co., Ltd. | Debug system and method |
CN103440216A (en) * | 2013-08-22 | 2013-12-11 | 深圳市汇顶科技股份有限公司 | Chip and method for debugging MCU through I2C slave unit |
WO2022025318A1 (en) * | 2020-07-30 | 2022-02-03 | 김영일 | Mmi interface device and computing system based thereon |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102266733B1 (en) | 2015-06-05 | 2021-06-22 | 삼성전자주식회사 | Data storage and operating method thereof |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010019740A (en) * | 1999-08-30 | 2001-03-15 | 윤종용 | Signal converting circuit for debugging of microprocessor |
KR20030094750A (en) * | 2002-06-07 | 2003-12-18 | 엘지전자 주식회사 | Apparatus for board test of master and slave in communication system |
-
2005
- 2005-12-29 KR KR1020050133492A patent/KR100801759B1/en active IP Right Grant
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101026678B1 (en) * | 2009-06-26 | 2011-04-04 | 한국산업기술대학교산학협력단 | Apparatus for interfacing emulator and method thereof |
US8352239B2 (en) | 2009-06-26 | 2013-01-08 | Korea Polytechnic University Industry Academic Cooperation Foundation | Emulator interface device and method thereof |
US20130151902A1 (en) * | 2011-12-12 | 2013-06-13 | Hon Hai Precision Industry Co., Ltd. | Debug system and method |
CN103440216A (en) * | 2013-08-22 | 2013-12-11 | 深圳市汇顶科技股份有限公司 | Chip and method for debugging MCU through I2C slave unit |
WO2022025318A1 (en) * | 2020-07-30 | 2022-02-03 | 김영일 | Mmi interface device and computing system based thereon |
Also Published As
Publication number | Publication date |
---|---|
KR100801759B1 (en) | 2008-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7114101B2 (en) | Microcomputer, electronic equipment and debugging system | |
US5649128A (en) | Multiple bus interface adapter for connection to a plurality of computer bus architectures | |
US8010843B2 (en) | System and method for debugging a target computer using SMBus | |
CN107066746B (en) | Method for realizing PCA9555 function through CPLD based on I2C interface | |
CN108268414B (en) | SD card driver based on SPI mode and control method thereof | |
JP2006500679A (en) | Interface integrated circuit device for USB connection | |
US20070094536A1 (en) | Multiplexing a communication port | |
US20060248391A1 (en) | State machine-based command line debugger | |
KR100801759B1 (en) | Device and system for debugging device using control bus | |
US6708289B1 (en) | Microcomputer, electronic equipment and debugging system | |
US6366877B1 (en) | Method and device for emulation of peripheral input/output (I/O) controller of a computer system | |
US20080021695A1 (en) | ROM emulator and ROM testing method using the same | |
US6263305B1 (en) | Software development supporting system and ROM emulation apparatus | |
KR101029074B1 (en) | Apparatus and method for tracing descriptors in host controllers | |
US6553506B1 (en) | Information processing device and electronic equipment | |
US6633973B1 (en) | Trace control circuit adapted for high-speed microcomputer operation | |
US8291270B2 (en) | Request processing device, request processing system, and access testing method | |
CN110737480B (en) | Serial port driver multiplexing method and device | |
JPH08221293A (en) | Emulator device | |
CN112052132B (en) | Method, device, equipment and medium for debugging plug-in chip through SDIO interface | |
US20230305816A1 (en) | Device and method for handling programming language function | |
CN218886572U (en) | Simple peripheral bus system | |
KR100927130B1 (en) | The apparatus of communication converting between embedded system and pc and method thereof | |
US6662249B2 (en) | System and method for conversion of addresses of varying bit lengths between a bus and a device controller | |
Suresh et al. | Efficient Clock-less PCIe endpoint |
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 | ||
G170 | Publication of correction | ||
FPAY | Annual fee payment |
Payment date: 20130111 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20131227 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20171221 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20181226 Year of fee payment: 12 |