KR100435560B1 - 디퍼런셜 코드를 마이컴에서 수신하는 방법 - Google Patents

디퍼런셜 코드를 마이컴에서 수신하는 방법 Download PDF

Info

Publication number
KR100435560B1
KR100435560B1 KR1019970079820A KR19970079820A KR100435560B1 KR 100435560 B1 KR100435560 B1 KR 100435560B1 KR 1019970079820 A KR1019970079820 A KR 1019970079820A KR 19970079820 A KR19970079820 A KR 19970079820A KR 100435560 B1 KR100435560 B1 KR 100435560B1
Authority
KR
South Korea
Prior art keywords
data
time
microcomputer
pulse
micom
Prior art date
Application number
KR1019970079820A
Other languages
English (en)
Other versions
KR19990059608A (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 KR1019970079820A priority Critical patent/KR100435560B1/ko
Publication of KR19990059608A publication Critical patent/KR19990059608A/ko
Application granted granted Critical
Publication of KR100435560B1 publication Critical patent/KR100435560B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/153Arrangements in which a pulse is delivered at the instant when a predetermined characteristic of an input signal is present or at a fixed time interval after this instant
    • H03K5/1534Transition or edge detectors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Dc Digital Transmission (AREA)

Abstract

본 발명은 입력데이터의 (+)펄스는 마이컴의 인터럽트 단자(INT 1)로 입력하고, (-)펄스는 버퍼용 인버터를 통과시켜 마이컴의 다른 인터럽트 단자(INT 2)로 입력하여 데이터를 구별하고 인터럽트간의 시간을 측정하여 원하는 데이터를 수신할 수 있는 디퍼런셜 코드를 마이컴에서 수신방법에 관한 것으로써, 입력데이터를 마이컴의 인터럽트 단자에 입력하여 데이터를 구별하는 제 1단계와 타이머 카운터를 세팅할 때 카운터 버퍼가 풀되어 오버플로우 인터럽트(overflow interrupt)가 발생하는 시간을 세팅버퍼의 값이 풀되기전에 T0시간이 존재하도록 타이머를 초기화하는 제 2단계와 제 1단계에서 출력되는 펄스에 의해 마이컴의 인터럽트단자에 신호가 인가되고 다음 인터럽트단자에 신호가 인가될 때까지의 시간을 계수하고, 계수한 시간을 마이컴에서 읽는 제 3단계와 제 3단계에서 읽은 시간을 비교하여 데이터를 인식하고, 인식한 데이터 값을 어큐뮤레이터(accumulator)에 전송하는 제 4단계와 4단계의 어큐뮤레이터에 기록되어 있는 데이터를 직렬 데이터 버퍼(serial data buffer)에 저장하는 제 5단계로 이루어져 있고, 데이터의 펄스를 모두 검출하여 측정할 수 없는 펄스가 발생하지 않고 정확한 입력데이터를 수신할 수 있다.

Description

디퍼런셜 코드를 마이컴에서 수신하는 방법
본 발명은 디퍼런셜 코드를 마이컴에서 수신하는 방법에 관한 것으로써, 보다 상세하게는 입력데이터의 (+)펄스는 마이컴의 인터럽트 단자(INT 1)로 입력하고, (-)펄스는 버퍼용 인버터를 통과시켜 마이컴의 다른 인터럽트 단자(INT 2)로 입력하여 데이터를 구별하고 인터럽트간의 시간을 측정하여 원하는 데이터를 수신할 수 있는 디퍼런셜 코드를 마이컴에서 수신방법에 관한 것이다.
메시지 신호를 표본화할 때 나이퀴스트율보다 좀더 빠르게 표본화시키면 결과적으로 인접하는 표본 사이의 상관 관계를 높혀주게 된다. 이러한 사실은 표본을 표준 PCM 방식으로 부호화한다면 결과적으로 부호화된 신호는 과잉한 정보를 포함하게 된다.
이것은 변화가 거의 없는 공통된 신호부분까지 부호화한 결과로 생긴 과잉부호 할당을 의미하며 정보 전송에 있어서 꼭 필요하지 않는 신호부분이 부호화되어 있음을 나타낸다. 이 과잉한 정보를 부호화하기 전에 제거함으로써 더욱 효과적인 부호화를 얻는다. 즉 인접한 표본 펄스 사이의 차이만을 부호화하므로써 이와 같은 불필요한 정보를 배제할 수 있음과 동시에 상관이 높은 표본 사이의 차만을 양자화하고 부호화하므로써 효율화를 기대할 수 있다.
이와 같이 특별히 어떤 시간까지 신호 크기의 변화 과정을 안다면 앞으로 변화될 신호 크기를 추론하는 것이 가능해진다. 이러한 과정을 예측이라 하는 데 이와 같은 예측 방법을 이용하여 표본 신호를 변조하는 방식이 차분 부호변조(DPCM:differential PCM)방식이다. 적응 델타 변조나 적응 차분 부호변조도 이 방식에 속한다.
펄스 위상 변조 및 복조는 주로 디지탈 시스템 사이에 단선을 통하여 데이터를 전송하는데 사용되며, 본 발명은 디퍼런셜(differential) 코드에 관한 것이다.
디퍼런셜코드의 동작을 도 1을 참조하여 설명하면 다음과 같다.
디퍼런셜 코드의 구성도가 도 1에 도시된 바와 같이, 전송 선로로 부터 송신된 데이터 신호가 "111"이라고 가정하여 설명한다.
0은 동기 클럭과 동일한 주파수(즉, 2배의 baud rate)로 표현되며, 바로 앞단이 0이었으면 파형은 하이에서 로우로 표현되고 앞단 1이었으면 로우에서 하이로 표현된다.
1은 동기 클럭의 반주파수(동일 baud rate)로 표현되며, 0과 마찬가지로 앞단이 0이었으면 파형은 하이로 표현되고 앞단이 1이었으면 로우로 레벨변화만 하도록 동작한다.
즉, 0일 때는 동일 주파수를 출력하고 1일 때는 반주파수만을 출력하면서 교대로 보수화(complement)시키도록 작용한다.
마이컴에 수신되는 데이터는 두 가지 형태로 전송되는데 하나는 데이터 통신에서 직렬전송의 변조 속도를 1초간에 전송되는 신호의 수로 나타낸 값인 보 레이트(baud rate)와 동일한 주파수로 이루어진 펄스열로 전송되고, 다른 하나는 보 레이트의 2배의 주파수로 이루어진 펄스열로 전송된다. 전자는 디코딩 후에 1로 변환되고, 후자는 디코딩 후에 0으로 변환된다.
상기의 두 가지 형태로 전송되는 데이터를 수신하여 0과 1를 구별하는 방법은 각 펄스의 주기를 판단하여 데이터를 구별하는 방법이 사용된다.
각 펄스의 주기를 판단하는 방법으로 가장 간단하면서 널리 이용되는 것은 마이컴내의 이벤트 카운터(event counter)의 펄스폭 측정모드를 이용한 방법이 있다. 이 방법은 펄스의 라이징 에지(rising edge)에서 폴링 에지(falling edge)까지의 폭을 측정하여 데이터의 주기를 판단하도록 동작한다.
그러나, 상기의 방법으로 각 펄스의 주기를 판단하는 방법은 펄스의 라이징 에지에서 폴링 에지까지의 폭만을 측정할 수 있으므로, 폴링 에지에서 라이징에지까지의 펄스의 폭 즉, (-)부분은 측정할 수 없는 문제점이 발생하고 있다.
이에 본 발명은 이같은 문제점을 해결하기 위해 안출된 것으로써, 본 발명의 목적은 데이터의 펄스를 측정할 수 없는 부분이 발생되지 않도록 입력데이터의 (+)펄스는 마이컴의 인터럽트 단자(INT 1)로 입력하고, (-)펄스는 버퍼용 인버터를 통과시켜 마이컴의 다른 인터럽트 단자(INT 2)로 입력하여 데이터를 구별하고 인터럽트간의 시간을 측정하여 원하는 데이터를 수신할 수 있는 디퍼런셜 코드를 마이컴에서 수신하는 방법을 제공하는 데 있다.
상기의 목적을 달성하기 위한 본 발명은 입력데이터를 수신하여 각 펄스의 에지를 검출하고, 검출된 에지에 의해 입력데이터를 구별하여 원하는 데이터를 출력하도록 프로그램되어진 코드를 마이컴에서 생성하는 방법에 있어서, 입력데이터의 (+)펄스는 마이컴의 인터럽트 단자(INT 1)로 입력하고, (-)펄스는 버퍼용 인버터를 통과시켜 마이컴의 다른 인터럽트 단자(INT 2)로 입력하여 데이터를 구별하는 제 1단계와 타이머 카운터를 세팅할 때 카운터 버퍼가 풀되어 오버플로우 인터럽트(overflow interrupt)가 발생하는 시간을 세팅버퍼의 값이 풀되기전에 T0시간이 존재하도록 타이머를 초기화하는 제 2단계와 제 1단계에서 출력되는 펄스에 의해 마이컴의 인터럽트단자에 신호가 인가되고 다음 인터럽트단자에 신호가 인가될 때까지의 시간을 계수하고, 계수한 시간을 마이컴에서 읽는 제 3단계와 제 3단계에서 읽은 시간을 비교하여 마이컴에서 읽은 시간이 T0/2+α보다 크면 데이터값을 1로 인식하고, 읽은 시간이 T0/2+α보다 작으면 데이터값을 0으로 인식하여 인식한 데이터 값을 어큐뮤레이터(accumulator)에 전송하는 제 4단계와 4단계의 어큐뮤레이터에 기록되어 있는 데이터를 직렬 데이터 버퍼(serial data buffer)에 저장하는 제 5단계로 이루어진 것을 특징으로 한다.
도 1은 디퍼런셜 코드의 구성도.
도 2는 본 발명에 따른 마이컴에 입력데이터을 연결하기 위한 회로도.
도 3은 본 발명에 따른 타이머를 초기화하는 방법을 보여주기 위한 개략도.
도 4a는 본 발명에 따른 디퍼런셜 코드를 마이컴에서 수신하는 방법의 동작을 설명하기 위한 흐름도.
도 4b는 본 발명에 따른 디퍼런셜 코드를 마이컴에서 수신하는 방법의 동작을 설명하기 위한 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
1: 마이컴 2: 버퍼용 인버터
이하 본 발명의 바람직한 실시예를 첨부도면을 참조로 하여 상세히 설명한다.
도 2는 본 발명에 따른 입력데이터의 에지를 검출하여 펄스의 주기를 검출하기 위한 회로도이다.
도면부호 1은 입력데이터를 수신하여 각 펄스의 에지를 검출하고, 검출된 에지에 의해 입력데이터를 구별하여 원하는 데이터를 출력하도록 프로그램되어진 마이컴이고, 도면부호 2는 입력데이터를 반전시키기 위한 버퍼용으로 쓰인 인버터이다.
도 3은 타이머를 초기화하는 방법을 보여주기 위한 개략도이다. 도 3에 도시된 바와 같이, 타이머를 초기화하는 방법은 타이머 카운터를 세팅할 때 카운터 버퍼가 풀되어 오버플로우 인터럽트(overflow interrupt)가 발생하는 시간을 세팅버퍼의 값이 풀되기전에 T0시간이 존재하도록 설정한다. 즉, 타이머가 풀되는 시점은 T0+α(α:에러시간)보다는 크게 설정한다.
이하에는 상기한 구성을 가지는 본 발명의 동작을 도 4를 참조하여 상세하게 설명한다.
도 4는 본 발명에 따른 디퍼런셜 코드를 마이컴에서 수신하는 방법의 동작을 설명하기 위한 흐름도이다.
상기 도 4는 도면의 간략화를 위해 약어를 사용하였으며, 각 블록을 이루는 약어들의 설명은 아래와 같다.
A: Accumulator
CF: Carry Flag
SBUF: Scrial data buffer
CNT: "0"(2f0 주파수)을 받은 횟수를 계수하기 위한 카운터 버퍼(counter buffer)
CNT-ROT: 스타트(start) 비트에서 스탑(stop) 비트까지 수신된 비트의 횟수
도 4에 도시된 바와 같이, 먼저, (+)펄스는 마이컴(1)의 인터럽트 단자(INT 1)로 입력하고, (-)펄스는 버퍼용 인버터(2)를 통과시켜 마이컴(1)의 다른 인터럽트 단자(INT 2)로 입력하여 입력데이터의 에지를 검출한다(402단계). 404단계는 타이머를 초기화하는 단계이다.
이 때, 인터럽트가 발생하고 T0/2시점에서 펄스가 발생하기 전에 타이머 풀 인터럽트가 발생하면 인터럽트간의 시간은 T0로 판정되므로 데이터값은 1로 인식한다. 반대로, 인터럽트가 발생하고 T0/2시점에서 펄스가 발생할 때까지 타이머 풀 인터럽트가 발생하지 않으면 인터럽트간의 시간은 T0/2로 판정되므로 데이터값은 0으로 인식한다.
406단계는 입력데이터의 에지검출회로를 통과한 파형이 입력되어 마이컴의 인터럽트단자(INT 1, INT 2)에 신호가 인가될 때까지 대기중 상태에 있는 단계이고, 대기중 상태에 있다가 인터럽트가 발생하면 타이머를 가동시켜 시간을 계수한다(408단계).
시간을 계수하고 있는 도중에 마이컴의 인터럽트단자(INT 1,INT 2)에 신호가 인가(410단계)되면 타이머의 가동을 정지(412단계)하고 마이컴은 인터럽트단자(INT 1)에 신호가 먼저 인가되면 인터럽트단자(INT 2)에 신호가 인가될 때까지의 시간을 읽고, 인터럽트단자(INT 2)에 신호가 먼저 인가되면 인터럽트단자(INT 1)에 신호가 인가될 때까지의 시간을 읽는다(414단계). 인터럽트간의 시간을 읽은 다음 데이터를 판정하기 위해 타이머를 클리어시켜 초기화(416단계)하고, 인터럽트가 발생했으므로 타이머를 재가동(418단계)시킨다.
420단계는 읽은 시간을 T0/2+α와 비교하는 단계이고, 읽은 시간이 T0/2+α보다 크다면 422단계로 진행하여 수신비트의 수를 1증가시키고, 424단계로 진행하여 수신비트의 횟수가 1인가를 판단한다. 수신비트의 횟수가 1이면 상기 406단계로 진행하고, 수신비트의 횟수가 1이 아니면 426단계로 진행하여 수신비트의 횟수가 10인가를 판단한다.
수신비트의 횟수가 10이면 스탑비트이므로 수신비트의 횟수를 클리어(428단계)시켜 상기 406단계로 진행하여 다음 데이터의 인터럽트를 수신하기 위해 준비하고, 수신비트의 횟수가 10이 아니면 데이터 비트이므로 캐리 플래그를 세트한다(430단계).
상기 420단계에서 인터럽트간의 읽은시간이 T0/2+α보다도 적으면 이 데이터 값은 0이므로 432단계로 진행하여 0을 받은 횟수를 1증가시키고, 434단계로 진행하여 0을 받은 횟수가 2인가를 판단한다.
0을 받은 횟수가 2가 아니면 상기 406단계로 진행하여 다음 데이터의 인터럽트를 수신하기 위해 준비하고, 0을 받은 횟수가 2이면 436단계로 진행하여 카운터 버퍼를 클리어하고 수신비트의 횟수를 1증가(438단계) 시키고, 440단계로 진행하여 수신비트의 횟수가 1인가를 판단한다. 수신비트의 횟수가 1이면 상기 406단계로 진행하고, 수신비트의 횟수가 1이 아니면 442단계로 진행하여 수신비트의 횟수가 10인가를 판단한다.
수신비트의 횟수가 10이면 데이터의 종료를 알리는 스탑비트이므로 에러를 발생시키고, 수신비트의 횟수가 10이 아니면 데이터 비트이므로 446단계로 진행하여 캐리 플래그를 클리어시킨다.
448단계는 상기 430단계에서 세트된 캐리 플래그와 상기 446단계에서 클리어된 캐리 플래그를 입력받아 어큐뮤레이터를 왼쪽으로 쉬프트시키고, 다시 한 번 수신비트의 횟수가 10인가를 판단한다(450단계). 수신비트의 횟수가 10이 아니면 입력될 데이터값이 더 있으므로 상기 406단계로 진행하여 다음 데이터를 받을 준비를 하고, 수신비트의 횟수가 10이면 어큐뮤레이터 값이 데이터 값이므로 다음 데이터를 수신하기 위해 수신비트의 횟수를 클리어(452단계)시키고, 어큐뮤레이터 값을 직렬 데이터 버퍼(serial data buffer)에 저장한다(454단계).
이상에서와 같이 본 발명에 따른 디퍼런셜 코드를 마이컴에서 수신하는 방법에 의하면, 입력데이터의 (+)펄스는 마이컴의 인터럽트 단자(INT 1)로 입력하고, (-)펄스는 버퍼용 인버터를 통과시켜 마이컴의 다른 인터럽트 단자(INT 2)로 입력하여 데이터를 구별함으로써, 데이터의 펄스를 모두 검출하여 측정할 수 없는 펄스가 발생하지 않고 정확한 입력데이터를 수신할 수 있다.
또한, 마이컴을 이용하여 디퍼런셜 코드를 수신하기 때문에 디퍼런셜 코드가 수신되는 시간을 최소화할 수 있고, 보다 정확한 데이터를 수신할 수 있는 효과가 있다.

Claims (1)

  1. 입력데이터를 수신하여 각 펄스의 에지를 검출하고, 검출된 에지에 의해 입력데이터를 구별하여 원하는 데이터를 출력하도록 프로그램되어진 코드를 마이컴에서 생성하는 방법에 있어서,
    입력데이터의 (+)펄스는 마이컴(1)의 인터럽트 단자(INT 1)로 입력하고, (-)펄스는 버퍼용 인버터(2)를 통과시켜 마이컴(1)의 다른 인터럽트 단자(INT 2)로 입력하여 데이터를 구별하는 제 1단계와
    타이머 카운터를 세팅할 때 카운터 버퍼가 풀되어 오버플로우 인터럽트(overflow interrupt)가 발생하는 시간을 세팅버퍼의 값이 풀되기전에 T0시간이 존재하도록 타이머를 초기화하는 제 2단계와
    상기 제 1단계에서 출력되는 펄스에 의해 마이컴(1)의 인터럽트단자에 신호가 인가되고 다음 인터럽트단자에 신호가 인가될 때까지의 시간을 계수하고, 계수한 시간을 마이컴(1)에서 읽는 제 3단계와
    상기 제 3단계에서 읽은 시간을 비교하여 마이컴(1)에서 읽은 시간이 T0/2+α보다 크면 데이터값을 1로 인식하고, 읽은 시간이 T0/2+α보다 작으면 데이터값을 0으로 인식하여 인식한 데이터 값을 어큐뮤레이터(accumulator)에 전송하는 제 4단계와
    상기 4단계의 어큐뮤레이터에 기록되어 있는 데이터를 직렬 데이터 버퍼(serial data buffer)에 저장하는 제 5단계로 이루어진 것을 특징으로 하는 디퍼런셜 코드를 마이컴에서 수신하는 방법.
KR1019970079820A 1997-12-31 1997-12-31 디퍼런셜 코드를 마이컴에서 수신하는 방법 KR100435560B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970079820A KR100435560B1 (ko) 1997-12-31 1997-12-31 디퍼런셜 코드를 마이컴에서 수신하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970079820A KR100435560B1 (ko) 1997-12-31 1997-12-31 디퍼런셜 코드를 마이컴에서 수신하는 방법

Publications (2)

Publication Number Publication Date
KR19990059608A KR19990059608A (ko) 1999-07-26
KR100435560B1 true KR100435560B1 (ko) 2004-07-16

Family

ID=37348799

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970079820A KR100435560B1 (ko) 1997-12-31 1997-12-31 디퍼런셜 코드를 마이컴에서 수신하는 방법

Country Status (1)

Country Link
KR (1) KR100435560B1 (ko)

Also Published As

Publication number Publication date
KR19990059608A (ko) 1999-07-26

Similar Documents

Publication Publication Date Title
US4040022A (en) Missing clock detection circuit
US4239151A (en) Method and apparatus for reducing the number of rejected documents when reading bar codes
EP0181517B1 (en) Demodulator for an asynchronous binary signal
US4658399A (en) Circuit arrangement designed to pick up the error rate in numerical transmission systems
KR100435560B1 (ko) 디퍼런셜 코드를 마이컴에서 수신하는 방법
CA1215781A (en) Biphase signal receiver
US4578720A (en) Self-clocking code demodulator with error detecting capability
KR20000003082A (ko) 디퍼런셜 코드를 마이컴에서 수신하는 방법
KR100526938B1 (ko) 디퍼런셜코드를마이컴에서수신하는방법
EP0049059B1 (en) Pulse code demodulator for frequency shift keyed data
KR100435559B1 (ko) 디퍼런셜 코드를 마이컴에서 수신하는 방법
US4378526A (en) Pulse code demodulator for frequency shift keyed data
CN108614798B (zh) PCIe链路弹性缓冲区电路
KR19990049644A (ko) 디퍼런셜 코드를 마이컴에서 생성하는 방법
KR900007057B1 (ko) 교환기의 순환 반복코드 시그날링 검출회로 및 방식
JPH0738630B2 (ja) デジタルパターンデコーダおよびデコード方法
SU1092738A1 (ru) Устройство дл автоматического вы влени ошибок дискретного канала св зи
US20040146130A1 (en) Apparatus and method for monitoring clock in data communication system
SU942001A1 (ru) Устройство дл сортировки чисел
KR940005020Y1 (ko) 디스크의 인덱스신호 검출장치
SU1304052A1 (ru) Устройство дл передачи телеметрической информации
JPS57141176A (en) Detection system for synchronizing signal in facsimile signal
JPH02206945A (ja) ライン状態検出装置
JPS63158934A (ja) スタ−トビツト検出回路
KR20040055983A (ko) 카드리더기 및 카드리더기에서의 데이터 처리방법

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110601

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee