1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn Thiết kế CARD vào ra đa năng sử dụng Slot của PC

43 734 0

Đ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

Định dạng
Số trang 43
Dung lượng 596 KB

Nội dung

Trong không gian 1Mbyte này bộ nhớ cần đợc chia thành các vùng khác nhau giànhriêng để: - Chứa mã chơng trình - Chứa dữ liệu và kết quả trung gian của chơng trình - Tạo ra một vùng nh

Trang 1

Lời nói đầu

Sự phát triển đi lên vợt bậc của nghành kỹ thuật máy tính và điện tử hiện nay đã

đ-ợc minh chứng cụ thể qua cuộc sống hàng ngày của chúng ta trong tất cả các lĩnh vực.Việc ứng dụng máy vi tính vào kỹ thuật đo lờng và điều khiển đã đem lại nhữngkết quả đầy tính u việt Các thiết bị, hệ thống đo lờng và điều khiển ghép nối với máytính có độ chính xác cao, thời gian thu thập số liệu ngắn, nhng đáng quan tâm hơn làmức độ tự động hoá trong việc thu nhận và xử lý dữ liệu

Kỹ thuật số ra đời đã khắc phục đợc các khuyết điểm của kỹ thuật tơng tự, làmcho các bộ phận máy móc trở lên đơn giản, gọn nhẹ, ít tốn kém năng lợng và xử lýthông tin nhanh, chính xác hơn so với kỹ thuật tơng tự

Tuy vậy, nếu xử dụng các bộ điều khiển dùng các IC số chúng ta vẫn còn mắcmột số khuyết điểm mà so với kỹ thuật vi xử lý nó vẫn tồn tại nh:

- Kích thớc lớn

- Năng lợng tiêu thụ lớn

- Tính mềm dẻo thấp, khó thay đổi

- Khó sửa chữa, bảo trì

Kỹ thuật vi xử lý ra đời với sự kết hợp giữa phần cứng và phần mềm đã làm chohoạt động của các mạch điện trở lên mềm dẻo hơn với những phần mềm rất linh hoạt

mà ta có thể sửa chữa, thay đổi hoặc bổ xung làm cho chơng trình điều khiển thêmphong phú tuỳ theo nhu cầu của ngời xử dụng

Vi xử lý là một vi mạch điện tử có mật độ tích hợp cao, trong đó gồm các mạch

số có khả năng nhận, xử lý và xuất dữ liệu Đặc biệt là quá trình xử lý dữ liệu đợc điềukhiển theo một chơng trình gồm tập hợp các lệnh từ bên ngoài mà ngời sử dụng có thểthay đổi đợc một cách dễ dàng Một vi xử lý có thể thực hiện rất nhiều yêu cầu điềukhiển khác nhau

Kỹ thuật vi xử lý có tính phức tạp trong hoạt động, thiết kế nhng lại rất kinh tếvì giá thành hạ và kích thớc chiếm chỗ không nhiều, có dung lợng cao Ngoài ra kỹthuật vi xử lý cũng hơn kỹ thuật số về tính linh hoạt, tốc độ xử lý cao trong quá trìnhhoạt động, đồng thời lại có thể mở rộng tính năng hoạt động sau này cho mạch điện

Đây là u điểm rất thuận lợi mà kỹ thuật vi xử lý mang lại

Nhận thấy đợc rõ tầm quan trọng và những u điểm của việc lập trình điềukhiển thiết bị, các thầy khoa Điện_Điện Tử Tàu Biển đã giao cho em đề tài “ Thiết kếCARD vào ra đa năng sử dụng Slot của PC” cho luận văn tốt nghiệp của mình

Trong thời gian làm tốt nghiệp vừa qua, tuy em đã hết sức cố gắng tìm hiểu,học hỏi về lĩnh vực mới này nhng do trình độ bản thân cũng nh thời gian làm tốt nghiệpcòn hạn chế nên chắc chắn sẽ còn nhiều sai sót, kính mong các thầy cô đóng góp ý kiếncho đề tài tốt nghiệp này của em

Em xin chân thành cảm ơn thầy giáo Hồ Nhật Tiến đã tận tình hớng dẫn để hoànthành báo cáo tốt nghiệp này Em cũng xin chân thành cảm ơn các thầy cô trong khoa

Điện_Điện Tử Tàu Biển, các bạn bè đồng nghiệp đã đóng góp ý kiến và chỉ dẫn emtrong quá trình nghiên cứu, thực hiện đề tài này

Phần I Phần lý thuyết cơ sở Chơng1: Giới thiệu cấu trúc hệ vi xử lý

1.1 Giới thiệu vi xử lý 8088

1.1.1 Giới thiệu cấu trúc bên trong và hoạt động của bộ vi xử lý 8088.

1

AxBxCx

DxspBpSidi

CsDsSsEsip

Bus địa chỉ (20bit)

Các thanh ghi đoạn và con trỏ lệnh

Logic

điều khiển BUS

Đệm lệnh (hàng đợi

lệnh) (6 byte cho 8088)

Bus dữ liệu (8 bit)

Bus trong của CPC 8 bít dữ liệu

20 bít địa chỉ

Bus ngoài Bus dữ liệu

ALU (16 bit)

Trang 2

Hình1.1.sơ đồ khối cấu trúc bên trong của bộ vi xử lý 8088

E.U: Execution unit, khối thực hiện lệnh

B.I.U:Bus interface unit, khối phối ghép bus

ALU: Arithmetic and logic unit, khối số học và lôgic

a B.I.U và E.U:

Theo sơ đồ khối trên hình 1.1 ta thấy bên trong CPU 8088 có hai khối chính:khối phối ghép bus (B.I.U) và khối thực hiện lệnh (E.U) Việc chia CPU ra thành haiphần làm việc đồng thời có liên hệ với nhau qua đệm lệnh làm tăng đáng kể tốc độ xử

lý của CPU Các bus bên trong CPU có nhiệm vụ chuyển tải các tín hiệu của các khốikhác Trong số các bus đó có bus dữ liệu 16 bit của ALU, bus các tín hiệu điều khiển ởE.U và bus trong của hệ thống ở B.I.U Trớc khi đi ra bus ngoài hoặc đi vào bus trongcủa bộ vi xử lý, các tín hiệu truyền trên bus thờng đợc cho đi qua các bộ đệm để nângcao tính tơng thích cho nối ghép hoặc nâng cao khả năng phối ghép

B.I.U đa ra địa chỉ, đọc mã lệnh từ bộ nhớ, đọc/ ghi dữ liệu từ /vào cổng hoặc bộnhớ Nói cách khác B.I.U chịu trách nhiệm đa địa chỉ ra bus và trao đổi dữ liệu với bus Trong E.U ta thấy có một khối điều khiển (control unit, CU) chính Tại bên trongkhối điều khiển này có mạch giải mã lệnh Mã lệnh đọc vào từ bộ nhớ đ ợc đa đến đầuvào của bộ giải mã, các thông tin thu đợc từ đầu ra của nó sẽ đợc đa đến mạch tạo xungdiều khiển Kết quả là ta thu đợc các dãy xung khác nhau (tuỳ theo mã lệnh) để điềukhiển hoạt động của các bộ phận bên trong và bên ngoài CPU Trong khối E.U còn có

2

Bus dữ

liệu 8 bit

Trang 3

khối số học và logic (arithmetic and logic unit,ALU) dùng để thực hiện các thao táckhác nhau với các toán hạng của lệnh

Tóm lại, khi CPU hoạt động E.U sẽ cung cấp thông tin về địa chỉ cho B.I.U đểkhối này đọc lệnh và dữ liệu, còn bản thân nó thì giải mã lệnh và thực hiện lệnh

Trong B.I.U còn có một bộ nhớ đệm lệnh với dung lợng 4 byte dùng để chứa cácmã lệnh đọc đợc nằm sẵn để chờ E.U xử lý Đây là một cấu trúc mới đợc cấy vào bộ vi

xử lý8088 do việc INTEL đa cơ chế xử lý xen kẽ liên tục dòng mã lệnh (instructionpipeling) vào ứng dụng trong các bộ vi xử lý thế hệ mới

Trong bộ vi xử lý 8088 ta còn thấy có các thanh ghi 16 bit nằm trong cả hai khốiB.I.U và E.U Ngoài ra cũng có một số thanh ghi 8 hoặc 16 bit tại E.U

Ta sẽ lần lợt giới thiệu các thanh ghi nói trên cùng chức năng chính của chúng

b/ Các thanh ghi đoạn:

Khối B.I.U đa ra trên bus địa chỉ 20 bit địa chỉ, nh vậy 8088 có khả năng phânbiệt ra đợc 2 = 1.048.576 =1M ô nhớ hay 1Mbyte, vì các bộ nhớ nói chung tổ chức theobyte Nói cách khác: Không gian địa chỉ của 8088 là 1Mbyte

Trong không gian 1Mbyte này bộ nhớ cần đợc chia thành các vùng khác nhau giànhriêng để:

- Chứa mã chơng trình

- Chứa dữ liệu và kết quả trung gian của chơng trình

- Tạo ra một vùng nhớ đặc biệt gọi là ngăn xếp (stack) dùng vào việc quản lý cácthông số của bộ vi xử lý khi gọi chơng trình con hoặc trở về từ chơng trình con

Trong thực tế bộ vi xử lý 8088 có các thanh ghi 16 bit liên quan đến địa chỉ đầucủa các vùng (các đoạn) kể trên và chúng đợc gọi là các thanh ghi đoạn (segmentregisters)

Đó là:

+ thanh ghi đoạn mã CS (code segment)

+ thanh ghi đoạn dữ liệu DS (data segment)

+ thanh ghi đoạn ngăn xếp SS (stack segment)

+ thanh ghi đoạn dữ liệu phụ ES (extra segment)

Các thanh ghi đoạn 16 bit này chỉ ra địa chỉ đầu của 4 đoạn trong bộ nhớ, dunglợng lớn nhất của mỗi đoạn này là 64Kbyte và tại một thời điểm nhất định bộ vi xử lýchỉ làm việc đợc với 4 đoạn nhớ 64Kbyte này Việc thay đổi giá trị của các thanh ghi

đoạn làm cho các đoạn tơng ứng có thể dịch chuyển linh hoạt trong phạm vi không gian1Mbyte, vì vậy các đoạn này có thể nằm cách nhau khi thông tin cần lu trongchúng đòi hỏi dung lợng đủ 64Kbyte hoặc cũng có thể nằm trùm nhau do có những

đoạn không cần dùng hết độ dài 64Kbyte và vì thế những đoạn này có thể bắt đầu nốitiếp ngay sau đó Điều này cũng cho phép ta truy nhập vào bất kỳ đoạn nhớ ( 64Kbyte)nào nằm trong toàn bộ không gian 1Mbyte Nội dung các thanh ghi đoạn sẽ xác định

địa chỉ của ô nhớ nằm ở đầu đoạn Địa chỉ này còn gọi là địa chỉ cơ sở Địa chỉ của các

ô nhớ khác nằm trong đoạn tính đợc bằng cách cộng thêm vào địa chỉ cơ sở một giá trịgọi là địa chỉ lệch hay độ lệch (offset) Gọi nh thế vì nó ứng với khoảng lệch của toạ độmột ô nhớ cụ thể nào đó so với ô đầu đoạn Độ lệch này đợc xác định bởi các thanh ghi

16 bit đóng vai trò thanh ghi lệch

(offset register) Cụ thể, để xác định địa chỉ vật lý 20 bit của một ô nhớ nào đó trongmột đoạn bất kỳ, CPU 8088 phải dùng đến 2 thanh ghi 16 bit (một thanh để chứa địachỉ cơ sở, còn thanh ghhi kia chứa độ lệch) và từ nội dung của thanh ghi đó nó tạo ra

địa chỉ vật lý theo công thức sau:

Địa chỉ vật lý = Thanh ghi đoạn  16 + Thanh ghi lệchViệc dùng 2 thanh ghi để ghi nhớ thông tin về địa chỉ thực chất tạo ra một loại

địa chỉ gọi là điạ chỉ logic và đợc kí hiệu: Thanh ghi đoạn : Thanh ghi lệch hay segment: offset

Địa chỉ kiểu segment : offset là logic vì nó tồn tại dới dạng của các thanh ghi cụthể bên trong CPU và khi cần thiết truy nhập ô nhớ nào đó thì nó phải đợc đổi ra địa chỉvật lý để rồi đợc đa lên bus địa chỉ Việc chuyển đổi này do một bộ tạo địa chỉ thựchiện (phần tử  trên hình)

c Các thanh ghi đa năng:

3

Trang 4

Trong khối EU có 4 thanh ghi đa năng 16 bit: Ax, Bx, Cx, Dx Điều đặc biệt làkhi cần chứa các dữ liệu 8 bit thì mỗi thanh ghi này có thể tách ra thành 2 thanh ghi 8bit cao và thấp để làm việc dộc lập, đó là các thanh ghi AH và AL, BH và BL, CH và

CL, DH và DL

Mỗi thanh ghi có thể đợc dùng một cách vạn năng để chứa các loại dữ liệu khácnhau, nhng cũng có những công việc đặc biệt nhất định chỉ thao tác với một vài thanhghi nào đó và chính vì vậy các thanh ghi thờng đợc gán cho những cái tên đặc biệt rất

có ý nghĩa

Cụ thể:

* Ax (Accumulator): Thanh chứa Các kết quả của các thao tác thờng đợc chứa ở

đây (Kết quả của phép phân chia) Nếu kết quả là 8 bit thì thanh ghi AL đợc coi là Acc

* Bx (Base): Thanh ghi cơ sở, thờng chứa địa chỉ cơ sở của một bảng dùng tronglệnh XLAT

* Cx (Count): Bộ đếm Cx thờng đợc dùng để chứa số lần lặp trong trờng hợpcác lệnh LOOP ( lặp), còn CL thờng đợc số lần dịch hoặc quay trong các lệnh dịch hoặcquay thanh ghi

*Dx (Data): Thanh ghi dữ liệu Dx cùng Ax tham gia vào các thao tác của phépnhân hoặc chia các số 16 bit Dx còn dùng để chứa địa chỉ của các cổng trong các lệnhvào / ra dữ liệu trực tiếp (In / Out)

d Các thanh ghi trỏ và chỉ số:

Trong 8088 còn có 3 thanh ghi con trỏ và 2 thanh ghi chỉ số 16 bit Các thanhghi này (trừ IP) đều có thể đợc dùng nh các thanh ghi đa năng, nhng ứng dụng chínhcủa mỗi thanh ghi là chúng đợc ngầm định nh là thanh ghi lệch cho các đoạn tơng ứng

* SI: Chỉ số gốc hay nguồn (Sourse index), SI chỉ vào dữ liệu trong đoạn dữ liệu

DS mà địa chỉ cụ thể đầy đủ với DS: SI và đợc xác định theo cách đã nói ở trên

* DI: Địa chỉ đích (destination index), DI chỉ vào dữ liệu trong đoạn dữ liệu DS

mà địa chỉ cụ thể đầy đủ ứng với DS: DI và đợc xác định theo cách đã nói ở trên

Riêng trong các lệnh thao tác với dữ liệu kiẻu chuỗi thì cặp ES: DI luôn ứng với

địa chỉ của phần tử thuộc chuỗi đích còn cặp DS: SI ứng với địa chỉ của phần tử thuộcchuỗi gốc

e Thanh ghi cờ FR (Flag Register):

Đây là thanh ghi khá đặc biệt trong CPU, mỗi bit của nó đợc dùng để phản ảnhmột trạng thái hoạt động của kết quả phép toán do ALU thực hiện hoặc một trạng tháihoạt động của EU Dựa vào các cờ này ngời lập trình có thể có các lệnh thích hợp tiếptheo cho bộ vi xử lý (các lệnh nhảy có điều kiện) Thanh ghi cờ gồm 16 bit nhng ngời tachỉ dùng hết 9 bit của nó để làm các bit cờ (hình 1.2)

Trang 5

* P hoặc PE (Parity Flag): Cờ parity, PE phản ánh tính chẵn lẻ (parity) của tổng

số bit 1 có trong kết quả là chẵn (even parity, parity chẵn)

* A hoặc AE (auxiliary corry flag): Cờ nhớ phụ, rất có ý nghĩa khi ta làm việcvới các số BCD AE = 1 khi có nhớ hoặc mợn từ một số BCD thấp (4bit thấp) sang một

số BCD cao (4 bit cao)

* Z hoặc ZE (Zero flag): Cờ rỗng, ZE = 1 khi kết quả bằng 0

* S hoặc SF (Sign flag): Cờ dấu, SF = 2 khi kết quả âm

* O hoặc OE (Overlow flag): Cờ tràn, OF = 1 khi kết quả là một số bù hai vợt rangoài giới hạn biểu diễn dành cho nó

Trên đây là 6 bit cờ trạng thái phản ảnh các trạng thái khác nhau của kết quả saumột thao tác nào đó 5 bit cờ đầu thuộc byte thấp của thanh cờ là các cờ giống nh của bộ

vi xử lý 8 bit 8085 Chúng đợc lập hoặc xóa tuỳ theo các điều kiện cụ thể sau các thaotác của ALU Ngoài ra, bộ vi xử lý 8088 còn có các cờ điều khiển sau đây (các cờ này

đợc lập hoặc xoá bằng các lệnh riêng):

T hoặc (trap flag): Cờ bẫy, TF = 1 thì CPU làm việc ở chế độ chạy từng lệnh(chế độ này dùng khi cần tìm lỗi trong một chơng trình)

* I hoặc IF (interrupt enable flag): Cờ cho phép ngắt, IF = 1 thì CPU cho phépcác yêu cầu ngắt (cho đợc) đợc tác động

* D hoặc DF (direction flag): Cờ hớng, DF = 1 khi CPU làm việc với chuỗi ký tựtheo thứ tự từ phải sang trái (vì vậy D là cờ lùi)

Sơ đồ chân CPU 8088

GND 1 40 Vcc[AD14] A14 2 39 A15

[AD13] A13 3 38 A16/ S3

[AD12] A12 4 37 A17/ S4

[AD11] A11 5 36 A18/ S5

[AD10] A10 6 35 A19/ S6

[AD9] A9 7 34 SSO (BHE/ S7)[AD8] A8 8 33 MN/ MX

AD7 9 32 RDAD6 10 31 HOLD (BQ/

0

GT )AD5 11 30 HLDA (BQ/

1

GT )AD4 12 29 WR (LOCK)AD3 13 28 IO/ M (S2)AD2 14 27 DT/ R (S1)AD1 15 26 DEN (S 0)AD0 16 25 ALE (QS0)NMI 17 24 INTA (QS1)INTR 18 23 TEST

CLK 19 22 READYGND 20 21 RESET

1 2 Hệ vi xử lý và các mã lệnh thực hiện:

Sơ đồ khối tổng quát và hoạt động của hệ vi xử lý

5

UP 8088

Trang 6

Trong sơ đồ này ta thấy các khối chức năng chính của bộ vi xử lý gồm:

- Khối xử lý trung tâm (central processiry unit, CPU)

- Bộ nhớ bán dẫn (memory, M)

- Khối phối ghép với các thiết bị ngoại vi (input/ output, I/O)

- Các BUS truyền thông tin

Ba khối chức năng đầu tiên liên hệ với nhau thông qua tập các đờng dây đểtruyền tín hiệu gọi chung là bus hệ thống BUS hệ thống bao gồm 3 bus thành phần ỉngvới các tín hiệu địa chỉ, dữ liệu và điều khiển ta có bus địa chỉ, bus dữ liệu và bus điềukhiển

CPU đóng vai trò chủ đạo trong hệ vi xử lý Đây là một mạch vi điện tử có độtích hợp rất cao Khi hoạt động, nó đọc mã lệnh đợc ghi dới dạng các bit 0 và bit 1 từ bộnhớ, sau đó nó sẽ giải mã các lệnh này thành dãy các xung điều khiển ứng với các thaotác đó Để làm đợc việc này bên trong CPU có thanh ghi dùng để chứa địa chỉ của lệnhsắp thực hiện gọi là thanh ghi con trỏ lệnh (instruction pointer, IP) hoặc bộ đếm chơngtrình (program counter, PC), một số thanh ghi đa năng khác cùng với bộ tính toán sốhọc và logic (ALU) để thao tác với dữ liệu Ngoài ra ở đây còn có các hẹ thống mạch

điện tử rất phức tạp để giải mã lệnh và từ đó tạo ra các xung điều khiển cho toàn hệ

Bộ nhớ bán dẫn hay bộ nhớ trong là một bộ phận khác rất quan trọng của hệ vi

xử lý Tại đây (trong ROM) ta có thể chứa chơng trình điều khiển hoạt động của toàn

hệ để khi bật điện thì CPU có thể lấy lệnh từ đây mà khởi đầu hệ thống Một phần củachơng trình điều khiển hệ thống, các chơng trình ứng dụng, dữ liệu cùng các kết quảcủa chơng trình thờng đợc để trong RAM các dữ liệu và chơng trình muốn lu trữ lâu dài

sẽ để ở bộ nhớ ngoài

Khối phối ghép vào / ra (I/0) tạo ra khả năng giao tiếp giữa hệ vi xử lý với thếgiới bên ngoài Các thiết bị ngoại vi nh bàn phím, chuột, màn hình, máy in, chuyển đổi

số / tơng tự (D/A converter, DAC) và chuyển đổi tơng tự / số (A/D converter, ADC), ổ

đĩa từ đều liên hệ với hệ vi xử lý qua bộ phận này Bộ phận phối ghép cụ thể giữa bus

hệ thống với thế giới bên ngoài thờng đợc gọi là cổng Nh vậy ta sẽ có các cổng vào đểlấy thông tin từ ngoài vào và các cổng ra để đa thông tin từ trong hệ thống ra ngoài Tuỳtheo nhu cầu cụ thể của công việc, các mạch cổng này có thể đợc xây dựng từ các mạchlogic cơ bản hoặc từ các vi mạch chuyên dụng lập trình đợc

BUS địa chỉ thờng có từ 16, 20, 14 đến 32 đờng dây song song chuyển tải thôngtin của các bit địa chỉ Khi đọc/ghi bộ nhớ CPU sẽ đa ra trên bus này địa chỉ của ô nhớliên quan Khả năng phân biệt địa chỉ (số lợng địa chỉ cho ô nhớ mà CPU có khả năngphân biệt đợc) phụ thuộc vào số bit của bus địa chỉ Ví dụ nếu một CPU có số đ ờng dây

địa chỉ là N = 16 thì nó có khả năng địa chỉ hoá đợc 2N = 65536 = 64 kilô ô nhớ khácnhau (1K = 210 = 1024) Khi đọc/ghi với cổng vào/ra CPU cũng đa ra trên bus địa chỉcác bit địa chỉ tơng ứng của cổng Trên sơ đồ khối ta dễ nhận ra tính một chiều của bus

địa chỉ qua chiều của mũi tên Chỉ có CPU mới có khả năng đa ra địa chỉ trên bus địachỉ

Bus dữ liệu thờng có từ 8, 16, 20, 24, 32 đến 64 đờng dây tuỳ theo các bộ VXL

cụ thể Số lợng đờng dây này quyết định số bit dữ liệu mà CPU có khả năng xử lý cùngmột lúc Chiều mũi tên trên bus số liệu chỉ ra rằng đây là bus 2 chiều Các phần tử có

Bộ nhớ (MEMORY) Rom - Ram

Phối ghép vào ra (I/O)

Trang 7

đầu ra nối thẳng với bus dữ liệu đều phải đợc trang bị đầu ra 3 trạng thái để có thể ghépvào đợc và hoạt động bình thờng với bus này.

Bus điều khiển thờng gồm hàng chục đờng dây tín hiệu khác nhau Mỗi tín hiệu

điều khiển có một chiều nhất định Vì khi hoạt động CPU đa ra tín hiệu điều khiển tớicác khối khác trong hệ, đồng thời nó cũng nhận các tín hiệu điều khiển từ các khối

đó để phối hợp hoạt động của toàn hệ nên các tín hiệu này Trên hình vẽ đợc thể hiệnbởi các đờng có mũi tên 2 chiều, điều đó không phải để chỉ tính

2 chiều của một tín hiệu mà là tính 2 chiều của một nhóm tín hiệu

Hoạt động của hệ thống VXL trên cũng có thể đợc nhìn theo một cách khác.Trong khi hoạt động và tại một thời điểm nhất định, về mặt chức năng mỗi khối trong

hệ thống trên tơng đơng với các thanh ghi trong (nằm trong CPU) hoặc các thanh ghingoài (nằm rải rác trong bộ nhớ ROM, RAM và trong khối phối ghép I/O) Hoạt độngcủa toàn hệ thực chất là sự phối hợp hoạt động của các thanh ghi trong và ngoài nói trên

để thực hiện sự biến đổi dữ liệu hoặc sự trao đổi dữ liệu theo các yêu cầu đã định trớc 1.2.2 – Cấu trúc và hoạt động của hệ vi xử lý: Cách mã hoá lệnh của bộ vi xử lý 8088

Lệnh của bộ vi xử lý đợc ghi bằng các kí tự dới dạng gợi nhớ (memonk) để ngời

sử dụng dễ nhận biết Đối với bản thân bộ vi xử lý thì lệnh cho nó đợc mã hoá dới dạngcác số 0 và 1 ( còn gọi là mã máy) vì đó là dạng biểu diễn thông tin duy nhất mà máyhiểu đợc Vì lệnh cho bộ VXL đợc cho dới dạng mã nên sau khi nhận đợc lệnh, bộVXL phải thực hiện giải mã lệnh Việc hiêu rõ bản chất cách ghi lệnh bằng số hệ haicho bộ VXL sẽ có lợi khi ta cần dịch “bằng tay” một lệnh gợi nhớ khi làm việc với các

Đối với bộ VXL 8088 một lệnh có thể có độ dài từ 1 đến 6 byte Ta sẽ chỉ lấy ờng hợp lệnh MOV để giải thích cáh ghi lệnh nói chung của 8088

tr-Lệnh MOV đích, gốc dùng để chuyển dữ liệu giữa 2 thanh ghi hoặc giữa ô nhớ

và thanh ghi Chỉ nguyên với các thanh ghi của 8088, nếu ta lần lợt đặt các thanh ghivào vị trí các toán hạng đích và toán hạng gốc ta thấy đã phải cần tới hàng trăm mã lệnhkhác nhau để mã hoá tổ hợp các lệnh này

byte1 byte 2 byte 3 byte 4

D W Mod REG MIR DISP: displacement (dịch chuyển) hoặc

H 1.2.2 - Dạng thức các byte mã lệnh của MOV

Ta thấy để mã hóa lệnh MOV ta cần ít nhất 2 byte, trong đó 6 bit của byte đầudùng chứa mã lệnh Đối với lệnh MOV, để chuyển dữ liệu kiểu:

- Thanh ghi thanh ghi (trừ thanh ghi đoạn) hoặc

- Bộ nhớ thanh ghi (trừ thanh ghi đoạn)

thì 6 bit đầu này luôn là 100010 Với các thanh ghi đoạn thì điều này lại khác

Bit W để chỉ rằng 1 byte (W = 0) hoặc 1 từ (W = 1) sẽ đợc chuyển Trong cácthao tác chuyển dữ liệu, một toán hạng luôn bắt buộc phải là thanh ghi Bộ VXL dùng 2hoặc 3 bit để mã hoá các thanh ghi trong CPU nh sau:

Trang 8

Bit D dùng để chỉ hớng đi của dữ liệu, D = 1 thì dữ liệu đi đến thanh ghi bởi 3 bitcủa REG, D =0 thì dữ liệu đi từ thanh ghi cho bởi 3 bit của REG Hai bit MOD(chế độ)cùng với 3 bit R/M (thanh ghi/bộ nhớ) tạo ra 5 bit dùng để chỉ ra chế độ địa chỉ cho cáctoán hạng của lệnh.

Chơng 2: Các chuẩn truyền thông trong điều khiển

2.1 Các giao diện vào ra đợc sử dụng trong máy tính.

2.1.1 Giao diện Centronics ( cổng máy in).

Giao diện cổng máy in song song còn gọi là giao diện centronics Máy in liênlạc với máy tính qua giao diện này đợc mô tả nh hình 2.1

Giao diện

CentronicsHình 2.1: Mô tả giao diện Centronics

a.Cấu trúc cổng máy in

máy in nối với máy tính đợc thực hiện qua ổ cắm 25 chân ở phía sau máy tính.Nhng đây không chỉ là ổ nối với máy in mà khi sử dụng máy tính vào mục đích đo lờng

và điều khiển thì việc ghép nối cũng đợc thực hiện qua cổng này Qua cổng này số liệu

đợc truyền song song, nên còn gọi là cổng ghép nối song song và tốc độ truyền số liệucũng đạt đợc đến mức lớn đáng kể Tất cả các đờng dẫn của cổng này đều tơng thíchTTL, nghĩa là chúng đều cung cấp một mức điện áp nằm giữa 0 và 5v Do đó ta cầnphải lu ý là ở các đờng dẫn lối vào cổng này không đợc đặt ở mức điện áp quá lớn Sựphân bố chân cổng máy in nh (hình 2.2)

Ngời ta có thể trao đổi một cách riêng biệt với 17 đờng dẫn, bao gồm có 12 ờng dẫn ra và 5 đờng dẫn vào Do 8 đờng dẫn số liệu không phải là đờng dẫn hai chiềunên chúng đợc xem nh là lối ra Các lối ra khác nữa là:

đ-STROBE, AUTO FEED(AF),INIT,SELECT IN (SLECTIN) Khi trao đổi thôngtin với máy in,các đờng dẫn này có những chức năng xác định

Thí dụ: INT=0 thực hiện một quá trình khởi động lại(RESET) ở máy in, cònSTROBE có nhiệm vụ ghi các bit số liệu đã đợc gửi đến máy in bằng một xung mứcthấp vào trong bộ nhớ của máy in

Trang 9

Chân Kí hiệu Vào/ra Mô tả

nhận)

Hình 2.2: Phân bố chân cổng máy in Cổng máy in cũng có những chân dẫn lối vào nhờ vậy mà sự bắt tay giữa máy in

và máy tính đợc thực hiện Thí dụ khi tắt máy in không còn đủ chỗ trong bộ nhớ thìmáy in sẽ gửi đến máy tính một bit trạng thái (BUSY = 1), điều đó có nghĩa là máy intại thời diểm này đang bận, không nên gửi thêm các byte số liệu khác đến nữa

Trang 10

Khi hết giấy ở máy in thì máy tính sẽ thông báo là Paper Empty (PE) Đờng dẫnnối vào tiếp theo là Acknowledge (ACK), Select (SLCT) và Error Tổng cộng có 5 lốivào hớng tới máy in.

b – Cấu trúc và hoạt động của hệ vi xử lý: Trao đổi với các đờng dẫn tín hiệu:

Tất cả các đờng dẫn tín hiệu vừa đợc giới thiệu cho phép trao đổi qua các địa chỉ

bộ nhớ của máy tính 17 đờng dẫn của cổng máy in sắp xếp thành 3 thanh ghi là thanhghi số liệu, thanh ghi trạng thái và thanh ghi điều khiển Hình 2.3 chỉ ra các sự sắp xếpcủa các đờng dẫn tín hiệu tới các bit số liệu riêng biệt của thanh ghi

Thanh ghi số liệu (Địa chỉ cơ bản)

D7 D6 D5 D4 D3 D2 D1 D0

D0 (Pin 2)

D1 (Pin 3) D2 (Pin 4) D3 (Pin 5) D4 (Pin 6) D5 (Pin 7) D6 (Pin 8) D7 (Pin 9)

Thanh ghi trạng thái (địa chỉ cơ bản + 1)

Error (Pin 15)SLCT (Pin 13)

PE (Pin 12)ACK (Pin 10)BUSY (Pin 11)Hình 2.4(b)

Thanh ghi điều khiển (địa chỉ cơ bản)

D7 D6 D5 D4 D3 D2 D1 D0

Hình 2.4(c)Hình 2.4 – Cấu trúc và hoạt động của hệ vi xử lý: Các thanh ghi ở cổng máy in của máy tính

Địa chỉ cơ bản đồng nhất với thanh ghi số liệu Thanh ghi trạng thái đợc đạt tới địa chỉcơ bản + 1 Thanh ghi điều khiển với bốn đờng dẫn đặt dới địa chỉ

cơ bản + 2

2.1.2: Giao diện RS 232 (Cổng nối tiếp):

a) Cấu trúc cổng nối tiếp:

SLCTIN(Pin 17)IRQ Enable

Trang 11

Hình 2.5 Sơ đồ bố trí chân cổng nối tiếp.

1 8 DCD – Cấu trúc và hoạt động của hệ vi xử lý: Data carrier Detect Lối vào

2 3 RxD – Cấu trúc và hoạt động của hệ vi xử lý: Receive Data Lối vào

3 2 TxD – Cấu trúc và hoạt động của hệ vi xử lý: Transmit Data Lối ra

4 20 DTR – Cấu trúc và hoạt động của hệ vi xử lý: Data Terminal Ready Lối ra

5 7 GND – Cấu trúc và hoạt động của hệ vi xử lý: Mass

6 6 DSR – Cấu trúc và hoạt động của hệ vi xử lý: Data Set Ready Lối vào

7 4 RST – Cấu trúc và hoạt động của hệ vi xử lý: Request to Send Lối ra

8 5 CTS – Cấu trúc và hoạt động của hệ vi xử lý: Clear to Send Lối vào

9 22 RI – Cấu trúc và hoạt động của hệ vi xử lý: Ring Indicator Lối vào

Cổng nối tiếp RS 232 là giao diện phổ biến rộng rãi nhất Ngời ta gọi cổng COM

1, cổng COM 2 để tự do cho các ứng dụng khác Giống nh cổng máy in, cổng nối tiếp

RS 232 cũng đợc sử dụng một cách thuận tiện cho mục đích đo lờng và điều khiển

Việc truyền số liệu qua cổng RS 232 đợc tiến hành theo cách nối tiếp, nghĩa làcác bit số liệu đợc gửi đi nối tiếp nhau có khả năng dùng cho khoảng cách xa, bởi vì cáckhả năng gây nhiễu là nhỏ đáng kể khi dùng một cổng song song

Việc dùng cổng song song có nhợc điểm là cáp truyền dùng nhiều sợi và mức tínhiệu trong khoảng 0 đến 5V tỏ ra không thích hợp với khoảng cách xa

Cổng nối tiếp RS 232 không phải là một hệ thống bus, nó cho phép dễ dàng tạo

ra liên kết dới hình thức điểm giữa hai máy cần trao đổi thông tin với nhau Sự bố tríchân của cổng RS 232 ch hình 2.5

Việc truyền số liệu xảy ra ở trên hai đờng dẫn Qua chân cắm ra TxD, máy tínhgửi các số liệu của nó đến máy kia Trong khi đó số liệu mà máy tính nhận đợc lại đựơcdẫn đến chân nối RxD Các tín hiệu khác đóng vai trò nh là tín hiệu hỗ trợ khi trao đổithông tin và vì thế không phải trong mọi ứng dụng đều dùng đến

Mức tín hiệu trên chân ra RxD tuỳ thuộc voà đờng dẫn TxD và thông thờng nằmtrong khoảng – Cấu trúc và hoạt động của hệ vi xử lý:12V đến +12V Các bit số liệu đợc gửi đảo ngợc lại Mức điện áp đốivới mức cao nằm giữa – Cấu trúc và hoạt động của hệ vi xử lý:3V và -12V còn mức thấp nằm giữa +3V và +12V trên hình2.6 mô tả một dòng số liệu điển hình một số byte số liệu trên cổng nối tiếp RS 232

Start bit Stop

D0 D1 D2 D3 D4 D5 D6 D7

1 1 0 1 0 0 1 0Hình 2.1 – Cấu trúc và hoạt động của hệ vi xử lý: Dòng số liệu trên cổng RC 232Khi ở trạng thái trên đờng dẫn có điện á -12V Một bit khối động (start bit) sẽ

mở đầu việc truyền số liệu Tiếp đó là các bit số liệu riêng lẻ sẽ đến, trong đó những bitgiá trị thấp sẽ đợc giữ trớc tiên Các bit số liệu có thể thay đổi từ 5 đến 8 Cuối cùng sốliệu còn có 1 bit dừng (stop bit) để đặt lại trạng thái lối ra (-12V)

Bằng tốc độ Baund ta có thể thiết lập đợc tốc độ truyền Thông thờng là 300,

600, 1200, 2400, 9600 và 19.200 baud Nhợc điểm của cổng truyền nối tiếp là tốc độtruyền bị hạn chế và khuôn mẫu truyền số liệu cần phải đợc thiết lập nh nhau cả ở bênnhận cũng nh bên gửi

b – Cấu trúc và hoạt động của hệ vi xử lý: Trao đổi đờng dẫn tín hiệu:

Cũng nh cổng máy in, các đờng dẫn tín hiệu riêng biệt cũng cho phép trao đổiqua các địa chỉ trong máy tính Trong trờng hợp này, ngời ta thờng sử dụng những vimạch có mức độ tích hợp cao Bên trong máy tính thờng có bộ phát nhận không đồng

11

Trang 12

bộ vạn năng (gọi tắt là UART: Universal ansychronous Receive/Transmiter) để điềukhiển sự trao đổi thông tin giữa máy tính và thiết bị ngoại vi Phổ biến nhất là vi mạch

8250 hay 16C550 Bộ UART có 10 thanh ghi để điều khiển tất cả các chức năng củaviệc thâm nhập vào ra số liệu theo cách nối tiếp

Có hai thnah ghi đáng quan tâm là thanh ghi modem và thanh ghi trạng tháimodem Sự sắp xếp của các thanh ghi này nh sau;

Thanh ghi trạng thái modem (địa chỉ cơ bản +4)

Bit 0 : DTR (lối ra) Giá trị 1Bit 1 : RTC (lối ra) Giá trị 2Thanh ghi trạng thái modem

Bit 4 : CTS (lối vào) Giá trị 16Bit 5 : DSC (lối vào) Giá trị 32Bit 6 : RI (lối vào) Giá trị 64 Bit 7 : DCD (lối vào) Gias trị 128Các thanh ghi đợc trao đổi qua ô nhớ trong vùng vào ra Địa chỉ đầu tiên có thể tới

đợc của cổng nối tiếp đợc gọi là địa chỉ cơ bản Các địa chỉ ghi tiếp theo đợc đạt tớibằng việc cộng thêm số thanh ghi đã gặp của bộ UART vào điạ chỉ cơ bản

2.1.3 Giao diện qua Slot máy tính:

a) Cấu trúc Slot máy tính:

Máy tính cung cấp các slot (rãnh cắm) đợc xem nh các cổng cào/ra ở máy tính

XT rãnh cắm trong máy tính chỉ có một loại với độ rộng bus là 8 bit và tuân theo chuẩnISA (Industry Standard Architecture) Từ máy tính AT trở đi việc bố trí chân trên rãnhcắm trở lên phức tạp hơn, tuỳ theo tiêu chuẩn đợc lựa chọn khi chế tạo máy tính Cácloại rãnh cắm theo những tiêu chuẩn khác nhau gồm có:

- Rãnh cắm theo tiêu chuẩn ISA

- Rãnh căm PS/2 với 16 bit theo tiêu chuẩn MCA (Micro Channel Archhitecture)

- Rãnh cắm PS/2 với 32 bit theo tiêu chuẩn EISA (Extended Industry StandardArchitecture)

- Rãnh cắm 32 bit theo tiêu chuẩn VESA VLB (VESA Local BUS Standard)

- Rãnh cắm 32 bit theo tiêu chuẩn PCI (Peripheral Component Interconect Standard)

Cho đến nay phần lớn các card ghép nối dùng trong kỹ thuật đo lờng và điềukhiển đều đợc chế tạo để đặt vào rãnh cắm theo tiêu chuẩn ISA Theo tiêu chuẩn nàyrãnh cắm có 62 đờng tín hiệu dùng cho mục đích thông tin với một Card cắm vào Vềcơ bản các đờng tín hiệu này đợc chia thành các đờng dẫn tín hiệu, đờng dẫn địa chỉ và

đờng dẫn điều khiển Chỉ những Card 8 bit mới đợc cắm vào rãnh này hình 2.11 chothấy mỗi rãnh cắm gồm có 62 chân chia làm 2 hàng, mỗi hàng có 31 chân đợc đánh số

từ A1 đến A31 và B1 đến B31

GNDReset DRV+ 5VIRQ 2

- 5VDRQ 2

- 12V

DWS

+ 12VGND

SMEMW SMEMR

OW / I OR / I

3 DACK

Trang 13

DRQ 3DACK 1

REF

CLOCKIRQ 7IRQ 6IRQ 5IRQ 4IRQ 3

2 DACK

T/CALE+ 5VOSCGND

* SA0 - SA19: 20 đờng địa chỉ để đánh địa chỉ thiết bị I/O, bộ nhớ

* SD0 – Cấu trúc và hoạt động của hệ vi xử lý: SD7: 8 đờng số liệu dùng để truyền số liệu giữa bộ nhớ và ngoại vi

* OSC: dao động có tần số 14,31818 MHz, chu kỳ xấp xỉ 70ns

* CLK : Có tần số 4,77 MHz với chu kỳ 210ns, CLK dùng cho thao tác đọc ghi, trạngthái chờ và dùng trong việc lấy mẫu

* RESET DRV: Dùng để Reset hệ thống, tín hiệu này đợc tích cực ở mức cao

* ALE (Address Latch Enable): Dùng để kiểm tra kênh vào ra và thông báo cho bộ vi

xử lý biết về thông tin bộ nhớ hay các thiết bị I/O nhằm phát hiện ra các sai số chẵn lẻtrên Card giao tiếp

* I/O CHRDy (I/O channel ready): Khi ở mức thấp nó sẽ kéo dài chu kỳ BUS vì bộ nhớhoặc ngoại vi không đáp ứng trong chu kỳ bình thờng

* I/OR: Tín hiệu này cho biết thiết bị vào ra số liệu từ thiết bị ngoại vi lên Data bus Tínhiệu này tích cực ở mức thấp

* I/OW: Tín hiệu này báo cho biết ngoại vi cần số liệu trên tuyến Data bus, tín hiệu nàytích cực ở mức thấp

* MEMR: Chỉ thị bộ nhớ để đa số liệu của nó trên Data bus Tín hiẹu này tích cực ởmức thấp

* MEMW: Chỉ thị bộ nhớ chứa số liệu trên Data bus Tín hiệu này tích cực ở mức thấp

* IRQ2 – Cấu trúc và hoạt động của hệ vi xử lý: IRQ7: Các tín hiệu này tạo nên yêu cầu ngắt đối với bộ vi xử lý – Cấu trúc và hoạt động của hệ vi xử lý: chúngtrực tiếp đến bộ điều khiển ngắt 8259 theo thứ tự tín hiệu IRQ2 – Cấu trúc và hoạt động của hệ vi xử lý: có mức u tiên caonhất và IRQ7 có mức u tiên thấp nhất

* DRQ1, DRQ2, DRQ3: Các tín hiệu này dùng để báo khi thiết bị ngoại vi muốnchuyển số liệu giữa chúng và bộ nhớ mà không có sự can thiệp của bộ vi xử lý Tín hiệunày tác động ở mức cao

* DACK1, DACK2, DACK3: Để báo cho biết thiết bị ngoại vi qúa trình DMA đã chấpnhận tín hiệu này tác động ở mức thấp

* AEN (Address Enable): Tín hiệu này đợc phát ra từ bộ điều khiển DMA, nó tác động

2.1.4 Chọn địa chỉ cho card giao tiếp:

Vùng vào ra của máy tính đã chiếm giữ 64 kbyte của bộ nhớ tổng cộng với dunglợng hàng vài Mbyte trở lên Vì vậy vùng vào ra của một card không đợc phép bao trùmlên vùng địa chỉ vào/ra của máy tính

Bảng dới đây sẽ chỉ ra sự sắp xếp của vùng địa chỉ vào/ra của máy tính PC/AT

Địa chỉ (Hex) I/O Chức năng

000 – Cấu trúc và hoạt động của hệ vi xử lý: 01F Bộ điều khiển DMA 1 (8232)

13

Trang 14

020 – Cấu trúc và hoạt động của hệ vi xử lý: 03F Bộ điều khiển ngắt (8259)

040 – Cấu trúc và hoạt động của hệ vi xử lý: 01F Bộ phát thời gian (8259)

060 – Cấu trúc và hoạt động của hệ vi xử lý: 06F Bộ kiểm tra bàn phím (8242)

070 – Cấu trúc và hoạt động của hệ vi xử lý: 07F Đồng bộ thời gian thực (M146818)

080 – Cấu trúc và hoạt động của hệ vi xử lý: 09F Thanh ghi trong DMA (LS670)

0A0 – Cấu trúc và hoạt động của hệ vi xử lý: 0AF Bộ điều khiển DMA 2 (8237)

0E0 – Cấu trúc và hoạt động của hệ vi xử lý: 0EF Dự trữ cho mảng mạch chính

0F8 – Cấu trúc và hoạt động của hệ vi xử lý: 0FF Bộ đồng xử lý 8087

1F0 – Cấu trúc và hoạt động của hệ vi xử lý: 1F8 Bộ điều khiển đĩa cứng

200 – Cấu trúc và hoạt động của hệ vi xử lý: 20F Cổng dùng cho trò chơi Game

278 – Cấu trúc và hoạt động của hệ vi xử lý: 27F Cổng song song 2 (LPT 3)

2B0 – Cấu trúc và hoạt động của hệ vi xử lý: 2DF Card EGA 2

2E8 – Cấu trúc và hoạt động của hệ vi xử lý: 2EF Cổng nối tiếp 4 (COM 4)

2F8 – Cấu trúc và hoạt động của hệ vi xử lý: 2EF Cổng nối tiếp 2 (COM 2)

300 – Cấu trúc và hoạt động của hệ vi xử lý: 31F Dùng cho card mở rộng

320 – Cấu trúc và hoạt động của hệ vi xử lý: 32F Bộ điều khiển đĩa cứng

360 – Cấu trúc và hoạt động của hệ vi xử lý: 36F Cổng nối mạng (LAN)

378 – Cấu trúc và hoạt động của hệ vi xử lý: 37F Cổng song song 1 (LPT 1)

380 – Cấu trúc và hoạt động của hệ vi xử lý: 38F Cổng nối tiếp đồng bộ 2

3A0 – Cấu trúc và hoạt động của hệ vi xử lý: 3AF Cổng nối tiếp đồng bộ 1

3B0 – Cấu trúc và hoạt động của hệ vi xử lý: 3B7 Màn hình đơn sắc

3C0 – Cấu trúc và hoạt động của hệ vi xử lý: 3CF Card EGA

3D0 – Cấu trúc và hoạt động của hệ vi xử lý: 3EF Cổng nối tiếp 3 (COM 3)

3F0 – Cấu trúc và hoạt động của hệ vi xử lý: 3F7 Bộ điều khiển đĩa mềm

3F8 – Cấu trúc và hoạt động của hệ vi xử lý: 3FF Cổng nối tiếp 1 (COM 1)

Các địa chỉ 300(H) đến 31F(H) đã đợc dự tính cho các card mở rộng Các đờngdẫn địa chỉ đợc sử dụng đối với vùng này là A0 đến A9 Thông thờng thì các địa chỉ, màdới các địa chỉ này máy tính có thể trao đổi đợc với Card mở rộng, có thể đặt đợc ởchính trên Card

2.2.1 Các chuẩn truyền thông trong điều khiển:

Các chuẩn điển hình:

Chuẩn Tơng đơng ISO/CCITT Mô tả

EIARS_232 CCITTV.28 Truyền nT tới trên 20Kps/20m

EIARS_423 CCITTV.11 Truyền nT tới trên 10Mbps/1200m

EIARS_423 CCRTTV.10 Truyền nT tới trên 300Kbps/1200m

IEEE802.2 ISO8802.2 Mạng LAN:IEEE chuẩn cho điều khiển m

IEEE802.4 ISO8802.4 Mạng LAN: Chuẩn thẻ bài trong một mạn

IEEE802.5 ISO8802.5 Mạng LAN: Tôpô vòng với thẻ

CCITTX.21 Mạng WAN: Ghép nối lớp vật lý với PSDN

HDL.CCITT Mạng WAN: ghép nối lớp dữ liệu với PSDN

X.212/222CCITTX.25 Mạng WAN: Ghép nối lớp mạng với PSDN

CCITT 1430/1 Mạng số dịch vụ tích hợp: Ghép nối lớp vật lý tới một mạng sốdịch vụ tích hợp

CCITT 1440/1 Mạng số dịch vụ tích hợp: Ghép nốilớp dữ liệu với một mạng số dịch vụ tích hợp

CCITT 14450/1 Mạng số dịch vụ tích hợp: Ghép nối lớp mạng với một mạng sốdịch vụ tích hợp

Các cơ quan lập tiêu chuẩn:

Có 6 cơ quan xây dựng tieu chuẩn quốc tế đã tiến hành qui định và xây dựng cácchuẩn áp dụng cho các hệ thống truyền thông dữ liệu

Đó là:

1- Tổ chức quốc tế và tiêu chuẩn hoá (ISO: International Organzation Standardization)

14

Trang 15

2- Uỷ ban t vấn quốc tế về điện thoại và viễn thông (CCITT)

3- Hiệp hội các nhà công nghiệp điện (EIA: Electrical Indutries Association)

4- Liên đoàn viễn thông quốc tế (ITU: Internation Telecommunications Union)

5- Viện tiêu chuẩn quốc gia Hoa Kỳ (ANSI: American National Standards Institute)6- Viện các kỹ s điện và điện tử (IEEE - Institute of Electrical and ElectronicEngineers)

2.3 Các phơng pháp trao đổi dữ liệu điều khiển.

2.3.1 Giới thiệu chung về các phơng pháp điều khiển vào/ra dữ liệu

Có thể phân biệt ra làm 3 phơng pháp điều khiển vào/ra dữ liệu:

Vào /ra dữ liệu điều khiển bằng cách thăm dò trạng thái sẵn sàng của thiết bịngoại vi

Vào /ra dữ liệu điều khiển bằng cách ngắt bộ vi xử lý

Vào /ra dữ liệu điều khiển bằng phần cứng phụ để thâm nhập trực tiếp vào bộ nhớ.Mỗi phơng pháp điều khiển vào/ra dữ liệu nói trên có những đặc điểm khác nhau

và sẽ đợc ứng dụng trong các hoàn cảnh khác nhau

Nh vậy, khi CPU muốn có thông tin về nhiệt độ của hệ thống thì nó chỉ việc đọc cổngphối ghép với bộ đo nhiệt độ, và nếu CPU muốn biểu diễn thông tin vừa đọc đợc trên

đèn LED thì nó chỉ việc đa tín hiệu điều khiển tới đó mà không phải kiểm tra xem cácthiết bị này có đang sẵn sàng làm việc hay không

Tuy nhiên trong thực tế không phải lúc nào CPU cũng làm việc với các đối tợng

"liên tục sẵn sàng" nh trên Thông thờng khi CPU muốn làm việc vơi một đối tợng nào

đó, trớc tiên nó phải kiểm tra xem thiết bị đó có đang ở trạng thái sẵn sàng làm việchay không , nếu có thì nó mới thực hiện việc trao đổi dữ liệu Nh vậy, nếu làm việc theophơng pháp thăm dò thì hệ thông thờng CPU phải đợc dành riêng cho việc trao đổi dữliệu vì nó phải liên tục kiểm tra trạng thái sẵn sàng của thiết bị ngoại vi thông qua cáctín hiệu móc nối (handshake signal) Các tín hiệu này đợc lấy từ mạch phối ghép, dongời thiết kế tạo ra, để chơng trình thăm dò hoạt động trên đó

15

Trang 16

Mô tả hoạt động của phần mạch vào dữ liệu.

Khi thiết bị vào số 1 có 1 byte số liẹu cần trao đổi, nó đa ra xung STB để chophép mạch chốt 8 bit lấy byte dữ liệu đồng thời kích cho mạch lật D (mạch tạo tín hiệusẵn sàng) làm việc CPU sẽ thăm dò trạng thái sẵn sàng của thiết bị vào số 1 qua bit D0khi nó đọc cổng D0 Đến khi CPU đọc 1 byte dữ liệu vào thì nó đồng thời xoá luônmạch tạo trạng thái sẵn sàng để chuẩn bị cho lần làm việc tới với 1 byte dữ liệu khác

16

Mạch 3 trạng thái OC

Chốt 8 bít G

Thiết

bị 1 (vào) STB

Pr

D

Q CLKclrOSPO2OSPO2

Trang 17

Vòng Vòng thăm dò thăm dò

Đúng Đúng

a) Đọc dữ liệu từ cổng 01 b) Ghi dữ liệu ra cổng 02

Hình 2.3.2 - Lu đồ chu trình đọc và ghi dữ liệu

2.3.3 - Vào/ra dữ liệu bằng DMA:

Để trao đổi dữ liệu thật nhanh với thiết bị ngoại vi: nh khi cần đa dữ liệu hiển thị

ra màn hình hoặc trao đổi dữ liệu với bộ điều khiển, ta cần có đợc khả năng ghi/ đọc dữliệu trực tiếp với bộ nhớ (direct memory access, DMA - thâm nhập vào bộ nhớ trực tiếpkhông thông qua CPU) thì mới đáp ứng đợc yêu cầu về tốc độ trao đổi dữ liệu Để làm

đợc điều này các hệ vi xử lý nói chung đều phải dùng thêm mạch chuyên dụng để điềukhiển việc thâm nhập trực tiếp vào bộ nhớ

(direct memory access controller, DMAC)

Để hỗ trợ cho việc trao đổi dữ liệu với thiết bị ngoại vi bằng cách thâm nhập trựctiếp vào bộ nhớ, tại mỗi vi mạch CPU thờng tồn tại chân yêu cầu treo HOLD để thiết bịngoại vi, mỗi khi có yêu cầu dùng bus cho việc trao đổi dữ liệu với bộ nhớ thì thôngqua chân này mà báo cho CPU biết Đến lợt CPU khi nhận đợc yêu cầu treo thì nó tựtreo lên (tự tách ra khỏi hệ thống bằng cáh đa các bus vào trạng thái trở kháng cao) và

đa xung HLDA ra ngoài để thông báo CPU cho phép sử dụng bus

CPU

HOLD

DRQDACK

MEM

Trang 18

Ta nhận thấy trong hệ thống này, khi CPU tự tách ra khỏi hệ thống bằng việc tựtreo (ứng với vị trí hiện thời cảu công tắc chuyển mạch) để trao quyền sử dụng bus choDMAC thì DMAC phải chịu trách nhiệm diều khiển toàn bộ hoạt động trao đổi dữ liệucủa hệ thống Để làm đợc điều đó DMAC phải có khả năng tạo ra đợc các tín hiệu điềukhiển cần thiết giống nh các tín hiệu của CPU và bản thân nó phải là một thiết bị lậptrình đợc.

Quá trình hoạt động của hệ thống;

Khi thiết bị ngoại vi có yêu cầu trâo đổi dữ liệu kiểu DMA với bộ nhớ, nó đ a yêucầu DRQ = 1 đến DMAC, DMAC sẽ đa yêu cầu trao đổi HRQ = 1 đến chân HOLD củaCPU Nhận đợc yêu cầu treo, CPU sẽ treo các bus của mình và trả lời chấp nhận treoqua tín hiệu HLDA = 1 đến chân HACK của DMAC DMAC sẽ thông báo cho thiết bịngoại vi thông qua tín hiệu DACK = 1 là nó cho phép thiết bị ngoại vi trao đổi dữ liệukiểu DMA Khi qúa trình DMA kết thúc thì DMAC đa ra tín hiệu HRQ = 0

Trong thực tế tồn tại 3 kiểu trao đổi dữ liệu bằng cách thâm nhập trực tiếp vào bộnhớ nh sau:

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

Trao đổi cả một mảng dữ liệu:

Trong chế độ này CPU bị treo trong suốt quá trình trao đổi mảng dữ liệu Chế độnày đợc dùng khi ta có nhu cầu trao đổi dữ liệu với ổ đĩa hoặc đa dữ liệu ra hiển thị.Các bớc thủ tục để chuyển một mnảg dữ liệu từ bộ nhớ ra thiết bị ngoại vi:

1 CPU phải ghi từ điều khiển và từ chế độ làm việc vào DMAC để qui định cáchthức làm việc Địa chỉ đầu của mảng nhớ, độ dài của mảng nhớ

2 Khi thiết bị ngoại vi có yêu cầu trao đổi dữ liệu, nó đa DRQ = 1 đến DMAC

3 DMAC đa ra tín hiệu HRQ đến chân HOLD của CPU để yêu cầu treo CPU.Tín hiệu HOLD phải ở mức cao cho đến hết quá trình trao đổi dữ liệu

4 Nhận đợc yêu cầu treo, CPU kết thúc chu kỳ bus hiện tại sau đó nó treo cácbus của mình và đa ra tín hiệu HLDA báo cho DMAC đợc toàn quyền sử dụng bus

5 DMAC đa ra xung DACK để báo cho thiết bị ngoại vi biết là có thẻ bắt đầutrao đổi dữ liệu

6 DMAC bắt đầu chuyển dữ liệu từ bộ nhớ ra thiết bị ngoại vi bằng cách đa địachỉ của byte đầu ra bus địa chỉ và đa ra tín hiệu MEMR=0 để đọc 1 byte từ bộ nhớ rabus dữ liệu Tiếp đó DMAC đa ra tín hiệu IOW= 0 để ghi dữ liệu ra thiết bị ngoại vi,DMAC sau đó giảm bộ đếm số byte còn phải chuyển, cập nhật địa chỉ của byte cần đọctiếp, và lặp lại các động tác trên cho tới khi hết số đếm (TC)

7 Khi quá trình DMA kết thúc, DMAC cho ra tín hiệu HRQ = 0 để báo choCPU biết để CPU giành quyền điều khiển hệ thống

Treo CPU để trao đổi từng byte:

Trong cách trao đổi dữ liệu này CPU không bị treo lâu dài trong một lần nhngthỉnh thoảng lại bị treo trong một khoảng thời gian rất ngắn đủ để trao đổi 1 byte dữliệu (CPU bị lấy mất một số chu kỳ đồng hồ) Do bị lấy đi một số chu kỳ đồng hồ nhvậy nên tốc độ thực hiện một công việc nào đó của CPU chỉ bị suy giảm chứ không bịdừng lại Cách hoạt động cũng tơng tự nh phần trớc, chỉ có điều môic lần DMAC yêucầu treo CPU thì chỉ có 1 byte đợc trao đổi

Tận dụng thời gian CPU không dùng bus để trao đổi dữ liệu:

Trong cách trao đổi dữ liệu này, ta phải có các logic phụ bên ngoài cần thiết đểphát hiện ra các chu kỳ xử lý nội bộ của CPU (không dùng đến bus ngoài) và tận dụngcác chu kỳ đó vào việc trao đổi dữ liệu giữa thiết bị ngoại vi với bộ nhớ Trong cáchlàm này thì DMAC và CPU luân phiên nhau sử dụng bus và việc thâm nhập trực tiếp

bộ nhớ kiểu này không ảnh hởng gì tới hoạt động bình thờng của CPU

2.4 - Ngắt và điều khiển ngắt trong điều khiển truyền thông:

2.4.1 - Sự cần thiết phải ngắt CPU:

18

Trang 19

Trong cách tổ chức trao đổi dữ liệu thông qua việc thăm dò trạng thái sẵn sàngcủa hitết bị ngoại vi, trớc khi tiến hành bất kỳ một cuộc trao đỏi dữ liệu nào CPU phải

để toàn bộ thời gian vào việc xác định trạng thái sẵn sàng làm viẹc của thiết bị ngoại vi.Trong hệ thống VXL với cách làm việc nh vậy, thông thờng CPU đợc thiết kế chủ yếuchỉ là để phục vụ cho việc vào/ra dữ liệu và thc hiện các xử lý liên quan

Trong thực tế ngời ta rất muốn tận dụng khả năng của CPU để làm thêm đợcnhiều công việc khác nữa, chỉ khi nào có yêu cầu trao đổi dữ liệu thì mới yêu cầu CPUtạm dừng công việc hiện tại để phục vụ việc trao đổi dữ liệu Sau khi hoàn thành việctrao đổi dữ liệu thì CPU lại phải quay về để làm tiếp công việc hiện đang bị gián đoạn.Cách làm việc theo kiểu này gọi là ngắt CPU( gián đoạn hoạt động của CPU) để trao

đổi dữ liệu Một hệ thống với cách hoạt động theo kiểu này có thể đáp ứng rất nhanhvới các yêu cầu trao đổi dữ liệu trong khi vẫn có thể làm đợc các công việc khác Muốn

đạt đợc điều này ta phải có cách tổ chức hệ thống sao cho có thể tận dụng đợc khả năngthực hiện các chơng trình phục vụ ngắt tại các địa chỉ xác định của CPU

Ngắt cứng INTR là yêu cầu ngắt che đợc.Các lệnh CLI và STI có ảnh hởng trựctiếp tới trạng thái của cờ IF trong bộ vi xử lý , tức là ảnh hởng tới việc CPU có nhận biếtyêu cầu ngắt tại chân này hay không Yêu cầu ngắt tại chân INTR có thể có kiểu ngắt Nnằm trong khoảng 0 - FFH Kiểu ngắt này phải đựơc đa vào bus dữ liệu để CPU có thể

đọc đợc khi có xung INTA trong chu kỳ trả lời chấp nhận ngắt

+ Nhóm các ngắt mềm: Khi CPU thực hiện các lệnh ngắt dạng INTR, trong đó N

là số hiệu (kiểu) ngắt nằm trong khoảng 00 - FFH (0 - 255)

+ Nhóm các hiện tợng ngoại lệ: Đó là các ngắt do cá lỗi nảy sinh trong quá trìnhhoạt động của CPU nh phép chia cho 0, xảy ra tràn khi tính toán

+ Yêu cầu ngắt sẽ đợc CPU kiểm tra thờng xuyên tại chu dồng hồ cuối cùng củamỗi lệnh

19

N (Kiểu ngắt)

Trang 20

Giả thiết ở một thời điểm nhất định chỉ có 1 yêu cầu ngắt IRi đ ợc tác động và khi

đó ở đầu ra của mạch NAND sẽ có xung yêu cầu ngắt đến CPU Tín hiệu IRi đ ợc đồngthời đa qua mạch khuếch đại đệm để tạo ra số hiệu ngắt tơng ứng, số hiệu ngắt này sẽ

đợc CPU đọc và khi nó đa ra tín hiệu trả lời INTA

Hình 2.4.3: Quan hệ giữa Iri và số hiệu ngắt N

2 4.3 - Đáp ứng của CPU khi có yêu cầu ngắt:

Khi có yêu cầu ngắt kiểu N đến chân CPU và nếu yêu cầu đó đợc phép, CPUthực hiện các công việc sau:

1 SP SP - 2, SP   FR ,trong đó SP  là ô nhớ do SP chỉ ra (chỉ ra đỉnh mới củangăn xếp, cất thanh ghi cờ vào đỉnh ngăn xếp)

Trang 21

đó nh thế nào? Câu trả lời là CPU xử lý các yêu cầu ngắt theo thứ tự u tiên với nguyêntắc ngắt nào có mức u tiên cao nhất sẽ đợc CPU nhận biết và đợc phục cụ trớc.

Các mức u tiên ngắt (theo thứ tự từ cao tới thấp):

Mức u tiên+ Ngắt nội bộ: INTO (phép chia cho 0), INTN, INTO Cao nhất

+ Ngắt không che đợc NMI

+ Ngắt che đợc INTR

Để thấy rõ hoạt động của CPU trong cơ chế ngắt u tiên này ta có thể lấy một ví

dụ cụ thể nh sau:

Giả thiết tại một thời điểm nào đó, trong khi CPU (ở trạng thái cho phép ngắt với

cờ IF = 1) đang thực hiện phép chia và có lỗi xảy ra do số bị chia bằng 0, đúng vào lúc

đó CPU cũng nhận đợc yêu cầu ngắt từ đầu vào INTR CPU sẽ xử lý nh sau:

Theo thứ tự u tiên ngầm định trong việc xử lý ngắt của CPU 8088 thì INT 0 cómức u tiên cao hơn INTR, vì vậy đầu tiên CPU sẽ thực hiên chơng trình phục vụ ngắtINT 0 để đáp ứng với lỗi đặc biệt do phép chia cho 0 gây ra và cờ IF bị xoá về 0 yêucầu ngắt INTR sẽ tự động bị cấm cho đến khi chơng trình phục vụ ngắt INT 0 đợc hoànthành và trở về nhờ IRET, cờ IF cũ đợc trả lại Tiếp theo đó CPU sẽ đáp ứng yêu cầungắt INTR bằng cách thực hiện chơng trình ngắt dành cho INTR

2.5 Cấu trúc 8255:

8255 là vi mạch giao tiếp ngoại vi lập trình đợc, thờng sử dụng cho các hệ vi tínhcủa INTEL Vi mạch có 40 chân trong đó có chứa 24 đờng dẫn vào ra dợc xếp thànhcổng song song (cổng A, B, C) Tính linh hoạt của vi mạch này thể hiện ở khả năng lậptrình qua một thanh ghi điều khiển Có sơ đồ chân nh hình 2.5.1 và sơ đồ khối nh hình2.5.2

Hình 2.5.1 - Sơ đồ chân vi mạch 8255

21

Bộ đếm bus

số liệu

Khối logic

điều khiển

Điều khiển nhóm A

Nhóm A (Port B)

Nhóm B

4 bit thấp (PortC)

Nhóm A

4 bit cao (PortC)

Nhóm A (Port A)

Điều khiển nhóm A

1

20191817161514131211109

2122232425262728293031

32

33

34353637383840

8765432

PB3PB4PB5PB6

D0ResetWRPA7PA6PA5PA4

PB2PB1PB0PC3PC2PC1PC0PC4PC5PC6PC7A2A1GDNCSRDPA0PA1PA2PA3

D2

D1

D3

D5

D4

D6D7

PB7+5V

Ngày đăng: 08/07/2014, 11:12

HÌNH ẢNH LIÊN QUAN

Sơ đồ khối tổng quát và hoạt động của hệ vi xử lý - Luận văn Thiết kế CARD vào ra đa năng sử dụng Slot của PC
Sơ đồ kh ối tổng quát và hoạt động của hệ vi xử lý (Trang 6)
Hình 2.2: Phân bố chân cổng máy in - Luận văn Thiết kế CARD vào ra đa năng sử dụng Slot của PC
Hình 2.2 Phân bố chân cổng máy in (Trang 9)
Hình 2.5 Sơ đồ bố trí chân cổng nối tiếp. - Luận văn Thiết kế CARD vào ra đa năng sử dụng Slot của PC
Hình 2.5 Sơ đồ bố trí chân cổng nối tiếp (Trang 11)
Hình 2.11: Sơ đồ rãnh cắm ổ 2 chân - Luận văn Thiết kế CARD vào ra đa năng sử dụng Slot của PC
Hình 2.11 Sơ đồ rãnh cắm ổ 2 chân (Trang 13)
Bảng dới đây sẽ chỉ ra sự sắp xếp của vùng địa chỉ vào/ra của máy tính PC/AT. - Luận văn Thiết kế CARD vào ra đa năng sử dụng Slot của PC
Bảng d ới đây sẽ chỉ ra sự sắp xếp của vùng địa chỉ vào/ra của máy tính PC/AT (Trang 14)
Hình 2.3.3 - Hệ vi xử lý với DMAC - Luận văn Thiết kế CARD vào ra đa năng sử dụng Slot của PC
Hình 2.3.3 Hệ vi xử lý với DMAC (Trang 18)
Hình 2.3.2 - Lu đồ chu trình đọc và ghi dữ liệu - Luận văn Thiết kế CARD vào ra đa năng sử dụng Slot của PC
Hình 2.3.2 Lu đồ chu trình đọc và ghi dữ liệu (Trang 18)
Hình 2.4.3: Quan hệ giữa Iri và số hiệu ngắt N - Luận văn Thiết kế CARD vào ra đa năng sử dụng Slot của PC
Hình 2.4.3 Quan hệ giữa Iri và số hiệu ngắt N (Trang 21)
Hình 2.5.1 - Sơ đồ chân vi mạch 8255 - Luận văn Thiết kế CARD vào ra đa năng sử dụng Slot của PC
Hình 2.5.1 Sơ đồ chân vi mạch 8255 (Trang 22)
Hình 3.8: Sơ đồ cấu trúc Mode 1 phần thu - Luận văn Thiết kế CARD vào ra đa năng sử dụng Slot của PC
Hình 3.8 Sơ đồ cấu trúc Mode 1 phần thu (Trang 26)
Hình 2.5.3 Từ trạng thái cổng C - Luận văn Thiết kế CARD vào ra đa năng sử dụng Slot của PC
Hình 2.5.3 Từ trạng thái cổng C (Trang 27)
1..2. Sơ đồ khối của Card mở rộng: - Luận văn Thiết kế CARD vào ra đa năng sử dụng Slot của PC
1..2. Sơ đồ khối của Card mở rộng: (Trang 30)
3. Bảng chức năng - Luận văn Thiết kế CARD vào ra đa năng sử dụng Slot của PC
3. Bảng chức năng (Trang 32)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w