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.
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ủ.
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.
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.
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.
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.
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.
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.
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.
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 đỡ.