[1]ARM 보드설계 - 회로도 이해하기
글쓴이 : 조형기 (2004년 12월 14일 오전 12:31) 읽은수: 711 [ 임베디드강좌/조형기  ]  
[1]ARM 보드설계 - 회로도 이해하기

S3C2440A의 회로도를 보기 전에 회로도를 보는 법을 간략히 알아본다.
이런 글을 굳이 적기는 싫었지만, 개인적으로 요청이 들어와서 어쩔수 없이 하였다.
하지만 필자의 하드웨어 실력이 그저 그러므로, 간단한 레퍼런스를 빼껴 놓았다.
이 글은 '임베디드 하드웨어 이해와 설계'라는 책의 2장의 내용을 요약한 것이다.
이 글은 정말로 기초적인 내용들인데, 이를 잘 읽고 다음에 첨부할 SMDK2440 보드의
회로도를 분석해 보라. 욕이 나올 것이다. (그래도 천릿길도 한걸음부터...)

임베디드 시스템 프로그래머가 회로도를 그리고 읽을 줄 모르면 큰 진전을 보기 어렵다.
회로도는 언제 어디서든 접하게 되므로, 회로도에 대한 이해는 필수이다.



(1)ECO
회로도는 실제 회로에 어떤 소자를 사용하며, 어떻게 연결할지를 보여준다. 또한 조립
순서와 같은 부가 정보를 포함하기도 한다. 또 초안에서부터 변경해 온 내용을 기록한
수정 목록이 들어 있는 경우도 있다. 흔히 이 목록을 ECO(Engineering Change Orders)
라고 한다. 시간이 지나면서 설계를 추가하고 변경하기 마련이므로, 무엇을, 더 중요
하게는 왜 변경을 했는지를 기록하는 습관은 매우 중요하다. 코드에 주석을 다는 것과
같은 이치이다.




(2)소자와 선
근본적으로 회로도 내용은 소자와 선, 두 종류이다.
선(Net)은 소자 사이 연결을 나타낸다.
소자(Device)는 이름과 종류를 표시한다. 예를 들어 메모리 칩의 이름은 U3이며, 소자
종류는 AT45DB161이라고 표시할 수 있다. 이름은 단지 참조용일 뿐이고 원시 코드에서
변수명과 같다. 소자 종류는 제조업체가 사용하는 실제 소자 번호를 표현한다.

소자 종류가 같을 경우, 같은 접두어를 소자 이름에 붙이는 명명법을 흔히 사용한다.
예를 들어 저항에는 접두어 R을 붙인다. 회로도에서 R1, R2, R3이라고 표시한 저항을
쉽게 접할 수 있다. 유사하게

커패시터는 C
인덕터는 L
다이오드는 D
트랜지스터는 Q
크리스탈은 X
연결단자와 점퍼는 J
반도체 칩은 주로 U
를 붙인다. 어디까지나 관습이다.

아래 그림1은 소자와 선을 모두 보여주는 예제이다.
소자에는 이름과 번호뿐만 아니라 핀 배열도 있다. 핀에는 번호나 이름, 혹은 둘 다를
표기한다. 번호는 실제 칩에서 핀 위치를 분별하는 데 사용하고, 이름은 핀 기능을
표시한다. 하지만, 저항과 같은 소자는 핀 이름이나 번호가 없다.

핀 특성을 나타내는 이름과 기호를 쓰기도 한다. 그림1은 다양한 핀을 제공하는 소자
도면을 예로 보여준다.

핀 1은 일반적인 편이다.

핀 2는 로우에서 활성(active low)이라는 표시로 이름 위에 줄이 있다. 이는 논리값 0
에서 핀을 활성화하고, 논리값 1에서 비활성화한다는 뜻이다. 핀 2의 이름은 CS로, 대개
칩 선택(chip select)을 의미한다. 칩 선택은 칩을 활성화하기 위해 사용하는 핀이며,
주변기기와 메모리 칩 대부분은 칩 선택 입력이 있다. 컴퓨터 시스템 내부에는 메모리와
주변기기가 많이 존재하기 때문에 칩 선택이 중요하다. 프로세서는 칩 선택을 통해서 데
이터를 읽고 쓸 칩을 활성화한다. 일부 디바이스에는 칩 활성화(chip enable)를 뜻하는
CE라는 입력 핀이 있다. 이 핀은 같은 기능을 하지만, 단지 다른 이름을 사용할 뿐이다.

핀 3에서 작은 삼각형은 모서리 변이에 따른 입력(edge-triggered input)이라는 표시다.

핀 4와 8은 각각 접지(GND)와 전원(VCC)이다. VCC 또는 VDD는 칩 전원 공급원을 표시하
는 데 사용한다. 변압기와 고체 전자공학에서 흔히 쓰는 용어인 Collectors에서 C(VCC),
Drain에서 D(VDD)를 각각 따왔다. 용어가 무슨 뜻인지 모른다고 걱정할 필요는 없다.
VCC나 VDD는 전원 공급과 관련이 있다는 사실만 알면 된다.

핀 7은 하이에서 활성인 출력 핀이며, 핀 6은 로우에서 활성인 출력 핀이다. 핀 6에 있는
원을 주목하기 바란다. 이 원은 반전출력(inverted output)을 나타낸다. 핀 7과 동일한
이름을 사용하여 핀 6이 핀 7 출력을 반전한다는 표시를 한다.

마지막으로, 핀 5는 NC라고 표시되어 있다. '연결 없음(No Connect)'이라는 말로, 핀에
아무런 기능이 없다는 뜻이다. 이 핀에 선을 연결해서는 안 된다(매우 드물지만'연결하지
마시오(Do Not Wire)'라고 표시한 핀도 있다. 같은 뜻이다). 그러나, NC라는 이름이 붙었
다고 해서 무조건 연결 없음이라고 생각해야 한다는 뜻은 아니다. 칩 제조업체가 다른
이유로 핀을 NC라고 부를 수도 있다. 마찬가지로, 각 디바이스에 따라오는 데이터시트를
주의깊게 확인해야 한다.

두 소자 사이를 선으로 연결하거나, 그냥 선 이름(net label)만을 표시할 수 도 있다.
선 이름은 같은 이름을 가진 다른 선 전부와 연결되어있음을 뜻한다. 복잡한 회로도에서
는 연결해야 할 선 전부를 일일이 나타내면 오히려 실용적이지 못할 수 도 있다. 선이
여기저기로 복잡하게 뻗어있다면, 최종 회로도를 쉽게 이해하기는 불가능할 것이다. 그래
서 단순히 선에 이름을 붙이는 방법을 널리 사용한다. 이 방법만으로도 어느 소자를 어느
소자에 연결해야 하는지 표시하는 데는 충분하다.




(3)버스선
버스와 같은 서로 관련이 있는 신호선은 버스 선으로 표시한다. 그림1 오른쪽 참조
설계를 하다보면 회로도가 한 장을 넘는 경우가 많다. 프로그램을 함수로 나누고 자주 사
용하는 코드를 라이브러리로 만들듯이, 회로 설계 역시 기능 단위로 나누어 여러 설계에
걸쳐 재사용할 수도 있다. 예를 들어, 동일한 전원 공급 회로를 여러 임베디드 컴퓨터 설
계에 사용할 수 있다. 전원 공급 회로를 별도 시트로 만들어 두면, 다른 설계에서 여러번
재사용할 수 있다.

회도도에서 선이 다른 시트에 있는 회로도와 연결되어 있음을 나타내기 위해서는 포트
(port)를 사용한다. 그림2는 다른 시트에 있는 소자와 연결하는 경우다. 이 경우 D0:D3
포트는 양방향 버스이고, A0:A3 포트는 이 시트로 들어오는 입력 버스다. (즉, 다른 시트
에서 나오는 출력이다) MODE포트는 이 시트로 들어오는 입력선이다.




(4)선 교차
그림5는 교차하는 선을 나타낸다.
왼쪽 세로선은 가로선에 연결되지 않았다. 단지 서로 교차할 뿐이다. 연결된 선을 나타
낼 때에는 오른쪽과 같이 교차점(junction dot)을 찍어 표시한다.
일부 취미용 전자공학 잡지와 옛날 교과서에서는 선이 교차할 때 작은 다리 표시를 해 놓
은 경우를 가끔 볼 수 있지만, 이는 세련되지 못하고 미숙한 방법이다. 그림3 참조




(5)전원포트
그림4은 흔히 사용하는 전원 포트(power port)를 뜻한다. 이 기호는 전압 공급원(전력 공
급 장치)과 접지점 연결을 표시한다. 접지 기호는 모두 전압이 0라는 표시다. 접지 네트
워크(ground network)가 다를 경우에는 이를 구분하기 위해 다른 기호를 사용한다. 마이
크로프로세서 회로도에서는 왼쪽 두 접지 기호 중 하나를 가장 흔히 사용한다. 나머지 둘
은 보기 드물다.
전원포트는 항상 세로로 그려야 한다. 접지 전원 포트는 아래를 향하는 반면, Vcc와 같은
전원 포트는 위를 향해야 한다. 이 둘은 반드시 지켜야 한다. 전문 설계자가 보면 한심하
게 생각한다.



(6)마무리
8비트 콘트롤러 기반의 회로를 그리는 작업을 1여년 전에 한 적이 있는데, 다시 OrCAD를
사용할려고 하니 어떻게 사용하는지 기억이 가물가물하였다.
32비트 프로세서 기반의 H/W, S/W 작업은 거의 구분이 되기 때문에 최근에는 회로도를 보
기만 할 뿐 그리는 일은 거의 하지 않는다. 점점 더 하드웨어와 멀어지는 기분이다.


[helpme1] OrCAD Capture말고 회로를 그리는 프로그램에 어떤 것들이 더 있나요?


[helpme2] 그외 다른 내용들 추가할 것 있나요?  

'KB > embbeded sw' 카테고리의 다른 글

arm simulator  (0) 2005.07.11
SMDK2440  (0) 2005.04.06
[1]ARM 보드설계 - SDRAM 인터페이스  (0) 2005.04.06
[세미나] 리눅스 어셈블리 프로그래밍  (0) 2004.08.17
[세미나] 임베디드 리눅스  (0) 2004.08.17

+ Recent posts