SPI

  • Serial Peripheral Interface
  1. 전이중 통신 모드로 동작
    • 전이중 통신: 양방향 통신이 가능 (ex. 전화 - 내가 말하면서 들을 수 있음)
  2. 마스터 슬레이브 모드로 동작
  3. 마스터가 데이터 초기화 가능
  4. Chip Select 라인으로 여러 슬레이브 선택 가능

SPI 인터페이스

  • SPI는 4가지의 신호 지정, 이 4가지의 신호가 있어야 SPI 통신 가능
    1. SCLK
      • Serial Clock(직렬 클럭)
      • 마스터에서 출력하여 슬레이브로 입력
      • SPI 통신의 주기를 SCLK로 설정 가능
      • 동기화 신호이며 통신 Clock이라고 생각하면 됨
    2. MOSI
      • Master Output Slave Input
      • 마스터 출력, 슬레이브 입력
      • 실제 마스터에서 슬레이브로 데이터를 전송할 때 MOSI를 이용
    3. MISO
      • Master Input Slave Output
      • 슬레이브 출력, 마스터 입력
      • 보통 MOSI로 슬레이브에 명령 DATA가 입력, MISO로 슬레이브에서 응답 DATA 출력
    4. CS
      • Chip Select
      • 보통 SS핀(Slave Select)으로 슬레이브 선택할 때 사용

SPI: N 통신의 이해

  • SCLK로 동기식 클럭을 만들어 줌
  • CS로 Slave를 선택하여 통신
  • SPI는 한 개의 Slave Device와만 통신 가능, CS를 LOW로 주면 해당 장치와 통신

→ 통신하지 않는 Slave는 CS에 High를, 통신하는 Slave는 CS에 LOW를 주면 됨

SPI, DSPI, QSPI

  1. SPI
    • 대부분의 단일 SPI 직렬 처리 속도: 10Mbps
    • 단일 SPI 병렬 처리 속도: 10 – 24Mbps
  2. DSPI
    • 전송 속도를 두 배로 높일 수 있는 듀얼 I/O 인터페이스
    • MISO 및 MOSI 데이터 핀은 클록 주기당 2비트를 전송하기 위해 반이중 모드에서 작동
    • MOSI 라인은 IO0, MISO 라인은 IO1
    • DSPI 직렬 처리 속도: 약 20Mbps
  3. QSPI
    • 처리량 4배 향상
    • 2개의 추가 데이터 라인 추가
    • 클록 사이클마다 4비트 전송
    • 데이터 라인 IO0, IO1, IO2, IO3
    • QSPI 직렬 처리 속도: 약 40Mbps

참고자료

SPI(Serial Peripheral Interconnect) 버스 란?
[회로설계 - 기초이론] SPI 통신 쉽게 이해하기
What are the Differences of Single vs Dual vs Quad SPI?

'technology > IP' 카테고리의 다른 글

Memory Types on Embedded Programming  (0) 2022.11.01
CAN (Controller Area Network)  (0) 2022.10.24
ADC (Analog-to-Digital Converter)  (0) 2022.09.30

Memory Types

  1. 전원 차단 시 지워지는 것

    • RAM: Random Access Memory
  2. 전원 차단 시 지워지지 않는 것

    • ROM: Read Only Memory
  3. RAM

    • RAM
    • SRAM
      • Static RAM
      • DRAM에 비해 5배 빠르며 비싸다. Static의 의미는 전기를 주는 한 데이터가 지워지지 않는다는 의미이며, Dynamic은 1초마다 refresh(Capacitor에 전자를 채워주는 것) 해야 데이터가 유지된다.
      • 보통 MCU의 RAM에 SRAM만 있는 이유는 속도 때문!
  4. ROM

    • ROM

    • Flash

    • EEPROM

    • Flash와 EEPROM, Emulation

      • Flash: 싸고 빠르며 큰 block 단위로 지우고 쓸 수 있다.

      • EEPROM: 상대적으로 비싸고 느리며 작은 block 단위로 지우고 쓸 수 있다.

        → 작은 크기의 데이터를 쓰면 EEPROM, 큰 데이터를 쓰면 Flash 사용

      • Flash

        • Program Flash: 프로그램 Code 저장
        • Data Flash: 사용할 데이터(ex. Setting 값) 저장

        → EEPROM, Program Flash, Data Flash 중 기능과 가격을 고려해서 메모리 선택

      • Emulation

        1. 필요성

          • 자동차 분야에서는 ECU 소프트웨어의 복잡성과 기능 안전 요구사항 증가로 많은 양의 데이터를 비휘발성 메모리에 저장하는 기능 요구

            → 기존 ECU는 외장 EEPROM에 데이터를 저장

            → 최근에는 MPU 내부의 일부 Flash 영역에 데이터 저장 기능 구현: Emulation

            → Flash Memory가 EEPROM의 역할 대체하는 EEPROM Emulation 적용 추세

          • 가격이 싼 Flash memory를 EEPROM과 같이 쓰기 위해서 Emulation 하는 것

        2. 방법

          • Flash는 큰 block 단위, EEPROM은 작은 block 단위이기 때문에 Flash를 EEPROM처럼 쓰려면 알고리즘이 필요
          • 하나의 데이터를 변경할 때도 블록 내부의 모든 데이터를 다시 저장해야 함
          • Flash Memory를 다수의 블록으로 나누어 특정 블록에는 변경되지 않는 데이터를 저장하고 나머지 블록에 순차적으로 변경된 데이터 저장
        3. 문제점

          • 변경된 데이터 식별을 위해 비트 단위의 비교 연산과 복구 연산 필요

            → 성능이 떨어짐

          • 제어 정보 저장하는 블록은 동일 위치에 제어 정보를 기록하기 때문에 다른 블록에 비해 수명이 짧음

            • 일반적으로 Flash가 기록 수명이 EEPROM보다 짧음

              → 수명 보장에 치명적

        4. 효과

          • EEPROM 소자가 필요하지 않아 비용 절감 효과가 있음(EEPROM 소자 비쌈)
          • EEPROM에 대한 회로 설계가 필요하지 않아 PCB 레이아웃 설계에서의 장점이 있음
  5. 사용 예시

    • 코드: 전원이 꺼져도 사라지지 않아야 함 → ROM의 한 종류인 Flash에 저장

      전원이 켜지면 실행되어야 함 → RAM Memory에 올리고 MCU 실행

      RAM 영역에서 실행하고 전원을 끄면 RAM 내용이 삭제됨

    • Setting 값(ex. 모니터 밝기): 전원이 꺼져도 저장되어 있는 것이 편함 → ROM의 한 종류인 EEPROM에 저장

      • EEPROM: Flash에 비해 Read/Write 속도가 느리고 쓰는 횟수도 제한되어 있음
  6. 실제 사용하고 싶은 MCU를 선택할 때 고려할 것

    • 사용할 코드의 크기 → Flash

    • 실제 프로그램 실행 시 RAM에 올릴 코드의 크기 → SRAM

    • 전원이 꺼져도 값이 유지되어야 하는 변수 → EEPROM

      → 동일 Family에서 메모리 크기가 다른 Chip을 만드는 이유

참고 자료

RAM, ROM, Flash 메모리::하드웨어
마이크로컨트롤러(MCU); Program memory(Flash memory)와 Data memory(SRAM)비교
[반도체] 플래시 메모리(Flash Memory)
[반도체] 반도체 분류 사전 (3) - 시스템 반도체
ROM과 RAM - EEPROM, Flash Memory, NVRAM
Memory Types on Embedded Programming(Memory의 종류 및 고려해야 할 점)

'technology > IP' 카테고리의 다른 글

SPI (Serial Peripheral Interface)  (0) 2022.11.03
CAN (Controller Area Network)  (0) 2022.10.24
ADC (Analog-to-Digital Converter)  (0) 2022.09.30

Controller Area Network(CAN)

  • 차량 내에서 호스트 컴퓨터 없이 MCU나 장치들이 서로 통신하기 위해 설계된 표준 통신 규격
  • 차량 내 ECU(Electronic control unit)들은 CAN 프로토콜 사용하여 통신

특징

  1. 메시지 지향성 프로토콜(Message-Oriented Protocol)

    • 메시지 우선순위에 따라 ID 할당 → 이 ID를 이용해 메시지 구별

      ex. 임의의 한 노드 A가 메시지를 전송

      → 나머지 노드들은 A가 전송한 메시지가 자신에게 필요한 메시지인지를 판단(ID기반 판단)

      → 자신에게 필요하다면 받아들이고, 아니라면 무시

  2. 보완적인 에러 감지 매커니즘

    • 높은 안정성 보장
      • 다양한 에러 감지 매커니즘이 상호 보완적으로 에러 감지
    • 짧은 에러 회복 시간
      • 메시지 전송 시 에러가 감지되면 자동으로 해당 메시지를 즉시 재전송하는 기능
  3. 멀티 마스터 능력

    • 감독자 노드 필요 없음

      • CAN 기반 네트워크는 버스 점유를 위한 감독자 노드(Bus Master) 필요 없음

      • 모든 노드가 버스 마스터로 버스가 비어있다면(idle) 언제든지 메시지 전송 가능

      • 모든 노드는 버스가 비워지는 즉시 메시지 전송 시작

        ex. CAN 버스에서 두 개의 노드가 메시지를 동시에 전송하려고 하면, 우선순위(식별자, ID)에 따라 각각 전송됨

        → 우선순위가 높은 메시지(더 낮은 ID번호가 우선순위 높음)가 먼저 전송

  4. 결점 있는 노드의 감지와 비활성화

    등장 배경

  • 초기에는 자동차 내 모듈이 많지 않아 UART 방식(일대일, Point-To-Point)로 ECU 연결
  • 서로 다른 모듈간 통신을 위해 많은 선(Line)이 필요해짐
    • 유지 보수 문제, 무게 증가, 연비 하락의 문제 발생
  • CAN 등장
  • 여러 개의 CAN 디바이스가 서로 통신할 수 있는 안정적인 네트워크(다중 통신 방식, Multi Master 방식) 제공
  • ECU가 시스템 내 디바이스마다 아날로그 및 디지털 입력 대신 단일의 CAN 인터페이스만 보유

→ 자동차의 비용과 중량 감소 효과

CAN 통신의 종류

  1. C-CAN (Chassis CAN)
    • 고속 CAN 통신을 하고 CLU, YRS엔진, 미션, ABS, ECU(엔진), TCU 등 빠른 데이터 통신을 요구하는 ECU에서 사용됨
  2. B-CAN (Body CAN)
    • C-CAN에 비해 저속 통신을 하고 BCM 라이트, 파워윈도우, 스마트 키 모듈과 같은 주행과 관계 없는 통신에 주로 사용됨
  3. M-CAN(Multimedia CAN)
    • 전자 기기들로 네비게이션, 차량 내 멀티미디어 통신 기기와의 연동을 위한 각종 모듈을 포함
  4. P-CAN (Power CAN)
    • DATC 모듈, TCU, EMS(ECU, 각종 센서, 각종 액츄에이터) 등이 있으며 샤시 관련해서 겹치는 통신이 있음
  • 각 CAN의 통신 속도는 125Kbps~1Mbps
참고 자료

CAN 프로토콜 통신

CAN 통신의 이해 | FESCARO

'technology > IP' 카테고리의 다른 글

SPI (Serial Peripheral Interface)  (0) 2022.11.03
Memory Types on Embedded Programming  (0) 2022.11.01
ADC (Analog-to-Digital Converter)  (0) 2022.09.30

+ Recent posts