ADC 사용 이유 - ADC sayong iyu

Analog to Digital Converter(ADC)란 무엇인가?

땜쓰2016. 11. 28. 22:34

오늘은 여러분들이 잘 알고 계신 내용일 수도 혹은 잘 모르지만, 으레 MCU를 이용하여 펌웨어 설계 및 하드웨어 설계를 하실 때 사용하고 계신 Analog to Digital Converter(이하 ADC)에 대해서 함께 알아보고자 합니다.

Analog to Digital Converter, 국문으로 하면 아날로그 신호를 디지털 값으로 변환해주는 변환기라는 뜻인데 정확하게 어떤 것인지 감이 서질 않으시죠? 그래서 준비했습니다. ADC에 대해서 이 포스팅에서 자세하게 알고 사용할 수 있도록 땜쓰가 쉽게 설명해드리도록 하겠습니다.

Analog to Digital Converter란 무엇인가?

Microcontroller를 이용하여 임베디드 시스템을 구축할 때에 Timer 만큼이나 매우 중요하고, 또 자주 사용하는 기능이 바로 Digital to Analog Converter와 Analog to Digital Converter일 것입니다.(사실 DAC는 ADC에 비해서는 이용도가 그리 많지는 않습니다.)

잠깐 여담을 해보자면, 땜쓰는 누군가가 ‘디지털은 무조건 좋고 아날로그는 구식이다.’라는 말을 하는 것을 어디서 들은 적이 있습니다. 혹시 여러분들 중에서도 이런 사람이 있을까요? 디지털이라고 좋은 게 아니고 아날로그라고 나쁜 게 아닙니다. 디지털과 아날로그를 나누는 차이는 시간에 따라 신호 등의 변화가 연속적이냐 혹은 이산적(일정한 주기마다 특정한 값의 신호 위치로 변화)이냐에 따라서 아날로그 혹은 디지털이라고 나누는 것이기 때문이죠.

우리가 어떠한 기능을 가지는 임베디드 시스템을 만들어낼 경우 그 시스템 내에서 처리되는 모든 데이터와 연산 등은 모두 디지털화(0, 1의 Transistor On/Off 조건만 있는 것)되어 처리됩니다. 한편 우리가 실제로 생활하는 실제적인 환경은 아날로그적(어떠한 현상의 변화가 시간에 따라 연속적으로 변하는 것)인 양상을 나타냅니다.

이렇듯 디지털과 아날로그 사이에 어떠한 벽이 존재하는 것과 같이 괴리가 발생하게 되는데 이것을 매우 적절하게 처리해주는 것이 바로 DAC와 ADC인 것입니다.

□ Analog to Digital Converter를 이해하기 위한 표본화(Sampling)

표본화는 아날로그 신호를 일정한 시간 간격을 가지고 해당 시간 간격마다 아날로그의 신호를 채취하는 것을 말합니다. 여기서 채취한다고 했는데 마치 시간에 따라 연속적으로 변화하는 아날로그 신호들 중에서 특정한 매 시간 간격마다 그 아날로그 신호만을 취득하기 때문에 저렇게 표현하였습니다.

그럼 왜 이런 표본화를 수행하는 것일까요? 아날로그 신호는 시간에 따라 그 값이 연속적으로 존재하고 있기 때문에 아날로그 신호를 처리하려면 처리 속도 매우 빨라야하며, 이를 처리할 수 있는 처리 Core의 구조도 대용량을 처리할 수 있도록 구성되어 있어야 합니다. 이 말을 바꿔 설명하자면, 아날로그 신호를 아날로그 적으로 처리하기 위해서는 값싼 MCU로는 답이 나오지 않는다는 뜻이겠지요. 또 ‘시간에 따라 연속적’이라는 말에 시간은 우리가 쪼개고 쪼개어도 그 사이에 연속적으로 흐르는 시간은 계속해서 존재하며, 그에 따라 존재하는 값들도 계속해서 존재한다는 뜻입니다.

이해하기 쉽게 예를 하나 들어보도록 하겠습니다. 1초를 조금 확대하여 본다면 0.1초가 된다고 하겠습니다. 이제 0.1초를 다시 확대하면 0.01초가, 그 0.01초를 더 확대하여 0.001초가 …. 결국 시간은 쪼개고 쪼개어 나가도 그 단위가 작아질 뿐이지 임계적인 쪼갬의 한계가 없게 됩니다.

그럼 이런 시간들 마다마다 값이 존재하느냐? 그렇습니다. 그렇기 때문에 아날로그 데이터는 디지털 시스템에서 직접적으로 처리하기가 매우 어려울 뿐만 아니라 실제로 그렇게 할 수도 없는 현실적인 문제가 있습니다.

이러한 문제점을 해결하기 위해서 우리는 아날로그 신호를 표본화하는 것입니다. 이런 표본화에 대가가 바로 ‘샤논’이라는 사람인데, ‘샤논의 표본화 정리’는 지금까지도 매우 유용하게 디지털 시스템에서 사용되고 있는 이론입니다. 그럼 그림과 함께 샤논의 표본화 정리 통해 표본화의 개념을 알아보도록 하겠습니다.

위에 나타낸 그림을 보면 회색으로 나타낸 아날로그 신호를 일정한 시간 간격으로 구간을 나눈 후 그 시간 간격에 해당하는 아날로그 신호값을 채취하는 표본화의 모습을 나타낸 그래프가 되겠습니다.

샤논의 표본화 정리는 이런 아날로그 신호를 위와 같이 일정한 시간 간격으로 표본을 채취할 때 표본화를 수행할 아날로그 신호의 주파수의 2배의 속도로 표본화를 수행하여 얻는다면 그 표본화된 데이터를 바탕으로 원래 신호를 거의 완벽하게 재생이 가능하다는 것에 있습니다.

여기서 한 단계 더 나아가 ‘나이퀴스트’는 그의 이름을 딴 ‘나이퀴스트 정리’를 통해 표본화 주파수는 피 표본화 신호의 주파수보다 2배 이상이라면 앨리어싱(표본화된 데이터를 바탕으로 원래의 신호를 복원하는데 표본화 데이터 부족으로 인하여 발생하는 복원 신호의 일그러짐)이 발생하지 않는다고 했죠.

처리할 데이터가 너무나 많은 아날로그 신호를 이제 우리는 디지털로 처리하기 위하여 한 발짝 다가갔습니다. 표본화는 단순히 아날로그 신호에 대해서 일정 시간 간격으로 그 표본을 채취한 것 일뿐 아직 디지털로 신호를 처리하려면 다른 과정이 좀 더 남아있습니다. 무엇이 더 있을까요?

□ Analog to Digital Converter를 이해하기 위한 양자화(Quantization)

양자화는 표본화 과정으로 아날로그 신호를 일정한 전압 레벨의 구간을 나눈 영역에 강제적으로 대응 시키는 과정입니다. 이렇게 강제적으로 아날로그 신호를 일정한 전압 레벨에 따라서 대응시키는 과정은 표본화를 하는 이유와 유사합니다.

전자에서 언급한 ‘시간에 따라 연속적’이라는 말에서 ‘연속적’인 값을 처리하기에는 아날로그 신호의 변화준위가 구분할 수 없을 정도로 넓기 때문입니다. 아래의 그림은 앞서 소개한 표본화 설명에서 소개했던 그림에서 나타낸 동일한 아날로그 신호를 이번엔 양자화 한 모습입니다.

양자화를 할 때 중요한 것이 바로 해상도(Resolution)입니다. 전압 레벨 구간을 촘촘하게 나누면 나눌수록 처리할 데이터의 양은 많아지지만 원래의 아날로그 신호에 매우 근사하게 접근할 수 있기 때문이죠.

여기까지 아날로그 신호를 가지고 시간도 구간을 나눠 해당하는 시간구간의 신호 값을 채취하였고, 신호도 전압 레벨에 따라서 그 구간을 나눠 이를 강제적으로 대응되도록 했습니다. 이제 아날로그 신호를 디지털로 처리하기 위하여 딱 중간정도 왔습니다. 마지막으로 남은 과정을 들여다보도록 하겠습니다.

□ Analog to Digital Converter를 이해하기 위한 부호화(Encoding)

이제 표본화와 양자화를 포개어 실제적으로 디지털로 처리할 수 있도록 구성하는 부호화를 알아보도록 하겠습니다. 부호화란 표본화와 양자화가 상호적으로 이뤄진 후에 얻어진 데이터를 가지고 여기에 2진수의 코드를 부여하는 것입니다.

부호화는 해상도에 따라서 코드의 경우의 수가 결정되는 것이 일반적인데, 예를 들어보면 어떠한 시스템에서 아날로그 신호를 처리하는 해상도가 4-Bit라면 각각의 경우에 부여할 수 있는 코드는 0000, 0001, 0010, 0011 … 1011, 1100, 1101, 1110, 1111인 16개의 코드를 부여할 수 있다.

아래의 그림은 표본화와 양자화의 영역을 포개어 실제적으로 디지털화하기 위한 코드를 얻기 위한 코드화를 수행하는 모습을 나타낸 그래프입니다.

위에서 소개한 "표본화 – 양자화 – 부호화"의 순서로 아날로그 신호를 처리하면 Transistor의 On/Off만으로 모든 데이터를 처리하는 디지털 시스템(우리가 학습하는 Microcontroller도 해당)에서도 실제 환경인 아날로그 데이터를 디지털 영역으로 가져와 처리하여 실생활에 유용한 기능을 제공하는 시스템을 구성할 수 있습니다.

어떠셨나요? 이번 기회에 ADC의 이해에 필요한 표본화와 양자화 그리고 부호화에 대해서 제 나름 쉽게 설명해드렸는데, 혹 부족한 부분이 있지는 않으신지요? 더 궁금한 사항이 있으시다면, 댓글이나 쪽지로 문의 주시면 제가 알고있는 선에서 최대한 도움을 드리도록 하겠습니다. 그럼 밤이 깊었네요. 여러분 모두 편안한 월요일 저녁 되세요~^^

Toplist

최신 우편물

태그