KR101094883B1 - Pwm 펄스의 주기 및 듀티 측정방법 - Google Patents

Pwm 펄스의 주기 및 듀티 측정방법 Download PDF

Info

Publication number
KR101094883B1
KR101094883B1 KR1020100017843A KR20100017843A KR101094883B1 KR 101094883 B1 KR101094883 B1 KR 101094883B1 KR 1020100017843 A KR1020100017843 A KR 1020100017843A KR 20100017843 A KR20100017843 A KR 20100017843A KR 101094883 B1 KR101094883 B1 KR 101094883B1
Authority
KR
South Korea
Prior art keywords
overflow
value
order
input capture
counter value
Prior art date
Application number
KR1020100017843A
Other languages
English (en)
Other versions
KR20110098291A (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 KR1020100017843A priority Critical patent/KR101094883B1/ko
Publication of KR20110098291A publication Critical patent/KR20110098291A/ko
Application granted granted Critical
Publication of KR101094883B1 publication Critical patent/KR101094883B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R29/00Arrangements for measuring or indicating electric quantities not covered by groups G01R19/00 - G01R27/00
    • G01R29/02Measuring characteristics of individual pulses, e.g. deviation from pulse flatness, rise time or duration
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R29/00Arrangements for measuring or indicating electric quantities not covered by groups G01R19/00 - G01R27/00
    • G01R29/02Measuring characteristics of individual pulses, e.g. deviation from pulse flatness, rise time or duration
    • G01R29/023Measuring pulse width
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R29/00Arrangements for measuring or indicating electric quantities not covered by groups G01R19/00 - G01R27/00
    • G01R29/02Measuring characteristics of individual pulses, e.g. deviation from pulse flatness, rise time or duration
    • G01R29/027Indicating that a pulse characteristic is either above or below a predetermined value or within or beyond a predetermined range of values

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Manipulation Of Pulses (AREA)

Abstract

본 발명은 PWM 펄스의 주기 및 듀티 측정방법에 관한 것으로, (a) 오버플로 인터럽트와 입력 캡처 인터럽트가 발생하는 단계, (b) PWM 펄스의 상승 에지에서 상기 입력 캡처 발생시 저장된 카운터 값과 제 1 및 제 2경계값을 비교한 결과에 기초하여 입력 캡처 및 오버플로의 발생 순서를 예측하는 단계, (c) 상기 예측된 순서에 따라 입력 캡처 및 오버플로의 순서를 설정하고, 설정된 순서에 따라 시작 시점 오버플로 카운터 값을 설정하는 단계, (d) 상기 PWM 펄스의 하강 에지에서 상기 저장된 카운터 값과 제 3 및 제 4경계값을 비교한 결과에 기초하여 종료 시점 오버플로 카운터 값을 설정하는 단계 및 (e) 상기 설정된 시작 시점 및 종료 시점 오버플로 카운트 값을 이용하여 시작시점 및 종료시점을 산출하여 상기 PWM 펄스의 듀티를 산출하는 단계를 포함하는 구성을 마련한다.
상기와 같은 PWM 펄스의 주기 및 듀티 측정방법을 이용하는 것에 의해, 본 발명은 MCU에 구비된 카운터 또는 타이머를 사용하여 가용범위를 초과하는 주기를 갖는 PWM 펄스의 주기 및 듀티를 정밀하게 측정할 수 있다.

Description

PWM 펄스의 주기 및 듀티 측정방법{METHOD FOR PERIOD AND DUTY MEASURING OF PWM PULSE}
본 발명은 PWM 펄스의 주기 및 듀티 측정방법에 관한 것으로, 더욱 상세하게는 마이크로 컨트롤러 유닛에서 제공하는 카운터 용량을 오버플로하는 긴 주기를 갖는 PWM 펄스의 주기 및 듀티를 측정하는 방법에 관한 것이다.
일반적으로, PWM 펄스의 주기 및 Duty는 해당 PWM 주기에 적합한 마이크로 컨트롤러 유닛(Micro Controller Unit, 이하 'MCU'라 함)에서 제공하는 카운터(Counter)와 입력 캡처(Input Capture) 인터럽트를 사용하여 측정된다.
하지만, MCU에서 제공되는 카운터, 예컨대 8bit 카운터에서 허용되는 범위를 오버플로(overflow)하는 주기, 예컨대 16bit의 주기를 가진 펄스가 입력되는 경우, 카운터 오버플로(Counter Overflow) 시 값이 초기화된다.
이로 인해, 카운터에서 허용되는 범위를 오버플로하는 주기를 가진 펄스의 주기 및 듀티를 입력 캡처 인터럽트만을 사용해서 정확하게 측정하는 것은 불가능하다.
예를 들어, 도 1은 수소 연료전지 차량용 MCU에서 타이머와 연관된 다수의 인터럽트가 발생하는 상태를 예시하는 예시도이다.
즉, 도 1에 도시된 바와 같이 일반적인 MCU에서는 타이머(Timer)와 연관되어 있는 인터럽트가 개별적으로 발생하지 않고, 다수의 인터럽트가 하나로 묶여 발생한다.
이로 인해,아주 짧은 시간 내에 하나 이상의 인터럽트가 발생하는 조건이 성립될 경우, 특히 펄스폭 측정 시에는 실제 값과 다른 값으로 인식되는 측정 오류가 발생하는 문제점이 있었다.
따라서 주어진 카운터에서 허용되는 범위를 오버플로하는 펄스의 주기 및 듀티를 측정하기 위해서는 카운터의 오버플로를 인식할 수 있는 수단 및 인터럽트 발생 조건과 다중 조건이 성립할 경우 각각의 인터럽트가 발생한 시점을 정확히 판단할 수 있는 방법이 요구되고 있다.
본 발명은 상기한 바와 같은 문제점을 해결하기 위한 것으로, 본 발명의 목적은 카운터의 가용범위보다 주기가 긴 PWM 펄스의 주기 및 듀티를 정밀하게 측정할 수 있는 PWM 펄스의 주기 및 듀티 측정방법을 제공하는 것이다.
본 발명의 다른 목적은 카운터의 해상도를 향상시키고, 카운터의 해상도가 높을수록 거의 동시에 발생할 가능성이 높은 입력 캡처와 오버플로 인터럽트 발생시점을 정확히 인지할 수 있는 PWM 펄스의 주기 및 듀티 측정방법을 제공하는 것이다.
상기한 바와 같은 목적을 달성하기 위한 본 발명의 특징에 따르면, 본 발명은 (a) 오버플로 인터럽트와 입력 캡처 인터럽트가 발생하는 단계, (b) PWM 펄스의 상승 에지에서 상기 입력 캡처 발생시 저장된 카운터 값과 제 1 및 제 2경계값을 비교한 결과에 기초하여 입력 캡처 및 오버플로의 발생 순서를 예측하는 단계, (c) 상기 예측된 순서에 따라 입력 캡처 및 오버플로의 순서를 설정하고, 설정된 순서에 따라 시작 시점 오버플로 카운터 값을 설정하는 단계, (d) 상기 PWM 펄스의 하강 에지에서 상기 저장된 카운터 값과 제 3 및 제 4경계값을 비교한 결과에 기초하여 종료 시점 오버플로 카운터 값을 설정하는 단계 및 (e) 상기 설정된 시작 시점 및 종료 시점 오버플로 카운트 값을 이용하여 시작시점 및 종료시점을 산출하여 상기 PWM 펄스의 듀티를 산출하는 단계를 포함한다.
상기 (b)단계는 (b1) 상기 저장된 카운터 값이 상기 제 1경계값보다 큰 경우, 입력 캡처, 오버플로 순으로 발생 순서를 예측하여 상기 시작 시점 오버플로 카운터 값을 1로 설정하는 단계와 (b2) 상기 저장된 카운터 값이 상기 제 2경계값보다 작은 경우, 오버플로, 입력 캡처 순으로 발생 순서를 예측하여 상기 시작 시점 오버플로 카운터 값을 0으로 설정하는 단계를 포함하고, 상기 제 1경계값은 입력 캡처 후 오버플로 발생 가능성 값으로 설정되고, 상기 제 2경계값은 오버플로 발생 후 입력 캡처가 발생할 가능성 값으로 설정되는 것을 특징으로 한다.
상기 (d)단계는 (d1) 상기 저장된 카운터 값이 상기 제 3경계값보다 작은 경우, 입력 캡처, 오버플로 순으로 발생 순서를 예측하여 상기 종료 시점 오버플로 카운터 값을 증가시키는 단계와 (d2) 상기 저장된 카운터 값이 상기 제 4경계값보다 큰 경우, 오버플로, 입력 캡처 순으로 발생 순서를 예측하여 상기 종료 시점 오버플로 카운터 값을 그대로 유지하는 단계를 포함하고, 상기 제 3경계값은 입력 캡처 후 오버플로 발생 가능성 값으로 설정되고, 상기 제 4경계값은 오버플로 발생 후 입력 캡처가 발생할 가능성 값으로 설정되는 것을 특징으로 한다.
상기 제 1 내지 제 4경계값은 MCU의 처리 속도에 따라 변경되는 변수로, 실험치에 의해 설정되는 것을 특징으로 한다.
상기 (e)단계는 (e1) 상기 설정된 시작 시점 및 종료시점 오버플로 카운트 값을 하기 수학식 1 및 2에 대입하여 시작 시점 및 종료 시점을 산출하는 단계와 (e2) 상기 산출된 시작 시점 및 종료 시점을 하기 수학식 3에 대입하여 상기 PWM 펄스의 듀티를 산출하는 단계를 포함하는 것을 특징으로 한다.
Figure 112010012814461-pat00001
................................[수학식 1]
Figure 112010012814461-pat00002
.................................[수학식 2]
Figure 112010012814461-pat00003
.................................[수학식 3]
본 발명의 다른 특징에 따르면, 본 발명은 (a) 오버플로 인터럽트와 입력 캡처 인터럽트가 동시에 발생하는 단계, (b) PWM 펄스의 상승 에지를 검사하여 상승 시점에서 상승 카운터 값을 증가시키는 단계, (c) 상기 상승 카운터 값이 2가 되면, 상기 입력 캡처시 저장된 카운터 값과 제 5 및 제 6경계값을 비교한 결과에 기초하여 입력 캡처 및 오버플로의 발생순서를 예측하는 단계, (d) 상기 예측된 순서에 기초하여 입력 캡처 및 오버플로의 순서를 설정하고, 설정된 순서에 기초하여 종료 시점 오버플로 카운터 값을 설정하는 단계 및 (e) 상기 설정된 종료 시점 오버플로 카운터 값을 이용하여 상승 시점 및 종료 시점을 산출하여 상기 PWM 펄스의 주기를 산출하는 단계를 포함한다.
상기 (a)단계는 (a1) 상기 저장된 카운터 값이 제 5경계값보다 큰 경우, 입력 캡처, 오버플로 순으로 발생 순서를 예측하는 단계와 (a2) 상기 저장된 카운터 값이 제 6경계값보다 작은 경우, 오버플로, 입력 캡처 순으로 발생 순서를 예측하는 단계를 포함하고, 상기 제 5경계값은 입력 캡처 후 오버플로 발생 가능성 값으로 설정되고, 상기 제 6경계값은 오버플로 발생 후 입력 캡처가 발생할 가능성 값으로 설정되는 것을 특징으로 한다.
상기 (b)단계는 (b1) 상기 상승 카운터가 1인 경우, 상기 저장된 카운터 값을 제 7 및 제 8경계값과 비교하는 단계, (b2) 상기 비교결과, 상기 저장된 카운터 값이 제 7경계값보다 큰 경우, 입력 캡처, 오버플로 순으로 발생순서를 예측하여 시작 시점 오버플로 카운터 값을 1로 설정하는 단계 및 (b3) 상기 비교결과, 상기 저장된 카운터 값이 제 8경계값보다 작은 경우, 오버플로, 입력 캡처 순으로 발생 순서를 예측하여 시작 시점 오버플로 카운터 값을 0으로 설정하는 단계를 포함하고, 상기 제 7경계값은 입력 캡처 후 오버플로 발생 가능성 값으로 설정되고, 상기 제 8경계값은 오버플로 발생 후 입력 캡처가 발생할 가능성 값으로 설정되는 것을 는 것을 특징으로 한다.
상기 제 5 내지 제 8경계값은 MCU의 처리 속도에 따라 변경되는 변수로, 실험치에 의해 설정되는 것을 특징으로 한다.
상기 (d)단계는 (d1) 상기 설정된 시작 시점 및 종료시점 오버플로 카운트 값을 하기 수학식 1 및 2에 대입하여 시작 시점 및 종료 시점을 산출하는 단계와 (d2) 상기 산출된 시작 시점 및 종료 시점을 하기 수학식 3에 대입하여 상기 PWM 펄스의 주기를 산출하는 단계를 포함하는 것을 특징으로 한다.
Figure 112010012814461-pat00004
...................................[수학식 1]
Figure 112010012814461-pat00005
....................................[수학식 2]
Figure 112010012814461-pat00006
....................................[수학식 3]
상술한 바와 같이, 본 발명은 MCU에 구비된 카운터 또는 타이머를 사용하여 가용범위를 초과하는 주기를 갖는 PWM 펄스의 주기 및 듀티를 정밀하게 측정할 수 있다.
그리고 본 발명은 PWM 펄스의 주기 및 듀티를 허용되는 최대 해상도로 측정할 수 있다.
이에 따라, 본 발명은 다양한 종류의 타이머 및 카운터를 구비하지 않은 저사양의 MCU에 적용될 수 있어 주변장치의 제약사항 때문에 고사양의 MCU를 사용해야만 하는 문제점을 해결하여 제품 제작시 제작비용을 절감할 수 있는 효과가 있다.
도 1은 일반적인 MCU에서 타이머와 연관된 다수의 인터럽트가 발생하는 상태를 예시하는 예시도.
도 2는 본 발명의 바람직한 실시 예에 따른 PWM 펄스의 듀티 측정방법을 설명하는 흐름도.
도 3은 본 발명의 바람직한 실시 예에 따른 PWM 펄스의 주기 측정방법을 설명하는 흐름도.
이하 본 발명의 바람직한 실시 예에 따른 PWM 펄스의 주기 및 듀티 측정방법을 첨부된 도면을 참조하여 상세하게 설명한다.
도 2는 본 발명의 바람직한 실시 예에 따른 PWM 펄스의 듀티 측정방법을 설명하는 흐름도이고, 도 3은 본 발명의 바람직한 실시 예에 따른 PWM 펄스의 주기 측정방법을 설명하는 흐름도이다.
먼저, 본 발명의 바람직한 실시 예에 따른 PWM 펄스의 주기 및 듀티 측정방법에서 사용되는 용어를 설명한다.
입력 캡처 인터럽트(Input Capture Interrupt)는 PWM 펄스의 상승 및 하강 에지(Edge)를 감지하고, 에지가 발생된 시점의 타이머 값을 읽기 위해 사용된다.
오버플로 인터럽트는 카운터의 오버플로를 감지하고, 오버플로 감지시 오버플로 카운터 값(overflow-counter)을 증가시켜 카운터의 가용범위를 확장하기 위해 사용된다.
그리고 타이머 인터럽트 발생시 오버플로와 입력 캡처 플래그(flag)가 동시에 발생한 것으로 설정(set)되는 경우, 입력 캡처 시 저장된 카운터 값을 이용해 어떤 인터럽트가 먼저 발생한 것인지를 판단한 후, 오버플로 카운터 값의 증가 여부와 초기화 설정값을 결정한다.
다음, 도 2를 참조하여 본 발명의 바람직한 실시 예에 따른 PWM 펄스의 듀티 측정방법을 상세하게 설명한다.
도 2에 도시된 바와 같이, 본 발명의 바람직한 실시 예에 따른 PWM 펄스의 듀티 측정방법에서 MCU에 구비되는 카운터 또는 타이머(이하, '카운터'로 칭함)는 일정한 가용 범위, 예컨대 8bit를 가진다.
그래서 MCU에서 8bit의 가용범위를 갖는 카운터와 연관된 카운터 인터럽트가 발생한 후(S10), 오버플로와 입력 캡처가 발생하면(S11), MCU는 카운터의 가용범위를 초과하는 주기, 예컨대 16bit의 주기를 갖는 PWM 펄스의 상승 에지 및 하강 에지를 검사한다(S12).
검사 결과, PWM 펄스의 상승 에지인 경우, MCU는 입력 캡처 시 저장된 카운터 값과 미리 설정된 경계값들을 서로 비교한다(13).
표 1은 본 발명의 바람직한 실시 예에 따른 PWM 펄스의 듀티 측정방법을 설명하기 위한 입력 캡처와 오버플로의 발생순서를 예측한 결과에 따른 시작 시점 및 종료 시점을 예시한 테이블이다.
구분 경계 값을 이용한
인터럽트 발생 순서 예측
Start time과 end time
input capture overflow
rising - Start_time_overflow_counter = 1
- Start_time_overflow_counter = 0
falling - End_time_overflow_counter 그대로 유지
- End_time_overflow_counter를 증가
즉, 표 1에 도시된 바와 같이, MCU는 입력 캡처 시에 저장된 카운터의 값을 읽어 미리 설정된 경계값들과 비교한 결과에 따라 입력 캡처와 오버플로가 발생하는 순서를 예측한다.
만약, 카운터 값이 제 1경계값보다 큰 경우(S14), MCU는 입력 캡쳐, 오버플로 순으로 발생할 것으로 예측하여 예측 순서를 ①,②로 설정하고(S15), 시작시점 오버플로 카운터 값(Start_time_overflow_counter)을 '1'로 설정한다(S16).
이때, 제 1경계값은 입력 캡처 후 오버플로 발생 가능성 값으로 설정된다.
반면, 카운터 값이 제 2경계값보다 작은 경우(S17), MCU는 오버플로, 입력 캡처 순으로 발생할 것으로 예측하여 예측 순서를 ②,①로 설정하고(S18), 시작시점 오버플로 카운터 값(Start_time_overflow_counter)을 '0'으로 설정한다(S19).
이때, 제 2경계값은 오버플로 발생 후 입력 캡처가 발생할 가능성 값으로 설정된다.
한편, 상기 S12단계에서 PWM 펄스의 하강 에지에서 카운터 값이 제 3경계값보다 작은 경우, MCU는 입력 캡처, 오버플로 순으로 발생한 것으로 예측하여 예측 순서를 ①,②로 설정하고, 종료시점 오버플로 카운터 값(End_time_overflow_counter)을 1만큼 증가시킨다(S21).
이때, 제 3경계값은 입력 캡처 후 오버플로 발생 가능성 값으로 설정된다.
반면, 하강에서 카운터 값이 미리 설정된 제 4경계값보다 큰 경우, MCU는 오버플로, 입력 캡처 순으로 발생한 것으로 예측하여 예측 순서를 ②,①로 설정하고, 종료시점 오버플로 카운터 값(End_time_overflow_counter)을 증가시키지 않고 원래의 값을 유지한다.
이때, 제 4경계값은 오버플로 발생 후 입력 캡처가 발생할 가능성 값으로 설정된다.
이와 같이, 입력 캡처시 저장된 카운터 값과 비교하는 제 1, 제 2, 제 3 및 제 4경계값은 MCU의 처리 속도에 따라 변경될 수 있는 값이므로, 실험치에 의해 설정되는 것이 바람직하다.
상기 S16단계, S19단계 및 S21단계를 수행한 결과를 이용하여 S22단계에서 MCU는 다음의 수학식 1 및 수학식 2에 의해 시작 시점 및 종료 시점을 산출한다.
Figure 112010012814461-pat00007
Figure 112010012814461-pat00008
이어서, MCU는 다음의 수학식 3에 의해 PWM 펄스의 듀티를 산출한다(S23).
Figure 112010012814461-pat00009
이에 따라, 본 발명은 입력 캡처 발생 시 저장된 카운터 값을 경계값들과 비교한 결과에 따라 입력 캡처와 오버플로의 발생순서를 예측하고, 예측된 순서에 따라 시작 시점 및 종료 시점의 오버플로 카운터 값을 설정하여 PWM 펄스의 듀티를 정확하게 측정할 수 있다.
다음, 도 3을 참조하여 본 발명의 바람직한 실시 예에 따른 PWM 펄스의 주기 측정방법을 상세하게 설명한다.
본 발명의 바람직한 실시 예에 따른 PWM 펄스의 주기 측정방법은 오버플로와 입력 캡처가 동시에 발생하면(S30), MCU는 주기의 정확한 측정을 위해 오버플로와 입력 캡처의 발생순서에 따라 시작 시점과 종료시점의 오버플로 카운터 값을 정의한다.
PWM 펄스의 주기 측정방법은 상기의 PWM 펄스의 듀티 측정방법과 달리, PWM 펄스의 상승 시점만을 검사하고(S31), 검사된 상승시점을 시작 시점과 종료 시점으로 설정해서 산출된다.
상승 시점시 시작 시점과 종료 시점을 구분하기 위해 상승 카운터 값(rising counter)을 증가시켜(S32) 두 번의 상승 시점을 검사한다.
즉, MCU는 상승 카운터 값이 2가 될 때까지(S33) 상승 시점 검사를 수행하고, 첫 번째 상승 시점을 시작 시점으로 정의하고, 두 번째 상승 시점을 종료 시점으로 정의한다.
이때, 시작 시점은 종료 시점보다 작은 시간값으로 설정되어야만 하므로, 첫 번째 상승 시점과 두 번째 상승 시점을 비교하여 작은 시간값을 갖는 상승 시점을 시작 시점으로 설정하도록 변경될 수도 있다.
이어서 S34단계에서 MCU는 입력 캡처시 저장된 카운터 값과 미리 설정된 경계값을 비교한다.
표 2는 본 발명의 바람직한 실시 예에 따른 PWM 펄스의 주기 측정방법을 설명하기 위해 입력 캡처와 오버플로의 발생순서를 예측한 결과에 따른 시작 시점 및 종료 시점을 예시한 테이블이다.
구분 경계 값을 이용한
인터럽트 발생 순서 예측
Start_time과 end time
input capture overflow
rising
r_counter==1
- Start_time_overflow_counter = 1
- Start_time_overflow_counter = 0
rising
r_counter==2
- End_time_overflow_counter를 그대로 유지
- End_time_overflow_counter를 증가
즉, 표 2에 도시된 바와 같이, MCU는 입력 캡처 시에 저장된 카운터 값을 읽어 미리 설정된 경계값들과 비교한 결과에 따라 입력 캡처와 오버플로가 발생하는 순서를 예측한다.
카운터 값이 제 5경계값보다 큰 경우(S35), MCU는 입력 캡쳐, 오버플로 순으로 발생한 것으로 예측하여 예측 순서를 ①,②로 설정하고(S36), 종료시점 오버플로 카운터 값을 증가시키지 않고 원래의 값을 그대로 유지한다(S37).
이때, 제 5경계값은 입력 캡처 후 오버플로 발생 가능성 값으로 설정된다.
반면, 카운터 값이 제 6경계값보다 작은 경우(S38), MCU는 오버플로, 입력 캡처 순으로 발생한 것으로 예측하여 예측 순서를 ②,①로 설정하고, 종료 시점 오버플로 카운터 값(End_time_overflow_counter)을 1만큼 증가시킨다.
이때, 제 6경계값은 오버플로 발생 후 입력 캡처가 발생할 가능성 값으로 설정된다.
S34단계에서 입력 캡처시 저장된 카운터 값과 비교하는 제 5 및 제 6경계값은 MCU의 처리 속도에 따라 변경될 수 있는 값이므로, 실험치에 의해 설정되는 것이 바람직하다.
한편, S32단계에서 상승 카운터 값이 1인 경우, 표 2와 같이 입력 캡처시 저장된 카운터 값과 제 7 및 제 8경계값을 비교한 결과 따라 입력 캡처와 오버플로의 발생 순서를 예측하고, 예측한 결과에 따라 시작 시점 오버플로 카운터 값(Start_time_overflow_counter)을 '1' 또는 '0'으로 초기화해서 설정할 수도 있다.
예를 들어, MCU는 상기 비교결과, 상기 저장된 카운터 값이 제 7경계값보다 큰 경우, 입력 캡처, 오버플로 순으로 발생순서를 예측하여 시작 시점 오버플로 카운터 값을 '1'로 설정한다.
그리고 상기 비교결과, 상기 저장된 카운터 값이 제 8경계값보다 작은 경우, 오버플로, 입력 캡처 순으로 발생 순서를 예측하여 시작 시점 오버플로 카운터 값을 '0'으로 설정한다.
이때, 제 7경계값은 입력 캡처 후 오버플로 발생 가능성 값으로 설정되고, 제 8경계값은 오버플로 발생 후 입력 캡처가 발생할 가능성 값으로 설정되는 것이 바람직하다.
상기 S37단계 또는 S40단계를 수행한 결과를 이용하여 S41단계에서 MCU는 다음의 수학식 4 및 수학식 5에 의해 시작 시점 및 종료 시점을 산출한다.
Figure 112010012814461-pat00010
Figure 112010012814461-pat00011
이어서, MCU는 다음의 수학식 6에 의해 PWM 펄스의 주기를 산출한다(S42).
Figure 112010012814461-pat00012
이에 따라, 본 발명은 입력 캡처 발생시 저장된 카운터 값과 경계값들을 비교한 결과에 따라 입력 캡처와 오버플로의 발생순서를 예측하고, 예측된 순서에 따라 시작 시점과 종료 시점의 오버플로 카운터 값을 설정하여 PWM 펄스의 주기를 정확하게 측정할 수 있다.
이와 함께, 본 발명은 PWM 펄스의 주기 측정을 완료한 후, 상승 카운터를 리셋하면 주기 측정을 재수행할 수도 있다.
상기한 바와 같은 과정을 통하여, 본 발명은 MCU에 가용 카운터 또는 타이머를 사용하여 가용범위를 초과하는 주기를 갖는 PWM 펄스의 주기 및 듀티를 정밀하게 측정할 수 있다.
본 발명의 권리범위는 위에서 설명된 실시 예에 한정되지 않고 청구범위에 기재된 바에 의해 정의되며, 본 발명의 기술분야에서 통상의 지식을 가진 자가 청구범위에 기재된 권리범위 내에서 다양한 변형과 개작을 할 수 있다는 것은 자명하다.
본 발명은 다양한 종류의 타이머 및 카운터를 구비하지 않은 저사양의 MCU를 이용해 고사양의 MCU를 대신하여 MCU에 구비된 타이머 또는 카운터의 가용범위를 초과하는 주기를 갖는 PWM 펄스의 주기 및 듀티를 측정하도록 이용된다.

Claims (10)

  1. (a) 오버플로 인터럽트와 입력 캡처 인터럽트가 발생하는 단계,
    (b) PWM 펄스의 상승 에지에서 상기 입력 캡처 발생시 저장된 카운터 값과 제 1 및 제 2경계값을 비교한 결과에 기초하여 입력 캡처 및 오버플로의 발생 순서를 예측하는 단계,
    (c) 상기 예측된 순서에 따라 입력 캡처 및 오버플로의 순서를 설정하고, 설정된 순서에 따라 시작 시점 오버플로 카운터 값을 설정하는 단계,
    (d) 상기 PWM 펄스의 하강 에지에서 상기 저장된 카운터 값과 제 3 및 제 4경계값을 비교한 결과에 기초하여 종료 시점 오버플로 카운터 값을 설정하는 단계 및
    (e) 상기 설정된 시작 시점 및 종료 시점 오버플로 카운트 값을 이용하여 시작시점 및 종료시점을 산출하여 상기 PWM 펄스의 듀티를 산출하는 단계를 포함하는 것을 특징으로 하는 PWM 펄스의 듀티 측정방법.
  2. 제 1항에 있어서, 상기 (b)단계는
    (b1) 상기 저장된 카운터 값이 상기 제 1경계값보다 큰 경우, 입력 캡처, 오버플로 순으로 발생 순서를 예측하여 상기 시작 시점 오버플로 카운터 값을 1로 설정하는 단계와
    (b2) 상기 저장된 카운터 값이 상기 제 2경계값보다 작은 경우, 오버플로, 입력 캡처 순으로 발생 순서를 예측하여 상기 시작 시점 오버플로 카운터 값을 0으로 설정하는 단계를 포함하고,
    상기 제 1경계값은 입력 캡처 후 오버플로 발생 가능성 값으로 설정되고,
    상기 제 2경계값은 오버플로 발생 후 입력 캡처가 발생할 가능성 값으로 설정되는 것을 특징으로 하는 PWM 펄스의 듀티 측정방법.
  3. 제 2항에 있어서, 상기 (d)단계는
    (d1) 상기 저장된 카운터 값이 상기 제 3경계값보다 작은 경우, 입력 캡처, 오버플로 순으로 발생 순서를 예측하여 상기 종료 시점 오버플로 카운터 값을 증가시키는 단계와
    (d2) 상기 저장된 카운터 값이 상기 제 4경계값보다 큰 경우, 오버플로, 입력 캡처 순으로 발생 순서를 예측하여 상기 종료 시점 오버플로 카운터 값을 그대로 유지하는 단계를 포함하고,
    상기 제 3경계값은 입력 캡처 후 오버플로 발생 가능성 값으로 설정되고,
    상기 제 4경계값은 오버플로 발생 후 입력 캡처가 발생할 가능성 값으로 설정되는 것을 특징으로 하는 PWM 펄스의 듀티 측정방법.
  4. 제 3항에 있어서, 상기 제 1 내지 제 4경계값은
    MCU의 처리 속도에 따라 변경되는 변수로, 실험치에 의해 설정되는 것을 특징으로 하는 PWM 펄스의 듀티 측정방법.
  5. 제 1항 내지 제 4항 중 어느 한 항에 있어서, 상기 (e)단계는
    (e1) 상기 설정된 시작 시점 및 종료시점 오버플로 카운트 값을 하기 수학식 1 및 2에 대입하여 시작 시점 및 종료 시점을 산출하는 단계와
    (e2) 상기 산출된 시작 시점 및 종료 시점을 하기 수학식 3에 대입하여 상기 PWM 펄스의 듀티를 산출하는 단계를 포함하는 것을 특징으로 하는 PWM 펄스의 듀티 측정방법.
    Figure 112010012814461-pat00013
    ................................[수학식 1]
    Figure 112010012814461-pat00014
    ................................[수학식 2]
    Figure 112010012814461-pat00015
    ................................[수학식 3]
  6. (a) 오버플로 인터럽트와 입력 캡처 인터럽트가 동시에 발생하는 단계,
    (b) PWM 펄스의 상승 에지를 검사하여 상승 시점에서 상승 카운터 값을 증가시키는 단계,
    (c) 상기 상승 카운터 값이 2가 되면, 상기 입력 캡처시 저장된 카운터 값과 제 5 및 제 6경계값을 비교한 결과에 기초하여 입력 캡처 및 오버플로의 발생순서를 예측하는 단계,
    (d) 상기 예측된 순서에 기초하여 입력 캡처 및 오버플로의 순서를 설정하고, 설정된 순서에 기초하여 종료 시점 오버플로 카운터 값을 설정하는 단계 및
    (e) 상기 설정된 종료 시점 오버플로 카운터 값을 이용하여 상승 시점 및 종료 시점을 산출하여 상기 PWM 펄스의 주기를 산출하는 단계를 포함하는 것을 특징으로 하는 PWM 펄스의 주기 측정방법.
  7. 제 6항에 있어서, 상기 (a)단계는
    (a1) 상기 저장된 카운터 값이 제 5경계값보다 큰 경우, 입력 캡처, 오버플로 순으로 발생 순서를 예측하는 단계와
    (a2) 상기 저장된 카운터 값이 제 6경계값보다 작은 경우, 오버플로, 입력 캡처 순으로 발생 순서를 예측하는 단계를 포함하고,
    상기 제 5경계값은 입력 캡처 후 오버플로 발생 가능성 값으로 설정되고,
    상기 제 6경계값은 오버플로 발생 후 입력 캡처가 발생할 가능성 값으로 설정되는 것을 특징으로 하는 PWM 펄스의 주기 측정방법.
  8. 제 7항에 있어서, 상기 (b)단계는
    (b1) 상기 상승 카운터가 1인 경우, 상기 저장된 카운터 값을 제 7 및 제 8경계값과 비교하는 단계,
    (b2) 상기 (b1)단계의 비교결과, 상기 저장된 카운터 값이 제 7경계값보다 큰 경우, 입력 캡처, 오버플로 순으로 발생순서를 예측하여 시작 시점 오버플로 카운터 값을 1로 설정하는 단계 및
    (b3) 상기 (b1)단계의 비교결과, 상기 저장된 카운터 값이 제 8경계값보다 작은 경우, 오버플로, 입력 캡처 순으로 발생 순서를 예측하여 시작 시점 오버플로 카운터 값을 0으로 설정하는 단계를 포함하고,
    상기 제 7경계값은 입력 캡처 후 오버플로 발생 가능성 값으로 설정되고,
    상기 제 8경계값은 오버플로 발생 후 입력 캡처가 발생할 가능성 값으로 설정되는 것을 는 것을 특징으로 하는 PWM 펄스의 주기 측정방법.
  9. 제 8항에 있어서, 상기 제 5 내지 제 8경계값은
    MCU의 처리 속도에 따라 변경되는 변수로, 실험치에 의해 설정되는 것을 특징으로 하는 PWM 펄스의 주기 측정방법.
  10. 제 8항 또는 제 9항에 있어서, 상기 (d)단계는
    (d1) 상기 설정된 시작 시점 및 종료시점 오버플로 카운트 값을 하기 수학식 1 및 2에 대입하여 시작 시점 및 종료 시점을 산출하는 단계와
    (d2) 상기 산출된 시작 시점 및 종료 시점을 하기 수학식 3에 대입하여 상기 PWM 펄스의 주기를 산출하는 단계를 포함하는 것을 특징으로 하는 PWM 펄스의 주기 측정방법.
    Figure 112010012814461-pat00016
    ...................................[수학식 1]
    Figure 112010012814461-pat00017
    ...................................[수학식 2]
    Figure 112010012814461-pat00018
    ...................................[수학식 3]
KR1020100017843A 2010-02-26 2010-02-26 Pwm 펄스의 주기 및 듀티 측정방법 KR101094883B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100017843A KR101094883B1 (ko) 2010-02-26 2010-02-26 Pwm 펄스의 주기 및 듀티 측정방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100017843A KR101094883B1 (ko) 2010-02-26 2010-02-26 Pwm 펄스의 주기 및 듀티 측정방법

Publications (2)

Publication Number Publication Date
KR20110098291A KR20110098291A (ko) 2011-09-01
KR101094883B1 true KR101094883B1 (ko) 2011-12-15

Family

ID=44951867

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100017843A KR101094883B1 (ko) 2010-02-26 2010-02-26 Pwm 펄스의 주기 및 듀티 측정방법

Country Status (1)

Country Link
KR (1) KR101094883B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104698286B (zh) * 2014-07-24 2017-10-03 北京航空航天大学 一种基于定时器的pwm波采集方法
CN112242828A (zh) * 2020-09-11 2021-01-19 深圳市杉川机器人有限公司 一种脉冲宽度调制信号的捕获方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6313415B1 (en) 1999-12-30 2001-11-06 Pitney Bowes Inc. Pulse width modulated weighing platform
US20030156636A1 (en) 2002-02-15 2003-08-21 Klemish Melissa Marie Generation of multiple independent high resolution pulse width modulations
JP2003348852A (ja) 2002-05-24 2003-12-05 Canon Inc Pwmの制御機構

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6313415B1 (en) 1999-12-30 2001-11-06 Pitney Bowes Inc. Pulse width modulated weighing platform
US20030156636A1 (en) 2002-02-15 2003-08-21 Klemish Melissa Marie Generation of multiple independent high resolution pulse width modulations
JP2003348852A (ja) 2002-05-24 2003-12-05 Canon Inc Pwmの制御機構

Also Published As

Publication number Publication date
KR20110098291A (ko) 2011-09-01

Similar Documents

Publication Publication Date Title
KR101302762B1 (ko) 전동기 제어 장치의 제어 방법
CN104360144B (zh) 确定交流信号过零点的方法及系统
CN105021972B (zh) 老化侦测电路及其方法
US8422340B2 (en) Methods for determining the frequency or period of a signal
WO2017206545A1 (zh) 电容值校准装置、方法和触摸显示设备
CN101063895A (zh) 时钟异常检测电路和时钟异常检测方法
KR101094883B1 (ko) Pwm 펄스의 주기 및 듀티 측정방법
CN103383566B (zh) 一种程序流监控方法
US9964928B2 (en) Time measuring circuit
US20200351999A1 (en) Apparatus and method for monitoring a circuit
JP2014163921A (ja) 充放電試験システム、及び制御装置
WO2014057850A1 (ja) エンジンの制御装置および制御方法
JP2007026028A (ja) マイクロコンピュータの異常検出装置
US10303204B2 (en) Clock diagnostic apparatus, clock diagnostic method, and computer readable medium
JP6996444B2 (ja) 電力変換装置及びフリッカ検出方法
CN113933601A (zh) 脉宽调制信号采集方法、装置、计算机设备及存储介质
JP2015075019A (ja) エンジン制御装置
CN109189623B (zh) 一种cpu的测试方法、装置及电子设备
US10099370B2 (en) Driver device for electric gripper and driving method thereof
CN110799854B (zh) 光测距装置
CN105930150B (zh) 一种基于时间排序确定资源数量的方法和系统
JP2021039685A (ja) 異常検出装置および異常検出方法
CN205427009U (zh) 一种高效率检测信号的示波器
CN113030567B (zh) 一种基于单片机的测频方法及装置
US9112500B2 (en) Method of outputting positioning pulse by PLC

Legal Events

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

Payment date: 20141208

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151204

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee