KR102246272B1 - 전자 디바이스의 범용 제어를 위한 시스템 및 방법 - Google Patents

전자 디바이스의 범용 제어를 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102246272B1
KR102246272B1 KR1020157036516A KR20157036516A KR102246272B1 KR 102246272 B1 KR102246272 B1 KR 102246272B1 KR 1020157036516 A KR1020157036516 A KR 1020157036516A KR 20157036516 A KR20157036516 A KR 20157036516A KR 102246272 B1 KR102246272 B1 KR 102246272B1
Authority
KR
South Korea
Prior art keywords
hardware
control
input
software
controller
Prior art date
Application number
KR1020157036516A
Other languages
English (en)
Other versions
KR20160040145A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=51934196&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR102246272(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 다니엘 쟈콥 세이드너 filed Critical 다니엘 쟈콥 세이드너
Publication of KR20160040145A publication Critical patent/KR20160040145A/ko
Application granted granted Critical
Publication of KR102246272B1 publication Critical patent/KR102246272B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41835Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by programme execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45031Manufacturing semiconductor wafers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/06Structured ASICs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/08HW-SW co-design, e.g. HW-SW partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/18Manufacturability analysis or optimisation for manufacturability

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Selective Calling Equipment (AREA)

Abstract

본 발명은, 디바이스와 통합되고 이 디바이스를 제어하는 집적 회로를 제공하는 시스템 및 방법으로서, 상기 집적 회로의 설계는 상기 디바이스의 특성의 선택에 기초하여 개발된, 시스템 및 방법에 관한 것이다. 상기 시스템 및 방법은 상기 집적 회로와 제어기 사이에 상호 동작 가능성을 수립하는 소프트웨어를 더 제공한다.

Description

전자 디바이스의 범용 제어를 위한 시스템 및 방법{SYSTEM AND METHOD FOR UNIVERSAL CONTROL OF ELECTRONIC DEVICES}
본 발명은 디바이스에 통합될 때 디바이스를 제어하는 IC를 설계하는 컴퓨터로 구현되는 방법에 관한 것이다.
최근 얼마 동안, 개발자와 제조사들이 자기 제품에 원격 제어를 제공할 수 있는 정도까지 기술이 발전되었다. 매우 간단한 예는 텔레비전과 그 원격 제어기이다. 원격 제어기는 무선 신호, 보통 적외선을 사용하여 유저가 제공한 제어 명령을 텔레비전 세트에 송신한다. 텔레비전 세트는 이 제어 명령, 예를 들어, 텔레비전 턴오프 명령 또는 채널 변경 명령을 실행한다. TV와 원격 제어기의 경우에, 제조사는 그 텔레비전 시스템의 전용 사양과 상호 작용할 수 있도록 원격 제어기를 설계, 개발 및 프로그래밍하여야 한다. 하나의 텔레비전 시스템을 위한 원격 제어기 설정은 다른 텔레비전 시스템 또는 DVD 플레이어와 같은 상이한 시스템에 대해서는 작동하지 않을 수 있다.
인터넷에 연결된 디바이스가 널리 확산된 것으로 인해, 개발자들은 인터넷에 연결된 디바이스를 제어하는 소프트웨어와 제어기를 개발하게 되었다. 하나의 예는 원격 데스크탑 소프트웨어를 갖는 퍼스널 컴퓨터이다. 이 소프트웨어에 의해 (올바른 소프트웨어를 갖는) 퍼스널 컴퓨터는, 인터넷에 연결되어 원격 데스크탑 소프트웨어를 실행하는 다른 퍼스널 컴퓨터를 제어할 수 있다. 다른 예는 예를 들어 에아알드론(AR.Drone), 스피어(Sphere) 및 아이헬리콥터(iHelicopter)와 같은 스마트폰에 의해 제어될 수 있는 집적 회로(IC)를 구비하는 기계적인 디바이스이다. 이와 같은 상황에서, 개발자들은 현재 전용 하드웨어의 제어 기능을 제어하는 전용 소프트웨어를 생산하거나 개발해야 한다.
또한 제어는 퍼스널 컴퓨터를 넘어 진행되었다. 개발자들은 원격 통신 디바이스와 통합된 마이크로 제어 유닛(micro control unit: MCU)을 설계하고 형성하였고, 이 마이크로 제어 유닛을 프로그래밍하여 국부적으로 및 원격으로 명령을 수신하도록 하였다.
과거에, 명령을 호스트 디바이스에 송신하는 제어 디바이스는 호스트 디바이스 제조사에 의해 구체적으로 제조되고 설계되었을 수 있다. 그러나, 예를 들어, 스마트 폰과 같은 새로운 디바이스는 매우 적응성이 있고 아주 일상적인 것이기 때문에 제어 디바이스를 제조할 필요성이 요구되지 않는다. 이 휴대형 디바이스는 전통적인 텔레비전 원격 제어기보다 더 소형이고, 수신기를 갖는 임의의 객체에 명령을 제공하는 소프트웨어를 가지게 구성될 수 있다. 유일한 제한사항은, 객체가 적절한 하드웨어를 구비해야 한다는 것과 제어 디바이스가 적절한 소프트웨어를 구비해야 한다는 것이다.
또한 생산할 수 있는 객체 또는 제품에 원격 제어 가능성을 제공하기를 원하는 개발자는 이 원격 제어 기능을 위한 소프트웨어와 하드웨어를 개발하는데 많은 시간과 비용을 소비하여야 한다. 예를 들어, 개발자는 원격 통신을 수신하도록 구체적으로 설계된 응용 특정 집적 회로(application specific integrated circuit: ASIC)를 그 제품에 구비하도록 하여야 할 수 있다. ASIC은, 제어기에 프로그래밍되어 ASIC을 원격으로 제어하고 이 ASIC과 통신하며 이 제품을 제어할 필요가 있는 전용 커맨드와 명령 세트를 구비할 수 있다. 추가적으로, 모든 상이한 유형의 컴퓨터 또는 운영 시스템을 위한 상이한 프로그램 또는 애플리케이션은 호환성이 보장되도록 생산되어야 한다. 나아가, 개발자는 ASIC를 제작하고 테스트하여 이것이 적절히 동작한다는 것을 보장해야 한다. 이런 모든 것으로 인해 연구원들은 호스트 제품 그 자체를 개발하는 것을 단념한다. 나아가, 개발자는 ASIC과 임의의 원격 제어 디바이스에 특정된 소프트웨어를 개발하여야 한다. 많은 경우, 원격 제어가 가능한 ASIC를 구비할 수 있는 디바이스는 구현하는데 시간과 비용 때문에 존재하지 않는다.
현재 이용가능한 모든 자동화, 통합 및 제어 제품 및 기술은, 디바이스 그 자체의 실제 상태를 추상화하는 것에 의해 디바이스와 구성물(construct)을 조작하도록 설계된, 비유적으로 로프와 풀리(rope and pulley)로 동작하는 하드웨어와 소프트웨어에 불과하다. 그 결과, 이 기존의 솔루션은 개별/폐쇄된 자동화 및 제어 에코시스템을 수립하는데 케이스마다 상당한 커스터마이제이션(customization)과 개발을 요구한다. 이 솔루션은 범용적(universal)이지도 않을 뿐아니라 애드혹(ad-hoc) 전개 시나리오를 구현할 수도 없다. 복잡한 전용 기반 제어 및 자동화 시스템으로부터 저비용, DIY(Do-It-Yourself) 접근법에 이르기까지, 현재 이용가능한 모든 솔루션은 각 전개 목표를 달성하는데 여러 레벨의 하드웨어와 소프트웨어의 추상화를 요구한다.
일반적으로, 모든 경쟁 솔루션은, 이 솔루션이 모두 추상 층을 통해 전개될 때 서술(predicated)되고, 교차-통신 또는 교차-서비스가 없는 특정 시장 쪽으로 설계되어 있기 때문에 범용 제어를 제공하지 못한다. 대개, 전술된 문제에 대한 경쟁 솔루션은 "생각 후(after thoughts)"에 디바이스의 자동화를 도입하고 "손쉽게 접합할 수 있는" 메타퍼("bolt on" metaphor)를 통해 통합을 수행할 것을 시도한다. 경쟁 기술은 아직 임의의 제3자 디바이스 제조에 범용 "플러그앤플레이(plug and play)" 모델을 사용하여 생산하지 못하였다.
현재 자동화 및 제어 관리 시스템 및 부품은 복잡한 제어, 전용 커맨드 및 비-직관적인 인터페이스를 가지고 있어서 혼란스럽다. 자동화 디바이스의 일정 레벨의 관리를 최종 유저에 넘겨줄 것을 시도하는 입력 레벨 시스템은 "선호도 리스트"와 같은 매우 단순한 이진 상태로 제한된다. 이 제한사항은 부품 또는 디바이스의 능력을 방송하는 메커니즘이 수립되어 있지 않기 때문에 존재한다.
참된 범용 자동화 및 제어는 자동화된 에코시스템 내에 구현될 수 있는 모든 디바이스와 구성물에 플러그앤플레이를 전달하는 통합 기술 부분을 개발할 때 서술된다. 역사적으로, 우리는, 통신, 메시징, 및 예를 들어, TCP, SMTP 및 HTTP와 같은 상호 작용 표준의 수립을 통해 정보와 이 정보의 인터넷을 통한 이동이 제한되지 않는 것으로 보아 왔고, 웹 브라우저의 편재성(ubiquity)으로 인해 일상적인 것에도 액세스를 보아 온 것을 인정할 수 있다. 이 표준과 그 관련된 기술은 정보에 대한 액세스를 보장할 뿐만 아니라 주로 어느 곳에서 및 임의의 시간에 어느 것을 통해서도 이용가능한 것으로 허용되는 것으로 제공된다.
그러나 제어에 대한 액세스는 상당히 더 큰 문제를 제시하여, 오늘날까지 상기 환경을 복잡하게 반복적으로 개발할 것을 요구함이 없이 자동화 공장의 전체 애드혹 수립과 확장을 허용하는 단일 솔루션은 없었다. 간단히 말하면, 네트워크에 추가된 프린터가 동일한 네트워크 내 컴퓨터에 자동적으로 액세스하는 동안, 자동화 공장에 추가된 디바이스는 이 단일 새로운 디바이스의 특정 인식과 동작을 위해서는 자동화 시스템을 총체적으로 재구성할 것을 요구하는 것이 또한 예상되고 인정된다고 하는, 표면적으로 모순되는 예상이 존재한다.
이상적(ideal)으로 연결된 세계는 정보와 제어에 동등한 액세스를 허용한다. 정보 시대의 기술 설계자(technology architect)는 이 이상 내 정보 세트에 범용적인 액세스를 달성하였으나 이 기술 설계자는 동등한 제어 액세스에 연속적인 장애물을 생성하였다. 자동화 및 제어 공간 내 각 개발은 동작 및 조작되도록 의도된 디바이스에 가상(virtual) 로프와 풀리를 생성하는 복잡한 전용 상호연결을 사용할 때 서술되었다. 네트워크로 연결된 인프라스트럭처에서 종단점의 고유한 존재와 신원(identity)을 유지하고, 개방된 액세스와 조작을 위해 종단점의 존재 모드를 제시하는 기본적인 능력을 종단점(endpoint)이 제공받은 적이 없다. 자동화 시스템과 그 종단점으로부터 최종 유저와 자동화 시스템 사이 어드레스 모드 내에 추상 층이 존재하면, 최종 유저가 종단점을 관리하기 위해 시스템을 변경함이 없이 종단점을 변경, 추가 또는 제거할 수 없다는 것을 보장한다. 사실, 정보에의 액세스는 항상 직접 이루어지지만, 제어에 액세스하는 중개인(middleman)은 그에 대해 책임과 비난이 최대로 된다.
추가적으로 "PC 후 혁신"에서 대부분의 자동화 발명은 기술 중심이 아니라 제품-중심이라는 것이 중요하다. 구성물은 기존의 기술의 호스트의 융합을 통해 이루어지고, "새로운" 것이 거의 도입되지 않았다. 이렇게 하면, 이 개발은 표면적으로 간략화되도록 의도된 전망(landscape)에 복잡성을 효과적으로 추가한다.
따라서, 범용 제어 시스템을 위한 하드웨어와 소프트웨어의 개발을 간략화하고 수직으로 통합하는 시스템 및 방법을 개발하는 것이 요구된다. 이러한 시스템 및 방법은 외부 추상 층을 통하는 것이 아니라 제어될 구성물 내로부터 통합을 전달하는 것에 의해 전술된 문제에 대한 솔루션을 제공한다. 나아가, 이러한 시스템 및 방법은 통합된 구성물 또는 디바이스에 그 존재, 그 신원, 그 기능 뿐만 아니라 그 현재 상태를 방송하고, 전통적인 I/O 메커니즘과 병렬로 명령을 서로 수신하는 능력을 구현하여야 한다. 본 발명은 이들 요구와 다른 요구를 만족시킨다.
가장 일반적인 측면에서, 본 발명은 마이크로 제어 유닛(MCU) 또는 다른 제어 하드웨어에 의해 제어될 수 있는 구성물과 디바이스에 범용적인 및 통합된 제어를 제공하는 시스템 및 방법을 포함한다.
다른 일반적인 측면에서, 본 발명은 자동화 및 제어 에코시스템 내에 이미징될 수 있는 임의의 디바이스 또는 구성물의 참된 범용적인 자동화 및 제어를 전달하는 메커니즘 및 방법을 제공한다. 자동화 및 제어 에코시스템 내에 구현될 수 있는 임의의 디바이스는, 미리 제작(pre-fabrication)/제조(manufacturing)된 것에 기초하여 본 발명의 여러 측면에 따라 구현되면, 에코시스템을 변형이나 변경함이 없이 "플러그앤플레이" 방식으로 자동화 및 제어 에코시스템에 용이하게 통합될 수 있다.
또 다른 일반적인 측면에서, 본 발명은 또한 구성물과 떨어진 외부에서 추상층을 통하는 것이 아니라 구성물 내로부터 선천적인 연결(native connectivity)을 제공하는 것에 의해 통합과 제어를 제공한다. 이런 능력은 완전히 새로운 것이고, 이미-기존의 자동화, 통합 및 제어 제품 및 기술로부터 완전히 벗어난 것을 제공한다.
다른 측면에서, 본 발명의 시스템 및 방법은, 디바이스의 특성에 상관없이 네트워크 신원, 위치 결정, 모드 및 상태 인식, 및 디바이스의 사용 또는 구성을 위한 파라미터 범위에 액세스를 제공하여, 그 고유한 제품에 범용적인 액세스와 제어를 가전 및 산업용 전자 제품 제조사, 기기 및 기계 설계자, 및 디바이스 및 장치 생산자(creator)에 용이하고 효과적으로 제공할 수 있는, 수퍼 수평 임베디드 솔루션(super horizontal imbedded solution)의 개발을 제공한다.
더 다른 측면에서, 본 발명의 시스템 및 방법은 부모 디바이스(parent device)에 포함하도록 이용가능하게 만들어지는 ASIC과 같은 특히 저비용, 저전력 및 극히 낮은 프로파일 부품의 개발을 제공한다. 이 ASIC은 부모 디바이스와 연관된 기능과 구성의 범위에 통합하도록 부모 디바이스 설계자 및/또는 제조사에 이용가능하게 만들어진 확장가능한 서비스와 함께 자동화 에코시스템 내에 부모 디바이스를 포함하는 코어 서비스(core service)를 포함한다.
더 다른 측면에서, 본 발명의 시스템 및 방법은 임의의 부모 디바이스에 대한 거동, 동작 및 변경의 한정(definition)을 수립하는 계층 분류 시스템(hierarchal class system)의 개발을 제공한다.
또 다른 측면에서, 본 발명의 시스템 및 방법은 종단점의 존재와 동작의 동적 인식을 위한 유저 인터페이스(User Interface: UI) 모델의 개발을 제공한다.
다른 측면에서, 본 발명의 시스템 및 방법은 종단점으로부터 최종 유저를 당황케 하거나 분리시키지 않고 환경 인식의 동시실행(concurrency)을 유지하고 가변 디바이스 액세스의 처리를 간략화하는 관리 층(management layer)의 개발을 제공한다.
또 다른 측면에서, 본 발명의 시스템 및 방법은 디바이스 제조사로 하여금 그 마이크로-제어기(MCU) 설계 공정 및 통합 내에 고유한 ASIC 기능을 임베디드할 수 있게 하는 팹리스 개발 키트(Fabless Development Kit: FDK)를 제공한다.
더 다른 측면에서, 본 발명은 제어될 디바이스를 위한 공통 인터페이스를 제공하는 시스템을 포함한다. "차량에 타고 운전하는" 간단한 액션과 유사하게, 이러한 인터페이스 및 제어 시스템에 의해 유저는 유저가 운전하는 모든 상이한 차량을 운전하는 방법을 재학습함이 없이 간단히 작업을 수행할 수 있어서; 유저의 일상 생활의 일부인 여러 디바이스를 제어하는 표준화된 인터페이스를 유저에 제공할 수 있다.
일 측면에서, 본 발명은 전자 디바이스의 일반적인 특성을 위해 개발된 IC 부품을 사용하여 제어할 전자 디바이스에 통합할 집적 회로(integrated circuit: IC)를 설계하는 시스템 및 방법을 포함한다. 이런 방식으로, IC 디바이스 부품은 기능에 기초하여 표준화되고 설계되어 전용 디바이스 내부를 설계할 필요성을 제거할 수 있다. 개발자는 그 디바이스의 기능을 선택할 수 있고 IC는 표준 부품에서 벗어나게 설계될 수 있다. 나아가, 표준 IC 부품이 사용되기 때문에, 표준 소프트웨어를 사용하여 IC 디바이스를 제어하고 이 IC 디바이스에서 실행될 수 있다.
본 발명의 다른 측면에서, 유저 인터페이스(UI) 표준이 개발되고 이 UI 표준의 전개를 통해, UI 제어 인터페이스는 각 IC 부품과 연결될 수 있다. 이것은 제어들이 다수의 디바이스에 걸쳐 유사하게 기능하기 때문에 직관적인 유저 경험을 가능하게 한다.
본 발명의 더 다른 측면에서, 설계된 IC는 소프트웨어 표현으로 제공된다. 소프트웨어 표현은 레이아웃(layout) 및/또는 회로도(schematic) 포맷일 수 있다. 이것에 의해 개발자는 IC 설계를 간단히 수정하고 시뮬레이팅하며 및/또는 테스트할 수 있다. 나아가, 레이아웃 및/또는 회로도는 IC를 제조하는 제조사로 송신될 수 있다. 팹리스 IC를 사용하면 IC 개발 비용을 감소시킬 수 있다.
나아가, 본 발명의 다른 측면에서, IC는 연결 또는 수동 제어 오버라이드(override)의 상실을 처리하는 페일 세이프(fail safe)를 가지게 설계될 수 있다.
다른 측면에서, 본 발명은, 디바이스에 통합될 때 디바이스를 제어하는 IC를 설계하는 컴퓨터로 구현되는 방법으로서, 상기 방법은, 전자 디바이스의 카테고리로 분류된 입력 및 출력 특성의 선택을 수신하는 단계; 상기 디바이스의 입력 및 출력 특성의 선택에 기초하여 IC 설계를 제공하는 단계; 및 상기 IC 설계에 기초하여 IC를 통해 상기 디바이스를 제어하는 소프트웨어를 제공하는 단계를 포함하는, 상기 방법을 포함한다.
또 다른 측면에서, 본 발명은 상기 디바이스를 제어하는 소프트웨어를 제공하는 단계가 상기 IC를 통해 상기 디바이스를 제어할 수 있는 유저 인터페이스 및 가상 제어(virtual control)를 제어기에 제공하는 단계를 포함하는 단계를 포함한다. 대안적인 측면에서, 상기 유저 인터페이스는 입력 및 출력 특성의 선택에 기초한다. 더 다른 대안적인 측면에서, IC는 상기 디바이스로부터 상태를 입력할 수 있고 상기 상태를 제어기에 리포트(report)할 수 있다.
더 다른 측면에서, 상기 IC 설계는 상기 입력 또는 출력 특성 중 하나를 제어할 수 있는 적어도 하나의 미리 결정된 IC 부품에 기초한다. 또 다른 측면에서, 상기 IC 설계는 소프트웨어 회로도, 레이아웃, 또는 이들 둘 모두로 제공된다.
다른 측면에서, 상기 IC는 상기 디바이스의 신원과 동작 상태를 제어기에 전달하도록 구성될 수 있고 상기 제어기는 상기 디바이스의 신원을 등록하고, 상기 디바이스의 신원에 기초하여, 상기 디바이스의 동작 상태를 변경하는 제어 커맨드를 상기 디바이스에 전달하도록 구성된다.
더 다른 측면에서, 본 발명은, 하나 이상의 프로세서; 및 하나 이상의 비-일시적인 컴퓨터-판독가능한 매체에 인코딩된 로직을 포함하는 시스템으로서, 상기 로직은, 상기 하나 이상의 프로세서에 의해 실행될 때, 디바이스의 카테고리로 분류된 입력 및 출력 특성의 선택을 수신하는 동작; 상기 디바이스의 입력 및 출력 특성의 선택에 기초하여 IC 설계를 제공하는 동작; 및 상기 IC를 통해 상기 디바이스를 제어하는 소프트웨어를 제공하는 동작을 수행하도록 동작가능한, 상기 시스템을 포함한다. 일 대안적인 측면에서, 상기 제공된 IC 설계는 상기 IC를 통해 상기 디바이스에 가상 제어를 제공하는, 제어기와 통신하는 유저 인터페이스를 포함한다. 또 다른 대안적인 측면에서, 상기 유저 인터페이스는 입력 및 출력 특성의 선택에 기초한다.
추가적인 측면에서, 상기 IC는 상기 디바이스의 동작 상태를 나타내는 상태 정보를 수신하는 입력을 포함하고 상기 상태 정보를 상기 제어기에 전달하도록 구성된다.
더 추가적인 측면에서, 상기 IC 설계는 상기 입력 또는 출력 특성 중 하나를 제어할 수 있는 적어도 하나의 미리 결정된 IC 부품에 기초한다. 또 다른 측면에서, 상기 IC 설계는 소프트웨어 회로도, 레이아웃, 또는 이들 둘 모두로 제공된다.
또 다른 측면에서 상기 하나 이상의 비-일시적인 컴퓨터-판독가능한 매체는, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 IC 설계에 기초하여 상기 IC의 기능을 시뮬레이팅하도록 더 동작가능한 로직을 더 포함한다.
더 다른 측면에서, 본 발명은 명령을 저장하는 비-일시적인 컴퓨터-판독가능한 매체를 포함하고, 상기 명령은, 프로세서에 의해 실행될 때, 상기 디바이스의 카테고리로 분류된 입력 및 출력 특성의 선택을 수신하는 단계; 상기 디바이스의 입력 및 출력 특성의 선택에 기초하여 IC 설계를 제공하는 단계; 및 상기 IC를 통해 상기 디바이스를 제어하는 소프트웨어를 제공하는 단계를 포함하는 방법을 수행한다.
추가적인 측면에서, 본 발명은 상기 IC를 통해 상기 디바이스에 가상 제어를 제공하는 유저 인터페이스를 원격 제어기에 전달하는 단계를 포함한다. 하나의 대안에서, 상기 유저 인터페이스는 입력 및 출력 특성의 선택에 기초한다. 더 추가적인 측면에서, 상기 IC는 상기 디바이스로부터 상태를 입력할 수 있고 상기 상태를 상기 제어기에 리포트할 수 있다. 다른 측면에서, 상기 IC 설계는 상기 입력 또는 출력 특성 중 하나를 제어할 수 있는 적어도 하나의 미리 결정된 IC 부품에 기초한다. 또 다른 측면에서, 상기 IC 설계는 소프트웨어 회로도, 레이아웃, 또는 이둘 둘 모두로 제공된다.
본 발명의 다른 특징과 잇점은, 예를 들어, 본 발명의 원리를 도시하는 첨부 도면과 함께 취해진 이하 상세한 설명으로부터 명백하게 될 것이다.
도 1은 본 발명의 여러 실시예를 사용하여 제어될 수 있는 디바이스의 정면도.
도 2는 본 발명의 일 실시예에 따른 상위 레벨 계층 분류 구조의 예시도.
도 3은 도 2의 계층 분류 구조의 서브-레벨의 예시도.
도 4는 FDK를 사용하여 ASIC을 설계하는 예시적인 방법을 도시하는 본 발명의 일 실시예의 흐름도.
도 5는 디바이스 관리 시스템(Device Management System)을 사용하는 예시적인 통합 디바이스 제어 시스템(Integrated Device Control System)을 도시하는 도면.
도 6은 디바이스 관리 소프트웨어를 제어 디바이스에 유지하는 예시적인 통합 디바이스 제어 시스템을 도시하는 도면.
도 7은 디바이스 관리 소프트웨어를 IC에 유지하는 다른 예시적인 통합 디바이스 제어 시스템을 도시하는 도면.
도 8은 개발자가 집적 회로를 개발하고 소프트웨어 내부를 제어함이 없이 디바이스에 원격 제어 가능성을 구현할 수 있는 시스템의 예시적인 구현의 흐름도.
도 9는 팹리스 설계 키트를 사용하여 설계된 IC의 예시적인 블록도.
도 10은 컴퓨터 시스템과 전자 디바이스 내 IC 사이에 상호 동작가능성을 관리하는 예시적인 관리 소프트웨어의 흐름도.
도 11은 예시적인 컴퓨터 시스템 아키텍처를 도시하는 도면.
이후 보다 상세히 설명되는 바와 같이, 본 발명의 여러 실시예는 균일한(uniform) IC 및 UI를 개발하는 디바이스 제어 시스템 및 방법에 관한 것이다. 설명을 위해, 특정 용어가 본 발명을 보다 철저히 이해하기 위해 제시된다. 특정 애플리케이션 및 방법의 설명은 단지 예를 위하여 제공된 것이다. 실시예의 여러 변형은 이 기술 분야에 통상의 지식을 가진 자에게는 용이하게 이루어질 수 있을 것이고, 본 명세서에 한정된 일반 원리는 본 발명의 사상과 범위를 벗어남이 없이 다른 실시예 및 응용에 적용될 수 있을 것이다. 따라서 본 발명은 도시된 실시예로 제한되는 것으로 의도된 것이 전혀 아니고, 본 명세서에서 개시된 원리와 단계를 따르는 최광의 범위로 주어지는 것으로 이해된다.
본 발명의 여러 실시예는 자동화 및 제어 에코시스템 내에 이미징될 수 있는 임의의 디바이스 또는 구성물의 참된 범용적인 자동화 및 제어를 전달하는 메커니즘을 제공한다. 자동화 및 제어 에코시스템 내에 구현될 수 있는 임의의 디바이스는, 미리 제작/제조에 기초하여 본 발명에 구현되면, 에코시스템을 변형하거나 변경함이 없이 "플러그앤플레이" 방식으로 자동화 및 제어 에코시스템에 용이하게 통합할 수 있다. 본 발명의 실시예는 구성물과 떨어진 외부에서 추상층을 통하는 것이 아니라 구성물 내로부터 선천적인 연결을 제공하는 것에 의해 통합과 제어를 제공한다.
현재 이용가능한 모든 자동화, 통합 및 제어 제품 및 기술은 디바이스 그 자체의 실제 상태를 추상화하는 것에 의해 디바이스와 구성물을 조작하도록 설계된, 비유적으로 로프와 풀리로 동작하는 하드웨어와 소프트웨어에 불과하다. 그 결과, 이들 기존의 솔루션은 개별/폐쇄된 자동화 및 제어 에코시스템을 수립하는데 케이스마다 상당한 커스터마이제이션과 개발을 요구한다. 이 솔루션은 범용적이지도 않을 뿐아니라 애드혹 전개 시나리오를 구현할 수도 없다. 복잡한 전용 기반 제어 및 자동화 시스템으로부터 저비용, DIY 접근법에 이르기까지, 현재 이용가능한 모든 솔루션은 각 전개 목표를 달성하는데 여러 레벨의 하드웨어와 소프트웨어의 추상화를 요구한다. 본 발명의 실시예는 자동화 에코시스템 내에 임의의 구성물 또는 디바이스를 포함하도록 직접, 비-추상화된 인터페이스를 제공한다.
현재 실현되고 구현된 통합, 제어 및 자동화 기술은 자동화 관리 시스템과 종단점 사이에 많은 추상화가 존재하는 것으로 인해 그 종단점을 끊김없이 전개하고 관리하지 못한다. 본 발명의 여러 실시예는 임의의 디바이스 및/또는 구성물이 동종의 디바이스 및/또는 구성물의 네트워크에 끊김없이 추가되는 능력을 구현하고 디바이스 및/또는 구성물을 실시간으로 인식하는 통합, 제어 및 자동화 시스템 내에 관리할 수 있는 메커니즘을 제공하는 것에 의해 그 실패를 극복한다. 본 발명의 여러 실시예를 구현한 결과 정보 분산을 위해 웹 서버와 웹 브라우저를 표준화한만큼 편재해 있는(ubiquitous) 범용적인 통합, 제어 및 자동화의 표준화를 인터페이스를 통해 실현할 수 있게 되었다.
일반적으로, 본 발명은, 완전히 제어되고 자동화될 수 있는 에코시스템을 생산하는 동종의 장착 디바이스의 네트워크에 이산 디바이스들을 끊김없이 추가할 수 있는 시스템을 생성하도록 함께 동작하는 4개의 코어 부품으로 구현된다. 4개의 코어 부품은 1) 부모 디바이스에 포함하도록 이용가능하게 만들어지는 ASIC 또는 동종의 구성물(여기서 이 ASIC 부품은 부모 디바이스와 연관된 기능과 구성의 범위에 통합하도록 부모 디바이스 설계자 및/또는 제조사에 이용가능하게 만들어진 확장가능한 서비스와 함께 자동화 에코시스템 내에 부모 디바이스를 포함하는 코어 서비스를 포함한다); 2) 임의의 부모 디바이스의 거동, 동작 및 변경의 한정을 수립하는 계층 분류 시스템; 3) 동작 모드 뿐만 아니라 종단점의 존재를 동적으로 인식하는 UI 모델; 및 4) 환경 인식의 동시실행을 유지하고, 전술된 디바이스의 제어를 간략화하는 관리 층이다.
아래에서 보다 충분히 설명된 바와 같이, ASIC은 일반적으로 자동화 에코시스템 내에 포함하도록 의도된 디바이스 및/또는 구성물 내에 임베디드된다. 이 임베드는, 일부 실시예에서, 디바이스 제조시에 일어나고, 디바이스의 완성된 제품 설계의 일부이다. 다른 실시예에서, ASIC은 MCU 그 자체 내에 임베디드되는 것이 아니라 디바이스의 MCU를 지원하는 회로에 추가될 수 있다.
본 발명의 여러 실시예에서, ASIC은 디바이스의 동작을 한정하는데 사용될 수 있는 특정 정보의 데이터베이스를 제공하는 FDK(Fabless Development Kit)를 사용하여 디바이스 제조사에 의해 제공된 데이터로 생산된다. FDK는 통합 개발 환경(Integrated Development Environment: IDE)의 형태를 취할 수 있는 소프트웨어 애플리케이션 또는 프로그램일 수 있다. FDK는 개발자가 제어 회로를 설계하고 제조하며 프로그래밍하는 것을 지원하도록 구체적으로 설계될 수 있다. FDK는 일반적으로 ASIC를 임베디드하는 디바이스의 거동, 동작 및 통신 특성을 한정하는 계층 분류 시스템으로부터 유도된 구조화된 정보의 데이터베이스에 액세스할 수 있다.
본 발명의 여러 실시예에 의해 ASIC를 임베디드한 각 디바이스는 디바이스, 관리 층 및/또는 제어기 디바이스의 임의의 구성 또는 커스터마이제이션 없이 및 임의의 추상화 부품 또는 관련된 통신 기술 없이 자동화 에코시스템의 관리 층 및/또는 제어기 디바이스에 자율적으로 제공될 수 있다. 임의의 유형의 이산 디바이스 제조사는 디바이스 유형 또는 기능을 제한함이 없이 그 구성물을 "자동화 준비"하는 능력을 구비할 수 있다. 정보 이동을 위해 편재성을 구현하는 HTTP와 HTTPS의 코어 프로토콜과 코어 언어 HTML과 XML(CSS를 통해)과 함께 웹 서버와 웹 브라우저의 도래로 월드와이드웹만큼, 본 발명의 여러 실시예는 제일 먼저 제어를 위해 편재성을 제공하고, 통합과 자동화를 위해 참된 범용적으로 액세스가능한 메커니즘을 생성할 수 있다.
본 발명의 여러 실시예의 주요 측면들 중 하나는, 본 발명자의 관찰에 따르면, 모두는 아니더라도, 대다수의 디바이스에 적용가능한 제어 시스템에서 개별 디바이스가 4개의 파라미터, 즉 1) 제어 유형; 2) 디스플레이 유형; 3) 입력 유형; 및 4) 출력 유형에 의해 한정될 수 있다는 것이다. 도 1은 공통 가정 기기, 즉 믹서(10)를 사용하여 이것을 도시한다.
믹서는 공통 부엌 기기이다. 이 믹서는 도 1에 도시된 바와 같이 모터, 이 모터를 동작시키는 회로, 하나 이상의 입력(20), 일반적으로 일부 유형의 버튼, 및 개별 조명(15) 또는 단일 패널 디스플레이일 수 있는 디스플레이를 포함한다. 더 구형 믹서는 배정된 하나 이상의 위치를 갖는 회전가능한 다이얼을 사용하여 하나 이상의 속력 또는 기능을 제공하고, 도트(dot), 워드(word) 또는 다른 그래픽 요소(graphic element)를 사용하여 믹서의 상태를 디스플레이할 수 있다. 본 발명의 여러 실시예를 참조하여 본 명세서에 설명된 원리를 사용하면, 계층 데이터베이스에 포함된 파라미터에 의해 믹서를 한정할 수 있고, 이에 따라 본 발명의 원리를 임의의 디바이스에 적용할 수 있다. 그러나, 본 발명의 여러 실시예는 MCU와 선천적으로(natively) 상호 작용하거나 및/또는 어드레스지정하는 것을 통해 디바이스의 제어를 제공하는 MCU를 포함하는 디바이스에 특히 적용가능한 것으로 이해된다. 아래에서 설명된 제어 기능은, 본 발명의 실시예를 사용하여 MCU에 형성될 수 있거나, 또는 디바이스의 회로에 추가된 IC를 통해 제공되어 MCU와 병렬로 디바이스의 제어를 제공할 수 있는 것으로 더 이해된다.
도 2는 계층 데이터베이스와 같은 일 실시예를 도시한다. 이 도면에서, 계층 데이터베이스는 디바이스의 특정 측면에 관한 데이터를 포함한다. 예를 들어, 이러한 계층 데이터베이스는 미국 특허 상표청에서 발명을 하나 이상의 기술 분야로 분류하는 분류 지원 항목으로 사용된다. 도 2의 예시적인 데이터베이스는 일반적으로 항공, 자동차, 해운, 철도 등과 같은 카테고리로 분할된 높은 레벨의 디바이스 리스트를 가질 수 있다. 도시된 바와 같이, 상위 레벨 철도 카테고리는 오락, 산업, 및 경철도(light rail)의 서브-카테고리로 더 세분화될 수 있다. 추가적인 서브-카테고리는 사양과 기능에 의해 추가적으로 서브-카테고리로 분류된 디젤과 전기 엔진의 분류를 제공한다. 기능 서브-카테고리는 최종적으로 다시 제어 유형, 디스플레이 유형, 입력 유형 및 출력 유형으로 카테고리 분류된다.
도 3은 소비자 기기에 대해 도 2에 도시된 것과 유사한 카테고리 구조를 도시한다. 이 예에서, 소비자 기기의 상위 레벨 카테고리는 청소 디바이스(cleaning device), 요리 디바이스(cooking device), 및 음식 준비 디바이스(food preparation device)와 같은 서브-카테고리로 분할된다. 음식 준비 디바이스는 휴대형(hand-held) 또는 고정형(stationary)으로 더 카테고리로 분류된다. 고정형 음식 준비 디바이스의 일례는 도 1을 참조하여 설명된 것과 같은 믹서이다. 분류 라이브러리로 더 분할하면 믹서의 기능을 설명하는 카테고리를 제공할 수 있고, 이 기능은 제어 유형, 디스플레이 유형, 입력 유형, 및 출력 유형으로 더 카테고리로 분류될 수 있다. 예를 들어, 믹서는 입력 유형이 작동될 때 믹서의 상태를 디스플레이하는 워드 또는 그래픽 또는 심볼(symbol)에 해당하는 디스플레이로 회전식 다이얼에 의해 제어될 수 있다. 다른 예에서, 입력 디바이스는 푸시 버튼 또는 터치 감지 요소일 수 있고, 디스플레이 유형은 입력 유형이 작동될 때 믹서의 상태를 유저에 통지하는 LCD 또는 다른 유형의 전자 디스플레이일 수 있다. 입력의 출력은 또한 디스플레이 유형으로부터 분별될 수 있을 뿐만 아니라, 입력 유형의 작동시 모터의 속력이 증가되거나 또는 감소되거나, 펄스화되거나, 또는 정지될 때 믹서에 의해 생성되는 음성이 증가하거나 감소하는 것을 듣는 것에 의해 경험적으로 분별될 수 있다. 이 기술 분야에 통상의 지식을 가진 자라면 바로 이해될 수 있는 바와 같이, 임의의 디바이스, 예를 들어, 믹서는, 제어 유형, 디스플레이 유형, 입력 유형, 및 출력 유형을 한정하는 것에 의해 한정될 수 있다.
도 4는 디바이스의 MCU 설계에 직접 병합되거나, 또는 디바이스의 MCU와 동작가능하게 통신하는 별개의 집적 회로일 수 있는 ASIC을 설계하고 프로그래밍하는 시스템 및 방법의 일 실시예(50)의 그래픽적 표현이다. 이 예시적인 실시예에서, ASIC의 회로 설계자는 팹리스 개발 키트(FDK)(65)를 사용하여 전술된 믹서와 같은 디바이스에 선천적인 제어 및 통신 능력을 제공할 수 있는 ASIC의 회로를 설계한다. 이 예에서, FDK는 소프트웨어 또는 소프트웨어와 하드웨어의 조합으로 임베디드되고, 계층 분류 데이터베이스(55)와 적절한 유저 인터페이스(미도시)를 포함한다. ASIC 설계자는 FDK의 유저 인터페이스와 상호 작용하여 FDK 유저 인터페이스의 여러 메뉴 또는 다른 입력 구조를 사용하여 계층 분류 데이터베이스에 액세스한다. 예를 들어, 설계자는 도 2 내지 도 3을 참조하여 설명된 계층 분류 구조의 분류 구조에 대응하는 일련의 케스케이드 메뉴를 사용할 수 있는 것으로 고려된다. 설계자가 원하는 분류 레벨, 예를 들어, 믹서에 대해 도 3에 도시된 레벨 3.2.1.1.1에 도달하면, 설계자는 회로 동작에 포함될 특정 제어 유형을 선택한다. 설계자는 ASIC를 설계하고 있는 특정 디바이스에 필요한 특정 입력과 연관된 파라미터를 더 편집할 수 있다.
공정은 믹서에 대한 제어 유형(57), 디스플레이 유형(59), 입력 유형(61) 및 출력 유형(63)이 한정될 때까지 계속된다. 설계자 선택과 연관된 파라미터는 FDK 엔진(65)에 입력된다. FDK 엔진(65)에 입력되면, FDK 엔진(65)의 컴파일러(67)는 ASIC 설계(69)와 그 연관된 ASIC 프로그래밍(71)을 생성하기에 적절한 회로의 라이브러리와 임베디드 프로그래밍에 액세스할 수 있다. FDK의 소프트웨어는 설계자에 의해 원하는 기능을 수행할 수 있는 ASIC를 생산하는데 요구되는 기능을 수행하기에 적절한 회로의 라이브러리와 임베디드 프로그래밍에 액세스할 수 있다. FDK는, ASIC이 신원과 제어 기능을 제어기에 방송할 수 있게 하여, 제어기가 디바이스를 플러그앤플레이 방식으로 끊김없이 등록할 수 있게 하는 회로를 위한 사양을 더 포함하는 것으로 더 의도된다. ASIC 설계(69)는 제작하는 제조사에 송신될 수 있는 레이아웃 또는 회로도와 같은 회로 설계일 수 있다. ASIC 프로그래밍(71)은 제작된 ASIC 및/또는 제어기에 프로그래밍되거나 및/또는 저장되어 제어기, ASIC, 및/또는 ASIC과 통합된 디바이스 사이에 상호 동작 가능성을 수립하는 소프트웨어일 수 있다.
IC와 MCU의 팹리스 설계는 이 기술 분야에 잘 알려져 있다. 일반적으로, 팹리스 설계라는 용어는 설계와 제조의 수직 통합에 의존하는 과거 방법이 아니라 IC의 설계가 디바이스 그 자체의 제조와는 별개로 달성되는 공정에 적용된다. 따라서, 본 발명의 여러 실시예의 범위 내 팹리스 공정은, 디바이스 메이커, 예를 들어, 믹서 제조사가 FDK를 사용하여, 제어기로 하여금 본 발명의 실시예에 따라 설계된 ASIC를 병합하는 디바이스의 존재를 감지하고, 디바이스 또는 제어기의 광범위한 설정 또는 프로그래밍을 요구함이 없이, 디바이스를 등록하고 디바이스와 통신할 수 있게 하는 표준화된 통신 구조의 추가를 포함하는 제조사가 원하는 모든 기능을 디바이스의 제어 회로에 설계하고 제조할 수 있다는 점에서 특히 유리하다.
이 기술 분야에 통상의 지식을 가진 자라면, 많은 방식으로, 본 명세서에 설명된 여러 실시예의 FDK는 소위 소프트웨어 개발 키트 또는 IDE와 유사하게 기능할 수 있다는 것을 이해할 수 있을 것이다. 소프트웨어 개발 키트는 유사한 기능을 구비하고, 즉 소프트웨어 개발 키트는 일반적으로 특정 소프트웨어 패키지, 소프트웨어 프레임워크, 하드웨어 플랫폼, 컴퓨터 시스템, 비디오 게임 콘솔, 운영 시스템, 또는 유사한 개발 플랫폼을 위한 애플리케이션을 생성할 수 있는 소프트웨어 개발 툴 세트이다. 본 발명자는 이러한 프레임워크가 또한 디바이스를 제어하는데 요구되는 임의의 제어 시스템의 제어 유형, 디스플레이 유형, 입력 유형 및 출력 유형을 분류할 수 있는 계층 분류 데이터베이스와 협력하여 IC의 팹리스 설계에 적용될 수 있다는 것을 발견하였다. 이런 방식으로, 본 발명의 실시예의 FDK와 계층 분류 디바이스를 사용하면, ASIC 설계자는 제어기와 통신하고 이 제어기에 의해 제어될 수 있는 임의의 디바이스에 병합되는 선천적인 제어 기능에 형성될 수 있다. 본질적으로, 계층 분류 데이터베이스와 FDK 시스템은 임의의 제어가능한 디바이스에 제어 기능을 프로그래밍하는 표준화된 시스템을 제공할 수 있다. 이러한 제어 구조는 디바이스와 제어기가 서로 통신할 수 있도록 제어기 또는 디바이스에 커스텀(custom) "설정" 또는 설치 변경을 수행하는 요구를 제거할 수 있다.
도 5는 본 발명의 일 실시예에 따른 예시적인 통합 디바이스 제어 시스템(100)을 도시한다. 통합 디바이스 제어 시스템(100)은, 하나 이상의 컴퓨터 시스템일 수 있고 및/또는 네트워크 클라우드(Network Cloud)(102)에 연결될 수 있는 제어되는 하나 이상의 디바이스로부터 원격에 있는 제어기를 포함하는, 예를 들어, 무선 또는 유선 제어기를 포함할 수 있는 하나 이상의 통합 디바이스 제어기(Integrated Device Controller)(101)를 구비할 수 있다. 네트워크 클라우드(102)는 일반적으로 하나 이상의 통합 디바이스 제어기(101), 제어 관리 시스템(103), 및/또는 제어가능한 디바이스(104)가 서로 상호 작용할 수 있는 네트워크 또는 네트워크의 집합(예를 들어, 인터넷, 사설 인트라넷, 광역 네트워크, 내부 네트워크, 사적 영역 네트워크, 또는 이들의 조합)을 나타낸다. 다른 실시예에서 시스템은 메쉬(mesh) 네트워크 또는 임의의 다른 적절한 네트워크를 사용할 수 있다. 또 다른 실시예에서, 시스템은 애드혹 네트워크로 고려될 수 있는 의사-네트워크, 예를 들어, 주변 버스, 또는 디바이스 또는 부품 사이에 통신을 제공하는 통신 구조의 임의의 다른 비-전통적인 형태를 사용할 수 있다. 더 다른 실시예에서, 제어 관리 시스템(103)은 통합 디바이스 제어기(101) 및/또는 제어가능한 디바이스(104) 내에 임베디드될 수 있다.
제어 관리 시스템(103)은 IC(124) 내 하나 이상의 IC 부품(114)을 제어하는 데이터 및/또는 컴퓨터 명령을 저장하는 하나 이상의 데이터베이스(113)를 포함할 수 있다. 데이터베이스(113)는 통합 디바이스 제어기(101)를 위한 데이터 및/또는 UI 구성, 제어 관리 시스템(103) 및/또는 제어가능한 디바이스(104)와 상호 작용하는 통합 디바이스 제어기(101)를 위한 명령 및/또는 유저 액세스 설정/보안을 더 포함할 수 있다. 예를 들어, 일 실시예에서, IC는 본 발명의 제어 기능을 수행하는데 필요한 모든 자율적인 로직과 데이터를 포함할 수 있고; 또는 IC는 필요한 자율적인 로직과 데이터의 일부만을 포함할 수 있고, 별개의 데이터 소스 또는 프로세서에 액세스하여 본 발명의 제어 기능을 수행하는데 필요한 임의의 다른 로직 또는 데이터를 획득하도록 구성될 수 있다.
제어 관리 시스템(103)은 또한 웹페이지 또는 다른 인터페이스를 통해 제어 관리 시스템(103) 및/또는 제어가능한 디바이스(104)와 상호 작용하는 능력을 하나 이상의 통합 디바이스 제어기(101)에 제공하는데 사용될 수 있는 웹 서버일 수 있다.
일 실시예에 따라, 제어 관리 시스템(103)은 단일 서버이거나, 또는 분산된 서버에 걸쳐 있는 다수의 컴퓨터 또는 다수의 데이터 센터일 수 있다. 서버라는 용어는 여러 유형의 서버, 예를 들어, 웹 서버, 뉴스 서버, 메일 서버, 메시지 서버, 광고 서버, 파일 서버, 애플리케이션 서버, 교환 서버, 데이터베이스 서버, 프록시 서버 등을 말할 수 있으나 이들로 제한되는 것은 아니다.
통합 디바이스 제어기(101)는 하나 이상의 운영 시스템, 예를 들어, OS X, iOS, 윈도우즈, 안드로이드, 유닉스, 리눅스 등을 실행하고, 하나 이상의 애플리케이션, 예를 들어, 웹 브라우저, 예를 들어, 사파리, 인터넷 익스플로러, 파이어폭스, 크롬, 오페라 등을 실행하는 컴퓨터 또는 프로세서 시스템을 병합하는 디바이스일 수 있다. 통합 디바이스 제어기(101)는 유저가 통합 디바이스 제어기(101)를 사용하게 할 수 있다. 유저는 웹 브라우저를 서버로 가게 하는 URL (Uniform Resource Locator) 또는 다른 어드레스를 입력할 수 있고, 웹 브라우저는 HTTP (Hyper Text Transfer Protocol) 요청을 생성하고 HTTP 요청을 서버에 전달할 수 있다. 서버는 HTTP 요청을 수신할 수 있다. 통합 디바이스 제어기(101)는 서버, 팻 클라이언트(fat client 또는 thick client) 등으로부터 HTML 파일에 기초하여 웹페이지를 렌더링할 수 있다. 예를 들어, 비 제한적으로 웹 페이지는 HTML, XHTML, XML, 자바 스크립트(Java Script), 자바, 마이크로소프트 실버라이트(Microsoft Silverlight), AJAX 등의 하나 이상의 조합으로부터 렌더링할 수 있다. 다른 실시예에서, 통합 디바이스 제어기(101)는 상호 작용하는 클라이언트에 UI를 제공하는 컴퓨터 명령을 실행할 수 있다. 통합 디바이스 제어기(101)와 유저의 상호 작용은 통합 디바이스 제어기(101), 제어 관리 시스템(103), 및 제어가능한 디바이스(104) 사이에 통신을 야기할 수 있다. 일 실시예에서, UI와 유저의 상호 작용은 제어가능한 디바이스(104)에 실시간 제어를 제공할 수 있다. 제어 관리 시스템(103) 및/또는 제어가능한 디바이스(104)는 또한 하나 이상의 컴퓨터 또는 프로세서 시스템으로 만들어질 수 있다.
제어가능한 디바이스(104)는 조명 스위치, 램프, 자동차, 부엌 기기, 홈 시어터 기기(home 상기atre appliance), 컴퓨터 시스템, 폰(phone) 등을 포함하지만 이들로 제한되지 않는 임의의 전자 디바이스일 수 있다.
도 6은 본 발명의 다른 실시예에 따른 예시적인 통합 디바이스 제어 시스템(100B)을 도시한다. 통합 디바이스 제어 시스템(100B)은, 하나 이상의 컴퓨터 시스템일 수 있고 하나 이상의 제어가능한 디바이스(104)에 연결될 수 있는 하나 이상의 통합 디바이스 제어기(101B)를 구비할 수 있다. 통합 디바이스 제어기(101B)는 인터넷, 유선 연결, 사설 인트라넷, 광역 네트워크, 내부 네트워크, 사적 영역 네트워크 또는 이들의 조합을 통해 연결될 수 있는 연결(102B)을 통해 제어가능한 디바이스(104B)에 연결될 수 있다. 대안적으로, 통합 디바이스 제어기(101B)와 제어가능한 디바이스(104B) 사이의 연결은 직접 유선 또는 무선 연결일 수 있다. 무선 연결은 RF, 적외선, Wi-Fi, 블루투스(Bluetooth) 또는 다른 적절한 기술을 사용하여 획득될 수 있다.
통합 디바이스 제어기(101B)는 제어 관리 소프트웨어를 포함하는 메모리 또는 데이터 저장매체(103B)를 구비할 수 있다. 제어 관리 소프트웨어에 의해 통합 디바이스 제어기(101B)는 전술된 바와 같이 웹페이지, 소프트웨어 애플리케이션, 또는 다른 인터페이스를 통해 제어가능한 디바이스(104B)와 상호 작용할 수 있다.
본 발명의 원리에 따라 적절한 제어 관리 소프트웨어를 실행하는 통합 디바이스 제어기(IDC)는 에코시스템에 능동적으로 질문하도록 구성될 수 있고, 여기서 IDC는 (IDC 내에 병합된 송신기의 범위에 의해 제한될 수 있는) 미리 한정된 영역 또는 어드레스가능한 네트워크 범위 내에 존재하는 제어가능한 디바이스를 발견하고 등록하는데 사용되고, 또는 제어 관리 소프트웨어는 IDC를 제어하여 IDC의 범위 내에서 제어가능한 디바이스에 의해 방출되는 신호를 수동적으로 청취할 수 있다. 이런 방식으로, 제어 관리 소프트웨어에 의해 IDC는 본 발명의 여러 실시예에 따라 (ASIC일 수 있는) IC를 포함하는 제어가능한 디바이스와 협력하여 플러그앤플레이 방식으로 IDC에 제어가능한 디바이스를 자동적으로 등록할 수 있다. 전술된 바와 같이, 제어가능한 디바이스에 병합된 본 발명의 여러 실시예의 IC는, 등록 공정 동안 제어가능한 디바이스의 신원, 동작 상태 및 통신 모드를 IDC에 선천적으로 제공하도록 구성된다.
통합 디바이스 제어 시스템(100B)은, 하나 이상의 컴퓨터 시스템일 수 있고 연결(102B)에 연결될 수 있는 하나 이상의 통합 디바이스 제어기(101B)를 구비할 수 있다. 통합 디바이스 제어 시스템(100B)은 또한 제어 관리 소프트웨어를 포함하는 메모리 또는 데이터 저장매체(103B)를 구비할 수 있는 통합 디바이스 제어기(101B)를 포함할 수 있다. 제어 관리 소프트웨어에 의해 통합 디바이스 제어기(101B)는 직접, 또는 웹페이지, 소프트웨어 애플리케이션, 또는 다른 인터페이스를 통해 네트워크에 적절한 연결이 이용가능한 경우, 제어가능한 디바이스(104B)와 상호 작용하는 능력을 하나 이상의 통합 디바이스 제어기(101B)에 제공할 수 있다.
도 7은 다른 실시예에 따라 다른 예시적인 통합 디바이스 제어 시스템(100C)을 도시한다. 통합 디바이스 제어 시스템(100C)은, 하나 이상의 컴퓨터 시스템일 수 있고 하나 이상의 제어가능한 디바이스(104C)에 연결될 수 있는 하나 이상의 통합 디바이스 제어기(101C)를 구비할 수 있다. 통합 디바이스 제어기(101C)는 인터넷, 사설 인트라넷, 광역 네트워크, 물리적 연결, 유선 연결, 무선 연결, 유선 네트워크, 내부 네트워크, 사적 영역 네트워크 또는 이들의 조합일 수 있는 연결(102C)을 통해 제어가능한 디바이스(104C)에 연결될 수 있다.
제어가능한 디바이스(104C)는 제어 관리 소프트웨어를 포함하는 메모리 또는 데이터 저장매체(103C)를 구비할 수 있다. 제어 관리 소프트웨어에 의해 제어가능한 디바이스(104C)는 웹페이지, 소프트웨어 애플리케이션, 또는 다른 인터페이스를 통해 제어가능한 디바이스(104C)와 상호 작용하는 능력을 하나 이상의 제어 디바이스(101C)에 제공할 수 있다. 다른 실시예에서, 제어가능한 디바이스(104C)는 웹페이지, 소프트웨어 애플리케이션, 또는 다른 인터페이스를 통해 이들 2개 사이에 상호 작용할 수 있는 제어 디바이스(101C)에 의해 설치 및/또는 실행을 위한 제어 관리 소프트웨어를 송신할 수 있다.
도 8은 집적 회로를 개발하고 소프트웨어 내부를 제어함이 없이 개발자가 디바이스에 원격 제어 가능성을 구현할 수 있게 하는 시스템(2000)의 예시적인 구현의 흐름도이다.
단계(2001)에서, 시스템(2000)은 팹리스 집적 회로(IC) 개발 키트를 개발자에 제공할 수 있다. FDK는, 컴퓨터 시스템에서 실행될 때, 유저가 디바이스를 원격으로 제어하도록 개발자가 의도하는 디바이스의 인터페이스 속성을 개발자가 입력할 수 있게 하는 소프트웨어일 수 있다. FDK는 전체 IC 설계의 소프트웨어 표현을 제공할 수 있다. 일 실시예에서, 소프트웨어 표현은 회로도 및/또는 레이아웃일 수 있다. 유저는 IC의 소프트웨어 표현을 편집하는 능력을 구비할 수 있고 또는 소프트웨어 표현은 록킹(locked)되고 테스트만을 허용할 수 있다. 소프트웨어 표현은 전용 소프트웨어 및/또는 설계 자동화 소프트웨어를 통해 시뮬레이션 및 디버깅 능력을 더 제공할 수 있다. 설계 자동화 소프트웨어는 시놉시스사(Synopsis, Inc.); 카텐스 설계 시스템사(Cadence Design Systems, Inc.); 마그마 설계 자동사(Magma Design Automation, Inc.) 등에 의해 개발된 CAD(computer aided design) 소프트웨어를 포함할 수 있으나 이들로 제한되지 않는다.
제조될 때, IC는 개발자의 디바이스와 통합될 수 있고, 컴퓨터로 제품을 원격으로 제어하는 능력을 제공한다. 일 실시예에서, FDK는 또한 IC (여기서, 이 IC는 프로그래밍가능한 IC인 것으로 가정된다)에서 및/또는 컴퓨터에서 실행되어 원격 제어를 가능하게 하는 동반 소프트웨어를 제공한다.
단계(2002)에서 개발자는 FDK에 의해 제공되는 팹리스 IC 설계를 제조하는 제조사에 송신할 수 있다. 개발자는 제조된 IC를 개발자의 제품으로 구현할 수 있다. 이런 방식으로, 설계, 테스트, 및 개발 비용 중 많은 부분이 감소된다. 시스템(2000)은 또한 단계(2002)에서 통합 디바이스 제어기와 IC 사이에 상호 동작 가능성을 관리하는 관리 애플리케이션 소프트웨어에 액세스를 제공한다. 이것은, 신원, 유저 인터페이스 큐(cue), IC로부터의 피드백, 명령, 통신, 보안 등을 포함할 수 있다.
개발자는 FDK를 사용하여 생산된 IC 설계를 IC 제조사에 송신하여 제품과 통합하는 집적 회로를 제조할 수 있다. 일 실시예에서, FDK에 의해 제공된 프로그램은 제어기로 사용될 하나 이상의 컴퓨터와 쌍을 이루도록 IC에 프로그래밍된다.
단계(2003)에서 개발자는 IC를 그 디바이스에 설치하고 이 IC를 디바이스의 제어 측면에 통합할 수 있다. 예를 들어, 디바이스가 마이크로파라면, IC는 IC가 마이크로파를 완전히 또는 부분적으로 조작할 수 있도록 마이크로파 제어와 통합할 수 있다. IC는 디바이스의 내부 버스에 직접 연결되어 IC는 디바이스를 직접 조작하고, 및/또는 명령을 선천적인 제어기에 제공하도록 할 수 있다.
단계(2004)에서 디바이스는 디바이스와 동기화하는 관리 소프트웨어에 연결될 수 있다. 관리 소프트웨어는 IC와 통합 디바이스 제어기 사이에 상호 동작 가능성을 제공할 수 있다. 관리 소프트웨어는 액세스를 제어하고, 제어 명령을 제공하고, 디바이스 및/또는 제어기를 식별할 수 있다. 관리 소프트웨어는 IC와 통합 디바이스 제어기가 플러그앤플레이되게 하는 소프트웨어를 제공할 수 있다. 통합 디바이스 제어기는 또한 관리 소프트웨어와 동기화할 수 있고, 디바이스를 제어하는 요청을 나타낼 수 있다. 관리 소프트웨어는 디바이스에 허가받지 않은 연결을 방지하는 보안 프로토콜을 구비할 수 있다. 디바이스에의 연결은 패스워드로 보호될 수 있다.
단계(2005)에서 제어된 디바이스와 매칭하고 디바이스를 조작할 수 있는 가상 제어를 제공하는 UI가 통합 디바이스 제어기에 제공된다. 관리 소프트웨어는 또한 디바이스의 상태 정보, 예를 들어, 디바이스가 온(on)인지 또는 오프(off)인지를 더 제공할 수 있다.
단계(2006)에서 통합 디바이스 제어기에 제어가 주어진다. UI 제어의 임의의 유저 조작은 IC로 릴레이(relayed)되어 디바이스를 제어한다. 관리 소프트웨어는 또한 디바이스의 제어에 응답하여 제공된 임의의 데이터로 통합 디바이스 제어기를 업데이트할 수 있다. 나아가 IC는 커맨드가 수신되었는지 여부, 연결이 여전히 변함 없는지 여부, 연결의 품질 등을 관리 소프트웨어와 통합 디바이스에 통지하는 중복과 응답을 제공할 수 있다.
IC는 연결이 상실될 때 또는 수동 제어가 수행되고 있을 때 페일 세이프를 더 제공할 수 있다. 일 실시예에서, IC는 통합 디바이스 제어기에의 연결이 상실될 때 셧오프(shut off)되거나 안전 모드에 진입할 수 있다. IC는 통합 디바이스 제어기를 자동적으로 오버라이드하거나 및/또는 분리할 수 있는 수동 제어 커맨드에 우선권을 더 제공할 수 있다. 본 발명의 여러 실시예에서, IC는 또한 IC 및/또는 디바이스의 상태를 나타내는 데이터를 제어 디바이스에 제공하고, 그리하여 IC 또는 디바이스의 상태를 변경하는데 필요한 제어 커맨드를 결정하는데 사용가능한 이러한 상태의 고유한 인식을 할 수 있다.
도 2 내지 도 4를 다시 참조하면, 컴퓨터에 의해 실행될 때 본 발명의 원리에 따라 FDK를 사용하여 ASIC를 설계하는 방법의 일 실시예의 추가적인 상세가 설명된다. 전술된 바와 같이, FDK는 유저가 선택할 수 있는 카테고리로 분류된 디바이스의 메뉴를 제공할 수 있다. 일 실시예에서, 메뉴는 제한된 개수의 넓은 카테고리의 디바이스로 시작하여 최종 디바이스가 선택될 때까지 각 선택마다 디바이스의 보다 지정된 카테고리로 내려갈 수 있다. 예를 들어 비 제한적으로, 메뉴는, 예를 들어, 분류, 즉 기기, 자동차, 환경을 구비할 수 있다. 분류에서 기기를 선택하면, 추가적인 카테고리, 부엌 기기, 사무실 기기, 엔터테인먼트 기기를 제공할 수 있다. 부엌 기기를 선택하면, 부엌 기기의 메뉴, 예를 들어, 믹서, 커피 기계, 스토브 등이 제공될 수 있다. 유저가 디바이스를 선택하면, 유저에 유저의 디바이스의 선택가능한 특성 세트를 제공할 수 있다. 예를 들어, 특성의 유형은 제어, 디스플레이, 입력과 출력, 통신을 포함할 수 있다.
특성은 각 특성 내에 다수의 유형을 포함할 수 있다. 예를 들어, 제어 유형은 휠(wheel), 조이스틱(joystick), 버튼, 노브(knob), 스위치 등을 포함할 수 있다. 디스플레이 유형은 시각적 통신 형태, 예를 들어, 영숫자, 베이스 ASCII, 확장된 ASCII, 비트맵, 또는 심지어 보다 복잡한 디스플레이, 예를 들어, HTML 디코딩 엔진을 말한다. 이 디스플레이 유형은 LCD, LED, OLED 등에 의해 디바이스의 유저에 전달될 수 있다. 다른 실시예에서 디바이스의 입력과 출력은 오디오, 비디오 등일 수 있다. 예를 들어, 믹서의 디스플레이는 벤더(vendor)의 "출력"(벤더가 하는 것)을 말하고, 믹서의 버튼은 믹서에 "입력", 즉 액션을 변경하거나 새로운 액션을 개시하는 커맨드 또는 명령을 말한다.
통신은 Wi-Fi, 블루투스, 시리얼, 공중 교환 전화 네트워크, WiMax, LTE 등을 포함할 수 있다. 다른 실시예에서 FDK는 더 많거나 더 적은 특성을 포함할 수 있고 및/또는 상이한 카테고리를 사용할 수 있다.
유저는 각 특성 및/또는 각 특성 내 유형을 다수 선택할 수 있다. 일부 경우에, 유저는 IC가 연결될 수 있는 환경과 관련된 추가적인 사양을 추가할 수 있다. 이들 사양은, 예를 들어, 실제 크기(real estate)(칩 사이즈와 치수), 클록 속력; 인터럽트; 동작 전압, 전류, 전력; HDL과 같은 통신 유형 등을 포함할 수 있다. 일부 실시예에서, FDK는 설계된 IC가 적절히 실행하는데 필요한 최소 요소를 지시할 수 있다.
각 특성 및/또는 유형은 디바이스에서 이 특성과 유형을 수행하고 제어하는 미리 결정된 표준화된 IC와 링크될 수 있다. FDK는 제조하는 IC 제조사에 송신될 수 있는 전체 IC 설계 레이아웃 및/또는 회로도를 설계하고 개발할 수 있다. FDK는 각 선택이 링크되는 표준 IC 부분의 라이브러리를 구비할 수 있다. 모든 선택이 이루어지면 FDK는 표준화된 IC 부분을 결합하고 최종 IC의 CAD 설계를 제공할 수 있다. CAD 소프트웨어가 IC를 설계할 때 표준 셀 또는 블록의 라이브러리를 제공할 수 있는 방법과 유사하게, FDK는 유저의 선택된 특성에 기초하여 디바이스를 완전히 기능하고 제어할 수 있는 표준화된 IC 부품을 제공할 수 있다.
일 실시예에서, FDK는 유저의 선택에 기초하여 변경되지 않은 표준 IC 부품의 조합을 결합할 수 있다. 다른 실시예에서, FDK는 유저에 의해 선택된 하나 이상의 표준 IC 부품을 변경하여 효율을 증가시키거나, 중복 부분을 감소시키거나, 특정 사이즈를 맞추거나, 및/또는 유저에 의해 선택된 특정 사양을 보상할 수 있다. FDK는 개발된 추가적인 IC 부품으로 확장가능할 수 있고, 각 반복은 이전 기종과 호환가능할 수 있다.
도 9는 FDK를 사용하여 설계된 IC(300)의 예시적인 블록도이다. IC(300)는 하나 이상의 표준 IC 부품 1 내지 표준 IC 부품 N을 구비할 수 있다. IC(300)는 내부 버스(301)를 통해 통합된 디바이스로부터 또는 네트워크 연결(302)을 통해 통합 디바이스 제어기로부터 입력을 수신할 수 있다. 일 실시예에서, 하나 이상의 IC 부품은 네트워크 인터페이스 제어기로부터 정보를 수신하도록 구성될 수 있다. 다른 실시예에서, 네트워크 인터페이스 제어기(Network Interface Controller: NIC)는 하나 이상의 표준 IC 부품을 통해 IC(300)와 통합될 수 있다. IC(300)는 출력을 제공하여 디바이스를 제어하거나 또는 피드백을 제어기에 제공하도록 더 구성될 수 있다.
일 실시예에 따라, 애플리케이션 관리 소프트웨어는 FDK를 통해 설계된 IC를 포함하는 제어되는 디바이스와 통합 디바이스 제어기 사이에 상호 동작 가능성을 관리할 수 있다. 이 관리 소프트웨어는 통합 디바이스 제어기로 사용되고 있는 컴퓨터에 설치되거나, 서버에 유지되거나, 디바이스의 IC에 유지되거나, 또는 이들의 조합에 유지될 수 있다. 관리 소프트웨어는 객체의 신원, 입력 출력 능력, UI 설정, 보안, 드라이버, 펌웨어 및 통신을 결정할 수 있다.
도 10은 일 실시예에 따른 관리 소프트웨어(400)의 흐름도이다. 단계(401)에서 관리 소프트웨어(400)는 FDK를 통해 설계된 IC와 통합된 특정 객체의 컴퓨터 요청 제어로부터 요청을 수신할 수 있다. 일 실시예에서, 요청은 객체의 고유한 식별자를 사용하여 이루어질 수 있다. 다른 실시예에서, 객체는 네트워크에서 그 존재를 방송하여 동일한 네트워크에 있는 임의의 잠재적인 컴퓨터가 액세스 또는 제어를 요청할 수 있도록 할 수 있다.
단계(402)에서, 관리 소프트웨어(400)는 IC 및 객체와 연관된 식별자를 수신할 수 있다. 식별자는 IC에 대한 제어 파라미터를 관리 소프트웨어에 제공할 수 있다. 식별자는 IC를 동작시키는데 필요한 드라이버 또는 펌웨어를 더 제공할 수 있다. 일 실시예에서, 드라이버와 펌웨어는 관리 소프트웨어와 통합된 부분일 수 있다. IC는, 통합 디바이스 제어기에 유저 인터페이스 제어를 사용할 수 있는 관리 소프트웨어 지시자를 제공할 수 있는 유저 인터페이스 큐를 더 제공할 수 있다.
단계(403)에서, 관리 소프트웨어(400)는 FDK를 통해 선택된 IC 부품이 어느 것인지에 관한 정보를 수신하고, IC/디바이스에 대해 인에이블되는 입력, 출력, 상태 업데이트 및 UI 제어가 어떤지를 결정한다.
단계(404)에서, 관리 소프트웨어(400)는 IC 부품에 기초하여 통합 디바이스 제어기에 유저 인터페이스를 설정할 수 있다. 일 실시예에서 유저 인터페이스는 웹 브라우저 또는 다른 동종의 클라이언트 인터페이스에 디스플레이될 수 있다. 다른 실시예에서, 관리 소프트웨어는 통합 디바이스 제어기에 설치된 선천적인 프로그램을 통해 통합 디바이스 제어기에 디스플레이될 UI 제어가 어느 것인지를 명령할 수 있다. 더 다른 실시예에서, 관리 소프트웨어는 제어기에 설치하여 사용할 IC/디바이스 제어에 특정된 소프트웨어를 설치하는 실행가능한 파일을 제공할 수 있다.
단계(405)에서, 관리 소프트웨어는 유저가 통합 디바이스 제어기 또는 IC를 조작하는 것으로부터 명령 또는 상태 업데이트를 수신할 수 있다. 예를 들어, 유저는 디바이스가 턴오프될 것을 요청하는 제어를 UI에서 조작할 수 있다. 유저의 액션은 관리 소프트웨어(400)에 송신될 수 있다. 이에 응답하여, 관리 소프트웨어(400)는 대응하는 명령을 IC에 릴레이하여 디바이스를 턴오프할 수 있다. 유사하게, IC는 디바이스가 온인지 또는 오프인지 여부에 관한 상태 정보를 관리 소프트웨어(400)로 송신할 수 있다. 관리 소프트웨어는 주기적으로 및/또는 상태가 변할 때마다 상태에 관한 업데이트를 릴레이할 수 있다. UI는 디바이스로부터 현재 상태 및/또는 임의의 상태 변화를 반영할 수 있다.
일 실시예에 따라, UI 제어와 상태 업데이트는 사용된 IC 부품에 기초하여 미리 결정되고 표준화될 수 있다. UI 제어는 그 IC에 동일한 IC 부품을 사용하는 모든 디바이스에 걸쳐 일정할 수 있다. 예를 들어, IC가 조향 휠을 회전시키는 IC 부품을 사용하는 차량에 구현된 경우, 통합 디바이스 제어기는 가상 조향 휠을 디스플레이하여 유저가 조향할 수 있게 한다. 동일한 IC 부품이 모터 보트 조향 휠을 조향하는 IC에 사용된 경우, 가상 디스플레이는 통합 디바이스 제어기 디스플레이에서 동일할 수 있다. 일 실시예에서, 개발자 또는 통합 디바이스 제어 유저는 각 IC 부품을 위한 여러 표준화된 UI 제어 중에서 선택할 수 있다.
더 다른 실시예에서, 개발자 또는 유저는 UI 제어를 커스터마이즈할 수 있다. 일부 UI 제어는 특정 IC 부품, 카테고리 그룹, 및/또는 FDK에 한정된 디바이스에 특정하여 고유할 수 있다. 일 실시예에서, UI는 디바이스의 선천적인 디스플레이의 복제물(replica)일 수 있다. 예를 들어, 디바이스는 소형 LCD 디스플레이 및/또는 LED 디스플레이를 가질 수 있다. IC는 디스플레이 데이터를 통합 디바이스 제어기에 출력할 수 있고, 통합 디바이스 제어기는 동일한 복제물을 디스플레이할 수 있다. 일부 경우에, 디바이스는 터치 스크린을 가질 수 있고, 통합 디바이스 제어기는 자체 디스플레이에 터치 스크린 제어를 복제할 수 있고, 복제된 터치 스크린 제어를 통해 원격으로 상호 작용할 수 있다.
도 11은 본 발명의 일부 실시예에 사용될 수 있는 예시적인 컴퓨터 시스템(500)을 도시한다. 컴퓨터 시스템(500)은, 임베디드 컴퓨터 시스템, 시스템-온-칩(system-on-chip: SOC), 단일-보드 컴퓨터 시스템(single-board computer system: SBC)(예를 들어, 컴퓨터-온-모듈(computer-on-module: COM) 또는 시스템-온-모듈(system-on-module: SOM)), 랩탑 또는 노트북 컴퓨터 시스템, 스마트 폰, PDA(personal digital assistant), 서버, 태블릿 컴퓨터 시스템, 키오스크(kiosk), 단말, 메인프레임, 컴퓨터 시스템의 메쉬 등을 포함하지만 이들로 제한되지 않는 임의의 적절한 형태를 취할 수 있다. 컴퓨터 시스템(500)은 다수의 형태의 조합일 수 있다. 컴퓨터 시스템(500)은, 단일이거나 또는 분산되거나, 다수의 위치에 걸쳐 있거나, 다수의 시스템에 걸쳐 있거나, 또는 (하나 이상의 네트워크에서 하나 이상의 클라우드 부품을 포함할 수 있는) 클라우드로 존재할 수 있는, 하나 이상의 컴퓨터 시스템(500)을 포함할 수 있다.
일 실시예에서, 컴퓨터 시스템(500)은 하나 이상의 프로세서(501), 메모리(502), 저장매체(503), 입력/출력(I/O) 인터페이스(504), 통신 인터페이스(505), 및 버스(506)를 포함할 수 있다. 본 발명이 특정 배열의 특정 개수의 특정 부품을 가지는 특정 컴퓨터 시스템을 설명하고 도시되어 있지만, 본 발명은 임의의 적절한 배열의 임의의 적절한 개수의 부품을 가지는 다른 형태의 컴퓨터 시스템을 고려한다.
일 실시예에서, 프로세서(501)는 명령, 예를 들어, 소프트웨어를 구성하는 명령을 실행하는 하드웨어를 포함한다. 본 명세서에서, 소프트웨어라는 언급은 하나 이상의 애플리케이션, 바이트 코드(byte code), 하나 이상의 컴퓨터 프로그램, 하나 이상의 실행가능한, 하나 이상의 명령, 로직, 기계 코드, 하나 이상의 스크립트, 또는 소스 코드, 및 적절한 경우 그 역을 포함할 수 있다. 예를 들어 비 제한적으로, 명령을 실행하기 위해, 프로세서(501)는 내부 레지스터, 내부 캐시, 메모리(502) 또는 저장매체(503)로부터 명령을 검색하고; 이 명령을 디코딩하고 실행하며; 및 이후 하나 이상의 결과를 내부 레지스터, 내부 캐시, 메모리(502), 또는 저장매체(503)에 기록할 수 있다. 일 실시예에서, 프로세서(501)는 데이터, 명령, 또는 어드레스를 위한 하나 이상의 내부 캐시를 포함할 수 있다. 메모리(503)는 랜덤 액세스 메모리(random access memory: RAM), 정적 RAM, 동적 RAM 또는 임의의 다른 적절한 메모리일 수 있다. 저장매체(505)는 하드 드라이브, 플로피 디스크 드라이브, 플래쉬 메모리, 광 디스크, 자기 테이프, 또는 (프로세서에 의해 실행되는 명령을 포함하는) 데이터를 저장할 수 있는 임의의 다른 형태의 저장매체 디바이스일 수 있다.
일 실시예에서, 저장매체(503)는 HDD, 솔리드 스테이트 드라이브, 디스크 드라이브, 플래쉬 메모리, 광 디스크(예를 들어, DVD, CD, 블루레이, 등), 광자기 디스크, 자기 테이프, 또는 저장하는 임의의 다른 하드웨어 디바이스를 포함할 수 있으나 이들로 제한되지 않는 데이터 또는 명령을 위한 대량 저장매체일 수 있고, 이 저장매체는 컴퓨터 판독가능한 매체, 데이터 및/또는 이들의 조합을 저장할 수 있다. 저장매체(503)는 컴퓨터 시스템(500) 내부에 또는 외부에 있을 수 있다.
일 실시예에서, 입력/출력(I/O) 인터페이스(504)는, 컴퓨터 시스템(500)과 하나 이상의 I/O 디바이스 사이에 통신을 위한 하나 이상의 인터페이스를 제공하는 하드웨어, 소프트웨어, 또는 이들 모두를 포함한다. 컴퓨터 시스템(500)은 적절한 경우 하나 이상의 I/O 디바이스를 구비할 수 있다. 예를 들어 비 제한적으로, I/O 디바이스는 하나 이상의 마우스, 키보드, 키패드, 카메라, 마이크로폰, 모니터, 디스플레이, 프린터, 스캐너, 스피커, 카메라, 터치 스크린, 트랙볼, 트랙패드, 생체 정보 입력 디바이스 또는 센서 등을 포함할 수 있다.
다른 실시예에서, 통신 인터페이스(505)는 하나 이상의 컴퓨터 시스템 또는 하나 이상의 네트워크 사이에 통신을 위한 하나 이상의 인터페이스를 제공하는 하드웨어, 소프트웨어, 또는 이들 모두를 포함한다. 통신 인터페이스(505)는 네트워크 인터페이스 제어기(NIC) 또는 이더넷 또는 다른 유선-기반 네트워크와 통신하는 네트워크 어댑터, 또는 무선 네트워크, 예를 들어, Wi-Fi 네트워크와 통신하는 무선 NIC 또는 무선 어댑터를 포함할 수 있다. 일 실시예에서, 버스(506)는 컴퓨터 시스템(500)의 부품들을 서로 결합시키는 임의의 하드웨어, 소프트웨어, 또는 이들 둘 모두를 포함한다.
본 발명의 여러 실시예는 전술된 믹서와 같은, 부모 디바이스에 포함하도록 이용가능하게 만들어지는 ASIC과 같은 특히 저비용, 저전력 및 극히 낮은 프로파일 부품의 개발을 제공한다. ASIC 또는 자녀 부품은, 부모 디바이스와 연관된 기능과 구성의 범위에 통합하도록 부모 디바이스 설계자 및/또는 제조사에 이용가능하게 만들어진 확장가능한 서비스와 함께 자동화 에코시스템 내에 부모 디바이스를 포함하는 코어 서비스를 포함할 수 있다. 나아가, 실시예는 임의의 부모 디바이스의 거동, 동작 및 변경의 한정을 수립하는 계층 분류 시스템의 개발, 종단점의 존재와 동작의 동작 인식을 위한 UI 모델의 개발, 및 종단점으로부터 최종 유저를 당황케 하거나 분리시키지 않고 환경 인식의 동시실행을 유지하고 가변 디바이스 액세스의 처리를 간략화하는 관리 층의 개발을 제공한다. 운영 시스템에 도입되는 코어 서비스는 본 발명에 따라 ASIC을 포함하는 임의의 디바이스와 상호 동작 가능성을 위한 관리 애플리케이션에 액세스 및 해석 모드를 제공한다.
알려진 것이든지 또는 미지의 것이든지 간에 임의의 디바이스의 임의의 고려가능한 치환이 전술된 FDK 시스템 및 방법을 포함하는 실시예의 도래로 제3자 제출 모델에 의해 가능하게 이루어지게 수용될 수 있다. 에코시스템 내 임의의 부품의 관리와 제어는 임베디드 요소의 로직 내에 포함된 분류 시스템 내에 수립된 한정된 파라미터와 함께 FDK 작업-제품 내에 제출된 데이터 세트의 조합을 통해 가능하게 만들어진 균일한 접근법을 통해서 나타난다.
본 발명의 여러 실시예는 FDK의 분산을 위한 라이센스 모델, 임베디드 요소, 예를 들어 ASIC의 주문 생산(Build-To-Order) 제조와 분산에 의해 가능하게 이루어진 상용화된 제품 판매, 임베디드 요소의 확산을 위한 로열티 모델, FDK 사용을 지원하고 가이드하기 위해 수립된 전문 서비스 수익 시스템, 및 관리 시스템의 전개를 위한 상용 제품 판매 및 라이센스 모델을 포함하지만 이들로 제한되지 않는 수익 기회를 더 제공한다. 본 발명의 실시예는 모든 산업 분야에 침투하여 집적 회로를 사용하는 모든 제조된 구성물 또는 디바이스에 입력될 수 있는, 수퍼 수직으로(super vertically) 및 수퍼 수평으로(super horizontally) 통합된 기술 부분이 될 수 있다.
본 발명의 특정 실시예가 설명되었으나, 본 발명의 범위와 사상 내에서 여러 상이한 변형이 이루어질 수 있는 것으로 이해된다. 그리하여 본 발명은 첨부된 청구범위에 의해서만 제한된다.

Claims (20)

  1. 디바이스에 통합될 때 디바이스를 제어하는 IC를 설계하는 컴퓨터로 구현되는 방법으로서,
    전자 디바이스를 제어하도록 IC를 제어하기 위한 하드웨어 IC 및 관련된 운영 소프트웨어를 설계하기 위해 소프트웨어 명령에 의해 프로그래밍된 프로세서의 메모리로 상기 전자 디바이스의 카테고리로 분류된 입력 및 출력 특성의 선택을 수신하는 단계;
    프로세서에 의해 상기 전자 디바이스의 카테고리로 분류된 입력 및 출력 특성의 선택을 분석하는 단계;
    프로세서에 의해 디바이스의 입력 및 출력 특성의 선택에 기초하여 하드웨어 IC 설계를 출력하는 단계; 및
    프로세서에 의해 상기 전자 디바이스의 카테고리로 분류된 입력 및 출력 특성의 선택에 따른 전자 디바이스를 제어하기 위한 상기 하드웨어 IC에 의해 실행될 소프트웨어 프로그래밍 명령을 출력하는 단계;를 포함하는,
    컴퓨터로 구현되는 방법.
  2. 제1항에 있어서,
    상기 디바이스를 제어하기 위한 소프트웨어를 출력하는 단계는 상기 하드웨어 IC를 통해 디바이스를 제어할 수 있는 제어기에 대해 유저 인터페이스와 가상 제어(virtual control)를 제공하는 단계를 포함하는,
    컴퓨터로 구현되는 방법.
  3. 제2항에 있어서,
    상기 유저 인터페이스는 입력 및 출력 특성의 선택에 기초하는,
    컴퓨터로 구현되는 방법.
  4. 제1항에 있어서,
    상기 하드웨어 IC는 상기 디바이스로부터 상태를 입력할 수 있고 상기 상태를 제어기에 리포트할 수 있는,
    컴퓨터로 구현되는 방법.
  5. 제1항에 있어서,
    상기 하드웨어 IC 설계는 상기 입력 또는 출력 특성 중 하나를 제어할 수 있는 적어도 하나의 미리 결정된 하드웨어 IC 부품에 기초하는,
    컴퓨터로 구현되는 방법.
  6. 제5항에 있어서,
    상기 하드웨어 IC 설계는 소프트웨어 회로도(schematic), 레이아웃(layout), 또는 이들 둘 모두로 제공되는,
    컴퓨터로 구현되는 방법.
  7. 제1항에 있어서,
    상기 하드웨어 IC는 상기 소프트웨어 프로그래밍 명령에 의해 상기 디바이스의 신원(identity)과 동작 상태를 제어기에 전달하도록 구성되고, 상기 제어기는 상기 디바이스의 신원을 등록하고, 상기 디바이스의 신원에 기초하여, 상기 디바이스의 동작 상태를 변경하는 제어 커맨드를 상기 디바이스에 전달하도록 구성되는,
    컴퓨터로 구현되는 방법.
  8. 시스템으로서,
    하나 이상의 프로세서; 및
    하나 이상의 비-일시적인 컴퓨터-판독가능한 매체에 인코딩된 로직(logic)을 포함하며, 상기 로직은, 상기 하나 이상의 프로세서에 의해 실행될 때,
    디바이스의 카테고리로 분류된 입력 및 출력 특성의 선택을 수신하고;
    상기 하나 이상의 프로세서와 관련된 메모리로, 디바이스의 입력 및 출력 특성의 선택에 기초하여 하드웨어 IC를 설계하도록 상기 하나 이상의 프로세서에 의해 실행되는 로직이 동작 가능하고 ― 상기 하드웨어 IC는 통신 버스를 포함함 ―; 그리고
    하드웨어 IC의 통신 버스를 통해 상기 디바이스와 호환되는 통신 프로토콜을 사용하여 상기 디바이스의 카테고리로 분류된 입력 및 출력 특성의 선택에 따라 상기 디바이스를 제어하기 위해 하드웨어 IC에 의해 실행될 소프트웨어 프로그래밍 명령을 출력시키도록; 동작 가능한,
    시스템.
  9. 제8항에 있어서,
    제공된 상기 하드웨어 IC 설계는:
    상기 하드웨어 IC를 통해 상기 디바이스에 가상 제어를 제공하는, 제어기와 통신하는 유저 인터페이스를 포함하는,
    시스템.
  10. 제9항에 있어서,
    상기 유저 인터페이스는 입력 및 출력 특성의 선택에 기초하는,
    시스템.
  11. 제9항에 있어서,
    상기 하드웨어 IC는 상기 하드웨어 IC의 통신 버스를 통해 상기 디바이스로부터의 상태 정보를 수신하는 입력을 포함하며, 상기 상태 정보는 상기 디바이스의 동작 상태를 나타내며, 상기 하드웨어 IC는 소프트웨어 프로그래밍 명령에 의해 호환 가능한 통신 프로토콜을 사용하여 하드웨어 IC의 통신 버스를 통해 상기 제어기에 상태 정보를 전달하도록 구성되는,
    시스템.
  12. 제9항에 있어서,
    상기 하드웨어 IC 설계는 상기 입력 및 출력 특성 중 하나를 제어할 수 있는 적어도 하나의 미리 결정된 하드웨어 IC 부품에 기초하는,
    시스템.
  13. 제12항에 있어서,
    상기 하드웨어 IC 설계는 소프트웨어 회로도, 레이아웃, 또는 이들 둘 모두로 제공되는,
    시스템.
  14. 제8항에 있어서,
    상기 하나 이상의 비-일시적인 컴퓨터-판독가능한 매체는 로직을 더 포함하고, 상기 로직은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 하드웨어 IC 설계에 기초하여 상기 하드웨어 IC의 기능을 시뮬레이팅하도록 더 동작가능한,
    시스템.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020157036516A 2013-05-23 2014-05-23 전자 디바이스의 범용 제어를 위한 시스템 및 방법 KR102246272B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/901,466 2013-05-23
US13/901,466 US8924899B2 (en) 2013-05-23 2013-05-23 System and method for universal control of electronic devices
PCT/US2014/039302 WO2014190242A1 (en) 2013-05-23 2014-05-23 System and method for universal control of electronic devices

Publications (2)

Publication Number Publication Date
KR20160040145A KR20160040145A (ko) 2016-04-12
KR102246272B1 true KR102246272B1 (ko) 2021-04-29

Family

ID=51934196

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157036516A KR102246272B1 (ko) 2013-05-23 2014-05-23 전자 디바이스의 범용 제어를 위한 시스템 및 방법

Country Status (7)

Country Link
US (3) US8924899B2 (ko)
EP (2) EP4164239A1 (ko)
KR (1) KR102246272B1 (ko)
CN (1) CN105432093B (ko)
FI (1) FI3000239T3 (ko)
PL (1) PL3000239T3 (ko)
WO (1) WO2014190242A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924899B2 (en) * 2013-05-23 2014-12-30 Daniel Jakob Seidner System and method for universal control of electronic devices
FR3025333B1 (fr) * 2014-08-26 2017-12-08 Bull Sas Serveur comprenant une pluralite de modules
CN107818191B (zh) * 2016-09-14 2021-06-04 杭州芯翼科技有限公司 一种集成电路的设计方法、装置、系统以及云端服务器
US11633673B2 (en) * 2018-05-17 2023-04-25 Universal City Studios Llc Modular amusement park systems and methods
US20220019676A1 (en) * 2020-07-15 2022-01-20 VULTARA, Inc. Threat analysis and risk assessment for cyber-physical systems based on physical architecture and asset-centric threat modeling
US11573772B2 (en) * 2020-09-10 2023-02-07 Electronic Arts Inc. Mechanism for information propagation and resolution in graph-based programming languages

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113037A1 (en) * 2007-10-24 2009-04-30 Honeywell International Inc. Interoperable network programmable controller generation system
US8245163B1 (en) 2008-07-23 2012-08-14 Altera Corporation Partial compilation of circuit design with new software version to obtain a complete compiled design
US20120259574A1 (en) 2011-04-05 2012-10-11 Chenmin Hu Designed-based yield management system

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6850252B1 (en) * 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
AU7174700A (en) * 2000-05-04 2001-11-08 Vasu Tech Limited Configurable electronic controller
US8176296B2 (en) * 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US6973535B2 (en) * 2001-09-14 2005-12-06 Cornice, Inc. Digital device configuration and method
US6914551B2 (en) 2002-04-12 2005-07-05 Apple Computer, Inc. Apparatus and method to facilitate universal remote control
US7991606B1 (en) 2003-04-01 2011-08-02 Altera Corporation Embedded logic analyzer functionality for system level environments
US7093212B2 (en) * 2004-03-26 2006-08-15 International Business Machines Corporation IC design density checking method, system and program product
US8370323B2 (en) * 2004-08-31 2013-02-05 Intel Corporation Providing information services related to multimodal inputs
US9712486B2 (en) * 2006-09-25 2017-07-18 Weaved, Inc. Techniques for the deployment and management of network connected devices
EP2082191B1 (de) 2006-10-17 2015-08-12 Endress+Hauser GmbH+Co. KG FELDGERÄT ZUR BESTIMMUNG UND ÜBERWACHUNG EINER PROZESSGRÖßE IN DER PROZESSAUTOMATISIERUNG
WO2009027756A2 (en) 2007-08-28 2009-03-05 Abb Research Limited Real-time communication security for automation networks
WO2010033263A1 (en) * 2008-09-17 2010-03-25 Tabula, Inc. Controllable storage elements for an ic
US8326962B2 (en) 2009-07-01 2012-12-04 Siemens Corporation Method, system and apparatus for providing automation management services
US8589851B2 (en) 2009-12-15 2013-11-19 Memoir Systems, Inc. Intelligent memory system compiler
US8269524B2 (en) * 2010-04-27 2012-09-18 Atmel Corporation General purpose input/output pin mapping
EP2533113B1 (de) 2011-06-10 2018-08-08 Siemens Aktiengesellschaft Verfahren zum Betrieb eines Automatisierungsgerätes
US20130326502A1 (en) * 2012-05-30 2013-12-05 Google Inc. Installing applications remotely
US8924899B2 (en) * 2013-05-23 2014-12-30 Daniel Jakob Seidner System and method for universal control of electronic devices
US9880695B2 (en) * 2015-05-01 2018-01-30 International Business Machines Corporation Changing a controlling device interface based on device orientation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113037A1 (en) * 2007-10-24 2009-04-30 Honeywell International Inc. Interoperable network programmable controller generation system
US8245163B1 (en) 2008-07-23 2012-08-14 Altera Corporation Partial compilation of circuit design with new software version to obtain a complete compiled design
US20120259574A1 (en) 2011-04-05 2012-10-11 Chenmin Hu Designed-based yield management system

Also Published As

Publication number Publication date
EP3000239A4 (en) 2017-06-28
EP3000239A1 (en) 2016-03-30
EP3000239B1 (en) 2022-12-07
EP4164239A1 (en) 2023-04-12
KR20160040145A (ko) 2016-04-12
US20150121320A1 (en) 2015-04-30
US20140351774A1 (en) 2014-11-27
US8924899B2 (en) 2014-12-30
US10216174B2 (en) 2019-02-26
PL3000239T3 (pl) 2023-05-29
US20170139406A1 (en) 2017-05-18
FI3000239T3 (fi) 2023-03-20
CN105432093A (zh) 2016-03-23
WO2014190242A1 (en) 2014-11-27
US9367657B2 (en) 2016-06-14
CN105432093B (zh) 2019-11-08

Similar Documents

Publication Publication Date Title
KR102246272B1 (ko) 전자 디바이스의 범용 제어를 위한 시스템 및 방법
CN108431765B (zh) 设备应用的生成
CN107003836B (zh) 用于所连接的消费者设备的灵活设备模板
TWI501087B (zh) 用於促進計算與非計算裝置之基於代理伺服器使用者介面的遠端管理及控制之裝置、系統及方法
Serna et al. A visual programming framework for wireless sensor networks in smart home applications
KR100772344B1 (ko) 완전 기능성 원격 제어 편집기 및 에뮬레이터
US20170242577A1 (en) Method for establishing virtual community network connection and network communication system
Khan et al. Resource-based direct manipulation: a user-centric visual interface for operational customization of future smart appliances
WO2013083656A2 (fr) Systèmes et procédés de configuration et d'utilisation de systèmes automatisés dans des bâtiments
CN107851009B (zh) 用于修改基于控制器的设备的代码的行为的方法和装置
CN109891854B (zh) 用于创建和管理基于控制器的远程解决方案的方法和设备
US20240086182A1 (en) Method for connecting a web socket session with an object instance with automation device association
Bansal et al. IoT Applications in Smart Homes
US20240019850A1 (en) Extensible profiles for industrial control modules
US20240103850A1 (en) Presentation design to background service binding
EP4296803A1 (en) Device configuration object template with user interaction for device properties generator
EP3872625A1 (en) Method and system for managing an app
Fernández et al. Autonomous adaptation of user interfaces during application mobility processes in Ambient Intelligence Scenarios
CN115562653A (zh) 一种跨硬件领域构建应用程序的方法、系统及电子设备
Varela Fernández Autonomous adaptation of user interfaces during application mobility processes in Ambient Intelligence Scenarios
Abu et al. DEVELOPMENT OF HOME AUTOMATION SYSTEMSBY USING ANDROID APPS
US20170147718A1 (en) Automated techniques for designing programmed electronic devices
Preiß et al. Conception and realisation of a resilient Smart Home solution

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