'2015/02/17'에 해당되는 글 2건

  1. 2015.02.17 AVR과 ARM/Altium으로 반파정류회로 만들기
  2. 2015.02.17 연산과 변수의 최적화
Busan IT/제어기초2015. 2. 17. 17:44

제어기초 - AVRARM/Altium으로 반파정류회로 만들기

 

 

AVR이란

 

1.AVR이란.

 

ATMEL사가 개발한AVR은 현재 8비트 AVR32미트 AVR을 제공하고 있는 마이크로 컨트롤러이다.

AVR의 다양한 명령과 쉬운 구조를 띄고 있어 마이크로컨트롤러를 이해하는데 쉽게 접근할 수 있으며, 가격이 저렴하고 응용하

기 쉬워 산업시장에서도 많이 사용되어지고 있다.

AVR1개의 클록사이클에 1개의 명령을 처리할 수 있으며, 1.8V~5.5V까지 어느 전압이든 동작 시킬 수 있다

 

 

AVR의 종류

 

Tiny : 8-24 시리즈 핀수가 핀 정도의 작은 외형으로 대부분 외부 시스템버스가 없고 내부에 정 1K-2K byte도의 플래시 메모리

를 가지고 있어 용량도 작은 편이다 를 지원하지 않고 타이머가 없으며 비트 . UART RTC 16타이머가 없고 비트 타이머만 개 

있는 등 기능이나 성능이 비교적 낮지만 가격이 저렴하여 소형제어기에 8 1-2적당하다.

 

Mega : 28-100 8K-256Kbyte 256-4K byte 시리즈 핀 정도의 외형을 갖고 내부에 정도의 플래시 메모리와정도의 과 의 을 내

장하고 있다 의 클럭에서 의 속도를 갖는 등 성 EEPROM 512-4K byte SRAM . 20MHz 20MIPS능과 기능이 높으나 가격도 높

.

 

AT90 : AT90S . 시리즈 중간정도 사양을 가진 시리즈로 의 경우에는 사양화 되었

 

 

AVR 내부 Block Diagram(Atmega 2560 data sheet)

 

1


 

AVR 특징

 

-프로그램을 다운로드하여 저장할 수 있는 2k ~ 128k 바이트의 플래시 메모리를 내장

 

- 내부 EEPROM 용량: 128에서 512byte까지 가능

- 내부 Ocillator에 의해 동작하는 watchdog timerfull duplex 방식의 다양한 외부 접속 장치를 내장

- 다양한 인터럽트 소스와 파워 절약 모드, 외부 메모리 추가가 가능

- 내장 Device

- Timer/Counter, 직렬 통신 장치, 아날로그 비교기, 외부 데이터 장치 인터페이스, 입출력 포트, SPI, 아날로그 디지털 변환기(ADC)

 

 

ARM

 

ARM이란 무엇인가?

 

-Advanced RISC Machine의 약자

-향상된 RISC 기계

-임베디드 기기에 많이 사용되는 32-bit RISC 프로세서

-1985426일 영국 캠브릿지에 있는 Arcon Computer사에서 처음으로 사용화 -> Arcon RISC Machine의 약자에서 ARM이라는 단어 유래

 

ARM의 종류

 

ARM의 특징

 

- 소비 전력이 적다.

- 빠른 속도에도 발열이 적다.

- 베터리를 전원으로 사용하는 모바일 기기에서 가장 각광받는 요인이 됨.

 

- 칩 면적이 작다.

-소형화에 유리

-발열 문제 적음

 

- 고성능 32비트 RISC프로세서이다.

- 캐쉬메모리를 내장하여 파이프 라인 처리 방식으로 명령을 실행(1명령/1cycle)

- 명령 패치와 데이터 액세서를 동시에 수행할 수 있도록 개선

- 명령 처리 구조 단순화를 위해 모든 데이터 처리나 연산 명령은 내부 레지스터를 중심으로 이루어 지며 레지스터와 메모리 사이에 데이터 이동은 별도의 로드 및 스 토어 명령으로 수행한다.

- 많은 범용 레지스터와 효율적인 명령 세트를 가지고 있다.

- 명령 세트를 확장하기가 매우 용이한 구조(ISA ; Instruction Set Architecture) 로 되어 있다.

- Endian Mode 지원

- ARM사는 반도체 제조사가 아니다.

- 가격이 저렴하다.

 

/* Endian : 컴퓨터나 메모리와 같은 1차원 공간에 여러 개의 연속된 대상을 배열하는 방법

Little Endian Mode : 큰 단위가 앞에 오는 것

Bit Endian Mode : 작은 단위가 앞에 오는 것

 

ARD의 응용 분야

 

- 임베디드 실시간 시스템 - 데이터 저장 장치, 자동차, 산업용 기기, 네트워크 장비 등과 같이 OS를 탑재하지 않은 프로세서 내장형 실시간 제어 시스템

- 개방형 응용 플랫폼 - Linux, Palm OS, Symbian OS, Windows CE 등의 OS를 탑재하여 다양한 응용 프로그램을 실행할 수 있는 개방형 플랫폼, 휴대용 기기, 오락 기기, 디지털 영상 처리 장비 등에 사용됨.

- 보안 응용 분야 - 스카트 카드, SIM 카드, 화폐지불시스템 등

 

 

 

** Altium 실습으로 반파 정류회로 만들기

 

 

 

 

 

 

 

 

 

 

 

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

제어언어 - 연산과 변수의 최적화

 

#1. 쉬프트 연산과 최적과

 

학습목표 - 쉬프트 연산의 효과를 이해하고 사용할 수 있다.

 

char cNum = -1;

int iNum;

iNum = cNum;

 

char변수의 저장 공간이 적더라도 int변수로 옮기는 과정에서 음수를 입력해야 하기 때문에 모든 레지스터의 공간을 FF로 채워서 음수를 만들어야 한다.

 

shift연산 >>에서도 음수일 때 빈 공간을 0이 아닌 1로 채우는 이유도 이와 같다.

 

//cpu최적화를 위해서는 unsigned int 변수가 가장 좋다.

//float을 써 버리면 cpu의 속도는 현저히 줄어든다.

//CPU에도 심장처럼 지속적으로 운동을 하는 부분이 있다. 이것을 oscillator라고 한다.

 

CPU에서 연산 속도는 + > 쉬프트 연산 > 곱하기 순이다.

#2. 자료형의 선언과 사용

학습목표 - 자료형의 종류와 표현 양식을 안다.

 

C언어가 제공하는 기본 자료형의 이해

 

변수의 크기는 compiler에 따라 다르다 때문에 sizeof로 변수의 크기를 확인해 볼 수 있다.

 

//sizeof( )

 



 

char(1) <= short(2) <= long(4) <=long long(8)

 

float(4) <= double(8) <= long double(8)

 

 

p/113 예제 - 원의 넓이)

 



 

double을 사용할 때 표현 방식을 %lf(엘에프)를 사용해야 한다.

#3. 변수와 최적화

 

학습목표 - 변수를 최적화 시키는 변수를 이해한다.

 

ASCII코드는 인간이 인식할 수 있는 문자를 지정하고 이를 그림화하여 화면에 표시해 준다.

 

문자를 사용할 때 작음 따옴표를 입력해주면 ASCII코드로 인식한다.

 

p/119

 

unsigned int형으로 선언하면 cpu에 최적화되지만 문자를 입력하는 경우는 연산을 하지 않기 때문에 굳이 int가 아닌 char을 써 주는 것이 낫다.

 

//문자를 표현해 주기는 하지만 모든 정보는 컴퓨터에서 정수 형태로 저장된다.

 

상수란 변경이 불가능한 값을 뜻한다.

 

p/122 실습 - literal size)

 




끝에 "f“를 삽입해 주어 형을 선언해 주는 것을 접미사라고 한다.

 

 

/* xy좌표 축을 입력하여 사각형의 크기를 구하는 프로그램

 



 

 

 

*/

 

 

#4. 다양한 변수

 

학습목표 - 변수의 형태와 특성을 이해한다.

 

 

 

U - unsigned

 

L - long

 

F - float

 

실수에서는 L을 쓰면 long double이 된다.

 

Symbolic상수는 변수처럼 쓰지만 수정이 안되는 상수이다.

 

선언: 접두사 cont

 

//const는 대입연산자가 있을 경우 왼쪽에 배치가 안된다.

 

 




 

위에 값들을 분석해 보자면

 

100literal, iNum1variable value, iNum2constant value이다.

 

// warning C4090을 띄운 이유는 포인터를 사용하여 const를 변경할까봐 경고 메시지를 띄우는 것이다.

 

const를 사용하는 변수선언 시 관례적으로 변수 값을 전부 대문자로 사용하는데 이것은 선언한 const변수의 값을 수정하지 말라는 표시이다.

 

 

 

 

 

 

 

 

 

반응형
Posted by newind2000