MỤC LỤC
Phiếu đăng ký đồ án tốt nghiệp...............................................................................................
Nhận xét của giáo viên hướng dẫn.........................................................................................
Nhận xét của giáo viên phản biện..........................................................................................
Nhận xét của hội đồng bảo vệ.................................................................................................
Lời cảm ơn ................................................................................................................................
PHẦN I: NỘI DUNG
Chương Dẫn Nhập ................................................................................................ Trang 3
1.1: Đặt vấn đề................................................................................................... 3
1.2: Tầm quan trọng của đề tài........................................................................ 3
1.3: Nội dung đề tài .......................................................................................... 4
1.4: Mục đích đề tài .......................................................................................... 4
1.5: Đối tượng nghiên cứu................................................................................ 4
1.6: Lập kế hoạch nghiên cứu......................................................................... 5
Chương 2: Tổng Quan Về Mạng Internet................................................................. 6
2.1:Giới thiệu..................................................................................................... 6
2.2:Hoạt động của mạng internet.................................................................... 6
2.3: Kết nối internet.......................................................................................... 8
2.4 Giao thức TCP/IP......................................................................................... 8
2.5:Công nghệ Ethernet.................................................................................. 11
Chương 3: Giớ Thiệu Module Ethetnet ENC 28J60................................................... 14
3.1: Giới thiệu.................................................................................................. 14
3.2: Vi mạch truyền thông Enthernet ENC28J60 ...................................... 15
Chương 4: Giớ Thiệu Bộ Thư Viện TCP/IP Của Microchip...................................... 20
4.1: Sơ lược về TCP/IP Stack của Microchp................................................ 21
4.2: Mô hình tham chiếu TCP/IP stack......................................................... 21
4.3:Cấu Hình.................................................................................................... 22
4.4:Sử Dụng TCP/IP Stack.............................................................................. 25
4.5:Các lớp chức năng của TCP/IP Stack..................................................... 27
4.6 HTTP Server.............................................................................................. 33
4.7 FTP Server.................................................................................................. 35
Chương 5: Giới Thiệu Led Ma Trận Và Bảng Quang Báo............................ 37
5.1: Giới thiệu về led ma trận........................................................................ 37
5.2: Một số hình ảnh về bảng quang báo thực tế........................................ 38
5.3: Giới thiệu về bảng quang báo trong đề tài........................................... 39
Chương 6: Các Phương Pháp Hiển Thị Led Ma Trận................................................ 41
6.1: Phương pháp hiển thị bằng IC chốt....................................................... 41
6.2: Phương pháp sử dụng thanh ghi dịch.................................................... 44
6.3: Mạch quang báo sử dụng trong đồ án................................................... 48
Chương 7: Khảo Sát Linh Kiện....................................................................................... 50
7.1: Vi điều khiển PIC 16F877A................................................................... 50
7.2: Vi điều khiển PIC 18F4680.................................................................... 59
7.3: IC TPIC6B595...................................................................................... 73
7.4: IC ULN2803............................................................................................. 76
7.5:ENC28J60.................................................................................................. 77
Chương 8:Sơ Đồ Nguyên Lý VàTính Toán Mạch......................................................... 80
8.1: Sơ đồ nguyên lý....................................................................................... 80
8.2: Khối nguồn............................................................................................... 80
8.3: Khối điều khiển hiển thị......................................................................... 81
8.4: Khối hiển thị............................................................................................. 82
8.5: Khối quét cột............................................................................................ 84
8.6: Khối đệm dòng cho hàng........................................................................ 85
8.7: Khối giao tiếp mạng................................................................................ 86
Chương 9: Nguyên Lý Hoạt Động Và Lưu Đồ Giải Thuật......................................... 88
9.1: Nguyên lý hoạt động............................................................................... 88
9.2: Mô hình hệ thống..................................................................................... 88
9.3: Lưu đồ giải thuật và code chương trình................................................ 94
Chương Tổng Kết............................................................................................................. 110
PHẦN II: PHỤ LỤC
Chúng em xin chân thành cảm ơn các thầy cô trong khoa Điện tử- Tin học đã giảng dạy chúng em những kiến thức về chuyên môn và giúp chúng em định hướng theo sự hiểu biết và khả năng để chúng em thực hiện tốt đồ án “Quang báo điều khiển qua internet” và tạo điều kiện thuận lợi cho chúng em hoàn tất khoá học.
Nhóm chúng em xin gởi lời cảm ơn đến thầy Trương Quang Trung, người đã hướng dẫn, giúp đỡ chúng em tận tình và tạo mọi điều kiện tốt cho chúng em thực hiện đồ án môn học này.
Ngoài ra, nhóm cũng hết lòng biết ơn gia đình, bạn bè đã hết lòng giúp đỡ, động viên, ủng hộ và đóng góp ý kiến cho chúng em trong suốt thời gian thực hiện đồ án môn học này.
Nhóm chúng em xin chân thành cảm ơn!
CHƯƠNG DẪN NHẬP
- ĐẶT VẤN ĐỀ:
Thông tin liên lạc là vấn đề được quan tâm trong xã hội. Ngay từ ngày xưa, con người đã biết vận dụng những gì đã có sẵn để truyền tin như lửa, âm thanh, các dấu hiệu…
Ngày nay, với sự phát triển của xã hội thì ngày càng có nhiều cách tiếp cận với những thông tin mới. Ta có thể biết được thông tin qua báo chí, truyền hình, mạng internet, qua các pano, áp phích… Thông tin cần phải được truyền đi nhanh chóng, kịp thời và phổ biến rộng rãi trong toàn xã hội. Và việc thu thập thông tin kịp thời, chính xác là yếu tố hết sức quan trọng trong sự thành công của mọi lĩnh vực. Các thiết bị tự động được điều khiển từ xa qua một thiết bị chủ hoặc được điều khiển trực tiếp qua hệ thống máy tính.
Việc sử dụng vi điều khiển để điều khiển hiển thị có rất nhiều ưu điểm mà các phương pháp truyền thống như panô, áp phích không có được như việc điều chỉnh thông tin một cách nhanh chóng bằng cách thay đổi chương trình. Với những lý do trên, nhóm thực hiện đề tài đưa ra một cách thức nữa phục vụ thông tin là dùng quang báo. Nội dung nghiên cứu của đề tài chính là tạo ra một bảng quang báo ứng dụng trong việc hiển thị thong tin ở các nơi công cộng như công ty, nhà xưởng, nhà ga…
Thế giới ngày càng phát triển thì lĩnh vực điều khiển cần phải được mở rộng hơn. Việc ứng dụng mạng truyền thông công nghiệp vào sản xuất mang lại nhiều thuận lợi cho xã hội loài người, thông tin được cập nhật nhanh chóng và được điều khiển một cách chính xác.
1.2 TẦM QUAN TRỌNG CỦA ĐỀ TÀI
Quang báo ngày nay đã được đưa vào sử dụng ở rất nhiều lĩnh vực khác nhau như: truyền thông, quảng cáo, giới thiệu sản phẩm, thông báo tin tức (thay cho các bản tin bằng giấy…). Đề tài có một vị trí quan trọng trong những ứng dụng đòi hỏi cần hiển thị thông tin cập nhật từ internet. lượng thông tin thay đổi liên tục mà các phương pháp khác không thể thực hiện được hoặc quá tốn kém.
Xuất phát từ những lợi ích trên, nhóm thực hiện đề tài sẽ thiết kế và thi công mô hình một bảng quang báo có khả năng giao tiếp internet, thân thiện với người sử dụng, và sẽ được hiển thị trên bảng quang báo điều khiển từ xa qua internet.
1.3 NỘI DUNG ĐỀ TÀI:
Với khoảng thời gian thực hiện đề tài 4 tuần, nhóm đã thảo luận và chọn nội dung của đề tài như sau:
- Tìm hiểu cấu trúc mạn Internet.
- Thi công bảng quang báo hiển thị đơn sắc kích thước 8×32 điểm ảnh.
- Thay đổi thông tin trên quang báo bằng cách truyền dữ liệu vào vi xử lý thông qua giao diện web.
1.4 MỤC ĐÍCH ĐỀ TÀI:
Trong quá trình nghiên cứu và thực hiện đề tài này nhằm giúp người học:
- Tăng khả năng tự nghiên cứu cũng như tự học.
- Bước đầu tiếp xúc với thực tế.
- Vận dụng những kiến thức đã có đồng thời tìm tòi những kiến thức mới để hiểu sâu sắc hơn trong lĩnh vực này.
Để thiết kế được một hệ thống như đã nêu ở trên thì người nghiên cứu phải nắm vững kiến thức chuyên ngành điện tử, tìm hiểu, nghiên cứu qua sách vở, tài liệu nước ngoài và dạng mạch thực tế để thi công phần cứng.
1.5 ĐỐI TƯỢNG NGHIÊN CỨU:
- Các phương án điều khiển và xử lý dữ liệu cho bảng led ma trận.
- Tìm hiểu vi điều khiển PIC16F877A.
- Tìm hiểu vi điều khiển PIC 18LF4680.
- Tìm hiểu phương pháp lập trình CCS cho PIC.
- Tìm hiểu phương pháp lập trình nhúng trang web vào vi xử lý 18LF4680.
- Tìm hiểu IC giao tiếp Ethetnet ENC28J60.
- Bảng quang báo led ma trận kích thước 8 x 32 điểm ảnh.
1.6 LẬP KẾ HOẠCH NGHIÊN CỨU:
Để thực hiện đề tài này nhóm sinh viên đã kết hợp sử dụng nhiều phương pháp và phương tiện hỗ trợ gồm có:
- Tham khảo tài liệu: kỹ thuật xung, kỹ thuật số, điện tử căn bản, vi điều khiển….
- Quan sát.
- Thực nghiệm.
- Tổng kết kinh nghiệm.
- Phương tiện: máy vi tính, Internet, thư viện….
Kế hoạch nghiên cứu:
- Tuần 1: Nhận đề tài và lập đề cương tổng quát.
Thu thập tài liệu và lập đề cương chi tiết.
- Tuần 2, 3, 4: Thiết kế thi công và viết báo cáo.
CHƯƠNG II:
TỔNG QUAN VỀ MẠNG INTERNET
- Giới thiệu:
Internet là một hệ thống thông tin toàn cầu có thể được truy nhập công cộng gồm các mạng máy tính được liên kết với nhau. Hệ thống này truyền thông tin theo kiểu nối chuyển gói dữ liệu (packet switching) dựa trên một giao thức liên mạng đã được chuẩn hóa (giao thức IP). Hệ thống này bao gồm hàng ngàn mạng máy tính nhỏ hơn của các doanh nghiệp, của các viện nghiên cứu và các trường đại học, của người dùng cá nhân, và các chính phủ trên toàn cầu. Chúng cung cấp một khối lượng thông tin và dịch vụ khổng lồ trên internet.
Mạng Internet mang lại rất nhiều tiện ích hữu dụng cho người sử dụng, một trong các tiện ích phổ thông của Internet là hệ thống thư điện tử (email), trò chuyện trực tuyến (chat), máy truy tìm dữ liệu (search engine), các dịch vụ thương mãi và chuyển ngân, và các dịch vụ về y tế giáo dục như là chữa bệnh từ xa hoặc tổ chức các lớp học ảo.
Nguồn thông tin khổng lồ kèm theo các dịch vụ tương ứng chính là hệ thống các trang Web liên kết với nhau và các tài liệu khác trong WWW (World Wide Web). Trái với một số cách sử dụng thường ngày, Internet và WWW không đồng nghĩa. Internet là một tập hợp các mạng máy tính kết nối với nhau bằng dây đồng, cáp quang, v.v..; còn WWW, hay Web, là một tập hợp các tài liệu liên kết với nhau bằng các siêu liên kết (hyperlink) và các địa chỉ URL, và nó có thể được truy nhập bằng cách sử dụng Internet.
-
Hoạt động của mạng internet
- Các Giao Thức ( Protocols).
Các giao thức là tập các luật mà các máy tính phải tuân theo khi giao tiếp trên Internet.
- Tranmission Control Protocol (TCP): thiết lập kết nối giữa hai máy tính để truyền tải dữ liệu, chia dữ liệu thành những gói nhỏ và đảm bảo việc truyền nhận dữ liệu. TCP là giao thức hướng kết nối (connection-oriented protocol).
- User Datagram Protocol (UDP): thiết lập kết nối nhanh nhưng không chắc chắn giữa các máy tính để truyền tải dữ liệu, cung cấp ít dịch vụ đểkhắc phục lỗi.
- Internet Protocol (IP): điều chỉnh đường đi của những gói dữ liệu đường truyền nhận trên Internet. TCP là giao thức phi kết nối (connectionless protocol).
- HTTP: cho phép trao đổi thông tin trên Internet.
- FTP: cho phép truyền nhận file trên Internet.
- SMTP: cho phép gửi thư điện tử trên Internet.
- POP3: cho phép nhận thư điện tử trên Internet.
TCP/IP được dùng làm giao thức chuẩn khi giao tiếp trên Internet vì nó độc lập với nền của hệ thống (platform independent) và không có tổ chức nào có quyền sở hữu giao thức này.
- Địa Chỉ IP ( IP Adress).
Internet là một mạng kết nối rộng lớn giữa các máy tính. Để xác định một máy tính trên mạng này, người ta dùng một con số gọi là địa chỉ IP. Địa chỉ IP gồm một tập 4 số nhỏ hơn 255 và được ngăn cách bởi các dấu ‘.’. Ví dụ: 41.212.196.197.
- Mô Hình Khách – Chủ ( Client – Server Model).
Internet dựa trên mô hình khách – chủ (client – server), trong đó dữ liệu được trao đổi thông qua các trang web. Trong mô hình client – server, mỗi máy tính được xác định bởi một địa chỉ Internet protocol (IP) và cả máy tính client, server cùng chấp nhận một giao thức chung để để giao tiếp với nhau.
Trong mô hình khách - chủ, máy khách (client computer) yêu cầu thông tin từ một máy chủ (server). Máy chủ chấp nhận yêu cầu và gửi thông tin về cho máy khách. Việc trao đổi thông tin này được diễn ra thông qua những trang web.
- Hệ Thống Tên Miền ( DNS- Domain Name System).
Mỗi máy tính trên mạng Internet được xác định bằng địa chỉ IP, nhưng con số này rất khó nhớ. Để khắc phục nhược điểm này, người ta dùng hệ thống tên miền để đặt tên cho máy tính. Ví dụ: tên miền www.yahoo.com ứng với địa chỉ IP 216.109.127.28. request web page Miền (domain) ứng với một tập các máy tính trên Internet. Phần mở rộng của tên miền (domain name extension) được dùng để xác định quốc gia hay tổ chức.
- Kết Nối Internet.
Để kết nối với Internet cần có một số yêu cầu về phần cứng và phần mềm sau:
- Phần cứng: máy tính, kết nối thông qua đường dây điện thoại hoặc kết nối cáp, modem.
- Phần mềm: kết nối internet, hệ điều hành, giao thức TCP/IP, trình duyệt web.
Các yêu cầu thiết yếu khi kết nối với Internet: kết nối với Internet thông qua một nhà cung cấp Internet (Internet Service Provider), modem, trình duyệt và địa chỉ URL.
- Giao Thức TCP/IP:
TCP/IP là bộ giao thức cho phép kết nối các hệ thống mạng không đồng nhất với
nhau. TCP/IP là viết tắt của Transmission Control Protocol (Giao thức Điều Khiển Truyền thông)/Internet Protocol (Giao thức Internet), ngày nay TCP/IP
được sử dụng rộng rãi trong c ác mạng cục bộ cũng như trên mạng Internet toàn cầu. TCP/IP không chỉ gồm 2 giao thức mà thực tế nó là tập hợp của nhiều giao thức. Chúng ta gọi đó là 1 hệ giao thức hay bộ giao thức (Suite Of Protocols).
TCP/IP được xem là giản lược của mô hình tham chiếu OSI với bốn tầng, trong mô hình này là (theo thứ tự từ trên xuống):
+ Tầng ứng dụng (Application Layer)
+ Tầng giao vận (Transport Layer)
+Tầng mạng (Internet Layer)
+ Tầng liên mạng (Network Interface Layer)
Hình 2.1 Kiến trúc TCP/IP
Tầng liên mạng (Network Interface Layer): Tầng Liên Mạng có trách nhiệm đưa
dữ liệu tới và nhận dữ liệu từ phương tiện truyền dẫn. Tầng này bao gồm các thiết bị
giao tiếp mạng(Card Mạng và Cáp Mạng) và chương trình cung cấp các thông tin cần
thiết để có thể hoạt động, truy nhập đường truyền vật lý qua thiết bị giao tiếp mạng đó.
Tầng mạng (Internet Layer): Nằm trên tầng liên mạng. Tầng này có chức năng gán
địa chỉ, đóng gói và định tuyến (Route) dữ liệu. Bốn giao thức quan trọng nhất trongtầ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 (Media Access Control).
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).
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 có
hai giao thức chính: TCP (Transmission Control Protocol) và UDP (User Datagram Protocol). TCP cung cấp các kênh truyền thông hướng kết nối và đảm bảo truyền dữ liệu một cách tin cậy, nó cung cấp một luồng dữ liệu tin cậy giữa hai trạm, nó sử dụng các cơ chế như chia nhỏ các gói tin của tầng trên thành các gói tin có kích thước thích hợp cho tầng mạng bên dưới, báo nhận gói tin, đặt hạn chế thời gian time-out để đảm bảo bên nhận biết được các gói tin đã gửi đi. TCP thường truyền các gói tin có kích thước lớn và yêu cầu phía nhận xác nhận về các gói tin đã nhận. Do tầng này đảm bảo tính tin cậy, tầng trên sẽ không cần quan tâm đến nữa.
UDP cung cấp một dịch vụ đơn giản hơn cho tầng ứng dụng. UDP cung cấp
kênh truyền thông phi kết nối, nó chỉ gửi các gói dữ liệu từ trạm này tới trạm kia mà
không đảm bảo các gói tin đến được tới đích. Các ứng dụng dùng UDP thường chỉ
truyền những gói có kích thước nhỏ, độ tin cậy dữ liệu phụ thuộc vào từng ứng dụng.
Các cơ chế đảm bảo độ tin cậy cần được thực hiện bởi tầng trên.
Tầng ứng dụng (Application Layer): Tầng ứng dụng là tầng trên cùng của mô hình
TCP/IP bao gồm các tiến trình và các ứng dụng cung cấp cho người sử dụng để truy
cập mạng. Một 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
SNMP (Simpe 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 thức truyền tập tin bình thường
SMTP (Simple Mail Transfer Protocol): Giao thức truyền thư đơn giản.
TELNET
- Công Nghệ Ethernet:
Hơn 20 năm trước, Ethernet ra đời mang lại một mạng truyền dữ liệu nối tiếp tốc độ cao; tới nay, nó đã trở thành một chuẩn được chấp nhận khắp thế giới, và là giao thức thống trị các mạng LAN. Hơn 85% kết nối mạng được cài đặt trên thế giới là Ethernet. Tốc độ truyền dữ liệu phổ biến nhất của Ethernet là 10 triệu bit/s (10 Mbps), mặc dù vậy, hầu hết các mạng hiện nay đang được nhanh chóng nâng cấp lên Fast Ethernet với tốc độ 100 Mbps. Ethernet thường gắn với hệ điều khiển công nghiệp qua một điều khiển độc lập kết nối với PC hay mạng bằng cáp Ethernet.
Ngày 22 tháng 5 năm 1973, Robert Metcalfe thuộc Trung tâm Nghiên cứu Palto Alto của hãng Xerox – PARC, bang California, đã đưa ra ý tưởng hệ thống kết nối mạng máy tính cho phép các máy tính có thể truyền dữ liệu với nhau và với máy in lazer. Lúc này, các hệ thống tính toán lớn đều được thiết kế dựa trên các máy tính trung tâm đắt tiền (mainframe). Điểm khác biệt lớn mà Ethernet mang lại là các máy tính có thể trao đổi thông tin trực tiếp với nhau mà không cần qua máy tính trung tâm. Mô hình mới này làm thay đổi thế giới công nghệ truyền thông.
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) Access Method vesus Physical Layer Specification. 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á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 2.2. Cấu trúc khung tin Ethernet
Các trường quan trọng trong phần mào đầu sẽ được mô tả dưới đây:
• preamble: 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 một 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
CHƯƠNG III:
GIỚI THIỆU MODEL ETHERNET SỬ DỤNG ENC28J60
- Giới thiệu Hình 3.1. Modeml ethernet sử dụng ENC28J60
- Đây mà model được Microchip cung cấp miễn phí cùng với bộ thư viện TCP/IP Stack của dự án mã nguồn mở .
- Model sử dụng Jack RJ45 tích hợp sẳn biến áp và Led.
- Ngõ giao tiếp đưa ra header sẵn để giao tiếp với các microcontroller khác nhau như PIC, dsPIC, 8051/AVR, ARM... bao gồm các chân +5V, +3.3V, CLK0, INT, SO, SI, SCK, CS, RST, INT sẽ tiết kiệm rất nhiều thời gian và chi phí cho phát triển ứng dụng của mình.
- Màng hình LCD dùng để hiển thị địa chỉ IP khi kết nối vào mạng.
- Vi mạch truyền thông Enthernet ENC28J60.
Trên thế giới có rất nhiều hãng cung cấp vi mạch hỗ trợ sẵn sàng cho các giao tiếp theo giao thức TCP/IP, như các hãng lớn: Realtek, Conexant, MicroChip,... Tuy nhiên, xét trên quan điểm của người thiết kế thì các chíp được đánh giá cao là chíp đáp ứng được nhu cầu thực tế (không thiếu và cũng không quá dư thừa tính năng), được sự hỗ trợ tối đa từ hãng về các thư viện lập trình, dễ dàng giao tiếp với các vi xử lý, mạch thiết kế đơn giản, ít đòi hỏi các linh kiện ngoài. Từ những tiêu chí đó, cùng với sự ra đời dòng chíp hỗ trợ hoàn toàn giao thức ethernet, việc lựa chọn ENC28J60 của MicroChip là lựa chọn rất phù hợp, cả về tính năng kỹ thuật và giá cả (tại thời điểm năm 2008,2009 giá ~3USD/1chíp). Ngoài ra, hãng hỗ trợ đầy đủ tài liệu và các thư viện lập trình, rất thân thiện khi ghép nối với các họ vi xử lý có trên thị trường.
- Các thông số kỹ thuật.
Hình 3.2. Sơ đồ vi mạch giao tiếp ethernet ENC28J60
-
Giới thiêu chung:
- Tương thích chuẩn IEEE 802.3 Ethernet Controller.
- Tích hợp địa chỉ MAC và 10BASE-T PHY
- Bộ đệm SRAM 8 Kbyte Transmit/Receive Packet Dual Port Buffer.
- Chế độ tự động gửi lại khi có xung đột.
-
Chế độ tự động hủy bỏ các gói tin sai.
-
Bộ Đệm:
- Kích thước bộ đệm transmit/receive có thể lập trình được.
- Giám sát quá trình nhận FIFO.
-
Bộ Đệm:
-
PHY:
- Bộ lộc tín hiệu ra.
-
Có chế độ Loopback
-
Mac(Media access Control):
- Hỗ trợ Unicast, Multicast và Broadcast
- Hỗ trợ nhiều dạng đóng gói tin Magic Packet®, Unicast, Multicast ,Broadcast
-
Mac(Media access Control):
- Các khối cơ bản bên trong ENC28J60:
Bao gồm 7 khối cơ bản sau:
- Một giao diện SPI dùng để giao tiếp với vi điều khiển.
- Khối giám sát và điều khiển ENC28J60.
- Bộ nhớ đệm Sram cho viêc truyề và nhận gói tin.
- Khối giám sát việc truy cập vào bộ nhớ đệm.
- Khối Bus dữ liệu giả mã lệnh thông qua SPI.
- Module Mac theo chuẩn IEEE802.3.
- Module PHY mã hóa và giải mã tín hiệu điện.
Hình 3.3. Sơ đồ khối vi mạch giao tiếp ethernet ENC28J60
- Sơ đồ kết nối với các thiết bị ngoại vi.
Vi mạch ENC28J60 giao tiếp với các vi xử lý khác thông qua chuẩn truyền dữ liệu nối tiếp SPI (Serial Peripheral Interface), đây là chuẩn giao tiếp rất phổ biến, được dùng để nối các vi mạch trong cùng một hệ thống với ưu điểm là chạy nhanh và tốn rất ít dây nối tín hiệu, chỉ cần 3 dây cho cả đường ghi và đọc, đó là:
Hình 3.4. Sơ đồ ghép nối ENC28J60 với vi xử lý
SCK Serial Clock – Xung đồng bộ cho đường nối tiếp.
SI Serial Input – Tín hiệu nối tiếp vào (ghi).
SO Serial Output – Tín hiệu nối tiếp ra (đọc).
Sau đây là bộ lệnh SPI dùng cho vi mạch ENC28J60 và các giản đồ xung thể hiện các quá trình ghi, đọc dữ liệu, lệnh giữa vi xử lý và ENC28J60.
Hình 3.5. Quá trình đọc thanh ghi điều khiển Ethernet
Hình 3.6. Quá trình đọc thanh ghi điều khiển MAC
Hình 3.7 Quá trình ghi vào thanh ghi lệnh
Hình 3.8. Quá trình ghi vào bộ đệm lệnh
Hình 3.9 Quá trình ghi vào lệnh của hệ thống
Mặc dù đã được thiết kế theo cấu trúc “stand alone” (một chip làm hết các việc) nhưng việc điều khiển để vi mạch này hoạt động được là rất phức tạp và đòi hỏi có hiểu biết khá toàn diện về vi điều khiển, mạch điện tử và mạng Internet. Tuy nhiên, rất may mắn cho người thiết kế và lập trình vì hãng MicroChip (hãng sản xuất vi mạch ENC28J60) đã hỗ trợ tối đa, bằng cách đưa ra đầy đủ các thư viện phục vụ cho việc lập trình, làm cho việc lập trình giao tiếp với vi mạch này trở nên khá dễ dàng.
CHƯƠNG IV:
GIỚI THIỆU BỘ THƯ VIỆN TCP/IP STACK CỦA MICROCHIP
- Sơ lược về TCP/IP Stack của Microchip
Bộ thư viên TCP / IP Stack của Microchip cung cấp một nền tảng cho các ứng dụng Ethernet do xử lý hầu hết các yêu cầu tương tác giữa các tầng vật lý và tầng ứng dụng . Nó bao gồm các ứng dụng phổ biến của tầng ứng dụng, bao gồm HTTP2 phục vụ các trang web, SMTP để gửi e-mail, SNMP cung cấp tình trạng, kiểm soát, Telnet, TFTP,-to Serial Ethernet, và nhiều hơn nữa. Ngoài ra, bộ thư viện TCP/IP stack này có dung lượng tương đối nhẹ và hiệu suất triển khai cao của TCP và UDP tầng giao vận, cũng như các module hỗ trợ khác như IP, ICMP, DHCP,ARP,vàDNS.
Bộ thư viên TCP / IP Stack của Microchip. Tối ưu hoá cho tất cả các PIC18, PIC24, dsPIC và gia đình vi điều khiển PIC32.Các ngăn xếp được chia thành nhiều lớp, mỗi lớp truy cập dịch vụ từ một hoặc nhiều lớp trực tiếp dưới nó. . Bộ thư viên TCP / IP Stack bao gồm các tính năng chính:
- Tối ưu hoá cho tất cả các PIC18, PIC24, dsPIC và PIC32 gia đình
- Hỗ trợ giao thức: ARP, IP, ICMP, UDP, TCP, DHCP, SNMP, HTTP, FTP, TFTP
- Socket hỗ trợ cho TCP và UDP
- Secure Sockets Layer (SSL)
- NetBIOS vụ dịch vụ tên
- DNS - Domain Name System
- Ethernet Device Discovery
- Hỗ trợ cho MPLAB C18, C30, C32 v à trình biên dịch
Bộ thư viện TCP/IP stack được viết bằng của ngôn ngữ lập trình 'C.Toàn bộ code có dung lượng khoảng 28-34 KB, tùy thuộc vào mục đích được sử dụng, Bộ thư viện để lại nhiều không gian trên để người dùng có thể điểu chỉnh cho phú hợp với ứng dụng của mình
- Mô hình tham chiếu TCP/IP stack
Giống như mô hình tham chiếu TCP / IP, TCP / IP Stack cũng được chia thành nhiều lớp (Hình 2.1). Mỗi lớp có 1 chức năng riêng, trong khi các dịch vụ và các API (Giao diện lập trình ứng dụng) được định nghĩa thông qua các tiêu đề, bao gồm các tập tin. Không giống mô hình TCP / IP, các lớp trong TCP / IP Stack trực tiếp truy cập vào một hoặc nhiều lớp mà không phụ thục vào lớp dưới nó. Một bổ sung lớn của TCP / IP Stack là thực hiện việc bổ sung hai modules mới: "StackTask" và "ARPTask". StackTask quản lý hoạt động của Stack và tất cả các module của nó, trong khi ARPTask quản lý các dịch vụ của các Địa chỉ Nghị quyết Protocol (ARP) lớp. Như đã đề cập trước đó, TCP / IP Stack là một bộ chương trình; một số lớp của nó phải có khả năng thực hiện một số hoạt động không đồng bộ. Để có thể đáp ứng được điều này đồi hỏi phải có tính tương đối độc lập khi sử dụng dịch vụ.
Hình 4.1 So sánh mô hình TCP/IP và mo hình TCP/IP Stac
- Cấu hình
TCP/IP Stack là bộ chương trình được viết bằng ngôn ngữ “C”. Để bật, tắt hoặc thiết lập một tham số nào đó người sử dụng chỉ cần thay đổi một hoặc nhiều tham số trong các định nghĩa . Hầu hết các tham số này được định nghĩa trong tập tin header, "StackTsk.h". Một số định nghĩa được quy định tại các tập tin khác được hiển thị với tên tập tin tương ứng. Một khi tập tin này được sửa đổi, người sử dụng phải xây dựng lại các ứng dụng cho phù hơp với dự án của mình. Các định nghĩa được liệt kê trong bảng1.
Định nghĩa |
Giá trị |
Sử dụng |
Chức năng |
CLOCK_FREQ (compiler.h) |
Oscillator Frequency (Hz) |
Tick.c |
Xác định hệ thống dao động tần số |
TICKS_PER_SECONDS |
10-255 |
Tick.c |
Để tính toán một lần thứ hai |
TICK_PRESCALE_VALUE |
2, 4, 8, 16, 32, 64, 128, 256 |
Tick.c |
Để xác định giá trị đánh dấu vào truy cập |
MPFS_USE_PGRM |
N/A |
MP File System (MPFS.c) |
Sử dụng bộ nhớ chương trinh dể lưu trử MPFS |
MPFS_USE_EEPROM |
N/A |
MPFS.c |
Sử dụng eeprom dể lưu trử MPFS |
MPFS_RESERVE_BLOCK |
0-255 |
MPFS.c |
Số byte MPFS duo9c5 lưu trữ |
EEPROM_CONTROL |
External Data EEPROM Control Code |
MPFS.c |
Địa chỉ lưu vào eeprom |
STACK_USE_ICMP |
N/A |
StackTsk.c |
Yệu cấu sử dụng ICMP |
STACK_USE_SLIP |
N/A |
SLIP.c |
Yệu cấu sử dụng SLIP |
STACK_USE_IP_GLEANING |
N/A |
StackTsk.c |
Yệu cấu sử dụng IP |
STACK_USE_DHCP |
N/A |
DHCP.c, StackTsk.c |
Yệu cấu sử dụng dhcp |
STACK_USE_FTP_SERVER |
N/A |
FTP.c |
Yệu cấu sử dụng FTP |
STACK_USE_TCP |
N/A |
TCP.c, StackTsk.c |
Yệu cấu sử dụng TCP |
STACK_USE_UDP |
N/A |
UDP.c, StackTsk.c |
Yệu cấu sử dụng TCP |
STACK_CLIENT_MODE |
N/A |
ARP.c, TCP.c |
Kích hoạt client |
TCP_NO_WAIT_FOR_ACK |
N/A |
TCP.c |
TCP sẻ đợi ACK trước khi truyền |
MY_DEFAULT_IP_ADDR_BYTE MY_DEFAULT_MASK_BYTE? MY_DEFAULT_GATE_BYTE? MY_DEFAULT_MAC_BYTE? |
0-255 |
User Application |
Xác định mặc định IP, MAC, gateway và subnet mask giá trị.
|
MY_IP_BYTE? MY_MASK_BYTE? MY_GATE_BYTE? MY_MAC_BYTE? |
0-255 |
MAC.c, ARP.c, DHCP.c, User Application |
IP, MAC, gateway và subnet mặt nạ giá trị như lưu / định nghĩa bởi ứng dụng. Nếu DHCP được kích hoạt, những hản ánh các giá trị hiện tại máy chủ DHCP |
MAX_SOCKETS |
1-253 |
TCP.c |
Để xác định tổng số sockets hỗ trợ (giới hạn bởi bộ nhớ RAM có sẵn).
|
MAX_UDP_SOCKETS |
201-1500 |
TCP.c, MAC.c |
Xác định kích thước bộ đệm. |
MAX_TX_BUFFER_COUNT |
1-255 |
MAC.c |
Xác định tổng số truyền qua bộ đệm. con số này được hạn chế bởi kích thước bộ đệm của Mac |
MAX_HTTP_CONNECTIONS |
1-255 |
HTTP.c |
Xác định số lượng tối da HTTM được kết nối |
MPFS_WRITE_PAGE_SIZE (MPFS.h) |
1-255 |
MPFS.c |
Xác định kích thước có thể ghi trên MPFS |
FTP_USER_NAME_LEN (FTP.h) |
1-31 |
FTP.c |
Xác định độ dài tối đa của FTP |
MAX_HTTP_ARGS (HTTP.c) |
1-31 |
HTTP.c |
Xác định số tối da của HTML |
MAX_HTML_CMD_LEN (HTTP.c) |
1-128 |
HTTP.c |
Xác định độ dài tối đa của HTML |
- Sử dụng TCP/IP Stack
Bộ thư viện TCP/IP Stack chứa đầy đủ các Module hỗ trợ như :HTTP, IP, FTP, DHCP. Tùy vào mục đích sử dụng mà người lập trình có thể thay đổi cho phù hợp với dự án mùa mình, nhung một số tập tin nhất đinh phải có trong dự án. Các module và tập tin đó được trình bày trong bảng sau:
Module |
Tập tin bất buộc |
Mục đích |
MAC |
MAC.c Delay.c |
Media Access Layer |
SLIP |
SLIP.c |
Media Access Layer for SLIP |
ARP |
ARP.c ARPTsk.c MAC.c or SLIP.c Helpers.c |
Address Resolution Protocol |
IP |
IP.c MAC.c or SLIP.c Helpers.c |
Internet Protocol |
ICMP |
ICMP.c StackTsk.c IP.c MAC.c or SLIP.c Helpers.c |
Internet Control Message Protocol |
TCP |
StackTsk.c UDP.c IP.c MAC.c or SLIP.c Helpers.c |
Transmission Control Protocol |
UDP |
StackTsk.c UDP.c IP.c MAC.c or SLIP.c Helpers.c |
User Datagram Protocol |
Stack Manager |
StackTsk.c TCP.c IP.c ICMP.c ARPTsk.c ARP.c MAC.c or SLIP.c Tick.c Helpers.c |
Stack Manager (“StackTask”), which coordinates the other Microchip TCP/IP Stack modules |
HTTP Server |
HTTP.c TCP.c IP.c MAC.c or SLIP Helpers.c Tick.c MPFS.c XEEPROM.c(1)
|
HyperText Transfer Protocol Server |
DHCP Client |
DHCP.c UDP.c IP.c MAC.c Helpers.c Tick.c |
Dynamic Host Configuration Protocol |
IP Gleaning |
StackTsk.c ARP.c ARPTsk.c ICMP.c MAC.c or SLIP.c |
To configure node IP address only. |
FTP Server |
FTP.c TCP.c IP.c MAC.c or SLIP.c |
File Transfer Protocol Server. |
- Các lớp chức năng trong TCP/IP Stack
TCP/IP Stack có nhiều lớp để sử dụng 1 lớp thì ta cấn phải tím hiểu ý nghĩa và chức năng của chúng.
- Media Access Control Layer (MAC)
TCP/IP Stack bào gồm nhiều ứng dụng đã được cụ thể bằng văn bảng để sử dụng giao diện mạng lưu ý ứng dụng này đã được cụ thể bằng văn bản để sử dụng giao diện mạng Realtek RTL8019AS Controller (NIC). RTL8019AS là một NE2000 tương thích NIC, mà được thực hiện cả trên vật lý Ethernet (PHY) và lớp MAC. Nếu một NIC khác được sử dụng, người sử dụng sẽ cần phải sửa đổi hoặc tạo một file MAC.c mới để chữa truy cập. Miễn là dịch vụ được cung cấp bởi MAC.c không thay đổi thì tất cả các module khác sẽ vẫn không thay đổi.
Ngoài việc quản lý bộ đệm FIFO cho NIC. Mac còn quản lý bộ đệm truyền nhận, nó có thể yêu cầu một tập tin nào đó được truyền lại. người sử dụng có thể xác định được kích thước của bộ đệm nhờ vào file Mac.c.
- Serial Line Internet Protocol (SLIP)
Lớp SLIP sử dụng cáp nối tiếp như các giao tiếp phương tiện truyền thông, thay vì cáp ethernet. SLIP không đòi hỏi phải có NIC, do đó cung cấp rất đơn giản và kết nối không tốn kém IP. SLIP thường là một kết nối một-một, nơi một máy chủ kết nối với một máy khách. Các SLIP module được thiết kế để hoạt động với một Windows ® dựa trên máy tính, mặc dù nó có thể được sửa đổi để làm việc với hệ điều hành khác với rất ít thay đổi. Các APIs được cung cấp bởi các module SLIP cũng được sử dụng giống như MAC
- Address Resolution Protocol
Lớp ARP của TCP / IP Stack được thực hiện bởi hai mô lớp :ARP và ARPTask .ARP thực hiện bởi các tập tin "ARP.c", ARPTask thực hiện bởi các tập tin"ARPTsk.c" cung cấp hoàn thành dịch vụ ARP. ARPTask được thực hiện như một bộ máy tập hợp, đáp ứng yêu cầu ARP từ xa. Nó cũng duy trì một bộ nhớ cache một cấp để lưu trữ ARP trả lời và đưa một mức độ cao hơn cho phù hợp với các cuộc gọi. ARPTask là mốt cơ chế không thực hiện thử lại. Do đó, các lớp trên hoặc các ứng dụng này phải phát hiện ra điều kiện thời gian và trả lời phù hợp.
ARPTask hoạt động ở hai chế độ: chế độ Server và Server / Client. Trong chế độ Server Client , một phần của mã được kích hoạt và biên soạn để tạo ARP yêu cầu từ các máy chủ địa phương riêng của mình. Trong chế độ Server, cácARP mã yêu cầu không được biên dịch. Thông thường, nếu TCP/IP Stack được sử dụng với các ứng dụng máy chủ (như HTTP Serverhoặc phục vụ FTP) r, ARPTask nên được biên soạn trong Server hình thức để giảm kích thước mã.Trình biên dịch xác định bao gồm STACK_CLIENT_MODE phần mã khách hàng. Trong chế độ Server/ Client, ARPTask duy trì một bộ nhớ cache một cấp để lưu trữ các ARP trả lời của máy chủ từ xa. Khi Server / Client không được kích hoạt, bộ nhớ cache là không được định nghĩa và tương ứng với bộ nhớ RAM và bộ nhớ chương trình không được sử dụng.
- Internet Protocol (IP)
Lớp IP của TCP / IP Stack được thực hiện bởi các tập tin "IP.c". Các phần đầu tập tin "IP.h"xác định các dịch vụ được cung cấp bởi lớp này .Trong kiến trúc này, lớp IP là thụ động, nó không đáp ứng với các gói dữ liệu IP. Thay vào đó, lớp cao cấp sử dụng IP nguyên thủy và lấy các gói tin IP, giải mã nó và xủ lý một cách thích hợp. Đặc điểm kỹ thuật IP này là yêu cầu các máy chủ địa phương tạo ra một gói tin nhận dạng duy nhất cho mỗi gói tin truyền qua nó, nhận diện cho phép máy chủ từ xa xác định các gói tin trùng lặp và loại bỏ chúng. Lớp IP của TCP / IP Stack duy trì một tư nhân16-bit biến để theo dõi các gói tin định danh.
- Internet Control Message Protocol (ICMP)
Lớp ICMP được thực hiện bởi các tập tin "ICMP.c".Các tập tin tiêu đề "ICMP.h" định nghĩa các dịch vụ được cung cấp bởi lớp này. Trong kiến trúc này, lớp ICMP là một lớp thụ động, nó không đáp ứng với các gói dữ liệu ICMP. Thay vào đó, lớp cao cấp sử dụng ICMP nguyên thủy và tìm nạp ICMP gói tin, giải thích nó và xử lý cho thích hợp.
Thông thường, ICMP được sử dụng để gửi và nhận lỗi hoặc thăm dò tin nhắn. Trong TCP / IP Stack,ICMP thực hiện nguyên thủy có thể được sử dụng để tạo ra bất kỳ thông điệp ICMP. Trong nhữnng ứng dụng, ICMP là hữu ích cho mục đích thăm dò .Khi được kích hoạt, ICMP có thể đáp ứng với "ping" các gói tin, do đó cho phép một máy chủ từ xa có thể xác định máy chủ địa phương.
Các vi mạch lớp ICMP chỉ đáp ứng dữ liệu ping các dữ liệu lên đến 32 byte; gói tin lớn hơn sẽ được bỏ qua. Nếu ta muốn xử lý các gói tin lớn hơn thì chỉ cần sửa đổi các trình biên dịch xác định MAX_ICMP_DATA_LEN (trong các tập tin tiêu đề "StackTsk.h")
- Transmission Control Protocol (TCP)
Lớp TCP của TCP / IP Stack được thực hiện bởi các tập tin "TCP.c". Các phần đầu tập tin "TCP.h"xác định các dịch vụ được cung cấp bởi lớp này . Trong kiến trúc cũa TCP/IP Stack , TCP là một lớp đa hoạt động. Nó có thể tìm TCP các gói dữ liệu và đáp ứng đến các máy chủ từ xa theoTCP của máy chủ quán lý.
"TCP.h" cung cấp dịch vụ socket TCP và giấu tất cả TCP gói xử lý từ người gọi. Lớp này cho phép 2-253 TCP socket, số lượng giới hạn bởi bộ nhớ và trình biên dịch được sử dụng. Với hơn một socket, các ứng dụng cấp cao hơn có thể duy trì đồng thời nhiều kết nối TCP và có thể có nhiều hơn một ứng dụng được sử dụng lớp này. Cơ sở này rất hữu ích khi HTTP Server được sử dụng. Mỗi socket tiêu thụ khoảng 36 bytes (kiểm tra tập tin nguồn cho thực tếtiêu thụ) và làm tăng thời gian. tổng thể chế biến TCP
Không giống như các giao thức TCP / IP , tất cả socket trong TCP / IP Stack chia sẻ một hoặc nhiều hơn một bộ đệm truyền. Cách tiếp cận này làm giảm tổng thể được yêu cầu RAM, nhưng nó có thể tạo ra một vấn đề khác, như tại một vài socket không nhận đủ bộ đệm truyền và không báo thới gia sử dụng các socket. Trong hoàn cảnh này các máy chủ và máy địa phương không thể liên lac với nhau . Để tránh điều này, người dùng phải đảm bảo rằng có đủ bộ đệm truyền cho tất cả các socket.
Về việc nhận dư liệu , chỉ có một bộ đệm được nhận . Nếu socket nhận được dữ liệu của nó, chủ sở hữu của socket đó phải tìm nạp và loại bỏ bộ đệm nhận trong một khoảng thời gian ngắn để các socket khác có thể nhận dữ liệu của họ. Khi nó phát hiện gói tin nó là quan tâm, nó phải xử lý các gói hoàn chỉnh trong một thời gian ngắn. Nếu trong khoảng thời gian đó mà vân không lấy được gói tin thì nó sẽ đợi và lấy gói tin sau đó.
Theo yêu cầu của TCP, mỗi phân đoạn TCP chứa một bộ kiểm tra bao gồm toàn bộ các giao thức TCP và cả khu vực dữ liệu. Để giảm bộ nhớ RAM, lớp TCP sử dụng trong bộ đệm MACNIC là lưu trữ và thực hiện các tính toán checksum MAC trong bộ đệm riêng của mình. Nếu NIC được sử dụng như là một MAC thì các SRAM NIC được sử dụng như một bộ đệm không gian. Nhưng nếu là SLIP được sử dụng như là một MAC thì dữ liệu được lưu vào Ram nội.
Các lớp TCP của TCP/IP Stack thực hiện hầu hết các phần TCP máy nước chủ đề xuất bởi RFC793. Nó cũng thực hiện tự động và thử lại hẹn giờ hoạt động, trong đó người dùng có thể kích hoạt hoặc vô hiệu hóa bởi các biên dịch TCP_NO_WAIT_FOR_ACK định nghĩa thời gian. Khi việc gửi lại tự động được kích hoạt, mỗi socket truyền đệm được dành riêng cho đến khi nhận được một sự trả lởi từ máy chủ là nhận được. Thiết kế này tạo ra hiệu quả một truyền cửa sổ của một trong những phân đoạn TCP. Vì vậy, dữ liệu thông qua sẽ thấp hơn đáng kể hơn trong chế độ "Không gửi lại". Nếu chỉ có các HTTP Server được sử dụng, người sử dụng có thể vô hiệu hoá việc tự động gửi lại và tăng hiệu quả thông qua.Nếu việc áp dụng chính của logic yêu cầu mỗi gói sẽ được thừa nhận trước khi một cái mới có thể được truyền, người sử dụng nên cho phép chế độ "tự động gửi lại". Với tự động gửi lại được kích hoạt, một số các kết nối mở có thể không nhận phục vụ trên thời gian, và các máy chủ từ xa có thể được hưởng thời gian-outThiết lập lại hoặc sai sót.
- User Datagram Protocol (UDP)
Lớp UDP của TCP / IP Stack được thực hiện bởi các tập tin "UDP.c". Các phần đầu tập tin "UDP.h"xác định các dịch vụ được cung cấp bởi lớp này . Trong kiến trúc của TCP / IP Stack, UDP là một lớp đa hoạt động. Nó có thể tìm UDP các gói dữ liệu và thông báo cho UDP socket tương ứng của dữ liệu đến hoặc truyền tải điện.
"UDP.h" cung cấp dịch vụ socket UDP và giấu tất cả Xử lý gói tin UDP từ người gọi. Lớp này cho phép lên đến 254 UDP socket (số lượng giới hạn bởisẵn bộ nhớ và trình biên dịch được sử dụng). Với hơn một socket, các ứng dụng cấp cao hơn có thể duy trì Mul-tiple đồng thời kết nối UDP; có nhiều ứng dụng có thể được sử dụng lớp này. Mỗi socket tiêu thụ khoảng19 byte (kiểm tra "UDP.h" tập tin để tiêu thụ thực tế)và tăng thời gian xử lý tổng thể UDP.
Không giống như các giao thức TCP / IP , tất cả socket trong TCP / IP Stack chia sẻ một hoặc nhiều hơn một bộ đệm truyền. Cách tiếp cận này làm giảm tổng thể được yêu cầu RAM, nhưng nó có thể tạo ra một vấn đề khác, như tại một vài socket không nhận đủ bộ đệm truyền và không báo thới gia sử dụng các socket. Trong hoàn cảnh này các máy chủ và máy địa phương không thể liên lac với nhau . Để tránh điều này, người dùng phải đảm bảo rằng có đủ bộ đệm truyền cho tất cả các socket
- Dynamic Host Configuration Protocol (DHCP)
Lớp DHCP của TCP / IP Stack được thực hiện bởi các tập tin "dhcp.c". Các phần đầu tập tin"dhcp.h" định nghĩa các dịch vụ được cung cấp bởi lớp này .DHCP là một lớp đang hoạt động mà chương trình phát sóng DHCP yêu cầu, tự động nhận được và giải mã DHCP phản ứng. Các tính năng chính của nó bao gồm:
- Cấu hình địa chỉ IP, địa chỉ gateway và subnet mask.
- DHCP tự động cho thuê thời gian, đổi mới và quản lý việc cho thuê.
- Hoạt động hoàn toàn tự đông mà người sử dụng không cần cang thiệp.
Các module DHCP được thực hiện như một khối thống nhất có nhiệm vụ thực hiện các hoạt động tự động mà không có kiến thức về các ứng dụng chính. Các DHCP thực tế hội nhập và kiểm soát được thực hiện bởi các quản lý Stack; nó xử lý tất cả các hoạt động cần thiết của nó như một phần của tiêu chuẩn nhiệm vụ, bằng cách sử dụng API DHCP để kiểm soát các module của hành vi. Người dùng không cần biết về DHCP để sử dụng nó.
Một ứng dụng người dùng cũng có thể chọn để gọi một số các API để trực tiếp kiểm soát DHCP hoạt động, chẳng hạn như liệu DHCP được cấu hình hay không, và liệu DHCP có vĩnh viễn ngừng hoạt động. Thông thường, ứng dụng của người dùng không cần trực tiếp tương tác với DHCP .Để sử dụng module DHCP, người sử dụng phải sử dụng các tap tin sau:
1. Bỏ ghi chú “STACK_USE_DHCP “trong tiêu đề tập tin "StackTsk.h".
2. Phả có hai tập tin”dhcp.c " và "udp.c" trong dự án.
3. Tăng MAX_UDP_SOCKETS lên một (ít nhất một UDP socket phải có sẵn cho DHCP điều chỉnh số lượng socket dựa trên UDP và DHCP).
Khi DHCP được thực hiện, ứng dụng người dùng phải cố gắng truyền thông mạng cho đến khi DHCP được cấu hình đúng. Thông thường, nếu một ứng dụng người dùng có chứa các ứng dụng một hoặc nhiều khách hàng có yêu cầu thông tin liên lạc trên điện-up hoặc thiết lập lại, việc áp dụng phải kiểm tra xem DHCP được cấu hình trước khi truyền tải dữ liệu bằng cách sử dụng các mô-đun lớp thấp hơn .Điềuu này có thể được thực hiện với chức năng DHCPIsBound.
Đặc điểm kỹ thuật chính thức DHCP (RFC1541) là đòi hỏi các khách hàng DHCP phải làm mới cấu hình IP trước khi cho thuê thời gian. Để theo dõi thời gian thuê, người sử dụng phải chắc chắn rằng TickUpdate () được gọi theo yêu cầu, và đó chính xác là thời gian hợp lý duy trì (xem mã nguồn tập tin "websrvr.c"cho một ví dụ làm việc). Độ phân giải thời gian cần thiết là15 phút, cộng hoặc trừ, có nghĩa là TickUpdate () có thể được gọi là một ưu tiên rất thấp.Đối với các module DHCP điều tự động cập nhật cấu hình địa chỉ và subnet mask, phải có ít nhất một DHCP server trên mạng. Đó là trách nhiệm của người sử dụng để thực hiện một số phương pháp cho "xuất bản" các cấu hình lại cho người sử dụng tiềm năng. Gồm có nhiều tùy chọn tự việc đọc thông tin đến việc hiển thị ttrên mỗi nút, để lưu trữ thông tin trong một máy chủ trung tâm DHCP ta chỉ cần cập nhật kết quả các giá trị của MY_IP_BYTE?,MY_GATE_BYTE? và MY_MASK_BYTE?
- IP Gleaning for IP Address Configuration
Như là một thay thế DCHP, TCP / IP Stack cũng thực hiện một phương pháp đơn giản, được gọi là IP Gleaning, từ xa thiết lập địa chỉ IP của TCP / IP Stack . Phương pháp này không phải là một giao thức Internet chuẩn, và không có tương ứng với RFC. Gleaning IP chỉ cho phép địa chỉ IP được thiết lập .Đối với cấu hình IP hoàn tất, DCHP phải được sử dụng.
Gleaning IP không cần bất kỳ phần mềm trên module. Thay vào đó, nó sử dụng module ICMP ARP. Để sử dụng nó, tập tin "icmp.c" phải được khai báo , và trình biên dịch xác địnhS TACK_USE_IP_GLEANING ghi chu ben trong tập tinh StackTsh.h
- HTTP SERVER
HTTP Server kèm theo ứng dụng được thực hiện như một khối thống nhất tồn tại với các vi mạch TCP / IP Stack và ứng dụng chính của người dùng. Các HTTP Server chính nó được thực hiện tại tập tin "HTTP.c", với một ứng dụng người dùng
..........................................
TỔNG KẾT
Sau 4 tuần nghiên cứu và thực hiện với nhiều nỗ lực và cố gắng của nhóm thực hiện đề tài cùng với sự hướng dẫn tận tình của thầy Trương Quang Trung, quyển đồ án này đã hoàn thành với những nội dung như sau:
- CÁC VẤN ĐỀ ĐÃ ĐƯỢC GIẢI QUYẾT TRONG ĐỒ ÁN:
- Các vấn đề đã nghiên cứu:
- Nghiên cứu vi điều khiển PIC 16F877A và Pic 18F4680.
- Nghiên cứu cách quét led ma trận.
- Tìm hiểu Bộ thư viện TCP/IP Stack của Microchip.
- Nghiên cứu module Ethernet sư dụng chíp ENC28J60 của Microchip.
- Thiết kế và thi công mô hình một bảng quang báo.
- Các vấn đề đã thực hiện:
- Lập trình điều khiển vi điều khiển PIC 16F877A và Pic 18F4680 bằng ngôn ngữ CCS.
- Lập trình điều khiển led ma trận theo cách quét cột.
- Thi công mạch
Nhóm đã thi công xong các mạch sau:
- Mạch điều khiển.
- Mạch Giao tiếp Ethernet.
- Mạch hiển thị .
- Mạch nguồn.
- ƯU VÀ NHƯỢC ĐIỂM CỦA THI CÔNG MẠCH:
- Ưu điểm:
Chữ hiển thị rõ ràng, tốc độ di chuyển vừa phải.
Mạch hoạt động ổn định trong thời gian dài.
Thay đổi được dữ liệu hiện thị một cách linh hoạt, có thể ngồi ở bất cứ đâu có mạng internet để điều khiển.
- Nhược điểm
- Sau khi nhìn nhận lai, với mô hình đề tài này khi đưa vào sử dụng thực tế mạng internet, sẽ gặp phải những khó khăn trong việc xây dựng hệ thống bảo mật, chống phá hoại và thâm nhập trái phép. Để khắc phục những nhược điểm trên thì phải thiết kế một hệ thống khá đắt tiền và đòi hỏi phần mềm tại server khá phức tạp.
- Do ENC28J60 hoạt động ở tốc độ cao (10Mps) nên đôi khi mạch bị nhiễu.
- Do bộ nhớ ROM có dung lượng nhỏ nên muốn lưu nhiều font chữ thì phải thay đổi ROM có dung lượng lớn hơn.
- Các phương hướng phát triển đề tài
- Tăng kích thước của mạch quang báo cho phù hợp với thực tế sử dụng.
- Sử dụng nhiều font chữ để làm phong phú hơn bảng quang báo.
- Mặt khác đề tài là nền cho sự phát triển và ứng dụng của công nghệ điều khiển từ xa thông qua mạng internet, có thể ứng dụng cho nhiều mục đích khác như cảnh báo, giám sát, điểu khiển thiết bị trong mang nội bô, mạng internet…
KẾT LUẬN:
Đề tài: “QUANG BÁO ĐIỀU KHIỂN QUA INTERNET”. Đề tài đã trình bày được nguyên tắc hoạt động cơ bản của mạch quang báo đươc điều khiển qua internet, giới thiệu về cách sử dụng cũng như sơ đồ chân, sơ đồ nội bộ của các IC số dùng trong mạch.
Nhóm thực hiện đề tài xin chân thành cảm ơn quý thầy cô cùng các bạn sinh viên, đã đóng góp rất nhiều ý kiến, công sức quý báu trong quá trình nhóm thực hiện đề tài này.
Đặc biệt, chúng em xin cảm ơn thầy Trương Quang Trung đã nhiệt tình hướng dẫn, chỉ bảo những kinh nghiệm, kiến thức thực tế để đề tài được hoàn thành đúng thời gian quy định
Tuy nhiên, do còn hạn chế về thời gian và trình độ nên đề tài không tránh khỏi nhiều sai sót, nhóm rất mong nhận được sự đóng góp ý kiến chân tình của quý thầy cô và các bạn để đề tài được hoàn chỉnh hơn.
TÀI LIỆU THAM KHẢO
Các giáo trình:
===================================
[1] Giáo trình học tập môn Vi Xử Lý –PIC16F877A
[2] Giáo trinh học tập môn Kỹ Thuật Số
[3] Giáo trình học tập môn Kỹ Thuật Truyền Số Liệu
[4] Giáo trình học tập môn Mạch điện tử
[5] Giáo trình học tập môn Linh Kiện Điện Tử.
Các Website:
===================================
[1] www.picvietnam.net
[2] www.Microchip.com
[3] www.diendandientu.net
[4] www.datasheet4u.com
[5] www.dientuvietnam.net