KR20190075280A - 호스트 컨트롤러, 보안 요소 및 직렬 주변기기 인터페이스 통신 시스템 - Google Patents

호스트 컨트롤러, 보안 요소 및 직렬 주변기기 인터페이스 통신 시스템 Download PDF

Info

Publication number
KR20190075280A
KR20190075280A KR1020170176746A KR20170176746A KR20190075280A KR 20190075280 A KR20190075280 A KR 20190075280A KR 1020170176746 A KR1020170176746 A KR 1020170176746A KR 20170176746 A KR20170176746 A KR 20170176746A KR 20190075280 A KR20190075280 A KR 20190075280A
Authority
KR
South Korea
Prior art keywords
signal
host controller
data
line
clock
Prior art date
Application number
KR1020170176746A
Other languages
English (en)
Other versions
KR102428450B1 (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 KR1020170176746A priority Critical patent/KR102428450B1/ko
Priority to US16/018,334 priority patent/US10289601B1/en
Priority to CN201811403350.7A priority patent/CN109948378A/zh
Publication of KR20190075280A publication Critical patent/KR20190075280A/ko
Application granted granted Critical
Publication of KR102428450B1 publication Critical patent/KR102428450B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/403Bus networks with centralised control, e.g. polling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0008Synchronisation information channels, e.g. clock distribution lines

Abstract

호스트 컨트롤러가 제공된다. 보안 요소(Secure Element)와 직렬 주변기기 인터페이스(Serial Peripheral Interface) 방식을 통해 연결된 호스트 컨트롤러에 있어서, 상기 보안 요소에 제1 데이터를 전송하기 전 상기 보안 요소와의 통신 시작을 알리는 제1 리쥼(RESUME) 신호를 생성하는 리쥼 신호 생성기, 상기 제1 리쥼 신호를 상기 보안 요소에 전송하는 송신기, 상기 제1 리쥼 신호를 전송한 후 슬레이브 셀렉트 라인을 활성화하는 슬레이브 셀렉트 라인 활성화기 및 상기 슬레이브 셀렉트 라인이 활성화됨에 따라 제1 클락 신호를 클락 라인을 통해 상기 보안 요소에 전송하는 클락 제어기를 포함하고, 상기 송신기는, 상기 제1 클락 신호가 전송되는 동안 상기 제1 데이터를 포함하는 제1 신호를 MOSI(Master Out Slave In) 라인을 통해 상기 보안 요소에 전송한다.

Description

호스트 컨트롤러, 보안 요소 및 직렬 주변기기 인터페이스 통신 시스템{HOST CONTROLLER, SECURE ELEMENT AND SERIAL PERIPHERAL INTERFACE}
본 발명은 호스트 컨트롤러, 보안 요소 및 직렬 주변기기 인터페이스 통신 시스템에 관한 것이다.
보안 요소는 보안이 요구되는 정보와 이를 이용하는 애플릿(Applet)들이 안전하게 저장되는 저장매체로, SIM/UICC(Subscriber Identity Module / Universal Integrated Circuit Card), e-SE(Embedded Secure Element) 및 Micro SD 카드 등이 있을 수 있다.
SIM/UICC가 기본적으로 사용되고 Micro SD 카드가 선택적으로 사용되는 것이 일반적이었지만, 근래에 이르러 e-SE를 탑재한 컴퓨팅 장치가 점차 증가하고 있는 상황이다.
보안 요소를 탑재한 컴퓨팅 장치는 일반적으로 e-SE와 호스트 컨트롤러 예를 들어, NFC(Near Field Communication) 모듈 사이의 데이터 통신 인터페이스로 단일 와이어 프로토콜(Single Wire Protocol)을 이용하고 있다. 하지만, 단일 와이어 프로토콜 인터페이스의 경우 최대 전송 속도가 1.696Mbps라는 제약이 있어 빠른 속도를 요구하는 서비스에 적용하기에는 어렵다는 문제가 있다. 따라서, 빠른 속도를 요구하는 서비스에 적합한 인터페이스로 보안 요소와 호스트 컨트롤러 간의 통신을 수행하는 방법에 대한 연구가 활발하게 진행되고 있다.
본 발명이 해결하고자 하는 기술적 과제는 보안 요소와 호스트 컨트롤러 사이에 빠른 전송 속도를 갖는 인터페이스를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 보안 요소(Secure Element)와 직렬 주변기기 인터페이스(Serial Peripheral Interface) 방식을 통해 연결된 호스트 컨트롤러는, 상기 보안 요소에 제1 데이터를 전송하기 전 상기 보안 요소와의 통신 시작을 알리는 제1 리쥼(RESUME) 신호를 생성하는 리쥼 신호 생성기, 상기 제1 리쥼 신호를 상기 보안 요소에 전송하는 송신기, 상기 제1 리쥼 신호를 전송한 후 슬레이브 셀렉트 라인을 활성화하는 슬레이브 셀렉트 라인 활성화기 및 상기 슬레이브 셀렉트 라인이 활성화됨에 따라 제1 클락 신호를 클락 라인을 통해 상기 보안 요소에 전송하는 클락 제어기를 포함하고, 상기 송신기는, 상기 제1 클락 신호가 전송되는 동안 상기 제1 데이터를 포함하는 제1 신호를 MOSI(Master Out Slave In) 라인을 통해 상기 보안 요소에 전송한다.
몇몇 실시예에서, 호스트 컨트롤러(Host Controller)와 직렬 주변기기 인터페이스(Serial Peripheral Interface) 방식을 통해 연결된 보안 요소(Secure Element)는 상기 호스트 컨트롤러에 제1 데이터를 전송하기 전 상기 호스트 컨트롤러와의 통신 시작을 알리는 제1 리쥼(RESUME) 신호를 생성하는 리쥼 신호 생성기 및 상기 제1 리쥼 신호를 상기 호스트 컨트롤러에 전송하는 송신기를 포함하고, 상기 송신기는, 슬레이브 셀렉트 라인이 활성화되고 클락 라인을 통해 제1 클락 신호가 수신되는 동안 상기 제1 데이터를 포함하는 제1 신호를 MISO(Master In Slave Out) 라인을 통해 상기 호스트 컨트롤러에 전송한다.
몇몇 실시예에서, 직렬 주변기기 인터페이스(Serial Peripheral Interface) 통신 시스템은 보안 요소(Secure Element) 및 상기 보안 요소와 직렬 주변기기 인터페이스(Serial Peripheral Interface) 방식을 통해 연결된 호스트 컨트롤러를 포함하고, 상기 호스트 컨트롤러는, 상기 보안 요소에 제1 데이터를 전송하기 전 상기 보안 요소와 상기 호스트 컨트롤러 간의 통신 시작을 알리는 제1 리쥼(RESUME) 신호를 생성하는 제1 리쥼 신호 생성기를 포함하고, 상기 보안 요소는, 상기 호스트 컨트롤러에 제2 데이터를 전송하기 전 상기 보안와 상기 호스트 컨트롤러 간의 통신 시작을 알리는 제2 리쥼 신호를 생성하는 제2 리쥼 신호 생성기를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 몇몇 실시예에 따른 직렬 주변기기 인터페이스 통신 시스템을 포함하는 컴퓨팅 장치의 일례를 설명하기 위한 도면이다.
도 2은 몇몇 실시예에 따른 직렬 주변기기 인터페이스 통신 시스템을 설명하기 위한 블록도이다.
도 3은 몇몇 실시예에 따른 직렬 주변기기 인터페이스 통신 시스템에서 호스트 컨트롤러가 보안 요소에 데이터를 전송하는 방법을 설명하기 위한 흐름도이다.
도 4는 몇몇 실시예에 따른 직렬 주변기기 인터페이스 통신 시스템에서 보안 요소가 호스트 컨트롤러에게 데이터를 전송하는 방법을 설명하기 위한 흐름도이다.
도 5는 몇몇 실시예에 따라 범용 입출력 라인을 이용하여 리쥼 신호를 생성하는 방법의 일례를 설명하기 위한 도면이다.
도 6 내지 도 8은 몇몇 실시예에 따라 호스트 컨트롤러가 보안 요소에게 데이터를 전송하는 방법의 일례들을 설명하기 위한 도면들이다.
도 9 및 도 10은 몇몇 실시예에 따라 보안 요소가 호스트 컨트롤러에게 데이터를 전송하는 방법의 일례들을 설명하기 위한 도면들이다.
도 11은 몇몇 실시예에 따른 호스트 컨트롤러가 보안 요소를 웨이크업시키는 방법의 일례를 설명하기 위한 도면이다.
도 12는 몇몇 실시예에 따른 통신 계층을 설명하기 위한 도면이다.
도 13은 몇몇 실시예에 따른 직렬 주변기기 인터페이스 통신 시스템에서 사용되는 데이터 프레임의 구조의 일례를 설명하기 위한 도면이다.
도 1은 몇몇 실시예에 따른 직렬 주변기기 인터페이스 통신 시스템을 포함하는 컴퓨팅 장치의 일례를 설명하기 위한 도면이다.
몇몇 실시예에 따른, 컴퓨팅 장치(10)는 프로세서(100) 및 직렬 주변기기 인터페이스 통신 시스템(200)를 포함할 수 있다. 다만, 상술한 구성 요소들은 컴퓨팅 장치(10)를 구현하는데 있어서 필수적인 것은 아니어서, 컴퓨팅 장치(10)는 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다.
컴퓨팅 장치(10)는 TV, DTV(Digital TV), IPTV(internet protocol TV), PC(personal computer), 데스크 탑 컴퓨터, 랩-탑(lap-top) 컴퓨터, 컴퓨터 워크스테이션(computer workstation), 태블릿(tablet) PC, 비디오 게임 플랫폼(또는 비디오 게임 콘솔), 서버 및 모바일 컴퓨팅 장치 중의 하나로 구현될 수 있다. 여기서, 모바일 컴퓨팅 장치는 이동 전화기, 스마트 폰(smart phone), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PND(personal navigation device 또는 portable navigation device), 모바일 인터넷 장치(mobile internet device(MID)), 웨어러블 컴퓨터, 사물 인터넷(Internet of Things; IOT) 장치, 만물 인터넷(Internet of Everything; IOE) 장치 또는 e-book으로 구현될 수 있다.
프로세서(100)는 컴퓨팅 장치(10)의 전반적인 동작을 제어하도록 구현될 수 있다. 또한, 프로세서(100)는 컴퓨팅 장치(10)에서 수행되는 다양한 연산들을 수행 및 데이터를 처리할 수 있다. 프로세서(100)는 컴퓨팅 장치(10)를 구동하기 위한 운영 체제(Operating System; OS), 애플리케이션(Application) 및 데이터베이스 매니저를 구동할 수 있다.
프로세서(100)는 중앙 처리 장치(Central Processing Unit; CPU), 코프로세서(co-processor), 산술 처리 장치(Arithmetic Processing Unit; APU), 그래픽 처리 장치(Graphic Processing Unit; GPU), 디지털 신호 프로세서(Digital Signal Processor; DSP), 애플리케이션 프로세서(Application Processor; AP) 및 통신 프로세서(Communication Processor; CP) 등 일 수 있다.
직렬 주변기기 인터페이스 통신 시스템(200)은 호스트 컨트롤러(210) 및 보안 요소(220)를 포함할 수 있다.
호스트 컨트롤러(210)는 호스트인 프로세서(100)와 보안 요소(220) 간의 네트워크를 관리하는 기능을 수행할 수 있다. 예를 들어, 호스트 컨트롤러(210)는 근거리 통신(Near Field Communication; NFC) 모듈일 수 있다.
프로세서(100)가 호스트 컨트롤러(210)를 통해 데이터를 보안 요소(210)에 데이터를 저장할 수 있다. 또한, 프로세서(100)는, 호스트 컨트롤러(210)를 통해 보안 요소(220)에 저장된 데이터를 수신할 수 있다.
프로세서(100) 및 호스트 컨트롤러(210) 간에는 I2C(Inter-Integrated Circuit) 인터페이스를 통해 데이터를 송수신할 수 있다. 다만, 이에 한정되는 것은 아니고, 프로세서(100) 및 호스트 컨트롤러(210) 간에 직렬 주변기기 인터페이스(Serial Pripheral Interface; SPI) 통신을 통해 데이터를 송수신할 수도 있다.
보안 요소(220)는 보안이 요구되는 정보와 이를 이용하는 애플릿(Applet)들이 안전하게 저장되는 저장매체일 수 있다. 예를 들어, 보안 요소(220)는 SIM/UICC(Subscriber Identity Module / Universal Integrated Circuit Card), e-SE(Embedded Secure Element) 및 Micro SD 카드 등을 포함될 수 있다.
호스트 컨트롤러(210) 및 보안 요소(220)는 직렬 주변기기 인터페이스(Serial Pripheral Interface; SPI) 통신을 통해 데이터를 송수신할 수 있다.
종래에는 호스트 컨트롤러(210)와 보안 요소(220)간에 단일 와이어 프로토콜 인터페이스 통신을 통해 데이터를 송수신하였다. 단일 와이어 프로토콜 인터페이스에서의 데이터 통신은 하나의 와이어를 이용하여 데이터를 송수신하게 된다. 예를 들어, 호스트 컨트롤러(210)에서 보안 요소(220)에 신호를 전송할 경우 전압 신호를 이용한다. 또한, 보안 요소(220)에서 호스트 컨트롤러(210)에 신호를 전송할 경우 전류 신호를 이용할 수 있다. 이 경우, 보안 요소(220)가 호스트 컨트롤러(210)에 데이터를 전송할 때 전류 신호를 이용하기 때문에 전송 속도가 많이 느려진다. 따라서, 대용량의 데이터를 송수신하는 경우에 단일 와이어 프로토콜 인터페이스 통신을 이용하는 것이 적합하지 않다.
따라서, 몇몇 실시예에 따라, 호스트 컨트롤러(210)와 보안 요소(220)간에 데이터를 송수신하기 위해 직렬 주변기기 인터페이스 통신을 이용할 수 있다. 직렬 주변기기 인터페이스 통신을 이용하는 경우 호스트 컨트롤러(210)와 보안 요소(220)간의 통신 속도가 빨라질 수 있다.
도 2은 몇몇 실시예에 따른 직렬 주변기기 인터페이스 통신 시스템을 설명하기 위한 블록도이다.
직렬 주변기기 인터페이스 통신 시스템(200)는 호스트 컨트롤러(210) 및 보안 요소(220)를 포함할 수 있다. 여기서, 호스트 컨트롤러(210) 예를 들어 근거리 통신(Near Field Communication; NFC) 모듈은 네트워크를 관리하는 기능을 수행하고, 보안 요소(220) 예를 들어 eSE(Embedded Secure Element)는 보안이 요구되는 정보와 이를 이용하는 애플릿(Applet)들이 안전하게 저장되는 저장매체일 수 잇다.
호스트 컨트롤러(210) 및 보안 요소(220)는 직렬 주변기기 인터페이스 통신을 통해 데이터를 포함하는 신호 및 클락 신호 등을 송수신할 수 있다.
예를 들어, 호스트 컨트롤러(210)와 보안 요소(220)는 슬레이브 셀렉트 라인(Slave Select line, SS line, 231), 클락 라인(CLK Line, 232), MISO 라인(Master In Slave Out line, 233) 및 MOSI 라인(Master Out Slave In, 234)으로 연결되어 있을 수 있다. 다만, 이에 한정되는 것은 아니고 호스트 컨트롤러(210)와 보안 요소(220)는 상술한 라인보다 적거나 많은 라인으로 연결되어 있을 수도 있다.
호스트 컨트롤러(210)는 제1 리쥼(Resume) 신호 생성기(211), 제1 리쥼 신호 인식기(212), 제1 송신기(213), 제1 수신기(214), 클락 제어기(215) 및 슬레이브 셀렉트 라인 활성화기(216)를 포함할 수 있다. 다만, 상술한 구성 요소들은 호스트 컨트롤러(210)를 구현하는데 있어서 필수적인 것은 아니어서, 호스트 컨트롤러(210)는 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다.
보안 요소(220)는 제2 리쥼 신호 생성기(221), 제2 리쥼 신호 인식기(222), 제2 송신기(223), 제2 수신기(224)를 포함할 수 있다. 다만, 상술한 구성요소들은 보안 요소(220)를 구현하는데 있어서 필수적인 것은 아니어서, 보안 요소(220)는 위에서 열거된 구성요소들 보다 많거나 또는 적은 구성요소들을 가질 수 있다.
제1 리쥼 신호 생성기(211) 및 제2 리쥼 신호 생성기(221)는 리쥼 신호를 생성할 수 있다. 여기서, 리쥼 신호는 호스트 컨트롤러(210)와 보안 요소(220)간의 통신의 시작을 나타내는 신호일 수 있다.
제1 리쥼 신호 인식기(212)는 보안 요소(220)로부터 수신된 신호가 리쥼 신호인지 여부를 인식할 수 있다. 제2 리쥼 신호 인식기(222)는 호스트 컨트롤러(210)로부터 수신된 신호가 리쥼 신호인지 여부를 인식할 수 있다.
제1 송신기(213)는 호스트 컨트롤러(210)에서 생성된 신호를 송신하는 기능을 수행할 수 있다. 제2 송신기(223)는 보안 요소(220)에서 생성된 신호를 송신하는 기능을 수행할 수 있다.
제1 수신기(214)는 보안 요소(220)에서 전송된 신호를 수신하는 기능을 수행할 수 있다. 제2 수신기(224)는 호스트 컨트롤러(210)에서 전송된 신호를 수신하는 기능을 수행할 수 있다.
클락 컨트롤러(215)는 클락 신호를 생성하여 상기 생성된 클락 신호를 클락 라인(232)을 통해 보안 요소(220)에 공급할 수 있다. 예를 들어, 클락 컨트롤러(215)는 위상 고정 루프(Phase Locked Loop; PLL) 회로, 지연 동기 루프(Delay Locked Loop; DLL) 회로 등을 통해 클락을 클락 라인(232)을 통해 보안 요소(220)에 클락 신호를 공급할 수 있다.
슬레이브 셀렉트 라인 활성화기(216)는 보안 요소(220)를 선택하는 슬레이브 셀렉트 라인(231)을 활성화하는 기능을 수행할 수 있다.
일례로, 슬레이브 셀렉트 라인 활성화기(216)는 보안 요소(220)를 선택하기 위해 슬레이브 셀렉트 라인(231)을 로우 상태(논리 '0')로 구동할 수 있다. 여기서, 슬레이브 셀렉트 라인(231)이 로우 상태로 구동된 상태가 슬레이브 셀렉트 라인(231)이 활성화된 상태일 수 있다.
다른 일례로, 슬레이브 셀렉트 라인 활성화기(216)는 보안 요소(220)를 선택하지 않기 위해 슬레이브 셀렉트 라인(231)을 하이 상태(논리 '1')로 구동할 수 있다. 여기서, 슬레이브 셀렉트 라인(231)이 하이 상태로 구동된 상태가 슬레이브 셀렉트 라인(231)이 비활성화된 상태일 수 있다.
기존의 직렬 주변기기 인터페이스 통신 방식에서는 리쥼 신호를 이용하지 않고 슬레이브 셀렉트 라인이 활성화된 때 데이터를 송수신할 수 있다. 이 경우, 보안 요소(220)에 슬레이브 셀렉트 라인 활성화기가 포함되어 있지 않기 때문에 슬레이브 셀렉트 라인(231)이 비활성화된 상태에서는 보안 요소(220)가 슬레이브 셀렉트 라인(231)을 활성화시킬 수 없었다. 따라서, 이러한 문제를 해결하기 위해 몇몇 실시예에서 호스트 컨트롤러(210) 또는 보안 요소(220)가 리쥼 신호를 생성하여 전송할 수 있다.
일례로, 호스트 컨트롤러(210)가 보안 요소(220)에게 제1 데이터를 전송하기 전, 제1 리쥼 신호 생성기(211)는 제1 리쥼 신호를 생성할 수 있다. 제1 송신기(213)가 제1 리쥼 신호를 보안 요소(220)에 전송함에 따라 슬레이브 셀렉트 라인 활성화기(216)는 슬레이브 셀렉트 라인(231)을 활성화할 수 있다. 클락 제어기(215)는 슬레이브 셀렉트 라인(231)이 활성화됨에 따라 클락 라인(232)을 통해 제1 클락 신호를 보안 요소(220)에게 전송할 수 있다. 그리고, 제1 송신기(213)가 제1 데이터를 포함하는 제1 신호를 MOSI 라인(234)을 통해 보안 요소(220)에 전송할 수 있다.
다른 일례로, 보안 요소(220)가 호스트 컨트롤러(210)에게 제3 데이터를 전송하기 전 제2 리쥼 신호 생성기(221)는 제2 리쥼 신호를 생성할 수 있다. 제2 송신기(223)가 제2 리쥼 신호를 호스트 컨트롤러(210)에 전송한 경우, 제1 리쥼 신호 인식기(212)는 수신된 신호가 리쥼 신호라고 인식할 수 있다. 슬레이브 셀렉트 라인 활성화기(216)는 제1 리쥼 신호 인식기(212)를 통해 리쥼 신호가 인식된 경우, 슬레이브 셀렉트 라인(231)을 활성화할 수 있다. 클락 제어기(215)는 슬레이브 셀렉트 라인(231)이 활성화됨에 따라 클락 라인(232)을 통해 제1 클락 신호를 보안 요소(220)에게 전송할 수 있다. 그리고, 제2 송신기(223)가 제3 데이터를 포함하는 제2 신호를 MISO 라인(233)을 통해 호스트 컨트롤러(210)에게 전송할 수 있다.
이하, 도 3 내지 도 10을 참조하여, 호스트 컨트롤러(210) 또는 보안 요소(220)가 데이터를 전송하는 방법의 일례들을 설명한다.
도 3은 몇몇 실시예에 따른 직렬 주변기기 인터페이스 통신 시스템에서 호스트 컨트롤러가 보안 요소에 데이터를 전송하는 방법을 설명하기 위한 흐름도이다.
도 3을 참조하면, 호스트 컨트롤러는 제1 데이터를 전송하기 전 보안 요소와의 통신 시작을 알리는 리쥼 신호를 제1 리쥼 신호 생성기를 통해 생성할 수 있다(S310). 보안 요소는 호스트 컨트롤러로부터 수신된 신호가 리쥼 신호인지 여부를 제2 리쥼 신호 인식기를 통해 인식할 수 있다.
일례로, 제2 리쥼 신호 인식기는, 슬레이브 셀렉트 라인이 활성화되기 전에 클락 신호를 수신한 때, 수신된 신호가 리쥼 신호라고 인식할 수 있다.
다른 일례로, 제2 리쥼 신호 인식기는, 슬레이브 셀렉트 라인이 활성화되기 전에 MOSI 라인을 통해 제1 데이터와 관계 없는 제2 데이터를 포함하는 신호를 수신한 때, 수신된 신호를 리쥼 신호라고 인식할 수 있다.
또 다른 일례로, 제2 리쥼 신호 인식기는, 슬레이브 셀렉트 라인이 활성화되기 전에 범용 입출력 라인을 통해 활성화 신호를 수신한 경우, 수신된 신호를 리쥼 신호라고 인식할 수 있다.
호스트 컨트롤러는 리쥼 신호를 제1 송신기를 통해 보안 요소에 전송할 수 있다(S320).
일례로, 슬레이브 셀렉트 라인이 활성화되기 전에 클락 신호를 리쥼 신호로서 이용하는 경우, 제1 송신기는 클락 신호를 클락 라인을 통해 보안 요소에 전송할 수 있다.
다른 일례로, 제1 송신기는 제2 데이터를 포함하는 리쥼 신호를 MOSI 라인을 통해 보안 요소에 전송할 수 있다.
또 다른 일례로, 제1 송신기는, 범용 입출력 라인을 통해 리쥼 신호를 보안 요소에 전송할 수 있다.
호스트 컨트롤러는 단계(S320)에서 리쥼 신호를 전송한 후, 슬레이브 셀렉트 라인을 슬레이브 셀렉트 라인 활성화기를 통해 활성화할 수 있다(S330).
호스트 컨트롤러는 단계(S330)에서 슬레이브 셀렉트 라인이 활성화된 경우, 클락 신호를 클락 제어기를 통해 보안 요소에 제공할 수 있다(S340).
호스트 컨트롤러는 클락 신호가 제공되는 동안 제1 데이터를 포함하는 제1 신호를 MOSI 라인을 통해 보안 요소에 전송할 수 있다(S350).
도 4는 몇몇 실시예에 따른 직렬 주변기기 인터페이스 통신 시스템에서 보안 요소가 호스트 컨트롤러에게 데이터를 전송하는 방법을 설명하기 위한 흐름도이다.
도 4를 참조하면, 보안 요소는 제2 리쥼 신호 생성기를 통해 제3 데이터를 전송하기 전 호스트 컨트롤러와의 통신 시작을 알리는 리쥼 신호를 생성할 수 있다(S410). 호스트 컨트롤러는 호스트 컨트롤러에 포함된 제1 리쥼 신호 인식기를 통해 보안 요소로부터 수신된 신호가 리쥼 신호인지 여부를 인식할 수 있다.
일례로, 제1 리쥼 신호 인식기는, 슬레이브 셀렉트 라인이 활성화되기 전에 MISO 라인을 통해 제3 데이터와 관계 없는 제4 데이터를 포함하는 신호를 수신한 때, 수신된 신호를 리쥼 신호라고 인식할 수 있다.
다른 일례로, 제1 리쥼 신호 인식기는, 슬레이브 셀렉트 라인이 활성화되기 전에 범용 입출력 라인을 통해 활성화 신호를 수신한 경우, 수신된 신호를 리쥼 신호라고 인식할 수 있다.
보안 요소는 리쥼 신호를 제2 송신기를 통해 보안 요소에 전송할 수 있다(S420).
일례로, 제2 송신기는 제4 데이터를 포함하는 리쥼 신호를 MISO 라인을 통해 보안 요소에 전송할 수 있다.
또 다른 일례로, 제2 송신기는, 범용 입출력 라인을 통해 리쥼 신호를 보안 요소에 전송할 수 있다.
호스트 컨트롤러는 단계(S420)에서 리쥼 신호를 수신한 경우, 슬레이브 셀렉트 라인을 슬레이브 셀렉트 라인 활성화기를 통해 활성화할 수 있다(S430).
호스트 컨트롤러는 단계(S430)에서 슬레이브 셀렉트 라인이 활성화된 경우, 클락 신호를 클락 제어기를 통해 보안 요소에 제공할 수 있다(S440).
보안 요소는 클락 신호가 제공되는 동안 제2 데이터를 포함하는 신호를 MISO 라인을 통해 호스트 컨트롤러에 전송할 수 있다(S450).
도 5는 몇몇 실시예에 따라 범용 입출력 라인을 이용하여 리쥼 신호를 생성하는 방법의 일례를 설명하기 위한 도면이다.
도 5를 참조하면, 호스트 컨트롤러(210)와 보안 요소(220)는 슬레이브 셀렉트 라인(Slave Select line, SS line, 231), 클락 라인(CLK Line, 232), MISO 라인(Master In Slave Out line, 233) 및 MOSI 라인(Master Out Slave In, 234)으로 연결되어 있을 수 있다. 또한, 호스트 컨트롤러(210) 및 보안 요소(220)는 범용 입출력(General Purpose Input/Output; GPIO) 라인(235)으로도 연결되어 있을 수 있다.
범용 입출력 라인(235)은 범용 입출력 모듈(240)을 포함할 수 있다. 범용 입출력 모듈(240)은 하드웨어 핀일 수 있다. 범용 입출력 모듈(240)은 라인 상의 신호를 하이 상태(논리 '1') 또는 로우 상태(논리 '0')로 구동할 수 있다. 또한, 범용 입출력 모듈(240)은 임피던스 상태에 진입할 수 있으며, 라인 상의 신호의 값(상태)를 판독할 수 있다.
호스트 컨트롤러(210)와 보안 요소(220) 양자가 개방 드레인(또는 개방 컬렉터) 출력과 풀-업 저항을 이용하여 범용 입출력 라인(235)을 제어할 수 있다.
몇몇 실시예에 따르면, 범용 입출력 모듈(240)은 공급 레일(241) 및 풀업 저항(242)을 포함할 수 있다.
풀업 저항(242)은 범용 입출력 라인(235)과 공급 레일(241) 사이에 연결될 수 있다. 범용 입출력 라인(235)은 풀-업 저항(242)을 통해 공급 레일(241)에 연결된 채 있으며, 이로 인해 확실한 논리 상태가 범용 입출력 라인(235)에 연결된 보안 요소(220)에 전달된다.
범용 입출력 라인(235)을 활성화하길 원하는 경우, 풀-업 저항(242)은 접지로의 단락을 방지할 수 있다.
범용 입출력 라인(235)을 비활성화하길 원하는 경우, 풀-업 저항(242)은 접지로의 단락을 유도할 수 있다.
범용 입출력 라인(235)의 상태는 범용 입출력 라인(235)에 연결된 호스트 컨트롤러(210) 또는 보안 요소(220)가 변경할 수 있다.
호스트 컨트롤러(210)에 포함된 제1 리쥼 신호 생성기는 범용 입출력 라인을 로우 상태에서 하이 상태로 변경함으로써 제1 리쥼 신호를 생성할 수 있다.
보안 요소(220)에 포함된 제2 리쥼 신호 생성기는 범용 입출력 라인을 로우 상태에서 하이 상태로 변경함으로써 제2 리쥼 신호를 생성할 수 있다.
도 6 내지 도 8은 몇몇 실시예에 따라 호스트 컨트롤러가 보안 요소에게 데이터를 전송하는 방법의 일례들을 설명하기 위한 도면들이다. 도 6 내지 도 8과 관련하여 도 1 내지 도 5와 관련하여 상술한 바와 중복되는 내용은 다시 설명하지 않으며, 이하 차이점을 중심으로 설명한다.
도 6을 참조하면, 호스트 컨트롤러는 제1 데이터(또는 제1 데이터를 포함하는 제1 신호(510))를 보안 요소에 전송하기 전 범용 입출력 라인(235)을 로우 상태에서 하이 상태로 변경할 수 있다. 보안 요소에 포함된 제2 리쥼 신호 인식기는 범용 입출력 라인(235)이 로우 상태에서 하이 상태로 변경된 경우 보안 요소와의 통신 시작을 알리는 제1 리쥼 신호가 수신되었다고 인식할 수 있다. 즉, 호스트 컨트롤러에 포함된 제1 리쥼 신호 생성기는 범용 입출력 라인(235)을 로우 상태에서 하이 상태로 변경함으로써 제1 리쥼 신호를 생성할 수 있다.
호스트 컨트롤러는 제1 리쥼 신호를 전송한 후 슬레이브 셀렉트 라인 활성화기를 통해 슬레이브 셀렉트 라인(231)을 하이 상태에서 로우 상태로 변경할 수 있다. 슬레이브 셀렉트 라인(231)은 하이 상태에서 비활성화되고, 로우 상태에서 활성화될 수 있다. 즉, 호스트 컨트롤러는 제1 리쥼 신호를 전송함에 따라 슬레이브 셀렉트 라인 활성화기를 통해 슬레이브 셀렉트 라인(231)을 활성화할 수 있다.
호스트 컨트롤러는 슬레이브 셀렉트 라인(231)이 활성화됨에 따라 제1 클락 신호(610)를 클락 라인(232)을 통해 보안 요소에 전송할 수 있다.
호스트 컨트롤러는 제1 클락 신호(610)가 보안 요소에 전송되는 동안 제1 데이터를 포함하는 제1 신호(510)를 MOSI 라인(234)을 통해 보안 요소에 전송할 수 있다.
호스트 컨트롤러는 제1 신호(510)의 전송을 완료한 경우, 클락 제어기를 통해 제1 클락 신호(610)를 더 이상 공급하지 않을 수 있다. 호스트 컨트롤러는 슬레이브 셀렉트 라인 활성화기를 통해 슬레이브 셀렉트 라인(231)을 로우 상태에서 하이 상태로 변경할 수 있다. 그리고, 호스트 컨트롤러는 범용 입출력 라인을 하이 상태에서 로우 상태로 변경할 수 있다.
도 7을 참조하면, 호스트 컨트롤러는 제1 데이터(또는 제1 데이터를 포함하는 제1 신호(510))를 보안 요소에 전송하기 전 제1 데이터와 관계 없는 제2 데이터를 포함하는 신호(710)를 MOSI 라인(234)을 통해 보안 요소에 전송할 수 있다. 보안 요소의 제2 리쥼 신호 인식기는 슬레이브 셀렉트 라인(231)이 하이 상태(활성화된 상태)에 있는 동안 제2 데이터를 포함하는 신호(710)를 수신한 경우 통신 시작을 알리는 제1 리쥼 신호가 수신되었다고 인식할 수 있다. 즉, 호스트 컨트롤러에 포함된 제1 리쥼 신호 생성기는 제1 데이터와 관계 없는 제2 데이터를 포함하는 제1 리쥼 신호를 생성할 수 있다. 여기서, 제2 데이터는 더미 데이터(dummy data)일 수 있다.
호스트 컨트롤러는 제1 리쥼 신호를 MOSI 라인(234)을 통해 전송한 후 슬레이브 셀렉트 라인 활성화기를 통해 슬레이브 셀렉트 라인(231)을 하이 상태에서 로우 상태로 변경할 수 있다. 슬레이브 셀렉트 라인(231)은 하이 상태에서 비활성화되고, 로우 상태에서 활성화될 수 있다. 즉, 호스트 컨트롤러는 제1 리쥼 신호를 전송함에 따라 슬레이브 셀렉트 라인 활성화기를 통해 슬레이브 셀렉트 라인(231)을 활성화할 수 있다.
호스트 컨트롤러는 슬레이브 셀렉트 라인(231)이 활성화됨에 따라 제1 클락 신호(610)를 클락 라인(232)을 통해 보안 요소에 전송할 수 있다.
호스트 컨트롤러는 제1 클락 신호(610)가 보안 요소에 전송되는 동안 제1 데이터를 포함하는 제1 신호(510)를 MOSI 라인(234)을 통해 보안 요소에 전송할 수 있다.
호스트 컨트롤러는 제1 신호(510)의 전송을 완료한 경우, 클락 제어기를 통해 제1 클락 신호(610)의 공급을 끊을 수 있다. 호스트 컨트롤러는 슬레이브 셀렉트 라인 활성화기를 통해 슬레이브 셀렉트 라인(231)을 로우 상태에서 하이 상태로 변경할 수 있다.
도 8을 참조하면, 호스트 컨트롤러는 제1 데이터(또는 제1 데이터를 포함하는 제1 신호(510))를 보안 요소에 전송하기 전 제1 클락 신호(610)와 다른 제2 클락 신호(810)를 클락 라인(232)을 통해 보안 요소에 전송할 수 있다. 여기서, 보안 요소에 포함된 제2 리쥼 신호 인식기는 슬레이브 셀렉트 라인(231)이 하이 상태(활성화된 상태)에 있는 동안 제2 클락 신호(810)를 수신한 경우 제2 클락 신호(810)를 통신 시작을 알리는 제1 리쥼 신호로 인식할 수 있다. 즉, 호스트 컨트롤러에 포함된 제1 리쥼 신호 생성기는 제2 클락 신호(810)를 제1 리쥼 신호로서 생성할 수 있다.
호스트 컨트롤러는 제1 리쥼 신호를 클락 라인(232)을 통해 전송한 후 슬레이브 셀렉트 라인 활성화기를 통해 슬레이브 셀렉트 라인(231)을 하이 상태에서 로우 상태로 변경할 수 있다. 슬레이브 셀렉트 라인(231)은 하이 상태에서 비활성화되고, 로우 상태에서 활성화될 수 있다. 즉, 호스트 컨트롤러는 제1 리쥼 신호를 전송함에 따라 슬레이브 셀렉트 라인 활성화기를 통해 슬레이브 셀렉트 라인(231)을 활성화할 수 있다.
호스트 컨트롤러는 슬레이브 셀렉트 라인(231)이 활성화됨에 따라 제1 클락 신호(610)를 클락 라인(232)을 통해 보안 요소에 전송할 수 있다.
호스트 컨트롤러는 제1 클락 신호(610)가 보안 요소에 전송되는 동안 제1 데이터를 포함하는 제1 신호(510)를 MOSI 라인(234)을 통해 보안 요소에 전송할 수 있다.
호스트 컨트롤러는 제1 신호(510)의 전송을 완료한 경우, 클락 제어기를 통해 제1 클락 신호(610)를 더 이상 공급하지 않을 수 있다. 호스트 컨트롤러는 슬레이브 셀렉트 라인 활성화기를 통해 슬레이브 셀렉트 라인(231)을 로우 상태에서 하이 상태로 변경할 수 있다.
도 9 및 도 10은 몇몇 실시예에 따라 보안 요소가 호스트 컨트롤러에게 데이터를 전송하는 방법의 일례들을 설명하기 위한 도면들이다. 도 9 및 도 10과 관련하여 도 1 내지 도 8과 관련하여 상술한 바와 중복되는 내용은 다시 설명하지 않으며, 이하 차이점을 중심으로 설명한다.
도 9을 참조하면, 보안 요소는 제3 데이터(또는 제3 데이터를 포함하는 제2 신호(520))를 호스트 컨트롤러에 전송하기 전 범용 입출력 라인(235)을 로우 상태에서 하이 상태로 변경할 수 있다. 호스트 컨트롤러에 포함된 제1 리쥼 신호 인식기는 범용 입출력 라인(235)이 로우 상태에서 하이 상태로 변경된 경우 보안 요소와의 통신 시작을 알리는 제2 리쥼 신호가 수신되었다고 인식할 수 있다.
호스트 컨트롤러는 제2 리쥼 신호를 수신함에 따라 슬레이브 셀렉트 라인 활성화기를 통해 슬레이브 셀렉트 라인(231)을 하이 상태에서 로우 상태로 변경할 수 있다. 슬레이브 셀렉트 라인(231)은 하이 상태에서 비활성화되고, 로우 상태에서 활성화될 수 있다. 즉, 호스트 컨트롤러는 제2 리쥼 신호를 수신함에 따라 슬레이브 셀렉트 라인 활성화기를 통해 슬레이브 셀렉트 라인(231)을 활성화할 수 있다.
호스트 컨트롤러는 슬레이브 셀렉트 라인(231)이 활성화됨에 따라 제1 클락 신호(610)를 클락 라인(232)을 통해 보안 요소에 전송할 수 있다.
보안 요소는 제1 클락 신호(610)가 수신되는 동안 제1 데이터를 포함하는 제2 신호(520)를 MISO 라인(233)을 통해 보안 요소에 전송할 수 있다.
호스트 컨트롤러는 제2 신호(520)의 전송이 완료된 경우, 클락 제어기를 통해 제1 클락 신호(610)를 더 이상 공급하지 않을 수 있다. 호스트 컨트롤러는 슬레이브 셀렉트 라인 활성화기를 통해 슬레이브 셀렉트 라인(231)을 로우 상태에서 하이 상태로 변경할 수 있다. 그리고, 호스트 컨트롤러는 범용 입출력 라인(235)을 하이 상태에서 로우 상태로 변경할 수 있다.
도 10을 참조하면, 호스트 컨트롤러는 제3 데이터(또는 제3 데이터를 포함하는 제2 신호(520))를 보안 요소에 전송하기 전 제3 데이터와 관계 없는 제4 데이터를 포함하는 신호(720)를 MISO 라인(233)을 통해 보안 요소에 전송할 수 있다. 여기서, 호스트 컨트롤러의 제1 리쥼 신호 인식기는 슬레이브 셀렉트 라인(231)이 하이 상태(활성화된 상태)에 있는 동안 제4 데이터를 포함하는 신호(720)를 수신한 경우 제1 리쥼 신호가 수신되었다고 인식할 수 있다. 즉, 보안 요소에 포함된 제2 리쥼 신호 생성기는 제3 데이터와 관계 없는 제4 데이터를 제2 리쥼 신호로서 생성할 수 있다.
호스트 컨트롤러는 제2 리쥼 신호를 MISO 라인(233)을 통해 수신함에 따라 슬레이브 셀렉트 라인 활성화기를 통해 슬레이브 셀렉트 라인(231)을 하이 상태에서 로우 상태로 변경할 수 있다. 슬레이브 셀렉트 라인(231)은 하이 상태에서 비활성화되고, 로우 상태에서 활성화될 수 있다. 즉, 호스트 컨트롤러는 제2 리쥼 신호를 수신함에 따라 슬레이브 셀렉트 라인 활성화기를 통해 슬레이브 셀렉트 라인(231)을 활성화할 수 있다.
호스트 컨트롤러는 슬레이브 셀렉트 라인(231)이 활성화됨에 따라 제1 클락 신호(610)를 클락 라인(232)을 통해 보안 요소에 전송할 수 있다.
보안 요소는 제1 클락 신호(610)가 수신되는 동안 제3 데이터를 포함하는 제2 신호(520)를 MISO 라인(233)을 통해 보안 요소에 전송할 수 있다.
호스트 컨트롤러는 제2 신호(520)의 전송을 완료한 경우, 클락 제어기를 통해 제1 클락 신호(610)를 더 이상 공급하지 않을 수 있다. 호스트 컨트롤러는 슬레이브 셀렉트 라인 활성화기를 통해 슬레이브 셀렉트 라인(231)을 로우 상태에서 하이 상태로 변경할 수 있다.
도 11은 몇몇 실시예에 따른 호스트 컨트롤러가 보안 요소를 웨이크업시키는 방법의 일례를 설명하기 위한 도면이다. 도 11과 관련하여 도 1 내지 도 10과 관련하여 상술한 내용과 중복되는 내용은 다시 설명하지 않으며, 이하 차이점을 중심으로 설명한다.
도 11을 참조하면, 슬레이브 셀렉트 라인(231)이 활성화되어 있는 경우에도, 보안 요소가 웨이크업되어 있지 않을 수 있다. 이 경우, 호스트 컨트롤러는 보안 요소를 웨이크업 시키기 위한 신호를 생성할 수 있다.
예를 들어, 호스트 컨트롤러는 슬레이브 셀렉트 라인(231)이 활성화된 시간(t1)부터 제1 클락 신호(610)가 전송되기 시작하는 제2 시간(t2)까지의 타임 인터벌(a) 내에 보안 요소를 웨이크업 시키는 제3 리쥼 신호(730)를 생성할 수 있다. 여기서, 호스트 컨트롤러에 포함된 제1 송신기는 제3 리쥼 신호(730)를 MOSI 라인(234)을 통해 타임 인터벌(a) 내에 전송할 수 있다.
호스트 컨트롤러에 포함된 클락 제어기는, 제3 리쥼 신호(730)를 보안 요소에 전송한 후 기 설정된 시간이 경과된 때 제1 클락 신호(610)를 클락 라인(232)을 통해 보안 요소에 전송할 수 있다. 여기서, 제3 리쥼 신호(730)를 전송한 후 기 설정된 시간이 경과된 때 제1 클락 신호(610)를 전송하는 이유는 보안 요소가 웨이크업 될 때 소요되는 시간이 존재하기 때문이다.
결과적으로, 호스트 컨트롤러는 슬레이브 셀렉트 라인(231)이 활성화된 후 보안 요소를 웨이크업 시키기 위해 리쥼 신호를 생성하여 보안 요소에 전송할 수도 있다.
도 12는 몇몇 실시예에 따른 통신 계층을 설명하기 위한 도면이다. 도 13은 몇몇 실시예에 따른 직렬 주변기기 인터페이스 통신 시스템에서 사용되는 데이터 프레임의 구조의 일례를 설명하기 위한 도면이다.
몇몇 실시예에 따르면, 터미널 호스트(100), 예를 들어, 애플리케이션 프로세서(Application Processor)와 보안 요소(220) 사이의 통신은 도 12와 같은 통신 레이어(communication layer)를 구비할 수 있다.
도 12를 참조하면, 몇몇 실시예에 따른 통신 계층은 단일 와이어 프로토콜에 따르는 레이어들을 포함하되, 호스트 컨트롤러(210)와 보안 요소(220) 사이의 물리 계층(Physical Layer) 및 MAC 계층(Media Access Control Layer; MAC layer)은 직렬 주변기기 인터페이스(Serial Peripheral Interface; SPI)로 대체될 수 있다.
이 경우, 단일 와이어 프로토콜이 지원할 수 없는 통신 속도(예를 들어, 수십 Mbps)를 통신 계층을 통해 구현할 수 있다는 효과가 발생할 수 있다. 또한, 나머지 상위 계층은 그대로 유지하기 때문에 보안 요소 내의 운영 체제(Operating system; OS)의 변경을 최소화할 수 있다는 효과가 발생할 수 있다.
다만, 단일 와이어 프로토콜에 따르는 레이어들 중 물리 계층 및 MAC 계층이 직렬 주변기기 인터페이스로 대체되었기 때문에 직렬 주변 기기 인터페이스에서 사용되는 데이터 프레임의 구조는 도 13과 같이 변경될 수 있다.
도 13을 참조하면, 몇몇 실시예에 따른 데이터 프레임(900)은 제1 데이터 필드(910), 제2 데이터 필드(920), 제3 데이터 필드(930), 제4 데이터 필드(940) 및 제5 데이터 필드(950)로 구분될 수 있다. 다만, 이에 한정되는 것은 아니고 데이터 프레임(900)은 상술한 데이터 필드들보다 작거나 많은 데이터 필드로 구분될 수도 있다.
제1 데이터 필드(910)는 통신 시작을 알리는 리쥼 신호에 대응하는 데이터 필드이다. 호스트 컨트롤러 또는 보안 요소는 제1 데이터 필드(910)를 확인하여 통신이 시작되는지 여부를 인식할 수 있다.
제2 데이터 필드(920)는 데이터 프레임의 시작을 나타내는 데이터 필드일 수 있다. 호스트 컨트롤러 또는 보안 요소는 제2 데이터 필드(920)를 확인하여 데이터 프레임의 시작(Start Of Frame; SOF)을 인식할 수 있다.
제3 데이터 필드(930)는 데이터 프레임의 길이를 나타내는 데이터 필드일 수 있다, 호스트 컨트롤러 또는 보안 요소는 제2 데이터 필드(920) 및 제3 데이터 필드(930)를 확인하여 데이터 프레임의 끝(End Of Frame; EOF)을 인식할 수 있다.
제4 데이터 필드(940)는 호스트 컨트롤러 또는 보안 요소가 전송하는 데이터가 포함되는 데이터 필드일 수 있다.
제5 데이터 필드(950)는 제4 데이터 필드(940) 내에 포함된 데이터에 오류가 존재하는지 여부를 확인할 수 있는 오류 확인용 데이터가 포함되는 데이터 필드일 수 있다. 예를 들어, 순환 중복 검사(Cyclic Redundancy Check)를 위한 데이터가 제5 데이터 필드(950)에 포함될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
200: 직렬 주변기기 인터페이스 통신 시스템
210: 호스트 컨트롤러
220: 보안 요소

Claims (10)

  1. 보안 요소(Secure Element)와 직렬 주변기기 인터페이스(Serial Peripheral Interface) 방식을 통해 연결된 호스트 컨트롤러에 있어서,
    상기 보안 요소에 제1 데이터를 전송하기 전 상기 보안 요소와의 통신 시작을 알리는 제1 리쥼(RESUME) 신호를 생성하는 리쥼 신호 생성기;
    상기 제1 리쥼 신호를 상기 보안 요소에 전송하는 송신기;
    상기 제1 리쥼 신호를 전송한 후 슬레이브 셀렉트 라인을 활성화하는 슬레이브 셀렉트 라인 활성화기; 및
    상기 슬레이브 셀렉트 라인이 활성화됨에 따라 제1 클락 신호를 클락 라인을 통해 상기 보안 요소에 전송하는 클락 제어기를 포함하고,
    상기 송신기는,
    상기 제1 클락 신호가 전송되는 동안 상기 제1 데이터를 포함하는 제1 신호를 MOSI(Master Out Slave In) 라인을 통해 상기 보안 요소에 전송하는, 호스트 컨트롤러.
  2. 제 1 항에 있어서,
    상기 리쥼 신호 생성기는,
    상기 슬레이브 셀렉트 라인이 활성화된 제1 시간부터 상기 제1 클락 신호가 전송된 제2 시간까지의 타임 인터벌(time interval) 내에 상기 보안 요소를 웨이크업 시키는 제2 리쥼 신호를 생성하고,
    상기 송신기는,
    상기 타임 인터벌 내에 상기 제2 리쥼 신호를 상기 MOSI 라인을 통해 상기 보안 요소에 전송하는, 호스트 컨트롤러.
  3. 제 2 항에 있어서,
    상기 클락 제어기는,
    상기 제2 리쥼 신호를 상기 보안 요소에 전송한 후 기 설정된 시간이 경과된 때 상기 제1 클락 신호를 상기 클락 라인을 통해 상기 보안 요소에 전송하는, 호스트 컨트롤러.
  4. 제 1 항에 있어서,
    상기 리쥼 신호 생성기는,
    상기 클락 제어기를 제어하여 상기 제1 클락 신호와 다른 제2 클락 신호를 상기 제1 리쥼 신호로서 생성하고,
    상기 송신기는,
    상기 제1 리쥼 신호를 상기 클락 라인을 통해 상기 보안 요소에 전송하는, 호스트 컨트롤러.
  5. 제 1 항에 있어서,
    상기 제1 신호는,
    상기 제1 데이터의 시작을 나타내는 제1 데이터 필드 및 상기 제1 데이터의 길이를 나타내는 제2 데이터 필드를 포함하는, 호스트 컨트롤러.
  6. 제 1 항에 있어서,
    상기 리쥼 신호 생성기는,
    상기 제1 데이터와 관계 없는 제2 데이터를 포함하는 상기 제1 리쥼 신호를 생성하고,
    상기 송신기는,
    상기 제1 리쥼 신호를 상기 MOSI(Master Out Slave In) 라인을 통해 상기 보안 요소에 전송하는, 호스트 컨트롤러.
  7. 제 1 항에 있어서,
    상기 보안 요소로부터 제2 신호를 수신하는 수신기; 및
    상기 제2 신호가 통신 시작을 알리는 제3 리쥼 신호인지 여부를 인식하는 리쥼 신호 인식기를 더 포함하고,
    상기 슬레이브 셀렉트 활성화기는,
    상기 제2 신호가 상기 제3 리쥼 신호인 경우, 상기 슬레이브 셀렉트 라인을 활성화하고,
    상기 수신기는,
    상기 슬레이브 셀렉트 라인이 활성화되어 상기 제1 클락 신호가 상기 클락 라인을 통해 전송되는 동안 제3 데이터를 포함하는 제3 신호를 MISO(Master In Slave Out) 라인을 통해 상기 보안 요소로부터 수신하는, 호스트 컨트롤러.
  8. 제 7 항에 있어서,
    상기 리쥼 신호 인식기는,
    상기 슬레이브 셀렉트 라인이 비활성화된 상태에서 상기 제2 신호를 상기 MISO 라인을 통해 수신함에 따라, 상기 제2 신호를 상기 제3 리쥼 신호로 인식하는, 호스트 컨트롤러.
  9. 호스트 컨트롤러(Host Controller)와 직렬 주변기기 인터페이스(Serial Peripheral Interface) 방식을 통해 연결된 보안 요소(Secure Element)에 있어서,
    상기 호스트 컨트롤러에 제1 데이터를 전송하기 전 상기 호스트 컨트롤러와의 통신 시작을 알리는 제1 리쥼(RESUME) 신호를 생성하는 리쥼 신호 생성기; 및
    상기 제1 리쥼 신호를 상기 호스트 컨트롤러에 전송하는 송신기를 포함하고,
    상기 송신기는,
    슬레이브 셀렉트 라인이 활성화되고 클락 라인을 통해 제1 클락 신호가 수신되는 동안 상기 제1 데이터를 포함하는 제1 신호를 MISO(Master In Slave Out) 라인을 통해 상기 호스트 컨트롤러에 전송하는, 보안 요소.
  10. 보안 요소(Secure Element); 및
    상기 보안 요소와 직렬 주변기기 인터페이스(Serial Peripheral Interface) 방식을 통해 연결된 호스트 컨트롤러를 포함하고,
    상기 호스트 컨트롤러는,
    상기 보안 요소에 제1 데이터를 전송하기 전 상기 보안 요소와 상기 호스트 컨트롤러 간의 통신 시작을 알리는 제1 리쥼(RESUME) 신호를 생성하는 제1 리쥼 신호 생성기를 포함하고,
    상기 보안 요소는,
    상기 호스트 컨트롤러에 제2 데이터를 전송하기 전 상기 보안와 상기 호스트 컨트롤러 간의 통신 시작을 알리는 제2 리쥼 신호를 생성하는 제2 리쥼 신호 생성기를 포함하는, 직렬 주변기기 인터페이스(Serial Peripheral Interface) 통신 시스템.
KR1020170176746A 2017-12-21 2017-12-21 호스트 컨트롤러, 보안 요소 및 직렬 주변기기 인터페이스 통신 시스템 KR102428450B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170176746A KR102428450B1 (ko) 2017-12-21 2017-12-21 호스트 컨트롤러, 보안 요소 및 직렬 주변기기 인터페이스 통신 시스템
US16/018,334 US10289601B1 (en) 2017-12-21 2018-06-26 Host controller, secure element and serial peripheral interface communications system
CN201811403350.7A CN109948378A (zh) 2017-12-21 2018-11-22 主机控制器、安全元件和串行外设接口通信系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170176746A KR102428450B1 (ko) 2017-12-21 2017-12-21 호스트 컨트롤러, 보안 요소 및 직렬 주변기기 인터페이스 통신 시스템

Publications (2)

Publication Number Publication Date
KR20190075280A true KR20190075280A (ko) 2019-07-01
KR102428450B1 KR102428450B1 (ko) 2022-08-01

Family

ID=66439602

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170176746A KR102428450B1 (ko) 2017-12-21 2017-12-21 호스트 컨트롤러, 보안 요소 및 직렬 주변기기 인터페이스 통신 시스템

Country Status (3)

Country Link
US (1) US10289601B1 (ko)
KR (1) KR102428450B1 (ko)
CN (1) CN109948378A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11847087B2 (en) * 2021-09-16 2023-12-19 Qualcomm Incorporated Systems and methods for chip operation using serial peripheral interface (SPI) with reduced pin options
CN114513411B (zh) * 2021-12-30 2023-06-23 电子科技大学 用于物联网终端的统一的外设交互接口

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060013829A (ko) * 2004-08-09 2006-02-14 삼성전자주식회사 서스펜드/리쥼 기능을 갖는 집적 회로 카드 및 집적 회로카드 시스템
KR20160085882A (ko) * 2014-01-16 2016-07-18 인텔 코포레이션 고속 구성 메커니즘을 위한 장치, 방법, 및 시스템

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1134048A (en) * 1978-10-02 1982-10-19 Guy W. Gunzberg Data terminal for a point-of-manufacture data acquisition system
US5872721A (en) * 1990-04-11 1999-02-16 Transfresh Corporation Monitor-control systems and methods for monitoring and controlling atmospheres in containers for respiring perishables
US7762470B2 (en) * 2003-11-17 2010-07-27 Dpd Patent Trust Ltd. RFID token with multiple interface controller
US7250987B2 (en) * 2004-02-06 2007-07-31 Broadcom Corporation Method and system for an integrated VSB/QAM/NTSC/OOB plug-and-play DTV receiver
GB0509738D0 (en) * 2005-05-12 2005-06-22 Cambridge Consultants Processor and interface
US7970859B2 (en) * 2006-11-09 2011-06-28 Raritan Americas, Inc. Architecture and method for remote platform control management
US9483429B2 (en) * 2008-07-14 2016-11-01 Texas Instruments Incorporated Unified input/output controller for integrated wireless devices
FR2964285B1 (fr) 2010-08-31 2012-09-07 Proton World Int Nv Protection d'un canal de communication d'un dispositif de telecommunication couple a un circuit nfc contre un deroutement
CN102136082B (zh) * 2010-12-29 2013-01-23 上海爱信诺航芯电子科技有限公司 一种高速低功耗的安全sd卡
CN102136046B (zh) * 2010-12-29 2013-02-06 上海爱信诺航芯电子科技有限公司 一种高速低功耗的安全sd卡的通讯方法
US8840031B2 (en) * 2012-06-14 2014-09-23 Infineon Technologies Ag Smart card and a method for operating a smart card
US9224013B2 (en) * 2012-12-05 2015-12-29 Broadcom Corporation Secure processing sub-system that is hardware isolated from a peripheral processing sub-system
US9319088B2 (en) 2013-05-09 2016-04-19 Intel Corporation Radio communication devices and methods for controlling a radio communication device
US9268948B2 (en) * 2013-06-24 2016-02-23 Intel Corporation Secure access enforcement proxy
WO2015023254A1 (en) 2013-08-12 2015-02-19 Intel Corporation Communications techniques for a secure near field communication architecture
US9852090B2 (en) * 2013-12-11 2017-12-26 Adesto Technologies Corporation Serial memory device alert of an external host to completion of an internally self-timed operation
US9442184B2 (en) * 2014-02-21 2016-09-13 Nxp B.V. Functional safety monitor pin
US9299072B2 (en) 2014-05-29 2016-03-29 Apple Inc. Apparatuses and methods for operating a portable electronic device to conduct mobile payment transactions
CN104198972A (zh) * 2014-09-05 2014-12-10 国家电网公司 一种用于自动化检定流水线现场校验的集中器
CN104198971A (zh) * 2014-09-05 2014-12-10 国家电网公司 一种用于自动化检定流水线现场校验的集中器
PL3001323T3 (pl) * 2014-09-26 2018-01-31 Oberthur Technologies Szeregowy interfejs urządzeń peryferyjnych
FR3035252B1 (fr) 2015-04-14 2017-04-28 Stmicroelectronics Rousset Procede de gestion de la communication d'informations entre un controleur nfc et un element securise au sein d'un appareil, et appareil et controleur nfc correspondants
KR102349714B1 (ko) 2015-08-13 2022-01-12 삼성전자주식회사 전자 기기의 프로그램 관리 방법 및 장치
EP3742324A1 (en) * 2015-09-15 2020-11-25 Gatekeeper Ltd. System and method for securely connecting to a peripheral device
CN106845290B (zh) * 2017-01-25 2020-06-05 天津大学 用于安全存储芯片的sram控制器及其接口电路
US10921984B2 (en) * 2017-06-14 2021-02-16 Western Digital Technologies, Inc. Protection of user data in data storage devices using preemptive health reporting

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060013829A (ko) * 2004-08-09 2006-02-14 삼성전자주식회사 서스펜드/리쥼 기능을 갖는 집적 회로 카드 및 집적 회로카드 시스템
KR20160085882A (ko) * 2014-01-16 2016-07-18 인텔 코포레이션 고속 구성 메커니즘을 위한 장치, 방법, 및 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
'임베디드 S/W 보안기능 및 취약성 분석 항목 개발', 한국정보보호진흥원, 2006.12. *

Also Published As

Publication number Publication date
CN109948378A (zh) 2019-06-28
US10289601B1 (en) 2019-05-14
KR102428450B1 (ko) 2022-08-01

Similar Documents

Publication Publication Date Title
US10339093B2 (en) USB interface using repeaters with guest protocol support
KR101565357B1 (ko) 타임아웃을 처리하기 위한 시스템, 방법 및 장치
US11567895B2 (en) Method, apparatus and system for dynamic control of clock signaling on a bus
US8504823B2 (en) Dynamic configuration of connectors for system-level communications
US10311000B2 (en) Integrated universal serial bus (USB) type-C switching
CN108228509B (zh) 一种usb接口切换装置和电子设备
US20150220140A1 (en) Device, method and system for operation of a low power phy with a pcie protocol stack
US20190302867A1 (en) Method and apparatus for reducing continuous-wakeup delay of bluetooth loudspeaker, and bluetooth loudspeaker
CN103765345A (zh) 用于降低平台中空闲链路功率的方法和装置
US10101764B2 (en) Automatic clock configuration system
EP3275156B1 (en) Apparatus, system and method for sharing physical layer logic across multiple protocols
KR102151178B1 (ko) 직렬 통신 장치 및 그 방법
JP2019197598A (ja) 低電圧セキュアデジタル(sd)インターフェースのためのシステムおよび方法
KR102428450B1 (ko) 호스트 컨트롤러, 보안 요소 및 직렬 주변기기 인터페이스 통신 시스템
WO2022161244A1 (zh) 多主机仲裁方法、装置和可读存储介质
KR102613449B1 (ko) Pcie(pci(peripheral component interconnect) express) 링크에서의 측파대 시그널링
JP7270719B2 (ja) 端末およびTypeCインタフェース防食方法
US10209734B2 (en) Semiconductor device, semiconductor system, and method of operating the semiconductor device
US10108575B2 (en) Concurrent maintenance of modular PCIe I/O expansion drawer
US11132041B2 (en) Power supply with management interface and method therefor
US20200285602A1 (en) eUSB2 to USB 2.0 Data Transmission with Surplus Sync Bits
CN116209971A (zh) 电子装置及其操作方法
CN104899164B (zh) 集成电路总线的地址寻址方法、集成电路总线设备和系统
KR20170134434A (ko) 멀티-포트 물리 계층 (phy) 에 대한 위상 록킹 루프 (pll) 의 공유된 제어
CN112765082B (zh) 多主机仲裁方法、装置和可读存储介质

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