Thông báo

Tất cả đồ án đều đã qua kiểm duyệt kỹ của chính Thầy/ Cô chuyên ngành kỹ thuật để xứng đáng là một trong những website đồ án thuộc khối ngành kỹ thuật uy tín & chất lượng.

Đảm bảo hoàn tiền 100% và huỷ đồ án khỏi hệ thống với những đồ án kém chất lượng.

ĐỒ ÁN TỐT NGHIỆP ĐIỆN tử CẢI TIẾN ĐIỀU KHIỂN THIẾT BỊ QUA INTERNET

mã tài liệu 301000300057
nguồn huongdandoan.com
đánh giá 5.0
mô tả 100 MB Bao gồm tất cả file asm, hex, lst., giao tiếp web...,.lưu đồ giải thuật.. CDR thuyết minh, bản vẽ nguyên lý, bản vẽ thiết kế, FILE lập trình, và nhiều tài liệu liên quan kèm theo đồ án này
giá 989,000 VNĐ
download đồ án

NỘI DUNG ĐỒ ÁN

 ĐỒ ÁN TỐT NGHIỆP ĐIỆN tử CẢI TIẾN ĐIỀU KHIỂN THIẾT BỊ QUA INTERNET

LỜI NÓI ĐẦU

Hiện nay đất nước ta đang chuyển mình theo sự phát triển chung của thế giới và khu vực Châu Á bằng nền sản xuất đa dạng và đầy tiềm năng. Nền sản xuất này không chỉ đòi hỏi một số lượng lao động khổng lồ mà còn yêu cầu về trình độ, chất lượng tay nghề, kỹ thuật lao động và thiết bị sản xuất. Trên đà phát triển đó, vấn đề tự động hoá trong quá trình sản xuất, nghiên cứu trở thành một nhu cầu cần thiết. Thoạt đầu vấn đề tự động hoá được thực hiện riêng lẻ từ cơ khí hoá đến các mạch điện tử. Ngày nay, với sự xuất hiện cuả các Chip vi xử lý và máy tính cùng với việc sử dụng rộng rãi của nó đã đẩy vấn đề tự động hoá lên một bước cao hơn và thời lượng nhanh hơn …

Trong đó, việc ứng dụng Máy Vi Tính vào kỹ thuật điều khiển đã đem lại những kết quả đầy tính ưu việc. Các thiết bị, hệ thống đo lường và điều khiển ghép nối với Máy Vi Tính có độ chính xác cao, thời gian thu thập số liệu ngắn. Ngoài ra, máy tính còn có phần giao diện lên màn hình rất tiện lợi cho người sử dụng.

Việc dùng máy tính để điều khiển và thông tin liên lạc với nhau thì vấn đề truyền dữ liệu rất quan trọng. Hiện nay chúng ta có thể dùng máy tính để liên lạc với nhau thông qua hệ thống mạng như: mạng cục bộ (LAN) hay mạng toàn cầu Internet. Do đó, trong phạm vi hiểu biết cuả mình, chúng em đã tìm hiểu và thực hiện đề tài: “Điều khiển thiết bị từ xa thông qua Internet.

MỤC LỤC

CHƯƠNG DẪN NHẬP. 2

1.1.       Đặt vấn đề. 2

1.2.       Tầm quan trọng của đề tài 2

1.3.       Giới hạn của đề tài 2

1.4.       Mục đích của đề tài 2

1.5.       Đối tượng nghiên cứu. 3

1.6.       Danh mục từ viết tắt. 3

CHƯƠNG II : 4

TỔNG QUAN VẾ MANG INTERNET. 4

2.1.       Giới thiệu. 4

2.2.       Hoạt động của mạng internet. 5

2.3.       Kết nối internet. 6

2.4.       Giao thức TCP/IP. 6

2.5.       Công nghệ Ethernet. 8

CHƯƠNG III : 10

GIỚI THIỆU BỘ THƯ VIỆN TCP/IP STACK CỦA MICROCHIP. 10

3.1         Sơ lược về TCP/IP Stack của Microchip. 10

3.2         Các lớp chức năng trong TCP/IP Stack. 12

3.3         Sử dụng TCP/IP stack. 16

3.3.1.         HTTP2 Server. 17

3.3.2.         Web pages. 18

3.3.3.         Tiện ích MPFS2. 19

3.3.4.         Giao diện web. 22

3.4         FTP Server. 25

CHƯƠNG IV: 26

THI CÔNG MẠCH.. 26

4.1.       Giới thiệu linh kiện trong mạch. 26

4.1.1.         ENC28J60. 26

4.1.2.         RJ45. 37

4.1.3.         EEPROM 25LC 256. 39

4.1.4.         IC đệm 74HC245. 43

4.1.5.         PIC 18F4620. 44

4.2.       Giới thiệu chuẩn giao tiếp SPI 50

4.2.1.         Khái quát. 50

4.2.2.         Truyền dữ liệu. 53

4.2.3.         Các chế độ hoạt động. 55

4.3.       Sơ đồ khối board điều khiển. 56

4.4.       Sơ đồ nguyên lí 58

4.5.       Lưu đồ giải thuật và chương trình. 64

4.5.1.        Lưu đồ giải thuật. 64

4.5.2.        Chương trình. 65

4.6.       Kết quả đạt được. 75

4.6.1.         Mô hình diều khiển qua mạng LAN.. 75

4.6.2.         Mô hình diều khiển qua mạng Internet. 76

KẾT LUẬN.. 81

5.1.       Các vấn đề đã ngiên cứu và làm được. 81

5.2.       Tự đánh giá. 81

5.3.       Hướng phát triển đề tài 82

PHỤ LỤC – PHỤ ĐÍNH.. 82

CHƯƠNG DẪN NHẬP

  1. Đặt vấn đề

- Ngày nay, khi công nghiệp ngày càng phát triển thì nhu cầu điều khiển được đặt lên hàng đầu. Xuất phát từ nhu cầu đó điện tử tự động hoá ra đời và nó đã được xếp trong nhóm 5 ngành khoa học công nghệ hàng đầu vì những ứng dụng rộng rãi của nó. Song song với sự ra đời của điện tử tự động hoá là sự ra đời và cải tiến không ngừng của máy tính. Từ những chiếc máy tính đời đầu chỉ thực hiện những phép tính đơn giản ngày nay máy tính có tốc độ xử lý rất cao, nó có thể xử lý hàng tỉ phép tính phức tạp trong vòng một giây. Để khai thác được những ưu điểm đó điện tử tự động hoá đã có sự bắt tay với máy vi tính. Nhờ có máy vi tính mà chúng ta có thể làm được nhiều công việc mà không phải tốn nhiều công sức. Xuất phát từ thực tế đó, bằng những kiến thức đã được học và sự giúp đở của thầy cô, em đã quyết định tìm hiểu về đề tài “điều khiển thiết bị qua Internet”.

  1. Tầm quan trọng của đề tài

-      Đây là một đề tài nghiên cứu mang tính thực tiễn trong việc vận dụng các kiến thức đã được học dưới mái trường Cao Đẳng vào trong thực tế.

  • Về mặt khoa học, đề tài sẽ giúp cho nhóm sinh viên thực hiện hiểu rõ thêm về Truyền dữ liệu điều khiển và cách điều khiển mạch điện thông qua Internet.
  • Về mặt thực tiễn, đề tài này có thể áp dụng vào thực tế để điều khiển một số thiết bị trong nhà như đèn điện, quạt máy..v..v
  1. Giới hạn của đề tài

            Do thời gian thực hiện đề tài có hạn và kiến thức còn hạn chế nên nhóm sinh viên thực hiện đã đưa ra những giới hạn sau:

  • Điều khiển cùng lúc tối đa 4 thiết bị.
  • Mạch phải hoạt động tốt không bị nhiễu trên đường truyền Internet.
  • Mạch phải chạy ổn định trong quá trình làm việc.
  1. Mục đích của đề tài

     - Tìm hiểu vi điều khiển PIC18F4620

     - Tìm hiểu phương pháp lập trình C18 cho PIC

     - Tìm hiểu IC giao tiếp Ethetnet ENC28J60.

  1. Đối tượng nghiên cứu

 Đối tượng nghiên cứu của đề tài này chính là:

  • Cách thức giao tiếp giữa mạch đo và máy tính.
  • Cách thức giao tiếp giữa mạch đo và mạch điều khiển.
  • Cách lập trình cho vi điều khiển để cho dữ liệu có thể thu, phát liên tục mà không bị ngắt quãng.
  • Cách cân chỉnh mạch đo, đảm bảo độ chính xác của mạch đo.
  • Tìm hiểu IC giao tiếp Ethetnet ENC28J60.
  • Tìm hiểu vi điều khiển PIC 18F4620
  1. Danh mục từ viết tắt
  • AJAX (Asynchronous JavaScript And XML )
  • ARP ( Address Resolution Protocol)
  • CGI ( Common Gateway Interface )
  • CSS ( Cascading Style Sheets )
  • DHCP ( Dynamic Host Configuration Protocol )
  • DNS ( Domain Name Service )
  • DNS ( Domain Name System )
  • FTP ( File Transfer Protocol )
  • HTML ( Hyper Text Markup Language )
  • HTTP ( Hyper text Transfer Protocol )
  • ICMP ( Internet Control Message Protocol )
  • IEEE ( Institute of Electrical and Electronics Engineer )
  • IP ( Internet Protocol )
  • LLC ( Logical Link Control )
  • LAN ( Local Area Network )
  • MAC ( Media Access Control )
  • MPFS ( Microchip File System Store )
  • SNMP ( Simple Network Management Protocol )
  • TCP ( Transmission Control Protocol )
  • UDP ( User Datagram Protocol )

CHƯƠNG II :

TỔNG QUAN VẾ MẠNG INTERNET

  1. 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.

  1. Hoạt động của mạng internet
    1. Các giao thức ( Protocol )

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.

  1. Đị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

  1. 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.

  1. 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.

  1. 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.

  1. 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 : Mô hình TCP IP

 

  1. 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 đó.
  2. 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  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 (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).
  1. 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.
  2. 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.
  1. Công nghệ Ethernet

   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 đầ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 BỘ THƯ VIỆN TCP/IP STACK CỦA MICROCHIP

  1. .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 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ụ cho các trang web, SMTP để gửi email, SNMP cung cấp tình trạng kiểm soát, Telnet, Serial Internet …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.

Bộ thư viện TCP/IP Stack của Microchip tối ưu hóa cho tất cả các PIC18, PIC24, dsPIC và PIC32. Các ngăn xếp được chia thành nhiều lớp, mỗi lớp truy cập các dịch vụ từ một lớp khác trực tiếp dưới nó. Bộ thư viện TCP/Ip này bao gồm các tính năng sau :

  • Hỗ trợ giao thức ARP, IP, ICMP, UDP, TCP, DHCP, SNMP, HTTP, FTP, TFTP
  • Socket hỗ trợ cho TCP và UDP
  • Secure Socket Layer
  • NetBIOS
  • DNS – Domain Name System
  • Ethernet Device Discovery
  • Hỗ trợ cho MPLAB C18, C30, C32

Bộ thư viện TCP/IP Stack được viết bằng ngôn ngữ C. Bộ thư viện để lại nhiều không gian cho người dùng điều chỉnh phù hợp với mục đích sử dụng. Giống như mô hình tham chiếu TCP/IP, TCP/IP Stack cũng được chia làm nhiều lớp. Mỗi lớp có một chức năng riêng, trong khi các dịch vụ và các 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 như mô hình TCP/IP, các lớp trong TCP/IP Stack truy nhập trực tiếp vào một hoặc nhiều lớp dưới mà không phụ thuộc vào lớp dưới nó. Một bổ sung lớn của TCP/IP Stack là thực hiện bổ sung 2 module 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. Dưới đây là các lớp mà Microchip TCP/IP Stack đã xây dựng và vị trí tương ứng của các lớp này trong mô hình giao thức TCP/IP.

Hình 3.1 : Mô hình các lớp được xây dựng trong TCP IP Stack

TCP/IP Stack là bộ chương trình 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 định nghĩa. Các định nghĩa được liệt kê như sau :

Định nghĩa

Giá trị

Sử dụng

Chức năng

CLOCK_FREQ

oscillator frequency (Hz)

Tick.c

Xác định tần số dao động hệ thống

TICKS_PER_SECONDS

10-255

Tick.c

Thời gian tính toán giữa hai lần

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

MPFS.c

Sử dụng bộ nhớ chương trình để lưu trữ MPFS

MPFS_USE_EEPROM

N/A

MPFS.c

Sử dụng eeprom để lưu trữ MPFS

MPFS_RESERVE_BLOCK

0-255

MPFS.c

Số byte MPFS được 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

Yêu cầu sử dụng TCP

STACK_USE_UDP

N/A

UDP.c,StackTsk.c

Yêu cầu sử dụng UDP

STACK_USE_CLIENT_MODE

N/A

ARP.c, TCP.c

Kích hoạt client mode

TCP_NO_WAIT_FOR_ACK

 

TCP.c

TCP sẽ đợi ACK trước khi truyền

MY_DEFAULT_IP_ADDR_BYTE

0-255

User Application

Xác định giá trị mặc định IP,MAC,gateway và subnet mask

MY_DEFAULT_MASK_BYTE

MY_DEFAULT_GATE_BYTE

MY_DEFAULT_MAC_BYTE

MY_IP_BYTE

0-255

User Application

IP,MAC,gateway và subbnet mask lưu bởi ứng dụng

MY_MASK_BYTE

MY_GATE_BYTE

MY_MAC_BYTE

Hình 3.2 : Các giá trị cấu hình Stack

Trong gói thư viện TCPIP Stack, các module chức năng được thiết kế dựa hoàn toàn trên nguyên lý hoạt động của các lớp tương ứng.

  1. Các lớp chức năng trong TCP/IP Stack
    1. Media Access control player ( MAC )

 Nhiệm vụ của lớp MAC là quản lý bộ đệm FIFO(First In First Out) cho NIC- Network Interface Controller và quản lý bộ đệm truyền nhận. Nó có thể yêu cầu 1 tập tin nào đó được truyền lại, người sử dụng có thể xác định kích thước của bộ đệm nhờ vào file “MAC.c”.

  1. 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à kết nối một-một, nơi máy chủ kết nối máy khách. Các SLIP module được thiết kế để hoạt động với 1 máy tính trên Windows. Các API được cung cấp bởi module SLIP cũng được sử dụng giống như MAC.

  1. Address Resolution Protocol

            Lớp ARP của TCP/IP Stack được thực hiện bởi 2 module : ARP và ARPTask trong đó ARP được cung cấp bởi các tập tin “ARP.c” và ARPTask được cung cấp bởi tập tin “ARPTask.c” cung cấp hoàn toàn dịch vụ ARP. ARP Task cung cấp như 1 bộ máy tập hợp đáp ứng yêu cầu ARP từ xa. Nó cũng duy trì 1 bộ nhớ cache 1 cấp để lưu trữ ARP trả lời và đưa 1 mức độ cao hơn phù hợp với các cuộc gọi. ARPTask là 1 cơ chế không thực hiện thử lại do đó, các lớp trên phải phát hiện ra điều kiện thời gian và trả lời phù hợp.

  1. Internet Protocol ( IP )

 Lớp IP của TCP/IP Stack được thực hiện bởi module “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 gói này. Trong kiến trúc này, lớp IP là thụ động nó không đáp ứng các gói dữ liệu IP. Thay vào đó, lớp cao cấp sử dụng IP nguyên thủy lấy các gói tin IP, giải mã nó và xử lý nó một cách thích hợp. Đặc điểm kỹ thuật của IP này là yêu cầu các máy chủ địa phương tạo ra 1 gói tin nhận dạng duy nhất cho mỗi gói tin truyền qua nó, nhận diện này 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.

  1. Internet Control Message Protocol ( IMCP )

 Lớp ICMP được thực hiện bởi tập tin “ICMP.c”. Các tập tin tiều đề “ICMP.h” định nghĩa các dịch vụ được truy cập bởi lớp này.Trong kiến trúc này lớp ICMP là 1 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 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ững ứng dụng, ICMP là hữu ích cho các mục đích thăm dò. Khi được kích hoạt, ICMP có thể đáp ứng với các gói tin ping do đó cho phép các máy chủ ở xa kiểm tra trạng thái của các máy địa phương. Các vi mạch lớp ICMP chỉ đáp ứng dữ liệu ping đến 32byte, gói tin lớp hơn sẽ bị bỏ qua.

  1. Transmission Control Protocol ( TCP )

 Lớp TCP của TCP/IP Stack được thực hiện bởi 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. 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 sử dụng. Với nhiều hơn 1 socket các ứng dụng có thể duy trì đồng thời nhiều kết nối TCP và có thể có nhiều hơn 1 ứ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 chiếm khoảng 36 byte. Không giống như các giao thức khác, tất cả cá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ể dung lượng RAM nhưng lại có 1 vài vấn đề khác như 1 vài socket không nhận đủ bộ đệm truyền và không báo thời gian 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 lạc 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ó 1 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 1 khoảng thời gian ngắn để các socket khác có thể nhận dữ liệu của họ. Để giảm dung lượng RAM, lớp TCp sử dụng bộ đệm trong MACNIC làm 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.

  1. 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à 1 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 dữ liệu. “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 đến 254 UDP socket. Với hơn 1 socket, các ứng dụng cấp cao hơn có thể duy trì đồng thời đa kết nối UDP. Mỗi socket chiếm khoảng 19 byte và tăng thời gian xử lý tổng thể UDP. Tất cả các socket UDP chia sẻ 1 hoặc nhiều hơn 1 bộ đệm truyền. Người dùng phải đảm bảo đủ bộ đệm truyền cho tất cả các socket.

  1. 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 can 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:

  • Bỏ ghi chú “STACK_USE_DHCP “trong tiêu đề tập tin "StackTsk.h".
  • Có hai tập tin”dhcp.c " và "udp.c"  trong dự án.
  •  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).
  1. 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 định STACK_USE_IP_GLEANING  ghi chú bên trong tập tinh StackTsh.h

  1. Sử dụng TCP/IP stack

   Bộ thư viện TCP/IP Stack chứ đầ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 của mình nhưng phải có một số tập tin nhất định trong dự án. Các module và các tập tin đó được trình bày như 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

Address Resolution Protocol

IP

IP.c MAC.c SLIP.c

Internet Protocol

ICMP

ICMP.c StackTsk.c IP.c MAC.c SLIP.c

Internet Control Message Protocol

TCP

StackTsk.c TCP.c IP.c MAC.c SLIP.c

Transmission Control Protocol

UDP

StackTsk.c UDP.c IP.c MAC.c SLIP.c

User Datagram Protocol

Stack

StackTsk.c TCP.c IP.c ICMP.c ARP.c  MAC.c

Stack Manager

HTTP Server

HTTP.c TCP.c IP.c MAC.c MPFS.c XEEPROM.c

Hyper Text Transfer Protocol Server

DHCP Client

DHCP.c UDP.c IP.c

Dynamic Host Configuration Protocol

 
 
....................................................................................................................................................

Các trang Web mà server phục vụ có thể được lập trình bằng các mã HTML, CSS, JavaScript. Điều cần quan tâm nhất là cách viết các biến động. Biến động có thể được xem là output của ứng dụng này. Nhờ các biến động mà người dùng (client) có thể quan sát được trạng thái các đối tượng cần điều khiển. Để tạo một biến động, khi viết  trang web ta đặt tên biến động vào giữa một cặp dấu ngã (~). Ví dụ để tạo một biến động có tên builddate trong code của trang web html ta viết: 

 <div class="examplebox code">~builddate~</div>

 Biến động có thể chứa các tham số như trạng thái của đối tượng có liên quan, Server chỉ gọi một hàm duy nhất xử lý cho nhóm biến động này.

 Ví dụ để quan sát trạng thái các nút bấm được đánh số từ 0 tới 3, ta viết:

<div class="examplebox code"> ~btn(3)~ ~btn(2)~~ btn(1)~~ btn(0)~</div>

Ngoài ra, khi các trang web có các thành phần không đổi như menu lựa chọn, header…, chúng ta có thể viết chúng trong một file có đuôi .inc (*.inc) và include vào trang web như cách viết biến động. 

 Ví dụ file header.inc chứa các thành phần không đổi ở các trang web, ở mỗi trang web ta ghi:

<div id="menu">~inc:menu.inc~</div>

  1. Tiện ích MPFS2

 Tiện ích MPFS đóng gói các web page thành 1 định dạng để lưu trữ hiệu quả trong 1 hệ thống nhúng. Nó là 1 ứng dụng đồ họa cho PC, có thể tạo ra MPFS2 và các ảnh MPFS classic để lưu trữ trong bộ nhớ ngoài hoặc bộ nhớ chương trình nội.

Khi được sử dụng để tạo ảnh MPFS2, tiện ích này cũng chỉ ra các biến động được tìm thấy. Nó dùng thông tin này để tạo ra file HTTPPrint.h. Nó cũng lưu giữ chỉ số thông tin cùng với file trong ảnh MPFS2 giúp làm giảm tác vụ tìm kiếm từ thiết bị nhúng.

Để sử dụng EEPROM ngoài, đảm bảo rằng macro cấu hình MPFS_USE_EEPROM được định nghĩa trong file TCPIPConfig.h. Nếu đang sử dụng 25LC1024, phải định nghĩa USE_EEPROM_25LC1024 để cho phép chế độ địa chỉ 24bit. Nếu sử dụng Flash ngoài, khai báo MPFS_USE_SPI_FLASH thay vì macro EEPROM.

MPFS2.exe là phần mềm chuyển đổi một một folder chứa trang web thành các dạng file .c để nạp vào Pic hoặc file .bin để nạp vào EEPROM. Sau khi thực thi, phần mềm tạo ra một file chứa nội dung trang web, một file HTTPPrint.h chứa chỉ số các biến động mà trang web đã ghi. File này cần để xây dựng code cho server. Do đó, khi ghi thêm các biến động vào trang web, chúng ta trước tiên phải dùng công cụ MPFS2.exe để xuất ra file HTTPPrint.h thích hợp, sau đó biên dịch lại project.

  • Các bước tạo một treng web

Bước 1 : lựa chọn Start With : Webpage Direcory và chọn thư mục trong đó web page được lưu trữ.

                          

Hình 3.5: Chọn thư mục lưu web page

Bước 2 : chọn định dạng đầu ra. Nếu lưu trữ web page trong EEPROM ngoài hoặc Flash thì chọn BIN Image . Nếu bộ nhớ chương trình nội được dùng thì chọn C18/C32 Image để sử dụng với các phần 8bit và 32bit, hoặc chọn ASM30 Array cho 16bit. Để lưu trữ web page trên các thiết bị định dạng với hệ thống file FAT mà không nén chúng thành ảnh MPFS thì chọn MDD

 

Hình 3.6: Chọn định dạng đầu ra

Bước 3 :  yêu cầu thư mục dự án MPLAB IDE. Công cụ MPFS sẽ ghi các file ảnh vào thư mục dự án và cũng sẽ cập nhật file HTTPPrint.h ở đây nếu cần. Lựa chọn chính xác thư mục để các file phù hợp được thay đổi.

Hình 3.7: Chọn thư mục chứa dự án

 

Bước 4 : Điều khiển thiết lập upload. Khi bộ nhớ ngoài được dùng để lưu trữ, tùy chọn để upload các ảnh mới được tạo ra tới board là có sẵn.

Check vào box bên cạnh Upload Image To để cho phép đặc điểm này. Nút Settings bên phải có thể được sử dụng để cấu hình các tên host chính xác.

Hình 3.8 : Thiết lập upload

Khi tất cả các thiết lập được chọn đúng, click nút Generate để tạo ra ảnh. Nếu được cho phép upload, nó cũng sẽ cố gắng upload file lên thiết bị.

Sau khi tao xong file.bin ta tiến hành upload trang web vừa tạo

Mở trình duyệt web và truy cập  tại http://mchpboard/mpfsupload . Hình thức này sẽ cho phép các trang web được lưu trữ trên thiết bị để được cập nhật. Chọn MPFSImg2.bin file từ thư mục TCPIP App Demo như hình dưới đây.

 

Hình 3.9 : Tiến hành upload

 

Khi nút Upload được nhấp, hình ảnh MPFS được gửi đến hội đồng quản trị và lập trình trong EEPROM. Khi điều này xảy ra, hoạt động LED trên các jack cắm Ethernet sẽ nhấp nháy. Một khi các báo cáo trình duyệt tải lên đã hoàn thành, nhấp vào liên kết cung cấp trong các thông báo trạng thái để truy cập các trang web của hội đồng quản trị.

 

Hình 3.10 : Việc upload thành công

 

  1. Giao diện web

Mục tiêu đặt ra là xây dựng một trang web cung cấp giao diện cho người sử dụng truy cập từ xa để điều khiển và giám sát toàn bộ hoạt động của hệ thống. Các trang web được lưu trữ trong EEPROM 25LC256 với kích thước đủ nhẹ và có giao diện thân thiện với người sử dụng. Mã nguồn của trang web được xây dựng bằng DHTML(Dynamic Hyper  Text Markup Language) với sự hỗ trợ của công nghệ AJAX.Bản thân DHTML ko phải là một ngôn ngữ mà là sự kết hợp giữa HTML(Hyper  Text Markup Language), JavaScript,  HTML DOM (Hyper  Text Markup Language Document Object Model), và CSS(Cascading Style Sheet) .

 

Hình 3.11 : Thành phần cần thiết kế  tạo một trang web

Để xây dựng được một giao diện web nhúng đơn giản với các thành phần như trên cần có hiểu biết về các ngôn ngữ xây dựng web.

a) Dynamic Hyper  Text Markup Language:

Như đã nói ở trên ,bản thân DHTML ko phải là một ngôn ngữ mà là sự kết hợp của nhiều ngôn ngữ khác nhau.Chức năng chính của DHTML là miêu tả phần động và tương tác của 1 trang Web

b) Hyper  Text Markup Language:

HTML  không phải là 1 ngôn ngữ lập trình mà là một ngôn ngữ đánh dấu băng thẻ (markup language). HTML có hai đặc tính cơ bản là siêu văn bản và tính phổ bát.Siêu văn bản (hypertext) có nghĩa là bạn tạo ra một liên kết trong trang Web định hướng người dùng đến một nơi nào đó trên Internet ,còn tính phổ bát (universality) được thể hiện ở chỗ do hầu hết các tài liệu HTML được lưu dưới dạng tập tin ASCII hoặc Text Only nên hầu như máy tính nào cũng có thể đọc được trang Web.

Thông qua các thẻ (tag) và các phần tử của HTML ,chúng ta có thể thực hiện được rất nhiều công việc quan trong như:

  • Điều khiển hình thức và nội dung của trang Web
  • Xuất bản các tài liệu trực tuyến và truy xuất thông tin trực tuyến bằng cách dùng các tài liệu liên kết được chèn vào các tài liệu HTML
  • Tạo các biểu mẫu trực tuyến.Những biểu mẫu này có thể được sử dụng để thu thập thông tin về người dùng ,quản lý các giao dịch…

Bản thân tài liệu HTML là một file văn bản có thành phân đuôi mở rộng là .htm hoặc .html .Tài liệu này được dịch thành mã nguồn của trang Web .

c) JavaScript:

JavaScript là một ngôn ngữ kịch bản (scripting language) của Web.Ngôn ngữ này thường được thiết kế để thêm các phần tương tác trong 1 trang HTML. Javascript là ngôn ngữ thể hiện dưới dạng script có thể gắn với các tài liệu HTML. Một số trình duyệt hỗ trợ Javascript sẽ thực hiện việc diễn dịch thay vì biên dịch khi gặp các mã Javascript.

Javascript là ngôn ngữ dựa trên đối tượng. Nó có thể đáp ứng các sự kiện ( ví dụ như :onClick, onMouseOver, onMouseOut,…). Tuy nhiên không giống C++, Javascript không hỗ trợ các lớp hay tính kế thừa. Các mã Javascript được xử lý hoàn toàn trên trình duyệt phía máy trạm.

Tất cả các mã Javascript sau khi được nhúng vào trang web đều nằm trong cặp thẻ :

   <script language=”Javascript”> Mã lệnh Javascript </script>

Sau đây là ví dụ mẫu về một mã Javascript :

Hình 3.12 :  ví dụ mẫu Javascript

Thuộc tính SRC của thẻ <SCRIPT> cho phép bạn chỉ rõ file nguồn Javascript được sử dụng, dùng phương pháp này để nhúng trực tiếp một lệnh Javascript vào trang HTML.

Cú pháp :

Hình 3.13: Cú pháp thuộc tính SRC

Tuy nhiên Javascript cũng có những hạn chế đó là :

  • Javascript không thể giao tiếp với máy chủ
  • Javascript không thể tạo các hình ảnh đồ họa
  • Javascript làm việc khác nhau trên các trình duyệt khác nhau

TTP2

  1. FTP Server

FTP server có những tín năng sau:

  • Một kết nối FTP cho chúng ta biết có một người dùng dang sử dụng ứng dụng đó.
  • Tự đông tương tác với tập tin hệ thống (MPFS).
  • Upload tập tin cá nhân hoặc hỗ trợ.

CHƯƠNG IV:THI CÔNG MẠCH

  1. Giới thiệu linh kiện trong mạch
  1. ENC28J60
  1.  Giới thiệu:

Hình 4.1: Sơ đồ chân

ENC28J60 là con chíp giao tiếp ethernet được điều khiển theo chuẩn SPI. Do đó, bất kì vi điều khiển nào có hỗ trợ chuẩn giao tiếp SPI cũng có thể dễ dàng giao tiếp với các ngoại vi ethernet thông qua ENC28J60. ENC28J60 được thiết kế để phù hợp với chuẩn IEEE 802.3 (chuẩn về ethernet). Để ENC28J60 hoạt động được, ta chỉ cần cấp điện áp ( 3.1V- 3.6V) và một số linh kiện thụ động.

b. Sơ đồ khối:

Hình 4.2: Sơ đồ khối

Các khối chức năng chính :

o Khối giao tiếp SPI: Để ENC28J60 giao tiếp được với vi điều khiển. Tốc độ giao tiếp tối đa là 20Mhz.

o  Các thanh ghi điều khiển các chức năng của ENC28J60.

o Một bộ đệm là RAM hai chiều dung lượng 8Kbyte dùng để truyền nhận dữ liệu.

o Khối Arbiter có chức năng điều khiển quyền truy cập RAM của các khối RX, TX và DMA.

o Khối Bus Interface có nhiệm vụ dịch dữ liệu, lệnh nhận được thông qua chuẩn SPI.

o  MAC (Medium Access Controller) là mạch số điều khiển việc truyền dữ liệu như khi nào truyền, tạo ra hay xác nhận các mã kiểm tra lỗi…phù hợp chuẩn IEEE 802.3.

o  PHY (Physical Layer)  là mạch điện giải mã và mã hóa tín hiệu điện truyền trên cáp.

Ngoài ra còn các khối: Khối dao động, khối ổn áp, khối chuyển mức điện áp để phù hợp với mức điện áp của các vi điều khiển hoạt động 5V.

C. Tên chân và chức năng:

Hình 4.3: Chức năng chân

Chân CLKOUT

ENC28J60 tạo ra một nguồn xung clock ở chân CLKOUT. Tần số của xung này có thể được chia 1,2,3 4,8 thông qua bộ prescaler bên trong ENC28J60. Thanh ghi ECOCON điều khiển tần số của xung clock. Khi ENC28J60 được cấp điện (Power-on Reset), chân CLKOUT sẽ dao động với tần số 6.25Mhz sau khi OST hết hiệu lực. Khi tắt chức năng của chân CLKOUT (ECOCON=0) , chân này ở mức thấp. Khi thay đổi tần số ra, chân CLKOUT ở mức thấp trong khoảng từ 2 đến 8 xung clock từ chân OSC1 trước khi dao động với tần số mới.

Chân LEDA và LEDB

Hai chân này được nối với 2 LED báo tín hiệu. Ta có thể chọn mức sáng của LED gắn bên ngoài là mức 0 (sink current)  hay mức 1 (source current). Saukhi reset, ENC28J60 sẽ nhận biết kiểu kết nối của LED và điều khiển các LED ở trạng thái mặc định được xác định trong thanh ghi PHLCON. Trạng thái kết nối của LED nối vào chân LEDB xác định trạng thái ban đầu của bit PHCON1.PDPXMD sau khi reset.

Hình 4.4: phân cực  cho LED và thiết lập lại các tùy chọn cấu hình

Nếu LED không được kết nối, bit PDPXMD không được xác định.

Ngoài ra, các bit LACFG3:LACFG0 and LBCFG3:LBCFG0 sẽ điều khiển trạng thái của các LED khi ENC28J60 hoạt động.

Khối tạo dao động:

ENC28J60 hoạt động ở tốc độ 25Mhz. Ta dùng thạch anh 25Mhz nối vào 2 chân OSC1 và OSC2. Hoặc có thể dùng nguồn dao động bên ngoài.

Oscillator Start-up Timer (OST)

Timer này hết hiệu lực sau khi đếm được 7500 xung clock từ chân OSC1 ( 300us) kể từ khi Power-on Reset hoặc  wake-up từ chế độ Power-Down. Thời gian delay này dùng để “chờ” các khối chức năng trong ENC28J60 hoạt động ổn định trước khi bắt đầu giao tiếp với các ngoại vi ethernet.  Khi OST hết hiệu lực, bit CLKRDY trong thanh ghi ESTAT được set.

Mức Logic

Các chân input SCK, CS, SI, RESET có thể hiểu được mức điện áp của hệ thống 5V. Nhưng để hệ thống 5V hiểu được mức điện áp từ các chân output của ENC28J60 hoạt động ở 3.3V thì ta cần dùng một mạch đệm. Thường dùng cổng NAND hoặc cổng 3 trạng thái

Hình 4.5: Sử dụng cổng NAND

Hình 4.6: Sử dụng cổng 3 trạng thái

d. Tổ chức bộ nhớ:

Bộ nhớ trong ENC28J60 thuộc loại RAM động, có ba phần:

o  Các thanh ghi điều khiển

o Bộ đệm dữ liệu

o  Các thanh ghi PHY

Các thanh ghi điều khiển dùng để cấu hình, điều khiển và đọc các trạng thái của ENC28J60. Các thanh ghi này có thể được đọc/ghi trực tiếp với giao tiếp SPI.

Bộ đệm là nơi chức dữ liệu truyền/nhận. Kích thước vùng nhớ này có thể thay đổi bằng phần mềm. Chỉ có thể truy cập vùng nhớ này bằng các lệnh SPI là read buffer memory và write buffer memory.

Các thanh ghi PHY được dùng cho hoạt động của khối PHY. Không thể truy xuất các thanh ghi này bằng giao tiếp SPI.

Hình 4.7: Tổ chức bộ nhớ

Các thanh ghi điều khiển

Các thanh ghi điều khiển được chia thành 4 bank, mỗi bank dài 32 byte và được đánh địa chỉ 5-bit. Bit BSEL1:BSEL0 dùng để chọn bank. Toàn bộ các thanh ghi điều khiển được liệt kê dưới đây:

Hình 4.8: Thanh ghi điều khiển

Bộ đệm ethernet

Vùng nhớ này có dung lượng 8Kbytes, chia thành hai vùng riệng biệt: vùng dữ liệu nhận và vùng dữ liệu gởi. Kích thước từng vùng được thiết lập thông qua giao tiếp SPI.

Hình 4.9: bộ đệm Ethernet

o Bộ đệm nhận

Có dạng FIFO. Cặp thanh ghi ERXSTH:ERXSTL và ERXNDH:ERXNDL xác định chiều dài của vùng nhận và vị trí của nó trong 8Kbyte bộ đệm.

o Bộ đệm gởi

Vùng nhớ còn lại trong 8Kbytes nhớ có thể được dùng làm bộ đệm gởi. Cặp thanh ghi ETXST và ETXND được dùng để xác định vị trí vùng nhớ này. Người lập trình cần thiết lập sao cho bộ đệm gởi và nhận không trùng nhau.

o  Các thanh ghi PHY

Các thanh ghi này dài 16 bit. Có tất cả 32 thanh ghi, nhưng chỉ có 9 thanh ghi được dùng.

Ta không truy xuất trực tiếp các thanh ghi ghi mà phải truy xuất gián tiếp thông qua các thanh ghi điều khiển khối MAC thực hiện chức năng MIIM (Media Independent Interface Management).

e.Giao tiếp SPI với ENC28J60:

Hình 4.10: Giao tiếp SPI với vi điều khiển

ENC28J60 giao tiếp SPI với vi điều khiển ở chế độ Slave, trạng thái Idle của xung SCK ở mức thấp, dữ liệu nhận vào ở chân SI tại cạnh lên của xung SCK, dữ liệu ra ở chân SO tại cạnh xuống của xung SCK. Chân CS  phải đượckéo xuống mức thấp khi giao tiếp và được đưa lên mức cao khi giao tiếp hoàn tất.

............................................................................................

Sau khi cài đặt cơ chế NAT cho modem,để truy nhập tới Webserver nhúng thông qua Internet chúng ta dùng địa chỉ IP Public ( để truy nhập vào Webserver), cơ chế NAT trên modem sẽ tự động chuyển yêu cầu truy cập web tới IP của web server.Tuy nhiên vì địa chỉ IP Public mà ISP(Internet Service Provider) cung cấp là IP động, mỗi ngày sau khi tắt modem khi mở lại modem sẽ có địa chỉ IP mới. Như vậy sẽ rất phiền nàn mỗi khi muốn truy nhập vào Webserver nhúng.Chúng ta có 2 hướng giải quyết:

  • Thuê địa chỉ IP tĩnh ( tốn kém chi phí).
  •  

KẾT LUẬN

  1. Các vấn đề đã ngiên cứu và làm được

- Nghiên cứu vi điều khiển  Pic 18F4620,eeprom25lc256.

- 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.

- Lập trình điều khiển vi điều khiển Pic 18F4620 bằng ngôn ngữ CCS.

- Xây dựng thành công một hệ thống điều khiển giám sát đơn giản trên nền web nhúng

  1. Tự đánh giá

Khi mạng không tốt, rất khó điều khiển hệ thống. Khi mạng bị đứt, hệ thống mất điều khiển. Hệ thống này thích hợp với mạng LAN có đường truyền ổn định. Khả năng bảo mật kém. Vì ai cũng có thể cập và điều khiển hệ thống dễ dàng nếu biết địa chỉ IP của mạch. Cấu hình của mạch yếu. PIC18 thuộc dòng 8bit, tốc độ tối đa là 40Mhz. ENC28J60 chạy với tốc độ tối đa là 10Mbps. Do đó, server chạy chậm, không thể phục vụ cùng lúc nhiều người.

  1. Hướng phát triển đề tài

 Rõ ràng điều khiển thiết bị qua mạng là một đề tài có khá nhiều hướng phát triển. Việc dừng lại ở điều khiển và giám sát ON/OFF chỉ là bước khởi đầu cho những phát triển lớn hơn như: Ngôi nhà thông minh, …

            Tuy nhiên, với cụ thể đồ án này thì có khá nhiều giới hạn. Với việc sử dụng giao thức TCP/IP để truyền thông tin qua mạng thì ta cần một khoảng thời gian khá dài để đóng gói và lưu thông trên mạng. Nếu mạng có nhiều người tham gia thì có thể nghẽn mạng và gói tin phải qua khá nhiều bộ định tuyến mới tới đích. Do đó, nếu thiết bị đòi hỏi thòi gian đáp ứng nhanh thì đề tài này không đáp ứng được trong môi trường Internet. Tuy nhiên, nếu điều khiển ON/OFF thì có thể chấp nhận được.

PHỤ LỤC – PHỤ ĐÍNH

Một số kết quả bằng hình ảnh

 

 

Close