KR20230145767A - Method of switching interface in optical disc drive - Google Patents

Method of switching interface in optical disc drive Download PDF

Info

Publication number
KR20230145767A
KR20230145767A KR1020220044565A KR20220044565A KR20230145767A KR 20230145767 A KR20230145767 A KR 20230145767A KR 1020220044565 A KR1020220044565 A KR 1020220044565A KR 20220044565 A KR20220044565 A KR 20220044565A KR 20230145767 A KR20230145767 A KR 20230145767A
Authority
KR
South Korea
Prior art keywords
host
usb
vendor
optical disk
interface
Prior art date
Application number
KR1020220044565A
Other languages
Korean (ko)
Inventor
김동영
Original Assignee
주식회사 히타치엘지 데이터 스토리지 코리아
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 히타치엘지 데이터 스토리지 코리아 filed Critical 주식회사 히타치엘지 데이터 스토리지 코리아
Priority to KR1020220044565A priority Critical patent/KR20230145767A/en
Publication of KR20230145767A publication Critical patent/KR20230145767A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B19/00Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
    • G11B19/20Driving; Starting; Stopping; Control thereof

Abstract

이 명세서는 광 디스크 드라이브의 인터페이스 전환 방법에 관한 것이다. 일 실시예에 따른 광 디스크 드라이브의 인터페이스 전환 방법은, 호스트로부터 USB 디스크립터의 전송 요청을 받으면, 인터페이스 클래스가 벤더 특정 클래스로 정의된 디폴트 USB 디스크립터를 호스트에 전송하는 단계; 호스트로부터 벤더 특정 커맨드의 전송을 대기하는 단계; 벤더 특정 커맨드가 전송되지 않으면, USB 리셋을 수행하는 단계; 및 인터페이스 클래스가 대량 스토리지 클래스로 정의된 제2 USB 디스크립터를 호스트에 전송하는 단계를 포함할 수 있다.This specification relates to a method for switching interfaces of an optical disk drive. A method for switching an interface of an optical disk drive according to an embodiment includes the steps of: receiving a request to transmit a USB descriptor from a host, transmitting a default USB descriptor whose interface class is defined as a vendor-specific class to the host; waiting for transmission of a vendor-specific command from the host; If a vendor specific command is not sent, performing a USB reset; and transmitting a second USB descriptor whose interface class is defined as a mass storage class to the host.

Description

광 디스크 드라이브의 인터페이스 전환 방법 {Method of switching interface in optical disc drive}{Method of switching interface in optical disc drive}

이 명세서는 광 디스크 드라이브에서 인터페이스를 전환하는 방법에 관한 것으로, 더욱 상세하게는 광 디스크 드라이브를 여러 종류의 호스트에 호환 가능하도록 연결하는 방법에 관한 것이다.This specification relates to a method of switching interfaces in an optical disk drive, and more specifically, to a method of connecting an optical disk drive to various types of hosts to be compatible.

데이터를 기록 및 저장할 수 있는 CD(Compact Disc), DVD(Digital Versatile Disc), BD(Blu-ray Disc)와 같은 광 디스크를 재생 또는 기록할 수 있는 광 디스크 장치 또는 광 디스크 드라이브(Optical Disc Drive: ODD)가 데스크 탑 컴퓨터(PC) 또는 노트북 컴퓨터의 주변 장치로 이용되고 있다.An optical disk device or optical disk drive that can play or record optical disks such as CD (Compact Disc), DVD (Digital Versatile Disc), and BD (Blu-ray Disc) that can record and store data. ODD) is used as a peripheral device for desktop computers (PCs) or laptop computers.

최근에는 광 디스크 장치가 PC나 노트북 컴퓨터에 내장되지 않고 외장 형태로 출시되어 USB 인터페이스를 통해 PC나 노트북 컴퓨터에 연결되어 사용되고 있다.Recently, optical disk devices have been released as external rather than built into PCs or laptops, and are used by connecting to PCs or laptops through a USB interface.

외장형 광 디스크 장치에서 PC나 노트북 컴퓨터와 연결을 가능하게 하는 USB 장치 드라이버(Device Driver)는 Windows OS(Operating System), Mac OS, Linux OS와 같은 기존의 OS와 호환되도록 설계되어 왔다.The USB device driver, which enables connection of an external optical disk device to a PC or laptop computer, has been designed to be compatible with existing operating systems such as Windows OS (Operating System), Mac OS, and Linux OS.

최근에는 스마트 폰이나 스마트 패드와 같은 스마트 기기의 사양이 높아짐에 따라, 사용자들이 PC나 노트북 컴퓨터를 대체하거나 추가로 스마트 기기를 사용하고 있다. 이에 따라 외장형 광 디스크 장치를 스마트 기기에 연결하고자 하는 필요성이 늘어나고 있다.Recently, as the specifications of smart devices such as smart phones and smart pads have increased, users are using smart devices as replacements for or in addition to PCs and laptop computers. Accordingly, the need to connect external optical disk devices to smart devices is increasing.

광 디스크 장치를 안드로이드 기반의 태블릿과 스마트 폰이나 iOS 기반의 아이폰과 아이패드와 같은 스마트 기기나 크롬 북(Chrome Book) 등에 연결하기 위해서는, 스마트 기기나 크롬 북과 같은 새로운 OS 기반의 기기에도 호환 가능한 USB 장치 드라이버의 개발이 요구된다.To connect an optical disk device to smart devices such as Android-based tablets and smartphones, iOS-based iPhones and iPads, or Chrome Books, it is compatible with new OS-based devices such as smart devices and Chromebooks. Development of USB device drivers is required.

이 명세서는 이러한 상황을 감안한 것으로, 이 명세서의 목적은 새로운 OS 기반의 기기에도 호환 가능한 광 디스크 장치를 제공하는 데 있다.This specification takes this situation into consideration, and the purpose of this specification is to provide an optical disk device that is compatible with new OS-based devices.

이 명세서의 구체적인 목적은, 광 디스크 장치가 다양한 종류의 기기에 연결 가능하도록 하는 인터페이스를 제공하는 데 있다.The specific purpose of this specification is to provide an interface that allows an optical disk device to be connected to various types of devices.

상기한 과제를 실현하기 위한 일 실시예에 따른 광 디스크 드라이브의 인터페이스 전환 방법은, 호스트로부터 USB 디스크립터의 전송 요청을 받으면, 인터페이스 클래스가 벤더 특정 클래스로 정의된 디폴트 USB 디스크립터를 호스트에 전송하는 단계; 호스트로부터 벤더 특정 커맨드의 전송을 대기하는 단계; 벤더 특정 커맨드가 전송되지 않으면, USB 리셋을 수행하는 단계; 및 인터페이스 클래스가 대량 스토리지 클래스로 정의된 제2 USB 디스크립터를 호스트에 전송하는 단계를 포함하는 것을 특징으로 한다.An interface conversion method of an optical disk drive according to an embodiment for realizing the above-mentioned problem includes the steps of: receiving a request for transmission of a USB descriptor from a host, transmitting a default USB descriptor whose interface class is defined as a vendor-specific class to the host; waiting for transmission of a vendor-specific command from the host; If a vendor specific command is not sent, performing a USB reset; And transmitting a second USB descriptor whose interface class is defined as a mass storage class to the host.

다른 실시예에 따른 광 디스크 드라이브는, 데이터를 광 디스크에 기록하거나 광 디스크로부터 데이터를 독출하기 위한 디스크 구동부; 호스트에 연결하여 데이터나 커맨드를 주고받기 위한 인터페이스부; 및 디스크 구동부와 인터페이스부를 제어하여 호스트로부터 전달되는 데이터를 광 디스크에 기록하거나 광 디스크로부터 데이터를 독출하여 호스트에 전달하기 위한 제어부를 포함하여 구성되고, 인터페이스부는, 인터페이스 클래스를 벤더-특정 클래스로 정의한 디폴트 USB 디스크립터와 인터페이스 클래스를 대량 스토리지 클래스로 정의한 제2 USB 디스크립터를 저장하고, 호스트와 USB 에누머레이션(Enumeration) 과정에서 호스트에 디폴트 USB 디스크립터를 먼저 전송하고, 호스트로부터의 반응을 근거로 디폴트 USB 디스크립터를 제2 USB 디스크립터로 전환할 것을 결정하는 것을 특징으로 한다.An optical disk drive according to another embodiment includes a disk drive unit for writing data to or reading data from an optical disk; An interface unit for connecting to a host to exchange data or commands; and a control unit for controlling the disk drive unit and the interface unit to record data transmitted from the host to an optical disk or to read data from the optical disk and transmit it to the host. The interface unit defines the interface class as a vendor-specific class. Store the default USB descriptor and a second USB descriptor that defines the interface class as a mass storage class, first transmit the default USB descriptor to the host during USB enumeration with the host, and configure the default USB descriptor based on the response from the host. It is characterized by determining to convert the descriptor to a second USB descriptor.

따라서, 종래 윈도우나 맥, 리눅스 등의 OS를 채용하는 컴퓨터뿐만 아니라 스마트 폰이나 태블릿과 같은 스마트 기기에도 광 디스크 장치를 연결할 수 있게 된다.Accordingly, the optical disk device can be connected not only to computers employing conventional operating systems such as Windows, Mac, and Linux, but also to smart devices such as smart phones and tablets.

또한, 광 디스크 장치를 다양한 기기에 연결하기 위해 인터페이스 클래스의 전환을 위한 하드웨어 스위치를 추가하지 않게 되어 광 디스크 장치의 하드웨어 비용을 줄일 수 있다.In addition, the hardware cost of the optical disk device can be reduced by eliminating the need to add a hardware switch for switching the interface class to connect the optical disk device to various devices.

또한, 광 디스크 장치의 사용자가 연결하고자 하는 기기의 OS를 직접 구별하여 수동으로 스위치를 조작해야 하는 번거로움을 없앨 수 있어서 사용자 편의를 향상시킬 수 있다.In addition, user convenience can be improved because the user of the optical disk device can eliminate the inconvenience of having to manually operate the switch by directly distinguishing the OS of the device to be connected.

도 1a와 도 1b는 각각 광 디스크 장치와 노트북의 연결과 광 디스크 장치와 스마트 폰의 연결을 도시한 것이고,
도 2는 광 디스크 장치가 호스트에 USB를 통해 연결될 때 USB Enumeration을 위한 통신 과정을 도시한 것이고,
도 3은 종래 광 디스크 장치의 USB 디스크립터를 도시한 것이고,
도 4는 종래 광 디스크 장치가 PC에 연결될 때 USB 디바이스 셋업 과정을 도시한 것이고,
도 5는 종래 광 디스크 장치가 새로운 OS로 동작하는 스마트 기기에 연결될 때 USB 디바이스 셋업이 실패하는 과정을 도시한 것이고,
도 6은 USB 스펙에 정의된 클래스 코드를 도시한 것이고,
도 7은 이 명세서의 일 실시예에 따라 광 디스크 장치가 두 세트 이상의 USB 디스크립터를 구비하는 예를 개념적으로 도시한 것이고,
도 8은 이 명세서의 실시예가 적용되는 광 디스크 장치의 구성을 기능 블록으로 도시한 것이고,
도 9는 이 명세서의 일 실시예에 따른 광 디스크 장치가 스마트 기기에 연결될 때 USB 디바이스 셋업 과정을 도시한 것이고,
도 10은 vendor-specific 커맨드의 구성을 도시한 것이고,
도 11은 이 명세서의 일 실시예에 따른 광 디스크 장치가 PC에 연결될 때 USB 디바이스 셋업 과정을 도시한 것이다.
Figures 1A and 1B respectively illustrate the connection between an optical disk device and a laptop and the connection between an optical disk device and a smart phone;
Figure 2 shows the communication process for USB Enumeration when an optical disk device is connected to a host via USB.
Figure 3 shows a USB descriptor of a conventional optical disk device;
Figure 4 shows the USB device setup process when a conventional optical disk device is connected to a PC.
Figure 5 shows a process in which USB device setup fails when a conventional optical disk device is connected to a smart device running a new OS.
Figure 6 shows the class code defined in the USB specification,
Figure 7 conceptually shows an example in which an optical disk device has two or more sets of USB descriptors according to an embodiment of this specification;
Figure 8 shows the configuration of an optical disk device to which an embodiment of this specification is applied in functional blocks;
Figure 9 shows the USB device setup process when the optical disk device according to an embodiment of this specification is connected to a smart device;
Figure 10 shows the configuration of vendor-specific commands,
FIG. 11 illustrates a USB device setup process when an optical disk device according to an embodiment of this specification is connected to a PC.

이하, 광 디스크 드라이브의 인터페이스 전환 방법에 대한 실시예를 첨부하는 도면에 의거하여 상세히 설명한다.Hereinafter, an embodiment of an interface switching method of an optical disk drive will be described in detail based on the accompanying drawings.

도 1a와 도 1b는 각각 광 디스크 장치와 노트북의 연결과 광 디스크 장치와 스마트 폰의 연결을 도시한 것이다.Figures 1A and 1B illustrate the connection between an optical disk device and a laptop and the connection between an optical disk device and a smart phone, respectively.

이 명세서의 일 실시예에 따른 광 디스크 장치 또는 광 디스크 드라이브는, 별도의 하드웨어 스위치 없이도, USB(Universal Serial Bus) 인터페이스를 통해서, 윈도우 OS, 맥 OS, 리눅스 OS가 설치된 PC나 노트북에 연결되고, 또한 안드로이드 OS의 스마트 기기나 iOS의 아이폰이나 아이 패드, 크롬 OS의 크롬 북 등에 연결될 수 있다.The optical disk device or optical disk drive according to an embodiment of this specification is connected to a PC or laptop with Windows OS, Mac OS, or Linux OS installed through a USB (Universal Serial Bus) interface without a separate hardware switch, It can also be connected to smart devices running Android OS, iPhones and iPads running iOS, and Chromebooks running Chrome OS.

도 2는 광 디스크 장치가 호스트에 USB를 통해 연결될 때 USB Enumeration을 위한 통신 과정을 도시한 것으로, USB Enumeration은 새로운 디바이스가 USB 인터페이스의 버스(Bus)에 연결이 되었는지 감지한 후에 그 디바이스를 인식하고 적절한 드라이버를 로드하는 작업을 의미한다.Figure 2 shows the communication process for USB Enumeration when an optical disk device is connected to a host via USB. USB Enumeration detects whether a new device is connected to the bus of the USB interface, recognizes the device, and This means loading the appropriate driver.

USB Enumeration 과정은 다음과 같이 간단하게 요약할 수 있다. USB 디바이스가 호스트에 연결되면, 호스트의 컨트롤러는 임시 정보를 사용하여 디바이스의 0번 엔드 포인트에게 정보를 요청하고, 디바이스로부터 디바이스 디스크립터(Device Descriptor) 정보를 받고, 해당 디바이스에 적절한 주소를 할당하고, 해당 주소를 이용하여 나머지 디스크립터 정보를 요청하여 모든 디스크립터 정보를 받으면 USB 에누머레이션 과정이 끝난다.The USB Enumeration process can be briefly summarized as follows. When a USB device is connected to a host, the host's controller uses temporary information to request information from endpoint 0 of the device, receives device descriptor information from the device, and assigns an appropriate address to the device. The USB enumeration process is completed when all descriptor information is received by requesting the remaining descriptor information using the address.

USB 인터페이스는 기기를 호스트에 연결하여 동작하도록 지원해주는 규격으로, PC에 연결되는 키보드, 마우스 등의 PC 주변 기기나 외장 스토리지나 스마트 폰도 USB 프로토콜을 사용한다.The USB interface is a standard that supports operation by connecting devices to a host. PC peripheral devices such as keyboards and mice, external storage devices, and smart phones connected to a PC also use the USB protocol.

USB 인터페이스는 연결된 기기에 전원도 공급하고 또한 USB 2.0 버전 이상은 데이터 송수신 속도가 초당 수십 메가 바이트 이상이기 때문에, 하나의 호스트에 많은 개수의 USB 디바이스를 연결해도 문제가 없다.The USB interface supplies power to connected devices, and USB 2.0 and higher have data transmission and reception speeds of tens of megabytes per second, so there is no problem with connecting a large number of USB devices to one host.

호스트는 연결된 USB 디바이스들을 벤더(Vendor) ID와 제품(Product) ID를 이용하여 서로 식별하는데, 별도로 클래스로 묶어서 처리할 수 있다. 예를 들어 마우스나 키보드 등의 주변 기기는 디바이스 드라이버를 별도로 작성할 필요 없이 이미 존재하는 HID(Human Interface Device) 클래스의 기능을 그대로 이용할 수 있다.The host identifies connected USB devices using vendor ID and product ID, which can be processed separately by grouping them into classes. For example, peripheral devices such as a mouse or keyboard can use the functions of the already existing HID (Human Interface Device) class without the need to write a separate device driver.

USB 디바이스에 대한 기본적인 정보는 디스크립터(Descriptor)가 가지고 있다. USB 디바이스를 호스트에 연결하면 설정(Configuration) 정보를 서로 주고받고, 이 과정에 USB 디바이스는 디스크립터 정보를 호스트에 전송하고, 호스트는 이를 근거로 연결된 USB 디바이스의 종류를 알게 되고, USB 디바이스의 특성에 맞게 데이터의 전송 속도나 폴링 주기를 설정할 수 있다.Basic information about the USB device is contained in the descriptor. When a USB device is connected to a host, configuration information is exchanged. During this process, the USB device transmits descriptor information to the host, and based on this, the host learns the type of connected USB device and determines the characteristics of the USB device. You can set the data transmission speed or polling cycle accordingly.

도 2에서 보듯이, 호스트, 예를 들어 PC에 USB 디바이스인 광 디스크 드라이브가 연결되면, 호스트는 USB 인터페이스의 버스에 디바이스가 연결되는 것을 검출하고, 디바이스의 데이터 전송 속도를 확인한다.As shown in FIG. 2, when an optical disk drive, which is a USB device, is connected to a host, for example, a PC, the host detects that the device is connected to the bus of the USB interface and checks the data transfer speed of the device.

이후 호스트는 디바이스 디스크립터를 USB 디바이스에 요청하고, USB 디바이스는 디바이스 디스크립터를 호스트에 전송한다.Afterwards, the host requests a device descriptor from the USB device, and the USB device transmits the device descriptor to the host.

이후, 호스트는 USB 디바이스와의 연결을 리셋하고 주소를 다시 할당한다.Afterwards, the host resets the connection with the USB device and reassigns the address.

호스트는 설정(Configuration) 디스크립터를 USB 디바이스에 요청하고, USB 디바이스는 설정 디스크립터를 전송한다.The host requests a configuration descriptor from the USB device, and the USB device transmits the configuration descriptor.

또한, 호스트는 인터페이스 디스크립터를 USB 디바이스에 요청하고, USB 디바이스는 인터페이스 디스크립터를 전송한다.Additionally, the host requests an interface descriptor from the USB device, and the USB device transmits the interface descriptor.

이후, 호스트는 전송된 디스크립터에 기초하여 연결된 USB 디바이스에 맞는 드라이버를 로딩하면, USB 디바이스를 사용할 준비가 완료된다.Afterwards, the host loads the driver appropriate for the connected USB device based on the transmitted descriptor, and the USB device is ready to be used.

USB 디스크립터에는 디바이스 디스크립터(Device Descriptor), 설정 디스크립터(Configuration Descriptor), 인터페이스 디스크립터(Interface Descriptor), 엔드포인트 디스크립터(Endpoint Descriptor)와 같이 여러 종류가 있는데, USB 인터페이스가 다양한 기능을 지원할 수 있기 때문이다.There are several types of USB descriptors, such as device descriptor, configuration descriptor, interface descriptor, and endpoint descriptor, because the USB interface can support various functions.

디바이스 디스크립터는 디바이스에 대한 가장 기본적인 정보를 담고 있는데, USB 디바이스는 하나의 디바이스 디스크립터를 가지고 있고, 제품 ID(ProductID)와 벤더 ID(VendorID) 정보가 담겨 있다. 또한 디바이스 디스크립터에는 해당 디바이스가 얼마나 많은 설정(Configuration)을 가지고 있는지에 대한 정보와 클래스(Class) 정보가 담겨 있다.The device descriptor contains the most basic information about the device. A USB device has one device descriptor, which contains product ID (ProductID) and vendor ID (VendorID) information. Additionally, the device descriptor contains information about how many configurations the device has and class information.

설정 디스크립터는 환경 설정과 관련된 정보를 담고 있다. USB 디바이스는 여러 개의 설정 디스크립터를 가질 수 있고, 인터페이스의 개수, 전력 소비 정보 등의 정보가 담겨 있다. 하나의 USB 디바이스는 일반적으로 하나의 설정을 가지고 있고 특정 USB 디바이스의 경우 여러 개의 설정 정보가 존재할 수도 있다.The configuration descriptor contains information related to environmental settings. A USB device can have multiple configuration descriptors, which contain information such as the number of interfaces and power consumption information. One USB device generally has one setting, and for a specific USB device, multiple setting information may exist.

인터페이스 디스크립터는 한가지 기능에 대한 정보를 담고 있다. 하나의 USB 디바이스는, 예를 들어 마우스, 키보드, 스캐너와 같이 여러 기능을 제공할 수 있는데, 각 기능마다 하나의 인터페이스를 할당할 수 있다. 인터페이스 디스크립터에는 인터페이스 번호, 엔드포인트 개수 등의 정보가 담기고, 하나의 인터페이스는 여러 개의 엔드포인트를 가질 수 있다.An interface descriptor contains information about one function. One USB device can provide multiple functions, such as mouse, keyboard, and scanner, and one interface can be assigned to each function. The interface descriptor contains information such as the interface number and number of endpoints, and one interface can have multiple endpoints.

엔드포인트 디스크립터는 하나의 엔드포인트에 대한 정보를 담을 수 있다. 엔드포인트는 호스트와 디바이스 사이 실제로 통신이 이루어지는 통로 도는 파이프에 해당한다. 엔드포인트 디스크립터는 엔드포인트의 번호, 전송 타입, 방향성 등의 정보가 담겨 있고, 엔드포인트의 전송 타입에는 Control, Interrupt, Isochronous or Bulk와 같은 타입이 있고, 기본적으로 엔드포인트 0번이 디폴트로 Control 타입으로 사용된다.An endpoint descriptor can contain information about one endpoint. An endpoint corresponds to a passage or pipe through which actual communication occurs between a host and a device. The endpoint descriptor contains information such as the endpoint number, transmission type, and direction. The endpoint transmission type includes Control, Interrupt, Isochronous or Bulk, and by default, endpoint number 0 is the Control type. It is used as.

도 3은 종래 광 디스크 장치의 USB 디스크립터를 도시한 것으로, 엔드포인트 디스크립터는 생략되어 있다.Figure 3 shows a USB descriptor of a conventional optical disk device, and the endpoint descriptor is omitted.

모든 USB 디바이스는 디바이스의 종류 및 기능에 따라 고유의 인터페이스 클래스(Interface Class)를 가지며, 호스트와 연결 때 셋업이나 컨트롤 과정에서 이를 USB 디스크립터의 형태로 호스트에 보고함으로써, 호스트는 연결된 디바이스를 인식한다.All USB devices have a unique interface class depending on the type and function of the device, and when connected to a host, the host recognizes the connected device by reporting this to the host in the form of a USB descriptor during setup or control.

도 3의 종래 광 디스크 장치 장치의 USB 디스크립터에서, 디바이스 디스크립터(Device Descriptor)는 설정 개수를 1개로 정의하고 있고(bNumConfigurations = 1), 설정 디스크립터(Configuration Descriptor)는 설정값을 1로 정의하고(bConfigurationValue = 1) 인터페이스 개수를 1로 정의하고 있고(bNumInterfaces = 1), 인터페이스 디스크립터(Interface Descriptor)는 엔드포인트의 개수를 2로 정의하고(bNumEndpoints = 2) 인터페이스 클래스를 Mass Storage Class(MSC)로 정의하고 있다(bInterfaceClass = Mass Storage Class).In the USB descriptor of the conventional optical disk device of FIG. 3, the device descriptor defines the number of settings as 1 (bNumConfigurations = 1), and the configuration descriptor defines the setting value as 1 (bConfigurationValue = 1) The number of interfaces is defined as 1 (bNumInterfaces = 1), the interface descriptor defines the number of endpoints as 2 (bNumEndpoints = 2), and the interface class is defined as Mass Storage Class (MSC). There is (bInterfaceClass = Mass Storage Class).

일반적으로 PC에 연결하여 외장 저장 장치 형태로 사용되는 광 디스크 장치는, 도 3에 도시한 것과 같이, MSC 인터페이스 클래스를 가지며, Windows OS, MacOS, Linux OS 등 종래의 OS는 이를 저장 장치로 인식하여 해당 OS에서 동작하는 어플리케이션이 광 디스크 장치와 통신할 수 있게 된다.An optical disk device that is generally connected to a PC and used as an external storage device has an MSC interface class, as shown in Figure 3, and conventional OSs such as Windows OS, MacOS, and Linux OS recognize it as a storage device. Applications running on the corresponding OS can communicate with the optical disk device.

도 4는 종래 광 디스크 장치가 PC에 연결될 때 USB 디바이스 셋업 과정을 도시한 것이고, 도 5는 종래 광 디스크 장치가 새로운 OS로 동작하는 스마트 기기에 연결될 때 USB 디바이스 셋업이 실패하는 과정을 도시한 것이다.Figure 4 shows the USB device setup process when a conventional optical disk device is connected to a PC, and Figure 5 shows a process in which USB device setup fails when a conventional optical disk device is connected to a smart device running a new OS. .

USB 에누머레이션 과정에서 호스트인 PC가 USB 디바이스인 광 디스크 장치에 디스크립터를 요청하고(GET_DESCRIPTOR), 광 디스크 장치는 도 3에 도시한 것과 같이 디바이스 디스크립터, 설정 디스크립터, 인터페이스 디스크립터를 PC에 전송한다. 이때, 호스트로 전송되는 인터페이스 디스크립터는 인터페이스 클래스를 MSC로 정의할 수 있다.During the USB enumeration process, the host PC requests a descriptor from the optical disk device, which is a USB device (GET_DESCRIPTOR), and the optical disk device transmits the device descriptor, configuration descriptor, and interface descriptor to the PC as shown in FIG. 3. At this time, the interface descriptor transmitted to the host may define the interface class as MSC.

이후, PC가 호스트인 도 4의 경우, PC에서 구동하는 어플리케이션은 광 디스크 장치와 대량 데이터 전송 및 수신을 위한 연결을 오픈하고, 광 디스크 장치는 어플리케이션과 통신할 수 있다.Next, in the case of FIG. 4 where the PC is the host, the application running on the PC opens a connection with the optical disk device for transmitting and receiving large amounts of data, and the optical disk device can communicate with the application.

반면, 스마트 기기와 같은 모바일 단말이 호스트인 도 5의 경우, 모바일 기기의 운영 체계에서 동작하는 어플리케이션은 광 디스크 장치와 대량 데이터 송수신을 위한 연결을 오픈할 수 없다.On the other hand, in the case of Figure 5 where a mobile terminal such as a smart device is the host, an application running on the operating system of the mobile device cannot open a connection for transmitting and receiving large amounts of data to the optical disk device.

호스트는 USB 디바이스 유형과 사용할 데이터 전송 유형, 데이터를 보낼 간격 또는 통신 속도를 정의할 수 있다. USB Enumeration 과정이 성공적으로 완료되면, Windows OS, Mac OS, Linux OS 등 종래의 OS로 구동하는 호스트에 설치된 사용자 어플리케이션(User Application)은 특별한 제한없이 연결된 USB 디바이스와 통신이 가능하다. 하지만, iOS나 안드로이드 OS, 크롬 OS의 경우 MSC 클래스를 가진 USB 디바이스가 연결되면 운영 체계의 정책에 따라 연결된 USB 디바이스와 사용자 어플리케이션의 통신을 허용하지 않을 수 있다.The host can define the USB device type, the type of data transfer to be used, the interval at which data will be sent, or the communication speed. When the USB Enumeration process is successfully completed, the user application installed on a host running a conventional OS such as Windows OS, Mac OS, or Linux OS can communicate with the connected USB device without any particular restrictions. However, in the case of iOS, Android OS, and Chrome OS, when a USB device with the MSC class is connected, communication between the connected USB device and the user application may not be allowed depending on the operating system's policy.

도 6은 USB 스펙에 정의된 클래스 코드를 도시한 것이다.Figure 6 shows the class code defined in the USB specification.

Base Class 08h는 Mass Storage 장치를 위해 정의되고, 인터페이스 디스크립터에 사용될 수 있다. Base Class FFh는 벤더를 위해 정의되고(Vendor-specific), 디바이스 디스크립터와 인터페이스 디스크립터에 모두 사용될 수 있다.Base Class 08h is defined for Mass Storage devices and can be used in interface descriptors. Base Class FFh is defined for a vendor (vendor-specific) and can be used in both device descriptors and interface descriptors.

USB 디바이스인 광 디스크 장치가 종래 OS가 아닌 iOS나 안드로이드 OS, 크롬 OS 기반으로 구동되는 스마트 기기에 접근하기 위해서는, USB 에누머레이션 과정에서 통상적인 Device Type이 아니라 벤더가 지정할 수 있는 Vendor-specific Type으로 인식되게 하여야 한다. 이를 위해서, 광 디스크 장치의 클래스 코드를 Vendor-specific으로 정의할 수 있고, 인터페이스 디스크립터에서 인터페이스 클래스를 Vendor-Specific Class로 정의할 수 있다. 하지만, 이 경우 광 디스크 장치가 Windows OS, Mac OS, Linux OS로 구동되는 PC에서는 사용하기 어렵게 된다.In order for an optical disk device, which is a USB device, to access a smart device that runs on iOS, Android OS, or Chrome OS rather than the conventional OS, a vendor-specific Type that can be specified by the vendor rather than the typical Device Type during the USB enumeration process is required. It must be recognized as. For this purpose, the class code of the optical disk device can be defined as Vendor-specific, and the interface class can be defined as Vendor-Specific Class in the interface descriptor. However, in this case, it becomes difficult to use the optical disk device on a PC running Windows OS, Mac OS, or Linux OS.

이러한 문제를 해결하기 위해서, 이 명세서의 일 실시예에 따른 광 디스크 장치는, MSC 클래스뿐만 아니라 Vendor-Specific 클래스를 지원하여, 종래의 전통 OA 기반의 호스트뿐만 아니라 새로운 OS의 모바일이나 스마트 기기 모두에 대응하여 동작 가능할 수 있도록 한다.In order to solve this problem, the optical disk device according to an embodiment of this specification supports not only the MSC class but also the Vendor-Specific class, so that it can be used not only on traditional OA-based hosts but also on mobile or smart devices with new OSs. Make it possible to operate accordingly.

즉, 이 명세서의 일 실시예에 따르는 광 디스크 장치는 2가지 셋 이상으로 USB 스크립트를 저장하고, 연결되는 호스트에 따라 USB 스크립터의 설정을 전환할 수 있도록 하는데, 호스트에서 실행되는 어플리케이션의 보내는 정보를 근거로 USB 스크립터의 설정을 전환할 수 있다.That is, the optical disk device according to an embodiment of this specification stores two or more sets of USB scripts and allows switching the settings of the USB scripter depending on the connected host, and sends information of the application running on the host. Based on this, you can change the settings of the USB scripter.

도 7은 이 명세서의 일 실시예에 따라 광 디스크 장치가 두 세트 이상의 USB 디스크립터를 구비하는 예를 개념적으로 도시한 것이다.FIG. 7 conceptually illustrates an example in which an optical disk device includes two or more sets of USB descriptors according to an embodiment of this specification.

도 7과 같이, 광 디스크 장치는, 아이폰, 아이패드, 아이팟과 같은 애플 계열의 모바일 단말에 적용되는 iOS나 안드로이드 OS, 크롬 OS 등으로 구동되는 호스트에 전달하기 위한 제1 USB 디스크립터 셋과 Windows OS, Mac OS, Linux OS와 같은 전통의 OS로 구동되는 호스트에 전달하기 위한 제2 USB 디스크립터 셋을 마련할 수 있다.As shown in Figure 7, the optical disk device includes a first USB descriptor set and Windows OS for delivery to a host running iOS, Android OS, Chrome OS, etc. applied to Apple mobile terminals such as iPhone, iPad, and iPod. , a second USB descriptor set can be prepared for delivery to a host running a traditional OS such as Mac OS or Linux OS.

제1 USB 디스크립터 셋은 인터페이스 디스크립터에 인터페이스 클래스를 Vendor-Specific 클래스로 정의하고, 제2 USB 디스크립터 셋은 인터페이스 디스크립터에 인터페이스 클래스를 Mass Storage 클래스로 정의할 수 있다.The first USB descriptor set may define an interface class as a Vendor-Specific class in the interface descriptor, and the second USB descriptor set may define an interface class as a Mass Storage class in the interface descriptor.

광 디스크 장치는, USB 에누머레이션 과정에서 연결된 호스트에서 전송되는 정보에 기초하여 두 세트 이상의 USB 디스크립터 셋을 서로 전환할 수 있다.The optical disk device can switch between two or more sets of USB descriptors based on information transmitted from a connected host during the USB enumeration process.

예를 들어, 광 디스크 장치는, USB 에누머레이션 과정에서 인터페이스 클래스가 Vendor-Specific 클래스로 정의된 제1 USB 디스크립터 셋을 연결된 호스트에 전송하고 호스트로부터 Vendor-Specific 클래스에 대응하는 정보가 전달되면, 이를 근거로 호스트가 Vendor-Specific 클래스에 대응하는 호스트, 예를 들어 iOS가 로딩된 아이폰, 아이패드, 아이팟이나 크롬 OS가 설치된 크롬 북이라고 판단하여 인터페이스 클래스를 변경하지 않고 그대로 유지할 수 있다.For example, during the USB enumeration process, the optical disk device transmits a first USB descriptor set whose interface class is defined as the Vendor-Specific class to the connected host, and when information corresponding to the Vendor-Specific class is transmitted from the host, Based on this, it can be determined that the host is a host that corresponds to the Vendor-Specific class, for example, an iPhone, iPad, or iPod loaded with iOS or a Chromebook with Chrome OS installed, and the interface class can be kept as is.

반면, 광 디스크 장치는, USB 에누머레이션 과정에서 인터페이스 클래스가 Vendor-Specific 클래스로 정의된 제1 USB 디스크립터 셋을 연결된 호스트에 전송하고 호스트로부터 Vendor-Specific 클래스에 대응하는 정보가 전달되지 않으면, 이를 근거로 호스트가 Vendor-Specific 클래스에 대응하는 호스트가 아니고 Windows/Mac/Linux OS로 구동되는 PC나 노트북이라고 판단하여, 인터페이스 클래스를 Mass Storage 클래스로 정의한 제2 USB 디스크립터 셋으로 전환하여 USB 에누머레이션 과정을 다시 수행할 수 있다.On the other hand, the optical disk device transmits the first USB descriptor set whose interface class is defined as the Vendor-Specific class to the connected host during the USB enumeration process, and if information corresponding to the Vendor-Specific class is not delivered from the host, Based on this, it was determined that the host was not a host corresponding to the Vendor-Specific class, but a PC or laptop running Windows/Mac/Linux OS, and USB enumeration was performed by converting the interface class to a second USB descriptor set defined as Mass Storage class. You can perform the process again.

도 8은 이 명세서의 실시예가 적용되는 광 디스크 장치의 구성을 기능 블록으로 도시한 것이다.Figure 8 shows the configuration of an optical disk device to which an embodiment of this specification is applied in terms of functional blocks.

광 디스크 장치 또는 광 디스크 드라이브(ODD)(100)는, 제어부(110), 디스크 구동부(120) 및 인터페이스부(130)를 포함하여 구성될 수 있다.The optical disk device or optical disk drive (ODD) 100 may be configured to include a control unit 110, a disk driver 120, and an interface unit 130.

제어부(110)는, 인터페이스부(130)를 통해 연결된 호스트, 예를 들어 스마트 기기나 PC의 명령에 따라 광 디스크의 데이터를 호스트에 전송하거나 호스트가 전송하는 데이터를 광 디스크에 기록하도록 디스크 구동부(120)를 제어한다.The control unit 110 transmits data on an optical disk to the host according to a command from a host connected through the interface unit 130, for example, a smart device or a PC, or records data transmitted by the host on the optical disk. 120).

디스크 구동부(120)는, 제어부(110)의 제어에 따라 광 픽업, 스핀들 모터, 슬레드 모터 등을 구동하여, 호스트로부터 전달되는 데이터를 광 디스크에 기록하거나 광 디스크로부터 데이터를 독출하여 호스트에 전달할 수 있다.The disk drive unit 120 drives the optical pickup, spindle motor, sled motor, etc. under the control of the control unit 110 to record data transmitted from the host to the optical disk or read data from the optical disk and transmit it to the host. You can.

인터페이스부(130)는, ODD(100)를 호스트에 연결하여 데이터나 커맨드를 주고받기 위한 통로 역할을 하고 호스트로부터 전원을 공급받을 수도 있다.The interface unit 130 connects the ODD 100 to the host to serve as a conduit for exchanging data or commands and can also receive power from the host.

인터페이스부(130)는, 디폴트 USB 디스크립터를 포함하는 두 세트 이상의 USB 디스크립터를 저장한 상태에서, 호스트에 USB 케이블을 통해 연결되어 USB 에누머레이션 과정을 수행할 때 호스트의 피드백을 근거로 호스트에 전송하는 USB 디스크립터를 전환할 수 있다.The interface unit 130 stores two or more sets of USB descriptors, including a default USB descriptor, and transmits the data to the host based on feedback from the host when it is connected to the host via a USB cable and performs a USB enumeration process. You can switch the USB descriptor.

즉, 인터페이스부(130)는, 호스트에 USB 케이블을 통해 연결되어 USB 에누머레이션 과정을 수행할 때, 먼저 모바일 단말과의 연결을 타겟으로 하고 벤더-특정 클래스(Vendor-specific Class)를 인터페이스 클래스로 포함하는 제1 USB 디스크립터, 즉 디폴트 USB 디스크립터를 호스트에 전송할 수 있다.That is, when the interface unit 130 is connected to the host via a USB cable and performs a USB enumeration process, it first targets connection with the mobile terminal and sets the vendor-specific class as the interface class. The first USB descriptor including, that is, the default USB descriptor, may be transmitted to the host.

호스트가 아이폰/아이패드/아이팟 등의 iOS 계열의 스마트 기기나 크롬 북이라면 디폴트 USB 디스크립터에 반응하여 ODD(100)와의 연결을 오픈하고 디폴트 USB 디스크립터에 대한 응답을 전송하고, 이에 따라 인터페이스부(130)는 USB 에누머레이션 과정이 완료된 것으로 판단하고 인터페이스 클래스를 그대로 유지한다.If the host is an iOS smart device such as iPhone/iPad/iPod or a Chromebook, it opens a connection with the ODD (100) in response to the default USB descriptor and transmits a response to the default USB descriptor, and accordingly the interface unit (130) ) determines that the USB enumeration process is complete and maintains the interface class as is.

반면, 노트북이나 PC 형태의 호스트는 디폴트 USB 디스크립터에 반응하지 않게 되고, 인터페이스부(130)는 소정 시간(Timeout) 동안 호스트로부터 아무런 반응이 전송되지 않으면, 호스트가 PC나 노트북인 것으로 판단하여 대량 스토리지 클래스(Mass Storage Class)를 인터페이스 클래스로 포함하는 제2 USB 디스크립터를 호스트에 전송할 수 있다.On the other hand, a laptop or PC-type host does not respond to the default USB descriptor, and if no response is sent from the host for a predetermined time (Timeout), the interface unit 130 determines that the host is a PC or laptop and mass storage A second USB descriptor including a class (Mass Storage Class) as an interface class may be transmitted to the host.

제2 USB 디스크립터를 전송 받은 호스트는 ODD(100)과의 연결을 오픈하고, 호스트에서 실행되는 어플리케이션이 ODD(100)과 통신을 할 수 있게 된다.The host that has received the second USB descriptor opens a connection with the ODD (100), and the application running on the host can communicate with the ODD (100).

도 9는 이 명세서의 일 실시예에 따른 광 디스크 장치가 스마트 기기에 연결될 때 USB 디바이스 셋업 과정을 도시한 것이다.Figure 9 shows a USB device setup process when an optical disk device according to an embodiment of this specification is connected to a smart device.

USB 에누머레이션 과정에서 호스트인 모바일 스마트 기기는 USB 디바이스인 광 디스크 장치에 디스크립터를 요청하고(GET_DESCRIPTOR), 광 디스크 장치는 벤더-특정 클래스(Vendor-specific Class)를 인터페이스 클래스로 하는 인터페이스 디스크립터를 포함하는 디폴트 USB 디스크립터를 호스트에 전송한다.In the USB enumeration process, the mobile smart device, which is the host, requests a descriptor from the optical disk device, which is a USB device (GET_DESCRIPTOR), and the optical disk device includes an interface descriptor with a vendor-specific class as the interface class. Transmits the default USB descriptor to the host.

호스트인 모바일 스마트 기기는, USB 커넥터를 통해 연결된 USB 디바이스가 전송하는 USB 디스크립터를 수신하고, USB 디스크립터의 인터페이스 디스크립터에 정의된 인터페이스 클래스를 확인하고, 인터페이스 클래스가 벤더-특정 클래스(Vendor-specific Class)이면 해당 호스트의 어플리케이션이 해당 USB 디바이스인 광 디스크 장치와 데이터 대량 전송이 가능하도록 USB 디바이스와의 연결을 오픈하고, 해당 호스트의 어플리케이션이 벤더-특정 커맨드(Vendor-specific command)를 USB 디바이스에 전송할 수 있다.The mobile smart device, which is the host, receives the USB descriptor transmitted by the USB device connected through the USB connector, checks the interface class defined in the interface descriptor of the USB descriptor, and determines that the interface class is a vendor-specific class. If so, the host's application opens a connection with the USB device to enable mass transfer of data to the optical disk device, and the host's application can transmit vendor-specific commands to the USB device. there is.

디폴트 USB 디스크립터를 호스트에 전송한 광 디스크 장치는, 소정 시간(timeout) 동안 호스트로부터 벤더-특정 커맨드(Vendor-specific command)가 전송되는 것을 대기한다.The optical disk device that has transmitted the default USB descriptor to the host waits for a vendor-specific command to be transmitted from the host for a predetermined time (timeout).

광 디스크 장치는, 타임 아웃이 경과하기 전에 호스트로부터 벤더-특정 커맨드(Vendor-specific command)가 전송되면, 인터페이스 클래스가 벤더-특정 클래스(Vendor-specific Class)로 그대로 유지하고, 호스트의 어플리케이션과 통신을 수행할 수 있다.If a vendor-specific command is sent from the host before the timeout elapses, the optical disk device maintains the interface class as the vendor-specific class and communicates with the host's application. can be performed.

도 10은 vendor-specific 커맨드의 구성을 도시한 것이다.Figure 10 shows the configuration of vendor-specific commands.

인터페이스 클래스가 벤더-특정 클래스(Vendor-specific Class)로 정의된 USB 디스크립터를 수신한 호스트가 USB 디바이스와의 연결을 오픈하면, 호스트의 어플리케이션은 사전에 협의된 벤더-특정 커맨드(Vendor-specific command)를 USB 디바이스에 전송하는데, 해당 어플리케이션은 해당 광 디스크 장치를 출시한 회사가 배포한 프로그램이어서 벤더-특정 클래스(Vendor-specific Class)로 정의된 USB 디스크립터를 수신할 때 사전에 협의된 벤더-특정 커맨드(Vendor-specific command)를 USB 디바이스에 전송할 수 있다.When a host that has received a USB descriptor whose interface class is defined as a vendor-specific class opens a connection with a USB device, the host's application executes a pre-agreed vendor-specific command. is transmitted to the USB device, and the application is a program distributed by the company that released the optical disk device, so when receiving the USB descriptor defined as a vendor-specific class, a pre-negotiated vendor-specific command is sent. (Vendor-specific command) can be transmitted to a USB device.

어플리케이션은, USB 디바이스와의 연결이 오픈되면, 연결된 USB 디바이스가 전송한 USB 디스크립터를 확인하고, USB 디스크립터의 인터페이스 디스크립터에서 인터페이스 클래스가 벤더-특정 클래스(Vendor-specific Class)로 정의되어 있으면, 벤더-특정 커맨드(Vendor-specific command)를 연결된 USB 디바이스에 전송할 수 있다.When a connection with a USB device is opened, the application checks the USB descriptor transmitted by the connected USB device, and if the interface class is defined as a vendor-specific class in the interface descriptor of the USB descriptor, the vendor-specific class is Vendor-specific commands can be transmitted to connected USB devices.

벤더-특정 커맨드(Vendor-specific command)는, 도 10에 도시한 것과 같이, 8 바이트 길이의 셋업 패킷으로, tmRequestType 필드에 Device to Host 방향 및 vendor type을 정의할 수 있다.As shown in FIG. 10, the vendor-specific command is an 8-byte long setup packet that can define the Device to Host direction and vendor type in the tmRequestType field.

도 11은 이 명세서의 일 실시예에 따른 광 디스크 장치가 PC에 연결될 때 USB 디바이스 셋업 과정을 도시한 것이다.Figure 11 shows a USB device setup process when an optical disk device according to an embodiment of this specification is connected to a PC.

USB 에누머레이션 과정에서 호스트인 PC는 USB 디바이스인 광 디스크 장치에 디스크립터를 요청하고(GET_DESCRIPTOR), 광 디스크 장치는 벤더-특정 클래스(Vendor-specific Class)를 인터페이스 클래스로 하는 인터페이스 디스크립터를 포함하는 디폴트 USB 디스크립터를 호스트에 전송한다.During the USB enumeration process, the host PC requests a descriptor from the optical disk device, which is a USB device (GET_DESCRIPTOR), and the optical disk device contains a default interface descriptor with a vendor-specific class as the interface class. Send the USB descriptor to the host.

호스트인 PC는, USB 커넥터를 통해 연결된 USB 디바이스가 전송하는 USB 디스크립터를 수신하고, USB 디스크립터의 인터페이스 디스크립터에 정의된 인터페이스 클래스를 확인하고, 인터페이스 클래스가 벤더-특정 클래스(Vendor-specific Class)이면 해당 USB 디바이스와의 연결을 오픈할 수 없어서 아무런 액션을 수행할 수 없다.The host PC receives the USB descriptor transmitted by the USB device connected through the USB connector, checks the interface class defined in the interface descriptor of the USB descriptor, and, if the interface class is a vendor-specific class, No action can be performed because the connection with the USB device cannot be opened.

디폴트 USB 디스크립터를 호스트에 전송한 광 디스크 장치는, 소정 시간(timeout) 동안 호스트로부터 벤더-특정 커맨드(Vendor-specific command)가 전송되는 것을 대기하지만, 호스트인 PC가 USB 디바이스와의 연결을 오픈하지 않고 벤더-특정 커맨드(Vendor-specific command)를 전송하는 것을 포함하여 아무런 액션을 하지 않기 때문에, 예를 들어 5초의 타임아웃이 경과하게 된다.The optical disk device that has transmitted the default USB descriptor to the host waits for a vendor-specific command to be transmitted from the host for a predetermined time (timeout), but the host PC does not open a connection with the USB device. Because no action is taken, including sending a vendor-specific command, a timeout of, say, 5 seconds elapses.

이에 광 디스크 장치는 소프트웨어적으로 USB 리셋을 실행한다.Accordingly, the optical disk device performs a USB reset through software.

호스트인 PC는 USB 에누머레이션 과정을 다시 수행하여 USB 디바이스에 디스크립터를 요청하고(GET_DESCRIPTOR), 광 디스크 장치는, 인터페이스 클래스를 벤더-특정 클래스(Vendor-specific Class)에서 매스 스토리지 클래스(Mass Storage Class)로 바꾸어, 인터페이스 클래스를 매스 스토리지 클래스(Mass Storage Class)로 하는 인터페이스 디스크립터를 포함하는 제2 USB 디스크립터를 호스트에 전송한다.The host PC performs the USB enumeration process again and requests a descriptor from the USB device (GET_DESCRIPTOR), and the optical disk device changes the interface class from vendor-specific class to Mass Storage Class. ), and transmits the second USB descriptor including an interface descriptor with the interface class as Mass Storage Class to the host.

호스트인 PC는, USB 디바이스가 전송하는 USB 디스크립터를 수신하고, USB 디스크립터의 인터페이스 디스크립터에 정의된 인터페이스 클래스를 확인하고, 인터페이스 클래스가 매스 스토리지 클래스(Mass Storage Class)이면 해당 호스트의 어플리케이션이 해당 USB 디바이스인 광 디스크 장치와 데이터 대량 전송이 가능하도록 USB 디바이스와의 연결을 오픈한다.The host PC receives the USB descriptor transmitted by the USB device, checks the interface class defined in the interface descriptor of the USB descriptor, and if the interface class is Mass Storage Class, the host's application is connected to the USB device. Opens a connection with a USB device to enable mass data transfer with a phosphorescent disk device.

이후 광 디스크 장치는 호스트와 USB 연결이 오픈되어 호스트의 어플리케이션과 통신을 수행할 수 있다.Afterwards, the optical disk device opens a USB connection with the host and can communicate with the host's application.

따라서, 이 명세서의 실시예에 따른 광 디스크 장치는 인터페이스 클래스 전환을 위한 하드웨어 스위치 없이 펌웨어(Firmware) 수정만으로 PC뿐만 아니라 모바일 기기에서도 사용 가능하게 된다.Therefore, the optical disk device according to the embodiment of this specification can be used not only on PCs but also on mobile devices by simply modifying the firmware without a hardware switch for switching interface classes.

이 명세서에 기재된 광 디스크 드라이브의 인터페이스 전환 방법은 아래와 같이 설명될 수 있다.The interface switching method of the optical disk drive described in this specification can be described as follows.

일 실시예에 따른 광 디스크 드라이브의 인터페이스 전환 방법은, 호스트로부터 USB 디스크립터의 전송 요청을 받으면, 인터페이스 클래스가 벤더 특정 클래스로 정의된 디폴트 USB 디스크립터를 호스트에 전송하는 단계; 호스트로부터 벤더 특정 커맨드의 전송을 대기하는 단계; 벤더 특정 커맨드가 전송되지 않으면, USB 리셋을 수행하는 단계; 및 인터페이스 클래스가 대량 스토리지 클래스로 정의된 제2 USB 디스크립터를 호스트에 전송하는 단계를 포함할 수 있다.A method for switching an interface of an optical disk drive according to an embodiment includes the steps of: receiving a request to transmit a USB descriptor from a host, transmitting a default USB descriptor whose interface class is defined as a vendor-specific class to the host; waiting for transmission of a vendor-specific command from the host; If a vendor specific command is not sent, performing a USB reset; and transmitting a second USB descriptor whose interface class is defined as a mass storage class to the host.

일 실시예에서, 광 디스크 드라이브의 인터페이스 전환 방법은 호스트의 어플리케이션과 데이터 통신을 수행하는 단계를 더 포함할 수 있다.In one embodiment, the method of switching an interface of an optical disk drive may further include performing data communication with an application of a host.

일 실시예에서, 벤더 특정 커맨드가 전송되면 인터페이스 클래스가 벤더 특정 클래스로 유지될 수 있다.In one embodiment, when a vendor-specific command is sent, the interface class may remain a vendor-specific class.

일 실시예에서, USB 리셋은 소정 타임아웃동안 벤더 특정 커맨드가 전송되지 않을 때 수행될 수 있다.In one embodiment, a USB reset may be performed when no vendor-specific commands are sent for a predetermined timeout.

일 실시예에서, 벤더 특정 커맨드는 호스트에서 실행되는 어플리케이션에 의해 전송될 수 있다.In one embodiment, vendor-specific commands may be sent by an application running on the host.

일 실시예에서, 호스트가 Windows OS, Mac OS 또는 Linux OS로 구동되는 단말일 때 벤더 특정 커맨드가 전송되지 않고, 호스트가 Windows OS, Mac OS 및 Linux OS를 제외한 OS로 구동되는 단말일 때 벤더 특정 커맨드가 전송될 수 있다.In one embodiment, vendor-specific commands are not transmitted when the host is a terminal running on Windows OS, Mac OS, or Linux OS, and vendor-specific commands are not transmitted when the host is a terminal running on an OS other than Windows OS, Mac OS, and Linux OS. A command may be transmitted.

이 명세서의 다른 실시예에 따른 광 디스크 드라이브는, 데이터를 광 디스크에 기록하거나 광 디스크로부터 데이터를 독출하기 위한 디스크 구동부; 호스트에 연결하여 데이터나 커맨드를 주고받기 위한 인터페이스부; 및 디스크 구동부와 인터페이스부를 제어하여 호스트로부터 전달되는 데이터를 광 디스크에 기록하거나 광 디스크로부터 데이터를 독출하여 호스트에 전달하기 위한 제어부를 포함하여 구성되고, 인터페이스부는, 인터페이스 클래스를 벤더-특정 클래스로 정의한 디폴트 USB 디스크립터와 인터페이스 클래스를 대량 스토리지 클래스로 정의한 제2 USB 디스크립터를 저장하고, 호스트와 USB 에누머레이션(Enumeration) 과정에서 호스트에 디폴트 USB 디스크립터를 먼저 전송하고, 호스트로부터의 반응을 근거로 디폴트 USB 디스크립터를 제2 USB 디스크립터로 전환할 것을 결정할 수 있다.An optical disk drive according to another embodiment of this specification includes a disk drive unit for writing data to or reading data from an optical disk; An interface unit for connecting to a host to exchange data or commands; and a control unit for controlling the disk drive unit and the interface unit to record data transmitted from the host to an optical disk or to read data from the optical disk and transmit it to the host. The interface unit defines the interface class as a vendor-specific class. Store the default USB descriptor and a second USB descriptor that defines the interface class as a mass storage class, first transmit the default USB descriptor to the host during USB enumeration with the host, and configure the default USB descriptor based on the response from the host. You may decide to convert the descriptor to a second USB descriptor.

일 실시예에서, 인터페이스부는, 호스트로부터 USB 디스크립터의 전송 요청을 받으면 디폴트 USB 디스크립터를 호스트에 전송하고, 호스트로부터 벤더 특정 커맨드가 전송되지 않으면 USB 리셋을 수행하고, 제2 USB 디스크립터를 호스트에 전송할 수 있다.In one embodiment, the interface unit may transmit a default USB descriptor to the host when receiving a USB descriptor transmission request from the host, perform a USB reset if a vendor-specific command is not transmitted from the host, and transmit a second USB descriptor to the host. there is.

일 실시예에서, 인터페이스부는 벤더 특정 커맨드가 전송되면 인터페이스 클래스를 벤더 특정 클래스로 유지할 수 있다.In one embodiment, the interface unit may maintain the interface class as a vendor-specific class when a vendor-specific command is transmitted.

일 실시예에서, 인터페이스부는 소정 타임아웃동안 벤더 특정 커맨드가 전송되지 않을 때 USB 리셋을 수행할 수 있다.In one embodiment, the interface unit may perform a USB reset when a vendor-specific command is not transmitted for a predetermined timeout.

본 발명은 기재된 실시예들에 한정되는 것이 아니고, 본 발명의 사상 및 범위를 벗어나지 않고 다양하게 수정 및 변형할 수 있음은 이 기술의 분야에서 통상의 지식을 가진 자에게 자명하다. 따라서, 그러한 수정예 또는 변형예들은 본 발명의 특허청구범위에 속한다 하여야 할 것이다.The present invention is not limited to the described embodiments, and it is obvious to those skilled in the art that various modifications and changes can be made without departing from the spirit and scope of the present invention. Accordingly, such modifications or variations should be considered to fall within the scope of the claims of the present invention.

100: 광 디스크 드라이브(ODD) 110: 제어부
120: 디스크 구동부 130: 인터페이스부
100: Optical disk drive (ODD) 110: Control unit
120: disk driving unit 130: interface unit

Claims (10)

호스트로부터 USB 디스크립터의 전송 요청을 받으면, 인터페이스 클래스가 벤더 특정 클래스로 정의된 디폴트 USB 디스크립터를 상기 호스트에 전송하는 단계;
상기 호스트로부터 벤더 특정 커맨드의 전송을 대기하는 단계;
상기 벤더 특정 커맨드가 전송되지 않으면, USB 리셋을 수행하는 단계; 및
상기 인터페이스 클래스가 대량 스토리지 클래스로 정의된 제2 USB 디스크립터를 상기 호스트에 전송하는 단계를 포함하는 광 디스크 드라이브의 인터페이스 전환 방법.
Upon receiving a request to transmit a USB descriptor from a host, transmitting a default USB descriptor whose interface class is defined as a vendor-specific class to the host;
waiting for transmission of a vendor-specific command from the host;
If the vendor-specific command is not transmitted, performing a USB reset; and
An interface switching method of an optical disk drive comprising transmitting a second USB descriptor in which the interface class is defined as a mass storage class to the host.
제1 항에 있어서,
상기 호스트의 어플리케이션과 데이터 통신을 수행하는 단계를 더 포함하는 것을 특징으로 하는 광 디스크 드라이브의 인터페이스 전환 방법.
According to claim 1,
An interface switching method for an optical disk drive, further comprising performing data communication with an application of the host.
제1 항에 있어서,
상기 벤더 특정 커맨드가 전송되면, 상기 인터페이스 클래스를 상기 벤더 특정 클래스로 유지하는 것을 특징으로 하는 광 디스크 드라이브의 인터페이스 전환 방법.
According to claim 1,
When the vendor-specific command is transmitted, the interface switching method of an optical disk drive is characterized in that the interface class is maintained as the vendor-specific class.
제1 항에 있어서,
상기 USB 리셋은 소정 타임아웃동안 상기 벤더 특정 커맨드가 전송되지 않을 때 수행되는 것을 특징으로 하는 광 디스크 드라이브의 인터페이스 전환 방법.
According to claim 1,
The USB reset is performed when the vendor-specific command is not transmitted for a predetermined timeout.
제1 항에 있어서,
상기 벤더 특정 커맨드는 상기 호스트에서 실행되는 어플리케이션에 의해 전송되는 것을 특징으로 하는 광 디스크 드라이브의 인터페이스 전환 방법.
According to claim 1,
An interface switching method for an optical disk drive, wherein the vendor-specific command is transmitted by an application running on the host.
제1 항에 있어서,
상기 호스트가 Windows OS, Mac OS 또는 Linux OS로 구동되는 단말일 때 상기 벤더 특정 커맨드가 전송되지 않고, 상기 호스트가 Windows OS, Mac OS 및 Linux OS를 제외한 OS로 구동되는 단말일 때 상기 벤더 특정 커맨드가 전송되는 것을 특징으로 하는 광 디스크 드라이브의 인터페이스 전환 방법.
According to claim 1,
When the host is a terminal running on Windows OS, Mac OS, or Linux OS, the vendor-specific command is not transmitted, and when the host is a terminal running on an OS other than Windows OS, Mac OS, and Linux OS, the vendor-specific command A method for switching interfaces of an optical disk drive, characterized in that the is transmitted.
데이터를 광 디스크에 기록하거나 광 디스크로부터 데이터를 독출하기 위한 디스크 구동부;
호스트에 연결하여 데이터나 커맨드를 주고받기 위한 인터페이스부; 및
상기 디스크 구동부와 상기 인터페이스부를 제어하여 상기 호스트로부터 전달되는 데이터를 광 디스크에 기록하거나 광 디스크로부터 데이터를 독출하여 상기 호스트에 전달하기 위한 제어부를 포함하여 구성되고,
상기 인터페이스부는, 인터페이스 클래스를 벤더-특정 클래스로 정의한 디폴트 USB 디스크립터와 상기 인터페이스 클래스를 대량 스토리지 클래스로 정의한 제2 USB 디스크립터를 저장하고, 상기 호스트와 USB 에누머레이션(Enumeration) 과정에서 상기 호스트에 상기 디폴트 USB 디스크립터를 먼저 전송하고, 상기 호스트로부터의 반응을 근거로 상기 디폴트 USB 디스크립터를 상기 제2 USB 디스크립터로 전환할 것을 결정하는 것을 특징으로 하는 광 디스크 드라이브.
a disk drive unit for recording data to or reading data from an optical disk;
An interface unit for connecting to a host to exchange data or commands; and
It is configured to include a control unit for controlling the disk drive unit and the interface unit to record data transmitted from the host to an optical disk or to read data from the optical disk and transmit it to the host,
The interface unit stores a default USB descriptor that defines the interface class as a vendor-specific class and a second USB descriptor that defines the interface class as a mass storage class, and transmits the USB descriptor to the host during USB enumeration with the host. An optical disk drive characterized in that it transmits a default USB descriptor first and determines whether to convert the default USB descriptor to the second USB descriptor based on a response from the host.
제7 항에 있어서,
상기 인터페이스부는, 상기 호스트로부터 USB 디스크립터의 전송 요청을 받으면 상기 디폴트 USB 디스크립터를 상기 호스트에 전송하고, 상기 호스트로부터 벤더 특정 커맨드가 전송되지 않으면 USB 리셋을 수행하고, 상기 제2 USB 디스크립터를 상기 호스트에 전송하는 것을 특징으로 하는 광 디스크 드라이브.
According to clause 7,
The interface unit transmits the default USB descriptor to the host when receiving a request to transmit a USB descriptor from the host, performs a USB reset if a vendor-specific command is not transmitted from the host, and transmits the second USB descriptor to the host. An optical disk drive characterized in that it transmits data.
제8 항에 있어서,
상기 인터페이스부는 상기 벤더 특정 커맨드가 전송되면 상기 인터페이스 클래스를 상기 벤더 특정 클래스로 유지하는 것을 특징으로 하는 광 디스크 드라이브.
According to clause 8,
The interface unit maintains the interface class as the vendor-specific class when the vendor-specific command is transmitted.
제8 항에 있어서,
상기 인터페이스부는 소정 타임아웃동안 상기 벤더 특정 커맨드가 전송되지 않을 때 상기 USB 리셋을 수행하는 것을 특징으로 하는 광 디스크 드라이브.
According to clause 8,
The interface unit performs the USB reset when the vendor-specific command is not transmitted for a predetermined timeout.
KR1020220044565A 2022-04-11 2022-04-11 Method of switching interface in optical disc drive KR20230145767A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220044565A KR20230145767A (en) 2022-04-11 2022-04-11 Method of switching interface in optical disc drive

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220044565A KR20230145767A (en) 2022-04-11 2022-04-11 Method of switching interface in optical disc drive

Publications (1)

Publication Number Publication Date
KR20230145767A true KR20230145767A (en) 2023-10-18

Family

ID=88508102

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220044565A KR20230145767A (en) 2022-04-11 2022-04-11 Method of switching interface in optical disc drive

Country Status (1)

Country Link
KR (1) KR20230145767A (en)

Similar Documents

Publication Publication Date Title
US7921244B2 (en) Data sharing and transfer systems and methods
US6199122B1 (en) Computer system, external storage, converter system, and recording medium for converting a serial command and data standard to a parallel one
US7587554B2 (en) Device and method for providing data exchange and storage
US7007127B2 (en) Method and related apparatus for controlling transmission interface between an external device and a computer system
US20060174049A1 (en) USB to SATA bridge system
US20080276012A1 (en) Driver Loading via a PnP Device
US20050240713A1 (en) Flash memory device with ATA/ATAPI/SCSI or proprietary programming interface on PCI express
US7568053B2 (en) USB composite device, USB communication system, and USB communication method
JP2002300229A (en) Device and method for controlling usb communication and usb communication system
US10380049B2 (en) Multi-host supported universal serial bus hub and automobile head unit using the same
EP2030105A1 (en) Method for communication with a multi-function memory card
US20060253673A1 (en) Apparatus and method for permitting access to storage means
JP2018073392A (en) Flexible mobile device connectivity to automotive systems with usb hubs
US20100180080A1 (en) External storage device having a self-contained security function
KR20040041623A (en) Bus system and bus interface for connection to a bus
US7913263B2 (en) External device and operating method applied thereto
US20120102251A1 (en) Serial attached small computer system interface (sas) domain access through a universal serial bus interface of a data processing device
KR100758219B1 (en) Method of managing USB devices
KR20230145767A (en) Method of switching interface in optical disc drive
KR20040043198A (en) Bus system and bus interface
US7346727B2 (en) Method and system for control of a first device by data storage device through storing different values within task file register by the data storage device and reading task file register and performing corresponding predetermined operations by the first device via an IDE bus
WO2016031456A1 (en) Reader/writer device, information processing device, data transfer control method, and program
JP7111756B2 (en) INTEGRATED ELECTRONIC DEVICE AND METHOD WITH DATA ACCESS, TRANSMISSION AND POWER MANAGEMENT
TW202205101A (en) Usb hub device having functionality of self firmware updating and host system having the same
US6970349B2 (en) Expandale modular storage unit