1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế hệ thống điều khiển thiết bị điện trong gia đình qua ethernet và SMS

58 1,7K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 58
Dung lượng 4,27 MB

Nội dung

Nhận thức được tầm thực tiễn của ngôi nhà thông minh là cơ sở để chúng em chọn đề tài đồ án tốt nghiệp “Thiết kế hệ thống điều khiển thiết bị điện tronggia đình qua Ethernet và SMS”.. Ch

Trang 1

MỤC LỤC

LỜI NÓI ĐẦU 3

CHƯƠNG 1: DẪN NHẬP 4

1.1 Đặt vấn đề 4

1.2 Ý nghĩa của đề tài 5

1.3 Giới hạn đề tài nghiên cứu 6

1.4 Mục tiêu nghiên cứu 7

1.5 Kết quả nghiên cứu của đề tài 8

1.6 SƠ ĐỒ TỔNG QUAN CỦA HỆ THỐNG 9

CHƯƠNG 2: ETHERNET VÀ HỌ GIAO THỨC TCP/IP 12

2.1 Tổng quan về Ethernet 12

2.1.1 Cấu trúc khung tin Ethernet 12

2.1.2 Cấu trúc địa chỉ Ethernet 12

2.1.3 Các loại khung Ethernet 13

2.1.3.1 Khung unicast 13

2.1.3.2 Khung broadcast 13

2.1.3.3 Khung multicast 14

2.1.4 Truy nhập bus sử dụng phương pháp CSMA/CD 14

Nguyên tắc làm việc phương pháp CSMA/CD: 14

2.2 Họ giao thức TCP/IP 15

2.2.1 Tầng Ứng Dụng (Application Layer) 15

2.2.2 Tầng Giao Vận (Transport Layer) 17

2.2.3 Tầng Internet (Internet Layer) 22

2.2.4 Lớp giao tiếp mạng 27

2.3 Microchip TCP/IP Stack 28

2.3.1 Cấu trúc của Microchip TCP/IP Stack 28

Trang 2

CHƯƠNG 3: TỔNG QUAN VỀ TIN SMS, MODULE SIM900 VÀ

ATCOMAND 31

3.1 Tổng quan về tin nhắn SMS 31

3.2 Giới thiệu Module SIM900 31

3.2.1 Tổng quan về Module SIM900 31

3.2.2 Khảo sát sơ đồ chân 32

3.2.3 Kết nối giữa Module SIM900 và vi điều khiển 32

3.3 Khảo sát tập lệnh AT 33

CHƯƠNG 4: THIẾT KẾ VÀ THI CÔNG 35

4.1 Phân tích yêu cầu điều khiển 35

4.2 Tổng quan chương trình chính 37

4.3 Thiết kế và thi công Webserver 38

4.3.1 Thiết kế giao diện web 38

4.3.2 Giám sát trên Web 38

4.3.3 Điều khiển trên Web 41

4.3.4 Phương pháp truyền dữ liệu 43

Sau khi hoàn tất thiết lập các biến trong web,ta tiến hành tạo file ảnh của web để lưu trữ vào ROM bằng phần mềm MPFS2 đi cùng bộ TCP/IP Stack của Microchip 45

4.4 Thiết kế và thi công Module SIM900 47

4.4.1 Giải thuật nhận tin nhắn và thực thi điều khiển: 47

4.4.2 Sơ đồ nguyên lý kết nối Module SIM900 50

4.5 Thiết kế phần cứng mạch chính 51

Chương 5: KẾT LUẬN 55

5.1 Kết luận 55

5.2 Hướng phát triển đề tài 56

TÀI LIỆU THAM KHẢO 58

Trang 3

LỜI NÓI ĐẦU

Ngày nay, với những ứng dụng của khoa học kỹ thuật tiên tiến, thế giới của chúng ta đã và đang ngày một thay đổi, văn minh và hiện đại hơn Và khái niệm về ngôi nhà thông minh đã ra đời Một ngôi nhà thông là một giải pháp điều khiển tích hợp cho các căn hộ cao cấp, tích hợp các thiết bị điện tử, nghe nhìn, truyền thông thành một hệ thống hoàn chỉnh và thống nhất

Nhận thức được tầm thực tiễn của ngôi nhà thông minh là cơ sở để chúng

em chọn đề tài đồ án tốt nghiệp “Thiết kế hệ thống điều khiển thiết bị điện tronggia đình qua Ethernet và SMS” Trong suốt thời gian hoàn thành đồ án, chúng

em đã tìm hiều về vi điều khiển, các chế độ truyền thông, cảm biến đo, cơ cấuchấp hành, cách kết nối mạng Ethernet, điều khiển qua tin nhắn SMS, đồng thờitìm hiểu về các chỉ tiêu của một ngôi nhà thông minh

Dưới sự hướng dẫn, chỉ bảo nhiệt tình của thầy Vũ Vân Hà cùng với sự

cố gắng nỗ lực của các thành viên trong nhóm, chúng em đã hoàn thành đồ ánđúng thời hạn cho phép Tuy nhiên do thời gian hạn chế, cũng như lượng kiếnthức rất lớn nên chúng em không thể tránh khỏi nhiều thiếu xót Vì vậy chúng

em rất mong sẽ nhận được nhiều ý kiến đánh giá, góp ý của thầy cô giáo và cácbạn sinh viên để chúng em có thể phát triển và hoàn thiện thêm đề tài này

Chúng em xin chân thành cảm ơn!Nhóm sinh viên thực hiện

1 Nguyễn Tất Nam

2 Đào Cửu Long

Trang 4

CHƯƠNG 1: DẪN NHẬP

1.1 Đặt vấn đề

Ngày nay cùng với sự phát triển mạnh mẽ của các ngành khoa học kỹthuật, công nghệ kỹ thuật điện tử mà trong đó là kỹ thuật tự động điều khiểnđóng vai trò quan trọng trong mọi lĩnh vực khoa học kỹ thuật, quản lí, côngnghiệp, cung cấp thông tin Do đó là một sinh viên chuyên ngành Điều khiển

tự động chúng ta phải biết nắm bắt và vận dụng nó một cách có hiệu quả nhằmgóp phần vào sự phát triển nền khoa học kỹ thuật thế giới nói chung và trong sựphát triển kỹ thuật điện tử nói riêng Bên cạnh đó còn là sự thúc đẩy sự pháttriển của nền kinh tế nước nhà

Như chúng ta cũng đã biết, gần như các thiết bị tự động trong nhà máy,trong đời sống của các gia đình ngày nay đều hoạt động độc lập với nhau, mỗithiết bị có một quy trình sử dụng khác nhau tuỳ thuộc vào sự thiết lập, cài đặtcủa người sử dụng Chúng chưa có một sự liên kết nào với nhau về mặt dữ liệu.Nhưng đối với hệ thống điều khiển thiết bị từ xa thông qua mạng Ethernet và tinnhắn SMS thì lại khác Ở đây, các thiết bị điều khiển tự động được kết nối vớinhau thành một hệ thống hoàn chỉnh qua một một thiết bị trung tâm và có thểgiao tiếp với nhau về mặt dữ liệu

Điển hình của một hệ thống điều khiển thiết bị trong nhà từ xa thông quamạng Ethernet và tin nhắn SMS gồm có các thiết bị đơn giản như bóng đèn, quạtmáy, lò sưởi đến các thiết bị tinh vi, phức tạp như tivi, máy giặt, hệ thống báođộng … Nó hoạt động như một ngôi nhà thông minh Nghĩa là tất cả các thiết bịnày có thể giao tiếp với nhau về mặt dữ liệu thông qua một đầu não trung tâm.Đầu não trung tâm ở đây có thể là một máy vi tính hoàn chỉnh hoặc có thể là một

bộ xử lí đã được lập trình sẵn tất cả các chương trình điều khiển Bình thường,các thiết bị trong ngôi nhà này có thể được điều khiển từ xa thông qua mạng

Trang 5

Ethernet hoặc tin nhắn SMS của chủ nhà Chẳng hạn như việc tắt quạt, đèn điện

… khi người chủ nhà quên chưa tắt trước khi ra khỏi nhà Hay chỉ với một tinnhắn SMS, người chủ nhà có thể bật máy điều hòa để làm mát phòng trước khi

về nhà trong một khoảng thời gian nhất định Bên cạnh đó nó cũng gửi thông báocho người điều khiển biết nhiệt độ trong phòng hiện tại là bao nhiêu, đồng thờiphát tín hiệu cảnh báo khi nhiệt độ phòng vượt quá giới hạn cho phép Ngoài ra,

hệ thống còn mang tính bảo mật Nghĩa là chỉ có những số điện thoại được càiđặt trước và biết đúng mật khẩu thì mới có thể điều khiển được hệ thống

Từ những yêu cầu thực tế, những đòi hỏi ngày càng cao của cuộc sống,cộng với sự hợp tác, phát triển mạnh mẽ của mạng di động nên chúng em đãchọn đề tài " Điều khiển thiết bị điện trong nhà thông qua mạng Ethernet và tinnhắn SMS " để đáp ứng được nhu cầu ngày càng cao của con người và góp phầnvào sự tiến bộ, văn minh, hiện đại của nước nhà

Với đề tài trên nhóm đề tài đã thực hiện việc điều khiển từ xa theo bahướng hướng chính:

 Điều khiển thiết bị qua Ethernet với giao thức TCP/IP Người dùng đăngnhập vào Website và thực hiện điều khiển thiết bị qua giao diện Web

 Điều khiển thiết bị qua tin nhắn SMS từ những số điện thoại được chophép Thiết bị sẽ nhận tin nhắn SMS theo cấu trúc cho trước Phân tíchyêu cầu điều khiển và thực hiện điều khiển thiết bị

 Đo và thông báo nhiệt độ trong phòng, phát tín hiệu cảnh báo nếu nhiệt

độ trong phòng tăng cao vượt quá giới hạn cho phép

1.2 Ý nghĩa của đề tài

Ngày nay cùng với sự tiến bộ của khoa học kỹ thuật, các thiết bị điện tử ra

Trang 6

cầu sử dụng các thiết bị một cách tự động ngày càng cao, con người ngày càngmuốn có nhiều thiết bị giải trí cũng như các thiết bị sinh hoạt với kỹ thuật vàcông nghệ ngày càng cao Có thể ở Việt nam chưa phát triển mạnh mẽ trong lĩnhnày nhưng hiện nay ở trên thế giới, nhất là các quốc gia thuộc Châu âu hay Mỹthì mô hình ngôi nhà tự động được điều khiển từ xa đã phát triển rất mạnh mẽ

Từ những nhu cầu thực tế đó, nhóm em muốn đưa một phần những kỹthuật hiện đại của thế giới áp dụng vào điều kiện thực tế trong nước để có thể tạo

ra một hệ thống điều khiển thiết bị trong nhà từ xa thông qua mạng Ethernet vàtin nhắn SMS nhằm đáp ứng nhu cầu ngày càng cao của con người Đề tài lấy cơ

sở là mạng Ethernet và tin nhắn SMS để điều khiển thiết bị Việc sử dụng mạngEthernet và tin nhắn SMS để điều khiển thiết bị có thuận lợi là tiết kiệm chi phí,mang tính cạnh tranh và cơ động cao Ngoài ra, sản phẩm của đề tài này có tính

mở, có thể áp dụng cho nhiều đối tượng khác nhau trong dân dụng cũng nhưtrong công nghiệp

1.3 Giới hạn đề tài nghiên cứu

Để thực thi một hệ thống điều khiển thiết bị từ xa thông qua mạngEthernet và tin nhắn SMS áp dụng cho một ngôi nhà hoàn chỉnh như nói trên làrất phức tạp và rất tốn kém Để đáp ứng việc điều khiển toàn bộ các thiết bị nàyđòi hỏi phải có một lượng thời gian, kiến thức nhất định Bên cạnh đó còn là vấn

đề tài chính Với lượng thời gian và kiến thức có hạn, trong đề tài này nhóm emthực hiện chỉ thực thi một phần của hệ thống hoàn chỉnh đó Đó là điều khiểnđóng mở đèn, ngoài ra còn có chức năng báo động khi nhiệt độ trong phòng tăngcao quá nhiệt độ cho phép

Với những gì đã trình bày trên, nhóm em đã tiến hành nghiên cứu, khảosát và thực hiện và dự kiến đạt được các mục tiêu đặt ra như sau:

Trang 7

- Thiết lập một Website và thực hiện điều khiển các thiết bị qua giao diện

Web, sau khi thực hiện lệnh điều khiển trạng thái của thiết bị on/off đượcthể hiện ngay trên giao diện Web

- Điều khiển các thiết bị trong nhà bằng tin nhắn SMS Sau khi thực hiện

lệnh điều khiển xong, tự động gửi tin nhắn lại cho người dùng biết đã thựchiện thành công

- Gửi tin nhắn thông báo trạng thái của các thiết bị và nhiệt độ trong phòng

hiện tại là bao nhiêu

- Ngoài ra, hệ thống còn có chức năng tự động phát tín hiệu cảnh bảo qua

chuông và tin nhắn khi nhiệt độ trong phòng tăng cao vượt quá giới hạncho phép

1.4 Mục tiêu nghiên cứu

- Đồ án được nghiên cứu và thực hiện với mục đích áp dụng những kiến

thức đã được học trong nhà trường để thiết kế, tạo ra một hệ thống điềukhiển tự động từ xa qua mạng Ethernet và tin nhắn SMS

- Nghiên cứu và tạo một giao diện Websever để thực hiện điều khiển qua

mạng Ethernet với chuẩn giao tiếp TCP/IP

- Tìm hiều về hệ thống điện thoại di động GSM hiện nay Nghiên cứu và sử

dụng các module GSM/GPRS phổ biến hiện nay Module nhóm thực hiện

nghiên cứu và sử dụng là module SIM900 của hãng SIMCom.

- Nghiên cứu và sử dụng chip vi điều khiển PIC của Mircochip Chip mà

nhóm đã tiến hành nghiên cứu và sử dụng là chip PIC18F8722.

Trang 8

1.5 Kết quả nghiên cứu của đề tài

Với những mục tiêu và kế hoạch đã đề ra, cùng với sự nỗ lực nghiên cứu,

tìm tòi của các thành viên trong nhóm thực hiện đề tài, nhóm thực hiện đã đạtđược những kết quả nhất định sau:

Thiết kế thành công mạch điều khiển giao tiếp qua mạng Ethernet và tinnhắn SMS với các tính năng:

+ Giao tiếp thành công với mạng Ethernet qua chuẩn truyền thông TCP/IP,thực hiện quan sát trạng thái và ra lệnh điều khiển thiết bị qua giao diệnWebserver

+ Giao tiếp thành công với module SIM900, nhận và gửi tin nhắn thànhcông, thực hiện điều khiển thiết bị qua tin nhắn SMS

+ Cảnh báo tới người dùng và phát tín hiệu ra chuông khi nhiệt độ phòngtăng cao vượt quá giới hạn cho phép

+ Ngoài ra, mạch điều khiển được thiết kế sẵn sàng cho việc tích hợp thêmcác ngoại vi trong tương lai

Trang 9

1.6 SƠ ĐỒ TỔNG QUAN CỦA HỆ THỐNG

 Sơ đồ tổng quan của hệ thống:

Hình 1.1 Sơ đồ tổng quan hệ thống

Dù đang ở rất xa ngôi nhà, người sử dụng có thể dùng máy tính được kếtnối với mạng Internet hoặc các thiết bị như điện thoại, máy tính bảng có hỗ trợtin nhắn SMS để gửi tín hiệu tới bộ điều khiển tác động lên các thiết bị điệntrong gia đình Điều này rất thuật tiện khi bạn thường xuyên phải ra khỏi nhà vàmuốn cập nhật trạng thái và điều khiển hoạt động của các thiết bị điện trong ngôinhà

Trang 10

 Sơ đồ khối của bộ điều khiển:

VI ĐIỀU KHIỂN PIC18F8722

KHỐI ETHERNET

KHỐI CÔNG SUẤT

Thiết bị 2 Thiết bị 1 Thiết bị 3 Thiết bị 4

MODULE SIM900

KHỐI

GIAO

TIẾP SMS

CẢM BIẾN

KHỐI GIAO TIẾP INTERNET

KHỐI

NGUỒN

KHỐI HIỂN THỊ LCD

Hình 1.2 Sơ đồ khối của bộ điều khiển

Chức năng từng khối:

 Khối giao tiếp SMS:

Gồm Module SIM900, có chức năng gửi nhận tin nhắn SMS cho việc điềukhiển các thiết bị Module SIM900 được kết nối với vi điều khiển PIC18F8722,

có nhiệm vụ nhận SMS gửi tới vi điều khiển và gửi SMS tới người sử dụng khi

có yêu cầu

 Khối giao tiếp ETHERNET:

Gồm ENC26JC0 được kết nối với vi điều khiển PIC18F8722 truyền nhậntín hiệu qua giao thức SPI Khối này có nhiệm vụ nhận lệnh điều khiển qua

Trang 11

Webserver với giao thức TCP/IP Vi điều khiển nhận lệnh, thực thi xong và gửitrả lại kết quả.

 Khối vi điều khiển PIC18F8722

Khối trung tâm trong việc xử lý và điều khiển Vi điều khiển nhận tín hiệu

từ khối giao tiếp SMS, khối giao tiếp Ethernet và cảm biến, sau đó đưa ra tínhiệu điều khiển đồng thời hiển thị lên LCD

 Khối cảm biến nhiệt độ

Cảm biến được sử dụng là DS18B20 có nhiệm vụ đo nhiệt độ và gửi tínhiệu tới vi điều khiển Khi nhiệt độ đo được lớn hơn giá trị cho phép thì vi điềukhiển phát tín hiệu cảnh báo

 Khối hiển thị LCD

Gồm TEXT LCD 16x2, có nhiệm vụ hiện thị các thông tin có liên quan tớiviệc điều khiển, giúp cho giao diện giữa người dùng và thiết bị trực quan hơn

 Khối công suất

Khối này bao gồm 4 BJT C1815 có nhiệm vụ khuếch đại điện áp để kíchcho relay Khối công suất với dòng thấp, đáp ứng tải tiêu tụ công suất dân dụngnhư bóng đèn

Tạo nguồn với hai mức điện áp 5V cấp cho vi điều khiển và 3V3 cấp choENC26JC0 Ngoài ra module SIM900 được cấp nguồn với điện áp 4V

Trang 12

CHƯƠNG 2: ETHERNET VÀ HỌ GIAO THỨC

TCP/IP

2.1 Tổng quan về Ethernet

2.1.1 Cấu trúc khung tin Ethernet

Các chuẩn Ethernet đều hoạt động ở tầng Data Link trong mô hình 7 lớpOSI vì thế đơn vị dữ liệu mà các trạm trao đổi với nhau là các khung (frame).Cấu trúc khung Ethernet như sau:

Bảng 2.1: Cấu trúc khung MAC theo IEEE 802.3/ Ethernet

Mở đầu

555…5H

SFD(D5H)

Địa chỉđích

Địa chỉnguồn

Độ dàikiểugói

Dữ liệu PAD FCS

7byte 1 byte 2/6 byte 2/6 byte 2 byte 46-1500 byte 4 byte

- Preamble (mở đầu): trường này đánh dấu sự xuất hiện của khung bit, nó luônmang giá trị 10101010 Từ nhóm bit này, phía nhận có thể tạo ra xung đồng

- 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ườngnà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ạikhung coi như là lỗi và bị loại bỏ

Trang 13

Mỗi giao tiếp mạng Ethernet được định danh duy nhất bởi 48 bit địa chỉ (6octet) Đây là địa chỉ được ấn định khi sản xuất thiết bị, gọi là địa chỉ MAC(Media Access Control Address ) Địa chỉ MAC được biểu diễn bởi các chữ sốhexa ( hệ cơ số 16 ) Ví dụ:00:60:97:8F:4F:86 hoặc 00-60-97-8F-4F-86.Khuôndạng địa chỉ MAC được chia làm 2 phần:

- 3 octet đầu xác định hãng sản xuất, chịu sự quản lý của tổ chức IEEE

- 3 octet sau do nhà sản xuất ấn định

Kết hợp ta lẽ có một địa chỉ MAC duy nhất cho một giao tiếp mạngEthernet Địa chỉ MAC được sử dụng làm địa chỉ nguồn và địa chỉ đích trongkhung Ethernet

2.1.3 Các loại khung Ethernet

Trang 14

2.1.3.3 Khung multicast

Trạm nguồn gửi khung tới một số trạm nhất định chứ không phải là tất cả.Địa chỉ MAC đích của khung là địa chỉ đặc biệt mà chỉ các trạm trong cùngnhóm mới chấp nhận các khung gửi tới địa chỉ này

2.1.4 Truy nhập bus sử dụng phương pháp CSMA/CD

Hình 2.1: Minh họa phương pháp CSMA/CD

Nguyên tắc làm việc phương pháp CSMA/CD:

Theo phương pháp CSMA/CD, mỗi trạm đều có quyền truy nhập bus mà khôngcần một sự kiểm soát nào Phương pháp được tiến hành như sau:

- Mỗi trạm đều phải tự nghe đường dẫn (carrier sense), nếu đường dẫn rỗi(không có tín hiệu ) thì mới được phát

Trang 15

- Do việc lan truyền tín hiệu cần một thời gian nào đó, nên vẫn có khả nănghai trạm cùng phát tín hiệu lên đường dẫn Chính vì vậy, trong khi phát thì mỗitrạm vẫn phải nghe đường dẫn để so sánh tín hiệu phát đi với tín hiệu nhận đượcxem có xảy ra xung đột hay không (collision detection).

- Trong trường hợp xảy ra xung đột, mỗi trạm đều phải hủy bỏ bức điện củamình, chờ một thời gian ngẫu nhiên và thử gửi lại

2.2 Họ giao thức TCP/IP

TCP/IP là viết tắt của Transmission Control Protocol / Internet Protocol(Giao thức Điều Khiển Truyền Thông /Giao thức Internet).Các tầng trong môhình này là:

- Tầng Ứng Dụng (Application Layer)

- Tầng Giao Vận (Transport Layer)

- Tầng Liên Mạng (Internet Layer)

- Tầng Giao Tiếp Mạng (Network Interface Layer)

Trang 16

Hình 2.2: Cấu trúc họ giao thức TCP/IP

2.2.1 Tầng Ứng Dụng (Application Layer)

Gồm nhiều giao thức cung cấp cho các ứng dụng người dùng Được sửdụng để định dạng và trao đổi thông tin người dùng và hệ thống Một số giaothức thông dụng trong tầng này là: HTTP, FTP, SMTP,…Trong phạm vi đồ án,chúng ta sử dụng giao thức HTTP mà cụ thể là xây dựng một Webserver nhúngvào hệ thống

HTTP là giao thức truyền tải siêu văn bản (HyperText Transfer Protocol).HTTP xác định cách các thông điệp được định dạng và truyền tải ra sao và hoạtđộng của Webserver và các trình duyệt Web.Trong mô hình của HTTP,Webserver đồng thời cũng là TCPServer, mở sẵn port mặc định dành cho dịch

vụ HTTP là TCP80 (ở chế độ listen), sẵn sàng đợi yêu cầu kết nối từ các client.Các client sẽ khởi tạo kết nối TCP thông qua port này, sau khi Webserver chấpnhận kết nối, client sẽ gửi một bản tin HTTP (HTTP message) gọi là HTTPrequest tới server trên kết nối TCP vừa thiết lập Server sẽ trả lời lại bằng mộtbản tin HTTP khác là HTTP response Bản tin này sẽ chứa nội dung trang Webyêu cầu (được viết bằng ngôn ngữ HTML).Như vậy giao thức HTTP sẽ dựa cơbản trên các bản tin HTTP, gồm 2 loại là HTTP request và HTTP response

Giả sử ta truy nhập vào địa chỉ IP của webserver là 192.168.1.10 qua trình duyệt:

 Lúc đó, máy tính của chúng ta sẽ gửi đi một bản tin request của giao thứcHTTP là HTTP Get thông qua giao thức TCP (với cổng TCP được quiđịnh cho giao thức HTTP là 80) đến địa chỉ webserver trên

 Webserver, ở đây chính là vi điều khiển của chúng ta nhận được bản tinnày (khi đã đi qua hết các lớp giao thức ethernet, IP, TCP rồi mới đếnHTTP) Tại đây vi điều khiển sẽ đọc và phân tích bản tin HTTP requestnày để biết máy tính đang yêu cầu tải nội dung trang web nào

Trang 17

 Sau đó vi điều khiển sẽ lấy nội dung trang web này (được soạn thảo theongôn ngữ HTML) chứa trên trên ROM, nó cũng có thể thêm vào trangweb đó một số thông tin (ví dụ đọc giá trị từ các sensor cảm biến nhiệt độ

và đưa vào trong trang web), và gửi toàn bộ nội dung trang web thông quagiao thức TCP trở lại cho máy tính Nếu nội dung trang web lớn nó có thểđược gửi đi trên rất nhiều gói tin, vì mỗi gói tin chỉ chứa tối đa 1460 byte

dữ liệu

 Máy tính nhận nội dung trang web và trình duyệt sẽ hiển thị lên cho chúng

ta thấy Để điều khiển thiết bị kết tới hệ thống từ xa qua web, trên trangweb ta có thể thiết kế một nút nhấn chẳng hạn Khi ta nhấn nút này trêntrình duyệt, máy tính sẽ gửi đi một bản tin HTTP nữa là HTTP Get Viđiều khiển sẽ nhận bản tin HTTP post này, phân tích dữ liệu chứa trong đó

để có đáp ứng tương ứng (bật tắt bóng đèn) sau đó nó sẽ gửi trả lại lần nữanội dung trang web đã cập nhật những thay đổi vừa rồi.Trình duyệt sẽ cậpnhật nội dung này lên và ta sẽ thấy được tác động của thao tác điều khiển

2.2.2 Tầng Giao Vận (Transport Layer)

Nhiệm vụ của tầng là thiết lập phiên truyền thông giữa các máy tính vàquy định cách truyền dữ liệu Hai giao thức chính trong tầng này gồm UDP(User Datagram Protocol) và TCP (Transmission Control Protocol) Do UDPcung cấp các kênh truyền thông phi kết nối nên nó không đảm bảo truyền dữ liệumột cách tin cậy nên trong phạm vi đồ án chúng ta sử dụng thức TCP.Ngược lạivới UDP, TCP cung cấp các kênh truyền thông hướng kết nối và đảm bảo truyền

dữ liệu 1 cách tin cậy TCP thường truyền các gói tin có kích thước lớn và yêucầu phía nhận xác nhận về các gói tin đã nhận

Cấu trúc gói TCP:

Trang 18

- Vùng Data offset: chiều dài của Header tính theo đơn vị 32 bitMột số cờ (flags):

.URG (Urgent): thiết lập 1 khi có dữ liệu quan trọng cần truyền ngay ACK: cho biết có số xác nhận nằm trong vùng Acknowledgement PSH (Push): được thiết lập trong trường hợp dữ liệu nên được giao tứcthời

.RST (Reset): chỉ thị một lỗi sai và hủy bỏ phiên làm việc

Trang 19

SYN (Synchronize): trong các bản tin khởi tạo khi thiết lập một kết nốitruyền dữ liệu

FIN (Finish): dùng đóng 1 phiên làm việc

- Vùng Window: chỉ ra số lượng không gian bộ đệm khả dụng để nhận dữ liệu

- Vùng Checksum: vùng kiểm tra sai cho cả segment

- Vùng Urgent Pointer: chỉ ra chiều dài của dữ liệu urgent

- Vùng Options: xác định kích thước cực đại của 1 segment

Cụ thể hơn, vai trò của TCP trong chồng giao thức TCP gồm 3 chức năngchính: điều khiển luồng, kiểm soát lỗi và báo nhận

- Điều khiển luồng: điều phối tốc độ và kích thước luồng dữ liệu để đảm bảophía nhận đủ khả năng nhận và xử lý luồng dữ liệu

- Kiểm soát lỗi: đảm bảo các gói tin đến đúng và đủ

- Báo nhận: khi nhận được dữ liệu và không có lỗi, phía nhận phải báo lại vớiphía gửi biết

Để thực hiện được các chức năng đó, một quá trình truyền dữ liệu qua giaothức TCP (mà ta gọi là phiên truyền thông – session) gồm có 3 giai đoạn: Thiếtlập kết nối, truyền dữ liệu và giải phóng kết nối

Để có thể giám sát chặt chẽ trạng thái và mọi sự kiện xảy ra trong một kếtnối TCP, trạng thái của một kết nối TCP được chuyển đổi tuân theo một lưu đồtrạng thái như sau:

Trang 20

Hình 2.4: Lưu đồ trạng thái kết nối TCP

Giải thích:

- TCP là giao thức hướng kết nối, dạng client – server Tức là trong một phiêntruyền thông thì sẽ có một phía đóng vai trò client, phía còn lại, lúc nào cũng ởtrạng thái chờ đợi các client thiết lập kết nối tới chính là server

- Ví dụ khi ta truy cập web, thì máy tính của ta là client, máy chủ chứa trang webchính là server – vi điều khiển, lúc nào cũng ở trạng thái đợi các máy tính clientkết nối đến (và phải có khả năng thiết lập đồng thời nhiều kết nối, vì có thể cónhiều client kết nối tới cùng lúc)

Trang 21

- Trong lưu đồ trên, áp dụng cho cả client và server Cả client và server đều bắtđầu bằng trạng thái “Close” Client sẽ thiết lập kết nối theo con đường ActiveOpen (nó chủ động thiết lập kết nối) Server sẽ thiết lập kết nối theo con đườngPassive Open (thụ động, vì nó đợi client bắt đầu mà)

Quá trình chuyển trạng thái:

- Cả hai bắt đầu bằng trạng thái close, không có kết nối nào tồn tại

- Khi Server mở một port TCP để đợi client thiết lập kết nối, nó chuyển sangtrạng thái “Listen”

- Khi client gửi đi bản tin SYN, nó chuyển sang trạng thái “SYN sent”

- Lúc này khi server nhận được bản tin SYN từ client và gửi đáp lại 1 bản tinSYN, nó chuyển sang trạng thái “SYN Received”

- Lúc này client gửi lại bản tin xác nhận ACK (bước 3 trong ví dụ), nó chuyểnsang trạng thái thiết lập kết nối “Established”

- Server nhận được bản tin ACK trên của client, nó cũng chuyển sang trạng thái

“Established”

- Sau đó hai bên tiến hành truyền dữ liệu, trạng thái cả hai đều là “Established”

- Một trong hai phía truyền xong dữ liệu, đến đây thì vai trò hai bên là như nhau,

ta giả sử client truyền xong dữ liệu trước, nó sẽ gửi bản tin FIN, và chuyển sangtrạng thái “FIN wait 1”

- Phía server nhận được bản tin này, gửi xác nhận ACK, và chuyển sang trạngthái “Close wait”

- Khi client nhận được xác nhận từ server (nhận được bản tin ACK trên) thì nóchuyển sang trạng thái “FIN wait 2”

- Đến lúc này server vẫn có thể tiếp tục gửi dữ liệu và client vẫn tiếp tục nhận (vìchỉ có client báo là gửi xong dữ liệu)

Trang 22

- Khi client nhận được bản tin FIN trên từ server, nó gửi xác nhận (ACK) vàchuyển sang trạng thái “Time wait”, sau đó chờ 1 khoảng thời gian Timeout vàđóng kết nối, quay lại trạng thái “Close”.

- Khi server nhận được nó cũng chuyển từ “Last ACK” sang “Close” (không cầnđợi Timeout)

2.2.3 Tầng Internet (Internet Layer)

Nằm bên trên tầng truy nhập mạng Tầng này có chức năng gán địa chỉ, đóng gói

và định tuyến (Route) dữ liệu 4 giao thức quan trọng nhất trong tầng này gồm:

- IP (Internet Protocol): Có chức năng gán địa chỉ cho dữ liệu trước khitruyề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ủamáy đích thành địa chỉ MAC

- ICMP (Internet Control Message Protocol): Có chức năng thông báo lỗitrong 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ểntruyền đa hướng (Multicast)

Trang 23

- Cấu trúc của gói IP:

Hình 2.5: Cấu trúc gói tin IP

Ý nghĩa:

- Version (có chiều dài 4 bit): cho biết phiên bản của giao thức, đối vớitrường hợp của chúng ta, giao thức là IP version 4, trường này sẽ luôn cógiá trị là 4 (0100)

- Header Length (4 bit): cho biết chiều dài của header IP, tính theo đơn vị 4byte (32 bit)

- TOS (8 bit): Type of Service

- Total Length (16 bit): 16 bit tổng chiều dài của gói IP gồm cả phần header

- Identification (16 bit): dùng nhận diện các phân đoạn của gói IP

- Flags:

Bit đầu tiênkhông sử dụng

Bit 2: DF (Don’t Fragment) = 1 có nghĩa là không phân đoạn gói này

Trang 24

- Fragmented offset (13 bit): độ dời (đơn vị 8 byte) tính từ điểm bắt đầu củaHeader tới điểm bắt đầu của phân đoạn

- TTL (Time to Live) (8 bit): thời gian tồn tại trên mạng hoặc số chặng trênmạng mà gói đi qua trước khi bị hủy bỏ

- Protocol (8 bit): nhận diện Protocol trên lớp IP

- Header checksum (16 bit): sửa sai cho phần Header

- Các vùng địa chỉ nguồn, địa chỉ đích: địa chỉ IP 32 bit

- Option: các tùy chọn dùng cho việc kiểm tra: Loose source routing, Strictsource routing, Record route và Timestamp

- Padding: Gồm các số zero được thêm vào sao cho chiều dài của vùngHeader là bội số của 32 bit

Cách thức mà dữ liệu được gửi qua giao thức IP được tiến hành như sau:

- Khi nhận được một segment dữ liệu (từ giao thức lớp trên là TCP) cần gửiđến đích nào đó, địa chỉ đích này phải được xác định bằng địa chỉ IP (tức

là địa chỉ mạng hay địa chỉ luận lý) Lớp giao thức IP sẽ gắn thêm vào đầusegment dữ liệu một header IP để tạo thành gói IP hoàn chỉnh Trongheader IP này có chứa 2 thông tin quan trọng, đó là địa chỉ host gửi(source IP address) và địa chỉ host nhận (destination IP address) Địa chỉsource đương nhiên là địa chỉ của bản thân nó, còn địa chỉ đích phải đượccung cấp cho lớp IP khi muốn gửi dữ liệu qua giao thức này

- Gói tin IP này sau đó được chuyển đến lớp giao thức ethernet để thêmphần header ethernet vào và gửi đi

Nhưng giao thức ethernet lại gửi các khung dữ liệu đi dựa vào một loại địachỉ khác là địa chỉ MAC (hay còn gọi là địa chỉ vật lý) Tại sao lại cần đến 2 địachỉ như vậy? Lý do là địa chỉ vật lý chỉ có giá trị trong phạm vi mạng LAN, nó

sẽ không thể giúp xác định vị trí host ở bên ngoài phạm vi mạng LAN Khi gửi

Trang 25

dữ liệu ra ngoài mạng LAN, các router sẽ chuyển dữ liệu đi dựa và địa chỉ IP.Như vậy trong phần địa chỉ MAC nguồn và địa chỉ MAC đích trong header củakhung ethernet, ta sẽ điền các địa chỉ nào? Đối với địa chỉ MAC nguồn, đươngnhiên ta sẽ điền địa chỉ MAC của chính ENC28J60 đã được xác lập Nhưng cònđịa chỉ MAC đích, sẽ có 2 trường hợp xảy ra:

- Nếu host đích nằm trong cùng 1 mạng LAN với chúng ta, ta sẽ điền địachỉ MAC đích là địa chỉ tương ứng của host đích Frame dữ liệu sẽ đượcgửi thẳng đến đích

- Nếu host đích nằm bên ngoài mạng LAN, rõ ràng ta không thể gửi dữ liệutrực tiếp đến host đích mà phải thông qua gateway, khi đó địa chỉ MACđích phải là địa chỉ gateway

Vẫn còn một vấn đề nữa mà ta phải giải quyết Đó là trong cả hai trườnghợp trên, dù là cần gửi cho gateway hay thẳng đến host đích, thì đến đây, ta mớichỉ biết địa chỉ IP của host đích (hay của gateway) mà không biết địa chỉ MACtương ứng Vậy nảy sinh một vấn đề là làm sao biết được địa chỉ MAC của mộthost khi biết địa chỉ IP?

Đến đây, chính là phát sinh vai trò của giao thức phân giải địa chỉ (APR –Address Resolution Protocol) Vai trò của giao thức này là tìm ra địa chỉ MACkhi biết địa chỉ IP của 1 host

Trang 26

Cấu trúc gói ARP:

Hình 2.6: Cấu trúc gói tin ARP

 HLEN (1 byte): cho biết chiều dài của địa chỉ vật lý (địa chỉ MAC)

 PLEN (1 byte): cho biết chiều dài của địa chỉ giao thức (địa chỉ IP)

 Operation (2 bytes): cho biết hoạt động đang thực hiện trong gói tin này(request hay reply)

 Sender H/W (hardware address, 6 bytes): địa chỉ vật lý của phía gửi

 Sender IP (4 bytes): địa chỉ IP của phía gửi

 Target H/W (6 bytes): địa chỉ vật lý của phía nhận, nếu chưa biết thì sẽ làchứa toàn 0

 Target IP (4 bytes): địa chỉ IP của phía nhận

Cách thức mà dữ liệu được gửi qua giao thức ARP được tiến hành như sau:

Trang 27

- Khi giao thức IP đưa xuống yêu cầu tìm chỉ MAC của host có IP là a.b.c.dthì nó phải trả lời ngay địa chỉ MAC của địa chỉ trên dạngXX:XX:XX:XX:XX:XX.

- Cách thức ARP lấy thông tin giải quyết vấn đề trên là: giao thức ARP duytrì một bảng gọi là ARP cache gồm hai cột, một cột ghi địa chỉ IP, một cộtghi địa chỉ MAC tương ứng với địa chỉ IP đó Mỗi khi được hỏi bởi giaothức IP, nó sẽ tra bảng này để tìm câu trả lời Khi được hỏi về một địa chỉ

IP a.b.c.d nào đó mà không có sẵn trong bảng ARP cache, nó sẽ lập tứctìm trong mạng LAN phần tử có địa chỉ IP là a.b.c.d bằng cách gửi yêucầu tới các phần tử trong mạng LAN Các phần tử này đều nhận được yêucầu và phần tử nào có IP a.b.c.d sẽ trả lời lại địa chỉ MAC của nó làXX:XX:XX:XX:XX:XX Vậy giao thức ARP sẽ lập tức thêm cặp địa chỉ

IP a.b.c.d và địa chỉ MAC XX:XX:XX:XX:XX:XX vào trong bảng ARPcache và trả lời lại cho giao thức IP

2.2.4 Lớp giao tiếp mạng

Tầng giao tiếp mạng liên quan tới việc trao đổi dữ liệu giữa hai trạm thiết

bị trong cùng một mạng Giao thức được sử dụng trong phạm vi đồ án là giaothức Ethernet Phần cứng được sử dụng chip giao tiếp Ethernet ENC28J60 giao

tiếp qua chuẩn SPI ( Serial Pheripheral Interface ).

Trong chồng giao thức TCP/IP, giao thức Ethernet đóng vai trò lớp truynhập và truyền dẫn Việc gửi và nhận dữ liệu ở lớp Ethernet được thực hiện dựavào địa chỉ vật lý hay còn gọi là địa chỉ MAC Trong mỗi khung Ethernet đềuchứa 2 địa chỉ MAC: một địa chỉ của host gửi và một địa chỉ của host nhận Khilớp Ethernet nhận được một khung dữ liệu, trước hết nó sẽ kiểm tra địa chỉ hostnhận xem có phải là địa chỉ của nó không (tức là gửi cho nó), nếu đúng nó sẽ

Trang 28

cho tất cả mọi máy trong mạng LAN), trong trường hợp này frame sẽ được nhận

và xử lý.Ngoài việc kiểm tra địa chỉ, trong khng Ethernet còn có 1 trường chứa

mã kiểm tra lỗi giúp phát hiện những lỗi xảy ra trong quá trình truyền, các khung

bị xác định là có lỗi sẽ bị bỏ qua

Trong mạch của chúng ta, việc kiểm tra lỗi và kiểm tra địa được thực hiện

tự động bởi IC ENC28J60, do đó ta không cần lập trình cho các chức năng này.Mỗi khi nhận được một khung trên đường truyền, ENC28J60 sẽ kiểm tra lỗi xem

có sai sót không, tiếp đó nó sẽ đối chiếu địa chỉ host nhận với địa chỉ đã đượccấu hình cho nó (trong các thanh ghi địa chỉ MAC: MAADR0-5)

2.3 Microchip TCP/IP Stack

2.3.1 Cấu trúc của Microchip TCP/IP Stack

TCP/IP Stack là bộ thư việnvà một số công cụ phần mềm của Microchip

để hỗ trợ viết phần mềm cho hệ thống nhúng sử dụng vi điều khiển củahãng.Thư viện đã xây dựng hầu hết các hàm giao tiếp giữa các lớp cũng như hỗtrợ xây dựng một Webserver nhúng

TCP/IP cũng có các Module sử dụng cho lớp ứng dụng như: HTTP choWeb, SMTP cho gửi và nhận Email, SNMP cho giao thức trạng thái và điềukhiển Telnet cho điều khiển từ xa, TFTP

Hình 2.7: Cấu trúc của Stack

Trang 29

Hình 2.8: So sánh cấu trúc TCP/IP tham khảo và cấu trúc Stack của Microchip

Ngoài những module chính giống như cấu trúc TCP/IP tham khảo thìMicrochip đưa thêm vào Stack 2 module mới đó là StackTask và ARPTask.StackTask quản lý sự vận hành và tất cả các module của Stack Trong khi đó,ARPTask quản lý các dịch vụ của lớp ARP ( Address Resolution Protocol)

2.3.2 Hoạt động của TCP/IP Stack

Hoạt đông của TCP/IP Stack là các nhiệm vụ sẽ được chia thành các tác

vụ ( ở đây là TCP, UDP, Ping,…) Tất cả hoạt động của TCP/IP sẽ được mộtđồng hồ chung quản lí theo Time Split Tức là có một Timer hệ thống (Timer1),

cứ mỗi khoảng thời gian ngắn sẽ ngắt (gọi là một TICK), khi bị ngắt, hệ thống sẽtreo lại, ngữ cảnh của tất cả các tác vụ được bộ lập lịch lôi ra, xem xét tác vụ nàođược chạy theo kiểu chia sẻ thời gian (vì không có mức ưu tiên cho tác vụ) Sau

đó cho phép tác vụ đó chiếm quyền thực thi của CPU Đến TICK tiếp theo, hệthống lại treo lại, và lại lôi ngữ cảnh ra, cứ tiếp tục như vậy mãi

Ngày đăng: 01/05/2014, 09:44

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w