Mục lục:

CƠ BẢN CỦA GIAO THỨC TRUYỀN THÔNG SPI: 13 bước
CƠ BẢN CỦA GIAO THỨC TRUYỀN THÔNG SPI: 13 bước

Video: CƠ BẢN CỦA GIAO THỨC TRUYỀN THÔNG SPI: 13 bước

Video: CƠ BẢN CỦA GIAO THỨC TRUYỀN THÔNG SPI: 13 bước
Video: [Hiểu & Code giao thức SPI] Phần 1_Lý thuyết cơ bản (Basic Theory) 2024, Tháng mười một
Anonim
CƠ BẢN CỦA GIAO THỨC TRUYỀN THÔNG SPI
CƠ BẢN CỦA GIAO THỨC TRUYỀN THÔNG SPI

Khi bạn kết nối bộ vi điều khiển với cảm biến, màn hình hoặc mô-đun khác, bạn có bao giờ nghĩ về cách hai thiết bị nói chuyện với nhau không? Chính xác thì họ đang nói gì? Làm thế nào để họ có thể hiểu nhau?

Giao tiếp giữa các thiết bị điện tử cũng giống như giao tiếp giữa con người với nhau. Cả hai bên cần phải nói cùng một ngôn ngữ. Trong điện tử, những ngôn ngữ này được gọi là giao thức truyền thông. May mắn cho chúng tôi, chỉ có một số giao thức giao tiếp mà chúng tôi cần biết khi xây dựng hầu hết các dự án điện tử DIY. Trong loạt bài này, chúng ta sẽ thảo luận những điều cơ bản về ba giao thức phổ biến nhất: Giao diện ngoại vi nối tiếp (SPI), Mạch tích hợp liên kết (I2C) và giao tiếp điều khiển Bộ thu / phát không đồng bộ đa năng (UART). Trước tiên, chúng ta sẽ bắt đầu với một số khái niệm cơ bản về giao tiếp điện tử, sau đó giải thích chi tiết cách hoạt động của SPI. Trong bài viết tiếp theo, chúng ta sẽ thảo luận về giao tiếp theo hướng UART và trong bài viết thứ ba, chúng ta sẽ đi sâu vào I2C. SPI, I2C và UART chậm hơn một chút so với các giao thức như USB, ethernet, Bluetooth và WiFi, nhưng chúng đơn giản hơn rất nhiều và sử dụng ít tài nguyên hệ thống và phần cứng hơn. SPI, I2C và UART là lý tưởng để giao tiếp giữa các bộ vi điều khiển và giữa các bộ vi điều khiển và cảm biến nơi không cần truyền một lượng lớn dữ liệu tốc độ cao.

Bước 1: SERIAL VS. GIAO TIẾP PARALLEL

SERIAL VS. GIAO TIẾP PARALLEL
SERIAL VS. GIAO TIẾP PARALLEL

Các thiết bị điện tử nói chuyện với nhau bằng cách gửi các bit dữ liệu thông qua dây kết nối vật lý giữa các thiết bị. Một bit giống như một chữ cái trong một từ, ngoại trừ thay vì 26 chữ cái (trong bảng chữ cái tiếng Anh), một bit là hệ nhị phân và chỉ có thể là 1 hoặc 0. Các bit được chuyển từ thiết bị này sang thiết bị khác bằng sự thay đổi nhanh chóng của điện áp. Trong hệ thống hoạt động ở 5 V, một bit 0 được giao tiếp dưới dạng xung ngắn 0 V và một bit 1 được giao tiếp bằng một xung ngắn 5 V.

Các bit dữ liệu có thể được truyền dưới dạng song song hoặc nối tiếp. Trong giao tiếp song song, các bit dữ liệu được gửi cùng một lúc, mỗi bit thông qua một dây riêng biệt. Sơ đồ sau đây cho thấy quá trình truyền song song của ký tự “C” trong hệ nhị phân (01000011):

Bước 2:

Trong giao tiếp nối tiếp, các bit được gửi lần lượt qua một dây duy nhất. Sơ đồ sau đây cho thấy quá trình truyền nối tiếp chữ cái “C” trong hệ nhị phân (01000011):

Bước 3:

Hình ảnh
Hình ảnh

Bước 4: GIỚI THIỆU VỀ GIAO TIẾP SPI

GIỚI THIỆU VỀ GIAO TIẾP SPI
GIỚI THIỆU VỀ GIAO TIẾP SPI

SPI là một giao thức truyền thông phổ biến được sử dụng bởi nhiều thiết bị khác nhau. Ví dụ, mô-đun thẻ SD, mô-đun đầu đọc thẻ RFID và bộ phát / thu không dây 2,4 GHz đều sử dụng SPI để giao tiếp với bộ vi điều khiển.

Một lợi ích duy nhất của SPI là dữ liệu có thể được truyền mà không bị gián đoạn. Bất kỳ số lượng bit nào cũng có thể được gửi hoặc nhận trong một luồng liên tục. Với I2C và UART, dữ liệu được gửi dưới dạng gói, giới hạn ở một số bit cụ thể. Điều kiện bắt đầu và dừng xác định điểm bắt đầu và kết thúc của mỗi gói, do đó dữ liệu bị gián đoạn trong quá trình truyền. Các thiết bị giao tiếp qua SPI ở trong mối quan hệ chủ - tớ. Master là thiết bị điều khiển (thường là vi điều khiển), trong khi slave (thường là cảm biến, màn hình hoặc chip nhớ) nhận lệnh từ master. Cấu hình đơn giản nhất của SPI là một hệ thống phụ duy nhất, một chủ duy nhất, nhưng một chủ có thể điều khiển nhiều hơn một phụ (thông tin thêm về điều này bên dưới).

Bước 5:

Hình ảnh
Hình ảnh

Bước 6:

MOSI (Master Output / Slave Input) - Đường truyền cho master gửi dữ liệu đến slave.

MISO (Master Input / Slave Output) - Đường cho máy chủ gửi dữ liệu đến máy chủ.

SCLK (Đồng hồ) - Dòng cho tín hiệu đồng hồ.

SS / CS (Slave Select / Chip Select) - Dòng cho master để chọn slave nào để gửi dữ liệu

Bước 7:

Hình ảnh
Hình ảnh

* Trong thực tế, số lượng nô lệ bị giới hạn bởi điện dung tải của hệ thống, điều này làm giảm khả năng chuyển đổi chính xác giữa các mức điện áp của chủ.

Bước 8: SPI hoạt động như thế nào

ĐỒNG HỒ

Tín hiệu đồng hồ đồng bộ hóa đầu ra của các bit dữ liệu từ chủ để lấy mẫu các bit bởi phụ. Một bit dữ liệu được truyền trong mỗi chu kỳ đồng hồ, do đó tốc độ truyền dữ liệu được xác định bởi tần số của tín hiệu đồng hồ. Giao tiếp SPI luôn được khởi tạo bởi chủ kể từ khi chủ cấu hình và tạo ra tín hiệu đồng hồ.

Bất kỳ giao thức truyền thông nào mà các thiết bị chia sẻ tín hiệu đồng hồ được gọi là đồng bộ. SPI là một giao thức truyền thông đồng bộ. Ngoài ra còn có các phương thức không đồng bộ không sử dụng tín hiệu đồng hồ. Ví dụ, trong giao tiếp UART, cả hai bên đều được đặt thành tốc độ truyền được cấu hình trước để chỉ ra tốc độ và thời gian truyền dữ liệu.

Tín hiệu đồng hồ trong SPI có thể được sửa đổi bằng cách sử dụng các thuộc tính của phân cực đồng hồ và pha đồng hồ. Hai thuộc tính này làm việc cùng nhau để xác định khi nào các bit được xuất ra và khi nào chúng được lấy mẫu. Cực của đồng hồ có thể được thiết lập bởi tổng thể để cho phép các bit được xuất ra và được lấy mẫu trên cạnh lên hoặc xuống của chu kỳ đồng hồ. Pha đồng hồ có thể được đặt để đầu ra và lấy mẫu xảy ra trên cạnh đầu tiên hoặc cạnh thứ hai của chu kỳ đồng hồ, bất kể nó đang tăng hay giảm.

CHỌN LƯỢT

Chủ có thể chọn phụ mà nó muốn nói chuyện bằng cách đặt đường dây CS / SS của phụ ở mức điện áp thấp. Ở trạng thái nhàn rỗi, không truyền tải, dòng chọn phụ được giữ ở mức điện áp cao. Nhiều chân CS / SS có thể có sẵn trên thiết bị chính, điều này cho phép đấu dây song song nhiều nô lệ. Nếu chỉ có một chân CS / SS, nhiều nô lệ có thể được kết nối với chủ bằng cách nối chuỗi.

NHIỀU SLAVES SPI

có thể được thiết lập để hoạt động với một chủ và một phụ duy nhất, và nó có thể được thiết lập với nhiều nô lệ do một chủ duy nhất điều khiển. Có hai cách để kết nối nhiều nô lệ với chủ. Nếu chủ có nhiều chân chọn nô lệ, các nô lệ có thể được nối dây song song như thế này:

Bước 9:

Hình ảnh
Hình ảnh

Bước 10:

MOSI VÀ MISO

Master gửi dữ liệu đến slave từng bit, nối tiếp qua đường MOSI. Nô lệ nhận dữ liệu được gửi từ chủ tại chân MOSI. Dữ liệu được gửi từ master đến slave thường được gửi với bit quan trọng nhất trước. Nô lệ cũng có thể gửi dữ liệu trở lại chủ thông qua đường MISO nối tiếp. Dữ liệu được gửi từ slave trở lại master thường được gửi với bit ít quan trọng nhất trước. CÁC BƯỚC TRUYỀN DỮ LIỆU SPI 1. Bản chính xuất ra tín hiệu đồng hồ:

Bước 11:

Hình ảnh
Hình ảnh

Nếu chỉ có một chốt chọn nô lệ, các nô lệ có thể được xâu chuỗi như sau:

Bước 12:

Hình ảnh
Hình ảnh
Hình ảnh
Hình ảnh
Hình ảnh
Hình ảnh
Hình ảnh
Hình ảnh

MOSI VÀ MISO

Master gửi dữ liệu đến slave từng bit, nối tiếp qua đường MOSI. Nô lệ nhận dữ liệu được gửi từ chủ tại chân MOSI. Dữ liệu được gửi từ master đến slave thường được gửi với bit quan trọng nhất trước.

Nô lệ cũng có thể gửi dữ liệu trở lại chủ thông qua đường MISO nối tiếp. Dữ liệu được gửi từ slave trở lại master thường được gửi với bit ít quan trọng nhất trước.

CÁC BƯỚC TRUYỀN DỮ LIỆU SPI

* Lưu ý Hình ảnh được liệt kê Oboe bạn có thể dễ dàng phân biệt

1. Đầu ra chính của tín hiệu đồng hồ:

2. Chân chính chuyển chân SS / CS sang trạng thái điện áp thấp, điều này sẽ kích hoạt chân phụ:

3. Master gửi dữ liệu từng bit một đến slave dọc theo đường MOSI. Nô lệ đọc các bit khi chúng được nhận:

4. Nếu cần phản hồi, máy chủ sẽ trả lại dữ liệu từng bit một cho máy chủ dọc theo đường MISO. Master đọc các bit khi chúng được nhận:

Bước 13: ƯU VÀ NHƯỢC ĐIỂM CỦA SPI

Có một số ưu và nhược điểm khi sử dụng SPI và nếu được lựa chọn giữa các giao thức truyền thông khác nhau, bạn nên biết khi nào sử dụng SPI theo yêu cầu của dự án của mình:

THUẬN LỢI

Không có bit bắt đầu và dừng, vì vậy dữ liệu có thể được truyền liên tục mà không bị gián đoạn Không có hệ thống định địa chỉ phụ phức tạp như I2C Tốc độ truyền dữ liệu cao hơn I2C (gần như nhanh gấp đôi) Các dòng MISO và MOSI riêng biệt, do đó dữ liệu có thể được gửi và nhận cùng một lúc thời gian

NHƯỢC ĐIỂM

Sử dụng bốn dây (I2C và UART sử dụng hai) Không xác nhận rằng dữ liệu đã được nhận thành công (I2C có điều này) Không có hình thức kiểm tra lỗi như bit chẵn lẻ trong UART Chỉ cho phép một chủ duy nhất Hy vọng rằng bài viết này đã cho bạn hiểu rõ hơn của SPI. Tiếp tục đến phần hai của loạt bài này để tìm hiểu về giao tiếp theo hướng UART hoặc đến phần ba, nơi chúng ta thảo luận về giao thức I2C.

Nếu bạn có bất kỳ câu hỏi nào, vui lòng hỏi trong phần bình luận, chúng tôi sẵn sàng trợ giúp. Và hãy chắc chắn để làm theo

Trân trọng: M. Junaid

Đề xuất: