1. Trang chủ
  2. » Luận Văn - Báo Cáo

THIẾT KẾ CHẾ TẠO CỤM CẢM BIẾN XỬ LÝ MÀU TÁM KÊNH TRÊN MÁY PHÂN LOẠI MÀU HẠT ĐIỀU

76 96 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 76
Dung lượng 2,77 MB

Nội dung

Em xin gởi lời biết ơn chân thành đến bộ môn Điều Khiển Tự Động cùng Thầy Cô trong Khoa Cơ Khí đã giảng dạy những kiến thức chuyên môn làm cơ sở để em thực hiện tốt đề tài này.Đặc biệt,

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH

KHÓA LUẬN TỐT NGHIỆP

THIẾT KẾ CHẾ TẠO CỤM CẢM BIẾN XỬ LÝ MÀU TÁM KÊNH TRÊN MÁY PHÂN LOẠI MÀU HẠT ĐIỀU

Họ và tên sinh viên: NGUYỄN HOÀNG THY NHÃ Ngành: ĐIỀU KHIỂN TỰ ĐỘNG

Niên khóa: 2006 - 2010

Tháng 8/2010

Trang 2

THIẾT KẾ CHẾ TẠO CỤM CẢM BIẾN XỬ LÝ MÀU TÁM KÊNH TRÊN MÁY PHÂN LOẠI MÀU HẠT ĐIỀU

Tác giả

NGUYỄN HOÀNG THY NHÃ

Khóa luận được đệ trình để đáp ứng yêu cầu cấp bằng Kỹ sư ngành

Điều Khiển Tự Động

Giáo viên hướng dẫn:

Ths.Đặng Phi Vân Hài

Tháng 8 năm 2010

Trang 3

LỜI CẢM ƠN

Trong suốt thời gian học tại Trường Đại Học Nông Lâm Thành Phố Hồ Chí Minh, nhờ sự giúp đỡ của quý Thầy Cô về mọi mặt nên đề tài tốt nghiệp mới được hoàn thành

Em xin gởi lời biết ơn chân thành đến bộ môn Điều Khiển Tự Động cùng Thầy

Cô trong Khoa Cơ Khí đã giảng dạy những kiến thức chuyên môn làm cơ sở để em thực hiện tốt đề tài này.Đặc biệt, trong quá trình thực hiện đề tài này, em nhận được sự giúp đỡ, hướng dẫn tận tình của giáo viên hướng dẫn đề tài Ths.Đặng Phi Vân Hài.Em xin gửi đến Cô lời cảm ơn chân thành

Em xin chân thành cảm ơn các Thầy Cô trong khoa, cùng các bạn đã đóng góp

ý kiến và kinh nghiệm quý báu trong quá trình thực hiện đề tài này

TP.Hồ Chí Minh, tháng 8 năm 2010 Sinh viên thực hiện

Nguyễn Hoàng Thy Nhã

Trang 4

TÓM TẮT

¾ Hiện nay trên thế giới tự động hóa được ứng dụng rất rộng rãi trong nhiều lĩnh vực trong sản xuất, phân loại và kiểm tra sản phẩm, trong đó phương pháp phân loại màu sản phẩm theo màu, độ sáng tối khác nhau của sản phẩm.Xuất phát từ những nguyên nhân trên và để góp phần cũng cố những kiến thức đã được học, sinh viên thực hiện đề tài “Thiết kế chế tạo cụm cảm biến xử lý màu tám kênh trên máy phân loại màu hạt điều”.Đề tài được tiến hành tại Xưởng Cơ Khí – Khoa Cơ Khí Công Nghệ –Trường Đại Học Nông Lâm Thành Phố Hồ Chí Minh từ ngày 12/04/2010 đến 15/07/2010 với các nội dung sau:

• Tìm hiểu chung về các hệ thống phân loại màu nói chung và phương pháp phân loại theo màu

• Tìm hiểu cấu tạo và nguyên lý hoạt động các loại cảm biến phân loại theo màu sắc

• Tìm hiểu tính năng và cách sử dụng vi điều khiển Atmega16

• Thiết kế và chế tạo cảm biến màu đơn sắc

• Viết các chương trình vi điều khiển bằng ngôn ngữ C

¾ Kết quả đã đạt được trong quá trình thực hiện đề tài:

• Đã chế tạo được cảm biến phân loại màu hạt điều đơn sắc

• Viết chương trình cho vi xử lí

Trang 5

MỤC LỤC

Trang tựa - i

Lời cảm ơn - ii

Tóm tắt - iii

Mục lục - iv

Danh sách hình - ix

Danh sách bảng - xi

CHƯƠNG 1.MỞ ĐẦU - 1

1.1 Tổng quan về đề tài - 1

1.2 Giới hạn đề tài - 1

1.3 Mục đích nghiên cứu - 1

CHƯƠNG 2.TỔNG QUAN - 3

2.1 Tìm hiểu chung về các hệ thống phân loại màu nói chung và phương pháp phân loại theo màu - 3

2.2 Phân loại màu dùng camera - 5

2.3 Phân loại màu dùng cảm biến - 5

2.3.1 Cảm biến đơn sắc - 6

2.3.1.1 Cấu tạo - 6

2.3.1.2 Nguyên lý hoạt động - 7

2.3.2 Cảm biến màu - 7

2.3.2.1 Cấu tạo - 7

2.3.2.2 Nguyên lý hoạt động - 7

2.4 Giới thiệu về vi điều khiển Atmega16 - 8

2.4.1 Giới thiệu chung - 8

2.4.2 Đặc tính - 8

2.4.3 Sơ đồ chân và hình thực tế Atmega16 - 9

2.4.4 Sơ đồ khối - 10

Trang 6

2.4.5 Cấu trúc nhân AVR - 12

2.4.5.1Giới thiệu - 12

2.4.5.2 Cấu trúc tổng quát - 12

2.4.5.3 Thanh ghi trạng thái - 13

2.4.5.4 Thanh ghi chức năng chung - 13

2.4.5.5 Con trỏ ngăn xếp (SP) - 14

2.4.6 Quản lý ngắt - 14

2.4.7 Cấu trúc bộ nhớ - 15

2.4.7.1 Bộ nhớ chương trình (Bộ nhớ Flash) - 15

2.4.7.2 Bộ nhớ dữ liệu SRAM - 16

2.4.7.3 Bộ nhớ dữ liệu EEPROM - 16

2.4.8 Các cổng vào ra (I/O) - 16

2.4.8.1 Thanh ghi DDRx - 17

2.4.8.2 Thanh ghi PORTx - 17

2.4.8.3 Thanh ghi PINx - 17

2.4.9 Bộ định thời - 18

2.4.9.1 Các thanh ghi - 18

2.4.9.2 Đơn vị đếm - 19

2.4.9.3 Đơn vị so sánh ngõ ra - 19

2.4.9.4 Mô tả các thanh ghi - 20

2.4.9.4.1 Thanh ghi điều khiển bộ định thời/bộ đếm TCCR0 - 20

2.4.9.4.2 Thanh ghi bộ định thời/bộ đếm - 20

2.4.9.4.3 Thanh ghi so sánh ngõ ra – OCR0 - 21

2.4.9.4.4 Thanh ghi mặt nạ ngắt - 21

2.4.9.4.5 Thanh ghi cờ ngắt bộ định thời - 21

2.4.10 USART - 21

2.4.10.1 Tạo xung clock - 23

2.4.10.2 Định dạng khung truyền - 23

2.4.10.3 Khởi tạo USART - 24

2.4.10.4 Truyền thông dữ liệu – bộ truyền USART - 24

2.4.10.5 Truyền khung 5 đến 8 bit dữ liệu - 24

Trang 7

2.4.10.6 Truyền khung 9 bit dữ liệu - 24

2.4.10.7 Nhận dữ liệu – bộ nhận USART - 25

2.4.10.8 Nhận khung với 5 đến 8 bit dữ liệu - 25

2.4.10.9 Nhận khung với 9 bit dữ liệu - 25

2.4.11 Bộ biến đổi A/D - 25

2.4.11.1 ADMUX: Multiplexer select register - 26

2.4.11.2 ADCSR – ADC control and status register - 27

2.4.11.3 Bit 7 – ADEN: ADC enable - 27

2.4.11.4 Bit 6 – ADSC: ADC start conversion - 28

2.4.11.5 Bit 5 – ADATE: ADC Auto Trigger enable - 28

2.4.11.6 Bit 4 – ADIF: ADC interrupt Flag - 28

2.4.11.7 Bit 3 – ADIE: ACD interrupt Enable - 28

2.4.11.8 Bit 2.1.0 – ADPS2…ADPS0: Bit lựa chọn xung nhịp (Tốc độ) - 28

2.4.11.9 Thanh ghi dữ liệu ACDH và ADCL - 29

2.4.11.10 Nguyên tắc hoạt động và lập trình điều khiển - 29

2.5 Các linh kiện chế tạo cảm biến - 30

2.5.1 Quang trở - 30

2.5.1.1 Cấu tạo - 30

2.5.1.2 Nguyên lý hoạt động - 30

2.5.2 Led phát sáng - 31

2.5.2.1 Cấu tạo - 31

2.5.2.2 Nguyên lý hoạt động - 31

2.6 Mạch nạp cho vi xử lí - 31

2.7 Chương trình nạp cho vi xử lý - 32

Chương 3.NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU - 33

3.1 Thời gian và địa điểm nghiên cứu đề tài - 33

3.1.1 Địa điểm tiến hành đề tài - 33

3.1.2 Phân bố thời gian tiến hành đề tài - 33

3.2 Đối tượng và thiết bị nghiên cứu - 34

3.2.1 Đối tượng nghiên cứu - 34

3.2.2 Thiết bị nghiên cứu - 34

Trang 8

3.3 Phương pháp thực hiện đề tài - 34

3.3.1 Lựa chọn phương pháp thiết kế hệ thống điều khiển - 34

3.3.2 Phương pháp thực hiện phần cơ khí - 35

3.3.3 Phương pháp thực hiện phần điện – điện tử - 35

3.3.4 Phương pháp thực hiện phần mềm - 35

3.3.5 Phương tiện thực hiện đề tài - 35

Chương 4.THỰC HIỆN ĐỀ TÀI – KẾT QUẢ VÀ THẢO LUẬN - 36

4.1 Thiết kế máy - 36

4.1.1 Chọn mô hình chung - 36

4.1.2 Thiết kế hộp điều khiển - 37

4.2 Thiết kế và chế tạo cảm biến - 37

4.2.1 Cấu tạo - 37

4.2.2 Nguyên lý hoạt động - 38

4.2.3 Mô hình điện – điện tử - 38

4.3 Thực hiện phần điện – điện tử - 39

4.3.1 Mạch nguồn - 39

4.3.1.1 Yêu cầu mạch nguồn - 39

4.3.1.2 Thiết kế mạch nguồn - 39

4.3.2 Mạch vi điều khiển - 39

4.3.3 Mạch cảm biến - 40

4.3.4 Mạch điều khiển khí nén - 41

4.4 Khảo nghiệm điện áp xuất ra của các cảm biến - 41

4.5 Phần mềm - 43

4.5.1 Chương trình trên vi xử lí - 43

4.5.1.1 Lưu đồ giải thuật - 43

4.5.1.2 Chương trình C - 48

4.6 Thi công, hiệu chỉnh và chạy thử nghiệm - 53

4.6.1 Thi công - 53

4.6.2 Hiệu chỉnh máy - 55

4.6.3 Chạy thử nghiệm máy - 55

4.6.3.1 Mục đích khảo nghiệm - 55

Trang 9

4.6.3.2 Dụng cụ khảo nghiệm - 55

4.7 Kết quả khảo nghiệm và thảo luận - 56

4.7.1 Kết quả khảo nghiệm - 56

4.7.1.1 Kết quả khảo nghiệm sơ bộ đối với cảm biến - 56

4.7.1.2 Kết quả khảo nghiệm đối với cảm biến - 57

4.7.2 Nhận xét kết quả khảo nghiệm - 59

Chương 5.KẾT LUẬN VÀ ĐỀ NGHỊ - 60

5.1 Kết luận - 60

5.2 Đề nghị - 60

TÀI KIỆU THAM KHẢO PHỤ LỤC

Trang 10

DANH SÁCH HÌNH

Hình 2.1 Máy phân loại sản phẩm bằng màu sắc - 3

Hình 2.2 Máy phân loại gạo theo màu sắc - 4

Hình 2.3 Máy phân loại cà phê, đậu, hạt điều bằng màu sắc - 4

Hình 2.4 Camera công nghiệp - 5

Hình 2.5 Cảm biến đơn sắc - 6

Hình 2.6 Sơ đồ nguyên lý cảm biến đơn sắc - 6

Hình 2.7 Cấu tạo cảm biến màu - 7

Hình 2.8 Sơ đồ chân Atmega 16 - 9

Hình 2.9 Hình thực Atmega16 - 10

Hình 2.10 Sơ đồ cấu trúc Atmega16 - 11

Hình 2.11 Sơ đồ cấu trúc CPU của Atmega16 - 12

Hình 2.12 Thanh ghi trạng thái SREG - 13

Hình 2.13 Thanh ghi chức năng chung - 13

Hình 2.14 Thanh ghi con trỏ ngăn xếp - 14

Hình 2.15 Bản đồ bộ nhớ chương trình - 15

Hình 2.16 Bản đồ bộ nhớ dữ liệu SRAM - 16

Hình 2.17 Sơ đồ cấu trúc bộ định thời - 18

Hình 2.18 Đơn vị đếm - 19

Hình 2.19 Sơ đồ đơn vị so sánh ngõ ra - 19

Hình 2.20 Thanh ghi điều khiển bộ định thời - 20

Hình 2.21 Thanh ghi bộ định thời - 20

Hình 2.22 Thanh ghi so sánh ngõ ra - 21

Hình 2.23 Thanh ghi mặt nạ ngắt TIMSK - 21

Hình 2.24 Thanh ghi cờ ngắt bộ định thời - 21

Hình 2.25 Sơ đồ khối bộ USART - 22

Hình 2.26 Đơn vị tạo xung clock - 23

Trang 11

Hình 2.27 Định dạng khung truyền - 24

Hình 2.28 Sơ đồ bộ biến đổi A/D - 26

Hình 2.29 Thanh ghi ADMUX - 26

Hình 2.30 Thanh ghi điều khiển và trạng thái ADC - 27

Hình 2.31 Thanh ghi dữ liệu ADC - 29

Hình 2.32 Hình thực tế của quang trở - 30

Hình 2.33 Hình thực tế của LED - 31

Hình 2.34 Sơ đồ mạch nạp AVR - 32

Hình 2.35 Chương trình nạp vi xử lý - 32

Hình 3.1 Sơ đồ hệ thống cảm biến - 34

Hình 4.1 Mô hình thí nghiệm - 36

Hình 4.2 Hộp điều khiển - 37

Hình 4.3 Sơ đồ nguyên lý cảm biến đơn sắc - 37

Hình 4.4 Sơ đồ khối điện – điện tử - 38

Hình 4.5 Mạch nguồn - 39

Hình 4.6 Mạch vi xử lý - 40

Hình 4.7 Mạch cảm biến - 40

Hình 4.8 Mạch điều khiển mạch khí nén - 53

Hình 4.9 Mô hình tổng quát - 54

Hình 4.10 Hệ thống nút điều khiển và led hiển thị trên tủ điều khiển - 54

Hình 4.11 Hệ thống các cảm biến - 55

Hình 4.12 Các mạch điều khiển và xử lý tính hiệu - 58

Trang 12

DANH SÁCH BẢNG

Bảng 4.1 Bảng khảo nghiệm điện áp - 42

Bảng 4.2 Khảo nghiệm sơ bộ - 57

Bảng 4.3 Tốc độ băng tải 0,4 m/s - 57

Bảng 4.4 Tốc độ băng tải 0,5 m/s - 58

Bảng 4.5 Tốc độ băng tải 0,6 m/s - 58

Trang 13

™ Các phương pháp phân loại màu sản phẩm:

¾ Phân loại màu sản phẩm bằng camera công nghiệp

¾ Phân loại màu sản phẩm bằng cảm biến màu hoặc cảm biến đơn sắc

1.2 Giới hạn đề tài:

Do bước đầu thiết kế đề tài nên còn nhiều hạn chế nhất định.Vì thế, sinh viên thực hiện đề tài chỉ chú trọng nghiên cứu những vấn đề chính sau:

¾ Chỉ thiết kế chế tạo cảm biến đơn sắc phân loại hạt điều

¾ Cảm biến chỉ hoạt động trên 8 kênh

¾ Nghiên cứu về các tính năng của vi điều khiển Atmega16

Trang 14

™ Trong quá trình thực hiện đề tài sinh viên thực hiện đã làm quen với việc tự tìm hiểu những kiến thức mới thông qua việc sử dụng vi điều khiển Atmega16, lập trình C cho vi điều khiển, thiết kế cảm biến đơn sắc

™ Trong quá trình thực hiện, đề tài này không tránh khỏi những thiếu sót nhất định.Vì vậy sinh viên thực hiện đề tài rất mong sự đóng góp của quí Thầy Cô và các bạn sinh viên để đề tài được hoàn thiện hơn

Trang 15

Chương 2

TỔNG QUAN

2.1 Tìm hiểu chung các hệ thống phân loại màu nói chung và phương pháp phân loại theo màu:

™ Các hệ thống phân loại hạt theo màu sắc có sơ đồ nguyên lý, cấu trúc như hình:

Hình 2.1 Máy phân loại sản phẩm bằng màu sắc

™ Vật liệu (hạt điều) được cấp bằng bộ cấp liệu, ổn định quĩ đạo trên máng rồi chuyển động qua vùng nhận dạng của cảm biến hoặc camera.Màu sắc của đối tượng dịch chuyển được nhận biết tức thời và máy tính công nghiệp (IPC) hoặc vi điều khiển hoặc PLC ra quyết định về khả năng chấp nhận sản phẩm đã nhận dạng, phát tín hiệu cho súng phun khí nén hoặc sử dụng cơ cấu cơ khí đưa ra khỏi quĩ đạo dịch chuyển nếu không đạt yêu cầu về chất lượng (trong trường hợp này thông qua màu sắc), và ngược lại thì không phát tín hiệu.Qua khỏi vùng nhận dạng, chính phẩm và

Trang 16

phế phẩm sẽ được phân tách và chứa trong hai khoang chứa tách biệt.Từ đây có thể vào kho hoặc qua máy đóng bao.Việc xử lý và ra quyết định chỉ được phép diễn ra dưới 0,13 mili giây

™ Một số mẫu máy phân loại sản phẩm bằng màu sắc có nguồn gốc từ Hàn Quốc

và Trung Quốc:

¾ Máy phân loại hạt điều bằng màu sắc

¾ Máy phân loại đậu bằng màu sắc

¾ Máy phân loại cà phê bằng màu sắc

¾ Máy phân loại gạo bằng màu sắc

Hình 2.2 Máy phân loại gạo theo màu sắc

Hình 2.3 Máy phân loại cà phê, đậu, hạt điều bằng màu sắc

Trang 17

2.2 Phân loại màu dùng camera:

Trong công nghiệp người ta dùng camera (CCD hoặc CMOS) để nhận dạng và phân loại.Màu sắc của đối tượng dịch chuyển được nhận biết tức thời và máy tính công nghiệp ra quyết định về khả năng chấp nhận hoặc loại bỏ sản phẩm đó

Hình 2.4 Camera công nghiệp

2.3 Phân loại màu dùng cảm biến:

™ Trong công nghiệp thì cảm biến màu được sử dụng rộng rãi khi cần phát hiện các đối tượng có màu gần tương tự nhau và là giải pháp với độ tin cậy cao

™ Tùy vào trường hợp có thể sử dụng cảm biến phát hiện cường độ ánh sáng để phát hiện màu đơn sắc để thay thế Nhưng đối với ứng dụng phát hiện nhiều màu thì điều này sẽ làm gia tăng số lượng cảm biến và tính chính xác không cao

Trang 18

2.3.1 Cảm biến đơn sắc:

Như đã trình bày ở trên trong công nghiệp có rất nhiều loại cảm biến dùng đề phân loại màu sản phẩm.Trong đề tài này chỉ cần phân biệt được độ trắng đen khác nhau của sản phẩm nên chỉ cần dùng cảm biến đơn sắc thay thế cho cảm biến màu

Trang 19

• Nếu vật có màu đen hoặc hơi vàng thì ánh sáng phản xạ lại quang trở với

cường độ yếu hơn

• Cường độ ánh sáng hấp thụ vào quang trở có thể được chỉnh bằng biến trở chỉnh (gắn ở board sensor).Bằng việc chỉnh biến trở ứng với từng cặp led

phát – quang trở ta chỉnh được độ nhạy của quang trở

2.3.2 Cảm biến màu:

2.3.2.1 Cấu tạo:

• Chế tạo bằng nhựa tổng hợp

• Có các led phát trên một trục quang học đơn

• Photodide thu ánh sáng phản chiếu

Trang 20

2.4 Giới thiệu về vi điều khiển Atmega16:

Ngày nay vi xử lí được ứng dụng rất rộng rãi, đặc biệt là trong các thiết bị điều

khiển tự động.Ở đây sinh viên thực hiện đã ứng dụng vi xử lý AVR Atmega16 vào đề tài này nhằm mục đích xử lý tín hiệu từ cảm biến, hiển thị tín hiệu xử lý lên led

2.4.1Giới thiệu chung:

Atmega16 là vi điều khiển 8 bit dựa trên kiến trúc RISC.Với khả năng thực hiện mỗi lệnh trong vòng một chu kỳ xung clock, Atmega16 có thể đạt được tốc độ 1MIPS trên mỗi MHz (1 triệu lệnh/s/MHz)

2.4.2 Đặc tính

¾ Hiệu suất và tốc độ xử lý cao, tiêu thụ năng lượng thấp

¾ Có cấu trúc RISC cải tiến

¾ Bộ nhớ được phân chia thành nhiều phần, có khả năng lưu giữ tốt trong thời gian dài Bộ nhớ Flash có thể ghi xóa 10.000 lần

¾ Cấu trúc ngoại vi:

• Hai bộ Timer/Counter 8 bit có bộ chia trước (Prescaler) và có chế độ hoạt động so sánh

• Một bộ Timer/Counter 16 bit có bộ chia trước (Prescaler) và có chế độ hoạt động: so sánh (compare), thu nhận (Capture)

• Có bốn kênh điều xung tự động (OCR0, OCR1A, OCR1B, OCR2_ tương ứng với các Timer: Timer0, Timer1, Timer2)

• Có 1 bộ ADC 10 bit gồm 8 kênh ngõ vào có thể lựa chọn các ngõ vào tùy ý với độ lợi có thể lập trình được

• USART nối tiếp lập trình được

• Giao tiếp nối tiếp SPI Master/Slave

• Có bộ so sánh tương tự (analog) On-chip

• I/O và Packages

• 32 đường vào ra lập trình được (Port A, B, C, D)

• Packeges dạng 40 chân DIP

• Điện áp làm việc:

• 2,7 ÷ 5,5 V đối với Atmega16L

• 4,5 ÷ 5,5 V đối với Atmega16

Trang 21

2.4.3 Sơ đồ chân và hình thực tế của Atmega16

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

¾ VCC: Cung cấp nguồn

¾ GND: Nối mass

¾ Port A (PA.0…PA.7): Là các ngõ vào tương tự đến bộ ADC Khi không sử dụng là chức năng ngõ vào tương tự của bộ ADC thì PORT A còn là một ngõ xuất nhập (I/O) 8 bit 2 chiều

¾ Port B (PB.0…PB.7): là một ngõ xuất nhập (I/O) 8 bit 2 chiều với các điện

trở kéo lên ở bên trong

¾ Port C (PC.0…PC.7): là một ngõ xuất nhập (I/O) 8 bit 2 chiều với các điện trở kéo lên ở bên trong

¾ Port D (PD.0…PD.7): là một ngõ xuất nhập (I/O) 8 bit 2 chiều với các điện trở kéo lên ở bên trong

¾ RESET: Ngõ vào Reset Chân Reset của ATMEGA 32 tích cực mức thấp.Xung Reset dài hơn 50nS sẽ Reset AVR ngay cả khi mạch dao động không hoạt động

¾ XTAL1: Ngõ vào đến bộ khuếch đại đảo và là ngõ vào mạch tạo dao động bên trong

¾ XTAL2: Ngõ ra từ mạch khuếch đại đảo

¾ AVCC: là chân cung cấp nguồn áp cho Port A và bộ chuyển đổi A/D Nên nối chân này với VCC bên ngoài, cả khi bộ ADC không được sử dụng.Nếu như

Trang 22

bộ ADC được sử dụng, nên nối nó lên VCC thông qua một mạch lọc thông thấp

¾ ARFF: là chân ngõ vào cung cấp điện áp tham chiếu cho bộ chuyển đổi A/D.Đối với hoạt động của ADC thì phải cung cấp 1 điện áp nằm trong khoảng

từ AGND đến AVCC đến ngõ vào chân AREF

Hình 2.9 Hình thực Atmega16

2.4.4 Sơ đồ khối:

¾ Các khối bên trong bao gồm :

• Khối khuếch đại thúc cho các Port A, B, C, D, khối thanh ghi dữ liệu Port và khối điều khiển hướng cho các Port

• Khối chuyển đổi tín hiệu tương tự sang số ADC

• Khối thời gian và điều khiển (Timing and control )

• Khối điều khiển lập trình (programming control )

• Khối thanh ghi con trỏ ngăn xếp Stack Pointer (SP): có chức năng quản

lý bộ nhớ ngăn xếp để lưu trữ các dữ liệu tạm thời trong quá trình xử lý dữ liệu

• Bộ nhớ SRAM dùng để lưu trữ các dữ liệu phục vụ cho chương trình và dùng làm bộ ngăn xếp để lưu trữ các dữ liệu tạm thời và lưu trữ địa chỉ khi thực hiện các chương trình con hay các chương trình con phục vụ ngắt

• Khối thanh ghi bộ đếm chương trình Program Counter (PC): có chức năng quản lý bộ nhớ chương trình.Khi thanh ghi PC trỏ đến lệnh nào thì lệnh đó được thực hiện

• Khối bộ nhớ chương trình Program Flash

• Khối thanh ghi đa năng và các thanh ghi X, Y, Z

Trang 23

• Khối ALU có chức năng thực hiện các lệnh xử lý toán học và logic

• Thanh ghi trạng thái Status Register

• Khối điều khiển ngắt Interrupt

• Khối bộ nhớ EEPROM cho phép lưu trữ các dữ liệu mà khi mất thì dữ liệu vẫn còn, số lần cho phép ghi xóa lên đến 100.000 lần

¾ Dưới đây là sơ đồ khối của Atmega16

Hình 2.10 Sơ đồ cấu trúc Atmega16

Trang 24

• Atmega16 có các đặc điểm sau: 16KB bộ nhớ Flash với khả năng đọc trong khi ghi, 512 byte bộ nhớ EEPROM, 1KB bộ nhớ SRAM, 32 thanh ghi chức năng chung, 32 đường vào ra chung, 3 bộ định thời/bộ đếm, ngắt nội

và ngắt ngoại, USART, giao tiếp nối tiếp 2 dây, 8 kênh ADC 10 bit,

• Atmega 16 hỗ trợ đầy đủ các chương trình và công cụ phát triển hệ thống như: trình dịch C, macro assemblers, chương trình mô phỏng/sửa lỗi, kit thử nghiệm,

2.4.5 Cấu trúc nhân AVR:

2.4.5.1 Giới thiệu:

CPU của AVR có chức năng bảo đảm sự hoạt động chính xác của các chương trình.Do đó nó phải có khả năng truy cập bộ nhớ, thực hiện các quá trình tính toán, điều khiển các thiết bị ngoại vi và quản lý ngắt

Trang 25

2.4.5.3 Thanh ghi trạng thái:

Đây là thanh ghi trạng thái có 8 bit lưu trữ trạng thái của ALU sau các phép tính

số học và logic

Hình 2.12 Thanh ghi trạng thái SREG

o C: Carry Flag ;cờ nhớ (Nếu phép toán có nhớ cờ sẽ được thiết lập)

o Z: Zero Flag ;Cờ zero (Nếu kết quả phép toán bằng 0)

o N: Negative Flag (Nếu kết quả của phép toán là âm)

o V: Two’s complement overflow indicator (Cờ này được thiết lập khi tràn số bù 2)

o V, For signed tests (S=N XOR V)S: N

o H: Half Carry Flag (Được sử dụng trong một số toán hạng sẽ được chỉ

2.4.5.4 Các thanh ghi chức năng chung:

Đa số các lệnh trong tập lệnh đều có thể truy xuất trực tiếp các thanh ghi này, và

đa số các lệnh được thực hiện trong 1 chu trình máy

Hình 2.13 Thanh ghi chức năng chung

Trang 26

2.4.5.5 Con trỏ ngăn xếp (SP):

Là một thanh ghi 16 bit nhưng cũng có thể được xem như hai thanh ghi chức năng đặc biệt 8 bit.Có địa chỉ trong các thanh ghi chức năng đặc biệt là $3E (Trong bộ nhớ RAM là $5E) Có nhiệm vụ trỏ tới vùng nhớ trong RAM chứa ngăn xếp

Hình 2.14 Thanh ghi con trỏ ngăn xếp Khi chương trình phục vụ 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ăn 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 sẽ tăng 2.Như vậy con trỏ ngăn xếp cần được chương trình đặt trước giá trị khởi tạo ngăn xếp trước khi một chương trình con được gọi hoặc các ngắt được cho phép phục vụ.Và giá trị ngăn xếp ít nhất cũng phải lớn hơn hoặc bằng 60H (0x60) vì 5FH trỏ lại là vùng các thanh ghi

2.4.6 Quản lý 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 sà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, hoặc khi nó đã truyền được một byte thì cờ TX được thiết lập…

¾ Khi có tín hiệu báo ngắt CPU sẽ tạm dừng công việc đang 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 phục vụ ngắt và thực hiện chương trình phục vụ ngắt đó cho 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

Trang 27

¾ Bộ nhớ ngăn xếp 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 vụ 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ăn 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 sẽ tăng 2 Như vậy con trỏ ngăn xếp cần được chương trình đặt trước giá trị khởi tạo ngăn xếp trước khi một chương trình con được gọi hoặc các ngắt được cho phép phục vụ.Và giá trị ngăn xếp ít nhất cũng phải lớn hơn 60H (0x60) vì 5FH trỏ lại là vùng các thanh ghi

Trang 28

số thì dường như điều khiển vào ra dữ liệu thì hoàn toàn như nhau.Chúng ta có thanh ghi và một địa chỉ cổng đối với mỗi cổng, đó là: thanh ghi dữ liệu cổng (PORTA, PORTB, PORTC, PORTD), thanh ghi dữ liệu điều khiển cổng (DDRA, DDRB,

Trang 29

DDRC, DDRD) và cuối cùng là địa chỉ chân vào của cổng (PINA, PINB, PINC, PIND)

2.4.8.1 Thanh ghi DDRx:

Đây là thanh ghi 8 bit (ta có thể đọc và ghi các bit ở thanh ghi này) và có tác dụng điều khiển hướng cổng PORTx (tức là cổng ra hay cổng vào).Nếu như một bit trong thanh ghi này được set thì bit tương ứng đó trên PORTx được định nghĩa như một cổng ra.Ngược lại nếu như bit đó không được set thì bit tương ứng trên PORTx được định nghĩa là cổng vào

2.4.8.2 Thanh ghi PORTx:

Đây cũng là thanh ghi 8 bit (các bit có thể đọc và ghi được) nó là thanh ghi dữ liệu của cổng Px và trong trường hợp nếu cổng được định nghĩa là cổng ra thì khi ta ghi một bit lên thanh ghi này thì chân tương ứng trên port đó cũng có cùng mức logic Trong trường hợp mà cổng được định nghĩa là cổng vào thì thanh ghi này lại mang dữ liệu điều khiển cổng.Cụ thể nếu bit nào đó của thanh ghi này được set (đưa lên mức 1) thì điện trở kéo lên (pull-up) của chân tương ứng của port đó sẽ được kích hoạt Ngược lại nó sẽ ở trạng thái hi-Z.Thanh ghi này sau khi khởi động Vi điều khiển sẽ có giá trị

là 0x00

2.4.8.3 Thanh ghi PINx:

• Đây là thanh ghi 8 bit chứa dữ liệu vào của PORTx (trong trường hợp PORTx được thiết lập là cổng vào) và nó chỉ có thể đọc mà không thể ghi vào được

• Tóm lại:

1 Để đọc dữ liệu từ ngoài thì ta phải thực hiện các bước sau: Đưa dữ

liệu ra thanh ghi điều khiển DDRxn để đặt cho PORTx (hoặc bit n trong port) đó là đầu vào (xóa thanh ghi DDRx hoặc bit).Sau đó kích hoạt điện trở pull-up bằng cách set thanh ghi PORTx (bit).Cuối cùng đọc dữ liệu từ địa chỉ PINxn (trong đó x: là cổng và n là bit)

2 Để đưa dữ liệu từ vi điều khiển ra các cổng cũng có các bước hoàn

toàn tương tự.Ban đầu ta cũng phải định nghĩa đó là cổng ra bằng cách set bit tương ứng của cổng đó….và sau đó là ghi dữ liệu ra bit tương ứng của thanh ghi PORTx

Trang 30

¾ Sơ đồ cấu trúc của bộ định thời:

Hình 2.17 Sơ đồ cấu trúc bộ định thời

• Thanh ghi OCR0 luôn được so sánh với giá trị của bộ định thời/bộ đếm.Kết quả so sánh có thể được sử dụng để tạo ra PWM hoặc biến đổi tần

số ngõ ra tại chân OC0

Trang 31

2.4.9.2 Đơn vị đếm:

Phần chính của bộ định thời 8 bit là một đơn vị đếm song hướng có thể lập trình được Cấu trúc của nó như hình dưới đây:

Hình 2.18 Đơn vị đếm

o Count: tăng hay giảm TCNT0 1

o Direction: lựa chọn giữa đếm lên và đếm xuống

o Clear: xóa thanh ghi TCNT0

o ClkT0: xung clock của bộ định thời

o TOP: báo hiệu bộ định thời đã tăng đến giá trị lớn nhất

o BOTTOM: báo hiệu bộ định thời đã giảm đến giá trị nhỏ nhất (0)

2.4.9.3 Đơn vị so sánh ngõ ra:

Hình 2.19 Sơ đồ đơn vị so sánh ngõ ra

Bộ so sánh 8 bit liên tục so sánh giá trị TCNT0 với giá trị trong thanh ghi so sánh ngõ ra (OCR0).Khi giá trị TCNT0 bằng với OCR0, bộ so sánh sẽ tạo một báo hiệu Báo hiệu này sẽ đặt giá trị cờ so sánh ngõ ra (OCF0) lên 1 vào chu kỳ xung clock

Trang 32

tiếp theo.Nếu được kích hoạt (OCIE0=1), cờ OCF0 sẽ tạo ra một ngắt so sánh ngõ ra

và sẽ tự động được xóa khi ngắt được thực thi.Cờ OCF0 cũng có thể được xóa bằng phần mềm

2.4.9.4 Mô tả các thanh ghi:

2.4.9.4.1 Thanh ghi điều khiển bộ định thời/bộ đếm TCCR0:

Hình 2.20 Thanh ghi điều khiển bộ định thời

o Bit 7-FOC0: So sánh ngõ ra bắt buộc

o Bit này chỉ tích cực khi bit WGM00 chỉ định chế độ làm việc không có PWM Khi đặt bit này lên 1, một báo hiệu so sánh bắt buộc xuất hiện tại đơn vị tạo dạng sóng

o Bit 6, 3-WGM01:0: Chế độ tạo dạng sóng

o Các bit này điều khiển đếm thứ tự của bộ đếm, nguồn cho giá trị lớn nhất của bộ đếm (TOP) và kiểu tạo dạng sóng sẽ được sử dụng

o Bit 5:4-COM01:0: Chế độ báo hiệu so sánh ngõ ra

o Các bit này điều khiển hoạt động của chân OC0 Nếu một hoặc cả hai bit COM01:0 được đặt lên 1, ngõ ra OC0 sẽ hoạt động

o Bit 2:0: CS02:0: Chọn xung đồng hồ

o Ba bit này dùng để lựa chọn nguồn xung cho bộ định thời/bộ đếm

2.4.9.4.2 Thanh ghi bộ định thời/bộ đếm:

Hình 2.21 Thanh ghi bộ định thời

Trang 33

o Thanh ghi bộ định thời/bộ đếm cho phép truy cập trực tiếp (cả đọc và ghi) vào bộ đếm 8 bit

2.4.9.4.3 Thanh ghi so sánh ngõ ra-OCR0:

Hình 2.22 Thanh ghi so sánh ngõ ra

o Thanh ghi này chứa một giá trị 8 bit và liên tục được so sánh với giá trị của bộ đếm

2.4.9.4.4 Thanh ghi mặt nạ ngắt:

Hình 2.23 Thanh ghi mặt nạ ngắt TIMSK

o Bit 1-OCIE0: Cho phép ngắt báo hiệu so sánh

o Bit 0-TOIE0: Cho phép ngắt tràn bộ đếm

2.4.9.4.5 Thanh ghi cờ ngắt bộ định thời:

Hình 2.24 Thanh ghi cờ ngắt bộ định thời

o Bit 1-OCF0: Cờ so sánh ngõ ra 0

o Bit 0-TOV0: Cờ tràn bộ đếm

o Bit TOV0 được đặt lên 1 khi bộ đếm bị tràn và được xóa bởi phần cứng khi vector ngắt tương ứng được thực hiện Bit này cũng có thể được xóa bằng phần mềm

Trang 34

• Hoạt động đồng bộ hoặc bất đồng bộ

• Bộ tạo tốc độ baud có độ chính xác cao

• Hỗ trợ khung truyền nối tiếp với 5, 6, 7, 8, hoặc 9 bit dữ liệu và 1 hoặc 2 bit stop

• Kiểm tra chẵn lẻ

• Phát hiện tràn dữ liệu

• Phát hiện lỗi khung

• Lọc nhiễu, bao gồm phát hiện bit start lỗi và bộ lọc thông thấp số

• Ngắt khi kết thúc truyền, thanh ghi truyền hết dữ liệu và kết thúc nhận

• Chế độ truyền thông đa vi xử lý

• Chế độ truyền đồng bộ tốc độ cao

¾ Sơ đồ khối của bộ USART như sau:

Hình 2.25 Sơ đồ khối bộ USART

Trang 35

¾ USART bao gồm 3 phần chính: bộ tạo xung clock, bộ truyền và bộ nhận Các thanh ghi điều khiển được sử dụng chung giữa các phần này

2.4.10.1 Tạo xung clock:

Bộ tạo xung clock tạo ra xung đồng hồ căn bản cho bộ truyền và bộ nhận USART hỗ trợ 4 chế độ hoạt động xung clock: bất đồng bộ, bất đồng bộ tốc độ cao, truyền đồng bộ master và truyền đồng bộ slave Sơ đồ khối của bộ tạo xung clock như sau:

Hình 2.26 Đơn vị tạo xung clock

Trang 36

o Có hoặc không có bit chẵn lẻ

o 1 hoặc 2 bit stop

o Một khung truyền bắt đầu với một bit start, theo sau đó là bit có trọng số thấp nhất (LSB) của dữ liệu (có thể lên tới 9 bit), kết thúc bằng bit có trọng số lớn nhất (MSB) và bit stop

Hình 2.27 Định dạng khung truyền

o St: bit start (mức thấp)

o (n): bit dữ liệu (0 đến 8)

o P: bit chẵn lẻ

o Sp: bit stop (mức cao)

o IDLE: không có dữ liệu truyền (mức cao trong suốt thời gian idle)

2.4.10.3 Khởi tạo USART:

Quá trình khởi tạo USART bao gồm việc thiết lập tốc độ baud, thiết lập định dạng khung và kích hoạt bộ truyền và bộ nhận

2.4.10.4 Truyền thông dữ liệu-bộ truyền USART:

Bộ truyền USART được kích hoạt bằng cách thiết lập bit TXEN trong thanh ghi UCSRB.Khi bộ truyền được kích hoạt, chân TxD hoạt động như ngõ ra của bộ truyền nối tiếp.Tốc độ baud, chế độ hoạt động và định dạng khung truyền phải được thiết lập trước khi thực hiện truyền dữ liệu

2.4.10.5 Truyền khung 5 đến 8 bit dữ liệu:

Việc truyền dữ liệu được thiết lập bằng cách nạp dữ liệu truyền vào bộ đệm truyền.Dữ liệu trong bộ đệm sẽ được đưa vào thanh ghi dịch khi thanh ghi dịch đã sẵn sàng gửi một khung mới

2.4.10.6 Truyền khung 9 bit dữ liệu:

Nếu sử dụng 9 bit dữ liệu, bit thứ 9 phải được ghi vào bit TXB8 trong thanh ghi UCSRB trước khi byte còn lại được ghi vào UDR

Trang 37

2.4.10.7 Nhận dữ liệu-bộ nhận USART:

Bộ nhận USART được kích hoạt bằng cách đặt bit RXEN trong thanh ghi UCRSB lên 1.Khi bộ nhận được kích hoạt, chân RxD hoạt động như ngõ vào của bộ nhận nối tiếp.Tốc độ baud, chế độ hoạt động và định dạng khung truyền phải được thiết lập trước khi thực hiện truyền dữ liệu

2.4.10.8 Nhận khung với 5 đến 8 bit dữ liệu:

Bộ nhận bắt đầu nhận dữ liệu khi nó phát hiện một bit start hợp lệ.Mỗi bit theo sau bit start sẽ được lấy mẫu tại tốc độ baud hoặc tốc độ đồng hồ XCK, và được dịch vào trong thanh ghi dịch của bộ nhận cho đến khi phát hiện một bit stop đầu tiên Nội dung của thanh ghi dịch sau đó được đưa vào bộ đệm.Bộ đệm của bộ nhận có thể được đọc bằng cách đọc UDR

2.4.10.9 Nhận khung với 9 bit dữ liệu:

Nếu nhận dữ liệu 9 bit, bit thứ 9 phải được đọc từ bit RXB8 trong thanh ghi UCSRB trước khi đọc các bit thấp trong UDR

2.4.11 Bộ biến đổi A/D:

¾ Vi điều khiển Atmega16 có một bộ biến đổi ADC tích hợp trong chip với các đặc điểm:

• Độ phân giải 10 bit

• Sai số tuyến tính: 0.5LSB

• Độ chính xác +/-2LSB

• Thời gian chuyển đổi: 65 – 260μs

• 8 Kênh đầu vào có thể được lựa chọn

• Có hai chế độ chuyển đổi free running và single conversion

• Có nguồn báo ngắt khi hoàn thành chuyển đổi

• Loại bỏ nhiễu trong chế độ ngủ

• Tám đầu vào của ADC là tám chân của PORTA và chúng được chọn thông qua một MUX

• Để điều khiển hoạt động vào ra dữ liệu của ADC và CPU chúng ta có 3 thanh ghi: ADMUX là thanh ghi điều khiển lựa chọn kênh đầu vào cho ADC, ADCSRA là thanh ghi điều khiển và thanh ghi trạng thái của ADC, ADCH và ADCL là 2 thanh ghi dữ liệu

Trang 38

¾ Dưới dây là sơ đồ khối bộ chuyển đổi ADC của AVR:

Hình 2.28 Sơ đồ bộ biến đổi A/D

2.4.11.1 ADMUX: Multiplexer select register:

• Đây là thanh ghi điều khiển 8 bit

Hình 2.29 Thanh ghi ADMUX

Ngày đăng: 27/02/2019, 12:08

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w