- Đồng hồ nước với cánh quạt
e) Khối điều khiển rơle.
3.2.2.1. Vi điều khiển AVR.
AVR là tên của một loạt các bộ vi điều khiển do công ty Atmel sant xuất. Được giới thiệu lần đầu vào năm 1996, vi điều khiển AVR đã thể hiện nhiều ưu điểm và nhanh chóng chiếm lĩnh thị trường. Họ vi điều khiển AVR RISC (RISC (reduced intruction Computer) là một kiến trúc phổ biến của các bộ xử lý hiện đại) của Atmel có những đặc tính sau đây hơn hẳn các vi xử lý trước đó:
Kiến trúc RISC 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ữ (load-store), và 32 thanh ghi đa năng.
Kiến trúc đường ống lệnh kiểu hai tầng (two-stage instruction pipeline) cho phép làm tăng tốc độ thực thi lệnh.
Có chứa nhiều bộ phận ngoại vi ngay trên chip, bao gồm cổng I/O số, bộ biến đổi ADC, bộ nhớ EEPROM, bộ định thời, UART, bộ định thời RTC, bộ điều chế rộng xung PWM,… Đặc điểm này được xem là nổi bậc so với nhiều vi điều khiển khác vì trong khi nhiều bộ xử lý khác phải tạo bộ truyền nhận UART hoặc giao diện SPI bằng phần mền hay máy ảo thì trên vi điều khiển AVR lại được thực hiện bằng phần cứng. Trên các AVR đã được tích hợp sẵn:
o Đến 48 đường dẫn vào /ra (I/O) lập trình được.
o Đến 2 bộ truyền nhận UART lập trình được.
o Một giao diện SPI đồng bộ.
o Đến 3 bộ Timer/ Counter 8 bit.
o Một bộ Timer/ Counter 16 bit với chức năng so sánh và bắt mẫu.
o Đến 4 lối ra điều biến độ rộng xung(PWM).
o Một đồng hồ thời gian thực (RTC-Timer).
o Một bộ biến đổi ADC 10 bit có đến 8 kênh lối vào.
o Một bộ phát hiện trạng thái sụt điện áp nguồn nuôi.
o Một bộ so sánh analog.
Tất nhiên là số lượng cụ thể của các bộ phận ngoại vi khác nhau giữa các vi diều khiển cụ thể.
Hầu hết các lệnh, chỉ trừ lệnh nhảy và nạp/ lưu trữ đều được thực hiện trong một chu kỳ xung nhịp.
Hoạt động với tốc độ đồng hồ đến 12MHz. So với các vi điều khiển khác thì vi điều khiển trong họ Atmel có tần số xung nhịp cho phép tương đối cao, cụ thể là trong khoảng 6 đến 12 MHz tùy theo từng loại cụ thể. Xung nhịp do bộ dao động tạo ra cũng chính là xung nhịp của hệ thống, không hề phải cho qua bộ chia tần như trong trường hợp các vi điều khiển ra đời trước đó, nên kéo theo tốc độ xử lý lệnh tương đối cao, kết hợp với khả năng thực hiện lệnh trong một chu kỳ xung nhịp, vi điều khiển AVR có khả năng đạt đến tốc độ xử lý 12MPIS (triệu lệnh trong một giây).
Các vi điều khiển thuộc họ SX (sản phẩm của công ty Scenix) cũng có tần số xung nhịp cao, thậm chí còn cao hơn các AVR, nhưng lại có dòng tiêu thụ tương đối lớn, ngoài ra lại không có bộ phận ngoại vi trên chip như ở các vi điều khiển AVR. Chính các bộ phận ngoại vi trên chip lại góp phần làm tăng tốc độ xử lý lệnh tính chung trên hệ thống.
Bộ nhớ chương trình và dữ liệu được tích hợp ngay trên chip. Trên chip vi điều khiển AVR có tới 3 công nghệ bộ nhớ khác nhau :
o Bộ nhớ EEPROM xóa được kiểu flash (luôn luôn lập trình mới được) dùng cho mã chương trình mà người dùng có thể lập được.
o Bộ nhớ EEPROM hay PROM xóa được dữ liệu bằng điện, nhưng nội dung bộ nhớ vẫn giữ nguyên sau khi tắt điện áp nguồn. Chương trình người dùng có thể được lập trình trong thời gian thực khi hệ thống đang hoạt động.
o Bộ nhớ RAM tĩnh (SRAM) dùng cho các biến, nội dung của bộ nhớ sẽ mất đi khi tắt điện áp nguồn. Ngoài ra vi điều khiển AVR có tới 32 thanh ghi làm việc, tất cả đều được nối trực tiếp với khối ALU(đơn vị số học logic) và được trao đổi trực tiếp trên vùng địa chỉ bộ nhớ, cụ thể là 32 ô đầu tiên của bộ nhớ (0x0 đến 0xFF) tương ứng với các thanh ghi làm việc R0 đến R31.
Khả năng lập trình được trong hệ thống. Do cách thiết kế và công nghệ bộ nhớ được sử dụng mà các vi điều khiển có thể được lập trình ngay khi đang được cấp nguồn trên bản mạch, không cần phải nhấc ra khỏi bản mạch như nhiều vi điều khiển của các họ khác. Các cổng giao tiếp RS-232 và SPI cho phép dễ dàng thực hiện các thao tác dễ dàng trên hệ thống.
Được đóng trong vỏ với 8 chân đến 64 chân để thích ứng với nhiều loại ứng dụng khác nhau. Từ các ứng dụng có chi phí thấp với các vi điều khiển TINY 8 chân (loại DIP hoặc SOIC) đến những loại thông dụng với 20 hoặc 44 chân và cuối cùng là loại MEGA-AVR với 40 chân 2 hàng (DIP) hoặc 64 chân kiểu vỏ vuông (TQFP). Loại có vỏ 64 chân là bước đột phá chưa có đối thủ cạnh tranh về khả năng xử lý (với 16 bit) và giá thành.
Có tốc độ xử lý lớn hơn 12 lần so với các vi điều khiển CISC thông thường.
Hỗ trợ cho việc lập trình bằng ngôn ngữ bậc cao, chẳng hạn C.
Tất cả các vi điều khiển AVR hiện đang lưu hành trên thị trường đều được chế tạo bằng công nghệ CMOS 0,6µm . Công ty Atmel đã lập kế hoạch chuyển sang công nghệ 0,35µm , nhằm đạt đến tốc độ xung nhịp cao hơn 50% so với hiện nay (2003), còn dòng điện tiêu thụ sẽ giảm đi 1/3. Đây cũng là những biện pháp để hội nhập với xu hướng phát triển chung của kỹ thuật vi điều khiển. Phương pháp EMV cũng đang được áp dụng để thiết kế lại và hoàn thiện các vi điều khiển đang lưu hành.
Điện áp làm việc được phép thay đổi trong khoảng rộng, từ 2,7V đến 6,0V, nên cho phép thể hiện ưu điểm rõ rệt trong các thiết bị xách tay, sử dụng pin. Với các thiết bị sử dụng pin thì một chỉ tiêu quan trọng khi thiết kế là giảm dòng điện tiêu thụ. Thường thì tần số xung giữ nhịp của hệ thống càng lớn thì dòng điện tiêu thụ càng lớn, vì vậy muốn giảm dòng điện tiêu thụ thì nên lựa chọn tần số xung giữ nhịp thấp như có thể. Ngoài ra, việc hạ thấp điện áp nguồn nuôi cũng cho phép làm giảm dòng điện tiêu thụ hay kéo dài thời gian làm việc của pin.
Có chế độ hoạt động Sleep(ngủ) và Power Down (nghỉ hay giảm dòng tiêu thụ khi không cần thiết). Đặc điểm này cho phép tiết kiệm năng lượng khi bộ xử lý không có công việc cần xử lý, đặc biệt có ý nghĩa đối với các thiết bị cầm tay dùng pin.
Có mạch đặt lại trạng thái môi khi cấp lại điện nguồn cho hệ thống (Power on Reset).
Một kiến trúc đơn giản và hượp lý sẽ giúp cho người dùng giảm thiểu được thời gian cần thiết để làm quen và tiến tới làm chủ được các vi điều khiển AVR.
Tập lệnh của AVR có đến 133 lệnh cho phép lập trình một cách dễ dàng và đơn giản bằng hợp ngữ, nhưng cấu trúc của bộ xử lý Atmel còn cho phép lập trình bằng ngôn ngữ C.