You are on page 1of 227

Thiết bị ngoại vi và Kỹ

thuật ghép nối


Chủ biên: Chu Thị Ngọc Quỳnh

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

 ĐÁNH GIÁ KẾT QUẢ HỌC TẬP:


 Điểm chuyên cần:
• Đi học đầy đủ, đúng giờ
• Tham gia xây dựng bài
• Ý thức khi tham gia học tập
 Hình thức kiểm tra giữa kỳ: Thi tự luận
 Hình thức thi kết thúc học phần: Thi tự luận

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

MÔN Chương 3: Ghép nối qua cổng nối tiếp

HỌC Chương 4: Ghép nối số tương tự (DAC)


tương tự số (ADC)

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

1.1. Giới thiệu chung


1.1.1. Cấu trúc hệ thống
1.1.2. Chức năng của khối ghép nối.
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
1.2.2. Các loại ngắt
1.2.3. Xử lý ngắt của nhiều thiết bị ngoại vi
1.2.4. Các mạch xử lý ngắt
12/07/2023 04:16 PM 7
MỤC TIÊU

 Hiểu được cấu trúc hệ thống ghép nối nói chung.


 Hiểu được các chế độ trao đổi dữ liệu của máy tính.
 Biết cách sử dụng các cơ chế ngắt.

12/07/2023 04:16 PM 8
1.1. Giới thiệu chung

Tại sao cần


nghiên cứu thiết
bị ngoại vi và
các kỹ thuật
ghép nối?

8
1.1.1 Cấu trúc chung

RAM ROM

Vi Bus dữ liệu và địa chỉ MVT


Xử

Bus điều
BGN
BGN khiển
Bàn BGN
BGN song BGN BGN
phím, Bộ nhớ
Máy in song, Vào - ra Vào - ra
Màn ngoài
nối tiếp
hình

Ổ 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

 Thiết bị ngoại vi: là các thiết bị


bên ngoài cấu trúc cơ bản của
máy tính, được kết nối thông qua Thiết bị
các cổng giao tiếp; có chức năng ngoại vi
xuất, nhập, lưu trữ thông tin.

Thiết bị lưu trữ: đĩa Thiết bị đầu ra: màn


mềm, đĩa cứng, bộ hình, máy in, máy
nhớ flash chiếu…

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

Mô hình ghép nối máy tính và thiết bị ngoại vi

Điều khiển Điều khiển

MVT BGN TBNV


Số liệu Số liệu

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.

 Ghép nối qua cổng USB.

13
1.1.2. Chức năng của khối ghép nối

Nhiệm vụ của khối ghép nối:

 Phối hợp về mức và công suất tín hiệu.

 Phối hợp về dạng dữ liệu.

 Phối hợp về tốc độ trao đổi dữ liệu.

 Phối hợp về phương thức trao đổi dữ liệu.

14
1.1.2. Chức năng của khối ghép nối

Chức năng 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

 Trao đổi đồng bộ:


• Phương pháp chỉ được thực hiện khi:
ngoại vi luôn sẵn sàng trao đổi tin.
Tốc độ trao đổi tin giữa máy tính và
ngoại vi luôn phù hợp nhau. Trao đổi tin

• Ưu điểm: nhanh không tốn thời gian


chờ.
Đồng bộ
(không hội thoại)
• Nhược điểm: thiếu tin cậy, có thể bị
mất tin hoặc sự cố làm cho ngoại vi
chưa sẵn sàng trao đổi.
17
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

 Trao đổi đồng bộ hay hỏi trạng thái: Chương


Chương trình
trình liên tục kiểm tra trạng thái của các
ngoại vi để xem có yêu cầu nào cần trao đổi
dữ liệu không. Nếu có ngoại vi nào đó yêu Chưa
(0)
cầu phục vụ thì chương trình cấp một Ngoại vi đã sẵn
chương trình con để phục vụ rồi tiếp tục sàng

kiểm tra ngoại vi kế tiếp. Quá trình này Rồi


được thực hiện cho đến ngoại vi cuối cùng (1)
và sẽ được lặp lại Trao đổi tin
• Ưu điểm: đơn giản có độ tin cậy.
• Nhược điểm: Tốn thời gian sử dụng máy
tính khi số lượng ngoại vi tăng đồng thời khả Đồng bộ
(có hội thoại)
năng đáp ứng tực thời các yêu cầu phục vụ
rất thấp. 18
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

Chương trình con


hiệu yêu cầu ngắt (INTR) tới CPU.

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:

Bus địa chỉ


CPU Bus dữ liệu
DMAC
I/O MEM
HOLD HRQ DRQ
DRQ
HACK DACK
HLDA DACK

Bus điều khiển (các tín hiệu quan trọng)

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.

 Treo CPU để trao đổi từng byte.

 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 MỀM NGẮT CỨNG

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ữ)

IRQ5 Cổng song song 2 trong máy AT IRQ13 Đồng xử lý

IRQ6 Điều khiển đĩa mềm IRQ14 Điều khiển đĩa cứng

IRQ7 Cổng song song 1 (máy in) IRQ15 Dành riê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

 Ngắt mềm chia làm 2 loại: Ngắt BIOS và ngắt DOS

12/07/2023 26
1.2.3. Xử lý ngắt của nhiều thiết bị ngoại vi:

a. Cho phép ngắt và cấm ngắt:

 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:

b. Cho phép ngắt và cấm ngắt bằng mạch:

 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:

c. Sắp xếp ưu tiên ngắt:

 Sắp xếp ưu tiên phục vụ ngắt dùng 1 trong 3 phương pháp sau:

 Phương pháp hỏi vòng (polling):

 Phương pháp ngắt cứng:

 Phương pháp xử lý ưu tiên bằng mạch cứng:

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:

Sơ đồ ưu tiên ngắt theo vị trí và vecto 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

 Chip 8259A được gọi là mạch điều


khiển ngắt ưu tiên (priority interupt
controller-PIC). Đó là vi mạch cỡ lớn lập
trình được. Nó có thể xử lý được 8 yêu
cầu ngắt với mức ưu tiên khác nhau để
tạo ra một yêu cầu ngắt đưa đến đầu vào
chung là INTR (yêu cầu ngắt che được)
của bộ vi xử lý.

30
1.2.4. Các mạch xử lý ngắt

a. Cấu trúc của 8259A

31
1.2.4. Các mạch xử lý ngắt

Các chân tín hiệu 8259A

32
1.2.4. Các mạch xử lý ngắt

Hoạt động của 8259A

• Để 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

Không dùng tới với hệ 16-32bit

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

Khoảng cách giữa các vecto ngắt:


1: cách 4 byte. 0: cách 8 byte 34
1.2.4. Các mạch xử lý ngắt
a. Các từ điều khiển khởi đầu ICW

 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

1 Off7 Off6 Off5 Off4 Off3 T2 T1 T0

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ớ:

A0 = 1 0 0 0 0 0 ID2 ID1 ID0

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.

1 0 0 0 SFNM BUF M/S AE0I PM

 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

 BUF: Định nghĩa chế độ đệm

 M/S: (master/slave) định nghĩa vi mạch chủ hay vi mạch tớ làm việc ở
Chế độ đệm.

 SFNM: định nghĩa chế độ ưu tiên cố định đặc biệt.

37
1.2.4. Các mạch xử lý ngắt
a. Các từ điều khiển khởi đầu ICW

Thứ tự điều khiển ghi các từ điều khiển khởi đầu.

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

R SL EOI Chế độ Chức năng


0 0 1 Kết thúc ngắt Lệnh EOI thường
0 1 1 Lệnh EOI chỉ đích danh.
1 0 1 Đổi mức ưu tiên tự Đổi mức ưu tiên khi có EOI thường
1 0 0 động Lập chế độ quay vòng khi có EOI tự động.
0 0 0 Xóa chế độ quay vòng khi có EOI tự động
1 1 1 Đổi mức ưu tiên Đổi mức ưu tiên khi có EOI đích danh.
1 1 0 đích danh Lập lệnh mức ưu tiên.
0 1 0 Dự trữ

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.

0 0 ESMM SMM 0 1 P ERIS RIS

 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.

 P: Thăm dò trạng thái yêu cầu ngắt.

 ERIS: cho phép đặt thanh ghi ngắt đang phục vụ

 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

IRQ8 INTA IRQ0 INTA


INTA
IRQ9 IRQ1
IR2 INT INTR
IRQ10 INT
IRQ11 IRQ3
8259 tớ
IRQ12 IRQ4 8259 chủ
CPU
IRQ13 IRQ5
IRQ14 IRQ6
IRQ15 IRQ7
SE/EN
SE/EN

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

2.1. Giới thiệu chung về cổng song song


2.2. Các lệnh vào ra dữ liệu
2.3. Khối ghép nối song song đơn giản
2.4. Ghép nối song song điều khiển bằng chương trình

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

 Cổng song song: Dữ liệu được truyền qua


cổng này theo cách song song, cụ thể dữ
liệu được truyền 8 bít đồng thời hay còn gọi
là byte nối tiếp bit song song.
 Cổng máy in: Lí do là hầu hết các máy in
đều được nối với máy tính qua cổng này.
 Cổng Centronic: Đây là tên của một công
ty đã thiết kế ra cổng này. Centronic là tên
một công ty chuyên sản xuất máy in kiểu
ma trận đứng hang đầu thế giới. Chính
công ty này đã nghĩ ra kiểu thiết kế cổng
ghép nối máy in với máy tính.
50
2.1.2. Đặc điểm cơ bản

 Mức điện áp cơ bản: Sử dụng mức điện áp tương thích TTL.

 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.

 Tốc độ truyền dữ liệu.

51
2.1.3. Cổng song song LPT

a. Cấu trúc cổng 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

a. Cấu trúc cổng LPT

Bảng địa chỉ cổng song song

địa chỉ I/O Cổng song song

3BCh-3BFh Cổng trên card VGA hay HGC

378h-37Fh LPT1

278h-27Fh LPT2Nhóm

54
2.1.3. Cổng song song LPT

a. Cấu trúc cổng LPT

Bảng vùng lưu giữ địa chỉ cơ sở của cổng

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

b. Các chế độ hoạt động của cổng song song

 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:

1. Chế độ tương thích (Compatibility mode)

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

 Cổng song song gồm có 3


thanh ghi 8 bits:
 Thanh ghi dữ liệu
 Thanh ghi trạng thái
 Thanh ghi điều khiển

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

Sơ đồ khối chức năng của 8255A

12/07/2023 04:16 PM 66
2.4.1 Sơ đồ và chức năng của 8255A

Sơ đồ chân tín hiệu

12/07/2023 04:16 PM 67
2.4.1 Sơ đồ và chức năng của 8255A

Bảng chức năng của 8255

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

Bảng điều khiển đọc/viết của 8255A

A1 A0 /RD /WR Chức năng


0 0 0 1 Đọc cổng A vào bus dữ liệu
0 1 0 1 Đọc cổng B vào bus dữ liệu
1 0 0 1 Đọc cổng C vào bus dữ liệu
1 1 0 1 Đọc từ điều khiển vào bus dữ liệu
0 0 1 0 Viết từ bus số liệu vào cổng A
0 1 1 0 Viết từ bus số liệu vào cổng B
1 0 1 0 Viết từ bus số liệu vào cổng C
1 1 1 0 Viết từ bus số liệu vào từ điều khiển

68
2.4.1 Chế độ làm việc của 8255A

Từ điều khiển định nghĩa cấu hình cho các cổng:

D7 D6 D5 D4 D3 D2 D1 D0

1 MA1 MA0 A CA MB B CB

NHÓM B
NHÓM A

Chọn chế độ PCL (thấp)


1: Vào
00: Mode 0 0: Ra
01: Mode 1
1x: Mode2
PB
PA 1: Vào
1: Vào 0: Ra
0: Ra
Chọn chế độ
PCH (cao) 0: Mode 0
1: Mode 1
1: Vào
0: Ra

12/07/2023 04:16 PM 70
2.4.1 Chế độ làm việc của 8255A

Từ điều khiển lập xóa bit ra PCi:

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

 Trong chế độ này vi mạch có các chức năng sau:

- Vi mạch hoạt động gồm 2 cổng 8 bit và hai cổng 4 bit.

- Các cổng có thể là cổng vào hoặc cổng ra.

- Các tín hiệu ra được chốt lại.

- Các tín hiệu vào không được chốt.

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

INTRA D0-D7 INTRA


D0-D7 PC3 PC3

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

PC7 OBFA PC7 OBFA


PC6 ACKA PC6 ACKA
INTE INTE1
1 PC5 IBFA PC5 IBFA
PC4 PC4
INTE INTE PB
2 PB 2 PC1 OBFB
PC2
PC0-PC2
I/O PC1
PC2 ACKB
PC0
PC0 INTRB
a) PA: chế độ 2 b) PA: chế độ 2
PB: chế độ 0, vào PB: chế độ 1,
PC0-PC2: I/O tuỳ ý theo ra
12/07/2023 04:16 PM từ điều khiển 74
2.4.1 Chế độ làm việc của 8255A
Ghép nối lập trình 8086 với 8255A

Ví dụ 1: Sử dụng 8255A thiết kế một cổng vào trao đổi dữ


liệu 16 bit (mode 1), 1 cổng ra trao đổi dữ liệu 8 bit (mode
1), 1 cổng vào trao đổi dữ liệu 8 bit (mode 0). Viết đoạn
chương trình thực hiện nhận 1 byte dữ liệu từ cổng vào 8 bit
và gửi ra cổng ra 8 bit.

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

IN AL, 61h ; Nhận dữ liệu từ cổng PA của 8255A-2.


MOV BL, AL ; Cất byte dữ liệu nhận được
dlpc:
IN AL, 64h ; Đọc cổng PC (8255A-1)
AND AL, 80h ; để kiểm tra tín hiệu
CMP AL, 80h ; tức chân PC7 của 8255A-1
JNZ dlpc ; Đọc và kiểm tra lại nếu , đọc và kiểm tra lại.

MOV AL, BL ; Nếu , gửi byte dữ liện nhận được


OUT 60h, AL ; ra cổng PA của 8255A-1
12/07/2023 04:16 PM 78
2.4.1 Chế độ làm việc của 8255A
Ghép nối lập trình 8086 với 8255A
Ví dụ 2: Sơ đồ ghép nối 8255A với 8086 trên Hình 3.35. Lập trình để bit PC3 của 8255A tạo ra 256 xung
với chu kỳ T = 50 ms. Giả thiết có sẵn chương trình con làm nhiệm vụ trễ 25 ms có tên là Delay25ms.

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

Mạch ghép nối máy in và máy đọc băng ở chế độ 0

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

Lưu đồ thuật toán

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

3.1. Giới thiệu chung về trao đổi dữ liệu nối tiếp


3.2. Một số chuẩn ghép nối
3.3. Lập trình cho cổng RS232
3.4. Cổng USB
3.5. Đo đạc và tạo thời gian PIT-8253/54

12/07/2023 04:16 PM 86
Mục Tiêu

 Hiểu được phương thức giao tiếp nối tiếp và USB.


 Biết phân tích và thiết kế hệ thống giao tiếp thông qua
Chuẩn RS232 và USB.
 Biết lập trình đo đạc và tạo thời gian chính xác bằng
PIT – 8253/54.

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.

 Ghép nối qua cổng RS232 mục đích để


ghép nối thiết bị ngoại vi với máy tính.

 RS232 dùng định dạng không đồng bộ,


nối nhiều nhất 2 thiết bị, chiều dài kết
nối lớn nhất cho phép để đảm bảo dữ
liệu là 12.5 đến 25.4m, tốc độ 20kbit/s
đôi khi là tốc độ 115kbit/s với một số
thiết bị đặc biệt. 89
3.1.2. Đặc trưng

a. Cấu trúc RS232

Hai dạng cấu


trúc chân của
RS232
89
3.1.2. Đặc trưng

b. Các chân và chức năng trên đầu nối 25 chân và 9 chân


Chân Chân Viết Tên Chức năng
(25 chân) (9 chân) Tắt

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:

 Khung truyền gồm 4 thành phần


 1 Start bit (Mức logic 0): bắt đầu một gói tin, đồng bộ xung
nhịp clock giữa DTE và DCE
 Data (5,6,7,8 bit): dữ liệu cần truyền
 1 parity bit (chẵn (even), lẻ (odd), mark, space): bit cho phép
kiểm tra lỗi
 Stop bit (1, 1.5 hoặc 2 bit): kết thúc một gói tin
93
3.1.3. Thủ tục trao đổi dữ liệu

 Các phương pháp đặt bit chẵn lẻ:

- 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ẻ.

- Đánh dấu (mark): bit chẵn lẻ luôn bằng 1.

- Trống (space): bit chẵn lẻ luôn bằng 0.


94
3.1.3. Thủ tục trao đổi dữ liệu

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

• Tính bằng đơn vị bit/giây: bps (bit per second)

• Thuật ngữ khác: baud


- Đơn vị đo dùng cho modem
- Số lần thay đổi tín hiệu trong một giây
- Đối với modem, mỗi lần thay đổi tín hiệu, có thể truyền
được nhiều bit : tốc độ baud <= tốc độ bit

• Tốc độ tối đa = Tần số xung nhịp clock / hằng số

• 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)

- Phương pháp điều khiển thông tin có móc nối (handshaking).

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:

Móc nối mềm dùng hai kí tự X-OFF và X-ON


Số liệu

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

Chuẩn RS423A: Đặc điểm của chuẩn này là người ta sử


dụng điện áp không cân bằng (không đối xứng). Sử dụng
một đường dẫn nhưng được cải tiến để có tốc độ cao hơn và
đường truyền dài hơn. Cụ thể mức điện áp giảm xuống chỉ
còn từ 0 đến 6V

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

Điện trợ lối ra của bộ đệm 3k7k 100 5464k


Điện trở lối vào của bộ đệm 3k7k > 4k 12k

Độ nhậy của bộ phận 3V 200mV 200mV


105
3.3. Lập trình cho cổng RS232
3.3.1. Bộ truyền nhận không đồng bộ vạn năng UART 8250A
 Chức năng chính:
 Chuyển đổi tín hiệu song song từ CPU thành tín hiệu
nối tiếp để truyền ra khỏi máy tính, chuyển tín hiệu
nối tiếp từ ngoại vi thành song song để chuyển tới
CPU.
 Bổ sung các bit: Start, chẵn/lẻ và stop vào mỗi ký tự
để hình thành khung truyền, đồng thời tách các bit đó
ra từ khung truyền nhận được.
 Duy trì trạng thái các bit riêng biệt được phát ra với
tốc độ truyền dữ liệu thích hợp, tính toán các bit
chẵn/lẻ trên từng kí tự nhận.
 Thiết lập các tín hiệu bắt tay phần cứng thích hợp và
thông báo trạng thái của các mạch đó.
106
3.3.1. Bộ truyền nhận không đồng bộ vạn năng UART 8250A

Sơ đồ chân tín hiệu 8250:

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

Thanh ghi điều khiển:

Các thanh ghi 8250 Thanh ghi trạng thái:

Thanh ghi đệm:

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.

 DLAB = 0: Thì 2 thanh ghi dùng để đệm và nhận dữ liệu, IER.

111
3.3.2. Các thanh ghi

a. Thanh ghi đệm thu (RBR – Receiver Buffer Register)

Đặ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

b. Thanh ghi đệm phát (THR – Transmitter Holding Register)

Đặ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

c. Thanh ghi điều khiển đường truyền


(LCR – Line Control Register) - DLAB

114
3.3.2. Các thanh ghi

d. Thanh ghi tốc độ Baud

Đặ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

d. Thanh ghi tốc độ Baud

Bảng chuyển đổi giữa giá trị Baud và số chia

Baud Số chia Baud Số chia


50 0900 1200 0060
110 0417 2400 0030
150 0300 4800 0018
300 0180 9600 000C
600 00C0 11520 0001

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

f. Thanh ghi cho phép ngắt – IER: Interrupt Enable Resgister


0 S6 S5 S4 S3 S2 S1 S0

=1 ngắt được tạo ra

=1 bộ đệm truyền trống


và ngắt mới xuất hiện

Cho phép có sự thay đổi trong trạng thái đường


Truyền bộ nhận theo cách gây ra ngắt.
Cho phép có sự thay đổi trong trạng thái
=0 MODEM để ngắt bộ xử lý
=0
=0
=0

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

D0 =1: không có yêu cầu


Mã hóa các yêu cầu ngắt có mức ngắt
ưu tiên cao nhất đang chờ phục D0 = 0: có yêu cầu ngắt
vụ.
119
3.3.2. Các thanh ghi
h. Thanh ghi điều khiển Modem – MCR:Modem Control register
Đặc điểm:
 Địa chỉ thanh ghi 3FCh. Thanh ghi này còn gọi là thanh ghi
điều khiển các chân tín hiệu ra của MODEM vì nó cho phép
điều khiển các tín hiệu tại các chân DTR và RTS của 8250
Bit Chức năng
7-5 Dự trữ, luôn được thiết lập về 0
4 D4 = 1: Cho phép 8250 làm việc ở chế độ nối vòng cục bộ để kiểm tra các
chức năng.
D4 = 0: làm việc ở chế độ thường.
3 D3 =1 kích hoạt OUT2
2 D2 = 1 kích hoạt OUT1
1 D1 =1: Tín hiệu tại chân RTS của 8250 được truyền về mức 0, máy tính phát
chuyển tín hiệu RTS tới Modem để báo hiệu nó sẵn sàng phát dữ liệu
0 D0 = 1: Tín hiệu tại chân DTR của 8250 được chuyển về mức 0, máy tính
phát chuyển tín hiệu DTR tới Modem để báo hiệu nó đã sẵn sàng làm việc.
120
3.3.2. Các thanh ghi

i. Thanh ghi trạng thái Modem – MSR:Modem Status Register


Đặc điểm:
 Địa chỉ thanh ghi 3FEh. Thanh ghi này còn được gọi là
thanh ghi trạng thái RS232C vì nó cho biết trạng thái hiện
thời của các tín hiệu điều khiển MODEM
Bit Chức năng
7 D7 = 1: DCD hoạt động
6 D6 = 1: RI đang hoạt động
5 D5 = 1: Modem hoặc máy tính gửi DSR về máy tính để cho biết sẵn sàng
nhận dữ liệu
4 D4 = 1: Modem (hoặc máy tính) gửi CTS về máy tính để cho biết sẵn sàng
nhận dữ liệu
3 D3 = 1: D7 vừa đổi trạng thái
2 D2 = 1: D6 vừa đổi trạng thái
1 D1 = 1: D5 vừa đổi trạng thái
0 D0 = 1: D4 vừa đổi trạng thái 121
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

Bảng địa chỉ cổng COM

Cổng Địa chỉ I/O Yêu cầu ngắt


COM1 3F8-3FF IRQ4
COM2 2F8-2FF IRQ3
COM3 338-33F IRQ5
COM4 238-23F IRQ5

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

Dạng thức của AH Dạng thức của AL


Hàm 3h:
Ý nghĩa: Đọc trạng thái cổng COM Bit 7 Lỗi qua thời gian Bit 7 Phát hiện vật mang dữ liệu

Đầ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 2 Lỗi Parity Bit 2 Chỉ thị chuông

Bit 1 Lỗi đường truyền Bit 1 Sẵn sàng thiết lập dữ liệu delta

Bit 0 Dữ liệu đã có trong bộ đệm Bit 0 Xóa gửi delta.

125
3.3.3. Lập trình cho cổng RS-232

b. Lập trình UART 8250


Sơ đồ ghép nối

127
3.3.3. Lập trình cho cổng RS-232
b. Lập trình UART 8250
Bước 1:

Khởi phát vi mạch theo trình tự sau:


- Ghi vào thanh ghi dạng số liệu theo :

+ D7 = DLAB = 1 để chuẩn bị ghi chốt cho bộ chia tốc độ.

+ Khung tin với số bit Stop

+ Số bit của tin


- Ghi giá trị bộ chia tần số vào các thanh ghi chốt chia LSB,
MSB tuỳ theo tốc độ baud.
- Ghi các phép yêu cầu ngắt vào thanh ghi yêu cầu ngắt. 128
3.3.3. Lập trình cho cổng RS-232
b. Lập trình UART 8250
Bước 2:
Phát số liệu nối tiếp:

- Đọ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 tin ra vào thanh ghi đệm phát từ MVT.

- 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:

Nhận số liệu nối tiếp:


- Ghi lệnh DTR (D0=1) vào thanh ghi điều khiển MODEM

- Đọ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:

a. Thanh ghi điều khiển trạng thái:


• Theo đề bài ta có:

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:

b. Thanh ghi chốt bộ chia:


• Tốc độ của 8250 là 9600 baud nên số chia =
000Ch.

Ta có: Data_LS = 0Ch và Data_MS = 00h.


• Addr_LS = 03F8h; Addr_MS = 03F9h.

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:

d. Đọc thanh ghi nhận dạng ngắt:

THR_rong = 02h.

Addr_IIR = 03FAh.

e. Thanh ghi điều khiển MODEM

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.

Các chân tín hiệu DSR (D5) = RI (D6) = DCD (D7) = 1.

Data_MSR = E0h.

g. Đọc thanh ghi trạng thái dòng

Addr_LSR = 3FDh.

Không lỗi D1 = D2 = D3 = 0; Thời gian đệm rỗng D5 = D6 = 1

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:

Các bước thực hiện:

- Khởi tạo:

+ Chốt số chia để quy định tốc độ baud.

+ Lựa chọn số bit dữ liệu, bit Stop và kiểu chẵn lẻ.

- Bắt đầu thực hiện truyền/nhận:

+ 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

 USB là một giao tiếp cho


phép dữ liệu truyền giữa máy
tính chủ (host) với một hay nhiều
loại thiết bị ngoại vi đồng thời.
Thiết bị ngoại vi được cắm vào
máy tính, chia sẻ băng thông của
USB thông qua giao thức dựa
trên cơ chế lập lịch và dùng thẻ
bài (token).

138
3.4. 1. Giới thiệu chung

Ưu điểm của USB

 Dễ dàng mở rộng các thiết bị đầu cuối của PC.


 Cung cấp giải pháp chi phí thấp song vẫn hỗ trợ
truyền dẫn với tốc độ đến 480Mb/s.
 Hỗ trợ ứng dụng thời gian thực.
 Giao thức linh hoạt cho các chế độ hỗn hợp.
 Tích cực công nghệ thiết bị tiện nghi.
 Đang năng do có nhiều thiết bị có thể ghép nối với
PC qua công USB

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:

• Cáp USB tốc độ cao (high-speed) là 480 Mb/s.

• Cáp USB tốc độ đủ (full-speed) là 12 Mb/s.

• Cáp USB dành cho truyền


thông tốc độ thấp ở 1.5 Mb/s.

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

Các gói dữ liệu trong những khung truyền 1ms

Các gói dữ liệu USB

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

Tín hiệu thông thường


0 0 0 0 1 1 0

Tín hiệu NRZI

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

Bộ truyền USB Bộ nhận USB

147
3.4. 3. Truyền dữ liệu trong qua cổng USB

 Đặc điểm

Khối SIE trong bộ vi điều khiển AN2131.

+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

 HUB là hộp phân phối bus Cổng USB trên PC


có nhiều cổng. Một hub
ngoài có một cổng hướng về
máy chủ (upstream) và 4
cổng ra thiết bị ghép nối 1 HUB USB 4
(downstream).

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

 Nhiệm vụ của HUB:

-Nhận biết các thiết bị mới được đấu nối.

-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

 Phần cứng và phần mềm chủ USB

 Phần cứng: Máy chủ chịu trách nhiệm về những


công việc sau:
• Phát hiện việc kết nối hoặc loại bỏ của các thiết bị
USB.
• Quản lý việc điều khiển dòng dữ liệu giữa máy chủ
và các thiết bị USB.
• Quản lý dòng dữ liệu giữa máy chỉ và các thiết bị
USB.
• Thống kê trạng thái và tính hoạt động của hệ thống.
• Cung cấp dòng điện đã được đặt để hạn chế công
suất cho các thiết bị USB được kết nối.

153
3.4. 3. Truyền dữ liệu trong qua cổng USB

 Phần cứng và phần mềm chủ 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ị:

• Điểm danh và định cấu hình thiết bị.

• Truyền dữ liệu trong chế độ đẳng thời.

• Truyền dữ liệu trong chế độ không đồng bộ.

• Quản lý năng lượng.

• Quản lý thông tin về thiết bị và bus.

154
3.4. 3. Truyền dữ liệu trong qua cổng USB

 Kết nối hệ thống USB

 Kết nối hệ thống USB bao gồm:

 Kết nối các thiết bị USB

 Loại bỏ các thiết bị USB

 Kết nối hệ thống USB

155
3.4. 3. Truyền dữ liệu trong qua cổng USB

 Kết nối hệ thống USB


Bộ nhớ Bộ nhớ cache

cache mức 2 mức 2 (L2)


L2
Bộ điều khiển
Hệ thống
(PAC/MTXC)

Các mối kết nối ở bus USB. Bộ xử lý Bộ điều


DRAM
khiển HT
(PAC/MTXC)

DMA PCI IDE/ISA Accelerator Bus ISA

Các ngắt (PIIX4) Bus IDE


Reset
Các mối kết nối USB X-Bus
Quản lý

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à:

 Mỗi thiết bị có một bản tóm lược thiết bị duy nhất.


 Có thể có nhiều cấu hình
 Trong mỗi cấu hình có thể cho ra nhiều giao diện.
 Mỗi giao diện có thể có nhiều cách thiết lập để lựa chọn
(Alternate settings)

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

Tên trường Độ dài, mô tả Thí dụ


bLength 1, Chiều dài của descriptor tính theo byte 09h
bDescriptorType 1, kiểu descriptor (02h= descriptor cấu hình) 02h
wTotalLength Chiều dài các descriptor cũ của cấu hình này 22h, 00h
bNumlnterfaces Số lượng giao diện 01h
bConfigurationValue Số (hiệu) của cấu hình này 01h
iConfiguration Chỉ số xâu 00h
bmAttributes Thuộc tính của cấu hình 04h
MaxPower Dòng tiêu thụ, đơn vị tính 2mA (32h=100mA) 32h

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.

Tên trường Độ dài, mô tả Thí dụ


bLength Chiều dài của kiểu Descriptor tính ra byte 09h
bDescriptorsType 1 (04h=Interface Descriptor) 04h
bInterfacenumber Số giao diện 00h
bAlternateSettings Đặt thông số theo cách lựa chọn 00h
bNumEndpoints Số lượng điểm cuối không có EPO 00h
bInterfaceClass Giao diện lớp cuối cùng 00h
bInterfaceSubClass Giao diện lớp con cuối cùng 00h
bInterfaceProtocol Mã giao thức cuối cùng 00h
iInterface Chỉ số xâu (String-Index) 00h

162
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 Endpoint


Tên trường Độ dài, mô tả Thí dụ
bLength 1, chiều dài của bản liệt kê tính ra byte. 07h
bDescriptorType 1, kiểu liệt kê (05h=Endpoint-Descriptor) 05h
bEndpointAddress Địa chỉ Endpoint (EP2, OUT) 02h
bmAttributes Kiểu truyền (2=Truyền khối) 02h
wMaxPacketSize Dung lượng bộ nhớ FIFO 40h,00h
bInterval Khoảng hỏi (Polling) cuối cùng 00h

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

 Muốn đo đạc tạo ra những xung nhịp định thời chính


xác và ổn định bằng hệ thống ghép nối máy tính người
ta sử dụng vi mạch định thời có thể lập trình được là
PIT – 8253.
 PIT – 8253 khi được lắp trên bản mạch ghép nối cắm
vào khe cắm mở rộng của PC có thể phục vụ cho
nhiều mục đích như: tạo máy phát sóng tỷ lệ khả trình,
đếm các sự kiện, tạo đồng hồ thời gian thực,tạo các
xung đơn, đo khoảng cách thời gian chính xác, đo tần
số, điều khiển động cơ bước.

163
3.5.1 Giới thiệu chung

 Cấu tạo của PIT – 8253/54:

164
3.5.1 Giới thiệu chung

 Bộ đệm bus dữ liệu:


 Là loại 8 bit – 2 hướng – 3 trạng thái. Dùng để ghép
nối PIT 8253/8254 với bus hệ thống.

 Số liệu sẽ được bộ đệm phát hoặc thu bằng việc


chạy lênh OUT hoặc IN.

 Bộ đệm có 3 chức năng cơ bản:


 Định trình cho chế độ hoạt động của 8253/54.
 Nạp các thanh ghi của bộ đếm.
 Đọc các giá trị đệm.

165
3.5.1 Giới thiệu chung

 Mạch logic điều khiển đọc viết:

 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

Bảng chế độ hoạt động của 8253:


/CS /RD /WR A1 A0 Chức năng
0 1 0 0 0 Nạp bộ đếm 0
0 1 0 0 1 Nạp bộ đếm 1
0 1 0 1 0 Nạp bộ đếm 2
0 1 0 1 1 Viết thanh ghi lệnh
0 0 1 0 0 Đọc bộ đếm 0
0 0 1 0 1 Đọc bộ đếm 1
0 0 1 1 0 Đọ bộ đếm 2
0 0 1 1 1 Đọc thanh ghi lệnh 8254
1 X X X X Không tích cực
0 1 1 X X Không hoạt động

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ọn bộ đếm: Định dạng bộ đệm:


00: bộ đếm 0. 0: đếm nhị phân.
01: bộ đếm 1. 1: đếm BCD (0:999).
10: bộ đếm 2.
11: Đọc CWR trong 8254
Chế độ đếm:
Quy đinh phương thức 000: Chế độ 0.
đọc ghi: 001: Chế độ 1.
00: chốt bộ đệm 0. 010: Chế độ 2.
01: đọc ghi byte thấp 1. 011: Chế độ 3.
10: đọc ghi byte cao. 100: Chế độ 4.
11: Đọc ghi byte cao 101: Chế độ 5.
trước, byte thấp sau. 169
3.5.3. Chế độ đếm:

 PIT 8253/54 có sáu chế độ đếm từ chế độ 0 đến chế độ 5.

 Chế độ 0: Có chức năng phát ra một sườn xung lên khi kết thúc đếm.

 Chế độ 1: Có chức năng phát ra một xung đơn.

 Chế độ 2: Phát ra các sóng tỷ lệ.

 Chế độ 3: Phát ra sóng hình vuông.

 Chế độ 4: Tạo ra xung bằng phần mềm.

 Chế độ 5: Tạo ra các xung bằng cửa GATE

171
3.5.3. Chế độ đếm:
 Chế độ 0

 Có chức năng phát ra một


sườn xung lên khi kết thúc
đếm.
 Việc nạp lại thanh ghi bộ
đếm sẽ ra các kết quả sau:
- Nạp byte đầu tiên
(byte thấp) sẽ làm ngừng
bộ đếm hiện tại.
- Nạp byte thứ 2 (byte
cao) sẽ khởi
phát quá trình đếm mới.

172
3.5.3. Chế độ đếm:
 Chế độ 1

 Phát ra một xung đơn có thời gian tồn


tại xung biến đổi được.
 Lối ra OUT sẽ chuyển xuống mức
thấp khi khởi phát đếm và duy trì
trạng thái này cho đến khi kết thúc
đếm thì sẽ nhảy lên mức cao.
 Bộ đếm được khởi động bởi sườn lên
của xung cửa GATE.
 Chế độ này cho phép tạo ra các xung
đơn có độ rộng biến đổi được tùy theo
giá trị nạp ban đầu.
173
3.5.3. Chế độ đếm:

 Chế độ 2:

 Phát ra các sóng tỉ lệ.


 Các xung nhịp đưa vào bộ đếm
được chia bởi giá trị nạp trong
thanh ghi bộ đếm.
 Lối ra sẽ xuống mức thấp
trong một chu kì khi số đếm
đạt về 0 và sau đó được nâng
lên mức cao trong một chu kỳ
xung nhịp.

174
3.5.3. Chế độ đếm:
 Chế độ 3

 Chế độ này phát ra sóng hình


vuông.
 Chế này tương tự như chế độ
2 nhưng xung điện lối ra là
sóng vuông khi giá trị đếm là
chẵn hoặc thêm một chu kì ở
mức cao khi giá trị đếm là lẻ.

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

 Tạo các xung bằng xung cửa


GATE.
 Cũng giống chế độ 2, sườn lên
xung cửa GATE khởi phát quá
trình đếm sau đó xuống mức thấp
trong một chu kì nhịp khi việc
đếm kết thúc.
 Khi quá trình đếm chưa kết thúc,
nếu xung cửa xuất hiện những
sườn lên thì cứ mỗi lần như vậy
bộ đếm lại được đếm lại từ giá trị
ban đầu.
177
3.5.4. Lập trình 8253/54
 Viết bộ đếm:
 Chương trình phải thực hiện hai thao tác viết bộ đếm:
- Viết từ điều khiển để xác lập chế độ hoạt động của các
bộ đếm.
- Nạp số đếm ban đầu cho các bộ đếm.
 Sau khi được nạp giá trị ban đầu, bộ đếm sẽ thực hiện đếm lùi
từ đó xuống 0.
 Giá trị ban đầu ứng với hệ số chia tần của bộ đếm trong các
chế độ 2 và 3.
 Số đếm ban đầu được nạp là 0 tương đương với việc nạp số
đếm cực đại 216 (đếm nhị phân) hoặc 104 (đếm BCD).

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.

ĐỊNH DẠNG 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:

Định dạng byte trạng thái

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:

Định dạng cho lệnh đọc thanh ghi điều khiển

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

CS A1 A0 Cổng Địa chỉ cổng

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

MOV AL, 77h; Bộ đếm 1, chế độ 3, BCD.


OUT 97H, AL; gửi đến thanh ghi điều khiển
SUB AL, AL; AL = 0 nạp số chia là 10000
OUT 95H, AL; Gửi byte thấp
OUT 95H, AL; Sau đó gửi byte cao đến bộ đếm 1.

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.

D0- D7 D0- D7 CLK0


GATE0
OUT0
CLK1
Khe cắm ISA

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:

Mạch giải mã 74LS138 nối với 8353

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:

Địa chỉ cổng 8253/54 ở máy tính PC

Chức năng Địa chỉ


Bộ đếm 0 40h
Bộ đếm 1 41h
Bộ đếm 2 42h
Bộ đếm 3 Thanh Ghi điều khiển

189
BÀI TẬP

1. LậP trình để truyền 1 ký tự từ COM1 và nhận nó qua cổng này.


2. Viết chương trình để truyền dòng chữ “Khoa ĐTVT” từ máy tính qua cổng COM1 hiển thị trên LCD.
3. Viết chương trình để truyền dòng chữ “2022-2023” từ máy tính qua cổng COM1 hiển thị trên LED 7
đoạn, có hiệu ứng nhấp nháy.
4. Xây dựng chương trình đơn giản để thực hiện truyền lệnh điều khiển từ máy tính với vi điều khiển
8051 để bật tắt thiết bị điện thông qua cổng COM (yêu cầu mô hình hệ thống, chức năng các thiết bị
Và viết chương trình)
5. Nối lối ra của máy phát xung nhịp 1MHz tới lối vào CLK2 của bộ đếm 2 chip PIT 8253; Nối lối vào
GATE2 lên +5V để luôn cho phép đếm. Tạo chương trình phát sóng vuông qua bộ đếm 2 trong chip
PIT – 8253 với tần số bất kì được nhập từ bàn phím (cho địa chỉ C0 = 304)

190
Chương 4
GHÉP NỐI SỐ TƯƠNG TỰ,
TƯƠNG TỰ SỐ

12/07/2023 04:16 PM 191


NỘI DUNG

3.1. Giới thiệu tổng quan về DAC và ADC


3.2. Ghép nối với DAC
3.3. Lập trình cho DAC
3.4. Ghép nối với ADC
3.5. Lập trình cho ADC

12/07/2023 04:16 PM 192


Mục Tiêu

 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

12/07/2023 04:16 PM 193


4.1. Giới thiệu tổng quan về DAC và ADC

Hệ thống thực

Setpoint
Cơ cấu chấp
Điều khiển DAC Khuếch đại
hành

ADC Khuếch đại Cảm biến

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:

 Đ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:

 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:

 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 D/A điển hình:

Chuyển đổi DA theo kiểu


điện trở trọng lượng

Các
mạch
Chuyển đổi DA theo kiểu
D/A
mạch R – 2R
điển
hình

Chuyển đổi DA theo phương pháp


mã hóa Shanon – Rack
199
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)

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

 Ưu điểm: đơn giản.


 Nhược điểm: độ chính xác và tính ổn định của kết quả phụ thuộc nhiều vào trị
số tuyệt đối của các điện trở và sự ổn định của chúng trong các môi trường
khác nhau. Ngoài ra còn phụ thuộc vào tính ổn định và độ chính xác của
nguồn điện áp chuẩn.
201
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 thang
điện trở R-2R (R-2R ladder):

Đ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ự.

 Sơ đồ khối một ADC đơn giản

203
4.1.2. Bộ chuyển đổi tương tự số (ADC – Analog Digital Converter)

 4.3.1. Các tham số cơ bản:

 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:

 Mạch biến đổi song song có ưu


điểm là tốc độ chuyển đổi
nhanh , nhưng kết cấu mạch khá
phức tạp nếu ta tăng độ phân
giải của phép biến đổi AD
(resolution). Thực vậy để thiết
lập một bộ biến đổi có độ phân
giải n bít thì cần phải có (2n - 1)
bộ so sánh, do vậy phương pháp
này chỉ dùng cho các bộ ADC tốc
độ cao và độ phân giải thấp.

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

 Về nguyên tắc một bộ DAC có Mạch ghép nối DAC 8 bít


thể ghép nối tương thích với
hầu hết các bộ VXL. Ðối với
các bộ DAC 8 bít, công việc
thậm chí còn rất đơn giản khi
ghép nối với các VXL, lý do là
các VXL đều có BUS dữ liệu
là bội của 8. Ðối với các bộ
DAC 12 hay 16 bít ta phải sử
dụng các đệm trung gian có số
bít tương ứng sau đó tiến hành
trao đổi số liệu nhiều lần.

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 động cơ một chiều.

 Ghép nối thiết bị chỉ thị tương tự.

 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.

 Đối với DAC 16 bit, ta cần hai lệnh xuất:


Port[addr_port1] := data1;
Port[addr_port2] := data2;
Trong đó: địa chỉ cổng addr_port1 qua mạch giải mã địa chỉ tạo xung thứ nhất kích mở
mạch chốt đệm 74273 thứ nhất, lưu giữ 8 bit thấp của dữ liệu, thể hiện trong data1.
 Lệnh xuất dữ liệu thứ hai theo địa chỉ addr_port2 sẽ tạo xung thứ hai kích mở mạch
chốt đệm 74273 thứ hai (phía dưới) để đưa 8 bit cao của dữ liệu, thể hiện trong data2.
đồng thời xung thứ hai này cũng mở chốt đệm 74273 thứ ba để truyền số liệu 8 bit thấp
ở đầu ra 74273 thứ nhất sang đầu ra 74273 thứ ba. Kết quả là DAC nhận được 16 bit dữ
liệu cùng một lúc.
213
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 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:

Lưu đồ thuật toán

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

 ADC 1 đường: có 1 lối vào tương tự.


 ADC nhiều đường: có 4, 8, 16 lối vào tương tự
 ADC song song: Cho các bit số ra song song đồng thời trên các chân ra
 ADC nối tiếp: Cho các bit số ra nối tiếp nhau từ d0 ÷ d7.

220
4.4. Ghép nối ADC
 Nguyên tắc ghép nối ADC với máy vi tính:

 ADC phải được chọn địa chỉ.


 Vi mạch phải được đệm bus với bus của máy vi tính qua các thanh ghi
đệm.
 Các tín hiệu điều khiển vi mạch (ALE, chọn kênh, start) được đưa ra từ
máy vi tính qua thanh ghi đệm hoặc cổng ra.
 Các tín hiệu trạng thái, số liệu D0 ÷ Dm được đưa vào từ ADC tới đường giây
của máy vi tính qua các cổng vào, hay thanh ghi đệm. Nếu ADC cho tin ra nối
tiếp, phải mắc vào cổng nối tiếp.
 Tín hiệu CLK có thể nối với máy phát xung nhịp ngoài hay tín hiệu nhịp
tủa 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

You might also like