LÊ QUANG CƯỜNG Công ty Tư vấn xây dựng dầu khí PETROLIMEX 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 vi xử lý thông qua bộ KIT phát triển có kết cấu độc lập dạng Mai
Trang 1THIẾT KẾ BỘ KIT VI XỬ LÝ ĐA NĂNG PHỤC VỤ GIẢNG DẠY VÀ NGHIÊN CỨU KHOA HỌC
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
ThS LÊ QUANG CƯỜNG
Công ty Tư vấn xây dựng dầu khí PETROLIMEX
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 vi xử lý thông qua bộ KIT
phát triển có kết cấu độc lập dạng Main – Chip, giúp sinh viên có thể lập trình ứng dụng cho nhiều loại vi xử lý trên thiết bị thực tế
Summary: This report presents a design for programming microcontroller by evolution
KITs in Main – Chip separate design, assisting students in some microcontroller programs
and applications with devices
I ĐẶT VẤN ĐỀ
CT 2
Bài báo trình bày về một số thiết kế cơ bản trên cơ sở cấu trúc Main – Chip, dựa trên các nhiệm vụ thí nghiệm và tổng hợp một số yêu cầu thực tế của các công ty Thiết kế nhằm đưa ra
sơ đồ mẫu và xây dựng những bài toán điều khiển từng cụm thiết bị độc lập, giúp sinh viên tự thay đổi vi xử lý và ngoại vi ghép phối thành bài toán điều khiển lớn hơn, ứng dụng trong công nghiệp, GTVT như cho các bài toán Lập trình nhúng, Lập trình cho các bài toán điều khiển đèn giao thông, đường ngang, thông gió, điều khiển giám sát tòa nhà, điều khiển từ xa… Sinh viên
có thể trực tiếp làm việc trên bộ thiết bị sau khi học trên lớp, sau đó tự phát triển bài toán trên bộ KIT này Điều này tăng cường khả năng tự làm việc và sáng tạo cho sinh viên Bên cạnh đó dựa vào các sơ đồ thiết kế cơ sở, sinh viên sẽ giảm bớt sai sót trong quá trình thiết kế chế tạo mô hình sản phẩm phục vụ NCKH và bảo vệ tốt nghiệp
II YÊU CẦU THIẾT KẾ
Bộ KIT được thiết kế chế tạo theo dạng kết cấu Main – Chip đa năng, có thể dễ dàng thay đổi vi xử lý bằng các dòng PIC, AVR, PSoC … tạo hướng mở cho bộ KIT Bộ KIT thí nghiệm
có khả năng bao quát cả các bài thí nghiệm hiện có ngoài việc tạo thêm trên 30 Unit mới, mỗi Unit gồm một số bài thí nghiệm quét hết một nội dung học tập Ngoài ra khi có sự cố chạm chập, cháy nổ khi thí nghiệm có thể dễ dàng thay thế từng cụm thiết bị, giảm thiểu kinh phí khi cần sửa chữa thay mới
Trang 21 Khối vi xử lý cơ bản, lập trình ASSEMBLY
Module 1 Vi xử lý AT89C52
Bài toán cơ bản: Điều khiển Led đơn, Led 7 thanh, ma trận phím, ngắt, phát hồng ngoại,
điều khiển động cơ một chiều, động cơ bước, đo nhiệt độ, hiển thị LCD, thu hồng ngoại điều
khiển từ xa, liên kết với KIT khác thành hệ vi xử lý (Giao tiếp đa vi xử lý), ghép nối ROM,
RAM, PC, ma trận điểm
Bài toán ứng dụng: Điều khiển đèn giao thông, các hệ thống định giờ, lập trình điều khiển
từ xa, đo lường cảnh báo, điều khiển đèn quảng cáo, quang báo, mạng vi xử lý, ghép phối hệ PC
– Vi xử lý
Module 2 Vi xử lý AT89C52: Thiết kế KIT phát triển sử dụng các Jack cắm rời, áp dụng
cho các bài toán ứng dụng trong thực tế: Điều khiển giám sát các thiết bị nhà cao tầng, điều
khiển đường ngang, đèn giao thông, các hệ thống định giờ
2 Khối vi xử lý nâng cao, lập trình C
Module Vi xử lý ATmega8/88
Bài toán cơ bản: Thiết kế mạch nạp onboard usb, lập trình điều khiển LED đơn, ngắt, ghép
nối bộ nhớ ngoài, đo nhiệt độ, LCD, PWM, RTC, ghép nối PC
Bài toán ứng dụng: Đèn quảng cáo, đo lường điều khiển các đại lượng tương tự, ghép nối
Module Vi xử lý ATmega16/32/535
Bài toán cơ bản: Điều khiển các cụm thiết bị độc lập, Động cơ bước, Động cơ một chiều,
PWM, RTC, Loa, quạt, đo nhiệt độ cảnh báo và điều khiển ngưỡng
Bài toán ứng dụng: Điều khiển báo cháy, thông gió nhà cao tầng, mạng AVR, AVR – PC,
các bài toán phát triển
Module Vi xử lý PSoC CY8C29466/566
Hai Module này ngoài giải quyết các bài toán điều khiển trên còn có kể kết nối với các
Module khác, xử lý các ngoại vi phức tạp như kết nối thẻ nhớ, RF, GPS, INS, MEMS
III KẾT CẤU PHẦN CỨNG BỘ KIT
1 Vi xử lý
Bộ KIT sử dụng vi xử lý dòng MCS51 và AVR, ngoài ra còn được thiết kế mở rộng cả cho
PIC, PSoC với các bảng cắm rời theo kết cấu Module Phần cơ sở chủ yếu được xây dựng trên
vi xử lý AT89C52 và ATMega88 của Atmel do tính thông dụng, rẻ tiền của chúng Điều này
phù hợp với đối tượng sinh viên, bao gồm:
Trang 3AT89C51/52, AT89S51/52 ATMega8/88, ATMega16/535 CY8C29466/566
Sau khi đã thành thạo về vi xử lý cơ sở, người học có thể lựa chọn vi xử lý mạnh hơn với các ngoại vi phức tạp, phát triển thêm KIT với các Module mở rộng khác
2 Linh kiện phụ trợ
Tất cả linh kiện nằm trên bảng Main và một vài Module độc lập khác, bao gồm:
- Led đơn, Led 7 thanh, Led Matrix 5x7/8x8
- Tụ điện, Trở, Diode, Transistor các loại
- Thạch anh dao động 11.0592MHz, 8 MHz, 32.768 KHz …
- IC nguồn, đệm, chốt, dịch, MAX232, EEROM, SRAM, RTC
- ADC, LCD, Sensor đo nhiệt độ
- Mắt thu, Led phát hồng ngoại
- Động cơ 1 chiều DC, động cơ bước +12VDC
- Quạt, Loa (Còi, Chuông)
CT 2
- Nguồn, Pin +3 VDC, Cable nối, DB9 Female, DB25 Male, Cable nạp chương trình, Phím
bấm, Switch, toả nhiệt, ốc vit…
IV BÀI TOÁN ĐIỀU KHIỂN
Các bài toán điều khiển cơ bản chạy trên Module Main – Chip với yêu cầu cho trước Với các yêu cầu mở rộng sinh viên phải tự tổ chức phần cứng Điều này tạo ra những chương trình điều khiển khác nhau ngay cả khi cho các nhóm làm cùng một bài thí nghiệm Các bài toán điều khiển với yêu cầu chi tiết, sơ đồ tổ chức phần cứng, list chương trình phần mềm có thể tham khảo trong đề tài NCKH mã số B2007-04-27 của cùng tác giả
1 MCS51
Unit 1: Xử lý Led đơn (Nháy, quay, dịch, kết hợp) Unit 2: Xử lý Led 7 thanh (Các hệ thống định giờ, đèn giao thông) Unit 3: Phím bấm (Phím đơn, Ma trận phím)
Unit 4: Thu phát hồng ngoại (Điều khiển từ xa)
Unit 5: Ghép LCD (Hiển thị, tạo đồng hồ)
Trang 4Unit 6: Giao tiếp PC
Unit 7: Điều khiển động cơ một chiều DC-
Unit 8: Điều khiển động cơ bước Step Motor
Unit 9: Ghép ADC ngoài
Unit 10: Ma trận điểm
Unit 11: Mở rộng bộ nhớ
Unit 12 : Thiết kế ứng dụng 1: Giao tiếp hai vi xử lý giám sát nhiệt độ
Unit 13 : Thiết kế ứng dụng 2: Điều khiển từ xa DC-
Unit 14 : Thiết kế ứng dụng 3: Điều khiển từ xa Step motor
Unit 15 : Thiết kế ứng dụng 4: Hệ đa vi xử lý
Unit 16 : Thiết kế ứng dụng 5: Điều khiển đèn giao thông
Unit 17 : Thiết kế ứng dụng 6: Điều khiển đường ngang
2 AVR/PSoC
Unit 1: Xử lý Led đơn (Nháy, quay, dịch, kết hợp)
Unit 2: Xử lý Led 7 thanh (Các hệ thống định giờ)
CT 2 Unit 3: Phím bấm (Phím đơn, Ma trận phím)
Unit 4: Thu phát hồng ngoại (Điều khiển từ xa)
Unit 5: Ghép LCD (Hiển thị, tạo đồng hồ)
Unit 6: Giao tiếp PC
Unit 7: Lập trình Project multi file
Unit 8: PWM
Unit 9: Điều khiển động cơ 1 chiều DC-
Unit 10: Điều khiển động cơ bước Step Motor
Unit 11: ADC
Unit 12: RTC
Unit 13: Bài toán phát triển; Thiết kế ứng dụng
Unit 14: Khai thác các ngoại vi của Module thí nghiệm đang sử dụng tại phòng thí nghiệm
(SAB 80515) theo các bài đã có: Chống trộm; Thông gió đường hầm; Đèn tín hiệu; Trộn nhiên
liệu
Trang 5CT 2
MỘT SỐ MODULE CỦA BỘ KIT
I2C LCD
24C16B
A0 1 A1 2 A2 3 GND
U4
1 3
J4
CON3
Y1
32.768kHz
C3 100n
DS1307
X1 1 X2 2 Vbat 3 GND
SQW/OUTVCC 7 8
U3
+5V +5V
+5V
+5V
EEPROM
RTC
BT1 3V
SCL SDA SCL
SQW
SCL SCL
GND SDA
LCD
+5V
+5V Var
Var
+5V
T1 C828
24 P1Header 12X2
R86 R
Led7seg Step Motor
DOT SEG G SEG F SEG D SEG B
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
U7
1 4
J7
1 4 7
J8
CON8
A D
U6 LED7 x4
R36 5K6 Q9
A1015
R37 5K6 Q10
A1015
R38 5K6 Q11
A1015
R39 5K6 Q12
A1015
7-SEG LED
LED7 SEGMENT
+5V
STEP3
STEP4
STEP2 STEP1
STEP1 STEP3
Q29 TIP41C
Q26
Q28
Q31 TIP41C
D31 1N4007
D34 1N4007
D33 1N4007
Q27 TIP41C
Q24
1 3 5 J66
1 3 J65
D32 1N4007
Q30
Q25 TIP41C
+5V +12V
+5V
+5V +5V
STREP Motor
UART ADC
RXD TXD
MAX232
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
U14
1
J68
5 4 3 2 1
P3
FEMALE DB9
C18 1u C20
1u
C17 1u C19 1u
C21 1u
+5V
+5V
RS232 interface
D0 D2 D4 D6
#ADC DONE
ADC #RD ADC #WR ADC #CS
ADC #RD ADC #WR ADC #CS
#ADC DONE
C2
+IN 6 -IN 7
AGND 8
VREF/2 9
GND 10
DB7 11 DB6 12 DB5 13 DB4 14 DB3 15 DB2 16 DB1 17 DB0 18
CLKR 19 VCC/VREF 20 CLKIN 4 INTR 5
CS 1 RD 2 WR 3
U2 R1
1 1
2 2
3 3 U1
1 3 J1
R4 R2
C1 R3
+5V
+5V
ROOM TEMPRATURE MEASUREMENT
1 2
3 4
5 6
7 8
9 10
11 12
15 16
P6
Header 8X2
+5V
Trang 6Power DC-
AC2/DC2
U12
+ C14
D30
LED
D28
LED
+ C15
C13
+ C12
1
4
D29
BRIDGE 2A
R68 22E2W
R69
IN
U13
+ C11
R67
C16
+5V
+12V
CT 2
12VAC input
6 P2
Power On/Off
AC1
AC2
1
J64
DC Jack
1 2
3 4
5 6
P7
Header 3X2
+5V
DC1
DC3
DC1
DC3
1
Q5
1N4007
Q1
Q4 C828
Q6 A1015 Q2
D1 1N4007
Q7 C2383
3
J3
D2 1N4007
Q3
C828
D4 1N4007
Q8 C2383
MG1
+5V
+12V
+5V
M
DC Motor
ATMega16/32/566
Trang 7CT 2
AREF
AC1/DC1
AC2/DC2
PB1
PD5 PD1
PA4
AVCC PB2
PD6 PD2
PA5 PB3
PC7 PB0
PD3
PA6 PB4
PC6
PB1
PA7
PD4
MOSI
PC5 AREF
PB2
PD5
MISO
GND PB3
PD6
SCK
AVCC PB4
PC4
PA0
RESET
PC7 MOSI
PC3
PA1
VCC
PC6 MISO
PC2
PA2
GND
PC5
SCK
XTAL2
PC1
PA3
PC4
RESET
XTAL1
PC3
PC0
PA4
VCC
PD0
PC2
PA5
PD7
GND
PC1 PD1
PA6 PA0
XTAL2
PC0 PD2
PA7 PA1
PD7
XTAL1
PD3
PA2
AREF PB0
PD0
PD4
PA3
GND
VCC
GND
XTAL1
PD1
L3 100uH
C1 100n
1000u/50V
1 3
J5
2
3
D5 BRIDGE 1A
C4 22p
1 J7
1 1
2 2
U4
1
J8 L2 10uH
C13 100n
470u/25V
(XCK/T0) PB0 1 (T1) PB1 2 (INT2/AIN0) PB2 3 (OC0/AIN1) PB3 4 (SS) PB4 5 (MOSI) PB5 6 (MISO) PB6 7 (SCK) PB7 8 RESET 9 VCC 10 GND 11 XTAL2 12 XTAL1 13 (RXD) PD0 14 (TXD) PD1 15 (INT0) PD2 16 (INT1) PD3 17 (OC1B) PD4 18 (OC1A) PD5 19 (ICP) PD6
20 PD7 (OC2)PC0 (SCL) 2122
PC1 (SDA) 23 PC2 (TCK) 24 PC3 (TMS) 25 PC4 (TDO)PC5 (TDI) 26 27 PC6 (TOSC1) 28 PC7 (TOSC2)AVCC 29 30 GND 31 AREF 32 PA7 (ADC7) 33 PA6 (ADC6) 34 PA5 (ADC5) 35 PA4 (ADC4) 36 PA3 (ADC3) 37 PA2 (ADC2) 38 PA1 (ADC1) 39 PA0 (ADC0) 40
1 3
J4
C10 100n
1
J6 L1 10uH
7805
IN
1 OUT 3
U3
1 3
J3
SWITCH2X2
Y1 4-20MHz
D6 LED
1 J9
1 3 5 7 9 10 12 14
19 21 23 25 27 15 17 29 31 33 35 37 39
J1
CON40C
C2 1u
1 3 5 7 9 10 12 14
19 21 23 25 27 15 17 29 31 33 35 37 39
J2
CON40C
R13 1K
C7 22p
+5V
+5V
External crystal
Drills
Power supply Power-in jack
MULTI- MICROCONTROLLERS COMMUNICATE
Contac
AC1
AC2
1 2
C3
0.1mF
PC6 (RESET) 1 PD0 (RXD) 2 PD1 (TXD) 3 PD2 (INT0) 4 PD3 (INT1) 5 PD4 (XCK/T0) 6 VCC 7 GND 8 PB6 (XTAL1) 9 PB7 (XTAL2) 10 PD5 (T1) 11 PD6 (AIN0) 12 PD7 (AIN1) 13 PB0 (ICP1)
14 PB2 (SS/OC1B)PB1 (OC1A) 1516
PB3 (MOSI/OC2)PB4 (MISO) 17 18 PB5 (SCK)AVCC 19 20 AREFGND 21 22 PC0 (ADC0) 23 PC1 (ADC1) 24 PC2 (ADC2) 25 PC3 (ADC3) 26 PC4 (ADC4/SDA)PC5 (ADC5/SCL) 27 28
U2
ATmega8
4 3
P2
USB - type B
+5V
1Y2 2
XTAL C8
D3 LED
R11 R R12 R
D4 LED
GND
R9 330R R8 330R R7 330R
Reset
SCK MISO
R2
R1 100 C5
D2
4007 D1
4007 C6 104
GND
1 8
2 7
3 6
4 5
P3
Header 4X2
R10 330R
1 3
P1
Reset select
Rset
Rset
R_out
R_out
GND
GND
GND GND
GND 12v
GND
CY8C29566
Trang 8CT 2
SDATA SCLK GND VCC1
V
GND
XR Ou
Ou Ou
GND SDATA
RF MISO
SCLK
RF SCK Data Out10
RF MOSI IRQ1 Out1
VCC
C1 100uF
J6
SWITCH2X2
CY8C29566
A,I,P0[7]
40 A,IO,P0[5]
41 A,IOP0[3]
42 A,I,P0[1]
43
P1[0]/I2CSDA,XTALoutP1[2] 18 19 P1[4],EXTCLK 20 P1[6] 21
Ex VREF,P2[6]
34 A,I,P0[0]
35 A,IO,P0[2]
36 A,IO,P0[4]
37 A,I,P0[6]
38
VCC 39
P2[7]
44
P3[1] 12 P1[7],I2CSCL 13
P1[3] 15 P1[1]/I2CSCL,XTALin 16 P1[5],I2CSDA 14 Vss 17
P3[0] 22
U1
1 3 5 J2
CON5
VCC1
3.3V
VCC1 VCC
+ C3 1000MF/50V
1 JP1
POWER VIT
F1 FUSE 0.5A
R2 330R
D2 LED
OUT 2
In
R3 390R
LM317AT
IN
U3
C2 100u
+ C4 470MF/25V
D1
1A
D3
R1 240R VCC
3.3V
VCC
1 H1 Vit
1H2 Vit
1H4 Vit 1 H3 Vit
6 P1 Header 3X2 VCC0
GND0
1 3 J7
DC Jack
5V
F0
1 2
3 4
5 6
7 8
9 10
11 12
15 16
19 20 P4
Header 11X2
1 2
3 4
5 6
7 8
9 10
11 12
15 16
19 20 P3
Header 11X2
9 13 17 21 P2 Header 11X2
9 13 17 21 P5 Header 11X2
VI KẾT LUẬN
Các bài toán điều khiển cơ bản chạy trên Module Main – Chip với yêu cầu cho trước Với
các yêu cầu mở rộng sinh viên phải tự tổ chức phần cứng Điều này tạo ra những chương trình
điều khiển khác nhau ngay cả khi cho các nhóm làm cùng một bài thí nghiệm, tăng cường khả
năng sáng tạo cho sinh viên Bài báo đưa ra các cấu trúc phần cứng cơ bản, sinh viên có thể áp
dụng nguyên các sơ đồ này hoặc tổ chức các khối theo các cách khác nhau phục vụ cho làm bài
tập lớn, thiết kế môn học, nghiên cứu khoa học và bảo vệ tốt nghiệp Các thiết kế mẫu này còn
giúp sinh viên làm giảm sai sót và giảm kinh phí trong quá trình chế tạo sản phẩm
Tài liệu tham khảo
[1] Sensor Yeralan Programming and Interfacing the 80C51 Microcontroller Rigel Cor , 1993
[2] Michael J Pont Programming Embedded System University of Leicester, 2003
[3] Dhananjay V Gadre Programming and Customizing the AVR Microcontrollers McGraw-Hill, 2001
[4] David E Simon An Embedded Software Primer China Machine Press, 2005
[5] Michael Barri Programming Embedded Systems in C and C++ O’Reilly, 1999
[6] Joe Pardue C Programming for Microcontrollers Smiley Micros, 2005
[7] Peter Marweden Embedded Systems Design Springer, 2006♦