ADC의 일반적인 작동 원리. 내 손으로 자동 난방 제어하기, 3부. ADC 입력. 병렬 A/D 변환기

다양한 유형의 작동 원리로 인해 발생할 수 있는 주요 문제 범위를 살펴보겠습니다. 순차 계산, 비트별 균형 조정 - 이 단어 뒤에 무엇이 숨겨져 있습니까? 마이크로컨트롤러 ADC의 작동 원리는 무엇입니까? 우리는 기사의 틀 내에서 이러한 질문과 다른 여러 질문을 고려할 것입니다. 처음 세 부분은 일반 이론에 전념하고 네 번째 부제부터 작동 원리를 연구합니다. 다양한 문헌에서 ADC 및 DAC라는 용어를 접할 수 있습니다. 이러한 장치의 작동 방식은 약간 다르므로 혼동하지 마십시오. 따라서 이 기사에서는 아날로그에서 디지털 형식으로, DAC는 그 반대로 작동하는 방식을 살펴보겠습니다.

정의

ADC의 동작원리를 살펴보기에 앞서 ADC가 어떤 장치인지 알아보자. 아날로그-디지털 변환기는 물리량을 해당 수치 표현으로 변환하는 장치입니다. 초기 매개변수는 전류, 전압, 커패시턴스, 저항, 샤프트 회전 각도, 펄스 주파수 등 거의 모든 것이 될 수 있습니다. 그러나 확실히 우리는 하나의 변환에만 작업할 것입니다. 이것이 "전압 코드"입니다. 이 작업 형식을 선택한 것은 우연이 아닙니다. 결국 ADC(이 장치의 작동 원리)와 그 기능은 어떤 측정 개념이 사용되는지에 따라 크게 달라집니다. 이는 특정 값을 이전에 설정된 표준과 비교하는 과정으로 이해됩니다.

ADC 특성

주요한 것은 비트 깊이와 변환 빈도입니다. 첫 번째는 비트로 표현되고 두 번째는 초당 개수로 표시됩니다. 최신 아날로그-디지털 변환기는 24비트 분해능 또는 GSPS 단위에 도달하는 변환 속도를 가질 수 있습니다. ADC는 한 번에 하나의 특성만 제공할 수 있습니다. 표시기가 클수록 장치 작업이 더 어려워지고 장치 자체 비용이 더 많이 듭니다. 그러나 다행스럽게도 장치 속도를 희생하여 필요한 비트 깊이 표시기를 얻을 수 있습니다.

ADC 유형

작동 원리는 장치 그룹에 따라 다릅니다. 다음 유형을 살펴보겠습니다.

  1. 직접 변환.
  2. 연속적인 근사를 사용합니다.
  3. 병렬 변환 포함.
  4. 전하 밸런싱(델타-시그마) 기능을 갖춘 아날로그-디지털 변환기입니다.
  5. ADC 통합.

다양한 아키텍처와 고유한 특성을 지닌 다른 많은 컨베이어 및 조합 유형이 있습니다. 그러나 기사의 틀 내에서 고려될 샘플은 이러한 특이성을 지닌 장치의 틈새 시장에서 지표 역할을 한다는 사실 때문에 흥미롭습니다. 따라서 ADC의 작동 원리와 물리적 장치에 대한 의존성을 연구해 보겠습니다.

직접 아날로그-디지털 변환기

그들은 지난 세기의 60년대와 70년대에 큰 인기를 얻었습니다. 80년대부터 이런 형태로 생산되어 왔습니다. 이는 상당한 성능을 자랑할 수 없는 매우 단순하고 원시적인 장치입니다. 비트 폭은 일반적으로 6~8비트이며 속도는 1GSPS를 초과하는 경우가 거의 없습니다.

이 유형의 ADC의 작동 원리는 다음과 같습니다. 비교기의 양극 입력이 동시에 입력 신호를 수신합니다. 특정 크기의 전압이 음극 단자에 적용됩니다. 그런 다음 장치는 작동 모드를 결정합니다. 이는 기준 전압 덕분에 수행됩니다. 8개의 비교기가 있는 장치가 있다고 가정해 보겠습니다. ½ 기준 전압이 적용되면 그 중 4개만 켜집니다. 우선 순위 인코더가 생성되어 출력 레지스터에 기록됩니다. 장점과 단점에 관해서는 이 작업을 통해 고속 장치를 만들 수 있다고 말할 수 있습니다. 그러나 필요한 비트 깊이를 얻으려면 열심히 노력해야 합니다.

비교기 수에 대한 일반 공식은 다음과 같습니다: 2^N. N 아래에는 자릿수를 입력해야 합니다. 앞에서 설명한 예(2^3=8)를 다시 사용할 수 있습니다. 세 번째 숫자를 얻으려면 총 8개의 비교기가 필요합니다. 이것이 처음 만들어진 ADC의 작동원리이다. 별로 편리하지 않아서 이후에 다른 아키텍처가 등장했습니다.

연속 근사 아날로그-디지털 변환기

이는 "가중치" 알고리즘을 사용합니다. 간단히 말해서, 이 기술을 사용하여 작동하는 장치를 간단히 직렬 카운팅 ADC라고 합니다. 작동 원리는 다음과 같습니다. 장치는 입력 신호의 값을 측정한 다음 특정 방법을 사용하여 생성된 숫자와 비교합니다.

  1. 가능한 기준 전압의 절반이 설정됩니다.
  2. 신호가 1번 포인트부터 값 제한을 초과한 경우 남은 값의 중간에 있는 숫자와 비교됩니다. 따라서 우리의 경우 기준 전압의 3/4가 됩니다. 기준 신호가 이 표시기에 도달하지 않으면 동일한 원리에 따라 간격의 다른 부분과 비교가 수행됩니다. 이 예에서는 ¼ 기준 전압입니다.
  3. 2단계는 N번 반복되어야 하며, 이는 N비트의 결과를 제공합니다. 이는 N번의 비교를 수행하기 때문입니다.

이러한 작동 원리를 통해 연속 근사 ADC인 상대적으로 높은 변환 속도를 갖는 장치를 얻을 수 있습니다. 보시다시피 작동 원리는 간단하며 이러한 장치는 다양한 경우에 적합합니다.

병렬 A/D 변환기

직렬 장치와 유사하게 작동합니다. 계산식은 (2^H)-1입니다. 앞서 고려한 경우에는 (2^3)-1 비교기가 필요합니다. 작동하려면 이러한 장치의 특정 배열이 사용되며 각 장치는 입력 전압과 개별 기준 전압을 비교할 수 있습니다. 병렬 아날로그-디지털 변환기는 매우 빠른 장치입니다. 그러나 이러한 장치의 설계 원리는 기능을 유지하려면 상당한 전력이 필요하다는 것입니다. 따라서 배터리 전원으로 사용하는 것은 바람직하지 않습니다.

비트 밸런싱 기능을 갖춘 아날로그-디지털 변환기

이전 장치와 유사한 방식으로 작동합니다. 따라서 비트별 밸런싱 ADC의 기능을 설명하기 위해 초보자를 위한 동작 원리를 말 그대로 한눈에 살펴보겠습니다. 이러한 장치는 이분법 현상에 기반을 두고 있습니다. 즉, 측정값의 최대값 중 일정 부분을 순차적으로 비교하는 것입니다. ½, 1/8, 1/16 등의 값을 사용할 수 있습니다. 따라서 아날로그-디지털 변환기는 N 반복(연속 단계)으로 전체 프로세스를 완료할 수 있습니다. 또한 H는 ADC의 비트 용량과 동일합니다(이전에 제공된 공식 참조). 따라서 장비의 속도가 특히 중요한 경우 시간이 크게 단축됩니다. 상당한 속도에도 불구하고 이러한 장치는 낮은 정적 오류도 특징으로 합니다.

전하 밸런싱(델타-시그마) 기능을 갖춘 아날로그-디지털 변환기

이는 특히 작동 원리로 인해 가장 흥미로운 유형의 장치입니다. 이는 입력 전압을 적분기에 의해 축적된 전압과 비교하는 것으로 구성됩니다. 음 또는 양 극성의 펄스가 입력에 공급됩니다(모두 이전 작업의 결과에 따라 다름). 따라서 이러한 아날로그-디지털 변환기는 간단한 추적 시스템이라고 말할 수 있습니다. 하지만 이는 ADC를 이해하기 위한 비교 예일 뿐입니다. 작동 원리는 체계적이지만 이 아날로그-디지털 변환기의 효과적인 기능만으로는 충분하지 않습니다. 최종 결과는 디지털 저역 통과 필터를 통해 흐르는 1과 0의 끝없는 흐름입니다. 특정 비트 시퀀스가 ​​​​이들로부터 형성됩니다. 1차 ADC 컨버터와 2차 ADC 컨버터는 구별됩니다.

아날로그-디지털 변환기 통합

이는 이 기사에서 고려할 마지막 특수 사례입니다. 다음으로 이러한 장치의 작동 원리를 일반적인 수준에서 설명하겠습니다. 이 ADC는 푸시풀 통합 기능을 갖춘 아날로그-디지털 변환기입니다. 디지털 멀티미터에서도 비슷한 장치를 찾을 수 있습니다. 높은 정확도를 제공하는 동시에 간섭을 잘 억제하기 때문에 이는 놀라운 일이 아닙니다.

이제 작동 원리에 중점을 두겠습니다. 이는 입력 신호가 고정된 시간 동안 커패시터를 충전한다는 사실로 구성됩니다. 일반적으로 이 기간은 장치에 전원을 공급하는 네트워크 주파수 단위(50Hz 또는 60Hz)입니다. 여러 개일 수도 있습니다. 따라서 고주파 간섭이 억제됩니다. 동시에 네트워크 전원의 불안정한 전압이 결과의 정확성에 미치는 영향이 중화됩니다.

아날로그-디지털 변환기의 충전 시간이 끝나면 커패시터는 특정 고정 속도로 방전되기 시작합니다. 장치의 내부 카운터는 이 프로세스 중에 생성되는 클록 펄스 수를 계산합니다. 따라서 기간이 길수록 지표의 중요성이 커집니다.

푸시-풀 통합 ADC는 정확도가 매우 높고 상대적으로 간단한 구성 구조로 인해 초소형 회로로 설계됩니다. 이 작동 원리의 가장 큰 단점은 네트워크 표시기에 대한 의존성입니다. 그 기능은 전원의 주파수 기간의 지속 시간과 연결되어 있음을 기억하십시오.

이것이 이중 통합 ADC가 작동하는 방식입니다. 이 장치의 작동 원리는 매우 복잡하지만 품질 지표를 제공합니다. 어떤 경우에는 이것이 단순히 필요합니다.

우리는 필요한 작동 원리를 갖춘 APC를 선택합니다.

우리가 특정한 작업에 직면했다고 가정해 보겠습니다. 우리의 모든 요구를 충족하려면 어떤 장치를 선택해야 합니까? 먼저 해상도와 정확도에 대해 이야기해 보겠습니다. 실제로 그들은 서로 매우 약하게 의존하지만 매우 자주 혼란스러워합니다. 12비트 A/D 변환기는 8비트 A/D 변환기보다 정확도가 낮을 ​​수 있다는 점을 기억하십시오. 이 경우 분해능은 측정되는 신호의 입력 범위에서 몇 개의 세그먼트를 추출할 수 있는지를 측정한 것입니다. 따라서 8비트 ADC에는 2 8 =256개의 이러한 단위가 있습니다.

정확도는 주어진 입력 전압에서 이상적인 값과 변환 결과의 총 편차입니다. 즉, 첫 번째 매개변수는 ADC가 갖고 있는 잠재적인 기능을 특성화하고 두 번째 매개변수는 실제로 우리가 가지고 있는 기능을 보여줍니다. 따라서 높은 정확도로 인해 요구 사항을 충족하는 더 간단한 유형(예: 직접 아날로그-디지털 변환기)이 적합할 수 있습니다.

무엇이 필요한지 파악하려면 먼저 물리적 매개변수를 계산하고 상호 작용에 대한 수학적 공식을 구축해야 합니다. 장치를 구성하기 위해 다양한 구성 요소와 원리를 사용할 때 장치 특성에 다른 영향을 미치기 때문에 정적 및 동적 오류가 중요합니다. 더 자세한 정보는 각 특정 장치 제조업체가 제공하는 기술 문서에서 확인할 수 있습니다.

SC9711 ADC를 살펴보겠습니다. 이 장치의 작동 원리는 크기와 기능으로 인해 복잡합니다. 그건 그렇고, 후자에 대해 말하면 정말 다양하다는 점에 유의해야합니다. 예를 들어, 가능한 작동 주파수 범위는 10Hz ~ 10MHz입니다. 즉, 초당 1,000만 개의 샘플을 사용할 수 있습니다! 그리고 장치 자체는 견고한 것이 아니라 모듈식 구조를 가지고 있습니다. 그러나 일반적으로 많은 수의 신호를 처리해야 하는 복잡한 기술에 사용됩니다.

결론

보시다시피 ADC는 다양한 작동 원리를 기반으로 합니다. 이를 통해 우리는 귀하의 요구를 충족시킬 수 있는 장치를 선택할 수 있으며 동시에 귀하는 사용 가능한 자금을 현명하게 관리할 수 있습니다.

ADC - 아날로그-디지털 변환기. 이름에서 아날로그 신호가 입력에 공급되어 숫자로 변환된다는 것을 짐작할 수 있습니다.

가장 먼저 말해야 할 것은 마이크로 컨트롤러의 ADC는 전압만 측정할 수 있다는 것입니다. 다른 물리량을 측정하려면 먼저 전압으로 변환해야 합니다. 신호는 항상 기준 전압이라는 지점을 기준으로 측정되며, 이 동일한 지점이 측정할 수 있는 최대값입니다. 기준 전압 소스(VS)로는 매우 안정적인 전압 소스를 선택하는 것이 좋습니다. 그렇지 않으면 모든 측정이 기준에 맞춰 춤을 추게 됩니다.

가장 중요한 특성 중 하나는 측정 정확도에 영향을 미치는 분해능입니다. 전체 측정 범위는 여러 부분으로 나뉩니다. 최소 0, 최대 전압 ION. 8비트 ADC의 경우 이는 2^8=256 값이고, 10비트 ADC의 경우 2^10=1024 값입니다. 따라서 비트 깊이가 높을수록 신호를 더 정확하게 측정할 수 있습니다.

0~10V의 신호를 측정한다고 가정해 보겠습니다. 우리가 사용하는 마이크로컨트롤러는 10비트 ADC를 갖춘 Atmega8입니다. 이는 10V 범위가 1024개의 값으로 나누어진다는 의미입니다. 10V/1024=0.0097V - 이 단계를 통해 전압을 측정할 수 있습니다. 하지만 마이크로 컨트롤러는 0.0097, 0.0098, 0.0099... 값을 동일하게 간주한다는 점을 명심하세요.

그럼에도 불구하고 0.01 단계는 꽤 좋습니다. 그러나 이 정확도가 충족되지 않는 몇 가지 권장 사항이 있습니다. 예를 들어 10비트 정확도로 측정하는 경우 ADC가 작동하는 주파수는 50-200kHz여야 합니다. 첫 번째 변환에는 25주기가 걸리고 그 이후에는 13주기가 걸립니다. 따라서 200kHz의 주파수에서 최대값을 짜낼 수 있습니다.
200,000/13 = 15,384 측정값.

내부 소스 또는 외부 소스를 기준 전압 소스로 사용할 수 있습니다. 내부 전원 전압(2.3-2.7V)은 안정성이 낮기 때문에 사용하지 않는 것이 좋습니다. 프로그램 설정에 따라 외부 소스가 AVCC 또는 Aref 핀에 연결됩니다.

ADC를 사용하는 경우 AVCC 핀을 연결해야 합니다. AVCC 전압은 마이크로컨트롤러 공급 전압과 0.3V 이상 차이가 나면 안 됩니다. 언급한 바와 같이 최대 측정 전압은 기준 전압(Vref)과 동일하며 2V-AVCC 범위에 있습니다. 따라서 마이크로컨트롤러는 5V 이상을 측정할 수 없습니다.

측정 범위를 확장하려면 전압 분배기를 통해 신호를 측정해야 합니다. 예를 들어 최대 측정 전압은 10V이고 기준 전압은 5V입니다. 측정 범위를 확장하려면 측정된 신호를 2배로 줄여야 합니다.

제수를 계산하는 공식은 다음과 같습니다.

U out = U in R 2 /(R 1 + R 2)

우리의 값을 공식으로 대체해 보겠습니다.

5 = 10*R2/(R1+R2)

저것들. 두 개의 동일한 저항을 가져와 다이어그램에 따라 연결할 수 있습니다

따라서 분배기를 통해 전압을 측정할 때 결과 ADC 값에 계수 = Uout/Uin을 곱해야 합니다.

측정된 전압을 계산하는 전체 공식은 다음과 같습니다.
U=(기준 전압*ADC 값*분배 계수)/ADC 비트 수

예: 기준 5V, 측정된 ADC 값 = 512, 분할 계수 =2, ADC 10비트.

(5*512*2)/1024=5V - 실제 측정된 전압 값입니다.

일부 프로그래머는 마이크로 컨트롤러가 이에 대한 제수 계수를 자동으로 계산하고 출력 신호가 표준 장치로 측정되고 이 값이 프로그램에 입력되도록 프로그램을 작성합니다. 마이크로컨트롤러 자체는 실제 전압을 각 ADC 값과 연관시킵니다. 프로세스 자체는 일회성이며 이를 교정이라고 합니다.

소프트웨어 구현으로 넘어 갑시다. 지정된 매개변수를 사용하여 프로젝트를 생성합니다. 또한 정보를 표시하기 위해 디스플레이를 포트 D에 연결합니다.

측정은 자동 모드에서 수행되고 코드는 인터럽트에서 처리되며 기준 전압은 AVCC 핀에 연결됩니다. 기본적으로 수신된 데이터만 처리하면 됩니다. 측정된 데이터는 adc_data 변수에 저장됩니다. 여러 채널을 스캔해야 하는 경우 스캔할 채널을 선택하면 데이터는 adc_data의 핀 0, adc_data의 핀 1 등에 대한 것입니다.

메인 루프에 다음 줄을 추가합니다.

결과=((5.00*adc_data)/1024.00); //ADC 값을 볼트로 변환
sprintf(lcd_buffer,"U=%.2fV",결과); //결과를 임시 변수에 넣습니다.
lcd_puts(lcd_buffer); //표시하다

작은 참고 사항: 부동 소수점 숫자를 사용하려면 프로젝트 설정에서 (s)printf 기능을 변경해야 합니다: int, 너비를 부동 소수점으로, 너비, 정밀도. 이것이 완료되지 않으면 우리는 10분의 1과 100분의 1을 볼 수 없을 것입니다.

따라서 우리는 ADC 값을 볼트로 변환하여 디스플레이에 표시했습니다. Proteus의 결과는 다음과 같습니다.

저항을 사용하여 전압을 변경할 수 있으며 측정된 전압이 디스플레이에 표시됩니다. 실제 하드웨어에서 조립할 때는 0.1μF 커패시터를 Aref 레그에 연결해야 합니다. 수업이 조금 어려웠지만 마음에 드실 것 같아요.

Proteus 파일 및 펌웨어:

업데이트:
전류 측정:

아날로그(ADC) 컨트롤러 입력. 모든 사람이 그것이 무엇인지, 무엇과 함께 먹는지 즉시 이해하는 것은 아닙니다. 그러므로 나는 내 말로 설명하려고 노력할 것이다.

일반적으로 "아날로그" 입력이란 무엇입니까? 컨트롤러에는 디지털과 아날로그의 두 가지 입력 유형이 있습니다. 디지털은 0과 1이라는 두 가지 값만 가질 수 있습니다. 0은 전압이 없음을 의미하고, 1은 전압을 의미합니다. 정보는 시간이 지남에 따라 펄스 형태로 디지털 입력으로 전송됩니다. 그러나 아날로그 입력은 이 두 값뿐만 아니라 일반적으로 모든 전압을 수용할 수 있습니다.

NM8036 컨트롤러에는 두 개의 아날로그 입력이 있습니다(참조). 이러한 각 입력에는 0~공급 전압(5V) 범위의 모든 전압이 공급될 수 있습니다. 예를 들어 1.8V 또는 3.2V... 간단히 말해서 5V를 넘지 않습니다.

컨트롤러는 이 전압으로 무엇을 합니까? 매우 간단합니다. 디지털 방식으로 측정하고 표현합니다. 또한 이 작업은 0~1023 범위에서 수행됩니다. 이는 이진 데이터(bin-data)이며 상한(1023)은 5V의 전압과 동일합니다. 이것이 아날로그-디지털 변환(ADC)입니다.

그러나 실제 긴장은 바로 실제입니다. 5V - 5V입니다. 여기서는 이 값을 "볼트"라고 합니다. 그리고 맞습니다. 볼트가 있습니다.

그러나 여기서 우리는 이 전압을 다른 물리량(물리학)으로 상상할 수 있습니다. 예를 들어 압력 또는 습도 센서를 입력 또는 온도 센서에 연결했지만 DS1820과 같은 디지털 센서는 아니지만 서미스터 센서를 연결했습니다. 이 서미스터 센서는 0~5V의 전압을 제공합니다(전자 공학자 여러분, 너무 흥분하지 마십시오! 이것은 단지 예일 뿐입니다.). 그러나 전압이 아니라 온도를 아는 것이 중요합니다!

그래서 우리는 이러한 값을 보정합니다. 예를 들어 설정에서 하한을 16도, 상한을 30도로 설정합니다(개인 주택의 난방 제어, 고급 관리자 참조). 이것이 우리가 가지고 있는 센서입니다. 연결된 것입니다. 그리고 소수 자릿수를 2로 설정하겠습니다. 그리고 접두사 C(즉, 섭씨)를 표시하겠습니다.

그리고 우리는 이것으로부터 무엇을 얻나요? 그리고 센서가 입력에 전압(예: 2.5V)을 보내면 컨트롤러는 모든 것을 빠르게 다시 계산하고 512(bin-data), 2.5V(Volts) 및 23.00C의 세 가지 결과 변형을 제공합니다( 섭씨 온도 ). 이는 출력에서 ​​아날로그 전압 값을 생성하는 거의 모든 센서에 대한 작업을 구성할 수 있는 방법입니다.

컨트롤러에 두 개의 아날로그 입력이 존재한다는 것은 위의 센서를 연결할 수 있는 기능 뿐만이 아닙니다. 개인 주택에서 다양한 목적으로 매우 유용할 수 있는 많은 계획을 생각해 낼 수 있습니다. 가능한 것들을 직접 나열하겠습니다.

간단한 2위치 스위치. 데이터 출력은 0V 또는 5V일 수 있습니다. Vcc(+5V), Data(데이터) 및 Gnd(공통 와이어)의 세 가지 와이어로 연결됩니다. 이 스위치를 사용하면 시스템을 프로그래밍할 때 두 가지 다른 부하 작동 모드를 설정할 수 있습니다.

더 많은 위치에 대한 스위치는 더 많은 모드를 프로그래밍할 수 있는 기능을 제공할 수 있습니다. 여기서는 3개의 위치를 ​​가정해 보겠습니다. 각 위치에는 자체 출력 전압이 있습니다. 가장 낮은 위치는 출력 1.25V, 중간 2.5V, 상단 3.75V입니다. 체인의 저항기 수를 늘리면 스위치 위치의 수를 늘릴 수 있습니다.

이는 단계 조정을 위한 옵션이지만 부드러운 조정을 위한 옵션도 있습니다. 여기서 출력전압의 크기는 가변저항 슬라이더의 위치에 따라 달라집니다. 예를 들어 수동 온도 제어에 사용할 수 있습니다. 조절기에서 설정한 실내 온도를 유지하도록 프로그램을 작성해 보세요. 자동 조정은 한 가지이지만 무언가를 어딘가로 돌리거나 클릭하여 더 따뜻하게 만들거나 반대로 더 시원하게 만들고 싶은 경우가 많습니다. 인간은 까다로운 생물이다.

또는 이러한 회로를 사용하여 컨테이너, 우물의 수위를 제어합니다.... 어렵지 않습니다. 가변 저항기의 핸들에 감긴 실의 플로트입니다. 물론 스프링이 장착되어 있습니다. 그러나 이것은 자세한 설명 없이 즉석에서 이루어졌습니다.

계속 환상에 빠지면 조명 수준도 측정하고 적절한 시간에 램프를 켜고 끌 수도 있습니다... 간단히 말해서, 이러한 아날로그 입력에는 많은 가능성이 있으며, NM8036은 많은 작업에 쉽게 대처할 수 있을 뿐만 아니라 개인 주택의 난방을 제어하는 ​​것뿐만 아니라 다른 많은 작업을 해결하는 데에도 사용됩니다. 다음 기사에서는 프로그래밍 기능에 대해 이야기하겠습니다.

그건 그렇고, 방의 온도 조절과 관련하여 제가 가져온 아주 좋은 해결책이 있습니다. 누군가의 질문에 대한 응답으로 Brokly 메시지 작성자(Advanced Manager 작성자이기도 함)는 아날로그 입력 사용의 예를 제시했습니다. 나는 그것을 그대로 인용한다:
훨씬 더 복잡한 것을 생각해 낼 수도 있습니다. 접촉식 벽 온도 조절 장치를 설치하고 이를 아날로그 입력에 연결한 후 술취한 사람이 스스로 회전하게 하십시오. 청소부 아줌마를 풀어주고 술취한 사람들과 즐거운 시간을 보내세요. 그리고 컨트롤러가 해야 할 일이 줄어들고 온도 조절 장치가 작동하므로 가열할 필요가 없습니다.

선생님, 이거 어때요? 그리고 나는 그것을 좋아했습니다.

계속하려면 ...

이 기사에서는 다양한 유형의 ADC의 작동 원리와 관련된 주요 문제에 대해 설명합니다. 동시에 아날로그에서 디지털로의 변환에 대한 수학적 설명과 관련된 몇 가지 중요한 이론적 계산은 이 기사의 범위를 벗어났습니다. 그러나 관심 있는 독자가 아날로그-디지털 변환의 이론적 측면에 대해 보다 심층적으로 고려할 수 있는 링크가 제공됩니다. ADC의 작동. 따라서 이 기사에서는 ADC 작동에 대한 이론적 분석보다는 ADC 작동의 일반적인 원리를 이해하는 데 더 중점을 둡니다.

소개

시작점으로 아날로그-디지털 변환을 정의해 보겠습니다. 아날로그-디지털 변환은 입력된 물리량을 수치 표현으로 변환하는 프로세스입니다. 아날로그-디지털 변환기는 이러한 변환을 수행하는 장치입니다. 공식적으로 ADC의 입력 값은 전압, 전류, 저항, 정전 용량, 펄스 반복률, 샤프트 회전 각도 등 모든 물리량이 될 수 있습니다. 그러나 명확성을 위해 다음에서 ADC는 전압-코드 변환기만을 의미합니다.


아날로그에서 디지털로의 변환 개념은 측정 개념과 밀접한 관련이 있습니다. 측정이란 측정된 값을 일부 표준과 비교하는 프로세스를 의미합니다. 아날로그-디지털 변환을 통해 입력 값은 일부 기준 값(일반적으로 기준 전압)과 비교됩니다. 따라서 아날로그-디지털 변환은 입력 신호 값의 측정으로 간주될 수 있으며 측정 오류와 같은 계측의 모든 개념이 여기에 적용됩니다.

ADC의 주요 특징

ADC에는 많은 특성이 있으며 주요 특성은 변환 주파수와 비트 깊이입니다. 변환 빈도는 일반적으로 SPS(초당 샘플 수)로 표시되며 비트 심도는 비트 단위입니다. 최신 ADC는 최대 24비트의 비트 폭과 최대 GSPS 단위의 변환 속도를 가질 수 있습니다(물론 동시에는 아님). 속도와 비트 용량이 높을수록 필요한 특성을 얻기가 더 어려워지고 변환기가 더 비싸고 복잡해집니다. 변환 속도와 비트 심도는 일정한 방식으로 서로 관련되어 있으며 속도를 희생하여 효과적인 변환 비트 심도를 높일 수 있습니다.

ADC 유형

ADC에는 다양한 유형이 있지만 이 기사에서는 다음 유형만 고려하도록 제한하겠습니다.

  • 병렬 변환 ADC(직접 변환, 플래시 ADC)
  • 연속 근사 ADC(SAR ADC)
  • 델타-시그마 ADC(전하 균형 ADC)
(일반적으로) 서로 다른 아키텍처를 가진 여러 ADC로 구성된 파이프라인 유형과 결합 유형을 비롯한 다른 유형의 ADC도 있습니다. 그러나 위의 ADC 아키텍처는 각 아키텍처가 전체 속도 비트 범위에서 특정 틈새 시장을 점유한다는 사실로 인해 가장 대표적인 아키텍처입니다.

직접(병렬) 변환 ADC는 속도가 가장 빠르고 비트 깊이가 가장 낮습니다. 예를 들어 Texas Instruments의 병렬 변환 ADC TLC5540은 단 8비트로 40MSPS의 속도를 제공합니다. 이 유형의 ADC는 최대 1GSPS의 변환 속도를 가질 수 있습니다. 여기서는 파이프라인 ADC의 속도가 훨씬 더 빠르지만 속도가 더 낮은 여러 ADC의 조합이므로 이에 대한 고려 사항은 이 기사의 범위를 벗어납니다.

비트 전송률 시리즈의 중간 틈새는 연속 근사 ADC가 차지합니다. 일반적인 값은 100KSPS-1MSPS의 변환 빈도로 12-18비트입니다.

최대 24비트의 비트 폭과 SPS 단위에서 KSPS 단위까지의 속도를 갖춘 시그마-델타 ADC를 통해 최고의 정확도가 달성됩니다.

최근에 사용된 또 다른 유형의 ADC는 통합 ADC입니다. 통합 ADC는 이제 다른 유형의 ADC로 거의 완전히 대체되었지만 구형 측정 장비에서도 찾아볼 수 있습니다.

직접 변환 ADC

직접 변환 ADC는 1960년대와 1970년대에 널리 보급되었으며, 1980년대에는 집적 회로로 생산되기 시작했습니다. 이는 종종 "파이프라인" ADC(이 기사에서는 설명하지 않음)의 일부로 사용되며 최대 1GSPS의 속도에서 6~8비트의 용량을 갖습니다.

직접 변환 ADC 아키텍처는 그림 1에 나와 있습니다. 1

쌀. 1. 직접 변환 ADC의 블록 다이어그램

ADC의 작동 원리는 매우 간단합니다. 입력 신호는 비교기의 모든 "양수" 입력에 동시에 공급되고 일련의 전압은 저항으로 나누어 기준 전압에서 얻은 "음수"입력에 공급됩니다. R. 그림의 회로에 대해. 1 이 행은 다음과 같습니다: (1/16, 3/16, 5/16, 7/16, 9/16, 11/16, 13/16) Uref, 여기서 Uref는 ADC 기준 전압입니다.

1/2 Uref와 동일한 전압이 ADC 입력에 적용되도록 합니다. 그런 다음 처음 4개의 비교기가 작동하고(아래에서 계산하는 경우) 논리 비교기가 출력에 나타납니다. 우선 순위 인코더는 출력 레지스터에 캡처된 "열"에서 이진 코드를 형성합니다.

이제 이러한 변환기의 장점과 단점이 명확해졌습니다. 모든 비교기는 병렬로 작동하며 회로의 지연 시간은 한 비교기의 지연 시간에 인코더의 지연 시간을 더한 것과 같습니다. 비교기와 인코더는 매우 빠르게 만들어질 수 있으며 결과적으로 전체 회로의 성능이 매우 높습니다.

그러나 N 비트를 얻으려면 2^N 비교기가 필요합니다(그리고 인코더의 복잡성도 2^N만큼 증가합니다). 그림의 구성표. 1. 8개의 비교기가 포함되어 있고 3비트가 있습니다. 8비트를 얻으려면 256개의 비교기가 필요하고, 10비트의 경우 - 1024개의 비교기가 필요하며, 24비트 ADC의 경우 1,600만 개가 넘는 비교기가 필요합니다. 그러나 기술은 아직 그러한 높이에 도달하지 못했습니다.

연속 근사 ADC

SAR(연속 근사 레지스터) 아날로그-디지털 변환기는 일련의 순차적인 "가중치", 즉 입력 전압 값을 다음과 같이 생성된 일련의 값과 비교하여 입력 신호의 크기를 측정합니다.

1. 첫 번째 단계에서 내장된 디지털-아날로그 변환기의 출력은 1/2Uref와 동일한 값으로 설정됩니다(이하 신호가 (0 – Uref) 간격에 있다고 가정합니다.

2. 신호가 이 값보다 크면 나머지 간격의 중간에 있는 전압, 즉 이 경우 3/4Uref와 비교됩니다. 신호가 설정된 레벨보다 낮으면 나머지 간격의 절반 미만(예: 1/4Uref 레벨)으로 다음 비교가 수행됩니다.

3. 2단계를 N번 반복합니다. 따라서 N개의 비교("가중치")는 N비트의 결과를 생성합니다.

쌀. 2. 연속 근사 ADC의 블록 다이어그램.

따라서 연속 근사 ADC는 다음 노드로 구성됩니다.

1. 비교기. 입력 값과 "가중" 전압의 현재 값을 비교합니다(그림 2에서 삼각형으로 표시됨).

2. 디지털-아날로그 변환기(DAC). 입력에서 수신된 디지털 코드를 기반으로 전압 "가중치"를 생성합니다.

3. 연속 근사 레지스터(SAR). 이는 DAC 입력에 공급되는 코드의 현재 값을 생성하는 연속 근사 알고리즘을 구현합니다. 전체 ADC 아키텍처는 그 이름을 따서 명명되었습니다.

4. 샘플/홀드 방식(샘플/홀드, S/H). 이 ADC의 작동을 위해서는 변환 사이클 전체에서 입력 전압을 일정하게 유지하는 것이 근본적으로 중요합니다. 그러나 "실제" 신호는 시간이 지나면서 변하는 경향이 있습니다. 샘플 앤 홀드 회로는 아날로그 신호의 현재 값을 "기억"하고 장치의 전체 작동 주기 동안 이 값을 변경하지 않고 유지합니다.

이 장치의 장점은 상대적으로 높은 변환 속도입니다. N 비트 ADC의 변환 시간은 N 클록 사이클입니다. 변환 정확도는 내부 DAC의 정확도에 의해 제한되며 16~18비트일 수 있습니다(예: AD7766 및 AD7767과 같은 24비트 SAR ADC가 이제 나타나기 시작했습니다).

델타-시그마 ADC

마지막으로 가장 흥미로운 유형의 ADC는 시그마-델타 ADC이며 문헌에서는 전하 균형 ADC라고도 합니다. 시그마-델타 ADC의 블록 다이어그램은 그림 1에 나와 있습니다. 삼.

그림 3. 시그마-델타 ADC의 블록 다이어그램.

이 ADC의 작동 원리는 다른 유형의 ADC보다 다소 복잡합니다. 그 본질은 입력 전압이 적분기에 의해 축적된 전압 값과 비교된다는 것입니다. 비교 결과에 따라 양극성 또는 음극성 펄스가 적분기 입력에 공급됩니다. 따라서 이 ADC는 간단한 추적 시스템입니다. 적분기 출력의 전압이 입력 전압을 "추적"합니다(그림 4). 이 회로의 결과는 비교기 출력의 0과 1 스트림이며, 이는 디지털 저역 통과 필터를 통과하여 N비트 결과를 얻습니다. 그림의 LPF 3. 판독값을 "데시메이션"하여 판독 빈도를 줄이는 장치인 "데시메이터"와 결합됩니다.

쌀. 4. 추적 시스템으로서의 시그마-델타 ADC

표현의 엄밀함을 위해 그림 1에서와 같이 말해야 합니다. 그림 3은 1차 시그마-델타 ADC의 블록 다이어그램을 보여줍니다. 2차 시그마-델타 ADC에는 두 개의 적분기와 두 개의 피드백 루프가 있지만 여기서는 설명하지 않습니다. 이 주제에 관심이 있는 사람들은 참고할 수 있습니다.

그림에서. 그림 5는 0 입력 레벨(상단)과 Vref/2 레벨(하단)의 ADC 신호를 보여줍니다.

쌀. 5. 다양한 입력 신호 레벨의 ADC 신호.

이제 복잡한 수학적 분석을 탐구하지 않고 시그마-델타 ADC의 잡음 플로어가 매우 낮은 이유를 이해해 보겠습니다.

그림 1에 표시된 시그마-델타 변조기의 블록 다이어그램을 살펴보겠습니다. 3을 작성하고 이를 다음 형식으로 제시합니다(그림 6).

쌀. 6. 시그마-델타 변조기의 블록 다이어그램

여기서 비교기는 연속적인 원하는 신호와 양자화 잡음을 추가하는 가산기로 표시됩니다.

적분기가 전달 함수 1/s를 갖도록 합니다. 그런 다음 유용한 신호를 X(s)로, 시그마-델타 변조기의 출력을 Y(s)로, 양자화 잡음을 E(s)로 표현하여 ADC 전달 함수를 얻습니다.

Y(s) = X(s)/(s+1) + E(s)s/(s+1)

즉, 실제로 시그마-델타 변조기는 유용한 신호에 대한 저역 통과 필터(1/(s+1))와 잡음에 대한 고역 통과 필터(s/(s+1))입니다. 동일한 차단 주파수를 갖는 필터. 스펙트럼의 고주파수 영역에 집중된 노이즈는 변조기 뒤에 위치한 디지털 저역 통과 필터를 통해 쉽게 제거됩니다.

쌀. 7. 스펙트럼의 고주파수 부분으로 노이즈가 "변위"되는 현상

그러나 이는 시그마-델타 ADC의 노이즈 성형 현상을 극도로 단순화한 설명이라는 점을 이해해야 합니다.

따라서 시그마-델타 ADC의 가장 큰 장점은 자체 노이즈 수준이 매우 낮기 때문에 정확도가 높다는 것입니다. 그러나 높은 정확도를 얻으려면 디지털 필터의 차단 주파수가 시그마-델타 변조기의 작동 주파수보다 몇 배나 낮아야 합니다. 따라서 시그마-델타 ADC는 변환 속도가 느립니다.

오디오 엔지니어링에 사용될 수 있지만 주요 용도는 센서 신호 변환을 위한 산업 자동화, 측정 장비 및 높은 정확도가 요구되는 기타 응용 분야입니다. 그러나 고속은 필요하지 않습니다.

약간의 역사

ADC에 대한 역사상 가장 오래된 언급은 아마도 미국의 Paul M. Rainey 특허인 "Facsimile Telegraph System"일 것입니다. 특허 1,608,527(1921년 7월 20일 출원, 1926년 11월 30일 발행). 특허에 설명된 장치는 실제로 5비트 직접 변환 ADC입니다.

쌀. 8. ADC 최초 특허

쌀. 9. 직접 변환 ADC(1975)

그림에 표시된 장치는 1975년에 Computer Labs에서 제조한 직접 변환 ADC MOD-4100이며 이산 비교기를 사용하여 조립되었습니다. 16개의 비교기가 있으므로(각 비교기에 대한 신호 전파 지연을 균등화하기 위해 반원형에 위치함) ADC의 폭은 4비트에 불과합니다. 변환 속도 100MSPS, 전력 소비 14W.

다음 그림은 직접 변환 ADC의 고급 버전을 보여줍니다.

쌀. 10. 직접 변환 ADC(1970)

Computer Labs에서 제조한 1970년 VHS-630은 64개의 비교기를 포함하고 6비트, 30MSPS, 100와트를 소비했습니다(1975년 버전 VHS-675는 75MSPS, 130와트를 소비했습니다).

문학

W. 케스터. ADC 아키텍처 I: 플래시 변환기. Analog Devices, MT-020 튜토리얼.

제가 지속적으로 작업하고 대부분의 작업을 수행하는 주요 MK는 다음과 같습니다. ATTiny2313-그는 인기가 있고 가장 중요한 것은 이것이다 가장 저렴한 컨트롤러전체 라인에서 AVR다리 수가 8 개 이상입니다. 18 루블에 약 300 개를 가져간 것 같아요. 하지만 아쉽네요 - ADC가 없습니다. 별말씀을요. 그런 다음 필요했습니다. 센서의 신호를 측정해야합니다. 매복. 그런 쓰레기 때문에 더 꽉 찬 것으로 바꾸지 마십시오 A.T.타이니26- 비용이 더 많이 들고, 어디서 구입할 수 있는지, 그리고 그 심연을 어떻게 해야 할지 누가 알겠습니까? ATTiny2313이미 구입한 것은 무엇입니까? 브레인스토밍 중...

왜 뭉클하지 않니? ADC순차적 비교? 물론 속도와 정확성이 뛰어나지는 않겠지만 MK의 유형을 바꾸지 않고 추가 바디 키트의 단 2페니 부품만 있으면 비록 느리기는 하지만 제 요구 사항을 완전히 만족시키는 본격적인 8비트 ADC를 얻을 수 있을 것입니다. 적당한 필요!

직렬 비교 ADC는 어떻게 작동합니까?
우리는 무엇을 가지고 있습니까? ATTiny2313비슷한 물건? 오른쪽 - . 이제 측정된 신호를 입력에 적용하고 이를 기준 전압과 체계적으로 비교하여 기준 전압 값을 선형적으로 변경하는 것으로 충분합니다. 비교기가 작동하는 기준 전압은 측정된 신호 +/_ 기준 변화 단계와 거의 동일합니다.

남은 것은 교류 기준 전압을 얻는 것뿐입니다. 그렇다면 컨트롤러의 순수 디지털 출력에서 ​​아날로그 신호를 어떻게 추출할 수 있습니까? PWM! 이전에 통합한 적이 있습니다. 통합을 위해 가장 간단한 RC 필터를 사용합니다. 우리의 커패시터는 전하를 통합하고 저항은 커패시터를 충전할 때 포트가 죽는 것을 방지합니다. 이러한 필터를 통해 PWM을 실행하면 상당히 안정적인 정전압이 생성됩니다.

남은 것은 필터 등급을 추정하는 것뿐입니다. 컷오프 주파수 - L자형 RC 필터의 경우 필터가 가변 구성 요소를 감쇠하기 시작하는 주파수는 시간 상수의 역수와 같습니다. w=1/RC. 콘덴서를 붙였어요 0.33E-6 F 및 저항기 켜짐 470 옴, 그러고보니 w=6447rad/s. 왜냐하면 각주파수아무데도 도달하지 못했고 이를 2pi = 6.28로 나누면 정확히 1킬로헤르츠, 즉 1026.6Hz를 얻습니다. 횟수 빈도 PWM그리고 우리는 약 수십 킬로헤르츠를 쉽게 가질 수 있으며, 그러면 출력은 약간의 잔물결이 있는 부드러운 상수가 될 것입니다.

이제 이 상단을 비교기의 입력으로 감싸고 측정된 신호를 두 번째 신호로 보내고 코드를 재미있게 시작합니다. 결과는 다음과 같은 다이어그램으로 구성됩니다. 하지만 여기에는 ATTiny2313이 아니라 ADC가 있는 Mega8이 있지만 지금은 그 존재를 잊어버리겠습니다. 필터는 빨간색 선으로 그려집니다.

코드는 간단하므로 귀찮게 하지 않기 위해 별도의 소스를 파일 형태로 게시할 것입니다.

  • — 헤드 파일
  • — 인터럽트 벡터 테이블
  • — 주변기기 초기화
  • 및 - 매크로 및 매크로 정의

주요 기능에 대해서만 설명하겠습니다. 계산.
프로시저를 호출할 때 계산우선, 우리는:

  1. 아날로그 비교기가 구성되었으며 가장 중요한 것은 인터럽트가 활성화된다는 것입니다.
  2. 그런 다음 초기 스캔 값 255가 스캐닝 레지스터(R21)에 입력됩니다.
  3. 그 후 이 값은 PWM 비교 레지스터에 던져집니다. OCR1AL. PWM은 섹션에서 미리 이루어졌습니다. init.asm듀티 사이클(듀티 팩터는 이 신호 기간에 대한 신호 지속 시간의 비율)이 있는 신호가 출력에 즉시 나타나도록 구성 및 실행됩니다. 즉, 현재로서는 단지 하나입니다.
  4. 일시적인 프로세스가 종료될 때까지 지연 기능에서 잠시 기다립니다(커패시터는 즉시 전압을 변경할 수 없습니다).
  5. 스캐닝 레지스터의 값을 줄이겠습니다(로드할 때 OCR1AL듀티 사이클이 1/255로 감소합니다), 0이 되었는지 확인하세요. 그렇지 않은 경우 3번 항목으로 이동하세요.
그 결과 신호 듀티 사이클이 다음 단계에 따라 1에서 0으로 순차적으로 감소합니다. 1/255 , 필터 이후에 감소하는 전압으로 변환됩니다. 그리고 주요 절차에서 나는 계산주기적으로 호출되면 비교기의 입력은 톱이 됩니다.

보시다시피 상단에 약간의 절단이 있습니다. 이는 모든 저항기의 강하를 고려하여 MK 레그가 생성할 수 있는 최대 전압이 약 4.7V이고 마스터 전위차계에서 5를 모두 출력할 수 있기 때문입니다. 글쎄, 꼭대기도 조금 떨어지고 있습니다. 주파수를 낮추면 범위가 다소 확장됩니다.

그래서 약간의 독창성과 총 1루블에 달하는 두 개의 추가 세부 정보와 12줄의 코드를 사용하여 많은 돈을 절약했습니다 =)



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: