Hiểu biết về Giao thức truyền thông SPI trong nhúng

Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề





Giao tiếp đóng một vai trò thiết yếu trong thiết kế hệ thống nhúng. Nếu không sử dụng các giao thức, việc mở rộng ngoại vi rất phức tạp và tiêu tốn nhiều điện năng. Các hệ thống nhúng về cơ bản sử dụng giao tiếp nối tiếp để giao tiếp với các thiết bị ngoại vi.
Có nhiều giao thức giao tiếp nối tiếp, chẳng hạn như giao tiếp UART, CAN, USB, I2C và SPI. Nối tiếp giao thức giao tiếp các đặc điểm bao gồm tốc độ cao và mất dữ liệu thấp. Nó giúp thiết kế cấp hệ thống dễ dàng hơn và đảm bảo truyền dữ liệu đáng tin cậy.

Truyền dữ liệu nối tiếp

Thông tin được mã hóa bằng điện được gọi là dữ liệu nối tiếp, được truyền từng bit từ thiết bị này sang thiết bị khác thông qua một tập hợp các giao thức. Trong hệ thống nhúng, dữ liệu cảm biến điều khiển và thiết bị truyền động được nhận hoặc truyền đến các thiết bị điều khiển như vi điều khiển để dữ liệu được phân tích và xử lý thêm. Khi bộ vi điều khiển làm việc với dữ liệu kỹ thuật số, thông tin từ cảm biến tương tự , bộ truyền động và các thiết bị ngoại vi khác được chuyển đổi thành một từ nhị phân một byte (8-bit) trước khi được truyền đến bộ vi điều khiển.




Truyền dữ liệu nối tiếp

Truyền dữ liệu nối tiếp

Dữ liệu nối tiếp này được truyền đối với xung đồng hồ nhất định. Tốc độ truyền dữ liệu được gọi là tốc độ truyền. Số lượng bit dữ liệu có thể được truyền trong một giây được gọi là tốc độ truyền. Giả sử dữ liệu là 12 byte, sau đó mỗi byte được chuyển đổi thành 8bits để tổng kích thước truyền dữ liệu là khoảng 96bits / giây của dữ liệu (12byte * 8 bit mỗi byte). Nếu dữ liệu có thể được truyền mỗi giây một lần, tốc độ truyền vào khoảng 96bits / giây hoặc 96 baud. Màn hình hiển thị làm mới giá trị dữ liệu mỗi giây một lần.



Kiến thức cơ bản về giao diện ngoại vi nối tiếp

Giao tiếp SPI là viết tắt của giao diện ngoại vi nối tiếp giao thức truyền thông , được Motorola phát triển vào năm 1972. Giao diện SPI có sẵn trên các bộ điều khiển giao tiếp phổ biến như PIC, AVR, và Bộ điều khiển ARM , v.v ... Nó có liên kết dữ liệu truyền thông nối tiếp đồng bộ hoạt động song công, có nghĩa là các tín hiệu dữ liệu truyền đồng thời trên cả hai hướng.

Giao thức SPI bao gồm bốn dây như MISO, MOSI, CLK, SS được sử dụng cho giao tiếp chủ / tớ. Master là một bộ vi điều khiển và các nô lệ là các thiết bị ngoại vi khác như cảm biến, Modem GSM và modem GPS, v.v. Nhiều nô lệ được giao tiếp với chủ thông qua một bus nối tiếp SPI. Giao thức SPI không hỗ trợ giao tiếp Multi-master và nó được sử dụng trong một khoảng cách ngắn trong bảng mạch.

Kiến thức cơ bản về giao diện ngoại vi nối tiếp

Kiến thức cơ bản về giao diện ngoại vi nối tiếp

Dòng SPI

MISO (Master in Slave out) : Dòng MISO được cấu hình như một đầu vào trong thiết bị chính và như một đầu ra trong thiết bị phụ.


MOSI (Master out Slave in) : MOSI là một đường được cấu hình làm đầu ra trong thiết bị chính và là đầu vào trong thiết bị phụ, trong đó nó được sử dụng để đồng bộ hóa chuyển động dữ liệu.

SCK (đồng hồ nối tiếp) : Tín hiệu này luôn được điều khiển bởi master để truyền dữ liệu đồng bộ giữa master và slave. Nó được sử dụng để đồng bộ hóa việc di chuyển dữ liệu cả vào và ra thông qua các đường MOSI và MISO.

SS (Chọn nô lệ) và CS (Chọn chip) : Tín hiệu này được điều khiển bởi chủ để chọn các nô lệ / thiết bị ngoại vi riêng lẻ. Nó là một dòng đầu vào được sử dụng để chọn các thiết bị phụ.

Master Slave Giao tiếp với SPI Serial Bus

Triển khai SPI Single Master và Single Slave

Ở đây, cuộc giao tiếp luôn do chủ nhân khởi xướng. Đầu tiên, thiết bị chủ định cấu hình tần số đồng hồ nhỏ hơn hoặc bằng tần số tối đa mà thiết bị phụ hỗ trợ. Sau đó, thiết bị chủ chọn thiết bị phụ mong muốn để giao tiếp bằng cách kéo dòng chọn chip (SS) của thiết bị phụ cụ thể đó về trạng thái thấp và hoạt động. Master tạo ra thông tin trên dòng MOSI mang dữ liệu từ master đến slave.

Master Slave Communication

Master Slave Communication

Triển khai một Master và Nhiều Slave

Đây là một cấu hình nhiều nô lệ với một chủ và nhiều nô lệ thông qua bus nối tiếp SPI. Nhiều nô lệ được kết nối song song với thiết bị chính bằng bus nối tiếp SPI. Ở đây, tất cả các đường xung nhịp và đường dữ liệu được kết nối với nhau, nhưng chân chọn chip từ mỗi thiết bị tớ phải được kết nối với một chân chọn tớ riêng trên thiết bị maser.

Một Master và nhiều nô lệ

Một Master và nhiều nô lệ

Trong quá trình này, việc điều khiển từng thiết bị phụ được thực hiện bởi một đường chọn chip (SS). Chân chọn chip đi xuống thấp để kích hoạt thiết bị phụ và lên cao để vô hiệu hóa thiết bị phụ.

Việc truyền dữ liệu được tổ chức bằng cách sử dụng các thanh ghi dịch chuyển ở cả thiết bị chủ và thiết bị phụ với kích thước từ cho trước tương ứng là khoảng 8-bit và 16-bit. Cả hai thiết bị được kết nối theo dạng vòng để giá trị thanh ghi dịch chuyển maser được truyền qua đường MOSI, và sau đó nô lệ dịch chuyển dữ liệu trong thanh ghi dịch chuyển của nó. Dữ liệu thường được chuyển ra với MSB trước và chuyển LSB mới vào cùng một thanh ghi.

Truyền dữ liệu giữa Master và Slave

Truyền dữ liệu giữa Master và Slave

Ý nghĩa của phân cực và pha đồng hồ

Nói chung, việc truyền và nhận dữ liệu được thực hiện đối với xung đồng hồ ở các cạnh tăng và cạnh giảm. Các bộ vi điều khiển nâng cao có hai tần số: tần số bên trong và tần số bên ngoài. Các thiết bị ngoại vi SPI có thể được thêm vào bằng cách chia sẻ các đường MISO, MOSI và SCLK. Các thiết bị ngoại vi có nhiều loại hoặc tốc độ khác nhau như ADC, DAC,… Vì vậy, chúng ta cần thay đổi cài đặt SPCR giữa các lần truyền sang các thiết bị ngoại vi khác nhau.

Đăng ký SPCR

Đăng ký SPCR

Bus SPI hoạt động ở một trong 4 chế độ truyền khác nhau với phân cực đồng hồ (CPOL) và pha đồng hồ (CPHA) xác định định dạng đồng hồ sẽ được sử dụng. Cực đồng hồ và tốc độ đồng hồ pha phụ thuộc vào thiết bị ngoại vi mà bạn đang cố gắng giao tiếp với thiết bị chính.
CPHA = 0, CPOL = 0: Bit đầu tiên bắt đầu như một tín hiệu thấp hơn - dữ liệu được lấy mẫu ở cạnh lên và dữ liệu thay đổi ở cạnh xuống.

CPHA = 0, CPOL = 1: Bit đầu tiên bắt đầu với xung nhịp thấp hơn - dữ liệu được lấy mẫu ở cạnh xuống và dữ liệu thay đổi ở cạnh lên.

CPHA = 1, CPOL = 0: Bit đầu tiên bắt đầu với xung nhịp cao hơn - dữ liệu được lấy mẫu ở cạnh xuống và dữ liệu thay đổi ở cạnh lên.

CPHA = 1, CPOL = 1: Bit đầu tiên bắt đầu với xung nhịp cao hơn - dữ liệu được lấy mẫu ở cạnh tăng và dữ liệu thay đổi ở cạnh xuống.

Thời gian xe buýt SPI

Thời gian xe buýt SPI

Giao thức truyền thông SPI

Nhiều bộ vi điều khiển có các giao thức SPI sẵn có để xử lý tất cả các dữ liệu gửi và nhận. Bất kỳ hoạt động nào của chế độ dữ liệu (R / W) đều được điều khiển bởi một thanh ghi trạng thái và điều khiển của Giao thức SPI. Tại đây, bạn có thể quan sát giao diện EEPROM với vi điều khiển PIC16f877a thông qua giao thức SPI.

Ở đây, 25LC104 EEROM là bộ nhớ 131072 byte trong đó bộ vi điều khiển chuyển hai byte dữ liệu đến Bộ nhớ EEROM thông qua một xe buýt nối tiếp SPI. Chương trình cho giao diện này được đưa ra dưới đây.

Giao tiếp Master với Slave thông qua bus nối tiếp SPI

Giao tiếp Master với Slave thông qua bus nối tiếp SPI

#include
Sbit SS = RC ^ 2
Sbit SCK = RC ^ 3
Sbit SDI = RC ^ 4
Sbit SDO = RC ^ 5
Void khởi tạo EEROM ()
Void chính ()
{
SSPSPAT = 0x00
SSPCON = 0x31
SMP = 0
SCK = 0
SDO = 0
SS = 1
EE_adress = 0x00
SPI_write (0x80)
SPI_write (1234)
SS = 0
}

Ưu điểm của Giao thức SPI

  • Đó là một giao tiếp song công đầy đủ.
  • Đó là bus dữ liệu tốc độ cao 10MHz.
  • Nó không bị giới hạn ở 8bits trong khi chuyển
  • Giao tiếp phần cứng đơn giản thông qua SPI.
  • Slave sử dụng đồng hồ chính và không cần bộ tạo dao động quý giá.

Đây là tất cả về giao tiếp SPI và giao tiếp với vi điều khiển . Chúng tôi đánh giá cao sự quan tâm và chú ý của bạn đối với bài viết này và do đó dự đoán quan điểm của bạn về bài viết này. Hơn nữa, đối với bất kỳ hỗ trợ và mã hóa giao diện nào, bạn có thể hỏi chúng tôi bằng cách bình luận bên dưới.

Tín ảnh:

  • Truyền dữ liệu nối tiếp bởi Glowscotland
  • Kiến thức cơ bản về giao diện ngoại vi nối tiếp bởi ni
  • Một Master và nhiều nô lệ bởi ăn
  • Truyền dữ liệu giữa Master và Slave bằng kỹ sư
  • Thời gian xe buýt SPI theo tích hợp tối đa