MoonNote

반응형
     

 

 

DAC(Digital-to-Analog Converter)란,

 DAC란, Digital to Analog Converter라고 하여 디지털 신호를 아날로그 신호로 변환시켜 주는 장치를 말합니다. 이전 ADC 관련 포스팅에서 '아날로그 신호를 측정'할 때 ADC를 소개하였다면 DAC의 경우 '아날로그 신호를 생성'할 때 사용된다고 보시면 되겠습니다. 즉, ADC는 AI(Analog Input), DAC는 AO(Analog Output)로 분류할 수 있겠네요. (ADC 참조 링크)

DAC 데이터 생성 과정

 

DAC 블록도를 살펴보면 디지털 신호를 변환하기 위해 아래와 같이 n-bit Register, Voltage Switching, Summing Circuit, Output Amplifier 순서로 구성되어 있습니다. 

n-bit Register, Voltage Switching, Summing Circuit, Output Amplifier

 

n-bit DAC Register

 생성하고자하는 아날로그 출력 신호를 나타내는 디지털 입력 값을 유지합니다. n비트는 DAC의 분해능(Resolution) 스펙으로 기준 전압(\(V_{ref}\))을 기준으로 디지털 입력 값에 대한 아날로그 출력이 정해져 있습니다. 예를들어, 0~10V 아날로그 출력으로 변환하는 3비트 분해능 DAC라고 가정할 때 \(V_{ref}/2^{n}\) 에 의해 10V/8 = 1.25V 단위로 출력 값을 생성하게 되는 것입니다.

 

TIP
 
 

이해를 돕기 위한 NI 사이트의 DAC 이미지를 첨부하였습니다. 보시면 3비트와 16비트 DAC를 비교하였을 때 16비트의 경우 153 uV 스텝으로 출력 레벨이 조정 가능함을 알 수 있습니다.

DAC Resolution Between Two Waveforms (출처 : ni.com)

 

 

 

Voltage Switching

 Register에 저장된 디지털입력 값들을 출력 회로의 전압 소스에 연결하거나 분리하는 스위치 제어입니다. 이를 통해 적절한 전압 소스를 선택하는 형태이며 아래는 참고 이미지입니다.

Capacitor를 이용한 Binary Method
n비트에서의 D/A Converter 예시

 

 

Summing Circuit

 스위칭 메커니즘에서 생선된 전압을 결합하는 회로입니다. 일반적으로 합산 증폭기 구성으로 배열된 저항을 가지고 아래와 같이 구성됩니다.

Summing junction 부분(빨강)

 

Output Amplifier

 합산 회로(Summing Circuit)에 의해 생성된 전압을 증폭하여 원하는 출력 전압 범위를 맞추어줍니다. 스피커, 액추에이터 또는 측정 기기와 같은 외부 부하를 구동하기 위한 진폭과 전력을 가지기 위해 사용되어진다고 보시면 되겠습니다.

DAC의 종류

회로 방식에 따라 DAC는 아래와 같이 분류됩니다.

DAC 종류 (출처 : 위키백과)

 

 

저항 래더형(Resistor Ladder(=R-2R Ladder) DAC)

 R-2R resistive ladder network로도 부르며 저항기의 반복 단위로 만들어진 전기 회로입니다. 이름에서 알 수 있듯이 저항 R과 2배 큰 2R을 가지고 구성하는 Digital-to-Analog Converter입니다. 이름 그대로 사다리 형태의 저항 구성으로 2가지 저항만 사용하기 때문에 저항 정확도를 유지하기 쉽습니다. 아래는 4비트 R-2R 저항 래더형 네트워크의 예시 이미지입니다.

4bit R-2R Resistance Ladder Network (출처 : Electronics Tutorials)

 

복잡해보일 수 있지만 직▪병렬 회로 조합으로 저항기를 연결하고 출력의 비례 값을 찾기 위한 간단한 회로 법칙을 사용하여 입력 소스로 돌아가는 것이 전부입니다. 두 병렬 저항기와 직렬 저항기에 대한 단순화된 방정식을 이용하면 Ladder Network의 등가 저항(\(R_{A}\))을 아래와 같이 구할 수 있습니다. 

저항기 R1과 R2는 "평행", R3와는 "직렬" 연결 (출처 : Electronics Tutorials)

 

 이후 \(R_{A}\)는 2R이되면서 \(R_{4}\)와 평행 관계가 성립됩니다. 이러한 패턴을 반복하여 각 비트 R-2R 저항 래더 네트워크와 스위칭에 따른 입력 V 또는 GND를 통해 각 비트 데이터를 생성하는 것이죠. 본문에서 자세한 과정은 생략하기에 필요시 추가 검색 부탁드리며 수식 및 참고 테이블표만 첨부합니다.

4-bit R-2R DAC Voltage Output (출처 : Electronics Tutorials)

 

저항 스트링형(Resistor String DAC)

가장 간단한 DAC로 \(2^{n}\)만큰 저항과 스위치가 필요합니다. 예를들어 3bit 분해능(Resolution)의 DAC라고한다면 저항과 스위치가 각각 8개 필요한 것이죠. 4bit라면 16개, 8bit라면 256개의 저항과 스위치가 필요합니다.

Resistor String DAC

 

 저항 스트링 DAC는 입력 비트를 통해 특정 위치의 전압을 선택하는 구조입니다. 구조가 단순하여 비교적 쉽게 구현 가능하지만 직렬로 연결된 스트링을 통해 아래 예시 이미지처럼 단계적으로 전압을 조정하는 형태이기에 속도면에서는 R-2R보다 느릴 수 있습니다. 또한, 분해능이 높아질수록 회로가 커질 수 밖에 없습니다. 이러한 특징으로 인해 R-2R Ladder는 고속과 고정밀을 요구하는 환경에 적합하며 Resistor String의 경우 상대적으로 저해상도에서 경제적이고 안정적인 솔루션을 제공할 때 활용됩니다.

예시 이미지 : 3-bit R-string DAC with binary-tree decoding

 

온도계 코드(Thermometer Code DAC)

온도계 코드란  각 상태가 이전 상태를 포함하는 방식으로 숫자가 증가할수록 더 많은 비트가 1이되는 구조입니다. Binary 코드의 경우 각 비트의 값이 독립적으로 '0' 또는 '1'이 되지만, 온도계 코드는 왼쪽에서 오른쪽으로 진행되면서 모든 비트가 연속적으로 '1'이 되는 형태라고 보시면 될 것 같습니다. 아래는 참고 이미지이며 해당 코드를 사용하는 이유는 출력의 경우 스위칭 과정에서 이전 데이터가 남아있어 의도하지 않은 노이즈가 발생하게 되는데(글리치) 이를 해결하기 위해 온도계 코드를 사용합니다. 

온도계 코드(Thermometer Code)

 

델타-시그마형(Delta-Sigma DAC)

델타-시그마 형은 신호의 값을 대강 예상하여 오차를 구한 다음 누적된 오차를 이용하여 오차를 보정해 나가는 방식입니다. 이 원리에 의하면 누적 오차 값이 유한하다면, 입력 신호의 평균 값과 출력 신호의 평균 값은 같아지게 됩니다. 매우 높은 해상도(18-24 bits)를 가지며 정밀 산업 측정(예: 음성 대역 어플리케이션)에 적합합니다. 단점은 고해상도를 위한 낮은 샘플링 속도가 되겠습니다.

 

 

 

 

 

 

 

 

 

 

 

 

※ 이 글이 도움이 되었다면 "👆🏻구독"과 "🤍공감" 버튼을 클릭해주세요. 클릭 한번이 글 쓰는데 큰 힘이 됩니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band