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 (537.27 KB, 4 trang )
Giao thức TCP/IP và Web server với AVR
Xin chào tất cả mọi người.
Mình tham gia diễn đàn đã khá lâu rồi nhưng không có đóng góp gì cho diễn đàn, mà chôm từ diễn
đàn thì khá nhiều. Hôm nay thấy cắn rứt lương tâm quá nên làm 1 cái tut đóng góp cho ĐTVN.
Mình thấy đề tài giao tiếp TCP/IP với AVR và điều khiển qua Internet được khá nhiều bạn quan tâm,
tài liệu trên các diễn đàn nước ngoài cũng khá nhiều nhưng chưa có tut nào cụ thể và chi tiết, đặc
biệt là hướng dẫn để mọi người có thể tự viết code được, chứ không phải copy code có sẵn. Vì vậy
nên mình lôi 1 project đã làm cách đây khá lâu ra để làm cơ sở cho tut này.
Bài 1-Hardware:
Trong project này mình sử dụng một con ENC28J60 của Microchip để giao tiếp Ethernet. Vi điều
khiển thì sử dụng Atmega32, có bộ nhớ RAM 2k, vừa đủ dùng (vì 1 frame ethernet có chiều dài max
1500bytes).
Mọi người có thể mua 1 module phát triển Atmega32 + ENC28J60 tại TME
(ATMEGA32 - Ethernet board - TMe: Linh kien, Sensors, Kit Phat trien, Mach nap 8051, PIC, AVR,
ARM, EPROM, Flash ). Hay tự build 1 mạch theo sơ đồ sau:
Mô tả:
- Atmega32 giao tiếp với ENC28J60 qua SPI (MOSI/MISO/SCK) ngoài ra còn có chân chọn chip CS (nối
với bất cứ IO nào của Atmega) và ngắt INT (nối vào ngắt ngoài VĐK).
- ENC28J60 dùng nguồn 3V3, do đó cần 1 IC ổn áp 3V3. ENC28J60 cần 1 port RJ45 có tích hợp sẵn
Transformer và LED.
- Thêm MAX232 để dùng vào mục đích debug.
- Thêm LCD và keypad (dùng để config hay hiển thị gì đó sau này). Nếu không cần có thể bỏ ra.
Bài 2-Cở sở giao thức và thiết kế lưu đồ dữ liệu-Tạo project trong AVR studio:
Chồng giao thức TCP/IP:
Dưới đây là mô hình chồng giao thức TCP/IP
Cụ thể hóa và lưu đồ dữ liệu vào ra của giao thức (áp dụng cho phần lập trình)
Như vậy phần lập trình sẽ chia ra các module sau:
- Module điều khiển ENC28J60: nằm trong file “enc28j60.c” và file header “enc28j60.h”, thêm file
“enc28j60conf.h” để lưu các config.
- Module giao thức Ethernet: gồm các file: “ethernet.c” và “ethernet.h”, thêm file "packet.h" khai
báo các cấu trúc gói tin sử dụng trong bộ giao thức TCP/IP.