Chẩn Đoán Cơ Bản - Giao Thức Ngoại Vi Nối Tiếp (SPI)

 

Chẩn Đoán Cơ Bản - Giao Thức Ngoại Vi Nối Tiếp (SPI)

Giao thức ngoại vi nối tiếp (Serial Peripheral Interface) là một loại giao tiếp truyền thông nối tiếp đồng bộ được sử dụng cho giao tiếp khoảng cách ngắn, chủ yếu trong các hệ thống nhúng. Giao diện được phát triển bởi Motorola vào giữa những năm 1980 và đã trở thành một tiêu chuẩn thực tế. Các ứng dụng điển hình bao gồm thẻ từ và màn hình tinh thể lỏng .
Các thiết bị SPI giao tiếp ở chế độ công toàn bộ bằng cách sử dụng một thiết bị chính – phụ. Thiết bị chính khởi tạo khung để đọc và viết. Nhiều thiết bị phụ được hỗ trợ thông qua lựa chọn với các dòng riêng lẻ.
Đôi khi SPI được gọi là kênh nối tiếp bốn dây, tương phản với các kênh nối tiếp ba, hai và một dây. SPI có thể được mô tả chính xác như một giao diện nối tiếp đồng bộ, nhưng nó khác với giao thức giao tiếp nối tiếp đồng bộ (SSI), cũng là giao thức truyền thông nối tiếp đồng bộ bốn dây. Giao thức SSI sử dụng tín hiệu vi sai và chỉ cung cấp một kênh giao tiếp đơn giản .

 chan-doan-co-ban-giao-thuc-giao-vi-noi-tiep-1
Từ thiết bị chính đến thiết bị phụ: Ví dụ về kênh SPI đơn giản

1.    Giao diện

 Kênh SPI chỉ định bốn tín hiệu logic:

  • SCLK: Đồng hồ nối tiếp (đầu ra từ thiết bị chính)
  • MOSI: Đầu vào thiết bị phụ của đầu ra thiết bị chính
  • MISO: Đầu vào thiết bị phụ của đầu vào thiết bị chính hoặc Master In Slave Out (dữ liệu đầu ra từ thiết bị phụ)
  • SS: Chọn thiết bị phụ (thường hoạt động thấp, xuất từ thiết bị chính)

Mặc dù các tên ghim ở trên là phổ biến nhất, trong các quy ước đặt tên thay thế trong quá khứ đôi khi được sử dụng và các tên ghim cổng SPI cho các sản phẩm IC cũ hơn có thể khác với các tên được mô tả trong các hình minh họa sau:

Đồng hồ nối tiếp:

  • SCLK: SCK

Đầu ra thiết bị chính → Đầu vào thiết bị phụ (MOSI):

  • SIMO, MTSR - tương ứng với MOSI trên cả thiết bị chính và phụ, kết nối với nhau
  • SDI, DI, DIN, SI - trên các thiết bị phụ; kết nối với MOSI trên thiết bị chính hoặc tới các kết nối bên dưới
  • SDO, DO, DOUT, SO - trên các thiết bị chính; kết nối với MOSI trên thiết bị phụ hoặc kết nối ở trên

Đầu vào thiết bị chính ← Đầu ra thiết bị phụ (MISO):

  • SOMI, MRST - tương ứng với MISO trên cả thiết bị chính và phụ, kết nối với nhau
  • SDO, DO, DOUT, SO - trên các thiết bị phụ; kết nối với MISO trên thiết bị chính hoặc kết nối bên dưới
  • SDI, DI, DIN, SI - trên các thiết bị chính; kết nối với MISO trên thiết bị phụ hoặc kết nối ở trên

Chọn thiết bị phụ:

  • SS: S̅S̅, SSEL, CS, C̅S̅, CE, nSS, / SS, SS #

Nói cách khác, MOSI (hoặc SDO trên một thiết bị chính) kết nối với MOSI (hoặc SDI trên một thiết bị phụ). MISO (hoặc SDI trên thiết bị chính) kết nối với MISO (hoặc SDO trên một thiết bị phụ). Slave Select là chức năng tương tự như chọn chip và được sử dụng thay cho khái niệm địa chỉ. Tên ghim luôn được viết hoa như trong Slave Select, Serial Clock và Master Output Slave Input.

2.    Hoạt động

2.1    Truyền dữ liệu

Để bắt đầu truyền dữ liệu, kênh sẽ điều chỉnh cấu hình đồng hồ, sử dụng tần số được thiết bị phụ trợ để hỗ trợ, thường lên tới vài MHz. Sau đó, thiết bị chính sẽ chọn thiết bị phụ có mức logic 0 trên dòng chọn. Nếu một khoảng thời gian chờ đợi là cần thiết, chẳng hạn như cho một chuyển đổi tín hiệu liên tục sang tín hiệu kỹ thuật số, thiết bị chính phải chờ ít nhất khoảng thời gian đó trước khi phát hành chu kỳ đồng hồ.
Trong mỗi chu kỳ đồng hồ SPI, việc truyền dữ liệu hai chiều đầy đủ xảy ra. Thiết bị chủ gửi một bit trên dòng MOSI và thiết bị phụ đọc nó, trong khi thiết bị phụ gửi một bit trên dòng MISO và thiết bị chủ đọc nó. Chuỗi này được duy trì ngay cả khi chỉ truyền dữ liệu một chiều.
Quá trình truyền thường bao gồm hai thanh ghi thay đổi của một số kích thước từ đã cho, chẳng hạn như tám bit, một bit trong bản chính và một trong bản phụ; chúng được kết nối trong cấu trúc liên kết vòng ảo. Dữ liệu thường được chuyển ra với bit quan trọng nhất trước tiên. Trên cạnh đồng hồ, cả hai thiết bị chính và phụ thay đổi một chút và xuất nó trên đường truyền đến thiết bị khác. Nếu cần phải trao đổi nhiều dữ liệu hơn, thanh ghi thay đổi sẽ được nạp lại và quá trình lặp lại. Quá trình truyền có thể tiếp tục cho bất kỳ số chu kỳ đồng hồ nào. Khi hoàn thành, tổng thể dừng chuyển đổi tín hiệu đồng hồ.
Quá trình truyền thường bao gồm các từ 8 bit. Tuy nhiên, các kích thước từ khác cũng phổ biến, ví dụ, từ 16 bit cho bộ điều khiển màn hình cảm ứng hoặc codec âm thanh, chẳng hạn như TSC2101 của Texas Instruments hoặc từ 12 bit cho nhiều kỹ thuật số tương tự hoặc tương tự kỹ thuật số chuyển đổi.
Mỗi thiết bị phụ trên kênh chưa được kích hoạt bằng cách sử dụng dòng chọn chip của nó phải bỏ qua đồng hồ đầu vào và tín hiệu MOSI, và không được lái MISO.

 chan-doan-co-ban-giao-thuc-giao-vi-noi-tiep-2
Một thiết lập phần cứng điển hình sử dụng hai thanh ghi thay đổi để tạo thành một bộ đệm tròn liên chip

2.2    Đồng hồ phân cực và pha

Ngoài việc thiết lập tần số đồng hồ, thiết bị chính cũng phải định cấu hình phân cực đồng hồ và pha tương ứng với dữ liệu. Hướng dẫn chặn SPI của Motorola đặt tên cho hai tùy chọn này là CPOL và CPHA tương ứng, và hầu hết các nhà cung cấp đã thông qua quy ước đó.
Các sơ đồ thời gian được hiển thị ở bên phải. Thời gian được mô tả dưới đây và áp dụng cho cả thiết bị chính và thiết bị phụ.

  • CPOL xác định cực của đồng hồ. Các cực có thể được chuyển đổi với một biến tần đơn giản .
  • CPOL = 0 là một đồng hồ ở chế độ chờ 0 và mỗi chu kỳ bao gồm một xung 1. Đó là cạnh đầu tiên là cạnh tăng lên và cạnh sau là cạnh giảm.
  • CPOL = 1 là một đồng hồ không hoạt động ở mức 1 và mỗi chu kỳ bao gồm một xung là 0. Đó là cạnh đầu tiên là cạnh giảm và cạnh sau là cạnh tăng.
  • CPHA xác định thời gian của các bit dữ liệu liên quan đến xung đồng hồ. Nó không phải là tầm thường để chuyển đổi giữa hai hình thức.
  • Đối với CPHA = 0, mặt "ngoài" thay đổi dữ liệu trên cạnh sau của chu kỳ đồng hồ trước đó, trong khi mặt "trong" chụp dữ liệu trên (hoặc ngay sau) cạnh đầu của chu kỳ đồng hồ. Mặt ngoài giữ dữ liệu hợp lệ cho đến khi cạnh sau của chu kỳ đồng hồ hiện tại. Đối với chu kỳ đầu tiên, bit đầu tiên phải nằm trên đường MOSI trước cạnh đồng hồ hàng đầu.
  • Một cách khác để xem xét nó là để nói rằng một CPHA = 0 chu kỳ bao gồm một chu kỳ một nửa với đồng hồ nhàn rỗi, tiếp theo là một chu kỳ một nửa với đồng hồ khẳng định.
  • Đối với CPHA = 1, mặt "ngoài" thay đổi dữ liệu trên cạnh đầu của chu kỳ đồng hồ hiện tại, trong khi mặt "trong" chụp dữ liệu trên (hoặc ngay sau) cạnh sau của chu kỳ đồng hồ. Mặt ngoài giữ dữ liệu hợp lệ cho đến khi cạnh đầu của chu kỳ đồng hồ sau. Đối với chu kỳ cuối cùng, thiết bị phụ giữ dòng MISO hợp lệ cho đến khi lựa chọn thiết bị phụ được xác nhận lại.
  • Các tín hiệu MOSI và MISO thường ổn định (tại các điểm tiếp nhận của chúng) trong nửa chu kỳ cho đến khi chuyển tiếp đồng hồ tiếp theo. Các thiết bị chính và phụ của SPI cũng có thể lấy mẫu dữ liệu tại các điểm khác nhau trong chu kỳ đó.

Điều này bổ sung thêm sự linh hoạt cho kênh giao tiếp giữa thiết bị chính và phụ.

chan-doan-co-ban-giao-thuc-giao-vi-noi-tiep-3 
Một biểu đồ thời gian cho thấy phân cực đồng hồ và pha. Đường màu đỏ biểu thị các cạnh đồng hồ hàng đầu, và các đường màu xanh, các cạnh sau.

2.3    Số chế độ

Sự kết hợp của phân cực và pha thường được gọi là các chế độ thường được đánh số theo quy ước sau đây, với CPOL là bit thứ tự cao và CPHA là bit thứ tự thấp:
Đối với vi điều khiển "Microchip PIC" / "ARM dựa trên" (lưu ý rằng NCPHA là đảo ngược của CPHA):

Chế độ SPI

 Đồng hồ phân cực
(CPOL / CKP)

Pha đồng hồ
(CPHA)
Cạnh đồng hồ
(CKE / NCPHA)
0 0 0 1
1 0 1 0
1 0 1
3 1 1 0

 

Đối với PIC32MX: Chế độ SPI cấu hình các bit CKP, CKE và SMP. Đặt bit SMP và CKP, CKE hai bit được cấu hình như trên bảng.
Đối với các vi điều khiển khác:

Chế độ CPOL CPHA
0 0 0
1 0 1
2 1 0
3 1 1


Một ký hiệu thường được sử dụng khác đại diện cho chế độ như là một (CPOL, CPHA) tuple; ví dụ, giá trị '(0, 1)' sẽ cho biết CPOL = 0 và CPHA = 1.

2.4    Cấu hình thiết bị phụ độc lập

Trong cấu hình thiết bị phụ độc lập, có một dòng chọn chip độc lập cho mỗi thiết bị. Một điện trở kéo lên giữa nguồn điện và chip chọn dòng là rất khuyến khích cho mỗi thiết bị độc lập để giảm qua nói chuyện giữa các thiết bị. Đây là cách mà SPI thường được sử dụng. Vì các chân MISO của các thiết bị phụ được kết nối với nhau, chúng được yêu cầu phải là các chân ba trạng thái (cao, thấp hoặc trở kháng cao).

 chan-doan-co-ban-giao-thuc-giao-vi-noi-tiep-4
Kênh SPI điển hình: 1 thiết bị chính và ba thiết bị phụ độc lập

2.5    Cấu hình chuỗi Daisy

Một số sản phẩm thực hiện SPI có thể được kết nối trong cấu hình chuỗi daisy, đầu ra thiết bị phụ đầu tiên được kết nối với đầu vào thiết bị thứ hai, cổng SPI của mỗi thiết bị được thiết kế để gửi ra trong nhóm xung thứ hai. dữ liệu nhận được trong nhóm xung đầu tiên. Toàn bộ chuỗi hoạt động như một thanh ghi thay đổi truyền thông; xâu chuỗi thường được thực hiện với thanh ghi thay đổi để cung cấp một ngân hàng đầu vào hoặc đầu ra thông qua SPI. Mỗi bản sao thiết bị phụ sẽ được nhập vào đầu ra trong chu kỳ đồng hồ tiếp theo cho đến khi dòng SS thấp hoạt động tăng cao. Một tính năng như vậy chỉ yêu cầu một dòng SS duy nhất từ tổng thể, chứ không phải là một dòng SS riêng biệt cho mỗi thiết bị.
Các ứng dụng khác có khả năng tương thích với SPI yêu cầu cấu hình chuỗi daisy bao gồm SGPIO, JTAG, và giao diện hai dây.

3.    Ưu điểm và nhược điểm

3.1    Ưu điểm

  • Trình điều khiển đẩy cung cấp tính toàn vẹn tín hiệu tốt và tốc độ cao
  • Cao thông lượng hơn I ² C hoặc SMBus . Không giới hạn ở bất kỳ tốc độ xung nhịp tối đa nào, cho phép tốc độ cao tiềm năng
  • Hoàn thành giao thức linh hoạt cho các bit được chuyển
  • Không giới hạn từ 8 bit
  • Tùy chọn kích thước thư, nội dung và mục đích tùy ý
  • Giao tiếp phần cứng cực kỳ đơn giản
  • Thu phát không cần thiết
  • Chỉ sử dụng bốn chân trên các gói IC và các dây dẫn trong các bố trí bảng hoặc các đầu nối, ít hơn nhiều so với các giao diện song song
  • Tối đa một tín hiệu bus duy nhất trên mỗi thiết bị (chọn chip); tất cả những người khác được chia sẻ
  • Tín hiệu là một chiều cho phép cách ly điện cực dễ dàng
  • Triển khai phần mềm đơn giản

3.2    Nhược điểm

  • Yêu cầu nhiều ghim trên các gói IC hơn I²C , ngay cả trong biến thể ba dây
  • Không có địa chỉ trong băng tần; tín hiệu lựa chọn chip ngoài băng tần được yêu cầu trên các kênh dùng chung
  • Thông thường chỉ hỗ trợ một thiết bị chính (phụ thuộc vào việc triển khai phần cứng của thiết bị)
  • Không có giao thức kiểm tra lỗi nào được xác định
  • Nếu không có một tiêu chuẩn chính thức, việc xác nhận tính hợp lệ là không thể
  • Nhiều biến thể hiện tại, khiến việc tìm các công cụ phát triển như bộ điều hợp lưu trữ hỗ trợ các biến thể đó trở nên khó khăn
  • SPI không hỗ trợ trao đổi nóng (tự động thêm các nút).
  • Việc gián đoạn phải được thực hiện với tín hiệu ngoài băng tần hoặc bị giả mạo bằng cách sử dụng tính năng thăm dò định kỳ tương tự như USB 1.1 và 2.0.

4.    Ứng dụng

•    Cảm biến: nhiệt độ, áp suất, ADC, màn hình cảm ứng, bộ điều khiển trò chơi video
•    Thiết bị điều khiển: codec âm thanh, chiết áp kỹ thuật số, DAC
•    Ống kính camera: ống kính Canon EF
•    Truyền thông: Ethernet, USB, USART, CAN, IEEE 802.15.4, IEEE 802.11, trò chơi video cầm tay
•    Bộ nhớ: Flash và EEPROM
•    Đồng hồ thời gian thực
•    LCD, đôi khi thậm chí để quản lý dữ liệu hình ảnh
•    Bất kỳ thẻ MMC hoặc SD nào (bao gồm cả biến thể SDIO)
•    Đối với các hệ thống hiệu năng cao, FPGA đôi khi sử dụng SPI để giao tiếp như một thiết bị phụ cho một thiết bị chính, như một bộ cảm biến chủ, hoặc bộ nhớ flash được sử dụng để khởi động nếu chúng dựa trên SRAM.


Hy vọng những thông tin trên hữu ích đối với bạn. Nếu thích bài viết này, hãy chia sẻ cùng với bạn bè và đừng quên kết nối với chúng tôi!

Xem lại phần trước:

Mọi ý kiến đóng góp vui lòng liên hệ qua hộp thư: Service@obdvietnam.vn

 


 

Công ty Cổ phần OBD Việt Nam

  • Mọi chi tiết xin liên hệ: 1800 64 64 47 

Kết nối với chúng tôi để nhận những thông báo mới nhất

Tin liên quan

Danh mục tin tức

Tin xem nhiều

Chương Trình Khuyến Mãi 30/4-1/5 : Khuyến Mãi Tưng Bừng – Mừng Đại Lễ

Mừng Đại Lễ OBD Việt Nam khuyến mãi cực sốc các dòng máy chẩn đoán tham gia ngay cùng OBD ..

OBD Việt Nam Thông Báo Nghỉ Lễ Giỗ Tổ Hùng Vương 2024

Công ty cổ phần OBD Việt Nam xin trân trọng thông báo tới Quý Khách hàng, Quý Đối tác lịch ..

Chia Sẻ Miễn Phí Tài Liệu Về Hệ Thống Common Rail Fuel Diesel

OBD Việt Nam xin dành tặng đến các Anh/Em bộ tài liệu về hệ thống Common Rail Fuel Diesel giúp ..

Hướng Dẫn Cập Nhật Phần Mềm Máy Chẩn Đoán Autel Mx900 Và Autel Ds900

Việc cập nhật phần mềm cho chiếc máy chẩn đoán là hoàn toàn cần thiết, chúng ta cần thường xuyên ..

Thư Chúc Tết Nguyên Đán Giáp Thìn 2024

Một năm cũ đã qua, một mùa xuân mới đang về khắp mọi miền, thay mặt Ban Lãnh đạo cùng ..

Vui lòng điền vào mẫu dưới đây, để chúng tôi có thể cung cấp cho bạn thông tin cập nhật về những thông tin mới của chúng tôi