1) 지식 창고는 본인이 작성한 콘텐츠(팁/노하우/리소스/강좌 등)을 무료 혹은 가상화폐인 납포인트를 통해 공유하는 공간입니다.
2) 본인이 작성한 콘텐츠에 대해서만 지식 창고에 등록할 수 있으며, 저작권에 위배되는 콘텐츠는 사전경고 없이 삭제될 수 있습니다.
3) 콘텐츠 구매 및 첨부파일 다운로드는 회원그룹 '연구원' 이상 가능하오니, 경험치를 쌓아 진급한 후에 이용 부탁드립니다.
4) 무료 콘텐츠의 본문은 구매절차 없이 즉시 이용할 수 있으며, 판매 납포인트가 있는 콘텐츠는 구매 후 이용할 수 있습니다.
5) 콘텐츠 판매에 따른 납포인트 수익은 지정한 비율(50%)에 따라 판매자에게 지급하며, 납포인트 수익을 통해 진급을 빨리할 수 있습니다.
6) 구매 후 평가를 하면 구매 납포인트의 20%를 돌려 드립니다.
판매자 | 양치기광녀 | 판매 납포인트 | 무료 | 평점 | 0점 / 총 0명 참여 |
---|
3. 8051의 인터페이스 1. 발진회로 HMOS와 CMOS의 구조는 다르게 발진회로가 내장되었다. 내부 발진회로를 그대로 사용하려면 외부에 수정 발진자를 XTAL1, XTAL2에 연결하면 된다. 내부구조는 다르지만 외부에 수정 발진자를 연결하는 것은 똑같다는 것을 알 수 있다. 2. 리셋회로 8051을 리셋 시키려면 RST 단자를 'H'로 하면 자동으로 리셋된다. 8051을 리셋하기 위해서는 적어도 RST 단자를 24클럭(2머신 사이클)이상 "H"를 유지하여야 한다. 또 파워 ON 리셋(전원을 처음 투입하였을 경우)에서는 전원 전압이 안정된 후 24클럭 이상 RST 핀을 "H" 레벨을 유지해서, 발진회로를 안정되게 하여야 한다. (1) 리셋 시간 동안, 즉 RST단자가 "H"레벨을 유지하고 있는 동안, CPU는 아무 명령도 실행하지 않고, 아무것도 하고 있지 않은 상태가 된다. 이때 특정 제어 단자 ALE, *PROG "H" 레벨을 유지하고, 각 포트의 출력은 일정하게 정하지 않은 상태이다. (2) RST 입력이 H→L로 변화된 시점부터 약 12클럭이 경과되어, 8051 내부 레지스터들을 초기 설정해야 한다. (3) 최초의 ALE가 출력되어, 절대번지 0000H부터 명령이 실행되기 시작한다. 0000H - 0003H까지는 8051의 초기설정 영역으로 되어 있으므로, 그 목적에 맞게 사용자가 프로그램을 프로그램 메모리에 미리 만들어 넣어야 한다. 10KΩ 저항과 전해 콘덴서 10uF는 파워 온 리셋(Power on Reset)이고, 키는 수동형 리셋이다. 리셋 회로에서 주의할 점은 처음 전원이 들어 왔을 때 리셋이 되고, 시간이 경과 후에 리셋이 해제되어야 한다. (1) 파워 온 리셋(처음 전원이 들어온 경우) 처음 전원이 들어오기 전에 전헤 콘덴서에 충전이 되어 있지 않으므로 전원이 들어오면, 74LS02의 입력은 로직 "0"이므로, 74LS02의 출력은 로직 "1"이 되어, 8051의 RST 단자는 로직 "1"이 입력되어 리셋이 된다. 시간이 경과후 전해 콘덴서에는 서서히 충전이 되고, 이 때 충전속도는 0.75*R*C이다. 충전된 전압이 약 2.5V가 되면, 74LS02의 입력은 로직 "1"로 된다. 그러므로, 이때 74LS02의 출력은 로직 "0"이므로, 8051의 RST입력은 로직 "0"이 되어 리셋이 해제된다. (2) 리셋 스위치에 의한 리셋 리셋 스위치를 누르면, 전해 콘덴서에 충전되어 있던 전압이 스위치를 통해서 접지로 방전되므로, 74LS02의 입력은 다시 로직"0"이 되고, 74LS02의 출력은 로직 "1"이 되어 8051의 RST 단자는 로직 "1"이 입력되므로, 8051은 리셋 된다. 시간이 경과 후 전해 콘덴서에는 서서히 충전이 되고, 이때 충전속도는 0.75*R*C이다. 충전된 전압이 약 2.5V가 되면, 74LS02의 입력은 로직 "1"로 된다. 그러므로, 이때 74LS02의 출력은 로직 "0"이므로, 8051의 RST입력은 로직 "0"이 되어, 리셋이 해제된다. 3. 외부 메모리 인터페이스 외부 메모리는 프로그램 메모리와 데이터 메모리를 각각 독립시켜서 최대 64K바이트까지 확장시킬 수 있다. 외부 메모리의 확장은 P0 포트, P2 포트 및 메모리 제어용 신호를 사용한다. P0 포트는, 외부 메모리의 하위 어드레스 A0-A7의 출력과 데이터의 입출력을 하고, P2 포트는 외부 메모리의 상위 어드레스 A8-A15를 출력시킨다. (1) 내부 ROM/외부 ROM 선택 8051 혹은 8071은 내부에 4K 바이트의 ROM을 내장하고 있다. 또, 사용자가 사용할 수 있는 ROM의 최대 영역은 64K 바이트까지이므로, 사용자는 내부 ROM 4K바이트와 외부 ROM 60K바이트로 사용할 수 있으며, 또 64K바이트 전 영역을 8031와 같이 외부 ROM을 사용할 수 있다. 이것을 선택하는 것이 *EA 단자이다. *EA = H 내부 ROM 4K + 외부 ROM 60K 바이트 *EA = L 외부 ROM 64K 바이트(내부 ROM 4K 바이트는 사용할 수 없다.) (a) 어드레스 버스 및 데이터 버스 구성 8051에서는 어드레스 버스로는 포트 0, 포트 2가 사용되며, 데이터 버스로는 포트 0가 필요하다. 포트 0가 어드레스 버스 및 데이터 버스로 사용되므로 외부에서 74LS373(dctal 3-state latches)를 이용하여 분리시켰으며, 이때 74LS373의 클럭 신호로는 ALE신호를 사용하였다. (b) 메모리 맵 데이터 메모리는 각각 8K 바이트를 사용한다. 또, 외부에 I/O 장치를 연결할 경우에는 메모리 맵드 I/O(memory mapped I/O)방법처럼, 메모리의 일부분으로 생각하기 때문에, 메모리 디코딩할 때 I/O의 어드레스 공간도 생각하여야 한다. 메모리 디코딩 및 I/O 디코딩을 하기 위해서 디코더인 IC인 74LS139를 사용하였다. 74LS139의 칩 인에이블 신호"G"는 어드레스 버스 A15와 제어 신호 ALE를 OR해서 연결이 되었다. 즉 A15=0, ALE=0인 경우에만, 메모리 디코딩 회로는 동작되며. 74LS139 출력의 Y0는 ROM 칩 선택신호로, Y1은 RAM 칩 선택신호를 사용하고 Y2는 I/O 디코딩의 칩 선택신호로, Y3는 필요한 부분에 사용하도록 P4 커넥터에 연결이 되어 있다. (c) 프로그램 메모리 인터페이스 (ㄱ) EP-ROM 27128 사양 27128은 데이터 출력단자 8개와 16K 바이트(어드레스 단자 14개)의 용량을 갖고 있다. (ㄴ) 27128 EP-ROM 동작 모드 써넣기가 완료된 ROM의 동작모드는 다음과 같이 2가지가 있다. 8 리드 모드 *CE와 *OE가 동시에 "L"된 순간부터 리드 모드로 동작이 시작되고, 데이터는 어드레스가 셋 되면서부터 tacc후, *EC에서부터 tec후, *OE에서 셋후, D7-D0로 읽어 내지만, 일반적으로는 tce 또는 toe 중 최대값을 액세스 타입으로 설계한다. 8 스텐바이 모드(standby mode) 스탠바이 모드는 *CE가 니게이트(negate) 되어 있는 상태를 말한다. 즉, ROM이 선택이 되지 않아서, 동작하지 않는 상태를 말한다. (d) 데이터 메모리 인터페이스 8051은 프로그램 메모리와 데이터 메모리를 각각 64K 바이트까지 확장할 수 있다. 따라서 SRAM 6264를 사용하겠다. SRAM 6264는 데이터 입/출력 단자 8개와 8K바이트(어드레스 단자 13개)의 용량을 갖고 있다. (ㄱ) 6264 동작 모드 6264 SRAM의 동작 모드는 4가지의 동작 모드가 있다. 8스탠바이 모드(standby mode) : 칩이 선택되지 않을 때 (CS=[H])를 말하며, 이 상태에서 출력 단자는 하이 임피던스이므로, 데이터 버스에 여러 개의 칩을 연결할 경우 *CS단자를 제어하면 다른 칩을 선택할 수 있다. 8리드 모드(read mode) : *CS와 *OE를 반대로 하면, 리드 모드가 되고, 데이터는 어드레스가 세트된 후 tacc후, *CS가 반대가 된 후, *OEtaoc후, 가 "L"된 후 , 데이터를 얻지만, 일반적으로 tacc또는 taoc중 최대값을 액세스 타입으로 설정한다. 이때 *WE는 "H"로 되어 있어야 한다. 8라이트 모드(write mode) (1) *OE를 보통 "H"로 해서 써넣기를 하는 모드이다. 가장 일반적인 라이트 모드이지만, 리드 사이클에서 라이트 사이클로 들어갈 경우 주의할 필요가 있다. 리드 사이클이 끝났을 때에는 *OE는 "H"로 되지만, 여기부터 twd기간에 칩측의 데이터 단자가 하이 임피던스로 되지 않을 가능성이 있다. (2) *OE를 보통 "L"로 고정시키고, 써넣는 모드이다. 이와 같은 경우에는 *WE에서 리드/라이트를 구별시켜, *WE가 "H"이면 리드 사이클, "L"이며, 라이트 사이클을 실행한다. 안 좋은 방법이다. (ㄴ) SRAM 6264 인터페이스 어드레스 버스와 데이터 버스 및 *RD, *WR 제어 신호가 필요하다. 어드레스 버스는 8051의 어드레스 버스를 연결하고, 데이터 버스는 8051의 데이터 버스를 연결하면 된다. 제어 신호 중 *WR신호는 8051의 *WR신호를 직접 연결하였지만, *RD신호는 조금 변형을 시켰다. 프로그램 메모리 및 데이터 메모리로서 사용할 수 있도록 하였다. 8051의 *RD신호와 *PSEN 신호를 AND 해서 6264의 *OE신호에 연결하면 된다. |