임베디드기사: 두 판 사이의 차이
보이기
잔글편집 요약 없음 |
편집 요약 없음 |
||
| (다른 사용자 한 명의 중간 판 47개는 보이지 않습니다) | |||
| 1번째 줄: | 1번째 줄: | ||
'''임베디드기사'''는 2011.11.23 발표된 고용노동부령 제35호에 따라 2013년부터 자격시험을 진행 중인 한국산업인력공단에서 인증하는 [[임베디드 시스템]] 관련 국가기술자격증이다. | '''임베디드기사'''는 2011.11.23 발표된 고용노동부령 제35호에 따라 2013년부터 자격시험을 진행 중인 한국산업인력공단에서 인증하는 [[임베디드 시스템]] 관련 국가기술자격증이다. | ||
| 13번째 줄: | 11번째 줄: | ||
** 조합논리회로와 순차논리회로 | ** 조합논리회로와 순차논리회로 | ||
** [[불 대수]] | ** [[불 대수]] | ||
*** [[카르노 맵]] | *** [[카르노 맵]] | ||
** [[플래시 메모리]], [[RAM]], [[ROM]] | ** [[플래시 메모리]], [[RAM]], [[ROM]] 등의 메모리 반도체 | ||
** [[Verilog]]와 [[VHDL]] 등의 | ** [[Verilog]]와 [[VHDL]] 등의 HDL과 [[FPGA]] | ||
* 컴퓨터 구조와 [[마이크로프로세서]] | * 컴퓨터 구조와 [[마이크로프로세서]] | ||
** [[CPU]] | ** [[CPU]]: 고성능 지향 CPU는 MPU라고 부르기도 한다. | ||
*** [[CISC]] vs [[RISC]] | *** [[CISC]] vs [[RISC]] | ||
**** [[ARM]] | **** [[ARM]] | ||
*** [[파이프라인(CPU)|파이프라인]]과 데이터 의존성 | **** [[x86]] | ||
*** [[파이프라인 (CPU)|파이프라인]]과 데이터 의존성 | |||
** SoC(System On Chip): 단일한 칩에 마이크로컨트롤러(MCU)와 기타 제어용 칩을 모두 통합한 것 | |||
** 메모리 계층 구조 | ** 메모리 계층 구조 | ||
*** [[캐시 메모리]] | *** [[캐시 메모리]] | ||
** [[집적 회로]] | |||
** 구조적 전자 회로 구분 | |||
*** RTL(Resistor-Transistor Logic): 신호 입력부에 저항을 달고, 그 뒤에 스위치 역할의 트랜지스터를 단 로직, 트랜지스터를 최소로 쓰나 저항으로 인한 전력 소모와 발열이 높고 입력 신호의 잡음 처리와 베이스 전류 억제가 잘 안 되기에 신호의 팬인의 제약이 크다(많아야 3개 입력 수용 가능). | |||
*** DTL(Diode-Transistor Logic): 저항에 다이오드까지 추가하여 정류 및 베이스 전류/잡음 억제까지 수행하는 개선된 회로. 그에 따라 수용 가능한 입력 신호(팬인)이 증가하였다. | |||
*** TTL(Transistor-Transistor Logic): RTL 및 DTL의 단점이었던 전하 이동 지연으로 인한 신호 전달 지연을 다이오드 대신 트랜지스터를 써서 접지를 위한 스위칭으로 빠르게 전하를 빼내어 신호 지연을 줄인 전자 회로. 집적 회로의 시대가 개막한 이후 현재까지도 자주 쓰인다. | |||
*** ECL(Emitter-Coupled Logic): 전압차를 증폭하는 차동 증폭기를 이용해 TTL처럼 전하를 빠르게 빼내어 신호 전달 시간을 단축한 고속 동작 회로. TTL의 대안으로 쓸 수 있으나 TTL 대비 소자 배치가 상대적으로 복잡하다. | |||
*** Open Collector, CML(또는 SCL) 등 다른 유형의 전자 회로도 있다. | |||
** [[마이크로컨트롤러]](MCU): 고성능을 지향하는 CPU(MPU라고도 한다)와 달리 저전력으로 동작하며 장치 제어를 목적으로 하는 마이크로프로세서 | |||
*** MOS 6502 | |||
*** 인텔 [[인텔 8051|8051]] | |||
*** [[AVR]] | |||
* I/O | * I/O | ||
** I/O Mapped I/ | ** 각종 디지털 신호를 전달하는 [[버스(컴퓨터)|버스]] | ||
** I/O Mapped I/O(또는 Programmed I/O)과 Memory-Mapped I/O | |||
** [[폴링(IO)]]와 [[인터럽트(IO)]] | ** [[폴링(IO)]]와 [[인터럽트(IO)]] | ||
** [[DMA]]와 I/O 프로세서 | ** [[DMA]]와 I/O 프로세서 | ||
** [[데이지 체인]] | ** [[데이지 체인]] | ||
** [[데이터시트]] | ** [[데이터시트]] | ||
** 클럭 발진기: 석영 수정 발진기나 MEMS(미세 전자기계 시스템) 발진기를 사용한다. | |||
** I/O 규격 | ** I/O 규격 | ||
*** GPIO(General-Purpose Input/Output): 목적이 정해지지 않은 프로세서 상의 물리적 핀. 3.3V의 전기 신호 입출력이라면 전부 받고 내보낼 수 있어 같은 전압의 신호를 처리하는 모든 통신 규격을 수용할 수 있다. 전압 인가만 조심하면 그 외에 정해진 사용법이 없기 때문에 회로 설계자가 IC 칩에 GPIO를 통한 신호를 보낼 때 발생할 수 있는 모든 상황에 직접 대응해야 한다(통신 절차의 설계와 발생 가능한 예외 상황을 오로지 설계자가 전부 감안해야 한다). | |||
*** [[RS232]] 시리얼 포트 | *** [[RS232]] 시리얼 포트 | ||
*** [[UART]] | *** [[UART]] | ||
| 36번째 줄: | 49번째 줄: | ||
*** [[SPI]] | *** [[SPI]] | ||
*** [[USB]] | *** [[USB]] | ||
*** LVDS: 고성능 ADC/FPGA와 DSP 인터페이스를 위해 2001년 발표된 통신 규격. 직렬 레인 개념을 사용하며 송신기로 1.20V 3.5mA 전류를 보내면 도선 하나당 수신기에 350mW의 전력으로 신호가 보내지는 구조다. 이 때 전위가 반전 관계인 두 개의 도선에 신호를 동시에 보내며 전위차 변화를 비교하여 디지털 데이터를 구분하기에 100옴의 저항을 두 도선 사이에 연결한다. | |||
*** JESD204: JEDEC<ref>보통 DDR SDRAM이나 HBM 같이 RAM의 데이터 통신 규격을 정하는 것으로도 대중에게 알려져 있지만 정확히는 IC 칩 간 통신 규격을 정하는 단체다.</ref>에서 발표한 ADC - 디지털 프로세서 간의 통신 규격이다. 단일 또는 다중 레인 간 차동 신호 쌍에 대한 동기화 기능 등을 지원하며 최대 32Gb/s의 데이터 통신 속도를 지원한다. | |||
** 신호처리 | ** 신호처리 | ||
*** Analog to Digital Converter(ADC)와 Digital to Analog Converter(DAC) | *** Analog to Digital Converter([[ADC]])와 Digital to Analog Converter([[DAC]]) | ||
** 네트워크 통신 규격 | |||
*** [[이더넷]] | |||
*** [[Wi-Fi]] | |||
=== 임베디드 펌웨어 과목 === | === 임베디드 펌웨어 과목 === | ||
[[리눅스]] 채용 시스템을 주 기준으로 본다. | |||
* [[펌웨어]] | * [[펌웨어]] | ||
** [[JTAG]] | ** [[JTAG]] | ||
** 스타트업 | ** [[스타트업 코드]]와 [[부트스트래핑|부팅]] 과정, [[로더(소프트웨어)|로더]] | ||
** [[램 디스크]] | ** [[램 디스크]]: 리눅스에서는 dd 명령어로 커널 이미지 등을 통째로 램 디스크에 복사한다. 또 리눅스 부팅 과정에서 initrd라는 램 디스크가 만들어진다. | ||
* 디바이스 [[ | ** Busybox: 정말 핵심적인 유닉스 유틸리티 기능만 담아둔 임베디드 리눅스용 단일 파일 유틸리티 프로그램. 유사 프로그램 패키지로 GNU 코어 유틸리티, Toybox, util-linux 등이 있다. | ||
** 커널 모듈 프로그래밍 | * 디바이스 [[드라이버 소프트웨어|드라이버]] : 리눅스의 경우 파일 기반 문자 드라이버, 파일 시스템 기반 블록 드라이버, 네트워크 드라이버를 가진다. 리눅스의 드라이버 소프트웨어 제작은 [[리눅스/리눅스 시스템 프로그래밍#리눅스 디바이스 드라이버 개발 과정|여기]]에 적혀 있다. | ||
** 커널 모듈 프로그래밍: SELinux(리눅스의 오픈 소스 보안 모듈, 방화벽 등의 기능을 제공한다) 등 커널에 부착할 모듈을 프로그래밍할 수 있다. | |||
** [[API(운영 체제)]] | ** [[API(운영 체제)]] | ||
* [[리눅스]] 커널 | ** [[로더(소프트웨어)|로더]] | ||
* [[리눅스]] 커널(저수준 시스템제어 파트) | |||
** [[ELF]] 파일 포맷 | ** [[ELF]] 파일 포맷 | ||
** [[NFS]]을 사용한 원격 파일 관리 | |||
* 전원 관리 | |||
** [[고급 전원 관리|APM]] 전원 관리 규격 | |||
=== 임베디드 플랫폼 과목 === | === 임베디드 플랫폼 과목 === | ||
* [[운영체제]] | * [[운영체제]]: 리눅스 고수준 시스템 제어 기능을 다룬다. | ||
** [[프로세스 스케줄링]] | ** [[프로세스 스케줄링]] | ||
*** 프로세스와 스레드 | *** 프로세스와 스레드 | ||
*** 선점형 멀티태스킹과 비선점형 멀티태스킹 | *** 선점형 멀티태스킹과 비선점형 멀티태스킹 | ||
** [[세마포어]], 모니터, 배리어, 교착 상태(데드락) | ** [[세마포어]], 모니터, 배리어, 교착 상태(데드락) | ||
** [[가상 메모리]] | ** [[가상 메모리]](페이징, 메모리 스왑) | ||
** InterProcess Communication: 공유 메모리와 메세지 큐 | ** InterProcess Communication: 공유 메모리와 메세지 큐 | ||
** [[파일 시스템]] | ** [[파일 시스템]] | ||
*** [[FAT]] | *** [[FAT]] | ||
*** [[EXT(파일 시스템)|EXT]] | *** [[EXT(파일 시스템)|EXT]] | ||
*** [[ | *** Btrfs(B-Tree File System): EXT의 정적 inode 구조가 낡았다 판단하여 B-[[자료구조#트리|트리]] 자료구조를 사용해 만든 리눅스용 파일 시스템. 데이터 복구가 용이하도록 스냅샷 기능이 지원되나 트리 자료구조의 특성 상 스냅샷을 만드는 데에 성능을 많이 잡아먹는 편이라 데이터베이스/하이퍼스케일 서버의 리눅스 시스템에 적합한 편이다. | ||
*** [[RAID]], [[LVM]] | *** JFFS2: 플래시 메모리를 채용한 임베디드 리눅스용 파일 시스템. 저널링이 지원된다. | ||
*** DevFS, VFS, JFS: 각각 장치 관리용 파일 시스템, 가상화된 입출력을 위한 파일 시스템, 저널링 파일 시스템을 가리킨다. | |||
*** [[RAID]], [[LVM]]: 여러 개의 보조 기억 장치를 묶어서 파일 시스템을 구성할 때 사용, RAID로 묶고 LVM으로 파일 시스템을 설정한다. | |||
** 시스템 콜 | ** 시스템 콜 | ||
* [[컴퓨터 네트워크]] 이론 | * [[컴퓨터 네트워크]] 이론 | ||
| 68번째 줄: | 94번째 줄: | ||
** [[OSI 7계층]] 구조 | ** [[OSI 7계층]] 구조 | ||
** [[클라이언트(컴퓨터 네트워크)]]와 [[서버(컴퓨터 네트워크)]] | ** [[클라이언트(컴퓨터 네트워크)]]와 [[서버(컴퓨터 네트워크)]] | ||
** [[DHCP]], [[ARP]] | |||
** [[TCP]], [[UDP]] | ** [[TCP]], [[UDP]] | ||
** [[IP]] | ** [[IP]] | ||
* 임베디드 플랫폼 개발 | * 임베디드 플랫폼 개발 | ||
** 크로스 [[ | ** 크로스 [[컴파일러]] | ||
** [[통합 개발 환경]] | ** [[통합 개발 환경]] | ||
=== 임베디드 소프트웨어 과목 === | === 임베디드 소프트웨어 과목 === | ||
* [[자료구조]]와 [[알고리즘]] | * [[자료구조]]와 [[알고리즘]] | ||
** | ** 배열, 스택, 큐, 트리, 연결 리스트(링크드 리스트)와 [[그래프 (이산수학)|그래프]] 이론 | ||
* [[C언어|C]]와 [[C++]] 프로그래밍 언어 : C99와 C++11이 주로 쓰인다. | * [[C언어|C]]와 [[C++]] 프로그래밍 언어 : C99와 C++11이 주로 쓰인다. | ||
* [[JAVA]] 프로그래밍 언어와 [[객체 지향 프로그래밍]] | * [[JAVA]] 프로그래밍 언어와 [[객체 지향 프로그래밍]] | ||
* 영상처리 | * 영상처리 | ||
** 이미지 포맷, 동영상 포맷, 음성 데이터 포맷 | ** 이미지 포맷, 동영상 포맷, 음성 데이터 포맷 | ||
* 프로그램 개발 프로세스 | * 프로그램 개발 프로세스([[소프트웨어공학]]) | ||
** [[UML]] | ** [[UML]] | ||
* 시스템 장애 대응 | * 시스템 장애 대응 | ||
[[분류:국가기술자격]] | |||
2024년 12월 18일 (수) 23:20 기준 최신판
임베디드기사는 2011.11.23 발표된 고용노동부령 제35호에 따라 2013년부터 자격시험을 진행 중인 한국산업인력공단에서 인증하는 임베디드 시스템 관련 국가기술자격증이다.
매년 정기기사시험 4회차 시기(필기 9월 응시, 실기 11월 응시)에 한 번만 시행된다.
필기에서 4과목 20문제씩 각 하위 과목에서 과락 없이 평균 60점 이상, 실기에서 전부 60점을 넘겨야 자격을 취득한다.
필기 시험 하위 과목 별로 구분하였다.
- 논리 회로
- 컴퓨터 구조와 마이크로프로세서
- CPU: 고성능 지향 CPU는 MPU라고 부르기도 한다.
- SoC(System On Chip): 단일한 칩에 마이크로컨트롤러(MCU)와 기타 제어용 칩을 모두 통합한 것
- 메모리 계층 구조
- 집적 회로
- 구조적 전자 회로 구분
- RTL(Resistor-Transistor Logic): 신호 입력부에 저항을 달고, 그 뒤에 스위치 역할의 트랜지스터를 단 로직, 트랜지스터를 최소로 쓰나 저항으로 인한 전력 소모와 발열이 높고 입력 신호의 잡음 처리와 베이스 전류 억제가 잘 안 되기에 신호의 팬인의 제약이 크다(많아야 3개 입력 수용 가능).
- DTL(Diode-Transistor Logic): 저항에 다이오드까지 추가하여 정류 및 베이스 전류/잡음 억제까지 수행하는 개선된 회로. 그에 따라 수용 가능한 입력 신호(팬인)이 증가하였다.
- TTL(Transistor-Transistor Logic): RTL 및 DTL의 단점이었던 전하 이동 지연으로 인한 신호 전달 지연을 다이오드 대신 트랜지스터를 써서 접지를 위한 스위칭으로 빠르게 전하를 빼내어 신호 지연을 줄인 전자 회로. 집적 회로의 시대가 개막한 이후 현재까지도 자주 쓰인다.
- ECL(Emitter-Coupled Logic): 전압차를 증폭하는 차동 증폭기를 이용해 TTL처럼 전하를 빠르게 빼내어 신호 전달 시간을 단축한 고속 동작 회로. TTL의 대안으로 쓸 수 있으나 TTL 대비 소자 배치가 상대적으로 복잡하다.
- Open Collector, CML(또는 SCL) 등 다른 유형의 전자 회로도 있다.
- 마이크로컨트롤러(MCU): 고성능을 지향하는 CPU(MPU라고도 한다)와 달리 저전력으로 동작하며 장치 제어를 목적으로 하는 마이크로프로세서
- I/O
- 각종 디지털 신호를 전달하는 버스
- I/O Mapped I/O(또는 Programmed I/O)과 Memory-Mapped I/O
- 폴링(IO)와 인터럽트(IO)
- DMA와 I/O 프로세서
- 데이지 체인
- 데이터시트
- 클럭 발진기: 석영 수정 발진기나 MEMS(미세 전자기계 시스템) 발진기를 사용한다.
- I/O 규격
- GPIO(General-Purpose Input/Output): 목적이 정해지지 않은 프로세서 상의 물리적 핀. 3.3V의 전기 신호 입출력이라면 전부 받고 내보낼 수 있어 같은 전압의 신호를 처리하는 모든 통신 규격을 수용할 수 있다. 전압 인가만 조심하면 그 외에 정해진 사용법이 없기 때문에 회로 설계자가 IC 칩에 GPIO를 통한 신호를 보낼 때 발생할 수 있는 모든 상황에 직접 대응해야 한다(통신 절차의 설계와 발생 가능한 예외 상황을 오로지 설계자가 전부 감안해야 한다).
- RS232 시리얼 포트
- UART
- I2C
- SPI
- USB
- LVDS: 고성능 ADC/FPGA와 DSP 인터페이스를 위해 2001년 발표된 통신 규격. 직렬 레인 개념을 사용하며 송신기로 1.20V 3.5mA 전류를 보내면 도선 하나당 수신기에 350mW의 전력으로 신호가 보내지는 구조다. 이 때 전위가 반전 관계인 두 개의 도선에 신호를 동시에 보내며 전위차 변화를 비교하여 디지털 데이터를 구분하기에 100옴의 저항을 두 도선 사이에 연결한다.
- JESD204: JEDEC[1]에서 발표한 ADC - 디지털 프로세서 간의 통신 규격이다. 단일 또는 다중 레인 간 차동 신호 쌍에 대한 동기화 기능 등을 지원하며 최대 32Gb/s의 데이터 통신 속도를 지원한다.
- 신호처리
- 네트워크 통신 규격
리눅스 채용 시스템을 주 기준으로 본다.
- 펌웨어
- 디바이스 드라이버 : 리눅스의 경우 파일 기반 문자 드라이버, 파일 시스템 기반 블록 드라이버, 네트워크 드라이버를 가진다. 리눅스의 드라이버 소프트웨어 제작은 여기에 적혀 있다.
- 커널 모듈 프로그래밍: SELinux(리눅스의 오픈 소스 보안 모듈, 방화벽 등의 기능을 제공한다) 등 커널에 부착할 모듈을 프로그래밍할 수 있다.
- API(운영 체제)
- 로더
- 리눅스 커널(저수준 시스템제어 파트)
- 전원 관리
- APM 전원 관리 규격
- 운영체제: 리눅스 고수준 시스템 제어 기능을 다룬다.
- 프로세스 스케줄링
- 프로세스와 스레드
- 선점형 멀티태스킹과 비선점형 멀티태스킹
- 세마포어, 모니터, 배리어, 교착 상태(데드락)
- 가상 메모리(페이징, 메모리 스왑)
- InterProcess Communication: 공유 메모리와 메세지 큐
- 파일 시스템
- FAT
- EXT
- Btrfs(B-Tree File System): EXT의 정적 inode 구조가 낡았다 판단하여 B-트리 자료구조를 사용해 만든 리눅스용 파일 시스템. 데이터 복구가 용이하도록 스냅샷 기능이 지원되나 트리 자료구조의 특성 상 스냅샷을 만드는 데에 성능을 많이 잡아먹는 편이라 데이터베이스/하이퍼스케일 서버의 리눅스 시스템에 적합한 편이다.
- JFFS2: 플래시 메모리를 채용한 임베디드 리눅스용 파일 시스템. 저널링이 지원된다.
- DevFS, VFS, JFS: 각각 장치 관리용 파일 시스템, 가상화된 입출력을 위한 파일 시스템, 저널링 파일 시스템을 가리킨다.
- RAID, LVM: 여러 개의 보조 기억 장치를 묶어서 파일 시스템을 구성할 때 사용, RAID로 묶고 LVM으로 파일 시스템을 설정한다.
- 시스템 콜
- 프로세스 스케줄링
- 컴퓨터 네트워크 이론
- POSIX 소켓 구조
- OSI 7계층 구조
- 클라이언트(컴퓨터 네트워크)와 서버(컴퓨터 네트워크)
- DHCP, ARP
- TCP, UDP
- IP
- 임베디드 플랫폼 개발
- 자료구조와 알고리즘
- 배열, 스택, 큐, 트리, 연결 리스트(링크드 리스트)와 그래프 이론
- C와 C++ 프로그래밍 언어 : C99와 C++11이 주로 쓰인다.
- JAVA 프로그래밍 언어와 객체 지향 프로그래밍
- 영상처리
- 이미지 포맷, 동영상 포맷, 음성 데이터 포맷
- 프로그램 개발 프로세스(소프트웨어공학)
- 시스템 장애 대응
- ↑ 보통 DDR SDRAM이나 HBM 같이 RAM의 데이터 통신 규격을 정하는 것으로도 대중에게 알려져 있지만 정확히는 IC 칩 간 통신 규격을 정하는 단체다.