본문 바로가기

Study_Embedded/[오제이 튜브의 임베디드 실전 강의]

[오제이 튜브의 임베디드 실전 강의] 2강 실무자는 어떻게 칩을 고르나요?

728x90
반응형

0. 큰 그림을 반드시 그려야 하는 이유

  • 큰 그림 : 나만의 개념을 잡고 그 개념들이 조각조각 분산되어 있는 것이 아니라 서로 연결되어 있는 것을 의미
  • 큰 그림을 그릴 줄 알면 다양한 문제점을 만나더라도 쉽게 해결을 할 수 있음
    • Ex 1) NPM, PIP, Apt-get, 마켓 플레이스
    • 모두 어떤 프로그램을 저장소에서 다운받을 수 있는 기능 -> 이 개념을 잡고 있으면 다양한 것을 해결할 수 있음
    • 저장소와 관련된 문제 파악 및 해결 가능
  • 무엇을 배우던 간에 큰 그림을 그려야 함

 

NPM을 실행하는 과정 (전기, 전자 -> 발전소 -> ...)

 

  • 위와 같은 큰 그림을 머리 속에 하나씩 그려가야 함
    • 문제를 만날 때 마다 해결하기가 쉬워짐

 

- Ex 2) Visual Studio Code와 Visual Studio의 차이점

  • 둘 모두 개발 Tool
    • 개발 Tool : 메모장 + Compiler + 사용자가 개발하기 편한 기능들
  • Visual Studio에는 Compiler가 포함되어 있으나
    Visual Studio Code에는 포함되어 있지 않아 별도 설치 및 설정 작업 필요 (JSON을 사용해서 설정 작업)
    • JSON (Javascript Object Notation) : 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 Data Format
      (Data 표현 방법)
    • Javascript에서 Object를 만들 때 사용하는 표현식을 의미 -> Javascript의 Object 형식을 기반으로 만들어짐
    • 사람과 기계 모두 이해하기 쉽고 용량이 작음
    • 특정 언어나 플렛폼에 종속되지 않음
    • Data를 받아서 객체나 변수로 할당해서 사용하기 위해 씀
  • 큰 그림이 있다면 위의 Compiler가 있고 없을 때의 차이점과 사용 방법을 알 수 있다

 

  • C언어로 코드를 짜면 Linux용은 Linux에서만, Windows용은 Windows에서만 동작
    -> QT 크로스 플랫폼은 환경에 상관 없이 동작
  • Class간 동작은 시그널 슬롯을 사용해야 함

 

1. Chip 선택 시 고려사항

Chip. 출처 : https://www.waferworld.com/post/what-is-the-difference-between-a-wafer-and-a-chip

 

  • 강의에 사용할 Chip은 MCU
  • MCU : CPU + Memory + I/O 장치를 하나의 Chip으로 모은 장치

 

1) 양산 / Sample 여부에 따른 고려사항

A. 양산형

  • 단가
    • 보통 Arm Core Chip이 저렴함
  • 원활 수급 가능 여부
  • 안정성(사람들이 많이 사용해봤는가) : Embedded 제품은 한번 나오면 최소 2년 정도는 동작해야 함
    • 보통 산업용 Chip을 씀 : 안정성이 보장되고 악조건에서도 잘 견딤
  • 조건(용도) 적합 여부 : 성능, 소비 전력(배터리로 돌아가는 제품일 경우 특히 중요) 등
  • 구현의 용이성 : Sample Board가 있는가, 만들어진 회로도가 있는가
    • 위가 있으면 개발 기간을 단축시킬 수 있고 개발 비용을 절감할 수 있음

 

 B. Sample, 과제용

  • 단가보다는 빠르게 구현하는 것이 목표인 경우
  • 쉽게 구현할 수 있는가
  • Sample Board가 있는가
  • Chip 주변의 Module이 구하기 쉬운가
    • Main Chip과 함께 어떤 기능을 할 수 있는 Module을 의미
    • 모듈(Module) : 독립되어 있는 하나의 소프트웨어 또는 하드웨어 단위

 

2. Chip 심화 내용 : AVR vs ARM

2.1. AVR(Advanced Virtual Risc)

  • Atmel사에서 만든 칩. ARM Core 시대 이전에 주요 Chip

 

AVR의 구조

  • ROM, EPROM, EEPROM(CPU 동작시 필요한 별도의 저장장치)을 사용하지 않은 최초의 단일 Chip
    • 대신 Flash Memory를 사용
    • 즉 Flash Memory를 사용한 최초의 MCU
  • Flash Memory : EEPROM처럼 전기적으로 data를 저장하고 지울 수 있는 비휘발성 메모리 칩
    byte 단위로 data를 처리하는 EEPROM과 달리 block 단위로 data를 처리함 (USB, SSD 형태)
    • 용량이 크며 읽기/쓰기 속도가 빠르고 내구성이 뛰어나 배터리로 동작하는 장치에서 저장 장치로 주로 사용
    • 단 수명이 EEPROM에 비해선 짧음
    • 전원 없이 data 보존이 가능하다는 점에서 ROM의 성격을 가지며 읽기/쓰기가 가능하다는 점에서 RAM의 성격을 가짐
  •  Flash Memory의 종류로는 NOR / NAND Flash Memory가 있다
    • NOR Flash Memory : 속도가 빠른 대신 저용량.
      ROM과 같은 구조를 가지며 코드 실행에 사용됨. 1byte 단위의 읽기/쓰기
    • NOR Flash Memory : 속도는 느리지만 대용량.
      Data 저장에 사용되며 요즘 대부분 사용함. HHD처럼 Block 단위의 읽기/쓰기

Flash Memory. 출처 : https://ko.wikipedia.org/wiki/%ED%94%8C%EB%9E%98%EC%8B%9C_%EB%A9%94%EB%AA%A8%EB%A6%AC

 

  • Harvard Architecture, Risc processor 사용

- Harvard Architecture

  • Program Memory와 Data Memory를 구분하여 각자의 Memory Bus가 있음
  • 또한 CPU가 Instruction과 Data에 동시 접근 가능
    • Von Neumann Architecture는 둘이 묶여있다
    • Von Neumann Architecture : CPU와 Memory를 최초로 분리시킨 Computer Architecture
    • Data Memory와 Program Memory(Instruction)가 한 Bus로 들어가는데, 시간이 지날수록 Program이 복잡해져  Memory에서 병목 현상 발생
    • 이를 해결하고자 둘의 Bus를 구분한 Architecture가 Harvard Architecture

Von Neumann Architecture(왼쪽), Harvard  Architecture(오른쪽)

 

 

- Risc (Reduced Instruction Set Computer)

  • 단순하고 적은 개수의 Instruction들로 구성
    • 기능을 일일히 명령하며 알려줘야 하므로 Software(Compiler)가 복잡해짐
    • Ex) 4 x 4 -> 4를 4번 더하라고 일일히 알려줘야 함
  • CPU Instruction의 개수를 줄여 Hardware 구조를 단순하게 만드는 방식
  • 모든 명령어들의 길이가 같으므로 처리속도가 빠름
    • 단순 명령을 여러번 반복하므로 다수의 레지스터 필요 -> ARM, AVR계열

 

- Cisc (Complex Instruction Set Computer) 

  • 복잡하고 기능이 많은 Instruction들로 구성
    • Ex) 4 x 4를 한번에 수행 가능
  • 하드웨어적으로는 복잡하나 프로그래밍 하기에는 편리 -> Intel의 x86 Series 
    • x86 architecture는 32bits, x64는 64bits
    • x86는 Embedded System에, x64는 Universal Computer에 적합

 

  • ISP(In System Programming) 지원
    • PCB상의 MCU에 직접 연결하여 Flash Memory, EEPROM 등을 지우거나 Programming 하는 방법
    • AVR chipset 자체에 Flash Memory가 내장되어 있어 별도의 외부 memory 없이 프로그래밍 가능
    • SPI, UART 통신 사용
    • SPI (Serial Peripheral Interface) : I2C, CAN, UART와 같은 시리얼 통신(직렬 통신) 방식 중 한가지로, MCU, Shift Register, SD카드 등의 소형 주변 장치 사이에 데이터를 전송 하는 프로토콜
    • UART (범용 비동기화 송수신기: Universal Asynchronous Receiver/Transmitter) : 병렬 데이터의 형태를 직렬 방식으로 전환하여 데이터를 전송하는 프로토콜
  • C언어에 최적화되게 끔 제작이 되어 C언어 처리를 강력하게 지원 
    • 대부분 C언어로 임베디드 개발을 하는 원인   
  • 대표적으로 ATmega128이 있다

ATmega128. 출처 : https://www.microchip.com/en-us/product/atmega128

 

  • Atmega128 : Atmel 사에서 개발한 8 bits MCU
    • 128 : Flash Memory size를 의미(128KB)
  • Logic 구성 -> Coding -> Compile -> Debug -> ISP를 통한 Program 삽입 
    • AVR Studio 사용시 SPI Channel을 통한 Downloader와 JTAG Interface를 통한 2가지 방식의 Debugger가 있다
    • JTAG(Joint Test Action Group) : 디지털 회로에서 특정 node의 digital 입출력을 위해 Serial 통신 방식으로 output data를 전송하거나 input data를 수신하는 방식을 의미

Atmega128의 Pinout

  • 각 핀들은 1bit의 data를 주변장치와 주고 받음
  • CPU는 내부적으로 8bits 단위로 data를 처리하므로 Pin을 8개씩 묶고 A~G 이름을 붙여 사용
    • G는 5개만의 Pin을 가짐
    • F는 ADC 기능을 함

 

2.2. ARM(Advanced Risc Machine) 

  • 32bits MCU로 가격이 싸고 소비 전력이 적고 내장된 주변장치가 많아 동작 속도가 빠름
    -> 임베디드 시스템에서 많이 사용
    • 32 bits : CPU가 한번에 가져올 수 있는 Data의 양
  • ARM사에서는 CPU 설계만 하고 타 제조사에 설계 내용을 IP(Intellectual Property Rights. 지적 재산권)형태로 판매
    • 각 반도체 회사에서 이 설계를 토대로 만들고 필요한 I/O 기능과 주변 장치들을 추가해서 MCU로 만들어 판매
    • 반도체 회사중에 하나가 STM : 강의에서 사용하는 Chip의 회사
    • 요즘은 Atmel에서도 ARM Core를 써서 생산함
  • ARM은 8bit MCU부터 DSP 시장까지 점령 
    • DSP(Digital Signal Processor. 디지털 신호 처리 장치) : 디지털 신호 처리를 위해 특별히 제작된 MPU
    • 특히 실시간 운영 체제 계산에 사용된다.
    • MCU : CPU + Memory + I/O 장치들의 집합
    • DSP : MCU의 역할 중 하나에 특화된 장치 (ADC 동작)
    • DSP 기능을 사용하기 위해 MCU를 선택

Arm® Cortex®-M Core 출처 : https://www.st.com/content/st_com/en/arm-32-bit-microcontrollers.html



2.2.1. ARM Core의 종류

  • A, R, M으로 시리즈가 나뉨 
    • A(Application) : 고성능. AP(Application Processor)에 사용
    • R : 고성능 실시간 처리 목표
    • M(Microprocessor 0), L : 저가형. AVR이 이 시리즈보다도 간단함
  • Cortex - M3 (32 bits) MPU : 산업 현장에서 자주 사용하는 대표적인 제품
    • 강의에서 사용하는 제품
    • STM32F103C8T6 / STM32F103VET6 의 2가지 제품군이 있다

 

강의에 활용하는 Board. 출처 : https://vctec.co.kr/product/stm32f103c8t6-%EA%B0%9C%EB%B0%9C%EB%B3%B4%EB%93%9C-stm32f103c8t6-board/20912/

 

  • 2005년 Open Flatform (리눅스, 안드로이드, 오락기, 네트워크 장비 등) : Cortex-A
    • 고성능에 초점
  • 2009년 초 저가형 : Cortex - M0 (8 bits)
  • 2010년 부동소수점 연산장치 내장 : Cortex - M4 (32 bits)
  • 2012년 초저전력형 : Cortex - M0+ 시리즈
  • 핸드폰등에서 실시간 처리, 성능 좋음 : Cortex - M7 (32 bits)
    • 숫자가 높을 수록 성능이 좋다

 

  • 반도체 생산 회사들 : STM, Atmel, NXP, TI 등

 

3. AVR vs ARM

1) Architecture

  • AVR : Modified Harvard Architecture
    • Pure Harvard Architecture처럼 Program Instruction과 Data를 구분하여 Memory에 저장하기는 하나
      특정 명령어를 통해 Program Memory를 Data Memory처럼 접근할 수 있음
    • 즉 Program Instruction과 Data의 접근 방식에서 차이를 가짐
  • ARM : Pure Harvard Architecture
    • Pure Harvard Architecture는 program instruction과 data를 완전히 구분하여 각자의 memory bus가 있음
    • Instruction fetch나 data 접근 시 서로 건드리지 않음
    • Instruction fetch : Instruction이 memory에서 CPU로 넘어가는 과정
    • Modified Harvard Architecture도 program instruction과 data를 구분하여 memory에 저장하기는 하나 특정 명령어를 통해 Program memory를 data memory처럼 접근할 수 있음
    • 즉 둘은 Program Instruction과 Data의 접근 방식에서 차이를 가짐

 

2) Size

  • AVR : 8~16bits(보통 data path로 8bits 사용)
  • ARM : 8, 32, 64bits(주로 32, 64bits 사용)

 

3) Applied Area 

  • AVR : Real Time Control이나 Power Efficiency가 중요한 분야
    • Architecture나 execution이 비교적 단순하여 저전력 소모
  • ARM : 확장성을 가져 Mobile 장치부터 서버까지 다양한 분야에 활용
    • Cortex - M : 저전력. 주로 MCU에서 사용됨
    • AVR은 Cortex-M 보다도 간단함
    • Cortex - A : AP(Application Processor)에 사용

 

3.1. ARM이 대세인 이유

  1) 제조 회사가 아님

  • 라이센스를 받아서 동일하게 사용, 개발비용이 적게 들어서 가격이 싸짐
  • CPU를 설계하는데 굉장히 많은 시간과 노력이 듦. ARM사에서는 다 개발해놓고 설계도만
    비용을 받고 팜 -> 그걸 반도체 회사들이 가져다가 씀 -> 직접 CPU를 개발하는 것 보다 가격이 쌈

  2) 가격이 쌈

  • ARM이 AVR에 비해 가격이 쌈
  • 구조가 전부 Module 형식으로 구성되어있어 간단 + 위의 이유

  3) 소비 전력이 적음

  • 배터리로 구동하는 기계에서 많이 사용

  4) Chip 면적이 작음

  • 적은 트렌지스터 사용. 소형화에 유리, 발열 문제도 적음

  5) 고성능 32bit Risc processor : Cache Memory 내장, Pipeline 처리방식

  • Cache Memory : 메인 메모리와 CPU간의 데이터 속도 향상을 위한 중간 버퍼 역할을 하는, CPU 내 또는 외에 존재하는 메모리
  • 자주 쓰이는 데이터들을 미리 저장해두는 좀더 빠른 메모리. 캐시는 잠시 저장해둔다는 의미
  • Pipeline : 한 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조.
  • 여러 단계가 서로 동시에, 또는 병렬적으로 수행될 수 있어 효율성을 향상시킬 수 있다

 

3.2. STM사 제품 보는 방법

Ex) STM32F103C8T6

  • STM32 (Device Family) : ARM - based 32bit MCU. 그냥 네이밍
  • F (Product Type) : General Purpose.
    • 저전력은 L1, 범용은 F1, 고성능은 F2
  • 103 (Device Subfamily) : Performance Line
  • C (Pin count) : 물리적인 Pin의 갯수. 48/49 pins. 
    •  R : 64 pins, V : 100 pins, Z : 144 pins. pin의 수가 많으면 GPIO 등의 기능이 더 많아짐
  • 8 (Flash Memory Size) : 65KB
    • C : 256KB, D : 384KB, E : 512KB
  • T (Package. 칩의 모양) : LQFP Package라는 뜻
    •  H : BGA, Y = WLCSP64
    •  LQFP(Low-profile Quad Flat Package) : 부품의 핀이 4면으로 돌출된 표면 실장 IC 패키지 형태

LQFP의 예시 : STM32F40xxx

 

  • 6 (Temperature Range) : -40 ~ +85°C
    • 7 : -40 ~ +105°C
  • Cortex - M3 CPU

출처 : chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.st.com/resource/en/datasheet/stm32f407vg.pdf

 

  1. STM32F103RCT6xxx
    • STM32 : 위와 동일
    • F : 위와 동일
    • 103 : 위와 동일
    • R : 64 pins
    • C : 256KB
    • T : 위와 동일
    • 6 : 위와 동일
    • xxx (Options) : Programmed Parts
      • TR : Tape and Real

 

* 강의 최종 목표 : 고추 건조기 제작

  • FND Module을 제어하고 Switch를 돌려서 숫자 표현 및 온도센서 (Analog to Digital) 사용
  • 보드에서 드라이기를 다 제어할 순 없음
    • DC to AC Converter (5VDC -> 220VAC)를 드라이기에 연결하여 온도에 따른 동작 제어
  • GPIO 제어, Analog 신호 받아 해석, 온도 센서 사용, SPI, I2C 등의 각종 통신 사용

 

- 추후 강의 목표

  • 기본 전기 상식
  • Data Sheet 보는 법
  • 회로도 보는 법
  • 오실로스코프 사용법 
  • 테스터기 사용법

 

3. etc

  • BSP (Board Support Package) : Driver를 제어하는 Kernel같은 부분. OS가 특정 장치와 통신하기 위해 BSP를 이용해 data 처리
    • OS를 load하기 위한 최소한의 장치를 지원하고, HW를 동작시키기 위한 Embedded Software 묶음
    • OS 바로 밑에서 동작
  • Firmware : 칩 내부에서 동작하는 매우 작은 Software
    • 특정 Device에서 동작

 

 

 

 

 

 


위 내용의 모든 출처는 유튜버 '[오제이 튜브]OJ Tube' 님께 있습니다.

 

https://www.youtube.com/watch?v=a8cXa2AhrYI 

 

참고 자료 : 

https://m.blog.naver.com/mincoding/221753880584

 

ARM Core에 대해서 (Cortex란)

ARM(Advanced RISC Machines) 프로세서의 시장 역사 1. 8051계열, AVR과 PIC 마이크로프로...

blog.naver.com

 

https://youngseong.tistory.com/220

 

About AVR, ARM Processor, and Protocol

1. AVR (Advanced Virtual Risc)Atmel 사에서 개발한 칩으로, ARM Core 시대 이전에 주로 사용되던 칩ROM, ERPOM, EEPROM (CPU 동작 시 필요한 보조기억장치)를 사용하지 않은 단일 칩Flash Memory를 사용한 최초의 MCUHar

youngseong.tistory.com

 

728x90
반응형