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

báo cáo khoa học 'lập trình nhúng với vi 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 (336.36 KB, 5 trang )


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: Bi báo ny trình by 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 lm
quen với lập trình phần cứng ứng dụng vo 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à cha đ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


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, nhng 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, nhng 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


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.


- 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.
Tit le
Size Document Number Rev
Date: Sheet
of
1 <RevCode>
Lap trinh nhung v oi AVR - Designed by BinhNT.
A2
11Sunday , October 28, 2007
J10
CON2
1
2

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/PD 4
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/OC 1A/PCINT1
15
PB2/#SS/OC 1B/PCINT2
16
PB3/MOSI/OC 2A/PCINT3
17
PB4/MISO/PCINT4
18
PB5/SCK/PCINT5
19
AVCC
20
AREF
21
GND
22
PC0/ADC0/PCINT8
23
PC1/ADC1/PCINT9
24
PC2/ADC 2/PCINT10
25
PC3/ADC 3/PCINT11
26
PC4/ADC4/SDA/PCINT12
27
PC5/ADC5/SCL/PCINT13
28
Character LCD
U1

VSS
1
VCC
2
VEE
3
RS
4
RW
5
E
6
D0
7
D1
8
D2
9
D3
10
D4
11
D5
12
D6
13
D7
14
A
15

K
16
R8 5K1
Y1
32.768kHz
Q7
TI P41C
Q3
C2383
J21
1
2
3
4
5
6
R15 5K1
24C16B
U4
A0
1
A1
2
A2
3
GND
4
SDA
5
SCLK

6
WP
7
VCC
8
R5 1K
R114K7
+5V
+5V
DC1
C1
100n
R6 1K
J14
1
2
3
4
5
6
KEY1
+5V
R171K
Q13
TI P41C
R18 1K
R1
10K
R54
10K

R45
1K
Temperature Sensor
Chanel 2
Temperature Sensor
Chanel 4
+5V
TEMP 4
D23
LM335/TO92
R2
10K
R3
10K
SCL
J9
1
2
3
4
5
6
SDA
R9 5K1
PB5
R46 100
PB4
+5V
PB3
PC6

R165K1
GND
DS1307
U2
X1
1
X2
2
Vbat
3
GND
4
SDA
5
SCL
6
SQW/OUT
7
VCC
8
R48100
+5V
R50100
7-SEG LED
DC2
D3
1N4007
R51100
U9
LED7SEGx 3

A
2
B
6
C
9
D
11
E
12
F
3
G
8
DOT
10
CA1
5
CA2
4
CA3
1
R13
10K
Q20
Q17
R14
10K
Q16
KEY2

D2
D3
D4
D5
D6
D7
A
GND
+5v
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

MI SO
CONNECTOR 17x1
+5V
DIGIT 3
DIGIT 2
DIGIT 1
MOS I
SEG F
SEG G
DOT
SEG D
SEG E
D14
1N4007
SEG A
SEG B
SEG C
J2
1
2
3
4
5
6
7
8
9
10
11
12

13
14
15
16
17
RST
R7 2K2
SQW_OU T
C19
10n
J1
CON3
1
2
3
C20
100n
J3
CON2
1
2
Q15
TI P41C
D13
1N4007
DC3
External crystal
KEY3
D20LED
K

Y2
4-20MHz
C9 22p
BACKLIGHT
ISP terminals
C2
100n
+5V
R35
30K
J11
1
2
C12 22p
RXD
STREP Motor
XTA L 1
R25
22E2W
TXD
XTA L 2
R591K
C10
100n
+5V
PC6
DC4
KEY4
R21 10K
+5V GND

VEE
STEP2
DC1
PD0
PD1
PD2
PD3
Q19
TI P41C
PD4
P2
MALE DB25
13
25
12
24
11
23
10
22
9
21
8
20
7
19
6
18
5
17

4
16
3
15
2
14
1
+
C3
STEP1
KEY5
J5
1
2
3
4
5
6
D7
LED
D19
LED
+5V
+5V
LOA
Q22
C2383
In System Programmer interface
R43
100

PB6
PB7
PB0
PD6
R55
4K7
+5V
PD5
PD7
LS1
8 Ohm
GND
KEY1 KEY2
U8
IN
1
OUT
3
GND
2
KEY3
J181
D6
LED
KEY4
J201
KEY5
D5
LED
J17 1

J19 1
D4
LED
D10
LED
D8
LED
R42
4K7
D9
LED
D11
LED
R4
470
12
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
IR transmit
IR receiver
J23
1
J24
1
R57
30K
+5V
CONNECTOR 14x2
J4
1
2
3
4
5
6
7
8

U3
PIN+3V
2
3
1
CONNECTOR 8x2
+12V
R33
4K7
QUAT
STEP3
R34
4K7
LED 2
R32
100
Realtime clock
+5V
LED 3
+
C4
TEMP 1
PC0
PC1
PC2
PC3
PC4
PC5
J16
1

2
3
4
TEMP 2
PB1
PB2
PB3
PB4
PB5
AVCC
AREF
AGND
TEMP 4
TEMP 3
LED 4
LED 5
L3 10uH
M
LED 7
GND
LED 6
AGND
+5V
L2 10uH
AVCC
U5
IN
1
OUT
3

GND
2
D2
1N4007
+5V
C8
D12
1N4007
C11
100n
+5V
SW5
STEP4
R68220
C24
100n
D15
1N4007
+5V
D26
4148
R63
10K
D18
1N4007
STEP3
Q12
R10 5K1
Q14
R19 5K1

STEP4
DC3
R22 5K1
SW2
J12
CON8
1
2
3
4
5
6
7
8
R27 5K1
R67220
D21
LM335/TO92
C21
100n
+5V
D25
4148
R47
1K
R62
10K
J6
1
2

3
4
5
6
7
8
9
10
11
12
13
14
SW3
R200-470
+
C6
R69220
C22
100n
+5V
D27
4148
Q6
R64
10K
SW4
R70 220
C25
100n
+5V

D28
4148
R120-470
R65
10K
1-MO
1-MO
R230-470
+5V
DC4
R290-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
T1I N
11
T2I N
10
R1IN
13
R2IN
8
T1O UT
14
T2O UT
7
Q21
TIP41C
+5V
J7
1
2
3
4
5

6
7
8
9
10
11
12
13
14
SW1
R61
10K
Q18
+12V
+12V
D24
4148
C18
1u
C17
1u
C16
1u
-+
D17
2
1
3
4
R53

10K
R44
1K
U7
1
1
2
2
3
3
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
11
B6
12
B5
13
B4
14
B3
15
B2
16
B1
17
B0
18
#OE
19
VCC
20
Temperature Sensor
Chanel 3
TEMP 2
D22
LM335/TO92

R71
10K
R60
1K
+5V
C13
1u
Temperature Sensor
Chanel 1
TEMP 1
D29
LM335/TO92
C15
1u
Q4
C828
L1 100uH
R66220
Q2
External serial memory
R401K
+12V
R411K
+5V
CONNECTOR 14x2
J8
CON3
1
2
3

Q5
C828
+5V
R491K
AC2/DC2
R56100
RS232 interface
C23
100n
+5V
AC1/DC1
R581K
R24
P1
FEMALE DB9
5
9
4
8
3
7
2
6
1
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
2
3
4
D16
LED
R30
LED 1
Q9
C2383
LED 8

C14
1u
AREF
J26
1
2
3
4
Q11
C2383

CT 2


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í nhng 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.
[4].
www.atmel.com , www.avr.want24h.comĂ

×