Chương 1; Sơ lược về hệ thống ghép nốimáy tính 1.1 Yêu cầu trao đổi thông tin của máy tính với môi trường ngoài Yêu cầu trao đổi thông tin của máy tính với môi trường ngoài~ YÊU CẦU TRAO
Trang 1Ngoại vi và giao diện
Biên tập bởi:
Khoa CNTT ĐHSP KT Hưng Yên
Trang 2Ngoại vi và giao diện
Trang 3MỤC LỤC
1 Mục lục
1.1 Muc luc - Ngoai vi va dieu khien~
2 Chương 1; Sơ lược về hệ thống ghép nối máy tính
2.1 1.1 Yêu cầu trao đổi thông tin của máy tính với môi trường ngoài
2.1.1 Yêu cầu trao đổi thông tin của máy tính với môi trường ngoài~
2.2 1.2 Các dạng và loại tin trao đổi
2.2.1 Các dạng và loại tin trao đổi~
2.3 1.3 Các khối ghép nối
2.3.1 Các khối ghép nối~
2.4 1.4 Thủ tục trao đổi tin của máy tính
2.4.1 Thủ tục trao đổi tin của máy tính~
3 Chượng 2: Các phương pháp trao đổi tin
3.1 2.1 Phương pháp trao đổi tin bằng điều khiển ngắt
3.1.1 Phương pháp trao đổi tin bằng điều khiển ngắt~
3.2 2.2 Phương pháp trao đổi tin song song theo chương trình
3.2.1 Phương pháp trao đổi tin song song theo chương trình~
3.3 2.3 Phương pháp trao đổi bằng truy cập trực tiếp bộ nhớ
3.3.1 Phương pháp trao đổi bằng truy cập trực tiếp bộ nhớ~
3.4 2.4 Ghép nối trao đổi nối tiếp không đồng bộ
3.4.1 Ghép nối trao đổi nối tiếp không đồng bộ~
4 Chương 3: Một số thiết bị ngoại vi thông dụng
Trang 45.3 4.3 Ứng dụng của ADC và DAC
5.3.1 Ứng dụng của ADC và DAC~
Tham gia đóng góp
Trang 5Mục lục
Muc luc - Ngoai vi va dieu khien~
Chương I: SƠ LƯỢC VỀ HỆ THỐNG GHÉP NỐI MÁY TÍNH
1.1 Yêu cầu trao đổi thông tin của máy vi tính với môi trường ngoài
1.1.1 Yêu cầu trao đổi tin với người điều hành
1.1.2 Yêu cầu trao đổi tin với thiết bị ngoài
1.1.3 Yêu cầu trao đổi tin trong mạng máy tính
1.2 Các dạng và loại tin trao đổi
1.2.1 Các dạng tin
1.2.2 Các loại tin
1.3 Các khối ghép nối
1.3.1 Khái quát chung về khối ghép nối
1.3.2 Phân loại khối ghép nối
1.4 Thủ tục trao đổi tin của máy tính
Chương II: CÁC PHƯƠNG PHÁP TRAO ĐỔI TIN
2.1 Phương pháp trao đổi tin bằng điều khiển ngắt
2.1.1 Khái niệm và phân loại ngắt
2.1.2 Sơ đồ điều khiển ngắt
2.2 Phương pháp trao đổi tin song song theo chương trình
2.2.1 Khối ghép nối song song
2.2.2 Vi mạch vào ra theo chương trình
Trang 62.2.3 Sơ đồ ghép nối
2.3 Phương pháp trao đổi bằng truy cập trực tiếp bộ nhớ
2.3.1 Thủ tục trao đổi tin DMA
2.3.2 Vi mạch điều khiển DMAC
2.3.3 Trao đổi tin DMA trong máy vi tính
2.4 Ghép nối trao đổi nối tiếp không đồng bộ
Chương III:MỘT SỐ THIẾT BỊ NGOẠI VI THÔNG DỤNG
Trang 73.4 Thiết bị nhớ ngoài
3.4.1 Thiết bị từ tính
3.4.2 Thiết bị quang
3.4.3 Phương pháp tác động
Chương IV: BIẾN ĐỔI A/D VÀ LẬP TRÌNH GHÉP NỐI MÁY TÍNH
4.1 ADC (Analog to Digital Converter)
4.1.1 Khái niệm
4.1.2 Một số mạch ghép nối ADC đơn giản
4.2 DAC (Digital to Analog Converter)
4.2.1 Khái niệm
4.2.2 Một số mạch ghép nối DAC đơn giản
4.3 Ứng dụng của ADC và DAC
4.4 Lập trình ghép nối trên WINDOWS
4.4.1 Tệp *.DLL và cách tiếp cận
4.4.2 Cách tạo và sử dụng tệp *.DLL trong BASIC và DELPHI
4.4.3 Một số ví dụ minh hoạ
Trang 8Chương 1; Sơ lược về hệ thống ghép nối
máy tính
1.1 Yêu cầu trao đổi thông tin của máy tính với môi trường ngoài
Yêu cầu trao đổi thông tin của máy tính với môi trường ngoài~
YÊU CẦU TRAO ĐỔI THÔNG TIN CỦA MÁY VI TÍNH VỚI MÔI
TRƯỜNG NGOÀI
Trong quá trình thực hiện, máy tính cần phải có giao tiếp với môi trường ngoài Có thể
là đưa tin vào (nhập dữ liệu) hoặc đưa tin ra (xuất dữ liệu) Việc trao đổi dữ liệu này
có thể thực hiện thông qua người điều hành, các thiết bị nhập xuất khác, các hệ thốngchuyên dụng, các máy tính khác
Yêu cầu trao đổi tin với người điều hành
Người điều hành (người sử dụng) máy tính cần đưa các lệnh, dữ liệu dưới dạng chữ cái
và dạng chữ số hoặc các ký tự thông qua bàn phím (Keyboard) Khi người điều hànhnhấn vào phím trên bàn phím, những mã (thường là mã ASCII) được tạo ra và đượctruyền vào bộ nhớ của máy tính, hiển thị trên màn hình các kí tự đã nhấn
Yêu cầu trao đổi tin với thiết bị ngoài
Các thiết bị ngoài thông dụng là các thiết bị tối thiểu thường dùng cho một hệ thống máytính dùng để đưa tin vào và đưa tin ra
Các thiết bị đưa tin vào:
- Máy đọc băng giấy dùng để đọc các tin trên các tấm bìa đục lỗ
- Máy quét: dùng để quét tài liệu, các bức tranh, ảnh hoặc một vật (mỏng) nào đó
- Con chuột, bàn phím
Các thiết bi đưa tin ra:
- Máy in: in kim, in phun, in Laser
Trang 9- Máy đục băng giấy: Đục lỗ trên các tấm bìa
Các bộ nhớ ngoài:
Các ổ đĩa cứng, đĩa mềm, đĩa CD , ổ Flash, đĩa ZIP
Yêu cầu trao đổi tin trong mạng máy tính
Một máy tính (A) này có thể cần thiết một số dữ liệu tại một máy tính khác (B) trongcùng một mạng máy tính, khi đó, máy tính A sẽ gửi một yêu cầu đến máy tính B Nếuyêu cầu đó được đáp ứng, thì máy tính B sẽ gửi dữ liệu sang cho máy A
Trong một mạng máy tính, có thể dữ liệu tại một máy tính được nhều máy tính kháccùng khai thác tại một thời điểm
Trang 101.2 Các dạng và loại tin trao đổi
Các dạng và loại tin trao đổi~
CÁC DẠNG VÀ LOẠI TIN TRAO ĐỔI
Các dạng tin
Máy vi tính (MVT) chỉ trao đổi in dưới dạng số với các mức logic 0 và 1 Nhưng, cácthiết bị ngoại vi (TBNV) lại trao đổi tin với nhiều dạng khác nhau như dạng số, chữ -
số, tương tự, âm tần hình sin tuần hoàn
1 Dạng số: Là chuỗi các bit 0 hay 1 được biểu diễn theo hệ nhị phân (Binary), hệ
8 (Octal), hệ 16 (Hexadecimal) Đó là tin của bàn phím đơn giản Tin này cóthể đưa thẳng vào đường dây số liệu của MVT hay qua một thanh ghi đệm
2 Dạng chữ - số: Dạng này thường được thể hiện thông qua các chữ cái A-Z hoặcchữ số 0-9 bằng một loại mã thông dụng cho mã điện thoại quốc tế ASCII.Mỗi chữ cái hoặc con số được bbiểu diễn bởi tổ hợp 7 hoặc 8 bit nhị phân
Như vậy, để nhập dữ liệu vào, bàn phím phải có bộ phận tạo mã ASCII; để in dữ liệu ramàn hình, mã ASCII này cũng phải được biến đổi thành các chữ cái hoặc con số bằngcác điểm ảnh của màn hình
1 Dạng tương tự (Analog): Các tin tức vật lý thu được dưới dạng một tín hiệuđiện (điện thế, cường độ dòng điện) kéo dài trong một khoảng thời gian t nào
đó Chúng được gọi là các tín hiệu liên tục theo thời gian Muốn đưa các tínhiệu này vào máy tính, thì chúng phải được biến đổi để trở thành các tín hiệurời rạc theo thời gian, tức là biến đổi thành các tín hiệu 0 hoặc 1 Hình thứcbiến đổi này được gọi là biến đổi A/D
Ngược lại, muốn đưa những tín hiệu số 0,1 từ máy tính ra thành các tín hiệu tương tựnhư vậy, cần phải có hình thức biến đổi D/A
4 Dạng âm tần hình sin: Tiếng nói của con ngời, một số dạng tín hiệu dao động khác
Các loại tin
1/ Các tin đưa từ máy tính ra thiết bị ngoại vi: Gồm 1 trong 3 loại tin sau:
- Tin về địa chỉ: Đó là tin của địa chỉ TBNV, chính xác hơn là địa chỉ của thanh ghi đệm
Trang 11- Tin lệnh điều khiển: Đó là các tín hiệu để điều khiển KGN hay TBNV như đóng mởthiết bị, đọc hoặc ghi vào TBNV, cho phép hay trả lời yêu cầu hành động Các tin nàythường được kí hiệu: Lệnh (Ví dụ: RD, WR, INT, INTA )
- Tin về số liệu (dữ liệu): Đó là các số liệu cần đưa ra cho các TBNV Thường được kíhiệu là: D0-Dm-1
2/ Các tin đưa từ TBNV vào máy tính: Gồm 1 trong 2 loại tin sau:
- Tin về trạng thái của TBNV: Đó là tin về sự sẵn sàng hay yêu cầu trao đổi tin, về trạngthái lỗi của TBNV
- Tin về số liệu: Đó là các số liệu cần đưa vào MVT
Trang 121.3 Các khối ghép nối
Các khối ghép nối~
CÁC KHỐI GHÉP NỐI
Khái quát chung về khối ghép nối
1/ Vị trí, vai trò: KGN nằm giữa MVT và TBNV, đóng vai trò biến đổi và trung chuyểntin (nhận và truyền) giữa chúng
2/ Nhiệm vụ, chức năng:
- Phối hợp trao đổi tin giữa MVT và TBNV về mức và công suất của tín hiệu, về dạngtin, tốc độ và phương thức trao đổi
- Đồng bộ hóa dạng tín hiệu giữa MVT và TBNV
3/ Đặc trưng chung của khối ghép nốid
* Cấu trúc đường dây
- Cấu trúc rẽ nhánh
- Cấu trúc mắt xích
- Cấu trúc đường dây chung
* Tên đường dây tín hiệu
- Nhóm đường dây địa chỉ
- Nhóm đường dây lệnh
Trang 13- Nhóm đường dây dữ liệu
- Nhóm đường dây tín hiệu nhịp thời gian
- Nhóm đường dây điện áp nguồn
* Phương truyền tín hiệu
- Từ GKN vào MVT
- Từ KGN ra TBNV
* Dạng truyền dữ liệu
- Truyền nối tiếp
- Truyền song song
- Truyền song song - nối tiếp
Phân loại khối ghép nối
1/ Phân loại theo chế độ trao đổi
- KGN theo chương trình: Trao đổi tin theo những lệnh đưa dữ liệu vào (IN) hay dữ liệu
ra (OUT) của khối xử lý trung tâm và qua thanh ghi chứa Accumulator rồi mới tới khốinhớ của MVT
- KGN truy nhập trực tiếp: Điều khiển sự trao đổi tin thay cho CPU, trao đổi trực tiếpgiữa TBNV và khối nhớ không thông qua thanh ghi chứa AX của VXL
2/ Phân loại theo phương pháp truyền tin
- KGN song song: Trao đổi tin theo các đường dây song song
- KGN song song-nối tiếp: Trao đổi tin song song với MVT và nối tiếp với TBNV3/ Phân loại theo dạng tin
- KGN số: Trao đổi tin dạng số
- KGN tương tự - số: Trao đổ tin dạng tương tự để biến đổi thành dạng số
- KGN số - tương tự: Biến đổi tin từ dạng số sang tương tự
Trang 144/ Phân loại theo cấu trúc hệ trao đổi tin
- KGN cho một cho một MVT - một TBNV
- KGN cho nhiều TBNV mắc song song
- KGN cho nhiều MVT và nhiều TBNV mắc song song
- KGN cho nhiều MVT
Trang 151.4 Thủ tục trao đổi tin của máy tính
Thủ tục trao đổi tin của máy tính~
THỦ TỤC TRAO ĐỔI TIN CỦA MÁY TÍNH
Chương trình phục vụ trao đổi tin cho khối ghép nối
Mỗi KGN cần viết chương trình phục vụ trao đổi tin bằng ngôn ngữ ASSEMBLY vàkhi sử dụng, người lập trình cần viết chương trình ứng dụng bằng ngôn ngữ bậc cao.Các chương trình phục vụ trao đổi tin, cần có các hành động sau:
• Khởi động KGN: Ghi các lệnh xác định chế độ (mode) và lời điều khiển KGN
và TBNV
• Ghi che chắn và cho phép ngắt
• Đọc trạng thái thiết bị: bằng lệnh đọc (IN), xử lý bằng hỏi vòng (lệnh CMP)hoặc xử lý ngắt bằng mạch điện tử (phần cứng)
• Ghi dữ liệu ra: Từ thanh ghi chứa AX của VXL bằng lệnh OUT
• Đọc dữ liệu vào MVT từ TBNV bằng lệnh IN vào thanh ghi chứa
Thủ tục trao đổi trong chế độ chương trình
1/ Trao đổi đồng bộ
MVT không cần biết TBNV có sẵn sàng hay không, mà nó đưa luôn các lệnh trao đổitin Phương pháp này được thực hiện khi:
• TBNV luôn sẵn sàng trao đổi tin
• Tốc độ trao đổi của MVT và TBNV luôn phù hợp nhau hoặc TBNV trao đổi tinnhanh
Phương pháp này có những ưu, nhược điểm sau:
• Nhanh, không tốn thời gian chờ đợi
• Thiếu tin cậy, có thể mất tin khi TBNV chưa sẵn sàng trao đổi
2/ Trao đổi không đồng bộ
Trình tự trao đổi diễn ra như sau:
Trang 16• MVT chờ và kiểm tra sự sẵn sàng trao đổi của TBNV bằng cách
+ Đọc tin về trạng thái sẵn sàng trao đổi tin của TBNV
+ Kiểm tra trạng thái sẵn sàng Nếu chưa, MVT lại đọc và kiểm tra trạng thái sẵn sàng
• MVT trao đổi tin với TBNV
• Phương pháp này được thực hiện khi tốc độ trao đổitin của TBN
Trang 17Chượng 2: Các phương pháp trao đổi tin
2.1 Phương pháp trao đổi tin bằng điều khiển ngắt
Phương pháp trao đổi tin bằng điều khiển ngắt~
Phương pháp trao đổi tin bằng điều khiển ngắt
Khái niệm và phân loại ngắt
Khái niệm ngắt
Ngắt là quá trình CPU tự ngưng hoạt động hiện tại khi có một yêu cầu ngắt gửi đến đểchuyển sang thực hiện một chương trình con phục vụ ngắt tương ứng Sau khi thực hiệnxong thì quay trở lại thực hiện tiếp công việc đang dở trên
Phân loại ngắt.
Hình 2-1: Phân loại các loại ngắt
Ngắt mềm là loại ngắt do phần mềm gây nên.Nó gồm hai loại
• Ngắt hệ thống:ngắt do các chương trình hệ thống gây nên
+ Ngắt của DOS ngắt trong chương trình hệ thống gây nên ;
+ Ngắt BIOS ngắt trong hệ điều hành vào ra cơ sở
1 ◦ Ngắt của người sử dụng là loại ngắt do người lập trình viết ra bằng các
ngôn ngữ bậc cao hay viết bằng hợp ngữ
Trang 182 Ngắt cứng:là loại ngắt do các thành phần cứng gây ra.Gồm các loại
◦ Ngắt trong:Ngắt bên trong CPU (ví dụ Phép chia cho 0)
◦ Ngắt ngoài là loại ngắt do các thành phần cứng khác và các thiết bịngoại vi gây ra.Nó bao gồm hai loại sau ngắt có cấm không cấm
+Ngắt có cấm (ngắt che được Maskable Interupt):là các loại ngắt chỉ thực hiện khi cờ IF
=1;
+ Ngắt không cấm (không thể che được Non Maskable Interupt) là loại ngắt thực hiệnđược ngay cả khi cờ IF=0;
Cơ chế thực hiện ngắt
- TBNV gửi yêu cầu tới CPU
- CPU thực hiện lệnh đang dở dang
- Sao chép nội dung vào Stack
Hình 2-2: Cơ chế thực hiện ngắt
Gửi tín hiệu chấp nhận ngắt cho KGN nếu có thực hiện được Sau đó quay sang thựchiện chương trình co phục vụ ngắt tương ứng
• Sau khi thực hiện xong CPU thu hồi lại giá
trị cho bộ đếm chương trình,thanh ghi trạng
thái thực hiện tiếp sau lệnh ngắt
Đặc điểm của ngắt
Trang 19- Ngắt mang tính ngẫu nhiên vì vậy có thể xảy ra đồng thời,nên phải có thứ tự ưu tiên
để xử lí cho hợp lí bằng mạch ưu tiên ngắt
Sơ đồ điều khiển ngắt
Sơ đồ ngắt cứng của IBM – PC
1/ Sơ đồ
Hình 2-3: Sơ đồ điều khiển ngắt cứng của IBM-PC
2/ Giải thích sơ đồ
a) ý nghĩa của các thành phần
- CPU: Central Processing Unit (Đơn vị sở lí trung tâm )
- PIC: Priority Interupt Controller (điều khiển ưu tiên ngắt )
- IVT: Interupt Vector Table (Bảng vector ngắt )
- ISR: In Service Register chương trình phục vụ ngắt
- Arbitor: Trọng tài điều khiển
- Stack:ngăn xếp
Trang 20- INT - INTerrupt (Ngắt)
- IRQ - Interrupt ReQuest (Yêu cầu ngắt)
- INTA - INTerrupt Acknowleadge (Chấp nhận ngắt)
b) Hoạt động của sơ đồ;
(1) Thiết bị ngoại vi có nhu cầu trao đổi thông tin Gửi tín hiệu INTR (INTERUPTREQUEST) tới khối ghép nối (KBN)
(2) Mạch KGN phát ra một tín hiệu (xung lớn) ngang với một chu kì lệnh (>= 20ns)tới 8259A Nếu thanh ghi chắn ngắt (Mask Interupt) trong 8259A tương ứng bằng 1 thìthôi Nếu Bằng 0 thì thực hiện bước (3)
(3) PIC 8259A phát ra một xung INT tới CPU để xử lí ngắt
- Nếu cờ IF =1 thì CPU thực hiện một lệnh tiếp theo
- Nếu cờ IF =0 thì CPU sẽ lờ đi không thực hiện
(4) CPU cất bộ đệm vào thanh ghi trạng thái vào Stack
(5) 82x86 Arbitor gửi tín hiệu chấp nhận ngắt INTA (Interupt Acknowleadge) về cho8259A để xác định chế độ ưu tiên hoá
(6) PIC 8259A xem xét mức ưu tiên ngắt ở đâu và trỏ đến bảng ưu tiên ngắt IVT
(7) Kiểm tra địa chỉ ngắt
(8) Chương trình ngắt trỏ tới BIOS hoặt IRS (DOS) và thực hiện chương trình conphục
vụ ngắt.Sau đó khi có tín hiệu kết thúc chương trình ngắt EOI(End Of Interupt) thì quaytrở lại Stack lấy lại trạng thái ban đầu và trở về chương trình chính
Bộ điều khiển ngắt cứng PIC 8259A
Trên thực tế có nhiều loại vi xử lý ngắt của nhiều hãng nổi tiếng như ZILOG,MOTOROLA,INTEL Nhưng vi mạch xử lý ngắt sử dụng trong máy tính IBM PC vàtương thích là bộ vi điều khiển PIA 8259A
Vi mạch này có các ưu điểm là: sắp xếp và xử lí
ngắt được tốt
Trang 21CS (1) :Chip select chọn mạch điều khiển
WR (2): Write (lối vào của lệnh Ghi )
RD (3) : Read (lối vào lệnh đọc )
D0 ?D7 (11?4) các bit dữ liệu hai chiều
CAS0 (12), CAS1 (13), CAS2 (15) Lối vào mắc tầng của PIC chủ với PIC tớ
SP/EN (16) Slave Programming /ANble
INT (17) Lối ra yêu cầu ngắt
IR0 ?IR7 (18?25) các vào lối yêu cầu ngắt
INTA (26):Lối ra yêu cầu ngắt
A0 (27):Địa chỉ chọn thanh ghi lệnh
Vcc(28): Nguồn nuôi
Trang 22Sơ đồ cấu trúc
Hình 2-5: Sơ đồ khối của 8259A
1 Bộ đệm dữ liệu (Data Buffer) được sử dụng khuếch đại dữ liệu
2 Logic đọc ghi (read/write Logic) Điều khiển đọc ghi
3 Bộ đệm và so sánh nối tầng:Nối PIC 8259A thành PIC tớ
4 Logic điều Khiển (Control Logic)tạo các tín hiệu ghi và đọc các thanh ghi đệm
5 thanh ghi ISR(In Service Register): chứa các chương trinhf con xử lí ngắt
6 PR (Priority Resolver) Giải quyết ưu tiên
7 IRR(Interupt Request Register ):thanh ghi tám mức ưu tiên từ TBNV
8 IMR (Interrupt Mask Register)cho người lập trình biết ngắt có che được haykhông
Trang 23Cổng và các từ điều khiển
Hình 2-6: Lưu đồ hoạt động
PIC 8259A có 4 từ điều khiển khởi động từ ICW1?ICW4 (Intialization Control Word)
và ba từ điều khiển hoạt động từ OCW1?OCW3 (Operation Control Word) Các từ điềukhiển có ý nghĩa như sau:
a/ Từ điều khiển khởi động
Vi mạch PIC 8259A được khởi động để hoạt động từ điều khiển khởi động ICW1 ?ICW4 sự hoạt động này theo lưu đồ sau:
Trang 24- ICW1 chỉ một hay nhiều vi mạch 8259A và các địa chỉ A5?A7 của chương trình con
xử lí ngắt
+ Nếu D1=S1=1 thì chỉ có một mạch (SNGL=1)
+ Nếu D1=S1 =0 thì chỉ có nhiều mạch
- ICW2 chỉ các địa chỉ từ A6? A15và A0=1của chương trình con xử lí ngắt
- ICW3 được sử dụng khi có từ hai PIC trở lên ICW1
ICW2
ICW3 được sử dụng khi có từ 2 PIC trở nên (Một PIC chủ có thể ghép thêm 8 PIC tớ )
Trang 25+)ICW 3 cho PIC chủ
+) ICW3 cho PIC tớ
ID0 ? ID2 (tại bít ID0 ? ID2 ) ghi thứ tự của PIC tớ
+)IW4
Hình 2-7: Dạng từ điều khiển khởi động
b/ các từ điều khiển hoạt động
Trang 26OCW1 ;có A0 =1 để ghi chắn 8 bit ngắt M0?M7 cho các lối vào ngắt IR0?IR7 vớiMi=1 => xác lập chuẩn Mi=0 => xoá OCW2 ghi sự phục vụ ngắt theo ưu tiên vòngvới A0=0 OCW3 Ghi sự che ngắt đặc biệt cho các chế độ đặc biệt SNM và ESMM vớiA0=0;D3=3;
* OCW1
* OCW2
OCW3
Trang 27Hình 2-8: Dạng bit của các từ điều khiển hoạt động
1.2.3 Sơ đồ điều kiển ngắt của 8086
Hình 2-9: Sơ đồ ngắt cứng của 80x86
- Mức ưu tiên cao nhất là NMI ngắt không che được
- Mức ưu tiên thấp nhất từ IRQ0?IRQ15
Mạch 8259A
Master Slave chức năng
IRQ0 Lối ra bộ đệm thời gian
IRQ1 Bàn phím bộ đệm ra
Trang 28IRQ2 ngắt từ 8259A thứ 2
IRQ8 Ngắt thời gian thực
IRQ9 tương tự IRQ2 (coi là dành riêng)
COM2.COM4 IRQ3 cổng nối tiếp thứ 2 không đồng bộ
COM1,COM3 IRQ4 cổng nối tiếp thứ không đồng bộ
LPT2,LPT4 IRQ5 cổng song song thứ 2 trong máy AT
IRQ6 Điều khỉên đĩa mềm (FDC)
LPT1,LPT3 IRQ7 cổng song song thứ 1 trong máy AT
Trang 292.2 Phương pháp trao đổi tin song song theo chương trình
Phương pháp trao đổi tin song song theo chương trình~
Phương pháp trao đổi tin song song theo chương trình
CPU muốn trao đổi dữ liệu với các TBNV thì có thể thực hiện bằng các lệnh IN và OUTtrong chương trình vào ra Các lệnh có cú pháp như sau:
IN Acc, Port#; Đưa dữ liệu vào thanh ghi chứa Acctừ cổng Port#
OUT Port#,Acc; Đưa dữ liệu từ thanh ghi chứa Accra cổng Port#
Vào ra có điều kiện và không có điều kiện
Vào ra không điều kiện
Trao đổi tin không điều kiện,các TBNV luôn ở trạng thái của các thiết bị ngoại vi khác.Nếu thiết bị ngoại vi sẵn sàng thì mới tiến hành trao đổi dữ liệu,cpu chủ động pháp tínhiệu trao đổi
Trao đổi tin có điều kiện
Trao đổi dữ liệuTrao đổi dữ liệuTBNV sẵn sàng a) Không điều kiện b ) có điều kiệnHình
2-10: Vào ra có điều kiện và không có điều kiệnsaiđúng Trước khi CPU muốn trao đổi
dữ liệu,thì nó cần phải kiểm tra trạng thái của TBNV Nếu TBNV sẵn sàng thì mới tiếnhành trao đổi tin
Trong trường hợp có nhiều thiết bị ngoại vi thì khi đó CPU sẽ tiến hành kiểm tra lầnlược các trạng thái của từng thiết bị
Khối ghép nối song song
Hình 2-11: Sơ đồ nguyên lý cổng song song một chiều
Trang 30Các thành phần bao gồm:
1.Hệ thống trung tâm:Điều khiển hoạt dộng của hệ
2 Giải mã địa chỉ từ hệ trung tâm,tạo tín hiệu CS (chip select) kết hợp với IOW điềukhiển mạch chốt (C)
3 Mạch chốt cho phép ghi số liệu
Trang 31Vi mạch vào ra theo chương trình
Các hệ vi xử lí trước 8086 sử dụng vi mạch vào ra theo chương trình PPI 8255 loại vimạch nay có các dặc điểm sau:
• Có bộ nhớ (256*8bit), timer 14 bit theo chương trình
• Không có chế độ khác nhau, khả năng lập xoá các bit của C đối thoại 8255A.Loại vi mạch này cho phép lập xoá các bit của các cổng C cho đối thoại
1 40PPI 8255A20 21Hình 2-12:Sơ đồ chân của PPI 8255Sơ đồ chân của PPI 8255A
1? 4 các chân (PA3?PA0) Lối ra cổng A
5: tín hiệu điêu khiển đọc ghi RD
6 :Tín hiệu chọn chip CS(chip select)
7: chân tín hịêu nối đất GND (Ground)
8?9 : các chân địa chỉ A0?A1
36 Tín hiệu điều khiển WR
37?40 các chân (PA7?PA4) Lối ra cổng A
Sơ đồ cấu trúc của PPI 8255A
Hình 2-13: Sơ đồ khối của PPI-8255A
Trang 32• Cổng A: Thanh ghi đệm số liệu 8 bit vào ra tuỳ ý chương trình khởi dộng
• Cổng B: Thanh ghi đệm số liệu 8 bit vào ra tuỳ ý chương trình khởi dộng
• Cổng C cao : nửa cao 4 bit
• Cổng C thấp: nửa thấp 4 bit
• Địa chỉ các cổng 8 bít của 8255A trong một máy vi tính cá nhân tương thíchIBM như sau: Cổng A: 60h; Cổng B: 61h; Cổng C:62h thanh ghi điều khiển 63h
Các mạch địa chỉ nội bộ gồm các khối điều khiển,các cổng A,B,C
A1 A0 CS RD WR Lệnh của VXL Chiều di chuyển
Trang 330 1 0 1 0 Ghi cổng B D0?D7→cổng B
1 1 0 1 0 Ghi thanh từ Điều khiển D0?D7→T/ghi từ đ/khiển
X X 1 x x Trạng thái điện trở cao Không trao đổi dữ liệu
Từ điều khiển chế độ (Định nghĩa cấu hình)
Trang 34Chế độ BSR(bit set/reset) xác lập hoặc xoá bỏ từng bit cổng C: thiết lập với các bit cổng
C (C0 ?C7) Khi đó từ điều khiển như sau:
Trang 35Ghép nối máy tính và thiết bị ngoại vi
Hình 2-15: Sơ đồ ghép nối PPI-8255A với máy vi tính
Phần ghép nối với máy vi tính
+ D0 ?D7,A0,A1,RD,Wr nối trực tiếp với các đầu ra tương ứng trong cpu
+ Reset nối từ cpu qua mạch đảo tới 8255A
+ CS nối với bộ giải mã các tín hiệu từ các chân địa chỉ (A2?An) của cpu
+ Phần gép nối với thiết bị ngoại vi:
Trang 36Tuỳ thuộc loại thiết bị ngoại vi (vào hoặc ra),số bit đường dây,phương thức trao đổi tin
và chế độ trao đổi tin mà có các cách mắt khác nhau
• Lập trình cho PPI trong trường hợp chế độ chọn đều bằng 0
• Bước1: Phân tích tìm giá trị cho từ điều khiển chế độ
• Bước 2 ; lập trình
+ Đưa giá trị cấu hình ra thanh ghi từ điều khiển
Mov Al,<giá trị cấu hình>
OUT <thanh ghi điều khiển >,Al
+ Đưa dữ liệu vào
Trang 37PA EQU 60h;dia chi cong A
PB EQU 61h;dia chi cong B
PC EQU 62h;dia chi cong A
CWR EQU 63h;dia chi tu dieu khien
CW EQU A2h;dia chi tu dieu khien
.Code
MAIN PROC
MOV AX, @Data ;Chuyen du lieu qua thanh ghi Ax
MOV DS, AX ;sau do chuyen cho DS
MOV AL, CW ; Gia tri tu dieun khien trong AL
OUT CWR,AL ;chuyen ra tu dieu khien du
IN AL, PB ;du lieu vao qua cong B
OUT PA, AL ;dua ra cong A
OUT PC,AL ;va cong C
MOV AH,4CH ;chuan bi
INT 21h ;ve DOS
MAIN ENDP
END MAIN
Ví dụ: Viết một chương trình bằng C cho PPI8255A
/* This is the QC program for 8255/8253 I/O CARD
Author : Johnny Tseng
Trang 38Date : 1999/10/02 */
#include <dos.h>
#include <stdio.h>
#include <conio.h>
/* set default value for ioport, CNTR */
unsigned int ioport = 0;
void test8255loopback (void)
{
int loop, i, c, step = 0;
unsigned char x1, x2, x3, y1, y2, y3, z1, z2, z3;
Trang 39%02X%02X%02X,input:%02X%02X%02X Correct:%02X%02X%02X", loop + 1, i,x3, x2, x1, z3, z2, z1, y3, y2, y1);