Thư viện lwIP hỗ trợ truyền thông Ethernet

Một phần của tài liệu Luận Văn: Xây dựng hệ thống hiển thị thông tin hình ảnh thông qua mạng Internet (Trang 55)

lwIP (Lightweight TCP/IP Stack) là thư viện mã mở về TCP/IP Stack, thực thi các giao thức mạng (TCP/IP, UDP/IP, ICMP, ARP…) trên một chip hoặc lõi Ethernet được phát triển cho các hệ thống nhúng. Để sử dụng thư viện lwIP, cấu hình phần cứng yêu cầu vi xử lý PPC450 hoặc MicroBlaze; lõi IP điều khiển Ethernet EMAC

xps_ethernetlite (Ethernet Lite MAC) hoặc xps_ll_temac (TMAC); một bộ Timer sử

dụng IP core xps_timer và bộ điều khiển ngắt sử dụng xps_intc; các ngắt từ Timer và EMAC cần được kết nối tới Interrupt controller. Tất cả các yêu cầu cấu hình phần cứng đều được đáp ứng bởi hệ thống SOC mà chúng ta đã xây dựng.

Sử dụng lwIP có 2 chế độ hoạt động là Raw và Socket, các bảng dưới đây mô tả một số hàm API sử dụng trong chế độ Socket.

Bảng 3-3: Mô tả hàm lwip_socket [4]

Prototype int lwip_socket (int domain, int type, int protocol );

Parameters domain:

kiểu domain của socket

type: giá trị SOCK_DGRAM hoặc SOCK_STREAM tùy vào giao

thức truyền là UDP hay TCP

protocol: thường có giá trịlà 0

Description Hàm này tạo ra một socket với các tham số về domain, type và protocol như đã cung cấp và trả về socket descriptor nếu thành công. Giá trị trả về là tham số cần thiết khi muốn thực thi các hàm khác vì vậy hàm này cần được gọi đầu tiên.

Return Giá trị trả về:

> 0: tạo socket thành công và trả về Socket descriptor của socket đã tạo

<=0: lỗi tạo socket, nguyên nhân có thể do lwIP không hỗ trợ domain hoặc type hoặc protocol đã cung cấp.

Comment Ví dụ:

sd = socket(AF_INET, SOCK_DGRAM, 0);

55

Bảng 3-4: Mô tả hàm lwip_blind [4]

Prototype

int lwip_bind (int s, struct sockaddr *name, socklen_t namelen );

Parameters - s: Socket descriptor được tạo ra bởi lwip_socket()

- name: trường thông tin về địa chỉ

- namelen: kích thước của name

Description

Kết nối socket s với một địa chỉ chứa trong cấu trúc name. Nếu thành

công, mọi dữ liệu đến từ địa chỉ name sẽ thực thi với socket s

Return Giá trị trả về:

ết nối thành công. <=0: kết nối thất bại.

Comment - Ví dụ:

struct sockaddr_in address; address.sin_family = AF_INET; address.sin_port = htons(80); (adsbygoogle = window.adsbygoogle || []).push({});

address.sin_addr.s_addr = INADDR_ANY;

lwip_bind(sock, (struct sockaddr *)&address, sizeof

(address);

Includes socket.h

Bảng 3-5: Mô tả hàm lwip_close [4]

Prototype int lwip_close(int sd);

Parameters sd: socket descriptor được tạo ra bởi lwip_socket()

Description Hàm này hủy mộ t socket được tham chiếu bởi sd.

Return Giá trị trả về:

ực hiện thành công. ỗi.

Comment

56

Một phần của tài liệu Luận Văn: Xây dựng hệ thống hiển thị thông tin hình ảnh thông qua mạng Internet (Trang 55)