CHƯƠNG 5. THIẾT KẾ, CÀI ĐẶT BỘ ĐK MPC TRÊN NỀN VI ĐIỀU KHIỂN AVR128
5.1 THIẾT KẾ PHẦN CỨNG
5.1.3 Sơ đồ nguyên lý của mạch điều khiển
Mạch dùng vi điều khiển Atmega128, để mở rộng bộ nhớ, mạch bổ sung thêm 1 SRAM ngoài 62256, đ ồng thời để cho phép kết nối với các ngoại vi nh ư bàn phím, LCD, đầu vào/ra số,…
5.1.3.1 Khối nguồn
Nguồn cấp cho mạch: 12V thông qua jack cắm trên mạch. Đồng thời cũng có các led hiển thị để báo nguồn đãđược cấp:
D2
DIODE
1 2
VCC_in
R_LED9V 470
LED_9V
LED
R_LEDN9V 470
LED_N9V
LED C9
100uF
CN12
1000u
C11 104
U8
LM7909C/TO220 2 IN
OUT 3
GND1
GND
C13 100uF
C15 104 +9V
-9V J_POWER_IN
CON3 1 2 3
GND
KHOI NGUON
D5
DIODE 1 2
J_SW_POWER
CON3 1 2 3
VCC VCC_in
VCC_in
U6 LM7805C/TO 1 IN
OUT 3
GND2
C4 1000uF
C5 100uF C6
104
C7 104 +9V
VCC
GND GND
R_LED5V 470
LED_5V
LED
VCC_n12 GND
U7
LM7809C/TO3 1 IN
OUT 3
GND2
C_n12 104 GND VCC_n12
Hình 5.2: Sơ đồ khối nguồn
MAI VĂN SỸ, NGUYỄN NGỌC LINH – ĐKTĐ – KSTN– K48 93 Nguồn cấp được lọc và thông qua các IC nguồn để tạo ra điện áp cần thiết cho mạch hoạt động.
Ngoài ra còn có các diode bảo vệ, chống việc cắm nhầm cực tính do s ơ xuất.
5.1.3.2 Khối vi điều khiển
Đây là thành phần quan trọng nhất trong mạch, đóng vai trò là trung tâm đầu não, thu thập dữ liệu quá trình thông qua các đầu vào, xử lý, tính toán và ra lệnh điều khiển, tác động vào đối tượng thông qua khối đầu ra.
ATmega 128 là chip dán, 64 chân, đóng v ỏ TQFP (Thin plastic Quad Flat Package) Tất cả các chân của chip đều đ ược lấy ra thông qua các header để thuận tiện trong việc cắm IC.
Mạch reset sử dụng tụ v à điện trở. Ngoài ra mạch cònđược bổ sung đèn LED để hiển thị trạng thái reset, đồng thời cũng là trạng thái chip đang được nạp chương trình.
ATmega128 có bộ nhớ khá lớn: 4K RAM, tuy nhiên vẫn được ghép nối thêm với 1SRAM 62256 32K để dự phòng cũng như mở rộng tài nguyên cho mục đích nghiên cứu.
Việc ghép nối này được thực hiện thông qua IC chốt dữ liệu 74573 (Chốt DQ). Mục đích sử dụng 74573 là để tách riêng Bus Địa chỉ và Bus dữ liệu riêng ra, và để tiết kiệm chân cho vi điều khiển vì 62256 tương đối nhiều chân điều khiển. Ngoài ra, khi chip AVR hoạt động ở tốc độ cao:16MIPS(Mega Instruction Per Second) nên loại 74HC573 không phù hợp vì có tốc độ đáp ứng không phù hợp mà phải dùng loại 74AHC573 mới đủ tốc độ đáp ứng (Đáp ứng sau 4ns). S ơ đồ ghép nối được thể hiện dưới đây:
GND AREF
PD7
R1_sig1 470
D6_sig1PH3
SIGNAL
VCC
J10
HEADER 10_2
1 2 3 4 5 6 7 8 9 10 J11
HEADER 10_2
1 2 3 4 5 6 7 8 9 10
J13
HEADER 10_2
1 2 3 4 5 6 7 8 9 10
J14
HEADER 10_2
1 2 3 4 5 6 7 8 9 10 J16
HEADER 10_2
1
2
3
4
5
6
7
8
910
J23 HEADER 10_2
1
2
3
4
5
6
7
8
910
J24
HEADER 10_2
1 2 3 4 5 6 7 8 9 10
J25 HEADER 10_2
1 2 3 4 5 6 7 8 9 10
PF0ADC0
PE0 RxD0MOSI PE2
PE1 TxD0 MISO
PE4 OC3B
PE3 OC3A
PE6
PE5 OC3C
PB0
PE7 INT_KEY SCK PB1 PB2
PB4
PB3 SIGNAL
PA2
PB6
PB5
GND PA0
PF4ADC4 PF6ADC6
GND PF2ADC2 VCC PA1PF5ADC5 PF7ADC7
PF1ADC1 PF3ADC3
U16
atmega128_d 1 PEN
PE0/PDO/RxD0 2
PE1/PDI/TxD0 3
PE2/AIN0/XCK 4
PE3/AIN1/OC3A 5
PE4/INT4/OC3B 6
PE5/INT5/OC3C 7
PE6/INT6/T3 8
PE7/INT7/ICP3 9
PB0/SS 10
PB1/SCK 11
PB2/MOSI 12
PB3/MISO 13
PB4/OC0 14
PB5/OC1A 15
PB6/OC1B 16
PB7/OC2/OC1C17 PG318 PG419 RESET20 VCC21 GND22 XTAL223 XTAL124 PD0/INT025 PD1/INT126 PD2/INT2/RxD127 PD3/INT3/TxD128 PD429 PD530 PD6/T131 PD7/T232 PA3/AD3 48 PA4/AD4 47 PA5/AD5 46 PA6/AD6 45 PA7/AD7 44 PG2/ALE 43 PC7/A15 42 PC6/A14 41 PC5/A13 40 PC4/A12 39 PC3/A11 38 PC2/A10 37 PC1/A9 36 PC0/A8 35 PG1/RD 34 PG0/WR 33 AVCC64 GND63 AREF62 PF0/ADC061 PF1/ADC160 PF2/ADC259 PF3/ADC358 PF4/ADC457 PF5/ADC556 PF6/ADC655 PF7/ADC754 GND53 VCC52 PA0/AD051 PA1/AD150 PA2/AD249
VCC AREF
PC2 PC0 PG0 PC6 PC4 PA4 PA6 PG2
PG1 PC1 PC3 PC7 PC5 PA7 PA5 PA3
PB7 VCC
PG4 PD2RxD1
PD0
XTAL2 PD6
PD4
GND
RESET
PG3 PD1
XTAL1 PD5
PD3TxD1
C29 100uF
R_LED_RST1
470
LED_RST1
PH3 RESET
U15 62256
10 A0 9 A1 8 A2 7 A3 6 A4 5 A5 4 A6 3 A7 25 A8 24 A9 21 A10 23 A11 2 A12
D0 11 D1 12 D2 13 D3 15 D4 16 D5 17 D6 18 D7 19 VCC28GND14
OE 22 WE 27 CS 20 26 A13
1 A14
VCC
QA2 QA1 QA0
QA4 QA3
QA7 QA6 QA5
PC2 PC1 PC0
PC4 PC3
PA0
PC6 PC5
PA3 PA2 PA1
PA5 PA4
PG0 PA7 PA6
PG1 U3 74HC573
2 D0 3 D1 4 D2 5 D3 6 D4 7 D5 8 D6 9 D7 11 LE
1 OE
Q0 19 Q1 18 Q2 17 Q3 16 Q4 15 Q5 14 Q6 13 Q7 12
GND10 VCC20 PA2
PA1 PA0
PA5 PA4 PA3
PA7 PA6
QA1 QA0
PG2
QA4 QA3 QA2
QA6 QA5
VCC
QA7
GND VCC
VCC
VCC
VCC VCC
GND VCC
SW_RESET1
VCC
RESET
C_RST1 10u R_RST2
10k
Hình 5.3: Sơ đồ khối vi điều khiển 5.1.3.3 Khối vào ra
a) Các đầu vào ra logic số
MAI VĂN SỸ, NGUYỄN NGỌC LINH – ĐKTĐ – KSTN– K48 95 Các cổng (port) của chip vi điều khiển AVR đều có thể cấu hình là cổng vào, hoặc cũng có thể cấu hình để làm cổng ra số tùy theo nhu cầu của người sử dụng. Do vậy, để thuận tiện, các port ch ưa dùng của vi điều khiển được đưa ra các đầu nối để làm cổng vào/ ra.
GND VCC VCC
GND J18
CON10 1 2 3 4 5 6 7 8 9 10
J20
CON10 1 2 3 4 5 6 7 8 9 10 PB1
PB0 GND
PB2 PB3
PB6 PB5 PB4
PB7
PE3 PE5 PE4 PE6 PF0
PF1 PF2 PF3 VCC
PF4 PF5 PF6 PF7
J19
CON6 1 2 3 4 5 6
Hình 5.4: Các đầu vào ra logic số b) Đầu vào tương tự
Tận dụng bộ ADC sẵn có trên chip, chũng ta có tối đa 8 lối vào ADC với độ phân giải 10 bit:
GND VCC
J21
CON10 1 2 3 4 5 6 7 8 9 10 ADC0
ADC3 ADC2 ADC1
ADC5 ADC4
ADC7 ADC6
Hình 5.5: Các đầu vào tương tự
Tuy nhiên, để có thể đo được tín hiệu điện áp nhỏ từ các đầu cảm biến thì ở đây, chúng em thiết kế thêm 2 bộ khuếch đại tín hiệu. Môi bộ khuếch đại gồm hai tầng, sử dụng IC HA17741, có khả năng tinh chỉnh offset. Ngoài ra cũng bổ sung thêm các tụ lọc nhiễu đầu vào và đầu ra của mạch khuếch đại. Tín hiệu ra của bộ khu êch đại được đưa vào bộ ADC của vi điều khiển.
Việc chỉnh offset thông qua hai biến trở VR1, VR2.
GND
U13
uA741 3 +
2 - 7 V+
4 V- OUT 6 OS1 1 OS2 5
U14
uA741 3 +
2 - 7 V+
4 V- OUT 6
1 OS1 5 OS2
R25 10k R26
10k
R27 10k
R28 220k
R29 220k
R30 220k
R31 10k
R32 220k
VR2 10k
+9V
-9V+9V -9V
C24
47u C25
33
C26 33
-9V
J17
CON2 1 2
ADC1
GND GND
U10
uA741 3 +
2 - 7 V+
4 V- OUT 6 OS1 1 OS2 5
U11
uA741 3 +
2 - 7 V+
4 V- OUT 6
1 OS1 5 OS2
R16 10k R17
10k
R18 10k
R19 220k
R20 220k
R21 56k
R22 10k
R23 56k
VR1 10k
+9V -9V+9V
-9V
C21 47u C22
33
C23 33
GND
ADC0
-9V
C27 104 J15
CON2 1 2
C28 104
MACH KHUECH DAI CAP NHIET 2 MACH KHUECH DAI CAP NHIET 1
Hình 5.6: Sơ đồ tầng khuếch đại c) Đầu ra xung số
Mạch thiết kế hỗ trợ 3 đầu ra dạng xung số. Việc phát xung đ ược thực hiện nhờ timer/counter 3.
OC3B
VCC OC3C PWM1
CON2 1 2
PWM2
CON2 1 2
PWM3
CON2 1 VCC 2
OC3A
VCC
Hình 5.7: Các đầu ra xung số 5.1.3.4 Khối bàn phím
Bàn phím 4x4 được kết nối như sơ đồ:
MAI VĂN SỸ, NGUYỄN NGỌC LINH – ĐKTĐ – KSTN– K48 97
U13A
7408 1 2
3
U13B
7408 4 5
6
U13C
7408 9 10
8 COL4
COL3
VCC
COL2 COL1
SW2 SW3
SW4 SW5
SW6 SW7
SW8 SW9
SW10 SW11
SW12 SW13
SW14 SW15
SW16 SW17
C_key 104
ROW2 PD1 ROW1 PD0
ROW3 PD2
ROW4 PD3
COL1 PD4 COL2 PD5 COL3 PD6 COL4 PD7
BAN PHIM 4X4
INT_KEY
Hình 5.8: Sơ đồ khối bàn phím
Mạch AND sử dụng IC 74LS08. Khi có sự kiện bàn phím, một ngắt sẽ được gửi cho vi điều khiển. Chương trình ngắt sẽ giải mã phím được bấm. Việc ghép nối theo s ơ đồ này giúp cho vi điều khiển tránh được việc phải kiểm tra, quét bàn phím liên tục.
5.1.3.5 Khối hiển thị LCD
Mạch kết nối với LCD nh ư hình vẽ:
Trong đó, VR_B,VR_C l ần lượt là các biến trở chỉnh độ sang của đèn Led trong LCD và độ tương phản của LCD.
Để đơn giản, LCD được truy nhập theo 4 bit dữ liệu.
LCD 4x16: DM1604A -D-YSNFD-00200711B
VCC
LCD 4x16
J12
LCD 4x16
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 LCD_K 16 LCD_DB7 LCD_DB6 LCD_DB5
LCD_EN LCD_R/W LCD_RS VCC GND VR_B
20k
LCD_A
GND LCD_DB4
VR_C 20k
GND
VSS SW18 SW DIP-2
12 43
Hình 5.9: Sơ đồ khối hiển thị LCD 5.1.3.6 Khối đo nhiệt độ môi tr ường
Nhiệt độ môi trường được đo thông qua IC DS18b20 của hãng Dalas Semiconductor.
PE2 DS_OUT
VCC
U_DS DS18B20
GND1
2 Vout3 Vss R_DS 4.7k
Hình 5.10: Đầu đo nhiệt độ môi trường
- Dải đo của IC: -55 oC - +125 oC, với độ chính xác (0.5oC) trong dải -10oC - +80oC.
- Giao tiếp qua bus 1 dây – hỗ trợ nhiều điểm đo.
- Độ phân giải của phép đo có thể thay đổi đ ược từ 9-12 bit.
- Thời gian chuyển đổi giá trị nhiệt độ sang số 12 bit trong vòng 750ms.(9 bit là 93.75ms)
- Cho phép cài đặt các cảnh báo, báo động khi giá trị nhiệt độ v ượt qua ngưỡng (Alarm)
5.1.3.7 Khối giao tiếp với máy tính
MAI VĂN SỸ, NGUYỄN NGỌC LINH – ĐKTĐ – KSTN– K48 99 a) Giao tiếp máy tính thông qua cổng nối tiếp
Máy tính gửi và nhận số liệu từ vi điều khiển thông qua cổng nối tiếp theo chuẩn RS232. Tuy nhiên chuẩn này có các mức logic không tương thích v ới mạch TTL. Mức logic “1” tương ứng với giải điện áp -3V đến -25V, mức “0” tương ứng với điện áp từ 3V đến 25V. Khoảng từ -3V - +3V là không xác định. Do đó, để kết nối vi điều khiển với máy tính cần phải qua bộ chuyển đổi mức điện áp nh ư Max232 để chuyển mức logic TTL sang mức điện áp của RS232 v à ngược lại. Sơ đồ mạch giao tiếp như sau:
R2OUT
VCC
GND
RxD0 TxD0 TxD1 RxD1
R1OUT T1IN
COM2
DB9 5 9 4 8 3 7 2 6 1
T2IN R2OUT U9
MAX232 1 C1+
3 C1- 4 C2+
5 C2- VCC16 GND15
V+ 2
V- 6
R1OUT 12
R2OUT 9 11 T1IN 10 T2IN
R1IN 13 R2IN 8 T1OUT 14 T2OUT 7 C16
10uF
C17 10uF
R1OUT T1IN
C18 10uF C19
104
MACH GIAO TIEP NOI TIEP
C20
10u
COM1
DB9 5 9 4 8 3 7 2 6 1 VCC
S1
SW DIP-4 1
2 3 4
8 7 6 5 T2IN
Hình 5.11: Giao tiếp RS232
Chip Atmega128 có hai cổng truyền thông nối tiếp l à UART0 và UART1, do đó, mạch cũng hỗ trợ hai cổng giao tiếp RS232 là COM1 và COM2. Công tắc SW DIP-4 dùng để cho phép hay không cho phép truyền thông qua hai cổng này.
b) Mạch giao tiếp qua cổng song song
Chương trình từ máy tính được nạp cho vi điều khiển thông qua cổng song song LPT của máy tính và giao diện SPI của vi điều khiển:
C24 100n
GND
J16 ISP_jack 2
4 6 8 10
1 3 5 7 9
RESET MOSI VCC
MISO SCK GND
MISO P2
CONNECTOR 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
MOSI SCK U13
74HC244A 2 1A1 4 1A2 6 1A3 8 1A4 11 2A1 13 2A2 15 2A3 17 2A4 1 1G 19 2G
1Y 1 18 1Y 2 16 1Y 3 14 1Y 4 12 2Y 1 9 2Y 2 7 2Y 3 5 2Y 4 3
MACH NAP QUA LPT
RST
R26 100k
Hình 5.12: Giao tiếp qua cổng LPT c) Mạch giao tiếp qua cổng USB
Máy tính cũng có thể nạy chương trình cho vi điều khiển thông qua cổng USB trong trường hợp máy tính đó không có cổng LPT. Tuy nhiên, tốc độ nạp sẽ giảm đi đáng kể so với khi nạp qua cổng song song. S ơ đồ mạch nạp qua cống USB nh ư hình vẽ:
ATmega48/88/168
U2
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
7 VCC 8 GND
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 PC4/ADC4/SDA/PCINT12PC5/ADC5/SCL/PCINT13PB3/MOSI/OC2A/PCINT3PB2/#SS/OC1B/PCINT2PC2/ADC2/PCINT10PC3/ADC3/PCINT11PC0/ADC0/PCINT8PC1/ADC1/PCINT9PB1/OC1A/PCINT1PB4/MISO/PCINT4PB5/SCK/PCINT5AVCCAREFGND 1516171819202122232425262728
C21 22pF
C22 22pF Y 4 8Mhz
napISP1
CON10AP
1 2
3 4
5 6
7 8
9 10
XTAL2 XTAL1
MISO SCK 0
VCC PB2
ISP h ea der 0 MOSI
XTAL2 XTAL1
PB4 PB5 AVCC
PB1 PB3
R8
R R14
R R15
R R16
R R17
R PB5 PB1 PB3 PB3 J3
CON3 1 2 3
reset re
PB2 reset D3
LED_RD
D5 LED_WR R18
330 R19 330
0 J4
USB 1 2 3 4
0
R20 68 R21
68 D6
DIODE R22 1K5
R23 1M
R24 10k
re C23 C
C24 104
0
0
0
PB4
MISO LED
MACH NAP QUA USB
Hình 5.13: Giao tiếp qua cổng USB
MAI VĂN SỸ, NGUYỄN NGỌC LINH – ĐKTĐ – KSTN– K48 101 5.1.3.8 Mạch công suất
Ở đây, để đơn giản, chúng em sử dụng hai loại:
- Van bán dẫn: triac loại BTA12.
- Rơ le công nghiệp. loại DSR 2D của hãng HANYOUNG – Hàn Quốc.
Đây là loại rơ le 1 pha, không tiếp điểm.
Đầu vào 5-32 VDC
Tiếp điểm đầu ra: 100 – 240 VAC, dòng 20A, tần số 25 – 65 Hz.
Thời gian đáp ứng < 1ms …
5.2 PHẦN MỀM ĐIỀU KHIỂN GIÁM SÁT TRÊN PC