KR101838747B1 - 기록 장치, 기록 장치의 제어 방법, 및 기록 매체 - Google Patents
기록 장치, 기록 장치의 제어 방법, 및 기록 매체 Download PDFInfo
- Publication number
- KR101838747B1 KR101838747B1 KR1020100113770A KR20100113770A KR101838747B1 KR 101838747 B1 KR101838747 B1 KR 101838747B1 KR 1020100113770 A KR1020100113770 A KR 1020100113770A KR 20100113770 A KR20100113770 A KR 20100113770A KR 101838747 B1 KR101838747 B1 KR 101838747B1
- Authority
- KR
- South Korea
- Prior art keywords
- command
- buffer
- reception
- host computer
- received
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1801—Input data handling means
- G06K15/1803—Receiving particular commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1801—Input data handling means
- G06K15/1822—Analysing the received data before processing
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07G—REGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
- G07G5/00—Receipt-giving machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0002—Serial port, e.g. RS232C
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Record Information Processing For Printing (AREA)
Abstract
호스트 컴퓨터로부터 송신되는 커맨드를 신속하게 검출함과 아울러, 즉시 처리 커맨드를 신속하게 검출하여 실행할 수 있도록 한다.
수신 버퍼(31)에 격납된 수신 데이터로부터 커맨드를 검출하는 커맨드 검출부(21A)와, 검출된 커맨드를, 수신 버퍼(31)에의 격납 순서로 실행하는 커맨드 실행부(21C)와, 수신 버퍼(31)에 격납된 수신 데이터를, 판독 포인터(31C)와는 별도로 마련된 리얼 타임 제어 커맨드 판독 포인터(31D)로 수신 버퍼를 주사하면서 판독해서 리얼 타임 제어 커맨드를 검출하는 리얼 타임 제어 커맨드 검출부(21B)를 구비하고, 커맨드 실행부(21C)는, 검출된 리얼 타임 제어 커맨드를 수신 버퍼(31)에의 격납 순서에 관계없이 우선하여 실행한다.
수신 버퍼(31)에 격납된 수신 데이터로부터 커맨드를 검출하는 커맨드 검출부(21A)와, 검출된 커맨드를, 수신 버퍼(31)에의 격납 순서로 실행하는 커맨드 실행부(21C)와, 수신 버퍼(31)에 격납된 수신 데이터를, 판독 포인터(31C)와는 별도로 마련된 리얼 타임 제어 커맨드 판독 포인터(31D)로 수신 버퍼를 주사하면서 판독해서 리얼 타임 제어 커맨드를 검출하는 리얼 타임 제어 커맨드 검출부(21B)를 구비하고, 커맨드 실행부(21C)는, 검출된 리얼 타임 제어 커맨드를 수신 버퍼(31)에의 격납 순서에 관계없이 우선하여 실행한다.
Description
본 발명은, 호스트 컴퓨터로부터 송신되는 커맨드에 따라서 기록하는 기록 장치, 기록 장치의 제어 방법 및 기록 매체에 관한 것이다.
종래, 상위 장치로서의 호스트 컴퓨터로부터 송신되는 커맨드에 따라서 동작하는 기록 장치가 알려져 있다(예컨대, 특허 문헌 1 참조). 이러한 기록 장치가 호스트 컴퓨터로부터 수신하는 커맨드에는, 통상의 커맨드와는 별도로, 기록 장치의 스테이터스 반송 지시나 리셋 지시의 커맨드 등 즉시 처리할 것이 요구되는 즉시 처리 커맨드(리얼 타임 제어 커맨드)가 있다. 예컨대, 특허 문헌 1에 기재된 장치는, 호스트 컴퓨터로부터 데이터를 수신했을 때, 수신 데이터 내의 커맨드 및 즉시 처리 커맨드를 검출하여, 통상의 커맨드나 통상의 커맨드에 따른 데이터는 수신 버퍼의 큐에 격납하여 수신 순서로 실행하고, 즉시 처리 커맨드는 수신 버퍼에 격납하지 않고, 수신 순서에 관계없이 즉시 실행한다.
그런데, 상기 종래의 방법에서는, 호스트 컴퓨터로부터 수신한 수신 데이터 모두에 대해서, 수신할 때마다 커맨드가 포함되어 있는지 검출하여, 커맨드가 포함되어 있는 경우에는 그것이 즉시 처리 커맨드인지 여부의 판단을 더 행하기 때문에, 예컨대 다량의 데이터가 한꺼번에 송신된 경우 등에는, 수신 버퍼에 격납하기 전에, 모든 수신 데이터에 대해서 상술한 커맨드의 검출 처리를 행하기 때문에, 이 검출 처리가 병목 현상이 되어서 스루풋의 저하를 초래할 우려가 있었다.
또한, 일반적인 기록 장치에 있어서는, 용지 등의 기록 매체가 떨어진 경우, 기록 장치의 커버가 열려진 경우, 에러가 발생한 경우 등, 기록 동작의 속행이 부적당한 경우에는, 기록 동작을 정지함과 아울러, 호스트 컴퓨터와의 인터페이스를 오프라인(논리적인 절단 상태)으로 함으로써, 기록 장치 및 호스트 컴퓨터로부터 수신한 데이터의 보전 및 사용자의 안전을 확보하려고 하고 있다. 이러한 기록 장치는 오프라인 상태에서는 수신 데이터에 있어서의 커맨드의 검출이나 수신 데이터의 처리를 행하지 않지만, 이 경우, 수신 데이터에 즉시 처리 커맨드가 포함되어 있어도, 이것을 검출하지 않기 때문에, 즉시 처리 커맨드에 대한 대응이 늦어질 염려도 있었다.
본 발명은, 상술한 사정을 감안해서 이루어진 것으로, 호스트 컴퓨터로부터 송신되는 커맨드에 따라서 기록 장치를 제어하여, 호스트 컴퓨터로부터 송신되는 커맨드를 신속하게 검출함과 아울러, 즉시 처리 커맨드를 신속하게 검출하여 실행할 수 있는 기록 장치, 기록 제어 방법 및 기록 매체를 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위해서, 본 발명은, 호스트 컴퓨터에 접속 가능하고, 상기 호스트 컴퓨터로부터 수신한 커맨드를 포함한 수신 데이터에 기초해서 기록을 행하는 기록 장치로서, 상기 호스트 컴퓨터로부터 수신한 상기 수신 데이터를 격납하는 수신 버퍼와, 제 1 판독 포인터로 상기 수신 버퍼를 주사하면서 상기 수신 버퍼에 격납된 상기 수신 데이터를 판독해서, 상기 수신 데이터에 포함된 상기 커맨드를 검출하는 커맨드 검출부와, 상기 커맨드 검출부에 의해 검출된 상기 커맨드를, 상기 수신 버퍼에의 상기 커맨드의 격납 순서로 처리하는 커맨드 실행부와, 상기 제 1 판독 포인터와는 별도로 마련된 제 2 판독 포인터로 상기 수신 버퍼를 주사하면서 상기 수신 버퍼에 격납된 상기 수신 데이터를 판독해서, 상기 수신 데이터에 포함된 즉시 처리 커맨드를 검출하는 즉시 처리 커맨드 검출부를 구비하고, 상기 커맨드 실행부는, 상기 즉시 처리 커맨드 검출부에 의해 검출된 상기 즉시 처리 커맨드를 상기 수신 버퍼에의 상기 커맨드의 상기 격납 순서에 관계없이, 우선하여 처리하는 것을 특징으로 하는 기록 장치를 제공한다.
이 구성에 의하면, 호스트 컴퓨터로부터 수신한, 커맨드나 인쇄 데이터를 포함한 수신 데이터가 수신 버퍼에 격납되고, 커맨드용 제 1 판독 포인터와 즉시 처리 커맨드용 제 2 판독 포인터로 이 수신 버퍼를 각각 개별적으로 주사하여, 통상의 커맨드와 즉시 처리 커맨드를 따로따로 검출한다. 호스트 컴퓨터로부터의 수신 데이터를 일단 수신 버퍼에 격납하고 나서 커맨드의 검출을 행하기 때문에, 호스트 컴퓨터로부터 단시간에 대량의 데이터를 수신한 경우에도, 모든 데이터를, 커맨드 검출 등을 행하지 않고 신속하게 수신해서 격납하고, 그 후, 빠짐없이 해석을 행하여 커맨드를 검출할 수 있다. 그리고, 통상의 커맨드의 판독 포인터와는 별도의 판독 포인터로 수신 버퍼를 주사하여 즉시 처리 커맨드를 검출하기 때문에, 통상의 커맨드의 실행 상태에 영향받지 않고 즉시 처리 커맨드만을 신속하게 검출할 수 있다. 이 때문에, 수신 데이터가 대량이어도 즉시 처리 커맨드로 신속하게 처리할 수 있다.
이 경우, 제 1 판독 포인터에 의해, 즉시 처리 커맨드 이외의 커맨드가 검출되어 처리되어도 된다. 제 2 판독 포인터에 의해 검출된 즉시 처리 커맨드가, 제 1 판독 포인터에 의해 다시 한번 검출되었을 때, 즉시 처리 커맨드는 중복해서 처리되지 않는다. 제 2 판독 포인터에 의해 검출된 즉시 처리 커맨드를 소정의 타이밍에 처리할 수 있다. 또한, 즉시 처리 커맨드의 종류에 따라서는, 제 2 판독 포인터에 의해 검출되어 처리된 즉시 처리 커맨드를, 다시 제 1 판독 포인터에 의해 검출해서 처리해도 된다. 기록 장치의 스테이터스 반송 지시 등은 중복해서 처리되어도 되기 때문에, 제 1 판독 포인터와 제 2 판독 포인터 중 어느 것에 의해서도, 즉시 처리 커맨드를 검출하여 처리할 수 있다.
여기서, 통상의 커맨드의 실행을 정지하는 오프라인 상태에 있어서도, 즉시 처리 커맨드를 검출해서, 처리해도 된다. 이 경우에는, 오프라인 상태이더라도 즉시 처리 커맨드를 신속하게 처리할 수 있다고 하는 이점이 있다.
또한, 커맨드 실행부는, 통상 동작 상태에서 커맨드 검출부가 검출한 커맨드를 실행하고, 즉시 처리 커맨드 검출부가 검출한 즉시 처리 커맨드를, 통상 동작 상태 및 오프라인 상태 중 어느 상태에서도 처리하는 구성으로 해도 된다.
상기 구성에 있어서, 상기 수신 버퍼가 거의 버퍼 풀이 된 이후에 수신한 수신 데이터를 격납하는 즉시 처리 커맨드용 버퍼를 더 구비하고, 상기 즉시 처리 커맨드 검출부는, 상기 즉시 처리 커맨드용 버퍼를 상기 제 2 판독 포인터로 주사하여, 상기 수신 데이터에 포함된 상기 즉시 처리 커맨드를 검출하는 구성으로 해도 된다.
이 경우, 호스트 컴퓨터로부터의 수신 데이터의 용량이 많아서 수신 버퍼가 버퍼 풀 또는 버퍼 풀에 가까운 상태가 된 경우에도, 즉시 처리 커맨드를 검출해서 처리할 수 있기 때문에, 수신 데이터가 대량이어도 즉시 처리 커맨드에 신속하게 응답할 수 있다. 버퍼 풀인 경우에는 통상, 기록 장치는 커맨드의 검출이나 실행을 행하지 않는 오프라인 상태로 된다. 본 발명의 구성에서는, 기록 장치가 오프라인 상태이더라도, 통상의 커맨드와는 별도로 즉시 처리 커맨드를 검출해서, 실행할 수 있기 때문에, 즉시 처리 커맨드를 신속하게 처리할 수 있다. 기록 장치가 오프라인 상태를 통지해도, 호스트 컴퓨터는 즉시 처리 커맨드를 송신하여 기록 장치에 처리시키는 경우가 있다. 그 경우에도, 기록 장치는 즉시 처리 커맨드를 수신할 수 있어, 즉시 처리 커맨드를 검출하여 처리할 수 있다. 또한, 기록 장치가 온라인으로부터 오프라인으로 전환되었을 때, 호스트 컴퓨터가 즉시 데이터의 송신을 정지할 수 없어서 보내 버린 즉시 처리 커맨드도 처리할 수 있다. 오프라인 통지 후에도 기록 장치가 즉시 처리 커맨드를 수신할 수 있도록, 기록 장치가 즉시 처리 커맨드용 버퍼와 같은 서브 수신 버퍼를 구비하고 있는 것이 바람직하다.
또한, 상기 제 2 판독 포인터가 상기 제 1 판독 포인터보다 선행하도록 상기 수신 버퍼가 주사되어도 된다.
이 경우, 즉시 처리 커맨드를 검출하기 위한 판독 포인터가 통상의 커맨드를 검출하기 위한 판독 포인터보다 선행하도록, 수신 버퍼가 주사되기 때문에, 통상의 커맨드의 검출 및 실행 상태에 영향받지 않고, 즉시 처리 커맨드를 신속하게 검출할 수 있다. 또한, 상기 제 1 판독 포인터는, 상기 제 2 판독 포인터를 추월하는 일이 없게 하고 있다.
또한, 상기 구성에 있어서, 수신 데이터를 수신 버퍼에 기입하기 위한 기입 포인터의 기입 위치를 가산하고, 상기 제 1 판독 포인터의 판독 위치를 감산하여 카운트하는 카운터를 구비하고, 이 카운터는 상기 수신 버퍼의 수신 데이터량을 나타내는 구성으로 해도 된다. 이 수신 데이터량과 수신 버퍼의 용량을 비교해서, 버퍼 풀을 판정할 수 있다.
상기 제 2 판독 포인터에 의해 검출된 상기 즉시 처리 커맨드가, 상기 제 1 판독 포인터에 의해 다시 한번 검출되었을 때, 커맨드 실행부는, 즉시 처리 커맨드를 중복해서 처리하지 않도록 해도 된다. 즉시 처리 커맨드가 중복해서 처리되지 않는다.
또한, 상기 구성에 있어서, 상기 커맨드 검출부 및 상기 즉시 처리 커맨드 검출부가 각각 상기 수신 데이터에 포함된 상기 커맨드를 검출하기 전에, 상기 호스트 컴퓨터로부터 수신한 상기 수신 데이터를 상기 수신 버퍼에 격납시키는 수신 제어부를 더 구비하는 것으로 해도 된다.
이 경우, 수신 데이터가, 통상의 커맨드 및 즉시 처리 커맨드를 검출하는 처리 전에 수신 버퍼에 격납되고, 수신 버퍼에 격납된 수신 데이터에 대하여 각각 커맨드의 검출이 행해진다. 따라서, 호스트 컴퓨터로부터 단시간에 대량의 데이터를 수신한 경우에도, 커맨드 검출 등의 처리를 행하지 않고, 모든 데이터를 신속하게 수신하여 격납하고, 격납 후, 빠짐없이 해석을 행하여 커맨드를 검출할 수 있다.
또한, 상기 구성에 있어서, 상기 수신 제어부는, 상기 호스트 컴퓨터의 인터페이스로부터 수신한 상기 수신 데이터를 직접 상기 수신 버퍼에 전송하는 전송부를 구비하는 것으로 해도 된다.
이 경우, 예컨대 호스트 컴퓨터의 USB 인터페이스로부터의 수신 데이터를 DMA(다이렉트 메모리 액세스) 등에 의해 직접 수신 버퍼에 전송하여 격납하기 때문에, 기록 장치와 호스트 컴퓨터 사이에서 보다 고속으로 데이터를 송수신할 수 있고, 또한 수신 데이터를 빠짐없이 확실하게 수신 버퍼에 격납해서 해석할 수 있다. 이로써, 호스트 컴퓨터와의 사이의 통신을 고속화하여 스루풋의 향상을 도모할 수 있다.
또한, 본 발명은, 호스트 컴퓨터에 접속 가능하고, 상기 호스트 컴퓨터로부터 수신한 커맨드를 포함한 수신 데이터에 기초해서 기록을 행하는 기록 장치를 제어하기 위한 제어 방법으로서, 상기 호스트 컴퓨터로부터 수신한 상기 수신 데이터를 수신 버퍼에 격납하는 공정과, 제 1 판독 포인터로 상기 수신 버퍼를 주사하면서 상기 수신 버퍼에 격납된 상기 수신 데이터를 판독해서, 상기 수신 데이터에 포함된 상기 커맨드를 검출하는 공정과, 상기 검출된 커맨드를, 상기 수신 버퍼에의 상기 커맨드의 격납 순서로 처리하는 공정과, 상기 제 1 판독 포인터와는 별도로 마련된 제 2 판독 포인터로 상기 수신 버퍼를 주사하면서 상기 수신 버퍼에 격납된 상기 수신 데이터를 판독해서, 상기 수신 데이터에 포함된 즉시 처리 커맨드를 검출하는 공정과, 상기 검출한 즉시 처리 커맨드를, 상기 수신 버퍼에의 상기 커맨드의 상기 격납 순서에 관계없이, 우선하여 처리하는 공정을 구비하는 것을 특징으로 하는 기록 장치의 제어 방법을 제공한다.
이 방법에 의하면, 호스트 컴퓨터로부터 수신한 수신 데이터가 수신 버퍼에 일단 격납되고, 통상의 커맨드용 제 1 판독 포인터와 즉시 처리 커맨드용 제 2 판독 포인터로 각각 개별적으로 수신 버퍼를 주사하여, 통상의 커맨드와 즉시 처리 커맨드를 따로따로 검출한다. 호스트 컴퓨터로부터의 수신 데이터를 커맨드 검출 등의 처리를 행하지 않고 수신 버퍼에 격납하고 나서 커맨드의 검출을 행하기 때문에, 호스트 컴퓨터로부터 단시간에 대량의 데이터를 수신한 경우에도, 커맨드 검출 등의 처리를 행하지 않고 모든 데이터를 신속하게 수신하여 격납하고, 격납 후, 빠짐없이 해석을 행해서 커맨드를 검출할 수 있다. 이 때문에, 통상의 커맨드의 실행 상태에 영향받지 않고 즉시 처리 커맨드를 신속하게 검출할 수 있다. 또한, 수신 데이터가 대량이더라도 즉시 처리 커맨드에 신속하게 처리할 수 있다.
또한, 본 발명은, 호스트 컴퓨터에 접속 가능하고, 상기 호스트 컴퓨터로부터 수신한 커맨드를 포함하는 수신 데이터에 기초해서 기록을 행하는 기록 장치의 제어부에, 상기한 기록 장치의 제어 방법을 실행시키는 프로그램을 제공한다.
이 프로그램을 제어부에 의해서 실행함으로써 호스트 컴퓨터로부터 수신한 수신 데이터가 수신 버퍼에 격납되고, 통상의 커맨드용 제 1 판독 포인터와 즉시 처리 커맨드용 제 2 판독 포인터로 각각 개별적으로 수신 버퍼를 주사하여, 통상의 커맨드와 즉시 처리 커맨드를 따로따로 검출한다. 호스트 컴퓨터로부터의 수신 데이터를 수신 버퍼에 격납하고 나서 커맨드의 검출을 행하기 때문에, 호스트 컴퓨터로부터 단시간에 대량의 데이터를 수신한 경우에도, 커맨드 검출 등의 처리를 행하지 않고 모든 데이터를 신속하게 수신하여 격납하고, 그 후, 빠짐없이 해석을 행해서 커맨드를 검출할 수 있다. 이 때문에, 통상의 커맨드의 실행 상태에 영향받지 않고 즉시 처리 커맨드를 신속하게 검출할 수 있다. 또한, 수신 데이터가 대량이더라도 즉시 처리 커맨드에 신속하게 처리할 수 있다.
또한, 본 발명은, 상기 프로그램을 기억한 기억 매체를 제공한다.
본 발명에 의하면, 호스트 컴퓨터로부터 단시간에 대량의 데이터를 수신한 경우에도, 커맨드 검출 등의 처리를 행하지 않고 모든 데이터를 신속하게 수신하고 격납하며, 빠짐없이 해석을 행하여 커맨드를 검출할 수 있음과 아울러, 즉시 처리 커맨드를 신속하게 검출하고 신속하게 처리할 수 있다.
도 1은 실시예에 따른 POS 단말의 개략 구성을 나타내는 도면,
도 2는 프린터의 구성을 나타내는 블록도,
도 3은 프린터의 제어부의 기능 블록도,
도 4(a)는 수신 버퍼의 구성을 모식적으로 나타내는 도면,
도 4(b)는 서브 수신 버퍼의 구성을 모식적으로 나타내는 도면,
도 5는 프린터의 동작을 나타내는 흐름도,
도 6은 프린터의 동작의 세부 사항을 나타내는 흐름도,
도 7은 프린터의 동작의 세부 사항을 나타내는 흐름도,
도 8(a)는 호스트 컴퓨터와 프린터의 접속 형태의 예를 나타내는 설명도,
도 8(b)는 호스트 컴퓨터와 프린터의 접속 형태의 예를 나타내는 설명도이다.
도 2는 프린터의 구성을 나타내는 블록도,
도 3은 프린터의 제어부의 기능 블록도,
도 4(a)는 수신 버퍼의 구성을 모식적으로 나타내는 도면,
도 4(b)는 서브 수신 버퍼의 구성을 모식적으로 나타내는 도면,
도 5는 프린터의 동작을 나타내는 흐름도,
도 6은 프린터의 동작의 세부 사항을 나타내는 흐름도,
도 7은 프린터의 동작의 세부 사항을 나타내는 흐름도,
도 8(a)는 호스트 컴퓨터와 프린터의 접속 형태의 예를 나타내는 설명도,
도 8(b)는 호스트 컴퓨터와 프린터의 접속 형태의 예를 나타내는 설명도이다.
이하, 도면을 참조하여 본 발명의 실시예에 대하여 설명한다.
도 1은, 본 발명을 적용한 실시예에 따른 POS 단말(1)의 개략 구성을 나타내는 도면이다.
POS 단말(1)은, 예컨대 소매점 등의 가계의 앞쪽에 설치되어, 매상 정산을 행하는 레지스터로, 판매 시점 관리 시스템(POS 시스템)을 구성한다. POS 단말(1)은, 매상 등록 처리 및 정산 처리를 행하는 호스트 컴퓨터(4)에, 영수증(101)을 발행하는 프린터(2)를 접속하여 구성된다. 여기서, 호스트 컴퓨터(4)는, 프린터(2)에 대하여, 외부 접속된 장치에 상당한다. 또한, 호스트 컴퓨터(4)는, 매상 등록한 정보를 수집하는 POS 서버(5)에, 통신 회선을 통해서 접속되어 있다. 호스트 컴퓨터(4)는, 매상 등록 처리 및 정산 처리의 처리 내용을 표시하는 디스플레이(41), 매상 등록 처리시에 상품에 부된 바코드를 판독하는 바코드 스캐너(42), 매상 등록 키 등의 각종 키를 구비한 키 입력부(43), 정산용 현금을 수용하는 현금통(44) 등을 구비하고 있다. 현금통(44)은, 후술하는 바와 같이 프린터(2)에 접속되어, 프린터(2)로부터 입력되는 현금통 오픈 신호를 수신했을 때에 열리는 구성으로 되어 있다.
기록 장치(기록 장치)로서의 프린터(2)는, 본체(11)에 기록 매체로서의 감열 롤지를 수용하고, 인쇄 헤드에 의해 롤지에 화상을 인쇄(기록)하며, 영수증(101)을 출력한다. 프린터(2)는, 롤지를 반송하는 롤러 형상의 인쇄판(도시 생략)과, 이 인쇄판에 대향 배치된 인쇄 헤드를 구비하고, 배지구(排紙口)(14) 근방에는, 롤지를 절단하는 커터 유닛(도시 생략)이 배치되어 있다. 본 실시예의 프린터(2)가 구비하는 인쇄 헤드는, 예컨대, 발열체(도시 생략)를 롤지의 폭 방향으로, 일렬 또는 복수열로 나열해서 구성되는 라인 서멀 헤드이다. 각각의 발열체에는 후술하는 프린트 엔진(20)에 의해 개별적으로 통전되고, 롤지의 인쇄면(기록면)에 밀착하는 발열체에 의해서 롤지에 열 에너지를 인가함으로써, 롤지를 발색시킨다.
인쇄 헤드에 의해서 인쇄된 롤지는, 본체(11)의 상면에 형성된 배지구(14)로부터 밖을 향해서 반송되고, 커터 유닛에 의해 절단되어, 영수증(101)으로서 출력된다. 영수증(101)에는, 가게 이름이나 판매한 상품명, 상품 수량, 금액, 합계 금액 등의 문자, 로그의 화상 등이 인쇄된다.
또한, 도 1에 나타낸 바와 같이, 프린터(2)의 본체(11)에는 개폐 가능한 커버(12)가 마련된다. 본체(11)에는 커버(12)를 열기 위한 레버(13)가 마련되고, 커버(12)를 열면, 롤지를 수용하는 공간이 노출되어서, 롤지의 보충이나 교환이 가능하게 된다. 또한, 본체(11)에는, 프린터(2)의 전원을 온/오프시키는 전원 스위치(16), 롤지의 종이 공급 동작을 지시하고, 또한 제어시의 소정의 조건 하에서 동작 모드의 전환 등을 지시하는 조작을 행하기 위한 종이 공급 스위치(17) 및 프린터(2)의 동작 상태 등을 표시하기 위한 LED 표시부(18)가 마련되어 있다.
프린터(2)는 인쇄판 롤러를 회전시켜서 롤지를 반송하는 반송 모터, 커터 유닛을 구동하여 롤지를 절단하는 커터 구동 모터, 인쇄 헤드를 구동시켜서, 롤지에 대해 문자나 화상을 기록한다.
도 2는 프린터(2)의 회로 구성을 나타내는 블록도이다.
프린터(2)는, 실제 인쇄를 행하는 프린트 엔진(20)과, 프린터(2) 전체를 제어하는 제어부(21)와, 제어부(21)가 실행하는 기본 제어 프로그램을 기억한 ROM(22)과, 제어부(21)가 실행하는 제어 프로그램(24A) 및 커맨드(24B) 등을 기억한 EEPROM(24)과, 호스트 컴퓨터(4)로부터 송신되는 커맨드의 수신 제어를 행하는 수신 제어부(25)와, 현금통(44)에 접속된 인터페이스부(26)와, 종이 공급 스위치(17)(도 1)에 있어서의 조작을 검출하는 입력부(27)와, LED 표시부(18)를 제어하여 각종 표시를 행하게 하는 표시부(28)와, 프린터(2)의 각부의 동작 상태를 감시하는 스테이터스 감시부(30)와, 수신 제어부(25)에 의해 수신된 수신 데이터를 일시적으로 격납하는 RAM 등으로 구성된 수신 버퍼(31) 및 서브 수신 버퍼(32)(즉시 처리 커맨드용 버퍼)를 구비하고 있다. 제어부(21)에는 CPU 등이 포함된다.
수신 제어부(25)는, USB나 RS232C 인터페이스 등의 각종 인터페이스를 갖고, 호스트 컴퓨터(4)가 구비하는 상기 인터페이스와, 유선 또는 무선 접속된다.
프린트 엔진(20)는, 제어부(21)의 제어에 따라서, 호스트 컴퓨터(4)로부터 송신된 인쇄 데이터에 기초해서, 기록 매체로서의 롤지에 인쇄할 문자나 화상을 작성하고, 용지끝 센서나 용지 잔량 센서 등의 각종 센서의 검출값을 감시하면서, 프린터(2)가 구비하는 인쇄 헤드, 커터 구동 모터 및 반송 모터를 동작시켜서, 롤지에 대한 인쇄를 실행한다.
이와 같이, 프린터(2)는, 종이나 합성 수지제의 기록 매체(롤지, 커트지, 복사지 등)의 인쇄면에 잉크나 토너를 부착시키고, 혹은 기록 매체의 인쇄면에 열을 가하는 인쇄 헤드, 기록 매체에 대해 인쇄 헤드를 이동시키는 인쇄 헤드 구동 기구, 기록 매체를 반송하는 반송 기구 등을 구비하며, 이들 인쇄 헤드 및 각종 기구가 프린트 엔진(20)에 의해서 제어된다.
또한, 프린트 엔진(20)은 제어부(21)의 제어에 따라서, 입력부(27)에 의해서 종이 공급 스위치(17)의 조작을 검출한 경우에는 반송 모터를 동작시켜서 롤지를 소정량 반송하고, 프린터(2)의 동작 상태 등에 맞춰서 표시부(28)를 통해서 LED 표시부(18)의 각 LED의 점등 상태를 변화시킨다.
제어부(21)는, CPU나, 실행하는 프로그램이나 데이터 등을 일시적으로 기억하는 워크 에어리어로서의 메모리를 내장하고, 마이크로컴퓨터로서 기능하여, ROM(22)에 기억된 기본 제어 프로그램이나, EEPROM(24)에 기억된 제어 프로그램(24A)를 실행한다.
ROM(22)은, 제어부(21)에 의해서 프린터(2)의 각부를 초기화함과 아울러, 이들 각부를 제어하기 위한 기본 제어 프로그램 및 이 기본 제어 프로그램에 따른 데이터 등을 비휘발적으로 기억한다.
EEPROM(24)은, 덮어쓰기 가능한 비휘발성의 기억 장치로, 제어 프로그램(24A) 및 커맨드(24B)를 포함한 각종 프로그램이나 데이터를 기억한다.
수신 제어부(25)는, 호스트 컴퓨터(4)와의 사이에서 소정의 통신 프로토콜을 실행하며, 호스트 컴퓨터(4)로부터 송신되는 신호를 수신하고, 수신한 신호를 복조(디코딩)하여 수신 데이터를 생성하여, 수신 버퍼(31) 및 서브 수신 버퍼(32)에 차례로 기억한다. 수신 제어부(25)는, 예컨대 통신 케이블이 접속되는 커넥터와 통신 회로, 혹은 무선 통신 회로와 안테나 등을 구비하고 있다.
수신 버퍼(31)는, 수신 제어부(25)가 출력한 수신 데이터를 차례로 기억하는 일시 기억 장치이다. 수신 버퍼(31)에는, 수신 제어부(25)가 호스트 컴퓨터(4)로부터 수신한 커맨드 및 이 커맨드에 이어지는 인쇄 데이터 등의 데이터가, 구별없이 예컨대 64비트마다 격납된다. 즉, 수신 제어부(25)는, 호스트 컴퓨터(4)로부터 수신한 수신 데이터를, 커맨드를 포함할지 여부의 해석 등을 행하지 않고 수신 버퍼(31)에 격납한다.
프린터(2)가 구비하는 스테이터스 감시부(30)에는, 외부로부터 프린터(2)에 공급되는 전원 전압을 검출, 커버(12)의 개폐 상태, 롤지의 유무 등을 검출하는 각 검출부가 접속되고, 이들 검출부에서의 검출 상태에 기초하여, 예컨대 프린터(2)에 있어서의 전원 전압의 이상, 용지 보충이나 잉크 카트리지의 교환시에 개폐되는 프린터(2)의 커버(도시 생략)가 열린 것, 프린터(2)의 용지 떨어짐, 종이 공급 스위치(17)의 조작 등의 프린터(2)에 있어서의 사상(이벤트)의 발생을 나타내는 검출 신호를, 제어부(21)에 끼워넣기 신호로서 출력한다.
프린터(2)의 동작 상태로는, 호스트 컴퓨터(4)와의 통신 및 인쇄 등을 실행 가능한 온라인 상태와, 필요 최소한의 동작밖에 행하지 않는 오프라인 상태가 있다. 오프라인 상태는, 인쇄 동작의 속행이 부적당한 경우에는, 인쇄 헤드를 포함한 인쇄 메커니즘을 정지하고, 또한 호스트 컴퓨터와의 인터페이스를 논리적인 절단 상태로 하여, 인쇄 장치 및 통신 데이터의 보전 및 사용자의 안전을 확보하고자 하는 상태다. 제어부(21)는, 통상 동작을 행하고 있는 동안에는 온라인 상태다. 수신 버퍼(31)가 가득차거나, 커버가 열려 있거나, 용지가 떨어진 경우 등의 오프라인 요인의 발생에 따라, 제어부(21)는 오프라인 상태로 이행한다. 오프라인 상태에서, 스테이터스 감시부(30)가, 오프라인 요인이 해소된 것을 검출한 경우에, 제어부(21)는 온라인 상태로 이행한다.
오프라인 상태로 이행한 경우, 제어부(21)는 호스트 컴퓨터(4)에 대해서 오프라인인 것을 통지하고, 호스트 컴퓨터(4)는 다시 온라인으로 된 것을 통지받을 때까지, 데이터의 송신을 정지한다. 이 때, 호스트 컴퓨터(4)는 오프라인 통지를 받아도, 긴급하게 리얼 타임 제어 커맨드를 송신해서 처리하려하는 경우가 있다. 이에 대비해서, 프린터(2)는 서브 수신 버퍼(32)를 구비하고, 오프라인을 통지한 후에도 리얼 타임 제어 커맨드를 우선해서 수신할 수 있도록 하고 있다.
도 3은 프린터(2)의 제어부(21)의 기능적 구성을 나타내는 블록도이다.
이 도 3에 나타낸 바와 같이, 제어부(21)는 커맨드 검출부(21A), 리얼 타임 제어 커맨드 검출부(즉시 처리 커맨드 검출부)(21B), 및 커맨드 실행부(21C)로서 기능하며, 이들 기능은 EEPROM(24)에 기억된 제어 프로그램(24A)을 제어부(21)가 실행함으로써 실현된다.
상술한 바와 같이, 수신 제어부(25)는 호스트 컴퓨터(4)로부터 수신한 수신 데이터를 수신 버퍼(31)에 격납시킨다. 수신 버퍼(31)에는 수신 제어부(25)에 의해 제어되는 기입 포인터(31A)가 마련되고, 수신 제어부(25)는 기입 포인터(31A)를 이동시키면서 수신 데이터를 기입한다.
커맨드 검출부(21A)는 수신 버퍼(31)에 마련된 판독 포인터(31C)(제 1 판독 포인터)를 제어하여, 수신 버퍼(31)를 판독 포인터(31C)로 주사하면서 수신 데이터를 판독하여, 이들 수신 데이터에 포함된 커맨드를 검출한다. 카운터(31B)는 수신 데이터를 수신 버퍼(31)에 기입하기 위한 기입 포인터(31A)의 기입 위치를 가산하고, 수신 데이터를 수신 버퍼(31)로부터 판독하기 위한 판독 포인터(31C)의 판독 위치를 감산하여 카운트한다. 이 카운터(31B)는 수신 버퍼(31)의 수신 데이터량을 나타낸다. 수신 제어부(25)는 카운터(31B)의 값과 수신 버퍼(31)의 용량을 비교하여 버퍼 풀을 판정하여, 호스트 컴퓨터(4)에 버퍼 풀을 통지할 수 있다.
도 4(a)는 수신 버퍼(31)의 구성예를 모식적으로 나타내고, 도 4(b)는 서브 수신 버퍼(32)의 구성예를 모식적으로 나타낸다.
도 4(a)에 나타낸 바와 같이, 수신 버퍼(31)가 예컨대 4KB(킬로바이트)의 용량을 가지며, 호스트 컴퓨터(4)로부터의 수신 데이터(D)가 64비트단위로 기입되는 경우, 기입 포인터(31A)는 선두 어드레스(0000)로부터 64비트씩 이동되어, 수신 제어부(25)에 의한 기입이 행해진다. 이 기입 포인터(31A)의 뒤를 쫓아서, 선두 어드레스(0000)부터 차례로 판독 포인터(31C)로 수신 버퍼(31)가 주사되며, 이미 기입된 수신 데이터(D)가 커맨드 검출부(21A)(도 3)에 의해서 판독되어서, 커맨드의 검출이 행해진다.
커맨드 검출부(21A)가 검출한 커맨드는, 통상 동작 상태에 있어서, 즉 후술하는 온라인 상태에 있어서, 커맨드 실행부(21C)에 의해서 검출된 순서로 실행된다. 커맨드 검출부(21A)는, 검출한 커맨드를 커맨드 실행부(21C)로 인도하여 실행시킴과 아울러, 판독된 수신 데이터를 수신 버퍼(31)로부터 소거한다. 여기서, 커맨드 검출부(21A)는, 커맨드를 소거하지 않고 다음번에 덮어쓰기할 수도 있다. 커맨드 실행부(21C)는, 커맨드 검출부(21A)에 의해 검출된 커맨드를, 수신 버퍼(31)에 있어서의 격납 순서, 즉 커맨드 검출부(21A)가 검출한 검출 순서로 실행한다. 이 커맨드는, 예컨대 인쇄 실행, 롤지 반송 등의 커맨드이다.
또한, 수신 버퍼(31)에는 리얼 타임 제어 커맨드 판독 포인터(31D)(제 2 판독 포인터)가 마련된다. 리얼 타임 제어 커맨드 판독 포인터(31D)는, 리얼 타임 제어 커맨드 검출부(21B)가 리얼 타임 제어 커맨드를 검출하기 위한 판독 포인터로, 이 리얼 타임 제어 커맨드 판독 포인터(31D)로, 선두 어드레스(0000)부터 순서로 수신 버퍼(31)가 주사된다. 리얼 타임 제어 커맨드 검출부(21B)는, 수신 버퍼(31)에 마련된 리얼 타임 제어 커맨드 판독 포인터(31D)로 수신 버퍼(31)를 주사하면서 수신 데이터(D)(도 4(a))를 판독해서, 이들 수신 데이터(D)에 포함된 리얼 타임 제어 커맨드를 검출한다.
리얼 타임 제어 커맨드 검출부(21B)가 검출한 리얼 타임 제어 커맨드는, 커맨드 실행부(21C)에 의해서, 오프라인 상태인지 온라인 상태인지에 관계없이, 리얼 타임 제어 커맨드 검출부(21B)가 검출한 순서로 즉시 실행된다. 리얼 타임 제어 커맨드(즉시 처리 커맨드)로서는, 스테이터스 통지의 송신을 지시하는 스테이터스 요구 커맨드, 수신 버퍼(31) 및 서브 수신 버퍼(32)의 전체 소거를 지시하는 버퍼 클리어 커맨드, 현금통(44)의 열기 동작을 지시하는 현금통 오픈 커맨드 등이 있다.
도 4(a)에 나타낸 바와 같이, 리얼 타임 제어 커맨드 판독 포인터(31D)가, 판독 포인터(31C)보다 선행하도록, 수신 버퍼(31)가 주사된다. 이것은 리얼 타임 제어 커맨드가, 통상의 커맨드의 처리 대상 데이터 속에 포함되는 경우가 있기 때문이다. 즉, 리얼 타임 제어 커맨드를 포함하는 수신 데이터(D)가 통상 커맨드를 따르는 경우에는, 통상 커맨드가 커맨드 검출부(21A)에 의해 검출되었을 때에 커맨드 실행부(21C)에 의해서 실행되고, 그 후에 소거되어 버린다. 이 때, 리얼 타임 제어 커맨드를 실행하지 않는 채로 소거하는 것을 방지하기 위해서, 리얼 타임 제어 커맨드 판독 포인터(31D)는 판독 포인터(31C)보다 선행한다. 이로써, 리얼 타임 제어 커맨드가 통상의 커맨드의 처리 대상 데이터에 포함되어 있어도, 이 통상의 커맨드보다 먼저 검출되어 실행되기 때문에, 빠짐없이 리얼 타임 제어 커맨드에 응답할 수 있다는 이점이 있다. 또한, 판독 포인터(31C)는 리얼 타임 제어 커맨드 판독 포인터(31D)를 추월하지 않도록 하고 있다.
또한, 도 3에 나타낸 바와 같이, 수신 제어부(25)에는, 수신 버퍼(31)와 함께 서브 수신 버퍼(32)가 접속되어 있다. 서브 수신 버퍼(32)는 수신 버퍼(31)가 버퍼 풀로 된 이후에 수신 데이터가 격납되는 영역이다. 서브 수신 버퍼(32)에는 수신 제어부(25)에 의해 제어되는 기입 포인터(32A)와, 리얼 타임 제어 커맨드 검출부(21B)에 의해 제어되는 리얼 타임 제어 커맨드 판독 포인터(32B)가 마련되어 있다. 수신 제어부(25)는, 기입 포인터(32A)를 선두 어드레스(0000)부터 64비트씩 이동시켜서 기입을 행한다. 서브 수신 버퍼(32)에는, 커맨드 검출부(21A)가 통상의 커맨드를 검출하기 위한 판독 포인터는 마련되어 있지 않다.
수신 버퍼(31)가 버퍼 풀로 되어, 호스트 컴퓨터(4)에 대해 버퍼 풀이 통지된 경우에는, 호스트 컴퓨터(4)로부터의 데이터 송신은 정지된다. 그러나 버퍼 풀(오프라인)을 통지한 시점에 이미 호스트 컴퓨터(4)로부터 송신되고 있던 데이터가 있는 경우나, 호스트 컴퓨터(4)가 긴급하게 리얼 타임 제어 커맨드를 송신하여 처리를 행하고 싶은 경우에는, 버퍼 풀로 된 이후에 데이터가 수신 제어부(25)에 의해 수신된다. 이 수신 데이터는 수신 버퍼(31)에 격납할 수 없기 때문에, 프린터(2)는, 이러한 수신 데이터를 격납하기 위한 영역으로서 서브 수신 버퍼(32)를 구비하고 있다. 서브 수신 버퍼(32)에 격납되는 수신 데이터에 통상의 커맨드가 포함되어 있어도, 제어부(21)는 이 커맨드를 실행 대상으로 삼지 않는다. 서브 수신 버퍼(32) 내의 수신 데이터는 버퍼 풀로 된 이후에 수신된 데이터로, 버퍼 풀이 해소되고 나서 다시 수신하면 바람직하기 때문이다. 한편, 서브 수신 버퍼(32)의 수신 데이터에 리얼 타임 제어 커맨드가 포함되어 있는 경우, 이 리얼 타임 제어 커맨드는 즉시 실행해야 한다. 이 때문에, 서브 수신 버퍼(32)에는 판독 포인터로서 리얼 타임 제어 커맨드 판독 포인터(32B)만이 마련되고, 통상의 커맨드를 검출하기 위한 판독 포인터는 마련되어 있지 않다. 리얼 타임 제어 커맨드 검출부(21B)가 리얼 타임 제어 커맨드 판독 포인터(32B)로 서브 수신 버퍼(32)를 주사하여, 리얼 타임 제어 커맨드를 검출한다. 그리고, 서브 수신 버퍼(32)에 있어서 검출된 리얼 타임 제어 커맨드는, 수신 버퍼(31)에서 검출된 리얼 타임 제어 커맨드와 마찬가지로, 커맨드 실행부(21C)에 의해 즉시 실행된다.
도 5는, 프린터(2)의 동작을 나타내는 흐름도로, 호스트 컴퓨터(4)로부터 데이터를 수신하는 경우의 프린터(2)의 동작을 나타낸다.
프린터(2)는 수신 제어부(25)의 기능에 의해서 호스트 컴퓨터(4)로부터 수신 제어부(25)를 통해서 데이터를 수신하면(스텝 S1), 수신 제어부(25)의 기능에 의해 수신 버퍼(31)에 기입을 행한다(스텝 S2). 여기서, 제어부(21)는 수신 버퍼(31)가 가득찼는지(버퍼 풀) 여부를 판별하여(스텝 S3), 버퍼 풀인 경우(스텝 S3; 예), 호스트 컴퓨터(4)에 대해 수신 제어부(25)를 통해서 버퍼 풀(오프라인)을 통지해서(스텝 S4), 수신 버퍼(31)에 기입할 수 없었던 수신 데이터와 버퍼 풀 통지 후에 수신한 수신 데이터를 서브 수신 버퍼(32)에 기입한다(스텝 S5). 스텝 S3에 있어서, 카운터(31B)의 값에 기초하여, 버퍼 풀에 상당하는지, 버퍼 풀에 상당하지 않는지를 판별할 수도 있다.
여기서, 제어부(21)는 리얼 타임 제어 커맨드 검출부(21B)의 기능에 의한 리얼 타임 제어 커맨드 검출 처리를 시작하며(스텝 S6), 또한 커맨드 검출부(21A)의 기능에 의한 커맨드 검출 처리를 시작하고(스텝 S7), 본 처리를 종료한다.
또한, 수신 버퍼(31)가 버퍼 풀이 아닌 경우에는(스텝 S3; 아니오), 스텝 S3로부터 스텝 S6으로 이행하여, 리얼 타임 제어 커맨드 검출 처리 및 커맨드 검출 처리를 실행하고, 본 처리를 종료한다.
도 6은, 도 5의 스텝 S6에서 시작되는 리얼 타임 제어 커맨드 검출 처리의 세부 사항을 나타내는 흐름도이다.
이 도 6에 나타낸 바와 같이, 리얼 타임 제어 커맨드 검출 처리에 있어서, 제어부(21)는, 우선 수신 버퍼(31)에 있어서의 리얼 타임 제어 커맨드 판독 포인터(31D)의 위치(어드레스)(RTRP)가 기입 포인터(31A)의 위치(어드레스)(WP)에 도달했는지 여부를 판별한다(스텝 S11). 리얼 타임 제어 커맨드 판독 포인터(31D)가 기입 포인터(31A)의 위치에 도달하지 않았다면(스텝 S11; 예), 제어부(21)는 리얼 타임 제어 커맨드 검출부(21B)의 기능에 의해 수신 버퍼(31) 내의 수신 데이터(D)를 판독해서, 리얼 타임 제어 커맨드를 검출한다(스텝 S12). 여기서, 제어부(21)는 판독된 수신 데이터(D)에 리얼 타임 제어 커맨드가 있는지 여부를 판별하여(스텝 S13), 리얼 타임 제어 커맨드가 없는 경우에는(스텝 S13; 아니오), 스텝 S11로 돌아가고, 리얼 타임 제어 커맨드를 검출한 경우에는(스텝 S13; 예), 검출한 리얼 타임 제어 커맨드를 커맨드 실행부(21C)에 의해 실행한다(스텝 S14). 여기서, 리얼 타임 제어 커맨드의 실행은 제어부(21)의 끼워넣기 처리로서 실행되기 때문에, 제어부(21)가 커맨드 실행부(21C)의 기능에 의해 실행되고 있는 동작이 있어도, 그 동작을 중단하고 리얼 타임 제어 커맨드가 실행되어, 스테이터스 통지, 현금통(44)의 열기 동작, 수신 버퍼(31) 및 서브 수신 버퍼(32)의 클리어 등이 실행된다. 그 후, 제어부(21)는 커맨드 실행부(21C)가 실행한 리얼 타임 제어 커맨드를 소거하고(스텝 S15), 스텝 S11로 돌아간다.
또한, 수신 버퍼(31)에 있어서 리얼 타임 제어 커맨드 판독 포인터(31D)의 위치가 기입 포인터(31A)의 위치에 도달한 경우(스텝 S11; 아니오), 제어부(21)는 서브 수신 버퍼(32)에 있어서의 검출 동작으로 이행한다(스텝 S16).
제어부(21)는 서브 수신 버퍼(32)의 리얼 타임 제어 커맨드 판독 포인터(32B)의 위치(RTRP)가, 기입 포인터(32A)의 위치(WP)에 도달했는지 여부를 판별하여(스텝 S17), 리얼 타임 제어 커맨드 판독 포인터(32B)가 기입 포인터(32A)의 위치에 도달하지 않았다면(스텝 S17; 예), 리얼 타임 제어 커맨드 검출부(21B)의 기능에 의해 서브 수신 버퍼(32) 내의 수신 데이터(D)를 판독하여, 리얼 타임 제어 커맨드를 검출한다(스텝 S18).
제어부(21)는 판독된 수신 데이터(D)에 리얼 타임 제어 커맨드가 있는지 여부를 판별하여(스텝 S19), 리얼 타임 제어 커맨드가 없는 경우에는(스텝 S19; 아니오), 스텝 S17로 돌아가고, 리얼 타임 제어 커맨드를 검출한 경우에는(스텝 S19; 예), 검출한 리얼 타임 제어 커맨드를 커맨드 실행부(21C)에 의해 실행한다(스텝 S20). 여기서, 리얼 타임 제어 커맨드의 실행은 끼워넣기 처리로서 실행되기 때문에, 제어부(21)가 커맨드 실행부(21C)의 기능에 의해 실행하고 있는 동작이 있어도, 그 동작을 중단하고 리얼 타임 제어 커맨드가 실행되어서, 스테이터스 통지, 현금통(44)의 열기 동작, 수신 버퍼(31) 및 서브 수신 버퍼(32)의 클리어 등이 실행된다. 그 후, 제어부(21)는 커맨드 실행부(21C)가 실행한 리얼 타임 제어 커맨드를 소거하고(스텝 S21), 스텝 S17로 돌아간다.
그리고, 서브 수신 버퍼(32)에 있어서 리얼 타임 제어 커맨드 판독 포인터(31D)의 위치가 기입 포인터(31A)의 위치에 도달한 경우(스텝 S17; 아니오), 본 처리를 종료한다.
도 7은, 도 5의 스텝 S7에서 시작되는 커맨드 검출 처리의 세부 사항을 나타내는 흐름도이다.
이 도 7에 나타낸 바와 같이, 커맨드 검출 처리에 있어서, 제어부(21)는 우선, 수신 버퍼(31)에 있어서의 판독 포인터(31C)의 위치(어드레스)(RP)가 기입 포인터(31A)의 위치(어드레스)(WP)에 도달했는지 여부를 판별하여(스텝 S31), 판독 포인터(31C)가 기입 포인터(31A)의 위치에 도달하지 않았다면(스텝 S31; 예), 커맨드 검출부(21A)의 기능에 의해 수신 버퍼(31) 내의 수신 데이터(D)를 판독해서, 커맨드를 검출한다(스텝 S32). 스텝 S31에 있어서, 제어부(21)는 카운터(31B)의 값에 기초하여, 판독 포인터(31C)의 위치가 기입 포인터(31A)의 위치에 도달했는지를 판별해도 된다.
여기서, 제어부(21)는 판독된 수신 데이터(D)에 커맨드가 있는지 여부를 판별하여(스텝 S33), 커맨드가 없는 경우에는(스텝 S33; 아니오), 스텝 S31로 돌아가고, 커맨드를 검출한 경우에는(스텝 S33; 예), 검출한 커맨드를 커맨드 실행부(21C)에 의해 실행한다(스텝 S34). 여기서, 검출된 커맨드는 수신 버퍼(31)에 격납된 순서로 커맨드 실행부(21C)에 의해 실행된다. 그 후, 제어부(21)는 커맨드 실행부(21C)가 실행한 커맨드를 소거한다(스텝 S35). 여기서, 제어부(21)는 커맨드를 소거하지 않고, 다음번에 덮어쓰기할 수도 있다.
여기서, 제어부(21)는 스테이터스 감시부(30)에 의해서, 프린터(2)에 오프라인 요인이 발생했는지 여부를 판별한다(스텝 S36). 오프라인 요인이 발생하지 않은 경우(스텝 S36; 아니오), 제어부(21)는 스텝 S31로 돌아가고, 오프라인 요인이 발생한 경우에는(스텝 S36; 예), 호스트 컴퓨터(4)에 대해 오프라인 통지를 송신하여(스텝 S37), 커맨드 실행부(21C)에 의한 커맨드의 실행을 정지함과 아울러 판독 포인터(31C)로부터의 판독을 정지하고(스텝 S38), 오프라인 요인이 해소될 때까지 대기한다(스텝 S39). 제어부(21)는 오프라인 요인이 해소된 경우에는 스텝 S31로 돌아가고, 오프라인 요인이 소정 시간 이내에 해소되지 않은 경우에는(스텝 S39; 아니오), 본 처리를 종료한다.
또한, 수신 버퍼(31)에 있어서 판독 포인터(31C)가 기입 포인터(31A)의 위치에 도달한 경우에는(스텝 S31; 아니오), 본 처리를 종료한다.
이상과 같이, 본 발명을 적용한 실시예에 따른 POS 단말(1)에 의하면, 호스트 컴퓨터(4)로부터 수신한 수신 데이터가 수신 버퍼(31)에 격납되고, 통상의 커맨드용 판독 포인터(31C)와 리얼 타임 제어 커맨드용 리얼 타임 제어 커맨드 판독 포인터(31D)로 각각 개별적으로 수신 버퍼(31)를 주사하여, 통상의 커맨드와 리얼 타임 제어 커맨드를 따로따로 검출한다. 이 때문에, 호스트 컴퓨터(4)로부터의 수신 데이터를 수신 버퍼(31)에 격납하고 나서 커맨드의 검출을 행하기 때문에, 호스트 컴퓨터(4)로부터 단시간에 대량의 데이터를 수신한 경우에도, 모든 데이터를 확실하게 수신하여, 빠짐없이 해석을 행하여 커맨드를 검출할 수 있다. 그리고, 통상의 커맨드와는 별도의 판독 포인터로 수신 버퍼를 주사하여 리얼 타임 제어 커맨드를 검출하기 때문에, 통상의 커맨드의 실행 상태에 영향받지 않고 리얼 타임 제어 커맨드를 신속하게 검출할 수 있다. 이 때문에, 수신 데이터가 대량이더라도 리얼 타임 제어 커맨드에 신속하게 응답할 수 있다.
여기서, 통상의 커맨드의 실행을 정지하는 오프라인 상태에 있어서도, 리얼 타임 제어 커맨드를 실행하도록 해도 된다. 이 경우에는, 오프라인 상태이더라도 리얼 타임 제어 커맨드에 신속하게 응답할 수 있다고 하는 이점이 있다.
또한, 프린터(2)는 수신 버퍼(31)가 버퍼 풀로 된 이후에 수신한 수신 데이터를 격납하는 서브 수신 버퍼(32)를 구비한다. 리얼 타임 제어 커맨드 검출부(21B)는, 서브 수신 버퍼(32)를 리얼 타임 제어 커맨드 판독 포인터(32B)로 주사하여, 리얼 타임 제어 커맨드를 검출하기 때문에, 수신 데이터의 용량이 많아서 수신 버퍼(31)가 버퍼 풀로 된 경우에도, 버퍼 풀로 된 이후에 수신한 수신 데이터로부터 리얼 타임 제어 커맨드를 검출해서 실행할 수 있다. 이 때문에, 대량의 수신 데이터를 수신한 경우에도 리얼 타임 제어 커맨드에 신속하게 응답할 수 있다. 또한, 버퍼 풀의 경우에는 통상, 커맨드의 검출이나 실행을 행하지 않는 오프라인 상태가 되지만, 본 발명의 구성에서는, 통상의 커맨드와는 별도로 리얼 타임 제어 커맨드를 검출하여 실행할 수 있기 때문에, 통상의 커맨드의 실행 상태에 영향받지 않고, 리얼 타임 제어 커맨드에 신속하게 응답할 수 있다.
또한, 수신 제어부(25)는 수신 데이터를 커맨드 검출부(21A) 및 리얼 타임 제어 커맨드 검출부(21B)에 의해 커맨드를 검출하기 전에, 직접 수신 버퍼(31)에 격납시키기 때문에, 호스트 컴퓨터(4)로부터 단시간에 대량의 데이터를 수신한 경우에도, 모든 데이터를 확실하게 수신하여, 빠짐없이 해석을 행해서 커맨드를 검출할 수 있다.
또한, 리얼 타임 제어 커맨드 판독 포인터(31D)가 판독 포인터(31C)보다 선행해서 수신 버퍼(31)가 주사되기 때문에, 통상의 커맨드의 검출 및 실행 상태에 영향받지 않고 리얼 타임 제어 커맨드를 신속하게 검출할 수 있다.
또한, 판독 포인터(31C)의 판독 위치를 카운트하는 카운터(31B)를 구비하며, 이 카운터(31B)는 리얼 타임 제어 커맨드 판독 포인터(31D)에 의한 주사로 카운트 업되지 않기 때문에, 통상의 커맨드의 검출 및 실행 상태에 영향받지 않고, 또한 통상의 커맨드의 검출 동작에 영향을 미치지 않도록, 리얼 타임 제어 커맨드를 신속하게 검출할 수 있다.
여기서, 도 8(a) 및 도 8(b)를 참조하여, 구체적인 호스트 컴퓨터(4)와 프린터(2)의 접속 형태를 예로 들어서 설명한다. 도 8(a)는 호스트 컴퓨터(4)와 프린터(2)를 USB 통신 인터페이스에 의해 접속되는 형태를 나타내고, 도 8(b)는 호스트 컴퓨터(4)와 프린터(2)를 RS232C 시리얼 통신 인터페이스에 의해 접속되는 형태를 나타낸다.
도 8(a)에 나타내는 예에서는, 호스트 컴퓨터(4)가 USB 컨트롤러(4A)를 구비하고, 수신 제어부(25)는 USB 컨트롤러(25A)를 구비하고 있으며, USB 컨트롤러(4A)와 USB 컨트롤러(25A) 사이에서, USB 커넥션이 확립되어, 데이터가 전송된다. USB 컨트롤러(4A)는 마스터 디바이스로서 기능하여, USB 컨트롤러(25A)는 슬레이브 디바이스로서 기능한다.
USB 컨트롤러(4A)와 USB 컨트롤러(25A) 사이에서는, 미리 설정된 크기의 패킷으로 데이터가 송수신된다. USB 컨트롤러(4A, 25A)는, USB 컨트롤러(4A)로부터 송신한 하나 또는 수 패킷을 USB 컨트롤러(25A)가 수신할 때마다, USB 컨트롤러(25A)로부터 수신 확인의 응답을 송신하는 제어를 행하는 것이 가능한 것외에, USB 컨트롤러(25A)의 응답없이 USB 컨트롤러(4A)로부터 통합된 수의 데이터 패킷을 송신하는 강제 송신 동작을 행할 수도 있다.
또한, USB 컨트롤러(25A)(전송부)는, USB 컨트롤러(4A)로부터 수신한 수신 데이터를, 제어부(21)의 제어를 거치지 않고 수신 버퍼(31)나 서브 수신 버퍼(32)에 격납하는 DMA 전송 기능을 갖춘다. 이 DMA 전송 기능에 의해서, USB 컨트롤러(25A)와 수신 버퍼(31)나 서브 수신 버퍼(32) 사이에서는 고속으로 데이터를 송수신할 수 있어서, 스루풋의 향상을 도모할 수 있다. 또한, 수신 데이터를 빠짐없이 수신 버퍼(31)에 격납해서 해석할 수 있다. 이 구성에 있어서, 상술한 바와 같이, 수신 버퍼(31)에 판독 포인터(31C)와는 별도로 리얼 타임 제어 커맨드 판독 포인터(31D)를 마련하고, 이 리얼 타임 제어 커맨드 판독 포인터(31D)로 수신 버퍼(31)를 주사하여 리얼 타임 제어 커맨드를 검출하며, 검출한 리얼 타임 제어 커맨드를 커맨드 실행부(21C)에 의해 끼워넣기 실행하기 때문에, 리얼 타임 제어 커맨드에 대해서 신속하고 또한 확실하게 응답할 수 있다.
또한, 수신 버퍼(31)가 버퍼 풀로 된 경우에도, 서브 수신 버퍼(32)에 수신 데이터를 격납하기 때문에, 강제 송신 기능에 의해 다량의 데이터가 한꺼번에 송신된 경우에도, 빠짐없이 리얼 타임 제어 커맨드를 수신해서 실행할 수 있다.
또한, 도 8(b)에 나타내는 예에서는, 호스트 컴퓨터(4)가 시리얼 통신 컨트롤러(4B)를 구비하고, 수신 제어부(25)는 시리얼 통신 컨트롤러(25B)를 구비하고 있으며, 시리얼 통신 컨트롤러(4B, 25B) 사이에서 시리얼 통신 케이블을 통해서 데이터가 송신된다. 시리얼 통신 컨트롤러(4B, 25B) 사이에서는 다양한 통신 프로토콜을 실행할 수 있으며, 예컨대 시리얼 통신 컨트롤러(4B)로부터 데이터를 송신한 후에, 시리얼 통신 컨트롤러(25B)가 데이터 수신 확인을 송신한 것을 확인하고 나서, 다음 데이터가 시리얼 통신 컨트롤러(4B)로부터 송신되는 순서를 실행해도 되며, 플로우 제어를 행하지 않은 무순서 통신으로 행할 수도 있다. 또한, 시리얼 통신 컨트롤러(25B)의 응답을 확인하지 않고 통합된 양의 데이터를 시리얼 통신 컨트롤러(4B)로부터 송신하는 강제 송신 동작을 행할 수도 있다.
또한, 시리얼 통신 컨트롤러(25B)는 시리얼 통신 컨트롤러(4B)로부터 수신한 수신 데이터를, 제어부(21)의 제어를 거치지 않고 수신 버퍼(31)에 격납한다. 이 기능에 의해서, 시리얼 통신 컨트롤러(4B, 25B) 사이에서 강제 송신이 행해진 경우에, 응답의 송수신에 의한 오버헤드를 줄여서 고속으로 데이터를 송수신할 수 있어서, 스루풋의 향상을 도모할 수 있고, 또한 수신 데이터를 빠짐없이 수신 버퍼(31)에 격납해서 해석할 수 있다. 이 구성에 있어서, 상술한 바와 같이, 수신 버퍼(31)에 판독 포인터(31C)와는 별도로 리얼 타임 제어 커맨드 판독 포인터(31D)를 마련하고, 이 리얼 타임 제어 커맨드 판독 포인터(31D)로 수신 버퍼(31)를 주사하여 리얼 타임 제어 커맨드를 검출하며, 검출한 리얼 타임 제어 커맨드를 커맨드 실행부(21C)에 의해 끼워넣기 실행하기 때문에, 리얼 타임 제어 커맨드에 대해 신속하고 또한 확실하게 응답할 수 있다. 또한, 수신 버퍼(31)가 버퍼 풀로 된 경우에 서브 수신 버퍼(32)에 수신 데이터를 격납하기 때문에, 강제 송신 기능에 의해 다량의 데이터가 한꺼번에 송신된 경우에도, 빠짐없이 리얼 타임 제어 커맨드를 수신해서 실행할 수 있다.
또한, 도 8(a)에 나타낸 바와 같이 USB 인터페이스를 거쳐서 데이터를 송수신하는 경우, USB 컨트롤러(25A)는 USB 컨트롤러(4A)로부터 수신한 수신 데이터의 일부를 유지하는 기능을 갖고 있기 때문에, 강제 송신 기능에 의해 다량의 데이터가 한꺼번에 송신된 경우에 일부의 데이터를 유지해 두고, 수신 버퍼(31)의 용량이 회복하고 나서, USB 컨트롤러(25A)가 유지하고 있었던 수신 데이터를 수신 버퍼(31)에 기입할 수 있다. 한편, 시리얼 통신 컨트롤러(25B)는 이러한 기능을 갖지 않는다. 본 실시예의 구성에서는, 수신 버퍼(31)에 더해서 서브 수신 버퍼(32)를 갖기 때문에, 수신 제어부(25) 자신이 수신 데이터를 유지하는 기능을 갖고 있던, 갖고 있지 않던, 빠짐없이 수신 데이터를 격납해서 리얼 타임 제어 커맨드를 검출하고 실행할 수 있다.
한편, 상기 실시예는 본 발명을 적용한 일 구체예를 나타내는 것으로, 본 발명은 이에 한정되는 것이 아니다. 예컨대, 상기 실시예에 있어서는, 수신 버퍼(31)와 서브 수신 버퍼(32)가 별체로서 프린터(2)에 마련된 구성을 예로 들어서 설명했지만, 본 발명은 이에 한정되는 것이 아니라, 수신 버퍼(31)와 서브 수신 버퍼(32)가 하나의 기억 디바이스 상에 가상적으로 분리되어 마련된 기억 영역이어도 된다. 또한, 도 2 및 도 3에 나타내는 각 기능부는 하드웨어와 소프트웨어의 협동에 의해 임의로 실현 가능하며, 특정한 하드웨어 구성을 시사하는 것이 아니다. 또한, 상기 실시예에서는, POS 단말(1)에 있어서, 영수증(101)을 인쇄하는 프린터(2)에 본 발명을 적용하는 경우에 대해서 설명했지만, 본 발명은 이에 한정되는 것이 아니라, 독립적으로 기능하는 프린터에, 각종 통신 수단을 통해서 호스트 컴퓨터(4)를 접속한 구성을 취할 수 있으며, 예컨대, LAN을 통해서 프린터(2)가 복수의 호스트 컴퓨터(4)에 접속되어 있어도 된다. 또한, 예컨대, 호스트 컴퓨터(4)와 수신 제어부(25)가 실행하는 통신 프로토콜이나 통신 규격은 특별히 제한되지 않으며, 임의의 것을 적용할 수 있다. 또한, 상기 실시예에서는, 프린터(2) 자신이 제어부(21), 수신 제어부(25), 수신 버퍼(31) 및 서브 수신 버퍼(32)를 구비한 구성을 예로 들어 설명했지만, 예컨대, 제어부(21), 수신 제어부(25), 수신 버퍼(31) 및 서브 수신 버퍼(32)를 구비한 제어 장치를, 프린터(2)에 외부 접속되는 별도의 장치로 해도 된다.
또한, 본 발명을 적용할 수 있는 기록 장치는, 커맨드에 따라서 동작 가능한 프린터라면 특별히 제한되지 않으며, 잉크젯식 프린터, 도트 임펙트식 프린터, 레이저 프린터, 열승화형 프린터 중 어느 것이어도 되고, 다른 방식으로 문자나 화상을 형성하는 프린터이어도 되며, 다른 장치에 장착되는 프린터이어도 된다. 또한, 전자 매체에 기록하는 것이어도 된다.
또한, 본 발명을 적용할 수 있는 프로그램은, 호스트 컴퓨터(4)에 탑재되는 프린터 드라이버에 포함하는 것이어도 된다.
또한, 상기 실시예에서는, 제어부(21)가 실행하는 제어 프로그램(24A)은 EEPROM(24)에 기억되어 있다. 그러나, 기억되는 기록 매체는 이에 한정되는 것이 아니다. 예컨대, 반도체 메모리나, 광학적으로 읽고 쓰기 가능한 디스크나, 자기적으로 읽고 쓰기 가능한 디스크 등이어도 된다. 이들 기록 매체에 기록된 프로그램은, 기입 판독을 행하는 드라이브 장치를 경유하여, EEPROM(24)에 기억되고, 제어부(21)에서 실행된다.
1 : POS단말 2 : 프린터(기록 장치)
4 : 호스트 컴퓨터 20 : 프린트 엔진
21 : 제어부 21A : 커맨드 검출부
21B : 리얼 타임 제어 커맨드 검출부(즉시 처리 커맨드 검출부)
21C : 커맨드 실행부 24 : EEPROM
24A : 제어 프로그램(프로그램) 25 : 수신 제어부
25A : USB 컨트롤러(전송부) 31 : 수신 버퍼
31C : 판독 포인터(제 1 판독 포인터)
31D : 리얼 타임 제어 커맨드 판독 포인터(제 2 판독 포인터)
32 : 서브 수신 버퍼(즉시 처리 커맨드용 버퍼)
4 : 호스트 컴퓨터 20 : 프린트 엔진
21 : 제어부 21A : 커맨드 검출부
21B : 리얼 타임 제어 커맨드 검출부(즉시 처리 커맨드 검출부)
21C : 커맨드 실행부 24 : EEPROM
24A : 제어 프로그램(프로그램) 25 : 수신 제어부
25A : USB 컨트롤러(전송부) 31 : 수신 버퍼
31C : 판독 포인터(제 1 판독 포인터)
31D : 리얼 타임 제어 커맨드 판독 포인터(제 2 판독 포인터)
32 : 서브 수신 버퍼(즉시 처리 커맨드용 버퍼)
Claims (13)
- 호스트 컴퓨터에 접속 가능하고, 상기 호스트 컴퓨터로부터 수신하는 커맨드를 포함한 수신 데이터에 기초해서 기록을 행하는 기록 장치로서,
상기 호스트 컴퓨터로부터 수신한 상기 수신 데이터를 격납하는 수신 버퍼와,
제 1 판독 포인터로 상기 수신 버퍼를 주사하면서 상기 수신 버퍼에 격납된 상기 수신 데이터를 판독해서, 상기 수신 데이터에 포함된 상기 커맨드를 검출하는 커맨드 검출부와,
상기 제 1 판독 포인터와는 별도로 마련된 제 2 판독 포인터로 상기 수신 버퍼를 주사하면서 상기 수신 버퍼에 격납된 상기 수신 데이터를 판독해서, 상기 수신 데이터에 포함된 즉시 처리 커맨드를 검출하는 즉시 처리 커맨드 검출부와,
상기 커맨드 검출부에 의해 검출된 상기 커맨드를, 상기 수신 버퍼에의 상기 커맨드의 격납 순서로 처리하고, 상기 즉시 처리 커맨드 검출부에 의해 검출된 상기 즉시 처리 커맨드를 상기 수신 버퍼에의 격납 순서에 관계없이 다른 커맨드보다 우선하여 처리하는 커맨드 실행부와,
상기 수신 버퍼의 버퍼 풀 상태를 상기 호스트 컴퓨터에 통지하는 제어부와,
상기 호스트 컴퓨터에 상기 수신 버퍼의 버퍼 풀 상태를 통지한 후에 수신한 상기 수신 데이터를 격납하는 즉시 처리 커맨드용 버퍼
를 구비하고,
상기 즉시 처리 커맨드 검출부는 상기 제 2 판독 포인터를 상기 수신 버퍼에서 주사시킨 후에 상기 즉시 처리 커맨드용 버퍼에서 주사시키고, 상기 즉시 처리 커맨드를 검출하고, 상기 커맨드 검출부는 상기 즉시 처리 커맨드용 버퍼에서 상기 제 1 판독 포인터를 주사시키지 않는 것
을 특징으로 하는 기록 장치.
- 제 1 항에 있어서,
상기 제어부는 상기 수신 버퍼의 버퍼 풀 상태를 상기 호스트 컴퓨터에 통지하고 오프라인으로 이행하고,
상기 즉시 처리 커맨드용 버퍼에, 상기 제어부가 오프라인으로 이행한 후에 수신한 상기 수신 데이터를 저장하는 것
을 특징으로 하는 기록 장치.
- 제 1 항에 있어서,
상기 제 2 판독 포인터가 상기 제 1 판독 포인터보다 선행하도록 상기 수신 버퍼가 주사되는 것을 특징으로 하는 기록 장치.
- 제 1 항에 있어서,
상기 제 2 판독 포인터에 의해 검출된 상기 즉시 처리 커맨드가, 상기 제 1 판독 포인터에 의해 다시 한번 검출되었을 때, 상기 커맨드 실행부는, 상기 즉시 처리 커맨드를 중복해서 처리하지 않는 것을 특징으로 하는 기록 장치.
- 제 1 항에 있어서,
상기 커맨드 검출부 및 상기 즉시 처리 커맨드 검출부가 각각 상기 수신 데이터에 포함된 상기 커맨드를 검출하기 전에, 상기 호스트 컴퓨터로부터 수신한 상기 수신 데이터를 상기 수신 버퍼에 격납시키는 수신 제어부를 더 구비하는 것을 특징으로 하는 기록 장치.
- 제 5 항에 있어서,
상기 수신 제어부는, 상기 호스트 컴퓨터의 인터페이스로부터 수신한 상기 수신 데이터를 직접 상기 수신 버퍼로 전송하는 전송부를 구비하는 것을 특징으로 하는 기록 장치.
- 호스트 컴퓨터에 접속 가능하고, 상기 호스트 컴퓨터로부터 수신한 커맨드를 포함하는 수신 데이터에 기초해서 기록을 행하는 기록 장치를 제어하기 위한 제어 방법으로서,
상기 호스트 컴퓨터로부터 수신한 상기 수신 데이터를 수신 버퍼에 격납하는 공정과,
제 1 판독 포인터로 상기 수신 버퍼를 주사하면서 상기 수신 버퍼에 격납된 상기 수신 데이터를 판독해서, 상기 수신 데이터에 포함된 상기 커맨드를 검출하는 공정과,
상기 제 1 판독 포인터와는 별도로 마련된 제 2 판독 포인터로 상기 수신 버퍼를 주사하면서 상기 수신 버퍼에 격납된 상기 수신 데이터를 판독해서, 상기 수신 데이터에 포함된 즉시 처리 커맨드를 검출하는 공정과,
검출된 상기 커맨드를, 상기 수신 버퍼에의 상기 커맨드의 격납 순서로 처리하고, 검출한 상기 즉시 처리 커맨드를, 상기 수신 버퍼에의 상기 커맨드의 상기 격납 순서에 관계없이, 다른 커맨드보다 우선하여 처리하는 공정과,
상기 수신 버퍼의 버퍼 풀 상태를 상기 호스트 컴퓨터에 통지한 경우에, 통지 후에 수신한 상기 수신 데이터를 즉시 처리 커맨드용 버퍼에 격납하는 공정과,
상기 제 2 판독 포인터를 상기 수신 버퍼에서 주사시킨 후에 상기 즉시 처리 커맨드용 버퍼에서 주사시키고, 상기 즉시 처리 커맨드를 검출하고, 상기 즉시 처리 커맨드용 버퍼에서 상기 제 1 판독 포인터를 주사시키지 않는 공정 구비하는 것을 특징으로 하는 기록 장치의 제어 방법.
- 제 7 항에 있어서,
상기 수신 데이터를 상기 즉시 처리 커맨드용 버퍼에 격납하는 공정은, 상기 수신 버퍼의 버퍼 풀 상태를 상기 호스트 컴퓨터에 통지하고 오프라인으로 이행하고,
상기 즉시 처리 커맨드용 버퍼에, 상기 오프라인으로 이행한 후에 수신한 상기 수신 데이터를 저장하는 것
을 구비하는 것을 특징으로 하는 기록 장치의 제어 방법.
- 제 7 항에 있어서,
상기 제 2 판독 포인터가 상기 제 1 판독 포인터보다 선행하도록 상기 수신 버퍼가 주사되는 것을 특징으로 하는 기록 장치의 제어 방법.
- 제 7 항에 있어서,
상기 제 2 판독 포인터에 의해 검출된 상기 즉시 처리 커맨드가, 상기 제 1 판독 포인터에 의해 다시 한번 검출되었을 때, 상기 즉시 처리 커맨드가 중복해서 처리되지 않는 것을 특징으로 하는 기록 장치의 제어 방법.
- 제 7 항에 있어서,
상기 수신 데이터에 포함된 상기 커맨드가 검출되기 전에, 상기 호스트 컴퓨터로부터 수신한 상기 수신 데이터가 상기 수신 버퍼에 격납되는 것을 특징으로 하는 기록 장치의 제어 방법.
- 제 11 항에 있어서,
상기 호스트 컴퓨터의 인터페이스로부터 수신한 상기 수신 데이터가 직접 상기 수신 버퍼에 전송되는 것을 특징으로 하는 기록 장치의 제어 방법.
- 호스트 컴퓨터에 접속 가능하고, 상기 호스트 컴퓨터로부터 수신한 커맨드를 포함하는 수신 데이터에 기초해서 기록을 행하는 기록 장치의 제어부에, 청구항 7에 기재된 기록 장치의 제어 방법을 구현한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009262005A JP5593682B2 (ja) | 2009-11-17 | 2009-11-17 | プリンター、プリンターの制御方法、及び、プログラム |
JPJP-P-2009-262005 | 2009-11-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110055420A KR20110055420A (ko) | 2011-05-25 |
KR101838747B1 true KR101838747B1 (ko) | 2018-04-26 |
Family
ID=43639998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100113770A KR101838747B1 (ko) | 2009-11-17 | 2010-11-16 | 기록 장치, 기록 장치의 제어 방법, 및 기록 매체 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8595395B2 (ko) |
EP (1) | EP2323073B1 (ko) |
JP (1) | JP5593682B2 (ko) |
KR (1) | KR101838747B1 (ko) |
CN (1) | CN102145597B (ko) |
BR (1) | BRPI1004605A2 (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5817193B2 (ja) | 2011-04-15 | 2015-11-18 | セイコーエプソン株式会社 | 記録装置、記録装置の制御方法、及び、プログラム |
CN102765263B (zh) * | 2012-07-11 | 2015-09-02 | 杭州大正恒科技有限责任公司 | 一种打印机装置 |
KR102029806B1 (ko) * | 2012-11-27 | 2019-10-08 | 삼성전자주식회사 | 선입선출 버퍼를 포함하는 시스템 온 칩, 응용 프로세서 및 그것을 포함하는 모바일 장치 |
CN103253003A (zh) * | 2013-05-27 | 2013-08-21 | 江苏天使电子科技有限公司 | 支票打印机 |
JP6241383B2 (ja) * | 2014-07-14 | 2017-12-06 | 京セラドキュメントソリューションズ株式会社 | 画像形成装置及び画像形成システム |
CN106652265B (zh) * | 2016-11-11 | 2023-02-28 | 深圳怡化电脑股份有限公司 | 一种自助终端的出票装置及自助终端 |
JP7172244B2 (ja) * | 2018-07-26 | 2022-11-16 | セイコーエプソン株式会社 | 印刷装置、及び印刷装置の制御方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020018229A1 (en) * | 2000-07-26 | 2002-02-14 | Motohiro Nakamaki | Printer, printer control method, program therefor, and recording medium storing the program |
US20040199732A1 (en) | 2003-04-07 | 2004-10-07 | Kelley Timothy M. | System and method for processing high priority data elements |
US20050200895A1 (en) | 1997-09-09 | 2005-09-15 | Canon Kabushiki Kaisha | Communication control method and apparatus, and communication system |
JP2008015823A (ja) * | 2006-07-06 | 2008-01-24 | Citizen Holdings Co Ltd | 通信装置および通信制御方法、並びに当該通信装置を備えたプリンタ |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5448702A (en) * | 1993-03-02 | 1995-09-05 | International Business Machines Corporation | Adapters with descriptor queue management capability |
JPH06262809A (ja) * | 1993-03-12 | 1994-09-20 | Canon Inc | プリンタ制御方式 |
US5754764A (en) * | 1994-02-22 | 1998-05-19 | National Semiconductor Corp. | Combination of input output circuitry and local area network systems |
JP3518833B2 (ja) * | 1996-09-27 | 2004-04-12 | 株式会社リコー | 情報処理装置及び画像形成装置 |
JP3582696B2 (ja) * | 1998-09-29 | 2004-10-27 | 富士ゼロックス株式会社 | プリンタ、サーバ装置、クライアント装置、印刷制御装置、印刷システム、記録媒体、及び印刷方法 |
JP4865140B2 (ja) * | 2000-03-17 | 2012-02-01 | セイコーエプソン株式会社 | プリンタ、受信データの処理方法及びプログラム |
JP2001260435A (ja) * | 2000-03-17 | 2001-09-25 | Ricoh Co Ltd | 画像形成装置 |
JP2002120094A (ja) | 2000-10-16 | 2002-04-23 | Babcock Hitachi Kk | 開先合せ用架台 |
JP3826066B2 (ja) * | 2002-04-15 | 2006-09-27 | キヤノン株式会社 | 記録装置及び記録装置の制御方法 |
CN100350373C (zh) * | 2003-01-31 | 2007-11-21 | 佳能株式会社 | 图像提供装置、记录设备、记录系统及其控制方法 |
JP4536361B2 (ja) * | 2003-11-28 | 2010-09-01 | 株式会社日立製作所 | データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法 |
TWI268669B (en) * | 2005-05-27 | 2006-12-11 | Bluepacket Communications Co Ltd | System and method for wireless signal transmission establishing an inter-transmission and exchange of files between a computer peripheral and a host system through a wireless signal transmission module |
US7984084B2 (en) * | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
JP5135929B2 (ja) * | 2007-07-17 | 2013-02-06 | セイコーエプソン株式会社 | 複合処理装置、複合処理システム及び複合処理システムの制御方法 |
US20090027714A1 (en) * | 2007-07-25 | 2009-01-29 | Kuhn William C | Job startup control for job queuing |
-
2009
- 2009-11-17 JP JP2009262005A patent/JP5593682B2/ja not_active Expired - Fee Related
-
2010
- 2010-11-11 BR BRPI1004605-4A patent/BRPI1004605A2/pt not_active Application Discontinuation
- 2010-11-12 CN CN201010548824.4A patent/CN102145597B/zh not_active Expired - Fee Related
- 2010-11-15 US US12/946,786 patent/US8595395B2/en not_active Expired - Fee Related
- 2010-11-16 KR KR1020100113770A patent/KR101838747B1/ko active IP Right Grant
- 2010-11-17 EP EP10191486.9A patent/EP2323073B1/en not_active Not-in-force
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050200895A1 (en) | 1997-09-09 | 2005-09-15 | Canon Kabushiki Kaisha | Communication control method and apparatus, and communication system |
US20020018229A1 (en) * | 2000-07-26 | 2002-02-14 | Motohiro Nakamaki | Printer, printer control method, program therefor, and recording medium storing the program |
US20040199732A1 (en) | 2003-04-07 | 2004-10-07 | Kelley Timothy M. | System and method for processing high priority data elements |
JP2008015823A (ja) * | 2006-07-06 | 2008-01-24 | Citizen Holdings Co Ltd | 通信装置および通信制御方法、並びに当該通信装置を備えたプリンタ |
Also Published As
Publication number | Publication date |
---|---|
JP5593682B2 (ja) | 2014-09-24 |
BRPI1004605A2 (pt) | 2012-07-03 |
KR20110055420A (ko) | 2011-05-25 |
CN102145597A (zh) | 2011-08-10 |
US20110119415A1 (en) | 2011-05-19 |
US8595395B2 (en) | 2013-11-26 |
EP2323073A2 (en) | 2011-05-18 |
EP2323073B1 (en) | 2018-09-05 |
CN102145597B (zh) | 2015-03-25 |
EP2323073A3 (en) | 2017-05-31 |
JP2011104861A (ja) | 2011-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101838747B1 (ko) | 기록 장치, 기록 장치의 제어 방법, 및 기록 매체 | |
US7869063B2 (en) | Printing apparatus, printer control method, printer control program, and printing system | |
US7503712B2 (en) | Printing apparatus for selecting the appropriate error state mode according to the application type and user desired print results | |
JP4802734B2 (ja) | プリンタ、ホストコンピュータ、印刷システム及び印刷システムの制御方法 | |
US8006051B2 (en) | Data processing device having a maintenance counter function | |
US6886050B2 (en) | Method for controlling a communication terminal device and rewritable storage medium having initialization setting data | |
US8769215B2 (en) | Recording device, recording device control method, and storage medium | |
WO2012010073A1 (zh) | 打印系统及其控制方法、信息记录器 | |
JP4084977B2 (ja) | 記録装置 | |
US20070086047A1 (en) | Image forming system, host device, image forming apparatus and image forming method using the same | |
US9058133B2 (en) | Control device, control method for a control device, and recording medium | |
US8769170B2 (en) | Electronic device, control method for an electronic device, and recording medium | |
JP5298702B2 (ja) | 画像形成装置 | |
KR20070054172A (ko) | 화상형성시스템, 호스트디바이스, 화상형성장치 및 이를이용한 화상형성방법 | |
JP5318652B2 (ja) | 非接触icリードライトシステム、非接触icリーダライタ装置およびプリンタ装置 | |
JP2010167613A (ja) | 情報記録装置 | |
JP2924453B2 (ja) | 印字装置 | |
JP2000168200A (ja) | 印字装置、その動作履歴の通知方法及び記録媒体 | |
JP2007055142A (ja) | プリンタ及びプリンタの制御方法 | |
JP2000132357A (ja) | 端末装置 | |
JPH06316137A (ja) | 記録ネットワ−クシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |