임베디드 레시피 Chapter 1. HW ① 회로이론
1. 신호
주파수: 진동운동에서 단위시간 당 같은것이 일어난 횟수 또는 빈도
- $cos(2 \pi ft)$ = 주파수가 f이고, 주기가 1/t인 주기함수
- f = 1Hz인 $cos(2 \pi t)$ 주기함수 - 시간영역에서는 1초에 1회 구불구불 오르내리는, 주파수영역에서는 1Hz 값으로 일정한 형태
AC신호: 이러한 '주기적 특징' 및 주파수를 갖는 신호
DC신호: 주파수를 갖지 않거나 주기가 한없이 0에 가까운 신호
푸리에변환(Fourier Transform): 모든 신호는 무한개의 주기함수의 합으로 나타낼 수 있습니다.
- 어떤 신호 = 주기 T 주파수 성분 + 주기 (T+1) 주파수 성분 + ... + 주기 (T+N) 주파수 성분
- 모든 신호는 주파수를 가진 AC신호와 주기가 0에 한없이 가까운 저주파인 DC성분의 합으로 이뤄집니다.
Rect 함수(Rectangular function): 크기가 1이고 -τ/2 부터 τ/2까지를 width로 갖는 사각형 모양의 함수입니다. 임베디드 시스템에서의 신호는 보통 이러한 rect 함수 꼴을 하고 있습니다. Rect 함수도 푸리에 변환을 통해 무한개의 주기함수의 합으로 표현할 수 있습니다. [참고]
Digital 신호: AC신호와 같은 Analog 신호를 임의의 기준값(Threshold)을 넘는지 여부에 따라 불 값(boolean logic)으로 나타낸 신호를 말합니다. 예를들어 threshold가 1.5V라면, 이를 넘는 값은 모두 High(1)로, 넘지 않는 값은 모두 Low(0)로 취급합니다.
Bounce ( Transition noise ): 이상적인 경우라면 `0 -> 1, 1 -> 0`으로 값이 변할 때 계단형태로 딱 변해야겠지만, 아쉽게도 실제로는 위 그림의 첫번째 그래프처럼 아주 짧은 시간동안 물결이 출렁이듯 출렁이다가 올바른 값을 유지합니다. 원치않는 AC 신호성분이 매우 짧은 시간동안 영향을 주는 이 현상은 시스템에 다양한 영향을 줍니다.
- 첫 바운스에 전압이 크게 치솟습니다. 갑자기 높은 전압이 흘러 회로에 영향을 줄 수 있습니다.
- 직후 크게 전압이 내려앉습니다. 원하는 값보다 훨씬 낮은 전압과 전류가 흘러 시스템이 셧다운 될 수 있습니다.
- 0을 1로, 1을 0으로 인식하는 신호 인식 문제가 발생할 수도 있습니다.
캐패시터를 GND 쪽에 병렬로 달아주면, 전압이 내려앉을 때 자신이 갖고있는 전하를 내뿜어 전압이 내려앉은만큼 보상해줘서 오른쪽 그래프처럼 안정적으로 만들어줍니다. 이러한 캐패시터를 decoupling condensor 또는 bypass condensor라고 합니다. 캐패시터에 대해서는 다음절에 조금 더 자세히 다룹니다.
Ground (GND)는 모든 전위에 대해 기준이 되는 0V를 의미하며, 시스템 내부의 모든 전류가 몰려드는 곳입니다. 전압은 '전기적 위치에너지'를 의미합니다. 상대적 위치가 의미를 갖기 위해선 기준점이 확실해야 합니다. 그래야 digital 신호의 0과 1도 확실하게 구분할 수 있겠지요.
2. 초간단 회로이론 - R, L, C
2.1. 저항
- 흐르는 전류의 양을 조절하는 수도꼭지 역할을 하는 소자입니다.
- 옴의 법칙 V = IR에 따라 고정된 전압에 대해 저항값을 키우면 전류량은 적어지고, 저항값을 낮추면 전류를 크게 만들 수 있습니다.
- 물이 통과하는 파이프 단면적이 넓을수록, 길이는 짧을수록 물은 세차게 잘 흐르겠죠?
그러므로 저항은 단면적에 반비례하고, 길이에 비례합니다.
2.2. 캐패시터
- 캐패시터는 내부 절연체에 전하를 가두는 성질을 가진 소자입니다.
- 캐패시터는 전압의 변화량에 반비례하고 전류에 대한 저항 역할을 합니다. ($dv/dt = I/C$)
- 전압의 변화량이 크다면, 저항 역할을 하는 C는 작아집니다.
- 전압의 변화량이 크다 (고주파 일수록) → I는 커져야하고 C는 작아져야 함
- 고주파 전압일수록 전류가 잘 통합니다.
- AC신호같이 고주파 성분은 캐패시터를 잘 통과하지만, DC신호는 잘 통과 못합니다.
- 일정한 전압 변화량에 대해 C가 커질수록, 등호를 만족하기 위해서 전류는 더 많이 흐릅니다.
- 이렇게 전압의 DC성분과 AC성분을 분리하는 성질 때문에 DC block 또는 Bypass condensor라고 부릅니다.
2.3. 인덕터
- 인덕터는 전류 흐름의 반대방향으로 전압을 유도해 전류가 변화하지 못하도록 하는 성질을 가진 소자입니다.
- 인덕터는 전류의 변화량에 반비례하고 전압에 대한 저항 역할을 합니다. ($V = L \times di/dt$)
- 정해진 주파수에서 L이 클수록 전류는 작아집니다.
- 캐패시터와 반대로 인덕터는 고주파를 막고, 저주파의 전류일수록 쉽게 통과합니다.
- 고주파 흡수용으로 사용하는 인덕터를 'Bead'(비드) 라고 부릅니다.
전압이 일정할 때 | 주파수 입장에서 | ||
R이 클수록 | 전류는 적게 흐릅니다 | R은 | 주파수랑 상관없습니다 |
C가 클수록 | 저항이 작아져 전류가 잘 흐릅니다 | C는 | 고주파일수록 저항이 작습니다 |
L이 클수록 | 저항이 커져 전류가 적게 흐릅니다 | L은 | 고주파일수록 저항이 큽니다 |
3. 초간단 회로이론 - 필터
DC 성분을 주로 다루는 임베디드 시스템에서 주로 사용되는 필터로는 저주파 성분만 뽑아내는 Low pass Filter (LPF)가 있습니다. 윗 절에서 배운 R, L, C만 사용해도 간단한 LPF를 구현할 수 있습니다.
저항 1개, 캐패시터 1개가 직렬로 연결된 RC회로가 있습니다. 신호는 AC성분과 DC성분의 합으로 나타낼 수 있으므로, 이 회로를 DC 입장에서 보면 왼쪽, AC 입장에서 보면 오른쪽 회로와 같습니다.
- 왼쪽(DC성분): DC 성분은 캐패시터를 거의 통과하지 못합니다. 따라서 마치 캐패시터가 있는 부분의 회로가 끊긴것처럼 됩니다. 이를 저항값이 ∞인 저항이 있는 것이라 생각한다면, 거의 모든 전압이 R이 아니라 ∞인 저항에서 소모될 것입니다. 따라서 끝단에 걸리는 전압 V_dc는 입력전압 V_in과 거의 같습니다.
- 오른쪽(AC성분): AC 성분은 캐패시터를 잘 통과합니다. 따라서 마치 그냥 도선인 것처럼 연결됩니다. 입력전압 V_in은 저항 R에서 모든 전압강하가 일어나게 돼 오른쪽 끝단에는 더이상 전위차가 없게 됩니다. 따라서 V_ac = 0입니다.
- DC성분과 AC성분을 합치면, 오른쪽 끝단에는 V_out = V_dc + V_ac = V_dc + 0 = V_dc 입니다.
입력전압의 DC성분만 뽑혀서 나오는 필터가 만들어졌음을 알 수 있습니다.
4. 트랜지스터 (Transistor)
트랜지스터는 Trans + Resistor의 합성어로 저항값이 바뀌는 소자입니다.
트랜지스터는 Base, Collector, Emitter 세 가지 부분으로 나뉩니다.
- Base에 적당한 전압이 인가되면, 마치 스위치가 눌리듯 collector와 emitter 사이에 전류가 흐릅니다.
- 인가하는 전압에 따라, 차단영역(Cut-off region), 활성영역(Active region), 포화영역(Saturation region) 세 가지로 나뉩니다.
- 차단영역은 Base에 인가된 전압이 너무 작아서 CE 전류가 흐르지 못하는 영역을 의미합니다.
- 활성영역은 Base에 인가되는 전압의 아주 작은 변화량에 비례해서 CE 전류가 들쭉날쭉 변하는 영역을 의미합니다. 아주 작은신호를 Base에 흘려서 CE간 전류가 큰 폭으로 휙휙 움직이는 증폭 기능 (Amplifier)으로 사용할 수 있습니다.
- 포화영역은 Base에 너무 큰 전압이 인가돼 CE 전류가 더 이상 증가하지 못하는 영역을 의미합니다. 차단영역을 Low, 포화영역을 High라고 생각해 스위칭 기능 (Switching)으로 사용할 수 있습니다.
트랜지스터를 이용하면, 외부에서 시스템을 향해 원하는 0 또는 1 신호를 전달할 수 있습니다. 이때 전달하는 방식과 시스템이 신호를 이해하는 방식에 따라 Low active (또는 active low), Pull up 방식과 High active (또는 active high), Pull down 두 가지 방식으로 구분할 수 있습니다.
- Low active 시스템은 low(`0`)값이 들어올 때를 동작상태로 인식하고,
High active 시스템은 high(`1`)값이 들어올 때를 동작상태로 인식합니다.
다양한 외부 요인 때문에 순간적으로 입력전압 변하게 돼 시스템이 잘못 동작하거나 잘못된 값을 읽으면 안 되겠지요. 시스템에 안정된 전압을 주기 위해 풀업/풀다운 회로를 적용합니다.
- 가운데 그림은 low active 시스템일 때, 풀업 저항을 사용한 그림입니다.
- 트랜지스터가 OFF일 때, 외부에서 인가되는 전압이 그대로 시스템으로 전달됩니다. 가만히 있는 상태일 때 시스템은 High값을 가지고, low active 시스템이므로 비활성화 상태입니다.
- 이때, 시스템에 안정적으로 high 값이 인가되도록 풀업 저항을 둡니다.
- 풀업 저항이 없다면, high인지, low인지 애매한 상태인 floating 상태가 되기 때문입니다.
- 트랜지스터가 ON일 때, 전류는 저항이 더 적은 쪽으로 이동할테니 시스템으로는 전류가 흐르지 않습니다. 이때 시스템은 Low값을 가지고, 활성화 됩니다.
- 트랜지스터가 OFF일 때, 외부에서 인가되는 전압이 그대로 시스템으로 전달됩니다. 가만히 있는 상태일 때 시스템은 High값을 가지고, low active 시스템이므로 비활성화 상태입니다.
- 오른쪽 그림은 high active 시스템일 때, 풀다운 저항을 사용한 그림입니다.
- 트랜지스터가 OFF일 때, 외부에서 전압이 못 들어옵니다.따라서 시스템은 low값을 가지고, high active 시스템이므로 비활성화 상태입니다.
- 이때, 번개가 친다든지, 정전기가 난다든지 외부요인으로 인해 순간적으로 전압이 튈 때, 트랜지스터의 base와 시스템에 High 값이 들어가는 것을 방지하고, 안정적으로 low 값을 유지하기 위해 풀다운 저항을 둡니다.
- 트랜지스터가 ON일 때, 외부에서 전압이 인가돼 시스템에 high값이 들어갑니다. High active 시스템이므로 활성화 상태로 바뀝니다.
Low active | 풀업저항 | Idle에서 안정적으로 High 공급 | 스위치 안 누르면 High, 누르면 Low 인가 |
High active | 풀다운저항 | Idle에서 안정적으로 Low 공급 | 스위치 안 누르면 Low, 누르면 High 인가 |
5. 정리
지금까지 배운 내용을 4가지 사례에 적용해서 해석할 수 있는지 봅시다.
1. Bypass capacitor
우리는 앞서 캐패시터는 DC성분은 막고, AC성분은 통과시킨다고 배웠습니다.
- AC성분 입장에서 캐패시터는 저항이 아주 작기 때문에 캐패시터 쪽으로 흐르게 됩니다. 그리고 그 끝에는 GND가 있네요.
- DC성분 입장에서 캐패시터는 저항이 너무 크기 때문에 1번 핀으로 흐르게 됩니다.
인가되는 입력 전압에서 DC성분만 추출해 ripple 및 bounce를 최소화하려는 bypass capacitor 사용 예시였습니다.
2. Low pass filter (LPF)
우리는 앞서 인덕터는 DC성분을 잘 통과시키고, AC성분은 막는다고 배웠습니다. 이런 용도로 사용하는 인덕터를 'Bead'라고 부르기로 했죠. Bead와 함께 예제 1번에서 봤던 bypass capacitor까지 사용해서 한 번 더 AC성분을 걸러내는 모습입니다.
인덕터 대신 저항을 사용해도 똑같은 결과를 낳지만, 인덕터는 전체적으로 AC성분을 줄이고 '특정 주파수를 아예 제거하는' 장점도 있기 때문에 통신회로에서 곧잘 사용합니다.
3. Chip의 동작
Control 핀을 통해 특정 명령 신호가 인가되는데, bypass capacitor가 연결돼있어서 더욱 확실한 DC값이 들어갈 것입니다.
명령으로 인해 5번 핀에 High가 출력되고, 트랜지스터가 활성화돼 전류가 흐릅니다.
- 'USB_CONN1' 입장에서, 트랜지스터가 활성화 되기 전에는 high 신호가 인가되고 있었을 겁니다.
- 트랜지스터가 활성화 되면서 'USB_CONN1' 방향으로 흐르던 전류가 트랜지스터 collector -> emitter 방향으로 흐릅니다.
- 따라서 'USB_CONN1' 입장에서는 트랜지스터가 활성화 되면 low 신호가 인가됩니다.
- 이를 토대로 'USB_CONN1'은 low active인 무언가인것을 알 수 있습니다.
4. NPN + PNP
Control 핀에 High 신호가 들어온 경우, 아래쪽 T1 트랜지스터가 활성화되고 Input → 저항 R1 → 3번 → 5번 → 1번 → GND로 전류가 흐릅니다. 그러면서 동시에 T2 트랜지스터도 활성화 돼 Input → 저항 R1 → 3번 → 4번 → OUT으로 흐릅니다.
Control 핀에 Low 신호가 들어온 경우, T1, T2 트랜지스터 모두 활성화되지 않습니다. 따라서 OUT에는 아무 값도 나오지 않고 floating 상태가 됩니다.
지금까지 배운 간단한 내용으로도 이렇게 실제로 회로를 해석할 수 있습니다.