1. Trang chủ
  2. » Luận Văn - Báo Cáo

Giám sát và điều khiển thiết bị qua mạng ethernet trên nền fpga

104 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 104
Dung lượng 1,75 MB

Nội dung

TRƯỜNG ĐẠI HỌC VINH KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài: GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ QUA MẠNG ETHERNET TRÊN NỀN FPGA Giảng viên hướng dẫn: ThS LÊ ĐÌNH CƠNG Sinh viên thực : NGUYỄN HỮU TUYẾN Lớp : 48K ĐTVT 01-2012 NGHỆ AN, MỤC LỤC Trang MỤC LỤC LỜI CẢM ƠN LỜI NÓI ĐẦU TÓM TẮT ĐỒ ÁN DANH MỤC HÌNH ẢNH TRONG ĐỒ ÁN DANH MỤC BẢNG 10 CÁC TỪ VIẾT TẮT TRONG ĐỒ ÁN 10 CHƯƠNG 1: LÝ THUYẾT VỀ ETHERNET VÀ CÁC PHƯƠNG THỨC TRUYỀN TIN DỰA THEO CHUẨN ETHERNET 15 1.1 Lý thuyết Ethernet 15 1.1.1 Kiến trúc giao thức ethernet 15 1.1.2 Cấu trúc mạng kỹ thuật truyền dẫn 16 1.1.3 Cơ chế giao tiếp giao thức ethernet 18 1.1.4 Cấu trúc gói Ethernet 19 1.1.5 Truy cập BUS 20 1.1.6 Chuẩn IEEE 802 24 1.2 Các phương thức truyền tin dựa theo chuẩn Ethernet 26 1.2.1 Họ giao thức TCP/IP 26 1.2.2 Các phương thức truyền tin dựa theo chuẩn Ethernet 30 CHƯƠNG 2: TỔNG QUAN VỀ FPGA VÀ VI ĐIỀU KHIỂN NHÚNG MCROBLAZE 45 2.1 Tổng quan FPGA ngôn ngữ VHDL 45 2.1.1 Khái niệm FPGA 45 2.1.2 Kiến trúc FPGA 47 2.1.3 Trình tự thiết kế chip 53 2.1.4 Ngôn ngữ mô tả phần cứng VHDL 57 2.2 Giới thiệu mạch phát triển SPTARTAN-3E 60 2.1 Giới thiệu MICROBLAZE 61 2.1.1 Kiến trúc 61 2.1.2 Giao tiếp tín hiệu Microblaze 67 2.2 Giới thiệu hãng xilinx cơng cụ lập trình 68 CHƯƠNG 3: XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ QUA MẠNG ETHERNET 71 3.1 Sơ đồ cấu trúc hệ thống giám sát điều khiển thiết bị 71 3.2 Lưu đồ thuật toán 72 3.3 Giao diện điều khiển web server 75 3.3.1 Giới thiệu ngôn ngữ JavaScript 75 3.3.2 Thiết kế giao diện điều khiển hệ thống 77 3.4 Mô kết 77 KẾT LUẬN 81 TÀI LIỆU THAM KHẢO 82 PHỤ LỤC 83 LỜI CẢM ƠN Trước hết, em xin gửi lời cảm ơn sâu sắc đến thầy giáo ThS Lê Đình Cơng, người giúp đỡ nhiều định hướng nghiên cứu,cũng hỗ trợ thiết bị thí nghiệm phục vụ cho nghiên cứu Em xin chân thành cảm ơn thầy cô giáo trường Đại học Vinh giảng dạy em suốt bốn năm qua, đặc biệt thầy cô giáo khoa điện tử viễn thông Và cuối cùng, em xin dành tất lòng biết ơn kính trọng sâu sắc tới bố mẹ em, người sinh thành, nuôi dưỡng em nên người, lo lắng, bảo từ việc nhỏ nhất, tạo điều kiện cho em sống học tập cách tốt để vươn tới ước mơ hồi bão Qua em xin gửi lời cảm ơn tới người bạn em, người em vượt qua bao nhiều khó khăn q trình học tập rèn luyện trường Đại học vinh Mặc dù nỗ lực cố gắng để hoàn thành đồ án tốt nghiệp này, song chắn tránh khỏi sai sót Vì vậy, em mong bảo thầy cô giáo để đề tài tốt nghiệp hoàn thiện Em xin chân thành cảm ơn! Sinh viên thực Nguyễn Hữu Tuyến LỜI NÓI ĐẦU Điều khiển từ xa xu hướng phát triển mang tính quy luật Sự phát triển nhanh chóng khoa học kỹ thuật nói chung ngành điện tử-viễn thơng nói riêng tảng cho xu hướng Vì tiện lợi nó, điều khiển từ xa sử dụng nơi Người sử dụng đâu giới điều khiển phận ngoại vi nhà, cơng sở hay nơi định sẵn….Lúc khơng cịn giới hạn khoảng cách Trong kỹ thuật điều khiển từ xa, môi trường truyền dẫn dây dẫn điện hay khơng khí với tín hiệu truyền tín hiệu điện hồng ngoại hay sóng vơ tuyền Đặc biệt, kỹ thuật hồng ngoại hay vô tuyến khai thác triệt để việc chế tạo thiết bị đầu xa Tuy nhiên kỹ thuật điều khiển dùng tia hồng ngoại vô tuyến bị hạn chế khoảng cách băng thơng Để khắc phục nhược điểm sử dùng phương pháp khác điều khiển từ xa qua mạng ethernet, Internet LAN Ý tưởng sử dụng mạng có sẵn để truyền tín hiệu điều khiển, nhờ mà vấn đề khoảng cách khắc phục Như ta biết, ngày mạng lưới Internet-Ethernet phát triển phổ biến khắp nơi giới Có thể xem bùng nổ Internet ngày giống bùng nổ tivi vào năm 40-50 kỉ trước Chính điều làm cho Internet ngự trị ngóc ngách sống, việc điều khiển từ xa qua mạng trở nên dễ dàng, thuận tiện nhu cầu tất yếu sống đại ngày Đề tài: “Giám sát điều khiển thiết bị qua mạng Ethernet FPGA” giải pháp để giải vấn đề nêu TCP/IP-Ethernet giao thức phát triển mạnh mẽ nay, Module TCP/IP – Ethernet thiết kế FPGA cho phép tích hợp mạnh mẽ với hệ thống ứng dụng sau: - Trong hệ thống mạng truyền thông công nghiệp - Trong hệ thống máy tính nhúng liên kết mạng - Trong hệ thống đo lường, giám sát điều khiển từ xa, đặc biệt là nơi mà người tới - Trong lĩnh vực bảo mật thông tin thiết bị mật mã theo ngành - Trong thiết bị xử lý tin tức truyền số liệu thiết bị quân Nội dung đề tài em bao gồm chương: Chương 1: Lý thuyết Ethernet phương thức truyền tin dựa theo chuẩn Ethernet Chương em trình bày khái niệm, cấu trúc liệu nguyên lý làm việc Ethernet Ngồi trình bày số giao thức giao thức TCP/IP Chương 2: Tổng quan FPGA vi điều khiển nhúng Microblaze Chương em trình bày khái niệm FPGA, cấu trúc ứng dụng FPGA Em nêu sơ lược ngôn ngữ đặc tả phần cứng VHDL quy trình thiết kế chip dựa ngơn ngữ VHDL.Đồng thời em trình bày vi điều khiển nhúng FPGA vi điều khiển Microblaze Mặt khác, em đề cập board mạch Spartan-3E XC3S500E sử dụng đồ án Chương 3: Xây dựng hệ thống giám sát điều khiển thiết bị qua mạng Ethernet FPGA Chương em xây dựng hệ thống giám sát điều khiển thiết bị dựa vào vi điều khiển nhúng Microblaze Và cuối em tổng kết ưu, nhược điểm việc giám sát điều khiển thiết bị FPGA, hướng phát triển đề tài C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an TÓM TẮT ĐỒ ÁN Đề tài tốt nghiệp mà em thực có tên “Giám sát điều khiển thiết bị qua mạng Ethernet FPGA” Trong thời gian thực đề tài em tìm hiểu giao thức Ethernet khái niệm, cách thực hoạt động phương tiện sử dụng mạng Ethernet Em trình bày số giao thức,phương thức truyền tin giao thức TCP/IP dựa theo chuẩn Ethernet.Đồng thời em trình bày khái qt cơng nghệ FPGA số ứng dụng FPGA thực tiễn Em đề cập vi điều khiển nhúng dịng FPGA Xilinx vi điều khiển Microblaze vi điều khiển 32 bit Ngoài em tìm hiểu ngơn ngữ lập trình javascript thiết kế web server để giám sát điều khiển thiết bị Và kết em đặt điều khiển Led giám sát Switch board mạch Spartan-3E XC3S500E Xilinx qua mạng LAN thông qua Switch Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an DANH MỤC HÌNH ẢNH TRONG ĐỒ ÁN Hình 1.1: Ethernet/IEE 802.3 tập chuẩn IEEE 802 16 Hình 1.2: Cấu trúc khung MAC theo IEEE 802.3/ Ethernet 19 Hình 1.3: Minh họa phương pháp CSMA/CD 21 Hình 1.4: Kiến trúc giao thức TCP/IP 26 Hình 1.5:Gói liệu lớp liên kết liệu 30 Hình 1.6: Mơ hình HTTP 31 Hình 1.7: Tổ chức địa IP 33 Hình 1.8: Mạng mặt nạ 34 Hình 1.9 : Cấu trúc gói IP 35 Hình 1.10: Khuôn dạng TCP segment 37 Hình 1.11: Quá trình thiết lập kết nối giao thức TCP 40 Hình 1.12: Khn dạng UDP datagram 44 Hình 2.1: Kiến trúc chung FPGA 47 Hình 2.2: Một logic Block điển hình 48 Hình 2.3: Configurable Logic Blocks 49 Hình 2.4: Programmable Interconnect 50 Hình 2.5: Câu trúc thành phần SPARTAN-3A 53 Hình 2.6: Design Flow 54 Hình 2.7: Qui trình thiết kế chip dựa VHDL 59 Hình 2.8: Kit Spartan-3E 60 Hình 2.9: Các thành phần Kit Spartan-3E 60 Hình 2.10: Sơ đồ khối lõi Microblaze 61 Hình 2.11: Kiến trúc đường ống microblaze 63 Hình 2.12: Định dạng FTU 64 Hình 2.13: Các vùng nhớ Microblaze 66 Hình 2.14: Địa tổng quát nhớ 67 Hình 2.15: Hệ thống BUS điển hình Microblaze 68 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Hình 3.1 Sơ đồ khối hệ thống 71 Hình 3.2: Lưu đồ thuật tốn hệ thống 72 Hình 3.3: Lưu đồ thực thủ tục main_thread 72 Hình 3.4: Lưu đồ thực thủ tục Network_thread 73 Hình 3.5: Lưu đồ thực phương thức conlose_thread 73 Hình 3.6:a) Lưu đồ thực thủ tục Web_application_thread 74 Hình 3.6:b) Lưu đồ thực hàm process_http_reques 74 Hình 3.7: Lưu đồ thực hàm Generate_response 75 Hình 3.8: Giao diện điều khiển giám sát thiết bị 77 Hình 3.9: Hình test LED sáng trạng thái chuyển mạch 1001 78 Hình 3.10: Hình test Led tắt trạng thái chuyển mạch 1101 79 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an DANH MỤC BẢNG Bảng 1.1 : Một số loại cáp truyền Ethernet thông dụng 16 Bảng 2.1: Cấu hình tổng quát tính microblaze qua phiên 62 Bảng 2.2: truy xuất liệu kiểu word 65 Bảng 2.3: Truy xuất liệu kiểu half word 65 Bảng 2.4: Truy xuất liệu kiểu byte 66 10 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an XCACHE_ENABLE_ICACHE(); XCACHE_ENABLE_DCACHE(); /*Bat dau voi kenel va khong tra ve gia tri*/ xilkernel_main(); return 0; } void print_ip(char *msg, struct ip_addr *ip) { print(msg); xil_printf("%d.%d.%d.%d\n\r", ip4_addr1(ip), ip4_addr2(ip), ip4_addr3(ip), ip4_addr4(ip)); } void print_ip_settings(struct ip_addr *ip, struct ip_addr *mask, struct ip_addr *gw) { print_ip("Board IP: ", ip); print_ip("Netmask : ", mask); print_ip("Gateway : ", gw); } void network_thread(void *p) { struct netif *netif; struct ip_addr ipaddr, netmask, gw; /* the mac address of the board this should be unique per board */ unsigned char mac_ethernet_address[] = { 0x00, 0x0a, 0x35, 0x00, 0x01, 0x02 }; netif = &server_netif; /* initliaze IP addresses to be used */ IP4_ADDR(&ipaddr, 192, 168, 1, 10); 90 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an IP4_ADDR(&netmask, 255, 255, 255, 0); IP4_ADDR(&gw, 192, 168, 1, 1); /* print application headers */ print_web_app_header(); /* print out IP settings of the board */ print("\n\r\n\r"); print_ip_settings(&ipaddr, &netmask, &gw); if (!xemac_add(netif, &ipaddr, &netmask, &gw, mac_ethernet_address, EMAC_BASEADDR)) { xil_printf("Error adding N/W interface\n\r"); return; } netif_set_default(netif); /* specify that the network if is up */ netif_set_up(netif); /* start packet receive thread - required for lwIP operation */ sys_thread_new((void(*)(void*))xemacif_input_thread, netif, DEFAULT_THREAD_PRIO); /* Khoi tao lop file he thong cho web servers */ platform_init_fs(); /*bat dau thread web server */ sys_thread_new(web_application_thread, 0, DEFAULT_THREAD_PRIO); return; } 91 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an void console_thread (void *p) { char line [SIZE]; while (1) { get_line (line); xil_printf ("%s\n\r", line); if (strcmp (line, "ls") == 0) { mfs_ls (); } if (strcmp (line, "clear") == 0) { clear_console (); } } return; } int main_thread() { /* Khoi tao Lwip truoc goi phuong thuc sys_thread_new */ lwip_init(); /*Bat ky thread nao su dung lwIP nen duoc tao bang cach su dung phuong thuc sys_thread_new*/ sys_thread_new (network_thread, NULL, DEFAULT_THREAD_PRIO); sys_thread_new (console_thread, NULL, DEFAULT_THREAD_PRIO); return 0; } 92 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Chương trình platform_fs.c #include "mfs_config.h" int platform_init_fs() { /* initialize the memory file system (MFS) image pre-loaded into memory */ mfs_init_fs(MFS_NUMBYTES, (char *)(MFS_BASE_ADDRESS+4), MFS_INIT_TYPE); /* check if we can access index.html */ if (mfs_exists_file("index.html") == 0) { xil_printf("%s: ERROR: unable to locate index.html in MFS\n\r", FUNCTION ); xil_printf("Please check if Memory File System has been loaded, \ and it has index.html file in root directory\n\r"); return -1; } xil_printf("Memory File System initialized\n\r"); return 0; } Chương trinh platform_gpio.c #include "platform_gpio.h" #include "xparameters.h" #if defined(XPAR_LEDS_8BIT_BASEADDR) #define LED_BASE XPAR_LEDS_8BIT_BASEADDR #endif #if defined(XPAR_DIP_SWITCHES_4BIT_BASEADDR) 93 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an #define DIP_BASE XPAR_DIP_SWITCHES_4BIT_BASEADDR #endif Void platform_init_gpios() { /* set led gpio data direction to output */ *(volatile unsigned int*)(LED_BASE + 4) = 0; /* set dip switch gpio data direction to in */ *(volatile unsigned int*)(DIP_BASE + 4) = ~0; /* initialize leds to OFF */ *(volatile int *)(LED_BASE) = 0; } int toggle_leds() { static int state = 0; state = ~state; *(volatile int *)(LED_BASE) = state; return state; } unsigned int get_switch_state() { return *(volatile unsigned int *)(DIP_BASE); } 94 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Chương trinh utils.c #include #include #include "utils.h" #define ROW 50 #define COL 50 void get_line (char *line) { int count = 0; char c; memset (line, '\0', SIZE); while (1) { c = getchar (); if (count == (SIZE - 2) || c == 13) { return; } if (c >= 32) // visible character { line [count] = c; count++; } } } void clear_console () { int i,j; 95 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an for (j = 0; j < ROW; j++) { for (i = 0; i < COL; i++) { xil_printf (" "); } xil_printf ("\n\r"); } } Chương trinh web_utils.c #include #include #include "mfs_config.h" #include "webserver.h" #include "platform_gpio.h" Int is_cmd_led(char *buf) { /* skip past 'POST /' */ buf += 6; /* then check for cmd/ledxhr */ return (!strncmp(buf, "cmd", 3) && !strncmp(buf + 4, "ledxhr", 6)); } int is_cmd_switch(char *buf) { /* skip past 'POST /' */ 96 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an buf += 6; /* then check for cmd/ledxhr */ return (!strncmp(buf, "cmd", 3) && !strncmp(buf + 4, "switchxhr", 9)); } void extract_file_name(char *filename, char *req, int rlen, int maxlen) { char *fstart, *fend; /* first locate the file name in the request */ /* requests are of the form GET /path/to/filename HTTP */ req += strlen("GET "); if (*req == '/') req++; fstart = req; /* start marker */ while (*req != ' ') /* file name finally ends in a space */ req++; fend = req-1; /* end marker */ if (fend < fstart) { strcpy(filename, "index.html"); return; } /* make sure filename is of reasonable size */ if (fend - fstart > maxlen) { *fend = 0; strcpy(filename, "404.html"); printf("Request filename is too long, length = %d, file = %s (truncated), max = %d\n\r", (fend - fstart), fstart, maxlen); 97 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an return; } /* copy over the filename */ strncpy(filename, fstart, fend-fstart+1); filename[fend-fstart+1] = 0; /* if last character is a '/', append index.html */ if (*fend == '/') strcat(filename, "index.html"); } char *get_file_extension(char *fname) { char *fext = fname + strlen(fname) - 1; while (fext > fname) { if (*fext == '.') return fext + 1; fext ; } return NULL; } int generate_http_header(char *buf, char *fext, int fsize) { char lbuf[40]; strcpy(buf, "HTTP/1.0 200 OK\r\nContent-Type: "); if (fext == NULL) strcat(buf, "text/html"); /* for unknown types */ else if (!strncmp(fext, "htm", 3)) strcat(buf, "text/html"); /* html */ else if (!strncmp(fext, "jpg", 3)) 98 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an strcat(buf, "image/jpeg"); else if (!strncmp(fext, "gif", 3)) strcat(buf, "image/gif"); else if (!strncmp(fext, "js", 2)) strcat(buf, "text/javascript"); else if (!strncmp(fext, "pdf", 2)) strcat(buf, "application/pdf"); else if (!strncmp(fext, "css", 2)) strcat(buf, "text/css"); else strcat(buf, "text/plain"); /* for unknown types */ strcat(buf, "\r\n"); sprintf(lbuf, "Content-length: %d", fsize); strcat(buf, lbuf); strcat(buf, "\r\n"); strcat(buf, "Connection: close\r\n"); strcat(buf, "\r\n"); return strlen(buf); } Chương trình webserver.c 99 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an #include #include #include "xmk.h" #include "lwip/inet.h" #include "lwip/sockets.h" #include "lwipopts.h" #include "webserver.h" #include "platform_gpio.h" /* thread spawned for each connection */ void process_http_request(int sd) { int read_len; int RECV_BUF_SIZE = 600; unsigned char recv_buf[RECV_BUF_SIZE]; /* read in the request */ if ((read_len = read(sd, recv_buf, RECV_BUF_SIZE)) < 0) return; /* respond to request */ generate_response(sd, recv_buf, read_len); /* close connection */ close(sd); } /* http server */ int web_application_thread() { int sock, new_sd; 100 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an struct sockaddr_in address, remote; int size; /* initialize devices */ platform_init_gpios(); /* create a TCP socket */ if ((sock = lwip_socket(AF_INET, SOCK_STREAM, 0)) < 0) return; /* bind to port 80 at any interface */ address.sin_family = AF_INET; address.sin_port = htons(80); address.sin_addr.s_addr = INADDR_ANY; if (lwip_bind(sock, (struct sockaddr *)&address, sizeof (address)) < 0) return; /* listen for incoming connections */ lwip_listen(sock, 5); size = sizeof(remote); while (1) { new_sd = lwip_accept(sock, (struct sockaddr *)&remote, &size); process_http_request(new_sd); } } void print_web_app_header() { xil_printf("\n\r\n\r -DO AN TOT NGHIEP DAI HOC \n\r"); xil_printf("Open up your favorite browser and type: \n\r"); xil_printf("http://192.168.1.10\n\r"); } Phụ lục 2: Mã nguồn web server thiết kế ngôn ngữ JavaScript: 101 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC TRƯỜNG ĐẠI HỌC VINH KHOA ĐIỆN TỬ VIỄN THÔNG

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC 102 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đề tài: GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ QUA MẠNG ETHERNET TRÊN NỀN FPGA

GVHD: ThS Lê Đình Cơng

SVTH: Nguyễn Hữu Tuyến

LỚP: 48K-ĐTVT

ĐIỀU KHIỂN THIẾT BỊ

Tín hiệu điều khiển thiết bị từ máy tính xuống board thể qua hàng Led

LEDs are now OFF.

GIÁM SÁT THIẾT BỊ

Máy tính giám sát thiết bị thể qua việc giám sát Switch

1111

103 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn

Ngày đăng: 22/08/2023, 00:15

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w