22
Môn:Thiết kế hệ thống với vi điều khiển GVHD: Bùi Văn Hậu

Bài Thảo Luận.ppt

Embed Size (px)

Citation preview

Môn:Thiết kế hệ thống với vi điều khiển

GVHD: Bùi Văn Hậu

Thiết kế và lập trình cho mạch điều khiển robot đi theo 1 đường định sẵn(tùy chọn) trên bàn cờ.

stt Họ và tên Đánh giá1 Đặng Văn Khuê Khá2 Nguyễn Hữu Khương Khá3 Đào Duy Kiên Tốt4 Nguyễn Doãn Lâm Khá5 Tống Văn Liêm Tốt6 Lê Tuấn Linh Khá7 Đỗ Thành Long Khá8 Lê Vĩnh Long Khá9 Nguyễn Hoàng Long Khá10 Nguyễn Phan Long Tốt11 Trịnh Quang Long(25/05) Tốt

Phần 1. Khái niêm về vi điều khiển Phần 2. Cấu tạo và nguyên lý hoạt động của mạch Phần 3. Lập trình cho vi điều khiển Phần 4. Mục đích sử dụng và mở rộng mạch

1,Khái niệm:Bộ Vi xửlý có khảnăng vượt bậc so với các hệthống khác vềkhảnăng tính toán, xửlý, và thay đổi chương trình linh hoạt theo mục đích người dùng, đặc biệt hiệu quả đối với các bài toán và hệ thống lớn.Tuy nhiên đối với các ứng dụng nhỏ, tầm tính toán không đòi hỏi khả năng tính toán lớn thì việc ứng dụng vi xửlý cần cân nhắc. Bởi vì hệ thống dù lớn hay nhỏ, nếu dùng vi xử lý thì cũng đòi hỏi các khối mạch điện giao tiếp phức tạp như nhau. Các khối này bao gồm bộ nhớ để chứa dữ liệu và chương trình thực hiện, các mạch điện giao tiếp ngoại vi để xuất nhập và điều khiển trở lại, các khối này cùng liên kết với vi xửlý thì mới thực hiện được công việc. Để kết nối các khối này đòi hỏi người thiết kế phải hiểu biết tinh tường vềcác thành phần vi xửlý, bộ nhớ, các thiết bị ngoại vi. Hệ thống được tạo ra khá phức tạp, chiếm nhiều không gian, mạch in phức tạp và vấn đề chính là trình độ người thiết kế. Kết quả là giá thành sản phẩm cuối cùng rất cao, không phù hợp để áp dụng cho các hệ thống nhỏ.

Vì một số nhược điểm trên nên các nhà chế tạo tích hợp một ít bộ nhớvà một số mạch giao tiếp ngoại vi cùng với vi xử lý vào một IC duy nhất được gọi là Microcontroller-Vi điều khiển.

Một số đặc điểm khác nhau giữa vi xử lí và VĐK: Vềphần cứng: VXL cần được ghép thêm các thiết bị ngoại vi bên

ngoài như bộ nhớ, và các thiết bị ngoại vi khác, … để có thể tạo thành một bản mạch hoàn chỉnh. Đối với VĐK thì bản thân nó đã là một hệ máy tính hoàn chỉnh với CPU, bộnhớ, các mạch giao tiếp, các bộ định thời và mạch điều khiển ngắt được tích hợp bên trong mạch.

Vềcác đặc trưng của tập lệnh: Do ứng dụng khác nhau nên các bộVXL và VĐK cũng có những yêu cầu khác nhau đối với tập lệnh của chúng. Tập lệnh của các VXL thường mạnh về các kiểu định địa chỉ với các lệnh cung cấp các hoạt động trên các lượng dữ liệu lớn như 1byte, ½ byte, word, double word,...Ở các bộ VĐK, các tập lệnh rất mạnh trong việc xử lý các kiêu dữ liệu nhỏ như bit hoặc một vài bit. Do VĐK cấu tạo về phần cứng và khả năng xử lí tốt hơn nhiều soi với VXL nên giá thành của VXL cũng rẻ hơn nhiều. Tuy nhiên nó vẫn đủ khả năng đáp ứng được tất cảcác yêu cầu của người dùng.

Vi điều khiển được ứng dụng trong các dây chuyền tự động loại nhỏ, các robot có chức năng đơn giản, trong máy giặt, ôtô v.v...

2,PHÂN LOẠI i. Độdài thanh ghi: VĐK 8bit, 16bit, hay 32bit.... ii. Kiến trúc CISC và RISC : VXL hoặc VDK CISC là VDK có tập lệnh phức tạp. Các VDK này có

một số lượng lớn các lệnh nên giúp cho người lập trình có thể linh hoạt và dễdàng hơn khi viết chương trình. VDK RISC là VDK có tập lệnh đơn giản. Chúng có một số lương nhỏ các lệnh đơn giản. Do đó, chúng đòi hỏi phần cứng ít hơn, giá thành thấp hơn, và nhanh hơn so với CISC. Tuy nhiên nó đòi hỏi người lập trình phải viết các chương trình phức tạp hơn, nhiều lệnh hơn.

iii. Kiến trúc Harvard và kiến trúc Vonneumann Kiến trúc Harvard sửdụng bộ nhớ riêng biệt cho chương trình và

dữliệu. Bus địa chỉ và bus dữ liệu độc lập với nhau nên quá trình truyền nhận dữ liệu đơn giản hơn Kiến trúc Vonneumann sử dụng chung bộ nhớcho chương trình và dữliệu. Điều này làm cho VĐK gọn nhẹ hơn, giá thành nhẹ hơn.

3, CẤU TRÚC TỔNG QUAN CỦA VDK: i. CPU: Là trái tim của hệ thống. Là nơi quản lí tất cảcác hoạt

động của VĐK. Bên trong CPU gồm: + ALU là bộ phận thao tác trên các dữ liệu + Bộ giải mã lệnh và điều khiển, xác định các thao tác

mà CPU cần thực hiện + Thanh ghi lệnh IR, lưu giữ opcode của lệnh được thực

thi +Thanh ghi PC, lưu giũ địa chỉ của lệnh kế tiếp cần thực

thi + Một tập các thanh ghi dùng để lưu thông tin tạm thời ii. ROM: ROM là bộ nhớ dùng để lưu giữ chương trình. ROM còn

dùng để chứa số liệu các bảng, các tham số hệ thống, các số liệu cố định của hệ thống. Trong quá trình hoạt động nội dung ROM là cố định, không thể thay đổi, nội dung ROM

chỉ thay đổi khi ROM ở chế độ xóa hoặc nạp chương trình.

iii. RAM: RAM là bộ nhớ dữ liệu. Bộ nhớ RAM dùng làm môi trường

xử lý thông tin, lưu trữ các kết quả trung gian và kết quả cuối cùng của các phép toán, xử lí thông tin. Nó cũng dùng để tổ chức các vùng đệm dữ liệu, trong các thao tác thu phát, chuyển đổi dữ liệu.

iv. BUS: BUS là các đường dẫn dùng để di chuyển dữliệu. Bao

gồm: bus địa chỉ, bus dữliệu , và bus điều khiển v. Bộ định thời: Được sử dụng cho các mục đích chung

về thời gian. vi. Watchdog: Bộ phận dùng để reset lại hệthống khi hệ thống gặp “bất

thường”. vii. ADC: Bộ phận chuyển tín hiệu analog sang tín hiệu digital. Các

tín hiệu bên ngoài đi vào VDK thường ở dạng analog. ADC sẽchuyển tín hiệu này về dạng tín hiệu digital mà VDK có thể hiểu được.

- VDK MCS-51: 8031, 8032, 8051, 8052, ... - VDK ATMEL: 89Cxx, AT89Cxx51.. - VDK AVR Atmega… - VDK PIC 16C5x, 17C43... ………..

1.Linh kiện cấu tạo mạch: +Atmega16 dùng đọc xuất dữ liệu. +LM741: dùng làm bộ so sánh điện áp. +Relay: để đóng ngắt,tạo chiều quay +Led để cấp ánh sáng cho quang trở +các linh kiện: trở,tụ,biến trở,rơle,quang

trở,tranzitor

1.1,sơ lược về Atmega16:

Tổng quan về VĐK Atmega16: Tốc độ làm việc 16MPIS, với thạch anh 16 MHz. On_chip 2 cycle multipler. Bộ nhớ : ISP Flash với khả năng 10.000 lần ghi xóa, EEROM, RAM. Giao tiếp JTAG : Khả năng quét toàn diện theo chuẩn JTAG. Hỗ trợ khả năng Debug onchip Hỗ trợ lập trình Flash, EEROM, fuse… Lock bit qua giao tiếp JTAG Ngoại vi : Timer/ counter 8 bit với các chế độ : so sánh và chia tần

số. Timer/counter 16 bit với các chế độ : so sánh, chia tần

số, capture, PWM. Timer thời gian thực (Real time Clock) với bộ dao động

riêng biệt.

Các kênh PWM. Kênh biến đổi ADC 10 bit. Hỗ trợ giao tiếp I2C. Bộ giao tiếp nối tiếp lập trình được USART. Giao tiếp SPI. Watch_dog timer với bộ dao động on_chip riêng biệt. Những thuộc tính đặc biệt : Power on reset và Brown-out detection. Chế độ hiệu chỉnh bộ sai số cho bộ dao động RC on chip Các chế độ ngắt ngoài và trong đa dạng. 6 mode sleep : Idle, ADC noise reduction, tiết kiệm năng

lượng, power-down, standby, extended standby

Sơ đồ chân:

Sơ đồ khối của hệ thống:

Khối nguồn Cảm biến Kiểm tra,so sánh áp

VXLRelayĐộng cơ

2,mạch nguyên lý:

VCC

GND

R1

MT5MT1 MT3 MT6MT4MT2

MT1MT2MT3MT4MT5MT6RS

P1

P2

P1P2

RS

R1

VCC

PB0/T0/XCK1

PB1/T12

PB2/AIN0/INT23

PB3/AIN1/OC04

PB4/SS5

PB5/MOSI6

PB6/MISO7

PB7/SCK8

RESET9

XTAL212 XTAL113

PD0/RXD 14

PD1/TXD 15

PD2/INT0 16

PD3/INT1 17

PD4/OC1B 18

PD5/OC1A 19

PD6/ICP1 20

PD7/OC2 21

PC0/SCL 22

PC1/SDA 23

PC2/TCK 24

PC3/TMS 25

PC4/TDO 26

PC5/TDI 27

PC6/TOSC1 28

PC7/TOSC2 29

PA7/ADC733PA6/ADC634 PA5/ADC535PA4/ADC436 PA3/ADC337 PA2/ADC238PA1/ADC139PA0/ADC040

AREF 32

AVCC 30

U20

ATMEGA16

12

LDR1TORCH_LDR

12

LDR2TORCH_LDR

R310k

R410k

R510k

R610k

R710k

R810k

SW1

SW-SPST

12

LDR3TORCH_LDR

12

LDR4TORCH_LDR

R910k

R1110k

R1010k

R1210k

R1410k

R1310k

3

26

74 1 5

U1

741

3

26

74 1 5

U6

741

3

26

74 1 5

U3

741

3

26

74 1 5

U4

741

12

LDR5TORCH_LDR

12

LDR6TORCH_LDR

3

26

74 1 5

U7

741

3

26

74 1 5

U8

741R1510k

R1910k

R2010k

R2110k

R2210k

R2310k

SW1(COM)

RL112V

RL212V

+12v

+12v

Q1NPN

+12v

Q2NPN

R100

4k7R200

4k7

RL4

12V

RL3

12V

+12v

+12v

Q3

NPN

+12v

Q4

NPN

R500

4k7

R300

4k7

R1810k

3,nguyên lý hoạt động: Ta quy ước như sau:-2Led ngoài cùng là L1 và L6 dùng để đếm đã đi qua bao nhiêu vạch,từ đó sẽ điều khiển robot rẽ theo hướng đã định sẵn.-2Led trung tâm là L3 và L4 dùng để báo cho robot biết là đang ở vạch nào.-2Led ở giữa là L2 và L5(kết hợp vs L3,L4) dùng để căn chỉnh đường đi sao cho robot không bị đi ra ngoài vạch.Khi robot đang ở vạch đen thì ánh sáng phản chiếu từ L3,L4~=0 =>quang trở có điện trở lớn =>điện áp ở chân 6 của 741 sẽ bằng điện áp ở chân 2,nhưng chân 2 nối GND =>tín hiệu vào VĐK=0

Trường hợp ngược lại: Khi robot đang ở vạch trắng thì ánh sáng phản chiếu từ L3,L4~=1 =>quang trở có điện trở nhỏ =>điện áp ở chân 6 của 741 sẽ bằng điện áp ở chân 3, chân 2 nối Vcc =>tín hiệu vào VĐK=1

Ta đọc tín hiệu từ đầu vào ở PORTA(các giá trị 0,1) rồi từ đó điều khiển robot qua PORTC.

PINC.0 và PINC.1 điều khiển cho motor1, PINC.2 và PINC.3 điều khiển cho motor2

khi PINC.0=1 còn PINC.1=0 thì Q1 dẫn,Q2 ngắt =>Relay1 đóng,Relay2 vẫn mở =>motor1 quay thuận(theo chiều kim đồng hồ)

Ngược lại khi PINC.0=1 còn PINC.1=0 thì Q1 dẫn,Q2 ngắt =>Relay1 đóng,Relay2 vẫn mở =>motor1 quay ngược(ngược chiều kim đồng hồ)

Tương tự với motor2

Phần 3: lập trình cho mạch.

Phần 4: ƯD dụng mạch ra ngoài thực tế.+ứng dụng: -điều khiển robo đi theo đường định sẵn(tùy chọn), có thể làm mạch thật.

Vì hiểu biết còn có hạn nên khi làm bài không thể tránh khỏi sai sót,rất mong nhận được ý kiến đóng góp của thầy và các bạn…

Cám ơn các bạn đã lắng nghe!