Tài liệu Bộ điều khiển MCU doc - Pdf 97

Bộ điều khiển MCU
http://www.ebook.edu.vn
Trong phần này mình sẽ trình bày về các vấn đề sau :
1. Bootloader : Chế độ đọc trong lúc nạp
2. Sleep - Power down : Chế độ ngủ và chế độ giảm công suất
3. Chế độ hoạt động - trạng thái làm việc của ALU, con trỏ SP.
4. Chế độ hoạt động đặc biệt của Timer/Counter 2 qua thanh ghi điều
khiển ASSR
5. Chế độ Reset cả 2 bộ Timer/Counter 0 và Timer/Counter 1 qua thanh
ghi điều khiển SFIOR
6. Chế độ kiểm tra lỗi trên chip On-chip Debug
7. Chế độ ngắt ngoài của MCU
8. Chế độ trên thanh ghi SPMCR Bộ điều khiển MCU
http://www.ebook.edu.vn
1.3.1 ALU – Arithmetic Logic Unit - Đơn vị xử lý số học và logic

AVR 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

http://www.ebook.edu.vn

• Bit 5 – H: Half Carry Flag
Cờ nhớ một nửa dùng cho các toàn hạng hạng một nửa byte trong các phép toán
số học. Cờ H sử dụng phép toán số học với số BDC .

• Bit 4 – S: Sign Bit, S = N

V – bit dấu
Bit S là phép XOR giữa cờ âm và cờ tràn V .

• Bit 3 – V: Two’s Complement Overflow Flag – cờ tràn mã bù 2
Cờ tràn V hỗ trợ phép toán số bù 2.

• Bit 2 – N: Negative Flag – cờ âm
Cờ âm N hiển thị kết quả âm của phép toán logic hoặc số học.

• Bit 1 – Z: Zero Flag
Cờ Zero Z hiển thị kết quả bằng 0 của phép toán logic hoặc số học.

• Bit 0 – C: Carry Flag
Cờ nhớ C hiển thị số nhớ trong phép toán logic hoặc số học.

Hình 1.6 Sơ đồ các thanh ghi của con trỏ

1.3.5 Reset and Interrupt Handling - điều khiển ngắt và reset

AVR cung cấp 1 vài nguồn ngắt khác nhau. Các ngắt này và vector reset riêng
biệt có vector chương trình riêng biệt nằm trong không gian nhớ chương trình. Tất cả
các ngắt được chỉ định bởi các bit cho phép riêng biệt mà các bit này phải được ghi
mức logic 1 cùng với bit cho phép ngắt toàn cục trong thanh ghi trạng thái để cho phép
ngắt. Phụ thuộc vào giá trị PC, các ngắt này phải được tự động loại bỏ khi các bit Boot
Lock - BLB02 or BLB12 - được lập trình. Yếu tố này cải thiện độ an toàn phần mềm.
Địa chỉ thấp nhất trong không gian bộ nhớ chương trình được mặc định là Reset
và Interrupt Vectors. Bảng vector ngắt – bảng 3.1.
Bộ điều khiển MCU
http://www.ebook.edu.vn

tự ưu tiên.
+ Loại ngắt thứ 2 sẽ kích hoạt kéo dài trong thời gian điều kiện ngắt tồn tại. Các
ngắt này không cần thiết phải có cờ ngắt. Nếu điều kiện ngắt mất đi trước khi ngắt
được cho phép, thì ngắt sẽ không xảy ra.
Khi AVR thoát khỏi từ một ngắt, nó sẽ luôn trở về chương trình chính và thực
hiện một hoặc nhiều lệnh trước khi một ngắt nào đó còn đợi đó được phục vụ.
Chú ý rằng các thanh ghi trạng thái không tự động lưu trữ khi nhập vào một
thường trình ngắt, và cũng không lưu trữ lại khi trở về từ một thường trình ngắt. Điều
này phải được thực hiện bởi phần mềm.
Khi sử dụng câu lệnh CLI để cấm ngắt, các ngắt sẽ không được tác động ngay
lập tức. Không có ngắt nào được thực hiện sau khi thực hiện lệnh CLI, thậm chí nó xảy
ra cùng lúc với lệnh CLI.

Thời gian đáp ứng của 1 ngắt
Việc thực hiện ngắt trong ít nhất 4 chu kỳ đồng hồ với tất cả các ngắt. Sau 4 chu
kỳ đồng hồ, địa chỉ vector chương trình tương ứng với thường trình điều khiển ngắt
thực sự được khởi tạo. Trong thời gian 4 chu kỳ này, PC được cất vào trong ngăn xếp.
Vector thường là lệnh nhảy đến thường trình ngắt và lệnh nhảy này mất 3 chu kỳ đồng
hồ. Nếu một ngắt xảy ra trong khi thực hiện một lệnh nhiều chu kỳ thì lệnh được hoàn
thành trước khi ngắt được phục vụ. Nếu một ngắt xảy ra khi MCU đang trong chế độ
ngủ thì thời gian đáp ứng ngắt sẽ tăng thêm 4 chu kỳ. Thời gian tăng thêm này là thời
gian để khởi động lại từ chế độ ngủ.
Sự trở về từ một thường trình điều khiển ngắt mất 4 chu kỳ xung nhịp. Trong
thời gian 4 chu kỳ này, PC (2 bytes) được lấy ra từ ngăn xếp, SP được tăng lên 2, và bit
I trong SREG được đặt.
Bộ điều khiển MCU
http://www.ebook.edu.vn
Chế độ hoạt động và trạng thái làm việc của ALU và con trỏ SP

1.Status Register (SREG)

Bộ điều khiển MCU
http://www.ebook.edu.vn

3.Ngắt và lập trình ngắt. ( con trỏ SP - bộ đếm chương trình PC - ngắt )
Ngắt là một cơ chế cho phép thiết bị ngoại vi báo cho CPU biết về tình trạng
sẵn xàng cho đổi dữ liệu của mình.Ví dụ:Khi bộ truyền nhận UART nhận được
một byte nó sẽ báo cho CPU biết thông qua cờ RXC,hợc khi nó đã truyền được
một byte thì cờ TX được thiết lập…
Phục vụ ngắt:
Nếu như ngắt đó được cho phép thực hiện thì:
Khi có tín hiệu báo ngắt CPU sẽ tạm dừng công việc đạng thực hiện lại và
lưu vị trí đang thực hiên chương trình (con trỏ PC) vào ngăn xếp sau đó trỏ tới
vector phuc vụ ngắt và thức hiện chương trình phục vụ ngắt đó chơ tới khi gặp
lệnh RETI (return from interrup) thì CPU lại lấy PC từ ngăn xếp ra và tiếp tục
thực hiện chương trình mà trước khi có ngăt nó đang thực hiện. Trong trường
hợp mà có nhiều ngắt yêu cầu cùng một lúc thì CPU sẽ lưu các cờ báo ngắt đó
lại và thực hiện lần lượt các ngắt theo mức ưu tiên.Trong khi đang thực hiện
ngắt mà xuất hiện ngắt mới thì sẽ xảy ra hai trường hợp.Trường hớp ngắt này có
mức ưu tiên cao hơn thì nó sẽ được phục vụ. Còn nó mà có mức ưu tiên thấp hơn
thì nó sẽ bị bỏ qua.
Trong tài liệu của hãng sản xuất không thấy nói tới bộ nhớ ngăn xếp?vâng nó
là vùng bất kì trong SRAM từ địa chỉ 0x60 trở lên. Để truy nhập vào SRAM
thông thường thì ta dùng con trỏ X,Y,Z và để truy nhập vào SRAM theo kiểu
ngăn xếp thì ta dùng con trỏ SP.Con trỏ này là một thanh ghi 16 bit và được truy
nhập như hai thanh ghi 8 bit chung có địa chỉ :SPL :0x3D/0x5D(IO/SRAM) và
SPH:0x3E/0x5E.
Khi chương trình phục vu ngắt hoặc chương trình con thì con trỏ PC được
lưu vào ngăn xếp trong khi con trỏ ngăng xếp giảm hai vị trí.Và con trỏ ngăn
xếp sẽ giảm 1 khi thực hiện lệnh push. Ngược lại khi thực hiện lệnh POP thì con
trỏ ngăn xếp sẽ tăng 1 và khi thực hiện lệnh RET hoặc RETI thì con trỏ ngăn xếp


Xung nhịp I/O được sử dụng cho đa số các module I/O, như là các bộ đếm / bộ
định thời, SPI, và USART. xung nhịp I/O cũng được sử dụng cho module ngắt ngoài,
nhưng chú ý rằng một số ngắt ngoài được tìm thấy bằng logic đồng bộ, cho phép các
ngắt này được tìm thấy ngay cả khi đồng hồ I/O bị treo. Cũng phải chú ý rằng việc tìm
ra điều kiện khởi động trong modul úI được thực hiện không đồng bộ khi clkI/O bị treo,
địa chỉ TWI cũng được nhận ra trong tất cả các chế độ ngủ.

Xung nhịp Flash – clkFLASH
clkFLASH điều khiển hoạt động giao diện Flash. clkFLASH thường xuyên
đồng thời với xung nhịp CPU.

Asynchronous Timer Clock – clkASY
Asynchronous Timer clock cho phép Asynchronous Timer/Counter được chạy
trực tiếp từ xung nhịp bên ngoài hoặc thạch anh tạo xung 32 kHz bên ngoài. Xung nhịp
cho phép sử dụng Timer/Counter như là bộ đếm thời gian thực, thậm chí khi thiết bị
trong chế độ ngủ.

Xung nhịp ADC – clkADC
Bộ chuyển đổi ADC được cung cấp với xung nhịp khác. Điều này cho phép
treo xung nhịp CPU và xung nhịp I/O để giảm nhiễu gây ra bởi mạch số. Điều này cho
kết quả chuyển đổi ADC chính xác hơn.

1.2 Các nguồn tạo xung nhịp
Bộ vi điều khiển có các nguồn đồng hồ tuỳ chọn sau đây, được lựa
chọn bằng các bit Flash Fuse như chỉ ra trong bảng 3.2.Tín hiệu xung nhịp
từ các nguồn được chọn được lấy từ các bộ phát xung nhịp của AVR, và đi
đến các module thích hợp.
Bảng 1.3 Lựa chọn chế độ ngủ

Nếu xảy ra ngắt trong khi MCU đang ngủ thì MCU thức dậy. MCU
treo thêm trong vòng 4 chu kỳ để khởi động, nó thực hiện thường trình
ngắt, và dành lại việc thực hiện lệnh SLEEP tiếp theo. Nội dung của tệp
thanh ghi và SRAM là còn nguyên khi thiết bị tỉnh dậy từ trạng thái ngủ.
Nếu Reset xảy ra trong khi ngủ, thì MCU tỉnh dậy và thực hiện từ vector
reset.

Thanh ghi điều khiển MCU –MCUCR
Bộ điều khiển MCU
http://www.ebook.edu.vn
Thanh ghi trạng thái điều khiển MCU chứa các bit điều khiển để quản
lý năng lượng.
• Bit 7 4 – Res: Dự phòng
• Bits 6 4 – SM2 0: Lựa chọn chế độ ngủ

3.Điều khiển hê thống và Reset
3.1 Resetting AVR Bộ điều khiển MCU
http://www.ebook.edu.vn Hình 1.10 Logic reset
Thanh ghi trạng thái và điều khiển MCU – MCUCSR
Thanh ghi trạng thái và điều khiển MCU cung cấp thông tin mà dựa
vào nó nguồn reset gây ra 1 reset MCU.
• Bit 7 4 – Res: Dự phòng
• Bit 3 – WDRF: Cờ reset hệ thống Watchdog
• Bit 2 – BORF: Cờ reset Brown-out
• Bit 1 – EXTRF: Cờ reset từ bên ngoài
• Bit 0 – PORF: Cờ reset Power-on


• Bit 4 – WDCE: Kích hoạt thay đổi Watchdog
• Bits 5,2 0 – WDP3 0, WDP1, WDP0: Chọn Watchdog Timer với tỷ lệ 2, 1 và 0
4. Interrupt Vectors trong ATmega88
Địa chỉ vector ngắt và Reset – bảng 3.6
Bảng vector ngắt – bảng 3.7

Bảng 1.6 Địa chỉ của vector ngắt và Reset
Di chuyển các ngắt giữa vùng chương trình ưng dụng và Boot
Thanh ghi điều khiển MCU điều khiển vị trí của bảng vector ngắt.
Thanh ghi điều khiển ngắt – MCUCR
• Bit 1 – IVSEL: Lựa chọn vector ngắt
• Bit 0 – IVCE: Cho phép thay đổi vector ngắt Bộ điều khiển MCU
http://www.ebook.edu.vn

Hình 1.12 Giản đồ thời gian của các ngắt do thay đổi trên chân
4.1.2 Thanh ghi điều khiển ngắt ngoài A - EICRA
4.1.3 Thanh ghi mặt nạ ngắt ngoài - EIMSK
4.1.4 Thanh ghi cờ ngắt ngoài - EIFR
Bộ điều khiển MCU
http://www.ebook.edu.vn
4.1.5 Thanh ghi điều khiển ngắt thay đổi trên chân - PCICR
4.1.6 Thanh ghi mặt nạ ngắt thay đổi trên chân 2 – PCMSK2
4.1.7 Thanh ghi mặt nạ ngắt thay đổi trên chân 1 – PCMSK1
Loader. Do vậy Boot Loader có thể tự thay đổi, và nó có thể tự xoá mã nếu không
cần đến. Kích thước của bộ nhớ Boot Loader được cấu hình với các cầu chì và 2 bộ các
bit Boot Lock tách biệt có thể được đặt một cách độc lập. Điều này cho người sử dụng
1 sự linh hoạt đồng bộ để lựa chọn các mức độ bảo vệ khác nhau.
Các đặc trưng:

• Tự - lập trình Read-While-Write
• Kích thước bộ nhớ Boot linh động
• An ninh cao (các bit khoá Boot riêng biệt cho bảo vệ một cách linh hoạt)
• Cầu chì riêng biệt để lực chọn Reset Vector
• Optimized Page (1) Size
• Code Efficient Algorithm
• Hỗ trợ Read-Modify-Write một các hiệu quả

Bộ điều khiển MCU
http://www.ebook.edu.vn
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ế độ 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


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