Đồ án Nhiệt kế điện tử điều khiển tự động

Trong công nghệ điện tử ,Vi Xử Lý làmột thành phần quan trọng không thể thiếu,nó mang nhiều tính -u việt : có thể thay thế một mạch điện phức tạp bằng một vi mạch nhỏ gọn với chi phí thấp hơn , nh-ng ứng dụng lại đadạng và linh hoạt hơn.Khả năng điều khiển thông minh hơn ,tiết kiệm năng l-ợng hơn ,tốc độ xử lý nhanh hơn,ứng dụng nhiều trong hệ thống nhúng. Để học tập tốt môn học Vi Xử Lý ngoài những kiến thức trên sách vở cần có sự thực hành ứng dụng vào thực tế. Trên cơ sở đó chúng em đã áp dụng những kiến thức có đ-ợc trong quá trình học tập để chế tạo sản phẩm NHIệT Kế ĐIệN Tử Điềukhiển tự động dùng vi điều khiển AVR của ATMEL ,có khả năng đo và tự động điều khiển nhiệt độ. áp dụng Vi Xử Lý trong lĩnh vực này đã đ-ơc nghiên cứu và phát triển nhiều với những loại vi điều khiển ,cảm biến và ngôn ngữ lập trình khác nhau ví dụ:dùng cảm biến nhiệt độ LM35 kết hợp với AT89S52và IC biến đổi A/D và hiển thị bằng LED7 thanh đo đ-ợc nhiệt độ từ -55 đến +150°C,dùng LM34C và 16F88 thuộc vi điều khiển PIC dùng ngôn ngữ lập trình BASIC hiển thị nhiệt độ bằng LCD, chỉ đo đ-ợc nhiệt độ từ -55 đến +125°C. Nói chung những loại cảm biến nhiệt độ họ LM so với họ DS thì độ chính xác không cao và tốc độ truyền tín hiệu chậm 2°C - 150°C với tần số (20 -1500Hz) nh-ng giá thành chế tạo rẻ. Còn ở loại cảm biến họ DS độ chính xác rất cao do tín hiệu đ-ợc truyền có độ phân dải lên đến 12bit trong 750ms ở loại cảm biến này có tích hợp ROM 64bit,bộ nhớ Logic, mạch ổn định tín hiệu đầu ra ,chính vì vậy mà nó khắc phục đ-ợc những nh-ợc điểm của cảm biến họ LM .So với những loại nhiệt kế dùng họ vi điều khiển 8051 và PIC nhiệt kế dùng vi điều khiển ATMEGA16L thuộc họ vi điều khiển AVR có nhiều -u điểm hơn,so với vi điều khiển PIC lập trình bằng ngôn ngữ lập trình BASIC thì dùng AVR lập trình bằng C thì phần mềm sẽ ngắn gọn hơn, còn so với 8051 thì tốc độ xử lý tín hiệu nhanh hơn không cần lắp thêm bộ biến đổi A/D do ATMEGA16 đã tích hợp sẵn bộ biến đổi A/D và việc lập trình sẽ đơn giản hơn. Sản phẩm này có thể phát triển đ-ợc một số ứng dụng vào đời sống . Có thể lắp đ-ợc nhiều cảm biến DS18B20 vào Bus-1wire với độ dài lên tới 300m vàđiều kiểm soát đ-ợc giá trị nhiệt độ của từng cảm biến .Một ứng dụng đơn giản là tự động điều khiển nhiệt độ phòng bảo quản hoá chất bằng cách kết hợp với Transistorđể đóng mở Role điều khiển máy điều hoà ,nh-vậy sẽ tiết kiệm đ-ợc l-ợng điện năng tiêu hao vô ích trong lúc nhiệt độ đã đạt mức yêu cầu . Do hạn chế về trình độ và thời gian nên đề tài còn rất nhiều những khuyết điểm , chúng em rất mong đ-ợc sự dạy bảo của các thầy, cô và những ý kiến đóng góp của các bạn,để có những hiểu biết rõ hơn về đề tài này

pdf55 trang | Chia sẻ: oanhnt | Lượt xem: 1852 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đồ án Nhiệt kế điện tử điều khiển tự động, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
môn : vi xử lý Linhdt1 1 Lời nói đầu Trong công nghệ điện tử ,Vi Xử Lý là một thành phần quan trọng không thể thiếu,nó mang nhiều tính −u việt : có thể thay thế một mạch điện phức tạp bằng một vi mạch nhỏ gọn với chi phí thấp hơn , nh−ng ứng dụng lại đa dạng và linh hoạt hơn.Khả năng điều khiển thông minh hơn ,tiết kiệm năng l−ợng hơn ,tốc độ xử lý nhanh hơn,ứng dụng nhiều trong hệ thống nhúng... Để học tập tốt môn học Vi Xử Lý ngoài những kiến thức trên sách vở cần có sự thực hành ứng dụng vào thực tế. Trên cơ sở đó chúng em đã áp dụng những kiến thức có đ−ợc trong quá trình học tập để chế tạo sản phẩm NHIệT Kế ĐIệN Tử Điều khiển tự động dùng vi điều khiển AVR của ATMEL ,có khả năng đo và tự động điều khiển nhiệt độ. áp dụng Vi Xử Lý trong lĩnh vực này đã đ−ơc nghiên cứu và phát triển nhiều với những loại vi điều khiển ,cảm biến và ngôn ngữ lập trình khác nhau ví dụ:dùng cảm biến nhiệt độ LM35 kết hợp với AT89S52và IC biến đổi A/D và hiển thị bằng LED7 thanh đo đ−ợc nhiệt độ từ -55 đến +150˚C,dùng LM34C và 16F88 thuộc vi điều khiển PIC dùng ngôn ngữ lập trình BASIC hiển thị nhiệt độ bằng LCD, chỉ đo đ−ợc nhiệt độ từ -55 đến +125˚C. Nói chung những loại cảm biến nhiệt độ họ LM so với họ DS thì độ chính xác không cao và tốc độ truyền tín hiệu chậm 2˚C - 150˚C với tần số (20 -1500Hz) nh−ng giá thành chế tạo rẻ. Còn ở loại cảm biến họ DS độ chính xác rất cao do tín hiệu đ−ợc truyền có độ phân dải lên đến 12bit trong 750ms ở loại cảm biến này có tích hợp ROM 64bit,bộ nhớ Logic, mạch ổn định tín hiệu đầu ra ,chính vì vậy mà nó khắc phục đ−ợc những nh−ợc điểm của cảm biến họ LM .So với những loại nhiệt kế dùng họ vi điều khiển 8051 và PIC nhiệt kế dùng vi điều khiển ATMEGA16L thuộc họ vi điều khiển AVR có nhiều −u điểm hơn,so với vi điều khiển PIC lập trình bằng ngôn ngữ lập trình BASIC thì dùng AVR lập trình bằng C thì phần mềm sẽ ngắn gọn hơn, còn so với 8051 thì tốc độ xử lý tín hiệu nhanh hơn không cần lắp thêm bộ biến đổi A/D do ATMEGA16 đã tích hợp sẵn bộ biến đổi A/D và việc lập trình sẽ đơn giản hơn. Sản phẩm này có thể phát triển đ−ợc một số ứng dụng vào đời sống . Có thể lắp đ−ợc nhiều cảm biến DS18B20 vào Bus-1wire với độ dài lên tới 300m và điều kiểm soát đ−ợc giá trị nhiệt độ của từng cảm biến .Một ứng dụng đơn giản là tự động điều khiển nhiệt độ phòng bảo quản hoá chất bằng cách kết hợp với Transistor để đóng mở Role điều khiển máy điều hoà ,nh− vậy sẽ tiết kiệm đ−ợc l−ợng điện năng tiêu hao vô ích trong lúc nhiệt độ đã đạt mức yêu cầu . Do hạn chế về trình độ và thời gian nên đề tài còn rất nhiều những khuyết điểm , chúng em rất mong đ−ợc sự dạy bảo của các thầy, cô và những ý kiến đóng góp của các bạn,để có những hiểu biết rõ hơn về đề tài này. Hà Nội , ngày 5 tháng 12 năm 2007 Nhóm thực hiện đề tài Linhdt1 2 Nội dung : Trang Ch−ơng I : Sơ Đồ Nguyên Lý 3 + I.1 : Phần Cứng 4 + I.2 : Phần Mềm 7 Ch−ơng II : Nguyên Lý Hoạt Động + II.1 : Tổng Quan Họ Vi Điều Khiển AVR 9 + II.2 : Vi Điều Khiển ATMEGA16L 20 + II.3 : Cảm Biến Nhiệt Độ DS18B20 43 + II.4 : Hoạt Động Của Mạch Điện 47 Ch−ơng III : Mạch Nạp 48 Ch−ơng IV : Phần Mềm Thiết Kế Và Lập Trình + IV.1 : Proteus7.1SP2 49 + IV.2 : CodeVisionAVR 53 Linhdt1 3 CHƯƠNG I : SƠ Đồ NGUYÊN Lý Linhdt1 4 Sơ đồ nguyên lý trên nguồn cấp cho mạch điện là nguồn AC từ 7 đến 24V + 3 chân cấp nguồn cho Chip ATMEGA16L là những chân 10,11,31 không vẽ trên sơ đồ (chân 10 đ−ợc nối với chân 30, chân 11đ−ợc nôí với chân 31). + điện trở PULLUP có giá trị 4,7K + Tụ C3 có thể thay bằng tụ hoá 10uf + Có thể dùng thạch anh 4MHz thay cho loại 8MHz I.1 : phần cứng Phần cứng đ−ợc sử dụng để lắp mạch gồm : 1. Chip ATMEGA16L + Điện áp hoạt động : từ 2.7 đến 5.5VDC + Sơ đồ chân : - VCC : Cấp nguồn + - GND : Nối đất - AVCC : Là chân cấp điện cho cổng A(Port A ) và bộ biến đổi A/D,PC3,PC0,ADC7,ADC6 Nó đ−ợc nối nội bộ đến VCC ngay cả trong tr−ờng hợp ADC không đ−ợc sử dụng. Nếu ADC Linhdt1 5 Không đ−ợc sử dụng , nó phải đ−ợc nối với VCC qua bộ lọc thông thấp.Cả PC6 và PC4 cũng sử dụng đ−ợc điện áp AVCC. - AREF : Là chân tín hiệu tham chiếu Analog ( t−ơng tự ) nối vào bộ biến đổi A/D. - PORT B : Từ PB7 đến PB0 là cổng I/O 8-bit hai chiều với các điện trở Pull-up bên trong (đ−ợc lựa chọn cho mỗi bit ) . Bộ đệm đầu ra của Port B có đặc tính điều khiển cân đối với cả tín hiệu Source( nguồn ) và Sink (bên trong).Khi là tín hiệu đầu vào , các chân của cổng B sẽ Tiêu thụ dòng nếu các điện trở Pull-Up bên trong đ−ợc kích hoạt. Các chân của Port B là 3 trạng thái khi có tín hiệu Reset đ−ợc kích hoạt, thậm chí đồng hồ không chạy.Tuỳ thuộc việc đặt các cầu chì lựa chọn xung nhịp, chân PB6 có thể đ−ợc sử dụng nh− là bộ khuếch đại dao dộng đảo. Tuỳ thuộc việc đặt cầu chì lựa chọn xung nhịp ,chân PB7 có thể đ−ợc sử dụng nh− là đầu ra từ bộ khuếch đại dao động đảo. Nếu nh− bộ dao động RC định cỡ bên trong đ−ợc sử dụng nh− là nguồn xung nhịp của chip bên trong thì PB7-PB6 đ−ợc sử dụng nh− là đầu vào TOSC2 và TOSC1 cho Timer/Counter2 nếu nh− Bit AS2 trong thanh ghi ASSR đ−ợc đặt. - PORT C : Port C là cổng I/O 7-bit hai chiều với các điện trở Pull-up bên trong (d−ợc lựa chọn cho mỗi bit) . Bộ nhớ đệm đầu ra của Port C có tính điều khiển cân đối với cả tín hiệu Source và sink .Khi là các tín hiệu đầu vào , các chân của Port C là 3 trạng thái khi có tín hiệu reset đ−ợc kích hoạt ,thậm chí đồng hồ không chạy. Đối voi chân PC6 Nếu cầu chì RSTDISBL đ−ợc lập trình , PC6 đ−ợc sử dụng nh− là một chân đầu vào Reset . Khi tín hiệu ở mức thấp dài hơn độ dáI của xung nhỏ nhất sẽ gây ra Reset ngay cả khi các xung nhịp không còn. - PORT D : Port D là cổng I/O 8-bit hai chiềuvới các điện trở Pull-Up bên trong (đ−ợc lựa chọn cho mỗi bit). Bộ đệm đầu ra của Port D có đặc tính giống Port C. - PORT A : Đầu ra của bộ biến đổi A/D - XTAL1 & XTAL2 : Chân vào ra của thạch anh tạo dao động 2. LCD 2 dòng 16 ký tự +Điện áp hoạt động từ 2.7 – 5VDC +Tần số hiển thị 2MHZ ở mức điện áp 5V 3. Cảm Biến Nhiệt Độ DS18B20 Linhdt1 6 + Điện áp hoạt động từ 3.0 – 5VDC - Chân 1 : GND - Chân 2 : DQ (truyền tín hiệu) - Chân 3 : Nguồn Vcc + Có thể đo nhiệt độ từ -55 đến +125˚C (-67˚F đến +257˚F) GND DQ VCC - Khi lắp vào mạch phải nối chân 2 và chân 3 với một điện trở 4K7 4. Những linh kiện khác 2 tụ 2200uf 16V 7805 - Để lọc nguồn 1 IC ổn áp 5V - Tạo điện áp 5V cấp cho mạch 33 1 tụ 47uf 16V 104 - Làm mạch reset 2 tụ gốm 33pf - ổn định làm việc cho thạch anh 20V – 0.5A 1 tụ gốm 104pf - bảo vệ mạch tránh những thành phần tần số cao 1 điện trở 4,7K và 1 điện trở 10K - Nối chân 2 va chân 3 của DS18B20 va nối với mạch 8.000 Rese Biến áp 20V- 0.5A Thach anh 8.000MHz Cầu Diod Linhdt1 7 I.2 : PHầN MềM Phần mềm viết bằng ngôn ngữ C /* Nhiet ke dien tu v1.0 by Linh */ #asm .equ __w1_port=0x1b //Đặt cổng nhiệt độ .equ __w1_bit=6 //Đặt bit nối cảm biến #endasm #asm .equ __lcd_port=0x15 //Đặt cổng LCD #endasm #include // Khởi tạo LCD #include #include #include #include char lcd_buffer[33]; /* Số l−ợng tối đa chip DS18B20 nối vào hệ thống */ #define MAX_DEVICES 8 /* Vùng mã DS18B20 ROM */ unsigned char rom_code[MAX_DEVICES][9]; main() { unsigned char i,j,t1,devices; PORTD=0x00; lcd_init(16); lcd_putsf("Truong CDCN \n Thanh Do"); delay_ms(1000);thời gian hiện chữ trên LCD lcd_clear(); lcd_putsf("Lop DTVT1-K3"); delay_ms(1000); lcd_clear(); lcd_putsf("Desined by \n LINH"); delay_ms(1000); lcd_clear(); lcd_putsf("GVHD:NGUYEN DINH\nTHUAN"); delay_ms(1000); lcd_clear(); /* Kiểm tra số l−ợng DS18B20 nối vào hệ thống */ devices=w1_search(0xf0,rom_code); Linhdt1 8 sprintf(lcd_buffer,"So luong: \n %u DS18B20",devices); lcd_puts(lcd_buffer); delay_ms(2000); /* Hiển thị mã ROM */ if (devices) { for (i=0;i<devices;i++) { sprintf(lcd_buffer,"Ma ROM\nchip #%u la:",i+1);Hiển thị mã ROM chip lcd_clear(); Xoá ký tự lcd_puts(lcd_buffer); delay_ms(1000); lcd_clear(); for (j=0;j<8;j++) { sprintf(lcd_buffer,"%02X ",rom_code[i][j]); lcd_puts(lcd_buffer); if (j==3) lcd_gotoxy(0,1); }; delay_ms(1000); }; } else while (1); /* Dừng lại khi có lỗi */ /* Đặt chế độ làm việc ở độ chính xác 12 bit */ for (i=0;i<devices;) if (!ds18b20_init(&rom_code[i++][0],20,30,DS18B20_12BIT_RES)) { sprintf(lcd_buffer,"Thiet bi\nloi #%u",i); lcd_clear(); lcd_puts(lcd_buffer); while (1); /* Dừng lại khi có lỗi */ }; /* Đọc nhiệt độ và kiểm tra điều kiện */ while (1) { j=1; for (i=0;i<devices;i++) { Linhdt1 9 sprintf(lcd_buffer,"t%u=%+.0f\xdfC",j++,ds18b20_temperature(&rom_code[i][0])); lcd_clear(); lcd_puts(lcd_buffer); t1 = ds18b20_temperature(0); if (t113) { PORTD=0x00; // Tắt thiết bị làm nóng và làm lạnh trong điều kiện khác } if (t1 >= 35) ; Đặt điều kiện làm lạnh { PORTD=0x01; //Bật thiết bị làm lạnh } if (t1 <= 13) ; Đặt điều kiện làm nóng { PORTD=0x02; //Bật thiết bị làm nóng } delay_ms(500); Thời gian khởi động }; }; } CHƯƠNG II : NGUYÊN Lý HOạT ĐộNG II.1 : Tổng Quan Họ Vi Điều Khiển AVR Vi điều khiển AVR (Atmel Norway design) thuộc họ vi điều khiển Atmel, nú là họ Vi điều khiển mới trờn thị trường cũng như đối với người sử dụng. Đõy là họ Vi Điều Khiển được chế tạo theo kiến trỳc RISC (Reduced Intruction Set Computer) cú cấu trỳc khỏ phức tạp. Ngoài cỏc tớnh năng như cỏc họ VĐK khỏc, nú cũn tớch hợp nhiều tớnh năng mới rất tiện lợi cho người thiết kế và lập trỡnh.Sự ra đời của AVR bắt nguồn từ yờu cầu thực tế là hầu hết khi cần lập trỡnh cho vi điều khiển, chỳng ta thường dựng những ngụn ngữ bậc cao HLL (Hight Level Language) để lập trỡnh ngay cả với loại chip xử lớ 8 bit trong đú ngụn ngữ C là ngụn ngữ phổ biến nhất. Tuy nhiờn khi biờn dịch thỡ kớch thước đoạn mó sẽ tăng nhiều so với dựng ngụn ngữ Assembly. Hóng Atmel nhận thấy rằng cần phải phỏt triển một cấu trỳc đặc biệt cho ngụn ngữ C để giảm thiểu sự chờnh lệch kớch thước mó đó núi trờn. Và kết quả là họ vi điều khiển AVR ra đời với việc làm giảm kớch thước đoạn mó khi biờn dịch và thờm vào đú là thực hiện lệnh đỳng đơn chu kỳ mỏy với 32 thanh ghi tớch lũy và đạt tốc độ nhanh hơn cỏc họ vi điều khiển khỏc từ 4 đến 12 lần. Vỡ thế nghiờn cứu AVR là một đề tài khỏ lý thỳ và giỳp cho học sinh, sinh viờn biết thờm một họ vi điều khiển vào loại mạnh hiện nay. Linhdt1 10 PHÂN LOẠI AVR + AT90S8535: Khụng cú lệnh nhõn hoặc chia trờn thanh ghi. + ATMEGA 8, 16, 32 (AVR loại 8 bit, 16 bit, 32 bit): Là loại AVR tốc độ cao, tớch hợp sẵn ADC 10 bit. + AVR tớch hợp sẵn LCD driver : Atmega169,329 + AVR cú tớch hợp SC (power stage controller): AT90PWM thường dựng trong cỏc ứng dụng điều khiển động cơ hay chiếu sỏng nờn cũn gọi là lighting AVR. + Attiny11, 12, 15: AVR loại nhỏ. Các đặc điểm chính 1-Kiến trỳc RISC(Có nghĩa là máy tính dùng tập lệnh rút gọn,bộ vi xử lý kiểu này thực hiện ít lệnh hơn những bộ vi xử lý khác) với hầu hết cỏc lệnh cú chiều dài cố định, truy nhập bộ nhớ nạp – lưu trữ và 32 thanh ghi đa năng. 2- Cú nhiều bộ phận ngoại vi ngay trờn chip, bao gồm: Cổng vào/ra số, bộ biến đổi ADC, bộ nhớ EEFROM, bộ định thời, bộ điều chế độ rộng xung (PWM), … 3- Hầu hết cỏc lệnh đều thực hiện trong một chu kỳ xung nhịp. 4- Hoạt động với chu kỳ xung nhịp cao, cú thể lờn đến 20 MHz tuỳ thuộc từng loại chip cụ thể. 5- Bộ nhớ chương trỡnh và bộ nhớ dữ liệu được tớch hợp ngay trờn chip. 6- Khả năng lập trỡnh được trong hệ thống, cú thể lập trỡnh được ngay khi đang được cấp nguồn trờn bản mạch khụng cần phải nhấc chip ra khỏi bản mạch. 7- Hỗ trợ cho việc lập trỡnh bằng ngụn ngữ bậc cao – ngụn ngữ C. Cốt lừi của AVR là sự kết hợp tập lệnh đầy đủ với cỏc thanh ghi đa năng 32 bit. Tất cả cỏc thanh ghi 32 bit này liờn kết trực tiếp với khối xử lý số học và logic (ALU) cho phộp 2 thanh ghi độc lập được truy cập trong một lệnh đơn trong 1 chu kỳ đồng hồ. Kết quả là tốc độ nhanh gấp 10 lần cỏc bộ vi điều khiển CISC(Complex Instruction Set Computer : mỏy tớnh với tập lệnh phức tạp . Một loại kiến trỳc của bộ xử lớ được đặc trưng bởi tớnh chất là cỏc lệnh cú độ dài khỏc nhau (khụng cố định) , thường là một số nhỏ cỏc chế độ đa địa chỉ và thanh ghi) . Với cỏc tớnh năng đó nờu, chế độ nghỉ (Idle) CPU trong khi cho phộp bộ truyền tin nối tiếp đồng bộ USART, giao tiếp 2 dõy, chuyển đổi A/D, SRAM, bộ đếm, bộ định thời, cổng SPI và hệ thống cỏc ngắt vẫn hoạt động. Chế độ Power-down lưu giữ nội dung của cỏc thanh ghi nhưng làm đụng lạnh bộ tạo dao động, thoỏt khỏi cỏc chức năng của chip cho đến khi cú ngắt ngoài hoặc là reset phần cứng. Chế độ Power-save đồng hồ đồng bộ tiếp tục chạy cho phộp chương trỡnh sử dụng giữ được đồng bộ thời gian nhưng cỏc thiết bị cũn lại là ngủ. Chế độ Linhdt1 11 ADC Noise Reduction dừng CPU và tất cả cỏc thiết bị cũn lại ngoại trừ đồng hồ đồng bộ và ADC, tối thiểu hoỏ switching noise trong khi ADC đang hoạt động. Trong chế độ standby, bộ tạo dao động (thuỷ tinh thể/bộ cộng hưởng) chạy trong khi cỏc thiết bị cũn lại ngủ. Cỏc điều này cho phộp bộ vi điều khiển khởi động rất nhanh trong chế độ tiờu thụ cụng suất thấp. Thiết bị được sản xuất sử dụng cụng nghệ bộ nhớ cố định mật độ cao của Atmel. Bộ nhớ On-chip ISP Flash cho phộp lập trỡnh lại vào hệ thống qua giao diện SPI bởi bộ lập trỡnh bộ nhớ cố đinh truyền thống hoặc bởi chương trỡnh On-chip Boot chạy trờn lừi AVR. Chương trỡnh boot cú thể sử dụng bất cứ giao điện nào để download chương trỡnh ứng dụng trong bộ nhớ Flash ứng dụng. Phần mềm trong vựng Boot Flash sẽ tiếp tục chạy trong khi vựng Application Flash được cập nhật, cung cấp thao tỏc Read-While-Write thực sự. Để tối đa hoỏ hiệu năng tớnh năng và song song, AVR sử dụng kiến trỳc Harvard với bộ nhớ riờng biệt và cỏc BUS cho chương trỡnh và dữ liệu. Cỏc cõu lệnh trong bộ nhớ chương trỡnh được hoạt với một đường ống lệnh mức đơn. Trong khi một lờnh đang thực hiện, lệnh tiếp theo sẽ được nạp trước vào từ bộ nhớ chương trỡnh. Điều này làm cho cỏc lệnh được thực hiện trong mọi chu kỳ đồng hồ. Bộ nhớ chương trỡnh là bộ nhớ In-System Reprogrammable Flash. Tập thanh ghi truy cập nhanh bao gồm 32 thanh ghi đa năng 8 bit với thời gian truy cập là 1 chu kỳ đơn. Điều này cho phộp ALU hoạt động trong một chu kỳ đơn. Một thao tỏc điển hỡnh với 2 toỏn hạng được của ALU, 2 toỏn hạng được lấy ra từ tệp thanh ghi để thực hiện, và và kết quả được lưu trữ lại trong tệp thanh ghi trong một chu kỳ đồng hồ. 6 trong số 32 thanh ghi cú thể sử dụng như là 3 thanh ghi con trỏ địa chỉ giỏn tiếp 16 bit để chỉ vào vựng dữ liệu phục vụ cho tớnh toỏn địa chỉ hiệu dụng. Một trong cỏc con trỏ địa chỉ này cũng cú thể được sử dụng làm con trỏ địa chỉ trỏ vào bảng dữ liệu trong bộ nhớ chương trỡnh Flash. Cỏc thanh ghi này là X, Y và Z.ALU thực hiện cỏc phộp toỏn logớc và số học giữa cỏc thanh ghi hoặc giữa thanh ghi với một hằng số. Cũng cú thể thao tỏc với cỏc thanh thanh ghi đơn trong ALU. Sau khi thực hiện phộp toỏn số học, cỏc thanh ghi trạng thỏi được cập nhật cỏc thụng tin về kết quả thực hiện. Dũng chương trỡnh được điều khiển bởi cỏc phộp nhảy cú điều kiện hoặc khụng điều kiện đến cỏc lệnh được gọi, và chỉ đến cỏc địa chỉ trực tiếp trong khụng gian địa chỉ. Hầu hết cỏc lệnh AVR đều thực hiện với dữ liệu 16 bit. Mỗi địa chỉ bộ nhớ chương trỡnh đều chứa 1 lệnh 32 bit hoặc 16 bit. Khụng gian bộ nhớ chương trỡnh Flash được chia thành 2 vựng, vựng chương trỡnh boot và vựng chương trỡnh ứng dụng, cả hai vựng này đều cú bit khoỏ chuyờn dụng để bảo vệ cho việc ghi và đọc/ghi. Lệnh SPM dựng để ghi vào vựng bộ nhớ ứng dụng phải cú trong vựng chương trỡnh boot. Trong khi thực hiện cỏc ngắt và cỏc thường trỡnh, địa Linhdt1 12 chỉ trở về của bộ đếm chương trỡnh (PC) được lưu trữ trong stack. Nhỡn chung stack được định vị trong SRAM, và do vậy kớch cỡ stack được giới hạn bởi kớch cỡ toàn bộ của SRAM, và cỏch sử dụng của SRAM. Tất cả cỏc chương trỡnh của người sử dụng phải khởi tạo SP trong thường trỡnh reset (trước khi thường trỡnh hoặc ngắt được thược hiện). SP cú thể trỏ được vào khụng gian I/O. SRAM cú thể được truy cập một cỏch dễ dàng thụng qua 5 chế độ địa chỉ khỏc nhau hỗ trợ bởi kiến trỳc AVR.Khụng gian bộ nhớ trong kiến trỳc AVR là bản đồ bộ nhớ thụng thường và tuyến tớnh. Một module ngắt linh động cú cỏc thanh ghi điều khiển của nú trong khụng gian I/O cựng với thờm vào bit khởi tạo ngắt toàn cục trong thanh ghi trạng thỏi. Tất cả cỏc ngắt cú vector ngắt riờng biệt trong bảng vector ngắt. Cỏc ngắt này cú mức độ ưu tiờn theo vị trớ của vector ngắt tương ứng. Mức cú địa chỉ càng thấp thỡ cú quyền ưu tiờn càng cao. Khụng gian bộ nhớ I/O cú 64 địa chỉ cho cỏc chức năng ngoại vi của CPU như là cỏc thanh ghi điều khiển, SPI, và cỏc chức năng I/O khỏc. Bộ nhớ I/O cú thể truy cập trực tiếp, hoặc như là vị trớ khụng gian dữ liệu theo chỳng của tệp thanh ghi, $20-$5F. Thờm vào đú, nú cú khụng gian I/O mở rộng từ $60 đến $FF trong SRAM, cỏc khụng gian này chỉ cú cỏc lệnh ST/STS/STD và LD/LDS/LĐ cú thể sử dụng. Sơ Đồ Kiến Trúc AVR Linhdt1 13 ALU – Arithmetic Logic Unit - Đơn vị xử lý số học và logicAVR ALU hiệu năng cao tỏc động trựuc tiếp tới 32 thanh ghi đa năng. Trong vũng 1 chu kỳ, cỏc toỏn hạng số học thực hiện giữa cỏc thanh ghi đa năng hoặc giữa một thanh ghi và một toỏn hạng tức thời. Cỏc toỏn tử của ALU được chia làm 3 loại chớnh: Số học, logic, và xử lý bit. Một số phộp xử lý của kiến trỳc này cũng cung cấp bộ nhõn số cú dấu và khụng cú dấu và dạng phõn số. DATA SRAM : Bộ nhớ dữ liệu EEPROM : (Electrically Erasable Programmable Read-Only Memory): Là loại ROM có thể xoá đ−ợc bằng điện sau đú ghi lại mà khụng cần lấy ra. DATA BUS – 8Bit : Đ−ờng truyền dữ liệu 8Bit I/O Lines : Đ−ờng vào ra tín hiệu 32 x 8 Gneral Purpose Registers : 32 thanh ghi đa năng 8 Bit Status and control : Khối nhận biết trạng thái và điều khiển PRograme counter : Bộ đếm ch−ơng trình Flash program memory : Bộ nhớ flash, là một loại bộ nhớ sử dụng cỏc chớp NAND (tớch hợp nhiều transitor lờn một tấm bỏn dẫn), cỏc chớp này cú kớch thước nhỏ, tốc độ đọc/ghi cao, dung lượng lớn Intruction register : thanh ghi lệnh Intruction decoder : Giải mã lệnh Control lines : Những đ−ờng điều khiển IntErrupt unit: Bộ xử lý ngắt Linhdt1 14 SPI unit: (Serial Peripheral Interface) mạch ghộp nối ngoại vi nối tiếp, là mạch liên kết dữ liệu nối tiếp đồng bộ cho phộp bộ điều khiển truyền thụng với cỏc thiết bị ngoại vi. Watchdog timer : là một bộ đếm cú chức năng reset lại vi điều khiển khi xảy ra sự kiện tràn (overflow) ANALOG COMPARATOR : Bộ so sánh tín hiệu t−ơng tự I/O MODULE1 -> I/O MODULE n :Module vào ra tín hiệu Direct addressing : Đ−ờng địa chỉ truyền trực tiếp Indirect addressing : Đ−ờng địa chỉ truyền gián tiếp Status Register – Thanh ghi trạng thỏi Thanh ghi trạng thỏi chứa thụng tin về kết quả thưc hiện của hầu hết cỏc lệnh số học. Cỏc thụng tin này cú thể được sử dụng để điều khiển chương trỡnh. Chỳ ý rằng cỏc thanh ghi trạng thỏi được cập nhật sau tất cả cỏc hoạt động của ALU. Trong nhiều trường hợp, điều này sẽ bỏ đi những cần thiết khi sử dụng cõu lệnh so sỏnh chuyờn dụng, kết quả nhanh hơn và đoạn chương trỡnh ngắn gọn hơn. Thanh ghi trạng thỏi khụng tự động lưu trữ khi đang nhập vào mụt thường trỡnh ngắt và lưu trữ khi trở về tự một ngắt. Điều này phải được quản lý bằng phần mềm. Thanh ghi trạng thỏi AVR – SREG - được định nghĩa như sau: Global Interrupt Enable- bit cho phộp ngắt toàn cục Bit cho phộp ngắt toàn cục phải được đặt để cho cỏc ngắt cú thể hoạt động. Điều khiển hoạt động của cỏc ngắt riờng biệt được thực hiện trong cỏc thanh ghi điều khiển riờng biệt. Nếu thanh ghi cho phộ

Các file đính kèm theo tài liệu này:

  • pdfNhiet ke dien tu dieu khien tu dong.pdf
  • docHQDT.doc