KR20060070112A - Usb otg를 이용한 프로그래밍/업데이트 방법 - Google Patents
Usb otg를 이용한 프로그래밍/업데이트 방법 Download PDFInfo
- Publication number
- KR20060070112A KR20060070112A KR1020040108745A KR20040108745A KR20060070112A KR 20060070112 A KR20060070112 A KR 20060070112A KR 1020040108745 A KR1020040108745 A KR 1020040108745A KR 20040108745 A KR20040108745 A KR 20040108745A KR 20060070112 A KR20060070112 A KR 20060070112A
- Authority
- KR
- South Korea
- Prior art keywords
- host
- programming
- target
- version
- usb otg
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은 호스트 PC없이도 다수의 디바이스의 소프트웨어를 프로그래밍/업데이트하는 방법에 관한 것으로서, 좀더 상세하게는 USB OTG 규격을 이용하여 각각의 디바이스가 호스트 및 디바이스로 동작되도록 하여 프로그래밍/업데이트하는 방법에 관한 것이다. 이를 위하여 본 발명은, 코딩 블록이 실린 플래시 메모리를 각각 지닌 두 개의 디바이스가 시리얼 인터페이스 규격인 USB OTG 접속을 수행하는 접속 과정과, 상기 접속된 두개의 디바이스 중에서 USB OTG 규격에 따라 어느 하나는 호스트 디바이스로 동작하고 다른 하나는 타겟 디바이스로 동작하는 동작모드 결정 과정과, 상기 호스트 디바이스가 최신버전의 코딩 블록을 상기 타겟 디바이스로 다운로드하여 줌으로써, 타겟 디바이스가 다운로드받은 최신버전의 코딩 블록으로 프로그래밍/업데이트 하는 프로그래밍/업데이트 과정을 포함한다.
USB, OTG, 업데이트, 다운로드, 프로그램, 휴대폰, 단말기
Description
도 1은 호스트 PC와 USB 허브를 이용한 종래의 프로그래밍/업데이트 방법.
도 2a와 도 2b는 본 발명에 따라 호스트 및 타겟 기능을 하는 디바이스의 접속 모습을 도시한 그림.
도 3은 호스트 디바이스와 타겟 디바이스의 내부 구성 블록을 도시한 블록도.
도 4a는 호스트 플래시 메모리의 내부 코딩 블록을 도시한 그림.
도 4b는 타겟 플래시 메모리의 내부 코딩 블록을 도시한 그림.
도 5는 본 발명에 따라 호스트 디바이스에서 타겟 디바이스로 최신버전의 프로그램이 다운로드되는 과정을 도시한 흐름도.
도 6은 USB OTG의 케이블 접속 모습을 도시한 그림.
도 7a, 도 7b는 다운로드 여부를 질의하는 표시창을 도시한 그림.
*도면의 주요 부분에 대한 부호의 설명*
S502: USB OTG 케이블 접속 S504: 호스트 모드 동작
S506: 타겟 모드 동작 S514: 전송?
S518: 다운로드 실행? S522: 다운로드
S524: 업데이트/프로그래밍
본 발명은 호스트 PC없이도 다수의 디바이스의 소프트웨어를 프로그래밍/업데이트하는 방법에 관한 것으로서, 좀더 상세하게는 USB OTG 규격을 이용하여 각각의 디바이스가 호스트 및 디바이스로 동작되도록 하여 프로그래밍/업데이트하는 방법에 관한 것이다.
현재의 임베디드 시스템의 개발주기는 매우 짧아지고 있다. 이로 인해, 일반 사용자가 직접 소프트웨어(Frimware: Bootloader, OS, Data)를 업데이트 해야 할 경우는 물론 개발 시에도 디바이스 내부에 장착된 플래시(flash) 메모리에 프로그래밍(programing or burning)하거나 업그레이드해야 할 필요가 빈번하게 발생하고 있다.
종래의 이러한 프로그래밍 또는 업데이트 방식은 도 1에 도시한 바와 같이 호스트 PC(100)와 USB 허브(150,HUB)를 이용해 한 개 또는 다수의 디바이스(160,162,164,166,168,170,172)에 동시에 이루어지는 방식을 취하고 있다. 상술하면, 우선, 호스트 PC측(100)엔 사용자가 다운로더(102)가 어플리케이션으로 설치되 어 있어야 하며, 호스트 PC(104)에는 타겟 디바이스(Target Device)의 플래시 메모리에 덮어 씌어질 코딩 블록(104) 역시 준비되어 있어야 한다. 타겟 디바이스(160,162,164,166,168,170,172)는 한개 또는 그 이상이 될 수 있으며, 이러한 타겟 디바이스에는 부트 로더(BootLoader)가 구비되어 호스트 PC측(100)의 다운로더(102)와 통신하여 코딩 블록(104)을 다운로드 받는다. 다운로드 받은 코딩 블록은 타겟 디바이스(160,162,164,166,168,170,172)에 내장된 플래시 메모리에 라이팅되어 업데이트가 가능해진다. 즉, 상기 도 1과 같은 구성에서 타겟 디바이스(160,162,164,168,170,172)들이 USB 주변장치로 인식이 되면서 호스트 PC(100)의 다운로더(102)가 각각의 타겟 디바이스에게 명령 메시지와 함께 코딩 블록(104)을 전송하는 방식을 취하고 있다. 그런데, USB의 한계는 PC를 통해야만 사용할 수 있다는 사실에 있다. PC가 USB라는 인터페이스에 있어서 '호스트(Host)' 역할을 하기 때문인데, 이에 따라 USB는 전적으로 'PC 의존적(PC dependent)'이라고 되어 있어, USB 시스템은 기본적으로 하나의 호스트 PC와 여러 개의 주변기기로 이루어져야 한다.
그런데, 상기와 같이 호스트 PC의 USB를 이용한 다운로딩 방법은 다음과 같은 문제가 있었다.
첫째, 상기 프로그래밍 또는 업데이트를 위하여 호스트 PC(100)를 항상 필요로 하며 또한 이러한 호스트 PC에는 다운로더(102)라는 어플리케이션이 설치되어 있어야 한다. 또한, 다수의 타겟 디바이스를 대상으로 할 때는 별도의 USB 허브(150)를 필요로 하는 문제가 있었다. 따라서, 일반 사용자가 업그레이드를 위해서 자신의 컴퓨터에 특정 프로그램을 설치하여 호스트 PC의 기능을 하게 하거나 A/S 센터를 방문해야 하는 불편함이 있었으며, 개발자 역시 항상 호스트 PC를 필요로 하는 불편이 있었다. 또한, 프로그래밍 할 수 있는 디바이스의 개수의 제한으로 대량의 디바이스들을 대상으로 업데이트나 프로그래밍 작업을 하기에는 많은 시간이 소요되는 문제가 있었다.
둘째, USB 허브(150)를 통해 연결할 수 있는 디바이스의 수가 제한적인 문제가 있었다. 즉, 도 1에 도시한 바와 같이 USB 허브(150)를 통해 동시에 여러 개의 타겟 디바이스에 코딩 블록을 프로그래밍/업데이트할 수 있으나, 현실적으론 연결할 수 있는 디바이스의 개수 제한의 문제가 있었다. 즉, 호스트 PC(100)와 USB 허브(150) 사이에 USB 라인이 하나만 있으므로 해당 라인을 각각의 타겟 디바이스들이 시분할로 나누어 사용하게 되는데, 이 때문에 허브를 통해 이미지를 전송하는데 걸리는 시간은 연결된 타겟 디바이스의 개수를 늘릴수록 느려지게 되는 원인이 되었다. 따라서, 동시에 여러 개의 타겟 디바이스의 플래시 메모리에 코딩블록을 덮어쓸 수 수 있지만, 전체 걸리는 속도는 그다지 개선되지 않는 문제가 있었다.
상기의 문제점을 해결하고자 본 발명은 안출된 것으로서, 호스트 PC 없이도 디바이스 상호간에 프로그래밍/업데이트를 수행할 수 있는 방안을 제시함을 목적으로 한다. 또한, 다수의 디바이스에 대한 프로그래밍/업데이트 시간을 향상 시키도록 USB OTG 규격에 따른 디바이스간 접속 방안을 제시함을 목적으로 한다.
상기 목적을 이루기 위하여 본 발명은, 코딩 블록이 실린 플래시 메모리를 각각 지닌 두 개의 디바이스가 시리얼 인터페이스 규격인 USB OTG 접속을 수행하는 접속 과정과, 상기 접속된 두개의 디바이스 중에서 USB OTG 규격에 따라 어느 하나는 호스트 디바이스로 동작하고 다른 하나는 타겟 디바이스로 동작하는 동작모드 결정 과정과, 상기 호스트 디바이스가 최신버전의 코딩 블록을 상기 타겟 디바이스로 다운로드하여 줌으로써, 타겟 디바이스가 다운로드받은 최신버전의 코딩 블록으로 프로그래밍/업데이트 하는 프로그래밍/업데이트 과정을 포함한다.
이하 본 발명의 바람직한 실시 예들의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 하기에서 각 도면의 구성요소들에 참조부호를 부가함에 있어 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 것이다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의 내려진 용어들로서 이는 본 발명의 기술 분야에 속하는 자의 일반적 관례에 따라서 달라질 수 있으며, 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 2a와 도 2b는 본 발명에 따라 호스트 및 타겟 기능을 하는 디바이스의 접속 모습을 도시한 그림이다.
제1디바이스(210), 제2디바이스(220), 제3디바이스(230)는 모두 동일한 동작 을 수행도록 동일한 하드웨어와 소프트웨어를 구비하고 있는 동종의 전자기기(예컨대, 휴대폰, MP3플레이어, 프린터, 디지털카메라 등의 전자 단말기)로서, 각 디바이스는 USB OTG 포트(212,222,232)를 구비하고 있다. 상기의 USB OTG(On-The-Go)는 2001년에 새롭게 규격화된 시리얼 통신 스펙으로서, 흔히 USB OTG라 하면 USB(1.1과 2.0)의 확장 또는 변형 규격으로 통한다. 상기의 USB OTG는 PC에 호스트 역할을 맡기지 않고 USB 기기 자체적으로 연결돼 데이터를 주고받을 수 있도록 한 비종속형 USB 인터페이스이다. 즉, 자체 호스팅 기능을 가진 USB OTG 칩을 장착해 USB 케이블만 있으면, 디지털 카메라와 프린터를 직접 연결해 찍은 사진을 출력한다든가, USB 메모리에 담긴 MP3 음악을 집안의 오디오 기기로 듣는 등의 'Any-to-Any'의 데이터 전송이 가능하다. 말하자면, USB는 PC 중심의 마스터-슬레이브(master-slave) 구조에서 벗어나 PDA, 휴대폰, MP3 플레이어 등의 다양한 디바이스의 활용도를 한층 높일 수 있는 디지털 기기간의 새로운 인터페이스이다. 이러한 USB OTG는 IEEE 1394로 규격화되어 있는데, 상기 IEEE 1394는 'Peer-to-Peer(P2P)' 구조를 이루고 있어 PC가 없이도 디지털 기기(디바이스)간에 데이터 전송이 가능하다. IEEE 1394 규격의 속도는 100Mbps, 200Mbps, 400Mbps가 표준이며, 800Mbps나 1600Mbps로 높이는 방안도 연구가 활발하게 이루어지고 있다.
따라서, 상기의 IEEE 1394 규격에 따른 USB OTG 포트를 구비하는 제1디바이스(210), 제2디바이스(220), 제3디바이스(230)는 프로그래밍 또는 업데이트 작업 수행에 있어서 호스트 또는 타겟으로 동작될 수 있다. 예를 들어, 도 2a에 도시한 바와 같이 제1디바이스(210)가 호스트로 동작하고 제2디바이스(220)가 타겟으로 동 작하는 경우, 호스트역할을 하는 제1디바이스(210)는 자신의 플래시 메모리에 저장하고 있던 새로운 버전의 프로그램을 타겟 역할을 하는 제2디바이스(220)로 다운로딩해 줌으로써, 제2디바이스(220)는 다운로드받은 프로그램을 자신의 플래시 메모리에 기록하는 업데이트 작업을 수행할 수 있게 된다.
한편, 상기와 같이 제2디바이스(220)가 타겟 디바이스로서 프로그래밍 또는 업데이트를 완료하여 새로운 프로그램을 가지게 되는 경우, 제2디바이스(220)는 타겟 디바이스가 아닌 도 2b에 도시한 바와 같이 호스트 디바이스(220)로 동작하여 다른 제3디바이스(230)에 다운로드 받은 최신버전의 프로그램을 전송해줄 수 있다. 결국, 각 디바이스는 USB OTG 규격에 따라 호스트, 타겟 어느 쪽으로도 동작이 가능하므로, 호스트 디바이스로서 최신버전의 프로그램을 전송하거나 또는 타겟 디바이스로서 최신버전의 프로그램을 다운로드받을 수 있다. 상기에서 프로그램이라 함은 디바이스에서 동작되는 알고리즘을 지닌 기계어의 코딩 블록을 말하는 것으로서, 이하 설명에서 설명의 편의를 위하여 다운로드 되어 업데이트 되는 대상을 프로그램으로 한정하여 설명하겠으나, 다운로드 되는 대상은 프로그램뿐만 아니라 운영 데이터, 부트로더, 다운로더 등의 다양한 코딩 블록이 될 수 있음은 자명한 사실일 것이다.
도 3은 호스트 디바이스와 타겟 디바이스의 내부 구성 블록을 도시한 블록도이다.
호스트 디바이스(300)는 최신 버전의 프로그램을 가지고 있는 디바이스로서, USB 인터페이스와 비교해볼 때 호스트 PC에 해당하는 기능을 수행한다. 이러한 호 스트 디바이스(300)는 호스트 플래시 메모리(302)와 호스트 USB OTG 포트(306)를 구비하는데, 상기의 호스트 플래시 메모리(302)는 비휘발성 메모리로서 업데이트된 최신버전의 프로그램이 기록되어 있기 때문에, 호스트 디바이스(300)는 최신버전의 프로그램을 타겟 디바이스(350)로 전송해 줄 수 있는 것이다. 이러한 전송은 호스트 플래시 메모리내의 다운로더(304)라는 모듈이 담당한다. 호스트 USB OTG 포트(306)는 상기에서 설명한 IEEE 1394 규격을 만족하는 USB OTG 포트로서, USB OTG 인터페이스 시에 호스트로 동작하는 포트이다. 마찬가지로, 타겟 디바이스(350) 내의 타겟 플래시 메모리(352)는 구버전의 프로그램이 저장되어 있는 비휘발성 메모리이고, 타겟 USB OTG 포트(356)는 USB OTG 인터페이스 시에 타겟 모드로 동작하는 포트이다. 타겟 플래시 메모리 내에는 부팅을 담당하는 부트로더(354)가 있는데, 이러한 부트로더에서 다운로드 기능이 구현되어 있다.
한편, 상기 호스트 플래시 메모리(302)와 타겟 플래시 메모리(352)는 비휘발성 메모리로서 동일한 내부 블록 구성을 가지고 있는데. 다만, 양 메모리의 차이 나는 점은 호스트 플래시 메모리(302)에는 최신버전의 프로그램이 기록되어 있는 반면에 타겟 플래시 메모리(352)에는 구버전의 프로그램이 기록되어 있다는 점이다. 이하, 도 4에서 상기 플래시 메모리(호스트 플래시 메모리, 타겟 플래시 메모리)의 내부 코딩 블록을 설명한다.
도 4a는 호스트 플래시 메모리의 내부 코딩 블록을 도시한 그림이고, 도 4b는 타겟 플래시 메모리의 내부 코딩 블록을 도시한 그림이다.
호스트 플래시 메모리와 타겟 플래시 메모리 양쪽 모두는 부트 로더(Boot Loader), OS, 프로그램/데이터, 다운로더라는 코딩 블록을 각각 구비하여 동일한 기능을 수행하는데, 이하에서, 호스트 플래시 메모리의 부트로더는 호스트 부트로더(402), 타겟 플래시 메모리의 부트로더는 타겟 부트로더(452)로 부르기로 한다. OS, 프로그램/데이터, 다운로더도 해당 코딩 블록이 호스트 플래시 메모리 내의 코딩 블록인지, 타겟 플래시 메모리 내의 코딩 블록인지에 따라 마찬가지 방법으로 호칭하기로 한다.
호스트 부트로더(402) 및 타겟 부트로더(452)는 공지된 바와 같이 디바이스의 부팅 및 드라이버를 담당하는 코딩 블록이고, 호스트 OS(404) 및 타겟 OS(454)는 RTOS(Real Time Operating System)와 같은 시스템 운영체계의 코딩 블록을 말한다. 특히, 타겟 부트로더(452)의 경우에는 호스트 디바이스로부터 최신버전의 프로그램을 다운로드 받는 경우에 이를 수행하기 위한 다운로드 알고리즘이 들어가 있다.
호스트 프로그램/데이터(406) 및 타겟 프로그램/데이터(456)는 소정의 동작 알고리즘 및 운영 데이터, 사용자 데이터가 들어있는 코딩 블록을 말한다. 특히, 각 프로그램에는 해당 프로그램의 버전을 가지고 있는데, 상기 버전을 보고서 호스트 디바이스와 타겟 디바이스는 상대편 프로그램의 버전을 확인하여 다운로드 여부를 결정할 수 있다. 예를 들어, 호스트 프로그램의 버전인 호스트 버전(405)이 최신버전이고 타겟 프로그램의 버전인 타겟 버전(455)이 구버전이 확인되는 경우에, 최신버전인 호스트 프로그램(406)이 타겟 디바이스의 타겟 프로그램(456) 영역으로 다운로드되는 것이다.
호스트 다운로더(408)는 디바이스가 호스트 디바이스로 동작할 때 타겟 디바이스로 자신이 가지고 있는 최신버전의 프로그램을 전송해 주는 다운로딩 알고리즘을 지닌 코딩 블록이다. 한편, 다운로더 기능이 필요 없는 타겟 디바이스에도 다운로더(458)가 존재하는데, 이는 타겟 디바이스가 추후에 호스트 디바이스로 이용될 수도 있기 때문에 그러한 경우 다운로더 기능을 수행하기 위하여 다운로더(458)가 구비되어 있는 것이다.
도 5는 본 발명에 따라 호스트 디바이스에서 타겟 디바이스로 최신버전의 프로그램이 다운로드되는 과정을 도시한 흐름도이다.
호스트 디바이스(300)와 타겟 디바이스(350)의 양쪽 USB OTG 포트에 USB 케이블이 접속(S502)되어 USB OTG 인터페이스가 이루어지면, 양쪽 디바이스 중에서 어느 한쪽은 호스트 모드(S504)로 동작하고 다른 한쪽의 디바이스는 타겟 모드(S506)로 동작한다. 상기와 같이 USB 케이블이 연결될 때, 어느 디바이스가 호스트 디바이스로 동작하고, 어느 디바이스가 타겟 디바이스로 동작할지 결정되는 것은 하드웨어적 또는 소프트웨어적으로 구현될 수 있다, 하드웨어적으로 구현하는 방법은, 도 6에 도시한 바와 같이 USB 케이블 내 어느 한쪽 단자의 ID 신호선(602)이 GND 신호선(604)과 단락되어 있을 경우는 해당 단자(610)가 인입되는 디바이스가 호스토로 동작하고, 반대로 단자의 ID 신호선(606)이 GND 신호선(604)과 단락되어 있지 않을 시에는 해당 단자(620)가 인입되는 디바이스는 타겟 모드로 동작한다. 이러한 하드웨어적 구현 방법은 USB OTG 규격에서 제시되고 있는 내용이므로 자세한 설명은 생략한다,
한편, 호스트, 타겟 역할을 소프트웨어적으로 결정하는 방법은 USB OTG 규격에서 제시하고 있는 HNC (Host Negotiation Protocol)를 이용하여 호스트와 타겟 역할이 결정된다. 이때 역할 결정의 기준이 되는 것은 양측 디바이스의 플래시 메모리에 저장되어 있는 소프트웨어 버전을 통하여 이루어진다. 상기 프로토콜에 따라 양측의 플래시 메모리내의 프로그램의 버전을 비교해 보아 최신 버전을 가진 쪽이 호스트로 동작하게 한다.
상기와 같이 하드웨어적 또는 소프트웨어적으로 호스트로 결정된 호스트 디바이스내의 다운로더는 타겟 디바이스로 플래시 메모리내의 타겟 버전을 요청(S508)한다. 상기 타겟 버전 전송 요청을 수신한 타겟 디바이스의 부트로더가 타겟 버전을 전송(S510)하여 주면, 다운로더는 수신한 타겟 버전이 자신이 가지고 있는 호스트 버전과 일치하는가를 판단(S512)한다. 판단결과, 타겟 프로그램의 버전이 호스트 프로그램의 버전보다 구버전인 경우에는 도 7a와 같은 메시지를 호스트 디바이스 표시창에 디스플레이하여 전송여부를 사용자에게 질의(S514)한다. 사용자가 전송을 선택하면, 호스트 디바이스는 타겟 디바이스에 최신버전을 다운로드 받을 것인가 문의하는 메시지를 호스트 버전과 함께 전송(S516)한다. 타겟 디바이스는 도 7b와 같은 메시지를 타겟 디바이스 표시창에 디스플레이하여 다운로드 여부를 사용자에게 질의(S518)한다. 사용자가 다운로드 실행을 선택하면, 타겟 디바이스는 호스트 디바이스로 다운로드 요청을 하여 해당되는 최신버전의 프로그램을 다운로 드(S520) 받는다. 타겟 디바이스(350)는 다운로드 받은 최신버전의 프로그램을 자신의 플래시 메모리의 프로그램 영역에 덮어씌움으로써 프로그램 업데이트를 완료할 수 있게 된다.
상술한 본 발명의 설명에서는 이동통신단말기와 같은 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시 될 수 있다. 따라서 본 발명의 특허 범위는 상기 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위뿐 아니라 균등 범위에도 미침은 자명할 것이다.
상기에서 기술한 바와 같이 본 발명은, USB OTG 기능을 이용하여 각각의 디바이스가 타겟 디바이스는 물론 호스트 디바이스로도 동작이 가능하도록 하는 효과가 있다. 따라서, 호스트 PC, USB 허브 등의 별다른 장치 없이도 USB OTG 인터페이스를 통해 구버전의 프로그램으로 동작되는 다른 동종의 디바이스를 업그레이드할 수 있는 효과가 있다. 또한, 다수의 동종 디바이스를 업데이트할 때, 본 발명에 따라 USB OTG 인터페이스를 통한 업데이트 시간이 USB 허브를 이용한 종래의 업데이트 시간보다 단축되는 효과가 있다. 즉, USB 허브를 이용한 종래의 업그레이드 총 소요 시간(T1)은 다음과 같은 식, 즉, T1 = t * M * (N/M) = t * M 에 의해 계산된다. 그런데, 본원 발명에 따라 USB OTG 인터페이스를 통한 업데이트가 이루어질 경우에는 업데이트 총 소요 시간(T2)은 다음과 같은 식, T2 = t * log(N)에 의해 계산된다. 상기에서 t는 1개의 디바이스를 프로그래밍할 때 걸리는 시간, M은 USB 허 브에 동시 연결 가능한 디바이스의 개수, N은 업데이트 되어야 할 총 디바이스의 개수를 의미한다. 따라서, 상기 식을 볼때 USB OTG를 이용한 업데이트 시간(T2)가 종래의 USB 허브를 이용한 업데이트 시간보다 적게 소요됨을 알 수 있다.
Claims (6)
- 코딩 블록이 실린 플래시 메모리를 각각 지닌 두 개의 디바이스가 시리얼 인터페이스 규격인 USB OTG 접속을 수행하는 접속 과정과,상기 접속된 두개의 디바이스 중에서 USB OTG 규격에 따라 어느 하나는 호스트 디바이스로 동작하고 다른 하나는 타겟 디바이스로 동작하는 동작모드 결정 과정과,상기 호스트 디바이스가 최신버전의 코딩 블록을 상기 타겟 디바이스로 다운로드하여 줌으로써, 타겟 디바이스가 다운로드받은 최신버전의 코딩 블록으로 프로그래밍/업데이트 하는 프로그래밍/업데이트 과정을 구비한 USB OTG 접속을 이용한 프로그래밍/업데이트 방법.
- 제1항에 있어서, 동작모드 결정과정은, USB OTG 규격에 따라 단자의 ID 신호선과 그라운드 신호선이 접속 여부에 따라 호스트 디바이스, 타겟 디바이스로 결정되는 것을 특징으로 하는 USB OTG 접속을 이용한 프로그래밍/업데이트 방법.
- 제1항에 있어서, 동작모드 결정과정은, USB OTG 규격의 HNC 프로토콜에 따라 양측의 코딩 블록의 버전을 확인하여 최신버전을 가진 디바이스를 호스트 디바이스 로 결정하고, 구버전을 가진 디바이스를 타겟 디바이스로 결정하는 것을 특징으로 하는 USB OTG 접속을 이용한 프로그래밍/업데이트 방법.
- 제1항에 있어서, 프로그래밍/업데이트 과정은,호스트 디바이스가 타겟 디바이스에게 타겟 디바이스의 플래시 메모리내 코딩블록의 버전(타겟 버전)을 요청하여 수신하는 과정과,호스트 디바이스의 플래시 메모리내 코딩블록의 버전(호스트 버전)이 상기 타겟 버전보다 최신버전인 경우에는, 타겟 디바이스로 해당 호스트 버전의 호스트 코딩블록을 전송해주는 과정과,타겟 디바이스가 상기 다운로드 받은 호스트 코딩블록으로 프로그래밍/업데이트 하는 과정을 포함하는 USB OTG 접속을 이용한 프로그래밍/업데이트 방법.
- 제1항에 있어서, 프로그래밍/업데이트 과정은, 최신버전으로 업데이트 여부를 사용자에게 승인 요청하여 사용자의 승인이 있는 경우에 이루어지는 과정을 포함하는 USB OTG 접속을 이용한 프로그래밍/업데이트 방법.
- 제5항에 있어서, 업데이트 여부를 사용자에게 승인 요청하는 것은 호스트 디바이스, 타겟 디바이스의 표시창에 디스플레이하여 승인 요청하는 것을 특징으로 하는 USB OTG 접속을 이용한 프로그래밍/업데이트 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040108745A KR20060070112A (ko) | 2004-12-20 | 2004-12-20 | Usb otg를 이용한 프로그래밍/업데이트 방법 |
US11/301,169 US20060136899A1 (en) | 2004-12-20 | 2005-12-12 | Method for programming/updating software using USB OTG |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040108745A KR20060070112A (ko) | 2004-12-20 | 2004-12-20 | Usb otg를 이용한 프로그래밍/업데이트 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20060070112A true KR20060070112A (ko) | 2006-06-23 |
Family
ID=36597693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040108745A KR20060070112A (ko) | 2004-12-20 | 2004-12-20 | Usb otg를 이용한 프로그래밍/업데이트 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20060136899A1 (ko) |
KR (1) | KR20060070112A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101138674B1 (ko) * | 2008-03-19 | 2012-04-25 | 르네사스 일렉트로닉스 가부시키가이샤 | Usb 제어기 및 버퍼 메모리 제어 방법 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1756711A1 (en) * | 2004-05-31 | 2007-02-28 | STMicroelectronics Pvl. Ltd. | A method for remotely upgrading the firmware of a target device using wireless technology |
US7753281B2 (en) * | 2006-06-01 | 2010-07-13 | Hewlett-Packard Development Company, L.P. | System and method of updating a first version of a data file in a contactless flash memory device |
JP5112787B2 (ja) | 2006-09-01 | 2013-01-09 | 株式会社リコー | 情報処理装置、プログラム更新方法及びプログラム |
US20080103658A1 (en) * | 2006-10-27 | 2008-05-01 | Spx Corporation | Scan tool software update using an image |
TWI364208B (en) * | 2007-04-23 | 2012-05-11 | Inventec Corp | Data updating method and electric device using the same |
KR101555210B1 (ko) * | 2009-01-30 | 2015-09-23 | 삼성전자주식회사 | 휴대용 단말기에서 내장 대용량 메모리를 이용한 컨텐츠 다운로드 방법 및 장치 |
DE102011006722A1 (de) * | 2011-04-04 | 2012-10-04 | Endress + Hauser Conducta Gesellschaft für Mess- und Regeltechnik mbH + Co. KG | Verfahren zur Programmierung eines Subsystem eines Datenübertragungssystems mit einer Basissoftware sowie ein Datenübertragungssystem |
KR101927321B1 (ko) * | 2012-04-02 | 2018-12-10 | 엘지전자 주식회사 | 업그레이드 가능한 디스플레이 장치 및 그 제어 방법 |
CN102902551A (zh) * | 2012-04-27 | 2013-01-30 | 华侨大学 | 基于单片机实现对讲设备程序升级的***及其方法 |
TWI501085B (zh) * | 2013-05-17 | 2015-09-21 | Primax Electronics Ltd | 通用序列匯流排介面偵測裝置 |
DE102013108478A1 (de) * | 2013-08-06 | 2015-02-12 | Endress+Hauser Process Solutions Ag | Verfahren zur Erweiterung einer eingebetteten Softwarekomponente eines Feldgerätes |
CN103945263A (zh) * | 2014-04-25 | 2014-07-23 | 深圳市九洲电器有限公司 | 一种机顶盒升级方法及*** |
CN104239097B (zh) * | 2014-09-03 | 2018-01-16 | 广东欧珀移动通信有限公司 | 一种通过移动终端升级配件的方法、***及移动终端 |
CN105549991A (zh) * | 2015-11-27 | 2016-05-04 | 深圳市元征软件开发有限公司 | 汽车诊断设备的软件升级方法及*** |
US20170286082A1 (en) * | 2016-03-31 | 2017-10-05 | Microsoft Technology Licensing, Llc | De-duplication during flashing of mobile devices |
CN105975303A (zh) * | 2016-04-29 | 2016-09-28 | 乐视控股(北京)有限公司 | 升级控制方法及装置 |
CN106325817A (zh) * | 2016-08-25 | 2017-01-11 | 中山市天启智能科技有限公司 | 一种嵌入式***自动升级方法 |
CN109933355B (zh) * | 2017-12-18 | 2022-08-05 | 阿里巴巴(中国)有限公司 | 应用程序升级方法及装置 |
CN110737581A (zh) * | 2018-07-20 | 2020-01-31 | 北京君正集成电路股份有限公司 | 一种测试方法和装置 |
CN109582322A (zh) * | 2018-11-20 | 2019-04-05 | 海信(山东)空调有限公司 | 一种烧录***及烧录控制方法 |
CN109857434A (zh) * | 2019-01-15 | 2019-06-07 | 厦门亿联网络技术股份有限公司 | 基于usb的软件升级方法 |
CN110659051B (zh) * | 2019-09-27 | 2023-02-03 | 上海闻泰信息技术有限公司 | 设备升级装置和方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845077A (en) * | 1995-11-27 | 1998-12-01 | Microsoft Corporation | Method and system for identifying and obtaining computer software from a remote computer |
US6049671A (en) * | 1996-04-18 | 2000-04-11 | Microsoft Corporation | Method for identifying and obtaining computer software from a network computer |
US6453336B1 (en) * | 1998-09-14 | 2002-09-17 | Siemens Information And Communication Networks, Inc. | Video conferencing with adaptive client-controlled resource utilization |
US6963900B2 (en) * | 2000-02-29 | 2005-11-08 | John Edward Boyd | Computer-based networking service and method and system for performing the same |
US20020156877A1 (en) * | 2001-04-23 | 2002-10-24 | Lu James C. | System and method for the duplication of a software system onto an appropriate target computer |
US20040015939A1 (en) * | 2001-05-16 | 2004-01-22 | Cheah Jonathon Y. | Updateable memory module |
JP4004825B2 (ja) * | 2002-03-14 | 2007-11-07 | 株式会社東芝 | 情報抽出共有装置 |
US7162475B2 (en) * | 2002-04-17 | 2007-01-09 | Ackerman David M | Method for user verification and authentication and multimedia processing for interactive database management and method for viewing the multimedia |
JP3636158B2 (ja) * | 2002-04-19 | 2005-04-06 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
US7546360B2 (en) * | 2002-06-06 | 2009-06-09 | Cadence Design Systems, Inc. | Isolated working chamber associated with a secure inter-company collaboration environment |
US20040098715A1 (en) * | 2002-08-30 | 2004-05-20 | Parixit Aghera | Over the air mobile device software management |
TWI220962B (en) * | 2003-01-20 | 2004-09-11 | Mediatek Inc | Firmware updating method and related apparatus for checking content of replacing firmware before firmware updating |
US20050028172A1 (en) * | 2003-07-30 | 2005-02-03 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for installing software |
-
2004
- 2004-12-20 KR KR1020040108745A patent/KR20060070112A/ko not_active Application Discontinuation
-
2005
- 2005-12-12 US US11/301,169 patent/US20060136899A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101138674B1 (ko) * | 2008-03-19 | 2012-04-25 | 르네사스 일렉트로닉스 가부시키가이샤 | Usb 제어기 및 버퍼 메모리 제어 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20060136899A1 (en) | 2006-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20060070112A (ko) | Usb otg를 이용한 프로그래밍/업데이트 방법 | |
AU2010226111B2 (en) | Accessory and mobile computing device communication using an application communication protocol | |
US8010959B2 (en) | System and method for updating device drivers | |
US8589908B2 (en) | Method for remotely upgrading the firmware of a target device using wireless technology | |
US20050246703A1 (en) | Method and apparatus for programming updates from a network unit to a mobile device | |
KR102107843B1 (ko) | 펌웨어 업데이트 방법 및 이를 사용한 전자 기기 | |
JP2011257954A (ja) | 更新管理サーバ、電子機器、更新管理システム及びその方法 | |
WO2019237438A1 (zh) | ***、电子设备及在线升级固件的方法 | |
KR20190109979A (ko) | 전자 장치 및 전자 장치의 업데이트 제어 방법 | |
KR100585753B1 (ko) | 실행 코드 업그레이드 장치 및 방법 | |
TWI449454B (zh) | 軟體更新系統及方法 | |
Stavrou et al. | Exploiting smart-phone USB connectivity for fun and profit | |
KR200385960Y1 (ko) | 휴대용 멀티미디어 플레이어의 파일 송수신을 위한 호스트/슬레이브 복합 기능 | |
AU2011101205B4 (en) | Accessory and mobile computing device communication using an application communication protocol | |
KR100643982B1 (ko) | Pc와의 데이터 송수신 프로그램을 내장한 휴대용 단말기및 데이터 자동 설치 시스템 및 방법 | |
KR100728680B1 (ko) | 실행코드 업데이트기능이 구비된 이동통신 단말기 및 그동작방법 | |
KR100629464B1 (ko) | 다중 마이크로프로세서 이동통신 단말기에 펌웨어의다운로드 속도를 향상하기 위한 병렬 다운로드 방법 | |
KR100586357B1 (ko) | 아이피 폰 운용 시스템 및 방법 | |
KR20030090124A (ko) | 인터넷을 이용하여 이동통신단말기의 프로그램을업그레이드하는 방법 | |
KR100574459B1 (ko) | 무선 개인 영역 망 기술이 적용된 무선통신 단말기에서의사용자 인터페이스 관리 방법 | |
AU2013205264B2 (en) | Accessory and mobile computing device communication using an application communication protocol | |
CN115774561A (zh) | 应用程序升级方法、电子设备、芯片及可读存储介质 | |
KR20100033243A (ko) | 주변기기 무선 업그레이드 지원장치 및 그 방법 | |
CN111240726A (zh) | 一种嵌入式数据处理*** | |
KR20050123360A (ko) | 이동통신단말기의 소프트웨어 업그레이드방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |