eMMC(Embedded Multi Media Card) eMMC(Embedded Multi Media Card)란 NAND Flash 메모리와 Flash 메모리 컨트롤러가 결합되어 있는 메모리 카드이며 단순 일체형 보드와는 다르다. ROM 은 비휘발성이지만 읽기만 가능하고, RAM 은 read/write가 모두 가능하지만 휘발성이라는 특징이 있다. 이 두 가지 메모리의 장점만을 살린 것이 NAND Flash 메모리이다. 이런 특성은 EEPROM(Electrically Erasable PROM)과 비슷해 보인다. EEPROM (Electrically Erasable PROM) EEPROM은 전기적인 기능을 통해 저장된 데이터를 지울 수 있는 ROM이다. 정격전압 보다 높은 고전압을 통해 데이터를 지울 수..
해시 함수(Hash Function) 해시 함수(Hash Function)란 주어진 원문에서 고정된 길이의 의사난수를 생성하는 연산기법이며, 이에 생성된 값을 '해시값'이라고 한다. 다시 말해 해시 함수는 임의의 길이의 데이터를 고정된 길이의 데이터로 변환하는 함수이다. 해시 함수에 의해 얻어지는 값을 해시 코드, 해시 값, 메시지 다이제스트 또는 해시(Hash)라고 한다. 암호화 해시 함수(cryptographic hash function)는 해시 함수의 일종으로, 해시 코드로 부터 원래의 입력값을 추정하기 어려운 성질을 가지는 경우를 의미한다. 암호화라는 의미가 암호문으로 부터 암호화하기 전의 평문을 추정하기 어렵게 만든 것이기 때문이다. 이 암호화 해시 함수에는 MD5, SHA, SHA‐1, SHA..
주요 개념 SPI(Serial Peripheral Interface) 통신 시리얼 통신 SPI(Serial Peripheral Interface) 통신이란 직역하면 직렬 주변 기기 인터페이스이다. 2C, CAN, UART와 같은 시리얼 통신(직렬 통신) 방식 중 한 가지로 마이크로컨트롤러, 시프트 레지스터 , SD카드 등의 소형 주변 장치 사이에 데이터를 전송하기 위한 기능이다. 쉽게 말해 SPI 통신은 칩(IC)과 칩 간에 데이터를 주고받기 위한 통신방법 중 한 가지이다. SPI를 이해해두면 추후 ADC 관련 IC분석이나 Phase제어 등의 IC분석을 할 때 좀 더 쉽게 접근할 수 있다고 한다. SPI 통신 방식의 특징은 1 대 다수(1:N)의 통신을 지원하는 동기식 통신 방식이라는 것이다. 다만 다수..
PWM PWM은 Pulse Width Modulation의 약자로 펄스 폭 변조를 뜻한다. 다시 말해 디지털 신호를 아날로그 신호처럼 흉내 내는 것이라고 볼 수 있다. 디지털/아날로그 신호 아날로그 신호와 디지털 신호의 특징은 아래와 같다. 아날로그 - sin과 같이 곡선으로 연속된 형태의 신호 - 다양한 값을 표현 => 연속적 디지털 - 0(Low)과 1(High)만을 이용해 데이터를 표현 - 0과 1 사이의 중간값이 존재하지 않음 => 불연속적 위와 같은 특성으로 인해 디지털 신호를 LED에 연결하면 LED가 On/Off 동작만 하게 되고, 아날로그 신호에 LED를 연결하게 되면 LED가 On/Off도 되지만 LED의 불빛 밝기도 조절이 된다. 하지만 사실상 마이크로 프로세서 등을 사용하는 컴퓨터의 ..
서버를 운용하거나 영상 처리를 수행할 때 저장공간 또는 수행 속도를 위해 이미지 크기를 변환하기도 한다. 또는 이미지 데이터를 학습 데이터로 만드는 전처리(Preprocessing) 과정이나 학습된 모델에 정해진 사이즈에 맞추기 위해서도 이미지 크기를 변환할 수 있다. 우리는 평소 이미지 파일을 켜놓고 늘렸다 줄였다 손쉽게 이미지 모서리를 드래그하여 변형을 시킬 수 있었다. 이 과정을 위해 예를 들어본다. 우선 새 옷을 구매하였다고 가정해보자. 만약 새로 산 바지가 좀 작다고 양 끝을 잡고 당겨 제멋대로 늘려버리면 이 바지의 형태가 제대로 잡혀있을까? 그렇지 않을 것이다. 또는 큰 스웨터를 세탁기에 그대로 돌려버리면 옷이 작아질 것이다. 즉, 원본 상태에서 변형이 가해졌고 이로 인해 원형의 모습을 잃게 ..
Python으로 데이터들을 재조합하고 파싱 할 때 차원을 변경해야 하는 일이 종종 생긴다. 2차원 리스트를 1차원으로 변경시키는 방법은 대표적으로 itertools라는 라이브러리를 사용하는 방식, list comprehension, 좀 독특한 방법이지만 sum을 이용한 방법이 있다. Itertoolsitertools를 이용한 방법은 두 가지가 있다. *(Asterisk)을 이용한 방법과 from_iterable 메소드를 사용하는 방법이다.우선 *(Asterisk)을 이용한 방법이다. Asterisk는 조금 생소할 수 있지만 Pythonic한 코드를 작성하도록 도와줄 수 있다. Asterisk의 사용은 아래와 같은 상황에서 사용할 수 있다.곱셈 및 거듭제곱 연산으로 사용리스트형 컨테이너 타입의 데이터를 반..