vi Điều khiển hỗ trợ kết nối ethernet -enc28j60

15
1 0 10 20 30 40 50 60 70 80 90 Quý 1 Quý 2 Quý 3 Quý 4 Đông Tây Bc 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 :

Upload: cancuong

Post on 27-Jul-2015

2.285 views

Category:

Documents


6 download

TRANSCRIPT

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

1

0102030405060708090

Quý 1 Quý 2 Quý 3 Quý 4

Đông

Tây

Bắc

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 :

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

2

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

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

3

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.

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

4

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)

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

5

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

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

Giao tiếp SPI Cổng RJ45

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

6

- 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

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

7

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

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

8

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

Delay.c Media Access Layer

SLIP SLIP.c Media Access Layer for SLIP

ARP ARP.c ARPTsk.c MAC.c or SLIP.c Helpers.c

Address Resolution Protocol

IP IP.c MAC.c or SLIP.c Helpers.c

Internet Protocol

ICMP ICMP.c StackTsk.c IP.c MAC.c or SLIP.c Helpers.c

Internet Control Message Protocol

TCP StackTsk.c TCP.c IP.c MAC.c or SLIP.c Helpers.c Tick.c

Transmission Control Protocol

UDP StackTsk.c UDP.c IP.c MAC.c or SLIP.c Helpers.c

User Datagram Protocol

Stack Manager StackTsk.c TCP.c IP.c ICMP.c

Stack Manager (“StackTask”), which coordinates the other Microchip TCP/IP Stack

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

9

ARPTsk.c ARP.c MAC.c or SLIP.c Tick.c Helpers.c

modules

HTTP Server HTTP.c TCP.c IP.c MAC.c or SLIP.c Helpers.c Tick.c MPFS.c XEEPROM.c

HyperText Transfer Protocol Server

DHCP Client DHCP.c UDP.c IP.c MAC.c Helpers.c Tick.c

Dynamic Host Configuration Protocol

IP Gleaning StackTsk.c ARP.c ARPTsk.c ICMP.c MAC.c or SLIP.c

To configure node IP address only.

FTP Server FTP.c TCP.c IP.c MAC.c or SLIP.c

File Transfer Protocol Server.

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

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

10

// 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(); } }

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

11

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

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

12

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

13

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

14

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

15