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

báo cáo khoa học 'lập trình nhúng với vi xử lý avr'

5 680 1
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 336,36 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ngô thanh bình Bộ môn Kỹ thuật điện tử Khoa Điện - Điện tử Trường Đại học Giao thông Vận tải Tóm tắt: Bμi báo nμy trình bμy về một thiết kế cho lập trình nhúng với vi xử lý AVR thông

Trang 1

LậP TRìNH NHúNG VớI VI Xử Lý AVR

ThS ngô thanh bình

Bộ môn Kỹ thuật điện tử Khoa Điện - Điện tử Trường Đại học Giao thông Vận tải

Tóm tắt: Bμi báo nμy trình bμy về một thiết kế cho lập trình nhúng với vi xử lý AVR thông

qua một KIT phát triển có các bộ phận có thể điều khiển độc lập, giúp sinh viên bước đầu lμm

quen với lập trình phần cứng ứng dụng vμo thực tế

Summary: This report introduces a design for programming embedded with AVR

microcontroller by an evolution KIT whose parts can be controlled separately so as to assist

students in familiarizing with hardware programs and applications.

I Đặt vấn đề

Với các chuyên ngành về điện, điện tử, cơ khí tự động hoá, các kỹ sư để làm việc tốt đòi hỏi

rất cao các kiến thức về vi xử lý Lập trình nhúng là môn học liên quan nhiều tới thực tế, lập trình

vi xử lý với phần cứng và thiết bị ngoại vi cụ thể Môn học yêu cầu nhiều tới các kiến thức về kỹ

thuật điện tử, vi xử lý và kỹ thuật lập trình, ngoài ra sinh viên còn cần có kiến thức về kỹ thuật

điện, cảm biến đo lường… Với một lượng kiến thức lớn, lại đòi hỏi có ghép nối phần cứng cụ thể

nên thật khó tưởng tượng môn học này khi học mà không có thiết bị thực tế Với các thiết kế

ghép nối ngoại vi khác nhau nếu sinh viên phải tự mua sắm linh kiện và bản mạch thô để hàn

nối sẽ không thể đủ thời gian để làm được một vài ứng dụng, thêm vào đó là khoản kinh phí tốn

kém mà sinh viên phải bỏ ra là không nhỏ Để giải quyết vấn đề này, tác giả đã thiết kế, chế tạo

sẵn một KIT phát triển với các cụm thiết bị độc lập, đi kèm với nó là trên 10 bài toán lập trình cụ

thể, có thể lập trình độc lập hoặc kết hợp với nhau thành một bài toán lớn Điều này sẽ gây hứng

thú cho các môn học về vi xử lý, kỹ thuật lập trình và giúp đỡ được sinh viên không phải tốn kinh

phí lắp ráp phần cứng

CT 2

II YÊU CầU THIếT Kế

1 Chọn vi xử lý

Vi xử lý là một môn học truyền thống cho sinh viên các ngành kỹ thuật về điện, điện tử nói

chung Đã có rất nhiều tài liệu nói về lĩnh vực này, tuy nhiên hầu hết chỉ chú trọng đến lý thuyết

chung mà chưa đưa ra được các bài toán ứng dụng cụ thể kèm theo sơ đồ phần cứng và chương

trình điều khiển Trong chương trình học sinh viên đã được học lý thuyết và thí nghiệm với vi xử

lý họ MCS51 Thực tế họ MCS51 trước đây là một họ vi xử lý khá mạnh, đã có trên 250 thành

viên và được các công ty bán dẫn hàng đầu thế giới chế tạo như Intel, AMD, Atmel, Siemens,

Philips, Dallas, OKI, Các dẫn xuất này đều có chung một kiến trúc trên cơ sở vi điều khiển

Trang 2

Intel 8051 kinh điển Thêm vào đó, tùy theo từng loại mà các chip dẫn xuất được tích hợp thêm các ngoại vi khác nhau (như ADC, SPI, EEPROM, capture/compare channels…), tính năng cũng được nâng cao để phù hợp với các ứng dụng ngày càng phức tạp Ngoài ra đối với các loại chip có cấu trúc CPU ngoại vi cố định (fixel digital and analog penpherals) còn phải kể đến các công ty khác có các sản phẩm là những họ vi điều khiển riêng cũng khá mạnh và được tiêu thụ nhiều trên thị trường, mỗi loại lại có cấu trúc phần cứng được tổ chức khác nhau, bộ lệnh riêng

và các cấu trúc lập trình khác nhau Có thể kể ra như:

68HCxx và các dẫn xuất của Motorola ST62xx của SGS-THOMSON

H8 của Hitachi PIC 16#xx của Microchip

… Phát triển của họ MCS51 Atmel cho ra đời thế hệ AVR, có tích hợp thêm các chức năng ADC, PWM, … với phần mềm trên cả Assembly và C khá linh động, hỗ trợ ghép nối LCD, RTC Các dạng chip thế hệ sau như chíp CSoC có khả năng mềm dẻo thích ứng với đa dạng ứng dụng và nhất là khả năng tái cấu hình (reconfigurable), tạo thành nhiều loại chip khác nhau trên một chip ở những thời điểm khác nhau trong một ứng dụng CYPRESS phát triển họ PSoC (Programmable System on Chip) có đặc điểm linh động phần cứng từ phần mềm, tự tạo cấu hình phần cứng từ tài nguyên có sẵn phục vụ các bài toán cụ thể đòi hỏi yêu cầu phần cứng khác nhau Thực chất các chip chế tạo theo công nghệ PSoC cho phép thay đổi cấu hình phần cứng bằng cách gán chức năng cho các khối tài nguyên có sẵn trên chip, ghép nối mềm dẻo giữa các khối với nhau và với các cổng In/Out Ngoài ra thành phần của chip PSoC bao gồm cả các khối ngoại vi số và tương tự có thể tự cấu hình được, lập trình cho chip thông qua phương pháp kéo/thả các khối tài nguyên này vào vùng làm việc Việc thiết lập ngắt trên chân nào, loại ngắt gì, các chân In/Out được thiết lập hoạt động thế nào đều tuỳ thuộc vào thiết lập của người lập trình Với khả năng đặt cấu hình mạnh mẽ này một thiết bị Đo lường - Điều khiển có thể

được gói gọn trên một chip duy nhất Chính vì vậy người ta không gọi chip này là vi điều khiển ( μC) mà gọi là thiết bị PSoC (PsoC Device - Thiết bị lập trình trên chip), với hy vọng rằng người

sử dụng sẽ có được những thiết bị nhỏ gọn, giá rẻ, tin cậy bởi chỉ dùng riêng chip PSoC mà không cần các kết nối ngoại vi khác và sản phầm này sẽ thay thế dần các thiết bị sử dụng vi xử

lý kinh điển trước đây Một số dạng thiết kế chip nhằm mục đích chủ yếu cho các bài toán xử lý dữ liệu như CPLD (Complex Programmable Logic Device), FPGA (Field Programmable Logic Array) có hỗ trợ kết nối máy tính với các phần mềm tiêu chuẩn, tái cấu hình lại nhiều lần… Lập trình mảng tương tự đã xuất hiện trong nhiều năm, nhưng chỉ mới gần đây mới được phát triển mạnh, và nền công nghiệp điện tử đã chấp nhận phát triển đầy đủ các công cụ phát triển và các phiên bản phần mềm phát triển mới Lập trình mảng tương tự FPAAs (Field Programmable Analog Arrays) cung cấp cho nhà thiết kế tính mềm dẻo như trong phần thiết kế mạch tương tự của họ Những dạng linh kiện này giải quyết tốt hầu hết các vấn đề ứng dụng trong những thành phần của hệ thống (Vi xử lý lõi, khối logic, khối tương tự) Ví dụ, một mạch chứa đựng thành phần chính là logic sẽ có lợi nhất khi sử dụng linh kiện lập trình logic, nhưng một thiết kế với nhiều thành phần tương tự sẽ không thích hợp với những linh kiện đó Như vậy sử dụng các chip thế hệ sau để nghiên cứu về vi xử lý và lập trình nhúng là không phù hợp, chúng dành cho người

CT 2

Trang 3

chuyên nghiệp với các ứng dụng cao cấp, còn với sinh viên khi đang học cần có một họ chip với

tính năng vừa phải, giá rẻ, phần mềm sẵn có, thuận tiện khi mua chip và phần mềm dễ sử dụng

Tóm lại, sự phát triển của công nghệ vi điện tử thúc đẩy sự phát triển nhanh của các thế hệ

vi xử lý, chúng sẽ luôn phát triển nên không thể nói một loại chip nào là hay nhất mà phải tuỳ

thuộc vào yêu cầu bài toán của từng lĩnh vực cụ thể để chọn chip Chúng ta cần chọn một loại vi

xử lý phù hợp với chương trình học, khả năng của sinh viên về kiến thức và tài chính Với các

yêu cầu này chip vi xử lý họ AVR là phù hợp nhất

2 Kết cấu KIT phát triển

Trên KIT phục vụ lập trình nhúng sử dụng vi xử lý AVR ATMega88, bao gồm các cụm thiết

bị độc lập sau:

Nguồn +5VDC, +12VDC

Mạch nạp onboard

Cụm vi xử lý ATMega88

Phím bấm

LED đơn, LED 7 thanh,

LCD ITM1602A

Thu phát hồng ngoại

Động cơ một chiều +12VDC,

CT 2

Động cơ bước +12VDC

Loa, quạt

MAX232 kết nối PC

4 kênh tương tự, đo nhiệt độ sử dụng LM335

Ghép nối bộ nhớ ngoài Extenal serial memory 24C16B

Ghép nối Real Time Clock RTC DS1307

ISP terminals, Jack kết nối đa vi xử lý

Sinh viên sẽ được nghiên cứu về cấu trúc vi xử lý, các phương pháp lập trình cho vi xử lý,

lập trình nhúng, hướng dẫn điều khiển các cụm thiết bị độc lập Sau đó phối hợp các cụm thiết

bị này ta tạo ra được nhiều bài toán ứng dụng trong thực tế như:

- Kết hợp LED đơn và LED 7 thanh tạo ra chương trình điều khiển mô hình đèn giao thông,

mìn hẹn giờ…

- Kết hợp PWM và LED đơn tạo ra chương chình điều khiển đèn quảng cáo có thể nháy và

thay đổi cường độ sáng theo chu trình khác nhau

- Điều khiển động cơ một chiều và động cơ bước thông qua phím bấm Kết hợp PWM tăng

giảm tốc độ động cơ một chiều

Trang 4

- Kết hợp Sensor đo nhiệt độ hiển thị trên LCD, sử dụng phím bấm đặt ngưỡng cảnh báo và tác động quạt

- Kết hợp thu phát hồng ngoại điều khiển từ xa LED, động cơ một chiều, động cơ bước, thay đổi ngưỡng đặt nhiệt độ từ xa

- Ghép nối máy tính tạo chương trình quản lý giám sát hệ thống

- Quản lý thời gian thực của các thiết bị hoạt động thông qua RTC DS1307

Đi kèm với KIT phát triển này là trên 10 bài toán nhỏ điều khiển các cụm thiết bị độc lập và một số bài toán ứng dụng Phiên bản KIT đầu tiên được thiết kế nhỏ gọn với các bài toán cơ bản nằm trong phạm vi các bài toán trên, kết hợp một bảng cắm đa năng nhằm tạo điều khiện cho sinh viên tự làm lấy một KIT với giá thành rẻ Trên cơ sở KIT phát triển này người học sẽ được tiếp cận với các bài toán thực tế thông qua các ví dụ nhỏ, từ đó tự phát huy khả năng sáng tạo của mình phát triển các bài toán cao cấp hơn

Title Size Document Number Rev Date: Sheet of

1 <Rev Code> Lap trinh nhung v oi AVR - Designed by BinhNT.

A2

1 1 Sunday , October 28, 2007

J10

CON2

1

ATmega48/88/168

U6

PCINT14/#RESET/PC6

1

PCINT16/RXD/PD0

2

PCINT17/TXD/PD1

3

PCINT18/INT0/PD2

4

PCINT19/INT1/PD3

5

PCINT20/XCK/T0/PD4

6

VCC

7

GND

8

PCINT6/XTAL1/TOSC1/PB6

9

PCINT7/XTAL2/TOSC2/PB7

10

PCINT21/OC0B/T1/PD5

11

PCINT22/OC0A/AIN0/PD6

12

PCINT23/AIN1/PD7

13

PCINT0/CLKO/ICP1/PB0

14

PB1/OC1A/PCINT115 PB2/#SS/OC1B/PCINT216 PB3/MOSI/OC2A/PCINT317 PB4/MISO/PCINT418 PB5/SCK/PCINT519 AVCC20 AREF21 GND22 PC0/ADC0/PCINT823 PC1/ADC1/PCINT924 PC2/ADC2/PCINT1025 PC3/ADC3/PCINT1126 PC4/ADC4/SDA/PCINT12 27

PC5/ADC5/SCL/PCINT1328

Character LCD

U1

R8 5K1

Y1

32.768kHz

Q7 TIP41C

Q3 C2383

J21

1 4

R15 5K1

24C16B

U4

A0

1

A1

2

A2

3

GND

4 SCLKSDAVCC WP 5 6 7 8

R5 1K

R11 4K7

+5V

+5V

DC1

C1 100n

R6 1K

J14

1 4

KEY1

+5V

R17 1K

Q13 TIP41C R18 1K

R1 10K

R54 10K

R45 1K

Temperature Sensor Chanel 2

Temperature Sensor Chanel 4

+5V

TEMP4

D23 LM335/TO92

R2 10K R3 10K

SCL

J9

1 4

SDA

R9 5K1

PB5

R46 100

PB4

+5V

PB3

R16 5K1

GND

DS1307

U2

X1

1

X2

2

Vbat

3

GND

4

SDA5 SCL6 SQW/OUT7 VCC8

R48 100

+5V

R50 100

7-SEG LED

DC2

D3 1N4007

R51 100

U9 LED7SEGx3

R13 10K

Q20 Q17

R14 10K

Q16

KEY2

D2 D3 D4 D5 D6 D7 A

GN VEE RS RW E D0 D1

U11

IN0 1

IN1 2

IN2 3

IN3 4

IN4 5

IN5 6

IN6 7

IN7 8

GND

9

COM

10

OUT7

11 OUT6

12 OUT5

13 OUT4

14 OUT3

15 OUT2

16 OUT1

17 OUT0

18

R26

DC Motor

R28

R31

+5V

SCK

D1 1N4007

MISO

CONNECTOR 17x1

+5V

DIGIT 3 DIGIT 2 DIGIT 1

MOSI

SEG F DOT

SEG D

D14 1N4007

SEG A

J2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

RST

R7 2K2

SQW_OUT

C19 10n

J1

CON3

1

C20 100n

J3

CON2

1

Q15 TIP41C

D13 1N4007

DC3

External crystal

KEY3

D20 LED

Y2 4-20MHz C9 22p

BACKLIGHT

ISP terminals

C2 100n

+5V

R35 30K

J11

1

C12 22p

RXD

STREP Motor

XTAL1

R25 22E2W

TXD

XTAL2

R59 1K

C10 100n

+5V

PC6

DC4

KEY4

R21 10K

VEE

STEP2 DC1

PD0

PD3

Q19 TIP41C

PD4

P2

MALE DB25

13

24

10

9

21

8

20

7

19

6

18

5

17

4

16

3

15

2

14

1

+ C3

STEP1

KEY5

J5

1 4

D7 LED

D19

LED

+5V

+5V

LOA

Q22 C2383

In System Programmer interface

R43 100

PB6

PB0

R55

4K7

+5V

PD5

LS1

8 Ohm

GND

U8

1

OUT3

KEY3

J18

1

D6 LED

KEY4

J20

1

KEY5

D5 LED

J17 1

J19 1

D4 LED

D10 D8 LED

R42 4K7

D9 LED D11

R4 470

2 3 4 5 6 7 8 9

QUAT1

12V 1.1W

Drills

+5V

STEP2

J22

1 2 3

R72

STEP1

+5V

Q23 D30 R73

R74

+5V +5V

J23

1

J24

1

R57 30K

+5V

J4

1 2 3 4 5 6 7 8

U3

PIN+3V

2

1

CONNECTOR 8x2

+12V

R33 4K7

QUAT STEP3

R34

4K7

R32 100

Realtime clock

+5V

+ C4

TEMP1

PC0 PC3

J16

1 4

TEMP2

PB1 PB4 AVCC

TEMP4

L3 10uH

M

GND

AGND +5V L2 10uH AVCC

U5

1 OUT3

D2 1N4007

+5V

C8

D12 1N4007

C11 100n

+5V

SW5

STEP4

R68 220 C24 100n

D15 1N4007

+5V

D26 R63 10K

D18 1N4007

STEP3

Q12 R10 5K1

Q14 R19 5K1

STEP4

DC3

R22 5K1

SW2

J12

CON8

1 4 7

R27 5K1

R67 220

D21 LM335/TO92

C21

+5V

D25 4148

R47 1K

R62 10K

J6

1 4 7 10 13

SW3

R20 0-470

+ C6

R69 220 C22

+5V

D27 4148

Q6

R64 10K

SW4 R70 220 C25 100n

+5V

D28 4148

R12 0-470

R65 10K

1-MO 1-MO

R23 0-470

+5V

DC4

R29 0-470 C5

12VAC input

R52 10K

TEMP3

MAX232

U10

C1+

1

C1-3

C2+

4

C2-5

VCC 16

GND 15

V+

2

V-6

R1OUT 12

R2OUT 9

T1IN 11

T2IN 10

R1IN

13

R2IN

8

T1OUT

14

T2OUT

7

Q21 TIP41C

+5V

J7

1 4 7 10 13

SW1

R61 10K

Q18

+12V +12V

D24

4148

C18 1u C17 1u C16 1u

- +

D17

1

4

R53 10K

R44 1K

U7

1

MG1

1 2

+5V

74245

U12

DIR

1

A0

2

A1

3

A2

4

A3

5

A4

6

A5

7

A6

8

A7

9

GND

10

B7

13 16

#OE19 VCC20

Temperature Sensor Chanel 3

TEMP2

D22 LM335/TO92

R71 10K

R60 1K

+5V

C13 1u

Temperature Sensor Chanel 1

TEMP1

D29 LM335/TO92

C15 1u

Q4 C828

L1 100uH

R66 220

Q2

External serial memory

R40 1K

+12V

R41 1K

+5V

J8

CON3

1

Q5 C828

+5V

R49 1K

AC2/DC2

R56 100

RS232 interface

C23

+5V

AC1/DC1

R58 1K

R24

P1

FEMALE DB9

5 8 2

Q8 A1015

+5V

R39 4K7 R38 4K7

+5V

R37 4K7 R36 4K7

+ C7

Q1

Q10 A1015

J13

CON1

1

J15

CON1

1

DC2

J25

1 4

D16

LED

R30

Q9 C2383

C14 1u

AREF

J26

1 4

Q11 C2383

CT 2

Trang 5

SảN PHẩM KIT PHIÊN BảN RúT GọN

III KếT LUậN

CT 2

AVR là vi xử lý phù hợp với chương trình học, khả năng của sinh viên về kiến thức và tài

chính Sau khi đã được học vi xử lý cơ bản với họ MCS51 bằng Assembly, sinh viên cần được

tiếp xúc và làm việc với vi xử lý mới bằng ngôn ngữ lập trình cấp cao như C Với một KIT phát

triển nhỏ này, người học sẽ giảm bớt thời gian và kinh phí cho việc lắp ráp phần cứng cho mỗi ví

dụ thực hành trong bài toán lập trình Thêm vào đó người học sẽ được phát huy khả năng sáng

tạo của mình thông qua các phương pháp kết hợp khác nhau các cụm thiết bị trên KIT vào các

bài toán cụ thể Để giảm kinh phí nhưng vẫn mở rộng khả năng của KIT, tác giả đưa ra một kết

cấu rút gọn kèm với một bảng cắm đa năng để người học tự phát triển bài toán của mình, phục

vụ nghiên cứu khoa học, sản phẩm cho bảo vệ tốt nghiệp… Hy vọng phương pháp học tập này

sẽ được áp dụng trong nhiều môn học khác

Tài liệu tham khảo

[1] ThS Ngô Thanh Bình (2003) Lập trình hợp ngữ Trường ĐHGTVT

[2] Michael Pont (2003) Programming Embedded Systems I, II University Leicester

[3] Datasheet 2545F-AVR-06/05 Atmega 48/88/168 Atmel Corp

Ngày đăng: 29/06/2014, 19:42

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w