모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    구차니님의
    개인페이지입니다
    가입 : 11-10-25
    방문 : 2745회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_12395
    작성자 : 구차니
    추천 : 2
    조회수 : 2448
    IP : 210.95.***.36
    댓글 : 27개
    등록시간 : 2015/07/28 10:39:33
    http://todayhumor.com/?programmer_12395 모바일
    임베디드란 무엇인가 ? - 2
    음.. 오늘은 임베디드의 구조에 대해서 적어 볼까 합니다.

    임베디드는 앞에 말했듯이. 매우 광범위한 분야의 기술/제품을 의미합니다.
    자동 판매기 역시 임베디드가 될 수 있고,
    지하철 개표기 도 임베디드라 할 수 있죠
    그리고 편의점의 바코드 리더기도 임베디드라 할 수 있고
    밥솥, 냉장고, 세탁기, 로봇 청소기, 인터폰, 핸드폰 모두 임베디드라 할 수 있습니다.

    이렇듯 임베디드는 형태가 다양하기에 단순화 하긴 어려우나 그럼에도 불구하고 구조를 정리하자면


    프로세서(Processor)
    말그대로 데이터를 처리하는 녀석입니다.
    임베디드의 일반적인 요구사항은 저전력, 실시간성입니다.
    물론 저전력이기에 배터리로 작동하는 녀석들도 있기도 하고, AC 전원을 연결해서 작동하는 경우도 있겠지만
    우리가 사용하는 intel / AMD x86 혹은 x64에 비하면 정말 이슬 먹고 사는 정도의 전원을 소비합니다.
    하지만 특화된 기능을 위해서 만들어진 시스템이기 때문에 누르면 빠릿빠릿하게 작동해야 하며 제한적이거나 완전한 실시간성을 요구하게 됩니다.
    그리고 임베디드 장비는 가격보다는 수량으로 승부하는 경우도 많기 때문에(예를 들어 센서 네트워크 장비.. 그냥 살포하는 수준으로..)
    개별 비용이 높을수가 없고 그렇기에 프로세서도 요구사항에 맞춰 최소한의 성능을 보장하는 저가의 CPU를 사용하게 됩니다.
    그렇기에 intel cpu 같은 부르주아의 제품을 쓰는 경우는 극히 드물며
    ARM사의 ARM 계열 CPU나 intel의 8015 계열 저는 다뤄보진 않았지만 Zilog의 Z80 계열 ATMEL 사의 AVR 계열을 사용하게 됩니다.
    저가 임베디드의 경우 AVR에서 cortex-m3 계열의 ARM 으로 전환하는 추세이고(가격이라던가 성능으로)
    이러한 프로세서들은 원칩솔루션으로 CPU 안에 RAM과 FLASH가 내장되어 하나의 칩으로 모든 기능을 구현하기도 합니다.
    - 이전 글의 댓글이나 CPU 종류 관련 용어 정리 를 참고 하시면 다른분들의 댓글에 보석같은 내용들이 있습니다.


    범용 입출력 포트(GPIO - General Purpose Input Output)
    임베디드의 꽃이라고 해야하려나.. 핵심이라고 해야하려나..
    일반 x86 계열의 cpu 들은 gpio가 제한되거나 없습니다. 외부와의 데이터를 주고 받는데 있어서 저속의 통신 채널 보다는
    고속의 전용장비(rs-232 시리얼, 패러럴 포트, SCSI, IDE, SATA, Fast Ethernet, GbE ...) 등을 통해 통신을 해서 처리해야지
    cpu가 핀 하나 가지고 벌벌 떨면서 다른 작업 못하면 아까울 테니까요.
    그리고 표준 규격화된 통신 채널을 가지고 있기 때문에 비표준이고 장비마다 다 다른 통신방법을 지원할 이유가 없습니다.
    하지만 임베디드는 장비에 특화되거나 특정한 프로토콜을 이용해야 하기 때문여 사용양이 많지 않은 통신 하드웨어를 제공해주지 못하기 때문에
    cpu 소비를 많이 하더라도 GPIO를 통해 직접 통신을 구현해야 할 수 밖에 없는 상황입니다.
    일반적으로 while() 루프를 통해 핀의 데이터를 읽거나 interrupt 방식으로 rising edge나 falling edge를 탐지하여 값의 변화를 탐지하여 작동하며
    탐지 이후에는 ISR(Interrupt Service Routine)을 통해 cpu가 직접 데이터를 처리하게 됩니다.
    PC에서 랜카드를 통해 통신 할때, CPU는 랜 카드로 데이터만 전달해주고 전송에 대한 모든 처리는 LAN에서 하는 것과는 대조적이며
    이런 과정에서 CPU를 많이 소모하게 되기에 LAN 이라는 하드웨어 통신 장치를 만들게 됩니다.

    아무튼, 이런 GPIO가 있기에 편리하게 LED를 on/off 하거나
    비표준의 장치들 그리고 PC에는 연결하기 힘든 수 많은 센서/반도체들을 자유자재로 연결 할 수 있습니다.


    메인 메모리(RAM / Main Memory)
    메모리는 컴퓨터가 작업을 하기 위한 공간으로 넓으면 넓을 수록 좋습니다.
    하지만 임베디드 시스템에서는 OS가 존재하지 않거나, 간소화된 OS 혹은 RTOS를 통해 작동하게 되어
    malloc등을 쓰지 않거나 쓸 수 없는 시스템으로 구성됩니다. 동적(dynamic)이라는 의미는 예측할 수 없으며
    디버깅이 힘든 문제를 발생하므로 정적인 시스템으로 구성하여 성능과 안정성을 끌어 올리기도 합니다.
    그리고 기본적으로 프로세서 내에 내장된 메모리는 SRAM으로 외부에 장착되는 DRAM보다 작동 속도가 빠르기에
    신뢰성이 있으며 납득가능한 속도의 (빠른) 저가형 시스템을 구축하는데 도움을 줍니다.
    물론 사용하는 용도에 따라 칩에 외부 메모리를 달 수 있는 옵션을 제공하는 경우도 있습니다.


    스토리지(Storage)
    우리가 사용하는 SD 메모리 HDD와 같이 OS나 프로그램을 담는 공간을 스토리지라고 합니다.
    PC에서는 HDD나 SSD등을 이용하여 부팅을 하지만 HDD나 SSD는 단가 및 부피 면에서 문제가 있기에
    제품에 칩 형태로 NAND FLASH 메모리를 장착하여 부팅을 하게 됩니다. EVK 레벨에서는 SD 카드를 통해 부팅을 진행하기도 하지만
    일반적으로 wear leveling이나 SD 메모리 단자의 신뢰성의 문제로 제품화 하는 경우는 많지 않습니다.


    인터페이스(interface)
    인터페이스는 다른 장치나 같은 프로세서 끼리 통신을 위한 통신 수단이며
    SoC(System on Chip)의 사양에 따라 UART 시리얼 포트가 3개 이상 장착되기도 하며
    고가의 ARM 칩에서는 SATA나 PCI-Ex 포트 등도 장착이 가능합니다.
    단, 임베디드 시스템은 주변 기기보다는 보드내 다른 칩들과 통신을 많이 하게 되므로
    I2C(TWI), SPI, CAN, UART 그리고 끝판왕 GPIO를 다수 장착하게 됩니다.


    특화된 하드웨어 가속장비
    적용 분야에 따라 다르지만 영상의 경우(DVR,블랙박스, CCTV, 핸드폰...) ARM CPU와 같은 임베디드 프로세서 만의 성능으로는
    재생이 불가능 합니다. 과거 486 시절만 해도 160x120 사이즈의 동영상도 힘들어 했으며,
    H.264의 경우 펜4 급에서도 돌리기 힘들 정도의 성능입니다. 하지만 하드웨어 디코더를 프로세서에 내장함으로서
    저전력의 시스템에서 충분한 성능의 비디오 디코딩/인코딩 성능을 보여주며
    이로 인해, PC에서는 동영상이 끊어지는데 핸드폰은 잘보여! 라는 사태가 발생하기도 합니다.
    이런 특화된 장비들은 SoC 개념으로 프로세서 내에 내장되며, 옵션에 따라서 지원가능한 사양들이 변경 됩니다.


    운영체제(Operating System - OS)
    저가의 소형 임베디드는 OS 없이 main() 함수 내의 while()을 통해 무한반복되는 프로그램으로 구성되며
    약간 규모가 있는 임베디드는 ucos와 같은 OS나 RTOS 그리고 embedded linux를 탑재합니다.
    규모가 더 커지면 embedded windows나 winCE 등을 탑재합니다만, 
    라이센스/비용 문제로 인해 키오스크와 같은 GUI가 중요한 시스템이 아니라면 대개는 임베디드 리눅스를 탑재하게 됩니다.





    임베디드란 무엇인가


    프로그래밍 언어란

    개발의 길로 들어서려는 분들을 위한 오늘의 조언

    이 게시물을 추천한 분들의 목록입니다.
    [1] 2015/07/28 11:39:23  143.248.***.90  fork()  589159
    [2] 2015/07/28 18:07:09  125.180.***.177  나이쓰한넘  458806
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    1516
    와 불금이다!!!.bbul.txt [5] 구차니 15/08/14 17:51 37 1
    1515
    여가부가 일을 하네?! (사진 무) [9] 구차니 15/08/14 15:19 62 0
    1514
    nvidia news letter [1] 구차니 15/08/14 08:53 41 0
    1513
    뻘글 // 호호호호혹시... 라즈베리 [29] 구차니 15/08/06 14:58 46 0
    1512
    컴퓨터, 프로그램을 좋아해서 이 길을 걷는건 말이죠... (뻘글) [8] 구차니 15/08/06 14:09 81 1
    1511
    값만 있는 녀석 그래프 수식으로 어떻게 추정하나요? ㅠㅠ [10] 본인삭제금지 구차니 15/08/06 11:25 44 0
    1510
    저격주의 / 허허허 결국은 글삭튀 -_- [15] 구차니 15/08/06 10:09 80 1
    1509
    용산 휴가 언제까지에요? [2] 구차니 15/08/05 15:14 57 0
    1508
    Win10 및 엣지 브라우저 출시관련 이슈사항 + 관련정보 구차니 15/08/05 11:58 39 0
    1507
    오늘도 그렇지만 여전히 뻘 질문 입니다 - 지구 온도 [18] 본인삭제금지 구차니 15/08/04 14:40 62 0
    1506
    질문글 / 가로 세로 착시 [15] 본인삭제금지 구차니 15/08/04 10:40 44 1
    1505
    뻘글 / 방학은 방학인가보네요 [6] 구차니 15/08/03 13:49 62 0
    1504
    IE는 IE가 아닌가봐요 ㄷㄷㄷ [7] 구차니 15/08/03 13:42 153 1
    1503
    HTTP와 TCP/IP의 차이점? [4] 구차니 15/08/03 13:21 64 1
    1502
    으으 미스테리로 가야하나.. 과게로 가야하나... 고민글.. [6] 본인삭제금지 구차니 15/08/03 10:54 57 0
    1501
    연재 / 임베디드란 무엇인가 ? - 4 [6] 구차니 15/08/03 10:42 42 1
    1500
    아빠 입장에서 애낳고 기르면서 불만은.. [12] 구차니 15/07/31 08:47 129 4
    1499
    Designing with Freescale 대구 세미나 구차니 15/07/31 08:24 44 0
    1498
    gcc precompiled header 테스트 결과 구차니 15/07/30 10:13 35 0
    1497
    만약에 블랙홀에 사람이 서 있을 수 있다면 [18] 본인삭제금지 구차니 15/07/30 09:13 97 1
    1496
    연재 / 임베디드란 무엇인가 ? - 3 [1] 구차니 15/07/29 16:09 52 2
    1495
    "100년만에 종이통장 없앤다"..2017년 발급중단 [9] 구차니 15/07/29 15:34 218 6
    1494
    고민 / 음.. 임베디드에 대해서 머가 궁금하세요? [11] 구차니 15/07/29 13:28 58 0
    1493
    뻘팁 / 빌드를 LTE로 / make -j [17] 구차니 15/07/29 09:43 56 1
    1492
    가장 오래 빌드 해보신게 몇 시간인가요? [16] 구차니 15/07/29 09:03 82 0
    1491
    질문글 / 개발자 분들의 취미는 무엇인가요? [49] 구차니 15/07/28 16:44 80 2
    1490
    우분투를 8.04 부터 섰는데 (뻘글) [9] 구차니 15/07/28 12:40 44 1
    임베디드란 무엇인가 ? - 2 [27] 구차니 15/07/28 10:39 54 2
    1488
    뻘글/ 세상에서 가장 어려운 언어 [4] 구차니 15/07/27 15:27 89 2
    1487
    이실직고.. 전 사실 자바가 어려웠어요 ㅜㅜ [12] 구차니 15/07/27 11:42 86 0
    [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [다음10개▶]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈