I. CPU 기초 이론
1. CPU 일반
1.1. CPU의 구조 및 동작
1.1.1. CPU의 구조 및 기능
1.1.2. CPU의 동작 단계
1.2. 명령어 구조와 실행 파일
1.2.1. 명령어 구조로 보는 RISC/CISC CPU 구조
1.2.2. CPU의 동작과 실행 바이너리 파일
1.3. CPU동작을 위한 주변 하드웨어
1.3.1 전원 (Power을 위한 레귤레이터
1.3.2. 클럭 (Clock
1.3.3. 메모리 (Memory
1.3.4. CPU 버스 구조
1.3.5. 리셋(Reset
1.4. 리셋 후 펌웨어 부팅 과정
1.4.1. 리셋 벡터
1.4.2. Reset_Handle
1.5. 인터럽트
1.5.1. 인터럽트의 동작
2. MCU(Micro Controller Unit
2.1. GPIO
2.1.1. 부가 기능 (Alternate Function
2.1.2. GPIO 내부 회로
2.2. 직렬 통신 이론 일반
2.2.1. 7 계층(Layer
2.2.2. 프로토콜(Protocol
2.2.3. 직렬 (Serial 통신 방식의 구분
2.2.4. 통신 신호의 SNR(Signal to Noise Ratio 강화
2.2.5. 통신 오류 검출 방법
2.3. 직렬 통신
2.3.1. UART (Universal Asynchronous Receiver & Transmitter
2.3.2. I2C
2.3.3. SPI (Seri2.3.3. SPI (Serial Peripheral Interface
2.4. ADC와 DAC&PWM
2.4.1. ADC(Analog To Digital Converter
2.4.2. DAC (Digital to Analog Converter
2.4.3. PWM(Pulse Width Modulation
2.5. MCU 선택의 고려사항
II. 시스템 개발 프로세스
III. 펌웨어 개발 규칙
1. 펌웨어의 설계 및 구현 규칙
1.1. 펌웨어의 설계
1.1.1. H
책 속에서
C 언어, 어셈블리어 등의 프로그래밍 언어를 이용하여 원하는 동작을 구현(코딩, 프로그래밍한 텍스트 파일(코드 파일을 컴파일하여 얻어지는 CPU가 해독할 수 있는 이진 기계어 명령의 집합을 펌웨어(Firmware라 한다. 이 펌웨어를 메모리에 저장하면 CPU는 메모리에서 기계어 명령을 읽어 해석하고 실행한다. 이런 일련의 과정을 이해하기 위하여 CPU가 전원이 들어온 후 펌웨어를 동작시키는 과정에 대해 살펴보도록 할 것이다.
--- p.1
전기/전자 시스템에는 EMI/EMC 와 전기안전 규격이 있어 그에 맞는 회로 설계 및 PCB 설계를 통하여 하드웨어의 안전성을 확보해야 하는 규칙이 있다. 마찬가지로, 펌웨어 측면에도 안전성은 매우 중요한 항목으로, 안전한 펌웨어는 어떠한 경우라도 오동작을 하지 않는 펌웨어를 의미한다. ESD, EOS 등의 전기적 충격에 의한 레지스터, 메모리의 값의 손상이 제품의 동작의 정지로 이어진다면 오히려 안전하다 할 수 있겠지만, 펌웨어의 오동작, 예를 들면 모터를 멈춰야 하는 시점에 하드웨어 메모리의 손상으로 플래그가 모터를 돌려야 하는 조건에 들어온다면 안전에 문제가 된다. 특히, 화재 및 감전, 인체 손상과 같은 심각한 결과를 유발할 수 있는 가전기기에서의 안전한 펌웨어의 구현은 매우 중요하다 할 수 있다.
소프트웨어 안전 측면에도 국제규격의 안전성(Safety을 시험하는 항목이 있는데, 가정용 및 이와 유사한 자동제어 장치에 대한 시험 규격인 IEC 60730-1 이 좋은 예이며, 여기에는 노이즈 또는 전기 충격, 환경 변화 등에 의해 발생할 수 있는 하드웨어 손상에 의한 펌웨어 오동작에 대한 시험 항목들이 있다. 이 시험 항목에 대해 간단하게 살펴보면, CPU 의 PC 레지스터 및 기본 레지스터의 훼손에 의한 오동작, 잘못된 인터럽트에 대한 오동작, 비트 단위의 메모리 훼손 시 메모리에 의한 오동작, 통신 데이터 훼손에 의한 오동작, 디지털 IO/ADC/DAC 입력 오류로 인한 오동작 등이 있을