SPI LÀ GÌ

  -  

I.Giới thiệu

 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 tài liệu ở chế độ song công toàn phần (full – duplex) tức vào cùng một thời điểm hoàn toàn có thể xảy ra đồng thời quá trình truyền với nhận.

Bạn đang xem: Spi là gì

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

*

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

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

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

*

Đối với tiếp xúc khoảng giải pháp ngắn, tiếp xúc nối tiếp đồng hóa sẽ là lựa chọn giỏi hơn và trong đó giao tiếp ngoại vi nối tiếp hoặc SPI dành riêng là lựa chọn giỏi 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 với một sản phẩm hoặc giữa những thiết bị trên và một board mạch in (PCB).

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

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

*

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

Kích hoạt thường xuyên được sử dụng nhất là kích hoạt cạnh và bao gồm 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 ở trong vào biện pháp bộ thu được cấu hình, lên phía trên phát hiện những cạnh, bộ thu vẫn tìm kiếm dữ liệu trên bus tài liệu từ bit tiếp theo.

Bởi vị cả tín hiệu đồng hồ thời trang và dữ liệu được gửi do Master (hoặc cỗ phát), họ không nên phải băn khoăn lo lắng về vận tốc truyền dữ liệu.

Điều tạo nên SPI trở nên phổ cập trong các giao thức truyền thông nhất quán nối tiếp không giống (hoặc ngẫu nhiên giao tiếp tiếp nối nào) là nó cung cấp tốc độ truyền dữ liệu bảo mật cao với hartware khá đơn giản dễ dàng giống như thanh ghi dịch với chi phí tương đối thấp.

1.SPI chuyển động như rứa nào?

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

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

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

Trong giao thức SPI, rất có thể chỉ có một vật dụng Master nhưng nhiều thiết bị Slave.

Bus SPI bao gồm 4 biểu thị 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ừ vật dụng Master mang lại thiết bị Slave .Master – In / Slave – Out (MISO hay SO): cổng vào của bên Master, cổng ra của bên Slave, dà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 duy trì nhịp cho tiếp xúc SPIChip Select (CS) hay Slave Select (SS): chọn chip

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

Bởi vì bus SPI được thực hiện bằng phương pháp sử dụng 4 biểu thị hay 4 dây nên đôi khi nó được hotline là chuẩn chỉnh 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 giữa một Master với một Slave được kết nối bằng giao thức SPI với sau đó họ sẽ mày mò về 4 dây này.

Hình hình ảnh sau thể hiện một thứ Master (Bộ xử lý) được liên kết với đồ vật Slave (Ngoại vi) thực hiện bus SPI.

*

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

Master – In / Slave – Out hay MISO là dữ liệu được tạo nên bởi Slave và đề nghị được truyền cho 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 thành bởi Slave, đường bộc lộ này được tinh chỉnh và điều khiển bởi Master.

Master tạo bộc lộ đồng hồ SCLK và được cung ứng cho đầu vào đồng hồ đeo tay của Slave. Xung này có chức năng giữ nhịp cho tiếp xúc SPI, vị SPI là chuẩn truyền đồng nhất nên bắt buộc 1 con đường giữ nhịp, mỗi nhịp bên trên chân SCK báo 1 bit tài liệu đến hoặc đi. Sự trường tồn của xung SCK giúp quá trình tuyền không nhiều bị lỗi và vì vậy tốc độ truyền của SPI hoàn toàn có thể đạt cực kỳ cao.

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

Vì đồng hồ được tạo nên bởi Master, luồng dữ liệu được điều khiển 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ừ bỏ Master cho Slave cùng một bit tài liệu được truyền trường đoản cú Slave cho Master.

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

Xem thêm: Tìm Hiểu Token Key Là Gì ? Ưu Và Nhược Điểm Khi Sử Dụng Token

Nếu dữ liệu phải được truyền vì chỉ một thiết bị, thì thứ kia đề nghị gửi một cái nào đó (dữ liệu giả) cùng nó phụ thuộc vào vào thiết bị cho dù dữ liệu được truyền là dữ liệu thực tiễn hay không.

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

Nếu Slave ý muốn truyền dữ liệu, Master phải tạo thành tín hiệu đồng hồ cho phù hợp bằng cách biết lúc nào Slave hy vọng gửi tài liệu trước. Giả dụ một Master được kết nối với nhiều Slave thì sơ đồ kết nối như hình ảnh sau đây.

*

Mặc dù nhiều Slave được liên kết với Master vào bus SPI, ở 1 thời điểm bất kỳ thì chỉ tất cả một Slave hoạt động. Để lựa chọn Slave, Master sẽ kéo mặt đường SS (Slave Select) hoặc CS (Chip Select) của Slave tương xứng xuống mức thấp.

Do đó, phải bao gồm một chân CS riêng trên Master tương ứng với từng sản phẩm công nghệ Slave. Chúng ta cần đề nghị kéo đi xuống đường SS hoặc CS xuống phải chăng để chọn Slave bởi vì đường này tích cực và lành mạnh mức thấp.

2.Phần cứng SPI

Yêu mong phần cứng để triển khai SPI rất đơn giản dễ dàng khi so sánh với UART và I2C. Hãy để mắt tới một Master với một Slave 1-1 được liên kết bằng bus SPI. Hình ảnh sau đây cho biết các yêu cầu khối hệ thống tối thiểu cho cả hai thiết bị.

*

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

Thiết bị Master ban đầu việc thương lượng dữ liệu bằng cách truyền đi một Byte vào thanh ghi dịch của nó, tiếp nối Byte dữ liệu sẽ được đưa quý phái Slave theo đường biểu đạt MOSI, Slave vẫn truyền tài 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 hiện MISO. Bằng phương pháp này, tài liệu của nhì thanh ghi sẽ được trao đổi với nhau. Vấn đề đọc với ghi tài liệu vào Slave ra mắt cùng một cơ hội nên vận tốc trao thay đổi dữ liệu ra mắt rất nhanh. Bởi vì đó, giao thức SPI là 1 trong giao thức rất có hiệu quả.

Bởi vày 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 tức là từ Master mang đến Slave và từ Slave đến Master. Do vậy, đối 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ỳ đồng hồ.

3.Chế độ chuyển động SPI

Chúng ta sẽ thấy rằng công việc của trang bị Master là tạo nên tín hiệu đồng hồ và triển lẵm nó cho tới Slave để đồng hóa dữ liệu giữa 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ồ ở tần số cầm thể.

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

Clock Polarity (CPOL hoặc CKP) xác minh 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ày Master tức là SCK sẽ tại mức thấp khi nhàn rỗi (idle) và gửi sang nấc cao trong trạng thái chuyển động (trong khi truyền dữ liệu). Tương tự, khi CPOL ở tầm mức cao, SCK tại mức cao khi nhàn hạ và chuyển sang mức rẻ trong trạng thái hoạt động.

Phase Clock (CPHA) xác định quá trình biến đổ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), trên đó tài liệu được truyền đi. Lúc CPHA bằng 0, dữ liệu được truyền ngơi nghỉ cạnh lên của xung đồng hồ. Tài liệu được truyền ngơi nghỉ cạnh xuống lúc CPHA là 1.

Tùy trực thuộc vào những giá trị của Clock Polarity (CPOL) với Clock Phase (CPHA), tất cả 4 chế độ hoạt động của SPI

Mode 0:

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

Mode 1:

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

Mode 2:

Mode 2 xẩy ra khi Clock Polarity là 1 trong và Clock Phase là 0 (CPOL = 1 với CPHA = 0). Vào mode 2, truyền dữ 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 và Clock Phase là 1 trong (CPOL = 1 với CPHA = 1). Trong mode 3, truyền dữ liệu xảy ra trong những khi cạnh lên của xung đồng hồ.

*

4.Cấu hình SPI

Có nhì loại cấu hình trong đó những thiết bị SPI rất có thể được liên kết trong một bus SPI. Đó là

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

Trong thông số kỹ thuật Master và các Slave độc ​​lập, Master đã chiếm hữu riêng các đường Slave Select cho toàn bộ các Slave với mỗi Slave rất có thể được lựa chọn riêng lẻ. Tất cả tín hiệu đồng hồ của các Slave được liên kết với phổ biến 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 tất cả các Slave được liên kết với chân MISO của Master.

*

Trong cấu hình Daisy Chain, chỉ tất cả một đường Slave Select được liên kết với toàn bộ các Slave. MOSI của Master được liên kết với MOSI của Slave 1. MISO của Slave 1 được kết nối với MOSI của Slave 2 và v.v.. MISO của Slave cuối cùng được liên kết 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. Lúc byte thứ hai truyền mang đến 1, byte đầu tiên sẽ bị bán ra khỏi Slave 1 cùng truyền mang đến Slave 2. Tương tự, khi byte thứ bố truyền vào Slave 1, byte sản phẩm công nghệ hai sẽ ảnh hưởng dịch thanh lịch Slave 2 với byte đầu tiên sẽ bị dịch Slave 3.

*

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

Xem thêm: Causative Là Gì - Bạn Đã Biết Cách Dùng Causative Form

Tuy nhiên, cầu hình Daisy Chain chưa hẳn lúc nào cũng áp dụng được cho toàn bộ các lắp thêm Slave. Vì chưng đó, ta đề xuất phải tìm hiểu thêm datasheet trước khi thực hiện kết nối.

5.Ứng dụng của SPI

Giao thức SPI được tích hợp trong một vài loại thiết bị như:

Các bộ thay đổi (ADC và DAC)Các loại bộ lưu trữ (SD thẻ , MMC , EEPROM , Flash)Các một số loại IC thời hạn thựcCác loại cảm ứng (nhiệt độ, áp suất…)và một trong những loại không giống như: bộ trộn tín hiệu, LCD, Graphic LCD, video trò chơi controller,…