SPI와 I2C가 때때로 동일한 직렬/동기화 프로토콜을 설명하는 이유를 이해하도록 도와주세요. Raspberry Pi에서 "포트"는 SDA/SCL - 2선(직렬) 프로토콜로 "레이블"되어 있습니다. "SPI/I2C란 무엇입니까?"라고 언급하지 말고 위의 특정 질문에 대한 설명/설명을 찾으십시오.
SDA/SCL의 PS "S"는 직렬 또는 동기화를 나타냅니다. 하드웨어를 고려하면 병렬이 불가능하므로 "직렬"이 중복됩니까?
당신의 답변에 감사드립니다.
답변1
SPI와 I2C는 매우 다른 프로토콜입니다(설명은 Wikipedia 확인). I2C의 경우 클록 및 데이터 라인, SPI의 경우 SCLK, MISO, MOSI 및 SS 등 라인 수가 다릅니다. 또한 SPI_MOSI
, SPI_MOSI
및 와 같은 Raspberry Pi B 핀아웃을 사용했습니다 SPI_SCLK
.
I2C와 매우 유사한(하위 집합으로 간주될 정도로 유사함) SMBus라는 프로토콜이 있습니다. 아마도 SPI가 아니라 그런 뜻이었을까요?
즉, 임베디드 SoC(예: Raspberry Pi의 핀)에서 핀은 다양한 목적을 갖는 경우가 많으며 칩의 다른 부분(예: I2C 컨트롤러, SPI 컨트롤러 또는 UART 등)에 다시 할당될 수 있습니다. .) 특수 레지스터. 이것이 바로 다양한 캐릭터에 사용되는 특정 핀을 볼 수 있는 이유입니다. 물론 다르지만 유사한 역할에 사용하는 경우 목적이 유사한 방식으로 다시 할당하는 것이 좋습니다.
SoC 개발자가 SDA 및 SCL 핀 이름을 명명할 때 "직렬" 또는 "동기"를 의미했는지는 모르겠지만, 문제가 되지 않을 것 같습니다...SoC 문서를 읽고 운 좋게 방법을 찾지 않는 한 미스터리로 남을 수 있는 약어를 철자하는 것.