Do đó người thực hiện chỉ tập trung nghiên cứu về: Cách truyền nhận dữ liệu qua các giao thức mạng.. Protocol : chỉ tầng giao thức kế tiếp sẽ nhận được dữ liệu ở trạm đích.. Sự tin cậy
Trang 1DANH MỤC CÁC BẢNG BIỂU VI DANH MỤC CÁC TỪ VIẾT TẮT VII
CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 1
1.1 GIỚI THIỆU ĐỀ TÀI 1
1.2 MỤC ĐÍCH NGHIÊN CỨU 1
1.3 GIỚI HẠN ĐỀ TÀI 1
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2
2.1 LÝ THUYẾT VỀ MẠNG 2
2.1.1 Kiến thức cơ bản 2
2.1.1.1 Khái niệm cơ bản 2
2.1.1.2 Mô hình OSI (Open Systems Interconnet) 2
2.1.1.3 Tổng quan về giao thức TCP/IP 3
2.1.1.4 Một số giao thức cơ bản trong TCP/IP 6
2.1.2 TCP/IP Stack 9
2.1.2.1 Cấu trúc TCP/IP Stack 9
2.1.2.2 Hoạt động của TCP/IP Stack 10
2.1.2.3 Các file cần thiết 10
2.1.3 Công nghệ Ethernet 12
2.1.3.1 Giới thiệu chung về Ethernet 12
2.1.3.2 Các đặc tính chung của Ethernet 12
2.1.3.3 Hoạt động của Ethernet 14
2.1.3.4 Các loại mạng Ethernet 16
2.2 IC GIAO TIẾP MẠNG ENC28J60 16
2.2.1 Cấu trúc và chức năng 17
2.2.2 Chức năng các chân của ENC28J60 17
Trang 22.3 VI ĐIỀU KHIỂN 18F4620 19
2.3.1 Sơ lược về vi điều khiển PIC 18F4620: 19
2.3.2 Hình dạng và sơ đồ chân 20
2.3.3 Các cổng xuất nhập của 18F4620 20
2.3.4 Giao tiếp SPI 24
2.3.4.1 Giới thiệu về giao tiếp SPI 24
2.3.4.2 Khởi tạo chế độ SPI 24
2.3.4.3 Thanh ghi 25
2.3.4.4 Cho phép SPI vào hoặc ra 28
2.3.4.5 Chế độ chủ 28
2.3.4.6 Chế độ tớ 29
2.4 CỔNG MẠNG RJ45 30
2.5 LCD 16X2 30
2.6 RELAY 31
2.7 MODULE AM2301-CẢM BIẾN NHIỆT ĐỘ VÀ ĐỘ ẨM(DHT21) 32
2.8 CẢM BIẾN HỒNG NGOẠI IR333-A 33
CHƯƠNG 3 THIẾT KẾ PHẦN CỨNG 34
3.1 SƠ ĐỒ KHỐI CỦA HỆ THỐNG 34
3.2 THIẾT KẾ SƠ ĐỒ MẠCH 34
3.2.1 Khối nguồn 35
3.2.2 Khối vi xử lý 35
3.2.3 Khối giao tiếp mạng 36
3.2.4 Khối LCD hiển thị 36
3.2.5 Khối thiết bị 37
Trang 34.1 LƯU ĐỒ GIẢI THUẬT 39
4.2 CHƯƠNG TRÌNH ĐIỀU KHIỂN CỦA HỆ THỐNG MÔ PHỎNG 40
4.3 NGÔN NGỮ HTML (HYPER TEXT MARKUP LANGUAGE) 40
4.4 CÁC LỆNH CƠ BẢN TRONG HTML 40
4.5 DEMO MẠCH 43
CHƯƠNG 5 KẾT LUẬN 47
5.1 NHỮNG KẾT QUẢ CHÍNH THỰC HIỆN ĐƯỢC 47
5.2 ĐÁNH GIÁ NHỮNG KẾT QUẢ ĐẠT ĐƯỢC 47
5.3 HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 47
TÀI LIỆU THAM KHẢO 48
Trang 4CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu đề tài
Mục tiêu chính của đề tài này là thiết kế một hệ thống có thể điều khiển thiết bị thông qua mạng Internet
Hệ thống điều khiển qua mạng Internet là nền tảng của một hệ thống nhà thông minh
hệ thống giúp mọi người có thể quản lý và điều khiển thiết bị ở một khoảng cách xa Ứng dụng điều khiển qua mạng Internet đã được áp dụng rộng rãi trên thế giới tại các nước đã và đang phát triển Ở Việt Nam cũng được phát triển mạnh mẽ và một số công ty đã đưa vào sử dụng thực tế một số ứng dụng như: giám sát ngôi nhà qua internet, hệ thống báo trộm qua Ipad, IPhone…
1.2 Mục đích nghiên cứu
Mục đích đề tài tiến hành nghiên cứu là: trước tiên đây chính là cơ hội tốt để em có thể tự kiểm tra lại kiến thức của mình, đồng thời có cơ hội để nỗ lực vận động tìm hiểu, tiếp cận nghiên cứu với những vấn đề mình chưa biết, chưa hiểu rõ nhằm trang
bị cho bản thân kiến thức bổ ích có thể ứng dụng vào cuộc sống
Sau khi tạo ra được sản phẩm của đề tài có thể ứng dụng điều khiển cho các phòng ban, các khách sạn, nhà nghỉ hoặc các hộ gia đình có nhu cầu sử dụng
1.3 Giới hạn đề tài
Trong thời gian cho phép, để hoàn thành đề tài này kết hợp với kiến thức tích lũy được trong suốt khóa học, không cho phép người thực hiện đề tài một cách hoàn chỉnh toàn bộ yêu cầu tạo ra một sản phẩm ưu việt Do đó người thực hiện chỉ tập trung nghiên cứu về:
Cách truyền nhận dữ liệu qua các giao thức mạng
Tìm hiểu chip giao tiếp mạng ENC28J60, vi điều khiển PIC 18F4620 và thiết
kế mạch giao tiếp giữa PIC với chip ENC28J60
Tìm hiểu ngôn ngữ lập trình HTML
Trang 5CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 Lý thuyết về mạng
2.1.1 Kiến thức cơ bản
2.1.1.1 Khái niệm cơ bản
Nói một cách cơ bản mạng máy tính là hai hay nhiều máy tính liên kết lại với nhau theo một cách nào đó sao cho chúng có thể trao đổi thông tin qua lại với nhau Mạng máy tính ra đời xuất phát từ nhu cầu muốn chia sẻ và dùng chung dữ liệu Không có hệ thống mạng thì dữ liệu trên các máy tính độc lập với nhau Muốn trao đổi dữ liệu với nhau thì phải sao chép ra đĩa mềm, đĩa CD Điều này gây ra rất nhiều bất tiện cho người dùng
2.1.1.2 Mô hình OSI (Open Systems Interconnet)
Năm 1984, tổ chức tiêu chuẩn hóa quốc tế ISO (International Sandard Organization) chính thức đưa ra mô hình OSI, là tập hợp các đặc điểm kĩ thuật mô tả các kiến trúc mạng dành cho việc kết nối các thiết bị không cùng chủng loại
Mô hình OSI chia thành 7 tầng, mỗi tầng bao gồm những hoạt động thiết bị và giao thức mạng khác nhau
Hình 2-1: Mô hình OSI 7 tầng [1]
Trang 62.1.1.3 Tổng quan về giao thức TCP/IP
TCP/IP là bộ giao thức cho phép kết nối các mạng không đồng nhất với nhau Ngày nay TCP/IP sử dụng rộng rãi trong các mạng cục bộ cũng như trên mạng Internet toàn cầu
Ưu thế của bộ giao thức này là khả năng liên kết hoạt động của các loại máy tính khác nhau
TCP/IP đã trở thành tiêu chuẩn thực tế cho kết nối liên mạng cũng như internet toàn cầu
TCP/IP được xem là giản lược của mô hình tham chiếu OSI với bốn tầng như sau:
Tầng liên kết mạng (Network Access)
Tầng Internet (Internet)
Tầng giao vận (Host to host Transport)
Tầng ứng dụng (Aplication)
Hình 2-2: Kiến trúc TCP/IP [1]
Trang 7Hình 2-3: Quá trình đóng gói dữ liệu trong TCP/IP [1]
Cũng tương tự như mô hình OSI, khi truyền dữ liệu quá trình diễn ra từ tầng trên xuống tầng dưới, qua mỗi tầng dữ liệu được thêm vào một thông tin điều khiển gọi là phần header Khi nhận dữ liệu thì quá trình xảy ra ngược lại, dữ liệu dược truyền từ tầng dưới lên, và qua mỗi tầng thì phần header tương ứng được lấy đi, khi đến tầng trên cùng thì không còn phần header nữa Trong hình 2-3,2-4 trong các tầng khác nhau thì dữ liệu được mang các thuật ngữ khác nhau
Trong tầng ứng dụng, dữ liệu là các luồng gọi là stream
Trong tầng giao vận, đơn vị dữ liệu mà TCP gửi xuống tầng dưới gọi là TCP segment
Trong tầng mạng, dữ liệu mà IP gửi xuống tầng dưới gọi là IP datagram
Trong tầng liên kết, dữ liệu truyền đi được gọi là frame
Trang 8Hình 2-4: Cấu trúc dữ liệu trong TCP/IP [1]
TCP/IP với OSI: mỗi tầng trong TCP/IP có thể là một hay nhiều tầng trong OSI Bảng sau chỉ rõ mối tương quan giữa các tầng trong TCP/IP và OSI:
Bảng 2-1: Mối tương quan giữa các tầng trong TCP/IP và OSI [1]
Physical và Data link Data link
Session, Presentation, Aplication Aplication
Hình 2-5: Mô hình OSI và TCP/IP
Trang 9Sự khác nhau giữa TCP/IP và OSI chỉ là:
Tầng ứng dụng trong mô hình TCP/IP bao gồm cả 3 tầng trên của OSI
Tầng giao vận trong mô hình TCP/IP không phải luôn đảm bảo độ tin cậy của việc truyền tin như ở trong tầng giao vận OSI, mà cho phép thêm một lựa chọn khác là UDP
2.1.1.4 Một số giao thức cơ bản trong TCP/IP:
Giao thức liên mạng IP (Internet Protocon)
IP là giao thức cung cấp dịch vụ phân phát datagram theo kiểu không liên kết và không tin cậy nghĩa là không cần có giai đoạn thiết lập liên kết trước khi truyền dữ liệu, không đảm bảo rằng IP datagram sẽ tới đích và không duy trì bất kì thông tin nào về những datagram đã gửi đi Khuôn dạng đơn vị dữ liệu dùng trong IP được thể hiện trong bảng:
Bảng 2-2: Khuôn dạng dữ liệu trong IP [1]
VERS HLEN Service Type Total Length
Identification Flags Fragment Offset Time to Live Protocol Header Checksum
Source IP Address Destination IP Address
Service Type- 1byte: cho biết dịch vụ nào mà gói tin muốn sử dụng chẳng hạn như
độ ưu tiên, thời hạn chậm trễ, năng suất truyền và độ tin cậy
Total length- 2byte: chỉ độ dài gói tin tính cả phần header, tính theo đơn vị byte
Trang 10Indentification- 16 bít: cùng với các tham số khác như Source Address Destination Address dùng để định danh duy nhất cho mỗi datagram được gởi đi bởi 1 trạm Flags: các gói tin trên đường đi có thể bị phân thành nhiều gói tin nhỏ Trường flags dùng để phân đoạn và lắp ghép các gói tin
Fragment Offset-32 bít: chỉ vị trí của phân đoạn trong gói tin gốc, tính theo đơn vị 8 byte
Time to live – 1 byte: quy định thời gian tồn tại tính bằng giây của gói tin trong mạng Protocol : chỉ tầng giao thức kế tiếp sẽ nhận được dữ liệu ở trạm đích
Header checksum- 2byte: Dùng để phát hiện lỗi header của gói tin xảy ra trong quá trình truyền của nó
Source IP Address- 4 byte: địa chỉ IP của nơi truyền gói tin
IP Option- độ dài thay đổi: khai báo các lựa chọn do người sử dụng yêu cầu, ví dụ như: mức độ bảo mật, đường mà gói tin được gửi đi, timestamp ở mỗi router
Padding- độ dài thay đổi: Dùng để đảm bảo các header luôn kết thúc ở một mốc 32 bít
Data chiều dài thay đổi lớp trên, chiều dài thay đổi đến 64Kb
Giao thức TCP (Transmission Control Protocol)
TCP là giao thức ở tầng giao vận và cùng sử dụng giao thức IP trong tầng mạng.TCP cung cấp dịch vụ tin cậy và có liên kết
Có liên kết nghĩa là 2 ứng dụng sử dụng TCP phải thiết lập liên kết với nhau trước khi trao đổi dữ liệu Sự tin cậy trong dịch vụ được cung cấp bởi TCP thể hiện như sau:
Dữ liệu từ tầng ứng dụng gửi đến được TCP chia thành các segment có kích thước phù hợp nhất để truyền đi
Khi TCP gửi 1 segment, nó duy trì 1 thời lượng để chờ phúc đáp từ trạm nhận Nếu trong thời gian đó phúc đáp không tới được trạm gửi thì segment đó được truyền lại
Trang 11 Khi TCP trên trạm nhận, nhận được dữ liệu từ trạm gửi thì nó sẽ gửi tới trạm gửi 1 phúc đáp, tuy nhiên phúc đáp không được gửi lập tức mà thường bị trễ
1 khoảng thời gian
TCP duy trì giá trị tổng kiểm tra (checksum) trong phần header của dữ liệu để nhận ra bất kì sự thay đổi nào trong quá trình truyền dẫn Nếu 1 segment bị lỗi thì TCP ở phía trạm nhận sẽ loại bỏ và không phúc đáp lại để trạm gửi truyền lại segment bị lỗi đó
Giống như IP datagram, TCP segment tới đích 1 cách không tuần tự Do vậy TCP ở trạm nhận sẽ sắp xếp lại dữ liệu và sau đó gửi lên tầng ứng dụng đảm bảo tính đúng đắn của dữ liệu
Khi TCP segment bị trùng lặp thì TCP tại trạm nhận sẽ loại bỏ dữ liệu
Bảng 2-3: Khuôn dạng dữ liệu trong TCP [1]
Sequence Number Acknowledgment Number
TCP data Đơn vị dữ liệu trong TCP được gọi là Segment với cấu trúc như sau:
Source Port – 2byte: số hiệu cổng TCP của trạm nguồn
Destination Port – 2byte: số hiệu cổng TCP của trạm đích
Sequence number: số hiệu byte đầu tiên của segment
Acknowledgment number – 2 byte: số hiệu của segment tiếp theo mà trạm nguồn đang chờ để nhận
Data Offest- 4bit: độ dài của phần header tính theo đơn vị từ 32 bít Tham số này chỉ
ra vị trí bắt đầu của nguồn dữ liệu
Flags : các bít điều khiển
URG: Vùng con trỏ khẩn có hiệu lưc
Trang 12ACK: Vùng báo nhận ACK number có hiệu lực
SYN: Đồng bộ hóa số liệu tuần tự
FIND: không còn đủ dữ liệu ở trạm nguồn
Window- 2byte: số byte dữ liệu bắt đầu từ byte được chỉ ra trong ACK number mà trạm nguồn đã sẵn sàng để nhận
Checksum: checksum cho cả phẩn header lẫn dữ liệu
Urgent Pointer – 2byte: nếu cờ URG bật thì giá trị trường này chính là số 16 bít mà
số thứ tự gói tin cần dịch trái
Option -2byte: vùng tùy chọn, khai báo các option của TCP trong đó có độ dài tối đa của vùng TCP data trong 1 segment
Padding-: phẩn chèn thêm vào header để đảm bảo phần header luôn kết thúc ở một mốc 32 bít
TCP data: chứa dữ liệu, của tầng trên có độ dài tối đa ngầm định là 536 byte Giá trị này có thể khai báo trên phẩn Option
2.1.2 TCP/IP Stack:
2.1.2.1 Cấu trúc TCP/IP Stack:
TCP/IP Stack là ứng dụng của Microchip để tạo một websever nhúng hoặc các giao tiếp Ethernet hiện hành Bao gồm các giao thức truyền dữ liệu TCP, UDP, và hỗ trợ các module khác như IP, ICMP, DHCP, ARP, và DNS
TCP/IP cũng có các module sử dụng cho lớp ứng dụng như: HTTP cho web, SMTP cho gửi và nhận mail, SNMP cho giao thức trạng thái và điều khiển, Telnet cho điều khiển từ xa, TFIP
Bảng 2-4: Cấu trúc của stack
ICMP
IP ARP ETHERNET
Trang 13Ngoài những module chính giống như cấu trúc TCP/IP thì Microchip đưa thêm vào stack 2 module mới đó là Stacktask và ARPtask Stacktask quản lý sự vận hành và tất cả các module của Stack Trong khi đó ARPtask quản lý dịch vụ của lớp ARP
2.1.2.2 Hoạt động của TCP/IP stack
TCP/IP stack hoạt động gần giống cấu trúc của hệ điều hành thời gian thực, tất cả các hoạt động của TCP/IP sẽ được một đồng hồ chung quản lý theo Time Split Tức là có
1 timer hệ thống cứ 1 khoảng thời gian ngắn sẽ ngắt (gọi là 1 Tick) Khi bị ngắt thì
hệ thống sẽ bị treo lại, ngữ cảnh của các tác vụ lập lịch bị lôi ra xem xét các tác vụ nào chạy theo kiểu chia sẻ thời gian Sau đó cho các tác vụ đó chiếm quyền thực thi CPU Đến Tick tiếp theo hệ thống treo lại và lại lôi ngữ cảnh ra cứ tiếp tục như vậy mãi
Vì vậy, nếu Pic thiết lập ở chế độ TCP Sever/Client sẽ hoạt động đồng thời cả 2 hoạt động này Sever lắng nghe kết nối từ Client, còn Client gửi lệnh mở cổng kết nối tới sever Hoạt động của các tác vụ độc lập với nhau, không chịu ảnh hưởng lẫn nhau
2.1.2.3 Các file cần thiết
Main file: lập trình trên file này
ARP.c và ARP.h: các file này sử dụng bởi stack để xác định địa chỉ MAC kết hợp với địa chỉ IP
Physical layer files: các file này dùng để cho phép một lớp vật lý cụ thể
IP.c và IP.h: các file này cung cấp chức năng của lớp IP cho stack
Tick.c và Tick.h: các file này tạo ra một bộ đếm thời gian để thực hiện một
số chức năng thời gian trong stack
HardwareProfile.h: thiết lập cấu hình cho phần cứng
TCPIPConfig.h: thiết lập cấu hình phần mềm
MAC.h: cung cấp các macro và cấu trúc liên quan đến phần cứng của MAC
TCPIP.h: là file đính kèm trong stack Main file phải đính kèm file này
Web forms sử dụng 2 phương pháp GET và POST:
Trang 14Các file thư viện TCP/IP stack của Microchip đã được CCS C Compiler hỗ trợ trong Project Wizard và khi tạo Project mới ta chọn TCP/IP, ENC28J60 (chế độ giao tiếp SPI với Pic 18F4620), Websever: Use HTTP sever Các bộ thư viện sẽ tự động được truy xuất ra để sử dụng Cách tạo file Project như sau:
Hình 2-6: Tạo Project Wizard device
Trang 15Hình 2-7: Tạo Project Wizard TCP/IP
2.1.3 Công nghệ Ethernet
2.1.3.1 Giới thiệu chung về Ethernet
Chuẩn Ethernet 10MB đầu tiên được xuất bản năm 1980 bởi sự phối hợp phát triển của 3 hãng DEC, Intel và Xeror Chuẩn này có tên là DIX Ethernet
Ủy ban 802.3 của IEEE lấy DIX Ethernet làm nền tảng để phát triển Năm 1985, chẩn
802.3 đầu tiên đã ra đời với tên IEEE 802.3 Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Mặc dù không sử dụng tên Ethernet nhưng hầu
hết mọi người đều hiểu đó là chuẩn của công nghệ Ethernet Ngày nay chuẩn IEEE 802.3 là chuẩn chính thức của Ethernet
IEEE đã phát triển chuẩn Ethernet trên nhiều công nghệ truyền dẫn khác nhau vì thế
có nhiều loại mạng Ethernet
2.1.3.2 Các đặc tính chung của Ethernet
Cấu trúc khung Ethernet
Trang 16Các chuẩn Ethernet đều hoạt động ở tầng datalink trong mô hình 7 lớp OSI vì thế đơn
vị dữ liệu các trạm trao đổi với nhau là các khung (frame)
Cấu trúc khung của Ethernet như sau:
Bảng 2-5: Cấu trúc khung tin Ethernet [1]
Datapad 43-1497 bytes
FCS
4 bytes
Các trường quan trọng trong phần mào đầu sẽ được mô tả dưới đây:
Preample: trường này đánh dấu sự xuất hiện của khung bit, nó luôn mang giá trị 10101010 Từ nhóm bit này, phía nhận có thể tạo ra xung đồng hồ 10MHz
SFD (start frame delimiter): trường này mới thật sự xác định bắt đầu của 1 khung nó luôn mang giá trị 10101011
Các trường Destination và Source: mang địa chỉ vật lý của các trạm nhận và gửi khung, xác định khung được gửi từ đâu và gửi tới đâu
LEN: giá trị của trường nói lên độ lớn của phần dữ liệu mà khung mang theo
FCS mang CRC (Cyclic Redundancy Checksum): phía gửi sẽ tính toán trường này trước khi truyền khung Phía nhận sẽ tính toán lại CRC này theo cách tương tự Nếu kết quả trùng nhau, khung được xem là nhận đúng, ngược lại khung được coi là bị lỗi và bị loại bỏ
Cấu trúc địa chỉ Ethernet
Mỗi giao tiếp mạng Ethernet được định danh duy nhất bởi 48bit địa chỉ (6 octet) Đây
là địa chỉ được ấn định khi sản xuất thiết bị gọi là địa chỉ MAC (Media Access Control Address)
Địa chỉ MAC được biểu diễn bởi các chữ số hexa Ví dụ: 00:60:97:8F:6F:86 hoặc 60-97-8F-6F-86
00-Khuôn dạng địa chỉ MAC được chia thành 2 phần:
Trang 17 3 octet đầu xác định hãng sản xuất, chịu sự quản lý của tổ chức IEEE
3 octet sau do nhà sản xuất ấn định
Kết hợp ta có 1 địa chỉ MAC duy nhất cho giao tiếp mạng Ethernet Địa chỉ MAC làm địa chỉ nguồn và đích trong khung Ethernet
Các loại khung Ethernet
Các khung Unicast
Giả sử trạm 1 cần truyền khung tới trạm 2 Khung Ethernet do trạm 1 tạo ra
có địa chỉ: MAC nguồn:00-60-08-93-DB-C1, MAC đích:00-60-08-93-AB-12 Đây là khung unicast:
+ Khung này được truyền tới 1 trạm xác định
+ Tất cả các trạm trong phân đoạn trên sẽ đều nhận được khung này nhưng chỉ
có trạm 2 thấy địa chỉ MAC đích của khung trùng với địa chỉ MAC của giao tiếp mạng của mình nên tiếp tục xử lý các thông tin khác trong khung Các trạm khác sau khi so sánh địa chỉ sẽ bỏ qua không tiếp tục xử lý khung nữa
Các khung Broadcast:
Các khung broadcast có địa chỉ MAC đích là FF-FF-FF-FF-FF-FF Khi nhận khung này mặc dù không trùng với địa chỉ MAC giao tiếp mạng của mình nhưng các trạm đều phải nhận khung và tiếp tục xử lý
Các khung Multicast:
Trạm nguồn gửi khung tới 1 số trạm nhất định chứ không phải tất cả Địa chỉ MAC đích của khung là địa chỉ đặc biệt mà chỉ các trạm trong cùng nhóm mới chấp nhận các khung gửi tới địa chỉ này
Địa chỉ MAC nguồn của khung là địa chỉ MAC của giao tiếp mạng tạo ra khung Trong khi đó địa chỉ MAC đích thì phụ thuộc vào 1 trong 3 loại khung trên
2.1.3.3 Hoạt động của Ethernet
Phương thức điều khiển truy nhập CSMA/CD quy định hoạt động của hệ thống Ethernet
Trang 18Một số khái niệm cơ bản liên quan đến quá trình truyền khung Ethernet
Khi tín hiệu được truyền trên kênh truyền, kênh truyền lúc này bận và ta gọi trạng thái này là có sóng mang carrier
Đường truyền rỗi: không có sóng mang absence carrier
Nếu 2 trạm cùng truyền khung đồng thời thì chúng sẽ phát hiện ra sự xung đột
và phải thực hiện lại quá trình truyền khung
Khoảng thời gian để một giao tiếp mạng khôi phục lại sau mỗi lần nhận khung được gọi là khoảng trống liên khung (interframe gap)-kí hiệu IFG
Giá trị IFG bằng 96 lần thời gian của 1 bit
Ethernet 10Mb/s: IFG=9.6us
Ethernet 100Mb/s: IFG=960ns
Ethernet 1000Mb/s: IFG=96ns
Cách thức truyền khung và phát hiện xung đột diễn ra như sau:
Khi phát hiện đường truyền rỗi, máy trạm sẽ đợi thêm 1 khoảng thời gian bằng IFG, sau đó thực hiện ngay việc truyền khung Nếu truyền nhiều khung thì giữa các khung phải cách nhau 1 khoảng IFG
Trong trường hợp đường truyền bận, máy trạm sẽ tiếp tục lắng nghe đường truyền cho đến khi đường truyền rỗi thì thực hiện truyền khung
Trường hợp khi quá trình truyền khung đang diễn ra thì máy trạm phát hiện thấy sự xung đột, thì máy trạm sẽ tiếp tục truyền thêm 32 bit dữ liệu Nếu sự xung đột được phát hiện ngay từ đầu thì máy trạm sẽ phải truyền hết trường preample và thêm 32bit nữa Việc truyền hết các bit này ta xem như là các bit báo hiệu tắt nghẽn, đảm bảo tín hiệu sẽ tồn tại trên đường truyền đủ lâu cho phép các trạm khác nhận ra sự xung đột và xử lý
Trang 192.1.3.4 Các loại mạng Ethernet
IEEE đã phát triển chuẩn Ethernet trên nhiều công nghệ truyền dẫn khác nhau, vì thế
có nhiều loại mạng Ethernet Mỗi mạng được miêu tả dựa trên 3 yếu tố: tốc độ, phương thức tín hiệu sử dụng, đặc tính đường truyền vật lý
Các hệ thống Ethernet 10Mb/s:
10Base5: đây là chuẩn Ethernet đầu tiên dựa trên cáp đồng trục loại dày, tốc
độ đạt được 10Mb/s sử dụng băng tần cơ sở, chiều dài cáp tối đa mỗi phân đoạn là 500m
10Base2: có tên khác là “thin Ethernet” dựa trên hệ thống cáp đồng trục mỏng với tốc độ 10Mb/s, chiều dài cáp tối đa cho 1 phân đoạn 185m (IEEE làm tròn thành 200m)
10BaseT: chữ T là viết tắt của “twisted” cáp xoắn cặp 10BaseT hoạt động tốc
độ 10Mb/s dựa trên hệ thống cáp xoắn cặp Cat3 trở lên
10BaseF: chữ F là viết tắt của “Fiber Optic” (sợi quang) Đây là chuẩn Ethernet dùng cho sợi quang hoạt động ở tốc độ 10Mb/s ra đời năm 1993
2.2 IC giao tiếp mạng ENC28J60
Hình 2-8: Sơ đồ chân IC ENC28J60 [4]
ENC28J60 là 1 chip do Microchip cung cấp có 28 chân phù hợp với chuẩn IEEE 802.3
Trang 202.2.1 Cấu trúc và chức năng
Giao tiếp với các thiết bị ngoại vi theo chuẩn SPI với tốc độ lên tới 10Mb/s
Giao thức chuẩn IEEE 802.3
Bộ lọc đặc biệt tự động đánh giá, chấp nhận hoặc từ chối MagicPackit, unicast, multicast
Có bộ nhớ đệm Sram lên tới 8kb, có thể quản lý dữ liệu đáng tin cậy, và linh hoạt
2.2.2 Chức năng các chân của ENC28J60
VDD,VDDOSC,VDDPLL,VDDRX,VDDTX: các chân này cấp nguồn nuôi cho IC, nối với +3,3V
VSS,VSSOSC,VSSPLL,VSSRX,VSSTX: các chân này nối mass
Reset: chân reset về mức thấp để thiết lập lại chế độ cho chip
OSC1,OSC2: 2 chân nhận bộ dao động bên ngoài, ENC28J60 hoạt động với thạch anh 25MHz
CLKOUT: tạo ra xung clock khoảng 6,25 MHz
LedA, LedB: có chức năng hỗ trợ tự động phát hiện và Reset
2.2.3 Các khối cơ bản trong ENC28J60
Bao gồm 7 khối cơ bản sau:
1 Một giao diện SPI dùng để giao tiếp với vi điều khiển
2 Khối giám sát và điều khiển ENC28J60
3 Bộ nhớ đệm Sram cho việc truyền và nhận gói tin
4 Khối giám sát việc truy cập vào bộ nhớ đệm
5 Khối Bus dữ liệu giải mã lệnh thông qua SPI
6 Module MAC theo chuẩn IEEE 802.3
7 Module PHY mã hóa và giải mã tín hiệu điện
Trang 212.2.4 Kết nối với các thiết bị ngoại vi
Hình 2-9: Sơ đồ ghép ENC28J60 với vi xử lý [4]
Vi mạch ENC28J60 giao tiếp với các vi xử lý khác thông qua chuẩn truyền dữ liệu nối tiếp SPI (Serial Peripheral Interface), đây là chuẩn giao tiếp rất phổ biến, dùng để nối các vi mạch trong cùng một hệ thống với ưu điểm là chạy nhanh và tốn rất ít dây nối tín hiệu, chỉ cần 3 dây cho cả đường ghi và đọc là:
SCK (serial clock): xung đồng bộ cho đường nối tiếp
SI (serial input): tín hiệu nối tiếp vào (ghi)
SO (serial output): tín hiệu nối tiếp ra (đọc)
Mặc dù đã được thiết kế theo cấu trúc “stand alone” (một chip làm hết các việc) nhưng việc điều khiển vi mạch này hoạt động được là rất phức tạp và đòi hỏi có hiểu biết khá toàn diện về vi điều khiển, mạch điện tử và Internet Tuy nhiên rất may mắn cho người thiết kế và lập trình vì hãng Microchip đã hỗ trợ tối đa bằng cách đưa đầy đủ các thư viện phục vụ cho việc lập trình, làm cho việc lập trình giao tiếp với vi mạch này khá dễ dàng
2.2.5 Các thông số kỹ thuật
Giới thiệu chung:
Tương thích chuẩn IEEE 802.3 Ethernet controller
Trang 22Tích hợp địa chỉ MAC và 10Base-T PHY
Bộ nhớ đệm Sram 8kbyte
Chế độ tự động gửi lại khi có xung đột
Chế độ tự động hủy khi có gói tin sai
Bộ đệm:
Kích thước bộ đệm transmit/receive có thể lập trình được
Giám sát qúa trình nhận FIFO
PHY: Bộ lọc tín hiệu ra
MAC (media access control):
Hỗ trợ unicast, muticast và broadcast
Hỗ trợ nhiều dạng gói tin magicpacket, unicast, muticast và broadcast
2.3 Vi điều khiển 18F4620
2.3.1 Sơ lược về vi điều khiển PIC 18F4620:
Hiện nay có rất nhiều dòng Pic, có một số đặc điểm như sau:
64K Flash ROM
3968 Bytes SRAM
1024 Byte EEPROM
5 port A, B, C, D, E với tín hiệu vào ra độc lập
1 bộ định thời 8 bit (Timer 0 và Timer 2)
3 bộ định thời 16 bit (Timer 1 và Timer 3), có thể hoạt động trong chế độ tiết kiệm năng lượng (SLEEP MODE) với nguồn xung clock ngoài
2 bộ CCP (Capture/Compare/PWM)
1 bộ biến đổi AD 10bit, 13 ngõ vào
2 bộ so sánh tương tự Compartor
Trang 23 1 bộ định thời giám sát (WatchDog Timer)
1 cổng song song 16 bit với các tín hiệu điều khiển
Bảng 2-6: Chức năng các chân PIC 18F4620 [7]
Tên chân Số chân Mô tả
MCLR/VPP/RE3 1 Reset thiết bị mức thấp
Digital input
OSC1/CLKI/RA7 13 Đầu vào dao động thạch anh hoặc clock mở rộng
Trang 24Đầu vào nguồn clock mở rộng, luôn gắn liền với chân OSC1
Chân I/O OSC2/CLKO/RA6 14 Đầu ra bộ dao động thạch anh hoặc clock
Trong chế độ RC nội bộ, chân OSC2 các đầu ra CLKO với tần số bằng ¼ tần số của OSC1
Chân I/O
Đầu vào tương tự 0
Đầu vào tương tự 1
RA2/AN2/VREF-/CVREF
4 Chân I/O
Đầu vào tương tự 2
A/D reference voltage (low) input
Comparator reference voltage output
RA3/AN3/VREF+ 5 Chân I/O
Đầu vào tương tự 3
Đầu vào điện áp tham chiếu A/D
Đầu vào tương tự 4
Đầu vào SPI™
Đầu vào bộ phát hiện điện áp
Đầu ra bộ so sánh 2
RB0/INT0/FLT0/A
N12
21 PORTB là một cổng I / O hai chiều PORTB có thể được
lập trình bằng phần mềm để kéo tất cả các đầu vào còn kéo lên
Chân I/O
Trang 25Ngắt ngoài 0
Đầu vào PWM Fault cho CCP1
Đầu vào tương tự 12 RB1/INT1/AN10 22 Chân I/O
Ngắt ngoài 1
Đầu vào tương tự 10
RB2/INT2/AN8 23 Chân I/O
Ngắt ngoài 2
Đầu vào tương tự 8
RB3/AN9/CCP2 24 Chân I/O
Đầu vào tương tự 9
Đầu vào capture2/ đầu ra so sánh 2/ đầu ra PWM 2 RB4/KBI0/AN11 25 Chân I/O
Chân thay đổi ngắt trong
Đầu vào tương tự 11
RB5/KBI1/PGM 26 Chân I/O
Chân thay đổi ngắt trong
Chân dữ liệu các chương trình ICSP™
RB6/KBI2/PGC 27 Chân I/O
Chân thay đổi ngắt trong
Chân clock các chương trình ICSP™
RB7/KBI3/PGD 28 Chân I/O
Chân thay đổi ngắt trong
Chân dữ liệu các chương trình ICSP™
RC0/T1OSO/T13C
KI
11 PORTC là một cổng I / O hai chiều
Chân I/O