산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

I2C 대 SPI:알아야 할 차이점

프로젝트를 설계하고 있으며 I2C와 SPI 중 하나를 선택하는 것이 중요합니까? 하지만 어떤 것을 골라야 할지 모르시겠다고요? 그렇다면 어떤 것이 프로젝트에 더 적합한지 결정하는 데 도움을 드리겠습니다.

우선, I2C와 SPI는 "로우엔드" 프로토콜입니다. 그러나 사용하기 쉽고 PCB의 칩 간 통신에 완벽하게 작동합니다.

그러나 프로젝트에 대해 잘못된 프로토콜을 선택하면 바람직하지 않은 결과가 발생할 수 있습니다. 그럼에도 불구하고 이 두 가지 유사한 프로토콜의 차이점을 이해하는 데 도움을 드리고자 합니다.

준비 되었나요? 시작하겠습니다!

SPI 프로토콜이란 무엇입니까?

1980년대에 Motorola는 EEPROM과 같은 다른 주변 장치와 당시 마이크로컨트롤러 간의 통신을 설정하기 위해 SPI 프로토콜을 개발했습니다.

EEPROM

따라서 SPI 프로토콜은 부품 간의 통신을 위해 4개의 신호 라인을 사용합니다. 그러나 여기에는 접지 및 전력선이 포함되지 않는다는 점에 유의하는 것이 중요합니다. 다음은 4개의 활성 신호 라인입니다.

참고로 4개의 라인은 마스터 SPI(제어 장치)가 슬레이브 SPI(주변 장치)와 통신할 수 있도록 합니다.

SPI 프로토콜 인터페이스

또한 SPI 버스에는 하나의 컨트롤러 장치만 있을 수 있습니다. 그러나 추가할 수 있는 주변 장치의 수에는 제한이 없습니다. 또한 주변 장치를 추가하면 SS 라인이 늘어납니다. 따라서 다음은 3개의 개별 SS 라인을 사용하여 서로 다른 주변 장치를 제어하는 ​​방법을 보여줍니다.

여러 노예가 있는 SPI 프로토콜 인터페이스

또한 마스터 SPI가 데이터를 보내거나 수신하여 주변 장치와 통신하려고 할 때 일치하는 SS 라인을 당깁니다. 결과적으로 라인은 아래에 있을 것입니다. 따라서 SCLK 라인이 활성화되어 설정된 주파수에서 High와 Low가 됩니다.

또한 마스터 SPI는 MISO 라인을 사용하여 데이터와 샘플을 동시에 보냅니다. 또한 한 번에 하나의 주변기기와 마스터 SPI 간에만 통신이 가능하다는 점에 유의하십시오.

I2C란 무엇입니까

또는 1982년 Philips Semiconductors(현재 NXP Semiconductors)는 하나의 PCB에 있는 칩 간의 통신을 체계화하기 위해 최초의 I2C 프로토콜을 개발했습니다.

SCI 프로토콜과 달리 I2C 프로토콜에는 접지선과 전원선을 제외한 두 개의 통신선이 있습니다. 이러한 행에는 다음이 포함됩니다.

따라서 하나의 버스에 여러 개의 엔슬레이버 및 에이전트 장치를 연결할 수 있습니다. 또한 SCL 및 SDA 라인을 모두 오픈 드레인 라인으로 유지해야 합니다. 결과적으로 장치에는 한 번에 하나의 낮은 라인만 있습니다. 또한 파이프에 풀업 저항이 필요합니다. 그렇게 하면 라인을 다시 높게 끌어올릴 수 있습니다.

I2C 프로토콜 인터페이스

I2C 프로토콜의 개방형 드레인 설계로 인해 동일한 버스에서 여러 마스터를 사용할 수 있습니다. 그러나 두 개의 컨트롤러 장치가 동시에 통신을 시작하면 장치 중 하나가 전송을 중지하는 중재가 있습니다.

한편, 컨트롤러 장치는 통신이 발생하는 동안 SDA 라인을 모니터링합니다. 따라서 한 장치가 전송하는 동안 SDA 라인이 낮음을 감지하면 전송을 중지합니다. 그리고 이를 통해 다른 컨트롤러 장치가 통신할 수 있습니다.

또한 컨트롤러 I2C 장치는 통신을 시작하기 위해 START 조건을 전송합니다. 결과적으로 SDA 라인은 낮고 SCL 라인은 높게 유지됩니다.

그런 다음 컨트롤러 장치는 전송하려는 수신자의 7비트 주소와 읽기 비트(1) 또는 쓰기 비트(0)를 전송합니다. 이 시점에서 버스의 장치는 SDA 라인을 로우로 만들어 일치하는 7비트 속도 주소가 있는 경우에만 응답합니다.

I2C와 SPI의 차이점

SPI와 I2C는 모두 "로우엔드" 프로토콜이기 때문에 비슷합니다. 또한, 두 프로토콜 모두 속도 및 중량이 큰 사촌(SATA, 이더넷, USB 등)이 자랑하는 기타 기능이 부족합니다.

그러나 작동 원리와 기능에 관해서. 두 프로토콜의 차이점을 자세히 살펴보겠습니다.

USB 커넥터

먼저 SPI 프로토콜에서 4가지 다른 모드를 설정하여 시계 작동 방식을 결정할 수 있습니다. 그리고 통신이 작동하려면 엔슬레이버와 에이전트 장치가 동일한 모델을 사용해야 합니다.

  1. 모드 0:상승 클럭 에지에서 샘플링된 데이터, 클럭 유휴 상태
  2. 모드 1:하강 클록 에지에서 샘플링된 데이터, 클록 유휴 상태
  3. TMode 2:하강 클록 에지에서 샘플링된 데이터, 클록 유휴 높음
  4. 모드 3:상승 클록 에지에서 샘플링된 데이터, 클록 유휴 높음

또한 SPI 데이터 전송 속도는 10Mbps를 초과할 수 있어 방대한 양의 데이터를 전송하는 데 적합합니다. 또한 LCD 및 가속도계와 같이 업데이트 속도가 빠른 센서에서 SPI 프로토콜을 찾을 수 있습니다.

LCD

또는 I2C는 한 번에 1바이트 패킷으로만 데이터를 보낼 수 있습니다. 또한 수신 주변 ​​장치는 ACK 비트로 각 바이트를 확인해야 합니다. 또한 I2C 프로토콜에는 데이터 전송 속도가 다른 세 가지 모드가 있습니다.

ACK 비트

표준 모델은 최대 100kbps, 고속 모드는 400kbps, 고속 모드는 최대 3.4Mbps에 도달합니다. 따라서 I2C 프로토콜은 SPI 프로토콜보다 훨씬 느립니다. 결과적으로 I2C 프로토콜은 온도 센서 및 아날로그-디지털 변환기에서 가장 잘 작동합니다.

온도 센서

I2C와 SPI 비교

아래 표는 I2C와 SPI의 중요한 차이점을 추가로 보여줍니다.

기능 SPI I2C
고정 드라이브 푸시-풀 모드 오픈 드레인 모드
최대. 속도 없음(하지만 10 – 100Mbps를 찾을 수 있음) 100kbps(표준 방식)400kbps(빠른 방식)3.4Mbps(고속 모드)
멀티 마스터 아니요
신호 라인 4(추가 장치는 추가 라인 추가) 2
아니요. 주변기기 마스터 SPI의 SS 라인에 사용할 수 있는 핀 수는 보유할 수 있는 주변기기 수의 유일한 제한입니다. 최대. 112개 중 7비트 주소 지정
흐름 제어 아니요

SPI 대 I2C 프로토콜 – 장단점

SPI 

장점

단점

I2C 

장점

단점

SPI와 I2C 중에서 선택할 때 고려해야 할 요소

프로젝트에 가장 적합한 프로토콜을 선택하는 것은 가격표 그 이상입니다. 따라서 선택하기 전에 고려해야 할 몇 가지 사항이 있습니다.

제한된 핀

다음은 SPI 및 I2C 프로토콜의 장점과 단점입니다. 100개 이상의 핀이 있는 마이크로컨트롤러를 사용하는 것을 좋아하지 않는다면 이것은 고려해야 할 중요한 요소입니다. 이 경우 더 적은 수의 통신 회선이 필요한 프로토콜을 선택해야 합니다.

설계에 따라 전력 소비를 최소화하거나 최대화할 수 있습니다. 따라서 소비 요구 사항에 가장 적합한 프로토콜을 선택해야 합니다.

속도

엄청난 양의 데이터를 전송하는 경우 매 마이크로초가 중요합니다. 따라서 속도가 필요한 경우 속도 표준을 충족하는 프로토콜을 선택하십시오.

PCB 크기

프로토콜을 선택하기 전에 PCB의 크기를 고려하는 것이 중요합니다. 결과적으로 원하는 결과를 얻을 가능성이 높아집니다.

SPI와 I2C 중 선택

다음은 설계에 가장 적합한 결정을 내리는 데 도움이 되는 각 프로토콜의 기능입니다.

기능 SPI I2C
속도 당신의 디자인이 고속 전송을 요구한다면, SPI 프로토콜이 최선의 선택입니다. 저속 장치용 설계에 I2C를 선택할 수 있습니다.
PCB 크기 PCB의 크기에 신경 쓰지 않는다면 SPI나 I2C 중 어느 쪽도 잘못될 수 없습니다. PCB의 크기와 트랙 수가 적은 경우 I2C 선택을 고려하십시오.
제한된 핀 통신을 위해 추가 회선을 추가하는 데 신경 쓰지 않는다면 SPI 프로토콜로 이동하십시오. 많은 트랙이 불편하다면 I2C가 이상적인 선택입니다.
저전력 소비 장치의 경우 SPI 프로토콜 사용 고전력 소비 장치의 경우 I2C 프로토콜을 사용합니다.

UART 이해

UART는 임베디드 시스템의 장치 간에 직렬 통신을 설정하는 통합 또는 마이크로 컨트롤러의 물리적 회로입니다.

또한 UART 통신을 다룰 때 UART 송신기와 UART 수신기 사이에는 항상 직접 통신이 있습니다.

UART 대 I2C 대 SPI

SPI 및 I2C와 같은 다른 통신 프로토콜과 달리 UART는 순전히 물리적입니다. 또한 마스터/슬레이브 패러다임을 사용하여 통신하지 않습니다. 대신 마이크로컨트롤러는 두 개의 UART 장치를 사용하여 데이터를 보내고 받습니다. 또한 UART 통신에는 두 개의 전선만 필요합니다. 그리고 케이블은 송신기의 Tx 핀에서 수신기의 Rx 핀으로 데이터를 전송하는 데 도움이 됩니다.

UART 프로토콜 인터페이스

반올림

실제로 SPI 및 I2C 프로토콜은 다양한 애플리케이션에서 사용됩니다. 때로는 하나의 칩에 SPI 및 I2C 인터페이스를 제공하는 장치를 사용할 수 있습니다. 따라서 둘 중 하나를 선택할 필요가 없습니다.

그러나 두 프로토콜 중에서 선택해야 하는 경우 더 빠른 전송 속도가 필요한 프로젝트에 SPI가 더 좋습니다. 반면에 마이크로컨트롤러에 제한된 핀이 있는 경우 I2C 프로토콜이 더 잘 작동합니다.

질문이 있으신가요? 저희에게 연락 주시기 바랍니다. 기꺼이 도와드리겠습니다.


산업기술

  1. 알아야 할 7가지 React 라이브러리
  2. 변압기 오일 테스트에 대해 알아야 할 사항
  3. 라인 리액터를 사용해야 하는 이유
  4. 그라인딩 휠 가드에 대해 알아야 할 사항
  5. 마이크로 도구에 대해 알아야 할 5가지 사항
  6. TAA 규정 준수란 무엇입니까? 알아야 할 5가지
  7. 당신이 알아야 할 9가지 머신 러닝 애플리케이션
  8. 클러치 페이싱:알아야 할 모든 것
  9. 알아야 할 기본 워터젯 용어
  10. 널링이란 무엇입니까? 알아야 할 사항은 다음과 같습니다.