https://microcontrollerslab.com/analog-to-digital-adc-converter-working/
정의
표본화(Sampling) → 양자화(Quantization) → 부호화(Encoding) 총 3단계를 통해 아날로그(Analog) 신호를 디지털(Digital) 신호로 변환 (A/D 변환)하는 것. 즉 연속적인 analog 신호를 0과 1로 구성된 digital 신호로 변환하는 IC칩이다.
변환과정
1. 샘플링(Sampling)
시간축 방향에서 연속된 아날로그 신호의 진폭치를 일정 간격(샘플링 주기 Ts)으로 샘플을 추출하여 이산신호(discrete signal)로 변환시키는 과정
2. 양자화(Quantization)
샘플 추출한 연속적인 진폭의 신호를 특정 이산진폭값으로 바꾸는 과정
3. 부호화(Coding or Encoding)
표본화 양자화를 통해 신호처리가 용이한 디지털 코드를 2진수(Binary Code) 형태로 변환하는 과정(비트 할당)
아래 그림에서 x축에서(시간 축에서) 신호를 나누는 것이 sampling, y축에서(전압 축에서) 신호를 나누는 것이 quantization이라고 쉽게 생각할 수 있다.
Sampling 주기가 짧을수록(주파수가 높을수록) 원래의 아날로그 파형과 디지털 신호를 얻을 수 있지만, 반면 데이터의 양이 너무 많아져 처리하기 곤란할 수 있다는 단점이 되기도 한다.
위의 세단계 변환과정은 다음과 같이 Two steps으로 표현되기도 한다.
1. S/H: Sampling and holding
2. Q/E: Quantizing and Encoding
Sampling and Holding
아날로그 신호는 시간에 따라 지속적으로 변화하기때문에 신호를 측정하기 위해서는 샘플링이 가능하도록 짧은 시간 동안 신호를 일정하게 유지해야 한다. 따라서 샘플 홀드 회로에 의해 특정 기간 동안 신호를 유지한 다음 신호를 디지털화하고 값을 샘플링하게된다. 그러면 적어도 디지털화에 필요한 시간은 값을 안정적으로 유지할 수 있다.
아래 S/H 회로에서 스위치는 평소에 열려있다가 측정값을 얻고자 할 때 잠시 닫힌다.
Quantizing and Encoding
S/H 회로의 출력에는 특정 전압 레벨이 존재하고 그것에 숫자 값을 할당하는 것을 Quantization 이라고 한다. 이 값은 아무 값이나 될 수 없으며 가능한 제한된 값의 집합이어야 하고 샘플링 및 유지 신호의 진폭에 따라 그 중 가장 가까운 값이 검색된다. 가장 가까운 값을 식별하면, 숫자 값이 할당되고 이진수 형태로 인코딩된다.
Quantizer 에 의해 생성된 이진 인코딩된 숫자는 'n' 비트로 표현되므로 ADC의 해상도는 'n' 비트로 표시할 수 있다.
n bits ADC 성능표
비트 수가 클수록 샘플링의 주파수는 작아지고 주기는 길어진다. 반면 오류는 비트수가 증가할 수록 최소화된다.
ADC 선택 기준
샘플링 속도(Sampling rate)와 해상도(Resolution)는 ADC 선택에 있어서 가장 중요한 기준이 된다. 일반적으로 저속의 ADC는 높은 해상도로 데이터 변환이 가능하고, 고속의 ADC는 저해상도의 데이터 변환이 이루어진다.
1. 분해능, 해상도(Resolution)
Sampling을 통해 측정한 전압의 값을 digital 값으로 바꾸는 과정(quantization)에서 표현할 수 있는 값의 최소 단위로 n Bit 형태로 표현한다. 8-bit(0~255)면 256개로, 10-bit(0~1023)면 1024개로 비트수가 커질수록 더 정밀하게 표현된다.
만약 입력되는 아날로그 신호의 voltage level이 0~3V라면 8-bit의 경우 3/256=11.718mV 간격으로 표시할 수 있으며, 10-bit의 경우 3/1024=2.929mV 간격으로 표시할 수 있다.
2. 샘플링속도(Sapling per Second) or 변환시간(Conversion Time)
1초 기준으로 샘플의 변환속도를 나타내는 단위(Sample/sec, Hz)
또는 초(second)당 sampling 횟수 SPS (sample per second)
ADC는 변환을 지속적으로 수행하는 대신 주기적으로 변환을 수행하여 입력을 샘플링하여 입력 신호의 허용 대역폭을 제한한다.
3. 입력 전압 범위(Full Scale Range)
4. 구현방식(Implementation)
5. 입력전압의 종류(Input Voltage)
6. 데이터 출력 형태(Data Output)
7. 채널 수(Channel count)
8. 양자화 오류(Quantization Error) & 신호잡음(Signal to Noise Ratio)
ADC는 연속 시간 및 연속 진폭 아날로그 신호 를 이산 시간 및 이산 진폭 디지털 신호로 변환하고, 변환에는 양자화 가 포함 되므로 필연적으로 적은 양의 오류 또는 노이즈가 발생한다.
ADC 유형
유형
|
속도
|
해상도(bit)
|
특징
|
용도
|
병렬 비교형
(Flash ADC)
|
10G ~ 10M
|
12 ~6
|
고속, 대규모, 높은 전력 소모
|
고속 측정기
|
파이프라인형
(Pipeline ADC)
|
150M ~10M
|
14 ~8
|
고속, 낮은 전력 소모
|
영상 신호처리
|
축차비교형
(SAR ADC)
|
1M ~ 10k
|
16 ~ 8
|
낮은 소비전력
|
마이크로프로세서
|
델타시그마형
(Delta-Sigma ADC)
|
100k ~ 100
|
24 ~ 18
|
높은 분해력
|
음성처리
|
이중적분형
(Dual-Slop Integrating ADC)
|
1k ~ 10
|
22 ~ 12
|
고정밀
|
측정기
|
축차비교형(Successive Approximation Register) ADC
SAR(Successive Approximation Register)로 최상위 비트에서 하위 비트 쪽으로 순서대로 수정하는 방법을 사용하여 DAC의 출력을 빠르게 아날로그 입력전압에 근사시킬 수 있다. 그래서 비교적 변환시간이 빠르고 회로도 간단하여 저렴하다는 장점을 갖고 있다. 저가형이면서 분해능이 비교적 높은 ADC에 주로 사용되며, SAR은 입력 전압이 항상 일정해야 하기 때문에 S/H가 필요하다.
ADC 오차 유형
1. 적분 비선형 오차(integral non-linearity error)
적분 처리 과정에서 변형된 데이터로 변환 결과가 교정될 수 없는 오차
2. 차등 비선형 오차(Differential non-linearity error)
디지털 코드로 변환되는 아날로그 입력 범위가 일정하지 않아서 생기는 오류, 출력 코드값을 넘으면 손실 코드(missing code), 코드 출력값이 감소하면 비모노토닉(non-monotonic)으로 정의
3. 양자화 오차(Quantization error)
아날로그값을 디지털 값으로 변환하면서 생기는 변환 오차
4. 오프셋 오차(Offset error)
변환결과가 이상적인 디지털 값에서 일정한 양만큼 벗어난 오차
5. 이득 오차(Gain error)
변환 결과가 이상적인 디지털 값에서 일정한 비율만큼 벗어난 오차
6. Aperture Error
신호가 S/H 할 때 걸리는 시간에 대한 오차
참고 :
https://blog.naver.com/jgw1030/222880051446
'임베디드 개발 > 펌웨어' 카테고리의 다른 글
LwIP 메모리 옵션 설정 (0) | 2022.11.11 |
---|---|
부동소수점 표현 IEEE 754 (0) | 2022.10.13 |
LwIP TCP/IP 스택 살펴보기 (0) | 2022.09.24 |
Ethernet, MAC, MII, RMII, GMII, RGMII PHY (0) | 2022.09.24 |
CPU, MCU, MPU, DSP, FPGA 구분 (0) | 2022.09.10 |