KR20150039142A - 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스 및 그 구동 방법 - Google Patents

시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스 및 그 구동 방법 Download PDF

Info

Publication number
KR20150039142A
KR20150039142A KR20150023000A KR20150023000A KR20150039142A KR 20150039142 A KR20150039142 A KR 20150039142A KR 20150023000 A KR20150023000 A KR 20150023000A KR 20150023000 A KR20150023000 A KR 20150023000A KR 20150039142 A KR20150039142 A KR 20150039142A
Authority
KR
South Korea
Prior art keywords
spi
data
command
cpu
data queue
Prior art date
Application number
KR20150023000A
Other languages
English (en)
Other versions
KR101630599B1 (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 KR1020150023000A priority Critical patent/KR101630599B1/ko
Publication of KR20150039142A publication Critical patent/KR20150039142A/ko
Application granted granted Critical
Publication of KR101630599B1 publication Critical patent/KR101630599B1/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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Landscapes

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

Abstract

본 발명은 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스(SPI: serial peripheral interface) 및 그 구동 방법에 관한 것으로서, CPU와 SPI master 사이에 SPI master를 제어해 주는 제어 로직을 구성함으로써 CPU는 일련의 SPI 통신 관련 정보를 제어 로직에 일괄적으로 전달하고, SPI 통신의 완료를 확인할 필요없이 다음 작업을 진행할 수 있도록 하여 SPI 통신 성능을 향상시키고 CPU의 부하를 경감시킬 수 있도록 하는 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스 및 그 구동 방법에 관한 것이다.
본 발명은, 시스템 제어를 수행하는 CPU와, 상기 CPU의 버스를 통해 일단이 접속되는 제어 로직, 상기 제어 로직의 타단에 접속되는 SPI 마스터와, 상기 SPI 마스터에 연결되는 SPI 슬레이브로 구성되며, 상기 제어 로직의 일단은, CPU에 의해 쓰기 가능한 명령 및 데이터 큐와, CPU에 의해 읽기 가능한 리드 데이터 큐가 접속되고, 소형의 마이크로 콘트롤러나 FPGA로 구성되는 FSM(finite state machine)은 명령 및 데이터 큐에 저장된 명령과 데이터를 처리하고 SPI 슬레이브로부터 읽어들인 데이터를 리드 데이터 큐에 저장하도록 구성된 것을 특징으로 하는 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스 및 그 구동 방법을 제공한다.

Description

시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스 및 그 구동 방법 {Serial peripheral interface with control logic for system performance improvement, and method therefor}
본 발명은 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스(SPI: serial peripheral interface) 및 그 구동 방법에 관한 것으로서, CPU와 SPI master 사이에 SPI master를 제어해 주는 제어 로직을 구성함으로써 CPU는 일련의 SPI 통신 관련 정보를 제어 로직에 일괄적으로 전달하고, SPI 통신의 완료를 확인할 필요없이 다음 작업을 진행할 수 있도록 하여 SPI 통신 성능을 향상시키고 CPU의 부하를 경감시킬 수 있도록 하는 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스 및 그 구동 방법에 관한 것이다.
본 발명의 직렬 주변기기 인터페이스(SPI: serial peripheral interface)에 대한 배경 기술로서 도면 제1도에 도시된 대한민국 공개특허공보 제10-2014-0008260 A호의 SPI 인터페이스 및 SPI 인터페이스를 통한 직렬 통신 방법 기술이 있다. 이 기술은 SPI(Serial Peripheral Interface) 프로토콜을 사용한 주변 장치와의 직렬 통신에 관한 것으로서, 복수의 SPI 신호 및 내부 클럭 신호를 수신하도록 구성되며 상기 수신된 SPI 신호를 상기 내부 클럭 신호를 사용하여 동기시키도록 구성된 복수의 싱크로나이저, 및 상기 동기된 SPI 신호 및 상기 내부 클럭 신호를 수신하도록 구성되며 상기 동기된 SPI 신호 중 적어도 하나의 동기된 SPI 신호의 신호 천이를 SPI 프로토콜에 따라 검출하여 평가하도록 구성된 SPI 프로토콜 핸들러를 포함하는 SPI 인터페이스로 구성된 것을 특징으로 한다.
본 발명에 대한 다른 배경 기술로서 도면 제2도에 도시된 대한민국 공개특허공보 제10-2008-0006150 A호의 직렬 통신 방식을 이용한 데이터 송수신 장치 및 방법 기술이 있다. 이 기술은, 직렬 통신 방식을 이용한 데이터 송수신 장치 및 방법에 관한 것으로, 직렬 통신 장치에서 SPI 데이터 수신시 소프트웨어 처리량과 메모리 버스 사용량을 감소시키고, 직렬 통신 장치에서 SPI로 전송하고자 하는 여러 종류의 데이터 고유 버스트 패킷 크기를 유지하여 재패킷화에 따른 오버헤드를 제거할 수 있도록 하기 위해 변경된 인에이블 신호, 직렬 형태로 SPI 클럭(clock)에 동기되어 전송된 데이터를 전송하는 송신기와, 상기 송신기로부터 수신된 변경된 인에이블 신호에서 버스트 단위의 패킷 전송이 종료되는 시점을 검출하면, DMA(Direct Memory Access) 전송 종료 제어 신호를 출력하는 수신기를 포함함을 특징으로 하는 직렬 통신 방식을 이용한 데이터 송수신 장치를 특징으로 한다.
본 발명에 대한 또 다른 배경 기술로서 도면 제3도에 도시된 대한민국 등록특허 제10-1407996 B1호의 SPI 통신용 마이크로컨트롤러를 이용한 동기 직렬 인터페이스시스템 및 그 방법 기술이 있다. 이 기술은, SPI 통신용 마이크로컨트롤러로 SSI 엔코더 읽기가 가능토록 한 SPI 통신용 마이크로컨트롤러를 이용한 동기 직렬 인터페이스 시스템 및 그 방법에 관한 것으로서, 엔코더 선택신호를 발생하고, 설정된 데이터 크기에 대응하는 SPI 클록을 발생하며, 상기 발생한 SPI(serial peripheral interface) 클록에 동기하여 입력단자(SPI MISO 단자)로 입력되는 값을 데이터화하여 SSI(synchronous serial interface) 엔코더의 데이터 값으로 버퍼에 저장하는 마이크로컨트롤러; 상기 마이크로컨트롤러에서 발생한 SPI클록을 라인 드라이브 방식의 클록으로 변환하여 엔코더부에 출력하고, 상기 엔코더부에서 라인 드라이브 방식으로 출력되는 데이터를 오픈 컬렉터 방식의 데이터로 변환하는 트랜시버부; 상기 마이크로컨트롤러에서 출력되는 엔코더 선택신호에 따라 상기 트랜시버부에서 출력되는 복수의 SSI 데이터 중 하나를 선택하여 상기 마이크로컨트롤러의 상기 입력단자에 입력하는 데이터 선택기를 포함하여 구성된 것을 특징으로 한다.
KR 10-2014-0008260 A KR 10-2008-0006150 A KR 10-1407996 B1 KR 10-2014-0089799 A KR 10-1028618 B1 KR 10-0932912 B1 KR 10-2008-0080799 A
본 발명은, 이를 해결하기 위해 CPU 개입 없이 SPI 통신이 이루어질 수 있도록 CPU와 SPI 마스터 사이에 SPI 마스터를 제어하는 제어 로직을 구성함으로써, CPU가 일련의 SPI 통신 관련 데이터를 제어 로직으로 일괄 전달하고, SPI 통신의 완료 여부를 확인할 필요 없이 다른 작업을 진행할 수 있도록 하여 SPI 통신 성능을 보장하고 아울러 시스템 성능을 향상시키는 제어 로직을 구비한 직렬 주변기기 인터페이스 및 그 구동 방법을 제공하는 것을 해결하고자 하는 과제로 한다.
본 발명은 상기의 기술적 과제를 해결하기 위해,
시스템 제어를 수행하는 CPU와, 상기 CPU의 버스를 통해 일단이 접속되는 제어 로직, 상기 제어 로직의 타단에 접속되는 SPI 마스터와, 상기 SPI 마스터에 연결되는 SPI 슬레이브로 구성되며, 상기 제어 로직의 일단은, CPU에 의해 쓰기 가능한 명령 및 데이터 큐와, CPU에 의해 읽기 가능한 리드 데이터 큐가 접속되고, 소형의 마이크로 콘트롤러나 FPGA로 구성되는 FSM(finite state machine)은 명령 및 데이터 큐에 저장된 명령과 데이터를 처리하고 SPI 슬레이브로부터 읽어들인 데이터를 리드 데이터 큐에 저장하도록 구성된 것을 특징으로 하는 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스 및 그 구동 방법을 과제의 해결 수단으로 제공한다.
본 발명의 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스 및 그 구동 방법에 의하면, CPU가 일련의 SPI 데이터를 제어 로직으로 일괄 전달하고, SPI 통신의 완료 여부를 확인할 필요 없이 다른 작업을 진행할 수 있도록 하여 SPI 통신 성능을 보장하고 아울러 시스템 성능을 향상시키는 기술적 효과를 제공한다.
도면 제1도는 배경 기술로서, SPI 인터페이스 및 SPI 인터페이스를 통한 직렬 통신 방법 기술의 구성
도면 제2도는 다른 배경 기술로서, 직렬 통신 방식을 이용한 데이터 송수신 장치 및 방법 기술의 구성
도면 제3도는 또 다른 배경 기술로서, SPI 통신용 마이크로컨트롤러를 이용한 동기 직렬 인터페이스시스템 및 그 방법 기술의 구성
도면 제4도는 직렬 주변기기 인터페이스(Serial Peripheral Interface) 구성의 일례
도면 제5도는 SPI 구성의 일례
도면 제6도는 본 발명의 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스(SPI) 구성
도면 제7도는 본 발명의 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스의 구동 방법
이하의 내용은 단지 본 발명의 원리를 예시한다. 이에 따라 당업자는 비록 본 명세서에 명확히 설명되거나 도시되지 않았지만 본 발명의 원리를 구현하고 본 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 본 명세서에열거된 모든 조건부 용어 및 실시예들은 원칙적으로, 본 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이와 같이 특별히 열거된 실시예 들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다. 또한, 본 발명의 원리, 관점 및 실시예들 뿐만 아니라 특정 실시예를 열거하는 모든 상세한 설명은 이러한 사항의 구조적 및 기능적 균등물을 포함하도록 의도되는 것으로 이해되어야 한다.
상술한 목적, 특징 및 장점들은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 더욱 분명해 질 것이다. 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명한다.
도면 제4도는 일반적인 직렬 주변기기 인터페이스(Serial Peripheral Interface: 이하 'SPI'라 한다) 구성의 일례를 도시한다. 직렬 주변기기 인터페이스 버스(Serial Peripheral Interface Bus) 또는 SPI는 전이중 통신 모드로 동작하는 모토로라 아키텍처에 이름을 딴 동기화 직렬 데이터 연결 표준이다. SPI 장치들은 마스터 슬레이브 모드로 통신하며 여기서 SPI 마스터는 데이터 프레임을 초기화한다. 여러 SPI 슬레이브들은 각각 슬레이브 셀렉트 신호로써 선택되어 동작될 수 있다. SPI 버스는 4가지 논리 신호를 지정한다.
- SCLK: 직렬 클럭 (마스터로부터의 출력)
- MOSI; SIMO: 마스터 출력, 슬레이브 입력 (마스터로부터의 출력)
- MISO; SOMI: 마스터 입력, 슬레이브 출력 (슬레이브로부터의 출력)
- SS: 슬레이브 셀렉트 (active low, 마스터로부터의 출력).
SPI 통신은 대개 비트 단위로 수행되지만 임의의 길이로 지정을 할 수 있다. 데이터를 연속 전송하는 경우 한 단위의 데이터를 보낼 때마다 신호를 인가하는 경우와 모든 데이터를 다 전송 할때 까지 상태를 유지하는 방식이 가능하며 장치에 따라 달라질 수 있다. SPI 통신은 다음과 같은 4 가지의 Register를 통하여 제어된다.
- SPISR ( SPI Status Register )
: SPI 의 상태 레지스터로 현재 SPI 의 송신 및 수신 상태를 나타낸다.
- SPIDR ( SPI Data Register )
: SPI 의 Data 레지스터로 송수신을 위한 Data Buffer 역할을 한다. 송신과 수신 모두 하나의 Register 를 공유한다.
- SPICR ( SPI Control Register )
: SPI 의 송신 또는 수신과 관련된 제어를 하는 레지스터이다.
- SPIBR ( SPI Baud-rate Register )
: SPI 의 clock 을 제어한다.
SPI의 장점으로서는, 완전한 전이중 통신이 가능하고 전송되는 비트에 대한 완전한 프로토콜이 유연하며, 별도의 전송기가 필요하지 않고 하드웨어 인터페이스로 4개의 핀만 사용하므로 매우 간단하다는 특징이 있다. 이에 대해 SPI의 단점은, 하나의 마스터 장치만을 지원하며 하드웨어 슬레이브를 인식할 수 없고 슬레이브에 의해 하드웨어 흐름 제어가 없다는 제약이 있다.
이하에서는 본 발명의 특징적 사항을 명확히 구분하여 설명하기 위해 도면 상단의 (a)로 도시된 SPI 구성을 도면 (b)와 같이 간략히 도시하여 설명하기로 한다.
도면 제5도는 SPI 구성의 일례를 간략히 도시한 것이다. 통상적인 SPI 구성에 있어서 CPU(100)는 버스(110)를 통해 SPI 마스터(200)와 접속되고 상기 SPI 마스터(200)는 SPI 슬레이브(210)와 연결된다. 이때 상기 SPI 슬레이브(210)는 SPI를 지원하는 메모리 소자를 비롯하여 각종 직렬 데이터 입출력 장치로 구성될 수 있다.
상기 CPU(100)는, SPI 슬레이브(210)에 데이터를 기록하기 위해 기록 데이터(write data)와 제어 데이터(control data)를 SPI 마스터(200)로 직렬 전송하고, 상기 SPI 마스터(200)는 기록 데이터(write data)를 SPI 슬레이브(210)에 기록한다. 이때 상기 기록 데이터(write data)는 도면 제4도에 도시된 바와 같이, CPU(100)로부터 SPI 마스터(200)로 제공되는 직렬 데이터(SPI_DO)이며, 상기 제어 데이터(control data)는 직렬 클럭(SPI_CLK)과 모드 선택 신호(SPI_MODE) 및 SPI 선택 신호(SPI_SEL)가 포함된다.
상기 CPU(100)가, SPI 슬레이브(210)로부터 데이터를 읽기 위해서는 제어 데이터(control data)를 SPI 마스터(200)로 직렬 전송하고, 상기 SPI 마스터(200)는 SPI 슬레이브(210)로부터 읽은 데이터(read data)를 상기 CPU(100)에 제공한다. 이때 상기 읽은 데이터(write data)는 도면 제4도에 도시된 바와 같이, SPI 마스터(200)로부터 CPU(100)로 제공되는 직렬 데이터(SPI_DI)이며, 상기 제어 데이터(control data)는 직렬 클럭(SPI_CLK)과 모드 선택 신호(SPI_MODE) 및 SPI 선택 신호(SPI_SEL)가 포함된다.
이와 같은 SPI 구성은, CPU(100)와 SPI 마스터(200) 및 SPI 슬레이브(210)가 직렬통신 방식으로 구동되므로 데이터 전송과 수신에 시간이 소요된다는 제약이 있다. 특히 복수의 데이터를 전송하거나 수신하는 경우 CPU(100)는 전송 데이터의 비트 수만큼의 클럭 주기 동안 대기하여야 하며, 대용량 데이터의 경우 CPU(100)는 SPI 전송만을 위해 많은 시간을 소요해야 한다. 이를 이해 DMA(dirct memory access) 장치를 적용하는 방안이 고려될 수 있겠으나, 전술한 바와 같이 SPI는 전송 데이터의 길이가 임의로 가변될 수 있고 데이터량도 SPI 슬레이브(210)에 따라 상이하므로 DMA(dirct memory access) 장치의 설정과 제어가 복잡해져 도리어 시스템 효율을 저하시킬 우려가 있다.
본 발명은, 이를 해결하기 위해 CPU 개입 없이 SPI 통신이 이루어질 수 있도록 CPU(100)와 SPI 마스터(200) 사이에 SPI 마스터(200)를 제어하는 제어 로직을 구성함으로써, CPU(100)가 일련의 SPI 통신 관련 데이터를 제어 로직으로 일괄 전달하고, SPI 통신의 완료 여부를 확인할 필요 없이 다른 작업을 진행할 수 있도록 하여 SPI 통신 성능을 보장하고 아울러 시스템 성능을 향상시키는 시스템 성능 향상을 위한 직렬 주변기기 인터페이스 제어 로직 및 그 구동 방법을 제공한다.
도면 제6도는 본 발명의 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스(SPI) 구성을 도시한다. 본 발명의 SPI 는;
시스템 제어를 수행하는 CPU(100);와, 상기 CPU(100)의 버스(110)를 통해 일단이 접속되는 제어 로직(300); 상기 제어 로직(300)의 타단에 접속되는 SPI 마스터(200);와 상기 SPI 마스터(200)에 연결되는 SPI 슬레이브(210)로 구성된다.
상기 제어 로직(300)의 일단은, CPU(100)에 의해 쓰기 가능한 명령 및 데이터 큐(320);와, CPU(100)에 의해 읽기 가능한 리드 데이터 큐(330);가 CPU(100)의 버스(110)에 접속되고, 상기 명령 및 데이터 큐(320)와 리드 데이터 큐(330)는 소형의 마이크로 콘트롤러나 FPGA로 구성되는 FSM(유한상태기계: 이하 'FSM'이라 한다)에 접속되며, 상기 FSM(310)은 명령 및 데이터 큐(320)에 저장된 명령과 데이터를 처리하고 SPI 슬레이브(210)로부터 읽어들인 데이터를 transaction ID와 함께 리드 데이터 큐(330)에 저장한다.
상기 FSM(310)은, SPI 마스터(200)에 연결되어 기록 데이터(write data)와 제어 데이터(control data)를 SPI 마스터(200)로 직렬 전송하고, SPI 마스터(200)가 SPI 슬레이브(210)로부터 읽은 데이터(wread data)를 제공받는다. 상기 제어 데이터는 SPI 마스터(200)로 제공되는 직렬 클럭(SPI_CLK)과 모드 선택 신호(SPI_MODE) 및 SPI 선택 신호(SPI_SEL)가 포함된다.
상기 명령 및 데이터 큐(320)와 리드 데이터 큐(330)는, CPU(100)와 FSM(310)에 의해 공유 접속되고 CPU(100)에 의해 비어있는 지의 여부(empty)를 판단할 수 있도록 하기 위해, 듀얼 포트 구조의 FIFO(first in first out) 메모리나 레지스터로 구성된다. 또한 상기 명령 및 데이터 큐(320)와 리드 데이터 큐(330)는, CPU(100)의 메모리 공간 내에 듀얼 포트 메모리 공간을 구비하여 선두 번지를 포인터(pointer)로 설정함으로써 CPU(100)에 의해 비어있는 지의 여부(empty)를 판단할 수 있도록 구성할 수도 있다.
상기와 같은 본 발명의 직렬 주변기기 인터페이스(SPI) 구성에 대해 SPI 슬레이브(210)로 데이터를 쓰기 위해서는, CPU(100)는 FSM(310)에 대한 전송 명령과 데이터를 명령 및 데이터 큐(320)에 저장하면 FSM(310)은 명령 및 데이터 큐(320)에 저장된 전송 명령과 데이터에 따라 SPI 마스터(200)를 통해 SPI 슬레이브(210)로의 쓰기 동작을 수행한다. SPI 슬레이브(210)로부터 데이터를 읽기 위해서는, CPU(100)가 FSM(310)에 대한 읽기 명령을 명령 및 데이터 큐(320)에 저장하면 FSM(310)이 명령 및 데이터 큐(320)에 저장된 읽기 명령에 따라 SPI 마스터(200)를 통해 SPI 슬레이브(210)로부터의 읽기 동작을 수행하여 리드 데이터 큐(330)에 transaction ID와 함께 저장하고, 상기 CPU(100)는 리드 데이터 큐(330)로부터 transaction ID와 데이터를 읽어들이면 된다.
따라서 본 발명의 직렬 주변기기 인터페이스(SPI) 구성은, CPU(100)가 일련의 SPI 데이터를 제어 로직으로 일괄 전달하고, SPI 통신의 완료 여부를 확인할 필요 없이 다른 작업을 진행할 수 있도록 하여 SPI 통신 성능을 보장하고 아울러 시스템 성능을 향상시키는 특징이 있다.
도면 제7도는 본 발명의 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스 구성에 대한 구동 방법으로서, FSM(310)의 구동 방법의 흐름을 도시한다. 상기 구동 방법을 수순별로 설명하면 다음과 같다.
- S100 : 직렬 주변기기 인터페이스(SPI)의 동작이 개시되는 단계;
- S110 : SPI 마스터(200)가 현재 데이터 전송을 수행중(busy)인지의 여부를 FSM(310)에 의해 판단하는 단계;
- S120 : 상기 단계 S110 의 판단 결과에 따라, SPI 마스터(200)가 현재 데이터 전송을 수행중(busy)인 경우 상기 단계 S110을 반복 수행하고, SPI 마스터(200)가 현재 데이터 전송을 수행하지 않는 경우(idle) 다음 단계 S130을 수행하는 단계;
- S130 : FSM(310)에 의해 명령 및 데이터 큐(320)를 체크하는 단계;
- S140 : 상기 단계 S130의 판단 결과에 따라, 명령 및 데이터 큐(320)가 현재 비어있는 경우 상기 단계 S130을 반복 수행하고, 명령 및 데이터 큐(320)가 비어있지 않은 경우 다음 단계 S150을 수행하는 단계;
- S150 : FSM(310)이 명령 및 데이터 큐(320)로부터 명령어를 fetch하는 단계;
- S160 : FSM(310)이 명령 및 데이터 큐(320)로부터 fetch한 명령어를 decode하는 단계;
- S170 : FSM(310)이 decode한 명령어를 수행(execcution)하는 단계;
이 단계에서 수행되는 명령어가 SPI 슬레이브(210)로 데이터를 전송하는 경우에 FSM(310)은, 명령 및 데이터 큐(320)로부터 전송하고자 하는 데이터를 읽어 SPI 마스터(200)를 통해 전송한다.
- S180 : FSM(310)이 명령어의 수행이 완료 후, 명령 및 데이터 큐(320)를 체크하는 단계;
상기 단계 S180의 판단 결과에 따라, 명령 및 데이터 큐(320)가 현재 비어있지 않은 경우 상기 단계 S150을 반복 수행하고, 명령 및 데이터 큐(320)가 비어있는 경우 S110을 반복 수행하는 단계;
의 수순으로 SPI 동작을 수행한다.
이상과 같이 설명된 본 발명의 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스 및 그 구동 방법에 의하면, CPU가 일련의 SPI 데이터를 제어 로직으로 일괄 전달하고, SPI 통신의 완료 여부를 확인할 필요 없이 다른 작업을 진행할 수 있도록 하여 SPI 통신 성능을 보장하고 아울러 시스템 성능을 향상시키는 특징이 있다.
본 발명의 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스 및 그 구동 방법은, 비록 한정된 실시 예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술적 사상과 아래에 기재된 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.
100 : CPU 110 : 버스
200 : SPI 마스터 210 : SPI 슬레이브
300 : 제어 로직 310 : FSM(finite state machine)
320 : 명령 및 데이터 큐 330 : 리드 데이터 큐

Claims (7)

  1. 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스에 있어서,
    시스템 제어를 수행하는 CPU(100);와,
    상기 CPU(100)의 버스(110)를 통해 일단이 접속되는 제어 로직(300);
    상기 제어 로직(300)의 타단에 접속되는 SPI 마스터(200);와
    상기 SPI 마스터(200)에 연결되는 SPI 슬레이브(210)로 구성되며,

    상기 제어 로직(300)의 일단은, CPU(100)에 의해 쓰기 가능한 명령 및 데이터 큐(320);와, CPU(100)에 의해 읽기 가능한 리드 데이터 큐(330);가 CPU(100)의 버스(110)에 접속되고,
    상기 명령 및 데이터 큐(320)와 리드 데이터 큐(330)는 소형의 마이크로 콘트롤러나 FPGA로 구성되는 FSM(310: finite state machine)에 접속되며,
    상기 FSM(310)은 명령 및 데이터 큐(320)에 저장된 명령과 데이터를 처리하고 SPI 슬레이브(210)로부터 읽어들인 데이터를 transaction ID와 함께 리드 데이터 큐(330)에 저장하도록 구성된 것을 특징으로 하는 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스
  2. 제1항에 있어서 상기 FSM(310)은,
    SPI 마스터(200)에 연결되어 기록 데이터(write data)와 제어 데이터(control data)를 SPI 마스터(200)로 직렬 전송하고,
    SPI 마스터(200)가 SPI 슬레이브(210)로부터 읽은 데이터(wread data)를 제공받으며,
    상기 제어 데이터는 SPI 마스터(200)로 제공되는 직렬 클럭(SPI_CLK)과 모드 선택 신호(SPI_MODE) 및 SPI 선택 신호(SPI_SEL)가 포함되도록 구성된 것을 특징으로 하는 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스
  3. 제1항에 있어서 상기 명령 및 데이터 큐(320)와 리드 데이터 큐(330)는,
    CPU(100)와 FSM(310)에 의해 공유 접속되고 CPU(100)에 의해 비어있는 지의 여부(empty)를 판단할 수 있도록 하기 위해, 듀얼 포트 구조의 FIFO(first in first out) 메모리 또는 레지스터로 구비되는 것을 특징으로 하는 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스
  4. 제1항에 있어서 상기 명령 및 데이터 큐(320)와 리드 데이터 큐(330)는,
    CPU(100)의 메모리 공간 내에,
    선두 번지가 포인터(pointer)로 설정되는 듀얼 포트 메모리 공간을 구비하여 CPU(100)에 의해 비어있는 지의 여부(empty)를 판단할 수 있도록 구성되는 것을 특징으로 하는 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스
  5. 제1항에 있어서 상기 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스는,
    상기 CPU(100)가 FSM(310)에 대한 전송 명령과 데이터를 명령 및 데이터 큐(320)에 저장하고;
    상기 FSM(310)은 명령 및 데이터 큐(320)에 저장된 전송 명령과 데이터에 따라 SPI 마스터(200)를 통해 SPI 슬레이브(210)로의 쓰기 동작을 수행하도록 구성된 것을 특징으로 하는 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스
  6. 제1항에 있어서 상기 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스는,
    CPU(100)가 FSM(310)에 대한 읽기 명령을 명령 및 데이터 큐(320)에 저장하고,
    FSM(310)은 명령 및 데이터 큐(320)에 저장된 읽기 명령에 따라 SPI 마스터(200)를 통해 SPI 슬레이브(210)로부터의 읽기 동작을 수행하여 리드 데이터 큐(330)에 읽은 데이터를 transaction ID와 함께 저장하고,
    상기 CPU(100)는 리드 데이터 큐(330)로부터 transaction ID와 데이터를 읽어들이도록 구성된 것을 특징으로 하는 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스
  7. 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스의 구동 방법으로서,
    - S100 : 직렬 주변기기 인터페이스(SPI)의 동작이 개시되는 단계;
    - S110 : SPI 마스터(200)가 현재 데이터 전송을 수행중(busy)인지의 여부를 FSM(310)에 의해 판단하는 단계;
    - S120 : 상기 단계 S110 의 판단 결과에 따라, SPI 마스터(200)가 현재 데이터 전송을 수행중(busy)인 경우 상기 단계 S110을 반복 수행하고, SPI 마스터(200)가 현재 데이터 전송을 수행하지 않는 경우(idle) 다음 단계 S130을 수행하는 단계;
    - S130 : FSM(310)에 의해 명령 및 데이터 큐(320)를 체크하는 단계;
    - S140 : 상기 단계 S130의 판단 결과에 따라, 명령 및 데이터 큐(320)가 현재 비어있는 경우 상기 단계 S130을 반복 수행하고, 명령 및 데이터 큐(320)가 비어있지 않은 경우 다음 단계 S150을 수행하는 단계;
    - S150 : FSM(310)이 명령 및 데이터 큐(320)로부터 명령어를 fetch하는 단계;
    - S160 : FSM(310)이 명령 및 데이터 큐(320)로부터 fetch한 명령어를 decode하는 단계;
    - S170 : FSM(310)이 decode한 명령어를 수행(execcution)하는 단계;
    이 단계에서 수행되는 명령어가 SPI 슬레이브(210)로 데이터를 전송하는 경우에 FSM(310)은, 명령 및 데이터 큐(320)로부터 전송하고자 하는 데이터를 읽어 SPI 마스터(200)를 통해 전송한다.
    - S180 : FSM(310)이 명령어의 수행이 완료 후, 명령 및 데이터 큐(320)를 체크하는 단계;
    상기 단계 S180의 판단 결과에 따라, 명령 및 데이터 큐(320)가 현재 비어있지 않은 경우 상기 단계 S150을 반복 수행하고, 명령 및 데이터 큐(320)가 비어있는 경우 S110을 반복 수행하는 단계;
    의 수순으로 구성된 것을 특징으로 하는 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스
KR1020150023000A 2015-02-16 2015-02-16 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스 및 그 구동 방법 KR101630599B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150023000A KR101630599B1 (ko) 2015-02-16 2015-02-16 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스 및 그 구동 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150023000A KR101630599B1 (ko) 2015-02-16 2015-02-16 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스 및 그 구동 방법

Publications (2)

Publication Number Publication Date
KR20150039142A true KR20150039142A (ko) 2015-04-09
KR101630599B1 KR101630599B1 (ko) 2016-06-16

Family

ID=53029532

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150023000A KR101630599B1 (ko) 2015-02-16 2015-02-16 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스 및 그 구동 방법

Country Status (1)

Country Link
KR (1) KR101630599B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108090002A (zh) * 2018-01-02 2018-05-29 联想(北京)有限公司 数据处理方法、可编程阵列和可编程处理系统
CN109669729A (zh) * 2018-12-26 2019-04-23 杭州迪普科技股份有限公司 一种处理器的启动引导方法
CN113590520A (zh) * 2021-06-15 2021-11-02 珠海一微半导体股份有限公司 Spi系统自动写入数据的控制方法及spi系统
CN114356826A (zh) * 2021-12-17 2022-04-15 郑州信大捷安信息技术股份有限公司 一种基于芯片的spi单路通信方法和系统
CN114567445A (zh) * 2022-02-28 2022-05-31 苏州国芯科技股份有限公司 一种验签数据传输方法、装置、设备及介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080006150A (ko) 2006-07-11 2008-01-16 삼성전자주식회사 직렬 통신 방식을 이용한 데이터 송수신 장치 및 방법
KR20080013548A (ko) * 2006-08-09 2008-02-13 엠텍비젼 주식회사 클럭을 동기화하여 데이터를 송수신하는 인터페이스 모듈및 방법
KR20080080799A (ko) 2007-03-02 2008-09-05 엠텍비젼 주식회사 메모리의 직렬 인터페이스 방법 및 장치
KR20080087588A (ko) * 2007-03-27 2008-10-01 삼성전자주식회사 멀티 프로토콜 씨리얼 인터페이스 장치 및 그에 따른soc 장치
KR100932912B1 (ko) 2007-12-06 2009-12-21 한국전자통신연구원 센서 네트워크에서의 멀티채널 제공을 위한 게이트웨이장치 및 그 게이트웨이 장치 내에서의 spi 정합 장치 및방법
KR101028618B1 (ko) 2008-12-23 2011-04-11 엘지에릭슨 주식회사 메인 보드와 확장 보드간 spi 통신 시스템 및 방법
CN103064805A (zh) * 2012-12-25 2013-04-24 深圳先进技术研究院 Spi控制器及通信方法
KR20140008260A (ko) 2012-07-11 2014-01-21 인피니언 테크놀로지스 아게 Spi 인터페이스 및 spi 인터페이스를 통한 직렬 통신 방법
KR101407996B1 (ko) 2012-11-16 2014-06-17 대우조선해양 주식회사 Spi 통신용 마이크로컨트롤러를 이용한 동기 직렬 인터페이스시스템 및 그 방법
KR20140089799A (ko) 2013-01-07 2014-07-16 엘지전자 주식회사 SPI(Serial Peripheral Interface) 인터페이스 장치
KR20140123713A (ko) * 2013-04-15 2014-10-23 한국전자통신연구원 직렬 인터페이스를 통한 디바이스 접근 장치 및 그 방법

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080006150A (ko) 2006-07-11 2008-01-16 삼성전자주식회사 직렬 통신 방식을 이용한 데이터 송수신 장치 및 방법
KR20080013548A (ko) * 2006-08-09 2008-02-13 엠텍비젼 주식회사 클럭을 동기화하여 데이터를 송수신하는 인터페이스 모듈및 방법
KR20080080799A (ko) 2007-03-02 2008-09-05 엠텍비젼 주식회사 메모리의 직렬 인터페이스 방법 및 장치
KR20080087588A (ko) * 2007-03-27 2008-10-01 삼성전자주식회사 멀티 프로토콜 씨리얼 인터페이스 장치 및 그에 따른soc 장치
KR100932912B1 (ko) 2007-12-06 2009-12-21 한국전자통신연구원 센서 네트워크에서의 멀티채널 제공을 위한 게이트웨이장치 및 그 게이트웨이 장치 내에서의 spi 정합 장치 및방법
KR101028618B1 (ko) 2008-12-23 2011-04-11 엘지에릭슨 주식회사 메인 보드와 확장 보드간 spi 통신 시스템 및 방법
KR20140008260A (ko) 2012-07-11 2014-01-21 인피니언 테크놀로지스 아게 Spi 인터페이스 및 spi 인터페이스를 통한 직렬 통신 방법
KR101407996B1 (ko) 2012-11-16 2014-06-17 대우조선해양 주식회사 Spi 통신용 마이크로컨트롤러를 이용한 동기 직렬 인터페이스시스템 및 그 방법
CN103064805A (zh) * 2012-12-25 2013-04-24 深圳先进技术研究院 Spi控制器及通信方法
KR20140089799A (ko) 2013-01-07 2014-07-16 엘지전자 주식회사 SPI(Serial Peripheral Interface) 인터페이스 장치
KR20140123713A (ko) * 2013-04-15 2014-10-23 한국전자통신연구원 직렬 인터페이스를 통한 디바이스 접근 장치 및 그 방법

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108090002A (zh) * 2018-01-02 2018-05-29 联想(北京)有限公司 数据处理方法、可编程阵列和可编程处理系统
CN109669729A (zh) * 2018-12-26 2019-04-23 杭州迪普科技股份有限公司 一种处理器的启动引导方法
CN113590520A (zh) * 2021-06-15 2021-11-02 珠海一微半导体股份有限公司 Spi系统自动写入数据的控制方法及spi系统
CN113590520B (zh) * 2021-06-15 2024-05-03 珠海一微半导体股份有限公司 Spi系统自动写入数据的控制方法及spi系统
CN114356826A (zh) * 2021-12-17 2022-04-15 郑州信大捷安信息技术股份有限公司 一种基于芯片的spi单路通信方法和系统
CN114356826B (zh) * 2021-12-17 2024-02-09 郑州信大捷安信息技术股份有限公司 一种基于芯片的spi单路通信方法和系统
CN114567445A (zh) * 2022-02-28 2022-05-31 苏州国芯科技股份有限公司 一种验签数据传输方法、装置、设备及介质

Also Published As

Publication number Publication date
KR101630599B1 (ko) 2016-06-16

Similar Documents

Publication Publication Date Title
KR101630599B1 (ko) 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스 및 그 구동 방법
US8364873B2 (en) Data transmission system and a programmable SPI controller
JPH02227765A (ja) デジタル・コンピユータのデータ転送装置
JPH02227766A (ja) デジタル・コンピユータのデータ転送装置
JP2018502406A (ja) マルチチャネルi2s伝送制御システムおよび方法
KR20210042978A (ko) 이진화 알고리즘 기반의 액셀러레이션 제어 시스템, 칩 및 로봇
CN112306924A (zh) 一种数据交互方法、装置、系统及可读存储介质
KR20120040535A (ko) 버스 시스템 및 그것의 동작 방법
CN112463651A (zh) Qspi控制器,图像处理器及闪存访问方法
US9317462B2 (en) Microcontroller peripheral data transfer redirection for resource sharing
KR20070086197A (ko) 멀티미디어 카드 인터페이스 방법, 컴퓨터 프로그램 생성물및 장치
WO2009000794A1 (en) Data modification module in a microcontroller
JP5643896B2 (ja) デイジーチェーン接続されたデバイスのための高速インターフェイス
CN101656658A (zh) 一种提高队列管理中出队效率的方法和装置
GB2423165A (en) Host controller interface for packet-based timeshared bus
US9128924B2 (en) Method and apparatus for wireless broadband systems direct data transfer
EP3029579A2 (en) Controller with indirect accessible memory
KR100266963B1 (ko) 전송되는 패킷을 오버래핑하여 인터페이스의 대기시간을 감소시키는 방법 및 장치
KR100361511B1 (ko) 다기능 직렬 통신 인터페이스 장치
JP5652866B2 (ja) バス調停回路及びバス調停方法
CN116980362B (zh) 用于spi架构的多任务处理方法及装置
KR20070081981A (ko) 중앙처리 장치가 없는 시스템에서의 인터페이스 방법 및장치
US11233514B2 (en) Semiconductor device including subsystem interfaces and communications method thereof
JP4411138B2 (ja) データフロー制御方式、その回路、およびその方法
KR100584583B1 (ko) 직렬 버스 제어 장치 및 방법

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