Giáo trình vi xử lý: Phần 1

20 4 0
Giáo trình vi xử lý: Phần 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Thực hiện chuyển các số hex cần cộng thành các số nhị phân, tính kết quả trên số nhị phân và sau đó chuyển lại thành số hex.. Thực hiện cộng trực tiếp trên số hex, nếu kết quả cộng lớn h[r]

(1)

Giáo trình vi xử lý Biên tập bởi:

(2)

Giáo trình vi xử lý Biên tập bởi:

Phạm Hùng Kim Khánh Các tác giả: Phạm Hùng Kim Khánh

(3)

MỤC LỤC

1 Giáo trình vi xử lý-Đại cương Tổ chức hệ thống vi xử lý Lập trình hợp ngữ

4 Tập lệnh hợp ngữ

5 Các cấu trúc lập trình hợp ngữ Tổ chức nhập / xuất

7 Cấu trúc cổng nối tiếp Truyền thông hai nút

9 Truy xuất trực tiếp thông qua cổng 10 Truyền thông nối tiếp dùng ActiveX 11 Giao tiếp với vi điều khiển

12 Giao tiếp với MODEM 13 Mạng 485

(4)

Giáo trình vi xử lý-Đại cương

Các hệ thống số dùng máy tính loại mã

Hệ thập phân (Decimal Number System)

Trong thực tế, ta thường dùng hệ thập phân để biểu diễn giá trị số Ở hệ thống này, ta dùng tổ hợp chữ số để biểu diễn giá trị Một số hệ thập phân biểu diễn theo số mũ 10

Số 5346,72 biểu diễn sau:

5346,72 = 5.103+ 3.102+ 4.10 + + 7.10-1+ 2.10-2

Tuy nhiên, mạch điện tử, việc lưu trữ phân biệt 10 mức điện áp khác khó khăn việc phân biệt hai mức điện áp lại dễ dàng Do đó, người ta sử dụng hệ nhị phân để biểu diễn giá trị hệ thống số

Hệ nhị phân (Binary Number System)

Hệ nhị phân dùng chữ số để biểu diễn giá trị số Một số nhị phân (binary digit) thường gọi bit Một chuỗi gồm bit nhị phân gọi nibble, chuỗi bit gọi byte, chuỗi 16 bit gọi word chuỗi 32 bit gọi double word Chữ số nhị phân bên phải chuỗi bit gọi bit có ý nghĩa nhỏ (least significant bit -LSB) chữ số nhị phân bên trái chuỗi bit gọi bit có ý nghĩa lớn (most significant bit - MSB) Một số hệ nhị phân biểu diễn theo số mũ Ta thường dùng chữ B cuối chuỗi bit để xác định số nhị phân

Số 101110.01b biểu diễn giá trị số:

101110.01b = 1x25+ 0x24+ 1x23+1x22+ 1x21+ + 0x2-1+ 1x2-2 • Chuyển số nhị phân thành số thập phân:

Để chuyển số nhị phân thành số thập phân, ta cần nhân chữ số số nhị phân với giá trị thập phân cộng tất giá trị lại

(5)

Để chuyển số thập phân thành số nhị phân, ta dùng phương pháp sau:

Phương pháp 1: Ta lấy số thập phân cần chuyển trừ 2i 2ilà số lớn nhỏ hay số thập phân cần chuyển Sau đó, ta lại lấy kết thực tương tự 20thì dừng Trong trình thực hiện, ta ghi lại giá trị hay cho bit tuỳ theo trường hợp số thập phân nhỏ 2i (0) hay lớn 2i(1)

Xét số 21 số 2ilớn 24

Phương pháp 2: Lấy số cần chuyển chia cho 2, ta nhớ lại số dư lấy tiếp thương kết chia cho thực tương tự thương cuối Kết chuyển đổi chuỗi bit số dư lấy theo thứ tự ngược lại

Chuyển 227 số nhị phân

Để thực chuyển số thập phân nhỏ sang số nhị phân, ta làm sau: lấy số cần chuyển nhân với 2, giữ lại phần nguyên lại lấy phần lẻ nhân với Quá trình tiếp tục phần lẻ dừng Kết chuyển đổi chuỗi bit giá trị phần nguyên

Chuyển 0.625 thành số nhị phân 0.625 × = 1.25

(6)

( 0.625 = 0.101b)

Hệ thập lục phân (Hexadecimal Number System)

Như biết trên, dùng hệ nhị phân cần số lượng lớn bit để biểu diễn Giả sử số 1024 = 210sẽ cần 10 bit để biểu diễn Để rút ngắn kết biểu diễn, ta dùng hệ thập lục phân dựa sở số mũ 16 Khi đó, bit hệ nhị phân (1 nibble) biểu diễn chữ số hệ thập lục phân (gọi số hex)

Trong hệ thống này, ta dùng số kí tự A F để biểu diễn cho giá trị số Thông thường, ta dùng chữ h cuối để xác định số thập lục phân

Mã BCD (Binary Coded Decimal)

Trong thực tế, số ứng dụng đếm tần, đo điện áp, … ngõ dạng số thập phân, ta dùng mã BCD Mã BCD dùng bit nhị phân để mã hoá cho số thập phân Như vậy, số hex A F không tồn mã BCD

Số thập phân

Số BCD 0101 0010 1001

Mã hiển thị Led đoạn (7-segment display)

(7)

Các phép toán số học

Hệ nhị phân

Phép cộng

(8)

S = A ⊕ B ⊕ CIN

COUT = AB + CIN(A ⊕ B)

Số bù (2’s component)

Trong hệ thống số thông thường, để biểu diễn số âm ta cần thêm dấu - vào chữ số Tuy nhiên, hệ thống máy tính, ta khơng thể biểu diễn Phương pháp thông dụng dùng bit có ý nghĩa lớn (MSB) làm bit dấu (sign bit): MSB = số âm MSB = số dương Khi đó, bit cịn lại biểu diễn độ lớn (magnitude) số Như vậy, ta dùng bit để biểu diễn thu 256 tổ hợp ứng với giá trị 255 (số không dấu) hay -127 -0 +0 … +127 (số có dấu)

Để thuận tiện việc tính tốn số có dấu, ta dùng dạng biểu diễn đặc biệt số bù Số bù số nhị phân xác định cách lấy đảo bit cộng thêm

Số biểu diễn : 0000 0111 có MSB = (biểu diễn số dương)

Số bù : 1111 1000 + = 1111 1001 Số đại diện cho số – Ta thấy, để thực việc xác định số bù số A, cần phải: - Biểu diễn số A theo mã bù

- Đảo bit (tìm số bù A)

(9)

Khi biểu diễn theo số bù 2, sử dụng bit ta có giá trị số thay đổi từ - 128 127

Phép trừ

Phép trừ số nhị phân thực tương tự hệ thập phân Bảng thật phép trừ bit với bit mượn (borrow) sau:

Ngoài cách trừ trên, ta thực phép trừ thông qua số bù số trừ

Trong phép cộng với số bù 2, ta bỏ qua bit nhớ cuối → kết phép cộng số bù 0011 1100 Đây kết phép trừ, bit MSB = cho biết kết số dương

Số 88 = 0101 1000 → số bù 1010 0111 → số bù 2: 1010 1000 Kết phép cộng số bù 1111 0101 có MSB = nên số âm Số bù 0000 1010 → số bù 2: 0000 1011 Kết 11 nên phép trừ cho kết -11

(10)

- Cộng với

- Thêm dấu trừ để xác định số âm

Phép nhân

Phép nhân số nhị phân tương tự số thập phân

Đối với phép nhân nhân số bit có kết số bit, số bit có kết số 16 bit, …

Đối với máy tính, phép nhân thực phương pháp cộng dịch phải (add-and-right-shift):

- Thành phần dầu tiên tổng số bị nhân LSB số nhân Ngược lại, LSB số nhân thành phần

- Mỗi thành phần thứ i tính tương tự với điều kiện phải dịch trái số bị nhân i bit

- Kết cần tìm tổng thành phần nói

Phép chia

Phép chia số nhị phân tương tự số thập phân

(11)

- Lấy số bị chia cộng với số bù số chia

+ Nếu kết có bit dấu = bit tương ứng thương =

+ Nếu kết có bit dấu = bit tương ứng thương = ta phải khôi phục lại giá trị số bị chia cách cộng kết với số chia

• Dịch trái kết thu thực tiếp tục kết hay nhỏ số chia

Hệ thập lục phân

Phép cộng

Thực chuyển số hex cần cộng thành số nhị phân, tính kết số nhị phân sau chuyển lại thành số hex

Thực cộng trực tiếp số hex, kết cộng lớn 15 nhớ trừ cho 16

Phép trừ

Thực tương tự phép cộng

Các thiết bị số bản

Cổng đệm (buffer) cổng logic (logic gate)Cổng đệm

(12)

Cổng AND

Cổng NAND

Cổng OR

Cổng NOR

Cổng EX-OR

(13)

Thiết bị logic lập trình được

Thay sử dụng cổng logic rời rạc, ta dùng thiết bị logic lập trình (programmable logic device) PLA (Programmable Logic Array), PAL (Programmable Array Logic) hay PROM (Programmable Read Only Memory) để liên kết thiết bị LSI (Large Scale Intergration)

PLA (hay FPLA - Field PLA):

Dùng ma trận cổng AND OR để lập trình cácc phá huỷ cầu chì FPLA linh động lại khó lập trình

Sơ đồ PLA

PAL: ma trận OR cố định sẵn ta lập trình ma trận AND.

Sơ đồ PAL

(14)

Sơ đồ PROM AB +A B Chốt, flipflop ghi

Chốt (latch):

Chốt thiết bị số lưu trữ lại giá trị số ngõ

Flipflop:

CL: clear PR: Preset CLK: Clock

- Nếu xuất cạnh lên tín hiệu CLK ngõ Q có giá trị theo liệu D - Nếu PR = Q = Nếu CL = Q =

(15)

Thanh ghi (register):

Thanh ghi nhóm flipflop kết nối song song để lưu trữ số nhị phân Giá trị nhị phân đưa vào ngõ vào flipflop Khi có tác động cạnh lên tín hiệu CLK ngõ flipflop lưu trữ giá trị nhị phân số nhị phân đưa vào tác động cạnh len cho tín hiệu CLK

Thanh ghi dạng đơn giản

Trong trường hợp flipflop kết nối nối tiếp với nhau, ta có ghi dịch (shift register)

Thanh ghi dịch Bộ nhớ

Các kiểu nhớ

ROM (Read Only Memory):

Đặc tính chung ROM liệu lưu trữ không bị khơng cịn nguồn cung cấp cho ROM (tính nonvolatile - ổn định) Ta thực tác vụ đọc ROM ROM chia thành: ROM che mặt nạ (Masked ROM), PROM (ROM lập trình được), EPROM (ROM xố tia cực tím) EEPROM (ROM xố điện)

RAM (Random Access Memory):

(16)

- SRAM (Static RAM):dùng ma trận flipflop để lưu trữ liệu nên ta ghi giá trị nhị phân vào RAM cách đưa liệu vào ngõ vào flipflop cấp xung clock cho flipflop

- DRAM (Dynamic RAM): tạo cổng transistor lưu trữ điện tích. Tuy nhiên, tượng rị rỉ điện tích theo thời gian, ta phải thực nạp điện lại Quá trình gọi làm tươi (refreshing) nhớ Thuận lợi DRAM số lượng lớn transistor đặt chip nhớ nên có dung lượng cao nhanh SRAM

Cấu trúc bên nhớ

(Chip Select):cho phép nhớ hoạt động

(Output Enable): cho phép đọc liệu từ nhớ bên (Write Enable): cho phép ghi liệu vào nhớ

Row address decoder, Column address decoder: giải mã hàng cột để chọn vị trí memory cell (flipflop hay tụ điện)

(17)

Giới thiệu vi xử lý

Các hệ vi xử lý

-Thế hệ (1971 - 1973):vi xử lý bit, đại diện 4004, 4040, 8080 (Intel) hay IPM-16 (National Semiconductor)

+ Độ dài word thường bit (có thể lớn hơn)

+ Chế tạo công nghệ PMOS với mật độ phần tử nhỏ, tốc độ thấp, dòng tải thấp giá thnh r

+ Tc 10 ữ 60 às / lệnh với tần số xung nhịp 0.1 ÷ 0.8 MHz + Tập lệnh đơn giản phải cần nhiều vi mạch phụ trợ

-Thế hệ (1974 - 1977):vi xử lý bit, đại diện 8080, 8085 (Intel) hay Z80 (Zilog) + Tập lệnh phong phú

+ Địa đến 64 KB Một số vi xử lý phân biệt 256 địa cho thiết bị ngoại vi

+ Sử dụng công nghệ NMOS hay CMOS

+ Tốc độ ữ às / lnh vi tn s xung nhịp ÷ MHz

-Thế hệ (1978 - 1982):vi xử lý 16 bit, đại diện 68000/68010 (Motorola) hay 8086/ 80286/80386 (Intel)

+ Tập lệnh đa dạng với lệnh nhân, chia xử lý chuỗi

+ Địa nhớ từ ÷ 16 MB phân biệt tới 64KB địa cho ngoại vi + Sử dụng công nghệ HMOS

+ Tc 0.1 ữ às / lệnh với tần số xung nhịp ÷ 10 MHz

- Thế hệ 4: vi xử lý 32 bit 68020/68030/68040/68060 (Motorola) hay 80386/80486 (Intel) vi xử lý 32 bit Pentium (Intel)

+ Bus địa 32 bit, phân biệt GB nhớ

(18)

+ Có chế pipeline, nhớ cache + Sử dụng cơng nghệ HCMOS Vi xử lý (µP - microproccessor)

Phân loại vi xử lý

- Multi chip: dùng hay nhiều chip LSI (Large Scale Intergration: tích hợp từ 1000 ÷ 10000 transistor) cho ALU control

- Microprocessor: dùng chip LSI/VLSI (Very Large Scale Intergration: tích hợp ÷ 10000 transistor) cho ALU control

- Single chip microprocessor (còn gọi microcomputer / microcontroller): chip LSI/VLSI chứa toàn khối hình 1.7

Sơ đồ khối máy tính cổ điển

Sơ đồ khối máy tính cổ điển

- ALU (đơn vị logic số học): thực tốn cho máy tính bao gồm: +, -, *, /, phép toán logic, …

- Control (điều khiển): điều khiển, kiểm soát đường liệu thành phần máy tính

- Memory (bộ nhớ): lưu trữ chương trình hay kết trung gian

- Input (nhập), Output (Xuất): thiết bị xuất nhập liệu (còn gọi thiết bị ngoại vi)

Sơ đồ khối µP

Có khối chức năng: đơn vị thực thi (EU - Execution unit), (Sequencer) đơn vị giao tiếp bus (BIU - Bus interface unit)

(19)

- Bộ tuần tự: gồm giải mã lệnh (instruction decoder) đếm chương trình (program counter)

+ Bộ đếm chương trình chứa lệnh thực + Bộ giải mã thực bước cần thiết để thực thi lệnh

Khi chương trình bắt đầu, đếm chương trình (PC) địa bắt đầu Địa chuyển qua nhớ thơng qua address bus Khi tín hiệu Read đưa vào control bus, nội dung nhớ liên quan đưa vào giải mã lệnh Bộ giải mã lệnh khởi động phép toán cần thiết để thực thi lệnh Q trình địi hỏi số chu kỳ máy (machine cycle) tuỳ theo lệnh Sau lệnh thực thi, giải mã lệnh đặt PC đến địa lệnh kế

(20)

Sơ đồ khối hệ vi xử lý bản

Sơ đồ khối hệ vi xử lý

Mọi hoạt động hệ vi xử lý giống nhau, không phụ thuộc loại vi xử lý hay q trình thực µP đọc lệnh từ nhớ (memory), thực thi lệnh sau đọc lệnh kế Q trình đọc lệnh gọi instruction fetch cịn q trình thực gọi fetch - execute sequence Tuy nhiên có số µP nhận số lệnh bắt đầu thực thi

Các port I/O:

Các port nhập (input) xuất (output) dùng để giao tiếp µP thiết bị ngoại vi (không thể nối trực tiếp với bus)

Port xuất ghi Khi µP ghi liệu địa Port Port chứa liệu data bus Dữ liệu chốt Port µP ghi liệu Port

Port nhập driver trạng thái Khi µP đọc vào từ địa Port, driver trạng thái lái liệu từ bên ngồi vào data bus Sau đó, µP đọc liệu từ bus

http://voer.edu.vn/c/e71a3eca

Ngày đăng: 26/02/2021, 11:04

Tài liệu cùng người dùng

Tài liệu liên quan