Tim hiểu về embedded web server tren vi diều khiển

14 94 0
Tim hiểu về embedded web server tren vi diều khiển

Đ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

Tìm hiểu Embedded Web server Vi Điều Khiển THỨ SÁU, 22 THÁNG 2011 07:46 QUẢN TRỊ VIÊN CƠ BẢN VỀ MCU likes dislikes Chúng ta biết đến web server máy tính server lớn, tương đối quen thuộc kỷ nguyên web Tuy nhiên,việc thực web server hệ thống nhúng phát triển gần Bởi việc thực server vốn cài đặt máy tính trước lên hệ thống nhúng khơng đơn giản, hệ thống vi điều khiển Cùng với phát triển hệ thống nhúng, vi xử lý Các ứng dụng internet tích hợp vào hệ thống nhúng, hay hệ vi xử lý Và webserver nhúng điển hình hay gặp router kết nối ADSL gần có mặt nhà đình Chúng ta tưởng tượng, thiết bị bé bàn tay (hoặc nhỏ hơn) có khả kết nối với internet đưa tất thứ mà bạn muốn lên mạng internet, từ cho phép bạn kiểm sốt, điều khiển , đo đạc, quản lý từ đâu, từ thiết bị nào, miễn bạn có kết nối internet, mở cho khái niệm điều khiển, quản lý kể sống, sống bốn chiều (4D life) Trong sống đó, tất sống môi trường thực, việc thu thập thông tin, việc tương tác lại thông qua chiều khác, giới internet Nó khơng giống với giới trước ta biết, thơng tin ta có từ sống, công việc ta làm thao tác trực tiếp, công việc quản lý phải thực trực tiếp Quay trở lại với web server nhúng, thiết bị dựa hệ thống nhúng, hay hệ vi xử lý mà giao tiếp với internet cấp độ vật lý (kết nối với đường dây mạng hay wifi hay GPRS hay 3G ) đồng thời phải hỗ trợ giao thức mạng (internet protocol hay TCP/IP Protocol) cho phép truy cập web, gởi mail, Các hệ thống thường sử dụng Chip hỗ trợ điều khiển ethernet/internet tích hợp với thư viện TCP/IP viết C kèm, cho phép tích hợp vào hệ thống lớn Một số Kit phát triển nhúng giao tiếp với Internet/LAN Titans technology (www.titans.com.vn) hỗ trợ TCP/IP : Pegasus X Dev Kit EP1 Dev Kit EP2 Dev Kit EC10 Ethernet Controller Các thư viện TCP/IP phải tuân thủ theo tiêu chuẩn nghiêm ngặt quy định cộng đồng phát triển hạ tầng mạng internet Tuy nhiên, việc tìm hiểu sử dụng chúng nào, không cần quan tâm đến mã nguồn chúng Hình sau mơ tả vài thiết bị web server nhúng ứng dụng mô tả khả chúng Bộ giao thức TCP/IP Bộ giao thức TCP/IP cho phép tất hệ thống kích thước, chạy loại hệ điều hành khác nhau, chẳng chạy hệ điều hành cả, giao tiếp với thơng qua mạng kết nối chung Dạng gọi worldwide Internet, mạng diện rộng Wide Area Network (WAN) hàng triệu máy tính Phân lớp Bộ giao thức TCP/IP Bộ giao thức TCP/IP bao gồm nhiều giao thức lớp khác (layers) Lý người ta phải phân lớp giao thức cho phép thực hiệu nhiệm vụ lớp, với mức độ phức tạp tăng dần theo đòi hỏi ứng dụng Ví dụ lớp mạng cho phép thực hiệu việc phân phối liệu tới địa mọng muốn mạng cách hiệu xác Nó giống việc phân cấp cơng việc theo cấp độ khác nhau, ví dụ người phát thư (lớp mạng) có cơng việc phân phát thư đến địa ghi mà không cần biết nội dung chúng Còn (cấp ứng dụng) người tạo nội dung thư đóng gói chúng theo tiêu chuẩn (protocol) bưu điện ( tức người đưa thư) Các phương tiện vận chuyển (máy bay, xe, tàu ) đóng vai trò lớp vật lý để vận chuyển thư tới đích, phía nhận, có q trịnh tương tự, ngược lại Chú ý, lớp, cần có giao thức để hai lớp tương đương hai bên hiểu nhau, ví dụ người gởi thư người đọc thư phải sử dụng ngôn ngữ, hai bưu điện phát nhận phải sử dụng giáo thức phân phát thư tín để tránh làm mát thông tin Mặt khác, hai lớp gần (tiếp xúc với nhau) phải có giao diện trao đổi interface để hai lớp gần hiểu nhau, ví dụ người gởi thư người thu/phát thư phải sử dụng cách thức để không làm mát thơng tin Mơ hình TCP/IP thơng thường bao gồm lớp hình sau : Lớp ứng dụng (Application Layer) Lớp ứng dụng điều khiển ứng dụng chung chung bao gồm :  Telnet for remote login  Browser support for displaying web pages  File transfer applications  E-mail applications  Ba lớp lại hồn tồn khơng biết ứng dụng mà chúng phục vụ, chúng đơn hỗ trợ việc thơng tin liên lạc hai chương trình ứng dụng Lớp vận chuyển (Transport Layer) Lớp vận chuyển bao gồm hai lớp UDP TCP ứng vói hai kiểu truyền liệu tin cậy không tin cậy Lớp TCP cho phép truyền liệu tin cậy hai hosts, phải hõ trợ cách thức kiểm soát liệu, điều khiển luồng, kiểm soát lỗi , gói liệu truyền đảm bảo lớp này, nên lớp úng dụng không cần phải quan tâm đến việc kết nối, lỗi , liệu Và lớp TCP tương đối phức tạp, phải đảm bao liệu thông suốt hai ứng dụng môi trường mạng phức tạp không ổn định Lớp UDP đơn giản hơn, chúng có nhiệm vụ gởi gói tới nơi nhận mà khơng quan tâm đến việc chúng có tới nơi hay khơng, mạng internet cố gắng đưa chúng tới nơi cần đến Chúng ta xem TCP giống việc chuyển phát nhanh bảo đảm UDP chuyển phát nhanh không bảo đảm Lớp mạng (Network Layer) Lớp mạng thường gọi lớp internet (hay lớp IP - Internet Protocol) Nó điều khiển việc di chuyển gói mạng, định tuyến gói tin , giao thức IP ICMP (Internet Control Message Protocol) cung cấp lớp mạng giao thức TCP/IP Protocol Suite Lớp liên kết liệu (Data-link Layer) Lớp liên kết liệu, hay gọi lớp giao tiếp mạng ( Network Interface Layer ) lớp chịu trách nhiệm giao tiếp với card giao tiếp mạng (network interface card) hay điều khiển kết nối mạng (network controller) Chúng điều khiển trực tiếp phần cứng để chuyển liệu môi trường truyền vật lý cáp mạng, wifi,3G Hình sau giới thiệu ví dụ hai host mạng LAN (Local Area Network ) Ethernet trao đổi liệu sử dụng giao thức HTTP (một giao thức lớp ứng dụng) Chúng ta ý rằng, mạng internet, mơ hình trao đổi liệu hai ứng dụng thường gặp môi trường client-server , nghĩa server lưu trữ liệu cung cấp số dịch vụ cho phía client, client truy xuất để lấy liệu ứng dụng mình, cập nhật liệu lên server Thơng dụng ứng dụng web, web server (nằm máy chủ server hay thiết bị web server nhúng) cung cấp dịch vụ web, trường hợp này, cho phép client truy xuất trang web đặt web server Trong client (ví dụ web browser) truy xuất web server theo giao thức http giao thức TCP Mỗi lớp có vài giao thức để liên lạc với lớp phía bên Thơng thường có lớp ứng dụng thiết kế người dùng, lại ba lớp thường thực thư viện, hay driver nhân hệ điều hành Địa IP (IP address) Thực chất TCP/IP giao thức mạng, giúp giải vấn đề truyền thông tin mơi trường mạng giúp cho hai ứng dụng nối chuyện với môi trường suốt, thể chúng nối trực tiếp với Và vậy, vấn đề định địa mạng vấn đề quan trọng (nhất mạng lớn) thiết bị kết nối trực tiếp với thông qua giao tiếp vật lý, chúng định địa đại MAC (địa thực phần cứng) hay gọi địa lớp vật lý Nếu thiết bị kết nối với cấp độ lớp mạng, chúng phải định địa địa khác, địa mạng (địa IP) Về mặt lý thuyết, thiết bị giao tiếp với internet phải có địa internet cố định Và điều cho phép ứng dụng mạng LAN triển khai mạng internet mà khơng cần thay đổi Tuy nhiên, địa IP có 32-bit, số lượng thiết bị giao tiếp với internet lên tới số hàng tỷ tỷ Do nảy sinh nhiều vấn đề rắc rối, để giải vấn đề đấy, người ta chia địa IP thành lớp khác nhau, sử dụng kỹ thuật NAT port cho phép nhiều máy tính sử dụng địa IP mà không làm ảnh hưởng đến trao đổi liệu, không cần phải thay đổi giao thức TCP/IP (ví dụ mở rộng thành IPv6) Hình sau cấu trúc phân lớp đại IP : Các địa internet quản lý tố chức Internet Network Information Center (NIC) Hình sau tầm lớp địa IP Địa IP phân làm ba loại :  Unicast : địa trỏ tới host  Broadcast : địa gởi tới tất host mạng nội  Multicast : đại trỏ tới nhóm host Số hiệu cổng (Port number) Với hệ đa nhiệm, nhiều chương trình chạy ứng dụng mạng khác nhau, giao thức TCP/IP phải có khả hỗ trợ nhiều ứng dụng lúc Và số hiệu cổng dùng để xác định ứng dụng tạo liệu, ứng dụng nhận liệu Số hiệu cổng số 16bit nằm header gói tin TCP UDP, dùng để xác nhận ứng dụng gởi liệu vàứng dụng nhận liệu Vì phần header gói tin UDP TCP có số hiệu cổng nguồn (source port number) số hiệu cổng đích (destination port number) Một số ứng dụng tiếng (như http server hay web server telnet server có số hiệu cổng riêng để tránh trùng lặp với ứng dụng khác) Hầu hết c63ng < 1024 có ứng dụng riêng, việc quy định chúng quản lý tổ chức IANA (the Internet Assigned Numbers Authority) Và phải tuân theo muốn giao tiếp với giới Dĩ nhiên ta hồn tồn tự quy định cổng sử dụng chúng mục đích ứng dụng nào, muốn, miễn mạng nội chúng ta, nhiên điều khơng nên, nhiều cổng khác chưa ký sử dụng Thông thường, client không quan tâm nhiều đến số hiệu cổng mà sử dụng, cần biết port chưa có dùng được, client dùng port người dùng chạy chương trình client, sau chạy xong, trả lại cổng cho hệ thống, đó, server phải hoạt động liên tục để chờ yêu cầu từ client, chúng cần cổng có số hiệu cố định biết đến tất client, giống địa quan cơng an phải rõ ràng khơng thay đổi để người dân cần tới địa đấy, người dân khơng cần phải có địa cố định Việc phân biệt đại IP số hiệu cổng gần giống địa khách sạn thành phố địa phòng khách sạn Sự kết hợp địa IP số hiệu cổng thường gọi socket Đóng gói liệu (Encapsulation) Khi liệu ứng dụng gởi thông qua TCP, liệu gởi qua lớp giao thức TCP/IP tới chúng thành chuỗi bit truyền trogn mạng, lớp chịu trách nhiệm công việc riêng định tuyến, chia thành nhiều gói nhỏ, kiểm sốt luồng, kiểm sốt lỗi, Và vậy, chúng phải thêm thơng tin vào gói tin, gọi header trailers đầu liệu Nó giống việc ta gởi thư, ta việc soạn nội dung thư, thư ký :) bỏ vơ phong bì, dán tem lại, ghi thêm thông tin cần thiết địa người gởi, người nhận bỏ vào thùng thư Nhân viên đưa thư bỏ thư vào gói lớn hơn, thêm thông tin theo tiêu chuẩn bưu điện dễ hiểu phải khơng Chỉ có điều cần nhớ header lớp liệu lớp nó, đối xử liệu lớp hình sau trình cách cụ thể : Một vài thuật ngữ cần phải giải thích: • TCP segment: đơn vị liệu lớp TCP gởi xuống cho lớp IP • IP datagram: Là đon vị liệu mà lớp IP gởi vào mạng • Frame: chuỗi byte mà thực truyền mơi trường vật lý ethernet Ngồi liệu mà ứng dụng gởi cho nhau, giao thức TCP/IP tự động gởi gói tin để xác định tình trạng mạng, quản lý thơng tin mạng ví dụ gói tin ARP/RARP Đối với header lớp, ví dụ IP header, chúng chèn vào thông tin để giải vấn đề mà lớp phải chịu trách nhiệm Việc quy định thơng tin (hay gọi field) header tạo nên gọi giao thức lớp Nghĩa giao thức lớp đơn giản việc định định nghĩa trường (fields) header mà chúng thêm vào liệu Tuy nhiên việc định nghĩa không đơn giản :), công việc học chúng thực cho phù hợp với quy định Tiếp theo nghiên cứu qua header lớp lớp IP, lớp UDP, lớp TCP Sau phân tích tồn q trình hoạt động web server (hay http server) dựa kiến thức mà ta trình bày IP : Internet Protocol (Giao thức Internet) Lớp IP tảng tất dịch vụ internet, đảm bảo việc truyền thông tin node mạng, giao thúc cao TCP UDP giao thức cần thiết để hình thành lớp ứng dụng Hiện hầu hết tất dịch vụ internet thoại, video, television dần chuyển sang mạng IP (VoIP, IPTV, ).Do vậy, tìm hiểu IP mang tính bắt buộc có nhiều ý nghĩa cho nghiên cứu sau Các giao thức TCP, UDP ICMP truyền liệu dựa mạng IP dạng gói tin IP (datagram) Mạng IP cung cấp dịch vụ phân phối gói liệu phi kết nối (connectionless) , không tin cậy theo chế Best Effort (Cố gắng tối đa) Không tin cậy mang hàm ý khơng có bảo đảm gói tin IP đến nơi cần đến Khi có lỗi sảy ra, giao thức IP có thuật tốn điều khiển lỗi đơn giản : hủy liệu vàco61 gắng gởi gói tin ICMP ngược trở nguồn để thông báo lỗi xảy Nhưng trớ trêu chẳng có đảm bảo gởi tin ICMP đến nơi cần đến Như dịch vụ yêu cầu mức độ tin cậy cao phải thực lớp cao Nó giống việc đảm bảo liệu không mát môi trường không ổn định cách áp dụng kỹ thuật lớp cao thiết lập kết nối, gởi lại gói, sửa lỗi, Còn thuật ngữ phi kết nối có nhắc đến có nghĩa giao thức IP khơng thiết lập đường vận chuyển liệu cố định, đơn thuẩn đẩy gói liệu khỏi mạng với địa đích đến, node định tuyến thực giải thuật để đưa chúng tới nơi cần đến, giải thuật định tuyến độc lập , gói tin IP phân phát khơng theo trật tự Ví dụ, ta có gói hàng (dữ liệu) cần vận chuyển từ nam bắc tuyến xe bus.Vì kích thước giới hạn, gói hàng phải phân thành gói hàng nhỏ (gói liệu IP), gói đánh số thứ tự ghi địa nguồn địa đích, gói hàng ta giao bến xe bus, gói hàng gởi theo tuyến xe bus khác tùy thời điểm mà chúng gởi bến (node mạng) tùy tình trạng giao thơng (traffic network) , gói trải qua hành trình khác nhau, điểm đích đến cuối cùng, dĩ nhiên đường chúng bị mát mà chịu trách nhiệm cả, có lúc, gói tin gởi trước lại đến sau gói tin gởi sau, tình trạng mạng khơng thể xác định IP Header Hình sau đ5inh dạng gói tin IP Kích thước phần IP header chèn thêm vào gói liệu 20 bytes, trừ có thêm option bit có trọng số cao bit đánh số bên trái, bit có trọng số thấp bit thứ 31 bên tay phải.lần lượt byte giá trị 32-bit truyền mạng theo thứ tự : bits - 7, sau bits - 15 tiếp tục Đây gọi trật tự byte kiểu Big-Endian (ta có kiểu Little-Endian theo thứ tự ngược lại) trường IP headerđược mô tả sau : Version : Phiên IP 4, IP thường gọi IPv4 Header Length tổng số lượng 32-bit words (4 bytes / word) phần header, tính phần Options Thường giới hạn khơng q 60 bytes (max : 15*4=60) Type-of-service (TOS) Là trường bit, định nghĩa chất lượng dịch vụ, bao gồm bit : minimize delay, maximize throughput, maximize reliability minimize monetary cost Chỉ bit bật lên 1.Nếu bits 0, phục vụ mức độ bình thường Mặc dù ta set bit để ưu tiên gói liệu ta, nhiên ưu tiên thực có xảy hay khơng phụ thuộc vào nhà mạng cung cấp sở hạ tầng mạng internet Vì dụ như, thuộc diện nghèo, ưu tiên giảm học phí, nhiên thực tế, lúc ta hưởng ưu tiên đấy, điều dễ hiểu, mơi trường mang tính cơng cộng internet, để đảm bảo ưu tiên thực sự, bạn phải có ký kết với phía cung cấp hạ tầng mạng kèm thao khoản chi phí định Total Length Trường thể tThis is the total length of the IP datagram in bytes Using this field and the header length field, we know where the data portion of the IP datagram starts and its length Since this is a 16-bit field, the maximum size of an IP datagram is 65535 bytes Identification This field uniquely identifies each datagram sent by a host It normally increments by one each time a datagram is sent Time-to-live Time-to-live sets an upper limit on the number of routers through which datagram can pass It limits the lifetime of the datagram It is initialized by the sender to some value (often 32 or 64) and decrements by one in every router that handles the datagram When this field reaches 0, the datagram is discarded, and the sender is notified with an ICMP message This prevents the packet from getting caught in eternal routing loops Protocol Protocol is used by IP to demultiplex incoming datagrams It identifies which protocol gave the data for IP to send Header Checksum The Header checksum is calculated over the IP header only It does not cover any data that follows the header ICMP, UDP and TCP all have a checksum in their own headers to cover their own header and data Source IP address the destination IP address Every IP datagram contains the source IP address and the destination IP address These are 32-bit values The Option Field This is a variable-length list of optional information for the datagrams The options are rarely used and not all hosts and routers support the option .còn tiếp Hồng Nguyễn (biên soạn) References : - AVR460: Embedded Web Server (www.atmel.com) - TCP/IP Lean Web Server for Embedded Systems - 2nd Edition , Jeremy Bentham Điều khiển thiết bị qua internet sử dụng UDP server/client CHỦ NHẬT, 09 THÁNG 10 2011 09:53 QUẢN TRỊ VIÊN likes dislikes Như biết, EP2 cho phép nhúng web server chip ta thực ứng dụng điều khiển dựa web (web-based application) Tuy nhiên, EP2 hỗ trợ UDP server chip, nghĩa ta sử dụng phần mềm UDP Client để giao tiếp với EP2theo giao thức ứng dụng định nghĩa EP2 UDP Bài viết nhằm demo ứng dụng sử dụng phần mềm PC để giao tiếp với EP2 (software-based application) Thiết bị sử dụng EP2 Titans Technology (www.titans.com.vn) với firmware 1.3 Và phần mềm UDP Client phát triển Hlab Ethernet Pic (EP2) : Hỗ trợ Ethernet 10Mbps 20 Digital IOs sử dụng cho nhiều mục đích kênh ngõ vào Analog (lấy mẫu ADC 10-bits) Tích hợp nhớ Flash ngồi 4Mbit, cho phép lưu trang web lớn Giao tiếp UART (null modem) cho phép điều khiển cấu hình thơng qua cổng console Có thể upload trang web lên web server thơngqua gao thức FTP Nguồn ổn áp xung cho phép mạch hoạt động ổn định, tiêu thụ điện thấp Hỗ trợ giao thức hầu hết giao thức TCP/IP giao thức HTTP, FTP, UDP, TCP, ARP, ICMP… Hỗ trợ DHCP cho phép thu địa chị IP tự động từ Modem Router Cho phép cấu hình thông số địa IP, DHCP, Gateway, password… Có thể update firmware thơng qua cổng ICSP Ứng dụng điều khiển từ xa sử dụng giao thức UDP : Giao thức mà ta sử dụng UDP, dựa lớp IP Giao thức ứng dụng tự định nghĩa, trường hợp này, định nghĩa EP2's firmware Mơ hình sử dụng client/server hình sau : Sau để có ứng dụng hoàn chỉnh, ta ghép nối EP2 với module điều khiển thiết bị 220V BTA12M hình sau Sau đó, phải phát triển ứng dụng UDP Client môi trường PC, cung cấp phần mềm UDP client viết C# cho bạn để test ứng dụng với EP2, cung cấp source code phần mềm UDP client viết VB6 cho bạn tự phát triển ứng dụng riêng dựa giao thức ứng dụng định nghĩa sẵn Phần mềm UDP Client Trên PC (C# dotnet), cho phép điều khiển từ xa giao thức UDP.bạn download : HUDP Client 1.1.00 Phần mềm UDP Client viết Visual Basic 6, download : VB6 source code example Và sau thực ứng dụng điều khiển thiết bị sử dụng giao thức UDP tiện lợi Giao thức ứng dụng dựa UDP: EP2 sử dụng giao thức UDP, sử dụng port 30000 chung cho kênh điều khiển kênh thông tin.EP2 hỗ trợ giao thức discovery cho phép dò thiết bị tương thích có mạng gUDP.UDPClient = new UdpClient(); gUDP.EP = new System.Net.IPEndPoint(System.Net.IPAddress.Parse("255.255.255.255"), 30000); byte[] Msg = Encoding.ASCII.GetBytes("Discovery : Co o khong?"); gUDP.UDPClient.Send(Msg, Msg.Length, new System.Net.IPEndPoint(System.Net.IPAddress.Parse("255.255.255.255"), 30000)); UDP client gởi thông điệp broadcast "Discovery : Co o khong ?" , thiết bị có mạng, trả response bao gồm :  Địa IP  Tên hostname Dựa vào client biết UDP server kết nối mạng Các giao thức điều khiển :  Gởi tín hiệu điều khiển thiết bị : "Hlab" + số thứ tự thiết bị : vd Hlab1 : bật/tắt thiết bị  Nếu nhận thành công, EP2 trả trạng thái : "S-" + trạng thái thiết bị + " t=" + giá trị nhiệt độ  Gởi yêu cầu xem trạng thái thiết bị : "Status"  Nếu nhận thành công, EP2 trả trạng thái : "C-" + trạng thái thiết bị + trạng thái thiết bị + + trạng thái thiết bị ... server hay thiết bị web server nhúng) cung cấp dịch vụ web, trường hợp này, cho phép client truy xuất trang web đặt web server Trong client (ví dụ web browser) truy xuất web server theo giao thức... References : - AVR460: Embedded Web Server (www.atmel.com) - TCP/IP Lean Web Server for Embedded Systems - 2nd Edition , Jeremy Bentham Điều khiển thiết bị qua internet sử dụng UDP server/ client CHỦ... client -server , nghĩa server lưu trữ liệu cung cấp số dịch vụ cho phía client, client truy xuất để lấy liệu ứng dụng mình, cập nhật liệu lên server Thông dụng ứng dụng web, web server (nằm máy chủ server

Ngày đăng: 25/09/2019, 22:15

Từ khóa liên quan

Mục lục

  • Tìm hiểu về Embedded Web server trên Vi Điều Khiển

    • Bộ giao thức TCP/IP

    • Phân lớp của Bộ giao thức TCP/IP

    • Lớp ứng dụng (Application Layer)

    • Lớp vận chuyển (Transport Layer)

    • Lớp mạng (Network Layer)

    • Lớp liên kết dữ liệu (Data-link Layer)

    • Địa chỉ IP (IP address)

    • Số hiệu cổng (Port number)

    • Đóng gói dữ liệu (Encapsulation)

    • IP : Internet Protocol (Giao thức Internet)

    • IP Header

    • Điều khiển thiết bị qua internet sử dụng UDP server/client

      •  Ethernet Pic 2 (EP2) :

      •  Ứng dụng điều khiển từ xa sử dụng giao thức UDP :

      •  Giao thức ứng dụng dựa trên UDP:

Tài liệu cùng người dùng

Tài liệu liên quan