KR20140081809A - 마이크로컨트롤러용 가상 범용 입력/출력 - Google Patents

마이크로컨트롤러용 가상 범용 입력/출력 Download PDF

Info

Publication number
KR20140081809A
KR20140081809A KR1020147008324A KR20147008324A KR20140081809A KR 20140081809 A KR20140081809 A KR 20140081809A KR 1020147008324 A KR1020147008324 A KR 1020147008324A KR 20147008324 A KR20147008324 A KR 20147008324A KR 20140081809 A KR20140081809 A KR 20140081809A
Authority
KR
South Korea
Prior art keywords
register
output
input
coupled
multiplexer
Prior art date
Application number
KR1020147008324A
Other languages
English (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 마이크로칩 테크놀로지 인코포레이티드
Publication of KR20140081809A publication Critical patent/KR20140081809A/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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Logic Circuits (AREA)

Abstract

마이크로컨트롤러는, 복수의 외부 핀들에 결합되는 복수의 비트들을 구비한 범용 입출력(GPIO) 포트; 상기 GPIO 포트의 제1 제어 및 데이터 입출력 기능성 중 적어도 하나의 기능성을 제공하기 위한 제1 레지스터 세트; 상기 GPIO 포트의 제2 제어 및 데이터 입출력 기능성 중 적어도 하나의 기능성을 제공하기 위한 제2 레지스터 세트; 및, 멀티플렉서와, 상기 제1 또는 제2 레지스터 세트 중 어느 하나를 통해 상기 GPIO 포트를 제어하도록 상기 멀티플렉서를 제어하는 관련 선택 레지스터를 포함한다.

Description

마이크로컨트롤러용 가상 범용 입력/출력{VIRTUAL GENERAL PURPOSE INPUT/OUTPUT FOR A MICROCONTROLLER}
관련 출원
본 출원은 2011년 9월 27일에 출원된 발명의 명칭 "마이크로컨트롤러용 가상 범용 입력/출력"의 미국 가출원 번호 No.61/539,703호의 우선권 이익을 청구하며, 상기 미국 가출원은 여기에 완전하게 기재된 것처럼 그 전체가 본 출원에 참조로써 포함된다.
본 발명은 마이크로컨트롤러들에 관한 것으로, 특히, 마이크로컨트롤러들 내의 범용 입력/출력 포트들에 관한 것이다.
범용 입력/출력(GPIO) 포트는 일반적으로 마이크로컨트롤러의 병렬 디지털 입력/출력 포트로서 이해된다. 통상적인 마이크로컨트롤러들에 있어서, GPIO 기능들은 포트들(A, B, C 등)에 의해 조직화되고, 각 포트는 자신을 제어하기 위한 입력/출력 레지스터들의 세트를 갖는다. 또한, 포트가 디지털 입력에 이용되는지 또는 디지털 출력에 이용되는지를 제어하기 위해서, 3-상태(tri-state) 제어 레지스터와 같은, 방향 레지스터가 제공될 수 있다. 더욱, 마이크로컨트롤러들은 "로우 핀 카운트(low pin count)" 디바이스들이다.
일단, 사용자가 UART(범용 비동기 수신기/송신기), SPI(직렬 주변장치 인터페이스), I2C(내부-집적 회로) 등과 같이 전용핀들 기능에 필요한 핀들을 할당하면, 그 결과, 수많은 주변장치들이 각 핀상으로 멀티플렉싱될 때, 어떤 주어진 포트상에서 1 내지 3보다 많은 GPIO 기능들이 이용될 가능성은 크지 않다. 이는, 사용자가 한 쌍보다 많은 핀들을 가진 GPIO 핀들의 일관적인(coherent)(극소의(atomic), 즉, 단일의 CPU 명령어로 GPIO 핀들의 세트를 읽거나 쓸 수 있는 능력) 세트를 원할 때, 이들 핀들로 데이터 출력을 구동하거나 이들 핀들로부터 데이터를 샘플링하도록 복수의 레지스터들에 액세스해야만 한다는 것을 의미한다. 이는, 모든 GPIO 핀들이 동시에 하이(high)로 구동하고 모든 GPIO 핀들을 동시에 샘플링하도록 할 수 없는 것과 같은 한계를 초래한다.
종래 기술에서의 이러한 문제점들 및 다른 문제점들은, 본 발명의 실시예들에 따른 시스템 및 방법에 의해 대부분 극복된다.
본 발명의 일 실시예에 따른 마이크로컨트롤러는, 복수의 외부 핀들에 결합되는 복수의 비트들을 구비한 범용 입력/출력(GPIO) 포트; 상기 GPIO 포트의 제1 제어 및 데이터 입력/출력 기능성 중 적어도 하나의 기능성을 제공하기 위한 제1 레지스터 세트; 상기 GPIO 포트의 제2 제어 및 데이터 입력/출력 기능성 중 적어도 하나의 기능성을 제공하기 위한 제2 레지스터 세트; 멀티플렉서, 및 상기 제1 또는 제2 레지스터 세트 중 어느 하나를 통해 상기 GPIO 포트를 제어하도록 상기 멀티플렉서를 제어하기 위한 관련 선택 레지스터를 포함한다.
일부 실시예들에서, 상기 제1 및 제2 레지스터 세트는, 읽기 레지스터, 쓰기 레지스터, 및 방향 제어 레지스터를 포함한다. 일부 실시예들에서, 상기 포트는, 외부 핀과 결합되는 출력을 갖는 제어가능 출력 드라이버, 및 상기 외부 핀과 결합되는 입력을 갖는 입력 드라이버를 포함한다. 일부 실시예들에서, 제1 및 제2 읽기 레지스터는 제1 멀티플렉서를 통해 상기 입력 드라이버의 상기 출력과 결합되고, 제1 및 제2 쓰기 레지스터는 제2 멀티플렉서를 통해 상기 출력 드라이버의 상기 입력과 결합되고, 및, 상기 제1 및 제2 방향 제어 레지스터는 제3 멀티플렉서를 통해 상기 출력 드라이버의 제어 입력과 결합된다. 일부 실시예들에서, 외부 핀을 GPIO의 제2 기능성에 프로그램적으로 할당하도록 동작할 수 있는 주변장치 핀 선택 유닛을 더 포함한다.
본 발명의 일부 실시예들에 따르면, 프로세서용 입력/출력 구성은, 프로세서의 외부 핀에 선택적으로 결합되는 제1 범용 입력/출력 구성을 포함하는 복수의 제1 레지스터들; 상기 외부 핀에 선택적으로 결합되는 제2 범용 입력/출력 구성을 포함하는 복수의 제2 레지스터들; 및 상기 제1 범용 입력/출력 구성과 상기 제2 범용 입력/출력 구성 간의 스위칭을 제어하도록 동작가능하게 결합되는 제어 레지스터를 포함한다. 일부 실시예들에서, 상기 제1 범용 입력/출력 구성과 상기 제2 범용 입력/출력 구성 중에서 선택하기 위하여 상기 제어 레지스터로부터 제어 입력들을 수신하기 위한 적어도 하나의 멀티플렉서를 더 포함한다. 일부 실시예들에서, 상기 복수의 제1 레지스터들은, 제1 읽기 레지스터, 제1 쓰기 레지스터, 및 제1 방향 제어 레지스터를 포함하고, 및, 상기 복수의 제2 레지스터들은, 제2 읽기 레지스터, 제2 쓰기 레지스터, 및 제2 방향 제어 레지스터를 포함한다. 일부 실시예들에서, 상기 적어도 하나의 멀티플렉서는, 상기 제1 방향 제어 레지스터와 상기 제2 방향 제어 레지스터 중에서 선택하기 위한 제1 멀티플렉서; 및, 상기 제1 쓰기 레지스터 및 상기 제2 쓰기 레지스터 중에서 선택하기 위한 제2 멀티플렉서를 포함한다. 일부 실시예들에서, 상기 외부 핀과 결합되는 출력을 갖는 제어가능 출력 드라이버, 및, 상기 외부 핀과 결합되는 입력을 갖는 입력 드라이버를 더 포함한다.
상기한 구성에 의하여, 종래 기술에서의 이러한 문제점들 및 다른 문제점들이, 본 발명의 실시예들에 따른 시스템 및 방법에 의해 대부분 극복되었다.
첨부한 도면을 참조함으로써, 본 발명이 더 잘 이해될 수 있고, 본 발명의 많은 목적들, 특징들, 및 장점들이 당업자에게 분명해질 것이다. 다른 도면들에서의 같은 참조 부호들의 이용은, 유사하거나 동일한 항목을 나타낸다.
도 1은, 예시적인 마이크로컨트롤러 핀 구성을 도시한다.
도 2는, 종래의 GPIO 포트를 도시한다.
도 3은, 본 발명의 실시예에 따른 GPIO 포트를 도시한다.
도 4는, 본 발명의 실시예에 따른 GPIO 포트를 도시한다.
도 5는, 일 실시예에 따른 가상 포트와 함께 이용하기 위한 예시적인 레지스터들을 도시한다.
본 개시 및 본 개시의 다양한 특징들과 장점들은, 첨부한 도면들에 도시되고 하기의 설명에서 상세화된 예시적이고 따라서 제한적이 아닌 실시예들을 참조하면 더욱 완전하게 설명된다. 이미 알려진 프로그래밍 기법들, 컴퓨터 소프트웨어, 하드웨어, 운영 플랫폼들 및 프로토콜들에 대한 상세한 설명들은, 상세한 본 개시를 불필요하게 모호하게 하지 않도록 생략될 수 있다. 하지만, 상세한 설명 및 구체적인 실시예들은, 바람직한 실시예들을 나타내는 것이지만, 제한하기 위해서가 아니라 단지 설명하기 위해서 제공된 것으로 이해되어야 한다. 기본적인 발명적 개념의 사상 및/또는 범위 내에서 다양한 대체물들, 수정물들, 추가들 및/또는 재배열물들은 본 발명으로부터 당업자에게 자명할 것이다.
여기에서 사용된 용어들인 "포함한다(comprises)", "포함하는(comprising)", "포함한다(includes)", "포함하는(including)", "갖는다(has)", "갖는(having)" 또는 이들의 다른 다양한 변형들은, 비배타적 포함을 커버하도록 의도된다. 예를 들면, 요소들의 리스트를 포함하는 방법, 물건, 항목, 또는 장치는, 본질적으로 이들 요소들만으로 제한되는 것이 아니라, 오히려 명시적으로 리스트되어 있지 않거나 또는 이러한 방법, 물건, 항목, 또는 장치에 고유하지 않은 다른 요소들을 포함할 수 있다. 또한, 명시적으로 반대로 언급하지 않았다면, "또는"은 '배타적인 또는'이 아니라 '포괄적인 또는'을 의미한다. 예를 들면, "조건 A 또는 B"는 다음의 어느 하나에 의해 충족된다: A는 참(또는 존재)이고 B는 거짓(또는 부존재), A는 거짓(또는 부존재)이고 B는 참(또는 존재), 또한, A와 B가 모두 참(또는 존재)이다.
추가로, 여기에 제공된 모든 예시들 또는 실례들은, 어떤 경우이든, 함께 이용되는 용어 또는 용어들에 대한 제약들, 한정들, 또는 명시적인 정의들로서 간주되어서는 안된다. 그 대신에, 이러한 예시들 또는 실례들은, 하나의 특정한 실시예에 관하여 또한 단지 실례로서 설명하는 것으로 간주되어야 한다. 당업자는, 이러한 예시들 또는 도시들에 이용되는 어떤 용어 또는 용어들도, 다른 실시예들뿐만 아니라 다른 실시예들의 구현들 및 적용들-명세서에서 그것들과 함께 또는 다른 곳에서 제공되거나 또는 제공되지 않을 수 있음-까지도 포함하고, 또한 모든 이러한 실시예들은 상기 용어 또는 용어들의 범위 내에 포함되도록 의도된다는 것을 인식할 것이다. 이러한 비제한적 예시들 및 실례들을 나타내는 언어는, "예를 들면(for example)", "일례로서(for instance)", "예를 들어(e.g.)", "일 실시예에 있어서(in one embodiment)" 등을 포함하지만, 이에 제한되지 않는다.
이하에서 더욱 상세하게 설명되어지는 바와 같이, 다양한 실시예들에 따르면, 사용자는, 복수의 물리 포트들에 걸쳐서 분포된 GPIO 핀들을 가상 포트라 지칭되는 단일 소프트웨어 포트에 맵핑할 수 있다. 즉, 일부 실시예들에서는, 가상 포트는 비관련 핀들을 단일의 "포트"에 맵핑함으로써 구성된다.
일부 실시예들에서, 맵핑은, 마이크로칩으로부터 입수가능하고 핀들과 주변장치들간의 유연한 멀티플렉싱을 제공하는 주변장치 핀 선택(PPS) 기반구조(infrastructure)와 같은 재맵핑가능 핀 기능을 사용하고, 또한, 전용의 추가 GPIO 레지스터 세트를 사용한다. 그리하여, 복수의 GPIO들이 최초 할당된 동일 포트에 반드시 속하지는 않을지라도, 복수의 GPIO들을 동시에 구동하거나 샘플링하는 것이 가능해진다. 다른 적용예들에서는, 동일 포트가, 상기 포트의 광범위한 재프로그래밍을 요구하는 다른 구성들에서 이용될 수 있을 것이다. 일 실시예에 따르면, 적어도 제2 레지스터 세트로 인해, 사용자들은 간단하게 적어도 1비트의 선택 레지스터를 세트함으로써 스위치될 수 있는 2개 이상의 GPIO 포트의 구성들을 세트할 수 있다.
도면으로 전환하여, 특히, 도 1을 주목하면, 본 발명의 교시에 따라 이용될 수 있는 예시적인 마이크로컨트롤러가 도시되었다. 마이크로컨트롤러(100)는, Microchip Technologies, Inc.로부터 입수할 수 있는 PIC18F67J94로, 또는 유사한 마이크로컨트롤러 또는 프로세서로 구현될 수 있다. 마이크로컨트롤러(100)는 복수의 핀들을 포함하며, 핀들 중 다수는 하나의 기능보다 많은 기능을 구현하는 데에 이용된다. 도시된 예시에서, "R"로 지칭된 핀들은 주변장치 핀 선택 기능들을 이용하여 재맵핑가능하다. 주변장치 핀 선택 기능으로 인해, 프로그래머는 대부분 주변장치들의 I/O를 선택된 핀들에 맵핑할 수 있다.
하지만, 로우 핀 카운드들 및 주변장치들 갯수의 증가에 따라, 사용자들이 종종 그들의 GPIO에 구속되므로 핀들이 "남게된다(leftover)". 심지어 주변장치 핀 선택(PPS)으로도, 보드 레이아웃은 디바이스상에서 핀 선택을 구속할 수 있다. 만일, 다중-핀 GPIO "포트"가 프로토콜을 구현하거나 제어하도록 요구되고, 또한, 모든 핀들이 동일한 물리 포트(즉, 포트 A, B, 등)상에 있지 않다면, 복수의 명령어 사이클들은, 예를 들면, 읽기 레지스터(PORT)를 이용하여 그 포트를 읽기 위해, 예를 들면, 쓰기 레지스터(LAT)를 이용하여 그 포트를 읽기 위해, 또는 예를 들면, 이들 핀들상의 3-상태 레지스터(TRIS)를 이용하여 그 포트의 방향성을 스위칭하도록 요구된다. 종래의 시스템들에서는, 읽기들 및 쓰기들을 위해 GPIO 포트의 사이클 일관성(cycle coherency)을 유지하는 것이 불가능하다.
일례로서, 도 2에 종래의 GPIO 포트(200)가 도시되어 있다. 도면에는, I/O핀(201), 읽기 드라이버(204) 및 읽기 레지스터(210)(PORT); 그리고 쓰기 레지스터(LAT)(208) 및 선택 레지스터(TRIS)(206)와 함께 3-상태 쓰기 드라이버(202)가 도시되어 있다. 동작시, 레지스터(206)는 포트(200)의 입력 또는 출력 운영(functioning) 또는 방향성을 선택하는 데에 이용된다.
일 실시예에 따르면, 가상 포트로 인해, 사용자는 임의의 가능한 GPIO 핀을 가상 PORT로 할당할 수 있다. 도 3에 도시된 바와 같이, 기존의 GPIO 포트에는 원래 구성된 포트로부터 가상 기능에 할당된 레지스터의 구성 세트로 기능성(functionality)을 스위칭하는 단일 비트를 단지 세팅함으로써 활성화될 수 있는 섀도우 기능(shadow function)이 할당된다.
더욱 상세하게는, 도 3은, 일 실시예에 따른 예시적인 GPIO 가상 포트 구조를 도시한다. 도시된 바와 같이, 포트(300)는, 종래의 포트들과 유사하게 기능하는, 핀(301), 드라이버들(302, 304), 및 읽기(PORT) 레지스터(210), 쓰기(LAT) 레지스터(208), 및 선택(TRIS) 레지스터(206)를 포함한다. 하지만, 실시예들에 따르면, 가상 포트(300)는, 가상 쓰기(PBLAT) 레지스터(308), 가상 읽기(PBPORT) 레지스터(310), 및 가상 선택(PBTRIS) 레지스터(306)를 포함한다. 멀티플렉서들(314, 316)로 인해, 사용자들은 "실제" 또는 가상 포트 기능들 중에서 선택할 수 있다. 더욱 상세하게는, 표준 동작시에는, 표준 포트 구성이 이용될 수 있다. 가상 핀 선택 라인(들)(318, 313, 320)을 이용하여 선택함으로써, 사용자는 가상 포트 기능을 선택할 수 있다.
추가적인 로직은 최소한의 장소(real estate)만을 요구하므로, 다이 비용(die cost)을 계속 적게 유지한다. 예를 들면, 40개의 GPIO 핀들과 8핀 가상 포트를 구비하는 경우, 추가적 로직은 대략 1K 게이트들을 필요로 한다. 하지만, 이러한 필요는 기존의 PPS를 이용할 때 훨씬 더 감소될 수 있다.
일반적으로, GPIO는 전용 핀 기능으로 간주되며, 주변장치로서 취급되지 않는다. 하지만, 다양한 실시예들에 따르면, GPIO는, 임의의 다른 맵핑가능한 주변장치처럼 취급된다. 이하에서 더 상세하게 논의되듯이, 일부 실시예들에 따르면, 어떤 또는 대부분의 임의의 핀과 어떤 또는 대부분의 임의의 주변장치 간의 멀티플렉싱을 허용하는 PPS 기반구조와 같은 재맵핑가능 핀 기능 기반구조를 이용함으로써, 신규 "GPIO 주변장치"가 재맵핑가능 주변장치들의 리스트에 추가된다. 즉, PPS와 같은 재맵핑가능 핀 기능으로서, 가상 포트는 단지 또하나의 주변장치 디바이스인 것처럼 보인다. 이 GPIO 주변장치 내에서, 신규 세트의 전용 GPIO 레지스터들은 핀-기반 GPIO 기능들과 동일하게 기능한다. 일부 실시예들에서, 이러한 추가적 GPIO 주변장치는 가장 낮은 우선권 재맵핑가능 주변장치로서 핀-기반 GPIO 핀 기능들(재맵핑가능 핀 기능 세트의 일부는 아님)의 바로 위에 위치될 수 있으므로, 추가적 GPIO 주변장치는 핀-기반 GPIO 핀 기능들처럼 행동하지만(보이고 및 느껴지지만), 추가적인 GPIO 주변장치가 맵핑되는 물리적인 핀과는 독립적이다. 결과적으로, 한 그룹의 연결되지 않은(즉, 복수의 GPIO "포트들"에 걸쳐서 분포된) 핀들은, 최소의 추가적인 로직에 따라 극소(atomic)(즉, 동일한 GPIO "포트"상의 전체) 그룹의 핀들과 같이 보이는 것으로 변환될 수 있다.
도 4로 전환하면, 재맵핑가능 핀 기능 환경내의 가상 GPIO를 보여주는 도면(400)이 도시되어 있다. 환경(400)은, GPIO 가상 포트 구조(402) 및 주변장치들(422a~422n)을 포함한다. GPIO 가상 포트 구조는, 종래의 포트들과 유사하게 기능하며 도 3을 참조하여 상술된 바와 같은, 핀(401), 드라이버들(302, 304), 및 읽기(PORT) 레지스터(210), 쓰기(LAT) 레지스터(208), 및 선택(TRIS) 레지스터(206)를 포함한다. 또한, 가상 포트(402)는, 가상 쓰기(PBLAT) 레지스터(308), 가상 읽기(PBPORT) 레지스터(310), 및 가상 선택(PBTRIS) 레지스터(306)을 포함한다. 멀티플렉서들(414, 416)로 인해, 사용자들은 상술한 바와 유사한 방식으로, "실제" 또는 가상 포트 기능들 중에서 선택할 수 있다. 가상 핀 선택 라인(들)(도시하지 않음)을 선택함으로써, 사용자는 가상 포트 기능을 선택할 수 있다.
또한, 재맵핑가능 핀 기능 환경에 있어서, 멀티플렉서들(414, 416)은 주변장치들(422a~422n)로부터 입력들을 수신한다. 특히, 일부 실시예들에서, 출력 인에이블 라인들(426a, 426n)이 핀(401)으로의 쓰기를 인에이블하도록 멀티플렉서(414)에 제공되고, 출력 데이터 라인들(428a...428n)이 그 핀에 데이터를 쓰도록 멀티플렉서(416)에 제공된다.
다양한 실시예들에 따르면, 한 세트의 개별적인 PBLAT, PBPORT 및 PBTRIS 레지스터들이 구현된다. 예를 들면, 도 5에는, PIC18 마이크로컨트롤러용의 8비트폭 LAT(쓰기)(308), PORT(읽기)(310), 및 TRIS(선택)(306) 레지스터들이 도시되어 있다. 레지스터 폭은, 레지스터 읽기들/쓰기들이 극소(atomic)이도록 아키텍처의 본래의(native) 데이터 폭일 것이다.
비록, 상술한 설명이 구체적인 실시예들을 설명하고 있을지라도, 여기에 개시된 실시예들의 상세들의 많은 변경은, 본 발명에 관계가 있는 당업자에게 자명할 것이며 또한 당업자에 의해 만들어질 수 있을 것이다. 이 취지에서, 명세서 및 도면들은, 제한적인 의미보다는, 예시적인 것으로 간주되어야 하며, 모든 그러한 수정들은 본 발명의 범위 내에 포함되는 것으로 의도된다. 따라서, 본 발명의 범위는 하기의 청구항들 및 그들의 법적 균등물들에 의해 결정되어야 할 것이다.

Claims (15)

  1. 복수의 외부 핀들에 결합되는 복수의 비트들을 구비한 범용 입력/출력(GPIO) 포트;
    상기 GPIO 포트의 제1 제어 및 데이터 입력/출력 기능성 중 적어도 하나의 기능성을 제공하기 위한 제1 레지스터 세트;
    상기 GPIO 포트의 제2 제어 및 데이터 입력/출력 기능성 중 적어도 하나의 기능성을 제공하기 위한 제2 레지스터 세트;
    멀티플렉서, 및 상기 제1 또는 제2 레지스터 세트 중 어느 하나를 통해 상기 GPIO 포트를 제어하도록 상기 멀티플렉서를 제어하기 위한 관련 선택 레지스터를 포함하는 마이크로컨트롤러.
  2. 제1항에 있어서,
    상기 제1 및 제2 레지스터 세트는, 읽기 레지스터, 쓰기 레지스터, 및 방향 제어 레지스터를 포함하는 마이크로컨트롤러.
  3. 제2항에 있어서,
    상기 포트는, 외부 핀과 결합되는 출력을 갖는 제어가능 출력 드라이버, 및
    상기 외부 핀과 결합되는 입력을 갖는 입력 드라이버를 포함하는 마이크로컨트롤러.
  4. 제3항에 있어서,
    제1 및 제2 읽기 레지스터는 제1 멀티플렉서를 통해 상기 입력 드라이버의 상기 출력과 결합되고, 제1 및 제2 쓰기 레지스터는 제2 멀티플렉서를 통해 상기 출력 드라이버의 상기 입력과 결합되고, 및, 상기 제1 및 제2 방향 제어 레지스터는 제3 멀티플렉서를 통해 상기 출력 드라이버의 제어 입력과 결합되는 마이크로컨트롤러.
  5. 제1항에 있어서,
    외부 핀을 GPIO의 제2 기능성에 프로그램적으로 할당하도록 동작할 수 있는 주변장치 핀 선택 유닛을 더 포함하는 마이크로컨트롤러.
  6. 프로세서의 외부 핀에 선택적으로 결합되는 제1 범용 입력/출력 구성을 포함하는 복수의 제1 레지스터들;
    상기 외부 핀에 선택적으로 결합되는 제2 범용 입력/출력 구성을 포함하는 복수의 제2 레지스터들; 및
    상기 제1 범용 입력/출력 구성과 상기 제2 범용 입력/출력 구성 간의 스위칭을 제어하도록 동작가능하게 결합되는 제어 레지스터를 포함하는 프로세서용 입력/출력 구성.
  7. 제6항에 있어서,
    상기 제1 범용 입력/출력 구성과 상기 제2 범용 입력/출력 구성 중에서 선택하기 위하여 상기 제어 레지스터로부터 제어 입력들을 수신하기 위한 적어도 하나의 멀티플렉서를 더 포함하는 프로세서용 입력/출력 구성.
  8. 제7항에 있어서,
    상기 복수의 제1 레지스터들은, 제1 읽기 레지스터, 제1 쓰기 레지스터, 및 제1 방향 제어 레지스터를 포함하고, 및,
    상기 복수의 제2 레지스터들은, 제2 읽기 레지스터, 제2 쓰기 레지스터, 및 제2 방향 제어 레지스터를 포함하는 프로세서용 입력/출력 구성.
  9. 제8항에 있어서,
    상기 적어도 하나의 멀티플렉서는,
    상기 제1 방향 제어 레지스터와 상기 제2 방향 제어 레지스터 중에서 선택하기 위한 제1 멀티플렉서; 및, 상기 제1 쓰기 레지스터 및 상기 제2 쓰기 레지스터 중에서 선택하기 위한 제2 멀티플렉서를 포함하는 프로세서용 입력/출력 구성.
  10. 제9항에 있어서,
    상기 외부 핀과 결합되는 출력을 갖는 제어가능 출력 드라이버, 및,
    상기 외부 핀과 결합되는 입력을 갖는 입력 드라이버를 더 포함하는 프로세서용 입력/출력 구성.
  11. 복수의 외부 핀들에 결합되는 복수의 비트들을 구비한 범용 입력/출력(GPIO) 포트를 제공하는 단계;
    상기 GPIO 포트의 제1 제어 및 데이터 입력/출력 기능성 중 적어도 하나의 기능성을 제공하기 위한 제1 레지스터 세트를 제공하는 단계;
    상기 GPIO 포트의 제2 제어 및 데이터 입력/출력 기능성 중 적어도 하나의 기능성을 제공하기 위한 제2 레지스터 세트를 제공하는 단계; 및
    멀티플렉서, 및, 상기 제1 또는 제2 레지스터 세트를 통해 상기 GPIO 포트를 제어하도록, 상기 멀티플렉서를 제어하는 관련 선택 레지스터를 제공하는 단계를 포함하는 방법.
  12. 제11항에 있어서,
    제1 및 제2 레지스터 세트는, 읽기 레지스터, 쓰기 레지스터, 및 방향 제어 레지스터를 포함하는 방법.
  13. 제12항에 있어서,
    상기 포트는, 외부 핀과 결합되는 출력을 갖는 제어가능 출력 드라이버, 및 상기 외부 핀과 결합되는 입력을 갖는 입력 드라이버를 포함하는 방법.
  14. 제13항에 있어서,
    상기 제1 및 제2 읽기 레지스터는 제1 멀티플렉서를 통해 상기 입력 드라이버의 상기 출력과 결합되고, 상기 제1 및 제2 쓰기 레지스터는 제2 멀티플렉서를 통해 상기 출력 드라이버의 상기 입력과 결합되고, 및 상기 제1 및 제2 방향 제어 레지스터는 제3 멀티플렉서를 통해 상기 출력 드라이버의 제어 입력과 결합되는 방법.
  15. 제11항에 있어서,
    외부 핀을 GPIO의 제2 기능성에 프로그램적으로 할당하도록 동작할 수 있는 주변장치 핀 선택 유닛을 제공하는 것을 더 포함하는 방법.
KR1020147008324A 2011-09-27 2012-09-27 마이크로컨트롤러용 가상 범용 입력/출력 KR20140081809A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161539703P 2011-09-27 2011-09-27
US61/539,703 2011-09-27
US13/627,378 2012-09-26
US13/627,378 US9904646B2 (en) 2011-09-27 2012-09-26 Virtual general purpose input/output for a microcontroller
PCT/US2012/057430 WO2013052334A1 (en) 2011-09-27 2012-09-27 Virtual general purpose input/output for a microcontroller

Publications (1)

Publication Number Publication Date
KR20140081809A true KR20140081809A (ko) 2014-07-01

Family

ID=47912521

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147008324A KR20140081809A (ko) 2011-09-27 2012-09-27 마이크로컨트롤러용 가상 범용 입력/출력

Country Status (6)

Country Link
US (2) US9904646B2 (ko)
EP (1) EP2761485B1 (ko)
KR (1) KR20140081809A (ko)
CN (1) CN104011697B (ko)
TW (1) TWI620071B (ko)
WO (1) WO2013052334A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210116359A (ko) 2020-03-16 2021-09-27 이광희 Ble 메쉬 그룹 설정이 가능한 스마트 조명 장치 및 이를 이용한 조명 제어 방법

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9904646B2 (en) 2011-09-27 2018-02-27 Microchip Technology Incorporated Virtual general purpose input/output for a microcontroller
US9710352B2 (en) * 2012-09-28 2017-07-18 Atmel Corporation Microcontroller with integrated monitoring capabilities for network applications
US9129072B2 (en) 2012-10-15 2015-09-08 Qualcomm Incorporated Virtual GPIO
US9747244B2 (en) 2013-11-22 2017-08-29 Qualcomm Incorporated Clockless virtual GPIO
BR102013033274B1 (pt) * 2013-12-23 2022-08-23 Universidade Federal De Minas Gerais - Ufmg Uso de adsorventes obtidos a partir do lodo de esgoto na remoção de constituintes químicos lipofílicos
US9417801B2 (en) * 2014-03-27 2016-08-16 Intel Corporation Virtual general-purpose I/O controller
US9921982B2 (en) * 2014-06-05 2018-03-20 Microchip Technology Incorporated Device and method to assign device pin ownership for multi-processor core devices
US9921988B2 (en) * 2014-06-05 2018-03-20 Microchip Technology Incorporated Device and method to assign device pin functionality for multi-processor core devices
US10002102B2 (en) * 2015-03-13 2018-06-19 Microchip Technology Incorporated Low-pin microcontroller device with multiple independent microcontrollers
GB2539460A (en) * 2015-06-16 2016-12-21 Nordic Semiconductor Asa Integrated circuit inputs and outputs
GB2546232A (en) * 2015-06-16 2017-07-19 Nordic Semiconductor Asa Integrated circuit inputs and outputs
US10241953B2 (en) * 2015-08-07 2019-03-26 Qualcomm Incorporated Dynamic data-link selection over common physical interface
US10872049B2 (en) * 2016-01-29 2020-12-22 Analog Devices, Inc. GPIO-to-GPIO communication on a multi-node daisy-chained network
DE102017101470B4 (de) 2016-01-29 2023-04-13 Analog Devices, Inc. Kommunikation von gpio zu gpio in einem verketteten netzwerk mit mehreren knoten
US10180925B2 (en) 2016-03-28 2019-01-15 Nxp Usa, Inc. Integrated circuit with pin level access to IO pins
CN107329417B (zh) * 2016-04-28 2023-08-15 深圳市博巨兴微电子科技有限公司 一种微控制器及其输入输出引脚映射电路
AU2017319719B2 (en) * 2016-09-05 2022-09-22 IOT.nxt BV Software-defined device interface system and method
US11379398B2 (en) * 2019-06-04 2022-07-05 Microchip Technology Incorporated Virtual ports for connecting core independent peripherals
US20240211418A9 (en) * 2019-06-24 2024-06-27 Samsung Electronics Co., Ltd. Multi-function flexible computational storage device
GB201909270D0 (en) * 2019-06-27 2019-08-14 Nordic Semiconductor Asa Microcontroller system with GPIOS
WO2021035435A1 (en) * 2019-08-23 2021-03-04 Micron Technology, Inc. Dynamic channel mapping for memory system
CN110647485B (zh) * 2019-09-23 2021-04-06 大唐半导体科技有限公司 一种芯片及其管脚复用的实现方法
CN110781118B (zh) * 2019-09-30 2023-11-03 深圳震有科技股份有限公司 实现并行总线从模式的方法及装置、计算机设备、介质
CN110825667B (zh) * 2019-11-12 2022-03-11 飞腾信息技术有限公司 一种低速io设备控制器的设计方法和结构
CN110912840B (zh) * 2019-11-24 2021-06-29 苏州浪潮智能科技有限公司 基于交换机端口的统一接口装置及底层设备信息获取方法
CN112929789B (zh) * 2019-12-05 2022-12-13 矽统科技股份有限公司 音讯数据处理电路及音讯数据处理方法
TWI756593B (zh) 2019-12-05 2022-03-01 矽統科技股份有限公司 音訊資料處理電路及音訊資料處理方法
KR102325428B1 (ko) * 2019-12-09 2021-11-12 한국전자기술연구원 가상 하드웨어를 이용한 i/o 포트 에뮬레이팅 시스템 및 방법
CN111562946B (zh) * 2020-05-06 2023-09-08 青岛信芯微电子科技股份有限公司 一种数据处理方法及芯片
CN116414465A (zh) * 2021-12-29 2023-07-11 捷普电子(新加坡)公司 计算机介面引导互动方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4363108A (en) * 1979-06-25 1982-12-07 Honeywell Information Systems Inc. Low cost programmable video computer terminal
KR930004033B1 (ko) * 1990-08-09 1993-05-19 현대전자산업 주식회사 프로그래머블 로직소자의 입력/출력 마크로셀
US5309426A (en) * 1993-01-26 1994-05-03 International Business Machines Corporation High performance cascadable simplex switch
US5402014A (en) * 1993-07-14 1995-03-28 Waferscale Integration, Inc. Peripheral port with volatile and non-volatile configuration
US5440515A (en) * 1994-03-08 1995-08-08 Motorola Inc. Delay locked loop for detecting the phase difference of two signals having different frequencies
US5736867A (en) * 1996-06-04 1998-04-07 Cypress Semiconductor Corporation Method and circuit for reconfiguring a buffer
US6055619A (en) 1997-02-07 2000-04-25 Cirrus Logic, Inc. Circuits, system, and methods for processing multiple data streams
US5883844A (en) * 1997-05-23 1999-03-16 Stmicroelectronics, Inc. Method of stress testing integrated circuit having memory and integrated circuit having stress tester for memory thereof
US7239694B2 (en) * 2000-06-30 2007-07-03 Protel, Inc. Integrated circuit configurations and methods for providing functions for public telephones
US7200769B1 (en) * 2001-08-29 2007-04-03 Altera Corporation Self-compensating delay chain for multiple-date-rate interfaces
US6686769B1 (en) * 2001-12-14 2004-02-03 Altera Corporation Programmable I/O element circuit for high speed logic devices
US6703860B1 (en) * 2001-12-14 2004-03-09 Lattice Semiconductor Corporation I/O block for a programmable interconnect circuit
US6661254B1 (en) * 2001-12-14 2003-12-09 Lattice Semiconductor Corporation Programmable interconnect circuit with a phase-locked loop
US6653861B1 (en) * 2001-12-14 2003-11-25 Lattice Semiconductor Corporation Multi-level routing structure for a programmable interconnect circuit
US6998871B2 (en) * 2002-11-29 2006-02-14 Sigmatel, Inc. Configurable integrated circuit for use in a multi-function handheld device
KR100469278B1 (ko) * 2002-12-26 2005-02-02 엘지전자 주식회사 Dtv 시스템의 디코더 asic
US7707341B1 (en) * 2004-05-11 2010-04-27 Advanced Micro Devices, Inc. Virtualizing an interrupt controller
US7526579B2 (en) 2005-01-27 2009-04-28 Innovasic, Inc. Configurable input/output interface for an application specific product
US8067948B2 (en) * 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
US7631211B1 (en) * 2006-06-27 2009-12-08 Altera Corporation Sharing elements in multiple data-rate I/O
US7460441B2 (en) 2007-01-12 2008-12-02 Microchip Technology Incorporated Measuring a long time period
US8860683B2 (en) 2007-04-05 2014-10-14 Cypress Semiconductor Corporation Integrated button activation sensing and proximity sensing
US20090167719A1 (en) 2007-11-02 2009-07-02 Woolley Richard D Gesture commands performed in proximity but without making physical contact with a touchpad
US8054300B2 (en) 2008-06-17 2011-11-08 Apple Inc. Capacitive sensor panel having dynamically reconfigurable sensor size and shape
US7764213B2 (en) 2008-07-01 2010-07-27 Microchip Technology Incorporated Current-time digital-to-analog converter
CN101329663B (zh) 2008-07-31 2010-04-21 炬力集成电路设计有限公司 一种实现片上系统管脚分时复用的装置及方法
JP4775669B2 (ja) 2008-10-10 2011-09-21 ソニー株式会社 情報処理装置、情報処理方法、情報処理システムおよび情報処理用プログラム
US8836350B2 (en) 2009-01-16 2014-09-16 Microchip Technology Incorporated Capacitive touch sensing using an internal capacitor of an analog-to-digital converter (ADC) and a voltage reference
EP2389622A1 (en) 2009-01-26 2011-11-30 Zrro Technologies (2009) Ltd. Device and method for monitoring an object's behavior
JP2010244302A (ja) 2009-04-06 2010-10-28 Sony Corp 入力装置および入力処理方法
US8723833B2 (en) 2009-07-13 2014-05-13 Microchip Technology Incorporated Capacitive touch system with noise immunity
KR101639383B1 (ko) 2009-11-12 2016-07-22 삼성전자주식회사 근접 터치 동작 감지 장치 및 방법
US9904646B2 (en) 2011-09-27 2018-02-27 Microchip Technology Incorporated Virtual general purpose input/output for a microcontroller

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210116359A (ko) 2020-03-16 2021-09-27 이광희 Ble 메쉬 그룹 설정이 가능한 스마트 조명 장치 및 이를 이용한 조명 제어 방법

Also Published As

Publication number Publication date
CN104011697A (zh) 2014-08-27
CN104011697B (zh) 2017-05-24
EP2761485B1 (en) 2016-09-21
US20180181526A1 (en) 2018-06-28
US10339087B2 (en) 2019-07-02
EP2761485A1 (en) 2014-08-06
US20130080677A1 (en) 2013-03-28
TW201329729A (zh) 2013-07-16
TWI620071B (zh) 2018-04-01
US9904646B2 (en) 2018-02-27
WO2013052334A1 (en) 2013-04-11

Similar Documents

Publication Publication Date Title
US10339087B2 (en) Virtual general purpose input/output for a microcontroller
CN107015928B (zh) 用以切换多个接口的系统及其方法及用以切换总线的系统
US7085863B2 (en) I2C device including bus switches and programmable address
US20180260585A1 (en) System with secure soc connections among ip and multiple gpios, and corresponding method
US20090125703A1 (en) Context Switching on a Network On Chip
KR20180050728A (ko) 멀티-노드 네트워크에서의 입력/출력 신호 브릿징 및 가상화
US10162780B2 (en) PCI express switch and computer system using the same
JP2012252700A (ja) 動的ポート優先割当能力を有しているメモリコントローラー
US8090894B1 (en) Architectures for supporting communication and access between multiple host devices and one or more common functions
CN107743621B (zh) 集成电路输入及输出
KR100868804B1 (ko) 멀티-포트 장치 구성 방법과, 머신 판독 가능 매체와, 장치 및 컴퓨터 시스템
CN106919531B (zh) 基于非易失性存储总线协议的交互方法及设备
CN108292266B (zh) 通过存储器范围筛选器和可选择地址平坦化用于可配置存储器映射的SoC结构扩展
JPH04358252A (ja) ワークステーションおよびその構成方法
US8244994B1 (en) Cooperating memory controllers that share data bus terminals for accessing wide external devices
US8954622B1 (en) Embedded programmable logic for logic stacking on application processor
US7287151B2 (en) Communication path to each part of distributed register file from functional units in addition to partial communication network
CN117480498A (zh) 在运行时间为裸金属服务器动态提供PCIe器件
US7165132B1 (en) Processing node including a plurality of processor cores and an interconnect configurable in a test-mode to cause first and second transaction source indicators to be interchanged
KR20160081852A (ko) 스토리지 제어 메커니즘을 구비한 전자 시스템 및 그것의 동작 방법
JP2007508620A (ja) マルチマスタ共用資源システム中で使用するための通信ステアリング
US8892784B2 (en) Adaptive apparatus
US7596651B2 (en) Multi-character adapter card
JP4480678B2 (ja) 半導体集積回路装置
KR101646223B1 (ko) 망 선택 기능을 구비한 컴퓨터 및 그 컴퓨터의 망 활성화 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right