Tải bản đầy đủ (.pdf) (137 trang)

Nghiên cứu xây dựng mô hình khoan-phay tự động có ứng dụng và xử lý AVR

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.68 MB, 137 trang )



BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC SAO ĐỎ









BÁO CÁO
ĐỀ TÀI:
NGHIÊN CỨU, XÂY DỰNG MÔ HÌNH
KHOAN - PHAY TỰ ĐỘNG CÓ ỨNG DỤNG
VI XỬ LÝ AVR PHỤC VỤ CÔNG TÁC ĐÀO
TẠO TẠI TRƯỜNG ĐẠI HỌC SAO ĐỎ



Chủ nhiệm đề tài: TS. Vũ Thanh Chương




9128




HÀ NỘI, THÁNG 12 – 2011


1
MỤC LỤC
Trang

Danh mục các bảng 4

Danh mục các hình vẽ
Danh mục các từ viết tắt
5
7

Mở đầu 8
1. Lý do lựa chọn đề tài 8
2. Mục tiêu nghiên cứu của đề tài 7
3. Kết cấu của đề tài 9

Chương 1: TỔNG QUAN VỀ VI XỬ LÝ AVR-ATMEGA128

10
1.1 Tình hình nghiên cứu vi xử lý AVR ở nước ngoài 10
1.2 Tình hình nghiên cứu vi xử lý AVR ở trong nước 11
1.3. Lịch sử phát triển của vi xử lý AVR 12
1.4. Đặc điểm, tính năng của vi xử lý AVR 13
1.4.1. Đặc điểm 13
1.4.2. Tính năng 15
1.5. Cấu trúc bộ nhớ và cổng Vào-Ra 15
1.5.1. Cấu trúc bộ nhớ 15

1.5.2. Cổng Vào-Ra I/O 20
1.5.2.1 Thanh ghi DDRx 20
1.5.2.2. Thanh ghi PORTx 20
1.5.2.3. Thanh ghi PINx 21
1.6. Bộ định thời của ATMEGA128 22
1.6.1. Bộ định thời 1 và 3 22
1.6.2. Bộ định thời 0 và 2 22
1.7. Cấu trúc ngắ
t của ATMEGA128 23
1.7.1. Khái niệm về ngắt 23
1.7.2. Trình phục vụ ngắt và bảng véctơ ngắt 24
1.7.2.1. Thứ tự ưu tiên ngắt 24
1.7.2.2. Các ngắt ngoài 26
1.8. Các bộ phận ngoại vi khác 26
1.8.1. Bộ so sánh tương tự 26
1.8.2. Bộ chuyển đổi ADC 27
1.8.3. Bộ truyền nhận dữ liệu nối tiếp USART 30







2
Chương 2. THIẾT KẾ MÔ HÌNH, XÂY DỰNG PHẦN MỀM ĐIỀU
KHIỂN VÀ GIÁM SÁT HỆ THỐNG KHOAN – PHAY TỰ ĐỘNG
32
2.1.
2.1.1.

2.1.2.
Cấu trúc của hệ thống ………………………………………………
Khái niệm và sơ đồ hệ thống sản xuất linh hoạt và tích hợp ………
Mô hình hệ thống sản xuất tự động …………………………………
32
32
33
2.1.2.1. Máy phay CNC trong hệ thống ……………………………………… 35
1. Hệ trục tọa độ của máy phay CNC ………………………………… 35
2. Các dạng điều khiển c
ủa máy phay CNC ……………………………. 36
3. Các chỉ tiêu gia công của máy phay CNC ………………………… 39
2.1.2.2. Rôbôt công nghiệp trong hệ thống CIM …………………………… 41
1.
2.
3.
4.
Định nghĩa ……………………………………………………………
Các thành phần chính của Rôbôt công nghiệp ………………………
Bậc tự do của Rôbôt ………………………………………………
Hệ tọa độ và vùng làm việc của Rôbôt ………………………….
41
41
42
43

5. Phân loại Rôbôt …………………………………………………… 43
6. Ứng dụng Rôbôt công nghiệp trong hệ thống CIM ……………. 44
7. Các yêu cầu đối với Rôbôt hoạt động trong hệ thống CIM …… 44
2.1.2.3. Kho chứa tự động trong hệ thống CIM ………………………………. 45

1. Chức năng của kho chứa t
ự động …………………………………….
.
44
2. Thành phần của kho chứa tự động …………………………………… 45
3. Các loại kho chứa tự động ……………………………………………
.
45
2.1.2.4. Hệ thống vận chuyển –tích trữ chi tiết gia công của CIM …………

47
1.
2.
Thiết bị kỹ thuật ………………………………………………………
Chức năng ……………………………………………………………

47
48

3. Phân loại hệ thống vận chuyển – tích trữ chi tiết …………………… 48
4. Tổ chức vận hành dụng cụ cắt trong hệ thống CIM …………… … 50
5. Chức năng của hệ thống vận chuyển – tích trữ dụng cụ ……………

51
6. Một số loại hệ thống vận chuyển – tích trữ dụng cụ …………………. 51
2.2. Thiết kế hệ thống khoan - phay ………………………………………
.
52
2.2.1. Thiết kế mô hình Rôbôt công nghiệp ………………………………… 52
2.2.2. Thiết kế mô hình máy phay CNC ……………………………………. 55

2.2.2.1. Tính năng kỹ thuật cơ bản của máy ………………………………… 55
2.2.2.2. Trục chính máy phay CNC …………………………………………

58
2.2.2.3 Thiết kế mô hình kho chứa phôi ……………………………………

59
2.2.2.4. Thiết kế băng tải tự động …………………………………………… 59
2.3. Thiết kế mạch điều khiển hệ thống ………………………………… 60
2.3.1. Sơ đồ khối của hệ thống điều khiển …………………………………. 60

3
2.3.2. Mạch điều khiển trung tâm ………………………………………… 61
2.3.2.1. Khối nguồn …………………………………………………………… 61
2.3.2.2. Chức năng điều khiển động cơ bước ………………………………… 62
2.3.2.3. Chức năng giao tiếp qua chuẩn RS 232 (UART)
………………………
63
2.3.2.4. Mạch kết nối quang …………………………………………………

63
2.3.3. Mạch điều khiển động cơ bước ………………………………………. 64
2.4. Xây dựng chương trình điều khiển, giám sát hệ thống ………………. 65
2.4.1. Nhiệm vụ ……………………………………………………………

65
2.4.2.
2.4.2.1.
2.4.2.2.
2.4.3.

2.4.3.1.
2.4.3.2.
Lưu đồ thuật toán ……………………………………………………
Lưu đồ thuật toán của chương trình trên máy tính ……………………
Lưu đồ thuật toán của vi xử lý ………………………………………
Thiết kế giao diện của chương trình điều khiển hệ thống …………….
Chương trình gia công chi tiết ………………………………………

Lựa chọn các thông số khởi động …………………………………….
66
66
69
71
71
72
Chương 3. XÂY DỰNG CÁC BÀI THỰC HÀNH, THÍ NGHIỆM
ĐIỂN HÌNH TRÊN HỆ THỐNG KHOAN – PHAY TỰ ĐỘNG
73
Bài số 1 Khoan lỗ suốt 73
Bài số 2 Phay hốc 75
Bài số 3 Phay mặt phẳng, mặt bậc 77
Bài số 4 Lập phương trình động học thuận cho Rôbôt 79

KẾT LUẬN VÀ KHUYẾN NGHỊ 82
1. Kết luận 82
2. Khuyến nghị 83
Tài liệu tham khảo 84
Ph
ụ lục:
Phụ lục 1: Chương trình điều khiển và giám sát hệ thống

Phụ lục 2: Hệ thống bản vẽ
Phụ lục 3: QĐ về việc đặt hàng thực hiện nhiệm vụ KH&CN của Bộ
trưởng Bộ Công thương, Hợp đồng, thuyết minh đề tài, Quyết định
thành lập HĐ nghiệm thu cấp Cơ sở, Biên bản họp Hội đồng nghiệ
m
thu cấp trường đánh giá nghiệm thu đề tài khoa học cấp Bộ năm
2011, Bài phản biện của Hội đồng cấp cơ sở, QĐ thành lập Hội đồng
KHCN cấp Bộ đánh giá nghiệm thu nhiệm vụ KHCN năm 2011,
Biên bản họp Hội đồngKHCN đánh giá nghiệm thu đề tài cấp Bộ.





4






DANH MỤC CÁC BẢNG
Trang
Bảng 1.1. Cấu hình cho các chân cổng 21
Bảng 1.2. Bảng véctơ ngắt của ATmega128 24
Bảng 2.1. Thông số gia công 40







5
DANH MỤC CÁC HÌNH VẼ
Trang
Hình 1.1. Hình dáng bên ngoài một số vi xử lý AVR 12
Hình 1.2. Cấu trúc của vi xử lý AVR 13
Hình 1.3. Cấu trúc bộ nhớ chương trình 16
Hình 1.4. Sơ đồ bộ nhớ dữ liệu 17
Hình 1.5. Thanh ghi EFAR 18
Hình 1.6. Thanh ghi EFDR 18
Hình 1.7. Thanh ghi EFCR 18
Hình 1.8. Sơ đồ bộ nhớ của ATmega128 19
Hình 1.9. Thanh ghi DDRA 20
Hình 1.10. Thanh ghi PORTA 21
Hình 1.11. Thanh ghi PINA 21
Hình 1.12. Sơ đồ bộ so sánh tương tự 27
Hình 1.13. Sơ
đồ đơn giản của một khối ADC 28
Hình 1.14. Ngõ vào vi sai 29
Hình 1.15. Sơ đồ khối bộ USART 31
Hình 2.1. Sơ đồ hệ thống khoan - phay tự động 34
Hình 2.2. Hệ trục tọa độ trong máy CNC 35
Hình 2.3. Các dạng chạy dao trong điều khiển điểm - điểm 37
Hình 2.4. Các dạng chạy dao trong điều khiển đường thẳng 37
Hình 2.5. Điều khiển contour trên máy tiện (a) và máy phay (b) 38
Hình 2.6. Điều khiển contour 2D 38
Hình 2.7. Điều khiển contour 3D 39
Hình 2.8. Vùng gia công của máy 40
Hình 2.9. Các thành phần chính của hệ thống Rôbôt 42

Hình 2.10. Minh hoạ không gian làm việc của Rôbôt 43
Hình 2.11. Sơ đồ kho chứa tự động có dạng giá cần cẩu cầu 46
Hình 2.12. Sơ đồ kho chứa tự động có dạng cần cẩu cầu 46
Hình 2.13. Kho chứa tự động có dạng giá trọng lực 47
Hình 2.14. Sơ đồ hệ thống vận chuyển-tích trữ chi tiết của hãng
Hitachi Seiki 49
Hình 2.15. S
ơ đồ hệ thống vận chuyển-tích trữ vệ tinh trong CIM của
hãng Cincinnati Milacron 50
Hình 2.16. Hệ thống vận chuyển - tích trữ dụng cụ dạng xích của hãng
Hitachi Seiki 52

6
Hình 2.17. Sơ đồ động của rôbôt 53
Hình 2.18. Động cơ bước Sanyo Denki 53
Hình 2.19. Kết cấu của Rôbôt 54
Hình 2.20. Tay gắp Rôbôt 55
Hình 2.21. Mô hình máy phay CNC 56
Hình 2.22.Vít me bi HIWIN 57
Hình 2.23. Sơ đồ động của chuyển động chạy dao 58
Hình 2.24. Sơ đồ kho chứa tự động 59
Hình 2.25. Hệ thống cấp phôi và băng tải vận chuyển phôi 60
Hình 2.26. Sơ đồ khối hệ thống điều khiển 61
Hình 2.27. Mạch đi
ều khiển trung tâm 62
Hình 2.28. Khối nguồn cung cấp cho vi xử lý 62
Hình 2.29. IC Max232 giao tiếp UART 63
Hình 2.30. Mạch kết nối sensor hồng ngoại 64
Hình 2.31. Mạch điều khiển động cơ bước 65
Hình 2.32. Sơ đồ chương trình điều khiển hệ thống 66

Hình 2.33. Lưu đồ thuật toán của chương trình tính toán góc quay của
động cơ truyền động máy CNC 68
Hình 2.34. Lưu đồ thuật toán của chương trình trên vi xử lý máy CNC 70
Hình 2.35. Cử
a sổ thiết kế chương trình gia công 71
Hình 2.36. Đường ăn dao mô phỏng 72
Hình 2.37. Lựa chọn các thông số khởi động hệ thống 72
Hình 3.1. Chi tiết khoan 73
Hình 3.2. Chi tiết phay hốc 75
Hình 3.3. Chi tiết phay mặt phẳng , mặt bậc 77
Hình 3.4. Sơ đồ động của Rôbôt 79










7
DANH MỤC CÁC TỪ VIẾT TẮT
FMS : Flexible Munufacturing Systems
CIM : Computer Itegrated Munufacturing
RISC : Reduced Instruction Set Computer
AVR : Advanced Virtual RISC
ROM : Read Only Memory
EPROM : Error Programmable Read-Only Memory
EEPROM : Electronically Erasable Read-Only memory

LCD : Liquid Crystal Display
MCU : Micro Controller Unit
SPI : Serial peripheral interface
PWM : Pulse-width modulation
ADC : Analog-to-digital converter
USARTS : Universal Synchronous and Asynchronous serial Receiver and
Transmitter
SRAM :
Static Random Access Memory
TWI : Two-Wire Serial Intereafce
TQFP : Thin Quad Flat Pack
MOS : Metal-Oxide-Semiconductor
IC : Integrated circuit
CPU : Central Processing Unit
I/O : Input/Output
TTL : Transistor-transistor logic
CMOS : Complementary Metal-Oxide-Semiconductor
ISR : Interrupt Service Routine
PC : parallax of one arc second
SME : Society of Manufacturing Engineers
AMT : Advanced Manufacturing Technologies
CAD : Computer-aided design
CAM : Computer-aided manufacturing
CAPP : Computer-aided process planning
LAN : Local Area Network
COM : Communication
PLC : Programmable Logic Controller







8
MỞ ĐẦU
1. Lý do lựa chọn đề tài
Chất lượng đào tạo nguồn nhân lực có trình độ cao, phù hợp với nhu cầu của
các doanh nghiệp, các cơ sở sản xuất là yêu cầu cấp thiết đặt ra đối với các trường
và các trung tâm đào tạo. Để nâng cao chất lượng nguồn nhân lực, một yếu tố quan
trọng có tính quyết định đó là cơ sở vật chất, trang thiế
t bị, đồ dùng dạy học tiên
tiến, hiện đại, phù hợp với thực tế sản xuất. Thiết bị đồ dùng dạy học giúp cho học
sinh, sinh viên dễ tiếp thu bài học, hỗ trợ cho giảng viên, giáo viên truyền tải nội
dung bài giảng mang lại hiệu quả cao nhất. Mặt khác, thiết bị dạy học tiên tiến,
hiện đại giúp cho giảng viên, giáo viên đổi mới phương pháp dạy học tích cực
trong nhà trường, góp phần nâng cao chất lượng và hiệu quả đào tạo.
Ngày nay nhiều dây chuyền sản xuất tự động trong công nghiệp cũng như
một số thiết bị dân dụng có ứng dụng vi xử lý, các dây truyền sản xuất tự động có
ứng dụng vi xử lý đã được các doanh nghiệp đầu tư phục vụ sản xuất, nhằm giảm
sức lao động, nâng cao năng suất lao độ
ng. Tuy nhiên các thiết bị, mô hình tương
tự phục vụ công tác đào tạo tại các cơ sở đào tạo còn rất ít. Hiện nay trong điều
kiện nền kinh tế đất nước đang còn nhiều khó khăn, nguồn kinh phí cấp để các
trường tăng cường cơ sở vật chất, trang thiết bị, đồ dùng dạy học tiên tiến, hiện đại
đang còn hạn hẹp. Cho nên việc nghiên cứu, ứ
ng dụng tiến bộ khoa học kỹ thuật
tiên tiến, hiện đại để thiết kế, chế tạo hệ thống sản xuất tự động, linh hoạt (FMS)
hay hệ thống sản xuất tích hợp có sự trợ giúp của máy tính (CIM) phục vụ đào tạo
và áp dụng vào thực tế sản xuất rất cần thiết. Để học sinh, sinh viên ra trường có
kiến thức cơ bản v

ề hệ thống sản xuất linh hoạt FMS và tích hợp CIM, yêu cầu đặt
ra đối các cơ sở đào tạo, ngoài truyền thụ những kiến thức cơ bản về các hệ thống
sản xuất linh hoạt, phải có các mô hình phục vụ công tác học tập, thực tập, làm thí
nghiệm và nghiên cứu khoa học.
Xuất phát từ những yêu cầu đó, năm 2011 đội ngũ cán bộ, giảng viên trường
Đạ
i học Sao Đỏ đã đề xuất lựa chọn đề tài nghiên cứu với nội dung: “Nghiên cứu,
xây dựng mô hình khoan – phay tự động có ứng dụng vi xử lý AVR phục vụ công
tác đào tại trường Đại học Sao Đỏ”. Với mục tiêu ứng dụng thành tựu khoa học kỹ
thuật về vi xử lý để thiết kế, chế tạo mô hình và xây dựng hệ thống bài thực hành,
thí nghiệm.
2. Mục tiêu nghiên c
ứu của đề tài
- Nghiên cứu đặc tính, tính năng của vi xử lý AVR

9
- Nghiên cứu tổng quan về hệ thống khoan - phay tự động.
- Thiết kế, chế tạo phần cơ khí và bộ điều khiển giám sát cho hệ thống
khoan - phay tự động.
- Xây dựng phần mềm điều khiển, giám sát hệ thống khoan - phay bằng ngôn
ngữ Visual Basic
- Lắp đặt và vận hành mô hình hệ thống khoan – phay tự động.
- Xây dựng một số bài thực hành, thí nghiệm điển hình phù hợp với mô hình.

3. Kết cấu của đề tài
Nôi dung trình bày trong đề tài bao gồm 3 chương:
Chương 1. Tổng quan về vi xử lý AVR – Atmega 128
Chương 2. Thiết kế mô hình, xây dựng phần mềm điều khiển và giám sát hệ
thống khoan - phay tự động.
Chương 3. Xây dựng hệ thống bài thực hành, thí nghiệm điển hình trên hệ

thống khoan - phay tự động.
Kết luận và khuyến nghị



















10
Chương 1 TỔNG QUAN VI XỬ LÝ AVR - ATMEGA 128
1.1. TÌNH HÌNH NGHIÊN CỨU VI XỬ LÝ AVR Ở NƯỚC NGOÀI
Hiện nay ở các nước phát triển trên thế giới các thiết bị và hệ thống sản xuất
linh hoạt đã được sử dụng rộng rãi nhằm giảm sức lao động và nâng cao năng suất
lao động. Trong nền sản xuất hiện đại việc xây dựng các hệ thống sản xuất linh
hoạt đóng một vai trò hết sức quan trọng. Hệ thố
ng sản xuất linh hoạt FMS cho
phép tự động hoá ở mức độ cao đối với sản xuất hàng loạt nhỏ và vừa trên cơ sở sử

dụng các máy CNC, Rôbôt công nghiệp để điều khiển các đối tượng lao động như:
Đồ gá, dụng cụ cắt, hệ thống vận chuyển - tích trữ phôi. Với mục đích tối ưu hoá
quá trình công nghệ và quá trình sản xuất. Đặc điểm củ
a hệ thống sản xuất FMS là
khả năng điều chỉnh nhanh các thiết bị, dụng cụ để chế tạo sản phẩm. Như vậy nó
không những thích hợp cho sản xuất hàng khối, hàng loạt lớn mà còn cho sản xuất
hàng loạt vừa và nhỏ. Chính vì vậy mà ngày nay các hệ thống sản xuất FMS được
áp dụng rộng rãi trong các nhà máy và xí nghiệp. Các cơ cấu chính của hệ thống
sản xu
ất linh hoạt, tích hợp đã được thiết kế, chế tạo từ lâu. Một số cơ cấu máy
được chế tạo và sử dụng vào đầu những năm 1970. Tuy nhiên tới tháng 11 năm
1978 tạp chí “IRON AGE” mới đăng bài báo đầu tiên về “Tính linh hoạt của sản
xuất”, lúc này mới có các khái niệm ban đầu về hệ thống sản xuất linh hoạt.
Từ năm 1978 đến năm 1983 có rất nhiều hội th
ảo khoa học quốc tế bàn về
tính linh hoạt của hệ thống sản xuất, từ đó cơ sở lý thuyết về hệ thống sản xuất linh
hoạt đã được hoàn thiện. Ngày nay, các hệ thống sản xuất linh hoạt FMS và sản
xuất tích hợp có sự trợ giúp của máy tính CIM đã được sử dụng rộng rãi và phát
triển ở trình độ cao, đang tạo ra một lự
c lượng sản xuất mới, có khả năng làm thay
đổi bối cảnh của xã hội, tạo ra một yếu tố chiến lược cạnh tranh về kinh tế và quốc
phòng giữa các nước. Trong hệ thống sản xuất linh hoạt FMS đã sử dụng một số
dòng chíp như dòng chíp 8051,…dòng chíp này đã có nhiều tài liệu, nhưng do nó
có một số tồn tại nên hiện nay ít được sử dụng.
Vào năm 1996 Vi xử
lý AVR do hãng Atmel (Hoa Kỳ) sản xuất là họ vi xử
lý 8 bít theo công nghệ mới, với những tính năng rất mạnh được tích hợp trong chíp
của hãng Atmel theo công nghệ RISC (Reduce Instructions set Computer). AVR là
dòng chíp đầu tiên trong thế hệ chíp sử dụng bộ nhớ Flash dùng để lưu trữ chương
trình thay vì sử dụng các bộ nhớ Programmable ROM, EPROM hay EEPROM

được sử dụng trong các thế hệ chíp trước đó. So với dòng chíp 8051, AVR có nhiều
ưu điểm như: Có tốc độ xử lý nhanh, ổ
n định hơn, tích hợp được nhiều bộ phận

11
ngoại vi ngay trên chíp Chính vì vậy mà chíp AVR đã được sử dụng rộng rãi
trong công nghiệp cũng như một số thiết bị gia dụng.
1.2. TÌNH HÌNH NGHIÊN CỨU VI XỬ LÝ AVR Ở TRONG NƯỚC
Trong sự nghiệp công nghiệp hóa, hiện đại hóa đất nước. Một yêu cầu đặt ra
với các doanh nghiệp phải đầu tư trang thiết bị hiện đại mang tính linh hoạt, tính tự
động hóa cao, nhằm không ngừng nâng cao năng suất lao động. Trong những nă
m
vừa qua, ở nước ta một số khu công nghiệp đã đưa hệ thống sản xuất linh hoạt FMS
vào sản xuất như: Nhà máy Honda Việt Nam, Toyota Việt Nam, công ty VGF. Để
sử dụng và tiến tới làm chủ được những hệ thống sản xuất này, đòi hỏi các kỹ thuật
viên, kỹ sư phải có kiến thức sâu rộng về các hệ thống đó.
Hiện nay các trường đại họ
c và cao đẳng đều đưa môn học “Sản xuất linh
hoạt FMS & tích hợp CIM” và môn học “ Kỹ thuật vi xử lý” vào chương trình đào
tạo ngành Kỹ thuật Điện, Điện tử, Cơ điện tử. Tuy nhiên, vấn đề đặt ra là thiết bị
thực hành và thí nghiệm của các môn học này rất đắt vì phần lớn đều phải nhập từ
nước ngoài. Để đáp ứng yêu cầu s
ản xuất và phục vụ công tác đào tạo nguồn nhân
lực chất lượng cao, các hệ thống sản xuất linh hoạt, tích hợp FMS, CIM và một số
mô hình về hệ thống sản xuất linh hoạt có ứng dụng vi xử lýAVR phục vụ công tác
đào và nghiên cứu khoa học đã được một số ít trường đại học có uy tín đầu tư như:
Đại học Bách khoa, Học viện kỹ thuật quân sự trang bị
. Tuy nhiên việc chuyển
giao công nghệ còn gặp rất nhiều khó khăn. Với trình độ khoa học kỹ thuật hiện
nay của nước ta việc chế tạo một hệ thống sản xuất tự động, linh hoạt FMS hay hệ

thống sản xuất tích hợp có sự trợ giúp của máy tính CIM áp dụng vào thực tế sản
xuất rất cần thiết, song những nghiên cứu về FMS và CIM của chúng ta mới chỉ b
ắt
đầu và chỉ tập trung chủ yếu về phần lý thuyết cơ bản. Tài liệu về lĩnh vực này
bằng tiếng Việt hầu như chưa có và nếu có thì hầu như đều được dịch từ các tài liệu
nước ngoài. Trong các dây chuyền sản xuất tiên tiến, vi xử lý được sử dụng rất
rộng rãi, trong đó dòng vi xử lý 8051có ưu điểm là tài liệu chính thống bằng tiếng
Việt rất nhiều, xong còn một số nhược điểm khi sử dụng như: Độ ổn định thấp, tính
linh hoạt khi lập trình không cao vì vậy vi xử lý này ít được sử dụng trong thực tế.
Vi xử lý AVR du nhập vào Việt Nam vào khoảng đầu năm 2000, tuy thời gian
có mặt tại Việt Nam chưa lâu nhưng do có nhiều ưu điểm nổi bật so với vi xử lý
8051, nên hiện nay vi xử lý AVR đang được s
ử dụng rất rộng rãi. Việc nghiên cứu
ứng dụng vi xử lý vào điều khiển và giám sát các hệ thống sản xuất linh hoạt rất
cần thiết trong nền sản xuất hiện đại. Để sinh viên ra trường có kiến thức cơ bản về

12
hệ thống sản xuất linh hoạt FMS và tích hợp CIM, yêu cầu đặt ra đối các cơ sở đào
tạo ngoài truyền thụ những kiến thức cơ bản về các hệ thống sản xuất linh hoạt,
phải có các mô hình phục vụ công tác học tập, thực tập, làm thí nghiệm và nghiên
cứu khoa học.
1.3. LỊCH SỬ PHÁT TRIỂN CỦA VI XỬ LÝ AVR
Vi xử lý AVR do hãng Atmel (Hoa Kỳ) sản xuất được giới thi
ệu lần đầu
vào năm 1996 và có rất nhiều dòng khác nhau bao gồm: Dòng Tiny AVR (AT
tiny 13, AT tiny 22…) nó có kích thước bộ nhớ nhỏ, ít bộ phận ngoại vi, rồi
đến dòng AVR (AT90S8535, AT90S8515,…) có kích thước bộ nhớ vào loại
trung bình và mạnh hơn là dòng Mega (như ATmega32, ATmega128,…) với bộ
nhớ có kích thước vài Kbyte đến vài trăm Kbyte cùng với các bộ ngoại vi đa dạng
được tích hợp trên chíp, cũng có dòng tích hợp cả bộ LCD trên chíp (LCD AVR).

Tốc độ của dòng Mega cũng cao hơn so với các dòng khác. Sự khác nhau cơ b
ản
giữa các dòng chính là cấu trúc ngoại vi, còn nhân thì vẫn như nhau. Đặc biệt, năm
2008 Atmel lại tiếp tục cho ra đời dòng AVR mới là Xmega AVR, với những tính
năng mạnh mẽ chưa từng có ở các dòng AVR trước đó. Có thể nói Xmega AVR là
dòng MCU 8 bít mạnh nhất hiện nay.


Hình 1.1 Hình dáng bên ngoài vi xử lý AVR

13

Hình 1.2. Cấu trúc của vi xử lý AVR
1.4. ĐẶC ĐIỂM VÀ TÍNH NĂNG CỦA VI XỬ LÍ AVR
1.4.1. Đặc điểm
- Hiệu suất cao, tiết kiệm điện.
- Hoàn thiện cấu trúc RISC.
- 133 lệnh hiệu quả - thực thi tất cả các chu kỳ đồng hồ đơn.
- 32x8 thanh ghi chung đa năng.
- Các thanh ghi điều khiển ngoại vi.
- Có đầy đủ các quá trình điều khiển tĩnh.
- Nâng lên 16MIPS dữ liệu tại 16MHz chíp 2 nhân.
- Độ bền, sức chị
u đựng cao, không thay đổi phân vùng nhớ.
- 128 Kbytes bộ nhớ Flash có thể lập trình được trong hệ thống.
- 4K Bytes EEPROM.
- 4K Bytes bộ nhớ SRAM bên trong.
- Chu kỳ ghi/xóa: 10000Flash/100000EEPROM.
- Độ bền dữ liệu 20 năm ở 85
0

,100 năm ở 25
0
.
- Tối đa 64 Kbytes không gian bộ nhớ ngoài.
- Lập trình khóa cho phần mềm bảo mật.
- Giao diện SPI cho trong hệ thống lập trình.

14
- Giao diện JTAG (phù hợp với tiêu chuẩn IEEE 1149,1 ).
- Khả năng quét biên theo tiêu chuẩn JTAG.
- Hỗ trợ chế độ tạm sửa (debug) trên chíp.
- Lập trình Flash, EEPROM, cầu chì và bít khóa (Lock Bíts) thông qua các
giao diện JTAG.
- Đặc điểm ngoại vi:
+ 2 bộ Timer / Counters 8 bít với bộ đếm gộp trước riêng biệt và so sánh chế độ mẫu.
+ 2 bộ Timer / Counters 16 bít mở rộng với bộ đếm gộp trước riêng biệt, chế
độ so sánh mẫu và chế độ thu thập.
+ Bộ counter th
ời gian thực với dao động riêng biệt.
+ Hai kênh PWM 8 bít.
+ 6 kênh PWM có khả năng lập trình chính xác từ 2-16 bít.
- Bộ điều chế so sánh tín hiệu ra:
+ 8 kênh, 10 bít ADC, 8 kênh đầu cuối đơn, 7 kênh khác nhau (vi phân), 2
kênh khác nhau với bộ khuyếch đại lập trình được tại 1x, 10x hoặc 200x.
+ Bít định hướng với 2 dây giao diện nối tiếp.
+ Lập trình kép các USARTS nối tiếp.
+ Giao diện nối tiếp SPI chủ, tớ.
+ Lập trình timer Watchdog với bộ giao động trên chíp.
- Các tính năng đặc biệt c
ủa bộ vi xử lý:

+ Thiết lập bật lại nguồn và lập trình lại khi phát hiện nguồn yếu ( Brown-out).
+ Hiệu chỉnh bộ dao động RC bên trong.
+ Ngắt nguồn trong và nguồn ngoài.
+ 6 chế độ chờ: Idle nghỉ, ADC giảm ồn, Power-saver tiết kiệm điện, ngắt
điện, chế độ chờ (standby), chế độ chờ mở rộng.
+ Phần mềm lựa chọn tần số xung nhịp.
+ Lựa chọn chế độ so sánh ATmega103 bởi cầu chì Fues.
- Cổng vào ra và dạng đóng gói:
+ 53 đường vào ra lập trình được.
+ 64 chân TQFP và 64 khối QFN / MLF.
- Điện áp hoạt động:
+ 2.7 v - 5.5v cho ATmega128L.
+ 4.5 v- 5.5v cho ATmega128.

15
- Mức tốc độ xung nhịp:
+ 0 - 8 MHz cho ATmega128.
+ 0 - 16 MHz cho ATmega128.
1.4.2. Tính năng
- ROM : 128 Kbytes
- SRAM: 4 Kbytes
- EEPROM: 4 Kbytes
- 64 thanh ghi I/O
- 160 thanh ghi vào ra mở rộng
- 32 thanh ghi đa mục đích.
- 2 bộ định thời 8 bít (0,2).
- 2 bộ định thời 16 bít (1,3).
- Bộ định thời watchdog
- Bộ dao động nội RC tần số 1 MHz, 2 MHz, 4 MHz, 8 MHz
- ADC 8 kênh với độ phân giải 10 bít (ở dòng Xmega lên tới 12 bít )

- 2 kênh PWM 8 bít
- 6 kênh PWM có thể lập trình thay đổi độ phân giải từ 2 tới 16 bít
- Bộ so sánh tương tự có thể lựa chọn ngõ vào
- Hai kh
ối USART lập trình được
- Khối truyền nhận nối tiếp SPI
- Khối giao tiếp nối tiếp 2 dây TWI
- Hỗ trợ boot loader
- 6 chế độ tiết kiệm năng lượng
- Lựa chọn tần số hoạt động bằng phần mềm
- Đóng gói 64 chân kiểu TQFP.
- Tần số tối đa 16MHz
- Điện áp : 4.5v - 5.5v
1.5. CẤU TRÚC BỘ NHỚ VÀ CỔNG VÀO – RA
1.5.1. Cấu trúc bộ nhớ
Bộ nh
ớ vi xử lý AVR có cấu trúc Harvard là cấu trúc có đường Bus riêng
cho bộ nhớ chương trình và bộ nhớ dữ liệu. Bộ nhớ AVR được chia làm 2 phần
chính: Bộ nhớ chương trình (PM-program memory ) và bộ nhớ dữ liệu (DM-Data
memory ).
* Bộ nhớ chương trình: Bộ nhớ chương trình của AVR là bộ nhớ Flash có
dung lượng 128 Kbytes. Bộ nhớ chương trình có độ rộng bus là 16 bít. Những

16
địa chỉ đầu tiên của bộ nhớ chương trình được dùng cho bảng véc tơ ngắt. Vi xử
lý Atmega 128 bộ nhớ chương trình còn có thể được chia làm 2 phần: Phần boot
loader (Boot loader program section) và phần ứng dụng (Application program
section).
Phần boot loader chứa chương trình boot loader. Chương trình Boot loader
là một phần mềm nhỏ nạp trong vi xử lý và được chạy lúc khởi động. Phần

mềm này có thể tải vào trong vi xử lý, chương trình của người sử dụng và sau đó
thực thi chương trình này. Mỗi khi reset vi xử lý CPU sẽ nhảy tới thực thi chương
trình boot loader trước, chương trình boot loader sẽ dò xem có chương trình nào
cần nạp vào vi xử lý hay không, nếu có chương trình cần nạp, boot loader sẽ
nạp chương trình vào vùng nhớ ứng dụng (Application program section), rồi
thực thi chương trình này. Ngược lại, boot loader sẽ chuyển tới chương trình ứng
dụng có sẵn trong vùng nhớ ứng dụng để thực thi chương trình này.
Phần ứng dụng (Application program section) là vùng nh
ớ chứa chương
trình ứng dụng của người dùng. Kích
thước của phần boot loader và phần ứng
dụng có thể tùy chọn. Hình 1.3 thể hiện
cấu trúc bộ nhớ chương trình không sử
dụng bootloader (a) và có sử dụng
bootloader (b). Khi sử dụng phần boot
loader ta thấy 4 word đầu tiên thay vì chỉ
thị cho CPU chuyển tới chương trình
ứng dụng của người dùng (là chương
trình có nhãn start ) thì chỉ thị CPU nhảy
tới phầ
n chương trình boot loader để thực
hiện trước, rồi quay trở lại thực hiện
chương trình ứng dụng.
* Bộ nhớ dữ liệu: Bộ nhớ dữ liệu
của AVR chia làm 2 phần chính là bộ nhớ
SRAM và bộ nhớ EEPROM. Tuy cùng là bộ
nhớ dữ liệu nhưng hai bộ nhớ này lại tách
biệt nhau và được đánh địa chỉ riêng.
Bộ nhớ SRAM có dụng lượng 4 Kbytes, Bộ nhớ
SRAM có hai chế độ hoạt động là

chế độ thông thường và chế độ tương thích với ATmega103, muốn thiết lập bộ nhớ
SRAM hoạt động theo chế độ nào ta sử dụng bít cầu chì M103C.
Hình 1.3 Cấu trúc bộ nhớ chương trình
a) Không dùng Bootloader
b) Có dùng Bootloader
a)
b
)


17
* Bộ nhớ SRAM ở chế độ bình thường : Ở chế độ bình thường bộ nhớ SRAM
được chia thành 5 phần: Phần đầu là 32 thanh ghi chức năng chung (General Purpose
Register) R0 đến R31 có địa chỉ từ $0000 tới $001F. Phần thứ 2 là không gian nhớ Vào-Ra
với 64 thanh ghi vào ra ( I/O Register ) có địa chỉ từ $0020 tới $005F. Phần thứ 3 dùng
cho vùng nhớ dành cho các thanh ghi Vào-Ra mở rộng (Extended I/O Registers) có địa chỉ
từ $0060 tới $00FF. Phần thứ 4 là vùng SRAM nội với 4096 byte có địa chỉ từ
$0100 tới
$10FF. Phần thứ 5 là vùng nhớ SRAM ngoài (External SRAM ) bắt đầu từ địa chỉ $1100,
vùng SRAM mở rộng này có thể mở rộng lên đến 64 Kbyte. Khi nói bộ nhớ SRAM có
dung lượng 4 Kbyte là nói tới phần thứ 4. Nếu tính cả các thanh ghi thì bộ nhớ SRAM
trong chế độ bình thường sẽ là 4,25 Kbyte.
* Bộ nhớ SRAM ở chế độ tương thích ATmega103: Ở chế độ này bộ nhớ
SRAM cơ bản cũng giống ở chế độ bình th
ường, ngoại trừ phần thứ 3 là vùng nhớ
dành cho các thanh ghi Vào-Ra mở rộng không tồn tại, ngoài ra kích thước
của phần SRAM nội (internal SRAM) chỉ có 4000 byte so với 4096 byte ở chế
độ bình thường. Hình 1.4 thể hiện sơ đồ bộ nhớ dữ liệu ở cả hai chế độ bình
thường và chế độ tương thích ATmega103. Từ hình 1.4 ta thấy nếu cấu hình để
bộ nhớ SRAM hoạt động ở chế độ

tương thích ATmega103 thì ta sẽ bị mất đi
160 thanh ghi vào ra mở rộng (extended I/O Register), là những thanh ghi đóng
vai trò quan trọng trong các chế độ hoạt động của vi xử lý.

Data Menmory Data Menmory
32 Registers 32 Registers
64I/O Registers 64 I/O Registers
160 Ext I/O Reg 160 Ext I/O Reg
Internal SRAM
(4096x8)
Internal SRAM
(4096x8)

Internal SRAM
(4096x8)


Internal SRAM
(4096x8)



a) b)

$0000-$001F
$0000-$001F
$0FFF
$1000
$FFFF
$0000-$001F

$0020-$006F
$0060-$00FF
$0100
$01FF
$1100
$FFFF
Hình 1.4
S
ơ
đ

bộ nhớ dữ liệu
a) Chế độ bình thường b) Chế độ tương thích
với Atmega 103

18
* Bộ nhớ EEPROM: Đây là bộ nhớ dữ liệu có thể ghi, xóa ngay trong lúc vi xử
lý đang hoạt động và không bị mất dữ liệu khi nguồn điện cung cấp bị cắt. Có thể
ví bộ nhớ dữ liệu EEPROM giống như là ổ cứng (Hard disk) của máy tính, với vi
xử lý ATmega128, bộ nhớ EEPROM có kích thước là 4 Kbytes. EEPROM được
xem như là một bộ nhớ Vào-Ra được đánh địa chỉ độc lập v
ới SRAM, điều này
có nghĩa là ta cần sử dụng các lệnh in, out… khi muốn truy xuất tới EEPROM.
Để điều khiển vào ra dữ liệu với EEPROM ta sử dụng 3 thanh ghi sau :
- Thanh ghi EEAR (EEARH và EEARL)

Bít
15 14 13 12 11 10 9 8

- - - - EEAR11 EEAR10 EEAR9 EEAR8 EEARH


EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEAR0 EEARL
Read/
Write
R
R/W
R
R/W
R
R/W
R
R/W
R
R/W
R
R/W
R
R/W
R
R/W

Initial
Value
0
X
0
X
0
X
0

X
X
X
X
X
X
X
X
X

Hình 1.5. Thanh ghi EFAR
EEAR là thanh ghi 16 bít lưu giữ địa chỉ của các ô nhớ của EEPROM,
thanh ghi EEAR được kết hợp từ 2 thanh ghi 8 bít là EEARH và thanh ghi
EEARL. Vì bộ nhớ
EEPROM của ATmega128 có dung lượng 4 Kbytes = 4096
byte = 2
12

byte nên ta chỉ cần 12
bít của thanh ghi EEAR , 4 bít từ 15 -12 được dự
trữ, ta nên ghi 0 vào các bít dự trữ này.
- Thanh ghi EEDR

Bít
7 6 5 4 3 2 1 0

MSB - - - - - - LSB EEDR
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Initial Value 0 0 0 0 0 0 0 0
Hình 1.6. Thanh ghi EFDR

Đây là thanh ghi dữ liệu của EEPROM, là nơi chứa dữ liệu định ghi vào
hay lấy ra từ EEPROM.
- Thanh ghi EECR
Bít
7 6 5 4 3 2 1 0

- - - - EERIE EEMWE EEWE EERE EECR
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Initial Value 0 0 0 0 0 0 0 0
Hình 1.7. Thanh ghi EFCR

19
Đây là thanh ghi điều khiển EEPROM, ta chỉ sử dụng 4 bít đầu của
thanh ghi này, 4 bít cuối là dự trữ, ta nên ghi 0 vào các bít dự trữ.
Sơ đồ bộ nhớ bên trong của ATmega128 có thể tóm tắt lại như hình 1.8

Hình 1.8. Sơ đồ bộ nhớ của ATmega128
1.5.2. Cổng Vào-Ra (I/O)
Cổng Vào-Ra là một trong số các phương thức để vi xử lý giao tiếp với các
thiết bị ngoại vi. ATmega128 có tất cả 7 cổng (port) Vào-Ra 8 bít là: PortA,
PortB, PortC, PortD, PortE, PortF, PortG, tương ứng với 56 lối Vào-Ra . Các
cổng Vào-Ra của AVR là cổng Vào-Ra hai chiều có thể định hướng, tức là có thể
chọn hướng của cổng là hướng vào (input) hay hướng ra (output). Tất các các
cổng Vào-Ra của AVR đều có tính năng Đọc – Chỉnh sửa – Ghi (Read – Modify –
Write) khi sử dụng chúng như
các cổng Vào-Ra số thông thường. Điều này có
nghĩa là khi ta thay đổi hướng của một chân nào đó thì nó không làm ảnh hưởng
tới hướng của các chân khác. Tất cả các chân của các cổng (port ) đều có điện trở
kéo lên (pull-up) riêng, ta có thể cho phép hay không cho phép điện trở kéo lên
này hoạt động.

Điện trở kéo lên là một điện trở được dùng khi thiết kế các mạch điện tử
lôgíc. Nó có một đầu
được nối với nguồn điện áp dương (thường là Vcc hoặc
Vdd) và đầu còn lại được nối với tín hiệu cổng Vào-Ra của một mạch lôgíc
chức năng. Điện trở kéo lên có thể được lắp đặt tại các lối vào của các khối mạch
lôgíc để thiết lập mức lôgíc lối vào của khối mạch khi không có thiết bị ngoài nối
với lối vào. Điệ
n trở kéo lên cũng có thể được lắp đặt tại các giao diện giữa hai
khối mạch lôgíc không cùng loại lôgíc, đặc biệt là khi hai khối mạch này được cấp
nguồn khác nhau. Ngoài ra, điện trở kéo lên còn được lắp đặt tại lối ra của khối
mạch khi lối ra không thể nối nguồn để tạo dòng, ví dụ: các linh kiện lôgíc TTL có
cực góp hở. Đối với họ lôgíc lưỡng cực với ngu
ồn nuôi 5Vdc thì giá trị của điện

20
trở kéo lên thường nằm trong khoảng 1000-5000 Ω, tùy theo yêu cầu cấp dòng
trên toàn dải hoạt động của mạch. Với lôgíc CMOS và lôgíc MOS chúng ta có thể
sử dụng các điện trở có giá trị lớn hơn nhiều, thường từ vài ngàn đến một triệu Ω
do dòng rò rỉ cần thiết ở lối vào là rất nhỏ. Trong việc thiết kế các vi mạch ứng
dụng, nếu một IC có ngõ ra loại cực thu để hở giao ti
ếp với nhiều IC khác thì
giá trị của điện trở kéo lên sẽ tương đối nhỏ (khoảng vài trăm ôm). Bởi vì lúc
này hệ số fanout lớn dẫn đến dòng ngõ ra của IC phải lớn để đủ cung cấp cho các
ngõ vào của các IC khác, nếu không vi mạch sẽ hoạt động chập chờn hoặc có thể
không hoạt động.
Khi khảo sát các cổng như là các cổng Vào-Ra số thông thường thì tính
chất của các cổng (PortA, PortB,…PortG) là tươ
ng tự nhau, nên ta chỉ cần khảo
sát một cổng nào đó trong số 7 cổng của vi xử lý là đủ.
Mỗi một cổng Vào-Ra của vi xử lý được liên kết với 3 thanh ghi:

PORTx, DDRx, PINx. (ở đây x là để thay thế cho A, B,…G). Ba thanh ghi này sẽ
được phối hợp với nhau để điều khiển hoạt động của cổng, chẳng hạn thiết lập
cổng thành lối vào có sử dụng điện trở pull-up, v.v . Sau
đây là diễn tả cụ thể
vai trò của 3 thanh ghi trên.
1.5.2.1. Thanh ghi DDRx.
Đây là thanh ghi 8 bít (có thể đọc ghi) chức năng điều khiển hướng của
cổng (là lối ra hay lối vào). Khi một bít của thanh ghi này được set lên 1 thì chân
tương ứng với nó được cấu hình thành ngõ ra. Ngược lại, nếu bít của thanh ghi
DDRx là 0 thì chân tương ứng với nó được thiết lập thành ngõ vào. Ví dụ: Khi ta
xét tất cả 8 bít của thanh ghi DDRA đều là 1, thì 8 chân tương ứng của portA là
PA1, PA2, … PA7 (tương
ứng với các chân số 50, 49, …44 của vi xử lý) được
thiết lập thành ngõ ra.
Bít
7 6 5 4 3 2 1 0

DDA7 DDA6 DDA5 DDA4 DDA3 DDA2 DDA1 DDA0 DDRA
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Initial Value 0 0 0 0 0 0 0 0
Hình 1.9. Thanh ghi DDRA
1.5.2.2. Thanh ghi PORTx
PORTx là thanh ghi 8 bít có thể đọc ghi. Đây là thanh ghi dữ liệu của
PORTx, nếu thanh ghi DDRx thiết lập cổng là lối ra, khi đó giá trị của thanh ghi
PORTx cũng là giá trị của các chân tương ứng của PORTx, nói cách khác, khi ta

21
ghi một giá trị lôgíc lên 1 bít của thanh ghi này thì chân tương ứng với bít đó,
cũng có cùng mức lôgíc. Khi thanh ghi DDRx thiết lập cổng thành lối vào thì
thanh ghi PORTx đóng vai trò như một thanh ghi điều khiển cổng. Cụ thể, nếu một

bít của thanh ghi này được ghi thành 1 thì điện trở treo (pull-up resistor) ở chân
tương ứng với nó sẽ được kích hoạt, ngược lại nếu bít được ghi thành 0 thì điện trở
treo ở chân tương ứng sẽ không đượ
c kích hoạt, cổng ở trạng thái cao trở (Hi-Z).
Bít
7 6 5 4 3 2 1 0
PORT
A7
PORT
A6
PORT
A5
PORT
A4
PORT
A3
PORT
A2
PORT
A1
PORT
A0
PORTA
Read/write R/W R/W R/W R/W R/W R/W R/W R/W
Initial Value 0 0 0 0 0 0 0 0
Hình 1.10. Thanh ghi PORTA
1.5.2.3. Thanh ghi PINx
PINx không phải là một thanh ghi thực sự, đây là địa chỉ trong bộ nhớ
I/O kết nối trực tiếp tới các chân của cổng. Khi ta đọc PORTx tức ta đọc dữ
liệu được chốt trong PORTx, còn khi đọc PINx thì giá trị lôgíc hiện thời ở chân

của cổng tương ứng được đọc, vì thế đối với thanh ghi PINx ta chỉ có thể đọc mà
không thể ghi. Bảng 1.1 thể hiện các thiết lập cách hoạt
động có thể có của cổng.
Bít
7 6 5 4 3 2 1 0
PINA
7
PINA
6
PINA
5
PINA
4
PINA
3
PINA
2
PINA
1
PINA
0
PORTA
Read/write R R R R R R R R
Initial Value N/A N/A N/A N/A N/A N/A N/A N/A
Hình 1.11. Thanh ghi PINA
Bảng 1.1
DDRxn PORTx
n
PUD (Trong thanh
ghi SFIOR)

I/O Pull-up
Chú thích
0 0 x N
g
õ vào khôn
g
Cao t
r

0 1 0 N
g
õ vào có Như
m

t n
g
uồn
0 1 1 N
g
õ vào khôn
g
Cao t
r

1 0 x N
g
õ ra khôn
g
N
g

õ ra thấ
p
1 1 x N
g
õ ra khôn
g
N
g
õ ra cao
DDRxn là bít thứ n của thanh ghi DDRx
PORTxn là bít thứ n của thanh ghi PORTx
Dấu “x” ở cột thứ 3 để chỉ giá trị lôgíc là tùy ý



22
1.6. BỘ ĐỊNH THỜI CỦA ATMEGA 128
ATmega128 có 4 bộ định thời, bộ định thời 1 và 3 là bộ định thời 16
bít, bộ
định thời 0 và 2 là bộ định thời 8 bít.
1.6.1. Bộ định thời 1 và 3
Bộ định thời 1 và 3 là bộ định thời 16 bít, bộ định thời 1 sử dụng 13 thanh
ghi liên quan, còn bộ định thời 3 sử dụng 11 thanh ghi liên quan với nhiều chế
độ thực thi khác nhau. Vì bộ định thời 1 và 3 hoạt
động giống nhau nên ở đây chỉ
trình bày bộ định thời 1. Một điểm cần chú ý là trong các thanh ghi liên quan
tới bộ định thời 1 và 3 thì có nhiều thanh ghi được chia sẽ cho cả hai bộ định
thời, chẳng hạn thanh ghi ETIPR có bít cuối là OCF1C được dùng cho bộ định
thời 1, các bít còn lại là dùng cho bộ định thời 3. Thậm chí có những thanh
ghi chia sẽ cho bộ định thời 0 hoặc 2, chẳng hạn thanh ghi TIMSK có hai bít

cuối dùng cho bộ định thời 2, hai bít đầ
u dùng cho bộ định thời 0, các bít còn lại
dùng cho bộ định thời 1. Các thanh ghi liên quan tới bộ định thời 3 cũng được
liệt kê mà không cần giải thích chi tiết, tuy vậy cũng có vài khác biệt nhỏ giữa bộ
định thời 1 và 3 được chú thích cho từng trường hợp cụ thể trong mục “Bộ định
thời 3”. Để tìm hiểu về bộ định thời 1(3) ta cần nắm vững các thanh ghi liên quan
tới bộ định thời 1(3) và các ch
ế độ hoạt động của bộ định thời.
BOTTOM: Bộ đếm đạt tới giá trị BOTTOM khi nó có giá trị 0000h MAX
Bộ đếm đạt tới giá trị MAX khi nó bằng FFFFh
TOP: Bộ đếm đạt giá trị TOP khi nó bằng với giá trị cao nhất trong
chuỗi đếm, giá trị cao nhất trong chuỗi đếm không nhất thiết là FFFFh mà có thể
là bất kỳ giá trị nào được qui định trong thanh ghi OCRnX (X=A,B,C) hay ICRn,
tùy theo chế độ thực thi.
1.6.2. Bộ
định thời 0 và 2
Bộ định thời 0 và 2 là bộ định thời 8 bít, bộ định thời 0 liên quan tới 7
thanh ghi với nhiều chế độ thực thi khác nhau.
BOTTOM: Bộ đếm đạt tới giá trị BOTTOM khi nó có giá trị 0h MAX bộ
đếm đạt tới giá trị MAX khi nó bằng FFh.
TOP: Bộ đếm đạt giá trị TOP khi nó bằng với giá trị cao nhất trong chuỗi
đếm, giá trị cao nhất trong chuỗi đếm không nhất thiết là FFh mà có thể là b
ất
kỳ giá trị nào được qui định trong thanh ghi OCRn (n = 0,2), tùy theo chế độ thực
thi.
Bộ định thời 0 có một số đặc điểm chính như: Bộ đếm đơn kênh, xóa bộ

23
định thời khi có sự kiện so sánh khớp (compare match) và tự nạp lại, có thể
đếm từ bộ dao động 32KHz bên ngoài, chế độ PWM hiệu chỉnh pha,…

Bộ định thời 2 là bộ định thời 8 bít, liên quan tới 5 thanh ghi với nhiều
chế độ thực thi khác nhau. Các thuộc tính chính của bộ định thời gồm: Bộ đếm
đơn kênh, xóa bộ định thời khi có sự kiện “so sánh khớp” và tự động nạp lại,
PWM hi
ệu chỉnh pha, đếm sự kiện bên ngoài.
1.7. CẤU TRÚC NGẮT CỦA ATMEGA 128
1.7.1. Khái niệm về ngắt
Ngắt là một sự kiện bên trong hay bên ngoài làm ngắt bộ vi xử lý để báo
cho nó biết rằng thiết bị cần dịch vụ của nó.
Một bộ vi xử lý có thể phục vụ một vài thiết bị, có hai cách để thực hiện
điều này đó là sử dụng các ngắt (interrupt) và thăm dò (polling). Trong phương
pháp sử
dụng các ngắt thì mỗi khi có một thiết bị bất kỳ cần đến dịch vụ của nó
thì nó báo cho bộ vi xử lý bằng cách gửi một tín hiệu ngắt. Khi nhận đựợc tín
hiệu ngắt, bộ vi xử lý ngắt tất cả những gì nó đang thực hiện để chuyển sang
phục vụ thiết bị. Chương trình đi cùng với ngắt được gọi là trình dịch vụ ngắt ISR
(Interrupt Service Routine) hay còn g
ọi là trình quản lý ngắt (Interrupt handler).
Còn trong phương pháp thăm dò thì bộ vi xử lý hiển thị liên tục tình trạng của
một thiết bị đã cho và điều kiện thoả mãn thì nó phục vụ thiết bị. Sau đó nó
chuyển sang hiển thị tình trạng của thiết bị kế tiếp cho đến khi tất cả đều được
phục vụ.
Mặc dù phương pháp thăm dò có thể thể hiển thị tình tr
ạng của một vài
thiết bị và phục vụ mỗi thiết bị khi các điều kiện nhất định được thoả mãn, nhưng
nó không tận dụng hết công dụng của bộ vi xử lý. Điểm mạnh của phương pháp
ngắt là bộ vi xử lý có thể phục vụ được rất nhiều thiết bị không tại cùng một thời
điểm. Mỗi thiết bị có th
ể nhận được sự chú ý của bộ vi xử lý dựa trên mức ưu
tiên được gán cho nó. Đối với phương pháp thăm dò thì không thể gán mức ưu

tiên cho các thiết bị, vì nó kiểm tra tất cả thiết bị theo kiểu quay vòng. Quan
trọng hơn là trong phương pháp ngắt thì bộ vi xử lý cũng còn có thể bỏ qua một
yêu cầu dịch vụ của thiết bị. Điều này lại một lần nữ
a không thể thực hiện được
trong phương pháp thăm dò. Lý do quan trọng nhất mà phương pháp ngắt được
ưu chuộng nhất vì phương pháp thăm dò làm hao phí thời gian của bộ vi xử lý
bằng cách hỏi dò từng thiết bị kể cả khi chúng không cần đến dịch vụ.
1.7.2. Trình phục vụ ngắt và bảng véc tơ ngắt

24
Đối với mỗi ngắt thì phải có một trình phục vụ ngắt ISR (Interrupt Service
Routine) hay trình quản lý ngắt (Interrupt handler). Khi một ngắt đựợc gọi thì bộ
vi xử lý phục vụ ngắt, bộ vi xử lý chạy trình phục vụ ngắt. Đối với mỗi ngắt thì
có một vị trí cố định trong bộ nhớ để giữ địa chỉ ISR của nó. Nhóm các vị trí
nhớ được dành riêng để gửi các địa chỉ củ
a các ISR được gọi là bảng véc tơ ngắt.
Khi kích hoạt một ngắt bộ vi xử lý đi qua các bước sau:
- Vi xử lý kết thúc lệnh đang thực hiện và lưu địa chỉ của lệnh kế tiếp
(PC) vào ngăn xếp.
- Nhảy đến một vị trí cố định trong bộ nhớ được gọi là bảng véc tơ ngắt
nơi lưu giữ địa chỉ của một trình phụ
c vụ ngắt.
- Bộ vi xử lý nhận địa chỉ ISR từ bảng véc tơ ngắt và nhảy tới đó. Bắt đầu
thực hiện trình phục vụ ngắt cho đến lệnh cuối cùng của ISR là RETI (trở về từ
ngắt).
- Khi thực hiện lệnh RETI bộ vi xử lý quay trở về nơi nó đã bị ngắt. Trước
hết nó nhận địa chỉ của bộ đế
m chương trình PC từ ngăn xếp bằng cách kéo hai
byte trên đỉnh của ngăn xếp vào PC. Sau đó bắt đầu thực hiện các lệnh từ địa chỉ
đó.

1.7.2.1. Thứ tự ưu tiên ngắt
Dưới đây là bảng véc tơ ngắt của ATmega128, cùng với địa chỉ của nó
trong bộ nhớ chương trình.
Bảng 1.2
Véctơ
No.
Program
Address
Source Interrupt Definition
1 $0000 RESET External Pin, Power-on Reset,
Brown-out Reset, Watchdog Reset,
and JTAG AVR Reset
2 $0002 INT0 External Interrupt Request 1
3 $0004 INT1 External Interrupt Request 2
4 $0006 INT2 External Interrupt Request 3
5 $0008 INT3 External Interrupt Request 4
6 $000A INT4 External Interrupt Request 5
7 $000C INT5 External Interrupt Request 6
8 $000E INT6 External Interrupt Request 7
9 $0010 INT7 External Interrupt Request 7

×