초음파를 이용한 거리 측정은 내장된 비교기를 포함해 4개의 사용 가능한 I/O 핀이 있는 마이크로컨트롤러와 연산 증폭기에 초음파 디바이스를 추가해 실행할 수 있다.

이에 대한 동작 원리를 알아보기 위해 단일 40㎑ 펄스 또는 동일 주파수로 발진하는 기능이 있는 초음파 송신기를 살펴보고자 한다.

마이크로컨트롤러로부터 한 파장에서 여러 파장 길이의 구형파를 초음파 디바이스로 구동시켜 펄스를 발생시킬 수 있다. 이 펄스는 공기보다 밀도가 큰 물체에 의해 반사되고 그 방사된 펄스의 일부가 수신기로 되돌아온다. 신호가 왕복하는데 걸리는 시간을 측정하고 음속을 통해 거리로 변환할 수 있다.

 소리가 전파되려면 공기, 물, 철과 같은 매질이 필요하다. 대체로 매질의 밀도가 높을수록 소리가 더 빠르게 전파된다. 공기 중에서 음속은 온도, 습도, 고도에 따라 달라진다. 실온에서 음속은 약 343m/s 속도로 일정하다고 가정한다. 이는 방사된 펄스가 수 미터에 걸쳐 왕복 이동하는 데 걸리는 시간을 마이크로컨트롤러를 사용하여 측정하기에 이상적인 속도다.

반사 표면의 종류는 중요하지 않다. 거의 모든 표면들이 40㎑에서는 도달하는 음파를 반사한다. 굴절된 펄스가 수신기를 향해 되돌아가기 때문에 음파는 표면과 직각으로 접촉하는 것이 바람직하다. 표면과의 입사각이 클수록 반사돼 수신기로 되돌아오는 펄스의 비율이 감소한다.

초음파 변환기는 피에조 부저(piezo buzzer)와 유사한 방식을 보이지만 더 높은 비가청 주파수에서 동작한다. 전류가 압전 디바이스를 통과하면 변형되거나 구부러지고 전류가 제거되면 원래의 형태로 돌아온다.

40㎑ 구형파가 디바이스의 핀에 인가되면 40㎑ 펄스가 방사된다. 초음파 수신기는 이와 반대로 동작 시에 전압을 발생시키지만 수신되는 초음파로부터 훨씬 낮은 진폭으로 전압을 생성한다.

초음파 디바이스는 송신기, 수신기 또는 둘다 될 수 있으며 개방형 또는 폐쇄형 방수 케이스로 제공된다. 본 데모에서는 개별 수신 및 송신 개방형 디바이스를 사용한다. 방수 송신기를 사용하려면 더 큰 구동 전압이 필요하기 때문에 이 유형이 가장 사용하기 쉽다.

[그림1]은 초음파 디바이스의 등가 회로를 보여준다. 디바이스는 용량성 부하로 동작하지만 유도성 및 용량성 측면으로 인해 40㎑ 공진 주파수로 튜닝된다. 송신기는 최대 출력으로 튜닝되는 반면 수신기는 수신되는 40㎑ 신호에서 최대 출력 전압으로 튜닝된다. 이러한 튜닝은 모든 다른 주파수에 대해 감쇠 필터링 효과를 가지므로 수신된 신호의 증폭시 잡음을 제거하는 데 유용하다. 데모에 사용된 일반적인 값은 [그림1] 아래에 나와 있다.

[그림1] 초음파 디바이스의 등가 회로도

초음파 디바이스의 구동

차동 신호를 갖는 용량성 초음파 송신기를 구동하면 디바이스에서 0.0V 오프셋을 유지하면서 송신 강도를 극대화할 수 있다. 또 핀을 차동 방식으로 구동하므로 디바이스 구동을 위해 네거티브 전압을 사용할 필요가 없다.

초음파 변환기는 구동 신호가 제거된 후 발진 또는 링잉(ringing)이 계속 발생하는 문제가 있다. 이러한 링잉은 변환기의 공진 역학적 특성에 기인한다.

변환기는 구동시 지정된 초음파 주파수에서 종소리 같은 링잉을 발생시키도록 튜닝되며 구동 신호가 제거된 후 링잉을 감쇠시키는 데 짧은 시간 주기가 소요된다.

송신기에서 링잉이 발생하는 동안 신호는 PCB를 통해 결합하거나 송신기와 수신기 사이에서 공중을 이동하므로 마치 수신된 신호처럼 보인다. 따라서 링잉을 완전히 감쇠시키기 위해서는 수신기가 켜지기 전에 지연이 필요하며 이때 수신된 모든 신호는 반사된 펄스가 된다.

링잉을 감쇠시키는 데 필요한 시간 크기에 의해 수신기의 최소 검출 가능한 거리가 결정된다.
출력 전력을 증가시키려면 초음파 디바이스를 지정된 주파수에 가능한 가깝게 구동해야 한다.
예를 들어 마이크로칩의 PIC16F690 마이크로컨트롤러의 8㎒ 내부 오실레이터는 간단히 하향 분주해 40㎑ 구동 신호를 발생시킬 수 있다.

[그림2] 초음파 디바이스

PIC 마이크로컨트롤러의 I/O 핀 2개를 사용하면 초음파 송신기를 구동하는 차동 40㎑ 신호를 발생시킬 수 있다. 이 데모는 타이머0(Timer0) 오버플로우시 인터럽트(interrupt-on-overflow)를 사용해 출력을 위한 시간 기준을 생성한다.

초음파 디바이스를 구동하는 보다 자동화된 방법으로는 여러 PIC MCU에서 제공되는 ECCP 모듈을 사용하는 방법이 있다. 이 모듈은 2개 핀(P1A 및 P1B)에서 하프 브리지 모드로 1개 출력을 반전시켜 선택한 주파수의 PWM을 출력하도록 구성할 수 있다. ECCP 모듈은 타이머2(Timer)2를 사용해 PWM을 위한 시간 기준을 설정한다.

타이머2(Timer2) 포스트스케일러를 설정하면 인터럽트 플래그를 설정하기 전에 발생되는 펄스의 수를 사용자가 조절할 수 있다. 이를 통해 단일 인터럽트로 초음파 펄스를 송신할 수 있다.

초음파 신호를 생성해 초음파 송신기로부터 출력하면 다음 단계에서는 반사돼 돌아오는 펄스를 검출하고 시간을 측정한다. 되돌아오는 음파는 상당히 감쇠되므로 비교기가 신호를 검출하기 전에 증폭이 필요하다. 차동 증폭기 구성에서 이러한 증폭은 단일 연산 증폭기에 의해 이뤄진다.

차동 증폭기

차동 증폭기의 예제 회로는 [그림3]과 같다. 이 연산 증폭기 회로는 2개의 입력 핀 사이에 연결된 초음파 수신기를 가로지르는 전압을 증폭시킨다. 출력에 존재하는 공통 모드 잡음은 저항 R2 및 R4와 저항 R1 및 R3을 통과하는 입력 바이어스 전류를 정합시킴으로써 감소된다.

[그림3] 차동 증폭기 회로

초음파 수신기는 튜닝된 하이Q(high Q) 필터처럼 동작하며, 차동 연산 증폭기는 수신기의 필터링 효과를 증폭시킨다. 첫 번째 연산 증폭기는 공통 모드 잡음에 대해 수신 신호를 증폭하고 필터링하고 이후의 모든 연산 증폭기 단에서 잡음이 증폭되므로 추가적인 필터가 필요하다. 초음파 수신기의 첫 번째 게인 단에 맞는 연산 증폭기를 선택하면 연산 증폭기와 필터를 두 개 이상 사용할 필요가 없다.

이 데모는 10MHz의 단위 게인 대역폭(UGBW)을 갖는 마이크로칩의 MCP6022 연산 증폭기를 사용한다. 더 높은 UGBW는 연산 증폭기의 게인이 지정된 주파수(40㎑ 등)에서 더 높다는 것을 의미한다. 데모 회로는 게인이 UGBW에 의해 제한되고 R1/R2에 의해 기술되지 않으므로 40㎑에서 250~300의 게인을 갖는다.

데이터 슬라이서(data slicer)는 여러 통신 애플리케이션에 일반적으로 사용되는 회로로서 임계 전압 V_th를 증폭된 입력과 비교해 신호를 검출한다. [그림4]의 V_th는 증폭된 초음파 신호 V_US의 평균 값보다 약간 낮게 설정돼 있다.

[그림4] 데이터 슬라이서

초음파 펄스가 증폭될 때마다 C2IN핀의 값이 C2IN+의 값 아래로 떨어지므로 비교기의 값이 스위칭된다. R2의 값은 R1의 값보다 훨씬 커야 하지만 증폭된 신호에 존재하는 잡음으로 인해 비교기가 스위칭할 정도로 커서는 안 된다.

이상적으로 R1은 임계 전압의 값이 수신된 초음파 신호의 잡음보다 약간 높도록 설정한다. 임계 전압이 수신된 신호에 가까울수록 수신기의 검출 가능한 거리가 증가한다.

PIC 마이크로컨트롤러의 C2OUT 핀은 초음파 수신기의 이러한 단을 디버깅하는 데 사용할 수 있다. 일반적인 문제는 임계 전압을 부적절하게 설정하는 데 있다. 이 값이 너무 낮으면 수신기의 검출 가능한 거리가 제한되고, 또 너무 높으면 비교기가 잡음 스파이크로부터 곧바로 스위칭하므로 신호가 언제 존재하는지 알 수 없다.

타이머1(Timer1) 게이트 기능은 16비트 타이머1 카운터에 클록 신호를 위한 인에이블 신호를 제공한다. 비교기의 출력 C2OUT는 타이머1 게이트에 대한 내부 소스로 선택할 수 있다.
C2OUT 신호가 로우(low) 상태인 동안 카운팅이 작동된다. 초음파 신호가 검출되고 C2OUT 값이 변하면 카운팅이 정지한다. 타이머1 레지스터에 저장된 값은 초음파 신호의 카운트 형식으로서 왕복 이동 시간을 의미한다. 디바이스의 오실레이터 속도에 따라 이 카운트는 특정 시간 값을 갖는다.

되돌아오는 초음파 펄스를 검출한 후 타이머1은 초음파 펄스의 이동 시간에 해당하는 카운트 값을 저장한다. 이 카운트를 2로 나누고 음속으로 곱하면 거리로 변환할 수 있다. 2로 나누는 것은 이것이 왕복 이동에 소요된 시간이기 때문이며 카운트 값을 오른쪽으로 1비트 이동해 달성할 수 있다.

캐리어 주파수의 파장은 시스템의 분해능을 결정한다. 40㎑ 주파수는 약 0.85㎝의 파장을 갖는다. 더 높은 캐리어 주파수로 이동하면 분해능이 증가하지만 지향성이 좁아지고 거리가 감소한다. 분해능은 또한 왕복 펄스의 시간을 측정하는 데 사용되는 오실레이터의 정확도와 더 많이 적용된 필터를 통과하는 신호에서의 지연에 의한 영향을 받을 수 있다.

모든 요소를 고려했을 때 40㎑에서 동작하는 초음파 시스템의 분해능은 약 1㎝가 될 수 있으며 거리가 아니라 오직 검출되는 왕복 펄스에 따라 좌우된다.

이 애플리케이션에서 최대 검출 가능한 거리를 증가시키는 두 가지 방법은 송신 전력을 증가시키는 것과 수신기 감도를 증가시키는 것이다. 이 데모는 I/O 핀을 사용해 최대 20㎃ 및 5V에서 송신기를 구동하며 MOSFET 드라이버를 사용해 구동 전류와 전압을 증가시킬 수 있다. 비교기의 검출 대상은 40㎑에서의 수신기 게인에 의해 결정된다.

데모는 차동 증폭기로서 하나의 연산 증폭기만 사용한다. 하나의 게인 단만 존재하므로 필터링이 필요하지 않다. 다단(multi-stage) 리시버는 잡음을 감소시키기 위해 첫 번째 게인 단과 비교기 사이에 일부 필터링이 필요할 수 있다. 비교기에 대한 임계 전압을 신중하게 제어한다면 아무리 작은 왕복 펄스라도 확실하게 검출할 수 있다.

개별 송신기와 수신기를 사용할 경우 둘 다 동일한 방향으로 정렬해야 한다. 송신된 신호와 후속 링잉이 PCB를 통해 수신기 회로에 누설되지만 보드에서 디바이스 간 공간과 컷아웃을 늘리면 이러한 누설을 감소시킬 수 있다. 초음파 변환기는 주변 물질로부터 발생 및 주입되는 누설된 초음파 신호의 크기를 제한하기 위해 종종 고무나 실리콘을 사용해 장착된다.

결론

초음파를 이용한 거리 측정은 PIC16F690, MCP6022 연산 증폭기, MuRata MA40S4R/S 초음파 디바이스를 사용해 구현할 수 있다. PIC 마이크로컨트롤러의 2개의 포트 핀은 초음파 펄스를 송신하기에 충분한 구동 강도를 제공한다. 40㎑ 신호를 생성하고 왕복 신호의 시간을 측정하기 위해 타이머0 과 타이머1이  사용됐다. MCP6022를 통해 수신기에서 신호를 증폭했으며 신호에서 왕복 펄스의 존재를 검출하기 위해서는 PIC16F690의 내부 아날로그 비교기가 사용됐다.

키스 커티스(Keith Curtis) 마이크로칩 MCU8 사업부 기술 담당 엔지니어
자료제공 : 마이크로칩테크놀로지(www.microchip.com)

이 기사를 공유합니다
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지