아날로그-디지털 변환기
아날로그-디지털 변환기(ADC)는 아날로그 신호를 이진 코드로 인코딩하여 디지털 회로가 실제 세계와 인터페이스할 수 있도록 하는 데이터 변환기입니다.
ADC (아날로그-디지털 변환기 )를 사용하면 마이크로 프로세서 제어 회로, Arduino, Raspberry Pi 및 기타 디지털 논리 회로가 실제 세계와 통신할 수 있습니다. 실제 세계에서 아날로그 신호는 소리, 빛, 온도 또는 움직임을 측정할 수 있는 다양한 소스와 센서에서 나오는 값을 지속적으로 변화시키며, 많은 디지털 시스템은 이러한 변환기에서 나오는 아날로그 신호를 측정하여 주변 환경과 상호 작용합니다.
아날로그 신호는 연속적일 수 있고 무한한 수의 서로 다른 전압 값을 제공할 수 있는 반면, 디지털 회로는 논리 "1"(HIGH) 또는 논리 "0"(LOW)의 두 가지 개별 상태만 갖는 이진 신호로 작동합니다. 따라서 지속적으로 변화하는 아날로그 신호와 개별 디지털 신호의 서로 다른 두 영역 사이를 변환할 수 있는 전자 회로가 필요하며, 이것이 바로 아날로그-디지털 변환기 (A/D)가 필요한 곳입니다.
기본적으로 아날로그-디지털 변환기는 한 순간에 아날로그 전압의 스냅샷을 찍고 이 아날로그 전압을 나타내는 디지털 출력 코드를 생성합니다. 이 아날로그 전압 값을 나타내는 데 사용되는 이진수 또는 비트 수는 A/D 변환기의 분해능에 따라 다릅니다.
예를 들어 4비트 ADC는 15분의 1(2 4 – 1) 분해능을 갖는 반면, 8비트 ADC는 255분의 1(2 8 – 1) 분해능을 갖습니다. 따라서 아날로그-디지털 변환기는 알려지지 않은 연속 아날로그 신호를 가져와 이를 2n 비트의 "n" 비트 이진수로 변환 합니다 .
하지만 먼저 다음과 같이 아날로그(또는 아날로그) 신호와 디지털 신호의 차이점을 상기해 보겠습니다.
아날로그 및 디지털 신호
여기에서 전위차계의 와이퍼 단자가 0V와 V MAX 사이에서 회전 하면 와이퍼 위치에 대해 무한한 수의 출력 값을 갖는 연속 출력 신호(또는 전압)를 생성하는 것을 볼 수 있습니다. 전위차계 와이퍼가 한 위치에서 다음 위치로 조정됨에 따라 두 전압 레벨 사이에 급격한 또는 단계적 변화가 발생하지 않아 지속적으로 가변적인 출력 전압이 생성됩니다. 아날로그 신호의 예로는 온도, 압력, 액체 수위, 광도 등이 있습니다.
디지털 회로의 경우 전위차계 와이퍼는 직렬 저항 체인의 각 접합부에 차례로 연결되어 기본 전위 분배기 네트워크를 형성하는 단일 회전 스위치로 대체되었습니다. 스위치가 한 위치(또는 노드)에서 다음 출력 전압으로 회전하면 V OUT 은 표시된 것처럼 각 스위칭 동작 또는 단계에서 1.0V의 배수를 나타내는 개별적이고 고유한 전압 단계에서 빠르게 변경됩니다.
예를 들어 출력 전압은 2V, 3V, 5V 등이 되지만 2.5V, 3.1V 또는 4.6V는 아닙니다. 다중 위치 스위치를 사용하고 전위 분배기 네트워크 내의 저항 요소 수를 늘려 개별 스위칭 단계 수를 늘리면 더 미세한 출력 전압 레벨을 쉽게 생성할 수 있습니다.
그러면 아날로그 신호와 디지털 신호의 주요 차이점은 "아날로그" 양은 시간이 지남에 따라 지속적으로 변하는 반면 "디지털" 양은 불연속(단계별) 값을 갖는다는 점을 알 수 있습니다. "낮음"에서 "높음"으로 또는 "높음"에서 "낮음"으로.
그렇다면 무한한 수의 값을 갖는 지속적으로 변화하는 신호를 디지털 회로에서 사용할 수 있는 고유한 값 또는 단계를 갖는 신호로 어떻게 변환할 수 있습니까?
아날로그-디지털 변환기
아날로그 전압 신호를 가져와 이를 동등한 디지털 신호로 변환하는 과정은 다양한 방법으로 수행할 수 있으며 다양한 제조업체에서 제공하는 ADC08xx 시리즈와 같은 아날로그-디지털 변환기 칩이 많이 있지만 다음과 같은 작업이 가능합니다. 개별 구성요소를 사용하여 간단한 ADC를 구축합니다.
간단하고 쉬운 방법 중 하나는 비교기가 다양한 전압 레벨을 감지하고 해당 스위칭 상태를 인코더에 출력하는 데 사용되는 플래시 , 동시 또는 다중 비교기 변환기라고도 하는 병렬 인코딩을 사용하는 것입니다.
병렬 "플래시" A/D 변환기는 특정 n비트 분해능에 대한 등가 출력 코드를 생성하기 위해 일련의 상호 연결되어 있지만 동일한 간격의 비교기와 정밀 저항기의 직렬 네트워크에서 생성된 전압 기준을 사용합니다.
병렬 또는 플래시 변환기의 장점은 아날로그 전압이 비교기 입력에 적용되는 순간 기준 전압과 비교되므로 구성이 간단하고 타이밍 클록이 필요하지 않다는 것입니다. 아래 비교기 회로를 고려하십시오.
비교기 회로
두 개의 아날로그 입력(하나는 양극, 하나는 음극)이 있고 서로 다른 두 전압 레벨의 크기를 비교하는 데 사용할 수 있는 LM339N과 같은 아날로그 비교기.
비교기의 한 입력에는 전압 입력(V IN ) 신호가 적용되고, 다른 입력에는 기준 전압(V REF )이 적용됩니다. 비교기 입력의 두 전압 레벨을 비교하여 비교기 디지털 논리 출력 상태("1" 또는 "0")를 결정합니다.
기준 전압 V REF 는 다른 입력에 적용된 입력 전압 V IN 과 비교됩니다. LM339 비교기의 경우 입력 전압이 기준 전압보다 작으면(V IN < V REF ) 출력은 "OFF"이고, 기준 전압보다 크면(V IN > V REF ) 출력은 "OFF"입니다. "ON" 상태가 됩니다. 따라서 비교기는 두 전압 레벨을 비교하고 둘 중 어느 것이 더 높은지 결정합니다.
위의 간단한 예에서 V REF 는 R 1 및 R 2 에 의해 설정된 전압 분배기 네트워크에서 얻습니다 . 두 저항의 값이 동일한 경우(즉, R 1 = R 2 ) 기준 전압 레벨은 공급 전압의 절반, 즉 V/2와 같습니다. 따라서 오픈 컬렉터 출력을 갖는 비교기의 경우 V IN이 V/2보다 작으면 출력은 HIGH이고, V IN이 V/2보다 크면 출력은 1비트 ADC로 작동하는 LOW입니다.
그러나 전압 분배기 네트워크에 더 많은 저항기를 추가하면 저항기의 저항에 의해 결정된 양만큼 공급 전압을 효과적으로 "분할" 수 있습니다. 그러나 전압 분배기 네트워크에 사용하는 저항이 많을수록 더 많은 비교기가 필요합니다.
일반적으로 "n" 비트 바이너리 출력을 변환하려면 2 n - 1 개의 비교기가 필요합니다. 여기서 "n"은 일반적으로 8 ~ 16 범위에 있습니다. 위 예에서 단일 비트 ADC는 2 1 - 1은 V IN이 V/2 기준 전압보다 큰지 작은지를 결정하는 "1" 비교기와 동일합니다.
이제 2비트 ADC를 생성하는 경우 표시된 대로 4-2비트 인코더 회로에 필요한 4개의 디지털 값에 해당하는 4개의 서로 다른 전압 레벨이 필요하므로 "3" 비교기인 2 2 – 1이 필요합니다 . .
2비트 아날로그-디지털 변환기 회로
이는 다음과 같은 아날로그 입력의 가능한 네 가지 값 모두에 대한 2비트 출력 코드를 제공합니다.
2비트 A/D 변환기 출력
아날로그 입력 전압(V IN ) |
비교기 출력 | 디지털 출력 |
||||
디 3 | 디 2 | 디 1 | 디 0 | 질문 1 | 질문 0 | |
0~1V | 0 | 0 | 0 | 0 | 0 | 0 |
1~2V | 0 | 0 | 1 | 엑스 | 0 | 1 |
2~3V | 0 | 1 | 엑스 | 엑스 | 1 | 0 |
3~4V | 1 | 엑스 | 엑스 | 엑스 | 1 | 1 |
여기서 "X"는 "상관 없음"입니다. 이는 논리 "0" 또는 논리 "1" 조건입니다.
그렇다면 이 아날로그-디지털 변환기는 어떻게 작동합니까? A/D 변환기가 유용하려면 아날로그 입력 신호의 의미 있는 디지털 표현을 생성해야 합니다. 이 간단한 2비트 ADC 예에서는 단순화를 위해 입력 전압 V IN 이 0~4V 사이라고 가정하고 V REF 와 저항성 전압 분배기 네트워크를 각 저항기에서 1V 떨어지도록 설정했습니다.
V IN이 0과 1V 사이에 있으면(<1V) 세 비교기 모두의 입력이 기준 전압보다 작아지므로 해당 출력은 LOW가 되고 인코더는 핀 Q 0에서 이진 영(00) 조건을 출력합니다 . 그리고 질문 1 . V IN이 증가하고 1V를 초과하지만 2V 미만인 경우 기준 전압 입력이 1V로 설정된 비교기 U1(1V<V IN <2V)은 이 전압 차이를 감지하고 HIGH 출력을 생성합니다. 4-to-2 비트 인코딩으로 사용되는 우선 순위 인코더는 D 1 의 입력 변화를 감지 하고 "1"(01)의 이진 출력을 생성합니다.
TTL 74LS148과 같은 우선 순위 인코더는 각 개별 입력에 우선 순위 수준을 할당합니다. 우선순위 인코더 출력은 가장 높은 우선순위를 갖는 현재 활성 입력에 해당합니다. 따라서 우선순위가 더 높은 입력(D 0 에 비해 D 1 )이 있으면 우선순위가 낮은 다른 모든 입력은 무시됩니다. 따라서 논리 레벨 "1"에 동시에 두 개 이상의 입력이 있는 경우 D 0 및 D 1 의 실제 출력 코드는 지정된 우선순위가 가장 높은 입력에만 해당합니다.
이제 V IN이 다음 기준 전압 레벨인 2V 이상으로 증가하면 비교기 U2가 변화를 감지하고 HIGH 출력을 생성합니다. 그러나 입력 D 2가 입력 D 0 또는 D 1 보다 우선순위가 높기 때문에 우선순위 인코더는 이진 "2"(10) 코드를 출력하고, V IN 이 3V를 초과하면 "3"의 이진 코드 출력을 생성합니다( 11). V IN 이 각 기준 전압 레벨 사이에서 감소하거나 변경됨 에 따라 각 비교기는 인코더에 HIGH 또는 LOW 조건을 출력하고 인코더는 V IN 에 대해 00과 11 사이의 2비트 이진 코드를 생성합니다 .
이것은 모두 훌륭하지만 우선 순위 인코더는 4-2비트 장치로 사용할 수 없으며 TTL 74LS148 또는 둘 다 8비트 장치인 CMOS 4532와 같은 상용 장치를 사용하는 경우 6개 이진 비트는 사용되지 않습니다. 그러나 그림과 같이 디지털 Ex-OR 게이트와 신호 다이오드 매트릭스를 사용하여 간단한 인코더 회로를 만들 수 있습니다.
다이오드를 사용하는 2비트 ADC
여기서 비교기의 출력은 다이오드에 공급되기 전에 Exclusive-OR 게이트를 사용하여 인코딩됩니다. 2개의 외부 풀다운 저항이 출력 및 접지(0V)에 사용되어 LOW 상태를 보장하고 다이오드가 역방향 바이어스될 때 출력이 플로팅되는 것을 중지합니다.
이전 회로와 마찬가지로 V IN 값에 따라 어느 비교기가 출력 신호 HIGH(또는 LOW)를 생성하는지를 배타적 OR 게이트에 생성하여 하나의 입력 또는 다른 입력이 HIGH(둘 다는 아님)인 경우 결정합니다. (부울 표현은 Q = A .B + A. B 입니다 ). 이러한 Ex-OR 게이트는 조합 논리 AND-OR-NAND 게이트를 사용하여 구성할 수도 있습니다.
4-2 변환기의 두 가지 설계에서 문제는 이 간단한 2비트 A/D 변환기의 분해능이 1V라는 점입니다. 왜냐하면 우리가 본 것처럼 V IN 의 아날로그 입력 전압은 1V에서 1V만큼 변경되어야 하기 때문입니다. 인코더가 출력 코드를 변경하도록 명령합니다. 출력 분해능을 향상시키는 한 가지 방법은 더 많은 비교기를 사용하여 출력 분해능을 3비트 A/D 변환기로 높이는 것입니다.
3비트 아날로그-디지털 변환기
위의 병렬 ADC는 0V ~ 3V 범위의 아날로그 입력 전압을 변환하여 2비트 바이너리 코드를 생성합니다. 3비트 디지털 로직 시스템은 2 3 = 8개의 서로 다른 디지털 출력을 생성할 수 있으므로 아날로그 입력 전압은 8개의 기준 전압 레벨과 비교될 수 있으며 각 전압 레벨은 기준 전압의 1/8(V/8)과 같습니다. 따라서 이제 0.5(4/8)V의 분해능을 측정할 수 있으며 표시된 대로 000(0)과 111(7) 사이의 3비트 이진 코드 출력에 대해 2 3 – 1 비교기가 필요합니다.
3비트 아날로그-디지털 변환기 회로
이는 다음과 같은 아날로그 입력의 가능한 8개 값 모두에 대한 3비트 출력 코드를 제공합니다.
3비트 A/D 변환기 출력
아날로그 입력 전압(V IN ) |
비교기 출력 | 디지털 출력 |
|||||||||
디 7 | 디 6 | 디 5 | 디 4 | 디 3 | 디 2 | 디 1 | 디 0 | Q 2 | 질문 1 | 질문 0 | |
0~0.5V | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0.5~1.0V | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 엑스 | 0 | 0 | 1 |
1.0~1.5V | 0 | 0 | 0 | 0 | 0 | 1 | 엑스 | 엑스 | 0 | 1 | 0 |
1.5~2.0V | 0 | 0 | 0 | 0 | 1 | 엑스 | 엑스 | 엑스 | 0 | 1 | 1 |
2.0~2.5V | 0 | 0 | 0 | 1 | 엑스 | 엑스 | 엑스 | 엑스 | 1 | 0 | 0 |
2.5~3.0V | 0 | 0 | 1 | 엑스 | 엑스 | 엑스 | 엑스 | 엑스 | 1 | 0 | 1 |
3.0~3.5V | 0 | 1 | 엑스 | 엑스 | 엑스 | 엑스 | 엑스 | 엑스 | 1 | 1 | 0 |
3.5~4.0V | 1 | 엑스 | 엑스 | 엑스 | 엑스 | 엑스 | 엑스 | 엑스 | 1 | 1 | 1 |
여기서 다시 "X"는 "상관 없음"이며 논리 "0" 또는 논리 "1" 입력 조건입니다.
그러면 ADC의 분해능을 높이면 출력 바이너리 비트 수가 늘어날 뿐만 아니라 필요한 비교기 수와 전압 레벨도 늘어난다는 것을 알 수 있습니다.
따라서 4비트 분해능에는 15(2 4 – 1)개의 비교기가 필요하고, 8비트 분해능에는 255(2 8 – 1)개의 비교기가 필요하며, 10비트 아날로그-디지털 변환기에는 1023개의 비교기가 필요합니다. 이러한 유형의 아날로그-디지털 변환기 회로의 경우 필요한 출력 비트 수가 많을수록 회로가 더 복잡해집니다.
그러나 이러한 유형의 병렬 또는 플래시 A/D 변환기의 장점은 실시간 변환 속도가 상대적으로 빠르며 판독을 생성하는 데 몇 개의 바이너리 비트만 필요한 경우 프로젝트의 일부로 쉽게 구축할 수 있다는 것입니다. 아날로그 입력 신호의 전압 값을 표시하는 디지털 디스플레이.
센서 또는 변환기에서 아날로그 입력 신호를 가져와 아날로그-디지털 변환기를 사용하여 입력 인터페이싱 회로의 일부로 디지털 이진 코드로 변환하는 것뿐만 아니라 이진 코드를 가져와 이를 동등한 신호로 변환할 수도 있습니다. 모터나 액추에이터를 제어하기 위한 출력 인터페이스용 디지털-아날로그 변환기를 사용하거나 일반적으로 오디오 애플리케이션에서 아날로그 수량을 사용합니다.
디지털 회로에 대한 다음 튜토리얼에서는 여기서 살펴본 아날로그-디지털 변환기 와 정반대인 디지털-아날로그 변환기 또는 간단히 DAC를 살펴보겠습니다 . DAC는 연산 증폭기와 저항 분배기 네트워크를 사용하여 "n"비트 이진수를 동등한 아날로그 출력 전압 또는 전류 신호로 변환합니다.