KR100496506B1 - Method For Providing Extended USB Functions Using Standard UMS Communication - Google Patents

Method For Providing Extended USB Functions Using Standard UMS Communication Download PDF

Info

Publication number
KR100496506B1
KR100496506B1 KR20030073250A KR20030073250A KR100496506B1 KR 100496506 B1 KR100496506 B1 KR 100496506B1 KR 20030073250 A KR20030073250 A KR 20030073250A KR 20030073250 A KR20030073250 A KR 20030073250A KR 100496506 B1 KR100496506 B1 KR 100496506B1
Authority
KR
South Korea
Prior art keywords
standard
data
packet
usb device
font
Prior art date
Application number
KR20030073250A
Other languages
Korean (ko)
Other versions
KR20050038060A (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 주식회사 텔레칩스
Priority to KR20030073250A priority Critical patent/KR100496506B1/en
Priority to PCT/KR2004/002689 priority patent/WO2005038663A1/en
Publication of KR20050038060A publication Critical patent/KR20050038060A/en
Application granted granted Critical
Publication of KR100496506B1 publication Critical patent/KR100496506B1/en

Links

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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Landscapes

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

Abstract

본 발명은 표준 UMS 통신 프로토콜을 위한 소프트웨어 스택 만을 제공하여 USB 장치를 비교적 간단하게 구성하면서도 호스트 시스템과의 USB 인터페이스를 통하여 표준 UMS 통신을 이용한 기본기능 뿐만 아니라 비표준 통신을 이용한 각종의 확장기능도 제공 가능하도록 하는 표준 UMS 통신을 이용한 USB 장치의 확장기능 제공방법에 관한 것이다. 본 발명의 USB 장치의 확장기능 제공방법에 따르면 USB 장치에 표준 UMS 통신을 위한 소프트웨어 프로토콜 스택을 제공하는 것에 의해 USB를 통한 호스트 시스템과의 표준 UMS 통신과 비표준 통신이 모두 가능하고, 이를 통해 표준 UMS 및 비표준 통신이 모두 가능한 USB 장치를 소프트웨어적으로는 간단하게 그리고 하드웨어적으로는 저렴하게 구성할 수 있으며, 또한 복잡한 소프트웨어 동작이 호스트 시스템에서 수행되므로 호스트 시스템의 성능향상에 따라 통신 속도가 함께 상승한다는 장점이 있다.The present invention provides only a software stack for a standard UMS communication protocol, so that a USB device can be configured relatively simply, but also various basic functions using standard UMS communication as well as various extended functions using non-standard communication can be provided through a USB interface with a host system. The present invention relates to a method for providing an extension function of a USB device using standard UMS communication. According to a method of providing an extension function of a USB device of the present invention, by providing a software protocol stack for standard UMS communication to a USB device, both standard UMS communication and non-standard communication with a host system via USB are possible, and thus, standard UMS USB devices capable of both standard and non-standard communication can be configured simply and inexpensively in software. Also, since complicated software operations are performed on the host system, the communication speed increases with the performance of the host system. There is an advantage.

Description

표준 UMS 통신을 이용한 USB 장치의 확장기능 제공방법 {Method For Providing Extended USB Functions Using Standard UMS Communication} {Method For Providing Extended USB Functions Using Standard UMS Communication}

본 발명은 표준 UMS 통신 프로토콜을 위한 소프트웨어 스택 만을 제공하여 USB 장치를 비교적 간단하게 구성하면서도 호스트 시스템과의 USB 인터페이스를 통하여 표준 UMS 통신을 이용한 기본기능 뿐만 아니라 비표준 통신을 이용한 각종의 확장기능도 제공 가능하도록 하는 표준 UMS 통신을 이용한 USB 장치의 확장기능 제공방법에 관한 것이다.The present invention provides only a software stack for a standard UMS communication protocol, so that a USB device can be configured relatively simply, but also various basic functions using standard UMS communication as well as various extended functions using non-standard communication can be provided through a USB interface with a host system. The present invention relates to a method for providing an extension function of a USB device using standard UMS communication.

종래로 호스트 시스템과 데이터를 주고받는 각종의 주변장치들은 USB 인터페이스를 일반적으로 사용하였는데, 이를 위해서는 먼저 시스템 개발자가 각 USB 장치별로 PC 드라이버와 통신 프로토콜, 그리고 이를 이용한 PC 관리자 프로그램을 사용자에게 정의하여 제공하여야 하고, 또한 사용자는 호스트 시스템마다 각각의 USB 장치를 위하여 PC 드라이버와 관리자 프로그램을 별도로 설치하여야 하는 불편함이 있었다.In the past, various peripheral devices that exchange data with a host system generally used USB interfaces. To this end, system developers first define PC drivers and communication protocols for each USB device, and provide PC manager programs using them. In addition, the user has to be inconvenient to install a PC driver and an administrator program for each USB device for each host system.

이에, 이러한 문제점을 해결하기 위하여 USB 포럼에서 USB 대용량 스토리지 클래스(UMS)라는 USB 표준 규격이 제안되었고 윈도우즈 2000이나 윈도우즈 XP 등의 많은 호스트 운영체제에는 이러한 표준 UMS 규격에 따른 PC 드라이버가 기본으로 설치되었다. 이를 통해, 전술한 표준 UMS 규격의 USB 통신을 지원하도록 USB 장치를 설계한다면 운영체제에 표준 UMS 용의 PC 드라이버가 기본으로 설치되어 있으므로 윈도우즈 응용 프로그램을 이용하여 간편하게 USB 장치를 사용할 수 있다고 기대되었다.In order to solve this problem, a USB standard called USB Mass Storage Class (UMS) has been proposed in the USB Forum, and many host operating systems such as Windows 2000 or Windows XP have PC drivers installed according to the standard UMS standard. Through this, if the USB device is designed to support the USB communication of the above-mentioned standard UMS standard, it is expected that the USB device can be easily used by using a Windows application because the PC driver for the standard UMS is installed in the operating system by default.

그러나, 표준 UMS 규격에서는 기존의 비표준 통신 프로토콜에서 제공하는 다수의 기능 중에서 파일 판독, 디스크 포맷, 파일 기록 등과 같은 기본기능만 제공할 뿐, USB 장치의 폰트를 변경하거나 혹은 USB 장치의 펌웨어를 업그레이드하거나 혹은 특수한 DRM 동작을 수행하는 등의 특수 확장기능에 대해서는 전혀 고려가 되어있지 않았다. 따라서, 이러한 확장기능을 활용하고자 하는 USB 장치에는 표준 UMS 규격에 따른 통신 프로토콜로는 불충분하여 별도로 비표준 통신 프로토콜이 추가로 제공되어야 하였고, 결국 USB 장치의 소프트웨어 프로토콜 구성은 오히려 더 복잡하게 되었다.However, the standard UMS standard provides only basic functions such as file reading, disk format, file writing, etc. among the many functions provided by the existing non-standard communication protocols, and changes the font of the USB device or upgrades the firmware of the USB device. No special extensions have been considered, such as performing special DRM operations. Therefore, a USB device that wants to use such an extension function is insufficient as a communication protocol according to the standard UMS standard, and thus a non-standard communication protocol has to be additionally provided. Thus, the software protocol configuration of the USB device becomes more complicated.

도 1은 종래기술에 따른 일반적인 USB 장치(110)와 호스트 시스템(120)의 소프트웨어 프로토콜 스택을 도시하는데, 도시된 소프트웨어 프로토콜 스택은 전술한 바와 같이 기본기능을 위한 표준 UMS 규격의 통신 프로토콜 뿐만 아니라 상기 확장기능을 위한 비표준 통신 프로토콜을 모두 지원할 수 있도록 설계되었으며, 이로써 USB 장치(110)의 프로토콜 스택이 대단히 복잡하다.1 shows a software protocol stack of a general USB device 110 and a host system 120 according to the prior art. The illustrated software protocol stack is a communication protocol of the standard UMS standard for basic functions as described above. It is designed to support all of the non-standard communication protocols for the extension, thereby making the protocol stack of the USB device 110 very complex.

먼저, USB 장치(110)에 내장된 프로토콜 스택을 기능적으로 분류하면, 파일시스템 레이어(File System Layer), FAT 레이어, 비-UMS 프로토콜 레이어(Non-UMS Protocol Layer)는 비표준 통신 프로토콜을 지원하기 위한 부분이고, UMS 프로토콜 레이어(UMS Protocol Layer)는 표준 UMS 규격의 통신 프로토콜을 지원하기 위한 부분이며, FTL 시스템 레이어(FTL System Layer)와 FTL I/O 레이어는 대용량 저장매체를 지원하기 위한 부분이다.First, functionally classify the protocol stack embedded in the USB device 110, and the File System Layer, the FAT layer, and the Non-UMS Protocol Layer may be used to support non-standard communication protocols. The UMS Protocol Layer is a part for supporting a communication protocol of a standard UMS standard, and the FTL System Layer and the FTL I / O layer are parts for supporting a mass storage medium.

또한, 호스트 시스템(120)에 내장된 프로토콜 스택을 기능적으로 분류하면, 좌측의 윈도우즈 UI, USB 프로토콜 레이어, USB 드라이버 레이어는 비표준 통신 프로토콜을 지원하기 위한 부분이고, 우측의 윈도우즈 UI, 파일시스템 레이어, FAT 레이어, UMS 프로토콜 레이어, USB 드라이버 레이어는 표준 UMS 규격의 통신 프로토콜을 지원하기 위한 부분이다.In addition, if the functional stack of the protocol stack embedded in the host system 120 is functionally classified, the Windows UI, the USB protocol layer, and the USB driver layer on the left side are for supporting non-standard communication protocols, and the Windows UI, file system layer, The FAT layer, the UMS protocol layer, and the USB driver layer are parts for supporting the communication protocol of the standard UMS standard.

전술한 바와 같이, 종래기술의 USB 통신방법에 따른 소프트웨어 프로토콜 스택에서는 표준 UMS 규격에 따른 통신 프로토콜 뿐만 아니라 상기 확장기능을 위한 비표준 통신 프로토콜도 함께 설치되어야 하므로 USB 장치(110) 내에는 상당히 많은 소프트웨어 모듈이 포함되어야 하는 문제점이 있으며, 특히 파일시스템 레이어와 FAT 레이어는 대단히 복잡하기 때문에 이들을 USB 장치(110) 내에 구축하는 작업으로 인해 상당히 많은 개발기간이 소모되고 USB 장치(110)의 동작 속도도 상당히 느려지게 되는 문제점이 있다.As described above, in the software protocol stack according to the USB communication method of the prior art, not only the communication protocol according to the standard UMS standard but also the non-standard communication protocol for the extension function must be installed together, so that there are quite a lot of software modules in the USB device 110. There is a problem that must be included, in particular, since the file system layer and the FAT layer are very complicated, the operation of building them in the USB device 110 takes considerable development time and the operation speed of the USB device 110 is also significantly slowed down. There is a problem.

이에, 본 발명은 USB 장치에는 표준 UMS 통신 프로토콜을 위한 소프트웨어 스택 만을 제공하면서도 호스트 시스템과의 USB 인터페이스를 통하여 표준 UMS 통신을 이용한 기본기능 뿐만 아니라 비표준 통신을 이용한 각종의 확장기능도 지원이 가능하도록 함으로써 USB 장치를 간단하게 구성할 수 있도록 해주는 USB 장치의 확장기능 제공방법을 제공하는 데에 그 목적이 있다. Accordingly, the present invention provides a USB device with only a software stack for a standard UMS communication protocol, but also supports various extended functions using non-standard communication as well as basic functions using standard UMS communication through a USB interface with a host system. Its purpose is to provide a method for providing an extension function of a USB device that can easily configure a USB device.

이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail the present invention.

도 2는 본 발명의 USB 장치의 확장기능 제공방법에 따른 USB 장치(210)와 호스트 시스템(220)의 소프트웨어 프로토콜 스택을 도시하는 도면이다. 먼저, USB 장치(210)에 내장된 프로토콜 스택을 살펴보면, 표준 UMS 규격의 통신 프로토콜을 지원하기 위해 UMS 프로토콜 레이어가 제공되고, 대용량 저장매체를 지원하기 위해 FTL 시스템 레이어와 FTL I/O 레이어가 제공되는 반면, 도 2의 USB 장치(210)에는 비표준 통신 프로토콜을 지원하기 위한 통신 프로토콜 레이어가 전혀 제공되지 않는다는 점을 알 수 있다.2 is a diagram illustrating a software protocol stack of the USB device 210 and the host system 220 according to the extended function providing method of the USB device of the present invention. First, looking at the protocol stack embedded in the USB device 210, the UMS protocol layer is provided to support the communication protocol of the standard UMS standard, and the FTL system layer and FTL I / O layer are provided to support mass storage media. On the other hand, it can be seen that the USB device 210 of FIG. 2 is not provided with a communication protocol layer at all to support the non-standard communication protocol.

또한, 호스트 시스템(220)에 내장된 프로토콜 스택을 살펴보면, 표준 UMS 규격의 통신 프로토콜을 지원하기 위해 우측의 윈도우즈 UI, 파일시스템 레이어, FAT 레이어, UMS 프로토콜 레이어, USB 드라이버 레이어가 제공되고, 비표준 통신 프로토콜을 지원하기 위해 좌측의 윈도우즈 UI, 파일시스템 레이어, FAT 레이어, USB 프로토콜 레이어, USB 드라이버 레이어가 제공된다. 도 2에 도시된 본 발명의 바람직한 실시예에 따르면, 확장형 USB 통신방법을 지원하는 호스트 시스템(220)에는 표준 UMS 규격의 통신 프로토콜과 비표준 통신 프로토콜을 위해 각각 풀셋의 소프트웨어 프로토콜 스택이 제공된다.In addition, when looking at the protocol stack built into the host system 220, the Windows UI, file system layer, FAT layer, UMS protocol layer, and USB driver layer on the right side are provided to support the communication protocol of the standard UMS standard. The Windows UI, file system layer, FAT layer, USB protocol layer and USB driver layer on the left are provided to support the protocol. According to the preferred embodiment of the present invention shown in FIG. 2, the host system 220 supporting the extended USB communication method is provided with a full set of software protocol stacks for the standard UMS standard communication protocol and the non-standard communication protocol.

도 1의 종래기술과 비교하면, 도 2에 도시된 본 발명에 따른 소프트웨어 프로토콜 스택에서는 USB 장치(210)에 설치되는 USB 통신관련 프로그램은 표준 UMS 프로토콜만 지원하면 되므로 상당히 단순해지는 대신, 호스트 시스템(220)에 설치되는 USB 통신관련 프로그램은 전술한 바와 같이 표준 UMS 규격의 통신 프로토콜과 비표준 통신 프로토콜을 위해 풀셋의 소프트웨어 프로토콜 스택, 특히 비표준 통신 프로토콜에 대응되는 파일 시스템 레이어와 FAT 레이어를 구비하여야 하므로 상당히 복잡해진다. Compared with the related art of FIG. 1, in the software protocol stack according to the present invention shown in FIG. 2, the USB communication related program installed in the USB device 210 only needs to support a standard UMS protocol. As described above, the USB communication program to be installed at 220) needs to have a full set of software protocol stacks, particularly, a file system layer and a FAT layer corresponding to the non-standard communication protocol, for the standard UMS standard communication protocol and the non-standard communication protocol. It gets complicated.

그러나, 호스트 시스템(220)에 대해서는 USB 장치(210)에서보다 개발 툴 등의 프로그램 개발환경이 편리하고 또한 호스트 시스템(220)은 프로세싱 성능이나 가용 메모리 등과 같은 프로그램 동작환경도 월등히 우수하므로 종래보다 USB 통신관련 프로그램이 좀더 복잡해지더라도 문제되지 않는다. 더욱이, 향후 호스트 시스템(220)의 성능 향상에 따라서 USB 장치(210)와 호스트 시스템(220) 간의 USB 통신속도가 증가하는 장점도 있다.However, the host system 220 has a more convenient program development environment such as a development tool than the USB device 210, and the host system 220 has a superior program operating environment such as processing performance or available memory. It doesn't matter if the communication program gets more complicated. In addition, the USB communication speed between the USB device 210 and the host system 220 may increase in accordance with the performance improvement of the host system 220 in the future.

도 3은 표준 UMS 규격에 따른 커맨드 패킷과 ACK 패킷의 필드구성(310, 320, 330)을 도시하는 도면으로서, CBW 필드구성(310)과 CSW 필드구성(330)은 USB 포럼의 UMS 관련규격, Universal Serial Bus Mass Storage Class - Bulk Only Transport, Revision 1.0, September 31, 1999, pp. 13-15에 개시되어 있고, CBW 커맨드블록 필드구성(320)은 USB 포럼의 UMS 관련규격, Universal Serial Bus Mass Storage Class - UFI Command Specification, Revision 1.0, December 14, 1998, pp. 12-14에 개시되어 있다. 표준 UMS 규격에 따른 프로토콜 동작 및 패킷 구성에 있어서 본 명세서 내에 설명되지 않은 사항에 대해서는 USB 포럼에서 제공하는 UMS 관련규격을 참조한다.3 is a diagram showing the field configuration (310, 320, 330) of the command packet and the ACK packet in accordance with the standard UMS standard, CBW field configuration 310 and CSW field configuration 330 is a UMS-related standard of the USB Forum, Universal Serial Bus Mass Storage Class-Bulk Only Transport, Revision 1.0, September 31, 1999, pp. 13-15, CBW command block field configuration 320 is a UMS-related standard of the USB Forum, Universal Serial Bus Mass Storage Class-UFI Command Specification, Revision 1.0, December 14, 1998, pp. 12-14. For the matters that are not described in the protocol operation and packet configuration according to the standard UMS standard, refer to the UMS related standard provided by the USB forum.

먼저, 호스트 시스템(120, 220)이 표준 UMS 규격의 통신 프로토콜에 따라서 USB 장치(110, 210)로 전달하는 일종의 커맨드 패킷인 CBW 필드구성(310)에 대해 간략히 기술하면, dCBWSignature 필드는 0x43425355의 고정된 값을 갖는데 해당 데이터 패킷이 표준 UMS 규격에 따른 커맨드블록 래퍼(Command Block Wrapper) 패킷이라는 것을 나타내고, dCBWTag 필드는 CBW 패킷과 CSW 패킷 페어의 결합을 표시하기 위해 사용되며, CBWCB 필드는 CBW 커맨드블록 필드로서 USB 장치(110, 210)가 보내는 커맨드의 구체적인 내용을 포함한다.First, the host system 120, 220 briefly describes the CBW field configuration 310, which is a kind of command packet transmitted to the USB devices 110, 210 according to the communication protocol of the standard UMS standard, the dCBWSignature field is fixed at 0x43425355. It indicates that the data packet is a command block wrapper packet according to the standard UMS standard. The dCBWTag field is used to indicate a combination of a CBW packet and a CSW packet pair. The CBWCB field is a CBW command block. Field contains details of a command sent by the USB devices 110 and 210.

이어서, CBW 커맨드블록 필드구성(320)에 대해 간략히 기술하면, 명령식별 코드인 Operation Code 필드는 USB 장치(110, 210)가 수행하여야 하는 동작의 종류, 예컨대 파일 판독, 디스크 포맷, 파일 기록 등을 나타내며, Operation Code 필드에 따른 동작의 종류에 따라서 이하 필드의 내용이 규정되는데, 본 명세서에서는 이에 대한 상세한 설명에 관하여는 전술한 바와 같이 USB 포럼에서 제공하는 UMS 관련규격을 참조한다.Subsequently, the CBW command block field configuration 320 will be briefly described, and the Operation Code field, which is a command identification code, indicates the type of operation that the USB device 110 or 210 should perform, for example, reading a file, formatting a disk, writing a file, or the like. The contents of the following fields are defined according to the type of operation according to the Operation Code field. In this specification, as described above, the UMS-related standard provided by the USB forum is referred to.

이어서, 상기 CBW 커맨드 패킷(310)에 대응하여 USB 장치(110, 210)가 제공하는 ACK 패킷인 CSW 필드구성(330)에 대해 간단히 기술하면, dCSWSignature 필드는 0x53425355의 고정된 값을 갖는데 해당 데이터 패킷이 표준 UMS 규격에 따른 커맨드상태 래퍼(Command Status Wrapper) 패킷이라는 것을 나타내고, dCSWTag 필드는 대응되는 CBW 패킷의 dCBWTag 필드와 동일한 값이 사용되어 상기 CBW 패킷과의 페어 결합을 표시하며, bCSWStatus 필드는 상기 Operation Code 필드에 따른 동작이 성공하였는지 여부를 나타낸다.Next, the CSW field configuration 330, which is an ACK packet provided by the USB devices 110 and 210 in response to the CBW command packet 310, is briefly described. The dCSWSignature field has a fixed value of 0x53425355. Indicates that this is a Command Status Wrapper packet according to the standard UMS standard, the dCSWTag field indicates the pair combination with the CBW packet by using the same value as the dCBWTag field of the corresponding CBW packet, and the bCSWStatus field indicates Indicates whether the operation according to the Operation Code field was successful.

도 4는 본 발명의 USB 장치의 확장기능 제공방법에서 사용하는 일반적인 UMS 흐름을 도시하는 도면이다. 먼저, 사용자는 소망하는 특정 커맨드를 선택(ST410)하는데, 상기 커맨드는 종래에 표준 UMS 통신을 이용하여 제공되었던 기본기능일 수도 있고 혹은 별도의 비표준 통신을 이용하여 구현하였던 각종의 확장기능일 수도 있다. 이어서, 상기 특정 커맨드가 사용가능한 커맨드인지 여부를 판단(ST420)하는데, 상기 판단 단계(ST420)는 선택적 사항으로서, 예를 들어 USB 장치(210)의 현재의 동작모드에서 상기 커맨드가 사용가능한 것인지 여부를 판단하며, 다른 기준에 따른 판단도 가능하다.4 is a diagram illustrating a general UMS flow used in a method for providing an extension function of a USB device of the present invention. First, the user selects a desired specific command (ST410), which may be a basic function that was conventionally provided using standard UMS communication, or various extended functions implemented using a separate non-standard communication. . Subsequently, it is determined whether the specific command is an available command (ST420), and the determining step ST420 is optional, for example, whether the command is available in the current operation mode of the USB device 210. Judgment can be made based on other criteria.

이어서, 호스트 시스템(220)의 관리자 프로그램은 상기 선택된 커맨드에 대응하여 도 3을 참조하여 전술하였던 표준 UMS 규격의 통신 프로토콜의 필드 포맷에 호환되도록 커맨드 패킷, 즉 CBW 패킷(310)을 생성(ST430)하고, 상기 생성된 CBW 패킷(310)을 타겟 USB 장치(210)로 전송(ST440)한다. 상기 CBW 패킷(310)에는 상기 선택된 특정 커맨드에 대응하여 CBW 커맨드블록(320)의 각 필드, 특히 명령식별 코드인 Operation Code 필드가 설정된다. 이어서, 필요에 따라 USB 장치(210)와 호스트 시스템(220) 사이에 일련의 데이터 패킷의 송수신 과정(ST450)이 수행되는데, 상기 송수신되는 데이터로는 예를 들어 파일 데이터, 제어 데이터, 폰트 데이터, 펌웨어 코드데이터 등을 가정할 수 있다.Subsequently, the manager program of the host system 220 generates a command packet, that is, a CBW packet 310 so as to be compatible with the field format of the communication protocol of the standard UMS standard described above with reference to FIG. 3 in response to the selected command (ST430). The CBW packet 310 is transmitted to the target USB device 210 (ST440). In the CBW packet 310, each field of the CBW command block 320, in particular, an operation code field, which is a command identification code, is set corresponding to the selected specific command. Subsequently, a process of transmitting / receiving a series of data packets between the USB device 210 and the host system 220 (ST450) is performed. For example, file data, control data, font data, Assume firmware code data and the like.

상기 CBW 커맨드블록(320)의 각 필드 값을 설정함에 있어서, 명령식별 코드의 값이 표준 UMS 규격에 규정된 값인 경우에는 "기본기능"을 제공하는 경우로서 CBW 커맨드블록(320)에서 Operation Code 이하의 필드는 표준 UMS 규격에서 규정하는 바에 따라 설정된다. 반면, 명령식별 코드의 값이 표준 UMS 규격에 규정되지 않은 값인 경우에는 본 발명에 따라 "확장기능"을 제공하는 경우로서 CBW 커맨드블록(320)에서 Operation Code 이하의 필드는 제품의 설계자가 별도로 규정한 규칙에 따라 설정된다. 다만, "확장기능"을 제공함에 있어서 적용되는 상기 별도 규칙은 본 발명에 있어서 호스트 시스템(220)과 USB 기기(210)에 공통으로 적용되므로 통신 상의 문제점은 없다.In setting the value of each field of the CBW command block 320, when the value of the command identification code is a value defined in the standard UMS standard, it provides a "basic function" and is less than or equal to the operation code in the CBW command block 320. The field of is set as specified in the standard UMS standard. On the other hand, when the value of the command identification code is a value not defined in the standard UMS standard, the "extended function" is provided according to the present invention. In the CBW command block 320, the field below the operation code is separately defined by the designer of the product. It is set according to one rule. However, the separate rule applied in providing the "expansion function" is commonly applied to the host system 220 and the USB device 210 in the present invention, so there is no communication problem.

이어서, USB 장치(210)가 일종의 ACK 패킷으로서 도 3을 참조하여 전술하였던 표준 UMS 규격의 통신 프로토콜의 필드 포맷에 호환되도록 CSW 패킷(330)을 생성하여 호스트 시스템(220)으로 전송하는데, 이를 통해 호스트 시스템(220)은 상기 명령식별 코드 Operation Code에 대응하는 특정의 동작이 USB 장치(210)에서 성공적으로 이루어졌는지 여부를 판단할 수 있으며, 이에 따라 호스트 시스템(220)의 디스플레이 화면을 통해 사용자에 대하여 상기 특정 커맨드의 성공여부에 대한 정보를 제공할 수 있다.Subsequently, the USB device 210 generates a CSW packet 330 and transmits it to the host system 220 so as to be compatible with the field format of the communication protocol of the standard UMS standard described above with reference to FIG. 3 as a kind of ACK packet. The host system 220 may determine whether a specific operation corresponding to the command identification code Operation Code was successfully performed in the USB device 210, and accordingly, the host system 220 may provide a user with a display screen of the host system 220. Information about whether the specific command succeeds can be provided.

한편, 도 4에 도시되어 있지는 않으나, 단계(ST460)의 이전 혹은 이후에 선택적으로 사용자로부터 USB 장치(210)의 특정 기기조작을 제공받는 단계가 추가될 수도 있다. 예를 들어, 펌웨어 업그레이드 동작의 경우, 펌웨어 코드데이터에 대한 송수신 동작이 이루어지면 USB 장치(210)의 화면에 유효한 펌웨어 코드데이터의 수신 여부가 표시되고, 이어서 펌웨어 업그레이드에 대한 시작 입력을 대기하는 표시화면이 제공되며, 사용자가 버튼 입력 등을 통하여 펌웨어 업그레이드 명령을 입력하면 비로소 USB 장치(210)가 펌웨어 업그레이드를 시작하도록 구성할 수도 있다. 물론, 이러한 단계가 포함되지 않고 펌웨어 코드데이터의 송수신이 완료되면 바로 펌웨어 업그레이드가 이루어지도록 구성할 수도 있다.Although not shown in FIG. 4, a step of selectively receiving a specific device operation of the USB device 210 from a user may be added before or after step ST460. For example, in the case of the firmware upgrade operation, when a transmission / reception operation for the firmware code data is performed, whether or not a valid firmware code data is received on the screen of the USB device 210 is displayed, and then the display waits for a start input for the firmware upgrade. A screen is provided, and when the user inputs a firmware upgrade command through a button input, the USB device 210 may be configured to start the firmware upgrade. Of course, these steps may not be included and the firmware upgrade may be configured as soon as the transmission and reception of the firmware code data is completed.

도 5는 본 발명의 USB 장치의 확장기능 제공방법을 이용하여 USB 장치의 폰트를 변경하는 방법을 도시하는 도면이다. 도시된 폰트변경 기능은 표준 UMS 규격의 기본기능에는 포함되지 않고 본 발명에 의해 제공되는 확장기능이며, 다만 관리자 프로그램(620)과 장치 펌웨어(610) 간의 인터페이스가 표준 UMS 통신 프로토콜에 의해 이루어질 수 있도록 설계되었다. 폰트변경 명령은 확장기능이므로 CBW 커맨드블록(320)의 명령식별 코드인 Operation Code 필드에는 표준 UMS 규격에 정의되지 않은 코드 값이 사용된다.5 is a diagram illustrating a method of changing a font of a USB device by using the method for providing an extension function of the USB device of the present invention. The illustrated font change function is an extended function provided by the present invention without being included in the basic function of the standard UMS standard, but the interface between the manager program 620 and the device firmware 610 may be made by the standard UMS communication protocol. Designed. Since the font change command is an extended function, a code value not defined in the standard UMS standard is used in an operation code field which is a command identification code of the CBW command block 320.

먼저, 관리자 프로그램(620)으로부터 폰트 소거영역을 지정하는 CBW 패킷이 장치 펌웨어(610)로 전송(ST610)된다. 이 때, "폰트 소거영역을 지정"할 수 있도록 함으로써 USB 장치(210)가 지원하는 복수 개의 폰트 중에서 하나를 변경하거나 혹은 현재의 폰트 중에서 일부 데이터만 변경하거나 혹은 폰트 영역 전체를 소거하는 것이 가능하다. 장치 펌웨어(610)는 폰트 소거영역을 지정하는 CBW 패킷을 수신(ST615)하면, 먼저 CBW 패킷에서 지정된 영역으로부터 폰트 데이터를 소거하고, 그 소거 결과에 대응하여 일종의 ACK 패킷인 CSW 패킷을 전송(ST620)한다. 관리자 프로그램(620)은 CSW 패킷을 수신(ST625)하면 내부 필드, 예컨대 bCSWStatus 필드를 파싱함으로써 지정된 영역의 폰트 데이터 소거동작이 성공하였는지 여부를 판단하고 이에 대응하여 재시도 여부를 판단한다.First, a CBW packet designating a font erasing area from the manager program 620 is transmitted to the device firmware 610 (ST610). In this case, it is possible to change the font erasing area so that one of a plurality of fonts supported by the USB device 210 can be changed, only some data of the current fonts can be changed, or the entire font area can be erased. . When the device firmware 610 receives the CBW packet designating the font erasing area (ST615), it first erases the font data from the area designated in the CBW packet, and transmits a CSW packet, which is a kind of ACK packet, in response to the erasure result (ST620). )do. Upon receiving the CSW packet (ST625), the manager program 620 parses an internal field, for example, a bCSWStatus field, to determine whether the font data erasing operation of the designated area is successful, and determines whether to retry in response thereto.

USB 장치(210)의 폰트 영역을 소거한 후, 관리자 프로그램(620)은 기록대상 폰트 데이터를 전달하는 환경을 설정하기 위한 CBW 패킷을 전송(ST630)하고, 장치 펌웨어(610)는 상기 CBW 패킷을 수신(ST635)하여 폰트 데이터의 수신환경을 설정하고 데이터의 수신을 대기한다. 표준 UMS 통신에서 데이터 전송은 페이지(page) 단위로 이루어지고, 도시된 바와 같이 폰트 데이터는 통상적으로 상당한 규모가 되므로 폰트 데이터는 여러 개의 패킷으로 분할하여 관리자 프로그램(621)이 수 회에 나누어 송신하고 장치 펌웨어(610)가 이들을 수 회에 나누어 수신한 후 재결합하여 사용하게 된다.After erasing the font area of the USB device 210, the manager program 620 transmits a CBW packet for setting an environment for transferring the font data to be recorded (ST630), and the device firmware 610 sends the CBW packet. Receive (ST635) to set the reception environment of the font data and wait for the reception of the data. In the standard UMS communication, data transmission is performed in units of pages, and as shown, font data is typically of a considerable size, so font data is divided into several packets, and the administrator program 621 transmits the data in several times. The device firmware 610 receives them several times and then recombines them.

한편, 장치 펌웨어(610)는 전달받은 폰트 데이터를 상기 소거된 폰트 영역에 기록하는데, 구현에 따라서는 각각의 폰트 데이터 패킷을 수신할 때마다 해당 폰트 데이터를 상기 소거된 폰트 영역에 기록할 수도 있고, 아니면 전체 폰트 데이터를 재결합한 후에 상기 소거된 폰트 영역에 기록할 수도 있다. 장치 펌웨어(610)는 전달받은 폰트 데이터를 상기 소거된 폰트 영역에 기록한 후에 그 결과에 대응하여 일종의 ACK 패킷인 CSW 패킷을 전송(ST640)하고, 관리자 프로그램(620)은 상기 CSW 패킷을 수신하여 패킷의 내부 필드를 파싱하여 성공여부, 및 이에 따른 재시도 여부를 판단한다. 이어서, 장치 펌웨어(610)는 상기 전달받은 폰트 데이터를 사용하여 USB 장치(210)의 디스플레이 화면을 설정한다. (미도시)Meanwhile, the device firmware 610 records the received font data in the erased font area. In some implementations, the device firmware 610 may record the corresponding font data in the erased font area whenever each font data packet is received. Alternatively, the entire font data may be recombined and then recorded in the erased font area. The device firmware 610 records the received font data in the erased font area and then transmits a CSW packet, which is a kind of ACK packet, in response to the result (ST640), and the manager program 620 receives the CSW packet to receive the packet. Parsing the internal field of to determine whether it is successful, and whether or not to retry accordingly. Subsequently, the device firmware 610 sets the display screen of the USB device 210 using the received font data. (Not shown)

도 5에 도시된 폰트 변경 기능을 제공하기 위해서 관리자 프로그램(620)은 2단계의 동작, 즉 USB 장치(210)의 폰트 영역을 소거하는 제1 동작과 폰트 데이터를 전송하여 상기 소거된 폰트 영역에 기록하는 제2 동작을 수행하는데, 이들 각각의 동작에 별개의 명령식별 코드(Operation Code)를 부여하는 것도 가능하고, 혹은 명령식별 코드는 하나로 하되 CBW 커맨드블록의 다른 필드를 서브기능(subfunction) 필드로 지정하여 별개의 서브기능 필드값을 설정함으로써 제1 동작과 제2 동작을 구분하여 지정하는 것도 가능하다.In order to provide the font changing function shown in FIG. 5, the manager program 620 transmits font data by performing a two-step operation, that is, a first operation of erasing the font area of the USB device 210 and font data to the erased font area. A second operation of recording is performed, and it is also possible to assign a separate operation code to each of these operations, or the command identification code can be one but the other field of the CBW command block is replaced by a subfunction field. It is also possible to specify the first operation and the second operation separately by setting a separate sub function field value.

도 6은 본 발명의 USB 장치의 확장기능 제공방법을 이용하여 USB 장치의 펌웨어를 업그레이드하는 방법을 도시하는 도면이다. 펌웨어 업그레이드 기능 또한 표준 UMS 규격의 기본기능에는 포함되지 않고 본 발명에 의해 제공되는 확장기능이며, 다만 관리자 프로그램(720)과 장치 펌웨어(710) 간의 인터페이스가 표준 UMS 통신 프로토콜에 의해 이루어질 수 있도록 설계되었다. 펌웨어 업그레이드 명령도 확장기능이므로 CBW 커맨드블록(320)의 명령식별 코드인 Operation Code 필드에는 표준 UMS 규격에 정의되지 않은 코드 값이 사용된다.6 is a diagram illustrating a method of upgrading firmware of a USB device by using the method for providing an extension function of the USB device of the present invention. The firmware upgrade function is also an extension provided by the present invention without being included in the basic functions of the standard UMS standard. However, the firmware upgrade function is designed such that an interface between the manager program 720 and the device firmware 710 can be made by the standard UMS communication protocol. . Since the firmware upgrade command is also an extension function, a code value not defined in the standard UMS standard is used in the Operation Code field of the CBW command block 320.

먼저, 관리자 프로그램(720)은 상기 확장기능에 따른 펌웨어 업그레이드 동작을 지정하는 CBW 패킷을 생성하여 전송(ST710)하고, USB 장치(210)의 장치 펌웨어(710)는 상기 CBW 패킷을 수신(ST715)한 후 시스템 동작모드가 펌웨어 업그레이드 모드로 전환한다. 이어서, 관리자 프로그램(720)은 펌웨어 코드데이터의 다운로드 동작을 수행할 다운로드 프로그램(DN_PGM)을 다운로드 받기 위해 필요한 정보를 포함하는 정보패킷을 장치 펌웨어(710)로 전송(ST720)하고, 장치 펌웨어(710)는 상기 DN_PGM 정보패킷을 수신(ST725)하여 파싱함으로써 상기 다운로드 프로그램을 다운로드하기 위한 환경을 설정한다.First, the manager program 720 generates and transmits a CBW packet specifying a firmware upgrade operation according to the extension function (ST710), and the device firmware 710 of the USB device 210 receives the CBW packet (ST715). The system operation mode then switches to the firmware upgrade mode. Subsequently, the manager program 720 transmits an information packet including information necessary for downloading the download program DN_PGM to perform the download operation of firmware code data to the device firmware 710 (ST720), and the device firmware 710. ) Sets the environment for downloading the download program by receiving and parsing the DN_PGM information packet (ST725).

이어서, 관리자 프로그램(720)과 장치 펌웨어(710) 간의 일련의 데이터 패킷 송수신을 통하여 장치 펌웨어(710)로 다운로드 프로그램(DN_PGM)이 전달되는데, 앞서 폰트 데이터의 송수신에서 전술한 바와 마찬가지로 표준 UMS 통신에서 데이터 전송은 페이지 단위로 이루어지는 반면 다운로드 프로그램(DN_PGM)의 코드크기는 1 페이지를 초과할 것이므로 관리자 프로그램(720)으로부터 복수 개의 DN_PGM 패킷이 전송된다. 바람직하게는 장치 펌웨어(710)는 각각의 DN_PGM 데이터 패킷이 수신되면 상기 데이터를 USB 장치(210)의 내부 메모리로 복사하고 모든 데이터 패킷의 송수신이 완료되면 각각의 데이터를 결합함으로써 다운로드 프로그램(DN_PGM)을 재구성하며, 상기 재구성된 다운로드 프로그램(DN_PGM)은 바람직하게는 USB 장치(210)의 내부 메모리에서 실행된다.Subsequently, the download program DN_PGM is transferred to the device firmware 710 through a series of data packet transmissions and receptions between the manager program 720 and the device firmware 710. While the data transmission is performed in units of pages, the code size of the download program DN_PGM will exceed one page, so that a plurality of DN_PGM packets are transmitted from the manager program 720. Preferably, the device firmware 710 copies the data to the internal memory of the USB device 210 when each DN_PGM data packet is received, and combines the respective data when all data packets have been transmitted and received. The reconstructed download program DN_PGM is preferably executed in the internal memory of the USB device 210.

이어서, 관리자 프로그램(720)은 펌웨어 코드데이터의 송수신에 있어서 상기 다운로드 프로그램이 참조할 각종의 정보가 포함된 코드정보 패킷을 전송(ST730)하며, 장치 펌웨어(710)는 상기 코드정보 패킷을 수신(ST735)하여 코드정보 패킷으로부터 상기 포함된 정보를 획득하고 체크한다. 만일, 이러한 각종의 정보가 앞서 전술하였던 DN_PGM 정보패킷에 포함되었다면 코드정보 패킷의 송수신 과정(ST730, ST735)은 삭제될 수 있다. 그리고 나서, 장치 펌웨어(710)는 전술한 CBW 패킷에 대응하는 CSW 패킷을 전송(ST740)하고, 관리자 프로그램(720)은 CSW 패킷을 수신(ST745)한 후 내부 필드를 파싱하여 펌웨어 코드데이터의 정보가 성공적으로 전달되었는지 여부, 및 재시도 여부를 판단한다.Subsequently, the manager program 720 transmits a code information packet including various types of information to be referred to by the download program in transmission and reception of firmware code data (ST730), and the device firmware 710 receives the code information packet ( ST735) to obtain and check the included information from the code information packet. If such various kinds of information are included in the aforementioned DN_PGM information packet, the process of transmitting / receiving code information packets ST730 and ST735 may be deleted. Then, the device firmware 710 transmits the CSW packet corresponding to the above-described CBW packet (ST740), and after receiving the CSW packet (ST745), the manager program 720 parses an internal field to obtain information of the firmware code data. Determines whether the was successfully delivered and whether or not to retry.

이어서, 관리자 프로그램(720)과 장치 펌웨어(710) 간에 펌웨어 코드데이터가 송수신(ST750, ST755)되고, USB 장치(210)에서는 전달받은 펌웨어 코드데이터를 사용하여 펌웨어를 교체하는 동작을 수행한다. 상기 펌웨어 표체를 위해서는 플래시 메모리나 EEPROM 등의 펌웨어 메모리 영역에 존재하는 펌웨어 코드를 소거하고 상기 전달받은 펌웨어 코드데이터를 상기 펌웨어 메모리 영역에 기록하며, 바람직하게는 상기 기록된 펌웨어 코드데이터를 검증한다. Subsequently, firmware code data is transmitted and received between the manager program 720 and the device firmware 710 (ST750, ST755), and the USB device 210 performs an operation of replacing the firmware using the received firmware code data. In order to replace the firmware, the firmware code existing in a firmware memory area such as a flash memory or an EEPROM is erased, and the received firmware code data is recorded in the firmware memory area. Preferably, the recorded firmware code data is verified.

한편, 펌웨어 코드데이터가 복수 개의 데이터 패킷으로 전달되는 경우에는, 각각의 데이터 패킷이 수신될 때 장치 펌웨어(710)가 CSW 패킷을 전송(ST760)하고, 관리자 프로그램(720)이 CSW 패킷을 수신(ST765) 및 파싱하여 다음 패킷을 전송할 것인지 아니면 금번 패킷의 전송을 재시도할 것인지를 판단한다. 상기 펌웨어 코드데이터로서 관리자 프로그램(720)과 장치 펌웨어(710) 간에 송수신되는 데이터는 무형식의 변경불가 데이터인 것이 바람직하다.On the other hand, when the firmware code data is delivered in a plurality of data packets, when each data packet is received, the device firmware 710 transmits a CSW packet (ST760), and the manager program 720 receives the CSW packet ( ST765) and parse to determine whether to send the next packet or retry transmission of this packet. The data transmitted and received between the manager program 720 and the device firmware 710 as the firmware code data is preferably unchangeable data.

관리자 프로그램(720)과 장치 펌웨어(710)는 상기 코드정보에 기초하여 펌웨어 코드데이터의 송수신이 완료되었는지 여부를 판단할 수 있는데, 펌웨어 코드데이터의 송수신이 완료되면, 장치 펌웨어(710)에서는 시스템이 재부팅(ST770-1)되어 업그레이드된 펌웨어 코드데이터를 사용하게 되고, 관리자 프로그램(720)에서는 펌웨어 다운로드 프로그램이 종료(ST770-2)한다.The manager program 720 and the device firmware 710 may determine whether transmission / reception of the firmware code data is completed based on the code information. After rebooting (ST770-1), the upgraded firmware code data is used, and in the manager program 720, the firmware download program ends (ST770-2).

상기 다운로드 프로그램(DN_PGM)은 호스트 시스템(220)으로부터 다운로드 되어 USB 장치(210) 상에서 실행되는 프로그램으로서 향후 수행될 펌웨어 코드데이터의 다운로드 동작, 펌웨어 코드의 적재위치 지정, 플래시 메모리에 대한 기록 및 소거 방법 등을 USB 장치(210)의 설계자가 원하는 방식으로 수행할 수 있도록 하기 위한 것이다. 즉, 상기 다운로드 프로그램(DN_PGM)는 USB 장치(210)의 설계 업체에서 제공하므로, DN_PGM에서 실제 펌웨어 코드데이터의 다운로드 동작 및 적재동작, 그리고 설치 등을 담당하도록 한 후 USB 장치(210)에 대하여 DN_PGM을 최적으로 설계하여 USB 장치(210)와 함께 혹은 인터넷을 통하여 사용자에게 제공하는 것이다. 한편, 본 발명에 따른 USB 장치(210)에는 표준 UMS 통신을 위한 소프트웨어 스택이 설치되어 있으므로 상기 DN_PGM은 표준 UMS 통신을 통해 상기 펌웨어 코드데이터를 제공받는다.The download program DN_PGM is a program downloaded from the host system 220 and executed on the USB device 210. The download operation of the firmware code data to be performed in the future, the loading location of the firmware code, and the recording and erasing method for the flash memory are performed. Etc. to enable the designer of the USB device 210 to perform the desired manner. That is, since the download program (DN_PGM) is provided by the design company of the USB device 210, DN_PGM for the USB device 210 after the DN_PGM is responsible for the download operation, the loading operation, and the installation of the actual firmware code data Optimum design is to provide the user with the USB device 210 or over the Internet. On the other hand, since the USB device 210 according to the present invention is installed a software stack for standard UMS communication, the DN_PGM receives the firmware code data through standard UMS communication.

한편, 도 5 및 도 6을 참조하여 전술한 바와 같은 특정의 확장기능을 USB 장치 펌웨어(610, 710)가 제공하기 위해서는 최하위 통신 레이어에서는 표준 UMS 규격에 따르되 그 이상의 레이어에서는 비표준의 동작을 수행하여야 한다. 반면, 파일 판독, 디스크 포맷, 파일 기록 등과 같은 기본기능을 USB 장치 펌웨어(610, 710)가 제공하기 위해서는 최하위 통신 레이어와 그 이상의 레이어가 모두 표준 UMS 규격에 따라서 동작한다. 이와 같이, 상황에 따라서 USB 장치 펌웨어(610, 710)에서는 표준 UMS 규격에 따른 동작과 비표준 동작을 스위칭하는데, 그 전후에서 장치 펌웨어(610, 710)의 중요 정보, 예컨대 Vendor_ID, Product_ID, Interface class, Interface subclass, Interface protocol 등의 값이 변경되도록 구현될 수 있다.Meanwhile, in order for the USB device firmware 610 or 710 to provide a specific extension function as described above with reference to FIGS. 5 and 6, the lowest communication layer conforms to a standard UMS standard but a non-standard operation must be performed in a higher layer. do. On the other hand, in order to provide the basic functions such as file reading, disk format, file writing, etc. by the USB device firmware 610 and 710, the lowest communication layer and more layers all operate according to the standard UMS standard. As such, depending on the situation, the USB device firmware 610 or 710 switches the operation according to the standard UMS standard and the non-standard operation, and before and after the important information of the device firmware 610 and 710, for example, Vendor_ID, Product_ID, Interface class, It may be implemented so that values of Interface subclass, Interface protocol, etc. are changed.

이러한 스위칭이 원활하게 이루어질 수 있도록, 바람직하게는 사용자가 USB 장치(210)의 메뉴 등을 통하여 특정 기능을 명령할 때 기본기능인지 아니면 확장기능인지가 인식되어 설정될 수 있도록 하며, 또한 바람직하게는 사용자가 관리자 프로그램(620, 720)을 통하여 특정 기능을 명령할 때 초기 CBW 패킷을 이용하여 기본기능인지 아니면 확장기능인지가 인식되어 설정될 수 있도록 한다.In order to facilitate the switching, it is preferable that the user recognizes whether the basic function or the extended function is set when the user commands a specific function through the menu of the USB device 210, and also preferably. When a user commands a specific function through the manager programs 620 and 720, whether the basic function or the extended function is recognized and set using the initial CBW packet can be set.

본 발명의 USB 장치의 확장기능 제공방법에 따르면 USB 장치에 표준 UMS 통신을 위한 프로토콜 스택을 제공하는 것에 의해 호스트 시스템과의 USB 인터페이스를 통한 표준 UMS 통신과 비표준 통신을 모두 지원할 수 있고, 이를 통해 표준 UMS 및 비표준 통신이 모두 지원 가능한 USB 장치를 소프트웨어적으로는 간단하게 그리고 하드웨어적으로는 저렴하게 구성할 수 있으며, 또한 USB 제품 별로 비표준 통신 프로토콜을 설계할 필요가 없어 제품 설계가 간단하고 더욱이 복잡한 프로그램 작업을 호스트 시스템에서 수행하므로 호스트 시스템의 성능향상에 따라 통신 속도가 함께 상승한다는 장점이 있다.According to the method of providing an extension function of a USB device of the present invention, by providing a protocol stack for standard UMS communication to a USB device, it is possible to support both standard UMS communication and non-standard communication through a USB interface with a host system. USB devices capable of supporting both UMS and non-standard communications can be configured simply and inexpensively in software, and they do not need to design non-standard communication protocols for each USB product, making product design simpler and more complex. Since the work is performed in the host system, the communication speed increases with the performance of the host system.

도 1은 종래기술의 USB 통신방법에 따른 소프트웨어 프로토콜 스택을 도시하는 도면.1 is a diagram illustrating a software protocol stack according to the prior art USB communication method.

도 2는 본 발명의 USB 장치의 확장기능 제공방법에 따른 소프트웨어 프로토콜 스택을 도시하는 도면.2 is a diagram illustrating a software protocol stack in accordance with a method for providing an extension function of a USB device of the present invention.

도 3은 표준 UMS 규격에 따른 커맨드 패킷과 ACK 패킷의 필드구성을 도시하는 도면.3 is a diagram showing field configurations of a command packet and an ACK packet according to the standard UMS standard.

도 4는 본 발명의 USB 장치의 확장기능 제공방법에서 사용하는 일반적인 UMS 흐름을 도시하는 도면.4 is a diagram illustrating a general UMS flow used in a method for providing an extension function of a USB device of the present invention.

도 5는 본 발명의 USB 장치의 확장기능 제공방법을 이용하여 USB 장치의 폰트를 변경하는 방법을 도시하는 도면.5 is a diagram illustrating a method of changing a font of a USB device by using the method for providing an extension function of the USB device of the present invention.

도 6은 본 발명의 USB 장치의 확장기능 제공방법을 이용하여 USB 장치의 펌웨어를 업그레이드하는 방법을 도시하는 도면.6 is a diagram illustrating a method of upgrading firmware of a USB device by using the method for providing an extension function of the USB device of the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

210 : USB 장치210: USB device

220 : 호스트 시스템220: host system

310 : CBW 필드구성310: CBW field configuration

320 : CBW 커맨드블록 필드구성320: CBW command block field configuration

330 : CSW 필드구성330: CSW field configuration

610, 710 : 장치 펌웨어610, 710: device firmware

620, 720 : 관리자 프로그램620, 720: manager program

Claims (9)

표준 UMS 통신을 이용한 USB 장치의 확장기능 제공방법으로서, 관리자 프로그램으로부터 폰트 소거영역을 지정하는 제1 CBW 패킷을 수신하는 단계; 상기 제1 CBW 패킷을 파싱하고 상기 지정된 영역에 해당하는 폰트 데이터를 삭제하는 단계; 상기 제1 CBW 패킷에 대응하여 상기 폰트 데이터 소거동작의 결과를 나타내는 제1 CSW 패킷을 상기 관리자 프로그램으로 전송하는 단계; 상기 관리자 프로그램으로부터 기록대상 폰트 데이터의 전달환경을 설정하기 위한 제2 CBW 패킷을 수신하는 단계; 상기 제2 CBW 패킷을 파싱하는 단계; 상기 기록대상 폰트 데이터의 수신환경을 설정하고 상기 관리자 프로그램으로부터 상기 폰트 데이터의 수신을 대기하는 단계; 상기 관리자 프로그램으로부터 페이지 단위의 폰트 데이터가 포함된 하나이상의 데이터 패킷을 수신하고 상기 하나이상의 데이터 패킷에 포함된 폰트 데이터를 상기 폰트 소거영역에 기록하는 단계; 상기 제2 CBW 패킷에 대응하여 상기 폰트 데이터 기록동작의 결과를 나타내는 제2 CSW 패킷을 상기 관리자 프로그램으로 전송하는 단계; 및 상기 수신한 폰트 데이터를 사용하여 상기 USB 장치의 디스플레이 화면을 설정하는 단계를 포함하는 것을 특징으로 하는 USB 장치의 확장기능 제공방법.A method for providing an extension function of a USB device using standard UMS communication, the method comprising: receiving a first CBW packet specifying a font erasing area from an administrator program; Parsing the first CBW packet and deleting font data corresponding to the designated area; Transmitting a first CSW packet to the manager program indicating a result of the font data erasing operation corresponding to the first CBW packet; Receiving a second CBW packet for setting a transfer environment of recording target font data from the manager program; Parsing the second CBW packet; Setting a reception environment of the record target font data and waiting for reception of the font data from the manager program; Receiving at least one data packet including font data in units of pages from the manager program and recording font data included in the at least one data packet in the font erasing area; Transmitting a second CSW packet to the manager program indicating a result of the font data recording operation corresponding to the second CBW packet; And setting a display screen of the USB device by using the received font data. 제1항에 있어서, 상기 관리자 프로그램으로부터 상기 폰트 데이터를 수신 및 기록하는 단계는, 상기 관리자 프로그램으로부터 페이지 단위의 폰트 데이터가 포함된 데이터 패킷을 수신하는 제a 단계; 상기 데이터 패킷을 파싱하여 상기 포함된 폰트 데이터를 획득하는 제b 단계; 상기 획득된 폰트 데이터를 상기 폰트 소거영역에 순서대로 기록하는 제c 단계; 및 상기 폰트 데이터의 수신이 완료되었는지 여부를 상기 설정된 수신환경에 기초하여 판단하여 완료되지 않은 경우에는 상기 제a 단계로 진행하는 제d 단계를 포함하여 구성되는 것을 특징으로 하는 USB 장치의 확장기능 제공방법.The method of claim 1, wherein the receiving and recording the font data from the manager program comprises: a a step of receiving a data packet including font data in page units from the manager program; B) parsing the data packet to obtain the included font data; C) recording the obtained font data in order in the font erasing area; And determining whether the reception of the font data has been completed based on the set reception environment, and if the completion of the font data is not completed, proceeding to step a). Way. 제1항에 있어서, 상기 관리자 프로그램으로부터 상기 폰트 데이터를 수신 및 기록하는 단계는, 상기 관리자 프로그램으로부터 페이지 단위의 폰트 데이터가 포함된 데이터 패킷을 수신하는 제a 단계; 상기 폰트 데이터의 수신이 완료되었는지 여부를 상기 설정된 수신환경에 기초하여 판단하여 완료되지 않은 경우에는 상기 제a 단계로 진행하는 제b 단계; 상기 폰트 데이터의 수신이 완료된 경우 상기 수신된 하나이상의 폰트 데이터를 재결합하는 제c 단계; 및 상기 재결합된 폰트 데이터를 상기 폰트 소거영역에 기록하는 제d 단계를 포함하여 구성되는 것을 특징으로 하는 USB 장치의 확장기능 제공방법.The method of claim 1, wherein the receiving and recording the font data from the manager program comprises: a a step of receiving a data packet including font data in page units from the manager program; Determining whether the reception of the font data has been completed based on the set reception environment, and if not, proceeding to step a; C) recombining the received one or more font data when the reception of the font data is completed; And d) recording the recombined font data into the font erasing area. 표준 UMS 통신을 이용한 USB 장치의 확장기능 제공방법으로서, 관리자 프로그램으로부터 펌웨어 업그레이드 동작을 지정하는 제1 CBW 패킷을 수신하는 단계; 상기 제1 CBW 패킷을 파싱하고 동작모드를 펌웨어 업그레이드 모드로 전환하는 단계; 상기 관리자 프로그램으로부터 펌웨어 업그레이드의 환경설정을 위한 정보패킷을 수신하는 단계; 상기 정보패킷을 파싱하여 상기 DN_PGM의 전달환경을 설정하는 단계; 상기 관리자 프로그램으로부터 페이지 단위의 DN_PGM 데이터가 포함된 하나이상의 DN_PGM 패킷을 수신하고 상기 DN_PGM 데이터로부터 상기 DN_PGM을 재구성하는 단계; 상기 재구성된 DN_PGM을 내부 메모리 상에서 실행시키는 단계; 상기 DN_PGM의 다운로드 및 실행 동작의 결과를 나타내는 CSW 패킷을 상기 관리자 프로그램으로 전송하는 단계; 상기 관리자 프로그램으로부터 페이지 단위의 펌웨어 코드데이터가 포함된 하나이상의 데이터 패킷을 수신하는 단계; 상기 하나이상의 데이터 패킷에 포함된 펌웨어 코드데이터로 상기 USB 장치의 펌웨어 코드를 교체하는 단계; 및 상기 USB 장치를 리부팅하는 단계를 포함하는 것을 특징으로 하는 USB 장치의 확장기능 제공방법.A method for providing an extension function of a USB device using standard UMS communication, the method comprising: receiving a first CBW packet specifying a firmware upgrade operation from an administrator program; Parsing the first CBW packet and switching an operation mode to a firmware upgrade mode; Receiving an information packet for configuration of a firmware upgrade from the manager program; Parsing the information packet to set a delivery environment of the DN_PGM; Receiving one or more DN_PGM packets including DN_PGM data in page units from the manager program and reconfiguring the DN_PGM from the DN_PGM data; Executing the reconstructed DN_PGM on internal memory; Transmitting a CSW packet indicating a result of the downloading and executing operation of the DN_PGM to the manager program; Receiving at least one data packet including firmware code data in units of pages from the manager program; Replacing firmware code of the USB device with firmware code data included in the one or more data packets; And rebooting the USB device. 제4항에 있어서, 상기 관리자 프로그램으로부터 상기 펌웨어 코드데이터의 전달환경을 설정하기 위한 코드정보 패킷을 수신하는 단계; 및 상기 코드정보 패킷을 파싱하고 상기 DN_PGM이 상기 펌웨어 코드데이터의 전달환경을 설정하는 단계를 더 포함하는 것을 특징으로 하는 USB 장치의 확장기능 제공방법.The method of claim 4, further comprising: receiving a code information packet for setting a delivery environment of the firmware code data from the manager program; And parsing the code information packet and setting, by the DN_PGM, a delivery environment of the firmware code data. 제4항에 있어서, 상기 펌웨어 코드데이터는 무형식의 변경불가 데이터인 것을 특징으로 하는 USB 장치의 확장기능 제공방법.5. The method of claim 4, wherein the firmware code data is unmodifiable data. 제1항 또는 제4항에 있어서, 상기 USB 장치의 사용자로부터 상기 확장기능에 대한 명령을 제공받는 단계; 및 상기 명령제공에 대응하여 상기 USB 장치의 장치 펌웨어가 상기 표준 UMS 통신에서 사용하는 식별자 정보를 변경하는 단계를 포함하는 것을 특징으로 하는 USB 장치의 확장기능 제공방법.The method of claim 1, further comprising: receiving a command for the extension function from a user of the USB device; And changing, by the device firmware of the USB device, the identifier information used in the standard UMS communication in response to the command provision. 제1항 또는 제4항에 있어서, 상기 제1 CBW 패킷에 대응하여 상기 USB 장치의 장치 펌웨어가 상기 표준 UMS 통신에서 사용하는 식별자 정보를 변경하는 단계를 포함하는 것을 특징으로 하는 USB 장치의 확장기능 제공방법.The extended function of claim 1 or 4, further comprising: changing, by the device firmware of the USB device, identifier information used in the standard UMS communication in response to the first CBW packet. How to Provide. 제1항 또는 제4항에 따른 표준 UMS 통신을 이용한 USB 장치의 확장기능 제공방법을 구현하는 프로그램을 기록한 컴퓨터로 판독가능한 정보기록매체.A computer-readable information recording medium having recorded thereon a program for implementing a method for providing an extension function of a USB device using the standard UMS communication according to claim 1.
KR20030073250A 2003-10-21 2003-10-21 Method For Providing Extended USB Functions Using Standard UMS Communication KR100496506B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20030073250A KR100496506B1 (en) 2003-10-21 2003-10-21 Method For Providing Extended USB Functions Using Standard UMS Communication
PCT/KR2004/002689 WO2005038663A1 (en) 2003-10-21 2004-10-20 Method for providing extended usb functions using standard ums communication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20030073250A KR100496506B1 (en) 2003-10-21 2003-10-21 Method For Providing Extended USB Functions Using Standard UMS Communication

Publications (2)

Publication Number Publication Date
KR20050038060A KR20050038060A (en) 2005-04-27
KR100496506B1 true KR100496506B1 (en) 2005-06-21

Family

ID=34464723

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20030073250A KR100496506B1 (en) 2003-10-21 2003-10-21 Method For Providing Extended USB Functions Using Standard UMS Communication

Country Status (2)

Country Link
KR (1) KR100496506B1 (en)
WO (1) WO2005038663A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060200612A1 (en) * 2005-03-02 2006-09-07 Laurence Hamid Method and protocol for transmitting extended commands to USB devices
US20070198753A1 (en) * 2006-02-06 2007-08-23 Laurence Hamid Method and protocol for transmitting extended commands to USB devices
KR100794345B1 (en) * 2006-07-04 2008-01-15 주식회사 모빌탑 Mobile Terminal Having UMS Data Communication Function and Method of Data Transmission Using The Same
KR101444070B1 (en) * 2009-07-30 2014-09-26 에스케이플래닛 주식회사 System and method for using memory of host terminal in storage device, host terminal and storage device, and recording medium thereof

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594240B1 (en) * 1998-05-22 2003-07-15 Lucent Technologies Inc. Methods and apparatus for random backoff based access priority in a communications system
US6400695B1 (en) * 1998-05-22 2002-06-04 Lucent Technologies Inc. Methods and apparatus for retransmission based access priority in a communications system
KR100377863B1 (en) * 2000-04-10 2003-03-29 (주) 로커스네트웍스 System and method of processing a call without dependence on the type of a protocol processing unit
KR20020057292A (en) * 2000-12-30 2002-07-11 박종섭 Method of transmission message with mobile IP in ALL-IP network

Also Published As

Publication number Publication date
WO2005038663A1 (en) 2005-04-28
KR20050038060A (en) 2005-04-27

Similar Documents

Publication Publication Date Title
US8817295B2 (en) Communication system and printer therefor
US7068386B2 (en) Image processing system, image data processing method, and storage medium
US8589908B2 (en) Method for remotely upgrading the firmware of a target device using wireless technology
US6965953B2 (en) Information processing apparatus, method for controlling information processing apparatus, and storage medium storing program for realizing the method
CN101110039B (en) Terminal unit self-installing and self-starting system and method thereof
JP4544188B2 (en) Drive configuration program
JP4612912B1 (en) Information processing apparatus, information processing system control method, and program
US8582139B2 (en) Driver upgrading
CN102402442B (en) Information processing apparatus, execution control method
JP2010044579A (en) Peripheral device, program, and driver installation system
US20030123082A1 (en) System and method for transferring print software from a printing device to a computing device
US20070168473A1 (en) Method for a user-specific configuration of a computer from a group of prepared computers
EP1205845B1 (en) Microcomputer and method of controlling the same
JP3914949B2 (en) USB storage device, control device thereof, and program for causing control device to execute
US20100211699A1 (en) Wireless access apparatus with firmware upgrading function and the method thereof
KR100496506B1 (en) Method For Providing Extended USB Functions Using Standard UMS Communication
JP2008059238A (en) Communication system, and printer used therefor
JP2006079634A5 (en)
US7395357B2 (en) Information processing apparatus and computer readable medium
JP2009163760A (en) Information processing apparatus, and method and program therefor
JP2008059239A (en) Communication system
JP5178319B2 (en) Application platform
US20060130043A1 (en) Method and apparatus to upgrade software of an apparatus having a plurality of microprocessors
CN101226466B (en) Main frame and method for installing its printed driver
US20070198995A1 (en) System and method for automated delivery of software

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130510

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140512

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150512

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160502

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170516

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20180521

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20190513

Year of fee payment: 15