읽기일기

Embedded Recipes (1)

http://recipes.egloos.com/5000239

1. Hardware 꼴라쥬 (Collage) - 회로도 읽기

a. Hardware 꼴라쥬

b. 신호와 주파수 영역 - Spectrum Analysis

Fourier space에서의 설명

c. Analog 신호와 Digital 신호, 그리고 Ground

  • Digital 신호는 High, low 2가지 상태만을 가질 수 있으며 그 level은 정하기 나름. 임계값(threshold)를 기준으로 High, low 결정
  • High impedance 상태, 혹은 floating : 내부에 무한대의 저항이 달린 것과 같아서 pin이 없는 것과 같은 상태, 무슨 값이 걸려있을 지 모름.

d. 초간단 회로이론 R(저항), L(인덕터), C(캐패시터)

저항

  • 저항의 단위는 옴, 저항의 크기를 변화시켜 원하는 크기의 전류를 흐르게 만들 수 있다.
  • 전류가 저항을 지나고 나면 그만큼의 전압이 원래 전압에서 빠지게 된다. 위치 에너지와 비슷하게 전위차가 존재함.
  • 저항을 직렬로 연결하면 전체 저항은 커지고 전류가 흐르기 힘들어짐.
  • 저항을 병렬로 연결하면 전류가 흐를 수 있는 길이 더 늘어나므로 전체 저항은 작아짐.

캐패시터

  • 주파수 값에 따라 저항 값이 달라짐.
  • 높은 주파수의 전압일 수록 저항이 작아짐, 따라서 교류는 통과하고 직류를 통과하지 못함. $ \delta V / \delta t = 1 / C $
  • C가 클 수록 전류가 많이 흐른다. DC block, bypass cap.
  • 캐패시터의 단위는 F, 패럿.

인덕터

  • 전류가 변화하지 못하도록 한다.
  • 높은 주파수일 수록 저항이 커져 급격한 신호의 흐름을 막는다.
  • $ V = L \delta I / \delta t $
  • 인덕터의 단위는 H, 헨리

e. 초간단 회로이론 응용 - 필터 (Filter)

  • 필더 : 저주파 혹은 고주파 만을 통과시킴
  • 캐패시터는 DC가 통과하지 못함.
  • AC는 저항에서 전압강하가 일어남, 캐패시터에서는 short와 다름 없음.
  • AC에서의 L은 open임.

f. Transistor 1%

  • Transistor는 Trans-Resistor, 전류의 양을 조절할 수 있다.
  • NPN형과 PNP형 두가지가 있음.
  • B는 base, E는 emitter, C는 Collector
  • B와 E사이의 전압을 얼마나 세게 주느냐에 따라 C와 E사이의 전류량을 결정
  • B의 압력에 따라 전류가 못 흐르는 차단 영역, 변화가 생기는 활성 영역, 전압이 너무 높아 CE 사이 전류가 더 흐르지 못하는 포화영역이 존재
  • 차단 영역, 포화영역을 이용하여 ON/oFF 기능으로 사용할 수 있음.
  • 활성영역은 말 그대로 증폭기로 사용할 수 있음.

g. Pull up, Pull down 그리고 Open Collector

  • Logic 0 Active인 pin을 Low Active, Logic 1 Active 인 pin을 High Active라고 부른다.
  • Low Active시스템은 평소에 high 상태로 만들어두고 active되었을 때만 low로 바꾸는 것이 이상적
  • High는 마찬가지로 반대의 경우.
  • 이러한 회로는 default 상태를 확실히 하기 위해 필요함.
  • transistor를 이용하여 switch 역할을 하도록 하여 default 상태에서 active 상태로의 변화를 줄 수 잇음.

h. RLC와 Transistor 感

Ripple제거, Control 포트 active를 위한 간단한 구조 소개.

i. 논리회로로의 확장

  • 트랜지스터를 이용하여 AND, OR, inverter를 만들 수 있음.
  • 만들어진 AND, OR, NAND 등을 이용하여 간단한 2바이트 Adder를 만들 수 있다.

j. IC 기본

  • 핀 번호는, 자리 표시가 있는 곳을 왼쪽으로 놓고 반시계방향으로 번호가 올라간다.
  • 보통 IC는 U301과 같은 형태로 U로 시작하는데 이는 UNIT이라는 의미. Capacitor는 C301, Resistor는 R301, Inductor는 L301 등.
  • NC, No connection : 아무것도 연결하지 말라.
  • CLK, Clock : edge trigger, edge가 생길 때 동작하는 것을 의미.
  • GND, Ground
  • VCC : 전원
  • DATA in, Data out

k. Register 넌 누구냐

  • 레지스터 : Flip Flop의 집합, 이는 1bit의 정보를 저장할 수 있다.
  • Latch는 1비트를 저장할 수 있는 소자, flip flop은 latch의 일종.
  • Flip flop을 나타내는 기호, DI, DO, W
  • W에 신호를 줄 때만 Data in이 저장되어 Data out으로 유지하고 있음.
  • DO, data out이 1인 동안 무언가를 수행하고자 한다면, Level trigger를 이용하여야 한다 (edge trigger와 다름에 주의)
  • 때론 W를 CLK으로 표시하기도 한다.
  • CLK을 나타낼 때 사용하는 작은 삼각형은 Edge trigger를 나타낸다.
  • Rising edge trigger, falling edge trigger.

레지스터의 종류

  • General purpose register
    • Address resister : 접근할 외부 메모리의 주소를 저장
    • Data resister : 외부 메모리에서 읽어온 값을 저장
    • Instruction pipeline resister : 외부 메모리에서 읽어온 OP code를 저장
  • Special purpose register
    • Program counter : 현재 실행되고 있는 주소를 기리킴
    • Stack pointer : 현재 사용하고 있는 STACK영역의 마지막 데이터가 push된 곳의 주소를 가리킴
    • Linked register : JUMP 했을 경우 다시 돌아갈 주소를 가리킴
    • Status register : MCU의 형재 상태를 나타냄
  • I/O Register

l. Clock 이란?

  • 주기적인 전기적 펄스로 Clock에 따라 모든 동작이 동기화 됨.
  • 동기화의 필요성 : 논리회로와 Latch만으로 모든 것을 구성하기에는 너무 복잡하다. 한번에 모든 것을 계산하기 보다는 여러 단계로 나눈 뒤, 직전 상태를 저장하고 이를 다시 사용한다면 보다 단순하게 구성이 가능하다.
  • 또한, 입력과 출력 시점의 명확하게 하는 효과.
  • 물리적인 한계로 Clock속도를 빠르게 하는 데 한계가 있음.

m. Bus Transfer Mechanism

  • 버스는 장치들이 정보공유를 위하여 공유하는 선들의 집합.
  • 하지만 한 Clock에서는 허가받은 장치들의 신호만 보임.
  • 현재 시점에서 어느 장치가 버스를 사용할지는 Arbiter의 역할.
  • 주소버스, 데이터버스, 제어 및 상태버스가 존재.

n. Timing 및 Spec 읽기

  • 게이트의 입력 신호가 들어온 후 출력 신호가 나오기까지 시간 지연이 있음.
  • 신호가 스위칭된다고 할 때, 10% 에서 90%로 올리기까지의 필요한 시간을 Tim Low to High (tTLH, tr)
  • 90%에서 10%으로 내리기까지 필요한 시간을 Tim High to Low (tTHL, tf)
  • High impedance, Hi-Z : Bus에 아무 신호가 없는 상태
  • Timing diagram은 Timing table과 함께 제공.

o. Memory의 선정과 XIP

  • RAM, ROM의 구분
  • Excute in place (XIP) : 메모리상에서 직접 code를 실행하는 기술, random Access가 가능해야 한다.
  • RAM
    • Static RAM(SRAM) : 전기적인 control 없이 random access 가능. 비쌈.
    • Dynamic RAM(DRAM) : 시간이 지나면 충전되었던 전하가 유실되므로 일정 시간마다 다시 전하를 충전해줘야 함. 집적도가 높다
    • Pseudo SRAM(PSRAM) : 재충전 회로를 DRAM에 붙여 나오므로 사용자가 충전을 신경쓰지 않아도 됨.
  • Synchronous DRAM(SDRAM) : 시스템 버스와 동기를 맞춤, CPU와 동기를 맞추므로 거의 최대 성능을 기대할 수 있음
  • Double data rate(DDR) SDRAM : 시스템 버스와 동기를 맞추나 버스의 rising, falling edge 모두에서 동작을 하므로 data가 두배로 빨리 전송될 수 있음.
  • Asynchronous RAM : input을 받은 후 일정 시간 동안 기다려 output을 내놓으므로 이 시간동안 wait state가 발생하여 비효율적임.
  • ROM은 주로 Flash memory가 사용됨.
    • NOR : Cell이 병렬로 연결되어있어 Address / Data line을 모두 가지고 있고, 바이트 단위로 Random access가 가능하다. 즉, XIP 가능. 쓰기는 느리지만 읽기가 빠르다.
    • NAND : Cell이 직렬로 연결되어 있어, 읽을 때 1개 페이지 단위로만 읽을 수 있음. Small page의 경우 512바이트 정도, large page를 지원한다면 2KB씩 읽을 수 있음. 따라서 XIP 불가능. 읽기는 빠르지만 쓰기가 빠름.
  • Multi chip packet (MCP) : Flash memory와 RAM을 한칩에 한꺼번에 장착, 현재는 NAND + (DDR) SDRAM의 조합이 보통.

p. RAM Memory의 물리적 동작

  • 메모리는 보통 Address pin과 Data pin, RD, WR pin으로 구성되어있음.

q. 확장 to the CPU - How CPU Works

  • CPU에 나와있는 pin들에 약속된 신호를 주면 CPU가 대항하는 일을 수행
  • CPU는 주로 CU와 Decoder로 나뉘어지는데 decoder가 명령어를 읽어 해석하면 이에 대해 CU가 각종 제어 신호를 발생시킴
  • CPU에 여러 외부기능이 결합된 AVR MCU (Micro controller unit)의 구성요소
    • Program Counter (PC)
    • General register 32개
    • Instruction register (IR)
    • ALU
    • 내부 RAM

q. 일반적인 CPU의 동작 예 (Core)와 Pipe Line

다시 한 번 CPu의 내부를 자세히 살펴본다면,

  • Program Counter (PC) : CPU가 현재 실행하고 있는 instruction의 주소를 가리킴
  • Instruction register (IR) : PC가 가리키는 주소에서 읽어온 instruction
  • Address register : 현재 사용하는 Data에 접근하기 위한 주소
  • Data register : Address register가 가리키는 주소의 실제 값
  • ACC : CPU 연산에 사용되는 값들을 임시로 저장하는데 주로 사용되는 특수 레지스터. 사용자가 접근할 수 없음.
  • CPU는 항상 fetch, decode, execution의 순서로 실행
  • 한가지 일을 할대 나머지는 쉬고 있으므로, 다른 일을 수행하기 위해 pipeline을 구성하였다. (decode를 할 동안 fetch를 동시에 수행)
  • CPU에 따라 pipeline의 순서가 다를 수 있음.
  • Pipeline이 적용되더라도 PC는 항상 현재 fetch하고 깄을 곳을 가리킴


Add a Comment Trackback