KR100503917B1 - Serial port driver architecture supporting virtual dual serial ports and method for managing these dual serial ports - Google Patents

Serial port driver architecture supporting virtual dual serial ports and method for managing these dual serial ports Download PDF

Info

Publication number
KR100503917B1
KR100503917B1 KR1020050039723A KR20050039723A KR100503917B1 KR 100503917 B1 KR100503917 B1 KR 100503917B1 KR 1020050039723 A KR1020050039723 A KR 1020050039723A KR 20050039723 A KR20050039723 A KR 20050039723A KR 100503917 B1 KR100503917 B1 KR 100503917B1
Authority
KR
South Korea
Prior art keywords
serial port
state
call
virtual serial
driver
Prior art date
Application number
KR1020050039723A
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 KR1020050039723A priority Critical patent/KR100503917B1/en
Application granted granted Critical
Publication of KR100503917B1 publication Critical patent/KR100503917B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/40Constructional details, e.g. power supply, mechanical construction or backplane
    • H04L49/405Physical details, e.g. power supply, mechanical construction or backplane of ATM switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)

Abstract

가상의 듀얼 시리얼 포트를 지원하는 시리얼 포트 드라이버 구조와 이를 이용한 이들 포트의 관리 방법이 개시된다. 시리얼 포트 드라이버는 전화 기능과 제어 기능을 수행하는 에이티 컨맨드(AT command)의 송수신 용도로 사용되는 제1 가상 시리얼 포트와, 데이터통신 서비스를 위해 에이티 컨맨드(AT command)와 피피피(PPP) 패킷을 송수신하는 용도로 사용되는 제2 가상 시리얼 포트를 하나의 모뎀 포트 하드웨어에 대해 지원한다. 제1 응용프로그램의 사용 요청에 응하여 제1 가상 시리얼 포트가 열려서(open) 전화통화 서비스가 제공되는 동안에는, 제2 가상 시리얼 포트가 닫힘 상태를 유지하도록 하여 데이터통신 서비스가 제공되지 않는다. 제2 응용프로그램의 사용 요청에 응하여 제2 가상 시리얼 포트가 오픈되어 데이터통신 서비스가 제공되는 동안에는, 그 사실을 제1 가상 시리얼 포트 드라이버가 제1 응용프로그램에 전달하여 전화통화 서비스가 제공되지 않는다. Disclosed are a serial port driver structure supporting virtual dual serial ports and a method of managing these ports using the same. The serial port driver includes a first virtual serial port used for transmitting and receiving an AT command that performs a telephone function and a control function, and an AT command and a PPI for a data communication service. PPP) supports a second virtual serial port for one modem port hardware used for transmitting and receiving packets. While the first virtual serial port is opened in response to a use request of the first application program, and the telephone call service is provided, the second virtual serial port is kept closed so that the data communication service is not provided. While the second virtual serial port is opened in response to a use request of the second application to provide a data communication service, the first virtual serial port driver conveys the fact to the first application so that the telephone call service is not provided.

Description

가상의 듀얼 시리얼 포트를 지원하는 시리얼 포트 드라이버 구조와 이를 이용한 이들 포트의 관리 방법 {Serial port driver architecture supporting virtual dual serial ports and method for managing these dual serial ports}Serial port driver architecture supporting virtual dual serial ports and method for managing these dual serial ports}

본 발명은 모뎀과 연결되는 통신 포트의 관리 방법과 가상 시리얼 포트 드라이버 구현 방법에 관한 것이다. The present invention relates to a method of managing a communication port connected to a modem and a method of implementing a virtual serial port driver.

일반적으로 모뎀과 연결되는 통신 방식은 유에이알티(Universal Asynchronous Receiver Transmitter: UART), 유에스비(Universal Serial Bus: USB)가 많이 사용되며 응용 프로그램은 운영체제의 시리얼 포트 드라이버를 통해 모뎀에 접근한다.In general, a communication method connected to a modem is commonly used with Universal Asynchronous Receiver Transmitter (UART) and Universal Serial Bus (USB), and an application program accesses the modem through an operating system serial port driver.

종래의 시리얼 포트 드라이버는 물리적인 통신 포트 당 하나씩 존재하는 일 대 일 대응구조이다. 즉, 물리적인 포트 개수만큼 시리얼 포트 드라이버가 존재하며 각각의 드라이버는 특정 통신 포트만을 제어한다. 하나의 시리얼 포트 드라이버는 여러 응용 프로그램에서 사용될 수 있으나 읽기/쓰기(read/write) 권한을 가지는 응용 프로그램은 오직 하나이다. Conventional serial port drivers have a one-to-one correspondence structure, one per physical communication port. That is, there are as many serial port drivers as there are physical ports, and each driver controls only a specific communication port. One serial port driver can be used by multiple applications, but only one application has read / write privileges.

이러한 구조에서는 두 개의 서로 다른 응용 프로그램이 동시에 물리적인 통신 포트에 읽기/쓰기(read/write)를 할 수는 없다. 어떤 시점에서 시리얼 포트 드라이버에 대한 사용권을 갖는 응용 프로그램은 하나만 존재하고, 그 시리얼 포트 드라이버 역시 그에 대응되는 하나의 물리적인 통신 포트를 구동할 수 있기 때문이다. 그러므로 예를 들어 전화 응용 프로그램이 시리얼 포트를 사용하고 있을 경우, 데이터통신 프로그램은 해당 포트를 사용할 수가 없다. 이 경우에 데이터통신을 사용하기 위해서는 전화 응용 프로그램에서 그 해당 포트의 사용을 해제하여야 한다.In this architecture, two different applications cannot read / write to a physical communication port at the same time. At any point in time, there is only one application that has a license for the serial port driver, and that serial port driver can also run a corresponding physical communication port. Thus, for example, if a telephone application uses a serial port, the data communication program cannot use that port. In this case, in order to use data communication, the corresponding port must be released from the telephone application.

도 1은 Windows CE 운영체제 환경에서의 일반적인 다이얼-업 네트워킹 구조에서 시리얼 포트를 사용하는 기능 요소들의 블록 다이어그램을 나타낸다. 일반적으로 물리적인 모뎀(128)의 인터페이스 당 시리얼 포트(130) 하나가 존재하게 되며, 시리얼 포트(130)에 대해 읽기/쓰기를 할 수 있는 권한을 가지는 응용 프로그램은 동시에 존재할 수 없다. 응용 프로그램 1(112)은 전화 기능과 제어 기능을 수행하며 시리얼 포트(130)에 AT 컨맨드(AT command)를 직접 송수신 한다. 응용 프로그램 2(114)는 네트워크 기능을 수행하며 시리얼 포트(130)에 피피피(PPP) 패킷을 송수신 한다. 응용 프로그램 2(114)가 네트워크 서비스를 제공하기 위해서는 RAS(122)에 의해 원격전화접속이 이루어져야 한다.Figure 1 shows a block diagram of the functional elements using serial ports in a typical dial-up networking architecture in a Windows CE operating system environment. In general, one serial port 130 exists per interface of the physical modem 128, and an application program having a right to read / write the serial port 130 cannot exist at the same time. Application program 1112 performs a telephone function and a control function, and directly transmits and receives an AT command (AT command) to the serial port 130. Application program 2 114 performs a network function and transmits and receives a PPP packet to the serial port 130. In order for application 2 114 to provide a network service, a remote telephone connection must be made by the RAS 122.

이 구성에서는 응용 프로그램 1(112)과 응용 프로그램 2(114)가 동시에 시리얼 포트(130)에 접근할 수가 없다. 전화접속네트워킹(dial-up networking) 서비스를 제공하기 위해, 어떤 응용 프로그램이 현재 COM 포트를 '오픈'하여 사용 중에 있다면 다른 응용 프로그램은 그 COM 포트를 '오픈'할 수가 없다. 응용 프로그램이 전화접속네트워킹 서비스를 제공하기 위해 모뎀(128)을 제어하려면 당연히 그 COM 포트를 사용해야 하는데, 하나의 모뎀(128) 당 하나의 COM 포트(130)만 존재하므로 현재 사용 권한을 가지고 있는 응용 프로그램이 그 사용을 종료하여야 다른 응용 프로그램이 COM(130)을 통해 모뎀(128)을 제어할 수 있게 된다. In this configuration, application 1 112 and application 2 114 cannot access serial port 130 at the same time. To provide dial-up networking services, if an application is currently 'opening' and using a COM port, no other application can 'open' the COM port. In order for an application to control the modem 128 to provide dial-up networking services, of course, the COM port must be used. Since only one COM port 130 exists per modem 128, the application currently has permission to use it. The program must terminate its use before other applications can control the modem 128 via the COM 130.

앞서 언급하였듯이 일반적으로 운영체계에서는 전화접속네트워킹 기능을 통한 데이터통신 서비스를 제공한다. 데이터통신 서비스를 사용하기 위해서는 하위에 모뎀 포트(시리얼 포트)가 존재해야 한다. 데이터통신 중에는 모뎀 포트의 사용 권한을 전적으로 운영체계가 가진다. 모뎀 포트가 하나만 존재할 경우 전화 응용 프로그램에서는 데이터통신을 사용하지 않는 시간에만 포트 사용 권한을 가져야 하므로 기능의 제약을 가질 수밖에 없다. 또한 데이터통신을 사용하지 않는 시간을 체크하기 위해서 해당 포트를 주기적으로 감시하여야 한다. 따라서 프로그램 구조가 복잡해지고 수행 속도가 늦어지는 문제점을 야기한다.As mentioned above, operating systems generally provide data communication services through dial-up networking. In order to use data communication service, a modem port (serial port) must exist below. During data communication, the operating system has full authority to use the modem port. If there is only one modem port, the telephone application must have port permission only at the time when data communication is not used, so there is a limitation in function. In addition, the port should be monitored periodically to check the time when data communication is not used. Therefore, the program structure becomes complicated and the execution speed becomes slow.

이러한 문제점을 해결하기 위해서, 본 발명은 하나의 물리적인 모뎀에 대해 두 개의 가상의 시리얼 포트를 지원하고, 이 두 개의 가상의 시리얼 포트의 사용 권한을 외부 이벤트에 의해 변경되는 내부의 상태에 따라 적절히 제어하여 전화 응용 프로그램이 요청하는 서비스와 데이터통신 관련 응용 프로그램이 요청하는 서비스가 상호 독립적으로 기능할 수 있도록 관리할 수 있게 하는 시리얼 포트 드라이버의 구조와 이를 위한 시리얼 포트 관리방법을 제공하는 것을 목적으로 한다. In order to solve this problem, the present invention supports two virtual serial ports for one physical modem, and the right of use of these two virtual serial ports is properly changed according to the internal state changed by an external event. The purpose of this paper is to provide a structure of a serial port driver that can be controlled so that the service requested by a telephone application and the service requested by a data communication application can function independently of each other, and a serial port management method therefor. do.

상기 목적을 달성하기 위한 본 발명의 일 측면에 따르면, 전화 기능과 제어 기능을 수행하는 에이티 컨맨드(AT command)의 송수신 용도로 사용되는 제1 가상 시리얼 포트와, 데이터통신 서비스를 위해 에이티 컨맨드(AT command)와 피피피(PPP) 패킷을 송수신하는 용도로 사용되는 제2 가상 시리얼 포트를 하나의 모뎀 포트 하드웨어에 대해 지원하며, 제1 프로그램의 사용 요청에 응하여 상기 제1 가상 시리얼 포트가 열려서(open) 전화통화 서비스가 제공되는 동안에는 상기 제2 가상 시리얼 포트가 닫힘 상태를 유지하도록 하여 데이터통신 서비스가 제공되지 않도록 하고, 제2 프로그램의 사용 요청에 응하여 상기 제2 가상 시리얼 포트가 오픈되어 데이터통신 서비스가 제공되는 동안에는, 그 사실을 상기 제1 가상 시리얼 포트 드라이버가 상기 제1 프로그램에 전달하여 전화통화 서비스가 제공되지 않도록 하는 것을 특징으로 하는 시리얼 포트 드라이버가 제공된다. According to an aspect of the present invention for achieving the above object, the first virtual serial port used for the transmission and reception of the AT command to perform a telephone function and a control function, and for the data communication service Supports a second virtual serial port for one modem port hardware used to transmit and receive AT commands and PPP packets, and supports the first virtual serial port in response to a request for using a first program. While the telephone call service is open, the second virtual serial port is kept closed so that the data communication service is not provided, and the second virtual serial port is opened in response to a request for using a second program. While the data communication service is provided, the first virtual serial port driver transmits the fact to the first program. It is provided by a serial port driver, characterized in that to avoid providing telephone call service.

상기 시리얼 포트 드라이버는, 그 자신의 내부 상태로서 적어도, 상기 제2 가상 시리얼 포트는 닫혀(close) 있어 이를 사용할 수 없고, 상기 제1 가상 시리얼 포트는 열려(open) 있어 전화 통화 관련 에이티 컨맨드(AT command)를 송수신할 수 있는 아이들 상태(S2); 상기 제2 가상 시리얼 포트는 닫혀 있어 이를 사용할 수 없고, 열려 있는 상기 제1 가상 시리얼 포트를 통해 전화 통화 시작을 알리는 I/O 컨트롤을 MCP 드라이버가 전달받은 상태인 통화 상태(S3); 및 상기 제2 가상 시리얼 포트가 열려있어 이를 통해 에이티 컨맨드(AT command)와 피피피(PPP) 패킷을 송수신할 수 있으되, 상기 제1 가상 시리얼 포트는 열림 혹은 닫힘 상태일 수 있고 열림 상태에서도 이를 통한 전화 통화는 할 수 없는 데이터통신 상태(S4)를 포함하는 것이 바람직하다. 상기 시리얼 포트 드라이버의 내부 상태는 상기 시리얼 포트 드라이버의 인터페이스를 호출하는 외부 이벤트에 의해 천이된다. The serial port driver has its own internal state, at least that the second virtual serial port is closed and cannot be used, and the first virtual serial port is open, which is associated with a telephone call. An idle state S2 capable of transmitting and receiving an AT command; A call state (S3) in which the MCP driver has received an I / O control for initiating a telephone call through the open first virtual serial port because the second virtual serial port is closed and cannot be used; And the second virtual serial port is open so that an AT command and a PPP packet may be transmitted and received, but the first virtual serial port may be in an open or closed state and may be open. It is preferable to include a data communication state (S4) that can not be a telephone call through this. The internal state of the serial port driver is transitioned by an external event that calls the interface of the serial port driver.

상기 시리얼 포트 드라이버의 상태 천이는 다음과 같이 이루어진다. The state transition of the serial port driver is performed as follows.

첫째, 시리얼 포트 드라이버의 내부상태가 상기 아이들 상태(S2)에서, 시리얼 포트의 I/O 제어를 수행하는 인터페이스 함수(COM_IOControl)의 호출을 통해, 상기 제1 프로그램이 발신 또는 착신을 하기 전에 통화 시작을 알리기 위한 제1 I/O 컨트롤 코드(IOCTL_CALL_START)를 상기 제1 가상 시리얼 포트의 드라이버로 전달하면, 상기 통화 상태(S3)로 천이된다. First, when the internal state of the serial port driver is the idle state (S2), through the call of the interface function (COM_IOControl) to perform the I / O control of the serial port, the call is started before the first program originating or incoming When the first I / O control code (IOCTL_CALL_START) is transmitted to the driver of the first virtual serial port, the device transitions to the call state (S3).

둘째, 시리얼 포트 드라이버의 내부상태가 상기 통화 상태(S3)에서, 시리얼 포트의 I/O 제어를 수행하는 인터페이스 함수(COM_IOControl)의 호출을 통해, 상기 제1 프로그램이 전화통화가 종료되었음을 알리기 위한 제2 I/O 컨트롤 코드(IOCTL_CALL_STOP)를 상기 제1 가상 시리얼 포트 드라이버로 전달하면, 상기 아이들 상태(S2)로 천이된다.Second, when the internal state of the serial port driver is the call state (S3), through the call to the interface function (COM_IOControl) that performs I / O control of the serial port, the first program to inform that the telephone call has ended When 2 I / O control code (IOCTL_CALL_STOP) is transferred to the first virtual serial port driver, it transitions to the idle state S2.

셋째, 시리얼 포트 드라이버의 내부상태가 상기 아이들 상태(S2)에서, 상기 제2 가상 시리얼 포트를 오픈하는 인터페이스 함수(COM_Open)가 호출되면, 상기 데이터통신 상태(S4)로 천이됨과 아울러 데이터 통신이 시작됨을 알리기 위한 제1 이벤트(EV_DATA_START)를 상기 제1 프로그램에게 전달하여 이후부터 사용자의 통화 요구를 거절하도록 한다. Third, when the internal state of the serial port driver is in the idle state S2, when the interface function COM_Open for opening the second virtual serial port is called, the data communication state S4 is started and data communication starts. The first event EV_DATA_START for notifying of the error is delivered to the first program so as to reject the call request of the user.

넷째, 상기 제1 및 제2 가상 시리얼 포트가 모두 오픈되어 있는 상기 데이터통신 상태(S4)에서 상기 제2 가상 시리얼 포트를 닫기 위한 인터페이스 함수(COM_Close)가 호출되면, 시리얼 포트 드라이버의 내부 상태는 상기 아이들 상태(S2)로 천이되고, 데이터 통신이 종료되었음을 알리기 위한 제2 이벤트(EV_DATA_STOP)를 상기 제1 프로그램에게 전달하여 전화통화 요청이 수용될 수 있도록 한다. Fourth, when the interface function COM_Close for closing the second virtual serial port is called in the data communication state S4 in which both the first and second virtual serial ports are open, an internal state of the serial port driver is determined. A transition to the idle state S2 is performed, and a second event EV_DATA_STOP for notifying that the data communication is terminated is transmitted to the first program so that the telephone call request can be accepted.

한편, 상기 목적을 달성하기 위한 본 발명의 다른 측면에 따르면, 전화 기능과 제어 기능을 수행하는 에이티 컨맨드(AT command)의 송수신 용도로 사용되는 제1 가상 시리얼 포트와, 데이터통신 서비스를 위해 에이티 컨맨드(AT command)와 피피피(PPP) 패킷을 송수신하는 용도로 사용되는 제2 가상 시리얼 포트를 하나의 모뎀 포트 하드웨어에 대해 지원하는 시리얼 포트 드라이버의 시리얼 포트 관리 방법에 있어서,On the other hand, according to another aspect of the present invention for achieving the above object, the first virtual serial port used for the transmission and reception of the AT command to perform a telephone function and a control function, and for a data communication service In a serial port management method of a serial port driver that supports a second virtual serial port for one modem port hardware, which is used to transmit and receive AT commands and PPP packets,

상기 제2 가상 시리얼 포트는 닫혀(close) 있어 이를 사용할 수 없고 상기 제1 가상 시리얼 포트는 열려(open) 있어 전화 통화 관련 에이티 컨맨드(AT command)를 송수신할 수 있는 아이들 상태(S2)에서, 시리얼 포트의 I/O 제어를 수행하는 인터페이스 함수(COM_IOControl)의 호출을 통해 상기 제1 프로그램이 발신 또는 착신을 하기 전에 통화 시작을 알리기 위한 제1 I/O 컨트롤 코드(IOCTL_CALL_START)를 상기 제1 가상 시리얼 포트의 드라이버로 전달하면, 상기 시리얼 포트 드라이버의 내부 상태가 상기 제2 가상 시리얼 포트는 닫혀 있어 이를 사용할 수 없고 열려있는 상기 제1 가상 시리얼 포트를 통해 전화통화 개시를 위한 에이티 컨맨드(AT command)가 모뎀에 전달되는 통화 상태(S3)로 천이되는 단계; 및The second virtual serial port is closed and cannot be used, and the first virtual serial port is open, in an idle state S2 capable of transmitting and receiving an AT command related to a telephone call. The first I / O control code (IOCTL_CALL_START) for notifying the start of a call before the first program makes a call or an incoming call through a call of an interface function (COM_IOControl) that performs I / O control of a serial port. When the driver transmits to the driver of the virtual serial port, the internal state of the serial port driver indicates that the second virtual serial port is closed and cannot be used. AT command) is transitioned to the call state (S3) delivered to the modem; And

상기 내부상태가 상기 아이들 상태(S2)에서, 상기 제2 가상 시리얼 포트를 오픈하는 인터페이스 함수(COM_Open)가 호출되면, 상기 제2 가상 시리얼 포트는 열려 있어 이를 통해 에이티 컨맨드(AT command)와 PPP 패킷을 송수신할 수 있고 상기 제1 가상 시리얼 포트는 열림 혹은 닫힘 상태일 수 있고 열림 상태에서도 전화통화는 불가능한 상태인 데이터통신 상태(S4)로 천이됨과 아울러 데이터 통신이 시작됨을 알리기 위한 제1 이벤트(EV_DATA_START)를 상기 제1 프로그램에게 전달하여 이후부터 사용자의 통화 요구를 거절하도록 하는 단계를 구비하는 것을 특징으로 하는 시리얼 포트 관리 방법이 제공된다.When the internal state is the idle state S2, when the interface function COM_Open for opening the second virtual serial port is called, the second virtual serial port is open, thereby enabling an AT command. A first event for transmitting and receiving a PPP packet and the first virtual serial port transitions to a data communication state (S4), which may be in an open or closed state and a telephone call is impossible even in an open state, and also indicates that data communication is started. And transmitting the EV_DATA_START to the first program so as to reject the call request from the user thereafter.

상기 시리얼 포트 관리 방법은 시리얼 포트 드라이버의 내부상태가 상기 통화 상태(S3)에서, 시리얼 포트의 I/O 제어를 수행하는 인터페이스 함수(COM_IOControl)의 호출을 통해, 상기 제1 프로그램이 전화통화가 종료되었음을 알리기 위한 제2 I/O 컨트롤 코드(IOCTL_CALL_STOP)를 상기 제1 가상 시리얼 포트 드라이버로 전달하면, 상기 아이들 상태(S2)로 천이되는 단계를 더 구비하는 것이 바람직하다. In the serial port management method, when the internal state of the serial port driver is the call state (S3), a call is terminated by the first program through a call to an interface function (COM_IOControl) that performs I / O control of the serial port. When the second I / O control code (IOCTL_CALL_STOP) is transmitted to the first virtual serial port driver, it is preferable to further include the step of transitioning to the idle state (S2).

나아가, 상기 시리얼 포트 관리 방법은 상기 제1 및 제2 가상 시리얼 포트가 모두 오픈되어 있는 상기 데이터통신 상태(S4)에서 상기 제2 가상 시리얼 포트를 닫기 위한 인터페이스 함수(COM_Close)가 호출되면, 시리얼 포트 드라이버의 내부 상태는 상기 아이들 상태(S2)로 천이되고, 데이터 통신이 종료되었음을 알리기 위한 제2 이벤트(EV_DATA_STOP)를 상기 제1 프로그램에게 전달하여 전화통화 요청이 수용될 수 있도록 하는 단계를 더 구비하는 것이 바람직하다. Further, the serial port management method, when the interface function (COM_Close) for closing the second virtual serial port is called in the data communication state (S4) in which both the first and second virtual serial port is open, the serial port Transitioning the internal state of the driver to the idle state S2, and forwarding a second event (EV_DATA_STOP) for notifying that the data communication is terminated to the first program so that the telephone call request can be accepted. It is preferable.

위와 같은 본 발명의 시리얼 포트 드라이버 구조와 시리얼 포트 관리 방법에 의하면, 시리얼 포트 드라이버 형태로 구성되어 기존 기능과의 호환이 가능하다. 또한, 본 발명의 모뎀 포트 드라이버 구조는 예컨대 전화 응용 프로그램과 데이터통신 서비스에서 사용하는 두 개의 논리적인 가상 시리얼 포트를 제공한다. 그리고 시리얼 포트 드라이버의 내부 상태를 여러 개 정의하고, 시리얼 포트 드라이버의 인터페이스를 호출하는 외부 이벤트에 의해 내부 상태를 천이하는 것을 통해, 이들 가상 시리얼 포트의 사용 권한을 적절히 제어함으로써 전화 응용 프로그램의 서비스 요청과 다른 프로그램의 데이터통신 서비스 요청이 서로 충돌되지 않고 수용될 수 있도록 해준다. According to the serial port driver structure and the serial port management method of the present invention as described above, it is configured in the form of a serial port driver is compatible with existing functions. In addition, the modem port driver architecture of the present invention provides two logical virtual serial ports for use in telephony applications and data communication services, for example. By defining several internal states of the serial port driver and transitioning the internal state by external events calling the interface of the serial port driver, the service request of the telephone application can be controlled by appropriately controlling the permissions of these virtual serial ports. Data communication service requests from and other programs can be accepted without conflict.

이하에서는 첨부한 도면을 참조하여 본 발명을 보다 구체적으로 설명하기로 한다.Hereinafter, with reference to the accompanying drawings will be described the present invention in more detail.

도 2는 Windows CE 운영체제(operating system: OS) 환경에서의 일반적인 다이얼-업 네트워킹 구조에서 기존의 시리얼 포트를 대신하여 채용된 본 발명에 따른 MCP(Modem COM Port) 드라이버를 사용하는 기능 요소들의 블록 다이어그램을 나타낸다. 본 발명이 제안하는 통신 포트 드라이버(220)는 모뎀(비도시)과 인터페이스 하는 모뎀 포트(218)의 드라이버이다. 통신 포트 드라이버(220)는 하나의 드라이버로 구현되며 논리적으로는 2개의 가상 통신 포트(222, 224)를 지원하는 구조를 취한다. 즉, 하나의 물리적인 모뎀에 대해 논리적으로는 두 개의 통신 포트가 제공되는 효과가 얻어지는 구조이다. 두 개의 가상 통신 포트(222, 224)는 운영체제(OS) 상에서 일반적인 시리얼 포트와 동일한 형태로 보이도록 하기 위해 시리얼 포트 드라이버와 동일한 구조로 구현된다. 그러므로 시리얼 통신 서비스를 모두 포함한다. 이 구조에서 가상 시리얼 포트 1(222)을 VMCP(Voice Modem COM Port), 가상 시리얼 포트 2(224)를 DMCP(Data Modem COM Port), 그리고 이 두 가지 가상 포트를 지원하는 모뎀 포트 드라이버 즉, 시리얼 포트 드라이버(220)를 MCP(Modem COM Port) 드라이버로 부르기로 한다. 이 구조는 모뎀과의 통신 인터페이스 방식(UART, USB 등)과 무관하다. MCP 드라이버(220)는 이들 가상 시리얼 포트(222, 224)에 발생한 각 이벤트에 따라 모뎀 포트(218)의 '상태'와 '접근'을 제어한다. 2 is a block diagram of functional elements using a Modem COM Port (MCP) driver according to the present invention employed in place of an existing serial port in a typical dial-up networking architecture in a Windows CE operating system (OS) environment. Indicates. The communication port driver 220 proposed by the present invention is a driver of a modem port 218 that interfaces with a modem (not shown). The communication port driver 220 is implemented as one driver and logically takes a structure supporting two virtual communication ports 222 and 224. In other words, logically, two communication ports are provided for one physical modem. The two virtual communication ports 222 and 224 are implemented in the same structure as the serial port driver so as to appear in the same form as a general serial port on the operating system (OS). Therefore, it includes all serial communication services. In this architecture, the virtual serial port 1 (222) is the Voice Modem COM Port (VMCP), the virtual serial port 2 (224) is the Data Modem COM Port (DMCP), and the modem port driver that supports these two virtual ports. The port driver 220 will be referred to as an MCP (Modem COM Port) driver. This structure is independent of the communication interface with the modem (UART, USB, etc.). The MCP driver 220 controls the 'state' and 'access' of the modem port 218 according to each event occurring in these virtual serial ports 222 and 224.

VMCP(222)와 DMCP(224)는 그 자체가 시리얼 포트 드라이버이다(엄밀하게 말해서 COM 포트이다). 다만 각 COM 포트는 독립된 존재가 아니라 하나의 리소스(물리적인 포트)를 공유하기 때문에 리소스에 대한 접근 제어를 해야 한다. 본 발명은 이러한 접근 제어에 대한 방법을 제시한다. VMCP(222)는 전화통화 기능과 전화와 관련된 부가적인 제어 기능(예: 볼륨 제어, 안테나 수신감도 조회 등)을 수행하는 에이티 컨맨드(AT command)의 송수신 용도로 사용되며 주로 전화관련 응용 프로그램에서 포트 사용 권한을 가진다. DMCP(224)는 데이터통신 모뎀 용도로 사용되며 AT command와 PPP 패킷을 송수신하는 용도로 사용되며, 주로 OS에서 포트 사용 권한을 가진다. MCP 드라이버(220)는 시리얼 포트 1과 2의 사용 상태에 따라서 물리적인 모뎀의 사용 권한을 제어한다.VMCP 222 and DMCP 224 are themselves serial port drivers (strictly COM ports). However, each COM port does not have an independent existence but shares one resource (physical port). The present invention provides a method for such access control. The VMCP 222 is used for the transmission and reception of AT commands that perform telephony functions and additional control functions related to the telephone (e.g., volume control, antenna reception sensitivity inquiry, etc.). Has port permissions in. The DMCP 224 is used for a data communication modem and is used for transmitting and receiving AT commands and PPP packets, and mainly has a port usage right in an OS. The MCP driver 220 controls the usage rights of the physical modem according to the use state of the serial ports 1 and 2.

MCP 드라이버(220)는 예컨대 하나의 동적 라이브러리(DLL)로 구현되고, VMCP(222)와 DMCP(224)가 그 하나의 DLL 안에 논리적으로 존재하는 형태로 구현될 수 있다. 이 경우, DLL은 실제로 하나이며 OS가 VMCP(222)와 DMCP(224)에 대해 드라이버를 로딩할 때 하나의 DLL을 참고한다. 환원하면, VMCP(222)와 DMCP(224)는 OS 입장에서는 실제로 존재하는 서로 다른 COM 포트로 보이므로 물리적인 모뎀 포트 1개에 2개의 COM 포트가 매칭된 형태지만, 실체는 동일한 프로그램 소스를 가지는 하나의 DLL로 존재한다. The MCP driver 220 may be implemented as, for example, a dynamic library (DLL), and may be implemented in a form in which the VMCP 222 and the DMCP 224 are logically present in the single DLL. In this case, the DLL is actually one and the OS consults one DLL when loading the driver for VMCP 222 and DMCP 224. In other words, since the VMCP 222 and the DMCP 224 appear to be different COM ports that actually exist from an OS perspective, two COM ports are matched to one physical modem port, but the entity has the same program source. It exists as a DLL.

여기서 시리얼 포트 드라이버(Serial Port Driver)와 COM 포트는 구별할 필요가 있다. 시리얼 포트 드라이버는 통신 장치(예: UART, USB, DPRAM)를 제어하고 데이터를 송수신하는 역할을 담당하는 프로그램이다. 장치 드라이버를 관리하는 프로그램이자 Windows CE의 구성 요소인 장치 관리자(320)에 의해 시리얼 포트 드라이버가 로드 되면 COM 포트가 생성된다. 대부분은 하나의 시리얼 포트 드라이버가 로드 되어 하나의 COM 포트가 생성되지만, 하나의 시리얼 포트 드라이버가 여러 번 로드 되어 복수개의 COM 포트가 생성될 수도 있다. 이 때는 시리얼 포트 드라이버가 로드 될 때 각 COM 포트를 식별할 수 있는 인덱스 정보가 전달되어, 시리얼 포트 드라이버에서는 인덱스 정보에 따라 각기 다른 처리 루틴을 가지면 된다. MCP 드라이버(220)는 결국 하나의 시리얼 포트 드라이버로서 존재하며, 예컨대 인덱스 0 을 가지고 로드 되면 VMCP(COM1 포트)(222)가 생성되며 예컨대 인덱스 1 을 가지고 로드 되면 DMCP(COM2 포트)(224)가 생성되는 것이다. Here, it is necessary to distinguish between a serial port driver and a COM port. Serial port driver is a program that controls communication devices (eg UART, USB, DPRAM) and sends and receives data. The COM port is created when the serial port driver is loaded by the device manager 320 which is a device driver management program and a component of Windows CE. In most cases, one serial port driver is loaded to create one COM port. However, one serial port driver may be loaded several times to create multiple COM ports. In this case, when the serial port driver is loaded, index information for identifying each COM port is transmitted. The serial port driver may have different processing routines according to the index information. The MCP driver 220 eventually exists as a serial port driver, for example, when loaded with index 0, a VMCP (COM1 port) 222 is created, for example when loaded with index 1, a DMCP (COM2 port) 224 is created. Is generated.

MCP 드라이버(220)의 인터페이스는 기존의 시리얼 포트 드라이버 인터페이스 에 확장 인터페이스(Extended Interface)가 추가된 형태를 취한다. 시리얼 포트 드라이버 인터페이스는 장치 관리자(320)에 의해 호출되는 상관관계를 가지고 있다. 기존 시리얼 포트 드라이버의 인터페이스만으로는 상태관리와 포트 접근 제어에 한계가 있기에, 본 발명은 확장 인터페이스를 구성한다. 본 발명에서 새로이 추가하는 확장 인터페이스는 후술할 도 4의 상태천이표 설명에서 언급되고 있으며, 구체적으로는 세 개의 I/O 컨트롤(IOCTL_CALL_START(322), IOCTL_CALL_STOP(324), IOCTL_GET_MCP_STATE(326))과 두 개의 이벤트(EV_DATA_START, EV_DATA_STOP)를 포함한다. 이들 확장 인터페이스는 VMCP(222)에 대해서만 적용되고 DMCP(224)에는 확장 적용되지 않는다. The interface of the MCP driver 220 takes a form in which an extended interface is added to an existing serial port driver interface. The serial port driver interface has a correlation called by the device manager 320. Since only the interface of the existing serial port driver has limitations in state management and port access control, the present invention constitutes an extended interface. In the present invention, the newly added extension interface is mentioned in the state transition table description of FIG. 4 to be described below. Events (EV_DATA_START, EV_DATA_STOP). These extension interfaces apply only to VMCP 222 and not to DMCP 224.

응용 프로그램 1과 2(202, 204)는 MCP 드라이버(220)를 통하여 모뎀 포트 하드웨어(218)를 통해 모뎀과 통신한다. 응용 프로그램 1(202)은 전화통화에 관련된 전화 응용프로그램으로서, 전화통화 기능과 전화통화에 관련된 여러 가지 제어 기능(예컨대, 통화 볼륨 조정 기능, 안테나 수신감도 표시기능 등)을 수행한다. 또한, 응용 프로그램 2(204)는 네트워크 기능을 수행하는 것으로, TCP/IP 스택을 통하여 DMCP(224)에 접근하여 PPP 패킷을 송수신 한다. RAS(212)는 전화 API(Telephony API: TAPI)(214)와 유니모뎀(unimodem, 216)을 통해 원격 서버(비도시)에 원격전화접속을 이루어 AT 컨맨드를 송수신할 수도 있고, 포인트-투-포인트 프로토콜(PPP)(210)로 PPP 패킷도 송수신한다. 이와 같은 원격접속과 인증절차를 성공적으로 마치면 그 이후에 응용 프로그램 2(204)에 의해 네트워크 서비스를 수행한다. 여기서, RAS(212), TAPI(214), unimodem(216)은 마이크로소프트사의 운영체제인 Windows CE의 구성요소이다. Applications 1 and 2 (202, 204) communicate with the modem via modem port hardware 218 via MCP driver 220. Application 1 202 is a telephone application program related to a telephone call, and performs a telephone call function and various control functions related to the telephone call (eg, a call volume adjustment function, an antenna reception sensitivity display function, and the like). In addition, the application program 2 204 performs a network function, and accesses the DMCP 224 through the TCP / IP stack to transmit and receive PPP packets. The RAS 212 may transmit and receive AT commands by making a remote telephone connection to a remote server (not shown) through a telephony API (TAPI) 214 and a unimodem 216. The PPP packet 210 also transmits and receives a PPP packet. Upon successful completion of the remote access and authentication process, the application service 2 (204) performs a network service. Here, RAS 212, TAPI (214), unimodem (216) is a component of the Windows CE operating system of Microsoft Corporation.

앞서 언급하였듯이, 일반적으로 물리적인 모뎀 인터페이스 당 하나의 시리얼 포트가 존재한다. 그 시리얼 포트에 대하여 읽기/쓰기 동작을 할 수 있는 권한을 가지는 응용프로그램은 동시에 존재할 수 없다. 즉, 하나의 하드웨어 모뎀 포트에 대하여 하나의 시리얼 포트로 구성된 경우에 있어서, 응용프로그램 1(202)과 응용프로그램 2(204)는 동시에 그 시리얼 포트에 접근할 수가 없다. 예컨대 응용프로그램 2(204)가 그 시리얼 포트를 오픈 하여 사용 중에 있다면 응용프로그램 1(202)은 그 시리얼 포트를 오픈 할 수가 없다. 응용 프로그램 1(202)이 모뎀을 제어하려면 당연히 시리얼 포트를 사용해야 하는데 이미 응용 프로그램 2(204)가 사용 권한을 가지고 있기 때문에 그 서비스가 종료될 될 때까지 기다리는 수밖에 없다. 이와 같은 여러 가지 제약들을 해소하기 위해, 본 발명은 하나의 시리얼 포트 드라이버(211)에서 가상의 시리얼 포트 2개를 지원하는 구조를 제안하는 것이다.As mentioned earlier, there is typically one serial port per physical modem interface. Applications that have permission to read / write to the serial port cannot exist at the same time. That is, in the case where one serial port is configured for one hardware modem port, application 1 202 and application 2 204 cannot access the serial port at the same time. For example, if Application 2 204 is using the serial port and is in use, Application 1 202 cannot open the serial port. Application 1 202 must use the serial port to control the modem, but since Application 2 204 already has permission to use it, it has no choice but to wait for the service to terminate. In order to solve such various limitations, the present invention proposes a structure in which one serial port driver 211 supports two virtual serial ports.

일 실시예에서, 다른 기계와 통신할 수 있게 하는 하나의 Window CE의 API인 윈속(WinSock)(206)이 응용 프로그램 2(204)와 시리얼 포트 드라이버(220) 사이에서 통신을 하는 데 이용된다. 소켓들은 응용 프로그램에 의해 WinSock(206) 콜을 통해 셋업 된다. 응용 프로그램 2(202)는 소켓 콜에 의해 할당된 송신 및 수신 버퍼들과 통신을 한다. WinSock 레이어는 발송 메시지들을 TCP/IP층(208)을 통해 TCP/IP 메시지로 캡슐화 한다. TCP/IP층(208)은 포인트-투-포인트 프로토콜(PPP)(210)을 통해 시리얼 통신용 메시지들을 캡슐화 한다. PPP층(210)은 모뎀 포트 하드웨어 상에서의 통신을 위해 발송 데이터그램을 시리얼 포트 드라이버(220)에 전달한다.In one embodiment, WinSock 206, an API of one Window CE that enables communication with another machine, is used to communicate between Application 2 204 and the serial port driver 220. Sockets are set up via a WinSock 206 call by the application. Application 2 202 communicates with the transmit and receive buffers allocated by the socket call. The WinSock layer encapsulates outgoing messages into TCP / IP messages via the TCP / IP layer 208. TCP / IP layer 208 encapsulates messages for serial communication via point-to-point protocol (PPP) 210. PPP layer 210 delivers outgoing datagrams to serial port driver 220 for communication on the modem port hardware.

시리얼 포트 드라이버를 포함한 대부분의 드라이버 인터페이스는 OPEN, CLOSE, READ, WRITE, IOCONTROL과 같은 함수를 가진다. 응용 프로그램이나 OS(예; RAS)에서 포트를 사용하기 위해서는 먼저 포트를 OPEN하여 해당 포트의 핸들을 가져온다. 이 핸들을 가지고 READ 또는 WRITE 함수를 호출하여 데이터를 송수신을 한다. 포트 사용의 종료 시에는 CLOSE 함수를 호출한다. Most driver interfaces, including serial port drivers, have functions such as OPEN, CLOSE, READ, WRITE, IOCONTROL. To use a port in an application or OS (eg RAS), first open the port to get a handle of the port. With this handle, you can call READ or WRITE to send and receive data. At the end of port use, the CLOSE function is called.

도 3은 예컨대 Windows CE를 OS로 채택한 환경에서 시리얼 포트 드라이버의 인터페이스 함수의 구성 예를 보여준다. 응용 프로그램에서는 시리얼 포트에 접근하기 위해 관련 API를 호출한다. Windows CE의 장치 관리자(320)에 의해 해당 시리얼 포트 드라이버로 I/O 요청을 하게 된다. 이때 장치 관리자(320)는 관련 드라이버 인터페이스 함수를 호출한다. 즉, 응용 프로그램에서 API를 호출하면 커널에 의해 해당 요청을 장치 관리자(320)로 전달한다. 이 때 장치 관리자(320)는 API에 매칭이 되는 관련 드라이버의 인터페이스 함수를 호출하게 된다. 아래 표 1은 Windows CE의 장치 관리자(320)에서 사용하는 시리얼 포트 드라이버 인터페이스의 함수들과 각 함수의 기능을 정리한 것이다.Figure 3 shows an example of the configuration of the interface function of the serial port driver in an environment employing Windows CE as an OS, for example. The application calls the relevant API to access the serial port. The device manager 320 of Windows CE makes an I / O request to the corresponding serial port driver. In this case, the device manager 320 calls a related driver interface function. That is, when an application calls an API, the kernel forwards the request to the device manager 320. At this time, the device manager 320 calls the interface function of the relevant driver that matches the API. Table 1 below summarizes the functions of the serial port driver interface used in the device manager 320 of Windows CE and the functions of each function.

[표 1]TABLE 1

인터페이스 함수Interface function 기 능function COM_Init 함수(302)COM_Init Function (302) 시리얼 장치를 초기화하며, 시리얼 포트 드라이버가 로드 될 때 호출됨. Initializes the serial device and is called when the serial port driver is loaded. COM_Deinit 함수(304)COM_Deinit Function (304) 시리얼 포트의 초기화를 해제하며, 시리얼 포트 드라이버가 언로드 될 때 호출됨.Deinitializes the serial port and is called when the serial port driver is unloaded. COM_Open 함수(306)COM_Open Function (306) 시리얼 포트 드라이버를 초기화하며, 새로운 시리얼 장치의 연결을 오픈할 때 호출됨.Initializes the serial port driver and is called when a new serial device connection is opened. COM_Close 함수(308)COM_Close function (308) 시리얼 장치를 닫으며, 애플리케이션이 닫기핸들(CloseHandle) 함수를 호출 한 후에 호출됨.Closes the serial device, called after the application calls the CloseHandle function. COM_Write 함수(310)COM_Write Function (310) 애플리케이션이 데이터(바이트)를 해당 포트에 전송하여 쓸 수 있게 해줌.Allows an application to send data (bytes) to the appropriate port for writing. COM_Read 함수(312)COM_Read Function (312) 애플리케이션이 시리얼 포트로부터 데이터(문자)를 받을 수 있게 해줌.Allows an application to receive data (characters) from the serial port. COM_IOControl 함수(314)COM_IOControl function (314) 시리얼 포트의 속도나 라인 상태 제어 등과 같은 I/O 제어 기능을 수행함. Performs I / O control functions such as serial port speed and line status control. COM_PowerUp 함수(316)COM_PowerUp Function (316) 플랫폼이 정지모드(suspend mode)로부터 재개되고 있음을 시리얼 포트 드라이버에게 지시해줌.Instructs the serial port driver that the platform is resumed from suspend mode. COM_PowerDown 함수(318)COM_PowerDown Function (318) 플랫폼이 정지모드(suspend mode)로 진입하고 있음을 시리얼 포트 드라이버에게 지시해줌.Instructs the serial port driver that the platform is entering suspend mode.

그런데 특정 프로그램에서 read/write 권한을 가지기 위해 포트를 오픈(OPEN) 하면 다른 프로그램에서는 그 포트를 OPEN 할 수 없게 된다. 즉, read/write 권한을 가지기 위해 먼저 오픈(OPEN) 한 프로그램이 그 포트에 대해 독점적인 사용 권한을 가지게 되는 것이다. However, if you open a port to have read / write permission in a specific program, you cannot open the port in another program. In other words, a program opened first to have read / write privileges will have exclusive permissions to the port.

도 4는 물리적인 모뎀의 접근 권한을 제어하기 위한 MCP 드라이버(220) 내부의 상태 천이도이다. 각 상태에 대한 설명은 아래 표 2에 정리되어 있다.4 is a state transition diagram inside the MCP driver 220 for controlling the access rights of the physical modem. Each state is described in Table 2 below.

[표 2]TABLE 2

상태condition 설명Explanation S0(NULL)S0 (NULL) MCP 드라이버(220)의 최초 상태로서 장치 관리자(320)에 의해 MCP 드라이버(220)가 로드되기 전의 상태Initial state of the MCP driver 220 and before the MCP driver 220 is loaded by the device manager 320. S1(INIT)S1 (INIT) MCP 드라이버(220)가 장치 관리자(320)에 의해 로드 되었으며 초기화가 이루어지고, VMCP(222)와 DMCP(224)는 모두 닫힌 상태The MCP driver 220 has been loaded by the device manager 320 and initialized, and both the VMCP 222 and DMCP 224 are closed. S2(IDLE)S2 (IDLE) DMCP(224)는 닫혀있어 이를 사용할 수 없고, VMCP 포트(222)는 열려있어 전화통화와 관련된 AT command를 송수신할 수 있는 상태 DMCP 224 is closed and cannot be used, and VMCP port 222 is open to send and receive AT commands related to telephone calls. S3(CALL) S3 (CALL) DMCP(224)는 닫혀있어 이를 사용할 수 없고, 열려있는 VMCP 포트(222)를 통해 전화 통화 시작을 알리는 I/O 컨트롤을 MCP 드라이버가 전달받은 상태 The DMCP 224 is closed and cannot be used, and the MCP driver has received I / O control to notify the start of a phone call through the open VMCP port 222. S4(DATA) S4 (DATA) DMCP 포트(224)는 열려있어서 이를 통해 AT command 와 PPP 패킷을 송수신할 수 있고, VMCP 포트(222)는 열림 혹은 닫힘 상태일 수 있고 열림 상태에서도 전화 통화는 할 수 없는 상태DMCP port 224 is open so that it can send and receive AT commands and PPP packets, and VMCP port 222 can be open or closed and can not make phone calls even in the open state.

표 2의 S4 상태의 정의는 데이터 통신과 전화통화 서비스를 모두 지원해주되 특정 시점에서는 이들 중 어느 한 가지 서비스만을 지원해주는 통상적인 모뎀을 가정한 것이다. The definition of the S4 state in Table 2 assumes a typical modem that supports both data communications and telephony services, but at any given time only one of them.

MCP 드라이버(220)의 상태천이는 시리얼 포트 드라이버 인터페이스가 호출될 때 발생한다. 즉, 시리얼 포트 드라이버 인터페이스의 호출에 의해 MCP 드라이버(220)의 내부 상태가 변경되며 각 상태에 따라 VMCP(222)와 DMCP(224)에서는 물리적인 포트(218)에 대한 접근에 제한을 받는다. 아래 표 3은 MCP 드라이버(220)의 상태천이에 대한 설명이다.The state transition of the MCP driver 220 occurs when the serial port driver interface is called. That is, the internal state of the MCP driver 220 is changed by the call of the serial port driver interface, and the VMCP 222 and the DMCP 224 are restricted from accessing the physical port 218 according to each state. Table 3 below is a description of the state transition of the MCP driver 220.

[표 3]TABLE 3

상태천이State transition 이벤트event 설명Explanation S0 -> S1 (401)S0-> S1 (401) COM_InitCOM_Init VMCP(222)와 DMCP(224) 중 어느 한 쪽에서 드라이버가 로드될 때, S1로 상태천이 한다.When the driver is loaded in either the VMCP 222 or the DMCP 224, the state transitions to S1. S1 -> S0(402)S1-> S0 (402) COM_DeinitCOM_Deinit VMCP(222)와 DMCP(224) 모두 MCP 드라이버(220)가 언로드 될 때 S0 상태로 천이한다.Both the VMCP 222 and the DMCP 224 transition to the S0 state when the MCP driver 220 is unloaded. S1 -> S2(403)S1-> S2 (403) COM_OpenCOM_Open S1 상태에서 VMCP(222) 포트에 COM_Open 인터페이스가 호출되면 S2 상태로 천이한다.When the COM_Open interface is called to the VMCP port 222 in the S1 state, the state transitions to the S2 state. S2 -> S1 (404)S2-> S1 (404) COM_CloseCOM_Close S2 상태에서 VMCP(222) 포트에 COM_Close 인터페이스가 호출되면 S1 상태로 천이한다.When the COM_Close interface is called to the VMCP 222 port in the S2 state, the state transitions to the S1 state. S2 -> S3(405)S2-> S3 (405) IOCTL_CALL_STARTIOCTL_CALL_START S2 상태에서 COM_IOControl 인터페이스 함수 호출을 통해 VMCP 드라이버로 IOCTL_CALL_START I/O 컨트롤 코드가 전달되면 S3 상태로 천이한다.In the S2 state, when the IOCTL_CALL_START I / O control code is passed to the VMCP driver through the COM_IOControl interface function call, it transitions to the S3 state. S3 -> S2 (406)S3-> S2 (406) IOCTL_CALL_STOPIOCTL_CALL_STOP S3 상태에서 COM_IOControl 인터페이스 함수 호출을 통해 VMCP 드라이버로 IOCTL_CALL_STOP I/O 컨트롤 코드가 전달되면 S2 상태로 천이한다. In the S3 state, when the IOCTL_CALL_STOP I / O control code is passed to the VMCP driver through the COM_IOControl interface function call, it transitions to the S2 state. S2 -> S4(407)S2-> S4 (407) COM_OpenCOM_Open S2 상태에서 DMCP 드라이버의 COM_Open 인터페이스 함수가 호출되면 S4 상태로 천이한다. 이 때 VMCP 포트(222)를 사용하는 응용프로그램에게 EV_DATA_START 이벤트를 전달한다. When the COM_Open interface function of the DMCP driver is called in S2 state, it transitions to S4 state. At this time, the EV_DATA_START event is transmitted to the application program using the VMCP port 222. S4 -> S2 (408)S4-> S2 (408) COM_CloseCOM_Close VMCP 포트(222)가 오픈 되어 있는 상태에서 DMCP 드라이버의 COM_Close 인터페이스 함수가 호출되면 S2 상태로 천이한다. 이 때 VMCP 포트(222)를 사용하는 응용프로그램에게 EV_DATA_STOP 이벤트를 전달한다.If the COM_Close interface function of the DMCP driver is called while the VMCP port 222 is open, the state transitions to the S2 state. At this time, the EV_DATA_STOP event is transmitted to the application program using the VMCP port 222. S1 -> S4 (409)S1-> S4 (409) COM_OpenCOM_Open S1 상태에서 DMCP 드라이버의 COM_Open 인터페이스가 호출되면 S4 상태로 천이한다.When the DM_ driver's COM_Open interface is called in S1 state, it transitions to S4 state. S3 -> S1 (410)S3-> S1 410 COM_CloseCOM_Close S3 상태에서 VMCP 드라이버의 COM_Close 인터페이스가 호출되면 S1 상태로 천이한다.If the COM_Close interface of the VMCP driver is called in S3 state, the state transitions to S1 state. S4 -> S1 (411)S4-> S1 (411) COM_CloseCOM_Close VMCP 포트(222)가 사용되지 않는 상태에서 DMCP 드라이버의 COM_Close 인터페이스가 호출되면 S1 상태로 천이한다.If the COM_Close interface of the DMCP driver is called while the VMCP port 222 is not used, the state transitions to the S1 state.

본 발명은, 기존의 시리얼 포트 드라이버 인터페이스에, 전화 응용 프로그램이 VMCP(222) 포트로 통화 시작과 종료를 알려서 데이터통신 서비스가 임의로 시작되는 것을 차단하기 위한 제어를 하기 위한 확장 I/O 컨트롤인 IOCTL_CALL_START(322) 컨트롤과 IOCTL_CALL_STOP(324) 컨트롤, 그리고 MCP 드라이버(220)의 상태를 조회할 수 있도록 하기 위한 확장 I/O 컨트롤인 IOCTL_GET_MCP_STATE(326) 컨트롤을 추가하여 MCP 드라이버 인터페이스를 구성한다. 나아가, 본 발명의 MCP 드라이버 인터페이스는, 기존의 시리얼 포트 드라이버 인터페이스에는 없는, DMCP(224) 포트의 사용 유무를 VMCP(222) 포트에 알리기 위한 두 개의 확장 이벤트(Extended Event)인 EV_DATA_START 이벤트와 EV_DATA_STOP 이벤트를 더 포함한다. 결국, 본 발명의 MCP 드라이버 인터페이스는 기존에 기본으로 제공되는 시리얼 포트 드라이버 인터페이스에 본 발명이 추가로 정의한 세 가지의 I/O 컨트롤 코드와 두 가지 이벤트를 더 포함한 구성을 갖는데, 이들 추가 인터페이스에 대한 보다 자세한 설명이 아래 표 4에 정리되어 있다. 참고로, 확장 인터페이스는 VMCP 포트(222)에 추가되는데, 이렇게 한 것은 전화 응용 프로그램에서 사용하기 위한 목적이며 전화 응용 프로그램은 그러한 요구를 받아들일 수 있는데 비해, DMCP 포트(224)에 확장 인터페이스를 적용한다 하더라도 OS는 이를 알지 못하고 기 정의된 이벤트만 받아들이기 때문이다.The present invention provides an IOCTL_CALL_START extension I / O control for controlling a conventional serial port driver interface to block a data communication service from being started by informing a telephone application to start and end a call to a VMCP 222 port. The MCP driver interface is configured by adding the control, the IOCTL_CALL_STOP 324 control, and the IOCTL_GET_MCP_STATE 326 control, which is an extended I / O control for querying the status of the MCP driver 220. Furthermore, the MCP driver interface of the present invention includes two extended events, EV_DATA_START event and EV_DATA_STOP event, to inform the VMCP port of the use of the DMCP port 224, which is not present in the existing serial port driver interface. It further includes. As a result, the MCP driver interface of the present invention has three I / O control codes and two additional events defined by the present invention in addition to the existing serial port driver interface. More details are given in Table 4 below. For reference, an extension interface is added to the VMCP port 222, which is intended for use in telephony applications and the telephony application can accept such requests, whereas the extension interface to DMCP port 224. This is because the OS does not know this and accepts only predefined events.

[표 4]TABLE 4

컨트롤코드/이벤트Control Code / Event 설 명Explanation IOCTL_CALL_START IOCTL_CALL_START -. 전화 응용 프로그램이 발신을 하거나 착신을 하기 전에 MCP 드라이버에게 통화 시작을 먼저 알리기 위해, 전화 응용 프로그램이 MCP 드라이버로 전달하는 I/O 컨트롤 코드로서, 이 코드가 전달된 후 실제로 통화가 시도된다.-. IOCTL_CALL_START를 전달 받은 MCP 드라이버에서는 상태 값을 S3으로 변경하며, 상태 변경 후에는 DMCP 포트 사용을 더 이상 허락하지 않는다.-. An I / O control code that the phone application passes to the MCP driver to notify the MCP driver first of the call before the phone application makes a call or makes an incoming call, after which the call is actually attempted. . The MCP driver that receives IOCTL_CALL_START changes the status value to S3. After changing the status, the DMCP port is no longer allowed. IOCTL_CALL_STOP IOCTL_CALL_STOP 통화가 종료되었음을 MCP 드라이버에게 알리기 위해, 전화 응용 프로그램이 MCP 드라이버로 전달하는 I/O 컨트롤 코드로서, 이 코드의 전달 후부터는 DMCP 포트의 사용이 허락된다.I / O control code that the telephony application passes to the MCP driver to inform the MCP driver that the call has ended, after which the DMCP port is allowed to be used. IOCTL_GET_MCP_STATEIOCTL_GET_MCP_STATE -. MCP 드라이버의 내부 상태를 조회하기 위해 전화 응용 프로그램이 MCP 드라이버로 전달하는 I/O 컨트롤코드로서, 조회가 성공적으로 수행했을 경우 S0 ~ S4 값을 리턴 한다.-. 응용프로그램이 최초 실행될 때, MCP 드라이버의 상태를 알 수 없으므로 IOCTL_GET_MCP_STATE를 사용하여 상태를 확인하며, 응용프로그램은 조회된 상태 값에 따라 통화를 시도할 수 있는 상태인지 판단할 수 있다.-. I / O control code that the phone application passes to the MCP driver to inquire the internal status of the MCP driver, and returns S0 ~ S4 if the inquiry is successful. When the application is run for the first time, the status of the MCP driver is unknown, so IOCTL_GET_MCP_STATE is used to check the status, and the application can determine if it is ready to make a call based on the status value inquired. EV_DATA_STARTEV_DATA_START MCP 드라이버가 데이터 통신이 시작됨을 전화 응용프로그램에게 알리기 위해 전달하는 이벤트로서, 전화 응용 프로그램이 EV_DATA_START 이벤트를 전달 받으면 사용자의 통화 요구를 거절하도록 수행된다.This event is delivered by the MCP driver to notify the telephone application that data communication has started. When the telephone application receives the EV_DATA_START event, it is performed to reject the user's call request. EV_DATA_STOPEV_DATA_STOP MCP 드라이버가 데이터 통신이 종료되었음을 전화 응용프로그램에게 알리기 위해 전달하는 이벤트로서, 전화 응용프로그램이 EV_DATA_STOP 이벤트를 전달 받으면 통화 가능한 상태가 된다.This event is delivered by the MCP driver to notify the telephone application that the data communication has ended. When the telephone application receives the EV_DATA_STOP event, the call becomes available.

다음으로, 도 5는 전화 응용 프로그램에서 전화통화를 위해 발신을 하기 위한 순서도이다. 전화 응용 프로그램은 발신 요청(502)에 의해 먼저 MCP 드라이버(220)의 상태를 확인한다(504). 확인 결과 MCP 드라이버(220)가 현재 S2 상태 즉, VMCP(222)포트만 오픈 되어 있고 AT 컨맨드를 송수신할 수 있는 상태이면 VMCP 포트(222)에 IOCTL_CALL_START라는 I/O 컨트롤을 전달(506)한 후, 해당 AT 컨맨드를 VMCP(222)포트에 송신(508)하여 통화를 시작한다. 504 단계의 확인에서, MCP 드라이버(220)가 S2 상태가 아니라면 경보 메시지를 발생(510)시키고 해당 요청을 종료한다. 전화 통화를 하기 위해서는 VMCP(222)포트가 오픈 되어 있고 이를 통해 모뎀 포트 하드웨어(218)에 대하여 AT 컨맨드를 송수신할 수 있어야 하는데, S2 상태가 바로 이러한 상태인 것이다. Next, FIG. 5 is a flowchart for making a call for a phone call in a phone application. The telephony application first checks the state of the MCP driver 220 by the origination request 502 (504). If the MCP driver 220 is in the current S2 state, that is, only the VMCP 222 port is open and can transmit / receive AT commands, the MCP driver 220 transfers an I / O control called IOCTL_CALL_START to the VMCP port 222 (506). The AT command is then sent to the VMCP port 222 to initiate a call. At step 504, if the MCP driver 220 is not in the S2 state, an alert message is generated 510 and the request is terminated. In order to make a phone call, the VMCP 222 port is open and an AT command can be transmitted / received to the modem port hardware 218, which is an S2 state.

도 6은 전화 응용 프로그램에서 통화 종료에 대한 순서도이다. 전화 응용 프로그램 통화 종료 요청(602)에 의해 MCP 드라이버(220)의 상태를 확인한다(604). 확인 결과 MCP 드라이버(220)가 S3 상태이면 즉, 현재 전화통화를 하고 있고 DMCP 포트(224)는 사용할 수 없는 상태이면, 해당 AT 컨맨드를 VMCP 포트(222)에 송신(606)한 후, IOCTL_CALL_STOP의 I/O 컨트롤을 전달한다(608). 604 단계의 확인에서 MCP 드라이버(220)가 S3 상태가 아니라면 경보 메시지를 발생(610)시키고 해당 요청을 종료한다.6 is a flowchart for ending a call in a phone application. Telephone application program to check the status of MCP driver 220 by the end of the call request 602 (604). If the MCP driver 220 is in the S3 state, that is, the user is currently making a phone call and the DMCP port 224 is unavailable, the AT command is transmitted to the VMCP port 222 (606), and then IOCTL_CALL_STOP. Pass the I / O control of (608). If the MCP driver 220 is not in the S3 state in step 604, an alarm message is generated 610 and the request is terminated.

이상에서 살펴본 바와 같이, 본 발명에 따른 MCP 드라이버(220)는 기존의 시리얼 포트 드라이버 인터페이스를 모두 포함하는 것 외에도, 몇 가지의 I/O 컨트롤(IOCTL_CALL_START, IOCTL_CALL_STOP, IOCTL_GET_MCP_STATE)과 이벤트(EV_DATA_START, EV_DATA_STOP)를 추가적으로 더 포함함으로써, 기존의 시리얼 포트 드라이버 인터페이스를 확장한 것이다. 이러한 추가된 인터페이스는 모두 VMCP 포트(222)를 사용하는 전화 응용 프로그램과 관련이 있다. 전화 응용 프로그램은 OS의 구성요소가 아니며, 개발자가 구현해야 하는 몫이기 때문이다. 이에 반해 DMCP 포트(224)에 대해서는 추가 확장 인터페이스가 없고, 기존 시리얼 포트 드라이버 인터페이스가 그대로 사용된다.As described above, the MCP driver 220 according to the present invention includes not only all the existing serial port driver interfaces, but also several I / O controls (IOCTL_CALL_START, IOCTL_CALL_STOP, IOCTL_GET_MCP_STATE) and events (EV_DATA_START, EV_DATA_STOP). In addition, it extends the existing serial port driver interface. All of these added interfaces relate to telephony applications that use VMCP port 222. The phone application is not a component of the operating system, it is up to the developer to implement it. In contrast, there is no additional expansion interface for the DMCP port 224, and the existing serial port driver interface is used as it is.

데이터통신은 OS의 다이얼업 네트워킹의 순서를 그대로 따르므로, 그것의 구체적인 내용은 본원 발명의 범위를 벗어나므로 여기서는 설명을 생략하기로 한다. DMCP 포트(224)는 기존의 시리얼 포트 드라이버 인터페이스와 동일한 반면, VMCP 포트(222)는 추가 확장 인터페이스를 가진다는 점이 본원 발명의 중요한 특징이 있다. 이러한 구조를 제시하는 결정적인 이유는 데이터통신을 위해서는 대부분의 경우에 있어서 OS의 다이얼업 네트워킹 기능을 사용하며 OS의 COM 포트 사용을 마음대로 제어하지 못하기 때문이다. OS를 바꾸지 못한다면 방법은 시리얼 포트 드라이버와 전화 응용 프로그램을 바꾸는 것뿐이다. 즉, DMCP 포트(224)는 OS가 사용하기 때문에 어쩔 수 없이 기존 시리얼 포트 드라이버 인터페이스와 동일할 수밖에 없으며, VMCP 포트(222)는 전화 응용 프로그램이 사용하는 포트이기 때문에 추가 확장 인터페이스를 가지더라도 기존 시리얼 포트 드라이버 인터페이스를 그대로 포함하기 때문에 호환성에는 전혀 문제가 없다.Since the data communication follows the order of dial-up networking of the OS as it is, details thereof are outside the scope of the present invention, and thus description thereof will be omitted. The DMCP port 224 is identical to the existing serial port driver interface, while the VMCP port 222 has an additional extension interface, which is an important feature of the present invention. The decisive reason for presenting such a structure is that in most cases, data communication uses the dial-up networking function of the OS and the OS does not control the use of COM ports. If you can't change the OS, the only thing you can do is change the serial port driver and phone application. That is, the DMCP port 224 is inevitably identical to the existing serial port driver interface because the OS uses it, and since the VMCP port 222 is a port used by a telephone application, even if the terminal has an additional extension interface, Since it includes the port driver interface, there is no problem with compatibility.

본 발명은 여러 가지 형태로 응용될 수 있다. 무선통신 모듈(또는 모뎀)이 내장되어 있는 이동통신단말기에 본 발명을 적용하는 경우, MCP 드라이버(220)는 그 무선통신 모듈과 인터페이스 하는 시리얼 포트 드라이버로 동작하도록 구성할 수 있다. 본 발명은 또한 PCMCIA 또는 CF 인터페이스를 지원하는 PDA에 적용될 수 있다. 즉, PCMCIA나 CF 확장 슬롯을 통해 무선모뎀이 장착된 PDA 장치에서 무선모뎀과 인터페이스 하는 시리얼 포트 드라이버로 동작하도록 구성할 수 있다. 나아가, UART나 USB 인터페이스를 통해 무선모뎀이 연결된 컴퓨터에 적용되어, 무선모뎀과 인터페이스 하는 시리얼 포트 드라이버로 동작하도록 할 수도 있다.The present invention can be applied in various forms. When the present invention is applied to a mobile communication terminal in which a wireless communication module (or modem) is embedded, the MCP driver 220 may be configured to operate as a serial port driver that interfaces with the wireless communication module. The present invention can also be applied to a PDA supporting PCMCIA or CF interface. That is, it can be configured to operate as a serial port driver that interfaces with a wireless modem in a PDA device equipped with a wireless modem through a PCMCIA or CF expansion slot. Furthermore, it can be applied to a computer connected to a wireless modem through a UART or USB interface, so that it can operate as a serial port driver that interfaces with the wireless modem.

이상에서 설명한 것은 본 발명의 바람직한 실시예에 불과하고, 해당 기술분야의 숙련된 당업자는 하기의 특허청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있다. 예컨대, 위에서는 Windows CE의 OS환경을 예로 하여 본 발명을 설명하였지만, 본 발명의 기술사상은 다른 OS 환경에서도 적용될 수 있음은 물론이다. 또한, 시리얼 포트 드라이버의 내부 상태를 다섯 가지로 정의하여 관리하는 경우를 예로 하였지만, 당업자라면 본 발명의 기술사상에 기초하여, 아이들 상태(S2), 전화통화 상태(S3), 그리고 데이터통신 상태(S4)의 정의와 상호간의 천이 관계와 등가적인 변형을 하거나 그것을 내포하면서 다른 상태를 더 정의하여 부가 기능을 더 제공하는 등의 변경을 용이하게 할 수 도 있을 것이다. 나아가, MCP 드라이버(220)의 사용 주체가 응용 프로그램인 경우를 가정하여 설명하였지만, 응용프로그램 뿐만 아니라 여타 드라이버나 모듈도 MCP 드라이버(220)를 사용할 수 있다. 나아가, VMCP 포트(222)와 DMCP 포트(224)의 사용주체가 전화 응용프로그램과 OS인 경우를 예로 하여 설명하였지만, 이는 예시적인 것이며 이들 두 포트의 사용주체는 널리 다양한 여러 가지 프로그램(예: 응용프로그램, OS, 드라이버 등)이 될 수 있다. What has been described above is only a preferred embodiment of the present invention, and those skilled in the art will be variously modified and changed the present invention without departing from the spirit and scope of the present invention described in the claims below. You can. For example, although the present invention has been described using the OS environment of Windows CE as an example, the technical idea of the present invention can be applied to other OS environments. In addition, the case in which the internal state of the serial port driver is defined and managed in five ways is taken as an example. However, those skilled in the art will understand that the idle state S2, the telephone call state S3, and the data communication state are based on the technical concept of the present invention. It may be easy to change the definition of S4), the transitional relationship and the equivalent transformation between each other, or to further define other states while providing the additional state. Furthermore, although the description has been made on the assumption that the principal of the MCP driver 220 is an application program, the MCP driver 220 may be used not only for the application program but for other drivers or modules. Furthermore, although the case where the users of the VMCP port 222 and the DMCP port 224 are the telephone application and the operating system has been described as an example, this is merely an example, and the users of these two ports are widely used in various programs (eg, applications). Program, OS, driver, etc.).

따라서 특허청구범위의 등가적인 의미나 범위에 속하는 모든 변화들은 전부 본 발명의 권리범위 안에 속함을 밝혀둔다. Accordingly, all changes that come within the meaning or range of equivalency of the claims are to be embraced within their scope.

본 발명의 시리얼 포트 드라이버의 구조는 하나의 물리적인 모뎀에 대해 두 개의 가상의 시리얼 포트를 지원하고, 이 두 개의 가상의 시리얼 포트의 사용 권한을 외부 이벤트에 의해 변경되는 내부의 상태에 따라 적절히 제어함으로써, 전화 응용 프로그램이 요청하는 서비스와 데이터통신 관련 응용 프로그램이 요청하는 서비스가 상호 독립적으로 기능할 수 있도록 관리하는 것을 가능하게 해준다.  The structure of the serial port driver of the present invention supports two virtual serial ports for one physical modem, and appropriately controls the usage rights of the two virtual serial ports according to the internal state changed by an external event. As a result, it is possible to manage the service requested by the telephone application program and the service requested by the data communication related application to function independently of each other.

도 1은 Windows CE 운영체제 환경에서의 일반적인 다이얼-업 네트워킹 구조에서 시리얼 포트를 사용하는 기능 요소들의 블록 다이어그램을 나타낸다.Figure 1 shows a block diagram of the functional elements using serial ports in a typical dial-up networking architecture in a Windows CE operating system environment.

도 2는 Windows CE 운영체제 환경에서의 일반적인 다이얼-업 네트워킹 구조에서 기존의 시리얼 포트를 대신하여 채용된 본 발명에 따른 MCP(Modem COM Port) 드라이버를 사용하는 기능 요소들의 블록 다이어그램을 나타낸다. Figure 2 shows a block diagram of the functional elements using a Modem COM Port (MCP) driver according to the invention employed in place of an existing serial port in a typical dial-up networking architecture in a Windows CE operating system environment.

도 3은 장치 관리자(device manager)에서 사용되는 시리얼 포트 드라이버 인터페이스를 나타낸다.3 illustrates a serial port driver interface used in a device manager.

도 4는 물리적인 모뎀의 접근 권한을 제어하기 위한 MCP 드라이버(Modem COM Port) 내부의 상태 천이도이다. 4 is a state transition diagram inside an MCP driver (Modem COM Port) for controlling access rights of a physical modem.

도 5는 전화통화 응용 프로그램에서의 전화 발신 순서도이다.5 is a flowchart of a call origination in a phone call application.

도 6은 전화통화 응용 프로그램에서의 통화 종료 순서도이다.6 is a flowchart illustrating a call termination in a telephone call application.

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

202: 전화통화 애플리케이션 1 204: 데이터 통신 애플리케이션 2202: Telephony application 1 204: Data communication application 2

220: 시리얼 포트 드라이버 222: 가상 시리얼 포트 1(VMCP)220: serial port driver 222: virtual serial port 1 (VMCP)

224: 가상 시리얼 포트 2(DMCP) 218: 모뎀 포트 하드웨어224: Virtual Serial Port 2 (DMCP) 218: Modem port hardware

Claims (19)

전화 기능과 제어 기능을 수행하는 에이티 컨맨드(AT command)의 송수신 용도로 사용되는 제1 가상 시리얼 포트와, 데이터통신 서비스를 위해 에이티 컨맨드(AT command)와 피피피(PPP) 패킷을 송수신하는 용도로 사용되는 제2 가상 시리얼 포트를 하나의 모뎀 포트 하드웨어에 대해 지원하며, A first virtual serial port used for transmitting and receiving an AT command that performs a telephone function and a control function, and an AT command and a PPP packet for a data communication service. Supports one modem port hardware for the second virtual serial port used for sending and receiving 제1 프로그램의 사용 요청에 응하여 상기 제1 가상 시리얼 포트가 열려서(open) 전화통화 서비스가 제공되는 동안에는, 상기 제2 가상 시리얼 포트가 닫힘 상태를 유지하도록 하여 데이터통신 서비스가 제공되지 않도록 하고,While the first virtual serial port is opened in response to a request for using the first program, while the telephone call service is provided, the second virtual serial port is kept closed so that the data communication service is not provided. 제2 프로그램의 사용 요청에 응하여 상기 제2 가상 시리얼 포트가 오픈되어 데이터통신 서비스가 제공되는 동안에는, 그 사실을 상기 제1 가상 시리얼 포트 드라이버가 상기 제1 프로그램에 전달하여 전화통화 서비스가 제공되지 않도록 하는 것을 특징으로 하는 시리얼 포트 드라이버.While the second virtual serial port is opened in response to a request for using a second program to provide a data communication service, the first virtual serial port driver transmits the fact to the first program so that a telephone call service is not provided. Serial port driver, characterized in that. 제 1항에 있어서, 상기 시리얼 포트 드라이버는, 그 자신의 내부 상태로서 적어도, 상기 제2 가상 시리얼 포트는 닫혀(close) 있어 이를 사용할 수 없고, 상기 제1 가상 시리얼 포트는 열려(open) 있어 전화 통화 관련 에이티 컨맨드(AT command)를 송수신할 수 있는 아이들 상태(S2); 상기 제2 가상 시리얼 포트는 닫혀 있어 이를 사용할 수 없고, 열려 있는 상기 제1 가상 시리얼 포트를 통해 전화 통화 시작을 알리는 I/O 컨트롤을 MCP 드라이버가 전달받은 상태인 통화 상태(S3); 및 상기 제2 가상 시리얼 포트가 열려있어 이를 통해 에이티 컨맨드(AT command)와 피피피(PPP) 패킷을 송수신할 수 있으되, 상기 제1 가상 시리얼 포트는 열림 혹은 닫힘 상태일 수 있고 열림 상태에서도 이를 통한 전화 통화는 할 수 없는 데이터통신 상태(S4)를 포함 하며,2. The serial port driver of claim 1, wherein the serial port driver is in its own internal state and at least the second virtual serial port is closed and unusable, and the first virtual serial port is open. An idle state S2 capable of transmitting and receiving a call related AT command; A call state (S3) in which the MCP driver has received an I / O control for initiating a telephone call through the open first virtual serial port because the second virtual serial port is closed and cannot be used; And the second virtual serial port is open so that an AT command and a PPP packet may be transmitted and received, but the first virtual serial port may be in an open or closed state and may be open. The phone call through this includes a data communication state (S4), 상기 시리얼 포트 드라이버의 내부 상태는 상기 시리얼 포트 드라이버의 인터페이스를 호출하는 외부 이벤트에 의해 천이되는 것을 특징으로 하는 시리얼 포트 드라이버.And an internal state of the serial port driver is changed by an external event calling an interface of the serial port driver. 제 2항에 있어서, 상기 제1 프로그램은 전화통화 기능과 전화통화에 관련된 제어 기능을 수행하는 전화통화에 관련된 전화 응용프로그램이고, 상기 제2 프로그램은 원격 서버에 원격전화접속을 이루어 에이티 컨맨드와 포인트-투-포인트 프로토콜(PPP) 패킷을 송수신하는 네트워크 기능 수행에 관련된 프로그램인 것을 특징으로 하는 시리얼 포트 드라이버.3. The telephone program according to claim 2, wherein the first program is a telephone application related to a telephone call for performing a telephone call function and a control function related to the telephone call, and the second program establishes a remote telephone connection to a remote server. And a program related to performing a network function for transmitting and receiving a Point-to-Point Protocol (PPP) packet. 제 2항 또는 3항에 있어서, 상기 내부상태가 상기 아이들 상태(S2)에서, 시리얼 포트의 I/O 제어를 수행하는 인터페이스 함수(COM_IOControl)의 호출을 통해, 상기 제1 프로그램이 발신 또는 착신을 하기 전에 통화 시작을 알리기 위한 제1 I/O 컨트롤 코드(IOCTL_CALL_START)를 상기 제1 가상 시리얼 포트의 드라이버로 전달하면, 상기 통화 상태(S3)로 천이되는 것을 특징으로 하는 시리얼 포트 드라이버.According to claim 2 or 3, wherein the internal state is the idle state (S2), the first program through the call to the interface function (COM_IOControl) that performs the I / O control of the serial port, the first program is the originating or incoming Before the first I / O control code (IOCTL_CALL_START) to inform the start of the call to the driver of the first virtual serial port, the serial port driver, characterized in that the transition to the call state (S3). 제 2항 또는 3항에 있어서, 상기 내부상태가 상기 통화 상태(S3)에서, 시리얼 포트의 I/O 제어를 수행하는 인터페이스 함수(COM_IOControl)의 호출을 통해, 상기 제1 프로그램이 전화통화가 종료되었음을 알리기 위한 제2 I/O 컨트롤 코드(IOCTL_CALL_STOP)를 상기 제1 가상 시리얼 포트 드라이버로 전달하면, 상기 아이들 상태(S2)로 천이되는 것을 특징으로 하는 시리얼 포트 드라이버.4. The first program of claim 2 or 3, wherein the internal program terminates a telephone call through a call of an interface function COM_IOControl that performs I / O control of a serial port in the call state S3. And transferring a second I / O control code (IOCTL_CALL_STOP) to the first virtual serial port driver to inform the user that it is in progress, to transition to the idle state (S2). 제 2항 또는 3항에 있어서, 상기 내부상태가 상기 아이들 상태(S2)에서, 상기 제2 가상 시리얼 포트를 오픈하는 인터페이스 함수(COM_Open)가 호출되면, 상기 데이터통신 상태(S4)로 천이됨과 아울러 데이터 통신이 시작됨을 알리기 위한 제1 이벤트(EV_DATA_START)를 상기 제1 프로그램에게 전달하여 이후부터 사용자의 통화 요구를 거절하도록 하는 것을 특징으로 하는 시리얼 포트 드라이버.The method according to claim 2 or 3, wherein the internal state transitions to the data communication state S4 when the interface function COM_Open for opening the second virtual serial port is called in the idle state S2. And transmitting a first event (EV_DATA_START) for notifying that data communication is started to the first program so as to reject a call request from a user thereafter. 제 2항, 3항 및 6항 중 어느 하나에 있어서, 상기 제1 및 제2 가상 시리얼 포트가 모두 오픈되어 있는 상기 데이터통신 상태(S4)에서 상기 제2 가상 시리얼 포트를 닫기 위한 인터페이스 함수(COM_Close)가 호출되면, 상기 내부 상태는 상기 아이들 상태(S2)로 천이되고, 데이터 통신이 종료되었음을 알리기 위한 제2 이벤트(EV_DATA_STOP)를 상기 제1 프로그램에게 전달하여 전화통화 요청이 수용될 수 있도록 하는 것을 특징으로 하는 시리얼 포트 드라이버.The interface function (COM_Close) according to any one of claims 2, 3 and 6, for closing the second virtual serial port in the data communication state S4 in which both the first and second virtual serial ports are open. Is called, the internal state transitions to the idle state S2, and a second event (EV_DATA_STOP) for notifying that the data communication is terminated is transmitted to the first program so that the telephone call request can be accepted. Features a serial port driver. 제 2항 또는 3항에 있어서, The method of claim 2 or 3, 상기 내부상태가 상기 아이들 상태(S2)에서, 시리얼 포트의 I/O 제어를 수행하는 인터페이스 함수(COM_IOControl)의 호출을 통해, 상기 제1 프로그램이 발신 또는 착신을 하기 전에 통화 시작을 알리기 위한 제1 I/O 컨트롤 코드(IOCTL_CALL_START)를 상기 제1 가상 시리얼 포트의 드라이버로 전달하면, 상기 통화 상태(S3)로 천이되고, In the idle state (S2), through the call of the interface function (COM_IOControl) to perform the I / O control of the serial port, a first for informing the start of the call before the first program originating or incoming When the I / O control code (IOCTL_CALL_START) is transferred to the driver of the first virtual serial port, the call state is transferred to the call state S3. 상기 내부상태가 상기 통화 상태(S3)에서, 시리얼 포트의 I/O 제어를 수행하는 인터페이스 함수(COM_IOControl)의 호출을 통해, 상기 제1 프로그램이 전화통화가 종료되었음을 알리기 위한 제2 I/O 컨트롤 코드(IOCTL_CALL_STOP)를 상기 제1 가상 시리얼 포트 드라이버로 전달하면, 상기 아이들 상태(S2)로 천이되며,A second I / O control for notifying that the first program terminates a telephone call through a call of an interface function COM_IOControl that performs I / O control of a serial port in the internal state of the call state S3; When the code IOCTL_CALL_STOP is transferred to the first virtual serial port driver, the code transitions to the idle state S2. 상기 내부상태가 상기 아이들 상태(S2)에서, 상기 제2 가상 시리얼 포트를 오픈하는 인터페이스 함수(COM_Open)가 호출되면, 상기 데이터통신 상태(S4)로 천이됨과 아울러 데이터 통신이 시작됨을 알리기 위한 제1 이벤트(EV_DATA_START)를 상기 제1 프로그램에게 전달하여 이후부터 사용자의 통화 요구를 거절하도록 하고, When the internal state is the idle state S2 and an interface function COM_Open for opening the second virtual serial port is called, the first state transitions to the data communication state S4 and indicates that data communication starts. Deliver event EV_DATA_START to the first program to reject the user's call request thereafter, 상기 제1 및 제2 가상 시리얼 포트가 모두 오픈되어 있는 상기 데이터통신 상태(S4)에서 상기 제2 가상 시리얼 포트를 닫기 위한 인터페이스 함수(COM_Close)가 호출되면, 상기 내부 상태는 상기 아이들 상태(S2)로 천이되고, 데이터 통신이 종료되었음을 알리기 위한 제2 이벤트(EV_DATA_STOP)를 상기 제1 프로그램에게 전달하여 전화통화 요청이 수용될 수 있도록 하는 것을 특징으로 하는 시리얼 포트 드라이버.When the interface function COM_Close for closing the second virtual serial port is called in the data communication state S4 in which both the first and second virtual serial ports are open, the internal state is the idle state S2. And a second event (EV_DATA_STOP) for informing that the data communication is terminated to the first program so as to accept the telephone call request. 제 2항, 3항 및 8항 중 어느 하나에 있어서, 상기 시리얼 포트 드라이버는 그 자신의 내부 상태로서, 상기 시리얼 포트 드라이버가 장치 관리자에 의해 로드 되어 있고 초기화가 이루어진 초기화 상태(S1)를 더 포함하는 것을 특징으로 하는 시리얼 포트 드라이버.9. The serial port driver according to any one of claims 2, 3 and 8, wherein the serial port driver has its own internal state, and further includes an initialization state S1 in which the serial port driver is loaded by a device manager and initialized. Serial port driver, characterized in that. 제 9항에 있어서, 상기 내부 상태가 상기 초기화 상태(S1)에서, 상기 제1 가상 시리얼 포트를 오픈 하는 인터페이스 함수(COM_Open)가 호출되면 상기 아이들 상태(S2)로 천이되고 상기 제2 가상 시리얼 포트를 오픈 하는 인터페이스 함수(COM_Open)가 호출되면, 상기 데이터통신 상태(S4)로 천이되는 것을 특징으로 하는 시리얼 포트 드라이버.10. The method of claim 9, wherein the internal state transitions to the idle state (S2) and the second virtual serial port when the interface function (COM_Open) for opening the first virtual serial port is called in the initialization state (S1) When the interface function (COM_Open) to open the call, the serial port driver, characterized in that the transition to the data communication state (S4). 제 9항에 있어서, 상기 아이들 상태(S2) 또는 상기 통화 상태(S3)에서 상기 제1 가상 시리얼포트를 닫기 위한 인터페이스 함수(COM_Close)가 호출되거나 또는 상기 제1 가상 시리얼 포트가 닫혀 있는 상기 데이터통신 상태(S4)에서 상기 제2 가상 시리얼포트를 닫기 위한 인터페이스 함수(COM_Close)가 호출되면, 상기 내부 상태는 상기 초기화 상태(S1)로 천이되는 것을 특징으로 하는 시리얼 포트 드라이버.The data communication method of claim 9, wherein an interface function (COM_Close) for closing the first virtual serial port is called or the first virtual serial port is closed in the idle state (S2) or the call state (S3). And when the interface function (COM_Close) for closing the second virtual serial port is called in the state (S4), the internal state transitions to the initialization state (S1). 제 2항 또는 3항에 있어서, The method of claim 2 or 3, 상기 시리얼 포트 드라이버는 그 자신의 내부 상태로서, 상기 시리얼 포트 드라이버가 장치 관리자에 의해 로드 되어 있고 초기화가 이루어진 초기화 상태(S1)를 더 포함하며,The serial port driver has its own internal state, and further includes an initialization state S1 in which the serial port driver is loaded by the device manager and initialized. 상기 내부상태가 상기 아이들 상태(S2)에서, 시리얼 포트의 I/O 제어를 수행하는 인터페이스 함수(COM_IOControl)의 호출을 통해, 상기 제1 프로그램이 발신 또는 착신을 하기 전에 통화 시작을 알리기 위한 제1 I/O 컨트롤 코드(IOCTL_CALL_START)를 상기 제1 가상 시리얼 포트의 드라이버로 전달하면, 상기 통화 상태(S3)로 천이되고, In the idle state (S2), through the call of the interface function (COM_IOControl) to perform the I / O control of the serial port, a first for informing the start of the call before the first program originating or incoming When the I / O control code (IOCTL_CALL_START) is transferred to the driver of the first virtual serial port, the call state is transferred to the call state S3. 상기 내부상태가 상기 통화 상태(S3)에서, 시리얼 포트의 I/O 제어를 수행하는 인터페이스 함수(COM_IOControl)의 호출을 통해, 상기 제1 프로그램이 전화통화가 종료되었음을 알리기 위한 제2 I/O 컨트롤 코드(IOCTL_CALL_STOP)를 상기 제1 가상 시리얼 포트 드라이버로 전달하면, 상기 아이들 상태(S2)로 천이되며,A second I / O control for notifying that the first program terminates a telephone call through a call of an interface function COM_IOControl that performs I / O control of a serial port in the internal state of the call state S3; When the code IOCTL_CALL_STOP is transferred to the first virtual serial port driver, the code transitions to the idle state S2. 상기 내부상태가 상기 아이들 상태(S2)에서, 상기 제2 가상 시리얼 포트를 오픈하는 인터페이스 함수(COM_Open)가 호출되면, 상기 데이터통신 상태(S4)로 천이됨과 아울러 데이터 통신이 시작됨을 알리기 위한 제1 이벤트(EV_DATA_START)를 상기 제1 프로그램에게 전달하여 이후부터 사용자의 통화 요구를 거절하도록 하고, When the internal state is the idle state S2 and an interface function COM_Open for opening the second virtual serial port is called, the first state transitions to the data communication state S4 and indicates that data communication starts. Deliver event EV_DATA_START to the first program to reject the user's call request thereafter, 상기 제1 및 제2 가상 시리얼 포트가 모두 오픈되어 있는 상기 데이터통신 상태(S4)에서 상기 제2 가상 시리얼 포트를 닫기 위한 인터페이스 함수(COM_Close)가 호출되면, 상기 내부 상태는 상기 아이들 상태(S2)로 천이되고, 데이터 통신이 종료되었음을 알리기 위한 제2 이벤트(EV_DATA_STOP)를 상기 제1 프로그램에게 전달하여 전화통화 요청이 수용될 수 있도록 하고,When the interface function COM_Close for closing the second virtual serial port is called in the data communication state S4 in which both the first and second virtual serial ports are open, the internal state is the idle state S2. Transitions to a second event (EV_DATA_STOP) to inform the end of the data communication to the first program to accept the telephone call request, 상기 내부 상태가 상기 초기화 상태(S1)에서, 상기 제1 가상 시리얼 포트를 오픈 하는 인터페이스 함수(COM_Open)가 호출되면 상기 아이들 상태(S2)로 천이되고 상기 제2 가상 시리얼 포트를 오픈 하는 인터페이스 함수(COM_Open)가 호출되면, 상기 데이터통신 상태(S4)로 천이되고,When the internal state is the initialization state (S1), when the interface function (COM_Open) for opening the first virtual serial port is called, the transition to the idle state (S2) and the interface function for opening the second virtual serial port ( COM_Open) is called, transition to the data communication state (S4), 상기 아이들 상태(S2) 또는 상기 통화 상태(S3)에서 상기 제1 가상 시리얼포트를 닫기 위한 인터페이스 함수(COM_Close)가 호출되거나 또는 상기 제1 가상 시리얼 포트가 닫혀 있는 상기 데이터통신 상태(S4)에서 상기 제2 가상 시리얼포트를 닫기 위한 인터페이스 함수(COM_Close)가 호출되면, 상기 내부 상태는 상기 초기화 상태(S1)로 천이되는 것을 특징으로 하는 시리얼 포트 드라이버.In the idle state S2 or the call state S3, the interface function COM_Close is called to close the first virtual serial port or the data communication state S4 in which the first virtual serial port is closed. When the interface function (COM_Close) for closing the second virtual serial port is called, the internal state transitions to the initialization state (S1). 전화 기능과 제어 기능을 수행하는 에이티 컨맨드(AT command)의 송수신 용도로 사용되는 제1 가상 시리얼 포트와, 데이터통신 서비스를 위해 에이티 컨맨드(AT command)와 피피피(PPP) 패킷을 송수신하는 용도로 사용되는 제2 가상 시리얼 포트를 하나의 모뎀 포트 하드웨어에 대해 지원하는 시리얼 포트 드라이버의 시리얼 포트 관리 방법에 있어서,A first virtual serial port used for transmitting and receiving an AT command that performs a telephone function and a control function, and an AT command and a PPP packet for a data communication service. In the serial port management method of the serial port driver that supports a second virtual serial port used for transmitting and receiving to one modem port hardware, 상기 제2 가상 시리얼 포트는 닫혀(close) 있어 이를 사용할 수 없고 상기 제1 가상 시리얼 포트는 열려(open) 있어 전화 통화 관련 에이티 컨맨드(AT command)를 송수신할 수 있는 아이들 상태(S2)에서, 시리얼 포트의 I/O 제어를 수행하는 인터페이스 함수(COM_IOControl)의 호출을 통해 상기 제1 프로그램이 발신 또는 착신을 하기 전에 통화 시작을 알리기 위한 제1 I/O 컨트롤 코드(IOCTL_CALL_START)를 상기 제1 가상 시리얼 포트의 드라이버로 전달하면, 상기 시리얼 포트 드라이버의 내부 상태가 상기 제2 가상 시리얼 포트는 닫혀 있어 이를 사용할 수 없고 열려있는 상기 제1 가상 시리얼 포트를 통해 전화통화 시작을 알리는 I/O 컨트롤을 MCP 드라이버가 전달받은 상태인 통화 상태(S3)로 천이되는 단계; 및The second virtual serial port is closed and cannot be used, and the first virtual serial port is open, in an idle state S2 capable of transmitting and receiving an AT command related to a telephone call. The first I / O control code (IOCTL_CALL_START) for notifying the start of a call before the first program makes a call or an incoming call through a call of an interface function (COM_IOControl) that performs I / O control of a serial port. When delivered to the driver of the virtual serial port, the internal state of the serial port driver is used to provide I / O control to notify the start of a telephone call through the first virtual serial port which is not available because the second virtual serial port is closed. Transitioning to the call state S3 in which the MCP driver has been transferred; And 상기 내부상태가 상기 아이들 상태(S2)에서, 상기 제2 가상 시리얼 포트를 오픈하는 인터페이스 함수(COM_Open)가 호출되면, 상기 제2 가상 시리얼 포트는 열려 있어 이를 통해 에이티 컨맨드(AT command)와 PPP 패킷을 송수신할 수 있고 상기 제1 가상 시리얼 포트는 열림 혹은 닫힘 상태일 수 있고 열림 상태에서도 전화통화는 불가능한 상태인 데이터통신 상태(S4)로 천이됨과 아울러 데이터 통신이 시작됨을 알리기 위한 제1 이벤트(EV_DATA_START)를 상기 제1 프로그램에게 전달하여 이후부터 사용자의 통화 요구를 거절하도록 하는 단계를 구비하는 것을 특징으로 하는 시리얼 포트 관리 방법.When the internal state is the idle state S2, when the interface function COM_Open for opening the second virtual serial port is called, the second virtual serial port is open, thereby enabling an AT command. A first event for transmitting and receiving a PPP packet and the first virtual serial port transitions to a data communication state (S4), which may be in an open or closed state and a telephone call is impossible even in an open state, and also indicates that data communication is started. And transmitting (EV_DATA_START) to the first program so as to reject a call request of a user thereafter. 제 13항에 있어서, The method of claim 13, 상기 내부상태가 상기 통화 상태(S3)에서, 시리얼 포트의 I/O 제어를 수행하는 인터페이스 함수(COM_IOControl)의 호출을 통해, 상기 제1 프로그램이 전화통화가 종료되었음을 알리기 위한 제2 I/O 컨트롤 코드(IOCTL_CALL_STOP)를 상기 제1 가상 시리얼 포트 드라이버로 전달하면, 상기 아이들 상태(S2)로 천이되는 단계를 더 구비하는 것을 특징으로 하는 시리얼 포트 관리 방법.A second I / O control for notifying that the first program terminates a telephone call through a call of an interface function COM_IOControl that performs I / O control of a serial port in the internal state of the call state S3; And transmitting a code (IOCTL_CALL_STOP) to the first virtual serial port driver, transitioning to the idle state (S2). 제 13항에 있어서, The method of claim 13, 상기 제1 및 제2 가상 시리얼 포트가 모두 오픈되어 있는 상기 데이터통신 상태(S4)에서 상기 제2 가상 시리얼 포트를 닫기 위한 인터페이스 함수(COM_Close)가 호출되면, 상기 내부 상태는 상기 아이들 상태(S2)로 천이되고, 데이터 통신이 종료되었음을 알리기 위한 제2 이벤트(EV_DATA_STOP)를 상기 제1 프로그램에게 전달하여 전화통화 요청이 수용될 수 있도록 하는 단계를 더 구비하는 것을 특징으로 하는 시리얼 포트 관리 방법.When the interface function COM_Close for closing the second virtual serial port is called in the data communication state S4 in which both the first and second virtual serial ports are open, the internal state is the idle state S2. And transitioning to a second event (EV_DATA_STOP) for notifying that the data communication has ended so that the call request can be accepted. 제 13항에 있어서, The method of claim 13, 상기 내부상태가 상기 통화 상태(S3)에서, 시리얼 포트의 I/O 제어를 수행하는 인터페이스 함수(COM_IOControl)의 호출을 통해, 상기 제1 프로그램이 전화통화가 종료되었음을 알리기 위한 제2 I/O 컨트롤 코드(IOCTL_CALL_STOP)를 상기 제1 가상 시리얼 포트 드라이버로 전달하면, 상기 아이들 상태(S2)로 천이되는 단계; 및 A second I / O control for notifying that the first program terminates a telephone call through a call of an interface function COM_IOControl that performs I / O control of a serial port in the internal state of the call state S3; Transitioning to the idle state S2 when a code IOCTL_CALL_STOP is passed to the first virtual serial port driver; And 상기 제1 및 제2 가상 시리얼 포트가 모두 오픈되어 있는 상기 데이터통신 상태(S4)에서 상기 제2 가상 시리얼 포트를 닫기 위한 인터페이스 함수(COM_Close)가 호출되면, 상기 내부 상태는 상기 아이들 상태(S2)로 천이되고, 데이터 통신이 종료되었음을 알리기 위한 제2 이벤트(EV_DATA_STOP)를 상기 제1 프로그램에게 전달하여 전화통화 요청이 수용될 수 있도록 하는 단계를 더 구비하는 것을 특징으로 하는 시리얼 포트 관리 방법.When the interface function COM_Close for closing the second virtual serial port is called in the data communication state S4 in which both the first and second virtual serial ports are open, the internal state is the idle state S2. And transitioning to a second event (EV_DATA_STOP) for notifying that the data communication has ended so that the call request can be accepted. 제 13항에 있어서, The method of claim 13, 상기 내부 상태가 상기 시리얼 포트 드라이버가 장치 관리자에 의해 로드 되어 있고 초기화가 이루어진 초기화 상태(S1)에서, 상기 제1 가상 시리얼 포트를 오픈 하는 인터페이스 함수(COM_Open)가 호출되면 상기 내부 상태는 상기 아이들 상태(S2)로 천이되고 상기 제2 가상 시리얼 포트를 오픈 하는 인터페이스 함수(COM_Open)가 호출되면, 상기 내부 상태는 상기 데이터통신 상태(S4)로 천이되는 단계를 더 구비하는 것을 특징으로 하는 시리얼 포트 관리 방법.The internal state is the idle state if the interface port (COM_Open) for opening the first virtual serial port is called in the initialization state (S1) that the serial port driver is loaded by the device manager and is initialized When the interface function COM_Open is called to transition to S2 and open the second virtual serial port, the internal state further comprises transitioning to the data communication state S4. Way. 제 17항에 있어서, The method of claim 17, 상기 아이들 상태(S2) 또는 상기 통화 상태(S3)에서 상기 제1 가상 시리얼포트를 닫기 위한 인터페이스 함수(COM_Close)가 호출되거나 또는 상기 제1 가상 시리얼 포트가 닫혀 있는 상기 데이터통신 상태(S4)에서 상기 제2 가상 시리얼포트를 닫기 위한 인터페이스 함수(COM_Close)가 호출되면, 상기 내부 상태는 상기 초기화 상태(S1)로 천이되는 단계를 더 구비하는 것을 특징으로 하는 시리얼 포트 관리 방법.In the idle state S2 or the call state S3, the interface function COM_Close is called to close the first virtual serial port or the data communication state S4 in which the first virtual serial port is closed. And when the interface function (COM_Close) for closing the second virtual serial port is called, transitioning the internal state to the initialization state (S1). 제 13항에 있어서, 상기 제1 프로그램은 전화통화 기능과 전화통화에 관련된 제어 기능을 수행하는 전화통화에 관련된 전화 응용프로그램이고, 상기 제2 프로그램은 원격 서버에 원격전화접속을 이루어 에이티 컨맨드와 포인트-투-포인트 프로토콜(PPP) 패킷을 송수신하는 네트워크 기능 수행에 관련된 프로그램인 것을 특징으로 하는 시리얼 포트 관리 방법.14. The system of claim 13, wherein the first program is a telephone application related to a telephone call for performing a telephone call function and a control function related to the telephone call, and the second program is configured to make a remote telephone connection to a remote server. And a program related to performing a network function of transmitting and receiving a Point-to-Point Protocol (PPP) packet.
KR1020050039723A 2005-05-12 2005-05-12 Serial port driver architecture supporting virtual dual serial ports and method for managing these dual serial ports KR100503917B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050039723A KR100503917B1 (en) 2005-05-12 2005-05-12 Serial port driver architecture supporting virtual dual serial ports and method for managing these dual serial ports

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050039723A KR100503917B1 (en) 2005-05-12 2005-05-12 Serial port driver architecture supporting virtual dual serial ports and method for managing these dual serial ports

Publications (1)

Publication Number Publication Date
KR100503917B1 true KR100503917B1 (en) 2005-07-22

Family

ID=37303755

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050039723A KR100503917B1 (en) 2005-05-12 2005-05-12 Serial port driver architecture supporting virtual dual serial ports and method for managing these dual serial ports

Country Status (1)

Country Link
KR (1) KR100503917B1 (en)

Similar Documents

Publication Publication Date Title
EP2041691B1 (en) Method, system and smart card reader for management of access to a smart card
US5625678A (en) Method and system for allowing switched voice and data communication among multiple application programs
US7043575B2 (en) Bus function authentication method, apparatus and computer program
US7766243B2 (en) Method, system and smart card reader for management of access to a smart card
EP2071460B1 (en) Local device virtualization
US8504100B2 (en) System and method for multi-radio control
US20070079019A1 (en) Cellular phone and portable storage device using the same
US20090011738A1 (en) Mobile communication apparatus
EP3040859B1 (en) Method for sharing resource using a virtual device driver and electronic device thereof
KR20050105201A (en) System and method for identifying applications targeted for message receipt in devices utilizing message queues
US7570917B2 (en) Bluetooth communication through a single virtual port
US20070155422A1 (en) Method for controlling mobile data connection through USB Ethernet management of mobile station
KR100503917B1 (en) Serial port driver architecture supporting virtual dual serial ports and method for managing these dual serial ports
US7448069B2 (en) Access-request control method, driver program for communication device, and communication device
US6714990B1 (en) Communication system and data adapter
US7363383B2 (en) Running a communication protocol state machine through a packet classifier
KR20060087758A (en) Internet disk system for moblie devices and method thereof
US8532136B1 (en) Communication with a handset via a private network
KR100542259B1 (en) Modem Sharing Method in PDA
EP1826679B1 (en) Bluetooth communication through a single virtual port
CA2658422C (en) Method, system and smart card reader for management of access to a smart card
KR20070020703A (en) Method for controlling access to serial device
JP5181332B2 (en) COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM
KR101593899B1 (en) Cloud computing method, clould computing server performing the same and storage media storing the same
Tiedemann nfcpy documentation

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee