Đặc điểm, cấu trúc phần cứng của họ vi điều khiển AVR - Pdf 35

-1-1-

Đặc điểm, cấu trúc phần cứng của họ vi điều khiển AVR
4.1. Đặc điểm của họ 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 sản xuất, có
kiến trúc RISC (Reduced Instruction Set Computer) là một kiến trúc phổ biến trong
của các bộ xử lý hiện đại với những đặc tính sau:
1. 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ữ và 32 thanh ghi đa năng.
2. Kiến trúc bộ nhớ kiểu đường ống cho phép làm tăng tốc độ xử lý lệnh.
3. Có chứa bộ phận ngoại ngay trên chip bao gồm các cổng I/O số, các bộ biến đổi
ADC, bộ nhớ EEFROM, bộ định thời UART, bộ định thời RTC, bộ điều chế độ
rộng xung PWM,.v.v.. Đặc điểm này được xem là nổi bật so với nhiều vi điều
khiển khác vì trong khi các bộ vi xử lý khác phải tự tạo ra bộ truyền nhận
UART hoặc giao diện SPI bằng phần mềm thì trên vi điều khiển AVR đã được
tích hợp sẵn:
 Có 48 đường dẫn I/O lập trình được.
 bộ truyền nhận UART lập trình được.
 Một giao diện SPI đồng bộ.
 bộ timer/Counter 8 bit
 Một bộ timer/Counter 16 bit với chức năng so sánh và bắt mẫu.
 Gồm bốn lối ra điều biến độ rộng xung PWM.
 Một đồng hồ thời gian thực (RTC-Timer)
 Một bộ biến đổi ADC 10 bit có đến 8 kênh lối vào.
 Một bộ phát hiện trạng thái sụt điện áp nguồn nuôi.
 Một bộ so sánh Analog
 Một bộ định thời Watchdog
4. 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.



trên bản mạch. Không cần phải nhấc vi điều khiển ra ngoài bản mạch như nhiều họ
vi điều khiển khác. Các cổng giao tiếp RS-232 và SPI cho phép thao tác dễ dàng
thực hiện trên hệ thống.
9. 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.
10. Hỗ trợ cho việc lập trình bằng ngôn ngữ bậc cao, chẳng hạn như ngôn ngữ C.
11. Tất cả các vi điều khiể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.
12. Điện áp làm việc cho phép từ 2.7V đến 6V.
13. Một kiến trúc đơn giản và hợp lý sẽ giúp người dùng tìm hiểu dễ dàng trong thời
gian ngắn.
14. Tập lệnh AVR có tới 113 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.
4.2. Cấu trúc phần cứng của họ vi điều khiển AVR
4.2.1. Tổng quan về kiến trúc
Các thanh ghi đa năng truy cập nhanh gồm 32 thanh ghi 8 bit được truy cập
trong một chu kì xung nhịp. Điều này có nghĩa là trong 1 chu kì xung nhịp ALU


-4-4thực hiện được một phép toán: hai toán hạng được xuất từ các thanh ghi đa năng,
phép toán được thực hiện và kết quả được lưu trở lại vào tập các thanh ghi. 6 trong
số 32 thanh ghi này có thể dùng làm con trỏ địa chỉ gián tiếp 16 bit để định địa chỉ
không gian dữ liệu và cho phép tính địa chỉ hiệu dụng. Một trong 3 con trỏ địa chỉ
cũng được dùng làm con trỏ địa chỉ cho chức năng tìm kiếm bảng hằng số. Các
thanh ghi có chức năng bổ xung này là các thanh ghi 16 bit X,Y,Z.
ALU: Hỗ trợ các chức năng số học và chức năng logic giữa các thanh ghi. Các
phép toán trong thanh ghi cũng được thực hiện trong ALU.

Hình 4.2 Kiến trúc của bộ xử lý AVR
Ngoài chế độ định địa chỉ gián tiếp thanh ghi, chế độ định địa chỉ bộ nhớ

từ R0 đến R15 và R16 đến R31. Tất cả các lệnh thao tác trên các thanh ghi đều có


-6-6thể truy cập trực tiếp và truy cập trong chu trình đơn đến tất cả các thanh ghi,
nhưng có một ngoại lệ là các lệnh SBCI, SUBI, CPI, ANDI và ORI cũng như WI,
các lệnh này chỉ tác động đến các thanh ghi từ R16 đến R31.
Các thanh ghi R0 và R26 đến R31 có các chức năng bổ sung. Thanh ghi R0
được sử dụng trong các lệnh nạp bộ nhớ chương trình LPM (Load Program
Memory), trong khi các thanh ghi R26 đến R31 được sử dụng làm các thanh ghi
con trỏ như trong hình minh họa bên dưới. Các thanh ghi con trỏ này được sử dụng
trong nhiều lệnh gián tiếp trong thanh ghi.

Hình 4.3 Tập thanh ghi của vi điều khiển AVR
4.2.3. Cổng ra vào
Tất cả các vi điều khiển AVR đều có một lượng lớn các cổng vào ra nằm trong
khoảng 3 bit trên vi điều khiển loại 90S2313 đến 48 bit Mega103. Tất cả các cổng
vào/ra của vi điều khiển AVR đều chịu được dòng điện đến 20mA nên rất thích hợp
với việc điều khiển trực tiếp các led vì không cần đến các mạch đệm bổ sung.
Tất cả các cổng vào/ra đều có 3 địa chỉ vào/ra đi kèm với chúng, ba địa chỉ vào
ra đều cần được đặt cấu hình cho các bít riêng biệt thành lối vào hoặc thành lối ra,


-7-7địa chỉ khác được cần đến để xuất dữ liệu và địa chỉ thứ 3 dùng để đọc dữ liệu về
(lối vào).
Các cổng được đánh số DDRx, PORTx, PINx cho một cổng x cho trước.
Để đọc dữ liệu của phần lối vào của một cổng, ta sử dụng thanh ghi PINx.
Thanh ghi PINx được nối tiếp với chân của cổng. Chân của cổng có thể cấp tín
hiệu để duy trì trạng thái theo mức điện áp cao (pull up) bên trong bằng cách ghi
giá trị “1” vào bit cổng ở vị trí PORTx. Các điện trở pull up có giá trị 30kΩ đến
150kΩ. Giá trị tương úng của dòng điện là 160 μA đến 33μA.


-9-9nơi của dữ liệu. Đây là cả những gì mà cơ cấu ngắt phải thực hiện. Thiết bị ngoại vi
sẽ ngắt việc thực thi chương trình chính và bộ xử lý tạm ngừng việc thực thi
chương trình bình thường để kiểm tra nguồn ngắt và thực hiện những thao tác đáp
ứng cần thiết. Sau khi đã hoàn thành những thao tác cần thiết, việc thực thi chương
trình đã bị ngắt sẽ tiếp tục. Chương trình ngắt chỉ đơn giản giống hệt như một
chương trình con chỉ ngoại trừ một đặc điểm là việc thực thi của đoạn chương trình
ngắt này không bị bộ xử lý chặn trước là sẽ xuất hiện vào thời điểm cụ thể nào.
Bộ vi điều khiện AVR có rất nhiều cấu trúc ngắt. Khả năng ngắt đã được chu
cấp cho hầu hết các thiết bị ngoại vi sao cho chương trình chính không cần phải
thường xuyên kiểm tra các thiết bị này.
1. Thiết bị ngoại vi ngắt bộ xử lý
2. Việc thực thi lệnh hiện tại được hoàn thành.
3. Địa chỉ của lệnh tiếp theo được lưu trữ trên ngăn xếp (thuộc phần cứng hoặc phần
mềm)
4. Địa chỉ ISR (đoạn chương trình ngắt) được nạp vào bộ đếm chương trình.
5. Bộ xử lý ISR.
6. Việc hoàn thành các thao tác thực thi ISR được chỉ báo bằng lệnh RETI.
7. Bộ xử lý nạp bộ đếm chương trình với giá trị được lưu trữ trên ngăn xếp và việc
thực thi chương trình bình thường lại được tiếp tục.
4.2.6. Bộ so sánh analog
Bộ so sánh analog so sánh các giá trị điện áp lối vào, cụ thể là ở lối vào AINO
(AC+) và AIN1 (AC-) với nhau. Nếu như điện áp ở lối vào AIN0 lớn hơn AIN1 thì
lối ra của bộ so sánh analog ACO (Analog Computer Output) được đặt lên mức 1.
Lối ra này có thể cho bộ Timer/Counter 1 để trigger xóa ngắt bộ so sánh analog.


- 10 - 10 -

Hình 4.6 Sơ đồ khối của bộ so sánh Analog


Thanh ghi dữ liệu ADC (LOW)
ADCL

$04 ($24)

Bộ biến đổi ADC được biến đổi qua 4 thanh ghi ADMUX, ADCSR,ADCH và
ADCR trong vùng địa chỉ vào ra. Bằng thanh ghi 3DMUX, một trong 8 kênh được
lựa chọn để biến đổi tín hiệu số. Bộ biến đổi có thể hoạt động trong hai chế độ:
-

Quá trình biến đổi được người dùng khởi động

-

Quá trình biến đổi diễn ra liên tục
Bảng 4.3 Sự sắp xếp các chân lối vào của bộ biếm đổi ADC
Tín hiệu
AT90S8535/4434
ADC0
ADC1
ADC2
ADC3
ADC4
ADC5
ADC6
ADC7

PA0
PA1

thức dậy thực thi đoạn chương trình (routine) ngắt, và lại tiếp tục thực thi từ lệnh
kế tiếp theo lệnh sleep. Nội dung của tập thanh ghi, SRAM, và bộ nhớ I/O vẫn
được giữ nguyên. Nếu một tín hiệu reset xuất hiện trong trạng thái ngủ thì MCU sẽ
thức dậy và thực thi từ vector reset.


- 14 - 14 Khi SM bị xóa về không thì lệnh sleep bắt buộc MCU chuyển sang chế độ
nghỉ, làm ngưng hoạt động của CPU nhưng cho phép bộ Timer/Counter Watchdog
và ngắt hệ thống tiếp tục hoạt động. Đặc tính này cho phép MCU đánh thức và ngắt
được trigger từ bên ngoài cũng như ngắt bên trong giống như ngắt tràn bộ định thời
và đặt lại Watchdog. Nếu như sự đánh thức từ ngắt bộ so sánh analog không được
yêu cầu, thì bộ so sánh analog có thể bị ngắt nguồn nuôi bằng cách đặt bit ACD
vào thanh ghi điều khiển và trạng thái analog ACSR. Biện pháp này làm giảm dòng
tiêu thụ trong chế độ nghỉ.
Khi MCU bị đánh thức khỏi chế độ nghỉ, đơn vị CPU khởi động chương trình
chấp hành ngay lập tức.
Khi bit SM được đặt lên “1”, lệnh sleep bắt buộc MCU chuyển sang chế độ tiết
kiệm năng lượng hay giảm dòng tiêu thụ. Trong chế độ này bộ dao động ngoài bị
ngưng hoạt động, trong khi các ngắt ngoài và Watchdog (nếu đang ở trạng thái cho
phép) hoạt động. Chỉ thao tác đặt lại (reset) bên ngoài.
Thao tác đặt lại Watchdog (nếu đang ở trạng thái cho phép hoạt động) hoặc
ngắt theo mức ngoài lên INT0 hoặc INT1 mới có thể đánh thức MCU. Chú ý rằng
một khi ngắt trigger theo nức được sử dụng cho việc đánh thức khỏi trạng thái tiết
kiệm năng lượng thì mức thấp hơn cần năng lượng giữ trong khoảng thời gian dài
hơn thời gian làm trễ dài nhất (Time out) đối với thao tác reset TOUT. Nếu không
thì thiết bị sẽ không thức dậy.
4.3. Giới thiệu họ vi điều khiển Atmega 16
4.3.1. Đặc điểm
Atmega16 là bộ vi điều khiển RISC 8 bit tiêu thụ ít năng lượng dựa trên kiến
trúc RISC AVR. Bằng việc thực hiện các lệnh mạnh trong một chu kì xung nhịp,

 Bộ so sánh Analog ngay trên chip.
 Các tính năng vi điều khiển đặc biệt:
 Có mạch power - on reset và có thể reset bằng phần mềm.


- 16 - 16  Các nguồn ngắt ngoài và trong.
 Có 6 chế độ ngủ: nghỉ (Idle). Tiết kiệm năng lượng (power save) và power down,
ADC Noise Reduction, Standby and Extended Standby.
 Tần số làm việc có thể thay đổi được bằng phần mềm.
 Vào ra và các cách đóng vỏ
 32 đường vào ra lập trình được.
 44 chân dán kiểu vỏ vuông (TQFP)  Điện thế làm việc:
 VCC = 2,7V đến 5,5V đối với Atmega16L.
 VCC = 4,5V đến 5,5V đối với Atmega16.
 Vùng tốc độ làm việc:
 0 đến 8 MHz đối với Atmega16L.
 0 đến 16 MHz đối với Atmega16.
4.3.2. Sơ đồ chân Atmega16

Hình 4.9 Sơ đồ chân Atmega16


- 17 - 17 -

4.3.3. Sơ đồ khối của Atmega16


- 18 - 18 Hình 4.10 Sơ đồ khối vi điều khiển AVR Atmega16
4.3.4. Mô tả chức năng các chân Atmega16
 Vcc : điện áp nguồn nuôi

Là cổng vào ra theo hai hướng 8 bit. Các chân của Port C có các điện trở nối lên
nguồn dương. Ngõ ra port C có thể cho dòng 20mA đi qua và điều khiển trực tiếp
led hiển thị.

-

Khi các chân port C là các lối vào được đặt xuống mức thấp từ bên ngoài, chúng sẽ
là nguồn dòng nếu các điện trở nối lên nguồn dương được kích hoạt. các chân này
sẽ ở trạng thái tổng trở cao khi tín hiệu reset ở mức tích cực hoặc ngay cả khi
không có tín hiệu giữ nhịp.

 PORT D (PD0 … PD7)


- 19 - 19 -

Là cổng vào ra theo hai hướng 8 bit. Các chân của Port D có các điện trở nối lên
nguồn dương. Ngõ ra port D có thể cho dòng 20mA đi qua và điều khiển trực tiếp
led hiển thị. Khi các chân port D là các lối vào được đặt xuống mức thấp từ bên
ngoài, chúng sẽ là nguồn dòng nếu các điện
trở nối lên nguồn dương được kích hoạt. các chân này sẽ ở trạng thái tổng
trở cao khi tín hiệu reset ở mức tích cực hoặc ngay cả khi không có tín
hiệu giữ nhịp.

-

Cung cấp các tính năng tương ứng với các chức năng đặc biệt.

 Reset: là lối vào đặt lại. Bộ vi điều khiển sẽ được đặt lại khi chân này ở mức thấp
trong hơn 50ns ngay cả khi có tín hiệu giữ nhịp. Các xung ngắn hơn không tạo ra

-

130 lệnh hầu hết được thực hiện trong một chu kỳ xung nhịp.

-

32 thanh ghi làm việc đa năng.

-

Tốc độ xử lý lệnh lên đến 16 triệu lệnh/giây ở tần số 16MHz.

 Bộ nhớ dữ liệu và bộ nhớ chương trình không tự mất dữ liệu:
-

8K byte bộ nhớ Flash lập trình được ngay trên hệ thống, có thể nạp xoá 10000 lần.

-

512 byte bộ nhớ EEFROM lập trình được ngay trên hệ thống, có thể ghi xóa
100000 lần.

-

1K byte bộ nhớ SRAM.

-

Có thể giao tiếp với 8K byte bộ nhớ ngoài.



-

2 bộ USART nối tiếp lập trình được.
Bộ định thời Watchdog lập trình được với bộ dao động trên chip.

-

Một bộ so sánh Analog.

 Các tính năng vi điều khiển đặc biệt:
-

Có mạch power - on reset và có thể reset bằng phần mềm.

-

Các nguồn ngắt ngoài và trong.

-

Có 5chế độ ngủ: nghỉ (Idle). Tiết kiệm năng lượng (power save) và power down,
ADC Noise Reduction, Standby.

-

Tần số làm việc có thể thay đổi được bằng phần mềm.

 Vào ra và các cách đóng vỏ
-



- 24 - 24 Hình 4.12 Sơ đồ khối vi điều khiển AVR Atmega8
4.4.4. Mô tả chức năng các chân Atmega8 
VCC: Điện áp nguồn nuôi.
 GND: Đất.
 Port B (PB0…PB7)
-

Port B là port I/O 8 bit với điện trở kéo lên ở bên trong, cung cấp dòng điện 40mA
có thể điều khiển trực tiếp led đơn.

-

Khi các chân Port B là các lối vào được đặt xuống mức thấp từ bên ngoài, chúng sẽ
là nguồn dòng nếu như các điện trở nối lên nguồn dương được kích hoạt. Các chân
này sẽ ở trạng thái tổng trở cao khi tín hiệu Reset ở mức tích cực hoặc ngay cả khi
không có dao động.
 Port C (PC0…PC6)

-

Port C là port I/O 8 bit với điện trở kéo lên ở bên trong, cung cấp dòng điện 40mA
có thể điều khiển trực tiếp led đơn.

-

Khi các chân Port C là các lối vào được đặt xuống mức thấp từ bên ngoài, chúng sẽ
là nguồn dòng nếu như các điện trở nối lên nguồn dương được kích hoạt. Các chân
này sẽ ở trạng thái tổng trở cao khi tín hiệu Reset ở mức tích cực hoặc ngay cả khi

 Bộ tạo dao động thạch anh :
-

XTAL1 và XTAL2 lần lượt là lối vào và lối ra của một bộ khuếch đại đảo, bộ
khuếch đại này được bố trí để làm bộ tạo dao động trên chip

-

Để điều khiển được bộ Vi Điều Khiển từ một nguồn xung nhịp bên ngoài, chân
XTAL2 để không, chân XTAL1 được nối với tín hiệu dao động bên ngoài.



Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status