Đại học Đà Nẵng Trường Đại học Bách Khoa Khoa Điện tử Viễn Thông Bộ môn Kỹ thuật Máy tính

Bài giảng Kỹ thuật Vi xử lý

Chương 1: Tổng quan về Vi xử lý

Instructor: Phạm Xuân Trung

Nội dung chương

 Lịch sử phát triển của vi xử lý  Thế nào là vi xử lý, vi điều khiển, hệ thống vi xử lý? Phân biệt vi xử lý và vi điều khiển,hệ thống vi xử lý.  Giới thiệu các khối của vi điều khiển  Kiến trúc bộ nhớ và kiến trúc tập lệnh

cho vi xử lý  Vi điều khiển PIC

1.1. History

 Năm 1969, Một nhóm kỹ sư Nhật của công ty

BUSICOM đến Mỹ để thiết kế mạch tích hợp cho máy tính(calculator) và Intel mua lại bản quyền từ công ty BUSICOM năm 1971

 Cũng trong năm đó, trên thị trường xuất hiễn vi xử lý 4004. Nó là vi xử lý 4 bit đầu tiên với tốc độ 6000 lệnh trên giây.

1.1. History

 Không lâu sau đó, Công ty CTC yêu cầu Intel và Texas Instruments chế tạo cho họ bộ vi xử lý 8 bit dùng cho các đầu cuối.

 Tháng 4/1972, bộ vi xử lý 8 bit đầu tiên ra đời với

tên gọi 8008.

 Nó có thể định địa chỉ 16Kb bộ nhớ, có 45 lệnh và

thực hiện 300000 lệnh trên giây.

 Các bộ vi xử lý 4004, 8008 là khởi đầu cho tất cả

các loại vi xử lý ngày nay.

 Tháng 4/1974, Intel tiếp tục phát triển bộ vi xử lý 8 bit và ra mắt thị trường bộ vi xử lý 8080 có thể định địa chỉ 64Kb bộ nhớ và 75 lệnh với mức giá là 360$.

1.1. History

 Một công ty khác của Mỹ là Motorola nhận thức nhanh chóng điều gì đang xảy ra và họ đưa ra thị trường bộ vi xử lý 8 bit 6800.

 Motorola là công ty đầu tiên đưa ra các

ngoại vi như là 6820 và 6850.

1.1. History

 Năm 1976, Intel cải thiện vi xử lý 8 bit cũ và cho

ra đời vi xử lý mới có tên là 8085.

 Cũng trong năm 1976, Zilog công bố Z80, là một vi xử lý mạnh, với bộ nhớ 64Kb định địa chỉ trực tiếp, 176 lệnh, số lượng thanh ghi lớn, có RAM động, nguồn nuôi đơn, tốc độ làm việc nhanh...

1.2.Microcontrollers vs Microprocessors

 Microcontroller khác microprocessor trong

cơ bản của chúng. Microprocessor được sử dụng chỉ khi các thành phần khác như bộ nhớ, các thành phần thu hoặc nhận dữ liệu phải được thêm vào.

 Microprocessor là một trái tim thật sự của một

máy PC.

các điểm sau:  Điều đầu tiên và quan trọng nhất là chức năng

1.2.Microcontrollers vs Microprocessors

 Microcontroller được thiết kế có tích hợp

sẵn các thành phần.

 Không một thành phần ngoại vi nào cần

thêm vào bởi vì chúng đã có sẵn.

 Vì vậy,chúng ta tiết kiệm được thời gian và

không gian để xây dựng một thiết bị.

Sơ đồ khối tổng quát của một microcomputer.

 The CPU is the microprocessor.

Sơ đồ khối cơ bản của một microcontroller.

Khối bộ nhớ

 Memory is là một phần của Vi điều khiển giữ chức năng lưu trữ.  Có 2 khái niệm

cần quan tâm: địa chỉ và vùng nhớ.

Khối bộ nhớ

 Memory bao gồm tất cả các vị trí nhớ.  Định địa chỉ không rõ ràng là cái gì cả

nhưng lựa chọn một trong số các vùng nhớ đó.

 Bộ nhớ là thành phần đầu tiên, và tối thiểu

phải có của một vi điều khiển.

Đơn vị xử lý trung tâm

 Một thành

phần nữa phải có đó là CPU- đơn vị xử lý trung tâm  Các vị trí nhớ của nó được gọi là các thanh ghi.

Bus

 Về mặt vật lý,bus là những đường dây nối có thể

là 8,16 hoặc khác nữa.

 Có 3 loại bus: Bus dữ liệu, bus địa chỉ, bus điều

khiển.

 Bus gồm các đường line đủ để định địa chỉ cho cả bộ nhớ hoặc đủ để truy cập dữ liệu. Trong trường hợp vi xử lý 8 bit (nghĩa là sử dụng các thanh ghi 8 bit), bus dữ liệu là 8 đường line.

 Sử dụng để kết nối giữa các khối bên trong vi xử lý

nhằm truy cập địa chỉ, truy cập dữ liệu và điều khiển từ CPU đến các khối khác và giữa các khối với nhau.

Khối nhập xuất (Input-output unit)

 Là nơi mà ta sẽ kết nối các thiết bị ngoại vi với vi

điều khiển còn gọi là các cổng.

 Có vài kiểu cổng nhập xuất: cổng nhập, cổng

xuất or cổng đa hướng (2 hướng).

 Khi làm việc với các cổng, cần lựa chọn cổng

phù hợp với mục đích mà sử dụng, đó là gửi dữ liệu ra ngoài hay là nhận dữ liệu vào.

Input-output unit

Khối truyền thông nối tiếp ( Serial communication Unit)

 Sử dụng 2 đường line để thực hiện việc truyền và nhận

dữ liệu.

 Khối này cũng có thể coi là khối truyền thông theo chế

độ song công.

 Khác với việc truyền song song, dữ liệu được truyền ở đây nối tiếp, từng bit một, theo một chuỗi bit có khuôn dạng sẵn được định nghĩa trong truyền thông nối tiếp.  Dữ liệu truyền hoặc nhận sẽ được lưu trữ trong thanh

ghi hỗ trợ đợi được xử lý.

 Dữ liệu truyền được hỗ trợ các giao thức

Serial communication

Khối định thời (Timer unit)

 Khối định thời có thể cung cấp thông tin về thời

gian, giao thức,...

 Khối này có 1 bộ đếm độc lập mà thực chất cũng là 1 thanh ghi chứa giá trị đếm lên 1 khi có biến cố xảy ra ( thỏa mãn điều kiện đếm).

Time unit

Khối định thời Watchdog

 Khi máy tính có sự cố, cách xử lý đơn giản nhất là reset lại nó bằng nút bấm. Tuy nhiên, vi điều khiển không có nút reset nên giải pháp đưa ra là một khối định thời watchdog.

 Khối này cũng giống như bộ định thời, có riêng

một bộ đếm độc lập và phải được đặt giá trị bằng 0 nếu muốn chương trình khi hoạt động bình thường vẫn đúng.

Watchdog

 Trong trường hợp chương trình bị kẹt, bộ đếm

sẽ reset lại vi xử lý khi tràn.

Khối chuyển đổi tương tự sang số (Analog to Digital Converter Unit)

 Tín hiệu được cung cấp bởi các khối ngoại vi đa số là

tương tự nên cần phải chuyển sang số vi điều khiển mới hiểu được.

 Khối ADC thực hiện nhiệm vụ nhận tín hiệu, cắt

ngưỡng, lấy mẫu, lượng tử hóa chuyển đổi tương tự sang số.

 Tín hiệu sau khi được xử lý bởi khối này trở thành các chuỗi số nhị phân được lưu trữ trong các thanh ghi hỗ trợ và CPU có thể sử dụng.

Analog to Digital Converter

Physical configuration of the interior of a microcontroller

 Thin lines which lead

from the center towards the sides of the microcontroller represent wires connecting inner blocks with the pins on the housing of the microcontroller so called bonding lines.

Microcontroller outline with its basic elements and internal connections

Von Neumann and Harvard Architectures

Kiến trúc Von Neumann

Kiến trúc Harvard

Von Neumann and Harvard Architectures

 Kiến trúc Von Neumann: Bộ nhớ

chương trình và bộ nhớ dữ liệu được xây dựng cùng chung một khối.

 Kiến trúc Harvard: Bộ nhớ dữ liệu và bộ nhớ chương trình là tách rời nhau. Dung lượng của bộ nhớ chương trình luôn lớn hơn rất nhiều so với bộ nhớ dữ liệu.

CISC and RISC Architectures

 Complex set instruction computer (CISC):

Máy tính có tập lệnh phức tạp

 Reduced instruction set computer (RISC):

Máy tính có tập lệnh tối giản

CISC and RISC Architectures

 Vi xử lý kiểu CISC có số lượng lệnh rất lớn (>100)  Vi xử lý kiểu CISC có kích thước từ lệnh không cố

định.

 Vi xử lý kiểu CISC có nhiều lệnh phức tạp trong

quá trình thực hiện.

 Vi xử lý kiểu CISC có nhiều mode định địa chỉ.  Vi xử lý kiểu CISC làm tăng độ phức tạp về cấu

trúc của CPU và kích thước của chip.

 Vi xử lý kiểu CISC có số lệnh thực hiện trong nhiều

chu kỳ máy là khá nhiều

CISC and RISC Architectures

 Vi xử lý kiểu RISC có số lượng lệnh rất ít và

vừa phải ( trong khoảng 33 đến 77 lệnh đối với vi xử lý PIC).

 Vi xử lý kiểu RISC có kích thước từ lệnh cố

định.

 Vi xử lý kiểu RISC chỉ có các lệnh thực hiện các

thao tác đơn giản.

 Vi xử lý kiểu RISC có rất ít mode định địa chỉ  Vi xử lý kiểu RISC đa số các lệnh chỉ thực hiện

trong một chu kỳ máy.

Phần cứng vi điều khiển PIC

 Vi điều khiển được coi là một máy tính giản đơn

tích hợp trên 1 chip bán dẫn

 Sử dụng trong các thiết bị: mobile phones, DVD players, video cameras, và hầu hết trong các hệ thống điện tử tự động.

 MCU (Microcontroller Unit) dùng để điều

khiển các thiết bị hiển thị LCD.

Processor System

 Vi điều khiển bao gồm các thành phần cơ bản

giống như một máy tính:  Bộ xử lý  Bộ nhớ  Khối nhập xuất

Processor System

 Trong vi xử lý, các thành phần được tích hợp sẵn

trong 1 chip

 Sơ đồ khối cơ bản vi xử lý:

Processor

 Trong một vi xử lý , một bộ xử lý đơn sẽ thực hiện tính toán, nhập/xuất và điều khiển.

PIC 16F877A pin out

16F877A program execution block diagram

Các đặc điểm chính của PIC16F MCU  Tất cả các vi điều khiển PIC đều dựa trên

kiến trúc Harvard.

 Kiến trúc này có đặc trưng là bộ nhớ

chương trình và bộ nhớ dữ liệu riêng biệt.  Kích thước của bộ nhớ chương trình lớn

hơn bộ nhớ dữ liệu.

Các đặc điểm chính của PIC16F MCU

 Bộ nhớ chương trình được tổ chức thành các từ 14 bit; Bộ nhớ dữ liệu dựa trên các thanh ghi 8 bit.

 Việc truy cập các chức năng nhập xuất thông qua các thanh ghi được gọi là nhóm các thanh ghi chức năng đặc biệt (special function registers (SFRs)).

 Vài vi điều khiển PIC16F có bộ nhớ dữ liệu

EEPROM lưu trữ dữ liệu không bị mất đi khi mất nguồn.

Các đặc điểm chính của PIC16F MCU  Tất cả vi điều khiển PIC16F là vi điều khiển

kiểu RISC

 Số lượng lệnh: between 33 and 77.  Từ lệnh là giống nhau: 14 bit  Có một thanh ghi tích lũy Working(W) và

các thanh đa năng khác.

Các đặc điểm chính của PIC16F MCU

 Tất cả các vi điều khiển PIC16F đều dùng kỹ thuật

pipelining để thực hiện lệnh.

 Mỗi lệnh đơn được thực hiện trong 2 bước: tìm nạp và

thực hiện lệnh.

 Với kỹ thuật pipelining, với mỗi chu kỳ máy, có 2 lệnh

được thực hiện ở 2 bước khác nhau. Vì vậy, khi kết thúc một chu kỳ máy, có thể coi một lệnh được thực hiện xong.

 Một chu kỳ máy được thực hiện trong 4 xung đồng hồ

chính.

Thanh ghi W

 Là một toán hạng trong các phép toán số học và logic  Kết quả của các lệnh có thể được đặt ở thanh ghi w

này hoặc có thể đặt ở các thanh ghi thuộc bộ nhớ dữ liệu.

 Việc truyền dữ liệu giữa các thanh ghi với nhau phải thông qua thanh ghi w chứ không có bất kỳ một lệnh nào truyền trực tiếp dữ liệu cả.

 Vi điều khiển PIC16F cũng giống như tất cả các dòng

vi điều khiển khác mạnh về tương tác từng bit.

Machine Cycles and Execution of Instructions

 Like any

microcontro -ller, PIC microcontro llers have a main oscillator to synchronize its internal operations.

Pipelining for Instruction Execution

 Each instruction requires two stages

 The first stage is the fetching stage that requires

a machine cycle.

 The second stage, in which the instruction is decoded and executed, requires another machine cycle.

Pipelining for Instruction Execution

 the microcontroller fetches one instruction

and executes the previous instruction.  Every machine cycle period results in an instruction being executed, with the previously mentioned exception of control transfer instructions

Pipelining for Instruction Execution

 Ví dụ:

Memory

 Memory in a microcontroller is the place

that stores the program being executed and the data or variables used by that program.  Memory can be considered as a set of cells or locations, identified by their address.

Memory

 Each cell stores a word.  A word is the logic unit of information

stored in a cell. Words can have 1, 8, 12, 14, or 16 bits.

 An 8-bit word is called a byte.  The number of memory cells determines its

size

Program Memory

 Program memory is organized in pages.  Can have up to four pages of 2k words

each, making a total memory size up to 8k words.

 The length of a word in medium-end PIC

microcontrollers is 14 bit.

RAM Data Memory

 The data memory implemented using RAM technology is organized in 8-bit words.  Similar to program memory, data memory is also divided in different pages; for data memory these pages are called banks.  Each bank can have up to 128 memory

cells or registers. The range of addresses for each bank is from 00h to 7Fh.

EEPROM Data Memory

 This memory is physically separated from

the RAM data memory.

 This memory is accessed by special

function registers, similar to those used to read and write in the program flash memory.

Thiết kế phần mềm của hệ thống vi xử lý

 Viết chương trình điều khiển hoạt động của hệ thống phần cứng theo chức năng mong muốn (thường dùng ngôn ngữ Assembly của chip vi xử lý dùng trong hệ thống)

 Dịch chương trình đã viết sang ngôn ngữ máy sử dụng

các chương trình dịch thích hợp

 Nạp chương trình ngôn ngữ máy vào bộ nhớ của hệ

thống vi xử lý

 Kiểm tra hoạt động của hệ thống và thực hiện các hiệu

chỉnh nếu cần thiết

 Có thể nhờ sự trợ giúp của các chương trình mô phỏng

trên máy tính