CHƯƠNG IV: TRIỂN KHAI THỬ NGHIỆM PHẦN CỨNG
4.4 Khối giao tiếp máy tính qua USB và RS-232
Giao tiếp với máy tính là một nhu cầu quan trọng trong thiết kế mạch, đảm bảo thuận lợi trong quá trình truyền dữ liệu giữa máy tính và mạch điều khiển.
Trong mạch em sử dụng cả giao tiếp USB và RS-232.
Giao tiếp máy tính qua USB
Ngày nay chuẩn giao tiếp USB ngày càng đƣợc sử dụng rỗng rãi để truyền dữ liệu, vì vậy trong mạch có sử dụng giao tiếp máy tính qua cổng USB.
R15 1.5K R9
220k R7
220k
VPC C14
Y 1 22pF
12Mhz
VPC
V33
R13 27
L2 10uH R12 220k
TXD_USB
V33
J7
USB 1 2 3 4
C12 10uF V33
VPC
R14 27
V33 C13
22pF
R11 220k
C11 1uF RXD_USB
R10 220k
U5
PL2303 1
2 3 4 5 6 7 8 9 10 11 12 13
14 15
16 17 18 19 20 21 22 23 24 25 26 27 TXD 28
DTR_N RTS_N VDD_232 RXD RI_N GND VDD DSR_N DCD_N CTS_N SHTD_N EE_CLK
EE_DATA DP DM VDD_3V3 GND_3V3 RESET VDD GND TRI_MODE LD_MODE VDD_PLL GND_PLL PLL_TEST OSC1 OSC2
VPC R6
220k VPC
R5 220k
VPC R8
220k
Hình 4.10: Mạch nguyên lý USB
Hình 4.11: Mạch phần cứng USB
- Mạch giao tiếp máy tính qua cổng USB dùng IC PL2303. PL2303 hoạt động nhƣ một cầu nối, chuyển đổi tín hiệu giữa cổng USB và giao diện truyền thông nối tiếp USART, I2C.
- IC PL2303 cho phép truyền dữ liệu song công với tốc độ tương đối cao 1Mbps, với bộ dao động riêng trên chip, có thể hoạt động truyền dữ liệu giữa chuẩn giao tiếp USART của các thiết bị khác với máy tính không qua vi điều khiển. Nguồn nuôi cho cổng USB đƣợc lấy trực tiếp từ cổng USB của máy tính.
Giao tiếp máy tính qua RS-232
Là giao tiếp thường được sử dụng để giao tiếp giữa máy tính và với các thiết bị ngoại vi. Mạch giao tiếp máy tính qua RS-232 dùng để truyền nhận dữ liệu giữa máy tính và vi điều khiển.
R1IN
C9 104 R1IN
C8 104 TX0
U6
MAX232 1
3 4 5 2 6
12 9 11
10 13 8
14 7
C1+
C1- C2+
C2- V+
V-
R1OUT R2OUT T1IN
T2IN R1IN R2IN
T1OUT T2OUT
RX0
C10 104
C6 104
VCC T1OUT
T1OUT P1
CONNECTOR DB9 5 9 4 8 3 7 2 6 1
Hình 4.12: Mạch nguyên lý RS-232
Hình 4.13: Mạch phần cứng RS-232
Các cổng của RS-232 có ngƣỡng điện áp qui ƣớc là -15V (volt) tới -3V, và 3V tới 15V (hoặc -5V, +5V, sự khác biệt giữa hai giá trị 3V, và 5V này đƣợc gọi là noise magin - biên độ dao động của nhiễu).
Tín hiệu có mức điện áp lớn +3V đƣợc coi có logic 0 hoặc có giá trị cao (H).
Tín hiệu có mức điện áp nhỏ hơn –3V đƣợc coi có logic 1 hoặc giá trị thấp (L).
Điện áp từ -3V tới +3V không có ý nghĩa.
IC Max232 đóng vai trò bộ đệm điện áp đảm bảo sự tương thích mức logic giữa vi điều khiển và cổng RS-232 của máy tính.
4.5 Khối rơle đóng ngắt thiết bị.
Để đảm bảo đóng ngắt dòng điện 220V, điều khiển bật tắt thiết bị, đƣợc thiết kế rời để đảm bảo độ linh hoạt trong sử dụng.
Hình 4.14: Phần cứng rơle
4.6 Môđun thu phát GSM
Đây là một môđun quan trọng sử dụng trong việc truyền nhận dữ liệu qua mạng GSM.
Hình 4.15: Môđem SIM300CZ trên mạch điện.
Được thiết kế với mục đích thương mại, làm việc trên 2 dải băng tần EGSM 900MHz và DCS 1800MHz.
Với kích thước nhỏ gọn 50mm x 33mm x 8,8mm, SIM300CZ có thể được sử dụng trong rất nhiều các ứng dụng ví dụ nhƣ: M2M, điện thoại thông minh, điện thoại PDA, thiết bị định vị cầm tay và các thiết bị di động khác hoặc các ứng dụng cho xe hơi, server …
Để SIM300CZ có thể hoạt động, ta chỉ việc cấp nguồn đầy đủ cho nó (dùng nguồn 4,2V). SIM300CZ hỗ trợ các chân cắm SIM, và các đèn báo hiệu trạng thái, báo nguồn.
Tất cả các hoạt động của SIM300CZ đƣợc thao tác qua các câu lệnh AT, giao tiếp với vi điều khiển qua 2 chân theo chuẩn USART với tốc độ Baud tự động từ 1,200bps đến 115,200bps. Giao tiếp giữa SIM300CZ và vi điều khiển là USART1.
Hình 4.16: Giao tiếp giữa SIM300CZ với ATMEGA128
Sim đƣợc giao tiếp với môđun thông qua 4 chân: “Sim_clk, Sim_reset, Sim_data, Sim_vcc” ngoài ra còn 1 chân đất và 1 chân bỏ trống.
Để giao tiếp với môđun SIM300CZ ta điều khiển qua tập lệnh AT, khi tin nhắn đƣợc gửi đến môđun SIM300CZ nó sẽ đƣợc đƣa sang vi điều khiển để phân tích, giải mã và thực thi câu lệnh.
Ngoài ra trong mạch còn thiết kế các môđun mở rộng nhƣ loa, mic, bàn phím tương tác. Chúng ta có thể thực hiện chức năng gọi, nghe, nhắn tin như một điện thoại thông thường.
Hình 4.17: Bàn phím, mic, tai nghe môđun SIM300CZ
4.7 Chương trình cho vi điều khiển.
Vi điều khiển đóng vai trò rất quan trọng trong điều khiển hoạt động của hệ thống. Vi điều khiển ATMEGA128 thuộc họ AVR, trong luận văn này em dùng ngôn ngữ C để lập trình, trình biên dịch sử dụng Codevision.
Codevision là một trong những phần mềm chuyên dụng để lập trình cho vi điều khiển thuộc họ AVR. Codevision dễ thao tác, hỗ trợ nhiều thƣ viện sẵn có nhƣ thƣ viện giao tiếp với LCD, I2C, ADC, USART… ngoài ra nó còn hỗ trợ giao tiếp cổng Com nhận dữ liệu từ vi điều khiển lên hoặc đẩy dữ liệu xuống vi điều khiển.
Đặc điểm trình biên dịch Codevision [2]
- Codevision là một trình biên dịch biên dịch C, đƣợc thiết kế cho dòng vi điều khiển AVR.
- Chương trình có thể chạy dưới hệ điều hành Windows 95, 98, Me, NT4, 2000 và XP.
- Trình biên dịch đƣợc thi hành hầu hết các câu lệnh ngôn ngữ ANSI C, với những ƣu điểm đặc biệt cho cấu trúc AVR và hệ thống nhúng, có khả năng lập trình trên chíp khi chíp đang hoạt động.
- Chương trình hỗ trợ các loại mạch nạp: STK500, AVR910, STK200+/
300… Các loại mạch nạp này được bán khá rộng rãi ở nước ta.
- Bên cạnh thƣ viện chuẩn của ngôn ngữ C, trình biên dịch Codevision cũng xây dựng sẵn một số thƣ viện giúp cho việc giao tiếp dễ dàng hơn:
Môđun giao tiếp LCD
Bus Philips I2C
Cảm biến nhiệt đầu ra tương tự LM75 , LM35 và cảm biến nhiệt đầu ra số DS1820, DS18B20
IC thời gian thực DS1307, DS1302
Chuẩn giao tiếp SPI
Chương trình trễ…
Codevision cũng tích hợp sẵn chương trình phát code tự động, điều này cho ta viết code nhanh hơn, dưới đây là một số tool tự phát code:
Thiết lập truy nhập bộ nhớ ngoài
Cài đặt cổng vào ra
Thiết lập ngắt ngoài
Thiết lập timers/counters
Thiết lập Watchdog timer
Thiết lập và điều khiển ngắt bộ đệm truyền thông nối tiếp UART (USART)
Thiết lập bộ so sánh analog (Analog Comparator)
Thiết lập ADC
Thiết lập giao tiếp SPI
Thiết lập giao tiếp 2 dây
Thiết lập môđun LCD…
Nhƣ vậy việc sử dụng Codevision rất tiện lợi cho phát triển ứng dụng AVR. Ngoài ra chúng ta có thể sử dụng một số trình biên dịch khác cho AVR studio, Ponypro2000…
Dưới đây là sơ đồ giải thuật hệ thống giám sát và điều khiển thiết bị điện từ xa.
Trả lại kết quả cho người dùng
Bắt đầu
Kiểm tra có tin nhắn
Đ S
Kiểm tra trạng thái thiết bị S
Đ
Điều khiển thiết bị Kiểm tra
cú pháp
Hình 4.18: Sơ đồ giải thuật hệ thống giám sát, điều khiển thiết bị điện từ xa Ở đây vi điều khiển luôn ở trạng thái kiểm tra tin nhắn, khi có tin nhắn gửi đến vi điều khiển lập tức kiểm tra cú pháp tin nhắn xem có trùng với cú pháp đã đƣợc lập trình không, nếu sai cú pháp thì vi điều khiển sẽ không thực hiện công việc và tiếp tục quay lại kiểm tra tin nhắn đến, nếu đúng với cú pháp đã lập trình thì vi điều khiển sẽ thực thi công việc theo nội dung tin nhắn yêu cầu.
4.8 Một số hình ảnh hoạt động thực tế của hệ thống.
Dưới đây là hình ảnh toàn bộ hệ thống mạch đầu cuối giám sát trạng thái và điều khiển thiết bị điện tử từ xa, hệ thống mô tả bật tắt điện trong nhà
Hình ảnh trạng thái hệ thống khi chƣa có lệnh điều khiển
Để điều khiển bóng đèn, ta gửi tin nhắn theo cú pháp định trước:
ví dụ để bật bóng đèn phòng cắm ở ổ cắm thứ 4, người dùng soạn tin nhắn theo cú pháp “ON RL4” gửi tới số điện thoại đƣợc gắn trên mạch đầu cuối, trong đó ON là bật thiết bị, RL4 là mã số thiết bị thứ 4.
Lệnh điều khiển bật đèn phòng
Khi nhận đƣợc tin nhắn vi điều khiển sẽ phân tích, giải mã lệnh và so sánh với cú pháp đã đƣợc lập trình, nếu tin nhắn đó đúng với cú pháp đã đƣợc lập trình là bật thiết bị 4, vi điều khiển điều khiển Rơle đóng nguồn vào ổ cắm số 4 để bật đèn. Để tắt đèn ta nhắn với cú pháp tương tự “OFF RL4”.
Hình ảnh hệ thống sau khi thực hiện lệnh điều khiển bật đèn phòng