본문 바로가기

Computer Science/Micro Process

[마이크로프로세서] Ch.8 Hardware Connection - 컴도리돌이

728x90
728x90

Outline

1.Pin Description

2.Intel HEX file


Pin Description

 

 

 

 

Pin Layout

->전체 40 pin을 갖고 있다.

->입출력 포트(port)로 32 pin이 사용된다.

->나머지 8 pin은 VCC, GND, XTAL1, XTAL2, RST, EA, PSEN, ALE가 있다.

 

VCC(40핀)

-> 칩에 VCC 전압(5V)을 공급한다.

-> +5V 전원

 

GND(20핀)

->Ground

 

클럭 : XTAL1/ XTAL2 (19,18핀)

->단순한 크리스털 발진기를 XTAL1과 XTAL2에 연결

->외부에서 발진 클럭을 XTAL1에만 공급

 

 

 

CPU는 클럭에 맞추어 동작.

 

 

RST(Reset, input pin)

->Active high : 리셋 시 1을 입력 CPU 동작 시 적어도 2 머신 사이클 동안 1로 유지

->Power-on reset

->8051 리셋은 8051 내부의 모든 상태를 전원 인가할 때와 같은 초기 상태로 만들어 주기 위해서 사용되는 핀이다. RESET 핀에 Low(0V)가 입력되고 있는 상태는 8051이 동작하는 상태이고 High(5V)가 입력되고 있는 상태라면 리셋 상태가 되어 8051의 모든 동작을 중지하고 모든 것을 초기 상태로 만들게 된다. 리셋 핀에 High(5V)가 인가될 때 8051이 리셋되는데 High(5V)가 입력만 되면 리셋되는 것은 아니고 High 상태로 2 머신 사이클보다 긴 시간 동안 High 상태에 있어야만 리셋된다. 그리고 평소에는 Low(0V) 상태로 있어야만 8051이 동작하게 된다. 만약 계속해서 High 상태에 있으면 계속 리셋이 되어 8051은 동작하지 않게 될 것이다.

 

 

리셋(Reset) 시 초기값 설정 - 모든 RAM 0으로 채운다.

 

 

EA(31핀) - External access(input pin)

->외부 프로그램 메모리

->8031은 ROM이 없어 의미가 없다.

->EA = 0 외부 프로그램 메모리를 사용한다.

->EA = 1 내부 프로그램 메모리를 사용한다.

 

PSEN(29핀) - Program Store Enable

->프로그램 메모리를 읽고 있다는 의미

->만약 외부에 있는 ROM이 uC와 연결한다면, PSEN은 OE(output enable)과 연결된다.

 

 

ALE(30핀) - Address latch enable(output pin)

->포트 0(P0)은 address bus와 data bus 양쪽 다 사용하기 때문에 구분이 필요하다.

->ALE = 1 : 포트 0(P0)은 address bus

->ALE = 0 : 포트 0(P0)은 data bus


Intel HEX file

 

Intel Hex file

->ROM 칩에 실행 가능한 컴퓨터 코드를 로드하는 것을 표준화하도록 설계된 널리 사용되는 파일 형식.

 

Intel HEX File

 

 

 

-모든 텍스트 편집기를 사용하여 열 수 있다.
-각 라인은 4개 필드(CC, AAAA, TT, DD.. DD, SS)로 분해 가능하다.

 

CC : 해당 줄의 바이트 수를 나타낸다(최댓값 10H).
AAAA : 회선의 내용을 ROM에 저장해야 하는 위치를 나타낸다(16bit-address).
TT : TT = 00이면 해당 줄이 마지막 줄이 아닌 것을 가리키고, TT = 01이면 마지막 줄을 가리킨다.
DD…DDD : ROM에 저장할 실제 데이터 또는 코드.
SS : 오류가 없는지 확인하기 위해 줄의 모든 항목을 checksum.

 

시험공부

더보기

1. HEX 파일 형식이 사용되는 이유와 HEX 파일 내부의 체크섬 데이터를 사용하는 방법을 설명하십시오.

 

->모든 마이크로프로세서는 2진수로 되어 있는 명령이나 데이터만을 이해할 수 있으며, 어셈블러나 c컴파일러가 소스 프로그램을 번역하고 링커가 이를 링크하여 실행 가능한 오브젝트 파일로 만들 때는 항상 8비트 단위의 2진 파일을 생성한다. 8비트의 2진수는 읽거나 기억하기 매우 불편하므로 사람들이 이를 흔히 2자리의 26진수로 표현한다. 16진수라는 것은 단지 사람에게 편리하도록 만든 것뿐, 내용적으로 2진수와 다를 것이 없으며 마이크로프로세서는 16진수를 이해하지 못하고 오로지 2진수 만을 이해할 수 있다.

 

->레코드, 길이, offset, type data의 필드를 바이트 단위로 쪼개어 모두 더한 다음 2의 보수(2's Complement)를 취하면 된다. 그 값이 1바이트를 넘을 경우 상위 바이트의 값은 버리고 최하위 1바이트 부분만을 취한다. (checksum)

 

2.  line 1에 대해 분석하고 check-sum byte를 구하여라. 그리고 해당 정보가 오류가 없는지 증명하라.

(1) : -> 텍스트의 시작을 나타낸다.

(2) 첫 번째 1 bytes (10h)는 16 data byte이 해당 줄에 있다는 것을 가리킨다.

(3) 다음 2 bytes (0000h)은 첫 번째 data byte(10h)가 저장되어 있는 ROM 주소 값을 가리킨다.

(4) 다음 1 bytes (00h)는 해당 줄이 프로그램이 마지막이 아니라는 것을 가리킨다. 만약 01이면 마지막 줄을 가리킨다.

(5) 다음 16 bytes는 opcode와 operand 데이터를 가리킨다.

(6) 마지막 2 bytes는 check-sum byte를 가리킨다.  

 

* check-sum byte 계산 법

1. 10h + 00h + 00h + 00h + 75h + 80h + 55h + 75h + 90h +55h + 75h + A0h+ 55h + 7Dh + FAh + 11h + 1Ch + 75h + 80h + AAh =761h

2. 캐리 비트를 없앤다. => 61h

3. 61h에 대한 2의 보수 => 9Fh => check-sum byte

4. 761h + 9Fh => 800h

5. 캐리 비트를 없앤다. => 00h => 에러가 없다.


 

728x90
728x90