You are on page 1of 15

90

80
70
60
50 Đông
40 Tây
30 Bắc
20
10
0
Quý 1 Quý 2 Quý 3 Quý 4

I/ Mục Tiêu của Bài Tập :


Tìm hiểu VĐK có chức năng hỗ trợ Ethernet.
II/ Giới Thiệu Về Ethernet và Vi Điều Khiển Hỗ Trợ kết nối
Ethernet -ENC28J60
 Ethernet là một tập các công nghệ mạng dựa trên các khung dữ liệu dành cho
mạng LAN.
 Ethernet đã được chuẩn hóa thành IEEE 802.3 , gồm có 2 phần chính là phần
cứng và phần mềm
 Ethernet đã được chuẩn hóa thành IEEE 802.3 , gồm có 2 phần chính là phần
cứng và phần mềm
Ưu điểm của chuẩn Ethernet so với các chuẩn truyền dữ liệu bình thường
(RS 232 , USB) :
o Khoảng cách xa
o Tốt độ cao ( 100MpS)
o Kết nối được nhiều thiết bị
o Hỗ trợ khung dữ liệu phức tạp ( chiều dài khung dữ liệu có thể lên tới
1500 Byte)
1/ Cấu Trúc Chính Của Chuẩn Ethernet :
Để truyền được dữ liệu đi xa và với tốc độ nhanh , chuẩn để kết nối Ethernet(
chuẩn IEEE 802.3) được xây dựng rất phức tạp kể cả phần cứng lẫn phần mềm.
Để dễ dàng trong việc xây dựng cũng như sử dụng , người ta xây dựng chuẩn theo
lớp (layer). Chuẩn IEEE có 5 lớp như sau :

1
1.1/- Lớp ứng dụng (Application Layer) : HTTP

Là giao diện giữa các chương trình ứng dụng của người dùng và mạng. Lớp
Application xử lý truy nhập mạng chung, kiểm soát luồng và phục hồi lỗi. Lớp này
không cung cấp các dịch vụ cho lớp nào mà nó cung cấp dịch vụ cho các ứng dụng
như : truyền file, gởi nhận e-mail, Telnet, HTTP, FTP, SMTP, …

1.2/- Lớp vận chuyển (Transport Layer) : TCP , UDP

Lớp vận chuyển phân đọan dữ liệu từ hệ thống máy truyền và tái thiết lập dữ
liệu vào một luồng dữ liệu tại hệ thống máy nhận đảm bảo rằng việc bàn giao các
thông điệp giữa các thiết bị đáng tin cậy. Dữ liệu tại lớp này gọi là segment. Lớp
này thiết lập, duy trì và kết thúc các mạch ảo đảm bảo cung cấp các dịch vụ sau :

a/- Xếp thứ tự các phân đoạn :

Khi một thông điệp lớn được tách thành nhiều phân đoạn nhỏ để bàn giao, lớp
vận chuyển sẽ sắp xếp thứ tự các phân đoạn trước khi ráp nối các phân đoạn thành
thông điệp ban đầu.

b/- Kiểm soát lỗi :

Khi có phân đoạn bị thất bại, sai hoặc trùng lắp, lớp vận chuyển sẽ yêu cầu
truyền lại.

c/- Kiểm soát luồng :

Lớp vận chuyển dùng các tín hiệu báo nhận để xác nhận. Bên gởi sẽ không
truyền đi phân đoạn dữ liệu kế tiếp nếu bên nhận chưa gởi tín hiệu xác nhận rằng
đã nhận được phân đoạn dữ liệu trước đó đầy đủ.

1.3/- Lớp mạng (Network Player) :

Lớp chịu trách nhiệm lập địa chỉ các thông điệp, diễn dịch địa chỉ và tên logic
thành địa chỉ vật lý đồng thời nó cũng chịu trách nhiệm gởi các packet từ mạng
nguồn đến mạng đích. Lớp này quyết định đường đi từ máy tính nguồn đến máy
tính đích. Nó quyết định dữ liệu sẽ truyền trên đường nào dựa vào tình trạng, ưu
tiên dịch vụ và các yếu tố khác. Nó cũng quản lý lưu lượng trên mạng chẳng hạn
như chuyển đổi gói, định tuyến và kiểm soát sự tắc nghẽn dữ liệu. Nếu bộ thích
ứng mạng trên bộ định tuyến (router) không thể truyền đủ đoạn dữ liệu mà máy

2
tính nguồn gởi đi, lớp Network trên bộ định tuyến sẽ chia dữ liệu thành những đơn
vị nhỏ hơn. Nói cách khác, nếu máy tính nguồn dởi đi các gói tin có kích thước là
20Kb, trong khi Router chỉ cho phép các gói tin có kích thước là 10Kb đi qua, thì
lúp đó lớp Network của Router sẽ chia gói tin ra làm 2, mỗi gói tin có kích thước
là 10Kb. Ở đầu nhận, lớp Netwok ráp nối lại dữ liệu. Ví dụ : một số giao thức lớp
này : IP, IPX, … Dữ liệu ở lớp này gọi packet hoặc datagram.

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

Cung cấp khả năng chuyển dữ liệu tin cậy xuyên qua một liên kết vật lý. Lớp
này liên quan đến :

- Địa chỉ vật lý.

- Mô hình mạng.

- Cơ chế truy cập đường truyền.

- Thông báo lỗi.

- Thứ tự phân phối frame.

- Điều khiển dòng.

Tại lớp Data link, các tín hiệu đến từ lớp vật lý được chuyển thành các frame dữ
liệu bằng cách dùng một số nghi thức tại lớp này. Lớp Data link được chia thành 2
lớp con :

- Lớp con LLC (Logical Link Control).

- Lớp con MAC (Media Access Control).

Lớp con LLC là phần trên so với các giao thức truy cập đường truyền khác, nó
cung cấp sự mềm dẻo về giao tiếp. Bởi vì lớp con LLC hoạt động độc lập với các
giao thức truy cập đường truyền cho nên các giao thức lớp trên hơn (ví dụ như IP
ở lớp mạng) có thể hoạt động mà không phụ thuộc vào loại phương tiện LAN. Lớp
con LLC có thể lệ thuộc vào các lớp thấp hơn trong việc cung cấp truy cập đường
truyền.

3
Lớp con MAC cung cấp tính thứ tự truy cập vào môi trường LAN. Khi nhiều
trạm cùng truy cập chia sẻ môi trường truyền, để định danh mỗi trạm, lớp cho
MAC định nghĩa một trường địa chỉ phần cứng, gọi là địa chỉ MAC address. Địa
chỉ MAC là một con số đơn nhất đối với mỗi giao tiếp LAN (card mạng).

1.5/- Lớp vật lý (Physical Player) :

Định nghĩa các quy cách về điện, cơ, thủ tục và các đặc tả chức năng để kích
hoạt, duy trì và dừng một liên kết vật lý giữa các hệ thống đầu cuối. Một số các
đặc điểm trong lớp vật lý này bao gồm :

- Môi trương truyền dữ liệu ( cáp xoắn , cáp quang , sóng điện từ )

- Tốc độ dữ liệu vật lý.

- Khoảng đường truyền tối đa.

- Các đầu nối vật lý.

2/ Vi Điều Khiển Hỗ Trợ kết nối Ethernet -ENC28J60 :


Vi điều khiển ENC28J60 là vi điều khiển hỗ trợ kết nối Ethernet loại phổ biến
nhất hiện nay, được thiết kế chế tạo bởi Microchip.
- Phần cứng của ENC28J60 có tính hợp 2 lớp dưới nhất trong mô hình mạng nói
trên (Data link Layer và Physical Player)
- Đi kèm với phần cứng này là gói thư viện hỗ trợ của Microchip-TCP/IP.
2.1/ Các khối phần cứng cơ bản trong ENC28J60

1. MAC modul , phục vụ cho lớp liên kết dữ liệu

2. PHY modul , phục vụ cho việc encode (mã hóa ) và decode(giải mã) dữ liệu
trong lớp vật lí.

3. SPI interface , đây là modul rất quan trọng. Modul này phục vụ cho việc giao
tiếp giữa VĐK master ( gọi là HOST) với ENC28J60.

4. Một tập thanh ghi điều khiển (Control Register ) , phục vụ điều khiển các
khối MAC , PHY

5. Một tập thanh ghi dữ liệu (RAM buffer for transmitted and recived data)

4
2.2 Sơ đồ sử dụng ENC28J60 để kết nối Ethernet
1/ Phần cứng :

Giao tiếp SPI Cổng RJ45


Pic18 ENC28J60 Mạng

Nguyên lý hoạt động của mạch như sau :


- Vi điều khiển ENC28J60 được điều khiển hoàn toàn thông qua giao tiếp
SPI với Pic18.
- Pic18 đóng vai trò Master trong giao tiếp SPI với ENC28J60

5
- Tương tự như kết nối mạng trên PC , Pic18 đóng vai trò PC , còn
ENC28J60 đóng vai trò như card mạng.
 Nhận dữ liệu :
Tín hiệu yêu cầu từ mạng truyền qua cổng RJ45 vào ENC28J60 .
ENC28J60 được thiết kế để giải mã tín hiệu và chuyển tín hiệu đó thành dữ liệu
và lưu vào bộ đệm thu. Thông qua giao tiếp SPI , Pic18 liên tục kiểm tra bộ đệm
của ENC28J60. Nếu phát hiện có dữ liệu , nó sẽ đọc dữ liệu về và xử lí.
 Phát dữ liệu :
Thông qua giao tiếp SPI , Pic18 gửi dữ liệu vào bộ đệm phát của ENC28J60.
Con ENC28J60 sẽ mã hóa dữ liệu và truyền ra đường RJ45 đến địa chỉ mong
muốn ( được ghi trong khung dữ liệu)
Tập lệnh giao tiếp :
- ENC28J60 được điều khiển hoàn toàn bằng một vi điều khiển khác đóng
vai trò là Host.
- Host dùng tập lệnh này để điều khiển việc truyền và nhận dữ liệu từ
ENC28J60.
- Tập lệnh chỉ gồm 7 lệnh , được truyền từ Host đến ENC28J60 thông qua
đường giao tiếp SPI

6
Giản đồ xung giao tiếp SPI :

Đọc Thanh Ghi Điều Khiển

Ghi Vào Thanh Ghi Điều Khiển

Ghi Vào Bộ Nhớ Đệm

7
Với tập lệnh trên , ta hoàn toàn có thể điều khiển được vi điều khiển
ENC28J60. Nhưng cấu trúc phần cứng cũng như giao thức truyền nhận dữ
liệu trên Ethernet tương đối phức tạp. Đê xây dựng 1 ứng dụng phải mất rất
nhiều thời gian. Thấy được điều này , Microchip đã hỗ trợ một tập thư viện
hàm viết bằng ngôn ngữ lập trình “C” để thay thế cho công việc thủ công
này. Đó là gói TCP/IP stack
2/ Phần mềm : TCP/IP stack
Là một ánh xạ mỗi lớp con trong mô hình mạng nói trên thành một tập các
hàm điều khiển (xem bảng 1)
Được xây dựng cho các dòng vi điều khiển Pic18
Hỗ trợ miển phí , có thể download trực tiếp từ trang web của Microchip
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en022
889
Modul File Hỗ Trợ Ghi Chú
MAC MAC.c Media Access Layer
Delay.c
SLIP SLIP.c Media Access Layer for
SLIP
ARP ARP.c Address Resolution
ARPTsk.c Protocol
MAC.c or SLIP.c
Helpers.c
IP IP.c Internet Protocol
MAC.c or SLIP.c
Helpers.c
ICMP ICMP.c Internet Control Message
StackTsk.c Protocol
IP.c
MAC.c or SLIP.c
Helpers.c
TCP StackTsk.c Transmission Control
TCP.c Protocol
IP.c
MAC.c or SLIP.c
Helpers.c
Tick.c
UDP StackTsk.c User Datagram Protocol
UDP.c
IP.c
MAC.c or SLIP.c
Helpers.c
Stack Manager StackTsk.c Stack Manager
TCP.c (“StackTask”), which
IP.c coordinates the other
ICMP.c Microchip TCP/IP Stack

8
ARPTsk.c modules
ARP.c
MAC.c or SLIP.c
Tick.c
Helpers.c
HTTP Server HTTP.c HyperText Transfer
TCP.c Protocol Server
IP.c
MAC.c or SLIP.c
Helpers.c
Tick.c
MPFS.c
XEEPROM.c
DHCP Client DHCP.c Dynamic Host
UDP.c Configuration Protocol
IP.c
MAC.c
Helpers.c
Tick.c
IP Gleaning StackTsk.c To configure node IP
ARP.c address only.
ARPTsk.c
ICMP.c
MAC.c or SLIP.c
FTP Server FTP.c File Transfer Protocol
TCP.c Server.
IP.c
MAC.c or SLIP.c

Một đoạn code ví dụ những lệnh khởi tạo :


// Declare this file as main application file
#define THIS_IS_STACK_APPLICATION
#include “StackTsk.h”
#include “Tick.h”
#include “dhcp.h” // Only if DHCP is used.
#include “http.h” // Only if HTTP is used.
#include “ftp.h” // Only if FTP is used.
// Other application specific include files
...
// Main entry point
void main(void)
{
// Perform application specific initialization
...

9
// Initialize Stack components.
// If StackApplication is used, initialize it too.
TickInit();
StackInit();
HTTPInit(); // Only if HTTP is used.
FTPInit(); // Only if FTP is used.
// Enter into infinite program loop
while(1)
{
// Update tick count. Can be done via interrupt.
TickUpdate();
// Let Stack Manager perform its task.
StackTask();
// Let any Stack application perform its task.
HTTPServer(); // Only if HTTP is used.
FTPServer(); // Only if FTP is used.
// Application logic resides here.
DoAppSpecificTask();
}
}

10
Tài liệu tham khảo :
1. Tài liệu hướng dẫn sử dụng của Microchip ,ENC28J60 datasheet
2. M. Simmons , Ethernet Theory of Operation , Microchip Technology Inc.
3. Nilesh Rajbharti , The Microchip TCP/IP Stack , Microchip Technology
Inc
4.Diễn đàn điện tử Việt Nam : http://www.dientuvietnam.net

11
12
13
14
15

You might also like