I2C và SPI: Sự khác biệt bạn nên biết

Photo of author

By Lisa chen

Bạn đang thiết kế một dự án mà sự lựa chọn giữa I2C và SPI là quan trọng? nhưng bạn không biết nên chọn cái nào? nếu có, chúng tôi sẽ giúp bạn quyết định cái nào phù hợp hơn với dự án của bạn.

đầu tiên, i 2 c và spi là giao thức” thấp”. nhưng chúng dễ dàng sử dụng và rất thích hợp cho việc giao tiếp giữa các chip trên các bộ phim.

tuy nhiên, chọn một giao thức sai cho dự án có thể dẫn đến các kết quả không tốt. tuy nhiên, chúng tôi ở đây để giúp bạn hiểu sự khác biệt giữa hai thỏa thuận tương tự.

Sẵn sàng chưa? Bắt đầu nào!

giao thức spi là gì?

Trong những năm 1980, Motorola đã phát triển giao thức SPI để thiết lập giao tiếp giữa các bộ vi điều khiển thời đó và các thiết bị ngoại vi khác như EEPROM.

I2C và SPI: Sự khác biệt bạn nên biết_1

bộ nhớ chỉ đọc có thể lập trình bằng điện

nguồn:

Wikimedia Commons

Do vậy, giao thức SPI sử dụng bốn đường tín hiệu để giao tiếp giữa các thiết bị. tuy nhiên, điều quan trọng là phải lưu ý rằng chúng không bao gồm các đường dây điện và điện. sau đây là bốn dòng tín hiệu hoạt động:

SS: Chọn dòng từ máy (được điều khiển bởi SPI máy chủ)

MOSI: đầu ra máy chủ (được điều khiển bởi SPI máy chủ)

sclk: đồng hồ nối tiếp (được điều khiển bởi spi chính)

miso: đầu vào máy chủ (được điều khiển bởi các thiết bị spi của máy chủ)

Với điều này, bốn dòng cho phép SPI (bộ điều khiển) máy chủ giao tiếp với SPI (phần ngoài) máy chủ.

I2C và SPI: Sự khác biệt bạn nên biết_2

Giao diện giao thức SPI

ngoài ra, bạn chỉ có thể có một bộ điều khiển trên một bus. tuy nhiên, không có giới hạn số lượng các thiết bị ngoại vi mà bạn có thể thêm vào. thêm vào đó, thêm nhiều thiết bị ngoại vi có nghĩa là thêm các đường dây ss. Vì vậy, minh họa dưới đây chỉ ra cách sử dụng ba cáp SS riêng biệt để điều khiển các thiết bị ngoại vi khác nhau.

I2C và SPI: Sự khác biệt bạn nên biết_3

giao diện SPI với nhiều người bị nô lệ

Ngoài ra, khi SPI muốn liên lạc với thiết bị ngoại vi bằng cách gửi hoặc nhận dữ liệu, nó sẽ kéo sợi SS khớp. Do đó, đường này sẽ thấp hơn. Vì vậy, dây SCLK hoạt động và giảm theo tần số đã được định.

ngoài ra, máy chủ spi sử dụng mạch miso để gửi dữ liệu và mẫu cùng một lúc. Cũng hãy nhớ rằng chỉ có một thiết bị ngoại vi có thể liên lạc với SPI chính.

i2c là gì

Hoặc, vào năm 1982, Philips Semiconductor (nay là NXP Semiconductor) đã phát triển giao thức I2C đầu tiên để hệ thống hóa giao tiếp giữa các chip trên một PCB.

không giống như giao thức sci, giao thức i 2 c có hai đường dây liên lạc-không bao gồm cả đường dây điện và đường dây điện. những đường này bao gồm:

sda: dây dữ liệu nối tiếp

scl: dây đồng hồ nối tiếp

Do vậy, bạn có thể kết nối bất cứ số lượng các thiết bị nô lệ và proxy nào trên một bus. ngoài ra, bạn phải giữ cả đường scl và đường sda. vì vậy, thiết bị của bạn chỉ có thể có một dòng điện áp thấp mỗi lần. ngoài ra, bạn cần một điện trở trên đường ống. Bằng cách này, bạn có thể kéo sợi dây của bạn lên.

I2C và SPI: Sự khác biệt bạn nên biết_4

giao diện giao thức i 2 c

Do thiết kế rò rỉ của giao thức I2C, bạn có thể sử dụng nhiều máy trên cùng một bus. Tuy nhiên, nếu hai thiết bị điều khiển bắt đầu giao tiếp cùng một lúc, một trong hai thiết bị đó sẽ ngừng việc truyền.

đồng thời, các thiết bị điều khiển kiểm soát các đường điều khiển liên lạc xảy ra. vì vậy, nếu một thiết bị phát hiện ra đường sda thấp, nó sẽ ngừng phát điện. điều này cho phép thiết bị điều khiển khác giao tiếp.

ngoài ra, thiết bị i 2 c của bộ điều khiển sẽ gửi các điều kiện khởi động để khởi động giao tiếp. do đó, sda sẽ ở mức thấp, trong khi scl sẽ ở mức cao.

sau đó, thiết bị điều khiển sẽ gửi địa chỉ 7 bit và bit đọc (1) hoặc bit ghi (0) đến người nhận mà nó muốn gửi. Tại thời điểm này, các thiết bị trên bus sẽ chỉ đáp ứng bằng cách kéo dây SDA xuống nếu nó có địa chỉ tốc độ 7 bit khớp.

Sự khác biệt giữa I2C và SPI

SPI và I2C rất giống nhau vì cả hai đều là giao thức “cấp thấp”. Hơn nữa, cả hai giao thức này đều không có tốc độ nhanh và các tính năng khác mà các giao thức tương đối hạng nặng của chúng (SATA, Ethernet, USB, v. v.).

nhưng khi nói đến nó hoạt động như thế nào. hãy nhìn vào sự khác biệt giữa hai loại giao thức này.

I2C và SPI: Sự khác biệt bạn nên biết_5

khe cắm usb

nguồn:

Wikimedia Commons

Đầu tiên, bạn có thể đặt bốn chế độ khác nhau trên giao thức SPI để xác định cách đồng hồ hoạt động. để giao tiếp, người nô lệ và thiết bị proxy phải sử dụng cùng một mô hình.

Ngoài ra, tốc độ truyền dữ liệu SPI cao hơn 10 Mbps, rất phù hợp cho việc truyền dữ liệu lớn. Ngoài ra, giao thức SPI cũng có thể được tìm thấy trên các bộ cảm biến cập nhật nhanh hơn như các máy ảnh LCD và gia tốc.

I2C và SPI: Sự khác biệt bạn nên biết_6

hiển thị lcd

nguồn:

nhấp nháy ( ánh sáng)

hoặc, i 2 c chỉ có thể gửi một bộ dữ liệu từ một gói. ngoài ra, các thiết bị được nhận phải được xác nhận bits ack cho mỗi byte. ngoài ra, giao thức i 2 c có ba chế độ truyền dữ liệu khác nhau.

I2C và SPI: Sự khác biệt bạn nên biết_7

bit ack

nguồn:

các tài nguyên chia sẻ wiki

lên tới 100 kbps ở chế độ tiêu chuẩn, lên tới 400 kbps ở chế độ nhanh và lên tới 3, 4 mbps ở chế độ cao. vì vậy, giao thức i 2 c rất chậm hơn giao thức spi. vì vậy, giao thức i 2 c thích hợp nhất cho các cảm biến nhiệt độ và các bộ chuyển đổi số học.

I2C và SPI: Sự khác biệt bạn nên biết_8

cảm biến nhiệt độ

nguồn:

các tài nguyên chia sẻ wiki

So sánh I2C và SPI

bảng dưới đây chỉ ra sự khác biệt đáng kể giữa i 2 c và spi:

điểm yếu của giao thức i2c

năng lượng

quan điểm ủng hộ

Giao thức SPI tiêu thụ ít năng lượng

nó cũng hỗ trợ khả năng liên lạc tốc độ cao

Lừa đảo

các phiên bản khác nhau và các biến thể tùy chỉnh có thể gây ra các vấn đề tương thích

Bạn cần một dây bổ sung để liên lạc với nhiều thiết bị phụ trên cùng một bus

chỉ hỗ trợ giao tiếp khoảng cách ngắn. bạn không thể truyền dữ liệu vào các thiết bị trên một bảng mạch riêng biệt

I2C

quan điểm ủng hộ

bạn không cần thêm các dòng để điều khiển nhiều thiết bị trên cùng một bus

Bạn có thể chuyển dữ liệu tới các PCB khác, nhưng tốc độ truyền thấp hơn

có độ nhạy ồn thấp hơn

có thể truyền dữ liệu từ những khoảng cách xa

rẻ hơn so với SPI

Lừa đảo

Tốc độ truyền chậm hơn SPI

tiêu thụ điện năng nhiều hơn giao thức SPI

một thiết bị không thể phát hành một bus thông tin có thể bị khóa với giao thức i 2 c

các điều cần xem xét khi chọn spi và i 2 c

chọn giao thức tốt nhất cho dự án của bạn không chỉ là vấn đề giá cả. vì vậy, bạn cần xem xét những điều sau đây trước khi bạn đưa ra lựa chọn:

các chân có giới hạn

Dưới đây là những ưu điểm và nhược điểm của giao thức SPI và I2C: nếu bạn không thích sử dụng một microcontroller với hơn 100 pin, đây là một yếu tố quan trọng cần xem xét. trong trường hợp này, bạn nên chọn một giao thức cần thiết ít các đường liên lạc hơn.

sức mạnh

Tùy thuộc vào thiết kế của bạn, bạn có thể muốn giảm thiểu hoặc tăng tối đa việc tiêu thụ năng lượng. vì vậy, bạn phải chắc chắn rằng việc này phù hợp nhất với nhu cầu tiêu dùng của bạn.

tốc độ

khi truyền tải một lượng lớn dữ liệu, mỗi microseconds là quan trọng. Vì vậy, nếu tốc độ là điều bạn cần, hãy chọn một giao thức phù hợp với tốc độ của bạn.

Kích cỡ PCB

trước khi chọn bất kỳ giao thức nào, việc xem xét kích thước của một pcb là rất quan trọng. do đó, bạn sẽ tăng cơ hội để đạt được kết quả mong muốn.

lựa chọn giữa i2c và i2c

sau đây là các tính năng của mỗi giao thức để giúp bạn đưa ra quyết định tốt nhất về thiết kế:

Hiểu UART

UARTs là các mạch vật lý trong mạch tích hợp hoặc bộ vi điều khiển được dùng để thiết lập giao tiếp nối tiếp giữa các thiết bị trong một hệ thống nhúng.

Ngoài ra, khi bạn xử lý thông tin liên lạc UART, luôn luôn có liên lạc trực tiếp giữa bộ phát UART và bộ nhận UART.

UART với I2C và SPI

Không giống như các giao thức truyền thông khác như SPI và I2C, UART là vật lý thuần túy. ngoài ra, nó không sử dụng chế độ master/ slave để giao tiếp. Thay vào đó, bộ vi điều khiển sử dụng hai thiết bị UART để gửi và nhận dữ liệu. ngoài ra, giao tiếp uart chỉ cần hai dây. cáp giúp truyền dữ liệu từ chân tx của máy phát tới chân rx của máy nhận.

I2C và SPI: Sự khác biệt bạn nên biết_9

Giao diện giao thức UART

làm tròn

thực tế, các giao thức spi và i 2 c được sử dụng cho các ứng dụng khác nhau. Đôi khi, bạn có thể thấy thiết bị của bạn tích hợp các giao diện SPI và I2C trên một con chip. Vì vậy, bạn không phải lựa chọn giữa hai thứ.

Tuy nhiên, nếu bạn cần phải chọn giữa hai giao thức, SPI sẽ phù hợp với các dự án yêu cầu tốc độ truyền nhanh hơn. mặt khác, giao thức i2c sẽ tốt hơn nếu bạn có một số chân bộ vi điều khiển bị giới hạn.

Có vấn đề gì à? hãy liên lạc với chúng tôi bất cứ lúc nào. Chúng tôi rất vui lòng giúp đỡ.