6. Điểm: (Bằng chữ: )
3.1.3.2 Kết nối Multi-Slave
Kết nối nhiều slave độc lập (Independent slaves) hay kết nối song song:
Trong cách kết nối này, tín hiệu SCK và SDO từ Master được cung cấp đến từng Slave. Đường tín hiệu SDO của các Slave nối chung lại với nhau và truyền về Master. Lúc này, Master sẽ lựa chọn Slave nào để trao đổi dữ liệu thông qua các chân SS riêng lẻ.
Hình 3. 5 : Kết nối nhiều slave song song
Kết nối nối tiếp hay kết nối Daisy-Chained
Trong kết nối này, chân SS và SCK của master nối song song đến tất cả các slave. Chân SDO của slave trước nối đến SDI của slave sau. Chân MOSI của master nối đến SDI của slave đầu tiên trong chuỗi và MISO được nối đến SDO của slave cuối cùng trong chuỗi.
Việc truyền dữ liệu từ master đến các slave và dữ liệu master nhận từ slave cuối cùng được minh họa với các slave như sau:
Hình 3. 6 : Kết nối nối tiếp (Daisy-Chained) 3.1.3.3 Kết nối Multi-Master
Kết nối nhiều master độc lập (Independent masters hay Multi-master). Đối với kiểu kết nối này có nhiều cách kết nối và nhiều vấn đề hơn.
Kết nối nhiều master song song đến một slave
Với cách kết nối này, phần cứng ngoại vi phải hỗ trợ thêm các tín hiệu điều khiển khác để tránh xung đột khi hai master cùng truy xuất đến slave. Ví dụ một trong các cách hỗ trợ multi-master như trong hình sau:
Hình 3. 7 : Kết nối hai master song song đến một slave
Giải pháp ở đây là ngoài các tín hiệu SPI thông thường, phần cứng của hai master SPI hỗ trợ thêm tín hiệu SS_IN để master này biết master kia có đang chọn slave hay không. Đồng thời tín hiệu SS nối đến slave được mắc qua một cổng XNOR để nếu hai master cùng chọn thì tín hiệu SS của slave vẫn không tích cực.
Bên cạnh đó, trong mạch trên, ngoài txd (chính là tín hiệu MOSI) thì đường SCK cũng phải Hi-Z khi master không chọn slave.
Kết nối hai master với nhau
Đây là một dạng khác của multi-master. Trong đó hai master nối trực tiếp với nhau, giao tiếp qua 5 đường.
Hình 3. 8 : Kết nối hai master với nhau 3.2 Web server.
3.2.1 Web server là gì?
Web Server (máy chủ Web): máy chủ mà trên đó cài đặt phần mềm chạy Website, đôi khi người ta cũng gọi chính phần mềm đó là Web Server. Tất cả các Web Server đều hiểu và chạy được các file *.htm và *.html, tuy nhiên mỗi Web Server lại phục vụ một số kiểu file chuyên biệt chẳng hạn như IIS của Microsoft dành cho *.asp, *.aspx…; Apache dành cho *.php…; Sun Java System Web Server của SUN dành cho *p…
Máy chủ Web Server là máy chủ có dung lượng lớn, tốc độ cao, được dùng để lưu trữ thông tin như một ngân hàng dữ liệu, chứa những website đã được thiết kế cùng với những thông tin liên quan khác. (các mã Script, các chương trình, và các file Multimedia)
Web Server có khả năng gửi đến máy khách những trang Web thông qua môi trường Internet (hoặc Intranet) qua giao thức HTTP – giao thức được thiết kế để gửi các file đến trình duyệt Web (Web Browser), và các giao thức khác.
Tất cả các Web Server đều có một địa chỉ IP (IP Address) hoặc cũng có thể có một Domain Name.
Bất kỳ một máy tính – máy chủ nào cũng có thể trở thành một Web Server bởi việc cài đặt lên nó một chương trình phần mềm Server Software và sau đó kết nối vào Internet.
Khi máy tính của bạn kết nối đến một Web Server và gửi đến yêu cầu truy cập các thông tin từ một trang Web nào đó, Web Server Software sẽ nhận yêu cầu và gửi lại cho bạn những thông tin mà bạn mong muốn.
3.2.1.1 Hoạt động của máy chủ Web.
Các tiến trình cơ bản :
Theo mô hình trên, trình duyệt web (bên trái) thực hiện một kết nối tới máy chủ web (bên phải), yêu cầu một trang web và nhận lại nó. Sau đây, là thứ tự từng bước cơ bản xảy đến đằng sau màn hình của bạn:
Trình duyệt web tách địa chỉ website làm 3 phần: Tên giao thức: “http”
Tên miền của máy chủ web: http://maychuvietnam.com.vn
Tên tệp HTML: “web-server.htm”
Trình duyệt liên hệ với máy chủ tên miền (DNS Server) để chuyển đổi tên miền “http://maychuvietnam.com.vn” ra địa chỉ IP tương ứng. Sau đó, trình duyệt sẽ gửi tiếp một kết nối tới máy chủ của website có địa chỉ IP này qua cổng 80. Dựa trên giao thức HTTP, trình duyệt gửi yêu cầu GET đến máy chủ, yêu cầu tệp HTML “web-server.htm”. (Chú ý: một cookies cũng sẽ được gửi kèm theo từ trình duyệt web đến máy chủ).
Tiếp đến, máy chủ sẽ gửi một file văn bản có các thẻ HTML đến trình duyệt web của bạn (một cookies khác cũng được gửi kèm theo từ máy chủ tới trình duyệt web, cookies này được ghi trên đầu trang của mỗi trang web).
Trình duyệt web đọc các thẻ HTML để xác lập định dạng (hình thức trình bày) trang web và kết xuất nội dung trang ra màn hình của bạn.
3.2.1.2 HTML là gì?
HTML là chữ viết tắt của cụm từ Hyper Text Markup Language (dịch là Ngôn ngữ đánh dấu siêu văn bản) được sử dụng để tạo một trang web, trên một website có thể sẽ chứa nhiều trang và mỗi trang được quy ra là một tài liệu HTML (thi thoảng mình sẽ ghi là một tập tin HTML).
Một tập tin HTML sẽ bao gồm các phần tử HTML và được lưu lại dưới đuôi mở rộng là .html hoặc .htm
3.2.2 Web server trong l ập trình Arduino
Để lập trình webserver trong môi trường Arduino chúng ta cần sử dụng Ethernet shield và board Arduino hoặc Genuino của bạn để tạo ra một máy chủ Web
đơn giản. Sử dụng thư viện Ethernet, thiết bị của bạn sẽ có thể trả lời một yêu cầu HTTP với Ethernet shield của bạn. Sau khi mở trình duyệt và điều hướng đến địa chỉ IP Ethernet shield của bạn, Arduino sẽ phản hồi vừa đủ HTML cho trình duyệt để hiển thị các giá trị đầu vào từ tất cả sáu chân analog
3.2.2.1 Yêu cầu phần cứng.
Board Arduino hoặc Genuino
Hình 3. 11 : Arduino Uno
Module Arduino Ethernet Shield
Hình 3. 13: Arduino Uno kết nối với Arduino Ethernet Shield
Các Ethernet Shield cho phép bạn kết nối một WizNet điều khiển Ethernet cho Arduino hoặc Genuino thông qua bus SPI. Nó sử dụng các chân 10, 11, 12, và 13 cho kết nối SPI cho WizNet. Mô hình sau này của Ethernet Shield cũng có thẻ SD trên board. Pin 4 digital được sử dụng để điều khiển các pin slave select trên thẻ SD.
Các Shield nên được kết nối với một mạng với một cáp ethernet. Chúng ta sẽ cần phải thay đổi các thiết lập mạng trong các chương trình tương ứng với mạng.
Arduino Ethernet shield cho phép một bo Arduino kết nối với internet bằng cách sử dụng thư viện Ethernet và để đọc và viết một card SD bằng cách sử dụng thư viện SD .
3.2.2.2 Kết nối Ethernet Shield
Để sử dụng Shield, gắn kết nó vào đầu của một bo Arduino (ví dụ như Uno). Để upload chương trình đến bo, kết nối nó với máy tính bằng cáp USB như bình thường.Một khi chương trình đã được tải lên, bạn có thể ngắt kết nối bo từ máy tính của bạn và nguồn của nó bằng một nguồn cung cấp điện bên ngoài.
Kết nối Shield đến máy tính của bạn hoặc một network hub hoặc router bằng cáp Ethernet chuẩn ( CAT5 hoặc CAT6 với kết nối RJ45 ). Kết nối với một máy tính có thể yêu cầu sử dụng một cáp chéo (mặc dù với nhiều máy tính, bao gồm tất cả các máy Mac gần đây (http://support.apple.com/kb/HT2274 ) có thể kết nối chéo trong nội bộ).
Hình 3. 14 : Rj45
Hình 3. 15 : Chuẩn cáp mạng CAT 6 3.2.2.3 Thiết lập mạng
Shield phải được gán một địa chỉ MAC và một địa chỉ IP cố định bằng cách sử dụng chức năng Ethernet.begin ().
Một địa chỉ MAC là một định danh duy nhất tổng thể cho một thiết bị cụ thể. Hiện nay Ethernet Shields đi kèm với một nhãn cho biết địa chỉ MAC bạn nên sử dụng với chúng. Những người thực hiện đề tài chọn địa chỉ MAC 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED cho Arduino Ethernet Shield.
Địa chỉ IP của module Arduino Ethernet Shield được thiết lập trong phần lập trình cho Arduino trong môi trường lập trình bằng công cụ Arduino IDE 1.0.6.
Đối với các Shield cũ hơn sẽ không có một địa chỉ MAC chuyên dụng, có thể làm việc một cách ngẫu nhiên, nhưng không sử dụng cho nhiều bo. Địa chỉ IP hợp lệ phụ thuộc vào cấu hình mạng của bạn. Có thể sử dụng DHCP để gán địa chỉ IP vào Shield. Bạn cũng có thể chỉ định một network gateway và subnet tùy ý.
Hình 3. 16 : Địa chỉ IP sau khi được thiết lập
.
3.3 Tổng quan về Ethernet
3.3.1 Cấu trúc khung tin Ethernet
Các chuẩn Ethernet đều hoạt động ở tầng Data link trong mô hình 7 lớp OSI vì thế đơn vị dữ liệu mà các trạm trao đổi với nhau là các khung ( famer) .
Cấu trúc khung Ethernet như sau:
Bảng 3. 2 : Cấu trúc khung MAC theo IEEE 802.3/ Ethernet
Preamble ( mở đầu): 7 bytes ( không được tính vào kích thước frame của Ethernet ) trường này đánh dấu sự xuất hiện của khung bit, nó luôn mang giá trị 10101010. Từ nhóm bit này, phía nhận có thể tạo ra xung đồng hồ 10Mhz.
SFD ( Start Frame Delimiter): 1 bytes (không được tính vào kích thước frame của Ethernet) trường hợp này mới thực sự xác định bắt đầu của một khung. Nó luôn mang giá trị 10101011.
Destination Address( địa chỉ đích): 6 bytes
Đây là địa chỉ MAC của Ethernet card nơi đến ( nơi khung frame gửi đến).
Ý nghĩa của bit thấp nhất xác định 6 bytes này: o 0: địa chỉ unicast
3 bytes đầu tiên được dùng để chỉ nhà sản xuất 1. 00-00-0C: CISCO
2. 00-00-3D: AT&T
3 bytes tiếp theo do nhà sản xuất quyết định o 1: địa chỉ multicast
01-80-C2-00-00-00: được dùng bởi các bridges cho giải thuật cây tản rộng
FF-FF-FF-FF-FF-FF: địa chỉ quảng bá (broadcast)
Ở chế độ hoạt động bình thường, Ethernet chỉ tiếp nhận những frame có địa chỉ nơi đến trùng với địa chỉ (duy nhất) của nó, hoặc địa chỉ nơi đến thể hiện một thông điệp quản bá. Tuy vậy, hầu hết các Ethernet card đều có thể được đặt ở chế độ "promiscuous". Trong chế độ này, nó sẽ nhận tất cả các frame xuất hiện trong mạng LAN.
Source Address ( địa chỉ nguồn): 6 bytes. Đây là địa chỉ MAC của Ethernet card nguồn (nơi khung frame được gửi đi).
LEN/TYLE (độ dài/kiểu gói): 2 bytes. Giá trị của trường nói lên độ lớn của phần giữ liệu mà khung mang theo.
Có 2 loại cấu trúc Ethernet frame o IEEE 802.3 MAC
Dùng để chỉ độ dài của Ethernet frame
o DIX Ethernet: được công bố bởi DEC, Intel và Xeror vào năm 1980 (phổ biến hơn)
Dùng để chỉ giao thức của lớp phía trên 0800: IP
0860: ARP
Phần thông tin: từ 46 tới 1500 bytes:
Do kích thước frame tối thiểu là 64 bytes, kích thước tối thiểu của phần thông tin là 64-18=46 bytes.
Kích thước phần thông tin tối đa là 1500 bytes. Do đó, kích thước gói IP trong Ethernet tối đa là 1500 bytes, đây cũng là một trong ba kích thước gói IP thông dụng nhất (40, 576, 1500).
FCS mang CRC ( cyclic redundancy checksum): phía gửi sẽ tính toán trường này trước khi truyền khung. Phía nhận tính toán lại CRC này theo cách tương tự. Nếu hai kết quả trùng nhau, khung được xem là nhận đúng, ngược lai khung coi như là bị lỗi và bị loại bỏ.
3.3.2 Cấu trúc địa chỉ Ethernet
Mỗi giao tiếp mạng Ethernet được định dạng duy nhất bởi 48 bit địa chỉ (6 octet). Đây là địa chỉ được ấn định khi sản xuất thiết bị, được gọi là địa chỉ MAC ( Media Access Control Address). Địa chỉ MAC được biểu diễn bởi các chữ số hexa ( hệ cơ số 16), ví dụ: 00:60:97:8F:4F:86 hoặc 00-60-97-8F-4F-96. Khuôn dạng địa chỉ MAC được chia làm 2 phần:
3 octet xác định hãng sản xuất, chịu sự quản lý tổ chức IEEE.
3 octet sau do nhà sản xuất ấn định.
Kết hợp ta có 1 địa chỉ MAC duy nhất cho một giao tiếp mạng Ethernet. Địa chỉ MAC được sử dụng làm địa chỉ nguồn và địa chỉ đích trong khung Ethernet.
3.3.3 Đặc tính điện
Tín hiệu Ethernet được mã hóa theo mã Manchester. Mã hóa Manchester sử dụng cách đảo ngược mỗi bit trong khoảng thời gian của nó để đồng bộ và miêu tả bit.
Bit ‘0’ Nửa chu kỳ đầu của bit là điện áp +V và nửa chu kỳ còn lại là điện áp –V
Bit ‘1’ Nửa chu kỳ đầu của bit là điện áp -V và nửa chu kỳ còn lại là điện áp + V
3.3.4 Các loại khung Ethernet 3.3.4.1 Các loại khung uniscat 3.3.4.1 Các loại khung uniscat
Giả sử trạm 1 cần truyền khung tới trạm 2. Khung Ethernet do trạm 1 truyền ra có địa chỉ:
MAC nguồn: 00-60-08-93-DB-C1.
MAC đích : 00-60-08-93-AB-12
Hình 3. 18 : Mô hình truyền thông unicast
Đây là khung unicast. Khung này được truyền tới 1 trạm xác định.Tất cả các trạm trong phân đoạn mạng trên sẽ đều nhận được khung này nhưng:
Chỉ có trạm 2 lấy được địa chỉ MAC đích của khung trùng với địa chỉ MAC của giao tiếp mạng của mình nên tiếp tục xử lý các thông tin khác trong khung.
Các trạm khác sau khi so sánh địa chỉ sẽ bỏ qua không tiếp tục xử lý khung nữa.
3.3.4.2 Các loại khung boardcast.
Các khung broadcast có địa chỉ MAC đích là FF-FF-FF-FF-FF-FF (48 bit 1). khi nhận được các khung này, mặc dù không trùng với địa chỉ MAC của giao tiếp mạng của mình nhưng các trạm đều phải nhận khung và tiếp tục xử lý.
Giao thức ARP sử dụng khung broadcast này để tìm địa chỉ MAC tương ứng với 1 địa chỉ IP cho trước. Một số giao thức định tuyến cũng sử dụng các khung broadcast để các router trao đổi bảng định tuyến.
3.3.4.2 Các khung Multicast
Trạm nguồn gửi khung tới một số trạm nhất định chứ không phải là tất cả. Địa chỉ MAC đích của khung là địa chỉ đặc biệt mà chỉ các trạm trong cùng một nhóm mới chấp nhận các khung gửi tới địa chỉ này.
(Chú ý: Địa chỉ MAC nguồn của khung luôn là địa chỉ MAC của giao tiếp mạng tạo ra khung. Trong khi đó địa chỉ MAC đích của khung thì phụ thuộc vào một trong ba loại khung nếu trên.)
3.3.5 Các loại Ethernet.
IEEE đã phát triển chuẩn Ethernet trên nhiều công nghệ truyền dẫn khác nhau vì thế có nhiều loại Ethernet. Mỗi loại mạng mô tả dựa theo 3 yếu tố: tốc độ, phương thức tín hiệu sử dụng và đặc tính đường truyền vật lý.
3.3.5.1 Các hệ thống Ethernet 10Mb/s
10base5. Đây là tiêu chuẩn Ethernet đầu tiên, dựa trên cáp đồng trục loại dày. Tốc độ đạt được 10Mb/s, sử dụng băng tần cơ sở, chiều dài cáp tối đa cho một phân đoạn mạng là 500m.
10base2. Có tên là “ thin Ethernet”, dựa trên các hệ thống cáp đồng trục mỏng với tốc độ 10Mb/s, chiều dài cáp tối đa của phân đoạn là 185m ( IEEE làm tròn thành 200m).
10baseT. Chữ T là viết tắt của “Twisted” cáp xoắn cạp. 10BaseT hoạt động với tốc đọ 10Mb/s dựa trên hệ thống xoắn cạp Cat 3 trở lên.
10BaseF. F là viết tắt của Fiber Optic ( sợi quang). Đây là chuẩn cho sợi quang hoạt động với tốc độ 10Mb/s, ra đời năm 1993.
3.3.5.2 Các hệ thống Ethernet tốc độ 100Mb/s- Ethernet cao tốc(fast Ethernet)
100BaseT. Chuẩn Ethernet hoat động với tốc độ 100Mb/s trên cả cáp xoắn cạp lẫn cáp sợi quang.
100BaseX. Chữ X nói lên được tính mã hóa đường truyền cả hệ thống này( sử dụng phương pháp mã hóa 4B/5B của chuẩn FDDI) bao gồm 2 chuẩn 100BaseFX VÀ 100BaseTX.
100BaseFX. Tốc độ 100Mb/s, dử dụng cáp sợi quang đa mode.
100BaseTX. Tốc độ 100Mb/s, sử dụng cáp xoắn cạp.
100BaseT2 và 100BaseT4. Các chuẩn này sử dụng 2 cặp và 4 cặp cáp xoắn cặp Cat 3 trở lên tuy nhiên hiện nay hai chuẩn này ít được sử dụng.
3.3.5.3 Các hệ thống Giga Ethernet
1000BaseX: Chữ X nói lên đăc tính mã hóa đường truyền( chuẩn này dựa trên kiểu mã hóa 8B/10B dùng trong hệ thống kết nối tốc độ cao Fiber channel được