You are on page 1of 15

Mechatronic

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/- 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

1
Mechatronic
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 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

2
Mechatronic
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.

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

3
Mechatronic
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
Mechatronic

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
Mechatronic
- 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
Mechatronic
• 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
Mechatronic
• 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=en022889
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
Mechatronic
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
Mechatronic
// 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
Mechatronic
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
Mechatronic

12
Mechatronic

13
Mechatronic

14
Mechatronic

15

You might also like