Khóa luận tốt nghiệp với đề tài “Module Ethernet trên vi điều khiển PIC18F67J60 và ứng dụng trong đo lường, điều khiển Phần mềm trên MPLAB” đã sử dụng phần mềm MPLAB và thư viện TCP/IP
Trang 1MỞ ĐẦU
Ethernet là kiểu mạng cục bộ (LAN) được sử dụng rộng rãi nhất hiện nay, ứng dụng của nó có mặt ở rất nhiều lĩnh vực của đời sống và trong công nghiệp Khóa luận
tốt nghiệp với đề tài “Module Ethernet trên vi điều khiển PIC18F67J60 và ứng
dụng trong đo lường, điều khiển (Phần mềm trên MPLAB)” đã sử dụng phần mềm
MPLAB và thư viện TCP/IP Stack của hãng Microchip để lập trình điều khiển LED, LCD và đo lường thông qua mạng truyền thông Ethernet
Khóa luận bao gồm những nội dung chính cơ bản như sau:
Chương 1 Tổng quan về Ethernet trình bày về lý thuyết Ethernet gồm các vấn
đề về cấu trúc khung tin Ethernet, phương pháp truy nhập bus (CSMA/CD), các loại mạng Ethernet và chuẩn Ethernet IEEE 802.3
Chương 2 Họ giao thức TCP/IP trình bày kiến thức về họ giao thức TCP/IP bao
gồm 5 tầng: tầng ứng dụng (Application Layer), tầng giao vận (Transport Layer), tầng liên mạng (Internet Layer), tầng giao tiếp mạng (Network Interface Layer) Trình bày các kiến thức về gói tin IP, TCP, UDP
Chương 3 Phần cứng trình bày các kiến thức về vi điều khiển PIC18F67J60
bao gồm các đặc trưng chung và đặc trưng Ethernet của PIC18F67J60, bộ biến đổi A/D, module Ethernet Các kiến thức về sensor đo nhiệt độ LM35 cũng được trình bày trong chương này Tiếp theo là phần nguyên lý của mạch demo và phần mạch in Cuối cùng là hình ảnh mạch demo thực tế sử dụng trong khóa luận
Chương 4 Trình biên dịch MPLAB C18 và web server giới thiệu về trình biên
dịch MPLAB C18 và các nội dung liên quan đến việc thiết kế web giao diện như là DHTML, Javascript, CSS, kỹ thuật AJAX
Chương 5 TCP/IP Stack chương này trình bày về nhiệm vụ chính của khóa luận
đó là sử dụng thư viện TCP/IP Stack của Microchip trên phần mềm MPLAB C18 để lập trình cho mạch demo thực hiện đo lường và điều khiển thông qua mạng truyền thông Ethernet
Kết luận Trình bày các kết quả đã đạt được của khóa luận và đánh giá các kết
quả đó Đồng thời, định hướng một số hướng phát triển của đề tài
Trang 2CHƯƠNG 1 TỔNG QUAN VỀ ETHERNET
Ethernet là kiểu mạng cục bộ (LAN) được sử dụng rộng rãi nhất hiện nay Hiện thời công nghệ Ethernet thường được sử dụng nhất là công nghệ sử dụng cáp đôi xoắn 10Mbps
Ethernet đã được phát minh ra tại trung tâm nghiên cứu Xerox Palo Alto vào
những năm 1970 bởi tiến sĩ Robert M Metcalfe Nó đã được thiết kế với mục đích phục vụ nghiên cứu trong “ hệ thống công sở trong tương lai”, bao gồm trạm cá nhân đầu tiên trên thế giới, trạm Xerox Alto Trạm Ethernet đầu tiên chạy với tốc độ xấp xỉ 3Mbps Chuẩn Ethernet 10Mbps đầ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à Xerox Chuẩn này có tên DIX Ethernet ( lấy tên theo 3 chữ cái đầu của tên các hãng)
Uỷ ban 802.3 của IEEE đã lấy DIX Ethernet làm nền tảng để phát triển Năm
1985, chuẩn 802.3 đầu tiên đã ra đời với tên IEEE 802.3 Carrier Sense Multiple
Access with Collition 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 Đặc biệt, với phiên bản 100 Mbit/s (Fast Ethernet, IEEE 802.3u), Ethernet ngày càng đóng một vai trò quan trọng trong các hệ thống công nghiệp Bên cạnh việc sử dụng cáp đồng trục, đôi dây xoắn và cáp quang, gần đây Ethernet không dây (Wireless LAN, IEEE 802.11) cũng đang thu hút được sự quan tâm lớn
1.1 Cấu trúc khung tin Ethernet
Các chuẩn Ethernet đều hoạt động ở tầng Data Link trong mô hình 7 lớp OSI vì thế đơn vị dữ liệu mà các trạm trao đổi với nhau là các khung (frame) Cấu trúc khung Ethernet như sau:
Bảng 1: Cấu trúc khung MAC theo IEEE 802.3/ Ethernet.
Mở đầu
555…5H
SFD(D5H)
Địa chỉ đích
Địa chỉ nguồn
Độ dài kiểu gói
7 byte 1 byte 2/6 byte 2/6 byte 2 byte 46-1500 byte 4 byte
Trang 3- Preamble (mở đầu): 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ồ 10 Mhz.
- SFD (start frame delimiter): trường này mới thực sự xác định sự 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à sẽ được 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 tính toán lại CRC này theo cách tương tự Nếu hai kết quả trùng nhau, khung được xem là nhận đúng, ngược lại khung coi như là lỗi
và bị loại bỏ
1.2 Cấu trúc địa chỉ Ethernet
Mỗi giao tiếp mạng Ethernet được định danh duy nhất bởi 48 bit đị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 ( hệ cơ số 16 )
Ví dụ:00:60:97:8F:4F:86 hoặc 00-60-97-8F-4F-86 Khuôn dạng địa chỉ MAC được chia làm 2 phần:
- 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 lẽ có một địa chỉ MAC duy nhất cho một giao tiếp mạng Ethernet Địa chỉ MAC được sử dụng làm địa chỉ nguồn và địa chỉ đích trong khung Ethernet
1.3 Các loại khung Ethernet
1.3.1 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
Trang 4Hình 1: Mô hình truyền thông unicast.
Đây là khung unicast Khung này được truyền tới một trạm xác định Tất cả các trạm trong phân đoạn mạng 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
1.3.2 Các khung broadcast
Các khung broadcast có địa chỉ MAC đích là FF-FF-FF-FF-FF-FF Khi nhận được các khung này, mặc dù không trùng với địa chỉ MAC của 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ý
Giao thức ARP sử dụng các khung broadcast này để tìm địa chỉ MAC tương ứng với một địa chỉ IP cho trước Một số giao thức định tuyến cũng sử dụng các khung broadcast để các router trao đổi bảng định tuyến
1.3.3 Các khung multicast
Trạm nguồn gửi khung tới một số trạm nhất định chứ không phải là 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
1.4 Truy nhập bus
Một vấn đề lớn thường gây lo ngại trong việc sử dụng Ethernet ở cấp trường là
phương pháp truy nhập bus ngẫu nhiên CSMA/CD ( Carrier Sense Multiple Access
Trang 5thực của hệ thống Ở đây, một trong những yếu tố quyết định tới hiệu suất của hệ thống là thuật toán tính thời gian truy nhập lại cho các trạm trong trường hợp xảy ra xung đột.
Hình 2: Minh họa phương pháp CSMA/CD.
Nguyên tắc làm việc phương pháp CSMA/CD:
Theo phương pháp CSMA/CD, mỗi trạm đều có quyền truy nhập bus mà không cần một sự kiểm soát nào Phương pháp được tiến hành như sau:
- Mỗi trạm đều phải tự nghe đường dẫn (carrier sense), nếu đường dẫn rỗi (không
có tín hiệu ) thì mới được phát
- Do việc lan truyền tín hiệu cần một thời gian nào đó, nên vẫn có khả năng hai trạm cùng phát tín hiệu lên đường dẫn Chính vì vậy, trong khi phát thì mỗi trạm vẫn phải nghe đường dẫn để so sánh tín hiệu phát đi với tín hiệu nhận được xem có xảy ra xung đột hay không (collision detection)
- Trong trường hợp xảy ra xung đột, mỗi trạm đều phải hủy bỏ bức điện của mình, chờ một thời gian ngẫu nhiên và thử gửi lại
Một tình huống xảy ra xung đột tiêu biểu và cách khắc phục được minh họa trên hình Trạm A và C cùng nghe đường dẫn Đường dẫn rỗi nên A có thể gửi trước Trong khi tín hiệu từ trạm A gửi đi chưa kịp tới nên trạm C không hay biết và cũng
Trang 6gửi, gây ra xung đột tại một điểm gần C A và C sẽ lần lượt nhận được tín hiệu phản hồi, so sánh với tín hiệu gửi đi và phát hiện xung đột Cả hai trạm sẽ cùng phải hủy bỏ bức điện đã gửi đi bằng cách không phát tiếp, các trạm muốn nhận sẽ không nhận được cờ hiệu kết thúc bức điện và sẽ coi như bức điện không hợp lệ A và C cũng có thể gửi đi một tín hiệu “ jam” đặc biệt để báo cho các trạm cần nhận biết Sau đó mỗi trạm sẽ chờ một thời gian chờ ngẫu nhiên, trước khi thử phát lại Thời gian chờ ngẫu nhiên ở đây tuy nhiên phải được tính theo một thuật toán nào đó để sao cho thời gian chờ ngắn một cách hợp lí và không giống nhau giữa các trạm cùng chờ Thông thường
thời gian chờ này là bội số của hai lần thời gian lan truyền tín hiệu Ts.
Ưu điểm của CSMA/CD là tính chất đơn giản, linh hoạt Khác với các phương pháp tiền định, việc ghép thêm hay bỏ đi một trạm trong mạng không ảnh hưởng gì tới hoạt động của hệ thống Chính vì vậy, phương pháp này được áp dụng rộng rãi trong mạng Ethernet
Nhược điểm của CSMA/CD là tính chất bất định của thời gian phản ứng Các trạm đều bình đẳng như nhau nên quá trình chờ ở một trạm có thể lặp đi lặp lại, không xác định được tương đối chính xác thời gian Hiệu suất sử dụng đường truyền vì thế cũng thấp Rõ ràng, nếu như không kết hợp thêm với các kỹ thuật khác thì phương pháp này không thích hợp với các cấp thấp, đòi hỏi trao đổi dữ liệu định kỳ, thời gian thực
1.5 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 loại mạng được mô tả dựa theo ba yếu tố: tốc độ, phương thức tín hiệu sử dụng và đặc tính đường truyền vật lý
1.5.1 Các hệ thống Ethernet 10Mb/s
- 10Base5 Đây là tiêu chuẩn Ethernet đầu tiên, dựa trên cáp đồng trục loại dày Tốc độ đạt được 10 Mb/s, sử dụng băng tần cơ sở, chiều dài cáp tối đa cho 1 phân đoạn mạng 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 độ 10 Mb/s, chiều dài cáp tối đa của phân đoạn là 185 m (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
độ 10 Mb/s dựa trên hệ thống cáp xoắn cặp Cat 3 trở lên
Trang 7- 10BaseF 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 độ 10 Mb/s , ra đời năm 1993.
1.5.2 Các hệ thống Ethernet 100 Mb/s – Ethernet cao tốc ( Fast Ethernet )
- 100BaseT Chuẩn Ethernet hoạt động với tốc độ 100 Mb/s trên cả cắp xoắn cặp lẫn cáp sợi quang
- 100BaseX Chữ X nói lên đặc tính mã hóa đường truyền của hệ thống này (sử dụng phương pháp mã hoá 4B/5B của chuẩn FDDI) Bao gồm 2 chuẩn 100BaseFX và 100BaseTX:
xoắn cặp Cat 3 trở lên tuy nhiên hiện nay hai chuẩn này ít được sử dụng
1.5.3 Các hệ thống Giga Ethernet
- 1000BaseX Chữ X nói lên đặc tính mã hoá đường truyền ( chuẩn này dựa trên kiểu mã hoá 8B/10B dùng trong hệ thống kết nối tốc độ cao Fibre Channel được phát triển bởi ANSI) Chuẩn 1000BaseX gồm 3 loại:
- 1000BaseT Hoạt động ở tốc độ Giga bit, băng tần cơ sở trên cáp xoắn cặp Cat
5 trở lên Sử dụng kiểu mã hoá đường truyền riêng để đạt được tốc độ cao trên loại cáp này
1.6 Chuẩn IEEE 802
IEEE 802 là họ các chuẩn IEEE dành cho các mạng LAN và mạng MAN
(metropolitan area network) Cụ thể hơn, các chuẩn IEEE 802 được giới hạn cho các
mạng mang các gói tin có kích thước đa dạng (Khác với các mạng này, dữ liệu trong các mạng cell-based được truyền theo các đơn vị nhỏ có cùng kích thước được gọi là cell Các mạng Isochronous, nơi dữ liệu được truyền theo một dòng liên tục các octet, hoặc nhóm các octet, tại các khoảng thời gian đều đặn, cũng nằm ngoài phạm vi của chuẩn này)
Trang 8Các dịch vụ và giao thức được đặc tả trong IEEE 802 ánh xạ tới hai tầng thấp (tầng liên kết dữ liệu và tầng vật lý của mô hình 7 tầng OSI Thực tế, IEEE 802 chia tầng liên kết dữ liệu OSI thành hai tầng con LLC (điều khiển liên kết lôgic) và MAC (điều khiển truy nhập môi trường truyền), do đó các tầng này có thể được liệt kê như sau:
- Tầng liên kết dữ liệu
- Tầng con LLC
- Tầng con MAC
- Tầng vật lý
Họ chuẩn IEEE 802 được bảo trì bởi Ban Tiêu chuẩn LAN/MAN IEEE 802
(IEEE 802 LAN/MAN Standards Committee (LMSC)) Các chuẩn được dùng rộng rãi
nhất là dành cho họ Ethernet, Token Ring, mạng LAN không dây, các mạng LAN
dùng bridge và bridge ảo (Bridging and Virtual Bridged LANs) Chuẩn dành cho họ
Ethernet là chuẩn IEEE 802.3
Trang 9CHƯƠNG 2 HỌ GIAO THỨC TCP/IP
2.1 Họ giao thức TCP/IP
TCP/IP là viết tắt của Transmission Control Protocol / Internet Protocol (Giao thức Điều Khiển Truyền Thông /Giao thức Internet) TCP/IP không chỉ gồm 2 giao thức mà thực tế nó là tập hợp của nhiều giao thức TCP/IP sử dụng mô hình truyền thông 4 tầng hay còn gọi là mô hình DoD (Mô hình của Bộ Quốc Phòng Mỹ) Các tầng trong mô hình này là:
- Tầng Ứng Dụng (Application Layer)
- Tầng Giao Vận (Transport Layer)
- Tầng Liên Mạng (Internet Layer)
- Tầng Giao Tiếp Mạng (Network Interface Layer)
Hình 3: Cấu trúc họ giao thức TCP/IP.
2.1.1 Tầng Ứng Dụng (Application Layer)
Gồm nhiều giao thức cung cấp cho các ứng dụng người dùng Được sử dụng để định dạng và trao đổi thông tin người dùng 1 số giao thức thông dụng trong tầng này là:
- DHCP (Dynamic Host Configuration Protocol): Giao thức cấu hình trạm động
- DNS (Domain Name System): Hệ thống tên miền
Trang 10- SNMP (Simple Network Management Protocol): Giao thức quản lý mạng đơn giản.
- FTP (File Transfer Protocol): Giao thức truyền tập tin
- TFTP (Trivial File Transfer Protocol): Giao truyền tập tin bình thường
- SMTP (Simple Mail Transfer Protocol): Giao thức gửi thư đơn giản
- TELNET: là chương trình mô phỏng thiết bị đầu cuối cho phép người dùng login vào một máy chủ từ một máy tính nào đó trên mạng
Tầng ứng dụng trao đổi dữ liệu với lớp dưới (lớp vận chuyển) qua cổng Việc dùng cổng bằng số cho phép giao thức của lớp vận chuyển biết loại nội dung nào chứa bên trong gói dữ liệu Những cổng được đánh bằng số và những ứng dụng chuẩn thường dùng cùng cổng Ví dụ: giao thức FTP dùng cổng 20 cho dữ liệu và cổng 21 cho điều khiển, giao thức SMTP dùng cổng 25…
2.1.2 Tầng Giao Vận (Transport Layer)
Có trách nhiệm thiết lập phiên truyền thông giữa các máy tính và quy định cách truyền dữ liệu 2 giao thức chính trong tầng này gồm:
- UDP (User Datagram Protocol): Còn gọi là Giao Thức Gói Người Dùng UDP cung cấp các kênh truyền thông phi kết nối nên nó không đảm bảo truyền dữ liệu 1 cách tin cậy Các ứng dụng dùng UDP thường chỉ truyền những gói có kích thước nhỏ,
độ tin cậy dữ liệu phụ thuộc vào từng ứng dụng
- TCP (Transmission Control Protocol): Ngược lại với UDP, TCP cung cấp các kênh truyền thông hướng kết nối và đảm bảo truyền dữ liệu 1 cách tin cậy TCP thường truyền các gói tin có kích thước lớn và yêu cầu phía nhận xác nhận về các gói tin đã nhận
2.1.3 Tầng Internet (Internet Layer)
Nằm bên trên tầng truy nhập mạng Tầng này có chức năng gán địa chỉ, đóng gói
và định tuyến (Route) dữ liệu 4 giao thức quan trọng nhất trong tầng này gồm:
- IP (Internet Protocol): Có chức năng gán địa chỉ cho dữ liệu trước khi truyền
và định tuyến chúng tới đích
- ARP (Address Resolution Protocol): Có chức năng biên dịch địa chỉ IP của máy đích thành địa chỉ MAC
Trang 11- ICMP (Internet Control Message Protocol): Có chức năng thông báo lỗi trong trường hợp truyền dữ liệu bị hỏng.
- IGMP (Internet Group Management Protocol): Có chức năng điều khiển truyền
đa hướng (Multicast)
2.1.4 Lớp giao tiếp mạng
Tầng giao tiếp mạng liên quan tới việc trao đổi dữ liệu giữa hai trạm thiết bị trong cùng một mạng Các chức năng bao gồm việc kiểm soát truy nhập môi trường truyền dẫn, kiểm soát lỗi và lưu thông dữ liệu Datagram được tạo từ lớp Internet sẽ được gửi xuống tới lớp truy nhập mạng nếu truyền dữ liệu, hoặc tầng giao tiếp mạng
sẽ lấy dữ liệu từ mạng và gửi nó tới lớp Internet nếu chúng ta nhận dữ liệu Như đã đề cập ở phần trên, Ethernet là giao thức cấp dưới có ba lớp LLC ( Logic Link Control ), MAC ( Media Access Control ) và lớp vật lí Physical
2.2 Cấu trúc gói tin IP,TCP,UDP
2.2.1 Cấu trúc địa chỉ IP
Mạng Internet dùng hệ thống địa chỉ IP (32 bit) để "định vị" các máy tính liên kết với nó Có hai cách đánh địa chỉ phụ thuộc vào cách liên kết của từng máy tính cụ thể
Nếu các máy tính được kết nối trực tiếp với mạng Internet thì NIC (Network Information Centre) sẽ cấp cho các máy tính đó một địa chỉ IP (IP Address)
Nếu các máy tính không kết nối trực tiếp với mạng Internet mà thông qua một mạng cục bộ thì người quản trị mạng sẽ cấp cho các máy tính đó một địa chỉ IP (tuy nhiên cũng dưới sự cho phép của NIC)
Hệ thống địa chỉ này được thiết kế mềm dẻo qua một sự phân lớp, có 5 lớp địa chỉ IP là : A, B, C, D, E Sự khác nhau cơ bản giữa các lớp địa chỉ này là ở khả năng tổ chức các cấu trúc con của nó
Trang 12Bảng 2: Tổ chức địa chỉ IP.
- Địa chỉ lớp A: Lớp A sử dụng byte đầu tiên của 4 byte để đánh địa chỉ mạng Như hình trên, nó được nhận ra bởi bit đầu tiên trong byte đầu tiên của địa chỉ có giá trị 0 3 bytes còn lại được sử dụng để đánh địa chỉ máy trong mạng Có 126 địa chỉ lớp
A (được đánh địa chỉ trong byte thứ nhất) với số máy tính trong mạng là 2563 - 2 = 16.777.214 máy cho mỗi một địa chỉ lớp A (sử dụng 3 bytes để đánh địa chỉ máy)
- Địa chỉ lớp B: Một địa chỉ lớp B được nhận ra bởi 2 bit đầu tiên của byte thứ nhất mang giá trị 10 Lớp B sử dụng 2 byte đầu tiên của 4 byte để đánh địa chỉ mạng
và 2 byte cuối đánh địa chỉ máy trong mạng Có 64*256 - 2 = 16.128 địa chỉ mạng lớp
B với 65.534 máy cho mỗi một địa chỉ lớp B
- Địa chỉ lớp C: Một địa chỉ lớp C được nhận ra với 3 bit đầu mang giá trị 110 Mạng lớp C sử dụng 3 byte đầu để đánh địa chỉ mạng và 1 byte cuối đánh địa chỉ máy tính có trong mạng Có 2.097.152 -2 địa chỉ lớp C, mỗi địa chỉ lớp C có 254 máy
- Địa chỉ lớp D: Dùng để gửi các IP datagram tới một nhóm các host trên một mạng
- Địa chỉ lớp E: Dùng để dự phòng và dùng trong tương lai
2.2.2 Cấu trúc gói tin IP
- Ver-4 bít: chỉ version hiện hành của ip đang được dùng, nếu trường này khác với phiên bản IP của thiết bị nhận, thiết bị nhận sẽ loại bỏ các gói tin này
- IHL(IP Header Length)-4bít: chỉ độ dài phần header của gói tin, tính theo từ 32 bít
- TOS(Type of Service)-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 Cụ thể
Class D 1 1 1 0 Multicast address
Class E 1 1 1 1 0 Reverved for future use
Trang 13• 3 bít đầu (Precedence) chỉ quyền ưu tiên gửi gói tin, từ gói tin bình thường
là 0 đến gói tin kiểm soát mạng là 7
thường, 1 ứng với gói tin có độ trễ thấp
gói tin với lựa chọn truyền trên đường thông suất thấp hay trên đường thông suất cao, 0 ứng với thông lượng bình thường, 1 ứng với thông lượng cao
bình thường, 1 ứng với độ tin cậy cao
- Total Length-2byte:chỉ độ dài toàn bộ gói tin tính cả phần header, tính theo đơn
vị byte
- Indentification-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 một gói tin trong thời gian nó tồn tại trên mạng
- Flags: Các gói tin khi truyền trên đường đi có thể bị phân thành nhiều gói tin nhỏ Trường Flags dùng để điều khiển phân đoạn và lắp ghép gói tin Cụ thể như sau:
mảnh
với gói tin không phải là phân đoạn cuối cùng của gói tin gốc
- Fragment Offset-13bí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-1byte: quy định thời gian tồn tại tính bằng giây của gói tin trong mạng Thời gian này được đặt bởi trạm gửi và giảm đi (thường quy ước là 1) khi gói tin đi qua mỗi router của liên mạng Một giá trị tối thiểu phải đủ lớn để mạng hoạt động tốt
- Protocol: Chỉ tầng giao thức kế tiếp sẽ nhận vùng dữ liệu ở trạm đích TCP có ứng với giá trị 6, UDP ứng với giá trị 17, 1 ứng với ICMP
Trang 14- 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-4byte: Địa chỉ IP của nơi truyền gói tin
- Destination IP Address-4byte: Địa chỉ IP của nơi nhậ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 phần header luôn kết thúc ở một mốc 32 bít
- Data: chứa thông tin lớp trên ,chiều dài thay đổi đến 64Kb
2.2.3 Cấu trúc gói tin TCP
Đơn vị dữ liệu trong TCP được gọi là Segment với cấu trúc như sau:
- Source Port-2 byte: 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 của byte đầu tiên của segment, nếu cờ SYN bật thì
nó là số thứ tự gói ban đầu và byte đầu tiên được gửi có số thứ tự này cộng thêm 1 Nếu không có cờ SYN thì đây là số thứ tự của byte đầu tiên
- Acknowledgment Number-2byte: nếu cờ ACK bật thì giá trị của trường chính là
số thứ tự gói tin tiếp theo mà bên nhận cần Báo là nhận tốt các segment mà trạm đích
đã gửi cho trạm nguồn
- Data offset-4bit: độ dài của phần header tính theo đơn vị từ 32 bit Tham số này chỉ ra vị trí bắt đầu của nguồn dữ liệu
- Reserved-6 bít
- Flags: các bít điều khiển
Trang 15- 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ố từ 16 bit mà số thứ tự gói tin (sequence number) cần dịch trái
- Option-2byte: vùng tuỳ 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 một 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à 536byte Giá trị này có thể khai báo trong trường Option
2.2.4 Cấu trúc gói tin UDP
Vùng header của UDP có 64 bít với 4 trường :
- Source Port-2byte: xác định cổng của người gửi thông tin và có ý nghĩa nếu muốn nhận thông tin phản hồi từ người nhận Nếu không thì đặt nó bằng 0
- Destination Port-2byte: xác định cổng nhận thông tin và trường này là cần thiết
- Length-2byte: là chiều dài của toàn bộ gói tin(phần header và phần dữ liệu) Chiều dài tối thiểu là 8 byte khi gói tin không có dữ liệu, chỉ có header
- Checksum-2byte: dùng cho việc kiểm tra lỗi của phần header và phần dữ liệu
CHƯƠNG 3 PHẦN CỨNG
3.1 Vi điều khiển PIC 18F67J60
3.1.1 Các đặc trưng của PIC 18F67J60
Trang 16Vi điều khiển PIC18F67J60 là một vi điều khiển thuộc dòng vi điều khiển PIC19F97J60, do đó nó có các đặc trưng chung của họ vi điều khiển này.
- Tích hợp MAC và 10Base-T PHY
- 8 kbyte bộ nhớ đệm SRAM để lưu trữ các gói tin truyền/nhận
- Có 2 led để chỉ trạng thái hoạt động
3.1.2 Module A/D 10 bit
Vi điều khiển PIC 18F67J60 có 11 kênh chuyển đổi A/D (analog-to-digital) Module ADC cho phép chuyển đổi một tín hiệu tương tự đầu vào thành một giá trị số
10 bit tương ứng ở đầu ra
Trang 173.1.2.1 Module A/D có 5 thanh ghi:
- Thanh ghi ADCON0: điều khiển hoạt động của module A/D
Hình 4: Thanh ghi ADCON0.
Ta chỉ cần quan tâm đến các bit 5-0
và module A/D này không làm gì nếu bit này là 0
Trang 18ADON=0 : không cho phép module A/D hoạt động.
- Thanh ghi ADCON1: cấu hình cho các chân A/D
Hình 5: Thanh ghi ADCON1.
VCFG0 = 0 nghĩa là đặt VREF- = AVSS
VCFG0 = 0 nghĩa là đặt VREF+ = AVDD
chân A/D
Hình 6: Các bit điều khiển cấu hình cho các chân của bộ A/D.
Chú thích: (1): AN12-AN15 chỉ có trên các vi điều khiển 80 và 100 chân.
(2): AN5 chỉ có trên vi điều khiển 100 chân
- Thanh ghi ADCON2: cấu hình xung clock cho bộ A/D, căn chỉnh.
Trang 19Hình 7: Thanh ghi ADCON2.
111 = FRC (xung clock của bộ dao động RC)
Trang 203.1.2.2 Quá trình chuyển đổi A/D:
- Bước 1: Cấu hình cho module A/D
A/D đầu vào)
time)
- Bước 2: Cấu hình ngắt A/D (nếu sử dụng)
- Bước 3: Chờ acquisition time được yêu cầu (nếu được yêu cầu)
- Bước 4: Bắt đầu chuyển đổi, set bit ADCON0<1>
- Bước 5: Chờ quá trình chuyển đổi A/D hoàn thành bằng việc chờ cho đến khi bit ADCON0<1> bị xóa hoặc chờ ngắt A/D
- Bước 6: Đọc kết quả các thanh ghi (ADRESH:ADRESL), xóa bit ADIF nếu được yêu cầu
- Bước 7: Để thực hiện quá trình chuyển đổi tiếp theo, quay lại bước 1 hoặc bước 2
3.1.3 Module Ethernet
Vi điều khiển PIC18F67J60 được tích hợp sẵn module điều khiển Ethernet Đây
là một giải pháp kết nối hoàn chỉnh, bao gồm cả module Media Access Control (MAC) và Physical Layer transceiver (PHY) Module Ethernet đáp ứng tất
cả các chuẩn IEEE 802.3 cho kết nối 10-BaseT cáp đôi xoắn Có 2 LED output để báo liên kết và trạng thái hoạt động của mạng
Trang 21Hình 8: Sơ đồ khối module Ethernet.
Module Ethernet gồm 5 khối chức năng chính:
- Khối truyền nhận PHY sẽ mã hóa và giải mã dữ liệu gửi hoặc nhận ở đầu RJ45
- Khối MAC phù hợp với chuẩn IEEE 802.3 cung cấp MIIP (Media Independent Interface Management) để điều khiển PHY
- Một bộ đệm RAM 8Kbyte để lưu trữ các gói tin truyền nhận
- Một khối phân xử để điều khiển sự truy cập vào bộ đệm RAM khi được DMA, khối truyền nhận yêu cầu
- Thanh ghi giao tiếp có chức năng thông dịch những dòng lệnh và tín hiệu trạng thái nội giữa module Ethernet và các thanh ghi đặc biệt của vi điều khiển SFRS
3.2 Cảm biến nhiệt độ LM35
IC đo nhiệt độ là một mạch tích hợp nhận tín hiệu nhiệt độ chuyển thành tín hiệu điện dưới dạng dòng điện hay điện áp Dựa vào đặc tính rất nhạy của các bán dẫn với nhiệt độ, tạo ra điện áp hoặc dòng điện tỷ lệ thuận với nhiệt độ tuyệt đối Đo tín hiệu điện ta biết được giá trị của nhiệt độ cần đo Sự tác động của nhiệt độ tạo ra điện tích
tự do và các lỗ trống trong chất bán dẫn Bằng sự phá vỡ các phân tử, bứt các electron
Trang 22thành dạng tự do di chuyển qua vùng cấu trúc mạng tinh thể tạo sự xuất hiện các lỗ trống Làm cho tỷ lệ điện tử tự do và lỗ trống tăng lên theo quy luật hàm mũ với nhiệt độ.
là 0 Với Vref=2.5V, giá trị của ADC từ 0 đến 1023, lấy tròn 1000 mức Mỗi giá trị
phân giải A/D ta giảm Vref
Hình 9: LM35 DZ
3.3 Mạch nguyên lý
3.3.1 Khối mạch nguồn
Trang 23- Mạch nguồn sử dụng IC ổn áp 7805 để tạo điện áp 5V để nuôi các khối sử dụng điện áp 5V và đưa tới đầu vào của IC ổn áp LM117 Tại đầu ra của LM117 là điện áp 3.3V dùng để cấp nguồn cho vi điều khiển và các khối khác trong mạch sử dụng điện
áp 3.3V
- Tại đầu vào của IC 7805, dòng điện DC được cho qua một diode D3 trước khi tới đầu vào của 7805 để bảo đảm cho dòng điện qua 7805 theo 1 chiều cố định Các tụ C15, C17, C13, C16, C19, C18 có tác dụng lọc nhiễu
3.3.2 Khối mạch RJ45
Hình 11: Khối mạch RJ45.
- Trong mạch này, sử dụng đầu cắm giao tiếp RJ45 là HR911105A của HANRUN HR911105A được tích hợp sẵn biến áp và có 2 led để thông báo trạng thái kết nối của mạch
Trang 24Hình 12: Sơ đồ khối của HR911105A.
3.3.3 Khối mạch LCD
Hình 13: Khối mạch LCD.
- Khối mạch LCD sử dụng LCD 16x2 để hiển thị địa chỉ IP hiện tại của mạch và
để hiện thị các kí tự được truyền xuống từ web giao diện
Trang 253.3.4 Khối mạch vi điều khiển PIC18F67J60
Hình 14: Jack kết nối với mạch vi điều khiển, mạch dao động ngoài, chân
VDDCORE/VCAP.
- Chân VDDCORE/VCAP của vi điều khiển được nối với tụ phân cực C14 xuống đất
- Bộ dao động ngoài sử dụng thạch anh 25MHz
Hình 15: Mạch lọc, mạch reset, chân nạp cho vi điều khiển.
Trang 26- Các tụ C2, C3, C4, C5, C6, C7, C9 có tác dụng lọc nhiễu.
3.4 Mạch in
Hình 16: Bảng mạch chính.
Trang 273.5 Mạch thực tế
Hình 18: Bản mạch chính
Hình 19: Vi điều khiển PIC 18F67J60
Hình 20: Mạch led và LM 35
Trang 28CHƯƠNG 4 TRÌNH BIÊN DỊCH MPLAB C18 VÀ WEB SERVER
Trình biên dịch MPLAB C18 làm cho sự phát triển của các ứng dụng hệ thống nhúng dễ dàng hơn vì nó sử dụng ngôn ngữ C chuẩn
4.1.2 Các đặc trưng của trình dịch MPLAB C18:
- Tương thích với chuẩn ANSI-89
- Tích hợp MPLAB IDE để có thể dễ dàng quản lý project
- Tương thích với các module đối tượng được tạo bởi trình biên dịch hợp ngữ MPASM, cho phép kết hợp việc lập trình C và lập trình hợp ngữ trong cùng một project
- Đọc/ ghi vào bộ nhớ ngoài
- Có các thư viện mở rộng hỗ trợ cho PMW, SPI, I2C, UART, USART và thư viện toán học
4.1.3 Quá trình tạo ra file HEX
Quá trình tạo ra file HEX của project để nạp vào vi điều khiển PIC18XXXX.Đầu tiên, MPLAB C18 sẽ biên dịch file2.c và file3.c để tạo ra các object file file2.o và file3.o MPASM biên dịch file1.asm thành object file file1.o Sau đó, file object file4.o kết hợp với file3.o để tạo thành 1 thư viện gọi là lib1.lib Cuối cùng, các file object còn lại liên kết cùng với file lib1.lib bởi trình liên kết MPLINK MPLINK cũng có một linker script ở đầu vào là file script.lkr MPLINK liên kết tất cả các file này để tạo ra các file đầu ra: output.cof, output.map, và output.hex
Trang 29Hình 21: Quá trình tạo file HEX
4.2 Web động
Web động hay DHTML ( Dynamic HTML) có thể được định nghĩa như là một phần mềm được sử dụng cho việc mô tả sự kết hợp giữa ngôn ngữ đánh dấu siêu văn bản HTML, các stylesheet và ngôn ngữ script làm cho tài liệu trở nên sinh động
DHTML cho phép người lập trình dễ dàng thêm các hiệu ứng cho các trang web
Ví dụ như làm động các hình ảnh và text trên trang web
Trang 30Often the code is stored in an external file; this is done
by linking the file that contains the JavaScript
This is helpful when several pages use the same script:
CSS là chữ viết tắt của cụm từ tiếng Anh “Cascading Style Sheet”, là kiểu thiết
kế sử dụng nhiều lớp định dạng chồng lên nhau CSS được tổ chức World Wide Web
Trang 31phần mở rộng của HTML để giúp đơn giản hóa và cải tiến việc thiết kế cho các trang web.
Một tiện ích của CSS là định nghĩa các Style (kiểu dáng, định dạng, v.v ) một lần
và các trình duyệt có thể áp dụng các Style này nhiều lần trong một văn bản
4.3.1 Ưu điểm của CSS
CSS có thể tách riêng phần định dạng ra khỏi nội dung một trang web, do đó nó
sẽ rất thuận tiện khi thay đổi giao diện của một trang web
CSS là một sợi chỉ xuyên suốt trong quá trình thiết kế một website bởi vì nó cho phép nhà thiết kế kiểm soát toàn bộ giao diện, kiểu cách và sự sắp đặt của nhiều trang hay nhiều đối tượng trong một lần định nghĩa Để thay đổi tổng thể hay nhiều đối tượng có cùng style, chỉ cần thay đổi style đó và lập tức tất cả các thành phần áp dụng Style đó sẽ thay đổi theo Nó giúp tiết kiệm công sức rất nhiều
Do định nghĩa các style có thể được tách riêng ra khỏi nội dung của trang web, chúng được các trình duyệt tải một lần và sử dụng cho nhiều lần, do đó nó giúp các trang web nhẹ hơn và chạy nhanh hơn
4.3.2 Các đặc tính cơ bản của CSS
CSS quy định cách hiển thị của các thẻ HTML bằng cách quy định các thuộc tính của các thẻ đó (font chữ, màu sắc) Để cho thuận tiện có thể đặt toàn bộ các thuộc tính của thẻ vào trong một file riêng có phần mở rộng là “.css”, thường người ta hay đặt tên
Trang 32- Style nội tuyến – Style đặt trong từng thẻ HTML riêng biệt.
- Stylet bên trong – Style đặt bên trong cặp thẻ <Head> … </Head>
- Style bên ngoài – Style đặt trong các file riêng có đuôi “.css”
- Style theo mặc định của trình duyệt