Vào đầu những năm thập niên 60, kỹ thuật số đã đưa vào ứng dụng trong thực tế nhưng ở phạm vi nhỏ. Cho đến ngày hôm nay kỹ thuật số đã được phát triển một cách mạnh mẽ và được ứng dụng vào mọi lãnh vực của cuộc sống
PHẦN MỞ ĐẦU I – ĐẶT VẤN ĐỀ: Vào đầu năm thập niên 60, kỹ thuật số đưa vào ứng dụng thực tế phạm vi nhỏ Cho đến ngày hôm kỹ thuật số phát triển cách mạnh mẽ ứng dụng vào lãnh vực sống Từ máy vi tính (computer), máy CD, máy VDC, truyền hình số … băng diã CD thay máy băng từ tín hiệu tương tự (analog) phân giải rộng, độ xác cao dễ dàng trình xử lý tín hiệu Tuy nhiên sống ngày lại thường tiếp xúc với tín hiệu tương tự nhiều vd: Điện thoại, sóng đài truyền hình, dòng điện sinh hoạt, âm … phải cần có chuyển đổi từ tín hiệu tương tự (Analog) – số (Digital) để xử lý liệu, sau lại chuyển đổi ngược lại từ số (Digital) – tương tự (Analog) để đưa vào điều khiển, khống chế thiết bò Đó lý để em thực đề tài II – MỤC ĐÍCH YÊU CẦU CỦA ĐỀ TÀI Có nhiều phương pháp để thực thi việc chuyển đổi A/D D/A • Sử dụng vi mạch số • Sử dụng vi xử lý • Sử dụng vi điều khiển Với đề tài em sử dụng vi điều khiển để thực việc chuyển đổi A/D D/A Mục đích: Chuyển đổi tín hiệu Analog – Digital để xử lý, sau chuyển đổi ngược lại từ Digital – Analog để điều khiển, khống chế thiết bò Yêu cầu: Hiểu rõ kỹ thuật số, trình chuyển đổi A/D D/A bên vi mạch chuyên dụng (IC ADC 0809 DAC 0808), nắm vững cách sử dụng kết nối phần cứng phần mềm KIT 8051 III – GIỚI HẠN ĐỀ TÀI Do chuyển đổi A/D D/A để điều khiển xử lý KIT 8051 phong phú đa dạng mà kiến thức em nhiều hạn chế đặt biệt vi điều khiển 8051 phần chương trình giảng dạy nhà trường, chủ yếu em tự tìm tòi học hỏi, nghiên cứu Bên cạnh với thời gian tuần để tìm hiểu, viết luận văn thi công đề tài em xin trình bày thực trình chuyển đổi A/D D/A PHẦN I GIỚI THIỆU TỔNG QUÁT Chương I BIẾN ĐỔI TƯƠNG TỰ – SỐ VÀ SỐ – TƯƠNG TỰ A – BIẾN ĐỔI TƯƠNG TỰ SỐ (ADC): Biến đổi tương tự – số (analog – digital) thành phần cần thiết việc xử lý thông tin cách điều khiển sử dụng phương pháp số Tín hiệu thực Analog Một hệ thống tiếp nhận liệu phải có phận giao tiếp Analog – Digital (A/D) Các chuyển đổi tương tự số, viết tắt ADC thực hai chức lượng tử hóa mã hóa Lượng tử hóa gán cho mã nhò phân cho giá trò rời rạc sinh trình lượng tử hóa I – TỔNG QUÁT – Quan hệ In – Out: Biến đổi AD có tính chất tỉ lệ Tín hiệu vào Analog biến đổi thành phân số X cách so sánh với tín hiệu tham chiếu Vref Đầu ADC mã phân số Bất kỳ sai số tín hiệu Vref dẫn đến sai số mức ra, người ta cố gắn giữ cho Vref ổn đònh tốt Vref ADC Vin Digital output Hình 2.1 Quan hệ vào khối ADC Nếu ADC xuất mã gồm n bit số mức rời rạc 2n Đối quan hệ tuyến tính, tần vào lượng tử hóa theo mức Mỗi mức tín hiệu Analog phân biệt với hai mã nhau, kích thước LSB (Least Significant Bit) FS Q=LSB= 2N Trong : Q : Lượng tử LSB : bit có trọng số thấp FS : giá trò toàn thang Tất giá trò Analog lượng tử Q biểu diễn mã số, mà mã tương ứng với giá trò trung bình lượng tử (có thể hiểu khoảng LSB) gọi mức ngưỡng Các giá trò Analog nằm khoảng từ mức ngưỡng sai biệt ± ½ LSB thể mãù, sai số lượng tử hóa Sai số giảm cách tăng số bit mã ADC – Độ phân giải: Là giá trò biến đổi nhỏ tín hiệu vào yêu cầu để thay đổi mã lên mức Độ phân giải đưa với giả thiết lý tưởng – Độ xác: Sự sai biệt giá trò điện áp tín hiệu vào so với giá trò FS tương đương với mã xuất Thường có ghi đặc tính ADC thương mại – ADC: Tùy theo công nghệ chế tạo mà ADC có đầu vào đơn cực hay lưỡng cực, đa số nằm khoảng 0…5V 0…10V đơn cực -5…+5V –10V…+10V ADC lưỡng cực Tín hiệu vào cần phù hợp với tầm vào xác đònh cho ADC Nếu đầu vào không hết thang tạo mã vô dụng đầu Vấn đề giải cách chọn tầm đầu vào ADC sau chỉnh độ lợi thích hợp cho đầu vào nguồn Analog Khi sử dụng ADC đơn cực mà có tín hiệu vào lưỡng cực khoảng ±Vpp ta cần phải cộng điện áp vào Vi với điện áp +Vpp, ta có Vi nằm khoảng +2Vpp; tín hiệu đưa tới đầu vào ADC Nếu sử dụng ADC lưỡng cực không cần cộng tín hiệu đầu ta nhận mã lưỡng cực – Đầu ADC: Đa số ADC có đầu Bits, 16 Bits … dù có loại 3½ Digit, mã BCD, 10 Bits, 14 Bits Đầu ADC thường mã nhò phân tự nhiên có dấu ADC dùng cho máy đo thò số đa dụng thường mã BCD – Tín hiệu tham chieáu Vr: Vi+ Convertion Vi ADC Vr Start Clock (EOC) End of OE (Output Enable) Digital Output Hình 2.3 Các ngõ vào, ADC Hình vẽ cho thấy đầu vào đầu ADC Mọi ADC yêu cầu có tín hiệu Vr Bất kỳ sai số Vr gây lỗi độ lợi đặc tính AD Vì Vr tín hiệu đảm bảo độ xác ổn đònh AD Dùng IC ổn áp thỏa mãn điều – Tín hiệu điều khiển: Mọi ADC có tính xung Clock tín hiệu điều khiển để hoạt động Thiết bò giao tiếp với ADC khởi động trình AD cách phát xung Start vào đầu vào Start ADC, ADC nhận biết cạnh lên xung Start sau kéo đường EOC (End of Conversion) xuống thấp (không tích cực) Lúc ADC thực trình biến đổi, tương ứng với xung Clock đưa vào ADC thực bước biến đổi, sau bước đònh tùy theo ADC, trình biến đổi hoàn thành Khi biến đổi xong, AD nâng đường EOC lên mức cao, tín hiệu dùng để kích ngắt cứng máy tính (nếu dùng giao tiếp với máy tính) Để đọc liệu đầu ADC phải nâng đường OE (Output Enable) ADC lên mức cao, sau đọc xong lại trả đường mức thấp II – CÁC KỸ THUẬT AD: – ADC có Vr dạng naác thang: Analog Vht Vref input Vi Reference Comparateur DAC Digital output Clock Contr Count ol er Hình 2.4 Sơ đồ khối AD có Vr dạng nấc thang Counter: Bộ đếm tạo đầu cho ADC lớn giá trò vào Vi Nó reset thời điểm bắt đầu thực AD đếm dần lên sau xung Clock Cứ lần đếm DAC lại nâng lên nấc thang (1 LSB) Bộ so sánh dùng đếm lại điện áp DAC (áp hồi tiếp) đạt tới giá trò vào Vi Nhược điểm phương pháp Tc (thời gian chuyển đổi) theo mức tín hiệu vào lâu Tc=2ⁿ x Tclock DAC n bit biến đổi tín hiệu vào mức FS (Full Scale) Một cải tiến phương “tracking” hay “servo” sử dụng đếm thuận nghòch cho phép DAC đưa tín hiệu vào liên tục Bằng khống chế đếm từ bên điểm đònh ta dùng DAC kiểu tracking boä S & H (Sample and Hold) – ADC thăng liên tục: Sơ đồ khối giống phương pháp trước, đếm đếm thuận nghòch Về giống phương pháp đếm hoạt động chế độ thuận nghòch Khi tín hiệu Vht < Vi đếm đếm lên, ngược lại đếm đếm xuống Quá trình xác lập ghi nhận giá trò Vht dao động xung quanh giá trò Vi Tc phụ thuộc vào Vi nhược điểm sai số giống phương pháp trên: sai số động phụ thuộc vào thời gian biến đổi sai số tónh chủ yếu biến đổi DA so sánh – Phương pháp biến đổi AD hàm dốc tuyến tính: (Phng pháp tích phân độ dốc) Về chất thực biến đổi trung gian từ điện áp khoảng thời gian sau đo khoảng thời gian theo phương pháp số Quá trình biến đổi xảy nhö sau: Comparator Vi V1 Clock Gat e Vs V2 Sca n Cout er Start Result Hình 2.6 Sơ đồ khối phương pháp ADC hàm dốc tuyến tính Sau thời gian kích khởi, đếm bắt đầu đếm lên mạch quét bắt đầu tạo tín hiệu tuyến tính thời gian Tín hiệu quét tín hiệu vào Vi so sánh với nhau, hai tín hiệu mạch so sánh đóng cổng không cho xung tới đếm Như nội dung đếm tỉ lệ với thời gian to, mà t o lại tỉ lệ thuận với giá trò Vi nên nội dung đếm tỉ lệ với Vi Độ xác phương pháp phụ thuộc vào độ tuyến tính tín hiệu quét (sai số độ dốc nhỏ, độ xác cao), tín hiệu phụ thuộc vào tần số xung Phương pháp có tốc độ hoạt động cao phương pháp ban đầu, độ xác cao không cần sử dụng biến đổi DA – ADC xấp xỉ liên tiếp: Analog Input Vi Comparateur Clock Vref Reference SAR DAC Digital output Hình 2.8 ADC xấp xỉ liên tiếp Phương pháp dùng kỹ thuật biến đổi AD tốc độ cao – trung bình Nó dùng DAC bên để tạo điện áp mức vào tín hiệu sau n chu kỳ xung Clock cho trường hợp ADC n bit PHẦN II THIẾT KẾ Chương I THIẾT KẾ PHẦN CỨNG I – MẠCH CHUYỂN ĐỔI AD: – Giới thiệu ADC 0809 ADC 0809 thiết bò biến đổi tương tự số dùng kỹ thuật CMOS Tổng cộng người sử dụng có kênh làm việc hoàn toàn độc lập với để lựa chọn Ở ý điện áp đo so với điện 0V Còn đặc điểm đáng quan tâm tiêu thụ dòng điện vi mạch không đáng kể (chỉ cỡ 300uA) Thời gian biến đổi khoảng 100 us Các thông số kỹ thuật biến đổi ADC 0809 kể sau: • Không cần đòi hỏi điều chỉnh điểm • Quét động kênh logic đòa • Giải tín hiệu lối vào Analog điện áp nguồn +5V • Tất tín hiệu tương thích TTL • Độ phân giải bit • Thời gian biến đổi 100us • Dòng tiêu thụ (bình thường): 0.3 mA • Tần số cung cấp cho chân clock: 10KHz ÷ 1280KHz Thông thường vào khoảng 640KHz Tín hiệu giữ nhòp dùng cho biến đổi AD cần phải tạo bên dẫn đến chân clock Điện áp so sánh đưa qua tầng lặp lại điện áp để làm chân REF+ Chân có điệntrở lối vào cỡ 2.5K Mẫu bit lối vào đòa A, B, C xác đònh xem kênh phải lựa chọn – Nguyên tắc hoạt động Nguyên tắc làm việc biến đổi ADC 0809 phức tạp Một xung dương chân start kích hoạt biến đổi Qua mẫu bit lối vào đòa A, B, C đồng thời chốt xác đònh kênh cấn biến đổi Trong trình biến đổi, chân EOC (End of Conversion) đứng mức Low Sau 100us mức chuyển sang high báo hiệu kết thúc trình chuyển đổi Sau kết trình chuyển đổi xếp hàng đường dẫn liệu D0 ÷ D7 Khi OE (Output Enable) = 1, đường dẫn đọc tiếp – Mạch tạo dao động cho ADC 0809: 0,7 V0 (f= ) RC Do tần số làm việc tương đối cao, ta sử dụng đa hài tạo sóng xuống dùng Trigger Schmitt theo công nghệ TTL Với mạch điện ta có tần số dao động: F ≈ 0,7 ≈ 700 KHz RC – Mạch so sánh lặp lại điện áp: 1K 10K VR 2 K V + LM 358 10K C C Ta sử dụng OP-AMP LM 358 để lập lại điện áp nhằm phối hợp tổng trở với ngõ vào REF+ ADC 0809: đồng thời cung cấp mức áp chuẩn để đưa vào REF+ để tạo mức logic ngõ tương ứng • Các điện trở 1K, 2K 10K VR 10K nhằm tạo cầu phân áp chọn mức áp chuẩn đưa vào REF+ • VZ = 5,6V ổn áp, giữ điện áp cố đònh • Ngõ so sánh 5V Với giá trò ta có thay đổi AV ngõ vào để thay đổi mức logic ngõ là: AV = 5/256 ≈ 20mV – Mạch tạo giao tiếp với KIT 8051: • bit 0809 nối với PortA 8255 –1 • chân chọn kênh A0, A1, A2 0809 nối PB0 ÷ PB2 Vì ghi liệu vào vùng nhớ 0809 tức chọn kênh • Chân Start nối PC4, ALE nối PC5 • Chân OE nối lên Vcc Luôn trạng thái cho phép đọc liệu • Chân EOC nối với PCC Trong trình thực chuyển đổi vi điều khiển đọc giá trò EOC PCO Nếu EOC = 1: hoàn thành trình chuyển đổi, vi điều khiển đọc liệu lưu trữ vào RAM để xử lý • PC1 nối qua R1KΩ đưa lên +5V (PC1 = 1) Khi có ấn phím PC1 = 0, đưa vào vi điều khiển để báo chọn kênh II – MẠCH CHUYỂN ĐỔI DA 0808 DAC 0808 có nhiệm vụ biến đổi mã nhò phân thành dòng (tín hiệu analog) Dòng có chiều chạy vào Iout DAC 0808 có cường độ thay đổi theo tỉ lệ với data ngã vào Khi data thay đổi từ ÷ 255 Iref, mạch dòng mã nhò phân đưa từ KIT 8051 qua Port A 8255-2 để đưa vào DAC 0808 Tín hiệu DAC 0808 tạo dòng nên phải có mạch chuyển dòng thành áp dùng LM324 Ta cần điện áp thay đổi từ 0-5V mà dòng thay đổi từ ÷ 2mA nên ta cần điều chỉnh VR 5K cho phù hợp Sơ đồ nguyên lý card chuyển đổi A/D – D/A SƠ ĐỒ BỐ TRÍ LINH KIỆN SƠ ĐỒ MẠCH IN MẶT TRÊN Chương II THIẾT KẾ PHẦN MỀM I – LƯU ĐỒ GIẢI THUẬT – Lưu đồ chương trình chính: START Khởi động 8255-1 MODE0 Nạp đòa cho kênh vào r7 Chương trình xóa 8LED Chương trình hiển thò thứ tự kênh chọn LED Chương trình chuyển đổi data Chương trình xuất data D/A Chương trình đổi HEX-BCD Chương trình giải mã LED đoạn Chương trình hiển thò Chương trình delay Khởi động Port C Kiểm tra nhấn phím PC4 = Y Tăng R7 để dò kênh kế N R7= 08 Y N – Lưu đồ chương trình chuyển đổi: START Nhập kênh cần quét r7 → a Khởi động Port B 8255 -1 Ghi A vào 0809 Chọn kênh Khởi động 0809 ALE = 1, ST =1 Chuyển đổi kết thúc Y Lưu kết END N II- CHƯƠNG TRÌNH: Chương trình chuyển đổi A/D – D/A: ORG 4000H MOV A, #91H ; Khởi tạo 8255-1 port A MOV DPTR, #8003H MOV @DPTR, A X1 : MOV R7, #00H ; Nạp đòa để chọn kênh quét X2: LCALL CLEAR ; Gọi chương trình xóa LCALL DISPLAY – ; Hiển thò số kênh chọn LED LCALL CHUYENDOI ; Gọi chương trình chuyển đổi LCALL OUT ; Gọi chương trình xuất D/A LCALL HEX – BCD ; Gọi chương trình chuyển số hex sang BCD LCALL DECODE ; Gọi chương trình giải mã đoạn LCALL DISPLAY – ; Gọi chương trình hiển thò liệu vừa chuyển đổi LCALL DELAY ; Gọi chương trình delay MOV DPTR, #8002 ; Kiểm tra nhấn phím MOV A, @DPTR ANL A, 02H JNZ X2 INC R7 ; Taêng lên để dò kênh kế CJMP 08, X2 ; Kiểm tra dò hết kênh chưa LJMP X1 ; quay trở lại *********************************************************** Các chương trình phục vụ cho chương trình *********************************************************** Chương trình xóa vùng data hiển thò cho kênh từ 5000h – 507Fh ORG 4880H MOV DPTR, #5000H ; Dùng ram để lưu trữ MOV A, #00H MOV R0, #80H ; Xóa từ 5000h đến 507Fh CLE1: MOVX @DPTR, A INC DJNZ RET DPTR R0, CLE1 *********************************************************** Chương trình thực trình chuyển đổi kênh thứ n R7 *********************************************************** ORG 4500H MOV A, R7 ;Chọn kênh thứ n, ALE =0 MOV DPTR, A ; Điều khiển trình chuyển đổi cho kênh thứ n ORL A, #10H ; Cho ALE =1 MOVX @DPTR, A ORL A, #20H ; Cho ALE =1, ST =1 MOVX @DPTR, A NOP NOP NOP CLR A ; Cho ALE =0, ST =0 MOVX @DPTR, A ; Kiểm tra trình chuyển đổi kết thúc hay chöa CTC1: MOV DPTR, #PORTC MOVX A, @DPTR ANL A, #01H JZ CTC1 ; Nếu chưa xong quay lại ; Xong trình biến đổi bắt đầu nhận liệu MOV DPTR, #PORTA MOVX A,@DPTR RET *********************************************************** Chương trình hiển thò thứ tự số kênh chọn *********************************************************** ORG 4100H MOV A, #80H ; Chọn vò trí led để hiển thò MOV DPTR, C001 MOVX @DPTR, A MOV A, R7 MOV 83, 43 ; Nạp byte cao đòa chứa mã hiển thò MOV 82, A ; Nạp byte thấp đòa chứa mã hiển thò MOV MOV MOVX LCALL RET A, @DPTR DPTR, C000 @DPTR, A DELAY ; Hieån thò Led *********************************************************** Chương trình xuất D/A *********************************************************** ORG 4200H MOV R0, A ; Cất liệu vào ghi R0 MOV A, #80 ; Khởi tạo 8255 – Mode MOV DPTR, A003 MOV @DPTR, A MOV A, R0 ; Nạp trở lại liệu vào ghi A MOV DPTR, A000 ; Xuất liệu Port A MOV @DPTR, A RET *********************************************************** Chương trình chuyển số HEX sang số BCD *********************************************************** ORG 4600H MOV DPTR, #5008H MOV B, #10 ; Nạp 10 vào ghi B DIV AB MOV R0, A ; Cất tạm A sang R0 MOV A, B MOVX @DPTR, A ; Cất data đơn vò vào 5008H INC DPTR ; Tăng lên để lưu hàng chục MOV A, R0 ; Lấy lại data hàng chục, hàng trăm MOV B, #10 ; Nạp 10 vào ghi B DIV AB MOV R0, A ; Cất tạm A sang R0 MOV A, B MOVX @DPTR, A ;Cất data hàng chục vào 5009H INC DPTR ;Tăng lên để lưu hàng trăm MOV A, R0 ;Lấy lại data hàng trăm MOVX @DPTR, A ;Cất data hàng trăm vào 500AH RET *********************************************************** Chương trình giải mã đoạn *********************************************************** ORG 4700H MOV R0, #08H ;Quản lý byte đòa thấp MOV DPTR, #5000H DECO1:PUSH 82 ; Caát DPTR PUSH 83 ;Caát DPTR MOV DPTR, #5000H MOV A, R0 MOVC A, @A+DPTR MOV DPTR, #0200H MOVC A, @A+DPTR POP 83H POP 82H MOVX @DPTR, A INC DPTR INC R0 CJNE R0, #0BH, DECO1 RET data ******************************************************** Chương trình hiển thò ******************************************************** ORG 4800H MOV R0, #87H ; Từ điều khiển 8279 MOV R1, #00 ; Đòa tương đối vùng DISP: MOV MOV MOV MOV MOV R1 sang A MOVC MOV MOVX DEC INC CJNE RET DPTR, #CW79 ; Đòa điều khiển 8279 A, R0 @DPTR, A DPTR, #5000H A, R1 ;Chuyển đòa tương đối từ A, @A+DPTR DPTR, #DT79 @DPTR, A R0 R1 R1, #08, DISP ;Lấy byte liệu ;Đòa hiển thò 8279 *********************************************************** Vùng chứa mã hiển thò kênh chọn LED *********************************************************** ORG 4300H 4300 4301 4302 4303 4304 4305 4306 4307 06 5B 4F 66 6D 7D 07 3F *********************************************************** Chương trình delay *********************************************************** ORG 488CH MOV 7DH, #05H DEL3: MOV 7FH, #0A0H DEL2: MOV 7EH, #0FFH DEL1: DJNZ 7EH, DEL1 DJNZ 7FH, DEL2 DJNZ 7DH, DEL3 RET ... nhiều chu kỳ DMA để thi hành IV – GIAO TIẾP PHẦN CỨNG: Thiết kế phần cứng theo mô hình liệu song song hay nối tiếp – Dữ liệu truyền song song: Phần cứng cho giao tiếp liệu song song hầu hết bao gồm... 3 Bảng 4.1 So sánh IC họ Msc-51TM I – CẤU TRÚC CỦA 8051: Trung tâm 8051 vi xử lý trung tâm (CPU) Để kích thích cho toàn hệ thống hoạt động, 8051 có tạo dao động nội với thạch anh ghép bên với... khiển 8051 có 4K ROM, 128 bytes RAM số ghi nhớ … Nó giao tiếp với bên qua cổng song song cổng nối tiếp thu, phát liệu nối tiếp với tốc độ lập trình Hai đònh thời 16 bit 8051 có ngắt cho phép đáp ứng