1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Kỹ thuật vi xử lý tập 2

211 4 0
Tài liệu được quét OCR, nội dung có thể không chính xác

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Kỹ thuật vi xử lý tập 2
Tác giả Trương Tấn Hai
Trường học Trường Đại học Giao thông Vận tải Hà Nội
Chuyên ngành Kỹ thuật vi xử lý
Thể loại Sách giáo trình
Năm xuất bản 1997
Thành phố Hà Nội
Định dạng
Số trang 211
Dung lượng 6,03 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ngược lại, trong nhóm thứ hai, thiết bị ngoài kích đầu vào ngắt của bộ vi xử lý để thông báo cho bộ vi xử lý biết khả năng trao đổi số liệu.. Số liệu không đi từ vào/ra đến các thanh ghi

Trang 2

me

CHRUGNG VI:

VAO/RA DIEU KHIEN BANG CHUONG TRINH

VI.1 GIỐI THIỆU CHUNG:

Các hệ vi xử lý ứng dụng đỏi hỏi trao đổi số liệu giữa các mạch bên ngoài với bộ vi

xử lý, giữa bộ vi xử lý với bộ nhớ Sự trao đổi số liệu như vậy được gọi là quá trỉnh vào/ra

Cố nhiều phương pháp điều khiển trao đổi thông tin nhưng có thể chia chúng thành

1, Vàojra điều khiển bằng chương trình

2 Vào/ra điều khiển bằng ngắt

3 Vao/ra diéu khién bang phan cứng '

Oo nhom thứ nhất, chương trình điều khiển quá trình trao đổi số liệu, có nghĩa là vào/ra

; duge thuc hién khi chương trình thực biện lệnh trao đổi vào/ra

Trong nhiều trường hợp cần xác định trạng thái SANSANG cia thiét bị trước khi trao

đổi số liệu, bằng cách kiểm tra cờ bên ngoài hoặc các bít trạng thái liên quan với vào/ra

Ngược lại, trong nhóm thứ hai, thiết bị ngoài kích đầu vào ngắt của bộ vi xử lý để

thông báo cho bộ vi xử lý biết khả năng trao đổi số liệu Việc chấp nhận yêu cầu ngất ở

một số đầu vào ngắt của bộ vi xử lý được điều kbiển bằng chương trình Khi bộ vi xử lý

chấp nhận ngất, nó dừng chương trình đang thực hiện và chuyển điều khiển đến chương

trình phục vụ ngắt Chương trình con này trao đổi số liệu, rồi trả điều khiển cho chương

trình đang thực hiện bị ngắt Trong nhóm này việc trao đổi số liệu được xác định trước

bằng mạch cứng bên ngoài và được điều khiển bằng chương trỉnh phục vụ ngắt

Trong nhớm ở, phần cứng điều khiển trao đổi số liệu hay xâm nhập trực tiếp bộ nhớ

(DMA - DIRECTMEMORY ACCESS) Viéc trao déi số liệu là trực tiếp giữa bộ nhớ và

vào/ra Số liệu không đi từ vào/ra đến các thanh ghi của bộ vi xử lý rồi tới bộ nhớ, hoặc

theo hướng ngược lại, mà trao đổi trực tiếp giữa thiết bị ngoài và bộ nhớ Bộ vi xử lý xác

định trước cho DMA địa chỉ khởi đầu của bộ nhớ và tổng số từ sẽ truyền DMA được sử

dụng chủ yếu ở nơi có yêu cầu trao đối số liệu với tốc độ cao Như đã trình bày ở trước

các cửa vào và các cửa ra là các thanh ghỉ ngoài Một số phân loại bộ vi xử lý phát sinh

tính hiệu điều khiển để phân biệt vùng địa chỉ các thanh ghi ngoài (liên quan tới thiết bị

vào/ra) với vùng địa chỉ các thanh ghi ngoài gọi là các ngăn nhớ

Tín hiệu điều khiển IO/M của 80854 xác định địa chỉ và số liệu cho b6 nhé (IO/M= 0),

hoặc vào/ra (IO/M ='1)

Hướng trao đổi số liệu của vào/ya xác định bằng xung RO = 0 (vao) va WR = 0 (ra)

Xem hình 6.1

Trang 3

Cac tin hiệu điều khiển :

Chỉ có lệnh IN vào lệnh OUT trao đổi số liệu trong vào/ra tách biệt Lệnh IN vào OUT

đời hỏi ba chủ kỳ máy để thực hiện Chu kỳ thứ nhất là OPCODEFETCH Chu kỳ.thứ hai

MEMORY RBAD nhận địa chỉ của 8 bit từ bộ nhớ vào cả hai thanh ghi W và Z Chu kỳ

thứ ba:'là INPUT' hoặc OUTPUT, chu ky nay lénh OUT gui số liệu từ bộ vi xử lý ra thiết bï.ra, lệnh IN nhận số liệu vào bộ vi xử lý từ thiết bị vào Trong chu kỳ máy INPUT hoac OUTPUT, 8 bit dia chi cta tit hai thanh ghi W va Z được gửi vào bus địa chỉ /số liệu ADO-AD7 và vào bus địa chỉ A8 - A15: Trên hình 6.2 là biểu đồ thời gian của chu kỳ lệnh

In.và OƯT Các xung RD và WR xác định thời điển để chốt cửa vảo 3 trạnh thái kích

Bus số liệu hơặc thời điểm để cửa ra chốt số liệu từ bus Hình 6.2a chỉ số quan hệ thời gian giữa địa chỉ cửa và xung ED của 8085A trong chự kỳ may INPUT - trong hình 6.2b

là quan hệ thời gian giữa địa chỉ cửa và xung WR

Đối với các cửa vào, bộ giải mã cớ đầu vào là RD, IO/M, va địa chỉ cửa sẽ sinh ra

xung chọn thiết bị vào duy nhất cho mỗi cửa vào (xem hình 6.3) Xung näy chỉ xuất hiện

trong chu kỳ INPUT của lệnh IN Xung chọn thiết bị vào mở bộ đệm 3 trạng thái của cửa vào Nếu cớ lỗi thiết kế hoặc lỗi chương trình các bộ đệm 3 trạng thái của 2 hay nhiễu

cửa hoặc bộ nhớ đồng thời được chọn Như vậy cả 2 hay nhiều thiết bị đồng thời kích bus

số liệu, gây ra chập mạch trên bus số liệu

Đối với cửa ra, bộ giải mã có đầu vào là WR, IO/M và địa-chỉ cửa ra sẽ sinh ra xung

chọn thiết bị ra để chọn: cửa ra Xem hình 6.3 xung này chỉ xuất hiện trong chủ kỳ

OUTPUT của lệnh OUT Thông thường mỗi xung chọn thiết bị ra làm nhịp cho một cửa

ra Có thể có hai hay nhiều cửa ra được chọn đồng thời

Thiết kế mạch logic thiết bị phụ thuộc vào số lượng thiết bị vào/ ra mà hệ yêu cầu

Không cần giải mã địa chỉ cửa nếu hệ chi có một cửa vào và một cửa ra Tín hiệu điều khiển IO/M tổ hợp với RD để tạo LOR và với WR để tạo xung viết LOW Các xung nhịp

4

Trang 4

này điều khiển trực tiếp thanh ghi đệm vào và thanh ghi chốt ra Nếu trong hệ cố nhiều

cửa vào và cửa ra, cần phải giải mã địa chỉ để tạo xung chọn thiết bị cho mỗi cửa

Phương pháp giải mã địa chỉ đơn giản nhất là chọn tuyến tính Nó không đòi hỏi mạch

logic, nhưng chỉ sử dụng cho hệ có tổng số cửa vào ít hơn hoặc bằng 8 và tổng số cửa ra

Ít hơn hoặc bằng 8 © đây mỗi bit địa chỉ eó quan hệ loại trừ với cửa vào/ra và tổ hợp

lôgic với IO/M va RD hoặc WR dé tao xung chọn thiết bị, trong chu kỳ mày ở thời điểm

cha xung RD hoặc WR xuất hiện trừ đi độ trễ của mạch lôgic chọn Trên hình 6.3 bịt địa

chỉ A4 =1 chọn cửa 16 Xung chọn thiết bị vào IDSPI0H được sinh ra tu A„ IO/M và

RD Dau ra IDSP10H cho phép b6 dém 8 tranh thai kích bus `

Bất lợi của phương pháp chọn tuyến tính là lỗi chương trình gây nguy hại cho phần

cứng Nhầm lẫn địa chỉ cửa gây ra 2 hay nhiều cửa vào kích bus đồng thời Giả sử chọn

dây địa chỉ A¿ và A+ cho các cửa vào 4 và 8 Nếu lệnh IN12 là lỗi của chương trình thi

cả cửa 4 và 8 đồng thời được chọn Như vậy khi sử dụng phương pháp này, phải đâm bảo

không chọn 2 cửa đồng thời

Phương pháp chọn tuyến tính giới hạn tổng số cửa vào và ra của hệ Để chọn nhiều

cửa vào/ ra, cần cớ bộ giải mã địa chỉ Tổng số thiết bị ngoài cho phép là 512; 256 địa chỉ

cho lénh IN va 256 cho lénh OUT

Khi giải mã các bít địa chi để cd nhiều xung chọn thiết bị vào, ta cần các bộ giải mã

cố nhiều đầu vào bởi vì chúng làm giảm tổng sé IC cần thiết Nếu một hệ yêu cầu 4 (hay

Ít hơn) cửa vào và ð (hay Ít hơn) cửa ra thì có thể sử dụng một bộ giải mã 74LS139

7415139 có 2 bộ giải mã, mỗi bộ có 4 đầu ra Một đầu vào của giải mã nối véi I/OR, 2

đầu còn lại nối với các bit địa chỉ AO và AI Bốn đầu ra cho -xung chọn thiết bị vào, xem

hình 6.4

Nếu không xuất hiện xung nhịp I/DOR thì 4 cửa ra đều có mức logic 1 Một trong các

đầu ra có xung chọn thiết bị là 0 khi đầu vào LƯOR = 0 Việc chọn cửa ra cũng tương tự

như chọn cửa vào, nhưng đầu vào có mức tích cực thấp không nối với UƠÑR mà nối với

Trang 5

Hinh 6.3 Tạo xung chọn thiết bị vào và ra bằng phương pháp tuyến tính

Bởi vì chỉ có 2 bit địa chỉ thấp nhất nối với bộ giải mã và các bit địa chỉ còn lại không

được sử dụng cho nên có thể nhiều lệnh IN höặc OUT với các địa chỉ khác nhau sẽ cho

cùng xung chọn thiết bị Thí dụ, xung chọn thiết bị IDSPOOH được tạo ra khi thực hiện

các lệnh TNO hoặc IN4, IN8, 1N12, TNI16, IN20, v.v

Các bộ giải mã với 6 đầu vào linh hoạt hơn Ví dụ, các bộ giải mã 1 từ 8 có tên 8205

và 74L138 Xem hình 6.ð khi 8205 hoặc 74LS138 được sử dụng để phát sinh xung chọn

thiết bị cho hệ 8085A, các xung chốt RD hoặc WR phải nối với một trong các đầu vào "chọn

mạch" với mức tích cực thấp, còn đầu vào "chọn mạch" với mức tích cực thấp kia được nối

với đất Tín hiệu IO/M được nối với đầu “chọn mạch" với mức tích cực cao (xem hinh 6.5)

Như vậy không cần thêm mạch lôgic để sinh ra LOR hoặc IOW, bởi vì chúng đã có sẵn bên trong 8205 hoặc 7415138

Trang 6

Hình 65 a) Bộ giải mã tạo ra xung "chọn cửa vào"

b) Bộ giải mã tạo ra xung "chọn cửa ra"

Các bộ giải mã cớ đầu vào "chọn mạch” mắc liên tiếp nhau cho phép tạo nhiều hơn

các xung "chọn thiết bị" Hình 6.6 là sơ đồ của 17 bộ giải mã 1 từ 16 có tên 74L154, cung

cấp 2ð6 xung chọn thiết bị

Để nâng tổng số vào(ra trong một hệ hơn ð12, cần có thanh ghi địa chỉ mở rộng Nó

chỉ là một thanh ghỉ đơn giản, giữa các bit phụ để địa chỉ hoá các cửa Nạp nó bằng lệnh

OUT Các cửa ra của hệ được chọn bởi giải mã đầu ra của thanh ghì ấy với địa chỉ ra

thông thường Như vậy, nếu sử dụng thanh ghi địa chỉ mở rộng 8 bit, có thể địa chỉ hoá

65-281 (256 x 256 + 1; 6 đây 1 là địa chỉ thanh ghi dja chi mé réng).-

Trang 7

Địa cñI

_ c4

Cac thuét bị _V40 F4

^A⁄!*^

Hình 6.7 Thanh ghi địa chi md rong

Thanh ghi địa- chỉ mở rộng được nạp một trong 256 tổ hợp mã để cung cấp 8 bit phần

cao địa chỉ cửa, còn phần thấp là 1 trong 255 tổ hợp Một tổ hợp là địa chỉ của thanh ghỉ

mở rộng Phần chương trình cho cấu trúc vào/ra loại này, cần gửi ra các cửa vào/ra địa chỉ phần cao để nạp vào thanh ghi địa chỉ mở rộng (hỉnh 6.7)

Các xung "chọn thiết bị" cũng có tác dụng như các xung điều khiển thiết bị ngoài khi không trao đổi số liệu Chỉ cớ lệnh OUỨT được dùng để sinh ra các xung như thế, vì lệnh

IN lam thay đổi nội dung thanh chứa Trong hình 6.8 phần mềm tạo các xung chọn thiết

bị để điều khiển một thiết bị ngoài bởi lập hay xoá ẩip - flop Thue hién lénh OUT 1 lap

flip - flop, trên đầu ra của bộ đảo hở cực góp là mức logic O để đóng rơle bán dẫn, có tác dụng như đóng một công tắc Dòng điện chạy từ nguồn xoay chiều 120V qua rơle bán dẫn đên môồtơ Thực hiện lệnh OƯTO xoá flip - fop làm ngất môtơ Chú ý rằng số liệu trong bus số liệu khi thực hiên lệnh OUT không gây ảnh hưởng đến hệ thống vì nó không được chốt `

Trang 8

wee

2 Vao/ra theo địa chỉ bộ nhớ

Các lệnh qui chiếu bộ nhớ có khả năng trao đổi số liệu giữa thiết bị vào/ra với bộ vi

xử lý, chừng nào cửa vào/ra được gán cho vùng địa chỉ của bộ nhớ Các thanh ghỉ liên

quan tới cửa vào/ra coi như là các ngăn nhớ

Ví dụ : Chọn bit A15 để phân biệt qui chiếu bộ nhớ hoặc thiết bị vào/ra Nếu Alð=0,

các ngăn nhớ, được địa chỉ hoá Nếu A1ð = 1, các thanh ghi cửa vào/ra theo địa chỉ bộ

nhớ được địa chỉ hoá Như vậy có 32 Kbyte của vùng địa chỉ bộ nhớ đành cho bộ nhớ và

32 K còn lại dành cho vào/ra theo địa chỉ bộ nhớ Bộ légic bên ngoài sinh ra xung chọn

thiết bị vào/ra chỉ khi IO/M = 0 địa chỉ tương ứng nơi trên bus địa chỉ và có xung nhịp

MOV r, M : Vao s6 liéu tu 1 cia téi thanh ghi trong

LDA : Vào số liệu từ một cửa tới thanh chứa

ADDM : Vào số liệu từ lcửa rồi cộng số học với thanh chứa

ANA A : Vao số liệu từ 1 cửa rồi cộng lôgic với thanh chứa,

Một số lệnh sau có khả năng gửi số liệu ra cửa theo địa chỉ bộ nhớ

Lệnh si Giải thích

MOVM,r : Gửi số liệu ra cửa từ thanh ghi trong

STA © : Gửi số liệu ra cửa từ thanh chứa "

SHLD : Gửi số liệu ra 2 cửa từ H và L

MVI M, data : Gửa số liệu trực tiếp ra cửa

Tậnh trao đổi vào/ra 16 bit SHLD, LHLD làm giảm thời gian thực hiện chương trình

Khi bộ vi xử lý gửi ra địa chỉ và xung điều khiến để đọc bộ nhớ, ñó không cần xác

định nơi gửi số liệu vào là bộ nhớ hay thiết bị vào ra Nó chỉ đòi hỏi nơi gửi số liệu vào

trong khoảng thời gian cho phép hoặc sử dụng đầu vào READY để tạo ra một số trạnh

thái WAIT cần thiết Tương tự như vậy, khi bộ xử lý viết bộ nhớ, nó cung cấp địa chỉ, số

"liệu và xung nhịp rồi tiếp tục chức năng sau của nó Bộ lôgic bên ngoài xác định bộ nhớ

: hay vào/ra nào sẽ tiếp nhận số liệu đưa ra

_— Trên thị trường cớ nhiều thiết bị vào/ra tương tự và số (xem chương 9) đã có sẵm

mạch nối ghép tương tự như các ngăn nhớ để thích nghỉ trực tiếp với bộ vi xử lý `

3 Các cửa vào/ra MSI _ -

Các cửa vào/ra cố thể là các vi mạch cỡ nhỏ, cỡ vừa hoặc cỡ lớn Để giảm tổng số

mạch trong hệ, các mạch MSI hoặc LSI được thông dụng hơn Một số vi mạch MST là các

cửa vào ra trên một chip Mộtcửa ra thông thường là thanh ghi đơn giản hoặc thanh ghi

9

Trang 9

chốt Cửa ra 8 bit có.thể là một thanh ghi chốt 8 bit Trên hình 6.9 là hai thanh ghi chốt

8 bít có tên 74LS373 và- 74LS374 ‘

Mech 74LS373 gdm 8 ch6t theo mức đương loại D cơ một đầu vào mở mạch (đồng

hồ) Để kích đầư mở ruạch, cần có xung chọn thiết bị ra với mức tích cực cao Xung này

được ginh ra bởi đảo xung chọn thiết bị ra với mức tích cực thấp hoặc được sinh ra Tnột

' Ca 2 mach 74LS373 va 743374 đều có đầu ra 3 trạng thái Các bộ đệm 3 trạng thái

có đầu điều khiển ra với mức tích cực thấp Nếu nớ được sử dụng như cửa ra thì các bộ

đệm ra được mở hoặc điều khiển bởi thiết bị ra

10 - ; miề BH Ce @ 10 2 16 CIC Tee de AQ

Trang 10

Mạch 9334 của hãng NAIIONAL là chốt 8 bit loại D, có thể địa chỉ hoá riêng biệt

Nếu dùng nó làm cửa ra thì không cần thêm bộ giải mã 9334 hoạt động như bộ giải mã

1 từ 8 và có chốt D ở mỗi đầu ra (xem hình 6.10) Tám chốt này coÌl như 8 cửa ra, mỗi

-vô cho một bít cửa (xem hình 6.11) Các đầu vào địa chỉ nối với AO - A2 của bus địa chỉ

IN/M nối với đầu vào mở mạch, WR nối với đồng hồ Nếu hệ cần nhiều cửa ra thì chúng

` được nối thành nhớm 8 mạch Các bit địa chỉ thêm 1 tổ hợp lôgic với WR,để tạo tÍn hiệu

_ mở mạch cho mỗi nhóm 8 cửa

Mỗi chốt địa chỉ hoá được ở loại 9334 được sử dụng như tầng bit riêng biệt của cửa

ra 8 bit Các đầu vào có thể nối chung chẳng hạn với 1 bit số liệu

Mỗi chốt D được địa chỉ hoá bằng một lệnh ra khác có thể thay đổi một bit của cửa

ra mà không làm ảnh hưởng đến các bit khác Chỉ cần hai loại lệnh để lập mức lôgic 1

hay légic 0 cho bít đó là nạp vào thanh chứa giá trị 00H hoặc 01H và lệnh OUT cho cửa

đã chọn, ví dụ các lệnh sau đây lập mức logic 1 cho bit 7

với đầu ra 3 trang thai (xem hinh 6.12) Cac bộ

đệm 3 trạng thái được chia làm 2 nhóm Mỗi

nhớm có mở mạch chung mức tính cực thấp Các

bộ đệm trong 74LS378 và 74LS374 đều có trigơ

.- vào loại Schmitz để chống nhiễm ,

Các lệnh này làm nhiệm vụ là có thể lập hay Da ¬——¬ 933+ Lz“>

xoá một bit của cửa 8 bit và cA 8 bit thay đổi Bus sd tiga’ | “

Các đầu ra chốt va 3 trạng thái của ——

74L8378 và 74LS5374 cho phép dùng như các cửa , Dp | &

vào Nếu thiết bị vào có chốt riêng mà không có 2 3334 T73

dau ra 3 trang thai thi phan đệm 3 trạng thái 8

được sử dụng Các mạch MSĨ có chứa các bộ đệm D, o——>‡ 933+ L^>

4 bit và 8 bit đảo hoặc không đảo cũng giống thế g

Trang 11

J

46 1ÁA ZÍ% 1A1 2X3 1Á 1A4 2Y4 GND

Hình 6.12 8 mạch điện với các đầu ra ba trạng thái và các đầu vào trigơ Schmitz

a 7415240 có các mạch đệm đảo ,

b 74L8244 cd céc mạch đệm không đảo

Các bộ đồn kênh MSI với các đầu ra 3 trạng thái - Ạ hoạt động như cửa vào trong hệ thống đòi hỏi nhiều 4} ` $219 aS

cửa Bộ lôgic giải mã địa chỉ là một phần của bộ đồn 4+

(8219)

Cho 16 bộ đệm 8 bit, 3 trạng thái và địa chỉ hoá & 215 | :

được Mỗi bộ đồn kênh cho 1 bit từ 1 trong 16 cửa vào,

tới bus số liệu, 4 bit địa chỉ (A0 - A3) được giải mã bởi 424 4

bộ đồn kênh , 7

Nếu ở đây cần thêm mọt bộ giải ma thi da cd sẵn ——T +1

8119 |<

bộ giải mã điều khiển chọn từng nhớm của 8 bộ đồn

kênh khi 8219 được chọn đầu ra của nó sẽ có giá trị ——, 4

đúng, phải lấy số ligu trén dAu Q cta chét ctta hodc "18249 |7

lấy giá trị bù khi số liệu vào bộ vi xử lý Một mạch

Phần trước chương II mục 2-14 đã giới thiệu cửa Tỳ

vào/ra 8 bit Mạch MSI này gồm một chốt 8 bit với các - 4,

bộ đệm ra 3 trang thái và phần logic chon mach (xem 7} : FS 49

STB) điều khiển chọn mạch, chốt số liệu, trạng thái bộ 3, ry

đệm ra và flip - ñop yêu cầu phục vụ Nếu dùng 8212 Aa ' 11 LÁa

làm cửa ra thì đầu điều khiển chế độ có mức lôgic 1 Hình 6.13 8 bộ đồn kênh 16-1

(MD = 1), và xung đồng hồ C để chốt số liệu sẽ lấy có các đầu ra 3 trạng thái

12

Trang 12

Đố liệu vào được chốt khi có sườn xưng l xuống 0 của xung đồng hồ (xem hỉnh 6.14)

Khi sử dụng như cửa vào, 8212 có bộ đệm vào 8 trang thái được điều khiển bởi thiết

bị vào, Đối với cửa vào, đầu điều khiển MODE phải cố mức lôgic 0 (MD =

bộ đệm ra được xác định bởi DS1, D52 Xung đồng hồ chốt số liệu được đưa vào STB (xem

SOU 18212 |cvara solidy|8212 |cwa va ——> :

Hỉnh 6.14 Mắc nối mạch 8212 cua Intel

- a Xung nhập cửa ra là mức thấp của xung chọn thiết bị vào

b Xung nhập của cửa ra là xung chọn thiết bị vào ở mức cao

c Xưng chọn thiết bị vào ở mức thấp làm xung nhập cửa vào

d Xung chọn thiết bị vào ở mức cao làm xung nhịp cho cửa vào thiết bị

được truyền theo 2 chiều

4 Trdo đổi thong tin song song điều khiển bằng

chương trình :

Dưới sự điều khiến

của chương trình, số liệu được trao đổi song song qua bus giữa bộ vỉ xử lý

và thiết bị vào/ra, một từ

một lần Có 2 loại trao đổi điều khiển bằng chương trình : Không điều kiện

và cố điều kiện

-Khi trao đổi không

điều kiện, các lệnh trao

đổi số liệu với các cửa vào/ra không cần xác định

cửa đã sẵn

sàng nhận hay gửi số liệu chưa Quá trình trao đổi

không điều kiện trao đổi

thông tin lệnh, thông tín

trạng thái hoặc các số liệu khác Các thông tin lệnh

được gửi từ bộ vi xử để

điều khiển thiết bị vào/ra

Thông tỉn trạng thái truyền từ thiết bị vào/ra,

bộ vi xử sử dụng chúng để

điều khiển trạng thái

vào/ra Số liệu

và nó được phân biệt là thông tin lệnh hay trạng thái bởi bộ vi xử lý

Một ví dụ truyền số liệu không điều kiện là gửi số liệu mã BCD từ bộ vi xử lý tới màn

hình Bộ vi xử lý không cần biết mà hình đã sẵn sàng nhận Ví dụ truyền số liệu vào không

~

-

0), trạng thái ˆ

Trang 13

Thông tin trạng thái chỉ ra trạng thái hiện hành của thiết bị vào/ra Thông thường

thông tin trạng thái cần Ít hơn 8 bit Bang chương trình ta sẽ loại trừ các bit không sử

dụng ra khi thử nghiệm các cờ trạng thái

Nếu thông tỉn trạng thái chứa trong một bít, thì chỉ có 1 cửa vào được phép gửi thông tin hoặc 1 cửa đã sẵn sàng nhận Chương trình thử nghiệm các cờ trạng thái làm tăng thêm thời gian của các lệnh quan hệ tới vào/ra Thời gian thêm đớ gọi là thời gian chỉ phí

vào/ra (/O OVERHEAD)

As

Ví dụ, thiết bị vào số liệu sẵn sàng ở cửa vào 1 (số liệu) để gửi đến bộ vi xử lý (Xem

hình 6.15) Để báo được phép gửi số liệu, thiết bị vào thiết lập cờ ở bit 7 của cửa vào

(trạng thái) Việc dùng cờ khi điều khiển trao đổi số liệu có điều kiện gọi là phương pháp

mớc nối (HAND SHAKINCT) D6éi vdi vao/ra theo chugng trinh, do’ la phuong pháp nhận

biết duy nhất khi số liệu mới đã sẵn sàng chuyển tới bộ vi xử lý

Để xác định xem đã có sẵn số liệu gửi vào chưa, bộ vi xử ly tuan tự đọc từ trạng thái

trên cửa 0 và xét bit 7 Nếu bit 7 là 1, số liệu đã chờ sẵn và phải đọc nó từ cửa 1 Xung

chọn thiết bị vào cho phép số liệu vào từ cửa 1, đồng thời xoá CỜ :

‘Thong thường, cờ trạng thái được xét suốt trong khoảng thời gian tối thiểu để gửi đi

L số liệu Một chương trinh con cod chu trinh kín thực hiện nhiệm vụ này Chương trinh

con trên hình 6.18 đành cho hệ trên hình 6.15

Trang 14

Trong đó, thanh ghi B chifa téng s6 byte sé liéu gửi đi, HL chi địa chỉ khởi đầu của

vùng nhớ đệm số liệu trước khi chương trình này được gọi Sử dụng chu trình để kiểm

soát bit trạng thái gây nên Việc không đi ra khỏi vòng kín nếu thiết bị vào hoạt động sai

và không thể lập được cờ trạng thái Một phương pháp giải quyết chúng là điều khiển

theo thời gian Nếu cờ trạng thái không lập thì sau một khoảng thời gian nhất định sẽ có

điều khiển ra khỏi vòng kín và thông báo lỗi về bộ vi xử lý

Nếu nhiều thiết bị vào được sử dúng trong hệ, thì chương trình kiểm soát cờ sẵn sàng

của mỗi thiết bị phải quay vòng đế xem thiết bị nào đã có số liệu sẵn sàng vào bộ vi xử

lý Phương pháp này gọi là hỏi vòng (POLLING) Trên hình 6.16 là lưu đồ của chương

trình con hỏi vòng cho hệ trên hình 6.17, gồm 8 thiết bị vào àm các cờ số liệu của chúng

được tổ hợp trong một byte trạng thái

Trên hỉnh 6 19 là chương trình con kiểm soát cờ trạng thái của mỗi thiết bị và rẽ

nhánh đến chương trình phục vụ riêng mà nð thiết lập cờ Đồng thời nõ cũng thiết lập ưu

tiên trong 8 thiết bị vào bằng cách thử tuần tự các bit yêu cầu phục vụ trong đó thiết bị

vào thứ 7 được ưu tiên nhất Các phương trình phục vụ bảo vệ nội dung thanh chứa A rồi

nhận số liệu vào và ghi va ô nhớ hay xử lý ngay nớ Trước khi ra khỏi chương trình này,

phải khôi phục lại A ‘

D6i với các thiết bị Ta, cờ sẵn sàng của chúng chỉ rằng thiết bị có thể: nhận số liệu

Thiết bị ra đòi hỏi một thời gian để xử lý số liệu vừa nhận được, trước khi nó sẵn sàng

Trang 15

Các cửa vào/ra vỉ điện tử cỡ lớn (LSI) bao gồm các chốt, bộ đệm và các cờ

Một mạch có thể gồm nhiều cửa, các chế độ làm việc của từng cửa được xác định bởi

chương trình

Các mạch cửa có định trình được chế tạo trong 2 thể loại,

a Là một phần của mạch đa năng |

b Là mạch nối ghép cố chức năng như cửa vào/ra

PIN: IN STATUS : Nhận byte trạng thái

ORAA : Lập các cờ -JPPIN: , -_ Xét bit trạng thái (bit 7), nếu số liệu chưa có thì chờ

IND ATA : - 8ố liệu sẵn sàng nhận số liệu xoá cờ trạng thái MOV M, A: Chuyển số liệu tới bộ nhớ đệm

“16

Trang 16

Rẽ nhánh đến PIN nếu còn nhận tiếp số liệu

Hình 6.1b Chướng trình con đồng bộ trao đối số "ho hệ trên hình 6.16

Nhận byte trang thai

Chuyén byte trang thai (bit 7) sang bit cờ tràn `

Gọi chương trình phục vụ nếu số liệu đã sẵn sàng

Gọi chương trình phục vụ cửa vào 6

Bít trạng thái ð sang cờ tràn

Gọi chương trình phục vụ nếu số liệu sẵn sàng

Bit trạng thái 4 sang cờ tràn - Gọi chương trình phục vụ nếu số liệu sẵn sàng ˆ

Bit trạng thái 3 sang cờ tràn Gọi chương trình phực vụ nếu số liệu sẵn sàng ' Gọi chương trình phục vụ nếu số liệu sẵn sàng ¬

Bit trang thai 1 sang cờ tràn Gọi chương trình nhận số liệu nếu nó đã sẵn sàng Bit trang thái 0 sang cờ tràn “ Ề Gọi chương trình phục vụ nếu số liệu sẵn sàng

Hinh 6.19 : Chương trình con hỏi vòng, cho hiu đồ trên hình 6 16

: Các cửa vào/ra theo chương trình trong các mach da nang’

Vi du cho trường hợp này là mach 8155 cia INTEL Mach vi dién tử cỡ lớn này bao

gồm 256 x 8 ngăn nhớ đọc%viết, 3 cửa vào/ra theo chương trình, 1 bộ đệm 14 bịt Xem

hình 6.20 mạch này thích nghỉ trực tiếp với 8085A như thể hiện trên hình 3.5.1 Mach 8155

có một thanh ghi chốt để tách kênh phần thấp của các byte địa chỉ (A0 - A7) đối với bus

địa chỉ số liệu (ADO0 - AD?) Giá trị lôgic của đầu vào IO/M xác định địa chỉ cho bộ nhớ

hoặc vào/ra Địa chỉ và giá trị IO/M được chốt ở 8155 bởi sườn xuống tín hiéu ALE Tín

' ` hiệu mở mạch được kích từ phần cao byte địa chỉ Khi qui chiếu bộ nhớ O/M = 0) phần

thấp của byte địa chỉ được chốt để chọn 1 trong 256 ngăn nhớ đọc/viết ˆ

Trang 17

8155 od 6 logi thanh ghi duge địa chỉ hoá: như vào/ra Dé là thanh ghỉ trạng tháilệnh (CSS, 3 cửa A, B, C và các byte cao và thấp của bộ tạo thời gian (TIMER) Thanh ghi

lénh/trang thai <C/S> có 2 mục dích :

1, Chứa chức năng của các cửa vàojra khi nó được nạp bằng lệnh v viết vào/ra

2 Cung cấp thong tin trang thai các cửa và TIMER khi nó được đọc bằng lệnh đọc, vao/ra

Thực chất nó là 2 thanh ghỉ có cùng địa › chỉ vào/ra chúng được phân biệt với nhau bởi `

phép đọc hoặc viết Chức năng của từng bit xem hình 6.21

Lingat eu: “alte chophep |

5 00-4 - NOP - -b3 azn

sp Lạnh cua TIMER | “Kang lam việc -

04 = STOPS 4wñg4êm

“40% STORR AFIERTS - Aung: BEI khi-co! Te

14.2 START hap: dang thité wa AG dade

(3 Kher dong h4ay oan khi nap (nea Timer krỹI: vide)

Ney TIME R dang ]4 việc Thí công việc trển ae thiện gay

Sau khi gape TC

Froese we

APT ADG ‘ADS AD4AD3 AD2 ÀD4: ADo_

INTE | B [INTR INTE | A PINTR

| „ c+4Ayếu, can ngat

——————”*- cưa Ai cho phep ngat

—> cua EB v&a ‘cau ngất

— Cera R Ady /rbhg (Ae/ra)

VA lập mite thap khi Faces

ta ¥ nghia các bit lệnh " “hoặc khởi Äina bat cutis)

Trang 18

Các ctia A.va B (PA và PB) có 8 bit và được sử dụng như cửa vào hoặc cửa ra

Các bit 0 và 1 của byte lệnh xác định hướng của các cửa Nếu cửa của 8155 được lập

hướng vào bởi chương trình, thÌ nội dung chúng được đọc bằng phép đọc Hạn chế ở đây là

- phải gửi nội dung của cửa vào ngăn nhớ Như đã đề cập phần trước, khi một chốt được

dùng như cửa ra để cung cấp các xung điều khiển độc lậ; Cửa C có 6 bit, cố thể sử dụng

như cửa vào (ALTI) hoặc cửa ra (ALT2) hoặc dùng các tín hiệu đối 'thoại cho các cửa A và _ _B (ALT8 và ALT4) (xem hình 6.22) xa

Chức năng cửa C được xác định bởi các bit 2 và 3 của byte lệnh Bit 4 đến bit 6 tác

động các tín hiệu ngắt và TIMER (xem chương VỊI) Khi khởi động cả cửa 3 A, B,.C của

8155 déu ở chế độ vào Các địa chỉ của thanh ghi lệnh/trạng thái, các cửa và bộ thời gian

° TIMER HIGH xxxxx101

Tín hiệu mở mạch được kích từ byte cao của địa chỉ khi qui chiếu vào/ra 8085A lặp

lại địa chỉ cửa ở AD0 AD7 trên A8 - A15 Các ngăn nhớ và cửa vào/ra của 8155 cd cing

đầu vào mở mạch, làm hạn chế tổng số bit ở byte cao địa chi tham gia gidi ma chon 8155

Nơi cách khác, địa chỉ 8 bit được lặp lại như byte địa chỉ cao và byte địa chỉ thấp, ba bit

- thấp nhất dành cho địa chỉ thanh ghỉ vào/ram ð bít còn lại dành cho giải mã chọn mạch

Vi dụ: Nếu địa chỉ được giả mã để chọn 81ðð là A1ð - A8 = 01000xxx, thì địa chỉ của

thanh ghi C/5 là 40H

Hãy xem một phương án mắc sau đây của 8155 cửa A là vào, cửa B ra chọn ALT4 cho

cửa C ( Cửa C làm tín hiệu đối thoại cho A và B Xem hình 6.22) không sử dụng khả năng

ngắt và bộ tạo thời gian

PC1 _ cửa vào Cửa ra ABF (bộ đệm cửa A đầy) | ABF (bộ đệm cửa A đầy)

PC3 cửa vào Cửa ra Cửa ra - BINTR (cửa B ngắt)

PCA cửa vào Cửa ra Của ra BBF (Bộ đệm cửa B dày)

PC5 cửavào |- Cửa ra ˆ — Cửa ra BSTB (chốt cửa B)

Hình 6.22

19

Trang 19

Byte lénh x&c dinh chtic nang cdc ctfa cla 8155 sé 1a:

8155 được khởi động bởi 2 lệnh sau:

MVI A, OAH: Nap từ lệnh vào Á

- OUT 40H: Gửi ra thanh ghi C/S , Khi cửa có chế" độ vào ở ALT4 (VÍ dụ cửa A trong trường hợp trên), thiết bị vào ni

số liệu đến các chấn PAO - PA7 cua 8Ì5ð rồi sinh ra xung chốt với mức tính cực thấp PC,"

hinh 6.23 Nhu vay, s6 liéu da dude nap vao ctla A va co "đầy bộ đệm cửa A (ABF)" được;

lập (Lập bit 1 của thanh ghi trạng thái) Điều khiển "đầy bộ đệm" được kiểm tra khi dog thanh ghi C/S véi lénh IN 40H va xét bit 1 ~ : #

Nếu bộ đệm đầy, số liệu từ cửa A được gửi vào thanh chứa của 808ðA bởi lệnh IN

41H xung đọc được sinh ra từ lệnh TÑ 41H và xoá tính hiệu BF của cửa A

=

ra xung chốt, cờ BF được lập Bộ xử lý thực hiện lệnh để kiểm tra cờ BF, nếu cờ đỡ được © lập thì thực hiện lệnh IN để đọc số liệu từ vào Xung RD trong chu kỳ máy vào của: lệnh

IN xoá cờ BF, néu xung chốt từ thiết bị vào vẫn ở mức thấp, cờ BF lại được lập và bộ vỉ

ay

xử lý đọc lại lần nữa số liệu từ cửa vào Như vậy, đáng lẽ phần mềm là vòng kín để đọc -

10 byte số liệu từ cửa vào thì đọc cùng một số liệu 10 lần

Vấn đề này có thể khác phục bởi thiết kế mạch lôgic có giới hạn độ dài xung chốt từ / thiết bị vào Giải pháp đơn giản nhất là kiểm tra cờ INTR, khong thử cờ BF cờ INTR

được lập chỉ khi STROBE trở về mức lôgic 1

Các tín hiệu điều khiển cũng làm nhiệm vụ đối thoại cho cửa ra Trong ví dụ trên, khi

cửa B làm cửa ra các bit PC8 - PVõð làm nhiệm vụ đối thoại Ó chế độ ra nội dung thanh chứa của bộ vi xử lý 808ðA được gửi đến B của 8155 bởi lệnh QUT Xung,chốt xuất hiện

khi thực hiện lệnh OÚT, làm cho BBEF (PC4) có mức lôgic 1 Xem hình 6.24 thiết bị ra

"kiểm soát BBF để xác định thời điểm: số liệu ra ổn định Khi đã sẵn sàng nhận số liệu, thiết bị ra ổn định Khi đã sẵn sàng nhận số liệu, thiết bị ra gửi xung chốt tới PCB và xoá

Trang 20

6 Mạch nối ghép thiết bị ngoại vỉ

Mạch nối ghép thiết bị ngoại vi theo chương trỉnh (PPD 8255A gồm nhiều cửa vào/ra

theo chương trình Nở được sử dụng với bộ vi xử lý 8085A và một số loại khác Bên trong

8255A có thanh ghi điều khiển, thanh ghi trạng thái, 3 cửa vào/ra 8 bit A, B và C, xem

hình 6.25 C cd thé chia lam 2 nhdém độc lập bằng chương trình: Nửa cao (C, - C;) và nửa

thấp (Cy - C,)

Az A, lÉ “Ip, oty — hho PA7-PAo

Pes ns Ho Cr Ile „ Da" : _ — ` —Ic8) INhẹc

- Bus siiê 2ch4 ¬ & bit A

PBs P8, Cun ‘ ‘ ` hhom PB 7 PR

Vee +E vou —

Hình 6.25 Sơ đồ khối của mạch nối ghép ngoại vỉ theo chương trình 8255A

Bộ đệm bus số liệu trao đổi số liệu giữa bus số liệu ngoài với thanh ghi điều khiển,

thanh ghi trạng thái, hoặc với một trong các vao/ra

21

Trang 21

Aa dùng để chọn thanh ghỉ điều khiển, thanh ghi trạng thái hoặc cửa Nếu dùng 6 bít địa -

chỉ để giải mã, thì trong hệ có khả năng sử tụng đến 64 mạch 82B5A Đối với vào/ra tách : biệt, điều kiện nữa để chọn 82BEA là I10/ M =

Nếu dùng phương pháp chọn tuyến tính, có khả năng sử dung 6 6 mach 8255A ma khéng cần bộ giải mã Các bit địa chỉ chọn mạch và chọn cửa được thể hiện nhử sau:

Ais Aig A13 A12 An Aio Ag Ag

UƯOW nối với đầu vào WE của 8255A

Nếu dùng phương pháp chọn vào/ ra theo địa chỉ bộ nhớ, MERM được nối với đầu vào

RD của 8255A và MEMW nối với đầu vào WR Cac bit dia chi A¿ - A¡s được đưa vào bộ giải mã để tạo xung chọn mạch S

Trong tất cả phương pháp trên, khi 8255A được chọn, các đầu vào Au và A,, ding để chọn thanh ghi điều, khiển hoặc 1 trong các cửa (A, B hoặc C) để trao đổi số liệu (xem bảng 6.26)

Bảng 6.26 Các thao tác cơ bản 8255A

Bang 6.26 Thao tác vào (đọc)

0 0 0 1 0 Cửa A = bus số liệu

1 0 0 1 0 Cita C = bus sé liéu

Bang 6.26 Thao tdc ra (viét)

0 0, 1 0 0 Bus số liệu >cita A

0 1 1 -0 0 Bus số liệu > cửa A

1 1 1 0 0 Bus số liệu > cittaA

22

Trang 22

x x x x 1 bus số liệu => trạng thái thứ 3

0 1 0 1 0 Diều kiện không chấp nhận

1 0 0 1 0 Bus số liệu > trạng thái thứ 3

Khi khởi động hệ, tín hiệu khởi động làm 82ððA thả nổi tất cả 24 chân liên quan với

ö cửa vào/ra Trạng thái này kéo dài đến khi chương trình ứng dụng viết từ điều khiển

vào thanh ghi điều khiển để xác định chế độ làm việc của 82ð5A Ba chế độ cơ bản của

1 Chế độ 0: Vàoj/ra thông thường

2 Chế độ 1: Chốt vào/ ra

3 Chế độ 2: Bus 2 chiều 2

Từ điều khiển của các chế độ được định nghĩa trên hình: 6.27 từ điều khiển định nghĩa

chế độ 8255A Chế độ 0 xác lập 2 cửa 8 bít (A và B) và 2 cửa 4 bit (C cao và C thấp)

Bất kỳ cửa nào cũng có thể là vào hoặc ra Chỉ các cửa vào có chốt Như vậy, èớ 16 khả

năng vào/ra trong chế độ này Ví dụ, từ điều khiển 8AH lập cửa A ra, cửa C cao vào, cửa

C thấp ra và cửa B vào

Nếu dùng phương pháp vào/ra tách biệt và 8255A được chọn khi A, dén A, = 0 thi

chương trình khởi động 82ð5A như sau:

MVI A, 8AH: Nạp từ điều khiển vào À

OUT 08H: Ghi từ điều khiển vào thanh ghi điều khiển của 8255A

Chế độ l xác lập 2 cửa 8 bit A và B, nhưng cả hai cửa vào và ra đều là chốt, 2 cửa

4 bít (C) làm nhiệm vụ đối thoại cho các cửa A, B (Hình 6.28) là vào/ra ở chế độ 1 và các

từ điều khiển của chúng Đối với cửa vào ở chế độ 1, cửa A là vào, các bit C,, C, va C,

làm nhiệm vụ đối thoại Cửa B là vào và có các bit Cạ, C¡ và C, làm nhiệm vụ đối thoại

Con 2 bit C, va C, cd thể làm cửa ra hoặc vào Thiết bị vào gửi 8 bit số liệu đến Ay - Ay

(hoặc Bạ - B;) rồi phát sinh xung chốt (STB) với mức tính cực thấp để nạp số liệu vào

chốt vào Như vậy, làm tín hiệu đầy bộ đệm vào (IBF) cố mức lôgic 1 Bộ vi xử ly đọc cửa

C và kiểm tra tín hiệu IBF để xác định xem số liệu đã sẵn sàng chưa

Từ trạng thái của chế độ 1 được miêu tả trên hình 6.29

Nếu IBF có mức lôgic 1, bộ vi xử lý đọc số liệu trên cửa A (hoặc B) và xoá cờ IBF

Đối với thao tác ra của chế độ 1, bộ vỉ xử lý ghỉ số liệu ra cửa A (hoặc B), làm cờ "bộ

đệm ra đầy" (OBF) cớ mức lôgic 0 Thiết bị ra kiểm tra OBF để xác định xem số liệu đã

_sẵn sàng chưa Nếu đã tiếp nhận số liệu, thiết bị ra trả lợi bởi mức thấp trên đầu vào

ACK, dong thời xoá cờ "đầy bộ đệm ra" OBF Chế độ 2 cho 1 bus 2 chiều 8 bít là cửa A,

ð bit của cửa C được dùng làm chỉ thị trạng thái và điều khiển cửa A, tạo khả năng đối

thoại như trong chế độ 1 :

23

Trang 23

uf, VIS Sor eg kề về <s vy roses] [sv d fox [R &

+øt điểu khiển: MODE1(CcW2A) - tổ điên khuyên MODE1CcWAA) |

|1 XIxxIXI1]1 | VTE Pak _— STRBI XIXIM|e ) ]Ä -|1Ƒ—> 98F8

b- PCale—— | BFS ` 1 Pezie—— ACKB

Trang 24

chê đô vÃo

Hình 6.29 Từ trạng thái MOD 1 của 8255

Trên hình 6.30 là mạch 8255A trong chế độ 2 và từ điều khiển của nớ Từ trạng thái

- được miêu tả trong hình 6.31 ,

Đối với cửa C, có khả năng lập và xoá từng bit (bit SET/RESET) Nếu bit 7 của từ

điều khiển là 0,:82BðA Sẽ hiểu là lệnh lập/xoá bít cửa C cớ nghĩ có khả năng lập hoặc xoá

bat ky bít nào của cửa C Từ điều khiển của lập/xoá bít được miêu tả Trong hình 6.32

khả năng xoá và lập trực tiếp từng bít là rất thuận tiện cho ứng dụng, khi các bit riêng

rẽ dùng để điều khiển tách biệt các chức năng bên ngoài

Trang 25

Hình 6.32 Từ điều khiến lập/xoá bít của 8255A

7 Trao đổi thông tin nối tiếp:

Bus số liệu của bộ vi xử lý được thiết kế để trao đổi song song các thông tin đến hoặc

từ các mạch vào/ra Tất cả các bit của byte đều được trao đổi đồng thời Phần này giới thiệu trường hợp trao đổi số liệu nối tiếp Mỗi bit mỗi lần

Số liệu trao đổi nối tiếp thường được gửi đi theo các nhớm bit mà nó tạo thành ký tự

hoặc từ Thông thường các ký tự được thể hiện bởi mã ASCII Trao đổi nối tiếp chỉ cần một dây tín hiệu hoặc kênh liên lạc và nó được sử dụng khi:

1 Thiết bị vào/ra cần trao đổi số liệu vốn đã là vào/ra nối tiếp

9 Khoảng cách giữ bộ vi xử lý là thiết bị vào ra tương đối lớn

Nhiều thiết bị vào/ra như tetetype, băng từ cassette bát buộc thiết kế phải thu và phát

"số liệu mỗi bit một lần, cho nên việc trao đổi số liệu nối tiếp với bộ vì xử lý là thuận tiện hơn cả

Nếu khoảng cách giữa bộ vi xử lý và thiết bị vào ra lớn lên thì gid ca tang lên theo tổng _ số dây dẫn số liệu Giá của hệ không chỉ phụ thuộc vào giá của dây dẫn vi giá của bộ

khuyếch đại dây dẫn và bộ thu cũng đáng kể Khi đó sử dụng phương pháp trao đổi số liệu nối tiếp là kinh tế hơn, mặc dù nó cần thêm nhiều mạch và phần mềm hơn so với việc sử dụng trao đổi bằng cáp Trong một số ứng dụng khác, khoảng cách lớn đến nỗi cần có phương tiện trao đổi số liêu như dây điện thoại thì số liệu phải được trao đổi nối tiếp Nói chung,-eền có mạch nối tiếp (xem hình 6.33) mạch nối ghép có 2 chức năng

~ 1, Tạo dạng lôgïc số liệu, gồm bộ chuyển nối tiếp song song và song song nối tiếp

9 Biến đổi các tín hiệu lôgic thành các tín hiệu điện thích hợp cho trao đổi số liệu trên ' kênh liên lạc nối giữa bộ vi xử lý và thiết bị vào/ra

26

Trang 26

logic TTL Bién đổi tín hiệu được thực hiện bằng phần cứng Tuy vậy, viée tao dang légic

số liệu có thể thực hiện bởi phần mềm, phần cứng hoặc tổ hợp cả 2 phương pháp

Hệ thống trao đổi số liệu nối tiếp gồm có các dạng đơn công, bán song công, số liệu

chỉ được gửi đi theo một hướng Ö hệ thống bán song công, số liệu được gửi đi theo 2

hướng, nhưng mỗi lẫn chỉ thực hiện truyền nối theo 1 hướng Ò hệ thống sóng 5 sông, số

liệu được trao đổi theo 2 hướng đồng thời

_ Trên hình 6.34 là vị trí trao đổi số liệu nối tiếp đơn gián Bộ vi xử lý gửi số liệu tới

“thanh ghi dịch của thiết bị vào/ra Kênh liên lạc là đôi dây xoắn Tạo dạng số liệu được

"thực hiện bởi chương trình Số liệu vào thanh ghi địch từ bus DO của bus số liệu, đầu vào

xung đồng hồ của thanh ghi dịch được kích từ bộ lôgic sinh ra xung chọn thiết bị ra, Byte

số liệu để truyền đi ở trong A (thanh chứa)

Hình 6.34 Truyền số liệu nối tiếp đến thanh phi dịch

Xung chọn ra kích thanh ghi dịch

Chương trỉnh con sau đây thực hiện tao dáng số liệu và gửi số liệu, bít thấp nhất được

gửi đi trước

S08 : MVI CG, 8 LOOP: OUT SR

RAR DGRC JNZ LOOP RET

Vi du: Trên là trường hợp điển hình của trao đổi số liệu nối tiếp

27

Trang 27

Phần thu có một số mạch làm nhiệm vụ xác định khi nào số liệu vào sẽ được trích

.mẫu, có nghĩa xác định thời điểm xuất hiện bit số liệu mới

Trong ví dụ trên xung nhịp từ phía phát thông báo cho thiết bị nhận thời điểm cho

phép trích mẫu số liệu vào, như vậy nó đồng bộ quá trình trao đổi số liệu Nếu gửi xung

nhịp riêng biệt từ phía phát tới phía thu để đồng bộ hoá, cần phải nối thêm dây giữa các

thiết bị Kỹ thuật trao đổi số liệu nối tiếp mà không cần them dây để truyền xung nhịp

từ bộ phát tới bộ thu sẽ được đề cập tới trong phần sau:

Nhịp truyền (BAUDRATTE) là nhịp truyền số liệu Nó xác định tổng số sự thay đổi của

tín hiệu trong một giây Nếu tín hiệu truyền đi là nhị phân thì nhịp truyền tương ứng với

tổng số bit truyền trong một giây Các kênh thông tin được đánh giá bởi nhịp truyền Nếu:

số liệu được truyền với tốc độ ngoài khả năng của kênh, sẽ xảy ra lỗi, bên thu không nhận

đúng thông tin

Truyền số liệu nối tiếp có thể là đồng bộ hoặc dị bộ Trong truyền dị bộ, ký tự được

truyền đi khi cá khả năng truyền, khoảng thời gian truyền giữa 2 ký tự khác nhau, nhưng

khoảng thời gian giữa các bit trong một ký tự là cố định, khi không truyền ký tự đi, đường

dây nghỉ Với truyền đồng bộ,, ký tự sau được truyền tiếp theo lần ký tự trước Nếu không

cớ số liệu sẵn sàng truyền, thì ký tự đặc biệt SYNC được truyền đi liên lạc cho đến khỉ

truyền tiếp số liệu sau:

a Truyền số liệu nối tiếp không đồng bộ

Truyền số liệu không đồng bộ được sử dụng cho yêu cầu truyền với tốc độ thấp, nhịp

truyền thấp Tốc độ truyền thông thường do các nhà máy chế tạo thiết bị liên lạc định sẵn

Ví dụ: Truyền số liệu giữa máy in và bộ vi xử lý có thể là không đồng bộ Các loại

Teletype 33 và Tettype 35 phát và nhận số liệu với đốc độ 110 baud hay 110 bit/giay: Đối

với nhịp truyền này, thời gian mỗi bit là 9.09ms Số liệu được truyền đi theo nhóm các bit

nối tiếp tạo thành ký tự Ký tự được biểu diễn trong mã ASCII 7 bít, hoặc mã 7 mức, nó

được truyền đi theo dạng trong hình: 6.85

Bộ phát và thu trong trao đổi thông tin không đồng bộ là không đồng bộ với thời gian

mà ký tự được truyền đi Khi bộ phát bát đầu gửi thông tin, bộ thu tự đồng bộ với thời gian

của từng bit ký tự mà nơ trích mẫu ở thời điểm thích hợp

LSB - bít thấp nhất

MSB - Bit cao nhất - ;

Hình 6.35 Thứ tự các bit trong trao đổi thông tin nổi tiếp không đồng bộ

Trang 28

z

Bít khởi động (bit START) đồng bộ phía phát với phía thu Đớ là bit đầu tiên của ký

tự được truyền đi và có mức lôgic 1, dây dẫn số liệu nghỉ ở mức cao (MARKING) Phía

thu đồng bộ với phía phát khi có biến đổi logic từ 1 xuống 0.trên dây dẫn Nó chờ một

nửa thời gian bit, kiểm soát đầu vào để chác chắn có mức lôgỉc, có nghĩa bit Start có hiệu

lực và bát đầu cát mẫu số liệu sau khoảng thời gian 1 bit Nhịp truyền của bộ phát và bộ

thu được lap cùng giá trị và số liệu được cắt mẫu ở chính giữ mỗi bit truyền Như vậy có

thể giới hạn được lỗi xẩy ra khi cát mẫu ở đầu mỗi bit Sau bit START, 7 bit s6 ligu của

kí tự ASCII được truyền, bit thấp nhất truyền trước Tiếp theo là bit chãn lé (PARITY)

Đối với PARITV chẵn (lẻ) cuối cùng 2 bit STOP được truyền di Bit START véi mức logic

0 và 2 bit STOP được truyền đi Bit START với mức lôgic 0 và 2 bit STOP với mitc légic

1 tạo thanh khung (PRAME) cho | ki tu ASCII :

Phía bộ xử lý, việc tạo dạng logic cho số liệu truyền nối tiếp có thể tực hiện phần

mềm, ví dụ lập thời gian trễ 9.09ms cho 1 bit và các đặc điểm khác cho truyền một ký tự

ASCII nhu đã miêu tả trên đây Phần cứng chỉ lầm nhiệm vụ nối ghép điện giữa bộ ví xử

lý với thiết bị ngoài, vÍ dụ Tbletype

Bất lợi của tạo dạng số liệu bằng chương trïnh là bộ vi xử lý phải thực hiện chương

trỉnh con thu phát ký tự Thời gian thực hiện chương trình dài khoảng 100ms nếu nhịp

truyền là 110baud Trong khoảng thời gian này, bộ vi xử lý có thể thực hiện 50 000 lệnh

với thời gian thực hiện lệnh 2m

Nếu việc biến đổi song song thành nối tiếp cho truyền và biến đổi nối tiếp song song

và tạo dạng số liệu đều dùng phần cứng, thì bộ vi xử lý sẽ được sử dụng hiệu quâ hơn

Nó gửi số liệu song song đến phần cứng bên ngoài có khả năng tạo dạng số liệu và biến

đổi song song thành nối tiếp Phần cứng này cũng có khả năng nhận số liệu nối tiếp, loại

bé bit PARITY và các thông tin PFRAME (bit START và 2 bit STOP) rồi biến đổi thành số

liệu song song cho bộ vi xử lý, ©

Bộ thu phát không đồng bộ vạn năng (NNIVERSAL ASYN CHRONOUS RECEIVER

TRANSMITER - UAR/T) là loại mạch động song công có 40 chân, cung cấp đầy đủ thông

tin để trao đổi số liệu không đồng bộ, cớ khả năng tạo dạng logic số liệu Các tín hiệu trên

các đầu vào/ra cứ mức TTL, đầu ra của phần thu là 3 trạng thái Phải cần một số mạch

để lấp nối ghép điện, nhưng không cần đồng hồ chung giữa VART và thiết bị nối với nớ

Các VART có khả năng làm việc với nhịp truyền 200baud (ví dụ các VART của hãng

TNTERSIL IM6402/6403) VART đã trở thành tiêu chuẩn công nghiệp, nhiều nhà máy đã

- sản xuất các mạch có chân thích ứng, thuận tiện cho việc nối ghép -

Thông thường bộ vi xử lý và thiết bị vào/ra nối song song với VART để lập liên lạc

nối tiếp (Xem hình 6.36: Một VART gồm 2 nửa thu và phát Chúng độc lập với nhau, trừ

phần tạo dáng của kỹ tự được phát đi hay thu vào tổng Tổng số bit số liệu truyền (từ ð

đến 8), loại PARITY (chãn, lẻ hoặc không sử dụng PARITY), tổng số bit STOP (1 hoặc 2)

cho cé hai nửa phát và thu được, nớ được xác định bởi động hồ ngoài 16 lần nhanh hơn ,

: nhịp truyền và được nối với 2 đầu vào đồng hồ riêng biệt của phần thu và phần phát

Hoạt động của VART trong hệ vi lý cơ bản rất đơn giản Để gửi số liệu đi, bộ vỉ xử lý

phát số liệu song song tới VART và xung chọn mạch tới đầu vào chốt số liệu (Dồ) Số liệu

được trạp vào VART và được phát nối tiếp Bộ VART có 2 lần đệm (xem hình 6.36a), cho

nên ký tự mới có thể được nạp ngay khi bát đầu truyền ký tự trước đó VART có đầu ra

29

Trang 29

"thanh ghỉ đệm truyén réng" (TBMT), chi rang thanh ghi gitta cdc bit số liệu của VART sẵn sàng nhận ký tự mới Bộ vi xử lý dùng đầu ra máy làm nhiệm vụ đối thoại Có thể truyền

gố liệu từ bộ vi xử lý tới VANT trong chế độ không điều kiện Với trường hợp này, bộ vi xử

lý gửi ký tự mà không ần hỏi trưởc khi sử dụng chế độ truyền của VART

Phía thu của VART (hình 3.36b) có đồng hồ nhanh gấp 16 lần nhịp truyền để giảm bớt

_ sai sót vi nhiễu khi thu Khi xác nhận mức lôgic thay đổi từ 1 xuống 0 ở đàu vào nối tiếp

_thì đầu vào sẽ được kiểm tra ở thời điểm sau một nửa thời gian của bit để đâm bảo có quá

trình biến đổi lôgic Việc thay đổi mức lôgic từ 1 xuống 0:

bus RIT

a4? ký

STROB cac Nà gu Cac Dune sỗ liệu DATA STROBE

an, ‘Pha : Th ” ra AT

BS hố 1 3ian ot SHIFT anh Jet dich ne Tiếp ~

c EZ lợi trang

sâu Vaio kK tra Rug Kr S0a Hie ¢ ~ ahh ghi dic

Trang 30

Sau một thời gian nghỉ được VART dùng để tự đồng bộ cho cả thời gian nhận 1 kỹ

tự Tiếp theo VART trích mẫu ở giữa mỗi bit vào để xác định giá trị của từng bỉ

Dau ra "cớ sẵn số liệu" (DAV) của nửa thu có mức lôgic 1 chi rằng ký tự đã nhận xong

và đầu ra song song cho ra ký tự vừa thu được Đồng thời báo các lỗi PARITY, FRAME

va OVERRUN Khi phan thu làm việc trong chế độ hỏi đáp, bộ vi xử lý kiểm soát cờ DAV,

nếu số liệu đã có thì bộ vi xử lý nhận nớ Lỗi OVERRUN xéy ra khi tir thứ 2 lại được

nhận trước từ thứ nhất ˆ

Bộ vi ử lý có khả năng đọc thông tin lỗi Vì các đầu ra số liệu song song và các đầu

báo lỗi song song với bus số liệu Các đầu vào cho phép thu (RDE), cho phép nhận lời trạng

thai (SWE) được điều khiển bởi xung chọn mạch cho các mục đích khác nhau Xung chốt

"xoá cờ có sẵn số liệu" EDAV) khởi động VART đồng thời chỉ rằng ký tự trước trong thanh

: ghi đệm ra đã được đọc trước khi nhận ký tự sau Xung chốt này được sinh ra bởi bộ vi

xử lý qua xung chọn mạch vào, nếu trao đổi trong chế độ hỏi đáp, hoặc bởi làm trễ xung

nhận ký tự bằng phần cứng bên: ngoài

Nếu thanh ghi chứa các bit điều khiển nối với bus số liệu, có thể doe nd bởi chương

trình VART lúc này làm việc như mạch nối ghép theo chương trình Khả năng chương trình:

hoá nữa là bộ phát xung nhịp cho thu và phát Bộ phát xung nhịp chỉ cần một thạch anh

Tần số thu phát được chọn từ bên ngoài với 16 khả năng Mã hệ hai của chúng được viết

trước vào 1 trong 2 chốt bit của bộ phát xung nhịp

b Trao đổi thông tin nối tiếp đồng bộ

_ Trong truyền ký tự đồng bộ, không cần gửi đi các bit không phái thông tỉn như START;

ATOP trong trao đổi số liệu không đồng bộ Vì vậy cho phép trao đổi số liệu nhanh hơn

Thông thường, nhịp truyền đạt tới 3800 và 9600baud Việc đồng bộ giữa bên thu và bên

phát thực hiện bởi một hoặc hai ký tự đồng bộ VÍ dụ : Nếu truyền thông tin ở mã ASCI

thì ký tự SYN được sử dụng làm ký tự đồng bộ

Trong thu phát đồng bộ, số liệu nhận được là một chuỗi hít liên tục không có ký tự

giới hạn Phía thu số liệu phải sơ sánh từng bit của dãy bit vào với ký tự đồng bộ SYN đã

được ghỉ trước để nhận biết ký tự đồng bộ Khi nhận biết ký tự đồng bộ, bộ thu coi mỗi

nhớm n bit như là một ký tự ngay cả khi phía phát không có số liệu sẵn sàng để gửi đi

Trong trường hợp này bên phát gửi mã SYN hoặc NVLL, như vậy khoảng cách giữa 2 ký

tự là cố định Đồng hồ của bộ thu và phát có cùng tần số và phải ổn định để duy trì đồng

bộ trong cả thời gian dài Thông thường hàng trăm + mang ký tự có thể gửi đi mà không

cần đồng bộ lại bộ thu

Trên thị trường có mạch nối tiếp ghép nối tiếp đồng bộ 2 chiều Chức năng của chúng

được điều khiển bởi chương trình VÍ dụ, mạch nối ghép liên lạc theo chương trình 82ð11`

của INTER làm cả hai chức năng nối ghép trao đổi thông tin song bộ và không đồng bộ

c Các chân vào(ra nối tiếp của bộ vì xử lý

Vài bộ phận vi xử lý cố một hoặc nhiều chân để vào số liệu nối tiếp Bộ vi xử lý 8085A

có một đầu vào số liệu nối tiếp (SID) và một đầu ra số liệu nối tiếp (SOD) Số liệu vào bộ

vi xử lý trên chân SID bởi lệnh RIM và ra chân SOD bởi lệnh SIM lệnh RIM đọc nội

dung số liệu vào SID đến bit 7 của thanh chứa, 6 bit còn lat của thanh chứa là thông tỉn

trạng thái của hệ thống ngắt của bộ vi xử lý

Trang 31

_ Lệnh SIM nạp nội dung bit 7 của thanh chứa vào chốt ra SOD, nếu bít 6 của thanh

chứa cớ lôgic.1 Nếu bit 6 cớ lôgic 0, chốt SOD không bị ảnh hưởng Khi khởi động 8085A, chốtxra SOD có mức lôgic 0 và các bít khác của thanh chứa làm mặt nạ che ngắt 808ãA Bàng chương trình điều khiển chân SOD, số liệu được đưa ra nối tiếp tới thiết bị ra Sau

đây là chương trỉnh con thực hiện trao đổi thông tỉn nối tiếp không đồng bộ bằng chân

“SOD của 8085A

Trong đó thanh ghỉ B chứa 7 bit ASCH va bit PARITY Bit PARITY la bit 7

SRLDO :MVICIOD ; Nạp bộ đếm

MVI A, SODO ; — Nạp bít 7 của A (ISOSD = Olxxxxxx)

LOOP ; CALLDELAY ; Trễ một bit MOVA, B ; Nap sé liéu va PARITY vao A STC ; Lập cờ tràn cho các bit STOP

RAR , - Đẩy bit để gửi vao CY’

ANI 80H ; Xoá nội dung A trừ A7

ORI SODO —; Hoặc để được phép phát

JNZ LOOP RET

d Cúc đặc tính điện k

Bởi vỉ khoảng cách vật lý giữa cửa vào/ra và thiết bị vào/ra kết hớp với nó càng lớn,

cho nên càng cần phải quan tâm đặc biệt đến các đặc tính điện của dây dẫn để làm giảm bit lỗi nhịp của số liệu thu được VÌ độ trễ của dây dẫn làm ảnh hưởng đến sườn lên và sườn xuống nên không nhận được tín Hiệu 3 điều kiện làm điện áp trên đầu cuối thu khác với đầu cuối phát làm số liệu thu được không đúng là:

1 Điện áp nhiễu cảm ứng vào đường dây qua điện dung ghép nối C và điện câm ghép

nối L, giữa đôi dây hoặc dây dẫn đi qua môi trường cớ thiết bị gây nhiễu điện như mô tơ

-2, Phía thu và phát không chung đất gây ra lệch điện áp đất

3 Trên dây dẫn có phản hồi điện áp truyền

Các cổng TTL chuẩn có khả năng kích dây dẫn với độ dài 0,6m Trong môi trường nhiễu điện, giới hạn nhiễu mức điện áp TTL cũng bị ảnh hưởng nghiêm trong

_ đ Các bộ khuyếch đại đường dây và bộ thu

Các mạch khuyếch đại đường dây dùng để chuyển các mức điện áp TL sang các tín hiệu đủ kích các dây dẫn thông tin Các mạch nhận thông tin từ dây chuyển các mức tín 32

Trang 32

hiệu này thành các mic TTL Cé 3 doai khuyếch đại đường dây và nhận thông tin từ dây

dẫn là: đầu cuối đơn giản, không đổi xứng và đối xứng ⁄

Mạch đầu cuối đơn giản không dùng 1 dây tín hiệu và đất và chung để truyền tín hiệu

Vy Thuan lợi cho phương pháp này, là chỉ cần một dây dẫn cho một kênh số liệu, nhưng

tín hiệu có thể bị suy giảm bởi điện áp nhiễu Vị cảm ứng, từ dây dẫn gần nhau hoặc

nhiễu của các động cơ Đớ là điện áp giữa đất và phần thu sinh ra do có trở kháng nhất

định giữa khuyếch đại đường dây và đất bên thu Dòng tín hiệu ngược và các dòng khác

của hệ gây ra điện áp suy giảm VÀ, nớ đi qua trở kháng giữa hai điểm đất Điện áp phía

thu s6 14 Vp = Vy + Vy + Vg bén thu khong thé phân biệt giá trị đúng của V0

Phương pháp đối xứng sử dụng khuyếch đại vi sai và bộ thu vi sai Bộ khuyếch đại

phát sinh giá trị lôgic trên một đầu ra, còn giá trị bù của nó được phát sinh trên đầu ra

khác Phần thu chuyển tín hiệu vỉ sai sang mức TL trên đầu ra củả nó

.Bộ khuyếch đại đường dây và bộ thu nối với nhau bởi đôi dây xoẩn để loại trừ dòng

cảm ứng điện từ Nhiễu đường dây ảnh hưởng của đôi dây và đến cả 2 đầu vào của bộ thu

vi sai Điện áp nhiễu xuất hiện trên bai đầu vào như trên gọi là COMMON MODE SIGNAL

Hiệu điện thế ` t cũng xuất hiện trên phần thu như vậy Điện áp trên đầu + của bộ thu

vỉ sai là Vụ + Vg trên đầu - là + Vụ + V Hiệu điện áp giữa đầu + và đầu - là

điện áp vui Pha ‘thu chuyển sang mức TTL trên đầu ra

Trong phương pháp không đối xứng, đầu vào - của khuyếch đại vi sai nối với đất, làm

giảm một day dẫn Tuy nhiền khả năng truyền bị giảm vì cảm ứng điểm nối tăng lên do

e Phối hợp trỏ kháng

Các đường truyền thông tỉn được kết thúc không thích hợp là nguyên nhân gây lỗi do _

phân xạ của các tín hiệu truyền Khi thời gian tồn tại của bit số liệu dài hơn độ trễ truyền

đạt của dây dẫn, ảnh hưởng của phản xạ Số giảm dần sau thời gian ngắn Còn khi thời

gian tồn tại của bit số liệu ngắn hơn thời gian truyền đạt, day dẫn cần cớ trở kháng phối

hợp

Trở kháng đặc trưng của dây dẫn RO là hàm số của hình dáng và cỡ dây Giá trị thông

thường từ B0 đến 200 Để ngăn ngừa phản xạ, cuối dây dẫn phải mắc điện trở bằng trở

kháng đặc trưng Phần thu có trở kháng vào cao, vậy phải mắc thêm trở kháng để có khả

năng phối hợp trở kháng _

g Các tiêu chuẩn ghép nối

Các mạch vào/ra có trên thị trường, đặc biệt các mạch trao đổi số liệu, thường được

thiết kế theo một hoặc nhiều tiêu chuẩn ghép nối Các tiêu chuẩn ấy chỉ rõ đặc tính điện

và phương thức trao đổi số liệu giữa các thiết bị Một trong các tiêu chuẩn được sử dụng

là RS 232C Mạch nối ghép điện thường là đơn giản, kết thúc đơn giản hoặc không có kết

thúc Độ dài dây dẫn cự đại lõm, tốc độ trao đổi cực đại 20Kbaud, mức lôgic 1 từ 3 đến

Các tiêu chuẩn mới cho phép độ dài dây dẫn lớn hơn và nhịp truyền cao hơn Tiêu

chuẩn RS422 cho đặc tính điện với phương pháp nối ghép đối xứng Tiêu chuẩn này cho

_33 “14%

Trang 33

ANSIIEEE STD.488 là tiêu chuẩn nối ghép trong các thiết bị điện tử với nhau Nó

cho phép nối lỗ thiết bị Với tổng số độ dài dây dẫn là 20m Nếu nối ít thiết bị thì chiều | đài dây dẫn tối đa là 2m cho mỗi thiết bị Bus số liệu 8 bit và các tín hiệu điều khiển tạo

ra khả năng đối thoại Tốc độ trao đổi là 250KByte/s Thủ tục của tiêu chuẩn cho phép nổi các thiết bị với bus để thực hiện chức năng như bộ chấp hành, cHÍ thu nhận số liệu

Hoặc nó chỉ thực hiện như bộ ra lệnh, chỉ phát số liệu Hoặc nd như bộ điều khiển chỉ

- quần lý chức năng trên bus Nhiều máy do được thiết kế theo tiêu chuẩn ghép nối này, do

đó đễ hình thành các hệ thống tự kiểm tra Khi máy đo được nối vào bus thì bộ vi xử ri hoặc một máy tính nhỏ cớ thể đảm nhiệm chức năng diều khiển

Trang 34

CHU ONG VI

1 NGẮT :

Nhứng hệ vi xử lý phục vụ đơn vị ngoại vỉ theo nguyên tắc hỏi vòng thường bị hạn

chế về hiệu suất do đơn vị trung tâm phải bỏ ra một phần thời gian đáng kể để hỏi, lần

lượt theo một trật tự nhất định, trạng thái của từng đơn vị vào/ra Để tăng hiệu suất đồng

thời để giảm mức độ phức tạp của phần niềm, người ta đã tạo thêm tính năng ngắt cho

hệ vi xử lý, Neat giúp trung tâm loại trừ hoàn toàn công việc hỏi vòng và đơn vị ngoại vỉ

chỉ gửi yêu cầu phục vụ Trong trường hợp này là yêu cầu ngắt về trung tâm khi cần thiết

Hình 7.1 Tạo ngắt cho vi xử lý từ một đơn vị vào /ra qua cờ yêu cầu ngắt

Sơ đồ trình bày ở hình 7.1 cho phép một đơn vị vào/ra ngắt đơn vị vỉ xử lý Mạch lật

dùng để nhớ yêu cầu ngất của đơn vị vào/ra cho đến khi bộ vỉ xử lý ghi nhận Mỗi lần có

yêu cầu ngất, đơn vị vi xử lý kết thúc lệnh đang thực hiện của chương trình bị ngất và

ghỉ nhận yêu cầu ngất, sau đơ chuyển điều khiển đến chương trình con phục vụ ngắt (xem

hình 7.2)

thudngtrinh

chinhn-4 Nt N#2

Chưởng trình coh phucvy

Hinh 7.2 Qua trinh điều khiển khi trả lời yêu cầu ngắt

_ Ngoài cách dùng tín hiệu trực tiếp ŒNIA) từ bộ vi xử lý (như ở hình 7.1), người ta

còn- ghi nhận ngắt bằng cách dùng xung chọn chíp được tạo tróng chương trình con ngắt

để xoá mạch lật yêu cầu ngắt Để tiếp tục chính xác chương trình chính sau khi đã phục

vụ ngắt, nội dung thanh đếm chương trình được bộ vi xử lý cất giữ, trước khi chuyển điều -

khiển đến chương trình con phục vụ ngắt Chương trình này phải cất giữ nội dung những

thanh ghi còn lại của bộ vi xử lý nếu sẽ dùng đến chúng trong quá trình xử lý ngất Nội

dung thanh đếm chương trình, thanh chứa, thanh ghỉ cờ và tất cả các thanh ghi đa năng

được gọi tát là trạng thái của bộ vi xử lý Có 2 loại đầu vào ngắt : Loại che được và loại

35

Trang 35

TTL không che được (xem hình 7.3) nếu đầu vào ngắt không che được có mức lôgic tích cực,

thì bộ vi xử lý bị ngát Nếu đầu ngắt che được có mức lôgic tích cực thì bộ vi xử lý chỉ bị

ngắt khi đầu ngắt đó không bị che Trong quá trình thực hiện chương trình có thể cấm 'hoặc cho phép mở những đầu ngắt che được Bộ vỉ xử lý không trả lời cho tất cả những, yêu cầu ngất tác động vào đầu ngất bị che

Đầu ngất không che được có thể chuyển thành đầu ngắt che được bằng một số- mạch

phụ bên ngoài theo như sơ đồ vẽ.ở hình 7.4 Mạch lật tạo che cho đầu ngắt và được nạp

lôgic 1 Nếu cần cho phép ngất hoặc lôgic 0 nếu cần ngất

ngất eS Vix) — ngất không — _ cheauge hgatche

Hình 7.4 Tạo ngắt che được từ ngắt không che được

Dưới đây là trình tự thực hiện công việc mỗi khi yêu cầu ngắt được ghi nhận

a Kết thúc lệnh đang thực hiện

b Thực hiện chu kỳ máy ngắt để cất giữ nội dung thanh đếm chương trình và chuyển điều khiển đến địa chỉ tương ứng

c Cất giữ trạng thái của bộ vỉ xử lý

d Nếu đồng thời nhiễu đơn vị vào/ra có cùng địa chỉ ngất yêu cầu phục vụ, thì bộ vi

xử lý ghỉ nhận yêu cầu của đơn vị có mức ưu tiên cao nhất

đ Thực hiện chương trình con ứng với đơn vị vào/ra yêu cầu ngắt

- e, Hồi phục trạng thái của bộ vi xử lý được cất giữ khi ghi nhận ngắt

g Chuyển điều khiển trở lại lệnh tiếp theo lệnh bị ngắt để tiếp tục chương trinh chính

ñ

Trang 36

ð Thời gian thực sự phục vụ ngắt; 6 Hồi phục trạng thái ,

7 Quay lại chương trình bị ngắt

Hình 7.5 Minh hoạ quá trình trên Khoảng thời gian tính từ thời điểm ngất đến lúc

bất đầu thực hiện chương trình con phục vụ ngất bao gồm các bước từ 1 đến 4 được gọi

là thời gian trả lời Tỷ lệ giữa toàn bộ thời gian từ bước 1 đến bước 7 và thời gian thực

hiện chương trình ngắt (bước 5ð) được gọi là tổng phí Trong một hệ vi ¡ xử lý cấu trúc ngắt

có tổng phí càng thấp thì hiệu suất cho phép càng cao

2 Cấu trúc ngắt của bộ vỉ xử lý 8085 :

Bộ vi xử ly 8085 cd 5 đầu vao ngdt : TRAP, RST7.5, RST6.5, RST5.5 và INTR Trong

đó TRAP là đầu vào không động 8085 Xung khởi động RESET xoá mạch lật cho phép

ngắt nội tại INTE, do đó tất cả ngắt che được đều bị ngắt che được có tác dụng, ngắt phải

được cho phép trong quá trình thực hiện chương trình

RST7.5, RST6.5, RSTð.ð được cho phép sau khi thực hiện hai bước chương trình sau :

1 Đặt mặt nạ ngất

2 Cho phép ngắt mỗi đầu ngắt có thể che một cách độc lập bảng lạnh đặt mặt nạ

SIM |

SIM (Set Interrupt Masks)

Trong quá trình thực hiện lệnh SIM, nội dung của thanh \ ghi tổng (A) được dùng để

đặt mặt nạ ngất : bit 0, 1, 2 đặt hoặc bỏ mặt nạ cho RST7.5; 6.5; 55 néu bit 3 - bit "cho

phép lật mặt nạ" bằng 1

Đặt bít mặt nạ = 1 có ý nghĩa là cấm đầu ngất tương ứng với bit đơ

Lập L Xóa

Mặt nạ RST 7.5

Mạch lật L ngất m nội tại của RST 7.5 được xoá, nếu bit 4 của thanh ghỉ tổng bằng 1, độc

lập với việc lập hoặc bỏ mặt na cho RST 7.5

Dưới tác động của tín hiệu khé dong RESETIN cua 8085 mat na được áp cho tất cÁ

› các đầu ngắt RŠT và tất cả ngất che được đều bị cấm

Lệnh SIM còn có thể dùng để gửi số liệu ra ngoài theo đầu ra nối tiếp SOD Bít 7

của thanh tổng được nạp vào chốt SOD nếu bit 6 bằng 1 Mạch chốt SOD giữ nguyên giá

37

Trang 38

' Tất cả các ngắt che được cũng đều bị cấm khi bộ vỉ xử lý thực hiện chu ky máy: ngất,

để tránh ghỉ nhận ngất tiếp theo cho đến khi lệnh, EI duge thyc hiện %

Đầu ngất INTR chỉ.bị cấm hoặc cho phép bởi- lệnh DI hoặc EI va không chị tắc động

-` của lệnh SIM Như vậy đối với bộ vi xử Tý 'B085 điều kiện ngắt có hiệu, Ive là : xố

Trong đó Min) la mat na cho RST(n) duge xAc định trong lệnh SIM Ae,

_ Hầu hết các đầu ngất của bộ vi xử lý đều nhạy với mức, tủy vậy có miột gối nhạy, với”

sườn hoặc nhạy với cả sườn lẫn mức 8085 có cả 3 loại đầu ngát, TRAP là đầu 'ngắt, vừa

nhạy với mức vừa nhạy với sườn Để ghi nhận yêu cầu ngắt, đầu vào TRAP phải được giữ

ở mức cao sau khi có một quá độ từ mức thấp lên cao (sườn lên) Sau khỉ được ghỉ nhận, -

_" mứe cao ở TRAP không còn hiệu lực nếu không trở lại từ đầu trìnE tự yêu cầu ngắt Đặc

điểm này cho phép 8086 loại trừ những yêu cầu ngất giả do nhiễm sinh ra, đặc biệt do -

_ nhiễm loại xung kim (glitch) RST 7.5 là đầu ngất nhạy với sườn: Yêu cầu ngất một quá

độ từ thấp lên cao, được ghi nhớ (nhờ mạch lật ngắt đành riêng cho RST7.ð nằm ở bên, ˆ

- trong bộ vi xử lý) cho đến khi nhận ngất hoặc do tín biệu khởi động RESETIN RST6.5

và RSTð.ð đều nhạy với mức Muốn yêu cầu ngắt được ghi nhận, tín hiệu ngất phải ở mức

cao cho đến khi bộ vi xử lý ghi nhận Như vậy đối với mỗi RST6.ð và RSTB.ð nghi ta: phải

sử dụng mạch lật yêu cầu ngất ở bên ngoài ˆ -ˆ ,

Lạnh RIM (Read Interrupt Mask) doc vao thanh tổng trạng thái: mặt nạ ngất, yêu: cầu

" ngắt chưa giải quyết và nội dung đầu vào số liệu nối tiếp SID Với lénh RIM ta có thể : :

kiểm soát trạng thái của từng đầu ngắt trong suốt quá trình chạy chương trình Khi ngắt

bị cấm nhưng có yêu cầu ngất chưa được giải quyết Chương trình chính có thể cho phép

một yêu cầu ngắt đặc biệt nào đó được phục vụ

Ngất chưa giải quyết

Trong các hệ vi xử lý sử dụng ngất, việc hỏi vòng bằng chương trình thực chất được

thay thế bởi hỏi vòng tự động bằng phần cứng Lưu đồ trên hình 7.6 cho thấy 8085 kiểm,

tra các đầu ngất trong khoảng thời gian của xung đồng hồ tiếp theo trạng thái cuối cùng

của mỗi chu kỳ lệnh và trong khoảng thời gian của tất cả xung đồng hồ Nếu 8085 đang

- ở trong trạng thái dừng (HALT) Bằng cách hỏi vòng tự động các yêu cầu ngắt như vậy

8085 chi trả lời ngất sau khi kết thúc lệnh đang thực hiện Nếu yêu cầu ngắt có hiệu lực

tác động vào 8085 thì mạch lật cho phép ngắt (TNTEFF) được xoá, mạch lật ghỉ nhận ngắt

ay NTAFF) được lập và chu kỳ máy tiếp theo là chu kỳ đặc biệt, dành riêng cho xử lý, ngắt

39

Trang 39

Hình 7-6 Chu kỳ máy lược giản

của 8085 bao gồm lôgic ngắt

Thời gian ẩn that (latency time) duge dinh

nghĩa là khoảng thời gian tính từ thời điểm ngất xuất hiện đến thời điểm bát đầu thực hiện chu

kỳ máy ngất (xem hình 7.5) Theo đồ thị thời

gian ở hình 7.7 tín hiệu ngắt phải ở mức tích cực trong khoảng thời gian tins (thời gian lập ngắt) tính từ lúc có yêu cầu ngắt đến sườn trước xung

_ đồng hồ của chu kỳ lệnh tiếp theo Đối với 808ð

giá trị tối thiểu của tịns là 1/2T + 200ns Trong

đó T là chu kỳ đồng hồ của vi xử lý

Nếu yêu cầu ngất có hiệu lực xuất hiện

chính xác bằng tins don vị thời gian trước lúc bát đầu chu kỳ lệnh tiếp theo, thì chu kỳ ngất này có thời gian ẩn ngắn nhất và bằng chính

TỊNs : TiArMIN =Tlụyg Nếu ngất có hiệu lực xuất hiện ngay sau khi thời gian lập ngắt TỊs; thì yêu cầu ngắt không được trả lời (vi xử lý ẩn trước yêu cầu ngất) cho đến khi lệnh tiếp theo kết thúc, đây là trường hợp xấu nhất với thời gian ẩn cực đại,

Hình 7.7 Thời gian lập trụs (Setup) và thời gian giữ tixH (HOLP) ‹

của tín hiệu ngắt biểu diễn theo đồng hồ của vi xử lý

tins + tmax cla chu kỳ lệnh

1/2T + 200n§ + 18T = 1B,5T + 200nS

Thời gian .ẩn cực đại là một nhân tố quan trọng trong việc xác định thời gian trả lời Điều kiện để công thức trên đúng là trong chu kỳ lệnh xuất hiện yêu cầu ngắt không

có các trạng thái đợi (WAIT) và treo (HOLD) Nếu cớ các trạng thái đợi WAIT va treo

HOLD, thời gian ẩn cực đại còn phải được cộng thêm thời gian của tất cà các các trạng thái này Một giả thiết khác cũng đặt ra là ngất không bị cấm tị wAx phải được tính

thêm với khoảng thời gian cấm ngất dài nhất có trong chương trỉnh :

40

Trang 40

Chu ky méy ngắt có độ dài cố định la 12T; trong khoảng thời gian này nội dung thanh

đếm chương trình PC, tức địa chỉ tiếp theo của lệnh bị ngắt, được cất giữ vào ngắn xếp

(STACK) và điều khiển chuyển sang địa chỉ ngắt tương ứng

“Chuyển điều khiển đến địa chỉ ngắt thực chất là gọi chương trình can bằng phần cứng

Tuy thuộc vào từng loại ngắt, mà ta có những cách chuyển điều khiển khác nhau:

Đối với TRAP, RST7.ð, RST6.5 và RST5.5, 8085 chuyển điều khiển đến một trong

những địa chỉ quy định trước cho mỗi cầu ngt `

: Đầu ngắt Địa chỉ khởi động lại (Restart)

Chu kỳ máy ngắt đối với nhóm ngắt này 1A bus nghi BI (Bus IDLE) Trong chu ky BI

bộ vi xử lý tự tạo mã lệnh cho lệnh khởi động lại với địa chỉ khởi động lại tương ứng, và

không tăng nội dung PC Như vậy nội dung PC được cất giữ là địa chỉ của lệnh tiếp theo

lệnh bị ngất Có thể mô tả hoặt động của lệnh tự tạo bên trong bộ vi xử lý này như sau:

RST (bên trong)

<(SP) - 9> « PCL,

(SP) ˆ <(SP)-2

PC “© Dia chi chi dong lai

Chu kỳ máy BỊ tương tự chu ky nhan lénh OF (OPCODE FETCH), chi khác ở chỗ,

đầu RD không hoạt động do mã lệnh được bộ vỉ xử lý tự tao bên trong bằng phần cứng

như đã trình bày ở trên

Cách xác định đơn vị yêu cầu ngất và chuyển điều khiển trực tiếp, đến chương trình

con khởi động lại được gọi là ngất có hướng (Vectorret interrupt) Do những địa chỉ khởi -

đọng lại (địa chỉ vectơ) chỉ cách nhau vài ô nhớ, nên tại địa chỉ vectơ người ta thường ghỉ

một lệnh nhảy để từ đó nhấy đến vùng nhớ chứa chương trình con phục vụ ngắt

Đối với TNTR, chu kỳ máy ngất được gọi là chu kỳ ghi nhận ngất INA NTERRUPT

ACKNO WLEDGE) INA cũng gần như chu kỳ máy nhận lệnh (OF) chỉ khác ở chỗ

IO/M = 1 và thay vì tạo xung RD thì bộ vi xử lý tạo xung IÑTA Trong chu kỳ máy INA,

PC khong tang, do đó nội dung PC được cất giữ là địa chỉ của lệnh tiếp theo lệnh bị: ngắt

Xung INTA được mach légic bên ngoài sử dụng để đưa mã lệnh (OPCODE) vào "bus

số liệu Trong trường hợp lệnh nhiều bytes, 8085 tạo ra những chu kỳ máy INA phụ để

chuyển những byte phụ vào bộ vi xử lý Về phương diện lý thuyết, mạch lôgic bên ngoài

có thể chuyển bất cứ một lệnh nào vào Bus số liệu bằng xung TNTA, nhưng để quay lại

chính xác sáu khi phục vụ ngắt xong, người ta thường dùng lệnh CALL và RST vì 2 lệnh

này đều cất giữ nội dung PC trước khi chuyển điều khiển Trong lệnh khởi động lai RSTn,

0<n <7

41

Ngày đăng: 31/05/2023, 13:13

w