데이터 변환을 이용한 파형 생성방법

申请号 KR1020020078575 申请日 2002-12-11 公开(公告)号 KR1020040051636A 公开(公告)日 2004-06-19
申请人 학교법인 명지학원; 发明人 장태규; 박지태;
摘要 PURPOSE: A method for converting data, a method for creating the waveform information by using the same and a method for creating the waveform and a recording medium for the same are provided to effectively perform the data compression and the data reconstruction. CONSTITUTION: A method for converting data includes: a first step of dividing the first data into a first bit group with the uppermost k bit, a second bit group with the nest m bit and a third bit group with the lower h bit; a second step of outputting a predetermined m bit of reserved value by the number corresponding to the value of the first bit group when the value of the first bit group is not 0; a third step (ST325) of outputting the predetermined m bit value different from the m bit reserved value when the value of the second bit group is equal to the m bit reserved value; a fourth step(ST355) of constructing the second data by combining at least one outputted m bit.
权利要求
  • 자연수 n과 상기 자연수 n보다 더 작은 자연수인 m에 대해서, n비트의 제1 데이터를 하나이상의 m비트 데이터를 포함하는 제2 데이터로 변환하기 위한 데이터 변환방법에 있어서, 상기 제1 데이터를 최상위 k비트의 제1 비트군과 그 다음 m비트의 제2 비트군과 그 이하의 h비트의 제3 비트군으로 구분하는 제1 단계; 상기 제1 비트군의 값이 0이 아닌 경우, 소정의 m비트 예약치를 상기 제1 비트군의 값에 대응하는 회수만큼 출력하는 제2 단계; 상기 제2 비트군의 값이 상기 m비트 예약치와 동일한 경우에는 상기 m비트 예약치와는 상이한 소정의 m비트 값을 출력하고, 상이한 경우에는 상기 제2 비트군의 m비트 값을 출력하는 제3 단계; 및 상기 출력된 하나이상의 m비트의 값을 결합하여 상기 제2 데이터를 구성하는 제4 단계를 포함하는 것을 특징으로 하는 데이터 변환방법.
  • 자연수 n과 상기 자연수 n보다 더 작은 자연수인 m에 대해서, 복수의 n비트 데이터를 포함하는 제1 데이터를 복수의 m비트 데이터를 포함하는 제2 데이터로 변환하기 위한 데이터 변환방법에 있어서, 상기 제1 데이터로부터 n비트 데이터를 제공받는 제1 단계; 상기 제공받은 n비트 데이터를 최상위 k비트의 제1 비트군과 그 다음 m비트의 제2 비트군과 그 이하의 h비트의 제3 비트군으로 구분하는 제2 단계; 상기 제1 비트군의 값이 0이 아닌 경우, 소정의 m비트 예약치를 상기 제1 비트군의값에 대응하는 회수만큼 출력하는 제3 단계; 상기 제2 비트군의 값이 상기 m비트 예약치와 동일한 경우에는 상기 m비트 예약치와는 상이한 소정의 m비트 값을 출력하고, 상이한 경우에는 상기 제2 비트군의 m비트 값을 출력하는 제4 단계; 상기 제1 데이터의 모든 n비트 데이터에 대한 처리가 완료되었는지 여부를 검사하여, 완료되지 않은 경우에 상기 제1 단계로 진행하는 제5 단계; 및 상기 출력된 하나이상의 m비트 값을 결합하여 상기 제2 데이터를 구성하는 제6 단계를 포함하는 것을 특징으로 하는 데이터 변환방법.
  • 자연수 n과 상기 자연수 n보다 더 작은 자연수인 m에 대해서, 하나이상의 m비트 데이터를 포함하는 제1 데이터를 n비트의 제2 데이터로 변환하기 위한 데이터 변환방법에 있어서, 소정의 n비트 변수를 소정의 초기값으로 초기화하고, 상기 제2 데이터에서 제1 비트군의 비트 수에 대응하는 자연수 k와 최하위 비트군의 비트 수에 대응하는 자연수 h를 결정하는 제1 단계; 상기 제1 데이터로부터 m비트 데이터를 제공받는 제2 단계; 상기 제공받은 m비트 데이터가 소정의 m비트 예약치와 동일한지 여부를 검사하여 동일한 경우에는 상기 n비트 변수에 2의 (nk)승의 값을 가산한 후 상기 제2 단계로 진행하는 제3 단계; 상기 제공된 m비트 데이터를 h비트만큼 왼쪽으로 쉬프트시킨 값인 n비트의 값을 상기 n비트 변수에 가산하는 제4 단계; 및 상기 n비트 변수의 값을 상기 제2 데이터로서 설정하는 제5 단계를 포함하는 것을 특징으로 하는 데이터 변환방법.
  • 제3항에 있어서, 상기 데이터 변환방법은 상기 제5 단계 이전에, 2의 h승의 값보다 작은 자연수인 소정의 오프셋 값을 상기 n비트 변수에 가산하는 제4a 단계를 더 포함하되, 상기 제4 단계와 상기 제4a 단계는 서로 전후순서에 있어서 무관한 것을 특징으로 하는 데이터 변환방법.
  • 자연수 n과 상기 자연수 n보다 더 작은 자연수인 m에 대해서, 복수의 m비트 데이터를 포함하는 제1 데이터를 복수의 n비트 데이터를 포함하는 제2 데이터로 변환하기 위한 데이터 변환방법에 있어서, 소정의 n비트 변수를 소정의 초기값으로 초기화하고, 상기 제2 데이터에서 제1 비트군의 비트 수에 대응하는 자연수 k와 최하위 비트군의 비트 수에 대응하는 자연수 h를 결정하는 제1 단계; 상기 제1 데이터로부터 m비트 데이터를 제공받는 제2 단계; 상기 제공받은 m비트 데이터가 소정의 m비트 예약치와 동일한지 여부를 검사하여 동일한 경우에는 상기 n비트 변수에 2의 (nk)승의 값을 가산한 후 상기 제2 단계로 진행하는 제3 단계; 상기 제공된 m비트 데이터를 h비트만큼 왼쪽으로 쉬프트시킨 값인 n비트의 값을 상기 n비트 변수에 가산하는 제4 단계; 상기 n비트 변수의 값을 출력하는 제5 단계; 상기 제1 데이터의 모든 m비트 데이터에 대한 처리가 완료되었는지 여부를 검사하여, 완료되지 않은 경우에 상기 제1 단계로 진행하는 제6 단계; 및 상기 출력된 하나이상의 n비트 값을 결합하여 상기 제2 데이터를 구성하는 제7 단계를 포함하는 것을 특징으로 하는 데이터 변환방법.
  • 제5항에 있어서, 상기 데이터 변환방법은 상기 제5 단계 이전에, 상기 2의 h승의 값보다 작은 자연수인 소정의 오프셋 값을 상기 n비트 변수에 가산하는 제4a 단계를 더 포함하되, 상기 제4 단계와 상기 제4a 단계는 서로 전후순서에 있어서 무관한 것을 특징으로 하는 데이터 변환방법.
  • 제1항 내지 제6항 중의 어느 하나의 항에 있어서, 상기 자연수 n의 값은 16이고, 상기 자연수 m의 값은 8이고, 상기 자연수 k의 값은 2이고, 상기 자연수 h의 값은 6이고, 상기 소정의 m비트 예약치는 0xFF인 것을 특징으로 하는 데이터 변환방법.
  • 제1항 내지 제6항 중의 어느 하나의 항에 따른 데이터 변환방법을 구현하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체.
  • 자연수 n과 상기 자연수 n보다 더 작은 자연수인 m에 대해서, 구형파 신호에 대한 파형정보를 일련의 m비트 데이터를 포함하는 파형정보 데이터로서 생성하기 위한 파형정보 생성방법에 있어서, 소정의 프리카운터 변수를 초기화하고, 상기 구형파 신호의 양방향 에지와 프리러닝하는 소정의 n비트 카운터의 오버플로우 이벤트에 의해서 인터럽트가 발생하도록 설정하며, 상기 양방향 에지에 대해서 상기 n비트 카운터의 값이 소정의 레지스터에 캡쳐되도록 설정하는 제1 단계; 상기 인터럽트가 발생하기를 대기하는 제2 단계; 상기 인터럽트가 발생하는 경우, 상기 인터럽트의 발생원인을 검사하는 제3 단계; 상기 인터럽트가 상기 n비트 카운터의 오버플로우 이벤트로 인한 인터럽트인 경우, 소정의 오버플로우 변수에 오버플로우 이벤트의 발생을 반영하는 제4 단계; 상기 인터럽트가 상기 구형파 신호의 양방향 에지로 인한 인터럽트인 경우, 상기 레지스터와 상기 오버플로우 변수와 상기 프리카운터 변수로부터 상기 구형파 신호의 펄스폭에 대응하는 펄스폭 데이터를 획득하는 제5a 단계; 상기 펄스폭 데이터로부터 하위 n비트의 유효 데이터와 그 상위의 오버플로우 데이터를 분리하는 제5b 단계; 상기 오버플로우 데이터의 값이 0이 아닌 경우 소정의 m비트 예약치를 제1 회수만큼 출력하되, 상기 제1 회수는 (nm)의 값보다 작거나 같은 소정의 자연수 k에 대해서 2의 k승의 값과 상기 오버플로우 데이터의 값을 곱셈한 값인 제5c 단계; 상기 유효 데이터의 상위 k비트 영역의 값이 0이 아닌 경우에 상기 m비트 예약치를 제2 회수만큼 출력하되, 상기 제2 회수는 상기 유효 데이터의 상기 상위 k비트 영역의 값인 제5d 단계; 및 상기 유효 데이터에서 상기 상위 k비트 영역의 이하로 연속되는 m비트 영역의 값이 상기 m비트 예약치와상이한 경우에는 상기 m비트 영역의 값을 출력하고, 동일한 경우에는 상기 m비트 예약치와는 상이한 소정의 m비트 값을 출력하는 제5e 단계를 포함하는 제5 단계; 상기 구형파 신호의 입력이 완료되었는지 여부를 검사하여 완료되지 않은 경우에 상기 제2 단계로 진행하는 제6 단계; 및 상기 출력된 하나이상의 m비트 값을 결합하여 상기 파형정보 데이터를 구성하는 제7 단계를 포함하는 것을 특징으로 하는 파형정보 생성방법.
  • 자연수 n과 상기 자연수 n보다 더 작은 자연수인 m에 대해서, 구형파 신호에 대한 파형정보를 일련의 m비트 데이터를 포함하는 파형정보 데이터로서 생성하기 위한 파형정보 생성방법에 있어서, 상기 구형파 신호의 양방향 에지에 의해서 인터럽트가 발생하도록 설정하고, 상기 양방향 에지에 대해서 프리러닝하는 소정의 n비트 카운터의 값이 소정의 레지스터에 캡쳐되면서 상기 n비트 카운터가 리셋/리스타트되도록 설정하는 제1 단계; 상기 인터럽트가 발생하기를 대기하는 제2 단계; 상기 레지스터로부터 상기 n비트 카운터 값에 대응하는 유효 데이터를 독출하는 제3a 단계; (nm)의 값보다 작거나 같은 소정의 자연수 k에 대해서, 상기 유효 데이터의 상위 k비트 영역의 값이 0이 아닌 경우 소정의 m비트 예약치를 상기 상위 k비트 영역의 값에 대응하는 회수만큼 출력하는 제3b 단계; 및 상기 유효 데이터에서 상기 상위 k비트 영역의 이하로 연속되는 m비트 영역의 값이 상기 m비트 예약치와 상이한 경우에는 상기 m비트 영역의 값을 출력하고, 동일한 경우에는 상기 m비트 예약치와는 상이한 소정의 m비트 값을 출력하는 제3c 단계를 포함하는 제3 단계; 상기 구형파 신호의 입력이 완료되었는지 여부를 검사하여 완료되지 않은 경우 상기 제2 단계로 진행하는 제4 단계; 및 상기 출력된 하나이상의 m비트 값을 결합하여 상기 파형정보 데이터를 구성하는 제5 단계를 포함하는 것을 특징으로 하는 파형정보 생성방법.
  • 자연수 n과 상기 자연수 n보다 더 작은 자연수인 m에 대해서, 구형파 신호에 대한 파형정보를 일련의 m비트 데이터를 포함하는 파형정보 데이터로서 생성하기 위한 파형정보 생성방법에 있어서, 상기 구형파 신호의 양방향 에지와 프리러닝하는 소정의 n비트 카운터의 오버플로우 이벤트에 대해서 인터럽트가 발생하도록 설정하고, 상기 양방향 에지에 대해서 상기 n비트 카운터의 값이 소정의 레지스터에 캡쳐되면서 상기 n비트 카운터가 리셋/리스타트되도록 설정하는 제1 단계; 상기 인터럽트가 발생하기를 대기하는 제2 단계; 상기 발생한 인터럽트의 발생원인을 검사하는 제3 단계; 상기 인터럽트가 상기 오버플로우 이벤트로 인한 인터럽트인 경우에 소정의 m비트 예약치를 제1 회수만큼 출력하되, 상기 제1 회수는 (nm)의 값보다 작거나 같은 소정의 자연수 k에 대해서 2의 k승의 값인 제4 단계; 상기 인터럽트가 상기 구형파 신호의 양방향 에지로 인한 인터럽트인 경우, 상기 레지스터로부터 상기 n비트 카운터 값에 대응하는 유효 데이터를 독출하는 제5a 단계; 상기 유효 데이터의 상위 k비트 영역의 값이 0이 아닌 경우 상기 m비트 예약치를 상기 유효 데이터의 상기 상위 k비트 영역의 값에 대응하는 회수만큼 출력하는 제5b 단계; 및 상기 유효 데이터에서 상기 상위 k비트 영역의 이하로 연속되는 m비트 영역의 값이 상기 m비트 예약치와 상이한 경우에는 상기 m비트 영역의 값을 출력하고, 동일한 경우에는 상기 m비트 예약치와는 상이한 소정의 m비트 값을 출력하는 제5c 단계를 포함하는 제5 단계; 및 상기 구형파 신호의 입력이 완료되었는지 여부를 검사하여 완료되지 않은 경우 상기 제2 단계로 진행하는 제6 단계; 및 상기 출력된 하나이상의 m비트 값을 결합하여 상기 파형정보 데이터를 구성하는 제7 단계를 포함하는 것을 특징으로 하는 파형정보 생성방법.
  • 제9항 내지 제11항 중의 어느 하나의 항에 있어서, 상기 자연수 n의 값은 16이고, 상기 자연수 m의 값은 8이고, 상기 자연수 k의 값은 2이고, 상기 소정의 m비트 예약치는 0xFF인 것을 특징으로 하는 파형정보 생성방법.
  • 제9항 내지 제11항 중의 어느 하나의 항에 따른 파형정보 생성방법을 구현하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체.
  • 자연수 n과 상기 자연수 n보다 더 작은 자연수인 m에 대해서, 일련의 m비트데이터를 포함하는 파형정보 데이터로부터 구형파 신호를 생성하기 위한 파형 생성방법에 있어서, 상기 구형파 신호의 생성에 할당된 신호생성모듈을 초기화하는 제1 단계; 상기 파형정보 데이터로부터 하나이상의 n비트 카운트 값을 계산하는 제2 단계; 상기 하나이상의 n비트 카운트 값을 사용하여 상기 신호생성모듈에서 출력신호의 펄스폭을 제어하는 소정의 하나이상의 제어 레지스터를 설정하는 제3 단계; 상기 신호생성모듈을 기동시키는 제4 단계; 상기 구형파 신호의 생성이 완성되었는지 여부를 검사하여 완성된 경우 종료하는 제5 단계; 상기 파형정보 데이터로부터 상기 하나이상의 n비트 카운트 값을 미리 계산하는 제6 단계; 및 상기 신호생성모듈로부터 인터럽트가 발생할 때까지 대기하고 인터럽트가 발생하면 상기 제3 단계로 진행하는 제7 단계를 포함하고, 상기 제2 단계와 상기 제6 단계에서 상기 파형정보 데이터로부터 상기 하나이상의 n비트 카운트 값을 계산하는 과정은 제3항에 따른 데이터 변환방법에 의해 수행하는 것을 특징으로 하는 파형 생성방법.
  • 자연수 n과 상기 자연수 n보다 더 작은 자연수인 m에 대해서, 일련의 m비트 데이터를 포함하는 파형정보 데이터로부터 구형파 신호를 생성하기 위한 파형 생성방법에 있어서, 상기 구형파 신호의 생성에 할당된 신호생성모듈을 초기화하는 제1 단계; 상기 파형정보 데이터로부터 하나이상의 n비트 카운트 값을 계산하는 제2 단계; 상기 하나이상의 n비트 카운트 값을 사용하여 상기 신호생성모듈에서 출력신호의 펄스폭을 제어하는 소정의 하나이상의 제어 레지스터를 설정하는 제3 단계; 상기 신호생성모듈을 기동시키는 제4 단계; 상기 구형파 신호의 생성이 완성되었는지 여부를 검사하여 완성된 경우 종료하는 제5 단계; 및 상기 신호생성모듈로부터 인터럽트가 발생할 때까지 대기하고 인터럽트가 발생하면 상기 제2 단계로 진행하는 제6 단계를 포함하고, 상기 제2 단계에서 상기 파형정보 데이터로부터 상기 하나이상의 n비트 카운트 값을 계산하는 과정은 제3항에 따른 데이터 변환방법에 의해 수행하는 것을 특징으로 하는 파형 생성방법.
  • 제14항 또는 제15항에 있어서, 상기 인터럽트가 발생하면 먼저 유효성 검사를 수행하여 유효하지 않은 것으로 판단되는 경우에 상기 인터럽트를 무시하는 것을 특징으로 하는 파형 생성방법.
  • 제14항 또는 제15항에 있어서, 상기 자연수 n의 값은 16이고, 상기 자연수 m의 값은 8이고, 상기 자연수 k의 값은 2이고, 상기 소정의 m비트 예약치는 0xFF인 것을 특징으로 하는 파형 생성방법.
  • 제14항 또는 제15항에 따른 파형 생성방법을 구현하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체.
  • 说明书全文

    데이터 변환방법과 이를 이용한 파형정보 생성방법 및 파형 생성방법, 그리고 그 기록매체{A data conversion method, a waveform information generation method thereby, a waveform generation method thereby, and the storage media thereof}

    본 발명은 서로 상이한 데이터 단위로 구성된 데이터 사이에서 효율적인 상호변환을 제공하기 위한 데이터 변환방법, 및 이를 이용한 파형정보 생성방법과 파형 생성방법에 관한 것이다.

    종래로 서로 상이한 포맷의 데이터 사이에서 상호변환을 수행하기 위한 효율적인 변환방법에 대한 수요가 있어왔는데, 그 주요목적 중의 하나는 데이터 압축이다. 이를 위한 종래의 데이터 변환방법은 그 적용하고자 하는 분야에 따라서 그 구체적인 변환방식이 서로 상이한데, 본 발명에서는 데이터를 구성하는 기본 단위가 서로 상이한 경우, 즉 제1 데이터는 16비트 단위로 구성되어 있는 반면 제2 데이터는 8비트 단위로 구성되어 있는 경우에, 이들 상호간에 효율적인 데이터 변환방법을 개시한다.

    또한, 종래로 입력신호에 대해서 디지털 형식의 파형정보를 생성하고, 반대로 디지털 데이터의 파형정보로부터 원래의 신호파형을 생성하는 방법에 대한 수요가 있어왔는데, 그 주요목적의 하나는 정보저장 및 재활용이다. 본 발명에서는 특히 구형파 입력신호에 대해서 디지털 형식의 파형정보를 생성하고, 또한 디지털 데이터의 파형정보로부터 원래의 구형파 신호를 생성할 수 있는 방법으로서, 전술한 데이터 변환방법을 적용함으로써 압축효율이 양호해지도록 한 파형정보 생성방법 및 파형 생성방법을 개시한다.

    이에, 본 발명은 서로 상이한 데이터 단위로 구성된 데이터 사이에서 효율적인 상호변환을 제공하기 위한 데이터 변환방법, 및 이를 이용한 파형정보 생성방법과 파형 생성방법을 제공하는 데에 그 목적이 있다.

    도1은 본 발명의 데이터 변환방법에서 효율적인 데이터 변환을 위해 n비트 데이터를 3개의 비트군으로 분할하여 처리하는 실시예를 도시하는 도면.

    도2는 본 발명의 데이터 변환방법에서 인코딩 과정의 동작 실시예를 도시하는 흐름도.

    도3은 본 발명의 데이터 변환방법에서 디코딩 과정의 동작 실시예를 도시하는 흐름도.

    도4는 도4는 본 발명의 파형정보 생성방법에서 구형파 신호의 파형 및 이에 따른 프리러닝 카운터의 카운터 궤적의 실시예를 도시하는 도면.

    도5는 본 발명의 파형정보 생성방법에서 시스템 인터럽트에 대응하여 파형정보를 생성하는 동작 실시예를 도시하는 흐름도.

    도6은 본 발명의 파형 생성방법에서 구형파 신호를 생성하는 기본 구성의 실시예를 도시하는 도면.

    도7은 본 발명의 파형 생성방법에서 파형정보로부터 구형파 신호를 생성하는 동작 실시예를 도시하는 흐름도.

    도8은 본 발명의 파형 생성방법에서 파형정보로부터 구형파 신호를 생성하는 다른 동작 실시예를 도시하는 흐름도.

    도9는 본 발명의 파형 생성방법에서 파형정보로부터 구형파 신호를 생성하는 다른 동작 실시예를 도시하는 흐름도.

    도10은 본 발명의 파형 생성방법에서 파형정보로부터 구형파 신호를 생성하는 다른 동작 실시예를 도시하는 흐름도.

    <도면의 주요 부분에 대한 부호의 설명>

    100 : 전체 16비트 데이터

    60 : 제1 비트군

    120 : 제2 비트군

    130 : 제3 비트군

    410 : 신호파형

    420 : 카운터 궤적

    전술한 바와 같은 본 발명의 목적을 달성하기 위해서, 본 발명은 자연수 n과 상기 자연수 n보다 더 작은 자연수인 m에 대해서, n비트의 제1 데이터를 하나이상의 m비트 데이터를 포함하는 제2 데이터로 변환하기 위한 데이터 변환방법에 있어서, 상기 제1 데이터를 최상위 k비트의 제1 비트군과 그 다음 m비트의 제2 비트군과 그 이하의 h비트의 제3 비트군으로 구분하는 제1 단계; 상기 제1 비트군의 값이 0이 아닌 경우, 소정의 m비트 예약치를 상기 제1 비트군의 값에 대응하는 회수만큼 출력하는 제2 단계; 상기 제2 비트군의 값이 상기 m비트 예약치와 동일한 경우에는 상기 m비트 예약치와는 상이한 소정의 m비트 값을 출력하고, 상이한 경우에는 상기 제2 비트군의 m비트 값을 출력하는 제3 단계; 및 상기 출력된 하나이상의 m비트의 값을 결합하여 상기 제2 데이터를 구성하는 제4 단계를 포함하는 것을 특징으로 하는 데이터 변환방법, 및 이를 이용한 파형정보 생성방법과 파형 생성방법을 제공한다.

    이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명한다.

    도1은 본 발명의 데이터 변환방법에서 효율적인 데이터 변환을 위해 n비트 데이터(100)를 3개의 비트군(110, 120, 130)으로 분할하여 처리하는 실시예를 도시하는 도면이다. 도1(a)는 16비트 데이터(B15 ~ B0)가 3개의 비트군, 즉 제1 비트군(110)과 제2 비트군(120)과 제3 비트군(130)으로 분할되는 것을 도시하는데, 본 명세서에서는 각 비트군(110, 120, 130)에 대한 비트할당의 일 실시예로서 제1 비트군(110)에 대해서 최상위 2비트(B15, B14)를 할당하고, 제2 비트군(120)에 대해서 다음의 8비트(B13 ~ B6)를 할당하며, 제3 비트군(130)에 대해서는 나머지 하위 6비트(B5 ~ B0)를 할당한다. 설명의 편이를 위해서, 전체 데이터(100)의 비트 수를 n이라고 표시하고, 제1 및 제2 및 제3 비트군(110, 120, 130)에 할당된 비트 수를 각각 "k", "m", "h"라고 표시한다.

    본 발명의 데이터 변환방법에서는 도1(a)에 도시된 비트군(110, 120, 130) 중에서 제3 비트군(130)은 그 내용을 무시하고, 제2 비트군(120)은 그 내용을 그대로 사용하며, 제1 비트군(110)은 별도로 처리한다. 즉, 16비트의 데이터 중에서 제3 비트군(130)의 6비트는 그 구체적인 값이 무시되고 제2 비트군(120)의 8비트는 그 값이 그대로 사용되며 제1 비트군(110)의 2비트는 별도로 처리되는데, 이에 대해서는 도2 및 도3을 참조하여 후술한다.

    도1(b)는 전술한 제1 비트군(110)을 별도처리하기 위하여 소정의 예약치, 예컨대 0xFF를 출력하는 모습을 도시하는 도면인데, 도시된 바와 같이 제1 비트군(110)의 값이 1이면 예약치를 1회 출력하고, 2이면 예약치를 2회 출력하며, 3이면 예약치를 3회 출력한다. 도시되어 있지는 않으나, 제1 비트군(110)의 값이 0인 경우에는 예약치를 출력하지 않는다.

    도2는 본 발명의 데이터 변환방법에서 인코딩 과정의 동작 실시예를 도시하는 흐름도이다. 전술한 바와 같이, 본 발명의 데이터 변환방법에서는 데이터 구성에 있어서 변환 전후의 기본단위가 서로 상이한 것으로 가정하는데, 본 명세서에서는 기본단위가 큰 제1 데이터에서 기본단위가 작은 제2 데이터로 변환하는 과정을 "인코딩"이라고 부르고, 그 반대과정을 "디코딩"이라고 부른다. 도2는 본 발명의 인코딩 과정의 동작 실시예를 도시한다.

    도2에 도시된 동작 실시예에서 변환전의 제1 데이터는 그 기본단위로서 n비트의 데이터를 갖는데, 본 실시예에서는 도1을 참조하여 전술한 바와 같이 이 n비트의 데이터를 세 개의 비트군으로 분할하여 소정의 변환동작을 수행한다. 도1에서와 마찬가지로, 제1 및 제2 및 제3 비트군에 할당된 비트 수를 각각 k, m, h라고 표시한다.

    도2에 도시된 실시예에서는, 먼저 제1 데이터로부터 n비트 데이터(Tn)를 독출하고(ST215), 이 n비트 데이터로부터 전술한 제1 비트군에 해당하는 최상위 k비트 영역(Tk)을 추출하여(ST220) 그 값이 0이 아닌 경우에는 그 값에 해당하는 회수만큼 소정의 예약치, 예컨대 0xFF를 출력하고(ST225), 그리고 n비트 데이터로부터 전술한 제2 비트군에 해당하는 다음의 m비트 영역(Tm)을 추출한(ST230) 후, 그 값이 전술한 소정의 예약치, 즉 0xFF와 동일한지 여부를 검사하여(ST235) 동일한 경우에는 이 영역(Tm)의 값을 소정의 m비트 예약치와는 상이한 값, 예컨대 0xFE로 설정하며(ST240), 이어서 이 제2 비트군 영역(Tm)의 값을 출력한다(ST245). 그리고 나서, 제1 데이터의 변환이 종료되었는지 여부, 즉 제1 데이터에 변환할 데이터가남아있는지 여부를 검사하여(ST250) 제1 데이터에 아직 남아있는 경우에는 (ST215)로 진행하고, 남아있지 않은 경우에는 출력된 하나이상의 m비트 값을 결합하여 제2 데이터를 구성한다(ST255).

    위의 흐름도에서 제2 비트군 영역의 값이 소정의 m비트 예약치와 동일한지 여부를 검사하여(ST235) 동일한 경우에 이 소정의 예약치와 상이한 값으로 설정하는(ST240) 것은 제2 데이터의 내용에 있어서 전술한 소정의 m비트 예약치의 의미상의 동일성 및 유일성을 확보하기 위함이다. 한편, 전술한 "상이한 값"은 "소정의 m비트 예약치"와는 상이하지만 유사한 값으로 선택되는 것이 바람직하고, 도2의 실시예에서도 각각 0xFE와 0xFF가 사용되었다.

    도3은 본 발명의 데이터 변환방법에서 디코딩 과정의 동작 실시예를 도시하는 흐름도로서, 도3의 동작 실시예는 도2를 참조하여 전술하였던 인코딩 과정의 동작 실시예에 대해서 일종의 역변환 과정에 해당한다. 즉, 변환전의 제1 데이터는 그 기본단위로서 m비트의 데이터를 갖는데, 본 실싱예의 변환과정을 통해서 n비트의 기본단위를 갖는 제2 데이터를 얻는다.

    본 실시예에서는, 먼저 n비트 변수(Tn)를 소정의 값으로 초기화하고(ST315), 제1 데이터로부터 m비트 데이터(Tm)을 독출하여(ST320) 이 데이터(Tm)의 값이 소정의 예약치와 동일한지 여부를 검사하고(ST325), 동일한 경우에는 n비트 변수(Tn)에 2의 (nk)승의 값, 즉 제1 비트군의 기본단위에 대응하는 값을 가산한(ST330) 후에 다시 (ST320)으로 되돌아가고, 상이한 경우에는 이 데이터(Tm)의 값을 h비트만큼좌측으로 쉬프트(shift left)한 후 n비트 변수(Tn)에 가산한다. 이 때, 전술한 좌측 쉬프트에 의해 최하위 h비트가 0으로 채워질 때 발생할 수 있는 오차를 보상하기 위해 소정의 오프셋 값을 가산하는 것이 보다 바람직한데(ST340), 본 발명의 데이터 변환방법을 적용하는 분야에 따라서 이 정도의 오차가 문제가 되지 않는 경우에는 오프셋 값을 가산하지 않아도 무방하다. 도3의 실시예에서는 전술한 오프셋으로서 최대 오차의 절반에 해당하는 2의 (h-1)승의 값이 바람직한데, 본 발명의 사상은 이에 한정되지 않으며 이 최대 오차값을 초과하지 않는 범위 내에서 적절히 선택할 수 있다. 그리고, 제1 데이터에 현재 처리할 데이터가 남아있는지 여부를 검사하여(ST350) 제1 데이터에 아직 남아있는 경우에는 (ST315)로 진행하고, 남아있지 않은 경우에는 출력된 하나이상의 n비트 값을 결합하여 제2 데이터를 구성한다(ST355).

    한편, 전술한 소정의 오프셋의 값을 가산하는 과정은 도3에 도시된 실시예와는 다소 상이하게 구현할 수 있는데, 예컨대 (ST315)에서 n비트 변수(Tn)의 값을 이 소정의 오프셋 값, 예컨대 2의 (h-1)승으로 초기화한다면 (ST340)과 같은 오프셋 값 가산과정은 필요하지 않게 된다.

    도4는 본 발명의 파형정보 생성방법에서 구형파 신호의 파형(410) 및 이에 따른 프리러닝 카운터(free-running counter)의 카운터 궤적(420)의 실시예를 도시하는 도면이다. 본 발명의 실시예에서는 구형파 신호(410)의 펄스폭을 측정하기 위해서 프리러닝 카운터를 사용하는데, 이를 위해 구형파 신호(410)의 양방향 에지, 즉 상승에지(rising edge)와 하강에지(falling edge)에 대해서 도시된 바와 같이 카운터가 리셋/리스타트(reset & restart)되면서 그 시점의 카운터 값이 소정의 내부 레지스터에 캡쳐(430, 440, 450)된다. 또한, 이 시점에서 카운터 값 처리를 수행하기 위해서 상승에지와 하강에지에 대해서 인터럽트가 발생하는 것이 바람직하다.

    한편, 프리러닝 카운터가 양방향 에지에서 리셋/리스타트된다고 하는 것은 본 발명의 사상에서 반드시 필요한 성질은 아니다. 즉, 리셋/리스타트되지 않고 단순히 프리러닝하면서 단지 양방향 에지 시점의 카운터 값만 캡쳐(430, 440, 450)되는 경우에도 이전의 카운터 값("프리카운터(pre-counter)")과의 감산 연산을 수행하면 구형파 신호(410)의 펄스폭에 대응하는 카운터 값을 얻을 수 있다. 단, 전술한 두가지 방식, 즉 리셋/리스타트를 수행하는 방식과 단순히 프리러닝하는 방식 중 어떠한 경우라도, 펄스폭에 대응하는 카운터 값을 계산함에 있어서 프리러닝 카운터의 오버플로우(overflow) 이벤트에 대한 고려는 필수적이다. 이에 대해서는, 본 명세서에서 후술하고자 한다.

    도5는 본 발명의 파형정보 생성방법에서 시스템 인터럽트에 대응하여 파형정보를 저장하는 동작 실시예를 도시하는 흐름도이다. 도5의 루틴(ST510 ~ ST560)은 바람직하게는 구형파 신호의 양방향 에지에서 인터럽트가 발생하면 이에 대응하여 수행되는 것으로서, 인터럽트 서비스 루틴(interrupt service routine)에서 수행하도록 구성될 수도 있고, 아니면 인터럽트 서비스 루틴에서 통상의 태스크(task)로메세지를 전달하여 통상의 프로그램에서 수행하도록 구성될 수도 있다. 본 발명에서는 이에 대해서는 제한하지 않는다.

    도5와 도2를 비교하면, 도5에 도시된 파형정보 생성방법의 동작 실시예는 기본적으로 도2에 도시된 데이터 변환방법을 채용하고 있음을 알 수 있다. 따라서, 도2를 참조하여 전술한 바와 같이, 프리러닝 카운터에서 캡쳐되어 발생하는 카운터 값은 n비트이고, 이 n비트 카운터 값을 도1 및 도2를 참조하여 전술한 바와 같이 세 개의 비트군으로 분할하여 소정의 변환동작을 수행한다. 기호 k, m, h에 대한 용례는 도1 및 도2를 참조하여 기술한 바와 동일하다. 도5의 실시예에서, 프리러닝 카운터는 구형파 신호의 양방향 에지에서 리셋/리스타트되고, 프리러닝 카운터의 오버플로우 이벤트에 대해서 인터럽트가 발생한다고 가정한다.

    본 실시예에서 인터럽트에 대응하여 루틴이 시작하면(ST510), 먼저 인터럽트의 원인을 검사하여(ST515) 프리러닝 카운터의 오버플로우 이벤트로 인한 인터럽트인 경우에는 소정의 예약치(예컨대, 0xFF)를 2의 k승 회수만큼 출력하고(ST555) 본 루틴을 종료한다(ST560). 반면, 오버플로우 이벤트로 인한 인터럽트가 아닌 경우에는, 인터럽트의 원인은 구형파 신호의 양방향 에지, 즉 상승에지 혹은 하강에지인 것으로 판단되고, (ST520) 방면으로 분기한다. 물론, 본 발명의 파형정보 생성방법을 적용하여 실제로 시스템을 구성하게 되면, 이들 이외에도 여러가지 원인으로 인해 인터럽트가 발생할 수 있으나, 본 명세서의 설명에서는 이 세가지 원인으로 인한 인터럽트만을 가정한다.

    구형파 신호의 양방향 에지로 인한 인터럽트인 경우에는, 먼저 n비트 카운터값(Tn)을 독출하고(ST520), 이 n비트 카운터 값(Tn)으로부터 전술한 제1 비트군에 해당하는 최상위 k비트 영역(Tk)을 추출하여(ST525) 그 값이 0이 아닌 경우에는 그 값에 해당하는 회수만큼 소정의 예약치, 예컨대 0xFF를 출력하고(ST530), 그리고 전술한 n비트 카운터 값에서 제2 비트군에 해당하는 다음의 m비트 영역(Tm)을 추출한(ST535) 후, 그 값이 전술한 소정의 예약치, 예컨대 0xFF와 동일한지 여부를 검사하여(ST540) 동일한 경우에는 이 영역(Tm)의 값을 소정의 예약치와는 상이한 값, 예컨대 0xFE로 설정하며(ST545), 마지막으로 이 제2 비트군 영역(Tm)의 값을 출력한다(ST550).

    도6은 본 발명의 파형 생성방법에서 구형파 신호를 생성하는 기본 구성의 실시예를 도시하는 도면이다. 도6은 구형파 신호의 파형(610)를 PWM 신호생성모듈을 이용하여 생성하는 예를 도시한 것인데, 본 발명의 사상은 이에 제한되는 것은 아니다. 본 실시예에서 사용되는 PWM 신호생성모듈은 소정의 제어 레지스터를 가지고 있어, 이 제어 레지스터에 적절한 타이머 값을 설정한 후에 신호생성모듈을 기동시키면, 기준 클록을 사용하여 이 타이머 값을 카운트다운(count-down)하여 0에 도달할 때 출력파형(610)의 하이/로우 레벨을 반전시키고 인터럽트를 발생시키는, 일종의 타이머 기능을 수행한다.

    도6에 도시된 본 발명의 실시예에서는, 이 제어 레지스터에 소망하는 하이레벨 펄스폭에 대응하는 Tn1(650)이라는 값을 설정하고 시점 t1(620)에서 신호생성모듈을 기동시키는데, 신호생성모듈은 기준 클록을 사용하여 Tn1(650)을 카운트다운하고 그 값이 0에 도달하는 시점인 시점 t2(630)에서 출력파형(610)의 레벨을 로우로 반전시키면서 시스템 인터럽트를 발생시킨다. 이어서, 제어 레지스터에 다음의 소망하는 로우레벨 펄스폭에 대응하는 Tn2(660)라는 값을 설정하고 시점 t2(630)에서 신호생성모듈을 기동시키면, 신호생성모듈은 기준 클록을 사용하여 Tn2(660)를 카운트다운하고 그 값이 0에 도달하는 시점인 시점 t3(640)에서 출력파형(610)의 레벨을 하이로 반전시키고 인터럽트를 발생시킨다.

    본 실시예에서, 다음의 펄스 구간을 생성하기 위해서 사용할 타이머 값을 계산하는 일은 현재 펄스에 대한 시스템 인터럽트가 발생하기 전에 미리 수행할 수도 있고, 혹은 시스템 인터럽트가 일어난 후에 수행할 수도 있다. 즉, 도6에서 시점 t2(630)와 시점 t3(640) 사이의 로우 구간을 생성하기 위해 제어 레지스터에 설정될 타이머 값인 Tn2(660)는 시점 t2(630)가 되기 전에, 예컨대 제어 레지스터에 Tn1(650)를 설정하고 신호생성모듈을 기동시킨 후에 계산하는 것도 가능하고, 아니면 시점 t2(630)에서 시스템 인터럽트가 발생한 후에 예컨대 인터럽트 서비스 루틴에서 계산하는 것도 가능하다. 정확한 리모콘 제어신호 파형(610)을 생성하기 위해서는 전자와 같은 구현이 보다 바람직하지만, 정확도에 그다지 민감하지 않다면 후자와 같은 구현도 불가능한 것은 아니다.

    한편, PWM 신호생성모듈에 따라서는 PWM 신호생성을 위해서 제1 및 제2 제어 레지스터를 구비하여, 도6에 도시된 실시예의 경우 제1 제어 레지스터와 제2 제어 레지스터에 각각 Tn1(650)와 Tn2(660)를 설정하거나 혹은 (Tn1(650) + Tn2(660))와 Tn2(660)를 설정한 후에 신호생성모듈을 기동시키면, 시점 t1(620) 내지 시점t3(640) 사이의 리모콘 제어신호 파형(610)이 일거에 생성되도록 동작하는 것도 있다. 이 때, 시스템 인터럽트는 시점 t2(630)와 시점 t3(640)에서 모두 발생하도록 동작하는 신호생성모듈도 있고, 혹은 시점 t3(640)에서만 발생하도록 동작하는 신호생성모듈도 있다.

    도7은 본 발명의 파형 생성방법에서 파형정보로부터 구형파 신호를 생성하는 동작 실시예를 도시하는 흐름도로서, 도6의 실시예에서 신호생성모듈의 제어 레지스터가 하나가 제공되고 다음 펄스폭을 위한 타이머 설정치를 인터럽트가 발생하기 전에 미리 계산하는 실시예를 도시한다. 또한, 도7의 실시예에서 구형파 신호를 생성하기 위해 제공되는 파형정보는 도5의 파형정보 생성방법의 결과물과 동일한 포맷을 가지므로 일련의 m비트 데이터를 포함한다고 가정된다. 또한, 이렇게 구성된 파형정보로부터 후술하는 바와 같이 구형파 파형을 생성하기 위해 사용되는 n비트 타이머 설정치를 계산하는 과정은 도3을 참조하여 전술하였던 데이터 변환방법을 사용한다.

    본 실시예에서는, 구형파 신호를 생성하기 위해서 먼저 신호생성모듈을 초기화하고(ST715), 구형파 신호의 소망하는 펄스폭에 대응하는 타이머 설정치(Tn)을 계산한(ST720) 후에, 이 타이머 설정치(Tn)를 사용하여 신호생성모듈의 제어 레지스터를 설정하고(ST725), 이어서 신호생성모듈을 기동시킨다(730). 그리고 나서, 구형파 신호의 생성이 완료되었는지 여부를 검사하여(ST735) 완료된 경우에는 본 루틴을 종료하고(ST750), 그렇지 않은 경우에는 구형파 신호에 있어서 소망하는 다음 펄스폭에 대응하는 타이머 설정치(Tn)를 미리 계산하고(ST740), 인터럽트의 발생을 대기한다(ST745). 그리고 나서, 인터럽트가 발생되면 (ST725)로 진행하여 (ST740)에서 미리 계산해 두었던 타이머 설정치(Tn)를 사용하여 제어 레지스터를 설정한다. 본 실시예에서, (ST735)에서 사용되는 구형파 신호의 생성이 완료되었는지 여부를 검사하는 과정은 바람직하게는 파형정보 데이터에 유효 데이터가 존재하는지 여부를 검사함으로써 달성할 수 있다.

    도8은 본 발명의 파형 생성방법에서 파형정보로부터 구형파 신호를 생성하는 다른 동작 실시예를 도시하는 흐름도이다. 도8에 도시된 동작 실시예는 도7에 도시된 동작 실시예와 대부분 동일한데, 다만 소망하는 다음 펄스폭을 위한 타이머 설정치(Tn)를 계산하는 과정을 인터럽트가 발생한 이후에, 예컨대, 인터럽트 서비스 루틴에서 수행한다(ST820). 그 이외의 부분에 대해서는 도7를 참조하여 전술한 내용을 참조한다.

    도9는 본 발명의 파형 생성방법에서 파형정보로부터 구형파 신호를 생성하는 다른 동작 실시예를 도시하는 흐름도이다. 도9에 도시된 동작 실시예도 도7에 도시된 동작 실시예와 유사한데, 다만 신호생성모듈에 있어서 제1 및 제2 제어 레지스터가 제공되어, 일거에 2레벨의 구형파 신호파형이 생성되도록 동작한다는 점에서 일부 상이점을 갖는다. 이 때, 전술한 바와 같이, 인터럽트는 2레벨의 파형 전체에 대해서 1회 발생할 수도 있고, 사용한 마이콤에 따라서는 별도로 2회 발생할수도 있는데, 2회 발생하도록 동작하는 경우에는 (ST950)에서와 같이 인터럽트 발생원인을 체크하여 제1 제어 레지스터로 인한 인터럽트인 경우, 즉 앞의 펄스폭 엔드(end)로 인한 인터럽트인 경우에는 무시하도록 동작한다. 그 외의 부분에 대해서는 도7를 참조하여 전술한 내용을 참조한다.

    도10은 본 발명의 파형 생성방법에서 파형정보로부터 구형파 신호를 생성하는 다른 동작 실시예를 도시하는 흐름도이다. 도10에 도시된 동작 실시예는 도9에 도시된 동작 실시예와 대부분 동일한데, 다만 소망하는 다음 2레벨의 펄스폭을 위한 타이머 설정치(Tn1, Tn2)를 계산하는 과정을 인터럽트가 발생한 이후에, 예컨대, 인터럽트 서비스 루틴에서 수행한다(ST1020). 그 이외의 부분에 대해서는 도9를 참조하여 전술한 내용을 참조한다.

    본 발명의 데이터 변환방법에 따르면 소망하는 대로 데이터 압축 및 데이터 복원을 효과적으로 수행할 수 있는 장점이 있다.

    또한, 본 발명의 파형정보 생성방법에 따르면 구형파 신호로부터 그 파형정보를 효율적으로 생성할 수 있는 장점이 있다.

    또한, 본 발명의 파형 생성방법에 따르면 파형정보 데이터로부터 구형파 신호를 효율적으로 생성할 수 있는 장점이 있다.

    QQ群二维码
    意见反馈