Busan IT/제어기초2015. 2. 3. 17:31


20150203 - ADC와 Lego Mindstorm.hwp


학습목표 - ADC의 원리를 이해하고 종류에 대해 안다

 

 

ADC

 

아날로그 변환을 A/D변환을 거쳐 아날로그로 바꾸는 원리이다.

 

원리<그림>:계단 모양으로 아날로그 입력 전압에 따른 디지털 출력

디지털 출력의 폭이 좁을수록 분해능이 좋다라고 표현한다.

 

카운터 램프형(추적형) AD 변환기<그림>

아날로그 입력>귀환 전압 -> x=1

 

램프형 A/D변환기<그림>

아날로그 압력전압이 높아질수록 카운트를 하기 위한 시간이 길어지는 단점이 있다.

아날로그 전력이 클럭보다 클 때 1이 발생되어 변환된다.

 

축자 근사형 A/D변환기

최상위 비트로부터 순서대로 하위 비트 쪽으로 수정하여 가는 방법으로 DAC의 출력을 훨씬 빨리 아날로그 입력 전압에 근사 시킨다.

100-110-111-110의 과정으로 최종적으로 디지털 변환출력 110을 얻는다.

비교적 변환시간이 빠르고 회로도 간단하여 현재 저가형 이면서 분해능이 비교적 높은 범용A/D Converter에 가장 널리 사용되고 있다.

변환 중에 아날로그 입력전압에

 

잡음 제거 방법

독립적인 아날로그 회로 전원 단자 AVCC 및 기준 전원 입력단자 AREF를 가지고 있음에도 불구하고 A/D컨버터는 잡음에 상당히 민감하다.

아날로그 입력 선은 최소한 짧게 잡음의 영향을 받지 않도록 AVCC는 디지털 전원 VCCLC필터로 안정화 시켜 인가

A/D변환 결과가 잡음 등에 의하여 흔들리는 경우에는 디지털 필터를 사용하거나, 여러번 A/D변환하여 읽어 들인 결과를 평균 처리하여 사용하면 좋다.

LEGO MINDSTORM

 

소프트웨어 설치 및 기본 설정

 

LEGO Mindstorm NXT 소프트웨어를 레고 홈페이지에서 다운로드 받는다.

 

 

반응형

'Busan IT > 제어기초' 카테고리의 다른 글

LEGO - Mindstorm #2  (0) 2015.02.05
LEGO - Mindstorm  (0) 2015.02.04
마이크로 컴퓨터와 ADC & DAC  (0) 2015.02.02
마이크로 컨트롤러와 프로그램  (0) 2015.01.30
전기회로와 트랜지스터/캐피시터  (0) 2015.01.29
Posted by newind2000
Busan IT/제어언어2015. 2. 3. 17:30


20150203-제어문, 수의 표현 그리고 포인터.hwp

제어문과 수의 표현 그리고 포인터

 

#1. ASCII Code 제어문

 

학습목표 - ASCII Code에서 사용되는 제어문 개념에 대해 이해한다.

 

C프로그램이 어떻게 실행파일을 만들어 내는가에 대해 지난 시간에 학습하였다.

 

C프로그램은 *.exe의 실행파일이 만들어지고, 리눅스에서는 확장자가 없이 표시된다.

 

오늘은 제어문에 대해서 배워본다.

 

* 다음 주 월요일 책 배포 예정

 

printf("%d,c,u,x,o,f)

 

c = 아스키코드를 표현한다.

 

명령어 끝에 엔터(\n)를 넣어줘야 한다. 리눅스 환경에서는 자동으로 엔터를 넣어주지 않기 때문에 리눅스 작성환경을 대비하여 엔터를 넣어주는 습관을 들인다.

 

줄 바꿈과 엔터는 다르다. 줄 바꿈은 다음 줄로 내려오는 것이고, 엔터는 줄을 바꾸고 커서도 제일 앞으로 옮겨주는 역할을 한다.

 

ASCII code(128)

 

0 - 31 (32) : 제어문자

역슬레쉬는 cl에서 해석하지 않는다. \n의 경우 단순히 n으로 해석하지 않고 엔터로 해석한다.

 

도스에서만 10번이 엔터 역할을 한다.(줄 내림, 커서 제일 앞으로 이동)

 

10번은 CR + LF

 

파일명을 bin으로 변경한 후 Visual Studio에서 실행해보면 Magic Number가 나타나고 이것은 파일의 형식을 나타내준다. ex) MZ는 윈도우 파일, BM 비트맵



 

#2. 숫자의 정렬과 표시(실습)

 

 

실습) 1. 3 * 3 = 9%d 3개와 printf 1개를 써서 출력하여라.

2. 구구단을 3단을 전부 적고 1의 자리는 결과 값을 나머지 값들과 같은 자리 수에 표 현 되게 정렬하여라.

3. 실수 3.2의 소수점 2자리까지만 표시되게 출력하여라.




 

%d사이에 숫자를 넣으면 그만큼 공간이 확보된다.

기본은 %와 문자 사이에 숫자를 넣으면 오른쪽으로 밀리게 된다.(왼쪽에 빈공간이 생긴다)

사이에 ‘-’를 붙이면 왼쪽정렬(오른쪽에 빈공간이 생긴다)

표현하는 자리수보다 적은 숫자를 사이에 넣어도 내용은 다 표시된다.

숫자 다음에 점을 찍고 숫자를 넣으면 소수점 이하에 출력하고자하는 자리수를 나타낸다.

 

변수를 대괄호로([]) 넣고 표현하면 감춰진 내용도 볼 수 있다.

#3. 포인터의 주소 표시

 

실습) 1. int iNum=100을 설정하고 printfiNum의 값과 주소(16진수로)를 표시 한다.

 

주소 출력 시 %08X 출력 한다 -> %p로 대체된다.

 

%d, c, f, u, x 는 기본 암기가 필요하다.

 

 

** 해킹 방지를 위해 심볼 테이블의 address는 계속 바뀌지만 CPU에서는 해당 주소를 보고 위치를 알아낼 수 있다.

 

** 원하는 사이트의 IP 주소를 알아내기 위해서는 DOS창에서

ping_‘도메인 주소를 입력하면 된다.

#4. Visual Studio에서 고정 포인터

 

기계어를 이해할수록 짜여진 프로그램에 대해 조작이 가능하다.

 

Java는 사용자가 주소를 건들지 못하게 보호되어 있다.

 

C언어 쪽이 컴퓨터에 대한 이해도가 높아야하며 컴퓨터의 최적화에 알맞다.

 

* JVM(Java Virtual Machine)

 

숫자를 주소 값을 넣는 것을 배운다.

 

조작하는 DOS창을 Console이라고 부르기도 한다. Win32 = window 32bit

 

MFC C++ 윈도우 작성하는 경우

 

Makefile Project는 윈도우 창 작성

 

엠티 프로젝트를 선택하여 창을 연다.

반응형
Posted by newind2000
Busan IT/제어기초2015. 2. 2. 17:14


20150202 - 마이크로 컴퓨터와 ADC &amp; DAC.hwp

마이크로 컴퓨터와 ADC & DAC

학습목표 - 마이크로 컴퓨터의 역사와 특징을 설명할 수 있다.

ADCDAC의 특징과 용도에 대하여 설명할 수 있다.

 

마이크로 컴퓨터(Micro Computer)

 

마이크로 프로세서의 역사

-4비트 마이크로 프로세서-Intel 4004(1969), 4040

-8비트 마이크로 프로세서(1970년대 중반)

- 인텔(Intel)- Intel 8008(1972)-> Intel 8080(1973)->Intel 8085

- 모토로라(Motorola) - MC 6800(1974) -> MC 6802

- 자일로그(Zilog)- Z80 <- Intel 8080을 개선, Intel 8080의 명령어를 모두 포함하 고 내부 구조도 크게 향상

- MOS 테크(MOS Technology)-MCS6502 -> Apple IICPU(Central Process Unit)로 사용

 

-32비트 마이크로 프로세서

- Intel 80386, MC 68020, MC68030(1985), Z80000(1986)

- Intel 80486 -> 386PC;MC 68020 ->매킨도시 II

- Intel 80486 -> IBM PC 486, PS/2;MC 68030 -> Power Book 컴퓨터, MC 68040 -> 매킨토시 FX

- Intel 80586(Pentium, 1992) - CISC -> P6

- IBM, 모토롤라, 애플사가 공동으로 RISC형태인 파워 PC 601을 발표 (1993sus) ->IBM의 파워 PC, 애플사의 파워 PC

 

- 마이크로 프로세서의 2대 계열

- 80계열과(펜티티엄으로 넘어감) 68계열(Apple)

 

특징

- 고집적 회로(LSI; Large Scale Itegrated Circuit) 구성으로 제품의 소형화

- 가격 저렴

- 기능의 변경이나 확장 용이

- 신뢰성 향상

 

* 은행 현금 인출기에 들어가는 CPU486성능. Embedded에 들어가는 OSPC버젼보다 가볍다.

 

응용 형태

- 컴퓨터 및 주변 부품으로 이용

- 독립된 장치의 내부 제어기로 이용-계측기, 자동차 분야

- 대형 시스템의 구성 요소로 사용-통신 시스템

 

마이크로 컴퓨터의 종류

- 슈퍼 마이크로 컴퓨터(Super microcomputer), 데스크탑 컴퓨터(desktop computer), 휴대형 랩탑 컴퓨터(portable laptop computer), 노트북 컴퓨터 (notebook computer), 팜탑 컴퓨터(palm computer)

 

마이크로 프로세서를 쓰는 이유는 데이터를 활용하는 목적한 바를 도출하려는 의도.

 

 

 

ADC(Analog to Digital Convert)

 

아날로그 : 선형, 연속적인 내용. 아날로그 신호는 주변의 간섭을 너무 많이 받는다는 단점이 있다.

 

아날로그의 단점을 보완하기 위해 등장한 것이 ADC이다.

 

디지털 : 불연속, 비선형. 간섭을 적게 받는다.

 

디지털 신호로 변환 시 연속된 자료를 잘게 쪼갤수록 데이터의 양은 증가하게 된다. 반대로 자료를 크게 분할할 시에는 본래 아날로그 자료의 정확도가 떨어지게 된다.

 

1. 디지털과 아날로그

 

1. 디지털 신호와 아날로그 신호

아날로그 신호(Analog Signal)

자연계에서 일어나는 물리적인 양은 시간에 따라 연속적으로 변화

온도, 습도, 소리 빛 등은 시간에 따라 연속적인 값을 갖는다.

 

디지털 신호(Digital Signal)

분명히 구별되는 두 레벨의 신호값(0,1 or T/F) 만을 갖는다.

 

2. 아날로그 시스템과 디지털 시스템

 

디지털 시스템

이산적인 정보를 가공하고 처리해서 최종 목적으로 하는 정보를 출력하는 모든 형태의 장치

 

아날로그 시스템

연속적인 정보를 입력받아 처리해서 연속적인 형태의 정보를 출력하는 시스템

 

디지털 시스템의 장점

 

디지털 시스템은 내,외부 잡음에 강함.

디지털 시스템은 설계하기가 용이.

디지털 시스템은 프로그래밍으로 전체 시스템을 제어할 수 있어서 규격이나 사양의 변경에 쉽게 대응할 수 있어서 기능 구현의 유연성을 높일 수 있고 개발기간을 단축시킬 수 있음.

디지털 시스템에서는 정보를 저장하거나 가공하기가 용이.

디지털 시스템에서는 정보처리의 정확성과 정밀도를 높일 수 있으며, 아날로그 시스템으로는 다루기 어려운 비선형 처리나 다중화 처리 등도 가능.

디지털 시스템은 전체 시스템 구성을 소형화, 저가격화로 할 수 있음.

-> 디지털 시스템의 많은 장점으로 인해 기존 아날로그 시스템이나 새로운 시스템의 대부분은 디지털 시스템으로 구성

 

<그림>

 

아날로그 회로와 디지털 회로의 상호 연결

 

디지털을 아날로그로 바꿀 때는 연속적인 자료가 아님으로 완벽한 아날로그(연속된 자료)가 될 수 없다.

 

2. 디지털 정보의 표현

1. 디지털 정보의 전압레벨

디지털 정보를 표현하기 위해 2진수 체계(Binary sistem)를 사용

“0”“1”만의 2종류의 디지트(digit)를 사용

 

** 5V 전압기준

출력 0: 0 ~ 0.4V 1: 2.7 ~ 5V

입력 0: 0 ~ 0.8V 1: 2.0 ~ 5V

 

그 중간 값에 있는 신호는 가까운 쪽으로 종속되게 된다. 이 때 잡음이 발생할 수 있다.

 

2. 디지털 정보의 표현단위

1 nibble = 4 bit

1 byte = 8 bit

1 byte = 1 character

영어는 1byte1문자 표현 한글은 2byte가 필요

1word : 특정 CPU에서 취급하는 명령어나 데이터의 길이에 해당하는 비트 수

 

3. 전자소자를 이용한 논리 표현

다이오드에 의한 스위칭

<그림>

쌍극성 트랜지스터에 의한 스위칭

<그림>

NMOS 트랜지스터에 의한 스위칭

 

3. 논리레벨과 펄스 파형

1. 정 논리와 부 논리

양논리 또는 부논리(Positive logic)

음논리 또는 부논리(Negative logic)

정논리와 부논리는 모두 디지털 논리 시스템에서 이용되고 있으며, 정논리가 일반적으로 많이 사용

 

정논리 : High = 1 Low = 0

 

2. 펄스(pulse) 파형

펄스파형은 low상태와 high 상태를 반복하는 전압레벨의 구성

주기 펄스(periodic pulse) & 비주기 퍼스(non-periodic pulse)로 분류

 

이상적인 펄스파형

이상적인 주기 펄스는 두 개의 에지로 구성

리딩 에지(leading edge) = 상승에지(rising edge)

트레일링 에지(trailing edge) = 하강에지(falling edge)

 

실제적인 펄스 파형

 

3. 주기, 주파스, 듀티 사이클

주파수(frequency)

주기적인 파형이 1초 동안에 진동한 횟수를 의미

단우는 전파를 처음으로 발견한 독일의 헤르츠의 이름을 따서 헤르츠(Hz)를 사용

 

주기(period)

주기적인 파형이 1회 반복하는데 걸리는 시간을 의미

ex) 1초에 1번 진동 = 1Hz

1초에 2번 진동 = 2Hz

 

주파수와 주기와의 관계는 역수이다.

 

Duty cycle = tw/T * 100(%)

 

HighLow의 비율이 1:1일 때 50%라고 한다

 

High: Low6:4일때 60%이다.

 

Duty cycle80%이상이면 통상적으로 100%로 본다.

 

4. 디지털 직접회로

 

논리회로의 종류

조합논리회로(combinational logic circuit)

기본 게이트의 조합으로 구성되는 논리회로

ex)리모컨의 숫자

 

순서논리회로(sequential logic circuit)

조합논리회로에 플립플롭(flip-flop)또는 메모리를 부가한 논리회로.

ex)리모컨의 채널조정 상.하 버튼

 

 

1. IC 패키지

PCB(Printed Circuit Board)에 장착하는 방법에 따라 삽입 장착(through-hole mounted)형과 표면 실장(surface-mounted)형으로 구분

 

삽입 장착형 ICPCB보드의 구멍에 끼우는 핀을 가지고 있어 뒷면의 도체에 납땜으로 연결할 수 있으며, DIP형태를 갖는다.

 

표면 실장형 ICPCB표면의 금속 처리된 곳에 직접 납땜 처리

 

SMDDIP형태의 논리회로의 크기를 70%가량 줄이고, 무게를 90%만큼 감소, 또는 SMDPCD의 제조 가격을 크게 하락 시킴.

 

디지털 시스템의 장점

디지털 시스템의 소형화 및 경량화

생산가격의 저렴화

소비전력의 감소

동작속도의 고속화

디지털 시스템의 신뢰도 향상

 

2. 직접회로의 분류

 

트랜지스터의 직접도에 따른 분류

 

SSI = 100개 이하

MSI 1000개 이하

LSI 10,000개 이하

VLSI 1,000,000개 이하

ULSI 1,000,000개 이상

5. ADCDAC

 

아날로그-디지털 변환과정의 블록도

 

아날로그 신호 -(표본화)> -(양자화)> -(부호화)> 디지털 신호

 

1. 표본화(Sampling)

 

샤논의 표본화 정리 : 신호의 최고 주파수의 2배 이상의 빈도로 샘플링하면 샘플링된 데이터로부터 본래 데이터를 재현할 수 있다.

 

사람의 음성인 경우 1초 동안에 8000번 샘플링 필요.(2 * 4kHz= 8kHz

 

2. 양자화

펄스의 진폭 크기를 디지털 양으로 변환

이 과정에서 불가피한 양자화 잡음이 발생

양자화 잡음은 미리 정한 신호레벨의 수를 늘리거나 줄일 수 있으나, 데이터의 양이 많아지는 단점이 있다.

 

3. 부호화

부호화는 양자화한 값을 2진 디지털 부호로 변환.

일반적으로 전화 음성에서는 8비트로 부호화한다.

 

아날로그-디지털 변환과정의 예

 

<그림>

 

4. ADCDAC과정의 예

 

소리 MIC -> AMP -> ADC -> CD -> DAC -> AMP -> SPEAKER 소리

 

CD오디오 시스템에서 신호처리과정

 

 

* 영상신호 NTSC/PAL

 

NTSC : 29.997fps

PAL : 25fps

 

ADC의 적용 예 - 온도계

반응형
Posted by newind2000
Busan IT/제어언어2015. 2. 2. 17:13


20150202-컴파일의 단계와 처리.hwp

컴파일의 단계와 처리

 

#1. 지난 주 정리 요약

 

<지난 주 정리>

 

우리는 C언어를 하고 있다.

 

CPU와 메모리의 의사소통 과정을 배우고 있다.

 

변수의 표현방식에 관하여 정수(char, int - short, long)가 있고 이것들은 ‘sizeof'변수로 바이트가 얼마인지 확인해 볼 수 있다.

 

사칙연산(+ - * / %) 형수정자(long, short, unsigned) 명령어(형선언, printf, cast(), 앰퍼센트)

 

메모장으로 c언어를 기입한 후 cl(컴파일러)을 통하여 exe파일을 만들어 실행할 수 있다.

컴파일러는 언어를 번역하는 번역기 역할을 한다.

 

* 번역기는 크게 두 개로 나눌 수 있다. 1. 컴파일러(compiler) 2. 인터프리터(interpretor)

 

exe0,1을 사용하는 이진수로 되어 있다.

 

c언어 기본형을 배웠다.

 

파일은 파일이름.확장자형식으로 표시되고 확장자에 따라 파일형식이 바뀐다.

 

다만 exe는 연결프로그램이 없고 바로 실행되는 파일 형식이다.

 

금일 3교시부터는, 컴파일러가 exe로 바꾸는 단계에 대하여 알아볼 예정이다.

 

exe파일을 2진법으로 보는 방법은 exe파일의 확장명을 bin으로 바꾼 후 Visual Studio에서 드래그에 드롭으로 실행시킨다.

 

Visual Studio 제일 우측에 각 16진수에 해당되는 ASCII코드를 보여준다.

 

해당하는 ASCII코드가 없는 경우 ‘.’으로 찍힐 수 있다.

 

#2 컴파일러와 인터프리터

 

학습목표: 컴파일러와 인터프리터의 기능과 종류를 설명할 수 있다.

 

X.c ->(cl; 컴파일러) X.exe 2진수인 기계어로 번역되고 이것을 binary파일이라고 한다.

구체적으로 C언어를 바꾸어줬기 때문에 C컴파일러라고 부른다.

 

** 인터프리터는 프로그램 언어를 순간순간 해석하여 가동시키는 역할을 한다.

 

X.java ->(컴파일) X.class -> JVM로 실행을 시킨다. 자바는 컴파일러로 거쳐 바로 실행 시킬수 없다. class파일은 가상 CPU파일로 존재한다.

 

Java프로그램의 목적

 

인텔사에서 보급형 컴퓨터용으로 제조한 CPU8088(고급형), 8086(일반형)으로 보급되고 80286, 80386, 80486에서 80586(펜티엄; AMD사와의 모델명 상표권 싸움 이후 문자형으로 고침) 86으로 끝나는 것을 86계열이라고 부른다.

 

AMDIntel의 기계언어를 도입하였다.

 

Intel은 저전력 시장에 진출하지 못하고 ARM이 저전력 CPU를 사용하는 mobile시장을 점유하고 있다.

 

CPU최적화를 원하는 경우는 특정 CPU에 대한 언어에 최적화된 언어로 개발해야 하지만(Firmware)

 

성능이 아닌 프로그램에 집중할 경우에는(게임, java, contents 시장) 해당 소프트웨어를 만드는데 집중하면 된다.

 

Javaapplication용이다. * Java는 커피 원산지의 이름이다.

 

Java는 프로그램을 한번에 해석하는 것이 아니라 순간순간 해석하여 옮기기 때문에 이것을 interpretor라고 한다.

 

C언어로 Window에 바로 돌릴 수도 있지만 FrameworkMiddleware를 활용하여 다른 운영체제에서도 가동 시킬 수 있다. ex) .net

 

* AndroidLinux기반의 프로그램이다.

 

<학습요약>

 

- 컴파일러는 저급 언어를 CPU에서 실행할 수 있도록 binary 형식 실행파일로 바꿔주는 기능을 한다.

 

- CPU기능을 최적화 시키는 목적의 프로그램 작성을 위해서 compiler를 활용하는 저급언어를 활용하고 주로 firmware를 만들 때 쓰인다.

 

- Contents와 상이한 환경에서 구동시키기 위해 interpretor(frameworkmiddleware)를 활용한 프로그램을 개발하기도 하며 게임이 이에 해당된다.

 

#3. CL라인 컴파일의 5단계

 

학습목표 : CL컴파일 과정에 생기는 파일을 생성할 수 있고 그 내용을 설명할 수 있다.

 

Review> Interpretor는 조금씩 해석하여 가동시키는 형태이고 compiler는 완전히 번역 후 가동시키는 형태이다.

 

주석

 

//: 현재 위치로부터 한줄

/* */: 사이에 있는 모든 내용이 주석

 

컴파일의 과정

 

CL라인

 

1. main.c ->(전처리 preprocess) 2. main.i ->(컴파일 compile) 3. main.asm ->(어셈블리 assembly) 4. main.obj ->(링크 link) 5. main.exe

 

1 ~ 3 text file

 

4 ~5는 기계어

 

gcc라인

 

main.c -> main.i -> main.s -> main.e

 

 

명령어에 따라 생성되는 파일이 달라진다.

 

cl /P *.c -> .i

 

cl /c *.c -> .obj

 

cl /Fa *.c -> .asm

 

* tap키를 누르면 해당 폴더에 있는 파일의 이름명을 순차적으로 하나씩 띄워준다

 

전처리과정(preprocess) 컴파일 이전에 명령어를 불러오는 기능을 한다. 전처리 언어는 C언어에 포함되지만 C언어는 아니다. 전처리의 구분은 ‘#’의 포함여부로 달린다.

 

#include <stdio.h> -> ‘#’ 전처리 언어, include <stdio.h>는 명령어를 불러 오는 것이다.

<> 대신에 “”도 쓸 수 있다.

<>는 환경변수에서 경로에서 찾는 것이다.

“”는 현재 위치에 있는 폴더 경로에서 찾는 것이다.

 

stdio.h - stdio 표준입출력(Standard Input Output)

h is for header

<학습 요약>

- 컴파일은 총 4단계를 거친다.

1. 전처리과정(Preprocess; cl /P *.c): 전처리 언어를 불러온다.

2. 컴파일(Compile; cl /c *.c): 전처리가 끝난 파일을 컴파일러한다.

3. 어셈블리(Assembly; cl /Fa): 컴파일된 파일을 어셈블리어로 만든다.

4. 링크(Link): 어셈블리어로 된 obj파일을 link작업을 통해 실행 파일로 만든다.

 

#4. Object파일에서 실행파일(*.exe)

 

학습목표: Obj의 속성과 exe파일로 변환될 때는 차이점을 설명할 수 있다.

 

전처리 과정을 거치면 전처리언어는 해석되고 C언어만 남는다.

전처리 언어를 제외하고 보고 싶다면 전처리과정을 거친 후의 파일을(*.i)을 보면 된다.

 

C언어를 assembly언어로 바꾼 후에 binary로 변경한다.

 

기계어로 만들어진 파일을 object라고 부른다.

 

obj파일을 실행시키려면 window에서 구동시키기 위한 추가 작업이 필요하다. 이를 link(연결)라고 부른다. ex) printf

 

obj도 기계어지만 실행이 불가능하다. obj을 실행파일의 모양을 만드는 것도 link에 속한다.

 

<학습요약>

- Object파일은 기계언어지만 실행은 불가능한 언어이다.

 

- Obj파일이 실행 파일(exe)이 되기 위해서는 ‘link'라는 과정이 필요하고 이는 Visual Studio lib폴더에서 명령어를 끌어와 작성된 언어와 대조후 이를 실행시키는 작업과 실행파일로 옮기는 작업을 거친다.

 

<실습>

 

- 컴파일 5단계에 해당되는 각 각의 파일을 생성하고 안의 내용을 살펴보자.

반응형
Posted by newind2000
Busan IT/제어기초2015. 1. 30. 17:43

** OrCad 사용방법.

 

OrCad에서 저장 시 저장경로에 가능한 한글과 빈칸을 넣지 않는다.

 

OrCadPCB에 실습을 하기 전에 먼저 회로도를 그려보는데 쓰인다..

 

첨부된 매뉴얼을 읽고 대략적인 조작법을 익혀보자.

마이크로 컨트롤러와 프로그램

학습목표 : 마이크로 컨트롤러의 종류와 특성을 이해한다.

프로그램의 종류와 해당 하드웨어를 이해한다.

 

마이크로 프로세서(Micro Processor Unit)

- 마이크로컴퓨터에 사용된 단일 Chip CPU

Hardware적 구조:CPU+I/O 장치

- 용도: 마이크로 컴퓨터 시스템의 CPU로 가장 일반적으로 사용되는 컴퓨터 시스템에서 Date의 처리에 적합

ex) 8051

 

마이크로컨트롤러(MCU)

- MPUCPU기능 + 메모리(ROM, RAM), I/O제어 회로 등을 하나의 칩에 내장

- 단일칩, one-chip 마이크로 컴퓨터, 임베디드 마이크로 컨트롤러라고도 함.

- Hardware 구조: CPU + Memory, I/O

- 용도 : 시스템의 입출력 제어용

ex) Atmega, ARM, Coretex M3, PIC, DSP

 

* - 이를 제어하기 위해 C언어를 공부한다.

- 사람이 이해하기 편할수록 고급언어, 기계어에 가까울수록 저급언어이다.

- 주기억장치는 전기적인 신호로 정보를 전달하고 보조기억장치는 물리적인 신호를 쓴다.

 

<구조 및 용도에 의한 분류>

 

General Purpose u-processor

(범용 마이크로프로세서)

- 일반적으로 일컬어지는 마이크로프로세서

- CPU의 기능만을 갖추고 있다.

- CPU: Register Set, ALU(Arithmetic and Logic Unit), CLU(Control Logic Unit)

 

Single chip or One chip u-Computer

- CPU 기능 + Memory, I/O Interface회로를 하나의 Chip에 내장시킨 u-Processor

- 기본적인 컴퓨터의 기능을 갖추고 있다.

- 시스템 제어용으로 주로 사용된다.

- Bit-slice u-Processor

- 2 Bit 또는 4 Bit의 기본 구성 단위로 되어 있는 u-Processor

- 미니컴퓨터의 설계, 실험실 수준에서의 CPU설계 등에 사용

 

<Bit 수에 의한 분류>

 

한 번에 처리할 수 있는 Date Bit의 수에 따라 4, 8, 16, 32, bit 형으로 분류

반도체 기술의 발달에 따른 흐름

PMOS, NMOS, CMOS, Schottky TTL, HMOS, CHMOS, HCMOS, XMOS

* MOS(meter onside silicon)

MOS의 차이는 반도체 공정에 따라 발생한다.

 

<명령어 구조에 의한 분류>

 

CISC(complex Instruction Set Computer)

- 많은 수의 명령어- 일반적으로 100~250개의 명령어

- 몇몇 명령어는 특별한 동작을 수행하며 자주 사용되지 않는다.

- 다양한 어드레싱 모드- 일반적으로 5~20가지의 모드

- 가변 길이 명령어 형식

- 메모리의 피 연산자를 처리하는 명령어

 

RISC(Reduced Instruction Set computer)

- 상대적으로 적은 수의 명령어 및 Addressing Mode

- 메모리 참조는 loadstore명령으로 제한된다.

- 모든 동작은 CPU의 레지스터 안에서 수행된다.

- 고정된 길이 명령어 형식으로 Decoding이 간단하다.

 

폰 노이만 방식

- 폰 노이만 - 최초의 프로그램 내장형 컴퓨터를 고안한 수학자

- 폰노이만이 고안한 방식은 50년이 넘은 지금까지 컴퓨터의 근본 원리

- InterAMD의 마이크로프로세서

 

폰 노이만 방식의 컴퓨터

- 실행할 프로그램

- 데이터를 저장할 메모리

- 메모리에 저장된 프로그램을 실행할 프로세서

- 프로그램과 데이터를 메모리에 입력시키는 입력 장치

- 프로세서에서 프로그램을 실행한 결과를 출력하는 출력 장치로 구성

- 이중가장 핵심은 메모리와 프로세서

- 프로세서가 입출력 장치를 메모리의 일부라고 간주 함.

- 결국 컴퓨터는 프로세서와 메모리로 구성된 단순한(?) 기계

 

마이크로 컨트롤러의 특징

 

1. 소형, 경량화가 가능

다양한 프로그램으로 응용범위와 주변 소자 수를 대폭 줄일 수 있어 회로가 간단.

2. 가격이 저렴

하나의 칩 안에 입/ 출력포트, /병렬통신, 기억소자, 카운터/타이머 등을 내장

3. 타 시스템과의 이식성이 뛰어나다.

작은 변경 혹은 기능의 추가를 쉽게 달성할 수 있어 다양한 용도로 활용된다.

 

4. 신뢰성이 높다.

시스템 구성 소자 수가 적어 신뢰성이 높다.

 

응용분야

 

1.산업분야

모터제어, 로봇공학, 프로세서 제어, 수치제어, 지능형 변환기 등

2.계측 분야

액체/가스 크로마토그래프, 의료용 계측기, 오실로스코프

3.가전분야

비디오 레코더, 레이저 디스크 구동부, 비디오 게임, 전자렌지, 에어컨

4.유도 및 제어분야

미사일 제어, 지능형 무기, 우주선 유도 제어

5.데이터 처리분야

플로터, 복사기, 프린터, 하드디스크 구동부

6. 정보통신 분야

모뎀, 지능형 카드 제어

7. 자동차 분야

점화제어, 변속기 제어, 연료분사제어, 브레이크 제어

 

 

PROGRAM

 

 

 

Software의 대 분류

 

응용 소프트웨어: 사용자 관심의 특별 형태의 작업을 처리하는 프로그램.

시스템 소프트웨어: 운영체계 및 응용 소프트웨어를 지원하는 프로그램.

 

Utility

작지만 제한된 능력을 가진 유용한 프로그램

디스크 조각 모음, 압축, 암호 해제, 바이러스 검사

응용 프로그램 실행기, 텍스트 편집기

 

BIOS

Basic Input Output system

컴퓨터의 H/wS/W사이를 중계하여 입/출력을 관장하는 소프트웨어

컴퓨터를 처음 부팅 할 때부터 전원을 끌 때까지 모든 동작을 제어하는 프로그램

컴퓨터를 부팅할 때 시스템을 자기 진단하여 고장유무를 판단

디스크 드라이버, 모니터, 키보드 등과의 기본적 연결 상태를 설정해 준다.

 

RAM

Random Access Memory

필요할 경우 data를 쓰고 지우고 할 수 있는 기억장치

휘발성을 메모리이다. 저장을 하지 않으면 지워진다.

 

SRAM(STATIC RAM)

전원이 나가도 계속해서 저장된 Data를 유지

읽기/쓰기 시간이 DRAM에 비해서 빠름

비싸다는 단점이 있다.

 

DRAM(Dynamic RAM)

저장된 Data를 유지하기 위해서는 일정 시간 간격 Refresh가 필요

가격이 SRAM에 비해 저렴하다.

 

 

ROM(Read Only Memory)

저장된 Data를 읽을 수만 있고 쓸(변경할) 수 없는 메모리

데이터를 한번 쓰면 변경할 수 없다.

 

EPROM(Erasable Programmable ROM)

자외선을 이용하여 저장된 Data를 지운다.

 

EEPROM(Electrically Erasable Programmable ROM)

전기적인 힘을 이용하여 저장된 데이터를 지운다.

 

Flash Memory RAM

Block 단위로 데이터를 지울 수 있고, 프로그램 할 수 있는 Memory

Block 단위로 쓰기, 지우기가 가능하므로 속도가 빠르다.

지속적으로 전원이 공급되는 비 휘발성 Memory

 

Cashe Memory

CPUMemory (DRAM)의 가운데 위치 또는 동일 chip내에 위치

Access time을 향상하여 시스템 전체의 실행 속도향상

주로 Static RAM을 사용

 

마이크로 컨트롤러.hwp

반응형
Posted by newind2000
Busan IT/제어언어2015. 1. 30. 17:42

수의 출력, 연산 그리고 address

 

학습목표 : 변수형과 형수정자를 조작하여 자유롭게 정수와 실수를 표현할 수 있다.

연산자를 활용하여 정수와 실수를 표현할 수 있다.

심볼테이블과 address를 표현할 수 있다.

 

#1. 정수와 변수형

 

지난 시간 CPU와 메모리 사이의 처리과정을 배웠다.

 

변수를 만들 때 값을 넣음으로써 초기화할 수 있다.

 

어떠한 값을 넣었을 때 특정 값을 나오는 이유를 이해할 수 있어야 한다.

 

실습)257를 입력했을 때와 999를 넣었을 때를 연습해본다. 값이 나오는 논리를 이해한다.

 

숫자 25732bit CPU에서는 0000 0001 0000 0001(16)으로 인식한다.

그러므로 메모리는 01을 가져 오는데 이것은 1임으로 결과창에 1로 표시된다.

 

 

999CPU에서 3E7으로 인식되고 이것은 8bit에서 1110 0111값을 가짐으로 음수임을 알 수 있다.

 

그러므로 여기에 1의 보수를 취하면 0001 1000이고 여기에 1을 더하면 0001 1001임으로 결과값은 -25가 된다.

 

 

Bell사가 전화기로 미국에서 크게 성공하고 벨 연구소를 만든다.

 

벨 연구소에서 슈퍼컴퓨터에 있는 운영체제를 개인적으로 쓸 수 있는 방법을 고안하여 나오는 것이 Unix이다. 통신사에서 쓰는 운영체제는 Unix이다. Unix 연구를 통해 많은 수의 해커들이 양성되고 핀란드인 또 다른 운영체제를 만든 것이 Linux이다. 리눅스 안에 Java엔진이 있고 AndroidJava를 기반으로 돌아가는 프로그램이다. Unix를 개발할 때 쓰인 언어가 C언어이다.

 

C언어의 표준화를 위해 ANSI C를 정립하였다.

 

변수형에서 Int가 기준이 되고 Int를 줄일 때 short (int) 늘릴 때 long (int)를 쓴다.

 

정수는 4가지 타입이 있다.

 

char(1) < short(2) < int(4) < long(4)

#2. ASCII코드와 컴퓨터의 사칙연산

 

형수정자란 기본형의 자료의 형태를 바꿔주는 역할을 하는 명령어이고 여기에는

short long signed unsigned가 있다.

 

표시 형식에 %d가 되어 있으면 signed decimal을 표시하기 때문에 최대수를 넣어봤자 -1이 나온다.

 

이것을 %u로 바꾸면 unsigned의 약자임으로 양수로 표현이 된다.

 

프로그램 작동을 최적화 시키려면 레지스터와 메모리가 일치시켜야 한다. 메모리를 쓰지 않는 경우에도 CPU에서 쓰지 않는 메모리에 대한 제어를 해야 하기 때문에 메모리를 적게 쓴다고 속도가 높아지는 것은 아니다. 하여 변수를 크기를 꼭 줄여야 하는 것은 아니다.

 

C에서 기본적으로 변수의 모양을 정해놓은 것을 기본형이라고 한다.

 

char은 알파벳에 대한 숫자를 저장한다.

 

알파벳에 대한 표시는 그림으로 출력하지만 저장하고 출력하는 것은 숫자이다.

 

charASCII를 사용하기 위해 쓰인다.

 

 

ALT를 누른 상태에서 숫자를 누르면 ASCII(American Standard Code for Information interchange)코드를 테스트할 수 있다.

 

컴퓨터의 사칙연산 + - * /로 표시

 

CPU에서 소수점의 계산은 상당히 복잡하기 때문에 정수로만 표현해준다.

 

연산기호에서 %를 쓰면 나누기 후에 나머지를 표시해준다.

 

실습>> unsigned 방식에서 음수가 나오게 표현시켜보자.

 

컴퓨터는 2진수를 사용하고 인간은 10진수를 사용하기 때문에 소수점의 진수 변환에 대한 문제가 생긴다.

 

10진수에 있는 소수점을 2진수로 바꾸는 방법은 소수점 이상의 수에 대하여 우선 2진수로 변환하고 소수점 이하의 값에 대해서는 *2를 한 다음에 앞에 1이 나오면 1 소수점 뒤에 표시해 준다.

#3. 실수의 표현과 sizeof

 

10진수를 2진수로 고치는 방법

 

첫째자리 0.5 둘째자리 0.25 셋째짜리 0.125...

 

소수점 자리에 곱하기 2를 하여 1로 넘어가는 경우는 소수점 자리에 1을 표시하고 이 숫자가 다 소거될 때까지 계속 2를 곱해준다.

 

실습) 3.5, 0.625, 0.2

 

0.2는 순환소수이기 때문에 저장되지 않는다. 이 같은 경우에는 오차가 생겨난다.

 

실수형을 저장하는 변수형을 float이라고 한다. 크기는 4byte이다. 8byte의 경우에는 double이라는 변수형을 쓴다.

 

실수가 개입되는 경우 컴퓨터의 연산이 느려진다. 때문에 소수점이 없는 경우에는 정수형을 써야 한다.

 

실습) float으로 3.2표시

 

5/3

 

5/3

 

둘 중에 하나면 소수점을 넣어주면 소수점으로 결과 값을 보여준다.(OR logic)

 

Cast연산자(형변환 연산자)

 

둥근 가로로 기본형을 기입하는 방법을 Cast연산자라고 한다.

 

* 현재까지 배운 연산자

 

=, +, -, *, /, %, ()

 

sizeof연산자

 

뒤에 적은 대상의 크기를 알려준다(int 형으로)

 

학습) CPU와 메모리의 의사소통에 대해서 다시 찾아본다.

#4. 여러 종류의 출력 방법과 address

 

문자 출력법 = %c

 

ASCII를 찾는 방법 찾고 싶은 문자를 넣고 %d로 출력한다.

 

여러 가지 문자를 연속으로 출력하는 방법

 

printf("%c%c%d%c\n", 'T','E','S','T');

 

%기호를 넣고 삽입하고 싶은 형태를 넣은 후 입력하면 ‘’,마다 순차적으로 입력한 형태를 표현한다.

 

주소연산자(&, 앰퍼샌드, ampersand)

 

//주석처리하는 명령어

 

심볼테이블

 

Type

Name

Address

int

iNum

1BF7DC

char

cNum

1BF7E3

float

fNum

1BF7D8

 

 

* 위의 처리과정이 CPUMemory에서 어떻게 일어나는 그림으로 그려서 올려야 한다.

 

address.c


char.c


main.c


pmmd.c


sizeof.c


var.c

20150130-수의 출력, 연산 그리고 address.hwp


반응형
Posted by newind2000
Busan IT/제어기초2015. 1. 29. 17:34


And Logic transisor.DSN


Capacitor.DSN


NPN transistor.DSN


OR Logic transistor.DSN


전기회로와 트랜지스터&amp;캐피시터.hwp

전기회로와 트랜지스터/캐피시터

 

학습목표 : 전기회로에서 트랜지스터/캐피시터가 어떻게 활용되는지 이해한다.

트랜지스터(NPN)으로 AND/OR논리회로를 만들 수 있다.

캐피시터로 비안정멀티바이브레이터를 만들 수 있다.

 

1. 트랜지스터

 

트랜지스터하면 떠 오르는 것이 증폭이다. 하지만 디지털 분야에서는 switching을 더 많이 사용한다.

 

트랜지스터를 여러개 모아서 만든 직접회로가 TTL(Transistor Transistor Logic)이다.

 

트랜지스터의 종류는 크게 두 가지로 나뉜다.

 

NPN

PNP

 

 

기호에 나오는 화살표의 방향은 전류의 흐름을 뜻한다.

 

PNP의 경우는 가운데 N에서 양쪽으로 전류가 흐를 수 있는 경우가 있다. 이 때는 N의 도핑정도에 따라 전류가 흐르는 방향이 정해진다.

 

트랜지스터를 그릴 때 전류가 시작되는 부분은 B(Base) 전류가 나가는 방향은 E(Emit)

다른 한 방향은 C(collector)이다.

 

NPN 트랜지스터에서 스위치를 켜면(B에 전류가 흐르면)C에서 E방향으로 전류가 흐른다.

 

1) NPN AND Logic 회로

 

스위치가 하나만 켜졌을 때는 불이 들어오지 않는다.

 

트랜지스터는 baseemitter 사이에 0.7v의 전압이 인가되면 c에서 e로 전류가 흐른다.

 

때문에 위에 그림에서 두 개의 경로에 다 전압이 인가되어야 전류가 흐리게 된다.

 

 

2) NPN OR Logic 회로

 

하나의 스위치만 켜져도 불이 들어오는 논리회로를 말한다.

 

 

3) 비안정멀티바이브레이터(Unstable Multi-vibrator)

 

 

캐피시터는 충전을 완료하면 전류를 방전한다. 때문에 캐피시터의 용량이 높을수록 불이 깜빡거리는 시간이 커진다.

 

이제 회로도 그리는 방법을 학습한다.

 

앞으로는 회로도를 그려가면서 수업을 진행한다.

 

 

<<Summary>>

 

- 트랜지스터는 전기회로에서 스위치 역할로 주로 사용된다.

- 실습 1. NPN트랜지스터를 사용한 AND/OR 논리회로 만들어 보기

2. NPN트랜지스터와 캐피시터를 활용한 비안정멀티바이브레이서 만들어 보기

 

 

 

 

반응형
Posted by newind2000
Busan IT/제어언어2015. 1. 29. 13:55


20150129-CPU와 BUS.hwp

CPU와 메모리의 의사소통

 

학습목표 : CPU와 메모리간의 의사소통 방식을 이해한다.

 

#1. CPU와 버스

 

CPU와 메모리를 잇는 선들을 버스(BUS)라고 한다.

 

CPU에 용량에 의해 활용할 수 있는 버스선 자체가 결정된다.

버스 선은 CPU가 제어할 수 있는 방의 개수를 한정시킨다.

 

그러므로 CPU용량이 버스 선보다 개수보다 크거나 같은 경우에 CPU의 능력이 발휘될 수 있고 CPU의 용량보다 버스 선의 개수가 많을 경우에는 과부화가 일어난다.

 

그 선의 개수에 따라 8bit, 16bit, 32bit 64bit인데 한 선에 1bit를 보낼 수 있다.

8bit28(0~255, 256개의 데이터를 보낼 수 있다.)

ex) 8bit = 8

 

선당 5V의 전압을 보낼 수 있고, 5V의 전압이 들어간 경우

ex) 5V -> 1, 0V -> 0

 

#2. 심볼테이블과 unsigned

 

CPU가 할당용량의 자리를 찾아가는데 Address를 사용한다. 사용자는 이름으로 지정하고 있지만 컴퓨터는 Address를 사용하여 이를 찾아낸다. CPU는 이것을 표로 만들어 놓는다.

 

CL이 실행을 작성할 시 TypeName을 지정하면 주소를 지정해준다.

ex)

Type

Name(사람)

Address(컴퓨터)

char

Test0

100번지

위의 표를 심볼테이블 이라고 하고 이것은 CL이 만든다.

 

실습>>

 

기본형을 입력 후에 char이라는 변수형을 넣고 이름은 Cnum 값은 3을 입력한다.

 

char cNum;

cNum=3;

과 같다.

 

처음에 값을 넣는 것을 초기화라고 한다.(char cNum=3;)

실수가 많은 부분이라서 처음에 변수형을 만들 때 값을 넣어주는 게 좋다.

 

수를 양수로 적을때는 이것을 양수로 표시하고 싶다는 명령어를 넣어줘야 한다.

-> unsigned

 

 

unsigned 앞에 un을 제거하고 signed를 넣으면 -1이 표시된다.

 

 

#3. 정수의 입력과 CPU의 인식(magnitude방식과 보수방식)

 

정수의 입력에서

변수형

용량

char

1byte

short (int)

2byte

int

4byte

 

 

printf, %d\n에서 ddecimal(10진수), xdecimal hexa(16진수), oocta(8진수)이다.

 

 

흥미롭게도 magnitude방식과 보수방식은 가장 큰 자리에 1이 붙으면 음수로 구분되는 것은 같다.

 

CPURegister의 크기는 버스 크기와 맞물린다. 한 번에 처리할 수 있는 양과 Register의 양과 맞춰야지 회로를 최적화 시킬 수 있다. 그래서 데이터를 주고 받을 때 Register의 크기로 주고 받는다.

 

컴퓨터는 뺄셈을 인식하지 못하기에 뺄셈이 있을 시 보수를 더해줘서 뺄셈 값을 만족시킨다.

 

음수가 필요 없을 시는 unsigned를 써서 사용 하는 것이 CPU처리에 도움이 된다.

 

상황에 맞게 unsignedsigned를 생각하여 설정을 해야 한다.

 

 

 

#4 CPUMemory의 의사소통

 

CPU는 마이너스를 인식하지 못함으로 보수를 사용함으로써 연산을 한다.

예를 들어 32bit 컴퓨터에서 char a=-116진수로 표시하려고 한다.

이 때 메모리에서는 1byte(8=bit)만 선언이 되었기 때문에 ff로 표시가 된다. 이것을 32bit CPU에서 들고 오는 과정에서 32bit CPU는 이것을 ffffffff로 표시한다. 때문에 이것이 printf로 출력되는 경우 ffffffff로 출력되는 것이다.

 

중요한 점은 printf는 메모리에 있는 자료가 아니라 CPU에 있는 자료를 출력하기 때문에 ffffffff를 출력한다. 다시 말해 CPU에 있는 register 값을 출력한다.

<<Summary>>

 

- 사용자는 CPU에 있는 register를 통하여 CPU를 제어할 수 있다. 메모리와 CPU간의 의사소통을 최적화하기 위해서는 registerbit와 버스의 bit를 일치시켜 주어야 한다. bit하나당 하나의 선을 이용하고 5V의 전압을 보내어 보냈을 시 1, 안 보냈을 시 0으로 표시한다.

 

- 컴퓨터는 심볼테이블을 활용하여 각 변수의 형과 위치(address)를 기억한다.

 

- 변수형의 선언과 이름 그리고 값을 넣어주는 것을 초기화라고 부른다.

 

- 정수의 표현방식에 따라 양수만을 표시하고 싶을 때는 unsigned를 변수형 앞에 붙여주고, 양수와 음수 모두를 표현하고 싶을 때는 signed를 붙혀 주지만 기본적으로 signed가 제공되기 때문에 이 같은 경우는 변수형만 선언해주고 초기화시켜주면 된다.

 

- printf시 표현 방식에 따라 8진법 %o, 10진법 %d, 16진법 %x 이다.

 

- 메모리에 있는 값을 출력하는 경우 CPU에 표시되는 값으로 화면에 출력된다.

 

 

반응형
Posted by newind2000
Busan IT/제어기초2015. 1. 28. 22:12

캐퍼시터/인덕터/다이오드(반도체) 기능과 특성

학습목표 -캐퍼시터/인덕터/다이오드(반도체) 기능과 특성을 이해한다.

 

1. 캐피시터(Capacitor) ; 축적

콘덴서로 알려져 있는 전기를 저장하는 소자로써 충전과 방전을 반복하고 전하를 모은다.

캐피시터에 전압을 가하면 이것은 대전된 상태로 변화한다. 이때 전압을 가하는 것을 중단하여 대전된 상태가 지속된다.

우리가 일상에서 있는 캐피시터의 예는 핸드폰 충전기이다.

기능 : 캐피시터는 고역을 통과시키는 필터 역할을 한다.

특징 : 직률전류를 차단하고, 높은 주파수에서만 흐르며, 용량이 클수록 교류 전류를 흘린다.

종류 : 전해 캐피시터, 세라믹 캐피시터, 마일러 캐피시터, MKT 캐피시터, 탄달 캐피시터, 마이카 캐피시터, 스티젠 캐피시터.

활용 : 캐피시터의 단위는 pF, mF이고 용량값은 자리수 마지막 끝자리면 0 개수를 나타내며 색깔로 표시된 표를 보고 수치를 읽는다.

 

2. 인덕터; 방출

인덕터는 동선을 나사 모양으로 감은 코일이다. 코일에 전류가 흐르면 자기장의 형성 자속이 발생하여 코일의 전류 흐름을 방해하는 동작을 한다.

전류 = 1/흐름

인덕터의 값은 인덕턴스라고하며 단위는 H(헨리)이다.

 

특징 : 전류의 변화를 안정시키려는 성질(, 변화를 싫어한다.) 전류가 흐르면 자속이 발생하여 반대편에도 전류가 흐르는 상호 유도 작용 현상을 일으키며, 전자석의 성질을 지녔다. 공진을 하며, 전원의 노이즈를 차단 시킨다. 직류는 통과시키고 교류는 막는 역할을 한다.

 

종류 : 트로이달 코일, 고주파용 코일, 가변형 코일

 

3. 반도체

제작자의 의도에 따라 도체/부도체가 있는 물체, 경우에 따라 빛을 내는 특별한 성능을 가질 있다.

 

특징 : 열을 가하면 저항이 작아진다(금속은 이와 반대). 불순물의 양으로 저항을 조절할 있으며, 전류가 한쪽 방향으로만 흐르도록 걸러내는 정류작용을 한다(다이오드). 빛을 쬐면 전자가 튀어 나오며(광전효과), 발광작용을 한다.

 

종류 : N 반도체 - 전자가 많은 반도체(-극성)

            P 반도체 - 정공이 많은 반도체(+극성)

 

4. 다이오드

 전류를 한쪽 방향으로만 흘리는 반도체 부품이다. 정류기, 검파용 전류 스위칭으로 사용

 

종류 : 정류다이오드, 스위칭다이오드, 정전압 다이오드, 가변용량, 터널, 쇼트키, 발광, 포토, 배리스터 다이오드

 

반도체의 전류/전자의 흐름 : 전류는 +에서 - 흐른다. 전자는 -에서 + 흐른다.

반응형

'Busan IT > 제어기초' 카테고리의 다른 글

LEGO - Mindstorm  (0) 2015.02.04
ADC와 Lego Mindstorm  (0) 2015.02.03
마이크로 컴퓨터와 ADC & DAC  (0) 2015.02.02
마이크로 컨트롤러와 프로그램  (0) 2015.01.30
전기회로와 트랜지스터/캐피시터  (0) 2015.01.29
Posted by newind2000
Busan IT/제어언어2015. 1. 28. 22:10

CPU 구성과 컴퓨터의 정수기억방법


학습목표         - CPU 구성 요소와  기능에 대하여 안다.

        - 변수를 코딩하여 출력할  있다.

        - 컴퓨터의 정수 기억방법에 이해하고 양수와 음수를 표현할  있다.



 


 

1. CPU 구성 요소와 기능

 

 CPU(Central Process Unit) 중앙처리장치로써 연산, 제어, 기억, 출력의 기능을 한다. CPU 내부를 물리적으로 두부 자르 잘라서 설명하기는 힘들지만 주요 기능은 크게 3가지로 나뉜다.

 

1) ALU (Arithmetic Logic Unit)

2) CU (Control Unit)

3) Register

 

1) ALU 사칙 연산과 AND/OR 구분하여 연산을 처리하는 기능을 한다.

 

2) CU 명령어를 해독하고 실행하는 기능을 한다.

 

3) Register 기본적으로 기억의 역할을 하고 추가적으로 제어의 기능을 한다. 사용자는 Register 통해 CPU 제어할 있다.

 

2. 변수선언과 코딩

 

메모리에 특정공간을 남겨두는 것을 변수선언이라고 하며 이것의 최소단위는 1byte(=8bit)이다.

저장된 변수를 찾기 위해 특정 변수명을 지정해 주며 사용자는 저장공간의 용량의 따라 아래와 같은 변수선언 명령어를 사용할 있다.

 

Char = 1byte

Short = 2byte

Int = 4byte

 

코딩 , 변수선언은(char, short, int) 명령어 가장 상위에 몰아서 입력해야 한다.

변수 선언은 자료형” “변수명”; 형식을 취한다.

변수명 첫글자는 문자 혹은 언더바(_) 있으며 변수명은 Visual Studio에서 최대 255자까지 가능하다.

 

3. 컴퓨터의 정수기억법

 

컴퓨터의 정수 기억법으로 magnitude방식이 있다. 수를 표현할 때 최상위비트는 부호를 표시하기 위해 사용된다. 이러한 방식을 채택하면 수의 연산이 어려워지는데 이것을 해결하기 위해 아래와 같은 방법을 사용한다.

 

8bit 숫자 표현 방식에서, 0 ~ 127  까지는 원래대로 양의 정수를 표현하고

128~255 음의 정수 -128~-1 표현한다.

 

음의 정수를 이진법으로 바꿔주기 위해서

(1) 1 보수를 취한다.

(2) 2 보수를 취한다.

 

 

<요약 정리>

- CPU ALU, CU, Register 3개의 물리적 공간으로 나뉜다.

- 프로그래머는 register 통해 CPU 제어한다.

- CPU에서 변수는 변수선언에 의해 메모리가 할당되고 byte 다라 char(1), short(2), int(4) 나뉜다.

- 변수는 가장 위에 몰아서 입력해 준다.

- 컴퓨터는 오직 이진법(0, 1) 활용하여 숫자를 기억하고 2진법이 자리를 많이 차지하기에 16진법으로 고쳐쓰는 경우도 있다.

- 정수에서 (-) 표현하기 위해 숫자로 표현가능한 영역을 반으로 나누어 음과 양의 정수로 표현한다.

반응형

'Busan IT > 제어언어' 카테고리의 다른 글

포인터 변수의 기초  (0) 2015.02.04
제어문, 수의 표현 그리고 포인터  (0) 2015.02.03
컴파일의 단계와 처리  (0) 2015.02.02
수의 출력, 연산 그리고 address  (0) 2015.01.30
CPU와 메모리의 의사소통  (0) 2015.01.29
Posted by newind2000