Giao tiếp nước ngoài vi nối liền hoặc SPI (Serial Peripheral Interface) là một chuẩn chỉnh đồng bộ nối tiếp để truyền dữ liệu ở chính sách song công toàn phần (full – duplex) tức trong cùng 1 thời điểm có thể xảy ra đồng thời quy trình truyền với nhận.

Bạn đang xem: Giao tiếp spi là gì


Giao tiếp ngoại vi tiếp nối (SPI) là 1 loại giao thức vẻ bên ngoài Master – Slave cung cấp một giao diện túi tiền đơn giản và chi phí thấp thân vi tinh chỉnh và điều khiển và những thiết bị ngoại vi của nó.

*

Bus giao tiếp SPI thường được sử dụng để tiếp xúc vi giải pháp xử lý hoặc vi điều khiển với bộ nhớ lưu trữ như EEPROM, RTC (Đồng hồ thời hạn thực), ADC (Analog lớn Digital Converter – Bộ đổi khác tương tự sang số), DAC (Digital-to-Analog Converter – Bộ biến hóa số lịch sự tương tự), thứ hiển thị như màn hình LCD, IC âm thanh, các loại cảm biến như ánh sáng và áp suất, thẻ nhớ như MMC hoặc thẻ SD hoặc thậm chí những bộ vi tinh chỉnh và điều khiển khác.

Chúng ta đang thấy về UART trong bài xích trước. Vào UART (hoặc bất kỳ cổng nối liền phổ biến đổi nào) giao tiếp xảy ra trê tuyến phố RX với TX, không có tín hiệu đồng hồ tức là nó là một giao tiếp không đồng bộ. Trong loại giao tiếp này, ko có điều hành và kiểm soát dữ liệu được nhờ cất hộ hoặc liệu bộ phát và cỗ thu tất cả cùng vận tốc dữ liệu tốt không.

Để hạn chế điều này, UART sử dụng các bit nhất quán hóa có nghĩa là bit ban đầu và bit xong xuôi cũng như vận tốc truyền tài liệu được thỏa thuận hợp tác trước (thường là 9600 bps). Nếu vận tốc truyền của bộ phát và bộ thu ko khớp, dữ liệu được nhờ cất hộ từ bộ phát sẽ không còn đến được cỗ thu đúng cách và dữ liệu nhận được là không thiết yếu xác.

*

Đối với tiếp xúc khoảng biện pháp ngắn, giao tiếp nối tiếp nhất quán sẽ là lựa chọn tốt hơn với trong đó giao tiếp ngoại vi tiếp nối hoặc SPI dành riêng là lựa chọn tốt nhất. Khi bọn họ nói truyền thông khoảng cách ngắn, nó thường tức là giao tiếp cùng với một trang bị hoặc giữa những thiết bị trên cùng một board mạch in (PCB).

Loại giao thức truyền thông đồng bộ nối tiếp không giống là I2C (Inter-Integrated Communication. Đối với nội dung bài viết này, chúng ta sẽ triệu tập vào SPI. Chúng ta cũng có thể xem nội dung bài viết về giao thức I2C.

SPI là 1 trong những kiểu truyền thông nối tiếp dạng hình đồng bộ tức là nó sử dụng tín hiệu đồng hồ chuyên được sự dụng để đồng điệu hóa cỗ phát và cỗ thu hoặc Master và Slave. Bộ phát và bộ thu được liên kết với dữ liệu đơn nhất và biểu đạt đồng hồ để giúp đỡ bộ thu khi tìm kiếm dữ liệu trên bus.

*

Tín hiệu đồng hồ phải được cung ứng bởi Master cho tới Slave (hoặc toàn bộ các Slave vào trường hợp cấu hình thiết lập nhiều Slave). Gồm hai loại cơ chế kích hoạt trên tín hiệu đồng hồ đeo tay được thực hiện để báo cho bên phân biệt về dữ liệu: Kích hoạt cạnh với kích hoạt mức.

Kích hoạt hay được sử dụng nhất là kích hoạt cạnh và có hai loại: cạnh lên (chuyển đổi từ thấp lên cao trên đồng hồ) với cạnh xuống (chuyển đổi từ cao xuống thấp). Tùy thuộc vào cách bộ chiếm được cấu hình, lên trên phát hiện những cạnh, cỗ thu vẫn tìm kiếm dữ liệu trên bus dữ liệu từ bit tiếp theo.

Bởi vày cả tín hiệu đồng hồ đeo tay và dữ liệu được gửi vày Master (hoặc cỗ phát), họ không bắt buộc phải lo lắng về tốc độ truyền dữ liệu.

Điều tạo nên SPI trở nên thông dụng trong những giao thức truyền thông đồng hóa nối tiếp khác (hoặc bất kỳ giao tiếp nối tiếp nào) là nó cung ứng tốc độ truyền dữ liệu bảo mật thông tin cao với hartware khá dễ dàng giống như thanh ghi dịch với ngân sách tương đối thấp.

SPI chuyển động như cụ nào?

SPI hoặc tiếp xúc ngoại vi tiếp liền được Motorola phát triển vào trong thời hạn 1980 như một đồ họa tiêu chuẩn, chi phí thấp và tin cậy giữa vi điều khiển (Vi điều khiển và tinh chỉnh của Motorola thời điểm đầu) và các IC ngoại vi của nó.

Nhờ giao diện đối kháng giản, linh hoạt với dễ sử dụng, SPI đã trở thành một tiêu chuẩn chỉnh và các nhà sản xuất buôn bán dẫn khác bước đầu sử dụng giao thức này trong số chip của mình.

Trong giao thức SPI, các thiết bị được liên kết trong một quan hệ Master – Slave vào một giao diện đa điểm. Vào loại hình ảnh này, một máy được xem như là Master của bus (thường là 1 vi điều khiển) và tất cả các máy khác (IC nước ngoài vi hoặc thậm chí các vi tinh chỉnh khác) rất nhiều được xem như là Slave.

Trong giao thức SPI, rất có thể chỉ bao gồm một lắp thêm Master nhưng những thiết bị Slave.

Bus SPI bao hàm 4 biểu đạt hoặc chân. Bọn chúng là

Master – Out / Slave – In (MOSI hay SI): cổng ra của mặt Master, cổng vào của bên Slave, dành riêng cho việc truyền tài liệu từ sản phẩm công nghệ Master mang lại thiết bị Slave .Master – In / Slave – Out (MISO hay SO): cổng vào của mặt Master, cổng ra của bên Slave, giành riêng cho việc truyền tài liệu từ thiết Slave mang đến thiết bị Master.Serial Clock (SCK hay SCLK): xung giữ lại nhịp cho tiếp xúc SPIChip Select (CS) giỏi Slave Select (SS): lựa chọn chip

Lưu ý: các nhà sản xuất khác nhau sử dụng thuật ngữ khác biệt cho bus SPI. Tham khảo datasheet để biết thông tin chính xác.

Bởi vị bus SPI được thực hiện bằng cách sử dụng 4 dấu hiệu hay 4 dây nên đôi khi nó được điện thoại tư vấn là chuẩn giao tiếp 4 dây (four-wire). Đầu tiên chúng ta hãy xem một giao diện đơn giản và dễ dàng giữa một Master với một Slave được kết nối bằng giao thức SPI với sau đó chúng ta sẽ tìm hiểu về 4 dây này.

Hình hình ảnh sau diễn tả một sản phẩm Master (Bộ xử lý) được liên kết với thứ Slave (Ngoại vi) sử dụng bus SPI.

*

Master – Out / Slave – In hay MOSI, như tên cho thấy, là tài liệu được tạo nên bởi Master và nhận bởi Slave. Vì đó, những chân MOSI trên cả Master và Slave được kết nối với nhau.

Master – In / Slave – Out hay MISO là tài liệu được tạo ra bởi Slave và đề nghị được truyền tới Master.Các chân MISO trên cả Master với Slave được liên kết với nhau. Tuy vậy tín hiệu trong MISO được tạo ra bởi Slave, đường dấu hiệu này được điều khiển bởi Master.

Master tạo biểu hiện đồng hồ SCLK và được cung ứng cho đầu vào đồng hồ của Slave. Xung này có tính năng giữ nhịp cho giao tiếp SPI, do SPI là chuẩn chỉnh truyền đồng nhất nên đề nghị 1 mặt đường giữ nhịp, từng nhịp bên trên chân SCK báo 1 bit tài liệu đến hoặc đi. Sự sống thọ của xung SCK giúp quá trình tuyền không nhiều bị lỗi và vì thế tốc độ truyền của SPI rất có thể đạt vô cùng cao.

Chip Select (CS) hoặc Slave Select (SS) được áp dụng để chọn một Slave cụ thể bởi Master. Nếu Master kéo đường SS của một Slave làm sao đó xuống tới mức thấp thì việc tiếp xúc sẽ xẩy ra giữa Master với Slave đó.

Vì đồng hồ đeo tay được tạo ra bởi Master, luồng tài liệu được điều khiển và tinh chỉnh bởi Master. Cùng với mỗi chu kỳ luân hồi đồng hồ, một bit tài liệu được truyền tự Master cho Slave với một bit dữ liệu được truyền từ Slave mang đến Master.

Quá trình này xẩy ra đồng thời với sau 8 chu kỳ đồng hồ, một byte dữ liệu được truyền theo cả nhị hướng và vì chưng đó, SPI là một tiếp xúc song công toàn phần (full – duplex).

Nếu tài liệu phải được truyền vị chỉ một thiết bị, thì thứ kia buộc phải gửi một cái gì đấy (dữ liệu giả) cùng nó nhờ vào vào thiết bị mặc dầu dữ liệu được truyền là dữ liệu thực tế hay không.

Điều này có nghĩa là đối với mỗi bit được truyền do một thiết bị, đồ vật kia nên gửi tài liệu một bit, có nghĩa là Master truyền tài liệu đồng thời bên trên MOSI cùng nhận dữ liệu từ Slave trê tuyến phố MISO.

Nếu Slave muốn truyền dữ liệu, Master phải tạo nên tín hiệu đồng hồ cho phù hợp bằng phương pháp biết bao giờ Slave mong gửi dữ liệu trước. Trường hợp một Master được kết nối với tương đối nhiều Slave thì sơ đồ liên kết như hình ảnh sau đây.

*

Mặc dù những Slave được liên kết với Master vào bus SPI, ở 1 thời điểm bất kỳ thì chỉ gồm một Slave hoạt động. Để chọn Slave, Master vẫn kéo mặt đường SS (Slave Select) hoặc CS (Chip Select) của Slave khớp ứng xuống mức thấp.

Do đó, phải tất cả một chân CS riêng trên Master khớp ứng với từng lắp thêm Slave. Chúng ta cần nên kéo ra ngoài đường SS hoặc CS xuống phải chăng để chọn Slave bởi vì đường này lành mạnh và tích cực mức thấp.

Phần cứng SPI

Yêu mong phần cứng để tiến hành SPI rất đơn giản dễ dàng khi đối chiếu với UART và I2C. Hãy cẩn thận một Master với một Slave đối chọi được kết nối bằng bus SPI. Hình ảnh sau đây cho biết thêm các yêu cầu hệ thống tối thiểu cho tất cả hai thiết bị.

*

Từ hình ảnh trên cho biết thêm thiết bị Master bao gồm 1 thanh ghi dịch (Shift Register), một mạch chốt tài liệu (Latch) với một cỗ tạo xung nhịp (Clock Generator). Sản phẩm công nghệ Slave bao hàm phần cứng tương tự: một thanh ghi dịch (Shift Register) và một mạch chốt tài liệu (Latch). Cả hai thanh ghi dịch được kết nối để chế tác thành một vòng. Thông thường, kích cỡ của thanh ghi là 8 – bit nhưng mà thanh ghi size lớn hơn 16 bit cũng tương đối phổ biến.

Thiết bị Master bắt đầu việc dàn xếp dữ liệu bằng phương pháp truyền đi một Byte vào thanh ghi dịch của nó, sau đó Byte dữ liệu sẽ được đưa quý phái Slave theo đường biểu lộ MOSI, Slave vẫn truyền dữ liệu nằm vào thanh ghi dịch của nó ngược quay trở lại Master trải qua đường biểu lộ MISO. Bằng cách này, dữ liệu của nhì thanh ghi sẽ tiến hành trao đổi với nhau. Câu hỏi đọc và ghi dữ liệu vào Slave ra mắt cùng một thời gian nên tốc độ trao thay đổi dữ liệu diễn ra rất nhanh. Vì đó, giao thức SPI là một giao thức rất bao gồm hiệu quả.

Bởi bởi vì với mỗi chu kỳ luân hồi đồng hồ, một bit tài liệu được truyền theo từng hướng có nghĩa là từ Master đến Slave và từ Slave cho Master. Vì vậy, so với một byte dữ liệu được truyền từ từng thiết bị, nó vẫn mất 8 chu kỳ luân hồi đồng hồ.

Chế độ hoạt động SPI

Chúng ta đang thấy rằng các bước của vật dụng Master là tạo thành tín hiệu đồng hồ đeo tay và phân phối nó tới Slave để đồng bộ dữ liệu thân Master với Slave. Các bước của Master ko chỉ dừng lại ở câu hỏi tạo tín hiệu đồng hồ đeo tay ở tần số chũm thể.

Trong thực tế, Master cùng Slave phải gật đầu về các giao thức đồng điệu hóa độc nhất vô nhị định. Đối với điều này, hai điểm sáng của xung đồng hồ đeo tay là rất tính đồng hồ đeo tay (Clock Polarity – CPOL hoặc CKP) cùng pha đồng hồ thời trang (Clock Phase – CPHA) được chuyển vào để thấy xét.

Clock Polarity (CPOL hoặc CKP) xác định trạng thái của đồng hồ. Lúc CPOL ở tại mức thấp, xung đồng hồ đeo tay được tạo vì Master tức là SCK sẽ ở mức thấp khi thảnh thơi (idle) và đưa sang nút cao vào trạng thái hoạt động (trong lúc truyền dữ liệu). Tương tự, lúc CPOL ở tại mức cao, SCK ở mức cao khi nhàn hạ và chuyển sang mức phải chăng trong tinh thần hoạt động.

Phase Clock (CPHA) xác minh quá trình thay đổi trạng thái của xung đồng hồ có nghĩa là lên (thấp lên cao) hoặc xuống (cao xuống thấp), tại đó tài liệu được truyền đi. Khi CPHA bởi 0, tài liệu được truyền ở cạnh lên của xung đồng hồ. Tài liệu được truyền làm việc cạnh xuống lúc CPHA là 1.

Tùy ở trong vào các giá trị của Clock Polarity (CPOL) với Clock Phase (CPHA), tất cả 4 chế độ buổi giao lưu của SPI

Mode 0:

Mode 0 xẩy ra khi Clock Polarity và Clock Phase là 0 (CPOL = 0 với CPHA = 0). Trong Mode 0, truyền dữ liệu xảy ra trong lúc cạnh lên của xung đồng hồ.

Mode 1:

Mode 1 xẩy ra khi Clock Polarity là 0 với Clock Phase là một trong (CPOL = 0 và CPHA = 1). Vào mode 1, bài toán truyền tài liệu xảy ra trong lúc cạnh xuống của xung đồng hồ.

Mode 2:

Mode 2 xẩy ra khi Clock Polarity là 1 trong những và Clock Phase là 0 (CPOL = 1 và CPHA = 0). Trong mode 2, truyền tài liệu xảy ra trong khi cạnh lên của xung đồng hồ.

Mode 3:

Mode 3 xẩy ra khi Clock Polarity là 1 trong những và Clock Phase là 1 (CPOL = 1 với CPHA = 1). Trong mode 3, truyền dữ liệu xảy ra trong lúc cạnh lên của xung đồng hồ.

*

Cấu hình SPI

Có nhị loại thông số kỹ thuật trong đó những thiết bị SPI có thể được kết nối trong một bus SPI. Đó là

Cấu hình Master và những Slave độc ​​lập (Independent Slave Configuration) vàCấu hình Daisy Chain (Daisy Chain Configuration).

Trong cấu hình Master và các Slave độc ​​lập, Master đã chiếm hữu riêng những đường Slave Select cho tất cả các Slave và mỗi Slave hoàn toàn có thể được chọn riêng lẻ. Toàn bộ tín hiệu đồng hồ đeo tay của những Slave được liên kết với tầm thường với SCK của Master.

Tương tự, toàn bộ các chân MOSI của toàn bộ các SLave được liên kết với chân MOSI của Master và tất cả các chân MISO của toàn bộ các Slave được kết nối với chân MISO của Master.

*

Trong cấu hình Daisy Chain, chỉ có một mặt đường Slave Select được liên kết với tất cả các Slave. MOSI của Master được kết nối với MOSI của Slave 1. MISO của Slave 1 được liên kết với MOSI của Slave 2 với v.v.. MISO của Slave ở đầu cuối được kết nối với MISO của Master.

Giả sử Master truyền rằng 3 byte tài liệu lên bus SPI. Byte đầu tiên được dịch vào Slave 1. Khi byte thứ hai truyền đến 1, byte trước tiên sẽ bị đẩy ra khỏi Slave 1 với truyền mang đến Slave 2. Tương tự, lúc byte thứ cha truyền vào Slave 1, byte thứ hai có khả năng sẽ bị dịch thanh lịch Slave 2 với byte thứ nhất sẽ bị dịch Slave 3.

*

Nếu Master mong mỏi đọc lại dữ liệu trong Slave 1, nó phải truyền lại chuỗi 3 byte dữ liệu (giả) lần nữa. Lúc đó tài liệu trong Slave 1 sẽ đưa sang Slave 2 rồi chuyển sang Slave 3, tiếp đến về Master.Suốt quá trình xử lý, Master luôn nhận được byte tài liệu từ Slave 2 với 3.

Xem thêm: Vulkan Run Time Libraries Là Gì, Có Nên Xóa Không

Tuy nhiên, cầu hình Daisy Chain không phải lúc nào cũng áp dụng được cho tất cả các thứ Slave. Vì chưng đó, ta đề xuất phải xem thêm datasheet trước khi tiến hành kết nối.