KR920003346B1 - T.30 protocol command receiving and analysis method - Google Patents
T.30 protocol command receiving and analysis method Download PDFInfo
- Publication number
- KR920003346B1 KR920003346B1 KR1019890011788A KR890011788A KR920003346B1 KR 920003346 B1 KR920003346 B1 KR 920003346B1 KR 1019890011788 A KR1019890011788 A KR 1019890011788A KR 890011788 A KR890011788 A KR 890011788A KR 920003346 B1 KR920003346 B1 KR 920003346B1
- Authority
- KR
- South Korea
- Prior art keywords
- register
- value
- address
- command
- interrupt
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Facsimiles In General (AREA)
- Communication Control (AREA)
Abstract
내용 없음.No content.
Description
제1도는 본 발명에 적용되는 시스템도.1 is a system diagram applied to the present invention.
제2도는 제1도중 FIU(11)의 구체 블럭도.2 is a detailed block diagram of the
제3도는 일반적인 HDLC 코맨드 포맷도.3 is a general HDLC command format diagram.
제4도는 본 발명에 따른 인터럽트 벡터 테이블도.4 is an interrupt vector table in accordance with the present invention.
제5도는 본 발명에 따른 인터럽트 서비스 루틴의 흐름도.5 is a flowchart of an interrupt service routine in accordance with the present invention.
제6도는 본 발명에 따른 코맨드 분석 루틴의 흐름도.6 is a flow chart of a command analysis routine in accordance with the present invention.
제7도는 본 발명에 따른 각 라인관리 테이블의 메모리 맵 및 데이터 버퍼 테이블도.7 is a memory map and data buffer table of each line management table according to the present invention.
본 발명은 팩시밀리(Facsimile;이하 FAX라 칭함)의 데이터 송수신 시스템에 관한 것으로, 특히 다중 회선을 처리할 수 있는 FIU(FAX Interface Unit)를 통해 HDLC 포맷의 코캔드(command)를 동시에 여러 회선에서 수신할 수 있는 방법에 관한 것이다.BACKGROUND OF THE
제1도에 도시한 바와같이 FAX통신을 위한 시스템은 본원 동일 출원이 출원한 특허출원 제87-15548호 및 제89-4110호를 보면 알 수 있으며, 간단하게 하기에 설명한다.As shown in FIG. 1, a system for FAX communication can be seen from patent applications 87-15548 and 89-4110 filed by the same application of the present application, and will be described briefly below.
먼저 전체적인 시스템 설명은 생략하고 FIU(11) 및 FCP(10)를 설명하면 제2도에서 도시한 바와같이 NCU(23)는 PABX(103)에 적정 접속되어서 FIU(11)내의 여러장치들로의 접속을 제어하는 장치이다.First, the overall system description will be omitted, and the FIU 11 and FCP 10 will be described. As shown in FIG. 2, the NCU 23 is properly connected to the PABX 103 to provide various devices in the FIU 11. The device that controls the connection.
전화기로부터 링(ring)이 들어오면 NCU(23)내의 링 검출기가 링을 감지하여 CPU(14)로 직접 알려주며 CPU(14)는 MCP(8)에게 링이 왔다는 착호 통지를 보내주고 나서 NCU(23)로 데이터 버스를 연결하라는 지시를 내린다. 이때 상기 MCP(8)로 부터 여러 종류의 푸시 버튼 데이터를 수신하라는 (Voice) 코맨드가 수신되면 CPU(14)는 EPROM(18)의 해당 데이터를 CODEC(21)를 통해 이용자에게 보이스를 출력한다. 상기 이용자가 해당 음성을 듣고 전화기의 푸시버튼(push botton(PB))을 이용해서 PB데이터(0-9,#,*의 조합)를 DTMF(20)로 송신한다. 상기 DTMF(20)는 아날로그 데이터를 디지탈로 바꾸어서 INTC(16)로 인터럽트를 걸어 PB데이터를 RAM(19)내의 지정 버퍼에 라이트하며, 이를 DMAC(15)를 통해 FIFO(17)에 전달하여 MCP(8)에 까지 전송한다. 상기와 같이 해당 음성출력 및 PB데이터 수신이 반복되어 모든 PB데이터 수신을 완료하면 마지막으로 전화기를 훅크 온 시키고 FAX(101)의 통신 버튼을 눌러 달라는 음성 출력을 하게 된다.When a ring comes in from the telephone, a ring detector in the NCU 23 detects the ring and notifies the CPU 14 directly, and the CPU 14 sends a call notification to the
이후부터 FAX의 모뎀과 FIU(11)내의 모뎀(22)과의 T.30프로토콜(protocol)통신이 이루어진다. 이때 주고 받는 프로토콜 정보는 FAX 의 종별과 회선속도, 글자체 모드등이고 이런 규정이 확립되면 실제 FAX이미지 데이터를 MODEM(22)과 DMAC(15)를 이용하여 FCP(10)에 전송하면 FCP(10)는 MCP(8)의 메세지 정보를 받아 PCP(13)와 블럭단위의 전송이 이루어진다. 전송이 끝나면 라인을 절단하는데 상기 수신된 이미지 데이터를 송신하고자 할때는 새로 프리 라인(Free Line)을 찾아 해당 FAX에 접속시키고, 블럭단위로 상대방 팩시밀리로 데이터 송신을 행하고 송신이 완료되면 회선을 끊고 송수신을 마치게 된다. 기존의 FAX들은 포인트-투-포인트(Point-to-point) 형식의 통신만 할 수 있으므로 다중처리는 할 수 없다. 또한 FAX 자체에는 다양한 기능을 첨가시킨다는 것은 가격면에서 비효율적이므로 기능첨가에는 한계성이 따른다. 이런 상황을 극복하고 소형이면서도 싼가격의 FAX도 다양한 기능의 서비스를 받기 위해서 FAX 이용자가 직접 MHS(Message Handling System)에 액세스(Access)하여 MHS의 서비스를 받게 하는 것이 다중회선 처리 FIU의 필요성이다.Thereafter, T. 30 protocol communication is performed between the FAX modem and the modem 22 in the FIU 11. At this time, the protocol information is sent and received, such as the type of FAX, line speed, font mode, etc. If this rule is established, the actual FAX image data is transmitted to the
따라서 본 발명의 목적은 다중회선 FIU를 통해서 HDLC포맷의 코맨드를 동시에 수신 처리함으로써 여러 FAX 사용자가 MHS 서비스를 받을 수 있는 다중 FAX 통신을 위한 T.30프로토콜 코맨드 수신 및 분석방법이다.Accordingly, an object of the present invention is a method of receiving and analyzing T.30 protocol commands for multi-FAX communication in which multiple FAX users can receive MHS service by simultaneously receiving and processing HDLC format commands through a multi-line FIU.
이하 본 발명을 도면을 참조하여 상세히 설명한다.Hereinafter, the present invention will be described in detail with reference to the drawings.
제3도는 일반적인 HDLC 코맨드 포맷도이고, 제4도는 본 발명에 따른 인터럽트 벡터 테이블도이며, 제5도는 본 발명에 따른 인터럽트 서비스 루틴의 흐릅도이고, 제6도는 본 발명에 따른 코맨드 분석 루틴의 흐름도이며, 제7도는 본 발명에 따른 각 라인 관리 테이블의 메모리 맵 및 데이터 버퍼 테이블도로서,(A)는 라인관리 테이블의 메모리 맵이고, (B)는 데이터 버퍼 테이블도이다.3 is a general HDLC command format diagram, FIG. 4 is an interrupt vector table diagram according to the present invention, FIG. 5 is a flowchart diagram of an interrupt service routine according to the present invention, and FIG. 6 is a flowchart of a command analysis routine according to the present invention. 7 is a memory map and data buffer table diagram of each line management table according to the present invention, (A) is a memory map of the line management table, and (B) is a data buffer table diagram.
상술한 구성에 의거 본 발명을 제1-7도를 참조하여 상세히 설명한다.Based on the above configuration, the present invention will be described in detail with reference to FIGS. 1-7.
우선 실제로 설명될 부분은 제1도 FIU(11)에 대해서이기 때문에 본 발명과 연관되는 제2도의 구성을 설명하면 다중회선을 제어할 수 있는 16비트 CPU(14)와, 다중회선을 구현하기 위해 필요한 DMAC(15)와, INTC(16)와, 복수개의 모뎀(22)으로 구성되며, 메모리로 RAM(19) 256K가 사용된다. 각 모뎀(22)은 DMAC(15)의 각 채널과 연결되면서 코맨드 데이터 수신시 DMAC(15)를 모뎀(22)이 액티브(active)시키면 DMAC(15)는 데이터를 메모리에 세이브(save)시킨후 INTC(16)에게 인터럽트 요구를 한다. 이때 발생되는 인터럽트에 의해 제5도에서 도시한 인터럽트 서비스 루틴이 수행되고, 이 루틴은 하아드웨어(Hardware)적인 연결에 의해 각 라인에 대하여 해당 주소를 할당 받아서 처리가 된다. 따라서, 각 모뎀(23)으로부터 DMAC(15)의 각 채널로 데이터 수신 요구가 들어오면, DMAC(15)의 각 채널은 서로 독립적으로 모뎀(22)으로 부터 1바이트의 코맨드 데이터를 읽어서 RAM(19)의 각 해당 회선의 버퍼에 세이브시킨다. 그후에 DMAC(15)의 각 채널들은 INTC(16)의 각 채널로 인터럽트를 요청한다. 이때 동시에 인터럽트 요청이 들어오면 정해진 순위에 의해 인터럽트가 처리된다. 상기 순위가 높은 채널의 인터럽트가 처리되고 있는 동안은 순위가 낮은 인터럽트는 펜딩(pending)되므로 인터럽트를 잃어 버릴 염려는 없다. 상기 수행후 CPU(14)는 수신된 데이터를 분석하여 처리를 행하게 된다. 하아드웨어에 의해 상기 인터럽트가 발생할 시 인터럽트 서비스 루틴 수행을 설명한다. 즉, 제4도에서 도시한 벡터(vector)테이블에 의해 제5도의 각 회선별로 할당되어 있는 COMRECV0, COMRECV1, COMRECV2, COMRECV3…루틴이 수행되게 된다. 상기 인터럽트가 발생되면 INTC(16)는 인터럽트 벡터 어드레스를 실어줌에 의해 상기 루틴중에 하나가 수행되게 된다.First, since the part to be actually described is with respect to FIG. 1, the
상기 벡터 테이블은 인텔(Intel)계열 어셈블리 랭귀지(Assembly language)를 사용하면 인터럽트 컨트롤러(controller)에다 각 채널별로 해당되는 벡터 넘버 20H를 세트시켜 놓고서 각 채널별로 80H, 84H…, OXXH에다가 벡터 어드레스를 세이브시키는 과정이다.The vector table uses an Intel-based assembly language, and sets the vector number 20H corresponding to each channel in the interrupt controller. This is the process of saving the vector address to OXXH.
제3도는 실제 CCITT T.30에서 권고하고 있는 HDLC 프레임의 포맷(format)이며, 이 프레임을 수신하는 방법이 본 발명에 해당한다. 상기 HDLC 프레임 포맷의 프리앰블(Preamble)(1A)은 코맨드 하나를 보내기 위해 싱크를 맞추는 28H개 정도의 7EH를 뜻하고, 바이너리 코디드 인포매이션(Binary Coded Information)에서 넌-스탠다드 팩시리더스 프레임(Non-standard facilities frame)(2A)은 같은 FAX기종간에만 통하는 정보이다. 콜드 서브스크라이버 아니덴티피케이션 프레임(Called Subschber Identification frame)(3A)은 전화번호 등의 자신의 정보이고, 플래그(flag)(4A)는 7EA가 싱크(sync)를 맞추기 위해 사용된다. 어드레스(Address)(5A)는 어드레스 필드(field)로 0FFH가 설정되며, 컨트롤(control)(6A)은 처음 프레임이냐 마지막 프레임이냐를 나타낼 수 있는 1100×000B이며, 팩시밀리 컨트롤(7A)은 하나의 프레임이 어떤 프레임이냐를 나타내는 코맨드 코드이다. 팩시밀리 인포매이션은 실제로 통신되는 정보인 스피드(speed) 코딩모드 화질, 종이폭등의 정도를 나타내고, 프레임 체킹 시퀸스(Frame Checking Sequence)(8A)는 에러체크용 2바이트 데이터로 되어 있다. 상기 팩시밀리 인포매이션의 G1과 G2 캐퍼빌러티(Capability)(9A)는 G1, G2에만 관련되는 데이터이고 여기서는 서비스를 하지 않는다. 베이직(B asic) G3캐퍼빌러티+애디션널(Additinal) G3캐퍼빌러티(10A)는 G3의 송수신에 필요한 모든 사항이다.3 is a format of an HDLC frame recommended in CCITT T.30, and a method of receiving the frame corresponds to the present invention. The preamble 1A of the HDLC frame format refers to about 28H 7EHs that are synchronized to send one command, and non-standard facilitator frame (Non-) in binary coded information. The standard facilities frame (2A) is information that passes only between the same FAX models. The cold subscriber identification frame 3A is its own information, such as a telephone number, and the flag 4A is used for 7EA to sync. Address 5A is set to 0FFH as an address field, and control 6A is 1100 × 000B which can indicate whether it is the first frame or the last frame, and the
상기 인터럽트 서비스 루틴은 다음과 같은 작업이 수행된다. 제7a도에서 도시된 바와 같이 해당 라인의 관린 테이블(LCTB)의 베이스 어드레스를 베이스 레지스터(BX)에 정하고, (1B)단계는 채널 0에 해당하고 (2B)단계는 채널 1, (3B) 단계는 채널 2에, (4B)단계는 채널 7에 해당하며, 인터럽트 서비스루틴과 베이스 레벨 루틴들이 공유하는 각 회선별 라인 관리 테이블(LCTB)들이다. 상기 베이스 어드레스를 정한후 (5B)단계에서 TCRINT 루틴을 수행한다. 상기 루틴은 실제 수신되는 제3도의 프리앰블(1A)과 프레임체크 시퀸스(8A)등의 데이터를 제로(Zero) 딜리트(Delete)없이 수신한 후에 바이트 단위로 처리하여 하나의 프레임을 수신하는 작업을 수행한다. 그리고 프레임이 수신되면 이벤트(Event)를 베이스 레벨로 띄워준다. 상기 인터럽트 서비스 루틴에 의해 제6도에서 도시한 바와 같이 (1E) 및 (2E)단계에서 이벤트를 수신하게 되면, (3E) 단계에서는 수신된 데이터에서 1이 5개후에 들어오는 0를 딜리트한후 (4E)단계에서 CRC체크를 행하게 된다. 상기 CRC체크 후(5E)단계에서는 CRC에러가 발생되면 (6E)단계에서 재전송 코맨드를 송신하고, 에러가 없으면 (7E)단계에서 코맨드를 분석 처리하면 된다. 제7b도는 각 회선별 코맨드 수신 버퍼를 나타낸다.The interrupt service routine performs the following tasks. As shown in FIG. 7A, the base address of the related table LCTB of the corresponding line is set in the base register BX, where step (1B) corresponds to channel 0 and step (2B) is
상기 인터럽트 서비스 루틴을 설명하기 전에 이 루틴의 기호들에 대해 하기에 설명한다.Before describing the interrupt service routine, the symbols of this routine are described below.
COMRECV0-COMRECVn은 인터럽트 서비스 루틴 이름이고, PUSHA는 모든 사용중인 레지스터를 스태(stack)에 세이브시키는 명령이며, MOV BX, offset LCTB는 라인 관리 테이블의 주소를 BX에 로드시키는 명령이고, ADD BX, 100H *X는 각 회선별로 100H만큼의 메모리를 라인관리 테이블에 할당하여 그 회선에 관한 모든 정보를 세이브시키기 위한 베이스 에드레스를 계산하는 과정이며 x값에 따라 회선의 베이스 어드레스가 결정된다.COMRECV0-COMRECVn is the interrupt service routine name, PUSHA is the instruction to save all active registers to the stack, MOV BX, offset LCTB is the instruction to load the address of the line management table into BX, ADD BX, 100H * X is a process of allocating 100H of memory for each line to the line management table to calculate a base address for saving all information about the line. The base address of the line is determined according to the x value.
또한 TCRINT는 실제 인터럽트가 발생되었을때 처리될 모듈이고, MoV DX, [BX+INT_END]는 발생된 인터럽트를 클리어(clear)시키기 위한 주소를 DX에 고드시키며, OUT DX, AL은 현재 DX에 로드되어 있는 주소로 AL의 값을 라이트(write)함에 의해 발생된 인터럽트를 클리어시키고, CPU EOI는 CPU를 앤드 오브 인터럽트(End of Interrupt)시키며, POPA는 인터럽트 발생전 상태로 모든 레지스터를 복구시키고, IRET는 인터럽트 처리루틴에서 벗어난다.In addition, TCRINT is the module to be processed when an actual interrupt occurs. MoV DX, [BX + INT_END] notifies the DX of an address to clear the generated interrupt. OUT DX, AL is currently loaded on DX. The interrupt generated by writing the value of AL to the correct address is cleared, the CPU EOI end of interrupt the CPU, POPA restores all registers to the state before the interrupt occurred, and IRET Break out of interrupt handling routine.
AL←[BX+COMBYT]은 BX+COMBYT가 가르키는 주소의 값을 AL에 로드시키고, ROL Al, 1은 AL 레지스터의 한 비트를 레프트 로테이트(left.rotate)시키라는 명령이며, RCL CL, 1은 CL레지스터의 한 비트를 레프트 로테이트시키되 캐리 플래그(carry flag)가 CL레지스터의 비트 0로 쉬프트(shift)되는 명령이고, [BX+FLAG_CNT]←은 BX+FLAG_CNT가 가르키는 주소에 1을 세이브시키라는 의미이다.AL ← [BX + COMBYT] loads the value of the address pointed to by BX + COMBYT to AL. ROL Al, 1 is the command to left-rotate one bit of the AL register. RCL CL, 1 Is a command to rotate one bit of the CL register, but the carry flag is shifted to
또한 상기 BX는 베이스 레지스터이고, DX는 데이터 레지스터이며, AL은 어큐뮬레이터(Accumulator) 로우(Low)레지스터이고, CL은 카운터 로우 레지스터이다.The BX is a base register, the DX is a data register, the AL is an accumulator low register, and CL is a counter low register.
다음은 인터럽트 서비스 루틴의 흐름을 보면 제5도에서 (1B-4B)단계에서는 각각에 라인관리 테이블(LCTB)의 주소를 BX 레지스터에 로드시키는 명령을 하게되고, 그 회선에 관한 모든 정보를 세이브시키기 위한 베이스 어드레스를 계산한다. (5B)단계에서는 실제 인터럽트가 발생할시 처리하는 인터럽트 서비스 루틴이며 그후에 (6B)단계를 수행한다. 상기 (6B)단계에서는 발생된 인터럽트를 클리어시키기 위한 주소를 DX레지스터에 로드시키고 발생된 인터럽트를 클리어시키며, CPU를 앤드 오브 인터럽트를 시키면서 인터럽트 발생전 상태로 모든 레지스터를 복구시키고 인터럽트 처리 루틴에서 벗어난다. 상기 (5B)단계를 설명하면 (1C)단계에서는 BX+COMBYT가 가르키는 주소의 값을 AL레지스터에 로드한 후 (2C)단계를 수행한다. (2C)단계에서는 AL어드레스가 0FFH인가를 체크하여 0FFH이면 리턴을 수행하고 0FFH가 아니면 (3C) 단계를 수행한다. 상기 (3C)단계에서는 BX+CL_SAVE가 가르키는 주소의 값을 CL레지스터에 로드하고 AH레지스터에 8을 세이브시킨후 (4C)단계를 수행한다. 상기 (4C)단계에서는 BX+SYNC_FLG의 값이 1인가를 체크하여 1이면 (5C)단계를 수행한다. 상기 (5C)단계에서는 AL레지스터의 1비트를 레프트 로테이트 시키라는 명령을 하고, CL레지스터의 1비트를 레프트 로테이트시키되 캐리플래그가 CL레지스터의 비트 0로 쉬프트되는 명령을 한 후 (6C)단계를 수행한다. 상기 (6C)단계에서는 CL레지스터가 7EH인가를 체크하여 7EH가 아니면 (7C)단계에서 CH레지스터의 값을 하나 증가시켜 CH레지스터에 세이브시킨후 (8C)단계를 수행한다. 상기 (8C)단계에서는 CH레지스터가 8인가를 체크하여 8이 아니면 (9C)단계에서 AH레지스터의 값을 하나 감소시킨후 다시 상기 (6C)단계를 수행한다. 상기 (6C)단계에서 CL레지스터가 7EH이면 (10C)단계에서 BX+LAST_CHK가 가리키는 주소의 값이 0인가를 체크하여 0이면 (11C)단계에서 CH레지스터에 0를 세이브시킨후 (12C)단계를 수행한다.Next, in the flow of interrupt service routine, in step (1B-4B) in Fig. 5, each of the commands to load the address of the line management table (LCTB) into the BX register is executed, and all the information about the line is saved. Calculate the base address. In step (5B), the interrupt service routine processes when an actual interrupt occurs, and then performs step (6B). In step (6B), an address for clearing the generated interrupt is loaded into the DX register, the generated interrupt is cleared, all the registers are restored to the state before the interrupt occurred while the CPU is end-of-interrupted, and the interrupt processing routine is released. Referring to step (5B), in step (1C), the value of the address indicated by BX + COMBYT is loaded into the AL register, and then step (2C) is performed. In step (2C), it checks whether the AL address is 0FFH and returns if it is 0FFH, and performs step (3C) if it is not 0FFH. In the step (3C), the value of the address indicated by BX + CL_SAVE is loaded into the CL register, the 8 is saved to the AH register, and the step (4C) is performed. In step (4C), it is checked whether the value of BX + SYNC_FLG is 1, and if it is 1, step (5C) is performed. In the step (5C), the instruction to left rotate one bit of the AL register, and the left bit of the CL register to left rotate, but the carry flag is shifted to
상기 (12C)단계에서는 AH레지스터의 값을 하나 감소하여 AH레지스터에 세이브시킨후 (13C)단계에서 AH레지스터가 0인가를 체크한다. 상기 AH레지스터가 0가 아니면 (14C)단계에서 AH레지스터의 1비트를 레프트 로테이트시키라는 명령을 하고 CL레지스터의 1비트를 레프트 로테이트시키되 캐리 플래그가 CL레지스터의 비트 0로 쉬프트되는 명령을 하며 CH레지스터의 값을 하나 증가하여 CH레지스터에 저장한 후 다시 상기 (12C)단계를 수행한다. 상기 (13C)단계에서 AH레지스터가 0이면 (15C)단계에서 BX+CLSAVE가 가리키는 주소에 CL레지스터의 값을 세이브시킨후 리턴한다. 상기 (10C)단계에서 BX+LASTCHK가 가리키는 주소의 값이 0이 아니면 (16C)단계에서 CH레지스터의 값을 DL레지스터에 로드시키고 DH레지스터 및 CH레지스터에 0를 세이브시킨후 (17C)단계를 수행한다.In step (12C), the value of the AH register is decreased by one, and the result is saved in the AH register. In step (13C), it is checked whether the AH register is zero. If the AH register is not 0, in step 14C, the first bit of the AH register is left rotated and the first bit of the CL register is left rotated, but the carry flag is shifted to
상기 (17C)단계에서는 AH레지스터의 값을 하나 감소시켜 AH레지스터에 로드시키고, (18C)단계에서는 AH레지스터의 값이 0인가를 체크하여 0가 아니면 (19C)단계를 수행한다. 상기 (19C)단계에서는 상기 (14C)단계와 같이 수행한후 다시 (17C)단계를 수행한다. 상기 AH레지스터의 값이 0이면 (20C)단계에서 BX+LAST_CHK가 가리키는 주소에 CX레지스터의 값을 로드시키고 AL레지스터에 BX+BUF_CNT가 가리키는 주소의 값을 로드시킨후 (21C)단계를 수행한다. 상기 (21C)단계에서는 AL레지스터의 값이 5보다 작은가를 체크하여 작으면 (22C)단계를 수행하고 작지 않으면 (23C)단계를 수행한다. 상기 (22C)단계에서는 BX+LAST_CHK 및 BX+BUF_OUT가 가리키는 주소에 0을 세이브시킨후 리턴을 한다.In step (17C), the value of the AH register is decreased by one and loaded into the AH register. In step (18C), it is checked whether the value of the AH register is 0. In the step (19C) it is carried out as in step (14C) and then performs step (17C) again. If the value of the AH register is 0, in step 20C, the value of the CX register is loaded at the address indicated by BX + LAST_CHK, and the value of the address indicated by BX + BUF_CNT is loaded at the AL register. In step 21C, if the value of the AL register is less than 5, it is checked to be smaller than step 22C, and if not smaller, step 23C is performed. In step (22C), 0 is stored at the address indicated by BX + LAST_CHK and BX + BUF_OUT and returned.
상기 (23C)단계에서는 AX레지스터에 AX레지스터에 8을 곱해서 로드시키고 AX레지스터에 AX-DX를 로드시키며, BX+FRMESIZ가 가리키는 주소에 AX레지스터의 값을 로드시키고, AX레지스터에 BX+FCOMBUF가 가리키는 주소에 로드시키며, BX+FCOMBUF가 가리키는 주소의 값에 32H 더하여 BX+FCOMBUF가 가리키는 주소에 로드시키고, BX+FAX_EVENT가 가리키는 주소에 E_FRAME인 이벤트 값(EVENT Value)을 로드시킨 후 다시 (22C)단계를 수행한다. 상기 (8C)단계에서 CH레지스터가 8이면 (24C)단계에서 데이터를 저장하는 루틴을 수행하는 (1D)단계로 가서(1D)단계를 수행한다. 상기 (1D)단계에서 DI레지스터에 BX+FCOMBUF가 가리키는 주소의 값을 로드하고 AL레지스터에 BX+BUFCNT가 가리키는 주소의 값을 로드한 후 AH레지스터에 0을 세이브시키고, DI레지스터에 DI+AX를 로드시키며 DI레지스터가 가리키는 주소에 CL레지스터의 값을 로드시키고 BX+BUF_CNT가 가리키는 주소의 값에 하나를 증가하여 BX+BUF_CNT가 가리키는 주소에 로드시킨후 리턴을 한다. 상기 (24C)단계 수행후 (25C)단계에서는 BX+LAST_CHK가 가르키는 주소에 1을 세이브시키고 CH레지스터에 0을 세이브시킨후 (26C)단계를 수행한다. 상기 (26C)단계에서는 AH레지스터의 값을 1만큼 감소하여 AH레지스터에 로드시켜 (27C)단계에서 AH레지스터의 값이 0인가를 체크한다. 상기 AH레지스터의 값이 0이면 (28C)단계에서 BX+CL_SAVE가 가르키는 주소에 CL레지스터의 값을 로드시킨후 리턴한다. 상기 AH레지스터의 값이 0가 아니면 (29C)단계에서 (5C)단계와 같이 수행한 후(30C)단계를 수행한다.In step (23C), the AX register is loaded by multiplying the AX register by 8, the AX register is loaded with AX-DX, the AX register is loaded at the address indicated by BX + FRMESIZ, and the BX + FCOMBUF pointed to the AX register. Load into the address, add 32H to the address pointed to by BX + FCOMBUF, load it into the address pointed to by BX + FCOMBUF, load the EVENT Value of E_FRAME to the address pointed to by BX + FAX_EVENT, and then return to step 22C. Perform If the CH register is 8 in step (8C), go to step (1D) of performing a routine for storing data in step (24C) and perform step (1D). In step (1D), load the value of the address pointed to by BX + FCOMBUF into the DI register, load the value of the address pointed to by BX + BUFCNT into the AL register, save 0 to the AH register, and store DI + AX to the DI register. It loads the value of CL register to the address pointed to by DI register, increases the value of the address pointed to by BX + BUF_CNT, loads it to the address pointed to by BX + BUF_CNT, and returns. After performing step (24C), in step (25C), 1 is stored at the address indicated by BX + LAST_CHK, 0 is stored in the CH register, and then step (26C) is performed. In
상기 (30C)단계에서는 CL레지스터의 값이 7EH인가를 체크하여 7EH이면 상기 (16C)단계를 수행하고 7EH가 아니면 (31C)단계에서 CH레지스터의 값을 하나 증가시켜 CH레지스터에 로드시킨후 상기 (26C)단계를 다시 수행한다. 상기 (4C)단계에서 BX+SYNC_FLG가 가르키는 주소의 값이 1이 아니면 (32C)단계에서 (5C)단계와 같은 수행을 한다. 상기 수행후 (33C)단계에서는 CL레지스터의 값이 7EH인가를 판단하여 7EH가 아니면 (34C)단계에서 AH레지스터의 값이 0인가를 판단한 후 0이면 (35C)단계를 수행하고 0가 아니면 다시 (32C)단계를 수행한다. 상기 (35C)단계에서는 BX+CL_SAVE가 가리키는 주소에 CL레지스터의 값을 로드시킨 후 리턴한다. 상기 (33C)단계에서 7EH이면 (36C)단계를 수행하여 BX+Flag_CNT가 가리키는 주소의 값에 1을 더하여 BX+Flag_CNT를 가리키는 주소에 로드한 후(37C)단계를 수행한다. 상기 (37C)단계에서는 BX+Flag_CNT가 가리키는 주소의 값이 20H인가를 체크하여 20H이면 (38C)단계를 수행하고 20H가 아니면 (39C)단계를 수행한다. 상기 (38C)단계에서는 BX+SYNC_FLG가 가리키는 주소에 1을 세이브시키고 BX+LAST_CHK가 가리키는 주소에 0을 세이브시킨후 (39C)단계를 수행한다. 상기 (39C)단계에서는 AH레지스터의 값을 하나 감소시켜 AH레지스터에 로드시킨후 (40C)단계에서 AH레지스터의 값이 0인가를 체크한다.In step (30C), check whether the value of the CL register is 7EH, and if it is 7EH, perform step (16C); Perform
상기 AH레지스터의 값이 0이면 (42C)단계에서 BX+CL_SAVE가 가리키는 주소에 CL레지스터의 값을 로드시킨후 리턴한다. 상기 AH레지스터의 값이 0가 아니면 (41C)단계에서 상기 (19C)단계와 같이 수행한 후 다시 (39C)단계를 수행한다.If the value of the AH register is 0, in step 42C, the value of the CL register is loaded at the address indicated by BX + CL_SAVE and returned. If the value of the AH register is not 0, step (41C) is performed as in step (19C) and step (39C) is performed again.
상술한 바와 같이 다중회선 FIU에서 T.30프로토콜 코맨드 수신은 300bps로 매우 느리게 수신하여 소프트웨어로 데이터 링크층을 처리해도 무관하므로 하아드 웨어의 구성이 간단하여지므로 경비절감의 이점이 있고, 다중회선처리를 하여 FAX사용자들에게 보다 나온 서비스를 제공할 수 있는 계기 제공 및 MHS서비스를 이용하여 통신이 가능하게 할 수 있는 이점이 있다.As described above, T.30 protocol command reception is very slow at 300bps in the multi-line FIU, so it is irrelevant even if the data link layer is processed by software. Therefore, the hardware configuration is simplified, which has the advantage of cost reduction and multi-line processing. By providing the instrument to provide more services to the FAX users, there is an advantage to enable communication using the MHS service.
Claims (2)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019890011788A KR920003346B1 (en) | 1989-08-18 | 1989-08-18 | T.30 protocol command receiving and analysis method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019890011788A KR920003346B1 (en) | 1989-08-18 | 1989-08-18 | T.30 protocol command receiving and analysis method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR910005643A KR910005643A (en) | 1991-03-30 |
KR920003346B1 true KR920003346B1 (en) | 1992-04-27 |
Family
ID=19277681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019890011788A KR920003346B1 (en) | 1989-08-18 | 1989-08-18 | T.30 protocol command receiving and analysis method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR920003346B1 (en) |
-
1989
- 1989-08-18 KR KR1019890011788A patent/KR920003346B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR910005643A (en) | 1991-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2781238B2 (en) | Facsimile multistage relay method | |
US6643709B1 (en) | Device and method for transporting and converting protocol messages from one protocol into another | |
US6023473A (en) | Application programming interface for modem and ISDN processing | |
KR920003346B1 (en) | T.30 protocol command receiving and analysis method | |
KR920001183B1 (en) | Rtc checking method for multi fax communitcation | |
JP2712189B2 (en) | Modem device | |
JP3015429B2 (en) | Image transmission device | |
KR20000014992A (en) | Method for interfacing between frame layer and data link layer for subscriber of isdn | |
KR910006681B1 (en) | Automatic dialing method for fax | |
KR910005827B1 (en) | Message handling system for fax | |
JP2626630B2 (en) | Multi-media communication processing method | |
JP2901327B2 (en) | Terminal device and communication method using subaddress | |
JP2619929B2 (en) | Composite line switching method | |
JPS6159945A (en) | System for communicating and processing plural media | |
JP3298684B2 (en) | ISDN communication terminal | |
JP2517626B2 (en) | Communications system | |
JP2795863B2 (en) | Data terminal equipment | |
JP2800803B2 (en) | Multi-media communication processing method | |
JP3052823B2 (en) | Multi-function facsimile machine connected to computer and line | |
JP3000611B2 (en) | Terminal equipment for ISDN | |
KR950010941B1 (en) | S-interface card for isdn and method thereof | |
JPH0698137A (en) | Isdn communication terminal | |
JP2000059531A (en) | Facsimile equipment | |
JPS6398275A (en) | Facsimile equipment | |
JPH0685952A (en) | G4 facsimile equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
G160 | Decision to publish patent application | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20070312 Year of fee payment: 16 |
|
LAPS | Lapse due to unpaid annual fee |