Professional Documents
Culture Documents
12/07/2023 04:15 PM 1
GIỚI THIỆU HỌC PHẦN
TỔNG THỜI LƯỢNG: 02 TÍN CHỈ
Thời lượng: 35 tiết
Lý thuyết: 25tiết
Bài tập: 10 tiết
Thực hành/thí nghiệm: 0 tiết
12/07/2023 04:15 PM 2
GIỚI THIỆU HỌC PHẦN
Đề cương: LINK
Các chuẩn đầu ra được đánh giá
TT Ký hiệu Chuẩn đầu ra
Trình bày được kiến trúc và hoạt động của hệ vi
xử lý, các kiến thức cơ bản của các phương thức
1 CLO1
ghép nối song song, nối tiếp, chuyển đổi số tương
tự, tương tự số.
Lập trình và ghép nối các thiết bị ngoại vi theo
2 CLO2
các phương thức ghép nối
Thiết kế sơ đồ ghép nối giữa máy tính và thiết bị
3 CLO3
ngoại vi.
12/07/2023 04:16 PM 3
TÀI LIỆU THAM KHẢO
[1] Nguyễn Mạnh Giang, “Ghép nối máy tính”, Nhà xuất bản Giáo Dục,
1998.
[2] Ngô Diên Tập, “Kỹ thuật ghép nối máy tính”, Nhà xuất bản Giáo dục,
2003.
[3] Đỗ Xuân Tiến, “Lập trình hệ thống và điều khiển thiết bị”, Nhà xuất
bản Khoa học kỹ thuật, 2003.
[4] Vincent Him, Newnes, “Visual Basic for Electronic Engineerings
Applications”, 2005.
[5] Ying Bai, “The Windows serial port programming handbook”, CRC Press
LLC, 2005.
12/07/2023 04:16 PM 4
NỘI Chương 1: Cơ sở ghép nối và thiết bị ngoại vi
DUNG Chương 2: Ghép nối qua cổng song song
12/07/2023 04:16 PM 5
Chương 1
CƠ SỞ GHÉP NỐI VÀ THIẾT
BỊ NGOẠI VI
12/07/2023 04:16 PM 6
NỘI DUNG
12/07/2023 04:16 PM 8
1.1. Giới thiệu chung
8
1.1.1 Cấu trúc chung
RAM ROM
Ổ BGN
Cơ cấu Thiết bị
cứng, Song Cảm chấp công
CD song, biến đo hành nghiệp
rom nối tiếp lường
MVT/VĐK
9
1.1.1 Cấu trúc chung
Thiết bị ngoại vi
Thiết bị đầu vào: chuột, bàn
phím, touch screen,
modem
10
1.1.1 Cấu trúc chung
Khối ghép nối
Khối ghép nối (khối giao tiếp – interface): Làm nhiệm vụ kết
nối hệ trung tâm (CS) với Thiết bị ngoại vi.
Lý do cần có các interface:
• Sự khác nhau giữa CS với các thiết bị ngoại vi: mức tín hiệu,
tốc độ, chế độ làm việc đồng bộ hay không đồng bộ,…
Để thực hiện giao tiếp, cần có:
• Mạch điện tử thích ứng và chương trình điều khiển
(device driver).
• Mạch điện tử: Cổng vào-ra, Controller, các bộ chuyển đổi
AD-DA.
11
1.1.1 Cấu trúc chung
12
1.1.2. Chức năng của khối ghép nối
Các khả năng lựa chọn ghép nối máy tính và thiết bị ngoại vi:
Ghép nối qua cổng máy in hay còn gọi là cổng song song.
Ghép nối qua cổng RS 232 hay còn gọi là cổng nối tiếp.
Ghép nối qua rãnh cắm mở rộng trên bản mạch chính.
13
1.1.2. Chức năng của khối ghép nối
14
1.1.2. Chức năng của khối ghép nối
Nhận tín hiệu (listener): Nhận thống báo địa chỉ từ máy
tính; nhận thông báo về trạng thái từ thiết bị ngoại vi; Nhận
lệnh điều khiển từ máy tính.
Nguồn tín hiệu (talker): Phát địa chỉ cho khối chức năng
của thiết bị ngoại vi; Phát lệnh cho thiết bị ngoại vi; Phát
yêu cầu trạng thái của thiết bị ngoại vi cho may tính; Phát
số liệu cho thiêt bị ngoại vi hay cho máy tính.
15
1.2. Thủ tục trao đổi dữ liệu:
1.2.1. Chế độ trao đổi dữ liệu của máy tính
Quá trình trao đổi dữ liệu giữa CPU và các ngoại vi gọi tắt là quá trình vào – ra.
Quá trình này được thực hiện theo một trong hai chế độ:
- Chế độ chương trình: gồm các lệnh VÀO, RA và CHUYỂN dữ liệu giữa
các thanh ghi.
- Chế độ truy cập trực tiếp tới bộ nhớ:
16
1.2.1. Chế độ trao đổi dữ liệu của máy tính
a. Chế độ trao đổi dữ liệu theo chương trình
Chương trình
Trao đổi theo phương pháp ngắt:
Máy tính đang thực hiện chuỗi lệnh
của chương trình nào đó, nếu ngoại
vi có yêu cầu trao đổi tin, sẽ gửi tín
Phục vụ ngắt
CPU sẽ thực hiện nốt lệnh hiện tại và Ngắt
đưa tín hiệu chấp nhận (xác nhận
ngắt - INTA). Chương trình chính bị Trở về
ngắt, máy tính chuyển sang chương chương
trình
trình con phục vụ ngắt tức thì. Sau
chính
khi xong việc chương trình chính lại
được tiếp tục thực hiện ở chỗ bị ngắt Ngắt chương trình
19
1.2.1. Chế độ trao đổi dữ liệu của máy tính
a. Chế độ truy cập trực tiếp từ bộ nhớ DMA
Hệ vi xử lý với DMA:
12/07/2023 21
1.2.1. Chế độ trao đổi dữ liệu của máy tính
a. Chế độ truy cập trực tiếp từ bộ nhớ DMA
Treo (thực hiện việc khác) CPU một khoảng thời gian để trao đổi cả
mảng dữ liệu.
Tận dụng thời gian không dùng bus của CPU để trao đổi dữ liệu
12/07/2023 22
1.2.2. Các loại ngắt:
NGẮT
Ngắt
Ngắt hệ Ngắt Ngắt
người
thống trong ngoài
sử dụng
Không
DOS BIOS Có cấm
cấm
22
1.2.2. Các loại ngắt:
a. Ngắt cứng:
Ngắt cứng là các yêu cầu ngắt CPU do các tín hiệu đến từ các chân INTR,
Reset và NMI.
Ngắt cứng NMI (None Maskable Interupt): có yêu cầu ngắt thì bắt buộc
phải ngắt.
Ngắt Reset: Thực sự không phải là ngắt, chỉ là treo chương trình tạm
thời.
Ngắt INTR: Ngắt này hoạt động khi IF = 1, cấm hoạt động khi IF = 0.
- INTR được xóa về 0 nhờ lệnh CLI.
- INTR được xác lập lên 1 nhờ lệnh STI.
- INTR có 16 mức ưu tiên ngắt giảm dần.
23
1.2.2. Các loại ngắt:
a. Ngắt cứng:
Các mức ngắt của ngắt INTR:
IRQ0 Lối ra bộ đệm thời gian IRQ8 Ngắt nhịp thời gian thực
IRQ1 Bàn phím (bộ đệm ra) IRQ9 Phần mềm định hướng tới INT
0Ah (IRQ 2)
IRQ2 Ngắt từ 8259A thứ 2 IRQ10 Dành riêng (dự trữ)
IRQ3 Cổng nối tiếp 2 không đồng bộ IRQ11 Dành riêng (dữ trữ)
IRQ4 Cổng nối tiếp 1 không đồng bộ IRQ12 Dành riêng (dữ trữ)
IRQ6 Điều khiển đĩa mềm IRQ14 Điều khiển đĩa cứng
24
1.2.2. Các loại ngắt:
a. Ngắt mềm:
Ngắt mềm là ngắt bên trong do lệnh của chương trình. Khi VXL gặp các
lệnh gây ra ngắt hoặc tình huống đặc biệt khi thực hiện lệnh (ngắt logic)
và ngắt của hệ điều hành.
Ngắt do lệnh là ngắt khi thực hiện lệnh: Call, HLT, INT.
Ngắt logic xảy ra khi gặp tình huống đặc biệt sau ngắt của hệ điều
hành
12/07/2023 26
1.2.3. Xử lý ngắt của nhiều thiết bị ngoại vi:
Các phương pháp thực hiện cho phép ngắt và cấm ngắt là:
Thực hiện bằng lệnh: Cấm ngắt xử dụng lệnh DI và cho phép ngắt sử
dụng lệnh EI. Hai lệnh này là 2 lệnh của VXL intel 8085 cho các lối
vào ngắt RST 5,5; RST 6,5; RST 7,5 và INTR.
Thực hiện bằng cách ghi vào bit IF của thanh ghi cờ của vi xử lý intel
8086 với các giá trị: IF = 1 cho phép ngắt, IF = 0 cấm ngắt.
26
1.2.3. Xử lý ngắt của nhiều thiết bị ngoại vi:
Với các lối vào ngắt không che được NMI hay các lối vào yêu
cầu ngắt bất kỳ của ngoại vi người ta dùng các trigơ cho phép
và cấm ngắt. Khi xác lập 1 là cho phép và xóa về 0 là cấm ngắt.
Lối vào yêu cầu ngắt của ngoại vi được đưa vào 1 chân của
cổng logic và chân kia lấy từ lối ra của trigơ. Lối ra cổng logic
đưa vào NMI hoặc INTR hoặc các lối vào của sơ đồ ưu tiên
ngắt.
27
1.2.3. Xử lý ngắt của nhiều thiết bị ngoại vi:
Sắp xếp ưu tiên phục vụ ngắt dùng 1 trong 3 phương pháp sau:
28
1.2.3. Xử lý ngắt của nhiều thiết bị ngoại vi:
c. Sắp xếp ưu tiên ngắt:
DI0÷DIr
1
INTR
VXL
BGN1 BGN2 BGN3
INTA
DI0÷DIn
INTA
INTA 0
29
1.2.4. Các mạch xử lý ngắt
Mạch điều khiển ngắt ưu tiên 8259A
30
1.2.4. Các mạch xử lý ngắt
31
1.2.4. Các mạch xử lý ngắt
32
1.2.4. Các mạch xử lý ngắt
• Để mạch PIC 8259A có thể hoạt động được theo yêu cầu. Sau
khi bật nguồn cấp điện, PIC cần phải được lập trình bằng cách
ghi vào thanh ghi (tương đương với các cổng IO) bên trong nó
các từ điều khiển khởi đầu (ICW) và tiếp sau đó là các từ điều
khiển hoạt động (OCW).
• Các từ điều khiển ICW dùng để tạo nên các Mode làm việc cơ
bản cho PIC
• Các từ điều khiển OCW sẽ quyết định cách thức làm việc cụ
thể của PIC. Từ điều khiển OCW sẽ được ghi khi ta muốn thay
đổi hoạt động của PIC
33
1.2.4. Các mạch xử lý ngắt
a. Các từ điều khiển khởi đầu ICW
ICW1: Xác định cách thức làm việc cơ bản đầu tiên của 8259A, và còn quy
định cả sự tồn tại của các từ điều khiển sau và được phân biệt bằng bit A0
A0 D7 D6 D5 D4 D3 D2 D1
0 X X X 1 LTIM ADI SNGL IC4
1: Cần ICW4
0: bỏ ICW4
Các tác động của xung yêu cầu ngắt
1: theo mức dương
0: theo mức 1 1: chỉ có 1 PIC
0: có nhiều PIC
ICW2: Cho phép chọn kiểu ngắt (số hiệu ngắt) ứng cho các đầu
vào yêu cầu ngắt. Tổ chức từ mã khởi đầu ICW2 có dạng sau:
A0 D7 D6 D5 D4 D3 D2 D1 D0
Chọn số hiệu ngắt (kiểu ngắt) cho ứng với các y/c ngăt
mạch 8259A IR0 – IR7
35
1.2.4. Các mạch xử lý ngắt
a. Các từ điều khiển khởi đầu ICW
ICW3: Từ điều khiển này được dùng khi có nhiều vi mạch 8259 làm việc theo
chế độ chủ tớ. Có nghĩa là từ này chỉ được dùng khi bit SNGL của từ điều
khiển ICW1 = 0.
ICW3 được chia làm 2 loại: ICW3 cho chế độ 8259 chủ, ICW3 cho chế độ
8259 tớ
ICW3 chủ:
A0 = 1 D7 D6 D5 D4 D3 D2 D1 D0
ICW3 tớ:
ID: đánh dấu số tín hiệu ngắt (IR)của vi mạch chủ mà đầu ngắt (INT) của
Vi mạch tớ được nối vào.
36
1.2.4. Các mạch xử lý ngắt
a. Các từ điều khiển khởi đầu ICW
ICW4: Từ điều khiển này được dùng khi bit IC4 của từ điều khiển thứ nhất IC4 = 1.
PM: Chọn loại vi xử lý, PM = 1 cho các vi xử lý cao hơn 16 bit.
AEOI (Automatic end of interrupt): Cho phép kết thúc ngắt tự động
M/S: (master/slave) định nghĩa vi mạch chủ hay vi mạch tớ làm việc ở
Chế độ đệm.
37
1.2.4. Các mạch xử lý ngắt
a. Các từ điều khiển khởi đầu ICW
38
1.2.4. Các mạch xử lý ngắt
b. Từ điều khiển hoạt động OCW:
OCW1: từ điều khiển này tương ứng với nội dung thanh ghi
khuôn che ngắt (IMR) trong vi mạch 8259
1 M7 M6 M5 M4 M3 M2 M1 M0
39
1.2.4. Các mạch xử lý ngắt
b. Từ điều khiển hoạt động OCW:
OCW2:
1 R SL EOI 0 0 L2 L1 L0
Bảng các chế độ làm việc có thể định nghĩa được qua R,SL,EOI
40
1.2.4. Các mạch xử lý ngắt
b. Từ điều khiển hoạt động OCW:
OCW3: từ điều khiển hoạt động này cho phép thao tác với mặt nạ đặc biệt,
thăm dò trạng thái yêu cầu ngắt và định nghĩa thanh ghi bên trong 8259A để đọc.
ESMM (enable special mask mode: cho phép chế độ khuôn che đặc biệt.
SMM (Special mask mode): Đặt ESM = 1 hoặc xóa ESM = 0 chế độ
khuôn che đặc biệt. Chế độ khuôn che đặc biệt cho phép thay đổi mức
ưu tiên ngay trong chương trình phục vụ ngắt.
RIS: Chọn thanh ghi IRR hay ISR có thể đọc được trong lần kế tiếp.
41
1.2.4. Các mạch xử lý ngắt
Cách ghép nối vi mạch 8259A trong máy vi tính cá nhân tương thích IBM
5V
CAS0 – CAS2 42
1.2.4. Các mạch xử lý ngắt
Địa chỉ cổng phần cứng của từng vi mạch như sau:
Vi mạch 8259 chủ:20H, 21H.
Vi mạch 8259 tớ: A0H, A1H
43
1.2.4. Các mạch xử lý ngắt
Ví dụ: Lập trình khởi động cho vi mạch điều ngắt trong máy vi tính cá nhân.
Vi mạch 8259 chủ (20H,21H)
ICW1 = 11H (
ICW2 = 8H (kiểu ngắt 08H, yêu cầu ngắt IRQ0)
ICW3 = 04H
ICW4 = 01H
Vi mạch 8259 tớ (A0H, A1H)
ICW1 = 11H (
ICW2 = 70H (kiểu ngắt 70H, yêu cầu ngắt IRQ8)
ICW3 = 02H
ICW4 = 01H
44
1.2.4. Các mạch xử lý ngắt
Đoạn chương trình khởi động cho vi mạch ngắt:
CLI;
MOV AL,11H;
OUT 20H,AL;
MOV AL,08H;
OUT 21H,AL;
MOV AL, 04H;
OUT 21H,AL;
MOV AL, 01H;
OUT 21H,AL
MOV AL,11H;
OUT A0H, AL;
MOV AL,70H;
OUT A1H,AL;
MOV AL,02H;
OUT A1H,AL;
MOV AL,01H;
OUT A1H, AL
STI;
45
1.2.4. Các mạch xử lý ngắt
CÂU HỎI BÀI TẬP
1. Trình bày chức năng, nhiệm vụ của một khối ghép nối. Trong ghép nối
giữa máy tính và máy in thông thường qua cổng máy in, khối ghép nối nằm
ở đâu và chức năng cụ thể của nó là gì?
2. Khối ghép nối (phối ghép I/O) giữa hệ thống máy tính nói riêng và hệ vi xử
lý nói chung có những nhiệm vụ gì?
3. Trình bày cấu trúc chung của một khối ghép nối. Để có thể lập trình điều
khiển ghép nối được thì khối ghép nối bắt buộc phải có thành phần nào?
Tại sao?
4. So sánh phương pháp vào ra bằng hỏi vòng và vào ra bằng ngắt. Ưu nhược
điểm của mỗi phương pháp.
5. Địa chỉ của chương trình con phục vụ ngắt 4 là 0010:0082. Hãy xác định
thứ tự và địa điểm địa chỉ này được cất trong bảng vector ngắt nào? 46
Chương 2
GHÉP NỐI QUA CỔNG
SONG SONG
12/07/2023 04:16 PM 48
NỘI DUNG
12/07/2023 04:16 PM 49
MỤC TIÊU
Biết cách ghép nối thiết bị ngoại vi qua cổng song song.
Hiểu các khối ghéo nối song song đơn giản.
Biết cách ghép nối song song điều khiển bằng chương trình.
Thiết kế một hệ thống giao tiếp qua cổng song song.
12/07/2023 04:16 PM 50
2.1. Giới thiệu chung về cổng song song
2.1.1. Các khái niệm chung
Khoảng cách ghép nối: Khoảng cách giới hạn cực đại là 8m,
thông thường chỉ 1.5m đến 2m.
51
2.1.3. Cổng song song LPT
SELIN
AUTOF
ERROR
GROUND
1 2 INIT
3 4 5 6 7 8 9 10 11 12 13
PE (Paper End)
SEL (Select)
STROBE
BUSY
D0 D1 D2 D3 D4 D5 D6 D7
ACK
DATA OUT
53
2.1.3. Cổng song song LPT
378h-37Fh LPT1
278h-27Fh LPT2Nhóm
54
2.1.3. Cổng song song LPT
Vùng lưu giữ địa chỉ cơ sở Giao diện (BIOS) Tên thiết bị (MS-
DOS)
của cổng
0040:0008h 0 LPT1
0040:000Ah 1 LPT2
0040:000Ch 2 LPT3
0040:000Eh 3 LPT4
55
2.1.3. Cổng song song LPT
Các cổng song song gần đây được chuẩn hoá theo chuẩn IEEE 1284 đưa ra năm
1994. Chuẩn này mô tả 5 chế độ hoạt động của cổng máy in như sau:
2. Chế độ Nibble
3. Chế độ Byte
4. Chế độ EPP
5. Chế độ ECP
56
2.1.4. Các thanh ghi ở cổng song song
Tên tín hiệu Số chân trên
STROBE đầu nối PC 1
D0 2
D1 3
D2 4
D3 5
D4 6
D5 7
D6 8
D7 9
Máy tính ACK 10
Máy in
Busy 11
Paper Empty 12
Select 13
Auto line Feed 14
Error 15
Reset 16
Select Input 17
Ground 18-25
56
2.1.4. Các thanh ghi ở cổng song song
57
2.2. Các lệnh vào ra dữ liệu
a. Lệnh vào ra bằng hợp ngữ:
- Nhận dữ liệu từ thiết bị vào/ra: INPUT.
- Gửi số liệu ra thiết bị vào/ra: OUTPUT.
Ví dụ: Lệnh đọc các byte đường dữ liệu từ cổng LPT1:
MOV DX,378H
IN AL,DX
CẤU TRÚC LỆNH SỐ BIT DỮ CHỨC NĂNG
LIỆU
IN AL,D8 8 Đọc 1 byte từ cổng vào/ra 8 bit
IN AL,DX 8 Đọc 1 byte từ cổng vào/ra xác định bởi thanh ghi DX
IN AX,D8 16 Đọc một word từ cổng vào/ra 8 bit
IN AX,DX 16 Đọc 1 word từ cổng vào/ra xác định bởi thanh ghi DX
OUT D8,AL 8 Gửi 1 byte ra cổng vào/ra 8 bit
OUT DX,AL 8 Gửi 1 byte ra cổng vào/ra xác định bởi thanh ghi DX
OUT D8,AX 16 Gửi 1 word ra cổng vào/ra xác định bởi thanh ghi DX
OUT DX,AX 16 Gửi 1 word ra cổng vào/ra xác định bởi thanh ghi DX
58
2.2. Các lệnh vào ra dữ liệu
b. Lệnh vào ra bằng Turbo C:
- Xuất ra dữ liệu: outportb (cổng, giá trị).
- Nhập vào dữ liệu: x =inportb (cổng) .
59
2.2. Các lệnh vào ra dữ liệu
Ví dụ: các lệnh sau xuất 5 (8 bít 00000101) qua thanh ghi dữ liệu của
LPT1
#include <dos.h>
#define Dat_reg 0x378
char data_var=5;
outport(Dat_reg,data_var);
60
2.3. Khối ghép nối song song đơn giản
2.3.1. Cửa vào ra đơn giản không đối thoại:
a. cửa vào đơn giản:
61
2.3. Khối ghép nối song song đơn giản
2.3.1. Cửa vào ra đơn giản không đối thoại:
b. cửa ra đơn giản:
62
2.3. Khối ghép nối song song đơn giản
2.3.2. Cửa vào ra đơn giản có đối thoại:
a. cửa vào đơn giản có đối thoại:
63
2.3. Khối ghép nối song song đơn giản
2.3.2. Cửa vào ra đơn giản có đối thoại:
a. Cửa ra đơn giản có đối thoại:
64
2.4. Ghép nối song song điều khiển bằng chương trình
2.4.1 Sơ đồ và chức năng của 8255A
PA0-PA7
Nhóm A
Cổng A
Điều
khiển
Nhóm A PC4-PC7
Nhóm A
Cổng C
Đệm Nửa cao
D0-D7 số liệu
Nhóm B PC0-PC3
Cổng C
Nửa thấp
Điều
khiển
A1 Logic Nhóm B
Nhóm B PB0-PB7
A0 điều Cổng B
RESET khiển
đọc/ghi
12/07/2023 04:16 PM 66
2.4.1 Sơ đồ và chức năng của 8255A
12/07/2023 04:16 PM 67
2.4.1 Sơ đồ và chức năng của 8255A
A1 A0 Chức năng
0 0 Cổng A
0 1 Cổng B
1 0 Cổng C
1 1 CWR
68
2.4.1 Sơ đồ và chức năng của 8255A
68
2.4.1 Chế độ làm việc của 8255A
D7 D6 D5 D4 D3 D2 D1 D0
1 MA1 MA0 A CA MB B CB
NHÓM B
NHÓM A
12/07/2023 04:16 PM 70
2.4.1 Chế độ làm việc của 8255A
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 S/R
1: Lập bit
Mã hoá PCi 0: Xóa bit
000: PC0
...
111: PC7
Từ điều khiển lập/xoá PCi của 8255A
12/07/2023 04:16 PM 71
2.4.1 Chế độ làm việc của 8255A
Mode 0: các cổng PA, PB, PC làm việc như các cổng đơn giản
12/07/2023 04:16 PM 72
2.4.1 Chế độ làm việc của 8255A
Mode 1: PA, PB là các cổng vào/ra có tín hiệu hội thoại, PC làm tín
hiệu hội thoại cho PA, PC
OBFA PA STBA
PA INTEA
INTEA IBFA
PC7 ACKA PC4
PC6 PC5
INTEB INTEB
PC1 OBFB PC2 STBB
PC2 ACKB PC1 IBFB
PC0
INTRB PC0 INTRB
PB PB
PC4,5 I/O PC4,5 I/O
a. Ra b. Vào
73
2.4.1 Chế độ làm việc của 8255A
Mode 2: PA, PB là các cổng vào/ra có tín hiệu hội thoại, PC làm tín
hiệu hội thoại cho PA, PC
D0-D7 PA D0-D7 PA
PC3 INTRA PC3 INTRA
12/07/2023 04:16 PM 75
2.4.1 Chế độ làm việc của 8255A D0-D7
D0-D7
Ghép nối lập trình 8086 với 8255A PA
RD RD PC7 OBFA
WR WR ACKA
PC6
Sơ đồ A2 A1
A1 A0
PB
A0 PC2
A3 A y0 8255A -1
A5 B y1 D8-D15
A7 C D0-D7
y2 PA
y3 RD
A4
y4 WR
M / IO
y5 A1
y6 A0 D0-D15
A6 G1 PB
y7 PC1 IBFB
74LS138 PC2 STBB
BHE
8255A-2
Sử dụng 8255A thiết kế 1 cổng vào 16 bit mode 1; 1 cổng ra 8 bit mode1; 1 cổng vào 8 bit
12/07/2023 04:16 PM 76
mode 0 cho hệ VXL 8086
2.4.1 Chế độ làm việc của 8255A
Ghép nối lập trình 8086 với 8255A
Xác định địa chỉ các cổng và nội dung của các CWR:
• Sử dụng 2 cổng PB làm cổng vào trao đổi dữ liệu 16 bit mode 1,
địa chỉ 62h
• Sử dụng PA (8255A-1) làm cổng ra trao đổi dữ liệu 8 bit mode 1,
địa chỉ 60h
• Sử dụng PA (8255A-2) làm cổng vào trao đổi dữ liệu 8 bit mode 0,
địa chỉ 61h
• Địa chỉ PC (8255A-1): 64h
• Địa chỉ PC (8255A-2): 65h
• Địa chỉ CWR (8255A-1): 0110 0110=66h
• Địa chỉ CWR (8255A-2): 0110 0111=67h
• Nội dung CWR (8255A-1): 1010 0110=0A6h
• Nội dung CWR (8255A-2): 1001 0110=96h
12/07/2023 04:16 PM 77
2.4.1 Chế độ làm việc của 8255A
Ghép nối lập trình 8086 với 8255A
Chương trình:
MOV AL, 0A6h ; Thiết lập cấu hình cho 8255A-1
OUT 66h, AL ; theo yêu cầu đầu bài
MOV AL, 96h ; Thiết lập cấu hình cho 8255A-2
OUT 67h, AL ; theo yêu cầu đầu bài
79
2.4.1 Chế độ làm việc của 8255A
Ghép nối lập trình 8086 với 8255A
- Địa chỉ của CWR: 8Ch
- Nội dung CWR lập bit PC3: 07h
- Nội dung CWR xóa bit PC3: 06h
Chương trình
MOV CX, 256
tt:
MOV AL, 07h
OUT 8Ch ,AL
CALL Delay25ms
MOV AL, 06h
OUT 8Ch ,AL
CALL Delay25ms
LOOP tt
80
2.4.1 Chế độ làm việc của 8255A
Ghép nối lập trình 8255 với máy tính và thiết bị ngoại vi
80
2.4.1 Chế độ làm việc của 8255A
Ghép nối lập trình 8255 với máy tính và thiết bị ngoại vi
81
Bài tập
Câu 1. Xây dựng mạch giải mã địa chỉ cho vi mạch PPI 8255 có địa chỉ cơ sở là
300h bằng các vi mạch AND, OR, 74138 , … Xác định giá trị từ điều khiển thiết lập
chế độ cho vi mạch PPI 8255 làm việc ở như sau: PA: mode 0, vào; PB: mode 0, ra;
PC thấp: ra, PC cao: vào.
Câu 2. Xây dựng mạch giải mã địa chỉ cho vi mạch PPI 8255 có địa chỉ cơ sở là
304h bằng các vi mạch AND, OR, 74138 , … Xác định giá trị từ điều khiển thiết lập
chế độ cho vi mạch PPI 8255 làm việc ở như sau: PA: mode 0, ra; PB: mode 0, vào;
PC thấp: ra, PC cao: vào.
Câu 3. Xây dựng mạch giải mã địa chỉ cho vi mạch PPI 8255 có địa chỉ cơ sở là
310h bằng các vi mạch AND, OR, 74138 , … Xác định giá trị từ điều khiển thiết lập
chế độ cho vi mạch PPI 8255 làm việc ở như sau: PA: mode 0, ra; PB: mode 1, vào;
PC thấp: vào, PC cao: ra. 83
Bài tập
Câu 4. Cho sơ đồ ghép nối vi mạch ADC với cổng máy in LPT1 của máy tính như sau:
Bắt đầu
8
Khởi tạo cổng
máy in
2-9 Data
LPT1
ADC Tạo xung Start
16 (/C2) Start S
Finish = 1
Đ
11 (/S7) Finish Đọc dữ liệu
Kết thúc
Viết chương trình điều khiển hoạt động của vi mạch ADC theo lưu đồ như hình vẽ.
Biết rằng đưa vào tín hiệu Start là một xung dương. Các tín hiệu điều khiển được nối
vào các chân của cổng LPT1 (Địa chỉ cơ sở = 378h) có số chân như hình vẽ.
84
Chương 3
GHÉP NỐI QUA CỔNG
NỐI TIẾP
12/07/2023 04:16 PM 85
NỘI DUNG
12/07/2023 04:16 PM 86
Mục Tiêu
12/07/2023 04:16 PM 87
3.1. Giới thiệu chung về trao đổi dữ liệu nối tiếp
3.1.1. Nguồn gốc
Trao đổi thông tin theo phương thức truyền nối tiếp là truyền
liên tiếp từng bit một trên một đường truyền. Cách truyền nhận
thông tin theo cách này được thực hiện thông qua cổng giao
tiếp nối tiếp hay còn được gọi là cổng Com trên máy tính.
87
3.1.1. Nguồn gốc
Cổng RS232
Cổng RS232 hay V.24 là một tiêu chuẩn
quy định các đặc tính cho cổng nối tiếp,
còn V.24 là tên của cổng này được áp
dụng ở các nước Tây Âu.
1 - FG Frame Ground: đất vỏ máy Chân này thường được nối với vỏ bọc kim của máy tính
với vỏ máy, hoặc đất thực sự
2 3 TxD Transmit Data: Truyền dữ liệu Dữ liệu được gửi từ DTE với DCE qua đường dẫn TD
3 2 RxD Receiver Data: Nhận dữ liệu Dữ liệu được gửi từ DCE tới DTE qua đường dẫn RD
4 7 RTS Request To Send: yêu cầu gửi DTE đặt đường này lên mức hoạt động khi sẵn sàng
truyền dữ liệu
5 8 CTS Clear To Send: Xóa để gửi DCE đặt đường này lên mức hoạt động để thông báo cho
DTE là nó sẵn sàng nhận dữ liệu
6 6 DSR Data Set Ready: dữ liệu sẵn sàng Tính hoạt động giống CTS nhưng được kích hoạt bởi DTE
khi nó sẵn sàng nhận dữ liệu
7 5 SG Signal Ground: Đất của tín hiệu Tất cả các tín hiệu được so sánh với đất tín hiệu
8 1 DCD Data Carier Detect Phát hiện tín hiệu mang dữ liệu
20 4 DTR Data Terminal Ready: Đầu cuối Tính hoạt động giống với RTS nhưng được kích hoạt bởi
dữ liệu sẵn sàng DCE khi muốn truyền dữ liệu
91
22 9 RI Ring Indicate: Báo chuông Chỉ báo là DCE đang nhận tín hiệu rung chuông
3.1.2. Đặc trưng
c. Đặc trưng về mức điện áp
Các đặc trưng về mức điện áp của chuẩn RS-232 như sau:
- Mức logic 1(mức dấu) nằm trong khoảng -3V -> -12V; Mức logic 0
(Mức trống) nằm trong khoảng +3V -> +12V.
- Trở kháng tải về phía bộ nhận của mạch phải nằm trong khoảng
3000Ω -7000Ω.
- Tốc độ truyền nhận cực đại 100 Kbit/s.
- Các lối vào của bộ nhận phải có điện dung <2500pF.
- Độ dài của cáp nối giữa máy tính và thiết bị ghép nối qua cổng nối
tiếp không thể vượt qua 15m nếu không sử dụng Modem.
- Các giá trị tốc độ truyền dữ liệu chuẩn là 50, 75, 110, 300, 600,
1200, 2400, 4800, 9600, 19200, 28800, …56600 baud (bit/s)
92
3.1.3. Thủ tục trao đổi dữ liệu
a. Quá trình truyền dữ liệu:
Truyền dữ liệu qua cổng nối tiếp RS-232 được thực hiện không
đồng bộ, nghĩa là tại một thời điểm chỉ có một bit được truyền.
Khuôn dạng dữ liệu:
- Không kiểm tra (no parity): không có bit chẵn lẻ trong khung dữ liệu.
- Kiểm tra chẵn (even parity): Bit chẵn lẻ bằng 1 khi tổng số bit 1 của dữ liệu
và bit chẵn lẻ là một số chẵn.
- Kiểm tra lẻ (odd parity): Bit chẵn lẻ bằng 1 khi tổng số bit 1 của dữ liệu và
bit chẵn lẻ là một số lẻ.
Ví dụ: Thiết lập khung truyền 2 kí tự A = 41h = 01000001 theo trạng thái MARK với
7 bit truyền dữ liệu được truyền, kiểm tra chẵn lẻ.
Bit chẵn-lẻ, lẻ
Bit Start
Khoảng trễ
Bit Stop
7 bit dữ liệu
0 1 1 1 1
0 0 0 0 0 1 0 0 0 0 0 0 1 1 1
LSB MSB
LSB MSB
MARK
‘A’(1000001) ‘A’(1000001)
95
3.1.3. Thủ tục trao đổi dữ liệu
b. Tốc độ truyền
• Bên trong UART hỗ trợ các thanh ghi cho phép xác định
các tốc độ làm việc khác, vd: 1200, 2400, 4800, 9600,
19200, 38400… bp
96
3.1.3. Thủ tục trao đổi dữ liệu
b. Tốc độ truyền
Bảng so sánh tốc độ truyền bit và tốc độ truyền kí tự
Tốc độ bps Kí tự/s
110 11
300 30
600 60
1200 120
2400 240
4800 480
9600 960
19200 1920
97
3.1.3. Thủ tục trao đổi dữ liệu
c. Các vấn đề truyền thông
Truyền nối tiếp các mã ký tự ASCII
Truyền mã ASCII trong thông tin nối tiếp rất thông dụng. Đó
là việc truyền các kí tự được mã hóa bằng số nhị phân 7 bit
với 96 kí tự in ra được và 32 kí tự không in được dùng cho
điều khiển. Tại các thiết bị phát dùng chuẩn RS-232, bit có
trọng số nhỏ nhất LSB của kí tự ASCII được truyền đầu tiên,
bit có trọng số lớn nhất MSB truyền sau cùng.
98
3.1.3. Thủ tục trao đổi dữ liệu
c. Các vấn đề truyền thông
Điều khiển thông tin nối tiếp giữa 2 thiết bị
Điều khiển thông tin nối tiếp giữa 2 thiết bị có hai phương pháp:
- Phương pháp điều khiển thông tin không có móc nối (no – handshake)
99
3.1.3. Thủ tục trao đổi dữ liệu
c. Các vấn đề truyền thông
Phương pháp điều khiển thông tin không có móc nối:
D-9 D-9
TD TD
RD RD
RTS RTS
CTS CTS
DTR DTR
DSR DSR
GND GND
Nối dây thông tin giữa hai cổng RS-232 theo kiểu không móc nối
100
3.1.3. Thủ tục trao đổi dữ liệu
c. Các vấn đề truyền thông
Phương pháp điều khiển thông tin có móc nối:
Thông tin RS-232 có móc nối (móc nối cứng) Nối DTE với DCE
101
3.1.3. Thủ tục trao đổi dữ liệu
c. Các vấn đề truyền thông
Phương pháp điều khiển thông tin có móc nối:
X-OFF
Máy phát X-ON Máy thu
Số liệu
102
3.2. Một số chuẩn ghép nối
Chuẩn RS422: Là tiêu chuẩn đầu tiên được cải
tiến từ tiêu chuẩn RS232C trong đó đặc điểm
về khoảng cách và tốc độ đều được cải tiến cụ
thể. Cho phép tăng tốc độ cỡ vài Mbit/s,
khoảng cách truyền được cải thiện từ 15m đến
1200m. Cải tiến: Vẫn truyền theo kiểu nối tiếp nhưng cách
truyền thay đổi.
+ Mức logic của tín hiệu không được tính theo đường
Mas (0v) mà được tính theo điện áp vi sai.
+ Bộ đệm đường dẫn tạo ra một điện áp vi sau gần
bằng 5v và truyền trên 2 sợi dây xoắn.
+ RS422 quy định một cặp tín hiệu được sử dụng để
truyền chứ không phải một tín hiệu như trong RS232:
Cặp này bao gồm tín hiệu không đảo A và tín hiệu
đao B 102
3.2. Một số chuẩn ghép nối
103
3.2. Một số chuẩn ghép nối
RS485: Cải tiến từ chuẩn RS422 theo hướng nhiều thành viên được
tham gia vào cuộc truyền dữ liệu. Bộ đệm đường dẫn của chuẩn này
tạo ra một điện áp vi sai 5V trên 2 đượng dẫn/truyền dữ liệu và mức
điện áp được tính theo phương pháp vi sai.
Ứng dụng RS485: theo dõi số lượng xuất nhập ở các kho xăng dầu.
104
3.2. Một số chuẩn ghép nối
V24/RS232C RS422 RS485
Bản chất liên kết Điểm – điểm Điểm – điểm Bus
Loại giao diện Điện áp không Điện áp đối xứng Vi phân điện áp không đối xứng
đối xứng với khả năng 3 trạng thái
Khả năng chống nhiễu Thấp Cao Cao
Số bộ đệm cực đại 1 1 32
Số bộ nhận cực đại 1 1 32
Độ dài cực đại của đường 15m 1200m 1200m
truyền
Tốc độ truyền cực đại 100kBaud 10MBaud 10Mbaud
Điện áp lối ra của bộ đệm 15V, 15V 5V 5V
không có tải và có tải
2V 1.5V
107
3.3.1. Bộ truyền nhận không đồng bộ vạn năng UART 8250A
Sơ đồ khối 8250:
108
3.3.2. Các thanh ghi
109
3.3.2. Các thanh ghi
Bảng mô tả các thanh ghi của UART
DLAB A2 A1 A0 ĐỌC/GHI THANH GHI ĐỊA CHỈ
0 0 0 0 Đọc/ghi Đệm thu (RBR) và đệm phát 3F8, 2F8 Đ/c cơ sở
(THR)
0 0 0 1 Đọc/ghi Cho phép yêu cầu ngắt IER 3F9, (2F9) ĐCCS+1
1 0 0 0 Đọc/ghi Chốt chia phần thấp LSB 3F8, (2F8) ĐCCS
1 0 0 1 Đọc Chốt chia phần cao (MSB) 3F9, (2F9) ĐCCS+1
X 0 1 0 Đọc/ghi Nhận dạng ngắt (IIR) 3FA (2FA) ĐCCS+2
X 0 1 1 Đọc/ghi Điều khiển dòng(LCR) 3FB, (2FB) ĐCCS+3
X 1 0 0 Đọc/ghi Điều khiển Modem (MC) 3FC, (2FC) ĐCCS+4
X 1 0 1 Đọc/ghi Trạng thái dong (LSR) 3FD, (2FD) ĐCCS+5
X 1 1 0 Đọc/ghi Trạng thái modem MSR 3FE, (2FE) ĐCCS+6
X 1 1 1 Đọc/ghi Nhớ nháp (DM) 3FF, (2FF) ĐCCS+7
110
3.3.2. Các thanh ghi
Mỗi thanh ghi trong 8250 tương ứng với một địa chỉ cổng, trong đó có 2
thanh ghi đặc biệt, nó có chức năng có thể thay thế tùy thuộc vào giá trị bit
DLAB – bít truy nhập chốt – DLAB là bit D7 của thanh ghi dạng số liệu.
DLAB = 1: thì thanh ghi thực hiện chốt chia phần cao.
111
3.3.2. Các thanh ghi
Đặc điểm:
DLAB = 0, địa chỉ 3F8 (COM1) hay 2F8 (COM2)
Khi 8250 nhận được kí tự qua chân SIN (chân 10), kí tự
được chuyển vào thanh ghi dịch, tại đây nó được tháo
khung và nạp song song vào thanh ghi đệm thu.
CPU chỉ đọc dữ liệu trong thanh ghi này vì nó thao tác với
BUS dữ liệu song song tối thiểu 1 lần.
112
3.3.2. Các thanh ghi
Đặc điểm:
DLAB = 0, địa chỉ 3F8 (COM1) hay 2F8 (COM2)
Kí tự cần phát đi phải được ghi từ thanh ghi vào và thanh
ghi này nằm chờ cho đến khi kí tự trước nó được phát đi,
sau đó nó đưa vào thanh ghi dịch của bộ phát
Tại thanh ghi dịch này nó được tháo khung và đưa ra từng
bit một vào chân SOUT (chân 11) của 8250. Dữ liệu tại
đầu ra ở dạng nối tiếp.
113
3.3.2. Các thanh ghi
114
3.3.2. Các thanh ghi
Đặc điểm:
Thanh ghi không giữ giá trị của tốc độ baud mà chỉ chứa
số chia 16 bit, số này suy ra tốc độ baud.
Tốc độ baud được đặt bằng cách nạp số chia 16 bit đặt ở
địa chỉ bộ đệm TX/RX.
Giá trị cất giữ trên 2 thanh ghi này phục thuộc vào tần số
của bộ cộng hưởng thạch anh của 8250 (chân 16,17):
1,8432MHz; 2,4576MHz, 3,072MHz.
Bộ chia = tần số nhịp chuẩn/16 x tốc độ baud mong muốn.
115
3.3.2. Các thanh ghi
116
3.3.2. Các thanh ghi
e. Thanh ghi trạng thái đường truyền (LSR – Line Status Resgister)
Đặc điểm:
Gồm 8 bit chứa thông tin về quá trình truyền dữ liệu qua cổng
nối tiếp cần cung cấp cho bộ VXL. Địa chỉ 3FD (2FD)
117
3.3.2. Các thanh ghi
118
3.3.2. Các thanh ghi
g. Thanh ghi nhận dạng ngắt – IIR:
Đặc điểm:
Thanh ghi này chứa đựng mã, nhận dạng điều kiện (ngắt).
VXL xóa các bít D0, D1, D2 về giá trị 0 sau các thao tác:
Đọc thanh ghi trạng thái chuỗi.
Đọc dữ liệu từ thanh ghi đệm thu.
Ghi vào bộ phát hoặc đọc thanh ghi nhận dạng ngắt.
Đọc trạng thái thanh ghi thao tác MODEM (RS232 – C)
0 0 0 0 0 D2 D1 D0
a. Địa chỉ các cổng COM và ngắt 14h – dịch vụ Bios cho cổng COM
123
3.3.3. Lập trình cho cổng RS-232
a. Địa chỉ các cổng COM và ngắt 14h – dịch vụ Bios cho cổng COM
Hàm 0h:
Ý nghĩa: Khởi tạo cổng
COM.
Đầu vào:
- AH=0
- DX=số hiệu cổng
COM (0-3)
- AL= tham số khởi
tạo trong đó định
dạng của AL như
sau.
Int 14h
Đầu ra: AH = trạng thái
của cổng vừa khởi tạo.
123
3.3.3. Lập trình cho cổng RS-232
a. Địa chỉ các cổng COM và ngắt 14h – dịch vụ Bios cho cổng COM
Hàm 1h:
Ý nghĩa: Ghi một kí tự ra cổng COM
Đầu vào: AH=1
DX=số hiệu cổng COM (0-3)
AL= Mã ASCII của kí tự
Int 14h
Đầu ra: AH = trạng thái lỗi của cổng. Bít 7=1: có lỗi, bít 7=0
không có lỗi.
Hàm 2h:
Ý nghĩa: Nhận một kí tự ra cổng COM
Đầu vào: AH=2
DX=số hiệu cổng COM (0-3)
Đầu ra: AL= Mã ASCII của kí tự nhận được. AH = trạng thái lỗi
của cổng. Bít 7=1: có lỗi, bít 7=0 không có lỗi.
124
3.3.3. Lập trình cho cổng RS-232
a. Địa chỉ các cổng COM và ngắt 14h – dịch vụ Bios cho cổng COM
Đầu vào: AH=3 Bit 6 Thanh ghi phát rỗng Bit 6 Chỉ thị chuông
DX=số hiệu cổng COM (0-3)
Bit 5 Thanh ghi nhận rỗng
Đầu ra: AH = trạng thái cổng COM Bit 5 Sẵn sàng thiết lập dữ liệu
AL = trạng thái modem. Bit 4 Cho phép ngắt Bit 4 Xóa gửi
Bit 3 Lỗi khung truyền Bit 3 Phát hiện sóng mang dữ liệu delta
Bit 1 Lỗi đường truyền Bit 1 Sẵn sàng thiết lập dữ liệu delta
125
3.3.3. Lập trình cho cổng RS-232
127
3.3.3. Lập trình cho cổng RS-232
b. Lập trình UART 8250
Bước 1:
- Đọc thanh ghi nhận dạng ngắt để biết bộ đệm rỗng, có thể phát tin.
- Ghi vào thanh ghi điều khiển MODEM để đưa lệnh DRT (bit D0-D1) điều khiển
MODEM chuẩn bị phát.
- Đọc thanh ghi trạng thái MODEM để kiểm tra các bit DSR (D5), RI (D6), DCD (D7).
- Đọc thanh ghi trạng thái dòng để xem có sai số không và hai thanh truyền và đệm có
trống không?
- Ghi lệnh RTS (D1=1) vào thanh ghi điều khiển MODEM để điều khiển phát số liệu.129
3.3.3. Lập trình cho cổng RS-232
b. Lập trình UART 8250
Bước 3:
- Đọc trạng thái MODEM DSR, RI, DCD ở thanh ghi trạng thái
MODEM.
- Đọc thanh ghi trạng thái dòng để biết đã có số liệu thu chưa
(D0=1); hoặc đọc thanh ghi nhận diện ngắt để biết thêm số liệu
thu.
- Đọc số liệu vào từ thanh ghi đệm số liệu vào.
130
3.3.3. Lập trình cho cổng RS-232
b. Lập trình UART 8250
Ví dụ 1: 8250 cần trao đổi 8 bit tốc độ 9600 baud, không kiểm
tra chẵn/ lẻ, 2 bit Stop, địa chỉ làm việc đầu 03F8H.
a. Tìm địa chỉ cho thanh ghi điều khiển trạng thái – LCR. (địa
chỉ, dữ liệu)
b. Tìm địa chỉ cho thanh ghi chốt bộ chia – LS.
c. TÌm địa chỉ cho thanh ghi cho phép ngắt – IER.
d. Tìm địa chỉ cho thanh ghi nhận dạng ngắt – IIR.
e. Tìm địa chỉ cho thanh ghi điều khiển MODEM – MCR.
f. Tìm địa chỉ cho thanh ghi trạng thái MODEM – MSR.
g. Tìm địa chỉ cho thanh ghi trạng thái đường truyền – LSR.
130
3.3.3. Lập trình cho cổng RS-232
b. Lập trình UART 8250
Giải:
D0D1 = 11; D2 = 1; D3 = 0; D4 = 0; D5 = 0; D6 =
0;
• Nếu D7 = 1 thì Data1_LCR = 87h.
• Nếu D7 = 0 thì Data2_ LCR = 07h.
• Addr_LCR = 03FBh
131
3.3.3. Lập trình cho cổng RS-232
b. Lập trình UART 8250
Giải:
c. Thanh ghi cho phép ngắt không làm việc, cấm ngắt:
• Data_IER = 00h.
• Addr_IER = 03F9h. 133
3.3.3. Lập trình cho cổng RS-232
b. Lập trình UART 8250
Giải:
THR_rong = 02h.
Addr_IIR = 03FAh.
Addr_MCR = 3FCh.
Data_DRT = 01h.
Data_RTS = 02h.
134
3.3.3. Lập trình cho cổng RS-232
b. Lập trình UART 8250
Giải:
f. Đọc thanh ghi trạng thái MODEM:
Addr_MSR = 3FEh.
Data_MSR = E0h.
Addr_LSR = 3FDh.
Data_LSR = 60h.
135
3.3.3. Lập trình cho cổng RS-232
b. Lập trình UART 8250
Ví dụ 2: Đặt 8250 (COM1) ở chế độ truyền 1200 baud, 8 bít dữ liệu, 1 bit Stop,
không bit chẵn lẻ. Hãy lập đoạn chương trình để:
a. Đặt các thông số cho cổng nối tiếp.
b. Kiểm tra bộ đệm truyền THR.
c. Kiểm tra thanh ghi trạng thái đường truyền LSR.
135
3.3.3. Lập trình cho cổng RS-232
b. Lập trình UART 8250
Hướng dẫn:
- Khởi tạo:
+ Thanh ghi LSR kiểm tra xem thanh ghi đệm truyền THR đang
trống rỗng (nếu đúng thì việc xuất ra được thực hiện).
137
3.3.3. Lập trình cho cổng RS-232
b. Lập trình UART 8250
Ví dụ 3: Khởi tạo chế độ làm việc cho cổng COM1 với các thông số: 7 bit mã kí tự
truyền, tốc độ truyền 4800bit/s, parity chẵn, một bit stop không điều khiển gán đoạn
ở Sout.
138
3.4. Cổng USB
3.4. 1. Giới thiệu chung
138
3.4. 1. Giới thiệu chung
139
3.4. 2. Đầu nối và cáp nối
Cáp nối:
Chuẩn USB sử dụng cáp 4 sợi để truyền tín hiệu và nguồn nuôi.
Tín hiệu được truyền qua 2 dây cho mỗi đoạn liên kết điểm – điểm.
Có ba loại cáp chính:
140
3.4. 2. Đầu nối và cáp nối
Đầu nối:
• USB quy định hai loại đầu cắm được gọi là dạng “A” và “B”. Hai
loại này chỉ khác nhau về kiểu dáng
141
3.4. 2. Đầu nối và cáp nối
Mức điện áp
142
3.4. 3. Truyền dữ liệu trong qua cổng USB
Đặc điểm
Dữ liệu được gửi lên bus cũng như nhận từ bus đều theo
những gói nhỏ, chứa 8 byte đến 256 byte.
Toàn bộ lượng dữ liệu trao đổi đều có một khung đúng
bằng 1 ms.
Trong phạm vi một khung có những gói cần gửi với tốc độ
thấp và những gói cần gửi với tốc độ cao cùng tồn tại .
Khi cần ghép nối nhiều thiết bị USB, ta cần có một hộp phân
phối hay thường gọi là hub. Hub cũng cho phép tránh xảy ra
tình trạng tín hiệu tốc độ cao được chuyển giao tới thiết bị
có tốc độ thấp.
144
3.4. 3. Truyền dữ liệu trong qua cổng USB
Đặc điểm
1ms
Các tín hiệu tốc độ thấp và tốc độ cao.
D+ 3,3V
D- 0V
666,7ns 145
3.4. 3. Truyền dữ liệu trong qua cổng USB
Đặc điểm
146
3.4. 3. Truyền dữ liệu trong qua cổng USB
Đặc điểm
Bộ truyền và bộ nhận USB.
D+
Song NRZI/ nối Dữ liệu
song/ nối tiếp – song
tiếp NRZI D- song
147
3.4. 3. Truyền dữ liệu trong qua cổng USB
Đặc điểm
+5V
D+ USB Program
Bytes Interfa
& Data
D- Serier RAM Các cổng I/O
Interface ce
GND
Engine Bytes
Bộ vi xử lý
đa năng
148
3.4. 3. Truyền dữ liệu trong qua cổng USB
HUB
2 3
149
3.4. 3. Truyền dữ liệu trong qua cổng USB
HUB
Về mặt vật lý USB là một kiến
trúc tầng sao (tiered star) . Một
HUB ở tại trung tâm của mỗi
sao, với 7 bit địa chỉ USB cho
phép quản lý tối đa 127 thiết bị
ngoại vi đây là con số mang tính
lý thuyết bởi khi có càng nhiều
thiết bị đấu nối thì tốc độ truyền
càng chậm do dải thông của toàn
bộ bus bị phân chia đến từng
thiết bị
150
3.4. 3. Truyền dữ liệu trong qua cổng USB
HUB
-Phân biệt đó là thiết bị tốc độ cao hay tốc độ thấp.
-Xóa đi một thiết bị đã đấu nối vào bus, nhưng sau đó lại
được tháo rời khỏi hệ thống. Để thực hiện các nhiệm vụ này
có những trạng thái bus được tạo ra theo cách đặc biệt.
151
3.4. 3. Truyền dữ liệu trong qua cổng USB
HUB
Nhận dạng một thiết bị tốc độ thấp Nhận dạng thiết bị tốc độ cao
+3,3V +3,3V
1,5K 1,5K
Bộ truyền +D +D Bộ truyền +D +D
Bộ truyền Bộ truyền
nhận nhận
USB
-D -D USB
nhận USB -D -D nhận USB
2*15K
2*15K
Thiết bị
Thiết bị
Hub Hub USB USB tốc độ
USB tốc độ
USB cao
thấp
152
3.4. 3. Truyền dữ liệu trong qua cổng USB
153
3.4. 3. Truyền dữ liệu trong qua cổng USB
Phần mềm hệ thống USB trên máy chủ quản lý sự tương tác giữa các
thiết bị USB và phần mềm thiết bị dựa trên máy chủ. Có năm vùng tương
tác giữa phần mềm hệ thống USB và phần mềm thiết bị:
154
3.4. 3. Truyền dữ liệu trong qua cổng USB
155
3.4. 3. Truyền dữ liệu trong qua cổng USB
USBPI+
Vcc 2.0A 1
USBP0
OC0#
USBPI-
CLK48
470K
2
Năng lượng USBPI+
OCI#
27Ω 3
560K
+ GND USBPI-
27Ω 4
156
3.4. 3. Truyền dữ liệu trong qua cổng USB
Các kiểu truyền trong USB
Truyền điều khiển ( control transfer ): là truyền theo kiểu 2 chiều, kiểu
truyền này được sử dụng để cài đặt thiết bị ngoại vi giao thức truyền điều
khiển được bắt đầu bằng một gói khung , tiếp theo là gói dữ liệu và kết
thúc là gói bắt tay .
Truyền ngắt : Là truyền một chiều . Các thiết bị cung cấp một lượng dữ
liệu nhỏ tuần hoàn như : chuột , bàn phím, joystick .
Truyền đẳng thời: là phương pháp truyền một chiều .Vì thế cuộc truyền
cần hai điểm cuối ở thiết bị ngoại vi hoặc hai pipe ở phần mềm máy chủ .
Khi có một lượng lớn dữ liệu với tốc độ dữ liệu đã được qui định như card
âm thanh , loa , điện thoại sử dụng kiểu truyền này .
Truyền theo khối : Truyền 2 chiều , khi có lượng lớn dữ liệu cần truyền và
cần kiểm soát lỗi , nhưng không có yêu cầu thúc ép về thời gian truyền thì
sử dụng kiểu truyền này. Ví dụ : máy in , máy quét
156
3.4. 3. Truyền dữ liệu trong qua cổng USB
Sự điểm danh
Ưu điểm đặc biệt của bus USB là khả năng tự động nhận dạng, hay như
thường nói “Cắm là chạy" (Pug and Play), đối với các thiết bị mới được
đấu nối vào bus.
Việc điểm danh được thực hiện hoàn toàn độc lập bởi hệ điều hành.
Toàn bộ quá trình điểm danh được thực hiện theo cách: hệ điều hành tiến
hành kiểm tra các phần cứng mới được đấu nối vào về các thông tin đã
được xác định dưới dạng các bản tóm lược (descriptor).
Có thể nói bản tóm lược là một khối dữ liệu được qui định chính xác về
nội dung và cách sắp xếp dữ liệu, với số byte không dáng kể. 158
3.4. 3. Truyền dữ liệu trong qua cổng USB
Sự điểm danh
Các bản tóm lược đều có cấu trúc phân cấp, cho phép mô tả các
thông số thiết lập và các tính chất khác nhau đối với từng thiết bị, cụ
thể là:
159
3.4. 3. Truyền dữ liệu trong qua cổng USB
Sự điểm danh
Sự sắp xếp nội dung của bản tóm lược thiết bị
Tên trường Độ dài, mô tả Thí dụ
Blength 1. Chiều dài của bản làm tóm tắt tính ra bye 12h
bDescriptor Type 1. Kiểu Descriptor (01h = Device Descriptor) 01h
BcdUSB 2. Phiên bản USD (V1.0) 00h, 01h
bDeviceClass 1. Mã lớp (Class) 00h
bDeviceSubClass 1. Mã lớp con (Subclass) 00K
bDeviceProtocol 1. Mã giao thức 00h
bMaxPacketSize0 1. Độ lớn của EP0-FIFO 08h
IdVendor 2. ID nhà cung cấp (04B4h=Cypress) B4h, 04h
IdProduct 2. ID sản phẩm (02=Máy đo nhiệt độ) 02h, 00h
BedDevice 2. Số hiệu nhà sản xuất (V.09) 09h, 00h
IManufacturer 1. Chỉ số xâu dùng cho “Nhà sản xuất” 01h
IProduct 1. Chỉ số xâu dùng cho “Sản phẩm” 02h
ISerialNumber 1. Chỉ số xâu dùng cho “Số hiệu sản phẩm” 00h
BNumConfigurations 1. Số lượng cấu hình cuối cùng 01h
160
3.4. 3. Truyền dữ liệu trong qua cổng USB
Sự điểm danh
Sự sắp xếp nội dung của bản tóm lược cấu hình
161
3.4. 3. Truyền dữ liệu trong qua cổng USB
Sự điểm danh
Sự sắp xếp nội dung của bản tóm lược giao diện.
162
3.4. 3. Truyền dữ liệu trong qua cổng USB
Sự điểm danh
163
3.5. Đo đạc và tạo thời gian chính xác bằng chip PIT – 8253/54
3.5.1 Giới thiệu chung
163
3.5.1 Giới thiệu chung
164
3.5.1 Giới thiệu chung
165
3.5.1 Giới thiệu chung
Nhận các tín hiệu từ bus hệ thống và lần lượt phát các tín hiệu
điều khiển cho các thiệt hoạt động.
Chân /RD =0 cho phép CPU đọc số liệu từ 8253 trong dạng 1 giá
trị các bộ đếm.
Chân /WR = 0 cho phép CPU viết dữ liệu vào 8253, đó là các
thông tin về chế độ hoạt động hoặc nạp các số đếm ban đầu vào
bộ đếm
Hai chân A0, A1 nối với 2 bit địa chỉ thấp nhất của bus địa chỉ PC
166
3.5.1 Giới thiệu chung
167
3.5.1 Giới thiệu chung
Thanh ghi từ điều khiển:
Được chọn khi A1A0 = 11. Thông tin được lưu giữ trong
thanh ghi này sẽ điều khiển.
- Chế độ hoạt động của các bộ đếm.
- Chọn cách đếm (nhị phân hay BCD).
- Phương thức đọc/viết của mỗi thanh ghi đếm số liệu của
các bộ đếm.
Bộ đếm 0, 1, 2 là loại đếm lùi, 16 bit và có thể đặt các giá trị
đếm ban đầu. Mỗi bộ đếm có 2 lối vào xung clock – CLK và
GATE, 1 lối ra OUT.
Khi GATE = 1 bộ đếm được phép đếm và ngược lại.
168
3.5.1 Giới thiệu chung
Từ điều khiển
SC1 SC2 RW1 RW2 M2 M1 M0 BCD
Chế độ 0: Có chức năng phát ra một sườn xung lên khi kết thúc đếm.
171
3.5.3. Chế độ đếm:
Chế độ 0
172
3.5.3. Chế độ đếm:
Chế độ 1
Chế độ 2:
174
3.5.3. Chế độ đếm:
Chế độ 3
175
3.5.3. Chế độ đếm:
Chế độ 4
Chế độ này tạo ra các xung bằng phần
mềm.
Chế độ này giống như chế độ 2 nhưng
xung cửa GATE không khởi phát quá
trình đếm mà quá trình này được khởi
phát bằng lệnh nạp số đếm ban đầu.
Lối ra ở mức cao ngay sau khi nạp chế
độ hoạt động.
Khi số đếm ban đầu được nạp, bộ đếm
bắt đầu đếm.
Khi kết thúc đếm, lối ra sẽ nhảy xuống
mức thấp trong một chu kỳ nhịp đồng hồ
rồi lại nhảy lên mức cao. 176
3.5.3. Chế độ đếm:
Chế độ 5
177
3.5.4. Lập trình 8253/54
Đọc bộ đếm:
Có hai cách chọn lựa cho việc đọc bộ đếm trong 8253/54
- Đọc trực tiếp bởi một lệnh hoặc 2 lệnh IN.
- Dùng lệnh chốt bộ đếm (Counter Latch command).
Nếu cần đọc giá trị tức thời của bộ đếm khi quá trình đếm chưa kết
thúc thì phải sử dụng các lệnh chốt bộ đếm hoặc lệnh đọc thanh ghi
từ điều khiển.
D7 D6 D5 D4 D3 D3 D1 D0
SC1 SC0 0 0 X X X X
- 2 bít chọn bộ đếm X: tùy chọn (có thể đặt = 0)
được chốt.
- 00:chọn bộ đếm 0.
- 01: chọn bộ đếm 1.
- 10: chọn bộ đếm 2
178
3.5.4. Lập trình 8253/54
Đọc bộ đếm:
D7 D6 D5 D4 D3 D2 D1 D0
Pin Null RW1 RW0 M2 M1 M0 BCD
Trạng thái của OUTx; Bộ đếm đã được giá Giống định dạng từ điều khiển
(x = 0, 1, 2) trị ban đầu chưa?
=1: lối ra mức cao. = 1: chưa nạp, chưa
= 0: thấp đọ được.
= 0: Nạp rồi đọc
được
179
3.5.4. Lập trình 8253/54
Đọc bộ đếm:
180
3.5.4. Lập trình 8253/54
Ví dụ 1: Chân của 8253/54 được kích hoạt bởi địa chỉ nhị phân
A7 – A2 = 100101.
a. Tìm địa chỉ cổng gán cho 8253/54.
b. Lập trình cho bộ đếm ) với số đếm nhị phân, chế độ 3
(tạo xung vuông) và chia CLK0 cho 20H. Tính tần số ra
OUT0 nếu CLK0 = 1,2MHz.
c. Lập trình bộ đếm 2 để có tần số ra bằng 1KHz nếu tần
số vào là 2MHz.
182
3.5.4. Lập trình 8253/54
Ví dụ 1:
Bài giải:
a. Địa chỉ cổng được gán cho 8253/54
100101 0 0 Bộ đếm 0 94
100101 0 1 Bộ đếm 1 95
100101 1 0 Bộ đếm 2 96
100101 1 1 Thanh ghi ĐK 97
183
3.5.4. Lập trình 8253/54
Ví dụ 1:
Bài giải:
b. Để lập trình bộ đếm 0 chế độ 3, chúng ta có từ điều khiển là: 00010110 = 16H
Chương trình:
MOV AL,16H; Bộ đếm 0, chế độ 3, đếm BCD
OUT 97H, AL; Gửi tới thanh ghi điều khiển
MOV AL, 20H; Nạp số chia
OUT 94H, AL.
Tần số ra = 1200 KHz/32 = 37,5 KHz.
184
3.5.4. Lập trình 8253/54
Ví dụ 1:
Bài giải:
c. Số chia xác định được là: 2MHz/1KHz = 20.000D
- Từ điều khiển = 10110110 = B6H.
Chương trình
MOV Al, B6H; Bộ đếm 2, chế độ 3, đếm nhị phân
OUT 97H, AL; Gửi tới thanh ghi điều khiển
MOV AX, 20000; Nạp số chia
OUT 96H, AL; Gửi tới byte thấp
MOV AL, AH; đến bộ đếm 2
OUT 96H, AL; sau đó gửi byte cao đến bộ đếm 2
185
3.5.4. Lập trình 8253/54
Ví dụ 2: Sử dụng các địa chỉ cổng ở ví dụ 1, lập trình cho bộ đếm 1 chia CLK 1 cho
10.000 tạo ra xung vuông chế độ 3. Hãy sử dụng tùy chọn BCD ở byte điều khiển.
Bài giải:
Chương trình
186
3.5.5. Ghép nối PIT 8253/54 với PC qua khe cắm ISA:
Ghép nối 8253 với máy tính IBM PC qua khe cắm mở rộng.
GATE1
A2 – A10 Giải mã địa chỉ OUT1
A1 A1 CLK2
A0 A0 GATE2
OUT2
186
3.5.5. Ghép nối PIT 8253/54 với PC qua khe cắm ISA:
Y0
A5 A
Y1
A6 B
Y2
A7 C
Y CS 8253
A8 2 74LS138 3
A9 Y4 A0 A0
G2A
AEN Y5 A1 A1
G2B
Y6
Y7
188
3.5.5. Ghép nối PIT 8253/54 với PC qua khe cắm ISA:
189
BÀI TẬP
190
Chương 4
GHÉP NỐI SỐ TƯƠNG TỰ,
TƯƠNG TỰ SỐ
Hiểu về cấu trúc và nguyên lý làm việc của bộ biến đổi ADC và DAC.
Biết cách lập trình ghép nối DAC
Biết cách lập trình ghéo nối ADC
Hệ thống thực
Setpoint
Cơ cấu chấp
Điều khiển DAC Khuếch đại
hành
Máy vi tính
192
4.1.1. Bộ chuyển đổi số - tương tự (Digital Analog Converter – DAC)
Hoạt động của DAC:
Mục đích của bộ biến đổi
DA, là biến đổi tín hiệu
nhị phân n bít thành dòng
hay áp tương ứng. Hình
sau là một ví dụ về một bộ
biến đổi DA 4 bít đơn
giản. Dựa vào vị trí của
các công tắc Bi (1 là đóng
và 0 là mở), điện trở đầu
vào sẽ thay đổi theo. Do
dó,điện áp đầu ra cũng sẽ
thay đổi theo :
¿ 193
4.1.1. Bộ chuyển đổi số - tương tự (Digital Analog Converter – DAC)
Sơ đồ khối của DAC:
Đầu ra số
B0 B 1
Bn-1
-
Điện áp Thiết bị chuyển +
chuẩn Vref mạch vi điện tử
Đầu ra tương tự
Điện áp đầu ra của bộ biến đổi V0 sẽ phụ thuộc vào mã nhị phân đầu
vào theo công thức sau:
V0 = Vref (B0.20 + B1.21 + ... + Bn-1.2n-1 )/(2n)
Trong đó: B0 : bít thấp nhất
Bn-1 : bít cao nhất của mã nhị phân đầu vào
Vref : điện áp quy chiếu. 194
4.1.1. Bộ chuyển đổi số - tương tự (Digital Analog Converter – DAC)
Các tham số của bộ biến đổi D/A:
Độ phân giải:
Ðộ phân giải (Solution): Liên quan đến số bít của một DAC. Nếu số bít là n
thì số trạng thái của tín hiệu nhị phân là (2n – 1) nghĩa là sẽ có (2n – 1) mức
điện thế (hoặc dòng điện) khác nhau, do đó có độ phân giải là 1/ (2n – 1) . Ðộ
phân giải càng bé thì điện thế (hoặc dòng điện đầu ra) càng có dạng liên tục,
càng gần với thực tế và ngược lại.
Ví dụ: DAC 10 bit sẽ có độ phân giải là: 1/((210 – 1) = 1/1023 0,001
195
4.1.1. Bộ chuyển đổi số - tương tự (Digital Analog Converter – DAC)
Các tham số của bộ biến đổi D/A:
Điện áp toàn thang: là điện áp cực đại ứng với trường hợp tất cả
các lối vào bằng 1. Giá trị điện áp ra của bộ biến đổi luôn nhỏ hơn
giá trị danh định ít nhất là 1 bit có trọng số nhỏ nhất.
Ví dụ: Bộ biến đổi DAC 10 bit điện áp ra toàn thang là 10V thì giá trị
của bit LSB là 10/1024 9.77mV. Điến áp ra lớn nhất của bộ biến đổi
nếu được điều chỉnh đúng là 10V – 0,0097V 9.9903V
196
4.1.1. Bộ chuyển đổi số - tương tự (Digital Analog Converter – DAC)
Các tham số của bộ biến đổi D/A:
Độ tuyến tính:
Độ tuyến tính của DAC: cho biết độ lệch điện áp so với một
đường thẳng đi qua những điểm nút của đặc tuyến chuyển đổi.
Đó là đặc tính thường gặp nhất với DAC. Đường cong đặc
tuyến là đơn điệu nếu sự thay đổi độ lệch trên là không đổi
dấu. Để có một DAC đơn điệu, độ lệch này phải lớn hơn 0 cho
mỗi nấc thang. Ngoài ra mức độ tuyến tính của DAC phải nhỏ
hơn hoặc bằng 1/2 LSB để nó trở nên đơn điệu. Như vậy 1/2
LSB là đặc trưng về giới hạn đơn điệu của một DAC
197
4.1.1. Bộ chuyển đổi số - tương tự (Digital Analog Converter – DAC)
Các tham số của bộ biến đổi D/A:
Phi tuyến vi sai: là đại lượng cho biết độ lệch giữa giá trị thực
tế và lý tưởng cho một nấc điện áp ra ứng với mỗi thay đổi của
mã số vào. Đại lượng này cho biết về độ nhẵn của đường cong
tuyệt đối với DAC.
Thời gian thiết lập đối với một DAC là thời gian cần thiết để
điện áp ra đạt tới giá trị tới hạn sai số xung quanh giá trị ổn
định. Giới hạn này thường là ½ LSB hoặc biểu diễn bằng giá
trị FS.
198
4.1.1. Bộ chuyển đổi số - tương tự (Digital Analog Converter – DAC)
Các
mạch
Chuyển đổi DA theo kiểu
D/A
mạch R – 2R
điển
hình
200
4.1.1. Bộ chuyển đổi số - tương tự (Digital Analog Converter – DAC)
Các mạch D/A điển hình:
Bộ chuyển đổi DA theo kiểu điện trở trọng lượng (Weighted resistor DAC)
𝑈 𝑐h
𝐼 =
DAC có n bít thì tín hiệu ra được tính theo công thức:
𝑖
𝑅 / 2𝑖
Với mạch như trên, khi một khoá điện thứ i nào được nối với nguồn điện
thế chuẩn thì sẽ cung cấp cho bộ KÐTT dòng điện có giá trị là:
𝑅𝑓
𝑈 𝑟𝑎 =− 𝑈 𝑐h .
𝑅
( 2
𝑛 −1
. 𝐵𝑛 −1 +...+2 . 𝐵0 )
0
Điện áp ra của một DAC n bít với điện trở hình thang R-2R như sau:
𝑅𝑓
𝑈 𝑟𝑎 =−𝑈 𝑐h . 𝑛 (2 𝑛−1
. 𝐵𝑛 −1 +...+2 . 𝐵0 )
0
2 𝑅
202
4.1.2. Bộ chuyển đổi tương tự số (ADC – Analog Digital Converter)
Bộ chuyển đổi tương tự sang số – ADC (Analog to Digital
Converter) lấy mức điện thế vào tương tự sau đó một thời gian sẽ
sinh ra mã đầu ra dạng số biểu diễn đầu vào tương tự.
203
4.1.2. Bộ chuyển đổi tương tự số (ADC – Analog Digital Converter)
Dải biến đổi của điện áp tương tự đầu vào: là khoảng điện áp mà ADC có
thể thực hiện chuyển đổi được. Khoảng điện áp này có thể lấy giá trị từ 0
đến một giá trị âm hay dương, hoặc cũng có thể là điện áp hai cực tính -
UAM đến + UAM.
Độ phân giải: Biểu thị bằng số bit của tín hiệu ở đầu ra. Số bit càng nhiều
thì sai số lượng tử càng nhỏ, độ chính xác càng cao.
Tốc độ chuyển đổi: cho biết số kết quả chuyển đổi trong một giây, còn được
gọi là tần số chuyển đổi fc. Cũng có thể dùng tham số thời gian chuyển đổi
Tc để đặc trưng cho tốc độ chuyển đổi (Tc = 1/fc). Tốc độ chuyển đổi càng
cao thì độ chính xác càng giảm và ngược lại.
204
4.1.2. Bộ chuyển đổi tương tự số (ADC – Analog Digital Converter)
Các phương pháp chuyển đối A/D:
Chuyển đổi song song (Parallel Comparator ADC): Tín hiệu cần chuyển
đổi được so sánh cùng một lúc với nhiều giá trị chuẩn, vì vậy các bít
được xác định đồng thời và đưa đến đầu ra.
Chuyển đổi nối tiếp theo mã đếm: Quá trình so sánh được thực hiện
từng bước theo quy luật mã đếm. Kết quả chuyển đổi được xác định
bằng cách đếm số lượng giá trị tín hiệu tương tự cần chuyển đổi.
Chuyển đổi xấp xỉ liên tiếp: Quá trình so sánh được thực hiện từng
bước theo quy luật của mã nhị phân. Các đơn vị chuẩn dùng để so
sánh lấy các giá trị giảm dần theo mã nhị phân, do đó các bít được
xác định lần lượt từ bít có ý nghĩa nhất MSB (Most Significant Bit) đến
bít có ít ý nghĩa nhất LSB (Least Significant Bit).
Chuyển đổi song song - nối tiếp kết hợp: Trong phương pháp này qua
mỗi bước so sánh có thể xác định được tối thiểu là 2 bít đồng thời.
205
4.1.2. Bộ chuyển đổi tương tự số (ADC – Analog Digital Converter)
Các phương pháp chuyển đối A/D:
Chuyển đổi theo phương pháp song song:
206
4.1.2. Bộ chuyển đổi tương tự số (ADC – Analog Digital Converter)
Các phương pháp chuyển đối A/D:
Chuyển đổi A/D theo phương pháp đếm:
207
4.1.2. Bộ chuyển đổi tương tự số (ADC – Analog Digital Converter)
Các phương pháp chuyển đối A/D:
Chuyển đổi A/D theo phương pháp xấp xỉ liên tiếp:
208
4.1.2. Bộ chuyển đổi tương tự số (ADC – Analog Digital Converter)
Các phương pháp chuyển đối A/D:
Chuyển đổi A/D theo phương pháp song song nối tiếp kết hợp:
209
4.2. Ghép nối với DAC
210
4.2. Ghép nối với DAC
Mạch ghép nối DAC 16 bit
211
4.2. Ghép nối với DAC
Một vài ứng dụng
Ghép nối điều khiển thông số mạch điện tử chương trình hóa.
Phát tín hiệu có dạng mong muốn (hình vuông, răng cưa, tam giá….)
214
4.3. Lập trình DAC
Lập trình xuất dữ liệu ra cho DAC
Đối với DAC 8 bit, ta chỉ cần dùng lệnh xuất dữ liệu:
Port[addr_port]:=data;
Trong đó: địa chỉ cổng addr_port sẽ qua mạch giải mã địa chỉ tạo xung kích mở mạch
đệm đưa dữ liệu số vào đầu vào DAC. Số liệu cần chuyển đổi được đặt trong data.
Phần cứng:
Nối DAC qua cửa 8255A hoặc có thể nối qua các thanh ghi
đệm khác (intel 7475)
Việc hội thoại giữa thiết bị ngoài và vi xử lý qua kiểm tra
bit trạng thái sẵn sàng của thiết bị ngoài hay mạch xử lý
ngắt đưa tín hiệu yêu cầu ngắt chương trình vào lối vào
INTR của VXL.
216
4.3. Lập trình DAC
Đảm bảo chương trình cho mạch DAC ghép nối với máy vi tính:
Đảm bảo chương trình cho mạch DAC gồm 2 phần: Phần cứng và Phần mềm
Phần mềm:
Sử dụng chương trình con xử lý ngắt thông qua lệnh gọi ngắt của DOS
INT21h hoặc chương trình trao đổi tin.
Sơ đồ khối của chương trình đưa tin tương tự ra thiết bị ngoài tương tự
qua khối DAC, chính là chương trình đưa tin ra cửa RA với mạch
8255A theo trình tự sau:
- Khởi phát: Định nghĩa cửa ra cho số liệu hoặc cửa vào cho tin về
trạng thái thiết bị ngoài ở chế độ M=0 hoặc chế độ M=1, cửa ra cho
số liệu, còn bit trạng thái được đọc vào bit PCi của PC tương ứng.
- Đọc và kiểm tra trạng thái yêu cầu trao đổi tin của thiết bị ngoài.
- Đưa tin ra với độ lớn của tin phụ thuộc vào các bit số liệu D0 ÷ Di
217
4.3. Lập trình DAC
Ví dụ: Viết chương trình cho máy vi tính để phát xung răng cưa với biên độ cực
đại và chu kỳ T = 255 x t0 (t0 = độ kéo dài xung nhịp của VXL)
Bài giải:
218
4.3. Lập trình DAC
Chương trình: PBD EQU 81h
PBC EQU PBD+2
Output EQU 0Fh
ORG 1800h
LD A, Output
Output PBC, A
RAMP Out
ADD A,1
CMP A,255
JR RAM
JR RAMP
RET 219
4.4. Ghép nối ADC
Phân loại ADC
220
4.4. Ghép nối ADC
Nguyên tắc ghép nối ADC với máy vi tính:
221
4.4. Ghép nối ADC
Ghép nối ADC kiểu gần đúng nối tiếp kiểu cân:
222
4.4. Ghép nối ADC
Ghép nối ADC kiểu số liệu nối tiếp:
223
4.5. Lập trình cho ADC
Quá trình nhận dữ liệu từ ADC được thực hiện:
- Tạo xung Start để bắt đầu quá trình chuyển đổi A/D.
- Kiểm tra việc chuyển đổi đã thực hiện xong chưa.
- Đọc dữ liệu vào
224
4.5. Lập trình cho ADC
Ví dụ: Nối ghép ADC với 8255
Chương trình:
MOV A, #80H
MOV R1,#CRPORT
MOVX @R1, A
BACK: MOV R1,#CPORT
MOVX A,@R1
ANL A,#00000001B
JNZ BACK
MOV R1,#APORT
MOV A,@R1
225
BÀI TẬP
1. Viết chương tình biến đổi các số 0, 255, 511, 1023, 2047, 4095 thành các tín hiệu
tương tự ở lối ra DAC của chip DAC-80.
2. Viết chương trình phát ra một sóng hình răng cưa với tần số và biên độ lớn nhất
có thể được bằng biến đổi D/A.
3. Viết chương trình phát ra một sóng hình răng cưa có thể biến đổi liên tục và tần số
bằng việc nhấn các phím trên bàn phím bằng bộ biến đổi D/A.
4. Viết chương trình biến đổi tương tự - số A/D để biến đổi điện áp một chiều 10V
theo phương pháp xấp xỉ liên tục.
5. Viết chương trình biến đổi tương tự - số A/D để biến đổi điện áp một chiều 10V
theo phương pháp đếm.
226
Thank you!!!!!!!
227