SlideShare uma empresa Scribd logo
1 de 66
1
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
ĐỒ ÁN TỐT NGHIỆP
Đề tài:
MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN
PIC18F4550 VÀ ỨNG DỤNG TRONG
ĐO LƯỜNG – ĐIỀU KHIỂN
Sinh viên thực hiện: NGUYỄN VĂN CHIỀN
Lớp ĐT1
Giảng viên hướng dẫn: PGS.TS. NGUYỄN TIẾN DŨNG
Hà Nội, 5 - 2013
2
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
ĐỒ ÁN TỐT NGHIỆP
Đề tài:
MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN
PIC18F4550 VÀ ỨNG DỤNG TRONG
ĐO LƯỜNG – ĐIỀU KHIỂN
Sinh viên thực hiện: NGUYỄN VĂN CHIỀN
Lớp ĐT1
Giảng viên hướng dẫn: PGS.TS. NGUYỄN TIẾN DŨNG
Cán bộ phản biện:
Hà Nội, 4 - 2013
3
BỘ GIÁO DỤC VÀ ĐÀO TẠO CỘNG HÒA XÃ HÔI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠIHỌC BÁCHKHOA HÀ NỘI
--------------------------------------------------
Độc lập - Tự do - Hạnh phúc
---------------------------------
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên: .…………….………….…….. Số hiệu sinh viên: ………………
Khoá:……………………. Khoa: Điện tử - Viễn thông Ngành: ……………….........
1. Đầu đề đồ án:
………………………………………………..………………………………………………………………………
……………………………………………………………………………………………………………..………...
2. Các số liệu và dữ liệu ban đầu:
……………………………………..……………………………………………..……..……………………………
……………………………………………………………………………………………………………………………….…..
………………………..…………………………………………………………………………………….
3. Nội dung các phần thuyết minh và tính toán:
………………………………………………………………………………………………………………..….………………
……………………………………………………………………………………………………………………..….…………
……………………………………………………………………………………………………………………………..….…
…………………………………………………………………………………………
4. Các bản vẽ, đồ thị ( ghi rõ các loại và kích thước bản vẽ ):
………………………………………………………………………………………………………………………..….………
…………………………………………………………………………………………………………………..……….………
………………………………………………………………………………………………….
5. Họ tên giảng viên hướng dẫn: ………………………………………………………..……………………
6. Ngày giao nhiệm vụ đồ án: ………………………………………………….……………
7. Ngày hoàn thành đồ án: ………………………………………………………………………..………
Ngày tháng năm 2013
Chủ nhiệm Bộ môn Giảng viên hướng dẫn
Sinh viên đã hoàn thành và nộp đồ án tốt nghiệp ngày tháng năm 2013
Cán bộ phản biện
4
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------------------
BẢN NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên: ....................................................................... Số hiệu sinh viên: ...........................
Ngành: .................................................................................................. Khoá: ....................................................
Giảng viên hướng dẫn:..............................................................................................................................................
Cán bộ phản biện: .......................................................................................................................................
1. Nội dung thiết kế tốt nghiệp:
.........................................................................................................................................................................................................
.........................................................................................................................................................................................................
.........................................................................................................................................................................................................
.........................................................................................................................................................................................................
.........................................................................................................................................................................................................
.........................................................................................................................................................................................................
..................................................................................
2. Nhận xét của cán bộ phản biện:
.........................................................................................................................................................................................................
.........................................................................................................................................................................................................
.........................................................................................................................................................................................................
.........................................................................................................................................................................................................
.........................................................................................................................................................................................................
.........................................................................................................................................................................................................
.........................................................................................................................................................................................................
.........................................................................................................................................................................................................
.........................................................................................................................................................................................................
.........................................................................................................................................................................................................
Ngày tháng năm 2013
Cán bộ phản biện
( Ký, ghi rõ họ và tên )
5
LỜI NÓI ĐẦ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. Thực tập
tốt nghiệp với đề tài “Module Ethernet trên vi điều khiển PIC18F4550 và ứng dụng
trong đo lường, điều khiển)” đã sử dụng phần mềm CSS và thư viện TCP/IP Stack
của hãng Microchip để lập trình điều khiển LED thông qua mạng truyền thông
Ethernet, truyền tải nội dung từ Web qua LCD, đo nhiệt độ môi trường.
Em xin gửi lời cảm ơn chân thành đến tập thể giáo viên viện ĐIỆN TỬ - VIỄN
THÔNG trường ĐẠI HỌC BÁCH KHOA HÀ NỘI, đặc biệt là sự hướng dẫn và giúp
đỡ nhiệt tình của thầy NGUYỄN TIẾN DŨNG đã giúp em trong quá trình thực hiện đề
tài tốt nghiệp này…
Chúng em cũng chân thành cảm ơn quý thầy cô các Khoa trong trường ĐẠI
HỌC BÁCH KHOA HÀ NỘI đã tạo nền móng kiến thức cho chúng em…
Xin gửi lời chúc sức khỏe và lòng tri ân chân thành đến quý thầy cô!
Xin Cảm Ơn!
6
MỤC LỤC
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP ............................................................................3
BẢN NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP...................................................................4
LỜI NÓI ĐẦU................................................................................................................5
MỤC LỤC ......................................................................................................................6
MỞ ĐẦU.........................................................................................................................9
CHƯƠNG 1. TỔNG QUAN VỀ ETHERNET .........................................................11
1.1. Cấu trúc khung tin Ethernet ...............................................................................12
1.2. Cấu trúc địa chỉ Ethernet....................................................................................12
1.3. Các loại khung Ethernet.....................................................................................13
1.3.1. Các khung unicast.......................................................................................13
1.3.2. Các khung broadcast ..................................................................................13
1.3.3. Các khung multicast ..................................................................................14
1.4. Truy nhập bus.....................................................................................................14
1.5. Các loại mạng Ethernet ......................................................................................16
1.5.1. Các hệ thống Ethernet 10Mb/s ...................................................................16
1.5.2. Các hệ thống Ethernet 100 Mb/s – Ethernet cao tốc ( Fast Ethernet )......16
1.5.3. Các hệ thống Giga Ethernet ......................................................................16
1.6. Chuẩn IEEE 802.................................................................................................17
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) ........................................................18
2.1.2. Tầng Giao Vận (Transport Layer).............................................................19
2.1.3. Tầng Internet (Internet Layer)....................................................................19
2.1.4. Lớp giao tiếp mạng.....................................................................................20
2.2. Cấu trúc gói tin IP,TCP,UDP.............................................................................20
7
2.2.1. Cấu trúc địa chỉ IP......................................................................................20
2.2.2. Cấu trúc gói tin IP ......................................................................................21
2.2.3. Cấu trúc gói tin TCP...................................................................................23
2.2.4. Cấu trúc gói tin UDP.................................................................................24
CHƯƠNG 3. PHẦN CỨNG .......................................................................................25
3.1. Vi điều khiển PIC...............................................................................................25
3.1.1. Giới thiệu về vi điều khiển PIC...................................................................25
3.1.2. Một số ưu điểm của Microchip PIC ...........................................................27
3.1.3. Vi điều khiển PIC18F4550 .........................................................................27
3.2. Cảm biến nhiệt độ LM35 ...................................................................................32
3.3. Module Ethenert.................................................................................................33
3.3.1. Giới thiệu về chuẩn Ethernet và ENC28J60...............................................33
3.3.2. Sơ đồ chân...................................................................................................34
3.3.3. Sơ đồ ghép nối vi điều khiển với ENC28J60 ..............................................34
3.3.4. Module Ethernet .........................................................................................34
3.4. Text LCD ...........................................................................................................35
3.4.1. Cấu trúc Text LCD......................................................................................35
3.4.2. Sơ đồ chân...................................................................................................36
3.4.3. Điều khiển hiển thị......................................................................................38
3.5. Mạch nguyên lý..................................................................................................40
3.5.1. Khối mạch nguồn........................................................................................40
3.5.2. Khối mạch RJ45..........................................................................................40
3.5.3. Khối mạch LCD ..........................................................................................42
3.5.4. Khối mạch vi điều khiển PIC18F4550........................................................43
3.6. Mạch thực tế.......................................................................................................43
CHƯƠNG 4. TRÌNH BIÊN DỊCH CCS VÀ WEB SERVER.................................44
4.1. CCS ....................................................................................................................44
8
4.1.1. Vì sao ta sử dụng CCS................................................................................44
4.1.2. Giới thiệu về CCS .......................................................................................44
4.2. Web động ...........................................................................................................45
4.3. CSS.....................................................................................................................46
4.3.1. Ưu điểm của CSS ........................................................................................47
4.3.2. Các đặc tính cơ bản của CSS......................................................................47
4.3.3. CSS có tính kế thừa và tính kết hợp............................................................49
CHƯƠNG 5. TCP/IP STACK....................................................................................50
5.1. Cấu trúc của TCP/IP Stack.................................................................................51
5.2. Hoạt động của TCP/IP Stack..............................................................................52
5.2.1. Các file cần thiết.........................................................................................52
5.2.2. Cấu trúc APP_CONFIG.............................................................................52
5.2.3. Main file......................................................................................................53
5.3. Các module của Stack và APIs ..........................................................................54
5.3.1. Announce ....................................................................................................54
5.3.2. HTTP2 server..............................................................................................54
5.4. Cấu hình cho Stack.............................................................................................56
5.4.1. Cấu hình cho phần cứng.............................................................................56
5.4.2. Địa chỉ.........................................................................................................57
5.5. Demo Module.....................................................................................................58
5.5.1. Điều khiển led sáng tắt ...............................................................................59
5.5.2. Viết ra LCD.................................................................................................62
5.5.3. Đo nhiệt độ..................................................................................................63
KẾT LUẬN ..................................................................................................................64
9
Danh sách hình vẽ
Hình 1: Cấu trúc khung MAC theo IEEE 802.3/ Ethernet. ..................................12
Hình 2: Mô hình truyền thông unicast..................................................................13
Hình 3: Minh họa phương pháp CSMA/CD. ........................................................14
Hình 4: Cấu trúc họ giao thức TCP/IP. ...............................................................18
Hình 5. Tổ chức địa chỉ IP....................................................................................21
Hình 6. PIC18F4550.............................................................................................28
Hình 7. Sơ đồ chân của PIC18F4550...................................................................29
Hình 8. LM35........................................................................................................33
Hình 9. Sơ đồ chân ENC28J60.............................................................................34
Hình 10. Sơ đồ ghép nối VĐK với ENC28J60......................................................34
Hình 11. Module Ethernet ....................................................................................35
Hình 12. Text LCD 16x2.......................................................................................36
Hình 13. Sơ đồ chân..............................................................................................37
Hình 14. Kết nối Text LCD...................................................................................38
Hình 15. Hoạt động của chân RS. ........................................................................39
Hình 16. Khối mạch nguồn...................................................................................40
Hình 17. Khối mạch RJ45.....................................................................................41
Hình 18. Sơ đồ khối của HR911105A...................................................................42
Hình 19. Khối mạch LCD. ....................................................................................42
Hình 20. Mạch lọc, mạch reset, chân nạp cho vi điều khiển................................43
Hình 21. Bản mạch chính .....................................................................................43
Hình 22. Trình biên dịch CCS ..............................................................................45
Hình 23. Cấu trúc của Stack.................................................................................51
Hình 24. So sánh cấu trúc TCP/IP tham khảo và cấu trúc Stack của Microchip.
.......................................................................................................................................51
Hình 25. Điều khiển LED và viết lên LCD. ..........................................................60
Hình 26. Code trong file forms.htm......................................................................60
MỞ ĐẦU
Ngày nay, khoa học công nghệ đạt được một trình độ phát triển rất nhanh và
mạnh mẽ, cùng với sự phát triển của các ngành kỹ thuật nói chung và công nghệ điện
10
tử nói riêng. Những thành tựu đạt được cũng như các ứng dụng của công nghệ kỹ thuật
điện tử ngày càng được sử dụng nhiều trong cuộc sống hàng ngày của con người và
trong các ngành công nghiệp sản xuất và chế biến. Đặc biệt trong lĩnh vực Vi Xử Lý,
những ứng dụng của nó đã mang lại hiệu quả rất thiết thực cho cuộc sống như quang
báo điện tử, đo và hiển thị nhiệt độ, đồng hồ số, điều khiển tốc độ động cơ, điều khiển
thiết bị điện, hệ thống đếm sản phẩm…
Nắm được tầm quan trọng đó, tôi đã thực hiện đề tài “MODULE
ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F4550 VÀ ỨNG DỤNG TRONG
ĐO LƯỜNG – ĐIỀU KHIỂN”. Có thể nói đề tài này có rất nhiều ứng dụng trong
thực tiễn, dùng đễ điều khiển và giám sát các thiết bị trong gia đình. Nếu mở rộng đề
tài ta có thể ứng dụng đề tài để điều khiển hệ thống điện trong công nghiệp.
Bằng các kiến thức đã học tại trường và quá trình nghiên cứu, tìm hiểu thực tế,
cùng với sự nỗ lực của bản thân, tôi đã thực hiện thành công đồ án này.
Do kiến thức còn hạn hẹp và thời gian có hạn chế, đồ án không tránh khỏi
những thiếu sót.
Đồ á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 PIC18F4550 bao
gồm các đặc trưng của PIC18F4550, 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. Giới thiệu về LCD
16x2. Tiếp theo là phần nguyên lý của mạch thực nghiệm.
11
Chương 4. Trình biên dịch CCS và web server giới thiệu về trình biên dịch CCS
và các nội dung liên quan đến việc thiết kế web giao diện như là HTML, Javascript,
CSS.
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 CCS để 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.
CHƯƠ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
12
đồ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:
Hình 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
Dữ liệu PAD FCS
7 byte 1 byte 2/6 byte 2/6 byte 2 byte 46-1500 byte 4 byte
- 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.
13
- 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
Hình 2: 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
14
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
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 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 3: Minh họa phương pháp CSMA/CD.
15
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
gử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
16
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.
- 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:
 100BaseFX. Tốc độ 100Mb/s, sử dụng cáp sợi quang đa mode.
 100BaseTX. Tốc độ 100Mb/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
17
- 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:
 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.
- 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).
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á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.
18
CHƯƠ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 4: 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.
19
- 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.
20
- 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ó.
21
Hình 5. 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.
0 1 2 3 4 8 16 24
Class A 0 Netid Hostid
Class B 1 0 Netid Hostid
Class C 1 1 0 Netid Hostid
Class D 1 1 1 0 Multicast address
Class E 1 1 1 1 0 Reverved for future use
22
- 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 (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.
 1 bít tiếp theo (Delay) chỉ độ trễ 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.
 1 bít tiếp theo (Throughput) 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 (Reliability) chỉ độ 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.
- 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:
 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 không 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-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.
23
- 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.
- 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
 URG: Vùng con trỏ khẩn (Urgent pointer) 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
24
 SYN: đồng bộ hoá số hiệu tuần tự
 FIND: không còn dữ liệu từ trạm nguồn
- Window-2byte: số byte dữ liệu bắt đầu từ byte được chỉ ra trong ACK number
mà trạm nguồn đã sẵn sàng để nhận.
- Checksum: checksum cho cả phần header lẫn dữ liệu.
- Urgent Pointer-2byte: nếu cờ URG bật thì giá trị trường này chính là số 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.
25
CHƯƠNG 3. PHẦN CỨNG
3.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 Technology.
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ớ kiểu 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 và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 kế 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 cho vi xử lý PIC không cần nhiều chức năng vì chỉ xử lý các công
việc 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ách 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 ki 80 Genneral Instrument gặp khó khăn 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 hãng. Genneral Instrument đã chuyển nhượng Ban vi điện tử và
nhà máy tại Chandle, bang Anizona cho các nhà đầu tư. Họ lập ra một công ty mới, đặt
tên là Arizona Microchip technology hiện nay là Microchip technology Inc.
Chiến lược của các nhà đầu tư là tập trung vào vi điều khiển và các bộ nhớ 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 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 thuộ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.
26
Năm 1983 Microchip là hãng đầu tiên đã tích hợp được bộ nhớ chương trình
flash 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 flash đã loại bỏ vai trò của vi điều
khiển có bộ nhớ xoá 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 dòng PIC và có rất 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ể tuỳ chọn từ 256 byte đến 256 Kbyte
 Các cổng Xuất/Nhập (I/O ports) (mức logic thường từ 0V đến 5.5V, ứng với
logic 0 và logic 1)
 8/16 Bit Timer
 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/12 bit
 Bộ so sánh điện áp (Voltage Comparators)
 Các module Capture/Compare/PWM
 LCD
 MSSP Peripheral dùng cho các giao tiếp I²C, SPI, và I²S
 Bộ nhớ nội EEPROM - có thể ghi/xoá lên tới 1 triệu lần
 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 (PIC16F639, và rfPIC)
 KEELOQ Mã hoá 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 trên sự khác nhau về kiến trúc bộ xử lý bên trong
vi điều khiển:
- Số các thanh ghi có thể truy nhập được.
27
- Có hay không có ngắt, số lượng ngắt.
- Số lượng các phần cứng có chức năng đặc biệt.
- Độ dài từ lệnh.
- Chia làm 4 họ:
o Họ cấp thấp (low - end): 12C5xx, 16C5x, 16C505, 16HV540.
o Họ cấp chung (Mid - range): 12C6xx, 14C000, 16C55x, 16C6x, 16C62x,
16F62x, 16C67x, 16C8x, 16F87x và 16C9xx.
o Họ cấp cao (High-end) 17Cxxx.
o Họ cấp cao (High- performance): 18Cxxx và 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ác dễ dàng với chi phí thấp do PIC
chủ yếu nạp trình theo chuẩn ICSP (In-Circuit Siral Programming) là phương thức 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ứư và sử
dụng PICđã tiết kiệm được đáng kể chi phí mua các công cụ nạp. Với bộ nhớ flash thì
thời 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ỡ hơn chục phút).
Microchip 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ỉ dùng sau máy tính cá nhân
PC và về doanh số bán ra thi trường hiện nay. Microchip đã đứng đầu về doanh số bán
PIC 8 bit, vượt lên trên cả các vi điều khiển của motorola.
3.1.3. Vi điều khiển PIC18F4550
3.1.3.1. PIC18F4550
PIC18F4550 là một vi xử lý cơ bản đa chức năng và rẻ. Nó là sản phẩm của họ vi
xử lý PIC thông dụng của công ty Microchip của Mỹ có trụ sở đặt tại Chandler,
Arizona (Mỹ).
28
Hình 6. PIC18F4550
Với bộ nhớ, có 32kb Flash lưu trữ chương trình, 2kb bộ nhớ SRAM bay hơi và
256 byte 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 1 byte với một số ngoại lệ dài 2 byte (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 (độ dài xung) và 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à dùng cả hai mức như bộ so sánh tương tự kèm theo với
bộ phát điện thế chuẩn có 16 mức (hữu ích khi dùng trigger ở mức phần cứng).
Cuối cùng, CIP cũng có một 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 và các ngắt khác (vòng lặp …). Không thể đạt được tốc
độ lớn hơn 200 kHz.
29
3.1.3.2. Sơ đồ chân
Hình 7. Sơ đồ chân của PIC18F4550
3.1.3.3. Chức năng chân
Pin
No.
Name Description Alternate Function
1 MCLR/VPP/RE3
Master
clear
Vpp: programming voltage
input
RE3: I/O pin of PORTE, PIN 3
2 RA0/AN0
PortA I/O
Pins 1-6
AN0: Analog input 0
3 RA1/AN1 AN1: Analog input 1
4 RA2/AN2/VREF-/CVREF
AN2: Analog input 2
VREF-: A/D reference voltage
(low) input.
CVREF: Analog comparator
reference output.
5 RA3/AN3/VREF+
AN3: Analog input3
VREF+: A/D reference
voltage (high) input
6 RA4/T0CKI/C1OUT/RCV
T0CKI: Timer0 external clock
input.
C1OUT: Comparator 1 output
RCV:External USB
transceiver RCV input.
30
7 RA5/AN4/SS/HLVDIN/C2OUT
AN4: Analog input 4
SS: SPI slave select input
HLDVIN: High/Low-Voltage
Detect input.
C2OUT: Comparator 2 output.
8 RE0/AN5/CK1SPP
PortE I/O
Pins 1-3
AN5: Analog input 5
CK1SPP: SPP clock 1 output.
9 RE1/AN6/CK2SPP
AN6: Analog input 6
CK2SPP: SPP clock 2 output
10 RE2/AN7/OESPP
AN6: Analog input 7
OESPP : SPP Enabled output
11
VDD
Positive supply
12 Vss Ground
13 OSC1/CLKI
Oscillator
pin 1
CLKI: External clock source
input
14 OSC2/CLKO/RA6
PortE I/O
Pin 7
CLKO: External clock source
output
OSC2: Oscillator pin 2
15 RC0/T1OSO/T13CKI
PortC I/O
Pins 1-3
T1OSO :Timer1 oscillator
output
T13CKI: Timer1/Timer3
external clock input.
16 RC1/T1OSI/CCP2/UOE
T1OSI: Timer1 oscillator
output
CCP2:Capture 2
input/Compare 2
output/PWM2 output
UOE: External USB
transceiver OE output
17 RC2/CCP1/P1A
CCP1: Capture 1
input/Compare 1
output/PWM1 output.
P1A :Enhanced CCP1 PWM
output, channel A.
18 VUSB
Internal USB 3.3V voltage regulator output,
positive supply for the USB transceiver.
19 RD0/SPP0
PortD I/O
Pins 1-4
SPP0-SPP4
Streaming Parallel Port data
20 RD1/SPP1
21 RD2/SPP2
22 RD3/SPP3
23 RC3/D-/VM
PortC I/O
Pins 4-5
D-: USB differential minus
line (input/output)
VM: External USB transceiver
31
VM input.
24 RC4/D+/VP
D+: USB differential plus line
(input/output).
VP: External USB transceiver
VP input.
25 RC6/TX/CK
PortC I/O
Pins 7-8
TX: EUSART asynchronous
transmit.
CK: EUSART synchronous
clock (see RX/DT).
26 RC7/RX/DT/SDO
RX: EUSART asynchronous
receive.
DT: EUSART synchronous
data (see TX/CK).
SDO: SPI data out.
27 RD4/SPP4
PortD I/O
Pins 5-8
SPP4:Streaming Parallel Port
data
28 RD5/SPP5/P1B
SPP5:Streaming Parallel Port
data
P1B: Enhanced CCP1 PWM
output, channel B
29 RD6/SPP6/P1C
SPP6:Streaming Parallel Port
data
P1C: Enhanced CCP1 PWM
output, channel C
30 RD7/SPP7/P1D
SPP7:Streaming Parallel Port
data
P1D: Enhanced CCP1 PWM
output, channel D
31 Vss Ground
32
VDD
Positive supply
33 RB0/AN12/INT0/FLT0/SDI/SDA
PortB I/O
Pins 1-8
AN12: Analog input 12.
INT0: External interrupt 0.
FLT0: Enhanced PWM Fault
input (ECCP1 module).
SDI: SPI data in.
SDA: I2
C data I/O.
34 RB1/AN10/INT1/SCK/SCL
AN10: Analog input 10.
INT1: External interrupt 1.
SCK: Synchronous serial clock
input/output for SPI mode.
SCL: Synchronous serial clock
input/output for I2C mode.
35 RB2/AN8/INT2/VMO
AN8: Analog input 8.
INT2: External interrupt 2.
32
VMO: External USB
transceiver VMO output.
36 RB3/AN9/CCP2/VPO
AN9: Analog input 9.
CCP2: Capture 2
input/Compare 2
output/PWM2 output.
VPO: External USB
transceiver VPO output.
37 RB4/AN11/KBI0/CSSPP
AN11: Analog input 11.
KBI0: Interrupt-on-change pin.
CSSPP: SPP chip select
control output.
38 RB5/KBI1/PGM
KBI1: Interrupt-on-change pin.
PGM: Low-Voltage ICSP
Programming enable pin.
39 RB6/KBI2/PGC
KBI2: Interrupt-on-change pin.
PGC: Low-Voltage
ICSP Programming enable pin.
40 RB7/KBI3/PGD
KBI3: Interrupt-on-change pin.
PGD: In-Circuit Debugger and
ICSP programming data pin.
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
thà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
độ.
Các đặc trưng của LM35:
- Ngõ ra là điện áp.
- Đơn vị nhiệt độ: 0
C.
- Có hiệu năng cao, công suất tiêu thụ là 60uA.
33
- Sản phẩm không cần phải canh chỉnh nhiệt độ khi sử dụng.
- Độ nhạy 10mv/10
C.
- Sai số cực đại 1,50
C khi nhiệt độ lớn hơn 1000
C.
- Phạm vi sử dụng :00
C=>1000
C.
- Chân +Vs là chân cung cấp điện áp cho LM35DZ hoạt động (4—20V).
- Chân Vout là chân điện áp ngõ ra của LM35DZ, được đưa vào chân Analog của
các bộ ADC.
- Chân GND là chân nối mass,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 1°C, ở 00
C điện áp ra là 0V, tương ứng với giá trị ADC
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ị
ADC ứng với 2.5V/1000= 2.5 mV. Vậy 1 giá trị A/D ứng với 0.25 0
C. Muốn tăng độ
phân giải A/D ta giảm Vref.
Hình 8. LM35
3.3. Module Ethenert
3.3.1. Giới thiệu về chuẩn Ethernet và ENC28J60
Ethernet là 1 công nghệ mạng cục bộ (LAN) nhằm chuyển thông tin giữa các
máy tính với tốc độ từ 10 đến 100 triệu bít một giây (Mbps). Hiện thời tốc độ truyển
tải Ethenet chủ yếu là 10/100 Mbps.
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
34
phục vụ nghiên cứu trong “ hệ thống công sở trong tương lai”. Sau đó nó được chuẩn
hóa và được sử dụng từ năm 1985 tới này theo chuẩn IEEE 802.3.
ENC28J60 là IC giao tiếp mạng Ethernet ở lớp vật lý tương ứng trong mô hình
OSI. Nó hỗ trợ tuyền song công trên kênh truyền có băng thông từ 10-20Mbps. Đồng
thời nhằm tránh xung đột trên kênh truyền, ENC28J60 làm việc trên protocol
CSMA/CD để phát hiện và tối thiểu hóa xung đột. ENC28J60 được giao tiếp với các
thiết bị khác theo chuẩn SPI.
3.3.2. Sơ đồ chân
Hình 9. Sơ đồ chân ENC28J60
3.3.3. Sơ đồ ghép nối vi điều khiển với ENC28J60
Hình 10. Sơ đồ ghép nối VĐK với ENC28J60
3.3.4. Module Ethernet
35
Hình 11. Module Ethernet
- Sử dụng chip ENC28J60 Ethernet, SOP 28 chân.
- Giao diện SPI.
- Đầu nối RJ45 HR911105A.
- Sử dụng điện áp 3,3V.
- Tần số 25Mhz.
- 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.
3.4. Text LCD
3.4.1. Cấu trúc Text LCD
Text LCD là các loại màn hình tinh thể lỏng nhỏ dùng để 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
36
với Graphic LCD có thể hiển thị 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 các Text LCD, các mẫu ký tự được định 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 có thể hiển thị tối đa 16
ký tự. Một số kích thước Text LCD thông thường gồm 16x1, 16x2, 16x4, 20x2,
20x4…
Hình 12. Text LCD 16x2
Text LCD có 2 cách giao tiếp cơ bản là nối tiếp (như I2C) và song song. Trong
phạm vi bài học này 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 hãng 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. Tuy nhiên, HD44780U cũng được coi là chuẩn
chung cho các loại Text LCD, vì thế bạn có thể dùng chương trình ví dụ trong bài này
để test trên các LCD khác với rất ít hoặc không cần chỉnh sửa.
HD44780U là bộ điều khiển cho các Text LCD dạng ma trận điểm (dot-matrix),
chip này có thể được dùng cho các LCD có 1 hoặc 2 dòng hiển thị. HD44780U có 2
mode giao tiếp là 4 bit 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 là 240 ký tự mẫu khác nhau).
3.4.2. Sơ đồ chân
Các Text LCD theo chuẩn HD44780U thường có 16 chân trong đó 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ự các chân thường
được sắp xếp như sau:
37
Hình 13. Sơ đồ châ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).
38
Hình 14. Kết nối Text LCD
Chân 1 và chân 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ở chia áp như
trong hình 2.Trong khi hoạt động, chỉnh để thay đổi giá trị biến trở để đạt được độ
tương phản cần thiết, sau đó giữ 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 4
bit hay 8 bit 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.4.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.
RS (chân số 3): Chân lựa chọn thanh ghi (Select Register), chân này cho phép lựa
chọn 1 trong 2 thanh ghi IR hoặc DR để làm việc. Vì cả 2 thanh ghi này đều được kết
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 15.
39
Hình 15. 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 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.
40
3.5. Mạch nguyên lý
3.5.1. Khối mạch nguồn
Hình 16. Khối mạch nguồn
- 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.5.2. Khối mạch RJ45
41
Hình 17. 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.
42
Hình 18. Sơ đồ khối của HR911105A.
3.5.3. Khối mạch LCD
Hình 19. 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.
43
3.5.4. Khối mạch vi điều khiển PIC18F4550
- 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 20. Mạch lọc, mạch reset, chân nạp cho vi điều khiển.
- Các tụ C2, C3, C4, C5, C6, C7, C9 có tác dụng lọc nhiễu.
3.6. Mạch thực tế
Hình 21. Bản mạch chính
44
CHƯƠNG 4. TRÌNH BIÊN DỊCH CCS VÀ WEB SERVER
4.1. CCS
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 đó. Vi đ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 là việc làm việc với các con
số 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 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 một ngôn ngữ mới thay thế. Và ngôn ngữ lập trình Assembly. Ở đây ta không nói
nhiều đến Assembly. Sau này khi ngôn ngữ C ra đời, nhu cầu dung ngôn ngữ C để
thay thế cho ASM trong việc mô tả các lệnh lập trình cho vi điều khiển một cách ngắn
gọn và dễ hiểu hơn đã dẫn đến sự ra đời của nhiều chương trình soạn thảo và biên dịch
C cho vi điều khiển: Keli C, HT-PIC, MikoC, 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 hang
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à:
o PCB cho dòng PIC 12-bit opcodes
o PCB cho dòng PIC 14-bit opcodes
o 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 là CCS. Phiên bản đươc sử dụng trong
tài liệu này là PCWH Compiler Ver 4.104.
45
- 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.
Hình 22. Trình biên dịch CCS
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.
46
Cấu trúc của một DHTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>DHTML example</title>
<script type="text/javascript">
function init() {
myObj = document.getElementById("navigation");
// .... more code
}
window.onload=init;
</script>
</head>
<body>
<div id="navigation"></div>
<pre>
Often 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:
</pre>
<script type="text/javascript" src="myjavascript.js"></script>
</body>
</html>
4.3. CSS
47
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
(W3C) 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 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
nó là stylesheet.css.
CSS phá vỡ giới hạn trong thiết kế Web, bởi chỉ cần một file CSS có thể cho
phép quản lí định dạng và layout trên nhiều trang 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ể đặt đoạn CSS phía trong
thẻ <Head>…</Head>, hoặc ghi nó ra một file riêng với phần mở rộng “.css”, ngoài ra
bạn còn có thể đặt chúng trong từng thẻ HTML riêng biệt.
48
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;
}
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_n {
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 họa về mã CSS:
body {
background: #ffffff;
/* trang Web sẽ có nền màu trắng */
font-family: Verdana;
/* font chữ mặc định là Verdana */
color: #ff0000;
/* màu chữ mặc định
là màu đỏ */
}
4.3.2.3. Thứ tự xếp lớp:
Tùy 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:
49
- 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.
4.3.3. CSS có tính kế thừa và tính 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 sau:
Body{
Font:Arial, Verdana;
Background:#FF6600;
}
Nhưng trong trường hợp muốn khai báo cho các đối tượng nhỏ hơn nằm trong đó
như Sidebar:
#sidebar{
With:300px;
Padding:10px;
Font:Tahoma,Verdana;
}
Sau đoạn khai báo này thì Sidebar sẽ có thuộc tính:
#sidebar{
background:#FF6600;
with:300px;
padding: 10px;
font: Tohoma, Verdana;
}
Như vậy, Sidebar đã kế thừa thuộc tính background của Body, và trong đó thuộc
tính font là Tahoma đã đè lên thuộc tính font Arial ở lần khai báo trước.
50
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,h4{
Font-family: Tahoma,arial;
Color:#D4D4D4;
}
Thay cho việc định nghĩa riêng biệt cho từng cái:
h1{
Font-family: Tahoma,arial;
Color: #D4D4D4;
}
h2{
Font-family: Tahoma,arial;
Color:#D4D4D4;
}
……………………………
h4{
Font-family: Tahoma,arial;
Color:#D4D4D4;
CHƯƠNG 5. TCP/IP STACK
51
5.1. Cấu trúc của TCP/IP Stack
TCP/IP Stack là ứng dụng của Microchip để tạo một Webserver nhúng, hoặc các
giao thức giao tiếp Enthernet hiện hành. Bao gồm các giao thức truyền dữ liệu TCP,
UDP. Và hỗ trợ các module khác như: IP, ICMP, DHCP, ARP và DNS.
TCP/IP cũng có các Module sử dụng cho lớp ứng dụng như: HTTP cho Web,
SMTP cho gửi và nhận Email, SNMP cho giao thức trạng thái và điều khiển. Telnet
cho điều khiển từ xa, TFTP.
Hình 23. Cấu trúc của Stack.
Hình 24. So sánh cấu trúc TCP/IP tham khảo và cấu trúc Stack của Microchip.
Ngoài những module chính giống như cấu trúc TCP/IP tham khảo thì Microchip
đưa thêm vào Stack 2 module mới đó là StackTask và ARPTask. StackTask quản lý sự
52
vận hành và tất cả các module của Stack. Trong khi đó, ARPTask quản lý các dịch vụ
của lớp ARP ( Address Resolution Protocol).
5.2. Hoạt động của TCP/IP Stack
TCP/IP Stack hoạt động gần giống cấu trúc của hệ điều hành thời gian thực, tức
là các nhiệm vụ sẽ được chia thành các tác vụ ( ở đây là TCP, UDP, Ping,…). Tất cả
hoạt động của TCP/IP sẽ được một đồng hồ chung quản lí theo Time Split. Tức là có
một Timer hệ thống (Timer1), cứ 1 khoảng thời gian ngắn sẽ ngắt (gọi là 1 TICK), khi
bị ngắt, hệ thống sẽ treo lại, ngữ cảnh của tất cả các tác vụ được bộ lập lịch lôi ra, xem
xét tác vụ nào được chạy theo kiểu chia sẻ thời gian (vì không có mức ưu tiên cho tác
vụ). Sau đó cho phép tác vụ đó chiếm quyền thực thi của CPU. Đến TICK tiếp theo, hệ
thống lại treo lại, và lại lôi ngữ cảnh ra, cứ tiếp tục như vậy mãi.
Với cơ chế hoạt động này, vi điều khiển được coi như một lúc có thể vừa thực
hiện TCP, vừa thực hiện UDP, Ping,…vừa có thể là Server và Client cùng một lúc.
Vì vậy, PIC nếu được thiết lập ở chế độ TCP Server/Client sẽ hoạt động đồng
thời cả 2 hoạt động này. Server lắng nghe kết nối từ Client nào đó trên mạng. Còn
Client thì gửi lệnh mở cổng kết nối tới một Server nào đó cũng ở trên mạng, mà ta có
thể xác lập được.
Vì vậy, hoạt động của các tác vụ là độc lập với nhau, không chịu ảnh hưởng lẫn
nhau.
5.2.1. Các file cần thiết
- Main file: Lập trình trên file này.
- ARP.c và ARP.h: Các file này được sử dụng bởi Stack để xác định địa chỉ
MAC kết hợp với địa chỉ IP.
- Physical layer files: Những file này dùng để cho phép một lớp vật lý cụ thể.
- IP.c và IP.h: Các file này cung cấp các chức năng của lớp IP cho Stack.
- Tick.c và Tick.h: Các file này tạo ra một bộ đếm thời gian để thực hiện một số
chức năng thời gian trong Stack.
- HardwareProfile.h: Thiết lập cấu hình cho phần cứng.
- TCPIPConfig.h: Thiết lập cấu hình cho phần mềm.
- MAC.h: Cung cấp các macro và cấu trúc liên quan đến phần cứng của lớp
MAC.
- TCPIP.h: Là file đính kèm trong Stack. Main file phải đính kèm file này.
5.2.2. Cấu trúc APP_CONFIG
53
Hầu hết các biến của ứng dụng liên quan của Stack được lưu trữ trong cấu trúc
APP_CONFIG. Chúng bao gồm địa chỉ, cờ, chuỗi tên NBNS/SSID. Ta sẽ phải khai
báo cho cấu trúc này và khởi tạo những giá trị mặc định của nó được định nghĩa trong
file TCPIPConfig.h.
5.2.3. Main file
5.2.3.1. Khởi tạo
Đầu tiên, cần khởi tạo phần cứng như oscillators, LEDs, LCDs, PPS pins…
Sau đó, ta sẽ gọi các hàm khởi tạo từ thư viện. Đầu tiên là hàm TickInt(), nó khởi
tạo tick timer để quản lý việc định thời của Stack. Sau đó là các hàm khởi tạo được
thêm vào theo yêu cầu khởi tạo mà phần cứng yêu cầu. ví dụ như MPFSInt() để khởi
tạo một cổng SPI (Serial Peripheral Interface Bus) để kết nối với thiết bị lưu trữ bộ
nhớ để lưu trang web.
Khi phần cứng được khởi tạo, ta có thể cấu hình cho Stack. Hầu hết các biết của
ứng dụng liên quan của Stack được lưu trong cấu trúc AppConfig. Lúc này ta có thể
khởi tạo cấu trúc AppConfig theo những giá trị ta chọn.
Kết thúc khởi tạo Stack bằng việc gọi hàm StackInt(). Hàm này sẽ tự động khởi
tạo các hàm cho firmware của các giao thức nếu chúng được định nghĩa trong file
TCPIPConfig.h (ví dụ: TCPInit() cho TCP protocol, HTTPInt() cho HTTP hoặc
HTTP2…).
5.2.3.2 Vòng lặp chính (main loop)
Khi chương trình được khởi tạo, ta sẽ tạo một vòng lặp vô hạn để thực hiện các
nhiệm vụ của ứng dụng. Trong vòng lặp có hai hàm phải được gọi thường xuyên là
StackTask() và StackApplications.
Hàm StackTask sẽ được gọi ở bất kỳ thời điểm nào khi Stack yêu cầu và sẽ điều
khiển sự truyền nhận các gói dữ liệu.
Hàm StackApplications sẽ gọi những module ứng dụng được gọi. Ví dụ nếu sử
dụng HTTP2 server, StackApplications sẽ tự động gọi hàm HTTPServer để thực hiện
bất kỳ nhiệm vụ nào của HTTP đang được đợi.
Trong vòng lặp chính, ta có thể hỏi vòng cho bất kỳ sự thay đổi I/O nào và gọi
bất kỳ một nhiệm vụ đặc biệt của ứng dụng mà bạn thực hiện. Để tránh tràn bộ đệm
trong phần cứng hoặc vi phạm sự định thời của giao thức, ta sẽ thực hiện các nhiệm vụ
trong hàm callback với các trigger định thời cơ sở.
Ta sẽ phải gọi hàm StackTask mỗi khi gọi hàm StackApplications.
54
5.3. Các module của Stack và APIs
Microchip TCP/IP Stack bao gồm rất nhiều module. Để sử dụng được bất kì một
module nào ta phải nắm rõ mục đích của nó và APIs.
5.3.1. Announce
Module này làm cho việc phát hiện ra thiết bị trở nên dễ dàng bằng việc truyền
một tin nhắn UDP trên cổng 30303 bất kỳ khi nào địa chỉ IP thay đổi. Cổng được sử
dụng bởi module Announce có thể được thay đổi được bằng cách sửa ở marco trong
file Announce.c
#define ANNOUNCE_PORT 30303
Giao thức Announce được thiết kế để sử dụng cho phần mềm Ethernet Device
Discoverer và MCHPDetect trên máy tính.
Module Announce bao gồm 2 hàm:
- AnnounceIP: AnnounceIP mở 1 socket UDP và truyền 1 gói tin đến cổng
30303. Nếu máy tính nằm trong cùng 1 subnet và tiện ích đang tìm kiếm 1 gói tin trên
cổng UDP thì nó sẽ nhận gói tin này. Module này có nhiệm vụ thông báo việc thay đổi
IP của mạch. Tin nhắn được hiển thị bằng phần mềm MCHPDetect.exe.
Cú pháp: void AnnounceIP();
- DiscoveryTask: Hàm này được sử dụng liên tục để lắng nghe tin nhắn trên cổng
Announe. Các tin nhắn có thể gửi bằng cách sử dụng công cụ Microchip Device
Discoverer.
Cú pháp: void DiscoveryTask();
Các hàm trên chỉ nên được truy cập bởi chính Stack. Ứng dụng không nên gọi
các hàm trên và thay đổi các biến.
5.3.2. HTTP2 server
Module HTTP2 web server và file MPFS2 liên quan của nó cho phép mạch hoạt
động như một webserver. Nó tạo ra một phương pháp đơn giản để hiển thị thông tin
trạng thái và điều khiển các ứng dụng bằng cách sử dụng một trình duyệt web thông
thường.
Ba thành phần chính phục vụ cho module HTTP2 web server là: web pages,
phần mềm MPFS2.exe và hai file nguồn CustomHTTPApp.c và HTTPPrint.h.
55
Web pages
Bao gồm tất cả file HTML và ảnh kèm theo, CSS Stylesheets, các file JavaScript
cần thiết để hiển thị một trang web.
Module HTTP2 web server bao gồm các tính năng sau:
5.3.2.1. HTTP2 Dynamic Variables
Một trong những tính năng cơ bản nhất là cập nhật cái thông tin trạng thái của
mạch đến người sử dụng thông qua giao diện web. Các lệnh trong mã HTML sẽ thông
báo cho server thực hiện các hàm callbacks tại thời điểm đó.
5.3.2.2. HTTP2 Form Processing
Nhiều ứng dụng cần lấy dữ liệu từ người sử dụng. Một phương pháp thông
thường sử dụng web forms.htm. web forms sử dụng 2 phương pháp GET và POST và
HTTP2 web server hỗ trợ cả 2 phương pháp này.
- Phương pháp GET
 Phương pháp GET sẽ gán dữ liệu vào cuối URL. Dữ liệu này sẽ đứng
sau dấu chấm hỏi (?) ở trên thanh địa chỉ của trình duyệt. (Ví dụ:
http://mchpboard/form.htm?led1=0&led2=1&led3=0). Dữ liệu được gửi
bằng phương pháp GET sẽ tự động được giải mã và được lưu trong biến
mảng curHTTP.data. Vì dữ liệu này được lưu trong bộ nhớ, cho nên nó
được giới hạn bởi kích thước của biến mảng curHTTP.data, mặc định là
100 bytes.
 Hàm callback HTTPExecuteGet sẽ xử lý dữ liệu này và thực hiện một số
nhiệm vụ cần thiết. Hai hàm HTTPGetArg và HTTPGetROMArg giúp
dễ dàng lấy dữ liệu cho quá trình xử lý.
- Phương pháp POST
 Phương pháp POST truyền dữ liệu sau khi các header yêu cầu đã được
gửi. Dữ liệu không được hiển thị trong thanh địa chỉ của trình duyệt như
phương pháp GET mà chỉ được nhìn thấy bởi một công cụ bắt gói tin.
Mặc dù vậy, phương pháp này sử dụng cùng cách mã hóa URL giống
phương pháp GET.
 HTTP2 server không thực hiện bất kỳ sự phân tích trước các dữ liệu này.
Tất cả dữ liệu POST nằm trong bộ đệm TCP, vì vậy các ứng dụng sẽ
56
truy cập trực tiếp vào bộ đệm TCP để lấy và giải mã nó. Các hàm
HTTPReadPostName và HTTPReadPostValue sẽ thực hiện công việc
này.
5.3.2.3. HTTP2 Authentication
Các giao thức HTTP cung cấp một phương pháp cho các máy chủ yêu cầu một
tên người dùng và mật khẩu của khách hàng trước khi cấp quyền truy cập đến trang
đó.
Chức năng xác thực này được hỗ trợ bởi hai hàm callback. Thứ nhất, là hàm
HTTPNeedsAuth, xác định xem trang web hiện tại có yêu cầu sự xác thực hay không.
Thứ hai, là hàm HTTPVerifyAuth, so sánh tên người dùng và mật khẩu với một danh
sách được chấp nhận, nếu đúng sẽ cho phép truy cập, nếu sai sẽ bị từ chối truy cập.
- Yêu cầu xác thực
 Đầu tiên, hàm HTTPNeedsAuth sẽ được gọi để xác định xem trang có
yêu cầu password hay không. Hàm này sẽ trả về giá trị để hướng dẫn
HTTP server phải thực hiện như thế nào. Hàm trả về giá trị 0x80 hoặc
cao hơn để cho phép truy cập vô điều kiện và trả về giá trị 0x79 hoặc
thấp hơn để yêu cầu nhập lại tên người sử dụng và password. Giá trị trả
lại được lưu trong curHTTP.isAuthorized để nó có thể được truy cập bởi
các hàm callback trong lần tiếp theo.
- Thông tin xác thực: Hàm HTTPCheckAuth xác định xem tên và password mà
người dùng cung cấp có hợp lệ để truy cập hay không. Giá trị trả lại được lưu trong
curHTTP.isAuthorized để nó có thể được truy cập bởi các hàm callback trong lần tiếp
theo.
5.4. Cấu hình cho Stack
5.4.1. Cấu hình cho phần cứng
Hầu như việc cấu hình phần cứng được thực hiện bằng cách thêm dấu // vào
trước các dòng lệnh để làm mất tác dụng của những dòng lệnh hoặc bỏ // đi để Mplab
thực hiện các dòng lệnh đó, định nghĩa một loạt các macro ở phần đầu của file
HardwareProfile.h.
Trong hầu hết các trường hợp, các macro dùng để khởi tạo các mạch demo phải
giống như các macro dùng để định nghĩa vi điều khiển sử dụng trong mạch. Trong file
HardwareProfile.h mặc định đã bao gồm các project cho một số mạch có sẵn của
57
Microchip, được giới hạn bằng các câu lệnh tiền xử lý. Ví dụ với Explorer 16 sẽ bắt
đầu bằng macro "#elif defined (EXPLORER_16)" và tiếp tục cho đến những câu lệnh
tiền xử lý cho một mạch demo khác.
5.4.1.1. Tần số
Nhiều hoạt động của TCP/IP phụ thuộc vào thời gian. Để thiết lập giá trị xung
clock ta thay thế giá trị của xung clock trong macro trong file HardwareProfile.h:
#define GetSystemClock() xxxxxxxxxxxxxxx
Ngoài ra còn 2 macro thiết lập xung clock khác:
 GetInstructionClock () và GetPeripheralClock () cung cấp tần số lệnh và
tần số cho thiết bị ngoại vi của vi điều khiển.
5.4.1.2. Bộ nhớ ngoài
Bộ nhớ ngoài dùng để lưu trữ Web nhúng, Web ở đây định dạng http và http2.
Bộ nhớ dùng để lưu trữ có thể có 3 loại: SD/MMD (Memory Card), EEPROM, Flash
Serial.
Nếu muốn dùng Web nhúng, ta có thể lưu trữ vào bộ nhớ nội. Nội dung của trang
Web sẽ được nhúng trực tiếp vào PIC, ở đây PIC sẽ đóng vai trò là Server.
5.4.2. Địa chỉ
5.4.2.1. Địa chỉ MAC
6 byte địa chỉ MAC cung cấp địa chỉ cho lớp giao thức Media Access Control
của TCP/IP Stack. Địa chỉ MAC là địa chỉ cố định gắn liền với phần cứng.
Địa chỉ MAC được định nghĩa trong file TCPIPConfig.h. Có 6 macro được định
nghĩa trong file này để thiết lập địa chỉ MAC:
#define MY_DEFAULT_MAC_BYTE1 (0x00)
#define MY_DEFAULT_MAC_BYTE2 (0x04)
#define MY_DEFAULT_MAC_BYTE3 (0xA3)
#define MY_DEFAULT_MAC_BYTE4 (0x00)
#define MY_DEFAULT_MAC_BYTE5 (0x00)
#define MY_DEFAULT_MAC_BYTE6 (0x00)
Điều khiển thiết bị qua Internet
Điều khiển thiết bị qua Internet
Điều khiển thiết bị qua Internet
Điều khiển thiết bị qua Internet
Điều khiển thiết bị qua Internet
Điều khiển thiết bị qua Internet
Điều khiển thiết bị qua Internet
Điều khiển thiết bị qua Internet
Điều khiển thiết bị qua Internet

Mais conteúdo relacionado

Mais procurados

Thiết kế động cơ điện không đồng bộ ba pha rôto lồng sóc (Kèm file Autocad)
Thiết kế động cơ điện không đồng bộ ba pha rôto lồng sóc (Kèm file Autocad) Thiết kế động cơ điện không đồng bộ ba pha rôto lồng sóc (Kèm file Autocad)
Thiết kế động cơ điện không đồng bộ ba pha rôto lồng sóc (Kèm file Autocad) nataliej4
 
Thiết kế và chế tạo robot Scara phân loại bánh răng.pdf
Thiết kế và chế tạo robot Scara phân loại bánh răng.pdfThiết kế và chế tạo robot Scara phân loại bánh răng.pdf
Thiết kế và chế tạo robot Scara phân loại bánh răng.pdfMan_Ebook
 
Mô phỏng động cơ điện 1 chiều
Mô phỏng động cơ điện 1 chiềuMô phỏng động cơ điện 1 chiều
Mô phỏng động cơ điện 1 chiềuThanh Hoa
 
ĐỒ ÁN - Nghiên cứu thiết kế hệ thống điều khiển đóng mở cửa tự động thông min...
ĐỒ ÁN - Nghiên cứu thiết kế hệ thống điều khiển đóng mở cửa tự động thông min...ĐỒ ÁN - Nghiên cứu thiết kế hệ thống điều khiển đóng mở cửa tự động thông min...
ĐỒ ÁN - Nghiên cứu thiết kế hệ thống điều khiển đóng mở cửa tự động thông min...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...Chu Quang Thảo
 
[Báo cáo] Bài tập lớn Xử lý tín hiệu số: Thiết kế bộ lọc FIR
[Báo cáo] Bài tập lớn Xử lý tín hiệu số: Thiết kế bộ lọc FIR[Báo cáo] Bài tập lớn Xử lý tín hiệu số: Thiết kế bộ lọc FIR
[Báo cáo] Bài tập lớn Xử lý tín hiệu số: Thiết kế bộ lọc FIRThe Nguyen Manh
 
Bài giảng kỹ thuật điều khiển tự động
Bài giảng kỹ thuật điều khiển tự độngBài giảng kỹ thuật điều khiển tự động
Bài giảng kỹ thuật điều khiển tự độngNguyễn Nam Phóng
 

Mais procurados (20)

Đề tài: Thiết kế hệ thống điều khiển bơm nước sử dụng PLC, HOT
Đề tài: Thiết kế hệ thống điều khiển bơm nước sử dụng PLC, HOTĐề tài: Thiết kế hệ thống điều khiển bơm nước sử dụng PLC, HOT
Đề tài: Thiết kế hệ thống điều khiển bơm nước sử dụng PLC, HOT
 
Đề tài: Bộ điều khiển trượt cho tay máy Robot 2 bậc tự do, HAY
Đề tài: Bộ điều khiển trượt cho tay máy Robot 2 bậc tự do, HAYĐề tài: Bộ điều khiển trượt cho tay máy Robot 2 bậc tự do, HAY
Đề tài: Bộ điều khiển trượt cho tay máy Robot 2 bậc tự do, HAY
 
Đề tài: Nghiên cứu thiết kế mạch đo nhiệt độ dùng LM35, HAY
Đề tài: Nghiên cứu thiết kế mạch đo nhiệt độ dùng LM35, HAYĐề tài: Nghiên cứu thiết kế mạch đo nhiệt độ dùng LM35, HAY
Đề tài: Nghiên cứu thiết kế mạch đo nhiệt độ dùng LM35, HAY
 
Đề tài: Mô hình điều khiển, giám sát bãi giữ xe ô tô tự động, 9đ
Đề tài: Mô hình điều khiển, giám sát bãi giữ xe ô tô tự động, 9đĐề tài: Mô hình điều khiển, giám sát bãi giữ xe ô tô tự động, 9đ
Đề tài: Mô hình điều khiển, giám sát bãi giữ xe ô tô tự động, 9đ
 
Thiết kế động cơ điện không đồng bộ ba pha rôto lồng sóc (Kèm file Autocad)
Thiết kế động cơ điện không đồng bộ ba pha rôto lồng sóc (Kèm file Autocad) Thiết kế động cơ điện không đồng bộ ba pha rôto lồng sóc (Kèm file Autocad)
Thiết kế động cơ điện không đồng bộ ba pha rôto lồng sóc (Kèm file Autocad)
 
Bai giang ROBOT cong nghiep
Bai giang ROBOT cong nghiepBai giang ROBOT cong nghiep
Bai giang ROBOT cong nghiep
 
Đề tài: Thiết kế mạch điều khiển máy bơm nước tự động, HAY
Đề tài: Thiết kế mạch điều khiển máy bơm nước tự động, HAYĐề tài: Thiết kế mạch điều khiển máy bơm nước tự động, HAY
Đề tài: Thiết kế mạch điều khiển máy bơm nước tự động, HAY
 
Đề tài: Mô hình đếm, phân loại sản phẩm theo cân nặng màu sắc
Đề tài: Mô hình đếm, phân loại sản phẩm theo cân nặng màu sắcĐề tài: Mô hình đếm, phân loại sản phẩm theo cân nặng màu sắc
Đề tài: Mô hình đếm, phân loại sản phẩm theo cân nặng màu sắc
 
Thiết kế và chế tạo robot Scara phân loại bánh răng.pdf
Thiết kế và chế tạo robot Scara phân loại bánh răng.pdfThiết kế và chế tạo robot Scara phân loại bánh răng.pdf
Thiết kế và chế tạo robot Scara phân loại bánh răng.pdf
 
Mô phỏng động cơ điện 1 chiều
Mô phỏng động cơ điện 1 chiềuMô phỏng động cơ điện 1 chiều
Mô phỏng động cơ điện 1 chiều
 
ĐỒ ÁN - Nghiên cứu thiết kế hệ thống điều khiển đóng mở cửa tự động thông min...
ĐỒ ÁN - Nghiên cứu thiết kế hệ thống điều khiển đóng mở cửa tự động thông min...ĐỒ ÁN - Nghiên cứu thiết kế hệ thống điều khiển đóng mở cửa tự động thông min...
ĐỒ ÁN - Nghiên cứu thiết kế hệ thống điều khiển đóng mở cửa tự động thông min...
 
Đề tài: Động cơ không đồng bộ ba pha, HAY, 9đ
Đề tài: Động cơ không đồng bộ ba pha, HAY, 9đĐề tài: Động cơ không đồng bộ ba pha, HAY, 9đ
Đề tài: Động cơ không đồng bộ ba pha, HAY, 9đ
 
Đề tài: Thiết kế hệ thống phân loại sản phẩm ứng dụng PLC, HOT
Đề tài: Thiết kế hệ thống phân loại sản phẩm ứng dụng PLC, HOTĐề tài: Thiết kế hệ thống phân loại sản phẩm ứng dụng PLC, HOT
Đề tài: Thiết kế hệ thống phân loại sản phẩm ứng dụng PLC, HOT
 
Bien doi lapalce
Bien doi lapalceBien doi lapalce
Bien doi lapalce
 
Luận văn: Nghiên cứu thiết kế bộ chuyển nguồn tự động, HAY
Luận văn: Nghiên cứu thiết kế bộ chuyển nguồn tự động, HAYLuận văn: Nghiên cứu thiết kế bộ chuyển nguồn tự động, HAY
Luận văn: Nghiên cứu thiết kế bộ chuyển nguồn tự động, HAY
 
Đề tài: Hệ thống cảnh báo hỏa hoạn và khí độc nguy hiểm, 9đ
Đề tài: Hệ thống cảnh báo hỏa hoạn và khí độc nguy hiểm, 9đĐề tài: Hệ thống cảnh báo hỏa hoạn và khí độc nguy hiểm, 9đ
Đề tài: Hệ thống cảnh báo hỏa hoạn và khí độc nguy hiểm, 9đ
 
Đề tài: Ứng dụng xử lý ảnh thiết kế mạch chống trộm thông minh
Đề tài: Ứng dụng xử lý ảnh thiết kế mạch chống trộm thông minhĐề tài: Ứng dụng xử lý ảnh thiết kế mạch chống trộm thông minh
Đề tài: Ứng dụng xử lý ảnh thiết kế mạch chống trộm thông minh
 
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...
 
[Báo cáo] Bài tập lớn Xử lý tín hiệu số: Thiết kế bộ lọc FIR
[Báo cáo] Bài tập lớn Xử lý tín hiệu số: Thiết kế bộ lọc FIR[Báo cáo] Bài tập lớn Xử lý tín hiệu số: Thiết kế bộ lọc FIR
[Báo cáo] Bài tập lớn Xử lý tín hiệu số: Thiết kế bộ lọc FIR
 
Bài giảng kỹ thuật điều khiển tự động
Bài giảng kỹ thuật điều khiển tự độngBài giảng kỹ thuật điều khiển tự động
Bài giảng kỹ thuật điều khiển tự động
 

Destaque

File báo cáo đồ án smarthome
File báo cáo đồ án smarthomeFile báo cáo đồ án smarthome
File báo cáo đồ án smarthomeKim Long
 
Ngôi nhà thông minh
Ngôi nhà thông minhNgôi nhà thông minh
Ngôi nhà thông minhLê Thịnh
 
Giới thiệu về Arduino - Arduino360
Giới thiệu về Arduino - Arduino360Giới thiệu về Arduino - Arduino360
Giới thiệu về Arduino - Arduino360Học Tự
 
Giới thiệu arduino_Cách sử dụng Proteus để mô phỏng làm việc với Arduino
Giới thiệu arduino_Cách sử dụng Proteus để mô phỏng làm việc với ArduinoGiới thiệu arduino_Cách sử dụng Proteus để mô phỏng làm việc với Arduino
Giới thiệu arduino_Cách sử dụng Proteus để mô phỏng làm việc với ArduinoHoa Trương Việt
 
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG ĐO ...
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG  ĐO ...Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG  ĐO ...
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG ĐO ...Freelancer
 
Hệ thống bãi giữ xe ô tôt tự động ( pdf)
Hệ thống bãi giữ xe ô tôt tự động ( pdf)Hệ thống bãi giữ xe ô tôt tự động ( pdf)
Hệ thống bãi giữ xe ô tôt tự động ( pdf)Nguyễn Quang Đạo
 
Điều khiển động cơ sử dụng atmega16
Điều khiển động cơ sử dụng atmega16Điều khiển động cơ sử dụng atmega16
Điều khiển động cơ sử dụng atmega16Pham Hoang
 
Smart Home technologies
Smart Home technologiesSmart Home technologies
Smart Home technologiesloggcity
 
Cong nghe bluetooth_va_ung_dung
Cong nghe bluetooth_va_ung_dungCong nghe bluetooth_va_ung_dung
Cong nghe bluetooth_va_ung_dungViet Nam
 
Những thiết bị an ninh giám sát thông minh cần thiết nhất
Những thiết bị an ninh giám sát thông minh cần thiết nhấtNhững thiết bị an ninh giám sát thông minh cần thiết nhất
Những thiết bị an ninh giám sát thông minh cần thiết nhấtHậu Phong
 
Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr Ky Nguyen Ad
 
Hướng dẫn giao tiếp serial port sử dụng vb
Hướng dẫn giao tiếp serial port  sử dụng vbHướng dẫn giao tiếp serial port  sử dụng vb
Hướng dẫn giao tiếp serial port sử dụng vbCong Pho
 
Code chuyển từ lịch dương sang lịch âm
Code chuyển từ lịch dương sang lịch âmCode chuyển từ lịch dương sang lịch âm
Code chuyển từ lịch dương sang lịch âmFreelancer
 
Giới thiệu phần mềm bán hàng, quản lý kho hàng VNUNi® SIC
Giới thiệu phần mềm bán hàng, quản lý kho hàng VNUNi® SICGiới thiệu phần mềm bán hàng, quản lý kho hàng VNUNi® SIC
Giới thiệu phần mềm bán hàng, quản lý kho hàng VNUNi® SICTuan Hai
 
CONG NGHE PHAN MEM
CONG NGHE PHAN MEMCONG NGHE PHAN MEM
CONG NGHE PHAN MEMduc phong
 
Hệ thống nhà thông minh Vinteligroup
Hệ thống nhà thông minh VinteligroupHệ thống nhà thông minh Vinteligroup
Hệ thống nhà thông minh VinteligroupVinteli Group
 
Đề tài: tìm hiểu về công nghệ nhận dạng tần số sóng vô tuyến RFID và ứng dụng...
Đề tài: tìm hiểu về công nghệ nhận dạng tần số sóng vô tuyến RFID và ứng dụng...Đề tài: tìm hiểu về công nghệ nhận dạng tần số sóng vô tuyến RFID và ứng dụng...
Đề tài: tìm hiểu về công nghệ nhận dạng tần số sóng vô tuyến RFID và ứng dụng...Jenny Hương
 

Destaque (19)

File báo cáo đồ án smarthome
File báo cáo đồ án smarthomeFile báo cáo đồ án smarthome
File báo cáo đồ án smarthome
 
Ngôi nhà thông minh
Ngôi nhà thông minhNgôi nhà thông minh
Ngôi nhà thông minh
 
Giới thiệu về Arduino - Arduino360
Giới thiệu về Arduino - Arduino360Giới thiệu về Arduino - Arduino360
Giới thiệu về Arduino - Arduino360
 
Giới thiệu arduino_Cách sử dụng Proteus để mô phỏng làm việc với Arduino
Giới thiệu arduino_Cách sử dụng Proteus để mô phỏng làm việc với ArduinoGiới thiệu arduino_Cách sử dụng Proteus để mô phỏng làm việc với Arduino
Giới thiệu arduino_Cách sử dụng Proteus để mô phỏng làm việc với Arduino
 
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG ĐO ...
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG  ĐO ...Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG  ĐO ...
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG ĐO ...
 
Hệ thống bãi giữ xe ô tôt tự động ( pdf)
Hệ thống bãi giữ xe ô tôt tự động ( pdf)Hệ thống bãi giữ xe ô tôt tự động ( pdf)
Hệ thống bãi giữ xe ô tôt tự động ( pdf)
 
Điều khiển động cơ sử dụng atmega16
Điều khiển động cơ sử dụng atmega16Điều khiển động cơ sử dụng atmega16
Điều khiển động cơ sử dụng atmega16
 
Smart Home technologies
Smart Home technologiesSmart Home technologies
Smart Home technologies
 
Cong nghe bluetooth_va_ung_dung
Cong nghe bluetooth_va_ung_dungCong nghe bluetooth_va_ung_dung
Cong nghe bluetooth_va_ung_dung
 
Những thiết bị an ninh giám sát thông minh cần thiết nhất
Những thiết bị an ninh giám sát thông minh cần thiết nhấtNhững thiết bị an ninh giám sát thông minh cần thiết nhất
Những thiết bị an ninh giám sát thông minh cần thiết nhất
 
Su dung orcad 9.2
Su dung orcad 9.2Su dung orcad 9.2
Su dung orcad 9.2
 
Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr
 
Hướng dẫn giao tiếp serial port sử dụng vb
Hướng dẫn giao tiếp serial port  sử dụng vbHướng dẫn giao tiếp serial port  sử dụng vb
Hướng dẫn giao tiếp serial port sử dụng vb
 
Code chuyển từ lịch dương sang lịch âm
Code chuyển từ lịch dương sang lịch âmCode chuyển từ lịch dương sang lịch âm
Code chuyển từ lịch dương sang lịch âm
 
Giới thiệu phần mềm bán hàng, quản lý kho hàng VNUNi® SIC
Giới thiệu phần mềm bán hàng, quản lý kho hàng VNUNi® SICGiới thiệu phần mềm bán hàng, quản lý kho hàng VNUNi® SIC
Giới thiệu phần mềm bán hàng, quản lý kho hàng VNUNi® SIC
 
CONG NGHE PHAN MEM
CONG NGHE PHAN MEMCONG NGHE PHAN MEM
CONG NGHE PHAN MEM
 
Hệ thống nhà thông minh Vinteligroup
Hệ thống nhà thông minh VinteligroupHệ thống nhà thông minh Vinteligroup
Hệ thống nhà thông minh Vinteligroup
 
Thiết kế mạng LAN cho công ty 2 tầng
Thiết kế mạng LAN cho công ty 2 tầng Thiết kế mạng LAN cho công ty 2 tầng
Thiết kế mạng LAN cho công ty 2 tầng
 
Đề tài: tìm hiểu về công nghệ nhận dạng tần số sóng vô tuyến RFID và ứng dụng...
Đề tài: tìm hiểu về công nghệ nhận dạng tần số sóng vô tuyến RFID và ứng dụng...Đề tài: tìm hiểu về công nghệ nhận dạng tần số sóng vô tuyến RFID và ứng dụng...
Đề tài: tìm hiểu về công nghệ nhận dạng tần số sóng vô tuyến RFID và ứng dụng...
 

Semelhante a Điều khiển thiết bị qua Internet

VẬN DỤNG PHƯƠNG PHÁP DẠY HỌC PHÂN HÓA TRONG DẠY HỌC HÓA HỌC (CHƯƠNG HALOGEN –...
VẬN DỤNG PHƯƠNG PHÁP DẠY HỌC PHÂN HÓA TRONG DẠY HỌC HÓA HỌC (CHƯƠNG HALOGEN –...VẬN DỤNG PHƯƠNG PHÁP DẠY HỌC PHÂN HÓA TRONG DẠY HỌC HÓA HỌC (CHƯƠNG HALOGEN –...
VẬN DỤNG PHƯƠNG PHÁP DẠY HỌC PHÂN HÓA TRONG DẠY HỌC HÓA HỌC (CHƯƠNG HALOGEN –...Nguyen Thanh Tu Collection
 
SINH VIÊN VÀ MẠNG XÃ HỘI FACEBOOK - MỘT PHÂN TÍCH VỀ SỰ TIẾN TRIỂN VỐN XÃ HỘI...
SINH VIÊN VÀ MẠNG XÃ HỘI FACEBOOK - MỘT PHÂN TÍCH VỀ SỰ TIẾN TRIỂN VỐN XÃ HỘI...SINH VIÊN VÀ MẠNG XÃ HỘI FACEBOOK - MỘT PHÂN TÍCH VỀ SỰ TIẾN TRIỂN VỐN XÃ HỘI...
SINH VIÊN VÀ MẠNG XÃ HỘI FACEBOOK - MỘT PHÂN TÍCH VỀ SỰ TIẾN TRIỂN VỐN XÃ HỘI...NuioKila
 
Phát triển loại hình du lịch Tâm Linh tại khu du lịch quốc gia Tam Chúc Hà Nam
Phát triển loại hình du lịch Tâm Linh tại khu du lịch quốc gia Tam Chúc Hà NamPhát triển loại hình du lịch Tâm Linh tại khu du lịch quốc gia Tam Chúc Hà Nam
Phát triển loại hình du lịch Tâm Linh tại khu du lịch quốc gia Tam Chúc Hà NamDịch vụ Làm Luận Văn 0936885877
 
Khóa Luận Giải Pháp Phát Triển Du Lịch Nông Nghiệp Ở Huyện Mù Cang Chải – Yên...
Khóa Luận Giải Pháp Phát Triển Du Lịch Nông Nghiệp Ở Huyện Mù Cang Chải – Yên...Khóa Luận Giải Pháp Phát Triển Du Lịch Nông Nghiệp Ở Huyện Mù Cang Chải – Yên...
Khóa Luận Giải Pháp Phát Triển Du Lịch Nông Nghiệp Ở Huyện Mù Cang Chải – Yên...sividocz
 
NGHIÊN CỨU XÂY DỰNG HỆ THỐNG HỖ TRỢ HỌC SINH THI TRẮC NGHIỆM BẬC THPT edfc5706
NGHIÊN CỨU XÂY DỰNG HỆ THỐNG HỖ TRỢ HỌC SINH THI TRẮC NGHIỆM BẬC THPT edfc5706NGHIÊN CỨU XÂY DỰNG HỆ THỐNG HỖ TRỢ HỌC SINH THI TRẮC NGHIỆM BẬC THPT edfc5706
NGHIÊN CỨU XÂY DỰNG HỆ THỐNG HỖ TRỢ HỌC SINH THI TRẮC NGHIỆM BẬC THPT edfc5706nataliej4
 
Th s31 011_thực hiện chương trình hoạt động giáo dục ngoài giờ lên lớp ở trườ...
Th s31 011_thực hiện chương trình hoạt động giáo dục ngoài giờ lên lớp ở trườ...Th s31 011_thực hiện chương trình hoạt động giáo dục ngoài giờ lên lớp ở trườ...
Th s31 011_thực hiện chương trình hoạt động giáo dục ngoài giờ lên lớp ở trườ...https://www.facebook.com/garmentspace
 
Hoạt Động Công Tác Xã Hội Đối Với Nạn Nhân Bị Bạo Lực Học Đường Tại Các Trườn...
Hoạt Động Công Tác Xã Hội Đối Với Nạn Nhân Bị Bạo Lực Học Đường Tại Các Trườn...Hoạt Động Công Tác Xã Hội Đối Với Nạn Nhân Bị Bạo Lực Học Đường Tại Các Trườn...
Hoạt Động Công Tác Xã Hội Đối Với Nạn Nhân Bị Bạo Lực Học Đường Tại Các Trườn...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Luận văn: Phát triển năng lực vận dụng kiến thức vào thực tiễn cho học sinh t...
Luận văn: Phát triển năng lực vận dụng kiến thức vào thực tiễn cho học sinh t...Luận văn: Phát triển năng lực vận dụng kiến thức vào thực tiễn cho học sinh t...
Luận văn: Phát triển năng lực vận dụng kiến thức vào thực tiễn cho học sinh t...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Cac nhan to_cua_chat_luong_dich_vu_dao_tao_anh_huong_den_su_hai_long_cua_hoc_...
Cac nhan to_cua_chat_luong_dich_vu_dao_tao_anh_huong_den_su_hai_long_cua_hoc_...Cac nhan to_cua_chat_luong_dich_vu_dao_tao_anh_huong_den_su_hai_long_cua_hoc_...
Cac nhan to_cua_chat_luong_dich_vu_dao_tao_anh_huong_den_su_hai_long_cua_hoc_...huyendv
 
Nghiên cứu mức độ hài lòng của sinh viên về chất lượng đào tạo tại trường đại...
Nghiên cứu mức độ hài lòng của sinh viên về chất lượng đào tạo tại trường đại...Nghiên cứu mức độ hài lòng của sinh viên về chất lượng đào tạo tại trường đại...
Nghiên cứu mức độ hài lòng của sinh viên về chất lượng đào tạo tại trường đại...Ngọc Hưng
 
Thiet ke tai_lieu_tu_hoc_co_huong_dan_theo_modun_nham_ho_tro_viec_tu_hoc_cho_...
Thiet ke tai_lieu_tu_hoc_co_huong_dan_theo_modun_nham_ho_tro_viec_tu_hoc_cho_...Thiet ke tai_lieu_tu_hoc_co_huong_dan_theo_modun_nham_ho_tro_viec_tu_hoc_cho_...
Thiet ke tai_lieu_tu_hoc_co_huong_dan_theo_modun_nham_ho_tro_viec_tu_hoc_cho_...Garment Space Blog0
 
Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...
Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...
Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...https://www.facebook.com/garmentspace
 

Semelhante a Điều khiển thiết bị qua Internet (20)

VẬN DỤNG PHƯƠNG PHÁP DẠY HỌC PHÂN HÓA TRONG DẠY HỌC HÓA HỌC (CHƯƠNG HALOGEN –...
VẬN DỤNG PHƯƠNG PHÁP DẠY HỌC PHÂN HÓA TRONG DẠY HỌC HÓA HỌC (CHƯƠNG HALOGEN –...VẬN DỤNG PHƯƠNG PHÁP DẠY HỌC PHÂN HÓA TRONG DẠY HỌC HÓA HỌC (CHƯƠNG HALOGEN –...
VẬN DỤNG PHƯƠNG PHÁP DẠY HỌC PHÂN HÓA TRONG DẠY HỌC HÓA HỌC (CHƯƠNG HALOGEN –...
 
SINH VIÊN VÀ MẠNG XÃ HỘI FACEBOOK - MỘT PHÂN TÍCH VỀ SỰ TIẾN TRIỂN VỐN XÃ HỘI...
SINH VIÊN VÀ MẠNG XÃ HỘI FACEBOOK - MỘT PHÂN TÍCH VỀ SỰ TIẾN TRIỂN VỐN XÃ HỘI...SINH VIÊN VÀ MẠNG XÃ HỘI FACEBOOK - MỘT PHÂN TÍCH VỀ SỰ TIẾN TRIỂN VỐN XÃ HỘI...
SINH VIÊN VÀ MẠNG XÃ HỘI FACEBOOK - MỘT PHÂN TÍCH VỀ SỰ TIẾN TRIỂN VỐN XÃ HỘI...
 
Luận Văn Thạc Sĩ Giáo Dục Học Chuyên Ngành Vật Lý
Luận Văn Thạc Sĩ Giáo Dục Học Chuyên Ngành Vật LýLuận Văn Thạc Sĩ Giáo Dục Học Chuyên Ngành Vật Lý
Luận Văn Thạc Sĩ Giáo Dục Học Chuyên Ngành Vật Lý
 
Khóa luận: Biện pháp giúp học sinh trung bình yếu học tốt, 9 ĐIỂM
Khóa luận: Biện pháp giúp học sinh trung bình yếu học tốt, 9 ĐIỂMKhóa luận: Biện pháp giúp học sinh trung bình yếu học tốt, 9 ĐIỂM
Khóa luận: Biện pháp giúp học sinh trung bình yếu học tốt, 9 ĐIỂM
 
Phát triển loại hình du lịch Tâm Linh tại khu du lịch quốc gia Tam Chúc Hà Nam
Phát triển loại hình du lịch Tâm Linh tại khu du lịch quốc gia Tam Chúc Hà NamPhát triển loại hình du lịch Tâm Linh tại khu du lịch quốc gia Tam Chúc Hà Nam
Phát triển loại hình du lịch Tâm Linh tại khu du lịch quốc gia Tam Chúc Hà Nam
 
Khóa Luận Giải Pháp Phát Triển Du Lịch Nông Nghiệp Ở Huyện Mù Cang Chải – Yên...
Khóa Luận Giải Pháp Phát Triển Du Lịch Nông Nghiệp Ở Huyện Mù Cang Chải – Yên...Khóa Luận Giải Pháp Phát Triển Du Lịch Nông Nghiệp Ở Huyện Mù Cang Chải – Yên...
Khóa Luận Giải Pháp Phát Triển Du Lịch Nông Nghiệp Ở Huyện Mù Cang Chải – Yên...
 
NGHIÊN CỨU XÂY DỰNG HỆ THỐNG HỖ TRỢ HỌC SINH THI TRẮC NGHIỆM BẬC THPT edfc5706
NGHIÊN CỨU XÂY DỰNG HỆ THỐNG HỖ TRỢ HỌC SINH THI TRẮC NGHIỆM BẬC THPT edfc5706NGHIÊN CỨU XÂY DỰNG HỆ THỐNG HỖ TRỢ HỌC SINH THI TRẮC NGHIỆM BẬC THPT edfc5706
NGHIÊN CỨU XÂY DỰNG HỆ THỐNG HỖ TRỢ HỌC SINH THI TRẮC NGHIỆM BẬC THPT edfc5706
 
Đào Tạo Đội Ngũ Giảng Viên Tại Trường Cao Đẳng Nghề Cơ Điện Hà Nội.doc
Đào Tạo Đội Ngũ Giảng Viên Tại Trường Cao Đẳng Nghề Cơ Điện Hà Nội.docĐào Tạo Đội Ngũ Giảng Viên Tại Trường Cao Đẳng Nghề Cơ Điện Hà Nội.doc
Đào Tạo Đội Ngũ Giảng Viên Tại Trường Cao Đẳng Nghề Cơ Điện Hà Nội.doc
 
Th s31 011_thực hiện chương trình hoạt động giáo dục ngoài giờ lên lớp ở trườ...
Th s31 011_thực hiện chương trình hoạt động giáo dục ngoài giờ lên lớp ở trườ...Th s31 011_thực hiện chương trình hoạt động giáo dục ngoài giờ lên lớp ở trườ...
Th s31 011_thực hiện chương trình hoạt động giáo dục ngoài giờ lên lớp ở trườ...
 
Luận văn: Hệ thống bài tập phần Cơ sở lý thuyết cấu tạo chất, 9đ
Luận văn: Hệ thống bài tập phần Cơ sở lý thuyết cấu tạo chất, 9đLuận văn: Hệ thống bài tập phần Cơ sở lý thuyết cấu tạo chất, 9đ
Luận văn: Hệ thống bài tập phần Cơ sở lý thuyết cấu tạo chất, 9đ
 
Hoạt Động Công Tác Xã Hội Đối Với Nạn Nhân Bị Bạo Lực Học Đường Tại Các Trườn...
Hoạt Động Công Tác Xã Hội Đối Với Nạn Nhân Bị Bạo Lực Học Đường Tại Các Trườn...Hoạt Động Công Tác Xã Hội Đối Với Nạn Nhân Bị Bạo Lực Học Đường Tại Các Trườn...
Hoạt Động Công Tác Xã Hội Đối Với Nạn Nhân Bị Bạo Lực Học Đường Tại Các Trườn...
 
Luận văn: Phát triển năng lực vận dụng kiến thức vào thực tiễn cho học sinh t...
Luận văn: Phát triển năng lực vận dụng kiến thức vào thực tiễn cho học sinh t...Luận văn: Phát triển năng lực vận dụng kiến thức vào thực tiễn cho học sinh t...
Luận văn: Phát triển năng lực vận dụng kiến thức vào thực tiễn cho học sinh t...
 
Luận văn: Vận dụng kiến thức vào thực tiễn cho học sinh tiểu học
Luận văn: Vận dụng kiến thức vào thực tiễn cho học sinh tiểu họcLuận văn: Vận dụng kiến thức vào thực tiễn cho học sinh tiểu học
Luận văn: Vận dụng kiến thức vào thực tiễn cho học sinh tiểu học
 
Đề tài: Áp dụng Design Pattern trong phát triển phần mềm, 9đ
Đề tài: Áp dụng Design Pattern trong phát triển phần mềm, 9đĐề tài: Áp dụng Design Pattern trong phát triển phần mềm, 9đ
Đề tài: Áp dụng Design Pattern trong phát triển phần mềm, 9đ
 
Đề tài: Áp dụng Design Pattern trong phát triển phần mềm, HOT
Đề tài: Áp dụng Design Pattern trong phát triển phần mềm, HOTĐề tài: Áp dụng Design Pattern trong phát triển phần mềm, HOT
Đề tài: Áp dụng Design Pattern trong phát triển phần mềm, HOT
 
Cac nhan to_cua_chat_luong_dich_vu_dao_tao_anh_huong_den_su_hai_long_cua_hoc_...
Cac nhan to_cua_chat_luong_dich_vu_dao_tao_anh_huong_den_su_hai_long_cua_hoc_...Cac nhan to_cua_chat_luong_dich_vu_dao_tao_anh_huong_den_su_hai_long_cua_hoc_...
Cac nhan to_cua_chat_luong_dich_vu_dao_tao_anh_huong_den_su_hai_long_cua_hoc_...
 
Nghiên cứu mức độ hài lòng của sinh viên về chất lượng đào tạo tại trường đại...
Nghiên cứu mức độ hài lòng của sinh viên về chất lượng đào tạo tại trường đại...Nghiên cứu mức độ hài lòng của sinh viên về chất lượng đào tạo tại trường đại...
Nghiên cứu mức độ hài lòng của sinh viên về chất lượng đào tạo tại trường đại...
 
Thiet ke tai_lieu_tu_hoc_co_huong_dan_theo_modun_nham_ho_tro_viec_tu_hoc_cho_...
Thiet ke tai_lieu_tu_hoc_co_huong_dan_theo_modun_nham_ho_tro_viec_tu_hoc_cho_...Thiet ke tai_lieu_tu_hoc_co_huong_dan_theo_modun_nham_ho_tro_viec_tu_hoc_cho_...
Thiet ke tai_lieu_tu_hoc_co_huong_dan_theo_modun_nham_ho_tro_viec_tu_hoc_cho_...
 
Đề tài: Sử dụng bài FCI để khảo sát sai lầm của học sinh, HOT
Đề tài: Sử dụng bài FCI để khảo sát sai lầm của học sinh, HOTĐề tài: Sử dụng bài FCI để khảo sát sai lầm của học sinh, HOT
Đề tài: Sử dụng bài FCI để khảo sát sai lầm của học sinh, HOT
 
Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...
Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...
Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...
 

Điều khiển thiết bị qua Internet

  • 1. 1 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F4550 VÀ ỨNG DỤNG TRONG ĐO LƯỜNG – ĐIỀU KHIỂN Sinh viên thực hiện: NGUYỄN VĂN CHIỀN Lớp ĐT1 Giảng viên hướng dẫn: PGS.TS. NGUYỄN TIẾN DŨNG Hà Nội, 5 - 2013
  • 2. 2 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F4550 VÀ ỨNG DỤNG TRONG ĐO LƯỜNG – ĐIỀU KHIỂN Sinh viên thực hiện: NGUYỄN VĂN CHIỀN Lớp ĐT1 Giảng viên hướng dẫn: PGS.TS. NGUYỄN TIẾN DŨNG Cán bộ phản biện: Hà Nội, 4 - 2013
  • 3. 3 BỘ GIÁO DỤC VÀ ĐÀO TẠO CỘNG HÒA XÃ HÔI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠIHỌC BÁCHKHOA HÀ NỘI -------------------------------------------------- Độc lập - Tự do - Hạnh phúc --------------------------------- NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ và tên sinh viên: .…………….………….…….. Số hiệu sinh viên: ……………… Khoá:……………………. Khoa: Điện tử - Viễn thông Ngành: ………………......... 1. Đầu đề đồ án: ………………………………………………..……………………………………………………………………… ……………………………………………………………………………………………………………..………... 2. Các số liệu và dữ liệu ban đầu: ……………………………………..……………………………………………..……..…………………………… ……………………………………………………………………………………………………………………………….….. ………………………..……………………………………………………………………………………. 3. Nội dung các phần thuyết minh và tính toán: ………………………………………………………………………………………………………………..….……………… ……………………………………………………………………………………………………………………..….………… ……………………………………………………………………………………………………………………………..….… ………………………………………………………………………………………… 4. Các bản vẽ, đồ thị ( ghi rõ các loại và kích thước bản vẽ ): ………………………………………………………………………………………………………………………..….……… …………………………………………………………………………………………………………………..……….……… …………………………………………………………………………………………………. 5. Họ tên giảng viên hướng dẫn: ………………………………………………………..…………………… 6. Ngày giao nhiệm vụ đồ án: ………………………………………………….…………… 7. Ngày hoàn thành đồ án: ………………………………………………………………………..……… Ngày tháng năm 2013 Chủ nhiệm Bộ môn Giảng viên hướng dẫn Sinh viên đã hoàn thành và nộp đồ án tốt nghiệp ngày tháng năm 2013 Cán bộ phản biện
  • 4. 4 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI --------------------------------------------------- BẢN NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP Họ và tên sinh viên: ....................................................................... Số hiệu sinh viên: ........................... Ngành: .................................................................................................. Khoá: .................................................... Giảng viên hướng dẫn:.............................................................................................................................................. Cán bộ phản biện: ....................................................................................................................................... 1. Nội dung thiết kế tốt nghiệp: ......................................................................................................................................................................................................... ......................................................................................................................................................................................................... ......................................................................................................................................................................................................... ......................................................................................................................................................................................................... ......................................................................................................................................................................................................... ......................................................................................................................................................................................................... .................................................................................. 2. Nhận xét của cán bộ phản biện: ......................................................................................................................................................................................................... ......................................................................................................................................................................................................... ......................................................................................................................................................................................................... ......................................................................................................................................................................................................... ......................................................................................................................................................................................................... ......................................................................................................................................................................................................... ......................................................................................................................................................................................................... ......................................................................................................................................................................................................... ......................................................................................................................................................................................................... ......................................................................................................................................................................................................... Ngày tháng năm 2013 Cán bộ phản biện ( Ký, ghi rõ họ và tên )
  • 5. 5 LỜI NÓI ĐẦ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. Thực tập tốt nghiệp với đề tài “Module Ethernet trên vi điều khiển PIC18F4550 và ứng dụng trong đo lường, điều khiển)” đã sử dụng phần mềm CSS và thư viện TCP/IP Stack của hãng Microchip để lập trình điều khiển LED thông qua mạng truyền thông Ethernet, truyền tải nội dung từ Web qua LCD, đo nhiệt độ môi trường. Em xin gửi lời cảm ơn chân thành đến tập thể giáo viên viện ĐIỆN TỬ - VIỄN THÔNG trường ĐẠI HỌC BÁCH KHOA HÀ NỘI, đặc biệt là sự hướng dẫn và giúp đỡ nhiệt tình của thầy NGUYỄN TIẾN DŨNG đã giúp em trong quá trình thực hiện đề tài tốt nghiệp này… Chúng em cũng chân thành cảm ơn quý thầy cô các Khoa trong trường ĐẠI HỌC BÁCH KHOA HÀ NỘI đã tạo nền móng kiến thức cho chúng em… Xin gửi lời chúc sức khỏe và lòng tri ân chân thành đến quý thầy cô! Xin Cảm Ơn!
  • 6. 6 MỤC LỤC NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP ............................................................................3 BẢN NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP...................................................................4 LỜI NÓI ĐẦU................................................................................................................5 MỤC LỤC ......................................................................................................................6 MỞ ĐẦU.........................................................................................................................9 CHƯƠNG 1. TỔNG QUAN VỀ ETHERNET .........................................................11 1.1. Cấu trúc khung tin Ethernet ...............................................................................12 1.2. Cấu trúc địa chỉ Ethernet....................................................................................12 1.3. Các loại khung Ethernet.....................................................................................13 1.3.1. Các khung unicast.......................................................................................13 1.3.2. Các khung broadcast ..................................................................................13 1.3.3. Các khung multicast ..................................................................................14 1.4. Truy nhập bus.....................................................................................................14 1.5. Các loại mạng Ethernet ......................................................................................16 1.5.1. Các hệ thống Ethernet 10Mb/s ...................................................................16 1.5.2. Các hệ thống Ethernet 100 Mb/s – Ethernet cao tốc ( Fast Ethernet )......16 1.5.3. Các hệ thống Giga Ethernet ......................................................................16 1.6. Chuẩn IEEE 802.................................................................................................17 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) ........................................................18 2.1.2. Tầng Giao Vận (Transport Layer).............................................................19 2.1.3. Tầng Internet (Internet Layer)....................................................................19 2.1.4. Lớp giao tiếp mạng.....................................................................................20 2.2. Cấu trúc gói tin IP,TCP,UDP.............................................................................20
  • 7. 7 2.2.1. Cấu trúc địa chỉ IP......................................................................................20 2.2.2. Cấu trúc gói tin IP ......................................................................................21 2.2.3. Cấu trúc gói tin TCP...................................................................................23 2.2.4. Cấu trúc gói tin UDP.................................................................................24 CHƯƠNG 3. PHẦN CỨNG .......................................................................................25 3.1. Vi điều khiển PIC...............................................................................................25 3.1.1. Giới thiệu về vi điều khiển PIC...................................................................25 3.1.2. Một số ưu điểm của Microchip PIC ...........................................................27 3.1.3. Vi điều khiển PIC18F4550 .........................................................................27 3.2. Cảm biến nhiệt độ LM35 ...................................................................................32 3.3. Module Ethenert.................................................................................................33 3.3.1. Giới thiệu về chuẩn Ethernet và ENC28J60...............................................33 3.3.2. Sơ đồ chân...................................................................................................34 3.3.3. Sơ đồ ghép nối vi điều khiển với ENC28J60 ..............................................34 3.3.4. Module Ethernet .........................................................................................34 3.4. Text LCD ...........................................................................................................35 3.4.1. Cấu trúc Text LCD......................................................................................35 3.4.2. Sơ đồ chân...................................................................................................36 3.4.3. Điều khiển hiển thị......................................................................................38 3.5. Mạch nguyên lý..................................................................................................40 3.5.1. Khối mạch nguồn........................................................................................40 3.5.2. Khối mạch RJ45..........................................................................................40 3.5.3. Khối mạch LCD ..........................................................................................42 3.5.4. Khối mạch vi điều khiển PIC18F4550........................................................43 3.6. Mạch thực tế.......................................................................................................43 CHƯƠNG 4. TRÌNH BIÊN DỊCH CCS VÀ WEB SERVER.................................44 4.1. CCS ....................................................................................................................44
  • 8. 8 4.1.1. Vì sao ta sử dụng CCS................................................................................44 4.1.2. Giới thiệu về CCS .......................................................................................44 4.2. Web động ...........................................................................................................45 4.3. CSS.....................................................................................................................46 4.3.1. Ưu điểm của CSS ........................................................................................47 4.3.2. Các đặc tính cơ bản của CSS......................................................................47 4.3.3. CSS có tính kế thừa và tính kết hợp............................................................49 CHƯƠNG 5. TCP/IP STACK....................................................................................50 5.1. Cấu trúc của TCP/IP Stack.................................................................................51 5.2. Hoạt động của TCP/IP Stack..............................................................................52 5.2.1. Các file cần thiết.........................................................................................52 5.2.2. Cấu trúc APP_CONFIG.............................................................................52 5.2.3. Main file......................................................................................................53 5.3. Các module của Stack và APIs ..........................................................................54 5.3.1. Announce ....................................................................................................54 5.3.2. HTTP2 server..............................................................................................54 5.4. Cấu hình cho Stack.............................................................................................56 5.4.1. Cấu hình cho phần cứng.............................................................................56 5.4.2. Địa chỉ.........................................................................................................57 5.5. Demo Module.....................................................................................................58 5.5.1. Điều khiển led sáng tắt ...............................................................................59 5.5.2. Viết ra LCD.................................................................................................62 5.5.3. Đo nhiệt độ..................................................................................................63 KẾT LUẬN ..................................................................................................................64
  • 9. 9 Danh sách hình vẽ Hình 1: Cấu trúc khung MAC theo IEEE 802.3/ Ethernet. ..................................12 Hình 2: Mô hình truyền thông unicast..................................................................13 Hình 3: Minh họa phương pháp CSMA/CD. ........................................................14 Hình 4: Cấu trúc họ giao thức TCP/IP. ...............................................................18 Hình 5. Tổ chức địa chỉ IP....................................................................................21 Hình 6. PIC18F4550.............................................................................................28 Hình 7. Sơ đồ chân của PIC18F4550...................................................................29 Hình 8. LM35........................................................................................................33 Hình 9. Sơ đồ chân ENC28J60.............................................................................34 Hình 10. Sơ đồ ghép nối VĐK với ENC28J60......................................................34 Hình 11. Module Ethernet ....................................................................................35 Hình 12. Text LCD 16x2.......................................................................................36 Hình 13. Sơ đồ chân..............................................................................................37 Hình 14. Kết nối Text LCD...................................................................................38 Hình 15. Hoạt động của chân RS. ........................................................................39 Hình 16. Khối mạch nguồn...................................................................................40 Hình 17. Khối mạch RJ45.....................................................................................41 Hình 18. Sơ đồ khối của HR911105A...................................................................42 Hình 19. Khối mạch LCD. ....................................................................................42 Hình 20. Mạch lọc, mạch reset, chân nạp cho vi điều khiển................................43 Hình 21. Bản mạch chính .....................................................................................43 Hình 22. Trình biên dịch CCS ..............................................................................45 Hình 23. Cấu trúc của Stack.................................................................................51 Hình 24. So sánh cấu trúc TCP/IP tham khảo và cấu trúc Stack của Microchip. .......................................................................................................................................51 Hình 25. Điều khiển LED và viết lên LCD. ..........................................................60 Hình 26. Code trong file forms.htm......................................................................60 MỞ ĐẦU Ngày nay, khoa học công nghệ đạt được một trình độ phát triển rất nhanh và mạnh mẽ, cùng với sự phát triển của các ngành kỹ thuật nói chung và công nghệ điện
  • 10. 10 tử nói riêng. Những thành tựu đạt được cũng như các ứng dụng của công nghệ kỹ thuật điện tử ngày càng được sử dụng nhiều trong cuộc sống hàng ngày của con người và trong các ngành công nghiệp sản xuất và chế biến. Đặc biệt trong lĩnh vực Vi Xử Lý, những ứng dụng của nó đã mang lại hiệu quả rất thiết thực cho cuộc sống như quang báo điện tử, đo và hiển thị nhiệt độ, đồng hồ số, điều khiển tốc độ động cơ, điều khiển thiết bị điện, hệ thống đếm sản phẩm… Nắm được tầm quan trọng đó, tôi đã thực hiện đề tài “MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F4550 VÀ ỨNG DỤNG TRONG ĐO LƯỜNG – ĐIỀU KHIỂN”. Có thể nói đề tài này có rất nhiều ứng dụng trong thực tiễn, dùng đễ điều khiển và giám sát các thiết bị trong gia đình. Nếu mở rộng đề tài ta có thể ứng dụng đề tài để điều khiển hệ thống điện trong công nghiệp. Bằng các kiến thức đã học tại trường và quá trình nghiên cứu, tìm hiểu thực tế, cùng với sự nỗ lực của bản thân, tôi đã thực hiện thành công đồ án này. Do kiến thức còn hạn hẹp và thời gian có hạn chế, đồ án không tránh khỏi những thiếu sót. Đồ á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 PIC18F4550 bao gồm các đặc trưng của PIC18F4550, 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. Giới thiệu về LCD 16x2. Tiếp theo là phần nguyên lý của mạch thực nghiệm.
  • 11. 11 Chương 4. Trình biên dịch CCS và web server giới thiệu về trình biên dịch CCS và các nội dung liên quan đến việc thiết kế web giao diện như là HTML, Javascript, CSS. 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 CCS để 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. CHƯƠ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
  • 12. 12 đồ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: Hình 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 Dữ liệu PAD FCS 7 byte 1 byte 2/6 byte 2/6 byte 2 byte 46-1500 byte 4 byte - 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.
  • 13. 13 - 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 Hình 2: 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
  • 14. 14 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 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 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 3: Minh họa phương pháp CSMA/CD.
  • 15. 15 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 gử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
  • 16. 16 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. - 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:  100BaseFX. Tốc độ 100Mb/s, sử dụng cáp sợi quang đa mode.  100BaseTX. Tốc độ 100Mb/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
  • 17. 17 - 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:  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. - 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). 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á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.
  • 18. 18 CHƯƠ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 4: 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.
  • 19. 19 - 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.
  • 20. 20 - 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ó.
  • 21. 21 Hình 5. 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. 0 1 2 3 4 8 16 24 Class A 0 Netid Hostid Class B 1 0 Netid Hostid Class C 1 1 0 Netid Hostid Class D 1 1 1 0 Multicast address Class E 1 1 1 1 0 Reverved for future use
  • 22. 22 - 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 (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.  1 bít tiếp theo (Delay) chỉ độ trễ 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.  1 bít tiếp theo (Throughput) 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 (Reliability) chỉ độ 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. - 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:  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 không 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-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.
  • 23. 23 - 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. - 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  URG: Vùng con trỏ khẩn (Urgent pointer) 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
  • 24. 24  SYN: đồng bộ hoá số hiệu tuần tự  FIND: không còn dữ liệu từ trạm nguồn - Window-2byte: số byte dữ liệu bắt đầu từ byte được chỉ ra trong ACK number mà trạm nguồn đã sẵn sàng để nhận. - Checksum: checksum cho cả phần header lẫn dữ liệu. - Urgent Pointer-2byte: nếu cờ URG bật thì giá trị trường này chính là số 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.
  • 25. 25 CHƯƠNG 3. PHẦN CỨNG 3.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 Technology. 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ớ kiểu 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 và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 kế 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 cho vi xử lý PIC không cần nhiều chức năng vì chỉ xử lý các công việc 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ách 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 ki 80 Genneral Instrument gặp khó khăn 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 hãng. Genneral Instrument đã chuyển nhượng Ban vi điện tử và nhà máy tại Chandle, bang Anizona cho các nhà đầu tư. Họ lập ra một công ty mới, đặt tên là Arizona Microchip technology hiện nay là Microchip technology Inc. Chiến lược của các nhà đầu tư là tập trung vào vi điều khiển và các bộ nhớ 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 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 thuộ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.
  • 26. 26 Năm 1983 Microchip là hãng đầu tiên đã tích hợp được bộ nhớ chương trình flash 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 flash đã loại bỏ vai trò của vi điều khiển có bộ nhớ xoá 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 dòng PIC và có rất 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ể tuỳ chọn từ 256 byte đến 256 Kbyte  Các cổng Xuất/Nhập (I/O ports) (mức logic thường từ 0V đến 5.5V, ứng với logic 0 và logic 1)  8/16 Bit Timer  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/12 bit  Bộ so sánh điện áp (Voltage Comparators)  Các module Capture/Compare/PWM  LCD  MSSP Peripheral dùng cho các giao tiếp I²C, SPI, và I²S  Bộ nhớ nội EEPROM - có thể ghi/xoá lên tới 1 triệu lần  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 (PIC16F639, và rfPIC)  KEELOQ Mã hoá 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 trên sự khác nhau về kiến trúc bộ xử lý bên trong vi điều khiển: - Số các thanh ghi có thể truy nhập được.
  • 27. 27 - Có hay không có ngắt, số lượng ngắt. - Số lượng các phần cứng có chức năng đặc biệt. - Độ dài từ lệnh. - Chia làm 4 họ: o Họ cấp thấp (low - end): 12C5xx, 16C5x, 16C505, 16HV540. o Họ cấp chung (Mid - range): 12C6xx, 14C000, 16C55x, 16C6x, 16C62x, 16F62x, 16C67x, 16C8x, 16F87x và 16C9xx. o Họ cấp cao (High-end) 17Cxxx. o Họ cấp cao (High- performance): 18Cxxx và 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ác dễ dàng với chi phí thấp do PIC chủ yếu nạp trình theo chuẩn ICSP (In-Circuit Siral Programming) là phương thức 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ứư và sử dụng PICđã tiết kiệm được đáng kể chi phí mua các công cụ nạp. Với bộ nhớ flash thì thời 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ỡ hơn chục phút). Microchip 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ỉ dùng sau máy tính cá nhân PC và về doanh số bán ra thi trường hiện nay. Microchip đã đứng đầu về doanh số bán PIC 8 bit, vượt lên trên cả các vi điều khiển của motorola. 3.1.3. Vi điều khiển PIC18F4550 3.1.3.1. PIC18F4550 PIC18F4550 là một vi xử lý cơ bản đa chức năng và rẻ. Nó là sản phẩm của họ vi xử lý PIC thông dụng của công ty Microchip của Mỹ có trụ sở đặt tại Chandler, Arizona (Mỹ).
  • 28. 28 Hình 6. PIC18F4550 Với bộ nhớ, có 32kb Flash lưu trữ chương trình, 2kb bộ nhớ SRAM bay hơi và 256 byte 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 1 byte với một số ngoại lệ dài 2 byte (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 (độ dài xung) và 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à dùng cả hai mức như bộ so sánh tương tự kèm theo với bộ phát điện thế chuẩn có 16 mức (hữu ích khi dùng trigger ở mức phần cứng). Cuối cùng, CIP cũng có một 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 và các ngắt khác (vòng lặp …). Không thể đạt được tốc độ lớn hơn 200 kHz.
  • 29. 29 3.1.3.2. Sơ đồ chân Hình 7. Sơ đồ chân của PIC18F4550 3.1.3.3. Chức năng chân Pin No. Name Description Alternate Function 1 MCLR/VPP/RE3 Master clear Vpp: programming voltage input RE3: I/O pin of PORTE, PIN 3 2 RA0/AN0 PortA I/O Pins 1-6 AN0: Analog input 0 3 RA1/AN1 AN1: Analog input 1 4 RA2/AN2/VREF-/CVREF AN2: Analog input 2 VREF-: A/D reference voltage (low) input. CVREF: Analog comparator reference output. 5 RA3/AN3/VREF+ AN3: Analog input3 VREF+: A/D reference voltage (high) input 6 RA4/T0CKI/C1OUT/RCV T0CKI: Timer0 external clock input. C1OUT: Comparator 1 output RCV:External USB transceiver RCV input.
  • 30. 30 7 RA5/AN4/SS/HLVDIN/C2OUT AN4: Analog input 4 SS: SPI slave select input HLDVIN: High/Low-Voltage Detect input. C2OUT: Comparator 2 output. 8 RE0/AN5/CK1SPP PortE I/O Pins 1-3 AN5: Analog input 5 CK1SPP: SPP clock 1 output. 9 RE1/AN6/CK2SPP AN6: Analog input 6 CK2SPP: SPP clock 2 output 10 RE2/AN7/OESPP AN6: Analog input 7 OESPP : SPP Enabled output 11 VDD Positive supply 12 Vss Ground 13 OSC1/CLKI Oscillator pin 1 CLKI: External clock source input 14 OSC2/CLKO/RA6 PortE I/O Pin 7 CLKO: External clock source output OSC2: Oscillator pin 2 15 RC0/T1OSO/T13CKI PortC I/O Pins 1-3 T1OSO :Timer1 oscillator output T13CKI: Timer1/Timer3 external clock input. 16 RC1/T1OSI/CCP2/UOE T1OSI: Timer1 oscillator output CCP2:Capture 2 input/Compare 2 output/PWM2 output UOE: External USB transceiver OE output 17 RC2/CCP1/P1A CCP1: Capture 1 input/Compare 1 output/PWM1 output. P1A :Enhanced CCP1 PWM output, channel A. 18 VUSB Internal USB 3.3V voltage regulator output, positive supply for the USB transceiver. 19 RD0/SPP0 PortD I/O Pins 1-4 SPP0-SPP4 Streaming Parallel Port data 20 RD1/SPP1 21 RD2/SPP2 22 RD3/SPP3 23 RC3/D-/VM PortC I/O Pins 4-5 D-: USB differential minus line (input/output) VM: External USB transceiver
  • 31. 31 VM input. 24 RC4/D+/VP D+: USB differential plus line (input/output). VP: External USB transceiver VP input. 25 RC6/TX/CK PortC I/O Pins 7-8 TX: EUSART asynchronous transmit. CK: EUSART synchronous clock (see RX/DT). 26 RC7/RX/DT/SDO RX: EUSART asynchronous receive. DT: EUSART synchronous data (see TX/CK). SDO: SPI data out. 27 RD4/SPP4 PortD I/O Pins 5-8 SPP4:Streaming Parallel Port data 28 RD5/SPP5/P1B SPP5:Streaming Parallel Port data P1B: Enhanced CCP1 PWM output, channel B 29 RD6/SPP6/P1C SPP6:Streaming Parallel Port data P1C: Enhanced CCP1 PWM output, channel C 30 RD7/SPP7/P1D SPP7:Streaming Parallel Port data P1D: Enhanced CCP1 PWM output, channel D 31 Vss Ground 32 VDD Positive supply 33 RB0/AN12/INT0/FLT0/SDI/SDA PortB I/O Pins 1-8 AN12: Analog input 12. INT0: External interrupt 0. FLT0: Enhanced PWM Fault input (ECCP1 module). SDI: SPI data in. SDA: I2 C data I/O. 34 RB1/AN10/INT1/SCK/SCL AN10: Analog input 10. INT1: External interrupt 1. SCK: Synchronous serial clock input/output for SPI mode. SCL: Synchronous serial clock input/output for I2C mode. 35 RB2/AN8/INT2/VMO AN8: Analog input 8. INT2: External interrupt 2.
  • 32. 32 VMO: External USB transceiver VMO output. 36 RB3/AN9/CCP2/VPO AN9: Analog input 9. CCP2: Capture 2 input/Compare 2 output/PWM2 output. VPO: External USB transceiver VPO output. 37 RB4/AN11/KBI0/CSSPP AN11: Analog input 11. KBI0: Interrupt-on-change pin. CSSPP: SPP chip select control output. 38 RB5/KBI1/PGM KBI1: Interrupt-on-change pin. PGM: Low-Voltage ICSP Programming enable pin. 39 RB6/KBI2/PGC KBI2: Interrupt-on-change pin. PGC: Low-Voltage ICSP Programming enable pin. 40 RB7/KBI3/PGD KBI3: Interrupt-on-change pin. PGD: In-Circuit Debugger and ICSP programming data pin. 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 thà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 độ. Các đặc trưng của LM35: - Ngõ ra là điện áp. - Đơn vị nhiệt độ: 0 C. - Có hiệu năng cao, công suất tiêu thụ là 60uA.
  • 33. 33 - Sản phẩm không cần phải canh chỉnh nhiệt độ khi sử dụng. - Độ nhạy 10mv/10 C. - Sai số cực đại 1,50 C khi nhiệt độ lớn hơn 1000 C. - Phạm vi sử dụng :00 C=>1000 C. - Chân +Vs là chân cung cấp điện áp cho LM35DZ hoạt động (4—20V). - Chân Vout là chân điện áp ngõ ra của LM35DZ, được đưa vào chân Analog của các bộ ADC. - Chân GND là chân nối mass,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 1°C, ở 00 C điện áp ra là 0V, tương ứng với giá trị ADC 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ị ADC ứng với 2.5V/1000= 2.5 mV. Vậy 1 giá trị A/D ứng với 0.25 0 C. Muốn tăng độ phân giải A/D ta giảm Vref. Hình 8. LM35 3.3. Module Ethenert 3.3.1. Giới thiệu về chuẩn Ethernet và ENC28J60 Ethernet là 1 công nghệ mạng cục bộ (LAN) nhằm chuyển thông tin giữa các máy tính với tốc độ từ 10 đến 100 triệu bít một giây (Mbps). Hiện thời tốc độ truyển tải Ethenet chủ yếu là 10/100 Mbps. 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
  • 34. 34 phục vụ nghiên cứu trong “ hệ thống công sở trong tương lai”. Sau đó nó được chuẩn hóa và được sử dụng từ năm 1985 tới này theo chuẩn IEEE 802.3. ENC28J60 là IC giao tiếp mạng Ethernet ở lớp vật lý tương ứng trong mô hình OSI. Nó hỗ trợ tuyền song công trên kênh truyền có băng thông từ 10-20Mbps. Đồng thời nhằm tránh xung đột trên kênh truyền, ENC28J60 làm việc trên protocol CSMA/CD để phát hiện và tối thiểu hóa xung đột. ENC28J60 được giao tiếp với các thiết bị khác theo chuẩn SPI. 3.3.2. Sơ đồ chân Hình 9. Sơ đồ chân ENC28J60 3.3.3. Sơ đồ ghép nối vi điều khiển với ENC28J60 Hình 10. Sơ đồ ghép nối VĐK với ENC28J60 3.3.4. Module Ethernet
  • 35. 35 Hình 11. Module Ethernet - Sử dụng chip ENC28J60 Ethernet, SOP 28 chân. - Giao diện SPI. - Đầu nối RJ45 HR911105A. - Sử dụng điện áp 3,3V. - Tần số 25Mhz. - 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. 3.4. Text LCD 3.4.1. Cấu trúc Text LCD Text LCD là các loại màn hình tinh thể lỏng nhỏ dùng để 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
  • 36. 36 với Graphic LCD có thể hiển thị 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 các Text LCD, các mẫu ký tự được định 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 có thể hiển thị tối đa 16 ký tự. Một số kích thước Text LCD thông thường gồm 16x1, 16x2, 16x4, 20x2, 20x4… Hình 12. Text LCD 16x2 Text LCD có 2 cách giao tiếp cơ bản là nối tiếp (như I2C) và song song. Trong phạm vi bài học này 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 hãng 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. Tuy nhiên, HD44780U cũng được coi là chuẩn chung cho các loại Text LCD, vì thế bạn có thể dùng chương trình ví dụ trong bài này để test trên các LCD khác với rất ít hoặc không cần chỉnh sửa. HD44780U là bộ điều khiển cho các Text LCD dạng ma trận điểm (dot-matrix), chip này có thể được dùng cho các LCD có 1 hoặc 2 dòng hiển thị. HD44780U có 2 mode giao tiếp là 4 bit 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 là 240 ký tự mẫu khác nhau). 3.4.2. Sơ đồ chân Các Text LCD theo chuẩn HD44780U thường có 16 chân trong đó 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ự các chân thường được sắp xếp như sau:
  • 37. 37 Hình 13. Sơ đồ châ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).
  • 38. 38 Hình 14. Kết nối Text LCD Chân 1 và chân 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ở chia áp như trong hình 2.Trong khi hoạt động, chỉnh để thay đổi giá trị biến trở để đạt được độ tương phản cần thiết, sau đó giữ 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 4 bit hay 8 bit 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.4.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. RS (chân số 3): Chân lựa chọn thanh ghi (Select Register), chân này cho phép lựa chọn 1 trong 2 thanh ghi IR hoặc DR để làm việc. Vì cả 2 thanh ghi này đều được kết 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 15.
  • 39. 39 Hình 15. 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 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.
  • 40. 40 3.5. Mạch nguyên lý 3.5.1. Khối mạch nguồn Hình 16. Khối mạch nguồn - 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.5.2. Khối mạch RJ45
  • 41. 41 Hình 17. 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.
  • 42. 42 Hình 18. Sơ đồ khối của HR911105A. 3.5.3. Khối mạch LCD Hình 19. 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.
  • 43. 43 3.5.4. Khối mạch vi điều khiển PIC18F4550 - 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 20. Mạch lọc, mạch reset, chân nạp cho vi điều khiển. - Các tụ C2, C3, C4, C5, C6, C7, C9 có tác dụng lọc nhiễu. 3.6. Mạch thực tế Hình 21. Bản mạch chính
  • 44. 44 CHƯƠNG 4. TRÌNH BIÊN DỊCH CCS VÀ WEB SERVER 4.1. CCS 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 đó. Vi đ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 là việc làm việc với các con số 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 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 một ngôn ngữ mới thay thế. Và ngôn ngữ lập trình Assembly. Ở đây ta không nói nhiều đến Assembly. Sau này khi ngôn ngữ C ra đời, nhu cầu dung ngôn ngữ C để thay thế cho ASM trong việc mô tả các lệnh lập trình cho vi điều khiển một cách ngắn gọn và dễ hiểu hơn đã dẫn đến sự ra đời của nhiều chương trình soạn thảo và biên dịch C cho vi điều khiển: Keli C, HT-PIC, MikoC, 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 hang 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à: o PCB cho dòng PIC 12-bit opcodes o PCB cho dòng PIC 14-bit opcodes o 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 là CCS. Phiên bản đươc sử dụng trong tài liệu này là PCWH Compiler Ver 4.104.
  • 45. 45 - 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. Hình 22. Trình biên dịch CCS 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.
  • 46. 46 Cấu trúc của một DHTML: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>DHTML example</title> <script type="text/javascript"> function init() { myObj = document.getElementById("navigation"); // .... more code } window.onload=init; </script> </head> <body> <div id="navigation"></div> <pre> Often 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: </pre> <script type="text/javascript" src="myjavascript.js"></script> </body> </html> 4.3. CSS
  • 47. 47 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 (W3C) 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 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 nó là stylesheet.css. CSS phá vỡ giới hạn trong thiết kế Web, bởi chỉ cần một file CSS có thể cho phép quản lí định dạng và layout trên nhiều trang 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ể đặt đoạn CSS phía trong thẻ <Head>…</Head>, hoặc ghi nó ra một file riêng với phần mở rộng “.css”, ngoài ra bạn còn có thể đặt chúng trong từng thẻ HTML riêng biệt.
  • 48. 48 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; } 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_n { 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 họa về mã CSS: body { background: #ffffff; /* trang Web sẽ có nền màu trắng */ font-family: Verdana; /* font chữ mặc định là Verdana */ color: #ff0000; /* màu chữ mặc định là màu đỏ */ } 4.3.2.3. Thứ tự xếp lớp: Tùy 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:
  • 49. 49 - 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. 4.3.3. CSS có tính kế thừa và tính 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 sau: Body{ Font:Arial, Verdana; Background:#FF6600; } Nhưng trong trường hợp muốn khai báo cho các đối tượng nhỏ hơn nằm trong đó như Sidebar: #sidebar{ With:300px; Padding:10px; Font:Tahoma,Verdana; } Sau đoạn khai báo này thì Sidebar sẽ có thuộc tính: #sidebar{ background:#FF6600; with:300px; padding: 10px; font: Tohoma, Verdana; } Như vậy, Sidebar đã kế thừa thuộc tính background của Body, và trong đó thuộc tính font là Tahoma đã đè lên thuộc tính font Arial ở lần khai báo trước.
  • 50. 50 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,h4{ Font-family: Tahoma,arial; Color:#D4D4D4; } Thay cho việc định nghĩa riêng biệt cho từng cái: h1{ Font-family: Tahoma,arial; Color: #D4D4D4; } h2{ Font-family: Tahoma,arial; Color:#D4D4D4; } …………………………… h4{ Font-family: Tahoma,arial; Color:#D4D4D4; CHƯƠNG 5. TCP/IP STACK
  • 51. 51 5.1. Cấu trúc của TCP/IP Stack TCP/IP Stack là ứng dụng của Microchip để tạo một Webserver nhúng, hoặc các giao thức giao tiếp Enthernet hiện hành. Bao gồm các giao thức truyền dữ liệu TCP, UDP. Và hỗ trợ các module khác như: IP, ICMP, DHCP, ARP và DNS. TCP/IP cũng có các Module sử dụng cho lớp ứng dụng như: HTTP cho Web, SMTP cho gửi và nhận Email, SNMP cho giao thức trạng thái và điều khiển. Telnet cho điều khiển từ xa, TFTP. Hình 23. Cấu trúc của Stack. Hình 24. So sánh cấu trúc TCP/IP tham khảo và cấu trúc Stack của Microchip. Ngoài những module chính giống như cấu trúc TCP/IP tham khảo thì Microchip đưa thêm vào Stack 2 module mới đó là StackTask và ARPTask. StackTask quản lý sự
  • 52. 52 vận hành và tất cả các module của Stack. Trong khi đó, ARPTask quản lý các dịch vụ của lớp ARP ( Address Resolution Protocol). 5.2. Hoạt động của TCP/IP Stack TCP/IP Stack hoạt động gần giống cấu trúc của hệ điều hành thời gian thực, tức là các nhiệm vụ sẽ được chia thành các tác vụ ( ở đây là TCP, UDP, Ping,…). Tất cả hoạt động của TCP/IP sẽ được một đồng hồ chung quản lí theo Time Split. Tức là có một Timer hệ thống (Timer1), cứ 1 khoảng thời gian ngắn sẽ ngắt (gọi là 1 TICK), khi bị ngắt, hệ thống sẽ treo lại, ngữ cảnh của tất cả các tác vụ được bộ lập lịch lôi ra, xem xét tác vụ nào được chạy theo kiểu chia sẻ thời gian (vì không có mức ưu tiên cho tác vụ). Sau đó cho phép tác vụ đó chiếm quyền thực thi của CPU. Đến TICK tiếp theo, hệ thống lại treo lại, và lại lôi ngữ cảnh ra, cứ tiếp tục như vậy mãi. Với cơ chế hoạt động này, vi điều khiển được coi như một lúc có thể vừa thực hiện TCP, vừa thực hiện UDP, Ping,…vừa có thể là Server và Client cùng một lúc. Vì vậy, PIC nếu được thiết lập ở chế độ TCP Server/Client sẽ hoạt động đồng thời cả 2 hoạt động này. Server lắng nghe kết nối từ Client nào đó trên mạng. Còn Client thì gửi lệnh mở cổng kết nối tới một Server nào đó cũng ở trên mạng, mà ta có thể xác lập được. Vì vậy, hoạt động của các tác vụ là độc lập với nhau, không chịu ảnh hưởng lẫn nhau. 5.2.1. Các file cần thiết - Main file: Lập trình trên file này. - ARP.c và ARP.h: Các file này được sử dụng bởi Stack để xác định địa chỉ MAC kết hợp với địa chỉ IP. - Physical layer files: Những file này dùng để cho phép một lớp vật lý cụ thể. - IP.c và IP.h: Các file này cung cấp các chức năng của lớp IP cho Stack. - Tick.c và Tick.h: Các file này tạo ra một bộ đếm thời gian để thực hiện một số chức năng thời gian trong Stack. - HardwareProfile.h: Thiết lập cấu hình cho phần cứng. - TCPIPConfig.h: Thiết lập cấu hình cho phần mềm. - MAC.h: Cung cấp các macro và cấu trúc liên quan đến phần cứng của lớp MAC. - TCPIP.h: Là file đính kèm trong Stack. Main file phải đính kèm file này. 5.2.2. Cấu trúc APP_CONFIG
  • 53. 53 Hầu hết các biến của ứng dụng liên quan của Stack được lưu trữ trong cấu trúc APP_CONFIG. Chúng bao gồm địa chỉ, cờ, chuỗi tên NBNS/SSID. Ta sẽ phải khai báo cho cấu trúc này và khởi tạo những giá trị mặc định của nó được định nghĩa trong file TCPIPConfig.h. 5.2.3. Main file 5.2.3.1. Khởi tạo Đầu tiên, cần khởi tạo phần cứng như oscillators, LEDs, LCDs, PPS pins… Sau đó, ta sẽ gọi các hàm khởi tạo từ thư viện. Đầu tiên là hàm TickInt(), nó khởi tạo tick timer để quản lý việc định thời của Stack. Sau đó là các hàm khởi tạo được thêm vào theo yêu cầu khởi tạo mà phần cứng yêu cầu. ví dụ như MPFSInt() để khởi tạo một cổng SPI (Serial Peripheral Interface Bus) để kết nối với thiết bị lưu trữ bộ nhớ để lưu trang web. Khi phần cứng được khởi tạo, ta có thể cấu hình cho Stack. Hầu hết các biết của ứng dụng liên quan của Stack được lưu trong cấu trúc AppConfig. Lúc này ta có thể khởi tạo cấu trúc AppConfig theo những giá trị ta chọn. Kết thúc khởi tạo Stack bằng việc gọi hàm StackInt(). Hàm này sẽ tự động khởi tạo các hàm cho firmware của các giao thức nếu chúng được định nghĩa trong file TCPIPConfig.h (ví dụ: TCPInit() cho TCP protocol, HTTPInt() cho HTTP hoặc HTTP2…). 5.2.3.2 Vòng lặp chính (main loop) Khi chương trình được khởi tạo, ta sẽ tạo một vòng lặp vô hạn để thực hiện các nhiệm vụ của ứng dụng. Trong vòng lặp có hai hàm phải được gọi thường xuyên là StackTask() và StackApplications. Hàm StackTask sẽ được gọi ở bất kỳ thời điểm nào khi Stack yêu cầu và sẽ điều khiển sự truyền nhận các gói dữ liệu. Hàm StackApplications sẽ gọi những module ứng dụng được gọi. Ví dụ nếu sử dụng HTTP2 server, StackApplications sẽ tự động gọi hàm HTTPServer để thực hiện bất kỳ nhiệm vụ nào của HTTP đang được đợi. Trong vòng lặp chính, ta có thể hỏi vòng cho bất kỳ sự thay đổi I/O nào và gọi bất kỳ một nhiệm vụ đặc biệt của ứng dụng mà bạn thực hiện. Để tránh tràn bộ đệm trong phần cứng hoặc vi phạm sự định thời của giao thức, ta sẽ thực hiện các nhiệm vụ trong hàm callback với các trigger định thời cơ sở. Ta sẽ phải gọi hàm StackTask mỗi khi gọi hàm StackApplications.
  • 54. 54 5.3. Các module của Stack và APIs Microchip TCP/IP Stack bao gồm rất nhiều module. Để sử dụng được bất kì một module nào ta phải nắm rõ mục đích của nó và APIs. 5.3.1. Announce Module này làm cho việc phát hiện ra thiết bị trở nên dễ dàng bằng việc truyền một tin nhắn UDP trên cổng 30303 bất kỳ khi nào địa chỉ IP thay đổi. Cổng được sử dụng bởi module Announce có thể được thay đổi được bằng cách sửa ở marco trong file Announce.c #define ANNOUNCE_PORT 30303 Giao thức Announce được thiết kế để sử dụng cho phần mềm Ethernet Device Discoverer và MCHPDetect trên máy tính. Module Announce bao gồm 2 hàm: - AnnounceIP: AnnounceIP mở 1 socket UDP và truyền 1 gói tin đến cổng 30303. Nếu máy tính nằm trong cùng 1 subnet và tiện ích đang tìm kiếm 1 gói tin trên cổng UDP thì nó sẽ nhận gói tin này. Module này có nhiệm vụ thông báo việc thay đổi IP của mạch. Tin nhắn được hiển thị bằng phần mềm MCHPDetect.exe. Cú pháp: void AnnounceIP(); - DiscoveryTask: Hàm này được sử dụng liên tục để lắng nghe tin nhắn trên cổng Announe. Các tin nhắn có thể gửi bằng cách sử dụng công cụ Microchip Device Discoverer. Cú pháp: void DiscoveryTask(); Các hàm trên chỉ nên được truy cập bởi chính Stack. Ứng dụng không nên gọi các hàm trên và thay đổi các biến. 5.3.2. HTTP2 server Module HTTP2 web server và file MPFS2 liên quan của nó cho phép mạch hoạt động như một webserver. Nó tạo ra một phương pháp đơn giản để hiển thị thông tin trạng thái và điều khiển các ứng dụng bằng cách sử dụng một trình duyệt web thông thường. Ba thành phần chính phục vụ cho module HTTP2 web server là: web pages, phần mềm MPFS2.exe và hai file nguồn CustomHTTPApp.c và HTTPPrint.h.
  • 55. 55 Web pages Bao gồm tất cả file HTML và ảnh kèm theo, CSS Stylesheets, các file JavaScript cần thiết để hiển thị một trang web. Module HTTP2 web server bao gồm các tính năng sau: 5.3.2.1. HTTP2 Dynamic Variables Một trong những tính năng cơ bản nhất là cập nhật cái thông tin trạng thái của mạch đến người sử dụng thông qua giao diện web. Các lệnh trong mã HTML sẽ thông báo cho server thực hiện các hàm callbacks tại thời điểm đó. 5.3.2.2. HTTP2 Form Processing Nhiều ứng dụng cần lấy dữ liệu từ người sử dụng. Một phương pháp thông thường sử dụng web forms.htm. web forms sử dụng 2 phương pháp GET và POST và HTTP2 web server hỗ trợ cả 2 phương pháp này. - Phương pháp GET  Phương pháp GET sẽ gán dữ liệu vào cuối URL. Dữ liệu này sẽ đứng sau dấu chấm hỏi (?) ở trên thanh địa chỉ của trình duyệt. (Ví dụ: http://mchpboard/form.htm?led1=0&led2=1&led3=0). Dữ liệu được gửi bằng phương pháp GET sẽ tự động được giải mã và được lưu trong biến mảng curHTTP.data. Vì dữ liệu này được lưu trong bộ nhớ, cho nên nó được giới hạn bởi kích thước của biến mảng curHTTP.data, mặc định là 100 bytes.  Hàm callback HTTPExecuteGet sẽ xử lý dữ liệu này và thực hiện một số nhiệm vụ cần thiết. Hai hàm HTTPGetArg và HTTPGetROMArg giúp dễ dàng lấy dữ liệu cho quá trình xử lý. - Phương pháp POST  Phương pháp POST truyền dữ liệu sau khi các header yêu cầu đã được gửi. Dữ liệu không được hiển thị trong thanh địa chỉ của trình duyệt như phương pháp GET mà chỉ được nhìn thấy bởi một công cụ bắt gói tin. Mặc dù vậy, phương pháp này sử dụng cùng cách mã hóa URL giống phương pháp GET.  HTTP2 server không thực hiện bất kỳ sự phân tích trước các dữ liệu này. Tất cả dữ liệu POST nằm trong bộ đệm TCP, vì vậy các ứng dụng sẽ
  • 56. 56 truy cập trực tiếp vào bộ đệm TCP để lấy và giải mã nó. Các hàm HTTPReadPostName và HTTPReadPostValue sẽ thực hiện công việc này. 5.3.2.3. HTTP2 Authentication Các giao thức HTTP cung cấp một phương pháp cho các máy chủ yêu cầu một tên người dùng và mật khẩu của khách hàng trước khi cấp quyền truy cập đến trang đó. Chức năng xác thực này được hỗ trợ bởi hai hàm callback. Thứ nhất, là hàm HTTPNeedsAuth, xác định xem trang web hiện tại có yêu cầu sự xác thực hay không. Thứ hai, là hàm HTTPVerifyAuth, so sánh tên người dùng và mật khẩu với một danh sách được chấp nhận, nếu đúng sẽ cho phép truy cập, nếu sai sẽ bị từ chối truy cập. - Yêu cầu xác thực  Đầu tiên, hàm HTTPNeedsAuth sẽ được gọi để xác định xem trang có yêu cầu password hay không. Hàm này sẽ trả về giá trị để hướng dẫn HTTP server phải thực hiện như thế nào. Hàm trả về giá trị 0x80 hoặc cao hơn để cho phép truy cập vô điều kiện và trả về giá trị 0x79 hoặc thấp hơn để yêu cầu nhập lại tên người sử dụng và password. Giá trị trả lại được lưu trong curHTTP.isAuthorized để nó có thể được truy cập bởi các hàm callback trong lần tiếp theo. - Thông tin xác thực: Hàm HTTPCheckAuth xác định xem tên và password mà người dùng cung cấp có hợp lệ để truy cập hay không. Giá trị trả lại được lưu trong curHTTP.isAuthorized để nó có thể được truy cập bởi các hàm callback trong lần tiếp theo. 5.4. Cấu hình cho Stack 5.4.1. Cấu hình cho phần cứng Hầu như việc cấu hình phần cứng được thực hiện bằng cách thêm dấu // vào trước các dòng lệnh để làm mất tác dụng của những dòng lệnh hoặc bỏ // đi để Mplab thực hiện các dòng lệnh đó, định nghĩa một loạt các macro ở phần đầu của file HardwareProfile.h. Trong hầu hết các trường hợp, các macro dùng để khởi tạo các mạch demo phải giống như các macro dùng để định nghĩa vi điều khiển sử dụng trong mạch. Trong file HardwareProfile.h mặc định đã bao gồm các project cho một số mạch có sẵn của
  • 57. 57 Microchip, được giới hạn bằng các câu lệnh tiền xử lý. Ví dụ với Explorer 16 sẽ bắt đầu bằng macro "#elif defined (EXPLORER_16)" và tiếp tục cho đến những câu lệnh tiền xử lý cho một mạch demo khác. 5.4.1.1. Tần số Nhiều hoạt động của TCP/IP phụ thuộc vào thời gian. Để thiết lập giá trị xung clock ta thay thế giá trị của xung clock trong macro trong file HardwareProfile.h: #define GetSystemClock() xxxxxxxxxxxxxxx Ngoài ra còn 2 macro thiết lập xung clock khác:  GetInstructionClock () và GetPeripheralClock () cung cấp tần số lệnh và tần số cho thiết bị ngoại vi của vi điều khiển. 5.4.1.2. Bộ nhớ ngoài Bộ nhớ ngoài dùng để lưu trữ Web nhúng, Web ở đây định dạng http và http2. Bộ nhớ dùng để lưu trữ có thể có 3 loại: SD/MMD (Memory Card), EEPROM, Flash Serial. Nếu muốn dùng Web nhúng, ta có thể lưu trữ vào bộ nhớ nội. Nội dung của trang Web sẽ được nhúng trực tiếp vào PIC, ở đây PIC sẽ đóng vai trò là Server. 5.4.2. Địa chỉ 5.4.2.1. Địa chỉ MAC 6 byte địa chỉ MAC cung cấp địa chỉ cho lớp giao thức Media Access Control của TCP/IP Stack. Địa chỉ MAC là địa chỉ cố định gắn liền với phần cứng. Địa chỉ MAC được định nghĩa trong file TCPIPConfig.h. Có 6 macro được định nghĩa trong file này để thiết lập địa chỉ MAC: #define MY_DEFAULT_MAC_BYTE1 (0x00) #define MY_DEFAULT_MAC_BYTE2 (0x04) #define MY_DEFAULT_MAC_BYTE3 (0xA3) #define MY_DEFAULT_MAC_BYTE4 (0x00) #define MY_DEFAULT_MAC_BYTE5 (0x00) #define MY_DEFAULT_MAC_BYTE6 (0x00)