KR100297983B1 - 인쇄데이터포맷 변환장치 - Google Patents

인쇄데이터포맷 변환장치 Download PDF

Info

Publication number
KR100297983B1
KR100297983B1 KR1019990024083A KR19990024083A KR100297983B1 KR 100297983 B1 KR100297983 B1 KR 100297983B1 KR 1019990024083 A KR1019990024083 A KR 1019990024083A KR 19990024083 A KR19990024083 A KR 19990024083A KR 100297983 B1 KR100297983 B1 KR 100297983B1
Authority
KR
South Korea
Prior art keywords
data
address
read
start address
write
Prior art date
Application number
KR1019990024083A
Other languages
English (en)
Other versions
KR20000006435A (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 KR1019990024083A priority Critical patent/KR100297983B1/ko
Publication of KR20000006435A publication Critical patent/KR20000006435A/ko
Application granted granted Critical
Publication of KR100297983B1 publication Critical patent/KR100297983B1/ko

Links

Classifications

    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47HFURNISHINGS FOR WINDOWS OR DOORS
    • A47H5/00Devices for drawing draperies, curtains, or the like
    • A47H5/02Devices for opening and closing curtains
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47HFURNISHINGS FOR WINDOWS OR DOORS
    • A47H5/00Devices for drawing draperies, curtains, or the like
    • A47H5/02Devices for opening and closing curtains
    • A47H2005/025Devices for opening and closing curtains controlled by electronic sensors
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C2201/00Transmission systems of control signals via wireless link
    • G08C2201/90Additional features
    • G08C2201/92Universal remote control

Landscapes

  • Record Information Processing For Printing (AREA)

Abstract

본 발명은 예컨대 팩시밀리장치 등에 채용되어 서멀헤드 등을 위한 수평 인쇄방식의 데이터포맷을 잉크젯 프린터나 버블젯 프린터 등의 수직 인쇄방식의 데이터 포맷으로 변환하기 위한 인쇄데이터포맷 변환장치에 관한 것이다.
본 발명은 1 라인당 N 바이트의 데이터를 수평인쇄하도록 된 수평인쇄방식의 인쇄데이터포맷을 한 번에 M 바이트의 단위로 수직인쇄를 실행하도록 된 수직인쇄방식의 인쇄데이터포맷으로 변환하도록 된 인쇄데이터포맷 변환장치에 있어서, 1회의 DMA 동작 싸이클에 대응하여 소정의 독출개시 어드레스 데이터에 대하여 상기 N값에 대응하는 독출어드레스 오프셋값 데이터를 가산하여 상기 제1 저장영역으로부터 K 바이트의 데이터를 독출하기 위한 독출어드레스 데이터를 생성하고, 소정의 기록개시 어드레스 데이터에 대하여 상기 M값에 대응하는 기록어드레스 오프셋값 데이터를 가산하여 상기 제2 저장영역에 대해 K 바이트의 데이터를 기록하기 위한 기록어드레스 데이터를 생성하는 어드레스 발생수단과, 데이터 메모리수단으로부터 독출된 K 바이트의 데이터를 동일한 비트끼리 분리조합하여 상기 제2 저장영역에 저장되기 위한 K 바이트의 데이터를 생성하는 데이터포맷 변환수단을 구비함과 더불어 CPU에 대하여 버스요구신호를 출력하고 CPU로부터 버스허가신호가 입력되면 상기 어드레스 발생수단을 제어하여 데이터포맷 변환동작을 실행제어하는 DMA 콘트롤수단을 포함하여 구성된다.
즉, 본 발명에 있어서는 인쇄데이터포맷 변환동작이 DMA 콘트롤수단에 의한DMA 동작을 통해 실행되게 되므로, 데이터포맷 변환을 위한 CPU의 부담이 대폭 경감되게 되고, 또한 데이터 변환속도를 고속으로 실행할 수 있게 된다. 또한, 어드레스 발생수단에 셋트되는 기록어드레스 오프셋값 데이터와 독출어드레스 오프셋값 데이터를 변경하는 것으로 다양한 프린터 엔진의 사양에 대응할 수 있게 된다.

Description

인쇄데이터포맷 변환장치{Apparatus for converting print data format}
본 발명은 예컨대 팩시밀리장치 등에 채용되어 서멀헤드 등을 위한 수평 인쇄방식의 데이터포맷을 잉크젯 프린터나 버블젯 프린터 등의 수직 인쇄방식의 데이터 포맷으로 변환하기 위한 인쇄데이터포맷 변환장치에 관한 것이다.
현재, 일반 가정이나 회사 등에 있어서는 원고나 문서 등을 상호 송수신할 수 있도록 된 팩시밀리장치가 널리 보급되어 사용되고 있으며, 최근에는 기존의PSTN망이 아닌 인터넷망 등을 통해 상호 문서데이터를 송수신할 수 있도록 된 인터넷 팩시밀리장치도 개발되어 보급되고 있다.
도 1은 현재 일반적으로 사용되고 있는 팩시밀리장치의 구성을 개략적으로 나타낸 블록구성도이다. 도면에서 참조번호 1은 원고나 문서를 이미지 스캐닝하여 그에 대응하는 화상데이터를 출력하는 스캐너이고, 2는 PSTN 망이나 인터넷망에 결합되어 다른 팩시밀리장치나 그 밖의 다른 화상데이터 송수신장치와 데이터 송수신을 실행하는 모뎀부, 3은 이 모뎀(2)을 통해서 수신된 화상데이터를 저장하기 위한 수신데이터 저장부(3a)와 상기 스캐너(1)에 의해 이미지 스캐닝된 화상 데이터를 저장하기 위한 스캔데이터 저장부(3b)를 구비하여 송수신 데이터를 저장하는 데이터 메모리, 4는 상기 데이터 메모리(3)에 저장되는 수신 데이터 및 스캔 데이터를 문서로서 출력하기 위한 인쇄부이다.
또한, 도면에서 참조번호 5는 팩시밀리장치 전체를 제어하기 위한 CPU이다. 이 CPU(5)는 특히 상기 스캐너(1)에 의해 이미지 스캐닝된 화상데이터를 소정의 알고리즘에 따라 압축하여 모뎀부(2)로 출력하게 된다. 그리고, 모뎀부(2)를 통해 수신된 상대방 팩시밀리장치나 화상데이터 송수신장치로부터의 화상데이터는 소정의 알고리즘에 따라 신장처리하여 데이터 메모리(3)에 저장한 후 인쇄부(4)를 통해서 출력제어하게 된다.
즉, 상기 구성에 있어서는 문서 송신시, 스캐너(1)에 의해 이미지 스캐닝된 데이터는 데이터 메모리(3)의 스캔데이터 저장부(3b)에 저장되고, CPU(5)는 상기 스캔데이터 저장부(3b)에 저장된 화상 데이터를 압축처리하여 모뎀부(2)로 출력하게 된다. 그리고, 문서수신시에는 모뎀부(2)를 통해 수신된 화상데이터가 데이터 메모리(3)의 수신데이터 저장부(3a)에 저장되게 되고, CPU(5)는 상기 수신데이터 저장부(3a)에 저장되어 있는 수신데이터를 신장처리하여 인쇄부(4)로 출력하게 된다. 또한, 사용자가 스캐너(1)를 통해 이미지 스캐닝된 화상데이터에 대해 인쇄명령을 입력한 경우에는 CPU(5)는 상기 데이터 메모리(3)의 스캔데이터 저장부(3b)에 저장되어 있는 화상데이터를 인쇄부(4)로 출력제어함으로써 스캐닝 입력된 화상 데이터를 문서로서 출력하게 된다.
한편, 상기한 구성에 있어서 인쇄부(4)는 통상 열전사 헤드(Thermal Print Head)를 이용하는 감열기록방식을 채용하고 있다. 상기한 열전사 헤드는 수평적으로 배열된 다수의 발열소자를 구비하여 구성되므로, 팩시밀리장치에 있어서 스캐너(1)로부터 출력되는 이미지 스캐닝 데이터와 모뎀(2)을 통해 송수신되는 데이터는 수평 인쇄방식의 데이터포맷을 갖도록 규격화되어 있다.
도 2a는 종래의 수평 인쇄방식의 데이터포맷 구성을 설명하기 위한 도면으로서, 이는 예컨대 수평방향으로 324바이트, 즉 2592 돗트의 화소를 인쇄할 수 있도록 된 열전사 헤드를 사용하는 경우를 예로 들어 나타낸 것이다. 즉, 도면에서 알 수 있는 바와 같이 종래의 팩시밀리장치에 있어서는 열전사 헤드에 대하여 순차적으로 324 바이트의 인쇄데이터를 공급하여 1라인에 대한 인쇄를 실행한 후, 이어 다음의 324 바이트의 인쇄데이터를 열전사 헤드에 공급하는 방법으로 상대방 팩시밀리장치나 또는 스캐너(1)에 의해 이미지 스캐닝된 데이터를 인쇄하게 된다.
한편, 도 3은 상기 열전사 헤드에 대하여 공급할 인쇄데이터를 저장하는 데이터 메모리(3)의 메모리 맵구성을 나타낸 것으로, 데이터 메모리(3)에는 인쇄부(4)로 공급할 인쇄데이터가 그 공급순서에 따라 어드레스순으로 저장되어 있게 된다. 즉, 도 3에서 인쇄데이터가 저장되는 초기 어드레스가 6700BBH라 할 때 도 2에서 라인 1을 인쇄하기 위한 324 바이트의 데이터는 6700BBH∼6701FEH의 어드레스에 대해 순차적으로 저장되고, 또한 라인 2를 인쇄하기 위한 324 바이트의 데이터는 6701FFH∼670342H, …, 라인 7은 670853H∼670996H, …, 라인 56은 674657H∼674794H, … 의 어드레스에 대해 순차적으로 저장되게 된다.
그리고, 도 1에서 CPU(5)는 데이터 메모리(3)에 대해 어드레스 데이터를 순차적으로 증가시키면서 인쇄데이터를 독출하고, 그 독출된 인쇄데이터를 인쇄부(4)로 출력함으로써 모뎀부(2)를 통해 수신된 데이터나 스캐너(1)에 의해 이미지 스캐닝된 데이터를 문서로서 출력하게 된다.
그런데, 상기와 같이 열전사 헤드를 이용하는 팩시밀리장치에 있어서는 그 기록방식으로서 감열기록방식을 채용하고 있는데, 이러한 감열기록방식은 일반 인쇄용지가 아닌 별도의 감열기록지를 사용하여야 하므로 사용자가 별도의 기록지를 구비하여야 하는 번거로움이 있게 된다. 또한, 상기한 감열기록방식은 일반적으로 그 인자품질이 매우 낮고, 특히 상기 감열기록지는 열에 취약하여 그 출력문서를 안전하게 보관하는 것이 매우 어렵기 때문에 통상 팩시밀리장치를 통해 출력된 문서는 복사장치를 통해 복사하여 보관하도록 하고 있는 바, 이는 사용자에게 큰 불편함을 초래하게 된다.
따라서, 상기한 사정을 고려하여 최근에는 팩시밀리장치에 레이저빔 프린터나 잉크젯 프린터, 또는 버블젯 프린터를 채용함으로써 고품위의 인쇄문서를 제공하고자 하는 시도가 이루어지고 있고, 특히 상기 레이저빔 프린터는 그 가격이 고가인 점을 고려하여 잉크젯 프린터나 버블젯 프린터를 채용하고자 하는 시도가 이루어지고 있다.
그러나, 팩시밀리장치에 잉크젯이나 버블젯 프린터를 채용함에 있어서는 다음과 같은 문제가 있게 된다.
일반적으로 팩시밀리장치와 같이 열전사 헤드를 채용하도록 된 장치, 즉 수평 인쇄방식을 채용하는 장치에 있어서는 도 2에서 설명한 바와 같이 그 인쇄동작이 수평라인단위로 이루어지게 되므로, 도 1에서 스캐너(1)나 모뎀부(2)를 통해서 입력되는 화상데이터는 각각의 인쇄라인에 대응하여 순차적으로 입력되게 되고, 이러한 입력 화상 데이터는 도 3에서 설명한 바와 같이 데이터 메모리(3)에 어드레스순으로 순차 저장되게 된다.
그런데, 잉크젯 프린터나 버블젯 프린터와 같이 수직 인쇄방식을 채용하고 있는 프린터에 있어서는 해당 프린터 헤드의 헤드핀이 인쇄용지에 대하여 수직방향으로 배열되므로, 프린터 헤드가 예컨대 수직방향으로 56개의 헤드핀을 구비하여 구성되는 경우에는 도 2b에서 빗금을 쳐서 나타낸 바와 같이 인쇄라인의 수직방향으로 예컨대 7바이트의 데이터씩 순차적으로 프린터 헤드에 공급하는 것이 요구되게 된다. 즉, 도 2에서 a, b, … 의 순으로 인쇄데이터를 공급하는 것이 필요하게 된다.
따라서, 수평인쇄방식에 따른 인쇄데이터를 잉크젯 프린터나 버블젯 프린터를 통해 인쇄하는 경우에는 그 인쇄데이터포맷을 변경할 필요가 있게 된다.
한편, 종래에는 상기한 데이터포맷 변환동작을 CPU에 의한 연산동작, 즉 소프트웨어적인 방법을 통해 실행하도록 된 것이 있었다. 이러한 소프트웨어적인 방법에 있어서는 CPU가 우선적으로 하나의 인쇄블록, 즉 라인1∼라인56에 대하여 최초의 데이터 바이트 B1을 데이터 메모리(3)로부터 각각 독출한 후, 그 최상위 데이터 비트(D7)를 근거로 7바이트의 인쇄데이터를 생성하여 프린터 헤드로 공급하고, 이어 상기 각 데이터 바이트 B1의 다음 데이터 비트 D6, D5, …, D0에 대하여 순차적인 데이터 변환을 실행하여 프린터 헤드에 공급하게 된다. 그리고, 이러한 동작을 라인1∼라인56의 각 데이터 바이트(B2∼B324)에 대하여 실행함으로써 하나의 인쇄 블록에 대한 인쇄동작을 실행하게 된다. 이어, CPU는 상기한 인쇄 블록(라인1∼라인56)에 대한 인쇄동작이 종료되면 그 다음의 인쇄 블록, 즉 라인57∼라인112에 대해 상술한 동작을 실행하는 방법을 통해 인쇄동작을 실행하게 된다.
그런데, 상술한 데이터 변환동작을 실행함에 있어서는 CPU는 도 3에 나타낸 데이터 메모리(3)에 대하여 우선적으로 라인1∼라인56에 대응하는 인쇄데이터 중 데이터 바이트 B1에 해당하는 어드레스 데이터, 즉 6700BBH, 6701FFH, …, 670853H, 670997H, …, 674657H를 생성하여 이를 근거로 상기 데이터 바이트 B1을 독출한 후, 이때 독출된 데이터 바이트를 데이터 변환하여 프린터 헤드로 공급하고, 이러한 일련의 동작을 B2∼B324의 각 데이터 바이트에 대하여 순차적으로 실행함으로써 하나의 인쇄 블록에 대한 인쇄동작을 종료하게 된다. 그리고, 이러한 복잡한 데이터 변환동작을 이어지는 다음의 인쇄 블록에 대해 또 다시 실행하는 번거로운 동작을 실행하여야 한다. 따라서, 상술한 종래의 방법에 있어서는 그 데이터 변환동작을 위한 소프트웨어를 구현하기에 대단히 어려운 작업이 수반됨은 물론이고, 또한 이를 소프트웨어적으로 구성하였다 하더라도 상기한 복잡한 처리과정은 CPU의 동작속도를 대폭적으로 저하시키게 됨으로써 결국 팩시밀리장치의 인쇄속도를 크게 저하시키게 된다.
이에, 본 발명은 상기한 사정을 감안하여 창출된 것으로서, 하드웨어적인 구성을 통해 수평 인쇄방식의 데이터포맷을 수직 인쇄방식의 데이터포맷으로 변환할 수 있도록 된 인쇄데이터포맷 변환장치를 제공함에 그 목적이 있다.
또한, 본 발명은 DMA(Direct Memory Access)방식을 통해 데이터 변환동작을 실행함으로써 CPU의 처리속도에 영향을 주지 않으면서 고속으로 데이터 변환을 실행할 수 있도록 된 인쇄데이터포맷 변환장치를 제공함에 그 다른 목적이 있다.
또한, 본 발명은 팩시밀리장치에 채용되는 프린터 헤드 또는 엔진의 사양에 따라 그 인쇄데이터포맷을 용이하게 변경설정할 수 있도록 된 인쇄데이터포맷 변환장치를 제공함에 또 다른 목적이 있다.
도 1은 일반적인 팩시밀리장치의 구성을 개략적으로 나타낸 블록구성도.
도 2는 수평인쇄방식에 따른 인쇄데이터포맷과 수직인쇄방식에 따른 인쇄데이터포맷을 설명하기 위한 도면.
도 3은 수평인쇄방식에 따른 인쇄데이터가 데이터 메모리에 저장된 형태를 나타낸 메모리맵도.
도 4는 본 발명의 일실시예에 따른 인쇄데이터포맷 변환장치를 나타낸 블록구성도.
도 5는 도 4에 나타낸 장치의 동작 타이밍도.
도 6 및 도 7은 본 발명의 기본적인 개념을 설명하기 도면.
도 8은 도 4에서 데이터포맷 변환부(72)의 구체적인 구성을 나타낸 회로구성도.
도 9는 도 8에 나타낸 장치의 데이터포맷 변환동작을 설명하기 위한 도면.
도 10은 본 발명에 의해 데이터포맷 변환된 인쇄데이터가 데이터 메모리에 저장된 형태를 나타낸 메모리맵도.
도 11은 도 4에서 어드레스 발생부(60)의 구성을 나타낸 구성도.
도 12는 도 11에서 개시어드레스 저장부(600)의 구체적인 구성을 나타낸 회로구성도.
도 13은 도 11에서 독출/기록 어드레스 생성부(750)의 구체적인 구성을 나타낸 회로구성도.
도 14는 본 발명에 따른 인쇄데이터포맷 변환장치의 동작을 설명하기 위한 동작타이밍도.
도 15는 본 발명에 따른 인쇄데이터포맷 변환장치를 하나의 디바이스로 구성한 경우를 나타낸 블록구성도.
**** 도면의 주요부분에 대한 간단한 설명 ****
40 : CPU, 50 : 데이터 메모리,
60 : 어드레스 발생부, 70 : DMA 콘트롤러,
80 : 타이머장치, 90 : 어드레스 버스,
100 : 데이터 버스.
상기 목적을 실현하기 위한 본 발명의 제1 관점에 따른 인쇄데이터포맷 변환장치는 1 라인당 N 바이트의 데이터를 수평인쇄하도록 된 수평인쇄방식의 인쇄데이터포맷을 한 번에 M 바이트의 단위로 수직인쇄를 실행하도록 된 수직인쇄방식의 인쇄데이터포맷으로 변환하도록 된 인쇄데이터포맷 변환장치에 있어서,
수평인쇄방식의 데이터가 어드레스 순으로 순차 저장되는 제1 저장영역과, 데이터포맷 변환된 수직인쇄방식의 데이터를 저장하기 위한 제2 저장영역을 구비하는 데이터 메모리수단과,
1회의 DMA 동작 싸이클에 대응하여 소정의 독출개시 어드레스 데이터에 대하여 상기 N값에 대응하는 독출어드레스 오프셋값 데이터를 가산하여 상기 제1 저장영역으로부터 K 바이트의 데이터를 독출하기 위한 독출어드레스 데이터를 생성하고, 소정의 기록개시 어드레스 데이터에 대하여 상기 M값에 대응하는 기록어드레스 오프셋값 데이터를 가산하여 상기 제2 저장영역에 대해 K 바이트의 데이터를 기록하기 위한 기록어드레스 데이터를 생성하는 어드레스 발생수단,
상기 데이터 메모리수단으로부터 독출된 K 바이트의 데이터를 동일한 비트끼리 분리조합하여 상기 제2 저장영역에 저장되기 위한 K 바이트의 데이터를 생성하는 데이터포맷 변환수단과, DMA동작 싸이클을 설정하기 위한 타이머를 구비하고, 상기 타이머로부터의 출력신호에 대응하여 CPU에 대하여 버스요구신호를 출력하고, CPU로부터 버스허가신호가 입력되면 상기 어드레스 발생수단을 제어하여 데이터포맷 변환동작을 실행제어하는 DMA 콘트롤수단,
상기 DMA 콘트롤수단으로부터 출력되는 버스요구신호의 횟수가 M값이 되면 인터럽트신호를 출력하는 계수수단 및,
상기 인터럽트신호에 대응하여 상기 어드레스 발생수단에 대하여 독출 및 기록개시 어드레스 데이터와 독출 및 기록 어드레스 오프셋값 데이터를 등록함과 더불어 상기 타이머를 구동제어하는 CPU를 포함하여 구성된 것을 특징으로 한다.
또한, 상기 기록어드레스 오프셋값 데이터는 M/K로 설정되는 것을 특징으로 한다.
또한, 상기 어드레스 발생수단은 상기 제1 저장영역으로부터 인쇄데이터를 독출하기 위한 독출개시 어드레스 데이터와 상기 제2 저장영역에 인쇄데이터를 기록하기 위한 기록개시어드레스 데이터를 저장하기 위한 개시어드레스 저장수단과, 상기 개시어드레스 저장수단에 저장되어 있는 독출개시 어드레스 데이터와 기록개시어드레스 데이터를 선택적으로 출력하기 위한 제1 멀티플렉서, 상기 제1 멀티플렉서로부터 출력되는 독출개시 어드레스 데이터를 순차적으로 증가시키기 위한 카운터, 독출/기록어드레스 오프셋값 저장수단을 구비하여, 상기 제1 멀티플렉서로부터 출력되는 독출 또는 기록 어드레스 데이터에 대하여 상기 독출/기록 어드레스 오프셋값을 선택적으로 가산하여 출력하는 독출/기록 어드레스 생성수단 및, 데이터 버스를 통해 입력되는 독출/기록 개시어드레스 데이터와, 상기 카운터 또는 독출/기록 어드레스 생성수단으로부터 출력되는 어드레스 데이터를 근거로 상기 개시어드레스 저장수단에 대해 개시어드레스 데이터를 등록하는 개시어드레스 설정수단을 구비하는 어드레스 발생수단을 포함하여 구성된 것을 특징으로 한다.
또한, 본 발명의 제2 관점에 따른 인쇄데이터포맷 변환장치는 데이터버스 및 어드레스버스와 결합되기 위한 포트를 구비하고,
상기 데이터버스를 통해 입력되는 독출 및 기록개시 어드레스 데이터와 독출 및 기록어드레스 오프셋값을 저장하기 위한 저장수단을 갖추고, 소정의 제어신호에 따라 상기 저장수단에 저장된 데이터를 근거로 독출 및 기록어드레스를 생성하는어드레스 발생수단과,
상기 어드레스 발생수단에서 생성된 독출 어드레스 데이터에 의해 독출된 소정 바이트의 데이터를 동일한 비트끼리 분리조합하는 데이터포맷 변환수단,
DMA 동작싸이클을 설정하기 위한 타이머를 구비하고, 상기 타이머로부터의 출력신호에 대응하여 버스요구신호를 출력하고, 버스허가신호가 입력되면 어드레스 발생수단과 데이터포맷 변환수단을 제어하여 데이터포맷 변환동작을 실행제어하는 DMA 콘트롤수단 및,
실행해야할 DMA 동작싸이클의 실행횟수를 저장하기 위한 저장수단을 구비하고, 상기 버스요구신호의 출력횟수를 계수하여 그 계수치가 상기 실행횟수에 도달하면 DMA 실행종료신호를 출력하는 계수수단을 포함하여 구성된 것을 특징으로 한다.
상기한 구성으로 된 본 발명에 의하면, 수평인쇄방식에 따른 인쇄데이터를 하드웨어적인 구성을 통하여 수직인쇄방식에 따른 인쇄데이터로 변환하게 되므로, 데이터변환을 위한 소프트웨어적인 부담이 대폭 경감되게 된다.
그리고, 상기한 인쇄데이터포맷 변환동작이 DMA 콘트롤수단에 의한 DMA 동작을 통해 실행되게 되므로, 데이터포맷 변환을 위한 CPU의 부담이 대폭 경감되게 되고, 또한 데이터 변환속도를 고속으로 실행할 수 있게 된다.
또한, 어드레스 발생수단에 셋트되는 기록어드레스 오프셋값 데이터와 독출어드레스 오프셋값 데이터를 변경하는 것으로 다양한 프린터 엔진의 사양에 대응할 수 있게 된다.
이하, 도면을 참조하여 본 발명에 따른 실시예를 설명한다.
도 4는 본 발명의 일실시예에 따른 인쇄데이터포맷 변환장치의 구성을 나타낸 블록구성도로서, 도 4에서 참조번호 40은 팩시밀리장치의 전체를 제어하기 위한 CPU이고, 50은 인쇄할 데이터와 데이터포맷 변환된 인쇄데이터가 저장되는 데이터 메모리, 60은 상기 CPU(40)로부터 입력되는 소정의 데이터값, 즉 독출개시 어드레스 데이터, 기록개시 어드레스 데이터, 독출어드레스 오프셋값(Source Address Offset Value) 및 기록어드레스 오프셋값(Destination Address Offset Value)과 이후에 설명할 DMA 콘트롤러(70)로부터 인가되는 각종 제어신호를 근거로 상기 데이터 메모리(50)에 대한 독출어드레스 및 기록어드레스를 생성하는 어드레스 발생부이다.
또한, 도면에서 참조번호 70은 상기 데이터 메모리(50)에 대한 DMA 동작을 제어하는 DMA 콘트롤러로서, 이는 DMA 동작 타이밍을 결정하기 위한 타이머(71)와, 상기 데이터 메모리(50)로부터 독출된 데이터, 즉 일반적인 수평 인쇄방식에 대응하는 포맷을 갖춘 데이터를 수직 인쇄방식에 따른 데이터포맷으로 변환하는 데이터포맷 변환부(72)를 구비하여 구성된다.
또한, 도면에서 참조번호 80은 상기 DMA 콘트롤러(70)로부터 출력되는 버스요구신호()가 클록신호 입력단(CK)에 결합되어, 그 버스요구신호()의 출력횟수를 계수하는 타이머 장치이다. 이 타이머 장치(80)는 내부에 계수값 데이터를 저장하기 위한 레지스터를 구비하여 상기 버스요구신호()의 계수치가 상기 계수값에 도달하게 되면 예컨대 하이레벨의 계수완료신호를 출력하게 되고, 이 계수완료신호는 CPU(40)에 인터럽트신호(INT)로서 입력되게 된다. 또한, 타이머장치(80)는 상기 계수완료신호와 더불어 구동정지신호(STOP)를 DMA 콘트롤러(70)로 입력함으로써 DMA 콘트롤러(70)의 구동을 정지시키게 된다.
또한, 상기 타이머 장치(80)로부터 출력되는 계수완료신호는 예컨대 시프트 레지스터로 구성되는 지연회로(81)를 통해 OR 게이트(82)의 입력으로서 결합되고, OR 게이트(82)는 이 지연회로(81)의 출력과 시스템 리셋트신호(RESET)를 논리합하여 그 결과신호를 상기 타이머 장치(80)에 클리어신호로서 입력하게 된다. 즉, 상기 타이머 장치(80)는 해당 장치로부터 출력되는 계수완료신호에 의해 클리어되도록 구성되어 있다.
그리고, 상기 CPU(40)와 데이터 메모리(50), 어드레스 발생부(60), DMA 콘트롤러(70) 및 타이머 장치(80)는 어드레스 버스(90)와 데이터 버스(100)를 통해 상호 결합되고, 상기 어드레스 버스(90) 및 데이터 버스(100)는 버스 아비터(BUS Arbiter)에 의해 CPU(40)나 DMA 콘트롤러(70)가 선택적으로 제어하도록 구성되어 있다.
이어, 상기한 구성으로 된 인쇄데이터포맷 변환장치의 동작개념을 도 5 내지 도 7을 참조하여 설명한다. 도 5는 도 4에 나타낸 장치의 동작타이밍을 나타낸 동작타이밍도이고, 도 6은 본 발명에 의해 데이터 변환될 인쇄데이터의 포맷구성을 나타낸 것이다. 또한, 도 6은 수평방향으로의 인쇄데이터량이 324바이트이고 잉크젯 프린터(또는 버블젯 프린터)의 헤드핀이 수직방향으로 56(7바이트)개가 구비되어 있는 경우를 예로 들어 나타낸 것이다. 그리고, 도 6에 있어서는 첫 번째 인쇄라인에 대응하는 324개의 데이터 바이트가 B(1,1), B(1, 2),…, B(1, 324), 두 번째 인쇄라인에 대응하는 데이터 바이트가 B(2,1), B(2, 2),…, B(2, 324), n 번째 인쇄라인에 대응하는 데이터 바이트가 B(n,1), B(n, 2),…, B(n, 324)과 같은 방식으로 표시되어 있다. 또한, 도 7은 도 6에 도시된 각 데이터 바이트가 데이터 메모리(50)에 저장되어 있는 상태를 나타낸 것으로, 여기서는 도 3에 대응하여 인쇄데이터가 데이터 메모리(50)의 6700BBH의 어드레스 번지로부터 순차적으로 저장되어 있는 경우를 예로 들어 설명한다.
도 4에서 데이터 메모리(50)에 저장되어 있는 인쇄데이터에 대한 데이터 변환동작은 DMA 콘트롤러(70)에 의한 DMA 동작을 통해 실행되게 되고, 이러한 DMA 동작은 CPU(40)가 상기 DMA 콘트롤러(70)에 구비되는 타이머(71)를 구동제어하는 방법을 통해 실행되게 된다.
즉, CPU(40)는 DMA 콘트롤러(70)의 타이머(71)에 구비되는 레지스터에 대하여 어드레스 버스(90)와 데이터 버스(100)를 통해 소정의 데이터 값을 셋트한 후, 도 5에 나타낸 바와 같이 온/오프신호(ON/OFF)를 하이레벨로 설정함으로써 상기 타이머(71)를 구동시키게 되고, 타이머(71)는 그 셋트된 데이터 값에 대응하여 일정한 시간간격으로 펄스신호를 출력하게 된다.
이어, DMA 콘트롤러(70)는 상기 타이머(71)로부터 출력되는 펄스신호의 상승엣지에 대응하여 CPU(40)에 대한 버스요구신호()를 로우레벨로 설정하게 되고, 이에 대하여 CPU(40)가 버스허가신호()를 로우레벨로 설정하게 되면, DMA 동작을 통해 데이터 변환동작을 실행하게 된다. 또한, 이러한 데이터 변환동작이 종료되면DMA 콘트롤러(70)는 상기 버스요구신호()를 하이레벨로 설정하게 되고, 이에 대하여 CPU(40)는 버스허가신호()를 하이레벨로 설정함으로써 1싸이클의 DMA 동작을 종료하게 된다. 즉, 상기 타이머(71)의 레지스터에 셋트되는 데이터값은 1싸이클의 DMA 동작시간에 대응된다. 그리고, 상기한 DMA 동작은 도 5의 (B)∼(D)에 나타낸 바와 같이 타이머(71) 출력의 상승엣지에 대응하여 지속적으로 실행되고, 이러한 지속적인 DMA 동작은 타이머장치(80)로부터의 구동정지신호(STOP)에 의해 종료되게 된다.
또한, 상기 DMA 콘트롤러(70)는 상기한 1싸이클의 DMA 동작중에 데이터 메모리(50)에 저장되어 있는 인쇄데이터 중 예컨대 8바이트에 대한 데이터포맷 변환을 실행하게 된다. 즉, 8바이트의 데이터를 데이터 메모리(50)로부터 독출하여 데이터포맷 변환을 실행한 후, 그 변환된 8바이트의 데이터를 다시 데이터 메모리(50)에 저장하게 된다. 그리고, 데이터 메모리(50)에 대한 데이터 독출 및 기록을 위한 어드레스 데이터는 어드레스 발생부(60)에 의해 생성되어 출력되게 된다.
한편, 상기 어드레스 발생부(60)는 CPU(40)에 의해 셋트되는 소정의 데이터값, 즉 독출개시 어드레스 데이터 및 기록개시 어드레스 데이터와 독출어드레스 오프셋값 데이터 및 기록어드레스 오프셋값 데이터를 근거로 데이터 메모리(50)에 대한 독출 및 기록 어드레스 데이터를 생성하게 된다.
여기서, 상기 독출개시 어드레스 데이터는 도 6 및 도 7에서 각 포맷변환블록의 개시 어드레스 데이터에 대응하는 것이다. 즉, 도 6 및 도 7에서 상기 독출개시 어드레스 데이터는 '6700BBH', '670ADBH', … 로 설정된다. 그리고, 어드레스발생부(60)는 상기 '6700BBH'의 독출개시 어드레스 데이터와 독출어드레스 오프셋값 데이터를 근거로 제1 포맷변환블록, 즉 B(1, 1)으로부터 B(8, 324) 까지의 데이터바이트를 독출하기 위한 어드레스 데이터를 생성하고, '670ADBH'의 독출개시 어드레스 데이터와 독출어드레스 오프셋값 데이터를 근거로 제2 포맷변환블록, 즉 B(9, 1)으로부터 B(16, 324) 까지의 데이터바이트를 독출하기 위한 어드레스 데이터를 생성하게 된다.
또한, 상기 기록개시 어드레스 데이터는 데이터포맷 변환된 데이터를 다시 데이터 메모리(50)에 대하여 저장하는 경우의 초기 어드레스에 대응되는 것으로서, CPU(40)는 데이터 메모리(50)에 대한 초기 기록어드레스가 예컨대 '5E7C06H'인 경우, 이 값에서 이후에 설명할 기록어드레스 오프셋값 '7H'를 감한 '5E7BFFH'를 기록개시 어드레스로서 설정하게 된다.
그리고, 상기 독출개시 어드레스 데이터와 기록개시 어드레스 데이터는 1개의 포맷변환블록에 대한 데이터포맷변환이 종료될 때마다, CPU(40)에 의해 셋트되게 되는데, CPU(40)는 타이머장치(80)로부터 인터럽트신호(INT)가 인가될 때마다 그 이전의 독출개시 어드레스 데이터에 대하여 324×8, 즉 'A20H'를 가산하는 방법을 통해 새로운 독출개시 어드레스 데이터를 생성하고, 그 이전의 기록개시 어드레스 데이터에 대하여 '1H'를 가산하는 방법을 통해 새로운 기록개시 어드레스 데이터를 생성하게 된다.
또한, 상기 독출어드레스 오프셋값 데이터는 수평방향으로의 인쇄데이터량에 대응되고, 기록어드레스 오프셋값 데이터는 잉크젯 프린터의 프린터헤드 구성에 대응하여 설정되는 것으로서, 상기한 바와 같이 수평방향으로의 인쇄데이터량, 즉 도 6에 나타낸 바와 같이 1 수평라인에 대응하는 데이터 바이트의 수효가 324인 경우의 독출어드레스 오프셋값 데이터는 144H(324=), 즉 '0001 0100 0100'으로 설정되고, 프린터 헤드의 수직방향으로의 헤드핀수가 56(7 바이트)인 경우의 기록어드레스 오프셋값은 7H, 즉 '0000 0000 0111'로 설정된다. 또한, 상기 독출어드레스 오프셋값 및 기록어드레스 오프셋값은 CPU(40)의 예컨대 프로그램 메모리(도시되지 않음)에 설정되는 것으로서, 이는 팩시밀리장치를 제조할 때 프린터의 엔진특성에 따라 적절한 값으로 설정된다.
상기 어드레스 발생부(60)는 우선적으로 CPU(40)에 의해 설정된 독출개시 어드레스 데이터, 즉 '6700BBH'에 대하여 독출어드레스 오프셋값 데이터, 즉 '144H'를 0∼7회 가산하는 방법을 통해 8개의 독출 어드레스, 즉 '6700BBH', '6701FFH',…, '670853H', '670997H'의 독출 어드레스를 생성하여 출력하게 된다. 따라서, 이때 데이터 메모리(50)로부터는 도 6 및 도 7에서 알 수 있는 바와 같이 B(1,1), B(2,1),…, B(7,1), B(8,1)의 데이터 바이트가 독출되어 출력되게 된다.
이어, 상기와 같이 독출된 8바이트의 데이터는 DMA 콘트롤러(70)의 데이터포맷 변환부(72)로 입력되어 포맷변환이 실행된 후, 다시 상기 어드레스 발생부(60)에 의해 생성 출력되는 기록 어드레스 데이터에 따라 순차적으로 상기 데이터 메모리(50)에 저장되게 된다.
도 8은 상기 DMA 콘트롤러(70)에 구비되는 데이터포맷 변환부(72)의 구성을 나타낸 회로구성도이다.
도 8에 있어서, 데이터포맷 변환부(72)는 데이터 버스(100)에 대하여 예컨대 8개의 레지스터(721∼728)가 병렬로 결합되고, 상기 각 레지스터(721∼728)는 소정의 칩선택신호(CS10∼CS17)에 따라 데이터 버스(100)상의 데이터를 저장하게 된다. 또한, 상기 레지스터(721∼728)의 출력단에는 각 레지스터(721∼728)의 상호 대응되는 데이터 비트를 입력하여 저장하기 위한 예컨대 8개의 레지스터(731∼738)가 결합되고, 상기 각 레지스터(731∼738)의 8비트 출력 데이터는 멀티플렉서(740)의 입력으로서 결합된다. 그리고, 상기 멀티플렉서(740)는 소정의 3비트 선택데이터(SA0∼SA2)에 따라 상기 각 레지스터(731∼738)의 출력데이터를 선택적으로 출력하게 된다.
상기 데이터포맷 변환부(72)는 상술한 바와 같이 데이터 메모리(50)로부터 B1, 즉 B(1, 1), B(2, 1), B(3, 1),…, B(8, 1)의 인쇄데이터가 순차적으로 독출된 경우, 각 인쇄데이터는 칩선택신호(CS10∼CS17)에 따라 레지스터(721∼728)에 각각 저장되게 되고, 이 레지스터(721∼728)에 저장되는 데이터는 동일한 비트 데이터끼리 분리되어 다시 레지스터(731∼738)에 저장되게 된다. 따라서, 멀티플렉서(740)로부터는 도 9에 나타낸 바와 같이 데이터 메모리(50)로부터 독출된 데이터, 즉 B(1, 1), B(2, 1), B(3, 1),…, B(8, 1)이 데이터포맷 변환된 DATA1, DATA2, …, DATA8의 데이터가 출력되게 된다. 그리고, 상기 멀티플렉서(740)로부터 출력되는 데이터는 어드레스 발생부(60)로부터 출력되는 기록 어드레스 데이터에 따라 데이터 메모리(50)에 저장되게 된다.
또한, 어드레스 발생부(60)는 상기와 같이 B(1, 1), B(2, 1), B(3, 1),…,B(8, 1)에 대한 데이터포맷 변환이 종료되게 되면, 상기 B(1, 1)에 대한 독출어드레스를 1만큼 증가시켜 도 6 및 도 7에서 B(1, 2)에 대한 독출어드레스 데이터, 즉 '6700BCH'를 생성한 후, 여기에 다시 독출어드레스 오프셋값 데이터, 즉 '144H'를 0∼7회 가산하는 방법을 통해 8개의 독출 어드레스, 즉 '6700BCH', '670200H',…, '670854H', '670998H'의 독출 어드레스를 생성함으로써 데이터 메모리(50)로부터 B(1, 2), B(2, 2), B(3, 2),…, B(8, 2)의 데이터 바이트를 독출하게 된다. 그리고, 이러한 방법을 통해 1 포맷변환블록의 각 데이터바이트 B1, B2, …, B324를 8바이트씩 독출하기 위한 어드레스 데이터를 생성하여 출력하게 된다.
한편, 상기 어드레스 발생부(60)는 CPU(40)에 의해 셋트된 기록개시 어드레스 데이터, 예컨대 '5E7BFFH'에 대하여 기록어드레스 오프셋값 데이터, 예컨대 '7H'를 가산하는 방법을 통해 기록어드레스를 발생시키게 된다. 즉, 어드레스 발생부(60)는 기록개시 어드레스 데이터에 대하여 '7H'를 순차적으로 가산함으로써 '5E7C06H', '5E7C0DH', 527C14H', '527C1B', … 의 기록 어드레스를 순차로 생성하여 출력하게 된다.
따라서, 도 9와 같이 데이터포맷 변환된 인쇄데이터는 도 10에 나타낸 바와 같이 '7H'의 어드레스 간격을 갖고서 순차로 데이터 메모리(50)에 저장되게 된다.
한편, 상기와 같은 데이터포맷 변환동작이 지속되어 도 6에서 빗금으로 나타낸 B(1, 1)∼B(8, 324)의 인쇄데이터에 대한 데이터포맷 변환이 종료하게 되면, 즉 8바이트씩 인쇄데이터를 독출하여 데이터 포맷 변환을 실행하는 DMA 동작을 324회 실행하게 되면, CPU(40)는 상술한 바와 같이 어드레스 버스(90) 및 데이터버스(100)를 통해 상기 어드레스 발생부(60)에 대해 독출개시 어드레스 데이터 및 기록개시 어드레스 데이터를 다시 셋트하게 된다. 즉, CPU(40)는 그 독출개시 어드레스 데이터로서, 그 이전의 독출개시 어드레스 데이터 '6700BBH'에 대하여 'A20H'를 가산하는 방법을 통해 도 6에서 인쇄데이터 B(9, 1)을 독출하기 위한 어드레스 데이터 '670ADBH'를 셋트하고, 기록개시 어드레스 데이터로서는 그 이전에 셋트하였던 기록개시 어드레스 데이터 '5E7BFFH'에 '1H'을 가산한 데이터, 즉 '5E7C00H'를 셋트하게 된다.
따라서, 이 경우에는 도 6에서 B(9, 1)∼B(16, 1), B(9, 2)∼B(16, 2),…, B(9, 324)∼B(16, 324)에 대한 데이터포맷 변환이 실행되게 되고, 그 데이터 변환된 데이터는 도 10의 DATA A(DATA A1, DATA A2,…)로 나타낸 바와 같이 데이터 메모리(50)에 순차적으로 기록되게 된다.
그리고, CPU(40)는 상술한 동작을 인쇄데이터 B(56, 324)에 이를 때까지 순차적으로 실행함으로써 제1 인쇄 블록에 대한 데이터포맷 변환을 실행하게 된다. 이에 따라 상기 제1 인쇄블록에 대한 데이터포맷 변환동작이 종료하게 되면, 도 10에 나타낸 바와 같이 B(1, 1)∼B(8, 1)의 최상위 비트 D7이 DATA 1, B(9, 1)∼B(16, 1)의 D7이 DATA A1, B(17, 1)∼B(24, 1)의 D7이 DATA B1, …, B(49, 1)∼B(56, 1)의 D7이 DATA F1, B(1, 1)∼B(6, 1)의 D6이 DATA 2, B(9, 1)∼B(16, 1)의 D6이 DATA A2, B(17, 1)∼B(24, 1)의 D6이 DATA B2,… 로서 데이터 메모리(50)의 일련의 어드레스에 대응하여 순차적으로 저장되게 된다. 즉, 도 2에서 a, b,… 로 나타낸 일련의 데이터가 데이터 메모리(50)에 대하여 어드레스순으로 순차 저장되게 되므로, 데이터 메모리(50)에 저장되어 있는 인쇄데이터를 순차적으로 독출하여 프린터장치로 출력함으로써 인쇄동작을 실행할 수 있게 된다.
또한, 이와 같이 제1 인쇄블록에 대한 데이터포맷 변환동작이 종료하게 되면, 다시 제2 인쇄블록에 대하여 상술한 동작과 동일한 동작을 실행함으로써 데이터 메모리(50)에 저장되어 있는 모든 인쇄데이터에 대하여 데이터포맷 변환을 실행하게 된다.
한편, 상기 동작에서 324회의 DMA 동작에 대한 검출은 도 4에서 타이머 장치(80)를 통해 실행되게 된다. 즉, CPU(40)는 DMA 콘트롤러(70)의 타이머(71)를 구동시키기에 앞서 타이머 장치(80)에 대하여 '324'의 값을 셋트하게 된다. 그러면, 상기 타이머 장치(80)는 DMA 콘트롤러(70)로부터 출력되는 버스요구신호()의 하강엣지 시마다 상기 셋트된 계수데이터값을 다운카운팅하게 되고, 그 결과값이 '0'이 되면 도 5의 (E)로 나타낸 바와 같이 하이레벨의 인터럽트신호(INT)를 CPU(40)에 대해 출력하게 된다. 그리고, 상기 타이머 장치(80)로부터 출력되는 하이레벨신호는 지연회로(81)와 OR 게이트(82)를 통해 타이머 장치(80)의 클리어신호로서 입력됨으로써 타이머 장치(80)는 클리어되게 된다.
이어, CPU(40)는 상기 타이머 장치(80)로부터 하이레벨의 인터럽트신호(INT)가 입력되면, 도 5(A)로 나타낸 바와 같이 DMA 콘트롤러(70)의 타이머(71)를 오프시키게 된다. 또한, 상기 타이머장치(80)로부터의 구동정지신호(STOP)가 DMA 콘트롤러(70)로 인가되게 됨으로써 DMA 콘트롤러(70)의 데이터변환동작 및 DMA 동작은 종료되게 된다. 즉, 타이머장치(80)의 상기한 동작에 의해 1 포맷변환블록에 대한포맷변환동작이 종료되게 된다. 그리고, 이후 CPU(40)는 다시 어드레스 발생부(60)와 타이머 장치(80)에 대한 초기값 설정을 실행하게 되고, 이어 상술한 설명과 동일한 방식, 즉 어드레스 발생부(60)에 대해 독출 및 기록개시 어드레스 데이터와 독출 및 기록 어드레스 오프셋값 데이터를 셋트하고 DMA 콘트롤러(70)의 타이머(71)를 구동시키는 방법을 통해 다음의 포맷변환블록에 대한 데이터포맷 변환동작을 실행제어하게 된다.
한편, 도 11은 상기 어드레스 발생부(60)의 구성을 나타낸 블록구성도이다.
도면에서 참조번호 600은 상술한 바와 같이 데이터 메모리(50)에 대하여 데이터 독출을 실행하게 되는 독출개시 어드레스 데이터와, 포맷변환된 데이터를 다시 데이터 메모리(50)에 저장하기 위한 기록개시 어드레스 데이터를 저장하는 개시어드레스 저장부이다. 이 개시어드레스 저장부(600)는 CPU(40)로부터 인가되는 칩선택신호()와 DMA 콘트롤러(70)로부터 인가되는 개시어드레스 저장신호(CL) 및 개시어드레스 변환신호(ACHG)를 근거로 이후에 설명할 개시어드레스 설정부(800)로부터 인가되는 개시어드레스 데이터를 저장하게 된다. 그리고, 이와 같이 저장된 개시어드레스 데이터, 즉 독출개시 어드레스 데이터와 기록개시 어드레스 데이터는 이후에 설명할 제1 멀티플렉서(650)의 입력으로서 결합된다.
도 12는 상기 개시어드레스 저장부(600)의 구체적인 구성을 나타낸 회로구성도로, 개시어드레스 저장부(600)는 독출개시 어드레스 데이터값을 저장하기 위한 독출개시 어드레스 저장부(601)와, 기록개시 어드레스 데이터값을 저장하기 위한 기록개시 어드레스 저장부(602)를 구비하여 구성된다. 그리고, 상기 독출개시 어드레스 저장부(601)와 기록개시 어드레스 저장부(602)는 각각 소정의 8비트 레지스터(601a∼601c, 602a∼602c)를 구비하여 구성됨과 더불어, 그 데이터 입력단이 개시어드레스 설정부(800)의 출력단에 결합되어 있다. 또한, 상기 각 레지스터(601a∼601c, 602a∼602c)는 칩선택신호 입력단()에 각각 AND 게이트(603∼608)의 출력단이 결합되어 있고, 상기 각 AND 게이트(603∼608)는 그 한 입력단이 각각 도 4의 CPU(40)로부터 출력되는 칩선택신호()에 결합됨과 더불어, 다른 입력단은 각각 OR 게이트(609, 610)의 출력단에 결합되어 있다. 또한, 상기 OR 게이트(609)는 DMA 콘트롤러(70)로부터 인가되는 개시어드레스 저장신호(CL)와 개시어드레스 변환신호(ACHG)가 입력으로서 결합되는 한편, OR 게이트(610)는 상기 개시어드레스 저장신호(CL)와 상기 개시어드레스 변환신호(ACHG)의 반전신호가 결합되도록 되어 있다.
한편, 도 11에서 참조번호 650은 상기 개시어드레스 저장부(600)로부터 출력되는 독출개시 어드레스 데이터와 기록개시 어드레스 데이터가 A입력포트와 B입력포트에 각각 결합된 제1 멀티플렉서이다. 이 제1 멀티플렉서(650)는 독출모드와 기록모드를 선택하기 위한 제1 모드선택신호(MOD1)에 따라 A입력포트와 B입력포트로 입력되는 어드레스 데이터를 출력하여, 예컨대 제1 모드선택신호(MOD1)가 하이레벨인 경우에는 A입력포트로 입력되는 독출개시 어드레스 데이터를 출력하고 제1 모드선택신호(MOD1)가 로우레벨인 경우에는 B입력포트로 입력되는 기록개시 어드레스 데이터를 출력하게 된다. 그리고, 제1 멀티플렉서(650)로부터 출력되는 개시어드레스는 이후에 설명할 카운터(700)와 독출/기록 어드레스 생성부(750)의 입력으로서결합된다.
또한, 도면에서 참조번호 700은 상기 제1 멀티플렉서(650)로부터 출력되는 개시어드레스 데이터를 1씩 업카운트하는 카운터로서, 이는 로드신호(LD)가 하이레벨로 되면 클록신호(CK)의 상승엣지에서 상기 제1 멀티플렉서(650)의 출력을 로드하고, 또 인에이블신호(EN)가 하이레벨로 되면 클록신호(CK)의 상승엣지에서 상기 로드된 데이터를 업카운트하게 된다. 그리고, 이와 같이 업카운트된 데이터는 이후에 설명할 개시어드레스 설정부(800)로 인가되게 된다.
특히, 상기 카운터(700)는 제1 멀티플렉서(650)로부터 출력되는 독출개시 어드레스 데이터, 즉 독출개시 어드레스 레지스터(601)에 저장되어 있는 어드레스 데이터를 1만큼 증가시킴으로써, 예컨대 CPU(40)에 의해 설정된 독출개시 어드레스 데이터가 도 6에서 데이터 B(1, 1)을 독출하기 위한 것인 경우에는 B(1, 2), B(1, 3),…, B(1, 324)의 순으로 순차적으로 독출개시 어드레스 데이터를 생성하게 된다.
또한, 참조번호 750은 상기 제1 멀티플렉서(65)로부터 출력되는 개시어드레스 데이터를 근거로 도 4의 데이터 메모리(50)에 대한 독출 및 기록어드레스를 생성하는 독출/기록 어드레스 생성부이다. 이 독출/기록 어드레스 생성부(750)는 제1 모드선택신호(MOD1)가 하이레벨, 즉 독출모드에서는 상기 제1 멀티플렉서(650)로부터 출력되는 독출개시 어드레스 데이터에 대하여 독출어드레스 오프셋값 데이터, 예컨대 '144H'를 0∼7회 가산함으로써 도 6에서 독출개시 어드레스 데이터가 데이터 B(1, 1)을 독출하기 위한 것인 경우에는 B(1, 1), B(2, 1), B(3, 1),…, B(8,1)의 데이터를 독출하기 위한 어드레스 데이터를 순차적으로 생성하여 출력하게 된다. 또한, 상기 제1 모드선택신호(MOD1)가 로우레벨, 즉 기록모드에서는 상기 제1 멀티플렉서(650)로부터 출력되는 기록개시 어드레스 데이터에 대하여 기록어드레스 오프셋값 데이터, 예컨대 '7H'를 가산함으로써 데이터포맷 변환된 데이터를 데이터 메모리(50)에 기록하기 위한 어드레스 데이터를 생성하여 출력하게 된다.
그리고, 상기 독출/기록 어드레스 오프셋값 데이터는 소정의 칩선택신호(,,,)와 데이터 버스(100)를 통해 독출/기록 어드레스 생성부(750)에 셋트되게 된다.
도 13은 상기 독출/기록 어드레스 생성부(750)의 구체적인 구성을 나타낸 블록구성도이다.
독출/기록 어드레스 생성부(750)는 예컨대 12비트의 독출어드레스 오프셋값과 기록어드레스 오프셋값을 각각 저장하기 위한 레지스터(751, 752)를 구비하여 구성된다. 그리고, 상기 독출어드레스 오프셋값 레지스터(751)와 기록어드레스 오프셋값 레지스터(752)는 그 데이터 입력단이 데이터 버스에 결합되어, CPU(40)로부터 인가되는 칩선택신호(,,,)에 따라 그 데이터 버스상의 데이터를 저장, 출력하게 된다. 상술한 바와 같이 상기 독출어드레스 오프셋값은 수평 인쇄방식에 따른 데이터포맷 구성에 대응되고, 기록어드레스 오프셋값은 잉크젯 프린터의 프린터헤드 구성에 대응하여 설정되는 것으로서 도 2, 즉 하나의 인쇄블록이 수평방향으로 324바이트이고 수직방향으로 7바이트로 구성되는 경우를 고려할 때 독출어드레스 오프셋값은 144H(324), 즉 '0001 0100 0100'로 설정되고, 기록어드레스 오프셋값은 007H(7), 즉 '0000 0000 0111'로 설정된다.
이어, 상기 독출 및 기록 어드레스 오프셋값 레지스터(751, 752)의 출력은 각각 제2 멀티플렉서(753)의 A포트 및 B포트 입력으로서 결합된다. 제2 멀티플렉서(753)는 선택신호(SEL)로서 제1 모드선택신호(MOD1)가 결합되어, 제1 모드선택신호(MOD1)가 하이레벨, 즉 독출모드인 경우에는 A포트에 결합되는 독출어드레스 오프셋값 레지스터(751)로부터의 입력데이터를 출력하고, 상기 제1 모드선택신호(MOD1)가 로우레벨, 즉 기록모드인 경우에는 B포트에 결합되는 기록어드레스 오프셋값 레지스터(752)로부터 입력데이터를 출력하게 된다.
또한, 도면에서 참조번호 754는 상기 제2 멀티플렉서(753)의 출력데이터가 A입력포트에 결합됨과 더불어 B입력포트에 '0'의 값을 갖는 12비트 데이터가 결합되어, 하이레벨의 선택신호(SEL)가 입력되는 경우에는 A포트입력, 로우레벨의 선택신호가 입력되는 경우에는 B포트입력을 출력하는 제3 멀티플렉서이다. 그리고, 이 제3 멀티플렉서(754)의 선택신호로서는 개시어드레스 변환신호(ACHG)가 결합되어 있다.
한편, 도면에서 참조번호 755는 도 11의 제1 멀티플렉서(650)로부터 출력되는 데이터가 A포트입력에 결합되고 이후에 설명할 래치회로(757)의 출력데이터가 B입력포트에 결합되어, 하이레벨의 선택신호(SEL)가 입력되는 경우에는 A포트입력, 로우레벨의 선택신호(SEL)가 입력되는 경우에는 B포트입력을 출력하는 제4 멀티플렉서이다.
또한, 도면에서 참조번호 756은 상기 제4 멀티플렉서(755)로부터 출력되는데이터, 즉 독출 또는 기록 어드레스 데이터에 대하여 상기 제3 멀티플렉서(754)로부터 출력되는 독출 또는 기록 어드레스 오프셋값을 가산하는 가산기이고, 757은 소정의 래치신호(LA)에 따라 상기 가산기(756)의 출력데이터를 래치하는 래치회로, 758은 소정의 출력인에이블신호()에 따라 래치회로(757)에 래치되어 있는 데이터를 어드레스 데이터로서 출력하는 3상태 버퍼이다.
그리고, 도면에서 참조번호 759는 상기 제4 멀티플렉서(755)를 위한 선택신호(SEL)를 출력하는 D플립플롭으로서, 이는 그 D입력단에 제1 선택신호(SEL1)가 입력됨과 더불어 클록입력단(CLK)에 상기 래치신호(LA)가 결합되고, 클리어단(CLR)에 소정의 리셋트신호(RESET)가 결합되어 있다. 즉, 상기 D플립플롭(759)은 초기동작시에는 상기 제4 멀티플렉서(755)로 로우레벨의 선택신호(SEL)를 출력하고, 이후에 상기 래치신호(LA)의 상승엣지에서 D입력단을 통해 입력되는 제1 선택신호(SEL1)를 제4 멀티플렉서(755)의 선택신호(SEL)로서 출력하게 된다.
또한, 상기 래치회로(757)의 출력데이터는 도 11에서 개시어드레스 설정부(800)의 입력으로서 결합된다.
한편, 도 11에서 참조번호 800은 상술한 카운터(700)와 독출/기록 어드레스 생성부(750)로부터 출력되는 어드레스 데이터를 근거로 상기 개시어드레스 저장부(600)를 위한 개시어드레스 데이터를 생성하는 개시어드레스 설정부이다.
이 개시어드레스 설정부(800)는 A입력포트에 상술한 카운터(700)에서 출력되는 어드레스 데이터가 결합됨과 더불어 B입력포트에 독출/기록 어드레스 생성부(750)에서 출력되는 어드레스 데이터가 결합되어, 개시어드레스변환신호(ACHG)가 하이레벨일 때 A입력포트, 개시어드레스 변환신호(ACHG)가 로우레벨일 때 B입력포트를 통해 입력되는 어드레스 데이터를 출력하는 제5 멀티플렉서(801)와, 이 제5 멀티플렉서(801)의 출력이 입력으로서 결합됨과 더불어 선택신호(SEL)로서 제2 모드선택신호(MOD2)가 결합되어, 이 제2 모드선택신호(MOD2)가 하이레벨일 때 입력데이터를 A출력포트, 제2 모드신호(MOD2)가 로우레벨일 때 입력데이터를 B출력포트를 통해 출력하는 디멀티플렉서(802), 이 디멀티플렉서(802)의 A출력포트를 통해 출력되는 데이터가 A입력포트에 결합됨과 더불어 B입력포트에 데이터버스가 결합되어 제2 선택신호(SEL2)가 하이레벨일 때 A입력포트, 제2 선택신호(SEL2)가 로우레벨일 때 B입력포트를 통해서 입력되는 데이터를 출력하는 제6 멀티플렉서(803) 및, 상기 디멀티플렉서(802)의 B출력포트를 통해 출력되는 데이터가 A입력포트에 결합됨과 더불어 B입력포트에 데이터버스가 결합되어 제3 선택신호(SEL3)가 하이레벨일 때 A입력포트, 제3 선택신호(SEL3)가 로우레벨일 때 B입력포트를 통해서 입력되는 데이터를 출력하는 제7 멀티플렉서(804)를 포함하여 구성되어 있다.
이어, 상기한 구성으로 된 장치의 동작을 도 14에 나타낸 동작타이밍도를 참조하여 설명한다.
도 4에 있어서, 데이터 메모리(50)에 인쇄할 데이터가 저장되게 되면, CPU(40)는 우선적으로 어드레스 발생부(60)에 대하여 독출 및 기록개시어드레스 데이터와 독출 및 기록 어드레스 오프셋값을 셋트하게 된다.
즉, 도 11 및 도 12에 있어서, CPU(40)는 우선 개시어드레스 설정부(800)의제6 및 제7 멀티플렉서(803, 804)에 대하여 로우레벨의 제2 및 제3 선택신호(SEL2, SEL3)를 출력하여 제6 및 제7 멀티플렉서(803, 804)의 B포트입력을 출력으로서 설정하게 된다. 그리고, CPU(40)는 우선적으로 제1 내지 제3 칩선택신호()를 순차적으로 로우레벨로 설정함과 더불어 데이터 버스(D0∼D7)를 통해 순차적으로 소정의 데이터를 출력함으로써 독출개시 어드레스 저장부(601)의 레지스터(601a∼601c)에 대하여 독출개시 어드레스 데이터, 예컨대 '6700BBH'를 셋트한 후, 다시 제4 내지 제6 칩선택신호()를 순차적으로 로우레벨로 설정함과 더불어 데이터 버스(D0∼D7)를 통해 소정의 데이터를 출력함으로써 기록개시 어드레스 저장부(602)의 각 레지스터(602a∼602c)에 대하여 기록개시 어드레스 데이터, 예컨대 '5E7BFFH'를 셋트하게 된다.
또한, CPU(40)는 도 11 및 도 13에서 독출/기록 어드레스 생성부(750)의 독출 및 기록 어드레스 오프셋값 레지스터(751, 752)에 대하여 로우레벨의 칩선택신호(,,,)를 순차적으로 공급하면서 데이터 버스(D0∼D7)를 통해 독출 및 기록 어드레스 오프셋 데이터, 예컨대 144H, 7H, 즉 '0001 0100 0100' 및 '0000 0000 0111'를 순차적으로 출력함으로써 해당 오프셋 데이터를 독출어드레스 오프셋값 레지스터(751)와 기록어드레스 오프셋값 레지스터(752)에 각각 셋트하게 된다.
그리고, 상기 CPU(40)는 도 11의 제6 및 제7 멀티플렉서(803, 804)에 대한 선택신호를 다시 하이레벨로 설정함으로써 디멀티플렉서(802)로부터의 입력, 즉 상기 제6 및 제7 멀티플렉서(803, 804)의 A포트 입력을 개시어드레스 저장부(600)의입력으로서 결합시키게 된다.
또한, CPU(40)는 어드레스 버스(90)와 데이터 버스(100)를 통해 도 4의 타이머장치(80)에 대하여 DMA 동작횟수를 지정하기 위한 데이터값, 예컨대 '324'를 셋트하게 된다.
이어, 상기한 동작에 따라 어드레스 발생부(60) 및 타이머장치(80)에 대한 초기 데이터 설정이 종료하게 되면, CPU(40)는 도 4 및 도 5에서 설명한 바와 같이 DMA 콘트롤러(70)의 타이머(71)에 대하여 소정의 타이밍 데이터를 셋트함과 더불어 온/오프신호(ON/OFF)를 하이레벨로 설정함으로써 상기 타이머(71)를 구동하게 된다.
상기한 동작에 의해 타이머(71)가 구동되어 도 5에서 설명한 바와 같이 타이머(71)로부터의 출력레벨이 하이레벨로 상승하게 되면 DMA 콘트롤러(70)는 도 14의 (A)로 나타낸 바와 같이 CPU(40)에 대하여 버스요구신호()를 출력하게 되고, 이에 대하여 CPU(40)로부터 버스허가신호()가 입력되게 되면, DMA 콘트롤러(70)는 어드레스 발생부(60)를 제어함으로써 데이터포맷 변환을 실행하게 된다.
도 11 및 도 14에 있어서, 우선 초기상태에서 제1 모드선택신호(MOD1)는 로우레벨로 설정되므로, 개시어드레스 저장부(600)에서 출력되는 독출개시 어드레스 데이터가 제1 멀티플렉서(650)를 통해 출력되어 카운터(700) 및 독출/기록 어드레스 생성부(750)로 입력되게 된다.
이어, 카운터(700)에 있어서는 도 14의 (E)∼(G)에 나타낸 바와 같이 로드신호(LD)의 하이레벨상태에서 클록신호(CK)가 입력되게 되면 제1 멀티플렉서(650)로부터 출력되는 독출개시 어드레스 데이터를 로드한 후, 인에이블신호(EN)의 하이레벨상태에서 클록신호(CK)가 입력되게 되면 그 로드된 독출개시 어드레스 데이터, 즉 '6700BBH'를 1만큼 증가시켜 '6700BCH'를 출력하게 된다. 그리고, 이 카운터(700)의 출력 데이터는 개시어드레스 설정부(700)의 제5 멀티플렉서(801)의 A입력포트에 결합되게 된다.
그리고, 이때 개시어드레스 설정부(800)에 있어서는 도 14의 (J) 및 (K)에 나타낸 바와 같이 개시어드레스 변환신호(ACHG)와 제2 모드선택신호(MOD2)가 로우레벨로 설정되고, 또한 상술한 바와 같이 제2 선택신호(SEL2)가 하이레벨로 설정되므로 상기 카운터(700)의 출력데이터는 제5 멀티플렉서(801)와 디멀티플렉서(802) 및 제6 멀티플렉서(803)를 통해 개시어드레스 저장부(600)에 입력되게 된다.
또한, 도 12의 개시어드레스 저장부(600)에 있어서는 도 14의 (H) 및 (J)에 나타낸 바와 같이 개시어드레스 저장신호(CL) 및 개시어드레스 변환신호(ACHG)가 로우레벨로 설정되어 독출개시 어드레스 저장부(601)의 각 레지스터(601a∼601c)에 로우레벨의 칩선택신호()가 입력되므로, 상기 카운터(700)의 출력데이터, 즉 '6700BCH'는 새로운 독출개시 어드레스 데이터로서 독출개시 어드레스 저장부(601)에 저장되게 된다.
한편, 상기와 같이 제1 멀티플렉서(650)로부터 '6700BBH'의 독출개시 어드레스 데이터가 출력된 상태에서, 도 13에 도시된 독출/기록 어드레스 생성부(750)에 있어서는 D플립플롭(759)의 출력과 개시어드레스 변환신호(ACHG)가 로우레벨로 설정되므로, 제3 및 제4 멀티플렉서(754, 755)는 B포트 입력을 출력데이터로서 출력하게 된다. 따라서, 상기 제1 멀티플렉서(650)로부터 출력된 어드레스 데이터는 제4 멀티플렉서(755)와 가산기(756)를 통해 래치회로(757)로 입력되게 되고, 래치회로(757)는 도 14의 (D)로 나타낸 래치신호(LA)의 상승엣지에서 입력되는 어드레스 데이터를 래치하게 된다. 그리고, 3상태 버퍼(758)는 소정의 출력인에이블신호()에 따라 상기 래치회로(757)에 래치된 어드레스 데이터를 어드레스 버스(90)를 통해 출력하게 된다.
즉, 상기한 초기 동작상태에서는 CPU(40)에 의해 개시어드레스 저장부(600)에 저장된 독출개시 어드레스 데이터, 즉 '6700BBH'가 어드레스 버스(90)를 통해 출력됨으로써 상술한 바와 같이 도 6 및 도 7에서 인쇄 데이터 B(1, 1)이 독출되게 된다.
한편, 상기한 동작중에 래치회로(757)에 대한 래치신호(LA)가 하이레벨로 상승하게 되면, 그 상승엣지에서 D플립플롭(759)은 D입력단에 결합되는 신호레벨을 출력포트(Q)를 통해 출력하게 되는데, 이때 상기 D플립플롭(759)의 D입력단에 결합되는 제1 선택신호(SEL1)는 도 14의 (I)로 나타낸 바와 같이 하이레벨로 설정되므로 상기 제4 멀티플렉서(755)에는 하이레벨의 선택신호(SEL)가 입력되게 된다. 또한, 상술한 바와 같이 카운터(700)의 출력데이터가 개시어드레스 저장부(600)에 저장된 후에는 개시어드레스 변환신호(ACHG)도 다시 하이레벨로 설정되므로 제3 멀티플렉서(754)에도 하이레벨의 선택신호(SEL)가 입력되게 된다.
따라서, 제4 멀티플렉서(755)는 A포트 입력, 즉 래치회로(757)에 래치되어 있던 그 이전에 생성된 어드레스 데이터를 출력하게 되고, 제3 멀티플렉서(754)는제2 멀티플렉서(753)로부터 입력되는 데이터를 출력하게 된다. 또한, 이때 제1 모드선택신호(MOD1)가 로우레벨로 설정되어 제2 멀티플렉서(753)는 독출어드레스 오프셋값 레지스터(751)에 저장되어 있는 오프셋값 데이터를 출력하게 되므로, 결국 제3 멀티플렉서(754)는 독출 어드레스 오프셋값 데이터를 출력하게 된다.
그리고, 상기 제3 및 제4 멀티플렉서(754, 755)의 출력데이터는 가산기(756)에서 가산되어 출력되는 바, 이에 따라 래치회로(757)로부터는 래치신호(LA)의 상승엣지시마다 독출어드레스 오프셋값 만큼 증가된 어드레스 데이터가 출력되게 된다. 즉, 본 실시예에 있어서는 상기 독출어드레스 오프셋값으로서 324(144H)가 설정되므로 도 6 및 도 7에 있어서 B(1, 1), B(2, 1), B(3, 1),…, B(8, 1)의 인쇄데이터가 데이터 메모리(50)로부터 독출되어 데이터 버스(100)를 통해 출력되게 된다.
이어, 상기와 같이 독출된 8바이트의 데이터는 DMA 콘트롤러(70)의 데이터포맷 변환부(72)로 입력되어 그 데이터 포맷이 변환된 후, 이후에 상기 어드레스 발생부(60)에 의해 생성되는 기록 어드레스에 대응하여 다시 데이터 메모리(50)에 저장되게 된다.
한편, 도 14의 (D) 및 (I)로 나타낸 바와 같이 도 13에서의 래치회로(757)에 대한 8번째 래치신호(LA)의 상승엣지시에 제1 선택신호(SEL1)가 로우레벨로 설정되어 있게 된다. 따라서, 상기 제8 래치신호(LA)의 상승엣지에서 D플립플롭(759)의 출력(Q)은 로우레벨로 하강하게 되고, 이에 따라 제4 멀티플렉서(755)는 B포트 입력이 출력되는 상태로 설정되게 된다.
또한, 도 14의 (C) 및 (K)로 나타낸 바와 같이, 8번째 래치신호(LA)가 출력된 후에는 제1 및 제2 모드선택신호(MOD1, MOD2)가 하이레벨로 상승하게 된다. 즉 어드레스 발생부(60)가 기록모드로 설정되게 된다. 따라서, 이때 도 11에서 제1 멀티플렉서(650)는 B포트 입력이 출력으로서 설정되므로, 제1 멀티플렉서(650)는 개시어드레스 설정부(600)에 설정되어 있는 기록개시 어드레스 데이터를 출력하게 되고, 독출/기록 어드레스 생성부(750)의 제2 멀티플렉서(753)도 B포트 입력, 즉 기록어드레스 오프셋값 레지스터(752)에 저장되어 있는 기록어드레스 오프셋값 데이터를 출력하게 된다. 또한, 개시어드레스 설정부(800)에 있어서는 제5 멀티플렉서(801)가 제2 모드선택신호(MOD2)에 의해 B포트 입력, 즉 독출/기록 어드레스 생성부(750)로부터 출력되는 어드레스 데이터를 디멀티플렉서(802)로 입력하는 상태로 설정되게 된다.
한편, 상기와 같이 제1 멀티플렉서(650)로부터 출력되는 기록개시 어드레스 데이터가 독출/기록 어드레스 생성부(750)에 입력되게 되면, 해당 어드레스 데이터는 도 13에서 제4 멀티플렉서(755)를 통해 가산기(756)에 입력되어 제3 멀티플렉서(754)로부터 출력되는 기록어드레스 오프셋값 데이터와 가산되게 되고, 그 결과 데이터는 래치회로(757)에 입력되게 된다. 그리고, 래치회로(757)는 도 14의 (D)에 나타낸 래치신호(LA)의 상승엣지에서 입력되는 기록어드레스 데이터를 래치하여 3상태 버퍼(758)로 출력하게 되고, 3상태 버퍼(758)는 소정의 출력인에이블신호()에 따라 상기 기록어드레스 데이터를 어드레스 버스(90)를 통해 출력되게 된다.
즉, 상기한 기록모드의 초기동작상태에서는 CPU(40)에 의해 개시어드레스 저장부(600)에 저장된 기록개시 어드레스 데이터, 즉 '5E7BFFH'에 대하여 기록어드레스 오프셋값 데이터, 즉 '7H'가 가산된 '5E7C06H'가 어드레스 버스(90)를 통해 출력됨으로써 도 9 및 도 10에서 설명한 바와 같이 데이터포맷 변환된 DATA 1이 상기 '5E7C06H'의 어드레스로 데이터 메모리(50)에 저장되게 된다.
이어, 상기와 같이 래치신호(LA)가 출력되게 되면, 그때 도 14의 (I)와 같이 제1 선택신호(SEL1)가 하이레벨로 설정되어 있게 되므로, 래치신호(LA)의 상승엣지에서 D플립플롭(759)의 출력(Q)이 하이레벨로 설정되게 된다. 따라서, 제4 멀티플렉서(755)는 A포트 입력, 즉 래치회로(757)에 래치되어 있던 그 이전에 생성된 어드레스 데이터를 출력하게 된다.
따라서, 이후에는 상기 래치회로(757)에 래치된 어드레스 데이터가 제3 및 제4 멀티플렉서(754, 755)의 출력데이터, 즉 기록어드레스 오프셋값 데이터와 가산기(756)에서 가산되어 출력되는 바, 이에 따라 래치회로(757)로부터는 래치신호(LA)의 상승엣지시마다 기록어드레스 오프셋값 만큼 증가된 어드레스 데이터를 출력하게 된다. 즉, 본 실시예에 있어서는 상기 기록어드레스 오프셋값으로서 '7H'가 설정되므로 도 9 및 도 10에 있어서 데이터포맷 변환된 DATA1, DATA2, DATA3,…, DATA8의 인쇄데이터가 '7H' 어드레스 간격을 두고 데이터 메모리(50)에 기록되게 된다.
한편, 상기와 같이 기록모드동작시에 8번째의 래치신호(LA)가 출력된 후에는 도 14의 (H)로 나타낸 바와 같이 개시어드레스 저장신호(CL)가 로우레벨로 하강하게 되는데, 이때 상술한 바와 같이 제2 모드선택신호(MOD2)는 하이레벨상태이므로 도 13에서 래치회로(757)에 래치되어 있는 8번째 기록어드레스 데이터가 도 11에서 개시어드레스 설정부(800)의 제5 멀티플렉서(801)와 디멀티플렉서(802) 및 제7 멀티플렉서(804)를 통해서 개시어드레스 저장부(600)로 입력되게 된다. 또한, 이때 개시어드레스 변환신호(ACHG)가 하이레벨로 설정되므로, 상기 제7 멀티플렉서(804)로부터 출력되는 기록어드레스 데이터는 기록개시 어드레스 레지스터(602)에 저장되게 된다. 즉, 도 9 및 도 10에서 데이터포맷 변환된 8번째 데이터인 DATA 8을 데이터 메모리(50)에 저장하기 위한 어드레스 데이터가 다음 데이터포맷 변환동작의 기록개시 어드레스 데이터로서 등록되게 된다.
한편, 상기와 같이 8바이트의 데이터, 즉 도 6에서 B(1, 1), B(2, 1), …, B(8, 1)에 대한 데이터포맷 변환동작이 종료하게 되면, DMA 콘트롤러(70)는 도 14의 (A)에 나타낸 바와 같이 버스요구신호()를 하이레벨로 설정하게 되고, 또한 이에 대하여 CPU(40)는 도 14의 (B)로 나타낸 바와 같이 버스허가신호()를 하이레벨로 설정함으로써 1회의 DMA동작을 종료하게 된다.
이어, 도 4 및 도 5에서 설명한 바와 같이 DMA 콘트롤러(70)는 타이머(71)로부터 다시 하이레벨신호가 출력되게 되면, CPU(40)에 대하여 버스요구신호()를 출력하게 되고, CPU(40)는 이에 대하여 버스허가신호()를 출력함으로써 다음의 DMA동작을 실행하게 되는데, 이때는 도 11에서 개시어드레스 저장부(600)에 저장되어 있는 어드레스 데이터, 즉 그 이전의 DMA 동작 중에 셋트된 어드레스 데이터를 개시어드레스로하여 데이터포맷 변환동작을 실행하게 되므로, 제2 회째의 DMA 동작중에는 도 6에서 B(1, 2), B(2, 2), …, B(8, 2)에 대한 데이터포맷 변환이 이루어지게 된다.
그리고, 상술한 동작을 반복하여 도 6에서 B(1, 324), B(2, 324), …, B(8, 324)에 대한 데이터포맷 변환동작이 종료하게 되면, 도 4 및 도 5에서 설명한 바와 같이 타이머 장치(80)로부터 인터럽트신호(INT)가 출력되게 되고, CPU(40)는 다시 어드레스 발생부(60)에 대하여 독출/기록개시 어드레스 데이터를 셋트하고 타이머 장치(80)에 대하여 소정의 계수값을 셋트하는 동작을 실행한 후, DMA 콘트롤러(70)의 타이머(71)를 기동시키는 방법을 통해 다음 인쇄데이터, 즉 도 6에서 B(9, 1)∼B(16, 324)에 대한 데이터포맷 변환동작을 실행제어하게 된다.
또한, 이러한 데이터포맷 변환동작을 데이터 메모리(50)에 저장되어 있는 전체의 인쇄데이터에 대하여 지속적으로 실행함으로써 데이터변환동작을 종료하게 된다.
즉, 상기 실시예에 의하면, 수평인쇄방식에 따른 인쇄데이터를 하드웨어적인 구성을 통하여 수직인쇄방식에 따른 인쇄데이터로 변환하게 되므로, 데이터변환을 위한 소프트웨어적인 부담이 대폭 경감되게 된다.
그리고, 상기한 인쇄데이터포맷 변환동작이 DMA 콘트롤러(70)에 의한 DMA 동작을 통해 실행되게 되므로, 데이터포맷 변환을 위한 CPU(40)의 부담이 대폭 경감되게 되고, 또한 데이터 변환속도를 고속으로 실행할 수 있게 된다.
또한, 상기 실시예에 있어서는 어드레스 발생부(60)에 셋트되는 기록어드레스 오프셋값 데이터와 독출어드레스 오프셋값 데이터를 변경하는 것으로 다양한 프린터 엔진의 사양에 대응할 수 있게 되므로, 다양한 사용환경에 용이하게 적용하여 실시할 수 있게 된다.
또한, 본 발명은 상기 실시예에 한정되지 않고 본 발명의 기술적 요지를 벗어나지 않는 범위내에서 다양하게 변형시켜 실시할 수 있게 된다.
즉, 예를 들어 도 4의 구성에 있어서 어드레스 발생부(60)와 DMA 콘트롤러(70) 및 타이머장치(80) 등은 게이트 어레이(Gate Array)나 ASIC(Application Specific IC) 등을 이용하여 하나의 디바이스로 구성하는 것도 바람직하게 된다.
도 15는 본 발명의 다른 실시예에 따른 인쇄데이터 포맷변환장치의 구성을 나타낸 블록구성도로서, 이는 어드레스 발생부(60)와 DMA 콘트롤러(70) 및 타이머장치(80) 등을 하나의 디바이스로 구성한 경우를 나타낸 것이다. 또한, 도 15에서 상술한 도 4와 실질적으로 동일한 구성요소에는 동일한 참조번호가 부가되어 있다.
도 15에서 인쇄데이터 포맷변환장치(150)는 도 4에서 설명한 바와 같이 어드레스 발생부(60)와 DMA 콘트롤러(70), 타이머(71), 데이터포맷 변환부(72) 및 타이머장치(80)를 구비하게 된다. 그리고, 이들 구성요소는 도 4의 것과 실질적으로 동일한 구성을 갖춤과 더불어 동일한 기능을 실행하게 된다. 또한, DRAM 콘트롤러(160)는 예컨대 DRAM으로 이루어지는 데이터 메모리(50)에 대한 RAS(Row Address Strobe) 제어신호와 CAS(Column Address Strobe) 제어신호를 생성함과 더불어, 해당 데이터 메모리(50)에 대한 리프레쉬(refresh) 제어를 실행하게 된다.
또한, 도면에 구체적으로 나타내지는 않았으나, 상기 어드레스 발생부(60),DMA 콘트롤러(70), 데이터포맷 변환부(72) 및 타이머장치(80) 등은 내부적으로 어드레스 버스 및 데이터버스를 통해 결합되게 되고, DMA 콘트롤러(70)는 상술한 바와 마찬가지로 도 14에 나타낸 각종 타이밍신호를 어드레스 발생부(60)에 대해 공급함으로써 데이터포맷변환을 실행제어하게 된다.
그리고, CPU(40)가 어드레스버스(90)와 데이터버스(100)를 통해 어드레스 발생부(60)에 대해 독출 및 기록개시 어드레스데이터와 독출 및 기록어드레스 오프셋값 데이터를 로드한 후 타이머(71)와 타이머장치(80)를 구동하도록, CPU(40)를 적절히 프로그래밍함으로써 인쇄데이터 포맷변환을 실행할 수 있게 된다.
즉, 상기 구성에 있어서는 인쇄데이터 포맷변환장치가 하나의 디바이스로서 구성되게 되므로, 해당 장치를 프린터나 팩시밀리장치 등에 용이하게 적용하여 사용할 수 있게 된다. 그리고, 상기한 장치에 의한 포맷변환동작은 어드레스 발생부(60)에 로드되는 독출 및 기록개시 어드레스데이터와 독출 및 기록어드레스 오프셋값 데이터에 의해 이루어지게 되므로, 상기 장치와 어드레스 버스(100)와 데이터버스(90)를 통해 결합되는 CPU를 적절하게 프로그래밍하는 방법을 통해 다양한 기기의 사양에 적합한 데이터포맷변환을 실행할 수 있게 된다.
이상 설명한 바와 같이 본 발명에 의하면, CPU의 처리속도에 영향을 주지 않으면서 고속으로 데이터 변환을 실행할 수 있고, 또한 팩시밀리장치나 프린터장치 등에 채용되는 프린터 엔진의 사양에 따라 그 인쇄데이터포맷을 용이하게 변경설정할 수 있도록 된 인쇄데이터포맷 변환장치를 실현할 수 있게 된다.

Claims (8)

1 라인당 N 바이트의 데이터를 수평인쇄하도록 된 수평인쇄방식의 인쇄데이터포맷을 한 번에 M 바이트의 단위로 수직인쇄를 실행하도록 된 수직인쇄방식의 인쇄데이터포맷으로 변환하도록 된 인쇄데이터포맷 변환장치에 있어서,
수평인쇄방식의 데이터가 어드레스 순으로 순차 저장되는 제1 저장영역과, 데이터포맷 변환된 수직인쇄방식의 데이터를 저장하기 위한 제2 저장영역을 구비하는 데이터 메모리수단과,
1회의 DMA 동작 싸이클에 대응하여 소정의 독출개시 어드레스 데이터에 대하여 상기 N값에 대응하는 독출어드레스 오프셋값 데이터를 가산하여 상기 제1 저장영역으로부터 K 바이트의 데이터를 독출하기 위한 독출어드레스 데이터를 생성하고, 소정의 기록개시 어드레스 데이터에 대하여 상기 M값에 대응하는 기록어드레스 오프셋값 데이터를 가산하여 상기 제2 저장영역에 대해 K 바이트의 데이터를 기록하기 위한 기록어드레스 데이터를 생성하는 어드레스 발생수단,
상기 데이터 메모리수단으로부터 독출된 K 바이트의 데이터를 동일한 비트끼리 분리조합하여 상기 제2 저장영역에 저장되기 위한 K 바이트의 데이터를 생성하는 데이터포맷 변환수단과, DMA동작 싸이클을 설정하기 위한 타이머를 구비하고, 상기 타이머로부터의 출력신호에 대응하여 CPU에 대하여 버스요구신호를 출력하고, CPU로부터 버스허가신호가 입력되면 상기 어드레스 발생수단을 제어하여 데이터포맷 변환동작을 실행제어하는 DMA 콘트롤수단,
상기 DMA 콘트롤수단으로부터 출력되는 버스요구신호의 횟수가 M값이 되면 인터럽트신호를 출력하는 계수수단 및,
상기 인터럽트신호에 대응하여 상기 어드레스 발생수단에 대하여 독출 및 기록개시 어드레스 데이터와 독출 및 기록 어드레스 오프셋값 데이터를 등록함과 더불어 상기 타이머를 구동제어하는 CPU를 포함하여 구성된 것을 특징으로 하는 인쇄데이터포맷 변환장치.
제1항에 있어서,
상기 기록어드레스 오프셋값 데이터는 M/K로 설정되는 것을 특징으로 하는 인쇄데이터포맷 변환장치.
제1항에 있어서,
상기 어드레스 발생수단은 상기 제1 저장영역으로부터 인쇄데이터를 독출하기 위한 독출개시 어드레스 데이터와 상기 제2 저장영역에 인쇄데이터를 기록하기 위한 기록개시어드레스 데이터를 저장하기 위한 개시어드레스 저장수단과,
상기 개시어드레스 저장수단에 저장되어 있는 독출개시 어드레스 데이터와 기록개시어드레스 데이터를 선택적으로 출력하기 위한 제1 멀티플렉서,
상기 제1 멀티플렉서로부터 출력되는 독출개시 어드레스 데이터를 순차적으로 증가시키기 위한 카운터,
독출/기록어드레스 오프셋값 저장수단을 구비하여, 상기 제1 멀티플렉서로부터 출력되는 독출 또는 기록 어드레스 데이터에 대하여 상기 독출/기록 어드레스 오프셋값을 선택적으로 가산하여 출력하는 독출/기록 어드레스 생성수단 및,
데이터 버스를 통해 입력되는 독출/기록 개시어드레스 데이터와, 상기 카운터 또는 독출/기록 어드레스 생성수단으로부터 출력되는 어드레스 데이터를 근거로 상기 개시어드레스 저장수단에 대해 개시어드레스 데이터를 등록하는 개시어드레스 설정수단을 포함하여 구성된 것을 특징으로 하는 인쇄데이터포맷 변환장치.
제1항에 있어서,
상기 데이터포맷 변환수단은 데이터 버스에 입력단이 결합되고, 소정의 선택신호에 따라 데이터 버스를 통해 입력되는 데이터를 저장하여 출력하는 다수의 제1 레지스터와,
상기 제1 레지스터 각각의 동일한 비트출력이 입력단에 결합되고, 소정의 선택신호에 따라 입력되는 데이터를 저장하여 출력하는 다수의 제2 레지스터 및,
소정의 선택신호에 따라 상기 제2 레지스터의 출력을 선택적으로 데이터 버스에 결합시키는 멀티플렉서를 구비하여 구성된 것을 특징으로 하는 인쇄데이터포맷 변환장치.
데이터버스 및 어드레스버스와 결합되기 위한 포트를 구비하고,
상기 데이터버스를 통해 입력되는 독출 및 기록개시 어드레스 데이터와 독출 및 기록어드레스 오프셋값을 저장하기 위한 저장수단을 갖추고, 소정의 제어신호에따라 상기 저장수단에 저장된 데이터를 근거로 독출 및 기록어드레스를 생성하는 어드레스 발생수단과,
상기 어드레스 발생수단에서 생성된 독출 어드레스 데이터에 의해 독출된 소정 바이트의 데이터를 동일한 비트끼리 분리조합하는 데이터포맷 변환수단,
DMA 동작싸이클을 설정하기 위한 타이머를 구비하고, 상기 타이머로부터의 출력신호에 대응하여 버스요구신호를 출력하고, 버스허가신호가 입력되면 어드레스 발생수단과 데이터포맷 변환수단을 제어하여 데이터포맷 변환동작을 실행제어하는 DMA 콘트롤수단 및,
실행해야할 DMA 동작싸이클의 실행횟수를 저장하기 위한 저장수단을 구비하고, 상기 버스요구신호의 출력횟수를 계수하여 그 계수치가 상기 실행횟수에 도달하면 DMA 실행종료신호를 출력하는 계수수단을 포함하여 구성된 것을 특징으로 하는 인쇄데이터포맷 변환장치.
제5항에 있어서,
상기 어드레스 버스 및 데이터 버스에 결합되는 메모리를 제어하기 위한 메모리 콘트롤수단을 추가로 포함하여 구성된 것을 특징으로 하는 인쇄데이터포맷 변환장치.
제5항에 있어서,
상기 어드레스 발생수단은 데이터버스를 통해 입력되는 독출개시 어드레스데이터와 기록개시어드레스 데이터를 저장하기 위한 개시어드레스 저장수단과,
상기 개시어드레스 저장수단에 저장되어 있는 독출개시 어드레스 데이터와 기록개시어드레스 데이터를 선택적으로 출력하기 위한 제1 멀티플렉서,
상기 제1 멀티플렉서로부터 출력되는 독출개시 어드레스 데이터를 순차적으로 증가시키기 위한 카운터,
독출/기록어드레스 오프셋값 저장수단을 구비하여, 상기 제1 멀티플렉서로부터 출력되는 독출 또는 기록 어드레스 데이터에 대하여 상기 독출/기록 어드레스 오프셋값을 선택적으로 가산하여 출력하는 독출/기록 어드레스 생성수단 및,
데이터 버스를 통해 입력되는 독출/기록 개시어드레스 데이터와, 상기 카운터 또는 독출/기록 어드레스 생성수단으로부터 출력되는 어드레스 데이터를 근거로 상기 개시어드레스 저장수단에 대해 개시어드레스 데이터를 등록하는 개시어드레스 설정수단을 포함하여 구성된 것을 특징으로 하는 인쇄데이터포맷 변환장치.
제5항에 있어서,
상기 데이터포맷 변환수단은 데이터 버스에 입력단이 결합되고, 소정의 선택신호에 따라 데이터 버스를 통해 입력되는 데이터를 저장하여 출력하는 다수의 제1 레지스터와,
상기 제1 레지스터 각각의 동일한 비트출력이 입력단에 결합되고, 소정의 선택신호에 따라 입력되는 데이터를 저장하여 출력하는 다수의 제2 레지스터 및,
소정의 선택신호에 따라 상기 제2 레지스터의 출력을 선택적으로 데이터 버스에 결합시키는 멀티플렉서를 구비하여 구성된 것을 특징으로 하는 인쇄데이터포맷 변환장치.
KR1019990024083A 1998-06-25 1999-06-24 인쇄데이터포맷 변환장치 KR100297983B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990024083A KR100297983B1 (ko) 1998-06-25 1999-06-24 인쇄데이터포맷 변환장치

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR19980024149 1998-06-25
KR1019980024149 1998-06-25
KR1019990024083A KR100297983B1 (ko) 1998-06-25 1999-06-24 인쇄데이터포맷 변환장치

Publications (2)

Publication Number Publication Date
KR20000006435A KR20000006435A (ko) 2000-01-25
KR100297983B1 true KR100297983B1 (ko) 2001-11-01

Family

ID=26633810

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990024083A KR100297983B1 (ko) 1998-06-25 1999-06-24 인쇄데이터포맷 변환장치

Country Status (1)

Country Link
KR (1) KR100297983B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114327256A (zh) * 2021-11-22 2022-04-12 南京风兴科技有限公司 一种用于神经网络处理器的数据格式在线转换架构及方法

Also Published As

Publication number Publication date
KR20000006435A (ko) 2000-01-25

Similar Documents

Publication Publication Date Title
US5347617A (en) Printer having a multiple scan line printhead controller
KR100297983B1 (ko) 인쇄데이터포맷 변환장치
US6084686A (en) Buffer memory control device and control method, and an image processing device and method using the same
JPS60183628A (ja) 文字信号発生装置
JP2008149640A (ja) 印刷装置
JP5276744B2 (ja) 画像処理装置及びその制御方法
JP2000174972A (ja) 印刷デ―タフォ―マット変換装置
JP3171908B2 (ja) 画像出力装置及び画像出力方法
CN102511159A (zh) 图像处理装置及其控制方法
JPH09174952A (ja) カラープリンタ
JPS5867457A (ja) 出力装置
US6191865B1 (en) Image processing system and method for controlling such system
KR100186226B1 (ko) 화상형성장치의 흰선 표현력 개선회로
JP2563014B2 (ja) サーマルヘッド
JPS63141451A (ja) 記録装置
JP3313462B2 (ja) ファクシミリ装置
JPS63188052A (ja) 記録装置
JPH04301466A (ja) 画像処理装置
KR100193849B1 (ko) 인접도트 제어장치를 구비하는 시리얼 프린터
KR100438161B1 (ko) 스캐닝장치
JP2002007206A (ja) メモリ制御装置及び画像処理装置
JP2002240261A (ja) 印字用バッファメモリ制御装置
JPS6211544B2 (ko)
KR19980063214A (ko) 임의 해상도 변환이 가능한 화상기록장치
JPH09254440A (ja) 電子写真プリンタ

Legal Events

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