• Khái niệm:
SPI (tiếng Anh: Serial Peripheral Interface, SPI bus - Giao diện Ngoại vi Nối tiếp, bus SPI) là một chuẩn giao diện nối tiếp đồng bộ để truyền dữ liệu ở chế độ song công toàn phần (full-duplex), do công ty Motorola thiết kế nhằm đảm bảo sự liên hợp giữa
các vi điều khiển và thiết bị ngoại vi một cách đơn giản và giá rẻ. Đôi khi SPI còn được gọi là giao diện bốn dây (four wire).
Hình 2.12 Chuẩn truyện nhận dữ liệu SPI
SPI có sử dụng bốn tín hiệu số:
MOSI (Master Out Slave In) hay SI - cổng ra của bên master, cổng vào của bên bị động, dành cho việc truyền dữ liệu từ thiết bị master đến thiết bị slave.
MISO (Master In Slave Out) hay SO - cổng vào của bên master, cổng ra của bên bị động, dành cho việc truyền dữ liệu từ thiết bị slave đến thiết bị master.
SCLK (Serial Clock) hay SCK - tín hiệu xung clock nối tiếp, dành cho việc truyền tín hiệu dành cho thiết bị slave.
CS hay SS (Chip Select, Slave Select): chọn vi mạch, chọn thiết bị slave.
• Cơ chế hoạt động
Mỗi chip Master hay Slave có một thanh ghi dữ liệu bit. Cứ mỗi xung nhịp do Master tạo ra trên đường giữ nhịp SCK, một bit trong thanh ghi dữ liệu của Master được truyền qua Slave trên đường MOSI, đồng thời một bit trong thanh ghi dữ liệu của chip Slave cũng được truyền qua Master trên đường MISO. Do hai gói dữ liệu trên hai chip gửi qua lại đồng thời nên quá trình này gọi là “song công”.
Hình 2.13 Mô hình truyền nhận dữ liệu giữa Master và Slave Device
Dữ liệu được truyền qua lại giữa hai đường MISO và MOSI. Điều này được thực hiện khi dòng SS được thiết lập ở mức thấp. Nếu sử dụng hai hay nhiều thiết bị SPI trên cùng một bus.
Hình 2.14 Mô hình truyền nhận dữ liệu giữa một Master và nhiều Slave Device
2.6 Phương thức Hypertext Transfer Protocol
HTTP (Hyper Text Transfer Protocol) là một giao thức nằm ở tầng ứng dụng (Application layer) của tập giao thức TCP/IP, sử dụng để truyền nhận dữ liệu giữa các hệ thống phân tán thông qua internet, cụ thể giao thức hoạt động theo mô hình Client- Server bằng cách thực hiện các quá trình request-response giữa các hệ thống máy tính khác nhau. Giao thức HTTP quy định cấu trúc của các gói tin và cách thức truyền nhận dữ liệu giữa client và server thông qua môi trường internet. Với khả năng truyền dẫn siêu văn bản (text, hình ảnh, âm thanh, video…), HTTP hiện là nền tảng truyền dẫn dữ liệu
của ứng dụng duyệt web hiện nay và được ứng dụng rất nhiều trong các hệ thống Internet of Things.
PC có Internet Server chạy Apache
Web Server
HTTP yêu cầu
HTTP phản hồi
Hình 2.15 Mô hình giao thức giữa Client- Server bằng giao thức HTTP
Quá trình làm việc của một phiên làm việc HTTP diễn ra như sau:
- HTTP client thiết lập một kết nối TCP đến server. Nếu thiết lập thành công, client và server sẽ truyền nhận dữ liệu với nhau thông qua kết nối này, kết nối được thiết lập còn gọi là socket interface bao gồm các thông tin: địa chỉ IP, loại giao thức giao vận (chính là TCP), và port (mặc định là 80).
- Sau khi kết nối thành công, client gửi một HTTP request đến server thông qua socket interface vừa được thiết lập. Trong gói tin request sẽ chứa đường dẫn yêu cầu (path name).
- Server sẽ nhận và xử lý request từ client thông qua socket, sau đó đóng gói dữ liệu tương ứng và gửi một HTTP response về cho client. Dữ liệu trả về sẽ là một file HTML chứa các loại dữ liệu khác nhau như văn bản, hình ảnh,…
- Server đóng kết nối TCP.
- Client nhận được dữ liệu phản hồi từ server và đóng kết nối TCP.
Để gửi dữ liệu từ Client lên Server có hai phương thức thường sử dụng: phương thức GET và phương thức POST.
• Phương thức GET:
- Phương thức GET gửi dữ liệu từ client lên server thông qua các paramter( tham số) trên URL, từ đó server sẽ phân tích dữ liệu để thực thi một hành động nào đó. Các tham số mà phương thức GET gửi lên sẽ bắt đầu sau dấu ?. Và sẽ nối nhau giữa các khóa thông qua dấu &.
• Pương thức POST:
- Khác với phương thức GET phương thức POST không gửi dữ liệu thông qua paramter trên URL, nên chúng ta không thể nhìn thấy được dữ liệu đang được gửi là gì.
Phương thức này có độ tin cậy, bảo mật cao hơn phương thức GET.
2.7 Thiết lập kết nối thông qua 3 bước bắt tay (Three-way handshake)
Thiết bị 1 Thiết bị 2
Gửi dữ liệu Nhận dữ liệu
Gửi ACK Nhận ACK
Phản hồi Nhận phản hồi
Hình 2.16 Mô hình kết nối thông qua 3 bước bắt tay (Three-way handshake) Dựa vào phương thức truyền dữ liệu TCP để thiết lập nên phương thức kết nối thông qua 3 bước bắt tay để xây dựng phương thức truyền giữa các thiết bị.
TCP (Transmission Control Protocol) là một trong các giao thức cốt lõi của bộ giao thức TCP/IP. TCP được sử dụng trong các ứng dụng trên các máy chủ được nối mạng để có thể tạo các “kết nối” với nhau, mà qua đó chúng có thể trao đổi dữ liệu hoặc các gói tin. Giao thức này đảm bảo truyền dữ liệu tới nơi nhận một cách đáng tin cậy, đúng thứ tự và có báo nhận. TCP còn phân biệt giữa dữ liệu của nhiều ứng dụng (chẳng hạn,
dịch vụ Web và dịch vụ thư điện tử) đồng thời chạy trên cùng một máy chủ, các dịch vụ dùng TCP đòi hỏi độ chính xác, tính toàn vẹn của dữ liệu một cách nghiêm ngặt.
VD: Mail, FTP, DNS, Web, DHCP, …
Với mô hình kết nối thông qua 3 bước bắt tay bao gồm các bước: Bước 1: Thiết bị 1 sẽ gửi yêu cầu đến thiết bị 2.
Bước 2: Thiết bị 2 sẽ gửi lại một mã xác nhận. Trong lúc đợi có mã xác nhận có hay không thì thiết bị 1 tiếp tục gửi yêu cầu.
Bước 3: Khi nhận được mã xác nhận từ thiết bị 2, thiết bị 1 sẽ gửi một mã phản hồi báo cho thiết bị 2 là đúng hay không.
Chương 3. TÍNH TOÁN VÀ THIẾT KẾ