[27호]RTK기반 블루투스 DGPS제작기
RTK기반 블루투스 DGPS제작기
글 | 객원기자 금강초롱(blog.naver.com/crucian2k3)
들어가며
GNSS, GLONASS, BEIDOW, PMTK, RTCM, SBAS, 기준점 이런 용어들과 지난 6개월 남짓, 거의 반년 이상을 보냈습니다. 사실 GPS를 사용하여 보다 정교한 위치를 찾을 수 있는 방안들에 대해 나름 고민에 고민을 해봤고 조금은 Hard-Core 타입 취미전자를 지향하는 아마추어 입장에서 어느 정도 동 기술의 실체파악을 해 본 것 같습니다. 이제 그간의 진행과정을 상세히 정리해 보고자 합니다.
1. 이 일을 시작하게 된 동기
GPS 수신기를 사용하여 실시간 위치추적을 하되 시속 60km이상의 속도에서도 매초 10회 이상의 포인팅을 할 수 있는 장치를 자력으로 만들어 보고 싶었습니다.
비용은 최대한 저렴하게, 호주머니나 모자에 부착도 가능한 초소형으로 구성하고, 블루투스를 통해 스마트폰과 연계하여 활용성을 높일 수 있도록 제작하고 싶었습니다.
목표하는 정밀도는 미터급으로 하되 시중에서 손쉽게 구할 수 있는 GPS모듈에 에러보정 신호를 인가하여 정밀도를 극한으로 끌어 올려 가능하다면 1미터 이내의 정밀도로 동작되게 하는 것이었습니다.
그럼 이것을 어디에 쓸모가 있냐고 반문 하실지 모르겠습니다. 매년 자신의 발전을 위해 나름 도전적 과제를 정하여 매진하곤 하는데 올해는 고속으로 이동하는 물체의 실시간 이동경로 추적 장치를 만들어보되 GPS기술을 적극 반영하고 차후 실시간 이동체 추적시스템 제작을 위한 핵심기술을 미리 접해보고 싶었기 때문입니다.
2. GPS의 정밀도
이제는 고유명사처럼 사용되는 GPS는 사실 군사목적으로 미국에서 구축한 것입니다. 미국의 진정한 라이벌인 러시아도 이에 뒤질세라 GLONASS를 구축하여 자국은 물론 북한 등 전세계 공산권 국가에서 이용 중인 것으로 알려져 있습니다. 중국에서도 베이징올림픽에 즈음하여 BEIDOW베이더우라고 하는 위성항법체계를 완성하여 자국을 대상으로 서비스 중에 있습니다. 유럽연합도 갈릴레오라고 하는 위성항법체계를 구축중이며 우리나라도 여기에 참여하고 있다고 합니다.
우선 GPS위성에서 내려오는 마이크로웨이브의 구성부터 살펴보면, GPS위성에서는 L1반송파로 알려진 1.57542Ghz와 L2반송파로 알려진 1.2276Ghz가 끊임없이 송출되고 있습니다.
이러한 반송파에 중첩(변조)되어 실려진 시그널은 PRN(Pseudo-Random Noise)코드와 50Bps 속도의 항법메시지가 포함되어져 있습니다. 여기서 PRN을 한꺼풀 더 벗겨 보면 Coarse Acquisition이라고 불리어지는 C/A코드와 Precise Code인 P코드로 나눠집니다.
L1 반송파에 실려진 C/A코드는 민수용 GPS수신기 등을 위해 쓰이며 일반정밀도(SPS: Standard Posistion Service)를 얻을 수 있고 L2 반송파에 실려진 P코드는 고정밀도(PPS: Precise Positioning Service)를 서비스하기 위한 것이며 Anti-Spoofing 모드로 동작되기 위해 Y-code로 암호화 하여 송출됩니다.
결국 L2반송파는 미국에서 인증을 받은 제한된 이용자만 접근이 가능하고 군사관련 이용자는 특수한 수신기로 이용이 가능하다고 합니다.
그냥 L1 반송파만 사용하면 되지 왜 L2 까지 쓸까요?
미국사람들의 준비성과 예리함을 여기서 다시금 알 수 있습니다. GPS를 사용한 측위체계에서 가장 큰 에러요인은 바로 전리층 지연시간 불균일인데 이를 효과적으로 해결하기 위해 1개의 위성에서 서로 다른 반송파를 송출하여 전리층의 상태를 실시간으로 파악해 내고자 함이라고 합니다. 참 대단하다 아니할 수 없습니다.
위 장황한 내용들을 정리하자면
· C/A Code : L1 반송파에 담겨져 있으며 일반 민수용 GPS에서 일반정밀도(약 3∼15M)로 측위가 가능함
· P Code : L2 반송파에 담겨져 있으며 암호화되어 있어 특수 목적으로만 사용되며 L1, L2를 동시에 사용하여 보다 고정밀도(1mm∼1Cm) 측위 가능
· Navigation Message : L1 반송파에 담겨져 있으며 시각 데이터 파라메터, GPS시간, 위성상태, 위성궤도메시지, 시간에 따른 위성의 궤도를 나타내는 Almanacs데이터 등이 포함됨
즉, GPS수신기가 측위를 위한 목적으로 동작된다면 최소한 C/A Code와 네비게이션 메시지를 제대로 수신해야 합니다.
3. GPS를 통해 내 위치를 계산해 내는 원리
GPS에 의한 위치 측정원리는 기본적으로 삼변측량원리를 사용합니다.
최대한 간략히 설명해 보자면 다음과 같습니다.
앞서 살펴본 바와 같이 위성으로부터 수신된 L1 시그널인 1.57542GHz (10.23MHz*154)에는 C/A(Coarse Acquisition)코드라는 정보가 실려 있으며 이 코드의 위상정보를 추적하면 펄스 간 지연시간을 얻어 낼 수 있게 됩니다.
C/A코드에 담겨진 펄스열과 GPS수신기의 펄스열을 우선 동기화 시킨 후 지연시간 측정을 위한 펄스열이 나타나면 수신기의 펄스열과 비교하는 방식, 즉 주파수카운터와 같은 개념으로 동작됩니다.
거리 = 광속 x 지연시간
이렇게 얻어진 거리 정보를 바탕으로 동심원을 그리고 동심원 3개가 만나는 점(교차하는 점)이 상대적 위치가 됩니다.
그렇다면 지구상에서 실제 내 위치는 어떻게 알까요?
이는 위성에서 보내주는 Navigation Message(항행정보)에 비밀이 있으며 상대적 위치정보와 항행정보를 결합하여 복잡한 연산을 하면 물리적인 내 위치를 알 수 있게 됩니다. 이 연산내용에 대해서도 좀 알아 봤으나 심오하여 본서에서는 건너뜁니다.
이러한 원리로 인해 낮은 성능의 저가 GPS는 매초 1회 정도의 내 위치 정보를 얻어 낼 수 있는 반면 조금 고성능은 5Hz 내지는 10Hz도 가능하고 아주 고성능은 50Hz도 가능하다고 합니다. 이것이 중요한 이유는 고속으로 이동하는 물체에서 실시간으로 위치 정보를 얻고자 하는 경우에 얼마나 빠르게 현 위치를 인식해 낼 수 있는가? 가 대단히 중요한 요소로 대두되게 됩니다. 시속 60Km로 질주하는 물체는 초속으로 약 16M가 이동되며 이를 10Hz주기로 위치를 추적한다고 하여도 1.6M의 지연 오차를 유발 하게 됩니다.
빠르게 이동하는 물체를 빠르고 정밀하게 추적하기 위해서는 어쩔 수 없이 고성능의 컨트롤러가 필요하게 되는 것입니다.
4. DGPS의 개념
4.1. GPS의 오차
DGPS(Differential GPS)는 상대 측위 방식의 GPS 측량기법으로서 이미 알고 있는 기준점 좌표를 이용하여 오차를 일으키는 요소들을 보정하고, 오차를 최대한 줄여서 보다 정확한 위치를 얻기 위한 방식입니다.
일반적으로 GPS에서 오차를 일으키는 요인들은 아래와 같습니다.
이러한 오차 중 ③전리층 오차가 영향을 크게 미치며 이 오차는 수신기 주변 100Km지역에서는 거의 동일한 경향이 있으므로 기지의 수신국에서 알아낸 오차 내역을 측정하고자 하는 GPS 수신기에 별도로 알려주어 보정하게 하는 방식이 DGPS의 기본적 원리라 할 수 있겠습니다.
4.2 DGPS 에러보정 방식
보정을 해주는 량을 전파(전달)하는 방식에 따라 SBAS(Satellite Based Augmentation System) 방식과 RTK(Real-Time Kinematic) 방식으로 나누게 됩니다.
이번에 제작한 GPS수신기는 위 SBAS와 RTK를 모두 처리할 수 있는 타입으로 제작하였으며 제조사 매뉴얼에 의하면 DGPS모드에서는 5Hz 주기로 위치식별이 가능하다고 되어 있으나 10Hz까지 올려도 일단 동작이 됨은 확인 하였습니다.
5. 자작 GPS의 하드웨어 부문
제작 컨셉 : 소형, 경량, 저 전력, 저 비용, 고정밀도, 사용자 편의적UI, 흔한 부품, 스마트폰과 블루투스통신 가능 등
기본적인 구성은 다음과 같습니다.
이제 각각의 요소들이 어떠한 기능과 역할을 수행하는지 살펴보도록 하겠습니다.
5.1 GPS CONTROLLER
5.2 GPS MODULE
5.3 GLCD
5.4 BLUETOOTH MODULE
5.5 BUTTON KEY
5.6 LDO
5.7 BOOSTER
5.8 Lithium BATTERY
6. 자작 GPS의 소프트웨어 부문
GPS 수신기로 작동되려면 기본적으로 NMEA정보를 외부로 송출하는 기능이 원활히 구성되어야 할 것입니다.
단순히 외부로 NMEA정보만 보내려 한다면 이야기가 간단합니다만 GPS의 동작모드를 즉석에서 변경이 가능하도록 하기도 하고, NMEA정보도 수신기에서 보기를 원한다면 MCU가 필연적으로 필요해 집니다.
외부와의 연계는 BLUETOOTH통신을 계획하였으므로 SPP 프로파일을 어떻게 통제해야 하는가가 역시 중요한 요소가 됩니다.
이러한 기본적인 요소가 준비되었다면 본격적으로는 PMTK프로토콜에 대한 이해가 필요합니다. PMTK는 GPS 모듈에게 어떠한 기능을 설정할 것인지 주문하는 기능과 이미 설정된 값이 어떤 상태로 들어가 있는지 쿼리를 하고자 할 때 필수적으로 사용되게 됩니다.
6.1 간이 RTOS(비선점형 방식) 스케쥴러 설계
GPS 모듈은 최초 전원이 인가되면 9600Bps에 1Hz 주기로 위치를 알려주는 기능이 동작됩니다. 이는 GPS에 내장된 펌웨어에 전적으로 의존함이고 제조사에 소정의 비용을 지불하면 이를 변경할 수도 있다고 합니다. 그러나 본 프로젝트에서와 같이 MCU를 사용하여 PMTK명령을 보내면 좀 번거롭긴 해도 다양한 모드변경을 원하는대로 시킬수 있게 됩니다.
최대 10Hz 모드에서도 동작을 시키기를 원하므로 9600Bps로는 정상적인 출력이 불가능하게 됩니다. 한마디로 변비에 걸리게 되는 것입니다.
이를 좀 더 파헤쳐 보면, RTCM FIX 상태에서 총 16개의 위성이 탐색된 상황이라면 퍼붓듯이 보내지는 데이터의 알맹이를 살펴보면 다음과 같습니다. (DGPS FIX, AGE:1, SALT:16, Differential mode)
· 1개의 NMEA FRAM SIZE : 366Byte
· 9600Bps에서 전송 소요시간 : (366Byte * 10Bit(8Bit + 1start + 1stop)) / 9600Bps = 0.38125Sec
위에서 보듯이 9600Bps로 1초에 1회 위치 정보를 얻는 경우 최소 0.38초가 걸리므로 이 상태에서는 1초에 3회 이상, 즉 3Hz 이상으로 현 위치 정보를 얻을 수 없게 됩니다.
그렇다면 1초 최대 10회를 뿌려주기 위해서는 간단계산으로 최소 38400Bps는 되어야 함을 알 수 있습니다.
· 38400Bps에서 전송 소요시간 : (366Byte * 10Bit) / 38400Bps = 0.0953125Sec
· 115200Bps에서 전송 소요시간 : (366Byte * 10Bit) / 115200Bps = 0.03177Sec
그렇다면 10hz 모드로 GPS수신기를 동작시키며 NMEA 데이터를 디코딩하고자 한다면 매초 처리해야 할 데이터량이 어느 정도 될까요?
· 366Byte * 10Hz = 3660Byte
인정사정없이 매초 3660Byte가 쏟아져 들어오며 이 데이터를 BLUETOOTH로도 보내주고 디코딩하여 GLCD 표출하기 위해서는 프로그램 구조가 잘 되어 있을 필요가 있습니다. PIC18LF26K22은 Microchip 8bit급에서는 최고속도인 64MHz로 동작시켜도 실제로는 16MIPS가 되며 그간의 칩들에 비하면 상당히 빠른 수준이긴 하나 해야 할 일에 비하면 그리 여유로운 편은 결코 아닌 것 같습니다.
아무튼 이 문제를 충족하기위해 초기에는 USART인터럽트, 타이머인터럽트, 메인루프가 결합된 방식으로 설계하였으나 5Hz이상에서 동작이 매끄럽지 못해 RTOS방식을 도입하게 되었습니다.
일단 그 유명한 FreeRTOS상에서 구동해 보려고 갖은 노력을 하였으나 잘 동작하지 않자 스캐줄러 동작부분만 참조하여 유사 RTOS를 직접 만들어 구동시켜 보게 되었습니다. 프로그램이 동작되는 최소 단위를 1ms로 설정하고 전 타스크를 1ms 내에 완료하도록 하였습니다. 물론 어떤 타스크가 1ms이상을 점령해 버리면 다른 타스크가 실행할 수 있는 시간을 뺏겨버리게 될 소지가 있습니다만 가능한 한 1ms 단위로 돌아가도록 타임슬라이싱을 구현하였습니다.
타임슬라이싱 체계가 원활하게 작동되게 하기 위해서는 State Machine 기법으로 각 타스크를 돌리는 방법을 적용하였고 GLCD가 느려 약간의 지체가 있기는 합니다만 대체적으로 각본대로 잘 돌아감을 확인하였습니다.
인터넷에 좀 검색을 해보니 이러한 방식이 연성(SOFT) RTOS와 유사한 방식임을 알 수 있었습니다.
이러한 구조를 다시 한 번 정리해 보면 다음과 같습니다.
Internal Clock : 16Mhz
PLL 4X : 64Mhz
(FOSC : 64Mhz)
6.2 타이밍도
아래 타이밍도에서는 100ms 간격으로 USART2측에 데이터가 감지되고 있음을 보여주고 있습니다. 즉, GPS 수신기가 10Hz모드에서 동작되고 있음을 알 수 있습니다.
오실로스코프로는 관측하기가 약간 까다로울 수 있습니다만 로직애널라이저를 활용하면 매우 유용하게 측정이 가능합니다.
· Sampling speed : 100Mbit
· Samples : 250Mbyte
· USED channel : 3CH
이로 인해 엄격하게 모든 타스크가 1ms 이내에 완수하여야하는 상황이 어렵게 된다. 이 현상이 생기는 원인은 NOKIA5110 GLCD를 동작시키기 위해서는 SPI 방식으로 통신이 이뤄져야 하며 이 소자는 클록속도가 4MHz가 한계인 관계로 소정의 시간 지연이 불가피하다. 물론 GLCD를 사용하지 않거나 좀 더 고속표시기를 사용한다면 전혀 문제가 되지 않는다.
6.3 소프트웨어 개발환경
7. 보드 세부사항
본 보드는 프로토타입으로 제작해본 것으로 10cm x 6cm의 소형 만능기판을 사용하였습니다. GPS 모듈은 100mil 피치가 아니어서 0.3mm에나멜선을 활용하여 작업을 하였고 LI-ION 충전칩 또한 칩사이즈가 매우 작아 납땜하는데 애로점이 좀 있었습니다.
배터리파워 부스터는 기판사이즈 등의 문제로 인해 모듈형태의 보드를 외부에 부착하였으며 배터리는 18650사이즈를 사용하였는데 너무 과도한 용량이 아닌가 생각됩니다.
16시간 = 2400mAh / 160mA
1000mAh 내외의 전지가 용량, 무게, 부피, 소비전력 등을 감안해 볼 때 적정할 것 같습니다.
8. 동작검증
8.1 기준점
국립지리원에서는 전국방방곡곡에 소위 지준점이라고 하는 것을 세워 두고 있습니다. 저는 어부지리 격으로 이러한 기준점에 본 수신기를 놓아보고 어느 정도 오차가 있는가 하는 방식으로 정밀도를 검증해 볼 수 있었습니다.
8.2 정밀도 실측결과
- 측정장소 : 경기도 안양시 평촌중앙공원 내 기준점
- 측정일시 : 2014.8.15, 07:47:05
- GPS 매뉴얼에 의하면 DGPS 모드일 때 2.5M이하의 정밀도를 보인다고 서술되어있습니다. 실측결과 위도에서 약 1.7M의 오차를 경도에서 1.1M의 오차를 보이고 있는데 일단은 오차범위 내에는 들어 있다고 볼 수 있을 것 같습니다.
LatMeter = 111133 – 560cos(2*RadLat)
= 111133-560cos(2*0.614054)
= 110944.828531(m)
1° = 110944.828531(m)
1’ = 110944.828531/60 = 1849.080475(m)
1” = 1849.080475/60 = 30.81800792(m)
0.1” = 30.81800792(m)/10 = 3.081800792(m)
0.01” = 0.3081800792(m)
LonMeter = 111413cos(RadLat) – 94cos(3*RadLat)
= 111413cos(0.614054)-94cos(3*0.614054)
= 91085.150856(m)
1° = 91085.150856(m)
1’ = 91085.150856/60 = 1518.085848(m)
1” = 1518.085848/60 = 25.3014308(m)
0.1” = 25.3014308(m)/10 = 2.53014308(m)
0.01” = 0.253014308(m)
※ 위도와 경도 1°의 거리 계산법
8.3 실제 도로주행 결과
· 테스트일시 : 2014. 8.18, 09:34.40경
· 테스트장소 : 경기도 안양시 평촌중앙공원 일원
· 테스트조건 : 스마트폰(Vega No.6), DGPS Client v1.0.9(아센코리아), RTCM, GPS수신기 AKS6H, FB155BC
· 주행궤적 : DGPS Client 로부터 NMEA 데이터 저장 ▶ Route Converter ▶ 구글어스(GPX DATA Loading)
· 테스트결과 : 아래 적색선이 주행궤적이며 차량통행이 적고 고층건물이 거의 없는 하단부는 3회 주행선이 상당히 겹쳐 있으나 상단부는 다소 궤적오차를 보여주고 있습니다. 이는 주변 건물 등에 의한 전파교란이 있는 것으로 보여지며 SBAS 등 DGPS가 가동 중인 상태에서 2.5M이내의 정밀도를 갖는다는 제품정보대로 무난하게 작동해 주고 있음을 알 수 있습니다.
9. 결론
이 일을 시작하며 RTCM에 대한 환상이 상당히 컸던 것은 사실입니다.
3만원 남짓하는 저렴한 GPS 모듈을 RTCM모드로 동작시키면 정밀도가 매우 뛰어나지 않을까 하는 막연한 기대도 있었습니다만 해보지 않고는 속단할 수가 없었고 주변에서도 마땅한 정보를 입수하기도 어려웠습니다. RTCM 모드이건 SBAS모드이건 모두 에러에 대한 보정을 해주는 상황이므로 보정을 받기 전 자신이 정교하게 수신이 될 수 있는가가 중요한 요소가 됨을 뼈저리게 깨달았습니다. 즉, 보다 큰 수신안테나, 보다 감도가 좋은 안테나, 보다 강력한 GPS컨트롤러, 보다 많은 위성을 강력하게 수신할 수 있는 체계가 우선이 되고 이렇게 구비된 여건에서 에러 보정 시그널을 받아들인다면 충분히 고정밀도 GPS수신체계를 만들 수 있을 것 같습니다.
여기에도 엄연히 트레이드오프가 존재하는 것이 고정밀, 소형화를 추구한다면 극복해야할 문제가 바로 수신안테나라고 봅니다.
패치안테나 만으로는 고감도 수신기 제작에 한계가 있을 수밖에 없을 것이고 그렇다고 고감도 Active 안테나를 접목하면 부피가 커지는 문제가 수반될 것이기 때문입니다.
소형, 고정밀 GPS와 관련된 기술이 꾸준히 연구될 것으로 보며 머지않아 우리들 스마트폰에서도 수십 Cm급 정밀도를 갖는 GPS모듈이 탑재될 것으로 예상해봅니다.
그때쯤이면 아마 차선안내 네비게이션도 등장할 것입니다.
>나비양 : “지금은 2차선에서 주행중인데 1차선으로 얼릉 갈아타세요~”
>운짱맨 : 애가 내가 2차선에 있는걸 우째 안당가? 고거 참 희안하구먼~
마무리
끝으로 고층건물 창밖으로 늦은 밤이면 깜빡거리는 이상한 물체를 내미는 우리집에 대해 아무도 수상한 사람 산다고 신고해주지 않아서 다행스러웠고 틈만 나면 안방을 무슨 연구소 개발실 마냥 써먹는 철없는 남편에게 잔소리에 핀잔보다는 또다시 병원신세 질까봐 걱정해주는 아내에게 고맙고 미안한 맘이 앞섭니다. 감사합니다.
참고자료
1. 해양수산부위성항법중앙사무소
(http://www.ndgps.go.kr/html/kr/index.html)
2. 한국항공대학교 항법 및 정보시스템 연구실
(http://nisl.hau.ac.kr/index.html)
3. 서울대 GNSS연구실(http://gps.snu.ac.kr)
4. [논문]전국망 위성항법보정시스템(NDGPS)의 측위 정확도 분석 및 이용활성화 방안,2007.2, 군산지방해양수산청 위성항법중앙사무소
5. [기술동향]항공우주산업기술동향 8권2호(2010)pp.46-53, 위성항법시스템 운영현황 및 개발계획(하지현, 천세범)
6. [논문]한국항해항만학회지 제38권 제2호, 위성배치정보와 보정정보 맵핑 알고리즘을 이용한 저가형 GPS수신기의 DGPS 서비스 적용방안 연구(박병운, 윤동환)
7. [논문] 해양용 위성항법보정시스템(DGPS) 활용 다양화에 관한 연구(2004.2)
8. [번역본]NTRIP 프로토콜을 통한 RTK와 실시간 DGPS 보정 위치정보 테스트 결과 (http://www.isprs.org/congresses/beijing2008/proceedings/2_pdf/13_SS-15/04.pdf)
9. 펌테크(http://www.firmtech.co.kr)
10. 아센코리아(http://freenavi.co.kr)
MG Chemicals 인기상품 할인이벤트
MG Chemicals 인기상품 할인이벤트!!
먼지제거제, 접착제, 희석제, 컴파운드, 냉각제, 에폭시, 코팅제 등..
다양한 상품이 최대 15% 할인!!
[27호]측정/센서 필수 길라잡이 1.측정 기본
한국 NI에서 알려주는 측정/센서 필수 길라잡이 1
글 | 한국 NI, SW 및 측정 담당 이지석
1. 측정 기본
측정은 다른 말로 데이터 수집(Data Acquisition : DAQ) 이라고도 합니다. 데이터 수집은 시스템의 모니터링을 위해서 필수적이며 측정된 데이터를 기반으로 새로운 개선이 이루어집니다. 측정의 쉬운 예로 In-vehicle 데이터 수집이 있습니다. 이 데이터 수집에서는 진동, RPM, 변형률, 온도, 토크, 하중, 압력, 속도 등이 한 번에 측정됩니다. 이러한 다양한 값들은 경우에 따라 개별적으로 또는 함께 이루어져야 합니다.
우리가 측정 시 많이 사용하는 제품은 아래 그림과 같은 오실로스코프입니다. 오실로스코프를 사용하여 측정 중인 신호를 분석하며 신호의 결과를 저장합니다.
다른 방식의 계측기로 PC 기반의 데이터 수집이 있습니다. 아래의 DAQ 보드는 오실로스코프가 가지고 있는 모든 기능들을 제공하지만 디스플레이, 스위치등은 PC에서 담당하기 때문에 기존 오실로스코프보다 훨씬 소형입니다.
데이터 수집은 프로그램상의 User Interface를 통해 컨트롤되고 모니터링되며 PC를 통해 FFT와 같은 분석들을 실시간으로 수행할 수도 있습니다.
PC기반 DAQ 시스템은 가장 빠르게 발전하고 있는 상용 컴퓨터의 CPU, 디스플레이, 통신 기능들을 활용하기 때문에 소형이면서도 강력한 성능을 가지고 있습니다. 본 측정 기본 세션에서는 PC기반 데이터 수집을 중심으로 진행되지만 기본 개념은 모든 종류의 데이터 수집 어플리케이션이 동일합니다.
PC기반 데이터 수집 시스템에서 제일 먼저 살펴보아야 할 부분은 센서입니다. 센서는 온도를 측정하는 열전쌍(Thermo Couple)부터 소리를 측정하는 마이크로폰까지 다양한 종류가 있습니다. 각각의 센서에 대해서는 이어지는 글 들에서 다루도록 할 것이며 우선은 전반적인 센서의 의미에 대해 다루도록 하겠습니다.
센서의 목적은 빛, 온도, 압력, 위치, 소리, 기타 물리현상을 측정 가능한 전기 신호인 전압이나 전류로 변환하는 것입니다. 이와 같은 신호 유형을 아날로그 신호라고 합니다. 오른쪽의 신호에서 보이는 것처럼 아날로그 신호는 시간에 따라 특정 값을 가지고 있습니다.
위의 그림처럼 물리적인 현상을 측정하기 위해서는 특정 유형의 센서가 사용됩니다. 하지만 각각의 센서 종류별로 다른 출력특징들을 가지고 있기 때문에 신호의 조작이 필요하며 이러한 조작을 신호 컨디셔닝이라고 합니다.
그림에 표시된 것과 같이 DAQ Device 부분에서 아날로그 신호를 디지털로 변환하기 전에 신호 컨디셔닝을 수행합니다. 최근에 출시되는 DAQ 디바이스는 신호 컨디셔닝까지 포함하고 있는 경우가 많습니다. DAQ 디바이스는 처리된 신호를 PC가 이해할 수 있는 디지털 신호로 변환합니다.
신호 컨디셔닝에 대한 이해를 돕기 위해 열전쌍 신호를 예로 들어 보겠습니다. 일반적으로 열전쌍에서는 ±80mV의 신호가 출력됩니다. 이러한 신호는 일반적인 DAQ 디바이스가 효과적으로 측정하기에는 너무 작은 범위입니다. 이를 수정하기 위해 신호를 6배로 증폭하여 범위를 ±80mV에서 ±4.8V로 증폭할 수 있습니다. 상당수의 DAQ 디바이스는 ±5V 정도의 범위를 가지고 있으므로 이 범위를 최대한 활용할 수 있습니다.
또한 노이즈를 줄이기 위해 로우패스 필터를 통해 높은 주파수의 노이즈들을 제거할 수도 있습니다.
이처럼 열전쌍을 포함한 대부분의 센서는 DAQ 디바이스가 측정할 수 있는 신호를 측정하기 위해 신호 컨디셔닝이 필요합니다. 아래 표에는 각각의 센서와 필요한 신호 컨디셔닝이 정리되어 있습니다.
신호를 컨디셔닝 한 뒤에는 ADC라고 불리는 아날로그 디지털 컨버터를 이용하여 신호를 아날로그에서 디지털로 변환하여야 합니다. 앞에서도 언급했듯이 센서출력 신호는 아날로그 신호입니다.
아날로그 신호의 세 가지 특성은 레벨, 모양 그리고 주파수입니다.
레벨은 신호의 진폭으로 실내의 온도나 광원의 강도를 알려줍니다. 모양을 알고 있는 경우 신호를 더욱 자세히 분석 할 수 있습니다. 센서신호의 일반적인 모양은 사인파, 사각파, 삼각파입니다. 이러한 모양 정보를 통해 피크 전압이나 기울기와 같은 데이터를 생성할 수 있습니다. 주파수는 음성, 진동 분석과 같은 어플리케이션에서 중요하게 사용됩니다.
디지털 신호의 중요 파라미터는 상태와 속도입니다.
상태에는 High와 Low가 있으며 이러한 상태가 얼마나 빨리 변하는가를 속도라고 합니다.
DAQ 디바이스는 이처럼 아날로그 신호를 디지털로 변경해주는 역할을 하며 측정 엔지니어는 DAQ 디바이스가 신호를 변경할 때 어떤 영향을 미치는지 알고 있어야 합니다. 이 부분에서 고려해야 할 사항은 여러 가지가 있지만 그 중에 분해능(Resolution), 범위(Range) 그리고 속도(Rate)가 중요합니다.
분해능은 신호가 변환된 후 디지털화된 신호가 아날로그 신호를 얼마나 근접하게 표현할 수 있는지를 결정합니다.
왼쪽 그림에서 센서로부터 수집한 아날로그 웨이브폼을 볼 수 있습니다. 이 웨이브폼을 디지털화하기 위해서는 웨이브폼의 진폭을 DAQ 디바이스의 분해능에 따라 여러 단계로 나누어주게 됩니다. 일반적으로 DAQ 디바이스의 분해능은 비트(bit)로 표현됩니다. 만약 제품이 12비트의 분해능을 가지고 있다면 제품이 측정할 수 있는 최대 범위 (보통 ±5 또는 ±10)를 2bit로 나눈 값이 됩니다. 예를 들어 우측의 그림처럼 3bit 분해능을 가지고 측정 범위가 ±10이라고 하면 실제 분해능은 20/23 = 2.5가 됩니다. 따라서 해당 DAQ 디바이스는 2.5보다 작은 신호가 들어온 경우 제대로 인식하지 못할 수 있으며 모든 값들이 2.5 간격으로 표시되게 됩니다. 따라서 들어오는 신호를 얼마나 세밀하게 봐야 하는지를 확인한 후 분해능을 그 이상으로 선택하여야 합니다.
다음으로 범위에 대해 알아보겠습니다. 신호 컨디셔닝에서 언급했듯이 아날로그 신호가 DAQ 디바이스가 가진 모든 범위를 활용하게 해 주는 것이 중요합니다. 그림의 왼쪽 부분과 같이 ±2V의 신호를 ±10V의 장비로 측정한다면 나머지 구간은 사용하지 않게 됩니다. 이 때 분해능은 ±10V를 기준으로 구성되기 때문에 신호도 자세하게 보기 어려워 집니다. 하지만 범위가 ±2V가 된다면 훨씬 더 자세히 신호를 볼 수 있게 됩니다. 이러한 문제를 해결하기 위해 두 가지 방법을 생각해 볼 수 있습니다. 하나는 신호 컨디셔닝을 통해 신호를 DAQ 디바이스의 범위에 맞추는 것, 다른 하나는 디바이스의 범위를 변경하는 것입니다. 일부 디바이스는 소프트웨어적인 설정을 통해 범위를 변경할 수 있게 설계되어 있습니다.
마지막으로 속도에 대해 알아보겠습니다.
아날로그 신호를 디지털로 변환할 때, 신호의 모든 특징을 캡쳐하기 위해 아날로그 신호를 특정 속도로 반드시 샘플링해야 합니다. 만약 샘플링하는 속도가 너무 늦다면 PC에서 보여지는 신호는 원래 신호와 다른 모습을 가지게 될 것 입니다. 예를 들어 아래의 그림처럼 10Hz의 신호를 11Hz 속도로 샘플링 하게 되면 원 신호와 다른 적색 파형을 보게 됩니다.
주어진 신호의 적절한 샘플 속도는 나이퀴스트 이론에 따라 결정됩니다. 주파수 특징을 유지하기 위해서는 원래 웨이브폼의 최소 2배 주파수에서 샘플링해야 합니다. 웨이브폼에서는 두 배 이상의 속도로 샘플링 한 경우 아래 그림과 같이 웨이브폼의 주파수뿐 아니라 모양과 레벨의 대략적인 표현도 유지하고 있는 것을 확인할 수 있습니다.
하지만 일반적으로 신호의 모든 특징을 유지하기 위해서는 최대 신호 주파수의 8-10배 샘플링 속도를 이용할 것을 권장합니다. 이 정도의 속도를 사용하게 되면 아래 그림과 같이 신호의 주파수, 모양 및 레벨이 유지되는 것을 볼 수 있습니다.
DAQ 디바이스에서 처리된 신호는 버스를 통해 컴퓨터로 전달됩니다. 이렇게 전달된 데이터는 컴퓨터에 설치된 SW를 통해 분석되고 보여집니다. LabVIEW는 측정 엔지니어들이 가장 많이 사용하는 SW중의 하나입니다. LabVIEW에서 제공되는 완성된 측정 예제들을 통해 엔지니어들은 바로 채널을 셋팅하고 데이터를 저장할 수 있습니다. 아래의 이미지는 LabVIEW에서 기본으로 제공되는 온도측정 예제입니다.
해당 데이터를 추가적으로 분석하고 싶다면 간단히 분석 알고리즘을 추가 해 줄 수 있습니다.
지금까지 PC기반의 DAQ 디바이스를 예로 들어 센서 신호 측정에 대한 필수 사항들을 알아보았습니다. 사실 많은 엔지니어들이 센서에 대해서는 어느 정도 알고 있지만 측정에 대해서는 잘 모르는 경우가 많습니다. 기본적인 측정 지식을 알고 있는 것이 정확한 측정값을 얻을 수 있는 기본이 되므로 금일 다루어진 내용들을 기억한다면 도움이 될 것이라 생각됩니다.
다음 글에서는 본격적으로 각각의 센서에 대해 다루어 보도록 하겠습니다.
[27호] 미래형 계측기, VirtualBench
글 | 한국 NI, SW 및 측정 담당 이지석
연구실이나 실험실이라고 불리는 곳에서는 언제나 계측기들을 볼 수 있습니다. 예를 들면 오실로스코프, 멀티미터, 파워 서플라이 등이 우리가 가장 흔히 볼 수 있는 계측기입니다. 연구개발에서 가장 중요한 일은 제품을 (또는 과제를) 완성하는 것이며 이러한 개발 과정에는 수 많은 단계들이 있고 개발자들은 매번 어떤 방식으로 다음 단계를 진행할지 고민하게 됩니다. 명확하고 정량적인 결정을 하기 위해서는 지금의 상황을 정확하게 알아야 하며 지금의 상황을 알기 위해 하는 것이 바로 계측기를 통한 측정입니다. 이런 이유로 수 많은 실험실에서 비싼 가격에도 불구하고 계측기들을 보유하고 있습니다.
만약 계측기가 정확한 값을 측정하지 못한다면 어떻게 될까요? 지금까지 해 온 많은 연구들이 모두 잘못된 결과를 나타낼 것 입니다. 쉽게 예를 들어 자동차의 ECU를 개발하는 엔지니어가 잘못된 측정값을 가지고 알고리즘을 개발한다면 차량이 오동작하여 큰 사고로 이어질 수 있을 것 입니다.
이렇게 중요한 계측기들은 지금 어떤 상태에 있는지 본인의 연구실에 있는 계측기들을 한 번 살펴보십시오. 초록색 그래프 인디케이터를 가지고 있는 오실로스코프는 어디에 쓰이는지 모르는 수 많은 버튼들을 가지고 있고, 그 옆에는 필요할 때마다 사인파, 삼각파를 내어주는 펑션 제네레이터가, 그리고 무거워서 옮길 때마다 힘이 드는 파워 서플라이들이 있을 것입니다.
잠시 계측기의 영역에서 벗어나서 최근에 일반적으로 많이 사용되는 기술들에 대해 살펴보겠습니다. 이러한 최신 기술들을 가장 많이 볼 수 있는 것은 바로 여러분의 주머니에 있는 스마트폰입니다. 2000년대 중반만 해도 대부분이 폴더로 접히는 방식의 피쳐폰을 사용하고 있었던 반면에 10년이 채 안된 오늘날, 대부분의 현대인들이 스마트폰으로 다양한 작업들을 하고 있습니다. 짧은 시간 동안에 많은 사람들이 스마트폰 시장으로 이동한 가장 큰 이유는 바로 스마트폰에 적용된 최신 기술들 때문입니다.
아래 표에서 피쳐폰과 스마트폰의 차이를 간략히 살펴보겠습니다.
스마트폰이 제공한 기술은 사용자가 원하는 대로 빠르게 반응하는 터치패널, Wifi를 통한 인터넷 사용, 그리고 앱을 통한 확장입니다. 이러한 세 가지 기능은 서로 합쳐져 엄청난 시너지를 가져왔습니다. 바로 생산자가 정의하던 장비의 기능들을 사용자가 정의할 수 있게 된 것입니다. 이제 생산자는 단지 사용자가 꾸밀 수 있는 플랫폼만을 제공할 뿐이고 사용자는 원하는 앱을 다운로드하여 스마트폰을 나만의 기계로 바꿀 수 있게 됩니다. 이 과정에서 Wifi는 데이터를 자유롭게 전송할 수 있게 해 주며 터치패널은 입력 버튼이 가지고 있던 한계들을 없애주었습니다.
자, 이제 다시 계측기의 세상으로 돌아가도록 하겠습니다. 위에서 살펴본 것과 같이 지난 10년 간 기술은 비약적으로 발전하였습니다. 그렇다면 우리의 계측기도 좋아졌을까요? 답은 대부분 “아니오” 입니다. 계측기는 여전히 알 수 없는 버튼들을 주렁주렁 달고 있으며 매뉴얼은 어디 있는지 찾을 수도 없어 매일 쓰는 몇 가지 기능만을 반복해서 쓰게 되고 무거운 계측기들을 이곳 저곳으로 옮겨야 합니다.
스마트폰이 이렇게 발전하는 동안 계측기는 무엇이 변화한 것일까요? 혹시 계측기는 스마트폰과는 너무나도 다른 구조이기 때문에 발전할 수 없는 것 일까요? 사실 스마트폰과 PC 그리고 계측기는 모두 유사한 구조를 가지고 있습니다.
스마트폰, PC 그리고 계측기는 모두 기본적으로 위와 같은 구조를 가지고 있습니다. 다만 계측기가 다른 점이 있다면 측정에 특화된 보드를 더 가지고 있다는 점 입니다. 쉽게 생각하면 우리가 PC를 업그레이드 하기 위해서 PCI에 꽂던 그래픽 카드처럼 측정 보드가 꽂혀있다고 생각 해 볼 수 있을 것입니다. 따라서 계측기도 충분히 스마트폰처럼 발전할 수 있습니다.
버츄얼벤치(VirtualBench)는 변화하지 않는 계측기 시장의 틀을 깨고 최신 기술들을 도입한 새로운 측정장비입니다.
버츄얼벤치는 실험실에서 가장 많이 쓰이는 오실로스코프, 펑션 제네레이터, 디지털 멀티미터, 파워 서플라이, 디지털 입출력을 한 손으로 가볍게 들 수 있는 작고 가벼운 하나의 장비에 집적하였습니다. 노트북이나 PC에 USB로 연결하여 전용 SW로 빠르게 측정할 수 있으며 휴대성을 높이기 위해 iPad로 바로 무선으로 연결하여 측정할 수도 있습니다. 무료로 제공되는 전용 App을 다운로드하여 가벼운 터치만으로도 다섯 가지 기능을 쉽게 사용하여 측정하고 측정한 데이터나 스크린 이미지를 저장하거나 전송할 수 있습니다.
가볍게 들고 다니며 무선으로 바로 연결하여 측정할 수 있는 버츄얼벤치는 다섯 가지 장비가 하나에 집적되었다는 물리적인 장점 말고도 내 PC로 원하는 대로 계측기를 제어할 수 있다는 또 다른 큰 장점을 가지고 있습니다. 예를 들어, 하나의 테스트에서 12V의 파워를 준 뒤 전압을 측정하고 다시 5V를 준 뒤 측정, 이와 유사한 과정들이 반복되는 경우, 이 전에는 엔지니어가 일일이 계측기를 조절해야 했던 반면 버츄얼벤치는 기본으로 제공되는 예제들을 통해 LabVIEW로 쉽게 자동화할 수 있습니다. 이런 방식으로 이 전의 계측기들이 피쳐폰처럼 개발사가 제공하는 기능들을 사용했던 것과는 달리 사용자가 원하는 대로 계측기의 기능을 변경할 수 있습니다.
계측기는 앞으로 더욱 더 많은 기술들을 포함하게 될 것이며 이러한 최신 기능들을 잘 사용하는 엔지니어들이 짧은 시간에 더 많은 일들을 해낼 수 있을 것입니다. 버츄얼벤치와 계측기의 미래에 대한 내용들을 Ni.com/virtualbench 에서 확인해 보시기 바랍니다.