Tài liệu

ADC~

Science and Technology

ADC (Analog to Digital Converter)

Nguyên tắc hoạt động của bộ biến đổi tương tự - số

1111101011000111100010 1 2 3 4 5 6 7 8 Hình 4-1: Đồ thị biến đổi của ADC 3 bit (FS-Full Scale)Bộ biến đổi tương tự số DAC đóng vai trò quan trọng trong xử lý thông tin khi mà các luồng tín hiệu đưa vào hệ vi xử lí là tín hiệu dạng tương tự.

Các bộ chuyển đổi ADC thực hiện 2 chức năng cơ bản là lượng tử hoá và mã hoá. Lượng tử hoá là gán các giá trị của 1 tín hiệu tương tự vào vùng các giá trị rời rạc có thể xảy trong quá trình lượng tử hoá. Mã hoá là gán giá trị nhị phân cho từng giá trị rời rạc sinh ra trong quá trình lượng tử hoá. Đối với DAC ta cũng dùng các loại mã số như nhị phân, BCD bù 2, bù 1 . Hình 4-1 cho biết đặc tính của ADC 3bit làm việc với mã nhị phân tự nhiên một ADC n bit có 2n tổ hợp mã ra khác nhau, chúng được biếu diễn trên trục tung của đồ thị thời gian.

Trên trục hoành biểu diễn giá trị của điện áp vào tương tự. Độ lớn của mỗi đơn vị lấy mẫu do phép lượng tử hoá quy định là : Q=FS/2n. Điểm giữ mỗi "mẫu" là giá trị điện áp tương tự được biểu diễn bằng 1 mã nhị phân ra tương ứng với mẫu đó. Thí dụ giữa 116 size 12{ { { size 8{1} } over { size 8{"16"} } } } {}FS và 316 size 12{ { {3} over {"16"} } } {}FS là điểm 18 size 12{ { {1} over {8} } } {}FS. giá trị điện áp vào tương tự trong khoảng từ 116 size 12{ { { size 8{1} } over { size 8{"16"} } } } {}FS đến 316 size 12{ { {3} over {"16"} } } {}FS được chuyển sang mã số là 001 ưng với giá trị điện áp vào là 18 size 12{ { {1} over {8} } } {}FS. Như vậy phép lượng tử hoá tự nó đã bao hàm sai số là +̲ size 12{ {underline {+{}}} } {}Q2 size 12{ { {Q} over {2} } } {}ở trường hợp lí tưởng, giá trị M ở nối ra cho biết một gía trị là M +̲ size 12{ {underline {+{}}} } {}Q2 size 12{ { {Q} over {2} } } {} ở nối vào (M +̲ size 12{ {underline {+{}}} } {}FS2n+1 size 12{ { { ital "FS"} over {2 rSup { size 8{n+1} } } } } {}). Như vậy chỉ có thể giảm sai số này bằng cách tăng số bit cho ADC.

Trong thực tiễn vì có những sai số như sai số độ lệch.sai số phi tuyên nên việc xác định nhưng điểm giá trị của điện áp vào không chính xác. Đồng thời do sai số toàn bộ của một ADC bao gồm cả sai số lượng tử hoá nên không thể tăng số bit nên quá nhiều, tới mức sai số lượng tử hoá có thể so sánh được với sai số kể trên.

Một ADC n bit được xây dựng theo 1 trong 2 phương pháp là phương pháp trực tiếp và phương pháp gian tiếp. Trong pháp trực tiếp, điện áp tương tự cần chuyển đổi được so sánh liên tục với điện áp ra của một DAC khi mã nhị phân ở nối vào của nó liên tục thay đổi, khi có sự cân bằng giữ hai điện áp này, mã nhị phân ở nối vào của DAC bây giờ chính là kết quả. Trong phương pháp chuyển đổi gián tiếp, điện áp cần chuyển đổi trước hết được chuyển đổi sang một đại lượng trung gian, sau đó đại lượng này mới được chuyển đổi sang mã số. Phương pháp này nói chung có tốc đọ chuyển đổi chậm hơn nhiều so với phương pháp trực tiếp. Vì vậy phương pháp chuyển đổi trực tiếp được sử dụng phổ biến. Có hai phương pháp chuyển đổi trực tiếp là phương pháp ADC có đếm (counting ADC) và phương pháp ADC xấp xỉ liên tiếp.

Trong thực tế thường sử dụng loại ADC xấp xỉ liên tiếp. Trong phương pháp này có một ưu điểm lớn là thời gian chuyển đổi chỉ tỉ lệ thuận với số lượng bit của mã số và thời gian của thanh ghi xấp xỉ liên tiếp chứ không phụ thuộc vào độ lớn của điện áp cần chuyển đổi. Để thực hiện quá trình chuyển đổi, người ta cần đặt lần lượt mỗi bit của mã số lên một, bắt đầu từ bit cao nhất (MSB). Sơ đồ mô tả ADC kiểu này được mô tả ở hình 4-2. Thanh ghi SAR (xấp xỉ liên tiếp) điều khiển nối vào của DAC theo thụât toán sau:

1. Đặt bit cao nhất (MSB) bằng 1.

2. Nếu nối ra của mạch so sánh là 1 thì bit này bị xoá về 0, nếu không phải thì giá trị đó được giữ nguyên.

3. Bit cao nhất tiếp theo được đạt nên 1rồi lặp lại bước 2, nếu tất cả các bit đã được xét thì quá trình chuyển đổi dược thực hiện xong.

Successive Appoximation Register (SAR)DACCLKTín hiệu vào tương tựMạch so sánhTín hiệu số đầu raEOCHình 4-2: Sơ đồ một ADC theo phương pháp xấp xỉThuật toán này trước hết cần kiểm tra xem điện áp vần chuyển đổi lớn hay nhỏ hơn FS/2, nếu là lớn hơn, khi MSB bằng 1 ta có điện áp là logic 0,ta giữ nguyên MSB=1 và xét tiếpbit cao nhất tiếp theo xem điện áp vào lớn hơn hay nhỏ hơn 3/4 FS...cứ như vậy ta xét đến bit cuối cùng (LSB), lúc đó nội dung của thanh ghi SAR là mã số kết quả. Đồng thời tại thời điểm này một đàu ra của SAR đưa ra một tín hiệu EOC (End Of Converter) báo đã chuyển đổi xong.

Thanh ghi xấp xỉ liên tiếp được tổ chức dưới dạng vi mạchvới tất cả những phần tử điều khiển cần thiết đẻ có thể xây dựng những DAC với tốc độ cao.Trong thực tiễn có những thanh ghi xấp xỉ liên tiếp với cấu theo nhưng mã số sử dụng khác nhau.

Bộ biến đổi ADC 8 Bit 0809

Bộ biến đổi ADC 8 bit 0809 là ADC thông dụng được xử dụng rất rộng rãi có 8 đầu vào tương tự và đầu ra 8 bit số, chuyển đổi theo phương pháp xấp xỉ liên tiếp. các đặc trưng cơ bản của ADC 08089 là:

  • Đầu ra có bộ đệm 3 trạng thái để ghép trực tiếp vào kênh giữ liệu của hệ Vi xử lí
  • Giải tín hiệu nối vào tương tự 5v khi nguồn nuôi là +5v, có thể mở rộng thanh đo bằng các giải pháp kĩ thuật cho từng mạch cụ thể.
  • Không đòi hỏi điều chỉnh"0"
  • Thời gian biến đổi 100µs
  • Sai số tổng cộng ±1/2LSB
  • Sử dụng nguồn nuôi đơn +5v, hiệu suất cao
  • đảm bảo sai số tuyến tính trong dải nhiệt độ từ -40 đến +850c

Sơ đồ chức năng của ADC 0809 (hình 4-3)

8 chanel MUX analog switchesAddress Latched coderSARSwitch treeSwitch treeTri-State Output latch buferControl and Timing8 Signal Analog8 bit Digital outputRef(+)Ref(-)Vcc GNDStart ClockEOCHình 4-3: Sơ đồ khối bộ chuyển đổi ADC

Ghép tín hiệu vào ADC 0809

Tạo xung nhịp+5VVref(+)CLKVccEOCStartALEA,B,COE0-5vAnalog Input RangeDB0-DB7GNDVref(-)Hình 4-4: Hoạt động của ADC 0809 khi đầu vào là đơn cực Trong chu trình chuyển đổi dòng đầu vào tín hiệu giữ nhịp 500KHZ dùng cho bộ ADC 0809 được tạo ra từ bên ngoài và đưu đến chân clock (bộ chuyển đổi ADC0809 sử dụng tần số Clock có thể trong giải 200KHz÷1MHz).

  • Ghép tín hiệu đơn cực đến đầu vào của ADC 0809

Tạo xung nhịp+EcVref(+)CLKVccEOCStartALEA,B,COE0-5vAnalog Input RangeDB0-DB7GNDVref(-)Hình 4-5: Hoạt động của ADC 0809 khi đầu vào là lưỡng cực Khi tín hiệu đầu vào bộ chuyển đổi ADC là đơn cực (một cực tính),sơ đồ nguyên lí lúc đó được lắp như hình 4-4. Trong trường hợp này thanh đo tương ứng 5v cho các đầu vào(tức là các đại lượng cần đo qua các bộ cảm biến phải đưa về giải từ 0v đén 5v, tương ứng với mức0v ở đầu vào là tổ hợp nhị phân0000 0000 ở đầu ra.)

  • Ghép tín hiệu lưỡng cực đến đầu vào của ADC0809

Trong thực tế khảo xát các đại lượng cần miến đổi thường là các tín hiệu xoay chiều(tín hiệu vào có hai cực tính) với trường hợp này cần mở rộng thanh đo thích hợp với tín hiệu. Sơ đồ nguyên lí của mạch thể hiện dạng này như hình 4-5.

Để mở rộng thang đo, điện áp so sánh được đưa qua tầng lặp lại để dưa đến chân 12 (chân Ref(+)) của ADC0809.Các kênh nối vào tương tự được dẫn đến các chân Vin0 đến Vin7

Nếu chọn Vref(+)=+2.5v thì từ đầu ra của các bộ cảm biến phải đưu về giải 0 đến 2.5v (cho phép đo trong giải ±2.5v). Khi đó cận trên của thang đo (+2.49V) tương ứng với tổ hợp mã nhị phân ở đầu ra là 1111 1111. Cận dưới thang đo (-2.49V) ứng với tổ hợp mã nhị phân ở đầu ra là 0000 0000. còn mức "0"của thang đo ứng với tổ hợp: 0111 1111.

  • Đồ thị thời gian của ADC 0809

Các bit địa chỉ ở lối vàoA.B.C từ bộ giải mã địa chỉ sẽ chốt và xác định kênh đầu vào nào được lựa chọn.Tương ứng với kênh đầu vào xác định ở trên khi có một xung dương đặt vào chân số 6 (start) với độ rộng tối thiểu ( TWS=200ns) sau thời gian TOEC (Tính từ sườn trước của xung Sart) Bộ chuyển đổi bắt đầu thực hiện chuyển đổi và trong suốt thời gian này chân tín hiêui ra EOC luôn ở mức thấp. Đồng thời đầu ra 3 trạng thái của ADC 0809 bị thả nổi (ở trạng thái trở kháng cao)

Sau thời gian t0 size 12{ { size 24{t} } rSub { size 8{0} } } {}=100µs ADC0809 htực hiện chuyển đổi xong dữ liệu đầu vào được đưa đến bộ đệm đầu raba trạng thái, đồng thới chân tín hiệu EOC chuyển nên mức cao báo hiệu cho hệ VXL biết để đọc kết quả vào.

Ghép ADC 0809 với hệ Vi xử lí

Giải mã địa chỉEOCOEStartALEA B CCSIORDIORWD0-D7BUS hệ thốngBáo cho hệ VXL biết đã biến đổi xongHình 4-6: Ghép ADC 0809 với hệ VXL Ghép ADC0809 với hệ vi xử lí được thể hiện trên hình 4-6, các kênh vào analag được nối với các đầu vào tương ứng của ADC (có 8 kênh như vậy). Mỗi kênh có địa chỉ riêng do tổ hợp 3 bit địa chỉ ADC quy định. Các dãy địa chỉ này có thể xử dụng trực tiếp các dãy địa chỉ của kênh địa chỉ hệ vi xử lí. Thường là ABC của ADC 0809 được nối với A0A1A2 của hệ VXL. Các dãy địa chỉ cao của hệ VXL để tạo tín hiệu chọn chip CS cho ADC 0809.Tín hiệu CS được đưa tới đầu vào của mạch OR để khởi động ADC (Start) khi có tín hiệu IOWR đồng thời chốt địa chỉ (ALE) của kênh hiện hành có giá trị ba bit A,B,C. Tín hiệu CS cũng được đưa tới đầu vào của mạch OR thứ 2 để tạo tín hiệu OE cùng với IORD nhằm chốt dữ liệu đã biến đổi xong ở đầu ra.

Khi biến đổi xong, ADC 0809 dùng tín hiệu OEC để báo cho hệ VXL biết mã nhị phân tương ứng với mức tín hiệu đầu vào đã đuwọc tạo ra. OEC thường được nối với đầu vào ngắt của CPU hay của PIC8259A. Trong một số trường hợp, người ta dùng trễ thời gian để khẳng định quá trình biến đổi đã hoàn tất thì không cần sử dụng tín hiệu EOC.

Sau đây là chương trình minh hoạ cho sơ đồ ghép nối trong hình 4-6 sẽ sử dụng phương pháp tạo trễ để khẳng định quá trình biến đổi ADC bằng thủ tục Delay_100_Microsec. Chương trình con Read_ADC khi được gọi sẽ điều khiển 8 kênh vào Analog theo phương pháp quét vòng và thực hiện lấy 256 mẫu cho mỗi kênh. Dữ liệu này được lưu trữ trong vùng đệm BUF_ADC có dung lượng 8x256byte. Địa chỉ cơ sở của kênh là 300h (ứng với kênh đầu tiên).

CODE_SEG SEGMENT

ASSUME CS:CODE_SEG

ORG 100H ;Tạo file .COM

;Khai báo dữ liệu cho chương trình

chot EQU 300h ;cổng ra chốt kênh và cổng vào dữ liệu

size_of_buf EQU 256 ;kích thước bộ đệm cho mỗi kênh là 256 byte

buf_ADC DB 2048 DUP(?) ;dung lượng 8 bộ đệm kênh

;Chương trình chính

MAIN PROC

CALL read_ADC

;Các lệnh khác (nếu cần thiết)

MAIN ENDP

;Chương trình con read_ADC

read_ADC PROC

PUSH AX;Đẩy các thành ghi AX,BX,CX,DX,DI vào ngăn xếp

PUSH BX

PUSH CX

PUSH DX

PUSH DI

MOV DI,0 ;Khởi tạo vùng đệm

MOV BX,OFFSET buf_ADC;Địa chỉ bộ đệm kênh

L1:

ADD BX,DI ;BX trỏ tới ngăn nhớ này

MOV DX,chot;lấy địa chỉ chốt của kênh đầu tiên

MOV CX,08h;lặp cho 8 kênh

L2:

OUT DX,AL;khởi động kênh hiện hành

CALL delay_100_microsec ;trễ 100 micro giây

IN AL,DX;nội dung kênh hiện hành được đọc vào hệ

MOV [BX],AL;chuyển vào bộ đệm tương ứng

ADD BX,size_of_buf ;nhảy tới bộ đệm tiếp theo

INC DX;tăng địa chỉ kênh 1 đơn vị

LOOP L2 ;lặp lại 8 kênh

INC DI ;trỏ tới byte tiếp theo

CMP DI,256 ;cho hết 256 byte

JNZ L1 ;và lặp lại quá trình

POP DI ;Lấy ra từ ngăn xếp

POP DX

POP CX

POP BX

POP AX

read_ADC ENDP

;Chương trình con tạo trễ 100 micro giây bằng việc thực hiện 100 lần lệnh NOP.

;Mỗi lệnh NOP (Không hành động) nhưng có một khoảng thời gian để thực hiện chúng

delay_100_microsec PROC

MOV CX,100

L3:

NOP

LOOP L3

delay_100_microsec PROC

END MAIN

Đánh giá:
0 dựa trên 0 đánh giá

Tuyển tập sử dụng module này

Nội dung cùng tác giả
 
Nội dung tương tự