마이크로컨트롤러의 기본 구조
마이크로 컨트롤러라고도 알려진 단일 칩 마이크로컴퓨터의 전체 이름인 단일 칩 마이크로컴퓨터는 중앙 처리 장치, 메모리, 타이머/카운터, 다양한 입출력 인터페이스 등을 통합한 마이크로컴퓨터입니다. 집적 회로 칩. 마이크로 컨트롤러는 스마트 기기, 실시간 산업 제어, 통신 장비, 내비게이션 시스템, 가전 제품 등 광범위한 분야에서 사용됩니다.
기본 구조
1. 연산자
연산자는 산술 및 논리 단위(ALU), 누산기, 레지스터 등으로 구성됩니다. 여러 부분. ALU의 기능은 들어오는 데이터에 대해 산술 또는 논리 연산을 수행하는 것입니다. 입력 소스는 각각 누산기와 데이터 레지스터에서 나오는 두 개의 8비트 데이터입니다. ALU는 두 데이터의 덧셈, 뺄셈, AND, OR, 비교 등의 연산을 완료하고 최종적으로 그 결과를 누산기에 저장합니다. 예를 들어, 두 개의 숫자 6과 7이 더해지기 전에 피연산자 6이 누산기에 배치되고 7이 데이터 레지스터에 배치됩니다. 덧셈 명령이 실행되면 ALU는 두 숫자를 더하고 결과 13을 반환합니다. 어큐뮬레이터에 저장하여 어큐뮬레이터의 원래 내용을 교체합니다. 6.
산술 단위에는 두 가지 기능이 있습니다:
(1) 다양한 산술 연산을 수행합니다.
(2) 다양한 논리 연산을 수행하고 0 값 테스트 또는 두 값 비교와 같은 논리 테스트를 수행합니다.
산술 장치에서 수행되는 모든 연산은 컨트롤러에서 보내는 제어 신호에 의해 지시되며, 산술 연산은 연산 결과를 생성하고 논리 연산은 결정을 생성합니다.
2. 컨트롤러
컨트롤러는 프로그램 카운터, 명령어 레지스터, 명령어 디코더, 타이밍 생성기, 명령을 내리는 "의사결정 메커니즘"으로 구성됩니다. 즉, 전체 마이크로컴퓨터 시스템의 작동을 조정하고 지휘하는 것입니다. 주요 기능은 다음과 같습니다.
(1) 메모리에서 명령을 검색하고 메모리에서 다음 명령의 위치를 나타냅니다.
(2) 명령을 디코딩 및 테스트하고 해당 작업 제어 신호를 생성하여 지정된 작업의 실행을 용이하게 합니다.
(3) CPU, 메모리, 입력 및 출력 장치 간의 데이터 흐름 방향을 지시하고 제어합니다.
마이크로 프로세서는 내부 버스를 통해 ALU, 카운터, 레지스터 및 제어 부품을 상호 연결하고 외부 버스를 통해 외부 메모리 및 입출력 인터페이스 회로와 연결됩니다. 외부 버스는 시스템 버스라고도 하며 데이터 버스 DB, 주소 버스 AB, 제어 버스 CB로 구분됩니다. 입출력 인터페이스 회로를 통해 다양한 주변 장치와의 연결이 구현됩니다.
3. 메인 레지스터
(1) 누산기 A
그림 1-2 마이크로컨트롤러 블록 다이어그램
누산기 A는 마이크로컨트롤러입니다. 프로세서에서 가장 자주 사용되는 레지스터. 산술 및 논리 연산 중에 이중 기능을 가지고 있습니다. 연산 전에는 피연산자를 저장하는 데 사용되며 연산 후에는 결과 합계, 차 또는 논리 연산 결과를 저장하는 데 사용됩니다.
(2) 데이터 레지스터 DR
데이터 레지스터는 데이터를 메모리와 입출력 장치로 전송(쓰기)하거나 페치(읽기)하는 임시 저장 장치이다. 버스. 디코딩 중인 명령어, 저장을 위해 메모리로 전송되는 데이터 바이트 등을 저장할 수 있습니다.
(3) 명령어 레지스터 IR 및 명령어 디코더 ID
명령어에는 opcode와 피연산자가 포함됩니다.
명령 레지스터는 현재 실행 중인 명령을 저장하는 데 사용됩니다. 명령어가 실행되면 먼저 메모리에서 데이터 레지스터로 가져온 다음 명령어 레지스터로 전송됩니다. 시스템이 주어진 명령어를 실행할 때 필요한 작업을 결정하기 위해 opcode를 디코딩해야 합니다. 명령어 디코더가 이 작업을 담당합니다. 그 중 명령어 레지스터의 opcode 필드의 출력은 명령어 디코더의 입력이다.
(4) 프로그램 카운터 PC
PC는 프로그램이 계속해서 실행될 수 있도록 다음 명령어의 주소를 결정하는 데 사용되므로 명령어 주소 카운터라고도 합니다. . 프로그램이 실행되기 전에 프로그램의 첫 번째 명령어의 메모리 장치 주소(즉, 프로그램의 첫 번째 주소)가 항상 다음 실행될 명령어의 주소를 가리키도록 PC로 전송되어야 합니다.
(5) 주소 레지스터 AR
주소 레지스터는 현재 CPU가 접근하려는 메모리 유닛이나 I/O 장치의 주소를 저장하는데 사용된다. 메모리와 CPU 사이의 속도 차이로 인해 주소 레지스터는 메모리 읽기/쓰기 작업이 완료될 때까지 주소 정보를 유지하는 데 사용해야 합니다.
분명히 주소 레지스터와 데이터 레지스터는 CPU가 데이터를 메모리에 저장할 때, CPU가 메모리에서 데이터를 가져올 때, CPU가 메모리에서 명령을 읽을 때 사용됩니다. 마찬가지로, 주변 장치의 주소를 메모리 주소 단위로 보면 CPU와 주변 장치가 정보를 교환할 때 주소 레지스터와 데이터 레지스터도 필요합니다.