2.2 하드웨어 구성
본 연구에서는 계측 및 디지털 필터를 적용하기 위해 피에조 센서와 부동소수점 연산 유닛이 포함된 마이크로컨트롤러, 디지털 가변저항, 아날로그-디지털
변환기 및 아날로그 증폭 및 필터 회로를 구성해야 한다.
그림. 3. 구성된 하드웨어 PCB
Fig. 3. Hardware PCB
2.2.1 피에조 세라믹
압전 세라믹 소자는 기계적 에너지가 전기적 에너지로 변환되는 특성을 갖고 있다. 압전 소자에 외부 응력, 진동 변위 등을 가하면 전기적 에너지가 발생하는데,
이 현상을 압전 효과라고 일컫는다. 소자에서 발생하는 전기적 에너지가 미약하므로, 출력 임피던스를 낮추고 증폭하는 등, SNR을 개선하기 위한 부가
회로 및 알고리즘이 요구된다.
2.2.2 계측용 증폭기
계측용 증폭기는 차동 증폭기 앞단에 Voltage Follower를 추가한 것과 같다. 차동 증폭기만 적용한다면 Loading Effect 예방 차원에서
입력 임피던스를 높이고자 높은 저항을 사용해야 하고, 증폭용 저항값도 지나치게 높아질 수 있다. 저항의 열잡음은 저항값의 제곱근에 비례하고, 이 영향으로
증폭 회로가 불안정해질 수 있다.
따라서 양 앞 단에 Voltage Follower 회로를 추가해 이를 해결한 구조가 계측용 증폭기이다. 계측용 증폭기는 OP Amplifier 3개를
하나의 칩으로 패키징한 것으로 볼 수 있으며, Gain을 조정하는 저항 핀이 별도로 구성되어 있다. 따라서 데이터 시트에 제공된 저항 수식을 참고하여
증폭도 조절이 가능하다.
또한 계측용 증폭기를 단전원으로 운영할 경우 피에조 세라믹에서 발생하는 음의 신호가 손실되므로, 기저선을 잡아주는 Offset 회로가 별도로 필요하다.
사용하는 저항과 커패시터의 용량은 1차 High Pass Filter가 되어야 한다. 따라서 1uF의 커패시터와 2.2MΩ의 저항 소자를 사용해서
활성 신호가 손실되지 않도록 하였다.
2.2.3 디지털 가변 저항
사람마다 체형이 다르므로 증폭의 정도를 조절하여 적절한 신호를 취득해야 할 필요성이 있다. 연산 증폭기를 사용하여 신호를 증폭할 때 사용할 수 있는
선택지는 고정 저항, 아날로그 가변형 저항, 디지털 가변 저항으로 크게 세 가지가 있다. 이 중 마이크로컨트롤러에서 증폭 도를 제어하려면 3)의 선택지가
유력하다. 디지털 가변 저항의 경우 SPI, IC와 같은 프로토콜을 경유하여 마이크로 컨트롤러와 통신한다. 단, 계측 목적으로 사용해야 하므로, 디지털
가변 오차 1\% 이내, 1024 스탭의 가변저항 소자를 채택하였다.
2.2.4 시그마 델타 변조 ADC
시그마 델타 변조 ADC는 통상 사용하는 SAR 방식과 다르게 분해능이 좋고, SNR이 좋다는 장점이 있다. 시그마 델타 변조 ADC는 안에 적분기와
감가산기, 비교기가 내장되어 있고, 한 신호를 얻기 위해 오버 샘플링을 하여 양자화 잡음의 스펙트럼 강도를 낮게 걸치게 한 후, 디지털 저역통과 필터를
적용하여 SNR을 개선하는 구조로 되어있다.
신호가 입력되면 그 값이 적분기로 이동하고 그 값이 0 이상이면 ADC의 REF Voltage가 가산기로 이동하여 입력신호를 감산한다. 입력 데이터가
다시 적분기로 이동하여, 그 전의 데이터와 더하고, 그 값이 비교기로 이동하여 0보다 크거나 작은지 비교한다. 만약에 데이터가 0보다 작다면, 입력
신호에서 Ref Voltage를 더한다. 이 방식을 반복하여 입력 신호의 오차를 줄여나간다. 따라서 오버 샘플링의 정도가 크면 입력 신호의 오차의
정도가 매우 적어지게 되며, 이는 곧 SNR의 개선으로 이어진다.
2.2.5 Micro Controller Unit
본 연구에서는 Cortex M4 라인업의 MCU를 채택하였다. 해당 컨트롤러는 최대 100MHz로 구동할 수 있으며, SAR 방식의 ADC와 USART,
SPI통신이 가능하다. 따라서 높은 클록으로 인해 SD ADC의 원신호와 디지털 필터 처리 결과 비교 출력이 가능하다. 또한 SD ADC에서 사용
가능한 최대 클럭인 10MHz보다 훨씬 높은 50MHz의 SPI 통신 클럭을 지원한다. 또한 부동소수점 연산 유닛(FPU)가 탑재되어 있어 디지털
필터 처리가 가능하다.
본 연구에서는 신호 계측 주기가 정밀해야 하므로, 열 등의 외부 요인으로 클럭 변동이 생길 수 있는 내장 오실레이터 대신 외장 크리스털을 장착하였다.
또한 클록으로 인해 발생하는 잡음을 제거하기 위해 적절한 탄탈, 세라믹 커패시터를 장착하였으며, 입력 전압의 변동 혹은 출력의 부하에 따른 변동 폭이
적은 LDO(Low Dropout) 레귤레이터를 채택하였다. 그 이외에 증폭도를 조절할 수 있는 스위치, 디버깅 핀, 전원 LED, 시리얼 데이터
핀 등을 구성하여 Hardware Fault가 발생하더라도 수정이 용이하도록 회로도를 구성하였다.
그림. 4. MCU와 아날로그 회로 연결도
Fig. 4. MCU & Anlaog Circuit Interconnection Diagram
2.3 소프트웨어 구성
본 연구에서는 코드의 최적화를 위해 HAL 드라이버가 아닌 LL 드라이버를 사용하였다. 레지스터를 간접 제어하는 HAL 드라이버의 경우 편의성을 우선시하는
경향이 있어 코드의 양이 많고, 세세한 제어가 힘들어 최적의 성능을 끌어내기 힘든 단점이 존재한다. 따라서 LL(Low Layer) 드라이버를 채택하여
직접 레지스터를 제어하여 최적화하였다.
또한 유한 임펄스 응답 필터를 실시간으로 처리하기 위해 CMSIS-DSP 라이브러리를 추가로 도입하여 코드를 사용하였고, 데이터를 시리얼로 출력하고,
PC 혹은 이와 상응하는 기기를 사용하여 데이터를 도시하였다.
2.3.1 알고리즘 구현
마이크로컨트롤러에서 계측을 시도하기 전에, 디지털 가변저항과 시그마 델타 변조 ADC가 정상적으로 동작하는지 확인하고, 연구 목적에 맞게 동작을 하도록
기초 설정을 해준다. 그 후 Parks-McClellan 기법으로 설계한 FIR 필터의 계수를 도입하여 기초 설정을 해두어 실시간 데이터 처리가 가능하도록
한다.
그림. 5. 데이터 계측 알고리즘
Fig. 5. Algorithm of Data Measurement
피에조 센서에서 발생하는 전압은 매우 작다. 따라서 이를 증폭하기 위해서 아날로그 증폭 회로가 요구되며, 증폭도의 정도가 작다면 회로에 구성된 스위치를
경유하여 증폭도를 증가시킬 수 있다.
아날로그 회로를 경유하여 나온 신호를 시그마 델타 ADC에서 계측을 시도한다. 샘플링 주기는 16.7Hz이며, SPI 통신으로 칩의 Ready Bit가
Low가 되었을 때 데이터 계측을 시도하였다. High 상태가 유지되는 동안에는 Ready Bit가 Low가 될 때까지 준비한다.
데이터가 계측된 뒤에는 유한 임펄스 응답 함수에 해당 데이터를 입력하고 처리된 데이터가 출력되면, 원신호와 처리 결과를 시리얼 데이터를 경유하여 전송하고,
PC에서 데이터를 도시한다. 만약 도시한 데이터의 신호 세기가 부족하다면 증폭 스위치를 동작시켜 적절한 신호 세기가 나오도록 수정한다.
그림. 6. 도시화된 유한 임펄스 응답
Fig. 6. Description of Finite Impulse Response
2.4 유한 임펄스 응답
펌웨어에 유한 임펄스 입력 필터를 구현하기 위해서는 필터의 설계가 먼저 선행되어야한다. 디지털 필터를 구현하기 위해서는 신호 계측의 길이, 샘플링
주기, 필터 차수, 설계 기법 등을 알아야 하거나, 설정해야 한다.
N의 차수를 가지는 인과적 디지털 시간 유한 임펄스 응답의 출력은 i차 딜레이된 입력값과 상관계수의 곱을 모두 합한 것과 같다. 따라서 수식을 정리하면
다음과 같다.
$y[n]$$=b_{0}x[n]+ b_{1}x[n-1]+\cdots + b_{N}x[n-N]$
$=\sum_{i=0}^{N}b_{i} x[n-i]$
유한 임펄스 응답을 설계하는 방법은 윈도우 디자인, 주파수 샘플링 등 여러 기법이 있지만, 적은 차수로 효율적인 디자인이 가능한 Parks-McClellan
방법을 채택하여 저역 필터를 구성하였다. Matlab ‘filterDesigner’ 툴을 사용하여 디자인하였으며, 0.8Hz Pass, 1.2Hz
Stop 대역으로 설정하고 40dB의 저지대역의 설계조건을 설정하였다. 결과는 아래 그림 7과 같으며 계산된 Tab의 데이터를 마이크로컨트롤러에 하드 코딩하였다. 이후 CMSIS-DSP 라이브러리를 적용하여 실시간 데이터 처리를 하였다.
그림. 7. 디자인된 유한 임펄스 응답
Fig. 7. Designed of Finite Impulse Response