KR100230451B1 - 디지털 신호처리 프로세서의 비동기방식 직렬데이터 송수신 방법 - Google Patents

디지털 신호처리 프로세서의 비동기방식 직렬데이터 송수신 방법 Download PDF

Info

Publication number
KR100230451B1
KR100230451B1 KR1019970012794A KR19970012794A KR100230451B1 KR 100230451 B1 KR100230451 B1 KR 100230451B1 KR 1019970012794 A KR1019970012794 A KR 1019970012794A KR 19970012794 A KR19970012794 A KR 19970012794A KR 100230451 B1 KR100230451 B1 KR 100230451B1
Authority
KR
South Korea
Prior art keywords
data
bit
transmission
serial port
value
Prior art date
Application number
KR1019970012794A
Other languages
English (en)
Other versions
KR19980076203A (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 KR1019970012794A priority Critical patent/KR100230451B1/ko
Priority to RU98103524A priority patent/RU2145729C1/ru
Priority to CN98104479A priority patent/CN1195797A/zh
Priority to JP10095018A priority patent/JP2971849B2/ja
Priority to US09/056,763 priority patent/US6240151B1/en
Publication of KR19980076203A publication Critical patent/KR19980076203A/ko
Application granted granted Critical
Publication of KR100230451B1 publication Critical patent/KR100230451B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Dc Digital Transmission (AREA)

Abstract

본 발명은 디지털신호처리프로세서의 직렬포트를 이용한 비동기방식 직렬데이터 송수신방법에 관한 것으로서, 한 비트의 데이터가 몇 개의 클럭펄스에 해당되는지를 나타내는 펄스구간정보를 저장하는 수신 타이머주기 레지스터; 및 클럭펄스를 수신타이머주기레지스터에 설정된 값까지 카운트한 후 다시 0으로 클리어되어 카운트 동작을 반복하는 수신타이머카운터를 구비한 TMS320C30 DSP에서 DSP에 내장된 직렬포트를 통해 직렬데이터를 수신하는 방법은, 전송데이터가 스타트비트인지 검사하는 단계; 스타트비트가 하이에서 로우로 될 때, 직렬포트를 인에이블시키는 단계; 수신타이머카운터의 초기값을 수신펄스구간레지스터에 설정된 값을 반으로 나눈 값으로 설정하는 단계; 수신타이머카운터가 초기화된 값에서 카운트를 시작하여 그 값이 수신타이머주기레지스터에 설정된 값과 같아질 때마다 전송되는 데이터를 한 비트씩 수신하되, 스탑비트가 나올 때까지 반복하는 단계; 및 스탑비트를 수신하면 직렬포트를 디스에이블시키는 단계를 포함함이 바람직하다.
본 발명에 의하면, TMS320C30 DSP의 동기방식 직렬포트를 통해 비동기방식으로 데이터를 송수신하게 하며, 장시간에 걸쳐 통신을 하여도 통신 이상이 발생되지 않고 신뢰성이 매우 높은 비동기 직렬통신이 가능하다.

Description

디지털신호처리프로세서의 비동기방식 직렬데이터 송수신방법
본 발명은 직렬데이터 통신방법에 관한 것으로서, 더욱 상세하게는 디지털신호처리프로세서(DSP)의 직렬포트를 이용하여 비동기 방식으로 데이터를 송수신하는 방법에 관한 것이다.
TMS320C30 DSP(Texas Instrument 사의 Digtal Signal Processor)는 서보 콘트롤러 및 영상처리등에 많이 쓰이는 디지털 프로세싱을 하는 디지털 전용 프로세서이다. 일반적으로 디지털 프로세서는 계산을 수행하여 타프로세서에게 정보를 주고 받기 위해 직렬포트(port) 또는 병렬포트를 가지고 있다. 상기 TMS320C30 DSP의 경우는 동기형(synchronous)방식의 직렬통신포트(serial communication port)를 가지고 있는데, 상기 직렬통신포트를 사용하여 타 TMS320C30 DSP와 동기방식으로 고속으로 직렬통신을 수행한다.
일반적으로 상기 DSP는 내장되어 있는 직렬포트를 이용하여, 개인용컴퓨터(PC)나 노트북 컴퓨터 등 일반 범용시스템과 데이터 전송이 가능하면 많은 편리함이 있다. 예를 들어, 상기 DSP를 채용한 시스템의 운용프로그램을 PC 에서 작성하여 다운로딩(downloading)을 하거나 상기 시스템이 동작되고 있는 중 관찰이 요망되는 데이터를 계속적으로 로깅(logging)을 할 수 있다. 실제 서보시스템에서의 콘트롤러 출력값을 logging하여 PC에서 분석하면 최적의 콘트롤러 구현에 많은 편리함을 준다. 또한 노트북 컴퓨터에서 동작명령을 시스템에게 주어 시스템이 특정동작을 하도록 하여 간단히 에뮬레이션(emulation)을 할 수도 있다. 즉 작업장소와 장비에 구애받지 않고 시스템의 검사도 수행할 수 있다.
그러나 상기 DSP는 내장되어 있는 직렬포트를 이용하여 개인용컴퓨터(PC)나 노트북 컴퓨터 등 일반 범용컴퓨터시스템과 직렬통신 방법으로 데이터 전송을 할 수 없다. 따라서 범용 컴퓨터시스템과 직렬통신을 가능하게하기 위해서는 별도의 비동기 방식 통신 구현이 필요하다. 그런데 상기 비동기 방식의 통신은 약간의 하드웨어 및 소프트웨어를 추가하면 가능하다. 이는 비동기 데이터가 실제의 데이터에는 포함되지 않는 스타트(start) 비트로 시작한다는 사실에 근거하고 있다. 즉, 상기 스타트 비트를 이용하여 데이터의 수신이 시작됨을 인지하고, 그 이후에 뒤따라오는 비트들을 도 1b에 도시된 수신 타이머 카운터 레지스터의 값에 따라 읽는다. 마찬가지로 데이터의 송신시에도 송신 타이머 카운터 레지스터를 이용하여 1 비트씩 전송하게 된다.
그러나 통신 실험 결과, 상기 TMS320C30 DSP 내의 송신/수신 타이머카운터는 직렬 통신의 수행 여부에 상관없이 프로세서의 클럭펄스에 동기되어 계속해서 카운트 동작을 한다는 사실을 알 수 있었다. 따라서 상기 이유 때문에 스타트 비트가 송신 또는 수신되는 시점에서 송신/수신 타이머 카운터의 값이 일정하지 않아 장기간의 통신시에는 통신 오류가 발생하는 문제점이 있다.
본 발명이 이루고자하는 기술적과제는, 직렬포트를 통해 전송된 비동기 방식의 데이터를 수신할 때 스타트 비트를 수신할 때마다 수신 타이머 카운터의 값을 재설정해줌으로써 데이터 신호의 한 비트당 펄스 구간 중간 지점에서 데이터를 읽도록 만들어 통신오류를 방지하고, 데이터 송신시에는 스타트 비트의 송신 시작 시점에 송신 타이머 카운터 레지스터(이하 송신 타이머 카운터라 함)를 0으로 초기화함으로써 송신 신호의 한 비트당 펄스구간을 맞추어 송신하는, DSP의 직렬포트를 이용한 데이터 송신 및 수신 방법을 제공함에 있다.
도 1a 및 도 1b는 TMS320C30 DSP의 직렬통신포트를 이용한 비동기 방식 데이터 송수신에 사용되는 레지스터들을 도시한 것이다.
도 2는 본 발명에 따른 직렬데이터 데이터 수신시에 수신 타이머 카운터의 초기출력값을 재설정하여 펄스의 중간 부분에서 안정되게 데이터를 수신하는 개념을 도시한 것이다.
도 3은 비동기 데이터 수신 동작을 흐름도로 도시한 것이다.
도 4는 본 발명에 의한 비동기 통신방식에 있어 데이터의 송신시에 송신 타이머 카운터를 클리어하는 시점을 도시한 것이다.
도 5는 직렬데이터의 송신 동작의 흐름도로 도시한 것이다.
상기의 기술적과제를 달성하기 위한 본 발명에 따른, 직렬통신시 전송되는 데이터의 한 비트 시간구간이 복수의 클럭펄스로 구성되는 펄스구간으로 표시될 때, 상기 한 비트의 데이터가 몇 개의 클럭펄스에 해당되는지를 나타내는 펄스구간정보를 저장하는 수신 타이머주기 레지스터; 및 상기 클럭펄스를 수신타이머주기레지스터에 설정된 값까지 카운트한 후 다시 0으로 클리어되어 카운트 동작을 반복하는 수신타이머카운터를 구비한 TMS320C30 DSP에서 상기 DSP에 내장된 직렬포트를 통해 직렬 데이터를 수신하는 방법은, 상기 전송되는 데이터가 스타트비트인지 검사하는 단계; 상기 전송된 스타트비트가 하이(high)에서 로우(low)로 될 때, 상기 직렬포트를 인에이블시키는 단계; 상기 직렬포트가 인에이블되면, 상기 수신타이머카운터의 초기값을 상기 수신펄스구간레지스터에 설정된 값을 반으로 나눈 값으로 설정하는 초기화단계; 상기 수신타이머카운터가 상기 초기화된 값에서 카운트를 시작하여 그 값이 상기 수신타이머주기레지스터에 설정된 값과 같아질 때마다 전송되는 데이터를 한 비트씩 수신하되, 스탑비트가 나올 때 까지 수신하는 데이터수신단계; 및 상기 스탑비트가 수신되면, 상기 직렬포트를 디스에이블시키는 단계를 포함함이 바람직하다.
상기의 다른 기술적 과제를 달성하기 위한 본 발명에 의한, 직렬통신시 전송되는 데이터의 한 비트 시간구간이 복수의 클럭펄스로 구성되는 펄스구간으로 표시될 때, 상기 한 비트의 데이터가 몇 개의 클럭펄스에 해당되는지를 나타내는 펄스구간정보를 저장하는 송신 타이머주기 레지스터; 및 상기 클럭펄스를 송신타이머주기레지스터에 설정된 값까지 카운트한 후 다시 0으로 클리어되어 카운트 동작을 반복하는 송신타이머카운터를 구비한 TMS320C30 DSP의 직렬포트를 통해 직렬데이터를 송신하는 방법은, 송신하고자하는 데이터의 앞과 뒤에 스타트 비트와 스탑 비트를 추가하여 비동기 방식의 데이터로 만드는 전송데이터생성단계; 스타트 비트의 송신 시점에서 송신 타이머 카운터의 값을 0으로 초기화시키는 단계; 상기 초기화된 값에서 카운트를 시작하여 상기 송신타이머주기 레지스터에 설정된 값과 같아질 때마다 1 비트씩 송신하는 데이터송신단계; 및 상기 전송데이터의 스탑비트를 송신할 때까지 상기 데이터송신을 반복하는 단계를 포함함이 바림직하다.
이하에서 첨부된 도면을 참조하여 본 발명을 상세히 설명한다. RS232C 직렬(serial) 데이터는 1 비트의 스타트비트(start bit), 8 비트의 데이터비트, 그리고 1 비트의 스탑비트(stop bit)로 이루어진다. 물론, 패리티(parity)비트 등의 통신에러 검사를 위한 추가비트도 있지만 간략히 총 10 비트로 구성되는 경우가 많다. 일반적인 직렬통신제어기는 스타트비트 및 스탑비트를 인식하여 데이터를 받는다. 그러나 DSP 직렬통신포트는 단순히 데이터비트가 들어오는 대로 수신 카운터 값에 따라 데이터를 수신하도록 되어 있다.
여기서 상기 스타트비트는 사용자가 필요로 하는 정보가 아니고, 데이터 수신의 시작을 알리는 비트이다. 상기 스타트비트를 이용하여 데이터가 수신되기 시작하는지를 알기만 하면 비동기 직렬방식이라도 데이터 수신이 가능하다. 또 스타트비트는 수신 데이터 비트스트림(bitstream)의 처음에 도작되므로 이것을 찾기는 어렵지 않다.
도 1a 및 도 1b는 TMS320C30 DSP의 직렬통신포트를 이용한 비동기 방식 데이터 송수신에 사용되는 레지스터들을 도시한 것이다. 도 1a는 수신/송신 타이머주기 레지스터(Receive/Transmit Timer-Period Register)를 도시한 것으로서, 직렬통신을 할 때 전송되는 데이터의 한 비트 시간구간이 복수의 클럭펄스로 구성되는 펄스구간으로 표시될 때, 상기 한 비트의 데이터가 몇 개의 클럭펄스에 해당하는지를 나타내는 펄스구간정보를 저장한다. 상기 수신/송신 타이머주기레지스터는 직렬통신의 1 비트 펄스구간을 정의하기 위해 32비트 크기를 가지며, 하위 16비트(비트 0 - 비트 15)는 송신 1비트 펄스구간을 나타내고, 상위 16비트(비트 16 - 비트 31)는 수신 1비트 펄스구간을 나타낸다.
도 1b는 수신/송신 타이머 카운터의 출력을 나타내는 수신/송신 타이머 카운터 레지스터(Timer Counter Register)를 도시한 것으로서, 상기 클럭펄스를 상기 수신/송신 타이머주기레지스터에 설정된 값까지 카운트한 후 다시 0으로 클리어(clear)되어 카운트 동작을 반복하는 수신/송신 타이머 카운터의 출력값을 저장한다. 상기 수신/송신 타이머 카운터 레지스터는 32 비트 레지스터로서, 하위 16비트(비트 0 - 비트 15)는 송신 타이머 카운터를 위한 것이고, 상위 16비트(비트 16 -비트 31)는 수신 타이머 카운터를 위한 것이다.
먼저 상기 레지스터들을 이용하여 비동기 방식으로 직렬데이터를 수신하는 방법을 설명하기로 한다. 도 2는 본 발명에 따른 직렬데이터 데이터 수신시에 수신 타이머 카운터의 초기출력값을 설정하여 펄스의 중간 부분에서 안정되게 데이터를 수신하는 개념을 도시한 것이다. 스타트(start) 비트가 하이(high)에서 로우(low)로 떨어지는 시점에서 수신 타이머 카운터의 값을 수신 타이머 주기 레지스터 에 설정된 값의 1/2로 설정한다. 이렇게 하는 이유는 한 비트를 나타내는 펄스구간의 중간 지점에서 비트 값을 읽도록 하기 위함이다.
도 3은 DSP가 내장된 직렬포트를 통해 비동기방식으로 직렬데이터를 수신하는 동작을 흐름도로 도시한 것이다. 일반적으로 DSP는 데이터가 수신되었는가를 수신 레지스터를 보고 데이터가 수신되었는지를 안다. 따라서 DSP는 데이터를 수신한 후, 그 데이터가 비동기 데이터인지인지 알기 위해 스타트 비트의 수신 여부를 검사한다(300단계). 상기 입력되는 데이터의 스타트비트 수신여부는 직렬데이터가 하이(high)에서 로우(low)로 될 때 감지하게 된다. 검사결과 스타트비트가 수신되었다고 판단되면, 상기 직렬포트를 인에이블(enable)시킨다.(310단계) 즉 상기 데이터스트림 신호를 DSP의 인터럽트 신호와 연결시켜 놓으면, 상기 스타트비트가 감지되면 인터럽트가 발생하게 된다. 그러면 상기 DSP는 직렬데이터가 수신되는 것으로 인식하고 직렬포트를 인에이블(enable)시킨다.
그리고 나서 상기 직렬포트가 인에이블되면, 상기 수신타이머카운터를 초기화한다.(320단계) 이는 상기 TMS20C30 DSP의 카운터가 직렬통신이 동작되는 여부에 관계없이 계속 DSP의 클럭에 동작되어 카운트를 하기 위함이며, 아울러 데이터 한 비트를 나타내는 펄스구간의 중간 지점에서 비트 값을 읽도록 하기 위함이다. 또한 상기 초기화는 다음과 같이 이루어진다. 우선 상기 수신/송신 타이머주기 레지스터의 값을 읽어서 sett 라는 임시 변수 레지스터에 저장한다. 그리고 상기 sett를 오른쪽으로 16비트 쉬프트(shift)하는데, 그 이유는 수신되는 데이터의 1 비트당 펄스구간 값이 상기 수신/송신 타이머주기 레지스터의 상위 16비트에 해당하기 때문이다. 그런 후 상기 sett를 2로 나누고 다시 왼쪽으로 16비트 쉬프트(shift)하여 상기 수신타이머카운터의 출력값을 나타내는 레지스터에 저장한다. 상기 단계를 행하는 까닭은 스타트 비트 수신의 시작 시점에서 수신 타이머 카운터 값을 수신 1 비트당 펄스 구간의 1/2로 설정하면 그 값으로부터 카운트를 시작하여 1 비트를 나타내는 펄스구간의 중간 지점을 정확히 읽을 수 있기 때문이다. 한편 상기 수신 타이머 카운터의 초기화 과정(320단계)이 끝나면, 상기 카운터는 프로세서의 클럭펄스에 동기되어 카운트 동작을 계속한다.(330단계) 그리하여 증가된 카운터의 값이 수신 타이머주기 레지스터에 정의된 1 비트 펄스 구간의 값과 같은지 검사한다.(340단계) 검사결과 그 값이 같으면 그 때가 1 비트를 나타낸 펄스 구간의 1/2 되는 시점에 해당되므로 그 순간에 1 비트씩 수신한다.(350단계) 다시 상기 수신타이머카운터는 0으로 클리어되고, 스탑 비트의 수신 여부를 검사하여(360단계), 스탑 비트가 수신될 때까지 상기 330단계, 340단계 및 350단계를 반복한다. 이렇게 하여 TMS320C30 DSP의 동기 방식 직렬 포트를 통해 8비트의 데이터가 모두 수신되고 스탑비트가 수신되면, DSP의 수신 인터럽트가 생성되게 하여 상기 직렬포트를 디스에이블(disable)시킴으로써(370단계), 비동기 방식의 직렬데이터 수신이 끝난다.
한편 상기 레지스터들을 이용하여 비동기 방식으로 직렬데이터를 송신하는 방법을 설명하기로 한다. 상기 DSP가 실시간으로 데이터를 송신하기위해, 송신 큐(queue)를 두어 송신하고 싶은 데이터를 상기 송신 큐에 쓰고, 실시간 타이머 인터럽트를 이용하여 송신 큐를 검사한다. 검사결과 상기 송신 큐가 비어(empty) 있지 않으면 송신 인터럽트를 인에이블(enable)시켜 상기 송신 큐에 들어 있는 데이터를 빼내어 전송한다. 만일 송신 큐가 비어있으면 상기 송신 인터럽트를 디스에이블(disable)시켜 서로 간의 큐를 통한 인터럽트 핸드쉐이크(handshake)를 한다.
실시간 처리시스템이 인터럽트 방식의 송신을 하기 때문에 큐버퍼를 잘 관리하여야 실시간 데이터를 상대에게 전달할 수 있다. 큐의 기본 동작은 머리(head)주소부분에서 데이터를 써넣고 꼬리(tail) 주소부분에서 데이터를 읽어내어야 한다. 실시간 인터럽트에서 큐에 송신할 데이터를 전달하면 송신 인터럽트에서 큐의 데이터를 전부 송신한 후 현재의 꼬리데이터를 새로 송신한 만큼의 주소를 빼어서 새로이 지정하면 된다.
그러나, 시스템이 운영중에 큐에 데이터를 집어 넣는 동작이 많아지면 머리 주소가 꼬리 주소를 넘어버리는 현상이 발생할 수 있다. 이런 상황은 큐버퍼가 깨어져 데이터 관리가 되지않아 엉뚱한 데이터를 송신하게 된다. 이런 현상을 막기위해서는 큐버퍼를 무작정 크게 할 수도 없다. 이를 해결하기 위해, 일정한 크기의 큐를 두 단(two stage)으로 둔다. 첫째 단 큐에서는 시스템에서 송신할 데이터를 저장한다. 상기 첫째 단 큐를 검사하여 데이터가 있으면, 이를 둘째 단 큐로 집어 넣는다. 때는 첫째 큐의 주소(tail pointer)를 갱신한다. 이렇게 하면 많은 데이터 송신으로 발생되는 긴 전송시간 동안에 큐가 넘치는 현상을 막을 수 있다. 이것은 첫째단 큐가 가득찰(full) 경우, 상기 큐에 저장된 데이터를 빼내는 것은 메모리를 읽는 동작으로 큐를 비우기 때문에 대기하는데 큰 부담이 없다.
그리고 상기 DSP가 인터럽트 방식으로 직렬통신 모듈을 사용하여 데이터를 송신할 때에 많은 인터럽트가 발생된다. 상기 인터럽트가 발생하면, 이를 서비스하기위해서는 DSP에 부담이 많이 가며, 인터럽트를 인에이블, 디스에이블하는 과정에서 상기 DSP의 동작이 엉퀴어 오동작을 일으킬 수도 있다. 이를 해결하기 위해서는 상기 DSP 내부에 DMA 모듈을 둔다. 상기 DMA는 직렬포트와 연동이 가능하며, 메모리의 송신 버퍼를 할당하면 DMA에서 자동으로 직렬포트에 한 데이터를 쓰고, 직렬포트가 데이터를 송신완료하면, 다른 데이터를 자동으로 쓰도록 하여 DSP의 부하를 줄이게 된다.
도 4는 본 발명에 의한 비동기통신방식에 있어 데이터의 송신시에 송신 1 비트 펄스구간을 송신 타이머주기 레지스터에 정의된 값으로 일정하게 만들기 위해 송신 타이머 카운터를 클리어(clear)하는 시점을 도시한 것이다.
도 5는 상기 DSP가 직렬포트를 통해 비동기방식으로 직렬데이터를 송신하는 동작을 흐름도로 도시한 것이다. 우선 비동기 방식의 통신을 위해, 상기 큐버퍼에 있는 8비트 데이터의 시작과 끝에 스타트(start) 비트와 스탑(stop) 비트를 덧붙여 송신데이터 프레임을 생성한다.(500단계) 그리고 나서 송신 타이머 카운터를 초기화한다.(510단계) 즉 스타트 비트의 송신시점에서 송신 타이머 카운터의 값을 0으로 초기화시킨다. 상기 송신 타이머 카운터가 초기화되면, 상기 카운터는 프로세서의 클럭펄스에 동기되어 카운트 동작을 계속한다.(520단계) 그리하여 증가된 카운터의 값이 송신 타이머주기 레지스터에 설정된 1 비트 펄스구간의 값과 같은지 검사하여(530단계), 그 값이 같으면 그 순간에 1 비트씩 송신하는 것이다.(540단계) 다시 송신 타이머 카운터는 0으로 클리어되고, 스탑(stop) 비트의 송신 여부를 검사하여(550단계), 스탑 비트가 송신될 때까지 상기 530단계, 540단계 및 550 단계를 반복한다. 이렇게 하여 TMS320C30 DSP의 동기 방식 직렬 포트를 통한 비동기 방식의 직렬 데이터 송신이 끝난다.
한편 상기 비동기 방식의 직렬데이터 송수신방법은 간단한 하드웨어를 추가시킴으로써 비동기 방식 통신의 국제표준에 해당되는 RS232C 와 RS422 방식 모두에 적용가능하다.
상술한 바와 같이, 본 발명에 의하면 TMS320C30 DSP의 동기방식 직렬포트를 통해 비동기방식 데이터를 송수신할 수 있다.
그리고 장시간에 걸쳐 통신을 하여도 통신 이상이 발생되지 않고 신뢰성이 매우 높은 비동기 직렬통신이 가능하다.

Claims (5)

  1. 직렬통신시 전송되는 데이터의 한 비트 시간구간이 복수의 클럭펄스로 구성되는 펄스구간으로 표시될 때, 상기 한 비트의 데이터가 몇 개의 클럭펄스에 해당되는지를 나타내는 펄스구간정보를 저장하는 수신 타이머주기 레지스터; 및 상기 클럭펄스를 수신타이머주기레지스터에 설정된 값까지 카운트한 후 다시 0으로 클리어되어 카운트 동작을 반복하는 수신타이머카운터를 구비한 TMS320C30 DSP에서 상기 DSP에 내장된 직렬포트를 통해 직렬 데이터를 수신하는 방법에 있어서,
    상기 전송되는 데이터가 스타트비트인지 검사하는 단계;
    상기 전송된 스타트비트가 하이(high)에서 로우(low)로 될 때, 상기 직렬포트를 인에이블시키는 단계;
    상기 직렬포트가 인에이블되면, 상기 수신타이머카운터의 초기값을 상기 수신펄스구간레지스터에 설정된 값을 반으로 나눈 값으로 설정하는 초기화단계;
    상기 수신타이머카운터가 상기 초기화된 값에서 카운트를 시작하여 그 값이 상기 수신타이머주기레지스터에 설정된 값과 같아질 때마다 전송되는 데이터를 한 비트씩 수신하되, 스탑비트가 나올 때 까지 수신하는 데이터수신단계; 및
    상기 스탑비트가 수신되면, 상기 직렬포트를 디스에이블시키는 단계를 포함함을 특징으로 하는 DSP의 직렬포트를 통한 비동기방식 직렬데이터수신 방법.
  2. 제1항에 있어서, 상기 직렬포트 인에이블단계는
    상기 전송된 스타트비트가 하이(high)에서 로우(low)로 될 때, 인터럽트를 발생시켜 상기 직렬포트를 인에이블시키고,
    상기 직렬포트 디스에이블단계는
    상기 스탑비트를 수신하면, 수신인터럽트가 발생되게하여 상기 직렬포트를 디스에이블시킴을 특징으로 하는 DSP의 직렬포트를 통한 비동기방식 직렬데이터수신 방법.
  3. 직렬통신시 전송되는 데이터의 한 비트 시간구간이 복수의 클럭펄스로 구성되는 펄스구간으로 표시될 때, 상기 한 비트의 데이터가 몇 개의 클럭펄스에 해당되는지를 나타내는 펄스구간정보를 저장하는 송신 타이머주기 레지스터; 및 상기 클럭펄스를 송신타이머주기레지스터에 설정된 값까지 카운트한 후 다시 0으로 클리어되어 카운트 동작을 반복하는 송신타이머카운터를 구비한 TMS320C30 DSP의 직렬포트를 통해 직렬데이터를 송신하는 방법에 있어서,
    송신하고자하는 데이터의 앞과 뒤에 스타트 비트와 스탑 비트를 추가하여 비동기 방식의 데이터로 만드는 데이터프레임생성단계;
    스타트 비트의 송신 시점에서 송신 타이머 카운터의 값을 0으로 초기화시키는 단계;
    상기 초기화된 값에서 카운트를 시작하여 상기 송신타이머주기 레지스터에 설정된 값과 같아질 때마다 1 비트씩 송신하는 데이터송신단계; 및
    상기 전송데이터의 스탑비트를 송신할 때까지 상기 데이터송신을 반복하는 단계를 포함함을 특징으로 하는 DSP의 직렬포트를 통한 비동기방식 직렬데이터 송신 방법.
  4. 제3항에 있어서, 상기 데이터 프레임생성단계에 필요한 데이터는
    상기 DSP가 송신할 데이터를 일시 저장하는 송신 큐버퍼를 더 구비할 때, 먼저 송신큐버퍼에 기록하여 저장되며,
    상기 송신큐버퍼에 데이터를 저장하는 방식은
    상기 송신큐버퍼에 데이터가 비어 있는지 검사하는 단계; 및
    상기 송신큐버퍼에 데이터가 비어 있지 않으면, 송신 인터럽트를 인에이블하여 데이터를 상기 송신큐버퍼로 전송하고,
    상기 송신큐버퍼에 데이터가 비어 있으면 송신 인터럽트를 디스에이블하여 데이터 전송을 중지하는 단계로 이루어짐을 특징으로 하는 DSP의 직렬포트를 통한 비동기방식 직렬데이터 송신 방법.
  5. 제4항에 있어서, 상기 송신 큐버퍼는
    상기 DSP가 송신할 데이터를 저장하는 제1송신큐; 및
    상기 제1송신큐의 데이터를 저장하여 상기 데이터 프레임생성단계에 필요한 데이터를 공급하는 제2송신큐로 이루어짐을 특징으로 하는 DSP의 직렬포트를 통한 비동기방식 직렬데이터 송신 방법.
KR1019970012794A 1997-04-08 1997-04-08 디지털 신호처리 프로세서의 비동기방식 직렬데이터 송수신 방법 KR100230451B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1019970012794A KR100230451B1 (ko) 1997-04-08 1997-04-08 디지털 신호처리 프로세서의 비동기방식 직렬데이터 송수신 방법
RU98103524A RU2145729C1 (ru) 1997-04-08 1998-02-19 Способ передачи и приема асинхронных последовательных данных в цифровом процессоре сигналов
CN98104479A CN1195797A (zh) 1997-04-08 1998-02-19 数字信号处理器中发送和接收异步串行数据的方法
JP10095018A JP2971849B2 (ja) 1997-04-08 1998-04-07 デジタル信号処理プロセッサーの非同期式直列データの送受信方法
US09/056,763 US6240151B1 (en) 1997-04-08 1998-04-08 Method for transmitting and receiving asynchronous serial data in digital signal processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970012794A KR100230451B1 (ko) 1997-04-08 1997-04-08 디지털 신호처리 프로세서의 비동기방식 직렬데이터 송수신 방법

Publications (2)

Publication Number Publication Date
KR19980076203A KR19980076203A (ko) 1998-11-16
KR100230451B1 true KR100230451B1 (ko) 1999-11-15

Family

ID=19502139

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970012794A KR100230451B1 (ko) 1997-04-08 1997-04-08 디지털 신호처리 프로세서의 비동기방식 직렬데이터 송수신 방법

Country Status (5)

Country Link
US (1) US6240151B1 (ko)
JP (1) JP2971849B2 (ko)
KR (1) KR100230451B1 (ko)
CN (1) CN1195797A (ko)
RU (1) RU2145729C1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW484101B (en) * 1998-12-17 2002-04-21 Hitachi Ltd Semiconductor device and its manufacturing method
KR100533864B1 (ko) * 1999-03-09 2005-12-07 가부시키가이샤 산요붓산 탄구유기기(彈球遊技機)의 제어장치
US6393502B1 (en) * 1999-08-31 2002-05-21 Advanced Micro Devices, Inc. System and method for initiating a serial data transfer between two clock domains
JP4364041B2 (ja) * 2004-04-01 2009-11-11 Okiセミコンダクタ株式会社 データ転送回路
US7929714B2 (en) * 2004-08-11 2011-04-19 Qualcomm Incorporated Integrated audio codec with silicon audio transducer
CN100338845C (zh) * 2004-12-24 2007-09-19 上海协同科技股份有限公司 用串行同步通信总线进行内部通信的输入输出模块
KR100688516B1 (ko) * 2005-01-11 2007-03-02 삼성전자주식회사 단일 라인을 이용한 직렬 데이터 통신 방법 및 그 장치
US8077625B1 (en) * 2005-06-30 2011-12-13 National Semiconductor Corporation Apparatus and method for using a communication resource for performing a timing operation
CN101140551B (zh) * 2006-09-07 2010-06-16 中国科学院长春光学精密机械与物理研究所 一种实现数字信号处理器异步串行通讯的装置
US8761324B1 (en) * 2009-07-10 2014-06-24 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for phase signaling
GB2537856A (en) * 2015-04-28 2016-11-02 Nordic Semiconductor Asa Communication between intergrated circuits
CN105005511A (zh) * 2015-06-30 2015-10-28 宁波东海仪表水道有限公司 一种串行通信数据校验方法
CN105871383B (zh) * 2016-03-29 2020-02-11 上海斐讯数据通信技术有限公司 数据截止位提取电路、串并转换电路以及串行点灯电路
KR101921119B1 (ko) * 2016-07-19 2018-12-06 주식회사 지엠케이 비동기 디지털 통신 모듈
CN113094305B (zh) * 2021-04-02 2024-03-26 北京黑蚁兄弟科技有限公司 一种异步通信处理方法、装置和存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6220451A (ja) 1985-07-19 1987-01-29 Nec Corp 符号変換装置
JPS6281840A (ja) 1985-10-04 1987-04-15 Tsubakimoto Chain Co 同期回路
JPS63238745A (ja) 1987-03-26 1988-10-04 Matsushita Electric Works Ltd デ−タ伝送装置
EP0389696A1 (en) 1989-03-29 1990-10-03 International Business Machines Corporation Serial data receiver
JPH0385043A (ja) 1989-08-29 1991-04-10 Fujitsu Kiden Ltd データ転送装置
JP3466738B2 (ja) * 1994-11-21 2003-11-17 ヤマハ株式会社 非同期シリアルデータ受信装置

Also Published As

Publication number Publication date
RU2145729C1 (ru) 2000-02-20
US6240151B1 (en) 2001-05-29
JPH10303993A (ja) 1998-11-13
JP2971849B2 (ja) 1999-11-08
CN1195797A (zh) 1998-10-14
KR19980076203A (ko) 1998-11-16

Similar Documents

Publication Publication Date Title
KR100230451B1 (ko) 디지털 신호처리 프로세서의 비동기방식 직렬데이터 송수신 방법
JP2812959B2 (ja) マルチチャンネルデータ通信制御器
KR970007764B1 (ko) 프로그램 제어장치
EP0241946B1 (en) Information processing system
US5371878A (en) System for analysis of embedded computer systems
US4630041A (en) Enhanced reliability interrupt control apparatus
EP2097828B1 (en) Dmac to handle transfers of unknown lengths
JPH09167105A (ja) オンチップデバッグシステム
JP2004013896A (ja) データ処理システムにおける命令のトレーシング
JP2010033614A (ja) 入出力プロセッサ
CN111352888A (zh) 异步收发器的中断信号产生方法及装置
JPH05265943A (ja) シリアルデータ転送装置
CN115794701A (zh) 一种dma功能虚拟串口的bmc芯片及方法
CN115237349A (zh) 数据读写控制方法、控制装置、计算机存储介质和电子设备
US20060256877A1 (en) Rapid I/O Compliant Message Mapper
US7373541B1 (en) Alignment signal control apparatus and method for operating the same
CN107391406B (zh) 一种用于协议处理的微处理器及处理协议的方法
US5091870A (en) Apparatus for measuring the speed of transmission of digital characters
JP2523874B2 (ja) 非同期式シリアルデ―タ伝送装置
KR970003319B1 (ko) 직렬 인터페이스 장치를 갖는 처리장치
US6105081A (en) UART character matching used for address matching on a register-by-register basis
CN117376229B (zh) 基于嵌入式设备的ftp文件***软件交叉调试方法及***
KR100531729B1 (ko) 피씨 병렬포트를 이용한 주변기기와의 인터페이스 장치 및그 방법
KR100251937B1 (ko) 범용 비동기 송수신기의 수신데이타 처리방법 및 그 장치
JPS63164554A (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