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

SPI I2C UART- 통신 프로토콜 및 사용

마이크로컨트롤러 개발은 전자 어셈블리의 기본 프로세스입니다. 그러나 직렬 프로토콜 및 통신 인터페이스의 입력은 이러한 작업을 용이하게 합니다. 이 기사에서는 SPI I2C UART 인터페이스 및 UART와 같은 직렬 통신 프로토콜을 철저히 탐구하려고 합니다. 직렬 프로토콜의 기능, 장점, 단점 및 예를 분석합니다.

1. UART 인터페이스

UART란 무엇입니까?

그림 1:Arduino의 UART 프로토콜 

범용 비동기 수신 및 전송( UART ) 보조 장치와의 호스트 통신을 용이하게 하는 직렬 통신 프로토콜입니다. 기본적으로 직렬 데이터 전송을 가능하게 합니다. 게다가, 그것은 비동기 통신과 양방향 전송이 가능합니다.

단순 프로토콜은 또한 전송(Tx) 처리 및 기타 신호 수신(Rx)의 두 가지 데이터 라인을 제공합니다. 일반적으로 신호 전송은 디지털 핀 0을 통해 이루어지며 수신은 디지털 핀 1을 통해 이루어집니다.

또한 컴퓨터와 외부 직렬 장치의 관리를 동기화하는 데 도움이 됩니다.

어떻게 작동합니까?

그림 2:DIY 전자 USB UART 보드

기본적으로 UART는 다음 수단을 통해 두 장치 간의 신호 통신을 관리합니다.

Simplex는 단방향 데이터 전송을 포함하는 반면 Half-duplex는 양방향으로 두 장치 간의 비동시 통신을 의미합니다. 마지막으로 전이중은 양방향으로 동시에 데이터를 전송하는 것을 의미합니다.

일반적으로 연결 후 송신 UART의 데이터 라인에서 수신 UART로 데이터 전송이 있습니다. 다음 원칙에 따라 발생합니다.

  1. 먼저, 전송 UART는 수신 UART로 전송하기 위해 마스터 장치의 병렬 데이터를 직렬 형식으로 변환합니다. 마찬가지로 수신 UART는 연결된 수신 장치에서 사용할 직렬 데이터를 병렬 데이터로 변경합니다.
  2. UART는 비동기식 통신을 수반하기 때문에 클럭이 없습니다. 따라서 UART는 메시지의 시작과 끝을 나타내는 시작 및 중지 비트를 생성합니다.
  3. 두 UART는 동일한 BAUD 속도 또는 UART 데이터 전송 속도로 작동해야 합니다. 이상적으로는 10% 이상의 차이가 데이터를 쓸모 없게 만들기 때문에 데이터 비트의 정확한 타이밍을 보장하기 위한 것입니다.

UART 작업 프로토콜

데이터 송수신

  1. 전송을 위해 전송 UART는 CPU와 같은 데이터 버스에서 데이터를 수신해야 합니다.
  2. 다음으로 3비트, 즉 시작 비트, 패리티 비트 및 정지 비트를 추가합니다. 3개는 TX 핀을 통해 수신 UART로 전송되는 데이터 패킷을 형성합니다.
  3. 전송 UART의 데이터가 소진되면 데이터 전송이 중지됩니다.

인터럽트 제어

데이터 인터럽트는 자동 버퍼 콘텐츠 전송에 유용합니다. 다음 시나리오의 경우 인터럽트 제어를 요청할 수 있습니다.

FIFO 작업

그림 3. Arduino의 UART 인터페이스

Stellaris 제품군 UART 모듈에는 2개의 16바이트 FIFO가 있습니다. 하나는 데이터 수신용이고 다른 하나는 전송용입니다. 또한 다른 인터럽트를 전달하기 위해 다양한 깊이에서 구성할 수 있습니다. 예를 들어, 1/8 깊이, 1/4 깊이, 1/2 깊이 등을 가질 수 있습니다.

FIFO 전송 작업 과정

  1. 기본적으로 데이터 입력 후 데이터 전송이 시작됩니다. 또한 시간이 오래 걸리므로 전송 FIFO가 가득 찰 때까지 데이터 입력이 계속됩니다.
  2. 한 번 가득 차면 모든 새 데이터가 손실되지 않도록 데이터 입력을 중지해야 합니다.
  3. 다음으로, 전송 FIFO는 데이터가 비워질 때까지 비트 단위로 데이터를 보냅니다. 마지막으로, 전송 FIFO는 추가 슬롯을 생성합니다.

FIFO 수신 작업 프로세스

  1. 위의 단계에서 데이터를 수신한 후 하드웨어는 수신 FIFO에 데이터를 저장합니다. 이상적으로는 수신 FIFO 프로그램에 의한 데이터 수신 및 삭제가 자동 프로세스입니다. 따라서 수신 FIFO에 충분한 공간이 있어야 합니다.
  2. 또한 CPU 비효율 문제를 해결하는 데 필수적인 트랜시버 FIFO를 갖추고 있습니다. 또한 빈번한 UART 송수신기 중단 문제를 해결하는 데 도움이 됩니다.
  3. 마지막으로, FIFO는 가능한 모든 손실 경로를 사전에 봉인하므로 데이터 손실이 없습니다.

루프백

UART에는 RX 입력이 전송된 데이터를 수신할 위치에 대한 디버깅 및 진단을 위한 내부 루프백이 있습니다.

직렬 적외선 프로토콜

UART는 인코더/디코더 모듈로 작동하는 IrDA 직렬 적외선(SIR)을 특징으로 합니다. 반이중 직렬 SIR 인터페이스 및 비동기 UART 데이터 스트림을 변환하는 데 유용합니다.

또한 직렬 통신 프로토콜은 디코딩된 입력과 디지털 코딩된 출력을 UART에 전달합니다.

UART 사용의 장점

  1. 간단한 통신 프로토콜은 문서화되어 있고 사용하기 쉬운 모듈입니다.
  2. 둘째, 직렬 클럭 라인이 필요하지 않습니다.
  3. 셋째, 오류 검사를 가능하게 하는 패리티 비트가 있습니다.

UART 사용의 단점

  1. UART 인터페이스는 9비트의 데이터 프레임 크기 제한이 있으며 전송 속도가 느립니다.
  2. 게다가, 많은 마스터 시스템과 슬레이브 장치를 사용할 수 없습니다.
  3. 또한 데이터 손실을 방지하기 위해 10% 이내의 강제 전송 속도를 가지고 있습니다.
  4. 넷째, 일반적으로 기기 간 데이터 전송 속도가 느립니다.

마이크로컨트롤러의 UART 예

2. I2C 인터페이스

I2C란 무엇입니까?

그림 4:I2C를 사용하는 차압 센서

통합 회로(I2C) 통신 프로토콜은 UART와 유사합니다. 그러나 UART는 PC 장치 통신용으로 지정되었지만 I2C는 센서 및 모듈 응용 프로그램에 유용합니다.

또한 양방향 2선 동기 직렬 버스는 통신 경로를 손상시키지 않고 여러 장치를 연결할 수 있습니다. 공유 버스 및 주소 시스템 속성 덕분입니다.

그러나 이 기능은 SPI에 비해 장치 간의 통신이 상대적으로 느리다는 대가를 치르게 됩니다. 속도는 외부 노이즈, 와이어 품질 및 데이터 속도에 따라 달라집니다.

마지막으로 2선 인터페이스를 통해 EEPROM, 아날로그/디지털 변환기 및 마이크로컨트롤러와 같은 저속 장치에 연결할 수 있습니다.

어떻게 작동합니까?

I2C 프로토콜은 직렬 데이터 라인 수용 포트(SDA)와 직렬 클럭 라인(SCL)의 두 라인을 특징으로 합니다. SCL은 전송 동기화를 용이하게 하는 반면 SDA는 데이터 비트를 송수신하기 위한 데이터 라인을 나타냅니다.

전송하는 동안 마스터 장치는 버스 데이터 전송을 요청합니다. 동시에 전송 장치를 여는 시계를 생성합니다. 이 시나리오에서 전송에서 주소가 지정된 장치는 슬레이브 장치입니다.

주목할 점은 마스터 디바이스와 슬레이브 디바이스가 일정한 데이터 전송 속도를 갖고 있지 않다는 점이다. 오히려 이들의 관계는 전송 시 데이터 전송 방향에 의존합니다.

또한 단일 마스터 장치는 데이터 전송을 시작하기 전에 슬레이브 선택 장치에 알려야 합니다. 마찬가지로 슬레이브에서 데이터를 수신하기 전에 슬레이브에 알려야 합니다.

또한 최적의 기능을 위해 풀업 저항을 I2C 전원 공급 장치에 연결하는 것이 중요합니다.

I2C 작업 프로토콜

그림 5:핀 0.96인치 OLED 128X64 OLED 디스플레이 모듈 IIC I2C

데이터 전송 방식

연결 절차는 다음과 같습니다.

  1. 마스터 출력은 주로 SDA 라인을 고전압 레벨에서 저전압으로 전환하여 연결된 슬레이브에 전송 신호를 보냅니다. 다음으로 SCL 라인을 고전압 레벨에서 저전압 레벨로 전환합니다.
  2. 그런 다음 마스터는 7비트 또는 10비트 주소를 보내고 각 슬레이브에 비트를 읽거나 씁니다.
  3. 셋째, 슬레이브는 주소를 자신의 주소와 비교합니다. 일치하면 ACK 비트를 반환하여 SDA 라인을 로우로 전환합니다. 그러나 일치하지 않으면 슬레이브는 SDA 라인을 높은 상태로 유지합니다.
  4. 다음으로 마스터는 데이터 프레임을 전송하거나 수신합니다(일치하는 주소에 따라 다름). 그런 다음 데이터 전송이 완료된 후 수신 구성 요소는 데이터 발신자에게 ACK 비트를 반환합니다. 전체 전송을 확인하는 것입니다.
  5. 마지막으로 마스터는 SCL을 high로 전환한 다음 SDA를 전환하여 통신 종료를 알립니다.

시계 동기화

모든 마스터는 데이터 전송을 위해 SCL 라인에서 클럭 신호를 생성해야 합니다. 게다가 I2C 전송에서 데이터가 유효한 것은 클록의 높은 기간 동안에만 가능합니다.

전송 모드

주로 다음과 같은 두 가지 수단을 통해 전송합니다.

빠른 모드

고속 모드의 장치는 400kbit/s의 속도로 데이터를 수신 및 전송합니다. 또한 고속 모드 I2C 버스는 글리치를 크게 억제할 수 있으며 출력에는 기울기 제어 기능이 있습니다.

고속 모드

고속 모드의 I2C 버스는 3.4Mbit/s의 비트 전송률로 데이터를 전송/수신합니다. 따라서 이전의 빠른 모드보다 빠른 데이터 전송 속도가 특징입니다.

I2C의 장점

  1. 마스터에 수많은 장치를 연결한 경우에도 핀/신호 수가 크게 제한되어 있습니다.
  2. 둘째, I2C 장치는 다중 마스터 및 다중 슬레이브 기능 덕분에 유연성을 제공합니다.
  3. 또한 두 개의 양방향 전선만 있으면 수많은 기기에 연결할 수 있어 사용이 간편합니다.
  4. 또한 광범위한 적응성을 제공하며 수많은 마스터를 지원할 수도 있습니다.

I2C의 단점

  1. 푸시풀 저항만 필요한 SPI와 달리 속도가 비교적 느리고 풀업 저항을 사용해야 합니다. 또한 개방형 배수 설계로 속도가 줄어듭니다.
  2. 게다가, 저항은 PCB 조립에서 매우 중요한 공간을 차지합니다.
  3. 여러 기기를 연결하면 사용하기 쉽지 않습니다.

마이크로컨트롤러의 I2C 예

3. SPI 인터페이스

SPI란 무엇입니까?

그림 6:SPI 인터페이스는 디스플레이 모듈에서 편리합니다.

직렬 주변기기 인터페이스 (SPI)는 마이크로컨트롤러에 사용하도록 지정되었습니다. 또한 전이중 방식으로 동작하므로 데이터의 동시 송수신이 가능합니다.

SPI는 I2C보다 상대적으로 빠르며 데이터 전송 속도는 최소 8비트입니다. 기본적으로 이 모듈의 간단한 프로토콜은 더 빠른 데이터 속도를 가능하게 합니다. 따라서 디스플레이 모듈 및 SD 카드와 같이 속도가 필요한 애플리케이션에서 중요합니다.

온도계와 같이 갑작스러운 정보 변경과 관련된 애플리케이션에서도 필수적입니다.

어떻게 작동합니까?

그림 7:SPI를 활용하는 SD 카드

SPI 형식의 장치는 다음 두 가지 방법 중 하나로 작동합니다.

SPI 인터페이스에서 원하는 만큼 장치를 연결할 수 있습니다. 그러나 대부분의 경우 사용 가능한 하드웨어 선택 라인에 의해 제한됩니다. 마지막으로 지점 간 통신 중에 모듈은 작업을 처리할 필요가 없습니다.

SPI 작업 프로토콜

SPI는 다음과 같은 4개의 포트를 통해 작동합니다.

  1. 마스터 데이터 출력, 슬레이브 데이터 입력(MOSI)
  2. 마스터 데이터 입력, 슬레이브 데이터 출력(MISO)
  3. 시계 신호(SCLK)
  4. 슬레이브 활성화 신호(NSS)

다중 슬레이브 시스템을 사용할 때 각 슬레이브는 고유한 활성화 신호를 요구합니다. 이 요구 사항은 I2C 통신에 비해 하드웨어 요구 사항을 복잡하게 만듭니다.

또한 SPI 인터페이스에는 2개의 시프트 레지스터가 있습니다. CPU와 같은 단일 마스터 장치와 주변 장치 간에 동기식 직렬 데이터 전송이 가능합니다.

SPI 사용의 장점

  1. I2C와 달리 복잡한 슬레이브 주소 지정 시스템이 없기 때문에 사용이 간편합니다.
  2. 둘째, 우리가 다룬 모든 직렬 인터페이스 중 가장 빠른 프로토콜입니다(UART 및 I2C보다 빠름).
  3. UART 통신과 같이 시작 및 정지 비트가 없습니다. 따라서 중단 없이 지속적인 데이터 전송이 가능합니다.
  4. 마지막으로, 데이터를 동시에 송수신할 수 있는 별도의 MISO 및 MOSI 라인이 있습니다.

SPI 사용의 단점

  1. 대부분의 핀 포트가 사용 중이므로 연결할 수 있는 장치의 수가 제한됩니다.
  2. 또한 지정된 흐름 제어가 부족하고 I2C와 달리 데이터가 전송/수신되었음을 확인하는 메커니즘이 없습니다.
  3. 위에서 강조한 것처럼 4줄을 사용해야 하며 UART와 달리 오류 검사 메커니즘이 없습니다.
  4. 넷째, 단일 마스터도 있습니다.

마이크로컨트롤러의 SPI 예

UART, I2C 및 SPI 비교

이러한 통신 주변기기 중 "최고"는 무엇입니까? UART, SPI 또는 I2C?

각각의 주요 장점과 단점이 있기 때문에 세 가지 중 우수한 통신 주변 장치는 없습니다. 따라서 프로젝트에 따라 가장 적합한 프로토콜을 선택하십시오. 예를 들어, 속도를 찾고 있다면 SPI가 가장 적합할 것입니다.

그러나 복잡한 어레이 없이 많은 장치를 연결하려면 I2C로 이동하십시오.

결론

우리는 UART, I2C 및 SPI 통신 인터페이스와 다양한 전송 속도에 대해 알아야 할 모든 주요 통찰력을 드러냈습니다. 또한 통신 프로토콜에 대한 모든 질문에 답변해 드립니다. 연락주시면 즉시 도와드리겠습니다.


산업기술

  1. MQTT 및 DDS:IoT의 M2M 통신
  2. 네트워크 프로토콜
  3. 디지털 메모리 용어 및 개념
  4. 보드 – Pi 브레이크아웃 – I2C, UART, GPIO 등
  5. 14 나노기술의 익숙하지 않은 사용 | 혜택 및 적용
  6. 은 브레이징이란 무엇입니까?- 공정, 막대 및 용도
  7. 데이터 기반 제조:이점, 과제 및 전략
  8. 데이터 수집 자동화 및 의사 결정 최적화
  9. 나무의 종류와 용도
  10. 텅스텐은 그때와 지금을 사용합니다