mỤc lỤci.vietnamdoc.net/data/file/2015/thang05/26/dieu_khien... · web viewchiến lược...
TRANSCRIPT
MỤC LỤC
Lời Cảm ơn................................................................................................5
Lời mở đầu.......................................................................................................6
Mục tiêu đề tài...........................................................................................7
Nhiệm vụ của đề tài...................................................................................7
Chương 1: Tổng quan về Ethernet................................................................8
1.1. Cấu trúc khung tin Ethernet..................................................................8
1.1. Cấu trúc địa chỉ Ethernet....................................................................11
1.2. Đặc tính điện.......................................................................................11
1.3. Các loại khung Ethernet......................................................................12
1.3.1. Các loại khung uniscat..................................................................12
1.3.2. Các khung broadcast.....................................................................13
1.3.3. Các khung Multicast.....................................................................13
1.4. Truy cập bus.......................................................................................13
1.5. Các loại Ethernet.................................................................................15
1.5.1. Các hệ thống Ethernet 10Mb/s........................................................15
1.5.2. Các hệ thống Ethernet tốc độ 100Mb/s........................................16
1.5.3. Các hệ thống Giga Ethernet..........................................................16
Chương 2: Họ giao thức TCP/IP..................................................................18
2.1. Họ giao thức TCP/IP.............................................................................18
2.1.1. Tầng ứng dụng ( Application layer).............................................20
2.1.2. Tầng giao vận(Transport layer)....................................................21
2.1.3. Tầng mạng( internet layer)...........................................................22
2.1.4. Lớp liên mạng (Network Interface Layer)...................................22
2.2. Cấu trúc gói tin IP, TCP,ARP,UDP....................................................23
2.2.1. Cấu trúc địa chỉ IP..........................................................................23
2.2.2. Cấu trúc gói tin IP.........................................................................24
2.2.3. Cấu trúc gói tin TCP.....................................................................26
2.2.4. Cấu trúc gói tin ARP (Adrees Resolution Protocol)....................27
1
2.2.5. Cấu trúc gói tin UDP....................................................................31
2.2.6. Giao thức điều khiển truyền tin – ICMP (Internet Control
Message Protocol).....................................................................................31
Chương 3: Phần cứng...................................................................................33
3.1. Vi điều khiển PIC...............................................................................33
3.1.1. Giới thiệu về vi điều khiển PIC...................................................33
3.1.2. Một số ưu điểm của Microchip PIC...........................................35
3.1.3. Vi điều khiển PIC18F4550...........................................................36
3.3. Cảm biến nhiệt độ LM35.....................................................................47
3.4. Module Ethernet ENC28J60 và chuẩn giao tiếp SPI...........................49
3.4.1. Vi Mạch Ethernet ENC28j60.........................................................49
3.4.2. Sơ đồ chân và sơ đồ khối của ENC28j60........................................50
3.4.3. Sơ đồ ghép nối vi điều khiển với ENC28j60.................................51
3.4.4. Module Ethernet.............................................................................52
3.4.5. Chuẩn truyền thông SPI................................................................52
3.5. Text LCD.............................................................................................57
3.5.1. Cấu trúc Text LCD..........................................................................57
3.5.2. Sơ đồ chân......................................................................................58
3.5.3. Điều khiển hiển thị..........................................................................60
3.5.4. Mạch RJ14.....................................................................................62
Chương 4: Trình biên dịch CCS và webserver...........................................63
4.1. Trình dịch CCS (PIC C Compiler)........................................................63
4.1.1. Vì sao ta sử dụng CCS....................................................................63
4.1.2. Giới thiệu về CCS..........................................................................63
4.1.3. Tạo PROJECT đầu tiên trong CCS.................................................64
4.2. Web động..............................................................................................74
4.3. CSS........................................................................................................74
4.3.1. Ưu điểm của CSS............................................................................75
4.3.2. Các đặc tính cơ bản của CSS..........................................................75
2
4.3.3. CSS có tính kế thừa và kết hợp.......................................................77
Chương 5: Sơ đồ khối và mô phỏng.............................................................79
5.1. Sơ đồ khối..........................................................................................79
5.2. Mạch nguyên lý..................................................................................80
5.2.1. Khối nguồn..................................................................................81
5.2.2. Khối công suất (RELAY)............................................................81
5.2.3. Khối hiển thị (LCD 16x2)...........................................................82
5.2.4. Khối Key điều khiển đèn (Nút nhấn)..........................................82
5.2.5. Khối đo nhiệt độ và Header giao tiếp với Module Ethernet........83
5.2.6. Khối reset, Xung thạch anh, Lọc nguồn.....................................183
5.2.7. Khối Vi xử lý trung tâm (Pic 18F4550)......................................84
5.3. Mô Phỏng............................................................................................85
KẾT LUẬN....................................................................................................86
Tài liệu tham khảo:.......................................................................................87
3
HÌNH ẢNH:Hình 1. 1: Mã hóa Manchester........................................................................12Hình 1. 2: Mô hình truyền thông unicast........................................................13Hình 1. 3: Minh họa phương pháp CSMA/CD..............................................14
Hình 2. 1: Kiến trúc TCP/IP............................................................................19Hình 2. 2: Quá trình đóng/mở gói dữ liệu trong TCP/IP.................................20Hình 2. 3: Cấu trúc dữ liệu trong TCP/IP........................................................20Hình 2. 4: tổ chức địa chỉ IP............................................................................24Hình 2. 5: Mô tả đường truyền dữ liệu ARP...................................................28
Hình 3. 1: Hình thực tế của PIC18F4550........................................................36Hình 3. 2: sơ đồ chân của PIC18F4550...........................................................38Hình 3. 3: Sơ đồ chân của LM35....................................................................48Hình 3. 4: Sơ đồ chân ENC28J60...................................................................50Hình 3. 5: Sơ đồ khối ENC28J60....................................................................50Hình 3. 6: Sơ đồ ghép nối vi điều khiển với ENC28j60.................................51Hình 3. 7 : Sơ đồ nguyên lý Module Ethernet.................................................51Hình 3. 8: Module Ethernet thực tế.................................................................52Hình 3. 9: SPI giữa một chip Master và 3 chip Slave thông qua 4 đường......54Hình 3. 10: Quá trình truyền 1 gói dữ liệu thực hiện bởi module SPI............55Hình 3. 11: Quá trình đọc thanh ghi điều khiển Ethernet...............................55Hình 3. 12: Quá trình đọc thanh ghi điều khiển MAC....................................56Hình 3. 13: Quá trình ghi vào thanh ghi lệnh.................................................56Hình 3. 14: Quá trình ghi vào bộ đệm lệnh....................................................56Hình 3. 15: Quá trình ghi vào lệnh của hệ thống...........................................57Hình 3. 16: Text LCD 16x2............................................................................58Hình 3. 17: kết nối Text LCD với Vi điều khiển............................................60Hình 3. 18: Hoạt động của chân RS................................................................61Hình 3. 19: Sở đồ khối của HR911105A........................................................62
Hình 4. 1: Giao diện chương trình CCS..........................................................64Hình 4. 2: Tạo file mới trong PCW compiler.................................................65Hình 4. 3: Bảng hỗ trợ chức năng cho PIC....................................................66Hình 4. 4: Tab General...................................................................................67Hình 4. 5: Tab Communications....................................................................68
4
Hình 4. 6: Tab SPI..........................................................................................69Hình 4. 7: Tab LCD........................................................................................69Hình 4. 8: Tab Timer.......................................................................................70Hình 4. 9: Tab Analog.....................................................................................71Hình 4. 10: Tab Driver và Tab Interrupt.........................................................72Hình 4. 11: Tab Other.....................................................................................73Hình 4. 12: web sever......................................................................................78
Hình 5. 1: Sơ đồ khối giao tiếp của mạch.......................................................80Hình 5. 2: Mạch nguyên lý..............................................................................81Hình 5. 3: Khối nguồn.....................................................................................82Hình 5. 4: khối công suất (relay 5 chân 12v DC/ 240v AC)...........................82Hình 5. 5: khối hiển thị (LCD 16x2)...............................................................83Hình 5. 6: Khối Nút nhấn................................................................................83Hình 5. 7: LM35(nhiết độ) & Header kết nối với Module Ethernet............84Hình 5. 8: a:xung thạch anh............................................................................84Hình 5. 9: Khối xử lý dùng vi điều khiển PIC18F4550..................................85Hình 5. 10: Mô phỏng.....................................................................................86
5
BẢNG:
Bảng 1. 1: Cấu trúc khung MAC theo IEEE 802.3/ Ethernet.........................11
Bảng 2. 1: Mô tả gói thông tin ARP ..............................................................29
Bảng 2. 2: Khung dữ liệu ARP........................................................................30
Bảng 2. 3: Cấu trúc gói ICMP.........................................................................32
Bảng 3. 1: Bảng chức năng chân của PIC18F4550.........................................38
Bảng 3. 2: Bảng chức năng chân của PORTA................................................39
Bảng 3. 3: Bảng chức năng chân của PORTB................................................41
Bảng 3. 4: Bảng chức năng chân của PORTC................................................43
Bảng 3. 5: Bảng chức năng chân của PORTD................................................44
Bảng 3. 6: Bảng chức năng chân của PORTE.................................................46
Bảng 3. 7: Chức năng chân của LCD..............................................................58
6
Lời Cảm ơn
Em xin được gửi lời cảm ơn chân thành đến quý Thầy cô trong khoa
Điện – Điện Tử, nhất là quý Thầy cô thuộc bộ môn Điện Tử Viễn Thông đã
giảng dạy và truyền đạt kiến thức chuyên ngành cho người thực hiện đồ án
trong thời gian vừa qua.
Đặc biệt em xin gửi lời cảm ơn sâu sắc tới cô Vũ Thị Thu Hương vì sự
tận tình hướng dẫn cũng như đã tạo những điều kiện thuận lợi nhất cho em để
có thể thực hiện và hoàn thành tốt đề tài này.
Em cũng không quên cảm ơn các bạn trong lớp đã trao đổi, góp ý để em
hoàn thành đề tài này một cách tốt đẹp và đúng thời gian.
Mặc dù đã có nhiều cố gắng và nỗ lực thực hiện, nhưng do kiến thức
cũng như khả năng bản thân còn nhiều hạn chế nên trong quá trình thực hiện
đề tài không thể tránh khỏi những sai phạm, thiếu sót… Rất mong nhận được
sự góp ý, chỉ dẫn từ nơi quý thầy cô và các bạn sinh viên.
7
Lời mở đầu
Trong thời đại công nghiệp hoá hiện đại hoá như hiện nay. Việc phát
minh và chế tạo ra các thiết bị thông minh có khả năng điều khiểu từ xa đang
và sẽ rất được quan tâm và rất hữu ích cho cuộc sống hằng ngày.
Vì mục tiêu công nghệ hiện đại hoá ngày càng phát triển, tôi đã quyết
định làm một đồ án về điều khiển thiết bị qua mạng Ethernet. Khi dự án
hoàn thành chúng ta có thể điều khiểu các thiết điện trong nhà thông qua
mạng internet, tương tác bằng tay qua nút nhấn, kiểm soát nhiệt độ phòng;
hiển thị trạng thái hoạt động của các thiết bị trên LCD…. Dù chúng ta ở bất
cứ nơi nào có mạng internet đều có thể điều khiển được các thiết bị đã kết nối
với module điều khiển ethernet.
Khi dự án thành công và được áp dụng rộng rãi thì sẽ rất hữu ích cho đời
sống hằng ngày. Giúp cho đất nước ngày càng phát triển.
Giáo Viên Hướng Dẫn Người Thực Hiện
Vũ Thị Thu Hương Nguyễn Văn Vượng - 0541050263
8
Mục tiêu đề tài Thực hiện giao tiếp mạng giữa phần cứng mạch điện tử với máy tính
qua mạng Ethernet.
Điều khiển hoạt động của các thiết bị (trong đề tài là 3 đền LED tượng
trưng cho 3 thiết bị), dưới sự điều khiển và giám sát của con người.
Giám sát nhiệt độ thông qua cảm biến nhiệt LM35.
Nhiệm vụ của đề tài
Để có thể đạt được mục tiêu đề ra, người thực hiện đề tài đã đưa ra
những nhiệm vụ cần phải thực hiện:
Nghiên cứu vi điều khiển PIC18f4550 và trình biên dịch CCS (PIC C
Compiler).
Lý thuyết mạng Ethernet và cách thức truyền nhận dữ liệu
Nghiên cứ chuẩn giao tiếp SPI và ứng dụng thực tế trên module
Ethernet ENC28J60
Tìm hiểu ngôn ngữ html và CSS trong lập trình giao diện web
Tính toán, thiết kế và thi công phần cứng mạch điện tử (mô phỏng)
Xây dựng thuật toán và viết code cho ứng dụng dựa theo mục tiêu đã
đề ra.
9
Chương 1: Tổng quan về EthernetETHERNET là kiểu mạng cục bộ (LAN) được sử dụng rộng rãi hiện
nay. Hiện thời Ethernet thường được sử dụng nhiều nhất là 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 70 của tiến sỹ Robert M.Metcalfe. Nó được thiết kế bở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 trong 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 vào năm 1980 với sự phối hợp phát triển của 3 hãng DEC, Intel, Xerox.
Chuẩn này có tên Dix Ethernetn (lấy tên theo 3 chữ cái đầu tiên của các hãng)
Ủy 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 được ra đời với tên IEEE 802.3 Carrier Sense
Multiple access with Collition Detection (CSAM/CD). Mặt dù không sử
dụng Ethernet nhưng hầu hết mọi người đều hiểu đó là phần 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ó nhìu loại mạng Ethernet khác nhau. Đặc biệt với phiên
bản 100 Mbit/s (fast Ethernet, IEEE 802.3u), Ethernet ngày càng đóng vai trò
trong 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 (Wirless LAN, IEEE 802.11)
đang thu hút sự quan tâm rất 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 (famer) .
Cấu trúc khung Ethernet như sau:
10
Bảng 1. 1: Cấu trúc khung MAC theo IEEE 802.3/ Ethernet
Preamble (mở đầu): 7 bytes (không được tính vào kích thước frame của
Ethernet) 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): 1 bytes (không được tính vào kích thước
frame của Ethernet) trường hợp này mới thực sự xác định bắt đầu của một
khung. Nó luôn mang giá trị 10101011.
Destination Address (địa chỉ đích): 6 bytes
Đây là địa chỉ MAC của Ethernet card nơi đến (nơi khung frame gửi
đến).
Ý nghĩa của bit thấp nhất xác định 6 bytes này:
o 0: địa chỉ unicast
3 bytes đầu tiên được dùng để chỉ nhà sản xuất
1. 00-00-0C: CISCO
2. 00-00-3D: AT&T
3 bytes tiếp theo do nhà sản xuất quyết định
o 1: địa chỉ multicast
11
01-80-C2-00-00-00: được dùng bởi các bridges cho giải
thuật cây tản rộng (spanning trê algorithm)
FF-FF-FF-FF-FF-FF: địa chỉ quảng bá (broadcast)
Ở chế độ hoạt động bình thường, Ethernet chỉ tiếp nhận những frame
có địa chỉ nơi đến trùng với địa chỉ (duy nhất) của nó, hoặc địa chỉ
nơi đến thể hiện một thông điệp quản bá. Tuy vậy, hầu hết các
Ethernet card đều có thể được đặt ở chế độ "promiscuous". Trong
chế độ này, nó sẽ nhận tất cả các frame xuất hiện trong mạng LAN.
Source Address (địa chỉ nguồn): 6 bytes .Đây là địa chỉ MAC của
Ethernet card nguồn (nơi khung frame được gửi đi).
LEN/TYLE (độ dài/kiểu gói): 2 bytes. giá trị của trường nói lên độ lớn
của phần giữ liệu mà khung mang theo.
Có 2 loại cấu trúc Ethernet frame
o IEEE 802.3 MAC
Dùng để chỉ độ dài của Ethernet frame
o DIX Ethernet: được công bố bởi DEC, Intel và Xeror vào năm
1980 (phổ biến hơn)
Dùng để chỉ giao thức của lớp phía trên
0800: IP
0860: ARP
Phần thông tin: từ 46 tới 1500 bytes:
Do kích thước frame tối thiểu là 64 bytes, kích thước tối thiểu của
phần thông tin là 64-18=46 bytes.
Kích thước phần thông tin tối đa là 1500 bytes. Do đó, kích thước
gói IP trong Ethernet tối đa là 1500 bytes, đây cũng là một trong ba
kích thước gói IP thông dụng nhất (40, 576, 1500).
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
12
tương tự. Nếu hai kết quả trùng nhau, khung được xem là nhận đúng, ngược
lai khung coi như là bị lỗi và bị loại bỏ.
1.1. Cấu trúc địa chỉ Ethernet
Mỗi giao tiếp mạng Ethernet được định dạng 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ị, được 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-
96. Khuôn dạng địa chỉ MAC được chia làm 2 phần:
- 3 octet xác định hãng sản xuất, chịu sự quản lý 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 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.2. Đặc tính điện
Tín hiệu Ethernet được mã hóa theo mã Manchester. Mã hóa Manchester
sử dụng cách đảo ngược mỗi bit trong khoảng thời gian của nó để đồng bộ và
miêu tả bit.
- Bit ‘0’ Nửa chu kỳ đầu của bit là điện áp +V và nửa chu kỳ còn lại
là điện áp –V
- Bit ‘1’ Nửa chu kỳ đầu của bit là điện áp -V và nửa chu kỳ còn lại
là điện áp + V
Hình 1. 1: Mã hóa Manchester
13
1.3. Các loại khung Ethernet
1.3.1. Các loại khung uniscat
Giả sử trạm 1 cần truyền khung tới trạm 2.Khung Ethernet do trạm 1
truyền ra có địa chỉ:
- MAC nguồn: 00-60-08-93-DB-C1.
- MAC đích : 00-60-08-93-AB-12
Hình 1. 2: Mô hình truyền thông unicast
Đâ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 mạng trên sẽ đều nhận được khung này nhưng:
- Chỉ có trạm 2 lấy được đị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
(48 bit 1). 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ý.
14
Giao thức ARP sử dụng khung broadcast này để tìm địa chỉ MAC tương
ứng với 1 đị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 một nhóm mới chấp nhận các khung gửi tới địa chỉ này.
(Chú ý: Địa chỉ MAC nguồn của khung luôn là địa chỉ MAC của giao
tiếp mạng tạo ra khung. Trong khi đó địa chỉ MAC đích của khung thì phụ
thuộc vào một trong ba loại khung nếu trên.)
1.4. Truy cập bus
Một số vấn đề lớn thường gây lo ngại khi sử dụng Ethernet ở cấp trường
là phương pháp truy cập bus ngẫu nhiên CSMA/CD (Carrier Sense Multiple
access with Collision Avoidance) và sự ảnh hưởng tới hiệu suất cũng như tính
năng thời gian thực của hệ thống. Ở đây, một số 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.
15
Hình 1. 3: Minh họa phương pháp CSMA/CD
Nguyên tắc làm việc của phương pháp CSMA/CD:
Theo phương pháp CSMA/CD, mỗi trạm đều có quyền truy cậ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 có 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 đi mỗi trạm vẫn phải nghe đường đẫ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.
- 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 là các khắc phục được minh
họa trên hình 3. Trạm A và trạm 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 gửi, nên gây ra xung đột tại một điểm gần C. A và
C 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 16
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à được coi là bức điện không hợp lệ. A và C cũng có thể gửi đi 1
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 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ố 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 hoat. Khác với
phương pháp tiền định, việc ghép thêm hay bỏ đi một trạm 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 ap dụng
rộng rãi trong hệ thố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 không kết hợp thêm với các
kỹ thuật khác thì phương pháp này sẽ 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 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 Ethernet. Mỗi loại mạng mô tả dựa theo 3 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 10 Mb/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 một phân đoạn mạng là 500m.
17
- 10base2. Có tên là “thin Ethernet”, dựa trên các 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à 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 với tốc đọ 10Mb/s dựa trên hệ thống xoắn cạp Cat 3 trở lên.
- 10BaseF. F là viết tắt của Fiber Optic (sợi quang). Đây là chuẩn cho
sợi quang hoạt động với tốc độ 10 Mb/s, ra đời năm 1993.
1.5.2. Các hệ thống Ethernet tốc độ 100 Mb/s- Ethernet cao tốc (fast
Ethernet)
- 100BaseT. Chuẩn Ethernet hoat độ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ả hệ
thống này (sử dụng phương pháp mã hóa 4B/5B của chuẩn FDDI) bao gồm 2
chuẩn 100BaseFX VÀ 100BaseTX.
100BaseFX. Tốc độ 100 Mb/s, dử dụng cáp sợi quang đa mode.
100BaseTX. Tốc độ 100 Mb/s, sử dụng cáp xoắn cạp.
100BaseT2 và 100BaseT4. Các chuẩn này sử dụng 2 cặp và 4 cặp
cáp 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ã hóa đường truyền (chuẩn này
dựa trên kiểu mã hóa 8B/10B dùng trong hệ thống kết nối tốc độ cao Fiber
channel được phát triển bởi ANSI) chuẩn 1000BaseX gồm 3 loại:
1000Base-SX: tốc độ 1000 Mb/s, sử dụng sợi quang với sóng
ngắn.
1000Base-LX: tốc độ 1000 Mb/s, sử dụng sợi quang với sóng dài.
1000Base-cX: tốc độ 1000 Mb/s, sử dụng cáp đồng.
18
- 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ã hóa đường truyền riêng để đạt được
tốc độ cao trên loại cáp này.
1.5.4. Chuẩn IEEE 802
IEEE 802 là hoc các chuẩn IEEE sành cho các mạng LAN và mạn 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 đơn vị nhỏ có cùng
kích thước được gọi là cell. Các mạng Iosochronous, nơi dữ liệu được truyền
theo một dòng lien 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.
Cá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á 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.
19
Chương 2: Họ giao thức TCP/IP2.1. Họ giao thức TCP/IP
TCP/IP là bộ giao thức cho phép kết nối các hệ thống mạng không đồng
nhất với nhau.TCP/IP là tên viết tắt của Transmission Control Protocol
(giao thức điều khiển truyền thông)/Internet Protocol (Giao thức Internet),
ngày nay TCP/IP được 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.
TCP/IP không chỉ gồm hai giao thức mà thực tế nó là tổ hợp của nhiều
giao thức. Chúng ta gọi đó là 1 hệ giao thức hay bộ giao thức (Suite Of
Protocols).
TCP/IP là một bộ giao thức được thiết kế để đạt được hai mục tiêu
chính:
1. Cho phép truyền thông qua các đường dây của mạng rộng
(Wide Area Network – WAN).
2. Cho phép truyền thông giữa các môi trường đa dạng.
TCP/IP sử dụng mô hình truyền thông 4 tầng hay gọi là truyền hình DoD
(mô hình của bộ quốc phòng Mỹ). TCP/IP được xem là giản lược của mô hình
tham chiếu OSI, các tầng trong mô hình này là (theo thứ tự từ trên xuống):
- Tầng ứng dụng (Application Layer).
- Tầng giao vận (Transport Layer).
- Tầng mạng (Internet Layer).
- Tầng liên mạng (Network Interface Layer).
20
Hình 2. 1: Kiến trúc TCP/IP
Cũng tương tự như trong mô hình OSI, khi truyền dữ liệu, quá trình tiến
hành 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 được gọi là phần header. Khi nhận dữ liệu thì quá trình
xảy ra ngược lại, qua mỗi tầng thì phần header tương ứng được lấy đi và khi
đến tầng trên cùng thì dữ liệu không còn phần header nữa.
21
Hình 2. 2: Quá trình đóng/mở gói dữ liệu trong TCP/IP
Hình 2. 3: Cấu trúc dữ liệu trong TCP/IP
22
Hình vẽ 2.3 cho ta thấy lược đồ dữ liệu qua các tầng. Trong hình vẽ này
ta thấy tại các tầng khác nhau, dữ liệu được mang những thuật ngữ khác nhau:
- Trong tầng ứng dụng dữ liệu là các luồng được 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 tới tầng dưới được gọi là IP
datagram.
- Trong tầng liên kết, dữ liệu được truyền đi gọi là frame.
2.1.1. Tầng ứng dụng (Application layer)
Tầng ứng dụng là tầng trên cùng của mô hình TCP/IP bao gồm các tiến
trình và các ứng dụng cung cấp cho người sử dụng để truy cập mạng. Được
dùng để định dạng và trao đổi thông tin người dùng. Một số giao thức thông
dụng trong tầng này là:
- DHCP (Dynamic Host Cofiguraiton Protocol): giao thức cấu hình
trạm động.
- DNS (Domain Name System): hệ thống tên miền.
- 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 thiết bị 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à
23
những ứng dụng chuẩn thừơng được dùng cùng cổng. Ví dụ: giao thức FTP
dùng cổ 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, hai giao thức chính cho 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 một dịch vụ đơn giản hơn cho tầng ứng dụng. Nó cung cấp
kênh truyền thông phi kết nối, chỉ gửi các gói dữ liệu từ trạm này tới trạm kia
mà không đảm bảo các gói tin đến được tới đích. 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. Các cơ chế đảm bảo độ tin cậy cần được thực hiện bởi
tầng trên.
- 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 một cách
tin cậy. Nó cung cấp một luồng dữ liệu tin cậy giữa hai trạm, sử dụng các cơ
chế như chia nhỏ các gói tin của tầng trên thành các gói tin có kích thước
thích hợp cho tầng mạng bên dưới, báo nhận gói tin, đặt hạn chế thời gian
time-out để đảm bảo bên nhận biết được các gói tin đã gửi đi. 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. Do tầng này đảm bảo tính tin cậy, tầng trên sẽ không cần quan
tâm đến nữa.
2.1.3. Tầng mạng (internet layer)
Nằm bên trên tầng liên 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:
24
- 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 phiên dịch địa chỉ
IP của máy đích thành địa chỉ MAC.
- ICMP (Internet Control Message Protocol): có chức năng thông báo
lỗi khi truyền dữ liệu bị hỏng.
- IGMP (Internet Group Managemant Protocol): có chức năng điều
khiển truyền đa hướng (multicast).
2.1.4. Lớp liên mạng (Network Interface Layer)
Tầng giao tiếp mạng liên quan đến 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 bởi từ lớp mạng (Internet) sẽ được gửi xuống tới lớp liên mạng
(Network Interface Layer) nếu truyền dữ liệu, hoặc tầng liên mạng (Network
Interface Layer) sẽ lấy dữ liệu từ mạng và gửi nó tới lớp mạng (Internet) nếu
chúng ta nhận dữ liệu.
Tầng này bao gồm các thiết bị giao tiếp mạng (Card Mạng và Cáp
Mạng) và chương trình cung cấp các thông tin cần thiết để có thể hoạt động,
truy nhập đường truyền vật lý qua thiết bị giao tiếp mạng đó.
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,ARP,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ể.
25
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 máy tính đó một địa chỉ IP (IP
Adress).
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ó.
Hình 2. 4: 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ó nhận ra được bit đầu tiên trong byte đầu tiên của địa
chỉ có giá trị bằng 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 bít đầu tiên của
byte thứ nhất mang giá trị 10. Lớp B sử dụng 2 bít đầu tiên của byte để đánh
26
đị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ỉ mạng lớp B.
- Địa chỉ lớp C: một địa chỉ lớp C được nhận ra với 3 bít đầu mang giá
trị 110. Mạng lớp C sử dụng 3 byte đầu để đánh địa chỉ mạng và một byte
cuối để đánh địa chỉ máy tính có trong mạng. Có 2.079.125-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.
- Lớp địa chỉ 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 bit : 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)- 4 bit 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ể như sau:
- 3 bít đầu 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.
- Một bít tiếp theo chỉ độ chễ yêu cầu, 0 ứng với gói tin có độ trễ bình
thường, 1 ứng với gói tin có độ trễ thấp.
- Một bít tiếp theo chỉ thông lượng yêu cầu sử dụng để truyền 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.
- 1 bít tiếp theo có độ tin cậy yêu cầu, 0 ứng với độ tin cậy bình
thường, 1 ứng với độ tin cậy cao.
27
Total length- 2byte: chỉ độ dai 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 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 cụ thể như sau:
- Bít 0: chưa sử, dụng luôn lấy giá trị 0.
- Bít 1: 0 ứng với gói tin bị phân mảnh, 1 ứng với gói tin bị phân
mảnh.
- Bít 2: 0 ứng với gói tin thuộc phân đoạn cuối cùng của gói tin gốc, 1
ứng 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-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. 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 được dữ liệu ở trạm đích.
TCP có ứng với giá trị 6, UDP có ứng với giá trị 17, 1 ứng với ICMP.
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ó.
Cource 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.
28
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:
- Cource 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, 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ó SYN thì đây là số thứ tự của byte đầu tiên.
- Acknowledgment number – 2 byte: nếu cờ ACK bật thì giá trị của
trường chính là số thứ tự của 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 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.
- Reserved- 6 bít.
- Flags : các bít điều khiển
URG: Vùng con trỏ khẩn có hiệu lưc.
ACK: Vùng báo nhận ACK number có hiệu lực.
PSH: Chức năng PUSH.
RST: Khởi động lại liên kết.
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à chạm nguồn đã sẵn sang để 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.
29
- 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. Gía trị này có thể khai báo trên phẩn Option.
2.2.4. Cấu trúc gói tin ARP (Adrees Resolution Protocol)
Mọi máy tính cùng nằm trên một mạng có cùng một net ID và các máy
tính cùng trên mạng vật lý có thể gửi frame vật lý trực tiếp cho nhau nên việc
truyền thông tin giữa hai máy tính trong cùng một mạng vật lý không cần sử
dụng gateway. Việc dẫn đường trực tiếp chỉ sử dụng phần địa chỉ máy host ID
trong địa chỉ IP. Trạm gửi chỉ việc kết khối dữ liệu vào frame, chuyển địa chỉ
IP của trạm đích thành địa chỉ vật lý và gửi trực tiếp frame tới máy nhận.
Một cơ chế sử dụng để chuyển địa chỉ IP thành địa chỉ vật lý là ARP
(Address Resolution Protocol). Khi hai máy tính cùng nối vào một mạng vật
lý, chúng biết được địa chỉ IP của nhau nhưng để truyền thông giữa hai máy,
chúng phải biết được địa chỉ vật lý của nhau. ARP giải quyết vấn đề chuyển
từ địa chỉ IP 32 bits sang địa chỉ Ethernet 48 bits. Người ta sử dụng hai cơ chế
đó là ARP request và ARP relay.
30
31
Hình 2. 5: Mô tả đường truyền dữ liệu ARP
2.2.4.1. Mô tả hoạt động của khung ARP
Chuyển giao trực tiếp: Địa chỉ vật lý là một hàm của địa chỉ IP ví dụ sử
dụng trên mạng token ring proNET-10 là mạng cho phép đặt địa chỉ IP và địa
chỉ vật lý thoải mái. Người ta có thể đặt địa chỉ IP là 192.5.48.3 và địa chỉ vật
lý là 3, khi đó ta có PA = f(IA). Với PA là địa chỉ vật lý, IA là địa chỉ Internet
và f là hàm chuyển đổi.
Chuyển giao gián tiếp: Chuyển giao địa chỉ động được thực hiện bằng
cách máy tính muốn gửi thông tin gửi một thông báo tới toàn bộ các máy tính
trên mạng, trong thông báo đó có chứa địa chỉ IP của máy tính nó cần liên lạc,
mọi máy sẽ nhận được thông báo và máy nào thấy địa chỉ IP của mình thì trả
lại một thông báo chứa địa chỉ vật lý của chính mình. Khi đó hai máy tính có
thể “nói chuyện” với nhau.
Ngoài ra, người ta còn sử dụng bảng chỉ đường để lưu trữ tạm thời các
địa chỉ sử dụng mới nhất (Address Reslution Cache) để tăng tốc độ của việc
chuyển giao địa chỉ.
Một gói thông tin ARP là một Ethernet Frame được truyền trực tiếp từ
máy này tới máy khác. Vì không phải sử dụng IP, gói tin này không có địa chỉ
IP cũng như không cần được dẫn đường, nó phải được gửi broadcast tới tất cả
các máy trên mạng Ethernet (với địa chỉ FFFF_FFFF_FFFF).
Bảng 2. Error: Reference source not found: Mô tả gói thông tin ARP
32
33
Không giống phần lớn các giao thức khác,dữ liệu trong ARP không có
một định dạng chuẩn cho header. Để ARP có thể làm việc với nhiều công
nghệ khác nhau, người ta dùng một trường để chứa độ dài của những trường
đi sau nó.
Trong trường hợp máy tính trạm không có thiết bị nhớ phụ, và vì vậy nó
không biết địa chỉ IP của chính mình khi khởi động, người ta sử dụng cơ chế
chuyển ngược địa chỉ (Reverse Address Resolution Protocol – RARP) hoạt
đọng tương tự ARP để giải quyết vấn đề này. Theo cơ chế đó, có một máy
chủ chứa bảng địa chỉ IP của các máy trạm, khi máy trạm khởi động, nó gửi
một request tới tất cả các máy và máy chủ gửi trả lại một gói tin chứa địa chỉ
IP của máy trạm yêu cầu..
2.2.4.2. Gói tin của ARP
Protocol type: 0x0800 cho IP (0000.1000.0000.0000).
- Hardware len = 6 bytes cho ethernet.
- Protocol len = 4 bytes cho IP.
- ARP operation:
1= yêu cầu
2 = đáp lại
3/4 = RARP yêu cầu/đáp lại
Bảng 2. 1: Khung dữ liệu ARP
Destination
AddressSource Address Frame
type(ARP) Data CRC
6 bytes 6 bytes 2 bytes 28 bytes 4 ytes
34
2.2.4.3. Trường của khung ARP
Địa chỉ đích (ethernet destination address):
FF:FF:FF:FF:FF:FF là địa chỉ broadcast cho ARP request.
Địa chỉ nguồn (ethernet source address) là địa chỉ của ARP yêu cầu.
Frame type:
o ARP yêu cầu hoặc đáp lại (ARP request/rely) : 0x0806
o RARP yêu cầu hoặc đáp lại (RARP request/rely): 0x08035
o IP: 0x0800
2.2.5. 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.
- Dentination port-2byte: xác định cổng nhận thông tin và trường này
là cần thiết.
- Length- 2 byte: 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 mà 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.
2.2.6. Giao thức điều khiển truyền tin – ICMP (Internet Control
Message Protocol).
Việc dẫn đường qua các mạng sử dụng giao thức diều khiển truyền tin
(Internet Control Message Protocol - ICMP) được định nghĩa trong RFC 792.
ICMP sử dụng gói tin IP để chuyển thông báo của nó. ICMP gửi các thông
báo làm các công việc: Điều khiển, thông báo lỗi và chức năng thông tin cho
TCP/IP. Thông thường ICMP được gửi khi một gói tin không thể đi tới đích,
35
một gateway không còn đủ chỗ nhớ để nhận thêm gói tin hay một gateway
hướng dẫn máy tính sử dụng gateway khác để truyền thông tin theo một con
đường tối ưu hơn.
Cấu trúc gói tin ICMP:
Mặc dù mỗi thông báo ICMP có một kiểu định dạng riêng của nó, song
các thông báo đều chứa 3 trường đầu tiên giống nhau:
TYPE: Định nghĩa thông báo đi sau.
CODE: Cung cấp thông tin thêm về thông báo.
CHECKSUM: Chứa checksum của thông báo.
Bảng 2. 2: Cấu trúc gói ICMP
Type Field ICMP Message Type
0 Echo Reply
3 Destination Ủneachable
4 Source Quench
5 Redirect (Change a router)
8 Echo Request
11 Time Exceeded for a Datagram
12 Parameter Problem on a Datagram
13 Timestamp Request
14 Timestamp Reply
15 Information Request
16 Information Reply
17 Address Mask Request
18 Address Mask Reply
36
Chương 3: Phần cứng3.1. Vi điều khiển PIC
3.1.1. Giới thiệu về vi điều khiển PIC
PIC là một họ vi điều khiển theo kiến trúc Havard được sản xuất bởi
công ty Microchip Techonology
3.1.1.1. Lịch sử phát triển
Năm 1965 hãng Genneral Instrument thành lập ban vi điện tử nhằm tập
trung nghiên cứu công nghệ chế tạo bộ nhớ EPROM và EEPROM , đó là các
linh kiện thu hút nhiều đầu tư của các phòng thí nghiệm bán dẫn.Đầu những
năm 70 Genneral Instrument cũng chế tạo vi xư lý 16 bit PC1600.Bộ xử lý
này khá tốt nhưng có nhược điểm là khả năng cào ra không mạnh để thích
ứng bộ xử lý PC1600 trong các ứng dụng cần có tính năng cao. Năm 1975
Genneral Instrument thiết keess vi mạch điều khiển giao tiếp ngoại vi
(Peripheral interface controler) viêt tắt là PIC, đó là linh kiện hỗ trợ các tính
năng vào ra do đó bộ mã lệnh của nó khá nhỏ gọn. Những vi điều khiển PIC
đầu tiên có điểm yếu là chế tạo theo công nghệ n-MOS nên tiêu thụ nhiều
năng lượng, bộ nhớ chương trình là loại ROM mặt nạ chỉ nạp được một lần,
do đó chương trình điều khiển được nạp ngay khi chế tạo vi mạch nên chỉ
thích hợp với các khác hang đặt mua với số lượng lớn, để lắp ráp trong sản
xuất những sản phẩm cụ thể.
Những năm đầu thập kỉ 80 Genneral Instument gặp khó khan trong
thương mại và tổ chức lại.Hãng tập trung vào chế tạo linh kiện bán dẫn công
suất lớn là thế mạnh cho tới hiện nay của hang. General Instrument đã chuyển
nhượng Ban vi điện tử và nhà máy tại Chandle, bang Anizona cho cá nhà đầu
tư. Họ lập ra một công ty mới, đặt tên là Arizpna Microchip technology hiện
nay là Microchip technology Inc.
Chiến lược của nhà đầu tư là tập chung vào vi điều khiển và bộ nhớ của
bán dẫn. Các vi mạch PIC n-MOS được cải tiến, chế tạo dựa trên nền tảng
37
công nghệ mới CMOS. Các sản phẩm đầu tiên của Microchip được biết tới và
bán ra với số lượng lớn là các vi điều khiển PIC thược họ PIC16C5x. Họ này
có hai biến thể với bộ nhớ chương trình là OTP và UV EPROM. Loại OTP có
thể nạp trình một lần dùng cho sản xuất loại lớn. Loại UV EPROM có thể
xóa được bằng tia cực tím (tia UV) dùng khi phát triển, thử nghiệm phần
mềm.
Măn 1983 Microchip là hãng đầu tiên đã tích hợp được bộ nhớ chương
trình fash EEPROM vào những vi điều khiển mới, trong đó được biết đến
nhiều nhất là PIC16C84 và PIC16F84. Bộ nhớ chương trình fash đã loại bỏ
vai trò của vi điều khiển có bộ nhớ xóa bằng tia cực tím, có vỏ bằng gốm đắt
tiền và các đèn chiếu tia cưc tím.
3.1.1.2. Phân loại
Hiện nay có khá nhiều các dòng PIC và có nhiều khác biệt về phần cứng,
nhưng các chức năng chính có thể điểm qua một vài nét như sau:
8/16 bit CPU, xây dựng theo kiến trúc Harvard có sửa đổi khác với
kiến trúc Von Neumann của AVR.
Flash và ROM có thể tùy chọn từ 256 byte đến 256Kbyte
Các cổng Xuất/Nhập (T/O ports) (mức logic thường từ 0V đến 5.5V,
ứng với logic 0 và logic 1).
8/16 Bit Tỉmer
Công nghệ Nanowatt (dòng PIC 18Fxxxx)
Các chuẩn giao tiếp ngoại vi nối tiếp đồng bộ/Không đồng bộ
USART, AUSART, EUSARTs.
Bộ chuyển đổi ADC Analog –to-digital converters , 10/12bit
Bộ so sánh điện áp (Voltage Comparators)
Các module Capture/Compare/PWM.
LCD
MSSP peripheral dung cho giao tiếp I2C, SPI, I2S.
Bộ nhớ nội EEPROM –có thể ghi/xóa lên tới 1 triệu lần
38
Module điều khiển động cơ, đọc encoder
Hỗ trợ giao tiếp USB
Hỗ trợ điều khiển Ethernet
Hỗ trợ giao tiếp CAN
Hỗ trợ giao tiếp LIN
Hỗ trợ giao tiếp IrDA
Một số dòng có tích hợp bộ RF (PIC 16F639 và rfPIC)
KEELOQ mã hóa và giải mã
DSP những tính năng xử lý tín hiệu số (dsPIC)
Tiêu chuẩn để phân nhóm dựa vào sự khác nhau về kiến trúc bộ xử lý
bên trong của vi điều khiển:
- Số các thanh ghi có thể truy nhập được.
- Có hay không có ngắt, số lượng ngắt .
- Độ dài từ lệnh.
- Chia làm 4 họ:
Họ cấp thấp (low - end): 12C5xx,16C5x,16C505, 16HV540.
Họ cấp chung (mid - range): 12C6xx, 14C000, 16C6x, 16C62x,
16F62x,16C67x, 16CC8x, 16F87x, 169xx.
Họ cấp cao (high - end): 17Cxxx.
Họ cấp cao (high – performance): 18Cxxx,18Fxx2.
3.1.2. Một số ưu điểm của Microchip PIC
Bộ nạp trình cho PIC có thể tự lắp ráp một cách dễ dàng với chi phí
thấp dp ƠIC chủ yếu nạp trình theo chuẩn ICSP (In –Circuit Siral
Programming) là phương pháp nạp trình nối tiếp: các dữ liệu được nạp vào
bộ nhớ chương trình thông qua 2 chân vào /ra được gán là cổng truy nhập đến
bộ nhớ chương trình trong quá trình nạp trình. Do đó nhờ có bộ nhớ flash và
nạp trình theo chuẩn ICSP mà những người nghiên cứu và sử dụng PIC đã tiết
kiệm được đáng kể cho phí mua các công cụ nạp. Với bộ nhớ flash thì thời
39
gian nạp trình cũng được cải thiện đáng kể (chỉ khoảng vài chục giây) so với
UV EPROM (cỡ vài chục phút).
Microchip cũng cung cấp rất đầy đủ và chi tiết các tài liệu kỹ thuật về
tất cả các loại vi điều khiển PIC. Ngoài ra còn có rất nhiều sách viết về PIC
và các trang web nói về vi điều khiển này. Tài liệu hỗ trợ cho vi điều khiển
PIC chỉ dung sau máy tính cá nhân PC và về doanh số bán ra thị trường hiện
nay. Microchip đã đứng đầu về doanh số bán PIIC 8bit, vượt lên các vi điều
khiển của Motorola.
3.1.3. Vi điều khiển PIC18F4550
3.1.3.1. PIC18F4550
Hình 3. 1: Hình thực tế của PIC18F4550
PIC18F4550 là vi điều khiển thuộc nhóm cao cấp trong dòng vi điều
khiển PIC18 – hiệu suất tính toán lớn, giá cả phù hợp - độ bền cao, dung
lượng bộ nhớ chương trình được nâng cấp. Ngoài ra chúng còn được thiết kế
để phù hợp cho những ứng dụng có hiệu suất cao, ít tiêu tốn năng lượng.
Những tính năng PIC18F4550
Tần số hoạt động: DC - 48 MHz
Bộ nhớ chương trình (Bytes): 32768
Bộ nhớ chương trình (Chỉ định): 16384
Bộ nhớ dữ liệu (Bytes): 204840
Bộ nhớ EEPROM dữ liệu (Bytes): 256
Nguồn ngắt: 20
Cổng I/O: Ports A,B,C,D,E
Timers: 4
Module Capture/Compare/PWM: 1
Module Capture/Compare/PWM cải tiến: 1
Giao tiếp nối tiếp: MSSP, USART cải tiến.
Module Universal Serial Bus (USB): 1
Streaming Parallel Port (SPP): có
Module 10-Bit Analog-to Digital: 13 Input Channels
Bộ so sánh (Comparators): 2
Resets (and Delays): POR, BOR, RESET Instruction, Stack Full,
Stack Underflow (PWRT, OST), MCLR (optional), WDT
Programmable Low-Voltage Detect: có
Programmable Brown-out Reset: có
Instruction Set: 75 Instructions; 83 with Extendexd Instruction Set
enabled
Packages: 40-Pin PDIP, 44-Pin QFN, 44-Pin TQFP
Điểm chú ý của PIC18f4550:
Với bộ nhớ có 32kb Flash lưu trữ chương trình, 2kb bộ nhớ SRAM
bay hơi và 256byte EEPROM (Bộ nhớ không bay hơi) để lưu trữ dại
hạn dữ liệu như cấu hình….
Các chỉ thị dài 1byte với ngoại lệ dài 2byte (CALL, MOVFF,
GOTO, LSFR). Sử dụng cơ chế đường ống để thực thi mã bằng việc
khiến các chỉ thị liên tiếp hoạt động trong 4 xung nhịp (độ dại xung) có
4 lần nhảy xung được thêm vào.
Các đặc tính đáng chú ý khác là có đồng hồ, ngắt (đồng hồ gắn trong
và gắn ngoài) với hai mức ưu tiên và dung cả hai mức như bộ so sánh
41
tương tự kèm theo với bộ phát điện thế chuẩn có 16 mức (hữu ích khi
dung trigger ở mức phần cứng).
Cuối cùng, PIC cũng có bộ chuyển đổi tương tự 10 bit nhưng dao
đông ký không đủ yêu cầu về tốc độ cao cần thiết. Vì vậy máy phát dao
động có tốc độ
48Mhz giữa thời gian trễ do truyền tải các ngắt khác (vòng lặp…).
Không thể đạt được tốc độ lớn hơn 200Khz.
3.1.3.2 Sơ đồ chân
Hình 3. 2: sơ đồ chân của PIC18F4550
3.1.3.3 Chức năng của các chân PIC18F4550
Bảng 3. 1: Bảng chức năng chân của PIC18F4550
stt chân
Chức
năng
Thanh
Ghi
TRISI/O
Kiểu
I/OMô tả
1 MCLR
/
VPP/
MCLR 1 I STMaster clear.chân reset đầu vào
thiết lập
VPP P Đầu vào kênh 0 của bộ biển đổi
42
RE3
A/D
RE3 1 I ST Đầu vào số
13OSC1/
CLKI
OSC1 1 I ANA Đầu vào nối với bộ giao động
CLKI 1 I ANA
Đầu vào nguồn xung ngoài, Luôn
gắn liền với
chức năng pin OSC1
14
OSC2/
CLKO
/RA6
OSC2 0 O -- Đầu vào nối với bộ giao động
CLKO 0 O --Đầu vào nguồn xung ngoài, Luôn
gắn liền với
chức năng pin OSC1
RA6 1/0 I/O TLL chân vào/ra bình thường
Bảng 3. 2: Bảng chức năng chân của PORTA
stt chân
Chức
năng
Thanh
Ghi
TRISI/O
Kiểu
I/OMô tả
2RA0/
AN0
RA00
1
O
I TTL
Chiều ra vào dữ liệu, không ảnh
hưởng đầu vào tương tự
AN0 1 IANA
Đầu vào kênh 0 của bộ biển đổi
A/D
3RA1/
AN1
RA10
1
O
I TTL
Chiều ra vào dữ liệu, không ảnh
hưởng đầu vào tương tự
AN1 1 I ANAĐầu vào kênh 1 của bộ biển đổi
A/D
4 RA2/
AN2/
RA2 0
1
O
I TTL
Chiều ra vào dữ liệu, không ảnh
hưởng đầu vào tương tự
43
VREF-
/
CVRE
F
AN2 1 I ANAĐầu vào kênh 2 của bộ biển đổi
A/D
VREF- 1 I ANAA/D và đầu vào điện áp tham chiếu
mức thấp bộ so sánh
CVREF X O ANAĐầu ra điện áp tham chiếu bộ so
sánh
5
RA3/
AN3/
VREF
+
RA30
1
O
ITTL
Chiều ra vào dữ liệu, không ảnh
hưởng đầu vào tương tự
AN3 1 I ANAĐầu vào kênh 3 của bộ biển đổi
A/D
VREF+ 1 I ANAA/D và đầu vào điện áp tham chiếu
mức cao bộ so sánh
6
RA4/
T0CKI
/
C1OU
T/
RCV
RA40
1
O
IST
Chiều ra vào dữ liệu, không ảnh
hưởng đầu vào tương tự
T0CKI 1 I ST Cấp xung cho timer0
C1OUT 0 O --Đầu ra 1 bộ so sánh/ưu tiên hơn
vào/ra dữ liệu
RCV 1 I TTLĐầu vào USB thu phát RCV bên
ngoài
7
RA5/
AN4/
SS/
HLVD
IN/
C2OU
T
RA50
1
O
ITTL
Chiều ra vào dữ liệu, không ảnh
hưởng đầu vào tương tự
AN4 1 I ANAĐầu vào kênh 4 của bộ biển đổi
A/D
SS 1 I TTLĐầu vào SS(lựa chọn thiết bị tơ)
chế độ SPI
HLVDI
N1 I ANA Đầu vào module phát điện áp cao
C2OUT 0 O --Đầu ra 2 bộ so sánh/ưu tiên hơn
vào/ra dữ liệu
44
Bảng 3. 3: Bảng chức năng chân của PORTB
stt chân
Chức
năng
Thanh
Ghi
TRISI/O
Kiểu
I/OMô tả
33
RB0/
AN12/
INT0/
FLT0/
SDI/
SDA
RB0 1/0 I/O TTLChiều ra /vào dữ liệu, không ảnh
hưởng đầu vào tương tự
AN12 1 I ANAĐầu vào kênh 12 của bộ biển đổi
A/D
INT0 1 I ST Ngắt ngoài 0
FLT0 1 I STĐầu vào báo sự cố PWM(module
ECCP1)
SDI 1 I ST Đầu vào dữ liệu chế độ SPI
SDA 1/0 I/O ST Đầu vào/ra dữ liệu chế độ I2C
34
RB1/
AN10/
INT1/
SCK/
SCL
RB1 1/0 I/O TTLChiều ra/ vào dữ liệu, không ảnh
hưởng đầu vào tương tự
AN10 1 I ANAĐầu vào kênh 10 của bộ biển đổi
A/D
INT1 1 I ST Ngắt ngoài 1
SCK 1/0 I STXung đồng bộ nối tiếp đầu vào/ra
cho chế độ SPI
SCL 1/0 I/O STXung đồng bộ nối tiếp đầu vào/ra
cho chế độ I2C
35 RB2/
AN8
/INT2/
VMO
RB2 1/0 I/O TTLChiều ra/ vào dữ liệu, không ảnh
hưởng đầu vào tương tự
AN8 1 I ANAĐầu vào kênh 8 của bộ biển đổi
A/D
INT2 1 I ST Ngắt ngoài 245
VMO 0 O -- Ngắt thu phát USB ,đầu ra VMO
36
RB3/
AN9/
CCP2/
VPO
RB3 1/0 I/O TTLChiều ra /vào dữ liệu, không ảnh
hưởng đầu vào tương tự
AN9 1 I ANAĐầu vào kênh 9 của bộ biển đổi
A/D
CCP2(1
)1/0 I/O ST
Đầu vào bộ capture CCP2/ CCP2
của bộ so sánh đầu ra của PWM
VPO 0 O -- Ngắt thu phát USB ,đầu ra VPO
37
RB4/
AN11/
KBI0/
CSSPP
RB4 1/0 I/O TTLChiều ra/vào dữ liệu, không ảnh
hưởng đầu vào tương tự
AN11 1 I ANAĐầu vào kênh 11 của bộ biển đổi
A/D
KBI0 1 I TTLChân ngắt của ngắt thay đổi mức
PORTB
CSSPP 0 O -- Điều kiển chọn chip đầu ra SPP
38
RB5/
KBI1/
PGM
RB5 1/0 I/O TTL Chiều ra /vào dữ liệu số
KBI1 1 I TTLChân ngắt của ngắt thay đổi mức
PORTB
PGM 1/0 I/O STTín hiệu nối mạch nạp nối
tiếp(ICSP)
39
RB6/
KBI2/
PGC
RB6 1/0 I/O TTL Chiều ra/ vào dữ liệu số
KBI2 1 I TTLChân ngắt của ngắt thay đổi mức
PORTB
PGC 1/0 I/O ST Đầu vào xung từ(ICSP và ICD)
40
RB7/
KBI3/
PGD
RB7 1/0 I/O TTL Chiều ra/ vào dữ liệu số
KBI3 1 I TTLChân ngắt của ngắt thay đổi mức
PORTB
46
Bảng 3. 4: Bảng chức năng chân của PORTC
stt chân
Chức
năng
Thanh
Ghi
TRISI/O
Kiểu
I/OMô tả
15
RC0/
T1OS
O/
T13CK
I
RC0 1/0 I/O ST Chiều ra /vào dữ liệu số
T1OSO 0 O — Đầu ra bộ phất xung timer 1
T13CK
I1 I ST
Cấp xung cho timer1 /timer3 chế
độ đếm sự kiện (counter).
16
RC1/
T1OSI/
CCP2/
UOE
RC1 1/0 I/O ST Chiều ra /vào dữ liệu số
T1OSI x ICM
OS
Đầu vào bộ dao động timer1.cấm
đầu ra/vào số
CCP2(2
)1/0 I/O ST
Đầu vào capture (CCP2)/CCP2 của
bộ so sánh và đầu ra của PWM
UOE 0 — — Ngắt thu phát USB ,đầu ra UOE
17
RC2/
CCP1
/P1A
RC2 1/0 I/O ST Chiều ra /vào dữ liệu số
CCP1 1/0 I/O STĐầu vào capture (CCP1)/ CCP1
của bộ so sánh và đầu ra của PWM
P1A 0 O TTLĐiện áp tăng cường đâu ra CCP1
PWM, kênh A.
23RC4/
D-/VM
RC4 1 I TTL Chiều ra /vào dữ liệu số
D- 1/0 I/O —Dòng trừ khác biệt USB (đầu vào/
ra)
VM 1 I TTL Ngắt thu phát USB ,đầu vào VM
24
RC5/
D+
/VP
RC5 1 I TTL Chiều ra /vào dữ liệu số
D+ 1/0 I/O —Dòng cộng khác biệt USB (đầu
vào/ ra)
VP 1 O TTL Ngắt thu phát USB ,đầu vào VP
47
25
RC6/
TX/
CK
RC6 1/0 I/O ST Chiều ra /vào dữ liệu số
TX 0 O —Chân truyền dữ liệu nối tiếp không
động bộ của module EUSART
CK 1/0 I/O STChân phát xung (clock) đồng bộ
nối tiếp của module EUSART
26
RC7/
RX/
DT/
SDO
RC7 1/0 I/O ST Chiều ra /vào dữ liệu số
RX 0 O STChân nhận dữ liệu nối tiếp không
động bộ của module EUSART
DT 1/0 I/O ST
Chân truyền dữ liệu nối tiếp động
bộ của
module EUSART
SDO 1 I — Chân ra dữ liệu của giao tiếp SPI
Bảng 3. 5: Bảng chức năng chân của PORTD
stt chân
Chức
năng
Thanh
Ghi
TRISI/O
Kiểu
I/OMô tả
19
RD0/
SPP0
RD0 1/0 I/O ST Chiều ra /vào dữ liệu số
SPP0 1/0 I/O TLL Cổng dữ liệu song song
20
RD1/
SPP1
RD1 1/0 I/O ST Chiều ra /vào dữ liệu số
SPP1 1/0 I/O TLL Cổng dữ liệu song song
21
RD2/
SPP2
RD2 1/0 I/O ST Chiều ra /vào dữ liệu số
SPP2 1/0 I/O TLL Cổng dữ liệu song song
22 RD3/
SPP3
RD3 1/0 I/O ST Chiều ra /vào dữ liệu số
SPP3 1/0 I/O TLL Cổng dữ liệu song song
48
27
RD4/
SPP4
RD4 1/0 I/O ST Chiều ra /vào dữ liệu số
SPP4 1/0 I/O TLL Cổng dữ liệu song song
28
RD5/
SPP5
/P1B
RD5 1/0 I/O ST Chiều ra /vào dữ liệu số
SPP5 1/0 I/O TLL Cổng dữ liệu song song
P1B 0 O —Đầu ra kênh B của bộ PWM tăng
cường ECCP1
29
RD6/
SPP6
/P1C
RD6 1/0 I/O ST Chiều ra /vào dữ liệu số
SPP6 1/0 I/O TLL Cổng dữ liệu song song
P1C 0 O —Đầu ra kênh C của bộ PWM tăng
cường ECCP1
30
RD7/
SPP7
/P1D
RD7 1/0 I/O ST Chiều ra /vào dữ liệu số
SPP7 1/0 I/O TLL Cổng dữ liệu song song
P1D 0 O —Đầu ra kênh D của bộ PWM tăng
cường ECCP1
Bảng 3. 6: Bảng chức năng chân của PORTE
stt chân
Chức
năng
Thanh
Ghi
TRISI/O
Kiểu
I/OMô tả
8 RE0/
AN5/
CK1SP
P
RE0 1/0 I/O STChiều ra /vào dữ liệu số,khồng ảnh
hưởng của đầu vào analog
AN5 1 I ANA Đầu vào kênh 5 của bộ chuyển đổi
A/D
49
CK1SP
P0 O — Xung ra 1 SPP
9
RE1/
AN6/
CK2SP
P
RE1 1/0 I/O STChiều ra /vào dữ liệu số,khồng ảnh
hưởng của đầu vào analog
AN6 1 I ANAĐầu vào kênh6 của bộ chuyển đổi
A/D
CK2SP
P0 O — Xung ra 2 SPP
10
RE2/
AN7/
OESPP
RE2 1/0 I/O STChiều ra /vào dữ liệu số,khồng ảnh
hưởng của đầu vào analog
AN7 1 I ANAĐầu vào kênh 7 của bộ chuyển đổi
A/D
OESPP 0 O — Cho phép SPP đầu ra.
12
,3
1
VSSVSS P Nối mass
11
,3
2
VDDVDD P ST Nối nguồn dương
29 VUSB VUSB 0 O STNội bộ USB đầu ra điều chỉnh điện
áp 3.3V.
Legend:
TTL = TTL compatible input CMOS = CMOS
compatible input or output
ST = Schmitt Trigger input with CMOS levels I = Input
O = Output P = Power
Note 1: Alternate assignment for CCP2 when CCP2MX Configuration
bit is cleared.
50
2: Default assignment for CCP2 when CCP2MX Configuration bit is set.
3: These pins are No Connect unless the ICPRT Configuration bit is set.
For NC/ICPORTS, the pin is No Connect unless ICPRT is set and the
DEBUGConfiguration bit is cleared
3.3. 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 tạo ra điện tích tự do và 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 thành dạng tự dô di chuyển qua cùng cấu trúc
mạng tinh thể tọa 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 độ.
Các đặc trưng của LM35:
- Ngõ ra là điện áp.
- Đơn vị nhiệ độ : oC.
- Các hiệu năng cao, công suất tiêu thụ là 60uA.
- Sản phẩm không cần phải canh chỉnh nhiệt độ khi sử dụng.
- Độ nhạy 10mV/1oC.
- Sai số cực đạu 1,5oC khi nhiệt độ lớn hơn 100oC.
- Phạm vi sử dụng: 0oC => 100oC.
- Chân +Vs là chân cung cấp điện áp cho LM35 hoạt động (4->20V)
- Chân Vout là chân điện áp ngõ ra của LM35, được đưa vào chân
Analog của các bộ ADC.
- Chân GND là chân nỗi mas, lưu ý cần nỗi mass chân này để tránh làm
hỏng cảm biến cũng như làm giảm sai số trong quá trình đo.
- Cứ 10mV tương ứng với 1oC, ở 0oC điện áp ra là 0V, tương ứng với
giá trị ADC là 0. Ta dùng ADC 10bit với điện áp lấy mẫu là 5V , giá trị của
51
ADC từ 0 đến 1023. Vậy mỗi giá trị ADC ứng với 5V/1024 = 4.883mV. Vậy
1 giá trị của A/D tương ứng với 0.4883oC. Muốn tăng độ phân giải A/D ta
giảm giá trị điện áp lấy mẫu đi.
Hình 3. 3: Sơ đồ chân của LM35
Tính toán để chuyển đổ mức logic chân ADC của vi điều khiển thành
nhiệt độ hiện thị:
Ta có ADC 10bit, vậy có 1024 mức lượng tử. Điện áp lấy mẫu trong bài ta sử
dụng là 5V. Như vậy mỗi mức lượng tử tương ứng với giá trị điện áp là:
LM35 thay đổi 10mV/1oC do đó ứng với thay đổi 1oC sẽ thay đổi 2.048 mức
lượng tử (10mV/4.883mV = 2.048). Như vậy ta sẽ có công thức tính nhiệt độ
để hiển thị là:
Nhiệt độ = (oC)
(Adc_value :là giá trị chân ADC của PIC đọc từ LM35)
3.4. Module Ethernet ENC28J60 và chuẩn giao tiếp SPI
Thông thường để kết nối thiết bị điều khiển với mạng Ethernet có hai
cách, một là sử dụng các vi điều khiển tích hợp sẵn phần giao tiếp với 52
Ethernet, phổ biến là các dòng PIC18F66J60, PIC18F66J65, PIC18F67J60,
PIC18F67J60, PIC18F86J60…. của Microchip. Sử dụng phương thức này có
ưu điểm viết mã code đơn giản, kích thước bo mạch nhỏ gọn. Ngoài ra còn có
cách khác là sử dụng chip giao tiếp Ethernet ENC28J60, với cách sử dụng này
bo mạch sẽ có kích thước lớn hơn, thường tách thành hai module độc lập
được kết nối qua card hỗ trợ giao tiếp chuẩn SPI (Serial Pheripheral
Interface).
Trong module ghép nối Ethernet, người thực hiện đề tài đã chọn cách sử
dụng chip ENC28J60.
3.4.1. Vi Mạch Ethernet ENC28j60
ENC28J60 là vi điều khiển hỗ trợ kết nối Ethernet ở lớp vật lý tương tự
trong mô hình OSI cho bất kỳ vi điều khiển nào có giao tiếp SPI. ENC28J60
được thiết kế và chế tạo bởi Microchip.
Phần cứng của ENC28J60 được tích hợp trong cả hai lớp kết nối dữ liệu
và lớp vật lý .
Hỗ trợ giao tiếp SPI với tốc độ tối đa đạt 20MHz.
Điện áp hoạt động của ENC28J60 từ 3.1V đến 3.6V.
Hỗ trợ công nghệ 10BASE-T.
Hỗ trợ truyền song công và bán song công, đồng thời nhằm tránh xung
đột trên kênh truyền.
3.4.2. Sơ đồ chân và sơ đồ khối của ENC28j60
Sơ đồ chân ENC28j60:
53
Hình 3. 4: Sơ đồ chân ENC28J60
Sơ đồ khối ENC28J60:
Hình 3. 5: Sơ đồ khối ENC28J60
54
3.4.3. Sơ đồ ghép nối vi điều khiển với ENC28j60
Hình 3. 6: Sơ đồ ghép nối vi điều khiển với ENC28j60
- 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)
3.4.4. Sơ đồ nguyên lý Module Ethernet
55
Hình 3. 7 : Sơ đồ nguyên lý Module Ethernet
Nguyên lý hoạt động của mạch:
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ò là Master trong giao tiếp SPI với ENC28J60.
Tương tự như kết nối mạng trên PC, PIC18 đóng vai trò là 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à xử lí.
Truyền dữ liệu: Thông qua giao tiếp SPI, PIC18 sẽ gửi dữ liệu vào
bộ đệm phát của ENC28J60. ENC28J60 sẽ mã hóa dữ liệu và truyền ra đường
RJ45 đến địa chỉ mong muốn.
3.4.5. Module Ethernet
56
Hình 3. 8: Module Ethernet thực tế
- Sử dụng chip ENC28j60 Ethernet, SOP 28 chân.
- Giao tiếp theo chuẩn SPI.
- Đầu nối RJ45 HR911105A.
- Sử dụng điện áp 3,3V.
- Tần số 25Mhz.
57
- 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 cad có 2 đèn led để thông
báo trạng thái kết nối của mạch.
3.4.6. Chuẩn truyền thông SPI
SPI (Serial Peripheral Inteface) là một chuẩn truyền thông nối tiếp tốc độ
cao do hãng Motorola đề xuất. Đây là kiểu truyền thông Master-Slave, trong
đó có 1 chip Master điều phối quá trình tuyền thông và các chip Slaves được
điều khiển bởi Master vì thế truyền thông chỉ xảy ra giữa Master và Slave.
SPI là một cách truyền song công (full duplex) nghĩa là tại cùng một thời
điểm quá trình truyền và nhận có thể xảy ra đồng thời. SPI đôi khi được gọi là
chuẩn truyền thông “4 dây” vì có 4 đường giao tiếp trong chuẩn này đó là
SCK (Serial Clock), MISO (Master Input Slave Output), MOSI (Master
Ouput Slave Input) và SS (Slave Select).
SCK: Xung giữ nhịp cho giao tiếp SPI, vì SPI là chuẩn truyền đồng bộ
nên cần 1 đường giữ nhịp, mỗi nhịp trên chân SCK báo 1 bit dữ liệu đến hoặc
đi. Đây là điểm khác biệt với truyền thông không đồng bộ mà chúng ta đã biết
trong chuẩn UART. Sự tồn tại của chân SCK giúp quá trình tuyền ít bị lỗi và
vì thế tốc độ truyền của SPI có thể đạt rất cao. Xung nhịp chỉ được tạo ra bởi
chip Master.
MISO– Master Input/Slave Output: nếu là chip Master thì đây là đường
Input còn nếu là chip Slave thì MISO lại là Output. MISO của Master và các
Slaves được nối trực tiếp với nhau.
MOSI – Master Output/Slave Input: nếu là chip Master thì đây là đường
Output còn nếu là chip Slave thì MOSI là Input. MOSI của Master và các
Slaves được nối trực tiếp với nhau.
SS – Slave Select: SS là đường chọn Slave cần giap tiếp, trên các chip
Slave đường SS sẽ ở mức cao khi không làm việc. Nếu chip Master kéo
đường SS của một Slave nào đó xuống mức thấp thì việc giao tiếp sẽ xảy ra
58
giữa Master và Slave đó. Chỉ có 1 đường SS trên mỗi Slave nhưng có thể có
nhiều đường điều khiển SS trên Master, tùy thuộc vào thiết kế của người
dùng.
Hình 3. 9: SPI giữa một chip Master và 3 chip Slave thông qua 4 đường.
Hoạt động: mỗi chip Master hay Slave có một thanh ghi dữ liệu 8 bits.
Cứ mỗi xung nhịp do Master tạo ra trên đường giữ nhịp SCK, một bit trong
thanh ghi dữ liệu của Master được truyền qua Slave trên đường MOSI, đồng
thời một bit trong thanh ghi dữ liệu của chip Slave cũng được truyền qua
Master trên đường MISO. Do 2 gói dữ liệu trên 2 chip được gởi qua lại đồng
thời nên quá trình truyền dữ liệu này được gọi là “song công”.
59
Hình 3. 10: Quá trình truyền 1 gói dữ liệu thực hiện bởi module SPI
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), 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.
Sau đây là bộ lệnh SPI dùng cho vi mạch ENC28J60 và các giản đồ
xung thể hiện các quá trình ghi, đọc dữ liệu, lệnh giữa vi xử lý và ENC28J60 :
Hình 3. 11: Quá trình đọc thanh ghi điều khiển Ethernet
60
Hình 3. 12: Quá trình đọc thanh ghi điều khiển MAC
Hình 3. 13: Quá trình ghi vào thanh ghi lệnh
61
Hình 3. 14: Quá trình ghi vào bộ đệm lệnh
Hình 3. 15: Quá trình ghi vào lệnh của hệ thống
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à mạng 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ãng sản xuất vi mạch ENC28J60) đã hỗ trợ tối đa, bằng cách đưa ra đầ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 trở nên khá dễ dàng.
3.5. Text LCD62
3.5.1. Cấu trúc Text LCD
Text LCD là các loại màn hình tinh thể lỏng dung để hiển thị các dòng
chữ hoặc số trong bẳng mã ASCII.Không giống các loại LCD lớn, text LCD
được chia sẵn thành từng ô và ứng với mỗi ô chỉ có thể hiển thị một ký tự
ASCII.Cũng vì lý do chỉ hiển thị được ký tự ASCII nên loại LCD này được
gọi là Text LCD (để phân biết với Graphic LCD có thể hiển thị được hình
ảnh). Mỗi ô của Text LCD bao gồm các chấm tinh thể lỏng, việc kết hợp “ẩn”
và “hiện”các chấm này sẽ tạo thành một ký tự cần hiển thị. Trong Text LCD,
các mẫu ký tự được đinh nghĩa sẵn. Kích thước của Text LCD được định
nghĩa bằng số ký tự có thể hiển thị trên 1 dòng và tổng số dòng mà LCD có.
Ví dụ LCD 16x2 là loại có 2 dòng và mỗi dòng hiển thị tối đa được 16 ký tự.
Một số kích thước thông thường của LCD là: 16x1, 16x2, 16x4, 20x2, 20x4…
Hình 3. 16: Text LCD 16x2
63
Text LCD có 2 giao thức cơ bản là nối tiếp (như I2C) và song song.
Trong phạm vi bài học này chúng tôi chỉ giới thiệu loại giao tiếp song song,
cụ thể là LCD 16x2 điều khiển bởi chip HD44780U của hang Hitachi. Đối với
các LCD khác bạn cần tham khảo datasheet riêng của từng loại , HD44780U
cũng được gọi là chuẩn chung cho các loại Text LCD, vì thế bạn có thể dung
chương trình ví dụ trong bài này để text trên các LCD khác với 1 ít chỉnh sửa
cho phù hợp.
HD44780U là bộ điều khiển cho các Text LCD dạng ma trận điểm, chip
này có thể được dung cho các LCD có 1 hoặc 2 dòng hiển thị. HD44780U có
2 mode giao tiếp là 4bit và 8 bit. Nó chứa sẵn 208 ký tự mẫu kích thước font
5x8 và 32 ký tự mẫu font 5x10 (tổng cộng có 240 mẫu ký tự khác nhau).
3.5.2. Sơ đồ chân
Bảng 3. 7: Chức năng chân của LCD
Chức năngSố thứ
tự chânTên Trạng thái logic Mô tả
Ground 1VSS
(GND)- 0V
Nguồn cho
LCD2
VDD
(VCC)- +5V
Tương
phản3 Vee - 0 – Vdd
Điều khiển
LCD4 RS
0
1D0-D7: lệnh
5 R/W0
1D0-D7: dữ liệu
6 E 0
1
Ghi (Từ PIC vào
LCD)64
Từ 1 xuống 0 Đọc (từ LCD vào PIC)
Dữ liệu/
Lệnh
7 D0 0/1 Bit 0 LSB
8 D1 0/1 Bit 1
9 D2 0/1 Bit 2
10 D3 0/1 Bit 3
11 D4 0/1 Bit 4
12 D5 0/1 Bit 5
13 D6 0/1 Bit 6
14 D7 0/1 Bit 7 MSB
Các Text LCD theo chuẩn HD44780U thường có 16 chân trong đó có 14
chân kết nối với bộ điều khiển và 2 chân nguồn cho “đèn LED nền”. Thứ tự
chân thường được sắp xếp như hình trên.
Trong một số LCD 2 chân LED nền được đánh số 15 và 16 nhưng trong
một số trường hợp 2 chân này đươc ghi là A(Anode) và K(Cathode).
65
Hình 3. 17: kết nối Text LCD với Vi điều khiển
Chân 1 và 2 là các chân nguồn, được nối với GND và nguồn 5V. Chân 3
là chân chỉnh độ tương phản (contrast), chân này cần được nối với 1 biến trở
để đạt được độ tương phản cần thiết, sau đó giữa mức biến trở này. Các chân
điều khiển RS, R/W,EN và các đường dữ liệu được nối trực tiếp với vi điều
khiển. Tùy theo chế độ hoạt động 4bit hay 8bit mà các chân từ D0 đến D3 có
thể bỏ qua hoặc nối với vi điều khiển, chúng ta sẽ khảo sát kỹ càng hơn trong
các phần sau.
3.5.3. Điều khiển hiển thị
Các chân điều khiển việc đọc và ghi LCD bao gồm RS,R/W và EN.
Chân RS là chân số 3: Chân lựa chọn thanh ghi ,chân này cho phép lựa chọn 1
trong 2 thanh ghi ỈR hoặc DR để làm việc. Vì cả 2 thanh ghi này đều được kết
66
nối với các chân Data của LCD nên cần 1 bit để lựa chọn giữa chúng. Nếu
RS=0, thanh ghi IR được chọn và nếu RS=1 thanh ghi DR được chọn. Chúng
ta đều biết thanh ghi IR là thanh ghi chứa mã lệnh cho LCD, vì thế nếu muốn
gởi 1 mã lệnh đến LCD thì chân RS phải được reset về 0. Ngược lại, khi
muốn ghi mã ASCII của ký tự cần hiển thị lên LCD thì chúng ta sẽ set RS=1
để chọn thanh ghi DR. Hoạt động của chân RS được mô tả trong hình 12.
Hình 3. 18: Hoạt động của chân RS
R/W (chân số 4): Chân lựa chọn giữa việc đọc và ghi. Nếu R/W=0 thì dữ
liệu sẽ được ghi từ bộ điều khiển ngoài (vi điều khiển AVR chẳng hạn) vào
LCD. Nếu R/W=1 thì dữ liệu sẽ được đọc từ LCD ra ngoài. Tuy nhiên, chỉ có
duy nhất 1 trường hợp mà dữ liệu có thể đọc từ LCD ra, đó là đọc trạng thái
LCD để biết LCD có đang bận hay không (cờ Busy Flag - BF). Do LCD là
một thiết bị hoạt động tương đối chậm (so với vi điều khiển), vì thế một cờ
BF được dùng để báo LCD đang bận, nếu BF=1 thì chúng ta phải chờ cho
LCD xử lí xong nhiệm vụ hiện tại, đến khi nào BF=0 một thao tác mới sẽ
được gán cho LCD. Vì thế, khi làm việc với Text LCD chúng ta nhất thiết
phải có một chương trình con tạm gọi là wait_LCD để chờ cho đến khi LCD
rảnh. Có 2 cách để viết chương trình wait_LCD. Cách 1 là đọc bit BF về kiểm
tra và chờ BF=0, cách này đòi hỏi lệnh đọc từ LCD về bộ điều khiển ngoài,
do đó chân R/W cần được nối với bộ điều khiển ngoài. Cách 2 là viết một
hàm delay một khoảng thời gian cố định nào đó (tốt nhất là trên 1ms). Ưu
điểm của cách 2 là sự đơn giản vì không cần đọc LCD, do đó chân R/W 67
không cần sử dụng và luôn được nối với GND. Tuy nhiên, nhược điểm của
cách 2 là khoảng thời gian delay cố định nếu quá lớn sẽ làm chậm quá trình
thao tác LCD, nếu quá nhỏ sẽ gây ra lỗi hiển thị. Trong bài này tôi hướng dẫn
bạn cách tổng quát là cách 1, để sử dụng cách 2 bạn chỉ cần một thay đổi nhỏ
trong chương trình wait_LCD (sẽ trình bày chi tiết sau) và kết nối chân R/W
của LCD xuống GND.
EN (chân số 5): Chân cho phép LCD hoạt động (Enable), chân này cần
được kết nối với bộ điều khiển để cho phép thao tác LCD. Để đọc và ghi data
từ LCD chúng ta cần tạo một “xung cạnh xuống” trên chân EN, nói theo cách
khác, muốn ghi dữ liệu vào LCD trước hết cần đảm bảo rằng chân EN=0, tiếp
đến xuất dữ liệu đến các chân D0:7, sau đó set chân EN lên 1 và cuối cùng là
xóa EN về 0 để tạo 1 xung cạnh xuống.
3.5.4. Mạch RJ14
- Mạch sử dụng đầu cắm giao tiếp RJ14 là HR911105A của HANRUN,
HR911105A được tích hợp sắn biến áp và có 2 con led để thông báo trạng
thái kết nối của mạch.
68
Hình 3. 19: Sở đồ khối của HR911105A
Chương 4: Trình biên dịch CCS và webserver4.1. Trình dịch CCS (PIC C Compiler)
4.1.1. Vì sao ta sử dụng CCS
Sự ra đời của một loại vi điều khiển đi kèm với việc phát triển phần mềm
ứng dụng cho việc lập trình con vi điều khiển đó. Vì điều khiển chỉ hiểu và
làm việc với hai con số 0 và 1. Ban đầu việc lập trình cho vi điểu khiển chỉ là
0 và 1. Sau này khi kiến trúc vi điều khiển ngày càng phúc tạp, số lượng thanh
69
ghi lệnh nhiều lên, việc lập trình với các con số 0 và 1 không còn phù hợp nữa
đòi hỏi ra đời ngôn ngữ mới thay thế. Và ngôn ngữ lập trình Assembly, C …
cũng đã phát triển để phục vụ cho việc giao tiếp với vi điều khiển. Bên cạnh
đó cũng đã ra đời nhiều chương trình soạn thảo và biên dịch dễ dàng hơn
ngắn gọn hơn cho các ngôn ngữ đó: Keil C, CCS …
Tôi chọn CCS để lập trình cho PIC, vì CCS là một công cụ lập trình C
mạnh cho vi điều khiển PIC.
4.1.2. Giới thiệu về CCS
- CCS là trình biên dịch lập trình ngôn ngữ C cho vi điều khiển PIC của
hãng Microchip. Chương trình là sự tích hợp của 3 trình biên dịch riêng biệt
cho 3 dòng PIC khác nhau đó là:
PCB cho dòng PIC 12-bit opcodes
PCB cho dòng PIC 14-bit opcodes
PCB cho dòng 16 và 18-bit
- Tất cả 3 trình biên dịch này được tích hợp lại trong một chương trình
bao gồm cả trình soạn thảo và biên dịch CCS. Phiên bản được sử dụng trong
tài liệu này là PCWH Compiler Vẻ 4.104.
- Giống nhiều trình biên dịch C khác cho PIC, CCS giúp cho người sử
dụng nắm bắt nhanh được vi điều khiển PIC và sử dụng PIC trong các dự án.
Các chương trình điều khiển sẽ được thực hiện nhanh chóng và hiệu quả cao
thông qua việc sử dụng ngôn ngữ nạp trình cấp cao – ngôn ngữ C.
70
Hình 4. 1: Giao diện chương trình CCS
71
4.1.3. Tạo PROJECT đầu tiên trong CCS
Để tạo một Project trong CCS có nhiều cách, có thể dùng Project
Wizard, Manual Creat, hay đơn giản là tạo một Files mới và thêm vào đó các
khai báo ban đầu cần thiết và “bắt buộc”.
Dưới đây sẽ trình bày cách tạo một project hợp lệ theo cả 3 phương
pháp. Một điều ta cần chú ý khi tạo một Project đó là: khi tạo bắt cứ một
Project nào mới thì ta nên tạo một thư mục mới với tên liên quan đến Project
ta định làm, rồi lưu các files vào đó.
Khi lập trình và biên dịch, CCS sẽ tạo ra rất nhiều files khác nhau, do đó
nếu để chung các Project trong một thư mục sẽ rất mất thời gian trong việc
tìm kiếm sau này. Đây cũng là quy tắc chung khi ta làm việc với bất kỳ phần
mềm nào, thiết kế mạch hay lập trình .
Tạo một PROJECT sử dụng PIC Wizard
Trước hết bạn khởi động chương trình làm việc PIC C Compiler. Từ
giao diện chương trình di chuột chọn Project -> PIC Wizad.
Sau khi nhấn chuột, một cửa sổ hiện ra yêu cầu ban nhập tên Files cần
tạo. Bạn tạo một thư mục mới, vào thư mục đó và lưu tên files cần tạo tại đây.
Hình 4. 2: Tạo file mới trong PCW compiler
Như vậy là xong bước đầu tiên. Sau khi nhấn nút Save, một cửa sổ New
Project hiện ra. Trong của sổ này bao gồm rất nhiều Tab, mỗi Tab mô tả về
một vài tính năng của con PIC. Ta sẽ chọn tính năng sử dụng tại các Tab
tương ứng.
72
Hình 4. 3: Bảng hỗ trợ chức năng cho PIC
Dưới đây sẽ trình bầy ý nghĩa từng mục chọn trong mỗi Tab. Các mục
chọn này chính là đề cập đến các tính năng của một con PIC, tùy theo từng
loại mà sẽ có các Tab tương ứng. Đối với từng dự án khác nhau, khi ta cần sử
dụng tính năng nào của con PIC thì ta sẽ chọn mục đó. Sau đây xin giới thiệu
những Tab chính thường hay được sử dụng.
73
4.1.3.1. Tab General
Tab General cho phép ta lựa chọn loại PIC mà ta sử dụng và một số lựa
chọn khác như chọn tần số thạch anh dao động, thiết lập các bit CONFIG
nhằm thiết lập chế độ hoạt động cho PIC.
Hình 4. 4: Tab General
- Device: Liệt kê danh sách các loại PIC 12F, 16F, 18F… Ta sẽ chọn
tên Vi điều khiển PIC mà ta sử dụng trong dự án. Lấy ví dụ chọn
PIC16F877A
- Oscilator Frequency: Tần số thạch anh ta sử dụng, chọn 20 MHz (tùy
từng loại)
- Fuses: Thiết lập các bit Config như: Chế độ dao động (HS, RC,
Internal ), chế độ bảo vệ Code, Brownout detected…
74
- Chọn kiểu con trỏ RAM là 16-bit hay 8-bit
4.1.3.2. Tab Communications
Tab Communications liệt kê các giao tiếp nối tiếp mà một con PIC hỗ
trợ, thường là RS232 và I2C, cùng với các lựa chọn để thiết lập chế độ hoạt
động cho từng loại giao tiếp.
- Giao tiếp RS232: Mỗi một Vi điều khiển PIC hỗ trợ một cổng truyền
thông RS232 chuẩn. Tab này cho phép ta lựa chọn chân Rx, Tx, tốc
độ Baud, Data bit, Bit Parity…
- Giao tiếp I2C: Để sử dụng I2C ta tích vào nút chọn Use I2C, khi
đó ta có các lựa chọn: Chân SDA, SCL, Tốc độ truyền (Fast -
Slow), chế độ Master hay Slave, địa chỉ cho Salve.
Hình 4. 5: Tab Communications
75
4.1.3.3. Tab SPI và Tab LCD
Tab này liệt kê cho người dùng các lựa chọn đối với giao tiếp nối tiếp
SPI, chuẩn giao tiếp tốc độ cao mà PIC hỗ trợ về phần cứng. Chú ý khi ta
dùng I2C thì không thể dùng SPI và ngược lại. Để có thể sử dụng cả hai giao
tiếp này cùng một lúc thì buộc một trong 2 giao tiếp phải lập trình bằng phần
mềm (giống như khi dùng I2C cho các chip AT8051, không có hỗ trợ phần
cứng SSP).
Hình 4. 6: Tab SPI
76
Hình 4. 7: Tab LCD
4.1.3.4. Tab Timers
Liệt kê các bộ đếm/định thời mà các con PIC dòng Mid-range có:
Timer0, timer1, timer2, WDT…
Trong các lựa chọn cấu hình cho các bộ đếm/định thời có: chọn nguồn
xung đồng hồ (trong (internal)/ngoài (external)), tần số xung, khoảng thời
gian xảy ra tràn…
77
Hình 4. 8: Tab Timer
4.1.3.5. Tab Analog
Liệt kê các lựa chọn cho bộ chuyển đổi tương tự/số (ADC) của PIC.Tùy
vào từng IC cụ thể mà có các lựa chọn khác nhau, bao gồm:
Lựa chọn cổng vào tương tự
Chọn chân điện áp lấy mẫu (Vref)
Chọn độ phân giải: 8-bit = 0 ~ 255 hay 10-bit = 0~1023
Nguồn xung đồng hồ cho bộ ADC (trong hay ngoài), từ đó mà ta có
được tốc độ lấy mẫu, thường ta chọn là internal 2-6 us.
Khi không sử dụng bộ ADC ta chọn none
78
Hình 4. 9: Tab Analog
4.1.3.6. Tab Interrupts và Tab Driver
Tab Interrupts cho phép ta lựa chọn nguồn ngắt mà ta muốn sử dụng.
Tùy vào từng loại PIC mà số lượng nguồn ngắt khác nhau, bao gồm: ngắt
ngoài 0 (INT0), ngắt RS232, ngắt Timer, ngắt I2C-SPI, ngắt onchange
PORTB.v.v…
Tab Drivers được dùng để lựa chọn những ngoại vi mà trình dịch đã hỗ
trợ các hàm giao tiếp. Đây là những ngoại vi mà ta sẽ kết nối với PIC, trong
các IC mà CCS hỗ trợ, đáng chú ý là các loại EEPROM như 2404, 2416,
2432, 9346, 9356… Ngoài ra còn có IC RAM PCF8570, IC thời gian thực
DS1302, Keypad 3x4, LCD, ADC… Chi tiết ta có thể xem trong thư mục
Driver của chương trình: \...\PICC\Drivers.
79
Hình 4. 10: Tab Driver và Tab Interrupt
4.1.3.7. Tab Other
Tab này cho phép ta thiết lập các thông số cho các bộ Capture/
Comparator /PWM.
- Capture - Bắt giữ
Chọn bắt giữ xung theo sườn dương (rising edge) hay sườn âm
(falling edge) của
xung vào.
Chọn bắt giữ sau 1,4 hay 16 xung (copy giá trị của TimerX vào
thanh ghi lưu trữ CCCPx sau 1, 4 hay 16 xung).
- Compare - So sánh
Ta có các lựa chọn thực hiện lệnh khi xay ra bằng nhau giữa 2 đối tượng
so sánh là giá trị của Timer1 với giá trị lưu trong thanh ghi để so sánh. Bao
gồm:
Thực hiện ngắt và thiết lập mức 0
Thực hiện ngắt và thiết lập mức 1
Thực hiện ngắt nhưng không thay đổi trạng thái của chân PIC.
Đưa Timer1 về 0 nhưng không thay đổi trạng thái chân.80
- PWM - Điều chế độ rộng xung
Lựa chọn về tần số xung ra và duty cycle. Ta có thể lựa chọn sẵn hay tự
chọn tần số, tất nhiên tần số ra phải nằm trong một khoảng nhất định.
- Comparator - So sánh điện áp
Lựa chọn mức điện áp so sánh Vref. Có rất nhiều mức điện áp để ta lựa
chọn. Ngoài ra ta còn có thể lựa chọn cho đầu vào của các bộ so sánh.
Hình 4. 11: Tab Other
Sau các bước chọn trên, ta nhấn OK để kết thúc quá trình tạo một Project
trong CCS, một Files ten_project.c được tạo ra, chứa những khai báo cần
thiết cho PIC trong một Files ten_project. h.
81
4.2. Web động
Web động hay DHTML (Dynamic HTML) có thể được định nghĩa như
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.
Cấu trúc của một DHTML:
<!DOCTYPE html>
<html>
<head>
<title> Điều khiển LED</title>
</head>
<body>
<p>Bảng điều khiển LED thông qua internet</p>
</body>
</html>
4.3. CSS
CSS là chữ viết tắt của “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 giới
thiệu vào năm 1996. Cách đơn giản nhất để hiểu CSS là coi nó như một phần
mở rộng của HTML để giúp đơn giản hoá 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 ….)
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
đoạn văn bản.
82
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á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). Để 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”.
CSS phá vỡ giới hạn trong thiết kế Web, chỉ cần một file CSS có thể
quản lý định dạng và layout trên nhiều trang web khác nhau. Các nhà phát
triển Web có thể định nghĩa sẵn thuộc tính của một số thẻ HTML nào đó và
sau đó nó có thể dùng lại trên nhiều trang khác.
Có thể khai báo CSS bằng nhiều cách khác nhau. Có thể đoạn CSS phía
trong thẻ <head> … </head> hoặc tạo một file riêng rồi chèn vào tài liệu
HTML hoặc có thể chèn trực tiếp vào bất cứ đâu của tài liệu HTML.
4.3.2.1. Cú pháp cơ bản của CSS
Css_selector_1{
Thuộc_tính_1 : giá_trị_của_thuộc_tính_1;
Thuộc_tính_2 : giá_trị_của_thuộc_tính_2;
……….
Thuộc_tính_n : giá_trị_của_thuộc_tính_n;
83
}
Css_selector_2{
Thuộc_tính_1 : giá_trị_của_thuộc_tính_1;
Thuộc_tính_2 : giá_trị_của_thuộc_tính_2;
……….
Thuộc_tính_n : giá_trị_của_thuộc_tính_n;
}
Css_selector_3{
Thuộc_tính_1 : giá_trị_của_thuộc_tính_1;
Thuộc_tính_2 : giá_trị_của_thuộc_tính_2;
……….
Thuộc_tính_n : giá_trị_của_thuộc_tính_n;
}
4.3.2.2. Ví dụ minh hoạ về mã CSSBody{
Background: #ffffff; /*Nền sẽ có màu trắng*/
Color: blue; /*Chữ sẽ có màu xanh*/
}
4.3.2.3. Thứ tự xếp lớpTuỳ vào từng cách đặt khác nhau mà mức độ ưu tiên cho các style cũng
khác nhau. Mức độ ưu tiên này tuân theo thứ tự sau:
- Style nội tuyến - Style đặt trong từng thẻ HTML riêng biệt.
- Style bên trong – Style đặt 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.
84
4.3.3. CSS có tính kế thừa và kết hợp
4.3.3.1. Tính kế thừa
Giả sử rằng ở đầu file styleshet.css khai báo cho body có các thuộc tính
như sau:
Body{
Color: #000000;
Font-size: 24px;
}
Nhưng trong trường hợp muốn khai báo các phần tử nhỏ hơn nằm trong
nó như div có id là main-content:
#main-content{
Color: #ffffff;
Background: #000000;
}
Như vậy thì div có id là main-content sẽ không chịu ảnh hưởng của
thuộc tính body nữa mà sẽ mang thuộc tính của chính nó. Chữ sẽ màu trắng
và nền sẽ màu đen.
4.3.3.2. Tính kết hợp
Có thể định nghĩa nhiều CSS cùng một thuộc tính thay vì phải định
nghĩa riêng lẻ từng cái một.
Ví dụ:
h1,h2,h3{
Color: #c9c9c9;
}
Thay cho việc định nghĩa riêng tường thuộc tính như sau:
h1 {
Color: #c9c9c9;
}
85
h2 {
Color: #c9c9c9;
}
h3{
Color: #c9c9c9;
}
4.3.3.3 Tạo bảng bằng html và cssTrong html để tạo được một bảng thì ta dùng <table></table>. Khi thực
hiện lệnh <table> thì ta dẽ có một bảng rồi ta dùng các thuộc tính như border
để chỉnh đường viền cho bảng.
Trong bảng thì có thẻ <tr></tr> là các dòng trong bảng. mỗi <tr> là một
dòng cho bảng.
Ngoài ra còn có thẻ <td></td> là các cột cho bảng. Mỗi <td> là một cột
cho bảng. Để gộp các cột lại với nhau ta dùng code như sau: <td
colspan="3"></td>. Câu lệnh colspan="3" nghĩa là ra sẽ gộp 3 cột lại thành 1.
Còn <td rowspan="2"></td> nghĩa là ta sẽ gộp 2 dòng lại thành 1.
86
Hình 4. 12: websever
87
Chương 5: Sơ đồ khối và mô phỏng5.1. Sơ đồ khối.
Hình 5. 1: Sơ đồ khối giao tiếp của mạch
88
Khối điều khiểnVĐK
PIC18F4550
Khối hiển thị LCD 16x2
Khối nguồn
Module EthernetENC26j80
Thiết bị được điều khiển bởi
mạch
WEBINTERNET
Bảng điều khiển trên trình duyệt
thông qua internet
89
5.2. Mạch nguyên lý.
Hình 5. 2: Mạch nguyên lý
90
5.2.1. Khối nguồn
Hình 5. 3: Khối nguồn
5.2.2. Khối công suất (RELAY)
Hình 5. 4: khối công suất (relay 5 chân 12v DC/ 240v AC)
91
5.2.3. Khối hiển thị (LCD 16x2)
Hình 5. 5: khối hiển thị (LCD 16x2)
92
5.2.4. Khối Key điều khiển đèn (Nút nhấn)
Hình 5. 6: Khối Nút nhấn
5.2.5. Khối đo nhiệt độ và Header giao tiếp với Module Ethernet
Hình 5. 7: LM35(nhiết độ) & Header kết nối với Module Ethernet
93
5.2.6. Khối reset, Xung thạch anh, Lọc nguồn
a, b, c,
Hình 5. 8: a:xung thạch anh
b: lọc nguồn
c: khối reset
5.2.7. Khối Vi xử lý trung tâm (Pic 18F4550)
94
Hình 5. 9: Khối xử lý dùng vi điều khiển PIC18F4550
5.3. Mô Phỏng
Hình 5. 10: Mô phỏng
95
KẾT LUẬN
Việc thiết kế Module Ethernet trên vi điều khiển PIC18F4550 nhằm ứng
dụng đo lường và điều khiển có ý nghĩa rất lớn, có thể ứng dụng trong nhiều
lĩnh vực của đời sống xã hội và trong công nghiệp. Ngoài ra, module Ethernet
trên vi điều khiển PIC18F4550 cũng phục vụ cho việc học tập và nghiên cứu
của sinh viên. Việc xây dựng module này liên quan đến nhiều mảng kiến
thức, từ những kiến thức lý thuyết cho đến những kiến thức thực tiễn.
Những kết quả chính thực hiện được
Tìm hiểu nguyên lý chung chuẩn truyền thông Ethernet do IEÊ
802.3 quy định, tìm hiểu kiến thức về họ giao thức TCP/IP.
Kết nối thành công mạch demo với máy tính thông qua chuẩn
truyền thông Ethernet.
Lập trình cho mạch demo bằng phần mềm CCS, sử dụng thư viện
TCP/IP Stack cảu hang Microchip để thực hiện điều khiển các ứng
dụng cơ bản như bật tắt đèn, hiển thị lên LCD và đo tham số nhiệt
độ hiển thị lên web.
Trong quá trình làm còn nhiều thiếu sót về mặt khiến thức lên sản phẩm
chưa được thực sự hoàn thiện. Trong tương lại sản phẩm có thể phát triển
thêm các ứng dụng cho ngôi nhà thông minh của chúng ta.
96
Tài liệu tham khảo:
[1]. Datasheet PIC18F4550
[2]. Datasheet ENC28J60
[3]. Datasheet LM35
[4]. File Help của trình biên dịch PIC C Compiler (CCS)
[5]. Tài liệu tham khảo từ các trang web, diễn đàn trên Internet:
http://www.hocavr.com/index.php/vi/lectures/spi
http://www.pic24.ru/doku.php/en/osa/ref/intro
http://mcu.banlinhkien.vn/threads/261/
http://codientu.org
http://www.dientuvietnam.net/forums/vi-dieu-khien-avr-55/giao-
thuc-tcp-ip-va-web-server-voi-avr-87172/
97