intTypePromotion=1
ADSENSE

Ghép nối và điều khiển thiết bị ngoại vi - Chương 2

Chia sẻ: Nguyễn Nhi | Ngày: | Loại File: PDF | Số trang:24

157
lượt xem
43
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu tham khảo giáo trình môn học Ghép nối và điều khiển thiết bị ngoại vi nhằm cung cấp kiến thức cơ bản trong việc tìm hiểu thiết kế mạch ghép nối ngoại vi với máy vi tính - Chương 2 Ghép nối vào ra song song điều khiển bằng chương trình

Chủ đề:
Lưu

Nội dung Text: Ghép nối và điều khiển thiết bị ngoại vi - Chương 2

  1. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi CHƯƠNG 2: GHÉP N I VÀO RA SONG SONG ðI U KHI N B NG CHƯƠNG TRÌNH 2.1. Các l nh vào ra d li u 2.1.1 Các l nh vào ra b ng h p ng : L nh ñ nh n d li u t thi t b vào/ra là INput và m t l nh ñ g i s li u ra thi t b vào/ra là OUTput. Có b n cách dùng khác nhau c a m i l nh này: hai lo i chuy n d li u 8 hay 16 bít thông qua các c ng vào/ra 8 bít, và hai chuy n d li u 8 hay 16 bít thông qua các c ng 16 bít. Ví d hai l nh sau ñây s ñ c các byte c a ñư ng d n d li u t c ng LPT1: ; n p ñ a ch c a thanh ghi d li u vào DX MOV DX,378H ; ñ c thông tin trên ñư ng d n d li u (D0 ñ n D7) c a LPT1 IN AL,DX sang thanh ghi AL B ng 2.1: B ng các l nh vào ra Instruction Data Comment Width IN AL,d8 8 Ð c m t byte t c ng vào/ra 8 bít IN AL,DX 8 Ð c m t byte t c ng vào/ra xác ñ nh b i thanh ghi DX IN AX,d8 16 Ð c m t word t c ng vào/ra 8 bít IN AX,DX 16 Ð c m t word t c ng vào/ra xác ñ nh b i thanh ghi DX OUT d8,AL 8 G i m t byte ra c ng vào/ra 8 bít OUT DX,AL 8 G i m t byte ra c ng vào/ra xác ñ nh b i thanh ghi DX OUT d8,AX 16 G i m t word ra c ng vào/ra 8 bít OUT DX,AX 16 G i m t word ra c ng vào/ra xác ñ nh b i thanh ghi DX Chú ý: d8 ch a ñ a ch là c ng vào/ra 8 bít, và DX ch a ñ a ch là c ng vào/ra 16 bít. Gi ng viên: Nguy n Văn Minh Trí 17
  2. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 2.1.2.Các l nh vào ra b ng Turbo C B ng 2.2: B ng các l nh vào ra Instruction Data Comment Width outportb(addr_port,data_var) 8 G i m t byte ra c ng vào/ra 8 bít xác ñ nh b i ñ a ch addr_port Data_var=inportb(addr_port) 8 Ð c m t byte t c ng vào xác ñ nh b i ñ a ch addr_port outport(addr_port,data_var) 16 G i m t word ra c ng vào/ra, 8 bít th p xác ñ nh b i ñ a ch addr_port, 8 bít cao xác ñ nh b i ñ a ch addr_port+1 Data_var=inportb(addr_port) 16 Ð c m t word t c ng vào/ra, 8 bít th p xác ñ nh b i ñ a ch addr_port, 8 bít cao xác ñ nh b i ñ a ch addr_port+1 outp(addr_port,data_var) 8 G i m t byte ra c ng vào/ra 8 bít xác ñ nh b i ñ a ch addr_port Data_var=inp(addr_port) 8 Ð c m t byte t c ng vào xác ñ nh b i ñ a ch addr_port outpw(addr_port,data_var) 16 G i m t byte ra c ng vào/ra, 8 bít th p xác ñ nh b i ñ a ch addr_port, 8 bít cao xác ñ nh b i ñ a ch addr_port+1 Data_var=inp(addr_port) 16 Ð c m t word t c ng vào/ra, 8 bít th p xác ñ nh b i ñ a ch addr_port, 8 bít cao xác ñ nh b i ñ a ch addr_port+1 Ví d các l nh sau xu t 5 (8 bít 00000101) qua thanh ghi d li u c a LPT1 #include #define Dat_reg 0x378 char data_var=5; outport(Dat_reg,data_var); 2.1.3 Các l nh vào ra b ng Turbo Pascal B ng 2.3: B ng các l nh vào ra Instruction Data Comment Width 8 G i m t byte ra c ng vào/ra 8 bít xác ñ nh b i ñ a ch addr Port[addr] := var1; 8 Ð c m t byte t c ng vào xác ñ nh b i ñ a ch addr Var := port[addr]; Ví d : Uses crt; Gi ng viên: Nguy n Văn Minh Trí 18
  3. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi Port[$378] := X; Xu t ra giá tr bi n X lên ñư ng d n d li u (D0 ñ n D7) c a c ng LPT1 Y := port[$379]; ð c n i dung thanh ghi tr ng thái c a LPT1 vào bi n Y Chú ý: M t ch s h 16 ph i thêm d u: 0x vào trư c s ñó trong ngôn ng C, và $ vào trư c s ñó trong ngôn ng Pascal. 2.1.4 Gi n ñ th i gian các l nh ñ c/ghi d li u: Bus h th ng, bao g m bus d li u (data bus), bus ñi u khi n (control bus) và bus ñ a ch (address bus), là các ñư ng d n truy n thông gi a vi x lý và TBNV. Các VXL 8 bit d li u thư ng có 8 ñư ng dây data bus, và 16 ñư ng dây tương ng 16 ñư ng ñ a ch address bus. Hai tín hi u RD, WR control bus thư ng ñư c s d ng ñ xác ñ nh th i ñi m d li u n ñ nh trên data bus. Hình 1.5 là gi n ñ th i gian tín hi u trên bus h th ng. D li u ñư c D li u ñư c ghi ra TBNV ñ c vào VXL Chu kỳ ñ c Chu kỳ ghi address bus D li u t D li u t TBNV VXL data bus RD WR Hình 1.5: Gi n ñ th i gian tín hi u trên bus h th ng. M i chu kỳ bus (bus cycle) bao g m vi c chuy n 1 t d li u gi a VXL v i b nh ho c TBNV. M i chu kỳ bus b t ñ u khi VXL xu t m t ñ a ch ñ ch n m t v trí b nh ho c các c ng vào ra. Trong gi n ñ này, các bus ñ a ch và d li u ñư c bi u di n b ng 1 c p ñư ng th ng ñ ch thông tin trên bus n ñ nh. Khi các ñư ng trên sơ ñ c t ngang nhau di n t d li u ñã thay ñ i. ðư ng nét ñ t là tr ng thái th n i khi không có thi t b nào lái nó. Gi ng viên: Nguy n Văn Minh Trí 19
  4. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 2.2 Ghép n i song song ñơn gi n: có hay không có ñ i tho i 2.2.1 C a vào ñơn gi n không ñ i tho i Hình 2.1 mô t m t c a vào ñơn gi n không c n tín hi u ñ i tho i. Tín hi u vào t b c m bi n (BCB) ñư c n i v i bus d li u c a MVT thông qua b ñ m ba tr ng thái. Khi chúng ta l p trình ño n l nh: C: data1 = inport(addrport); Pascal: data1 := port(addrport); Trình biên d ch s chuy n ño n l nh trên thành mã máy, và khi ch y ño n mã máy này, VXL s t o ra các tín hi u: - A0…A15 t addrport - RD kích ho t m c 0. B gi i mã s so sánh các giá tr trên ñư ng ñ a ch v i ñ a ch c ng cho trư c, n u trùng ñ a ch , ñ u ra b gi i mã s kích ho t m c 0. Do ñó ñ u ra m ch OR s m c 0, kích ho t cho b ñ m ba tr ng thái m ra, và d li u t TBNV s ñ vào bus d li u c a VXL. Lúc này, VXL s nh n - D0 ,..., D7 gán vào cho bi n data1. K t thúc chu kỳ l nh, RD tr v m c 1. ð a ch A0…A15 Gi i mã RD D0 BCB 1 BCB 2 D1 D7 BCB 7 Bus MVT TBNV BGN Hình 2.1: C a vào ñơn gi n, không có ñ i tho i Gi ng viên: Nguy n Văn Minh Trí 20
  5. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 2.2.2 C a ra ñơn gi n không ñ i tho i ð a ch A0…A15 Gi i mã +E WR K/ð i D0 D1 D7 Bus MVT BGN Hình 2.2: C a ra ñơn gi n, không có ñ i tho i Tương t , m t c a ra ñơn gi n không có ñ i tho i ñư c th hi n trên hình 2.2. D li u t VXL ñư c g i ra TBNV qua thanh ghi ñ m, dùng ñ ñi u khi n ñèn. M ch khu ch ñ i s nâng công su t lên phù h p v i công su t c a ñèn. Khi l p trình ph n m m, chúng ta s gõ vào dòng l nh C: outportb(addrport,data2); Pascal: port(addrport) := data2; Trình biên d ch s chuy n ño n l nh trên thành mã máy, và khi ch y ño n mã máy này, VXL s t o ra các tín hi u: - A0…A15 t addrport - WR kích ho t m c 0. B gi i mã s so sánh các giá tr trên ñư ng ñ a ch v i ñ a ch c ng cho trư c, n u trùng ñ a ch , ñ u ra b gi i mã s kích ho t m c 0. Do ñó ñ u ra m ch NOR s nh y lên m c 1, kích ho t cho b thanh ghi ñ m m ra, và TBNV nh n d li u t MVT, g m: - D0 ,..., D7 tương ng v i bi n data2. K t thúc chu kỳ l nh, WR tr v m c 1. Gi ng viên: Nguy n Văn Minh Trí 21
  6. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 2.2.3. C a vào ñơn gi n có ñ i tho i 1 ð a ch QD Q0 Q A0…A15 CKL Gi i mã Q1 Xung Cl np RD D0 BCB 1 BCB 2 D1 D7 BCB 7 Bus MVT TBNV Hình 2.3: C a vào có ñ i tho i C a vào có ñ i tho i th hi n trên hình 2.3. TBNV g i s li u t i ñ u vào các thanh ghi. Khi s li u ñã n ñ nh, thi t b ngo i vi g i ti p m t xung n p. Sư n lên xung n p ñưa d li u c a TBNV vào nh trong thanh ghi. Sư n xu ng xung n p kích m ch l t, ñưa ñ u ra Q = D = 1. ðó là tr ng thái s n sàng c a TBNV. B VXL s ki m tra tr ng thái này b ng thu t toán trong ño n l nh: #define BIT0 0x01; #define addrport1 0x00F8; #define addrport3 0x00F9; do data3 = inportb(addrport1); while (data3&BIT0!=BIT0); data4 = inportb(addrport2); B ng l nh inportb ñ u tiên, VXL s ñưa ñ a ch addrport1 ra các chân ñ a ch , kích ho t RD = 0 . ð u ra OR = 0, m m ch ñ m ba tr ng thái, ñưa tín hi u Q = 1 vào ñư ng d li u D0. Qua ñó, d li u v i D0 = 1 s ñư c gán cho bi n data3. K t thúc chu kỳ l nh, RD = 1 , ñ u ra c ng OR chuy n sang m c 1 làm m ch ñ m ba tr ng thái chuy n sang tr ng thái tr kháng cao, cách ly chân Q và ñư ng d li u D0. Sau khi VXL ki m tra th y d li u ñã s n sàng (bit D0 = 1), l nh inportb th hai s làm VXL t o tín hi u kích m b ñ m ba tr ng thái, ñưa d li u c a TBNV ñang nh trong các thanh ghi vào bus d li u và gán cho bi n data4. Cũng b ng xung ch n m ch này, m ch l t s xoá Q v m c logic 0. Gi ng viên: Nguy n Văn Minh Trí 22
  7. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 2.2.4 C a ra ñơn gi n có ñ i tho i TBNV s n 0 DQ sàng nh n Q RD CKL ð a ch Pr A0…A15 S li u s n 1 DQ Gi i mã sàng WR Q CKL Ghi nh n Cl Q K/ð i D0 D1 D7 Bus MVT TBNV BGN Hình 2.4: C a ra có ñ i tho i Hình 2.4 mô t c a ra có ñ i tho i. Khi TBNV s n sàng nh n d li u, TBNV s ñưa ra m t tín hi u logic 1. B VXL s ki m tra tr ng thái c a TBNV trong ño n l nh: #define BIT0 0x01; do data5 = inportb(adrport); while (data5&BIT0 != BIT0); outportb(adrport,data6); Cách ho t ñ ng c a VXL tương t trên, l nh inportb s n p d li u có D0 = 1 vào bi n data5, bi n này dùng ñ so sánh nh n bi t TBNV s n sàng chưa. K t thúc l nh inportb, ñ u ra m ch OR chuy n sang 1, t o xung lên ñ u ra m ch AND, làm chuy n tr ng thái m ch l t Q = D = 0, ñ ng th i làm m ch ñ m ba tr ng thái chuy n sang tr ng thái tr kháng cao, cách ly chân Q và ñư ng d li u D0. N u th y TBNV s n sàng nh n thì l nh outportb ti p theo s g i ñ a ch adrport cùng tín hi u WR = 0 t o ra m t xung ra m ch OR. Sư n lên xung này n p d li u data6 trên bus d li u vào thanh ghi ñ xu t ra TBNV, sư n xu ng ñưa tín hi u Q = D = 1, báo cho TBNV là s li u s n sàng. Sau khi nh n s li u, TBNV sinh ra tín hi u ghi nh n ñ xoá tín hi u s li u s n sàng (v m c 0) và l p tín hi u TBNV s n sàng nh n (lên m c 1), ch b VXL g i s li u ti p theo. Trao ñ i d li u có ñ i tho i làm vi c ch c ch n hơn trao ñ i không ñ i tho i. Vì TBNV có t c ñ ho t ñ ng ch m, nên s li u ñ u vào VXL có lúc không ñúng khi TBNV Gi ng viên: Nguy n Văn Minh Trí 23
  8. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi có s li u chưa n ñ nh. Do ñó m t thu t toán c n dùng cho trao ñ i không ñ i tho i là ñ c nhi u l n và ki m tra k t qu các l n v i nhau. N u k t qu gi ng nhau thì d li u vào xem như n ñ nh. 2.3 Ghép n i song song ñi u khi n b ng chương trình 2.3.1 Sơ ñ kh i và ch c năng các kh i c a 8255A Ph n ñi u khi n n i b Ph n GN v i TBNV Ph n GN v i VXL PA3 1 40 PA4 Nhóm PA0… PA7 PA2 2 ði u 39 PA5 PA1 3 A 38 PA6 khi n PA0 4 37 PA7 c aA nhóm 5 36 WR RD A 6 35 RESET CS 34 D0 GND 7 Bus s A1 8 33 D1 Nhóm B PC4… PC7 li u A0 9 32 D2 Bus s li u trong 8255A PC7 10 31 D3 D0 ...D7 ð m c a C, 4 PC6 11 30 D4 bus s bit cao PC5 12 29 D5 li u PC4 13 28 D6 Nhóm B PC0… PC3 PC0 14 27 D7 PC1 15 26 VCC RD c a C, 4 ði u PC2 16 25 PB7 WR bit th p PC3 17 A1 khi n 24 PB6 A0 PB0 18 23 PB5 ñ c/ghi PB1 19 22 PB4 RESET PB2 20 21 PB3 Nhóm PB0… PB7 ði u CS B khi n c aB Hình 2.5: Sơ ñ chân và sơ ñ kh i c a 8255A nhóm B D0 ÷ D7 INTRA D0 ÷ D7 INTR INTRB RD RD WR WR RST PA0 ÷ PA7 RESET TBNV 8255A VXL A0 A0 PC0 ÷ PC7 A1 A1 Gi i mã A2 ÷ An CS ñ a ch PB0 ÷ PB7 cao Hình 2.6: Sơ ñ GN 8255A v i VXL và TBNV Gi ng viên: Nguy n Văn Minh Trí 24
  9. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi Vi m ch PPI 8255A là vi m ch ñi u khi n b ng chương trình ñư c áp d ng khá r ng rãi. Hình 1.10 trình bày sơ ñ ghép n i 8255A, g m có: 1. Ph n ghép n i v i VXL: - B ñ m s li u ñ trao ñ i d li u hai chi u gi a MVT và ñư ng dây s li u trong. - B logic ñi u khi n ñ c vi t: t c b gi i mã ñ a ch l nh cho các thanh ghi ñ m và thanh ghi ñi u khi n. V i t h p các tín hi u ñ a ch (A0, A1). ch n vi m ch ( CS ), các l nh ñ c ( RD ) và ghi ( WR ) c a VXL, ta có các l nh ghi và ñ c khác nhau cho các c a (A, B, C) và t ñi u khi n (control word) như b ng 2.4. B ng 2.4: B ng tr ng thái c a 8255A A1 A0 L nh (c a VXL) Chi u di chuy n s li u (v i WR RD CS VXL) 0 0 0 0 1 ð cc aA C a A → D0 … D7 0 1 0 0 1 ð cc aB C a B → D0 … D7 1 0 0 0 1 ð cc aC C a C → D0 … D7 1 1 0 0 1 Không có giá tr 0 0 0 1 0 Ghi c a A D0 … D7 → C a A 0 1 0 1 0 Ghi c a B D0 … D7 → C a B 1 0 0 1 0 Ghi c a C D0 … D7 → C a C 1 1 0 1 0 Ghi thanh ghi ñi u khi n D0 … D7 → thanh ghi ñi u khi n x x 1 x x Vi m ch tr ng thái tr Không có trao ñ i s li u kháng cao 2. Ph n ghép n i v i TBNV: - C a A, B: hai thanh ghi ñ m s li u (8 bit) vào ho c ra tuỳ chương trình - C a C có th chia là hai nhóm ñ c l p b ng chương trình: n a cao (PC4 … PC7) và n a th p (PC0 … PC3). Tuỳ theo ch ñ s d ng trong t ñi u khi n, c a C có th dùng: • Trao ñ i s li u vào ho c ra ch ñ 0 (mode 0). • ði u khi n ho c ñ i tho i v i TBNV và VXL khi c a A và B ch ñ 1 b ng cách xác l p và xoá t ng bit PCi . • ði u khi n ho c ñ i tho i v i TBNV và VXL khi c a A và B ch ñ 1 và 2. ch ñ 1 và 2, ñ c các bit c a C, ta bi t ñư c tr ng thái c a các c a A và B. 3. Ph n các m ch ñi u khi n n i b : Có các kh i ñi u khi n (nhóm A, nhóm B) các c a A, B và C. Gi ng viên: Nguy n Văn Minh Trí 25
  10. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 2.3.2 Các ch ñ làm vi c c a 8255A: B ghép n i 8255A có ba ch ñ làm vi c cơ b n như hình 2.7: - Ch ñ 0: vào/ra thông thư ng - Ch ñ 1: ch t vào/ra - Ch ñ 2: BUS hai chi u Tuỳ theo t ñi u khi n ghi vào thanh ghi ñi u khi n khi kh i ñ ng cho vi m ch, ta có các ch ñ làm vi c và chi u trao ñ i s li u c a các c a A, B, C khác nhau, như hình 2.8. Hình 2.7: Tóm t t các ch ñ c a 8255A D7 D6 D5 D4 D3 D2 D1 D0 1 Nhóm B Chi u c a C th p Ch ñ c a A 1 - vào 00 - Ch ñ 0 0 - ra 01 - Ch ñ 1 1x - Ch ñ 2 Chi u c a B 1 - vào Chi u c a A 0 - ra 1 - vào 0 - ra Ch ñ c a B 1 - Ch ñ 1 Chi u c a C cao 0 - Ch ñ 0 1 - vào 0 - ra Nhóm A Hình 2.8: T ñi u khi n ch ñ và chi u c a các c a A, B, C. Gi ng viên: Nguy n Văn Minh Trí 26
  11. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 1. Ch ñ 0: Ðây là ch ñ vào ra cơ b n c a vi m ch, nó ñ m b o d li u ñư c ñưa ra ho c ghi vào các c ng riêng bi t . Trong ch ñ này, vi m ch có các ch c năng sau : - Vi m ch ho t ñ ng g m hai c ng 8 bit và hai c ng 4 bit. - Các c ng có th là c ng vào ho c c ng ra. - Các tín hi u ra ñư c ch t l i . - Các tín hi u vào không ñư c ch t . - Trong ch ñ này 8255 có 16 c u hình ho t ñ ng vào/ra nh s d ng t ñi u khi n và l nh OUT như sau : Gi ng viên: Nguy n Văn Minh Trí 27
  12. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi * Ð th th i gian ñ c /ghi c a 8255 trong ch ñ này như sau : Gi ng viên: Nguy n Văn Minh Trí 28
  13. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi Ð th th i gian quá trình ñ c. Ð th th i gian quá trình ghi. 2. Ch ñ 1: Trong ch ñ này c ng A và c ng B s d ng các ñư ng dây tín hi u c a c ng C ñ t o ho c ti p nh n tín hi u h i tho i ( hanshaking signal ) nghĩa là m i quá trình trao ñ i d li u c a t ng c ng ñ u dùng các tín hi u h i tho i. Các ch c năng cơ b n c a ch ñ 1 là - Vi m ch ho t ñ ng g m hai nhóm, nhóm A và nhóm B. - M i nhóm ch a m t c ng 8 bit và m t c ng ñi u khi n 4 bit. - C ng 8 bit có th là c ng vào , ho c c ng ra ,c hai c ng vào ra ñ u là c ng ch t . - Các c ng 4 bit ñư c s d ng ñ ñi u khi n và xác ñ nh tr ng thái c a các c ng 8 bit. Các tín hi u ñi u khi n vào ñư c dùng trong ch ñ vào : • STB (Strobe input) M c th p c a tín hi u vào này cho phép d li u ñư c ñ c vào . • IBF (Input Buffer Full) Gi ng viên: Nguy n Văn Minh Trí 29
  14. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi M c cao c a tín hi u ra này ch ra r ng d li u ñã ñư c ghi vào c ng ch t, v b n ch t ñây là m t tín hi u xác nh n. Tín hi u IBF ñư c xác l p khi tín hi u STB ñang m c th p và ñư c kh i t o l i khi có sư n dương c a ñ u vào RD . • INTR ( Interrupt Request ) M c cao c a tín hi u ra này có th ñư c s d ng ñ yêu c u ng t t i CPU. Khi m t thi t b vào yêu c u ph c v , tín hi u INTR ñư c xác l p b i tín hi u STB =1, tín hi u IBF=1 và INTE =1 .Tín hi u này ñư c kh i t o l i khi sư n sau c a tín hi u RD . Ch c năng này cho phép các thi t b vào yêu c u ng t t i CPU m t cách ñơn gi n b ng cách ñưa d li u c a nó ra c ng. Các t l nh ñi u khi n và ñ th th i gian c a ch ñ này như sau: * Ð th th i gian c a ch ñ ho t ñ ng này như sau : Ð th th i gian quá trình ñ c . Gi ng viên: Nguy n Văn Minh Trí 30
  15. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi Các tín hi u ñi u khi n ra ñư c dùng trong ch ñ ra • OBF ( Output Bufer Full F/F). Tín hi u ra OBF chuy n v m c th p ñ thông báo r ng CPU ñã ghi d li u ra m t c ng xác ñ nh. Tín hi u OBF F/F s ñư c xác l p sư n lên c a tín hi u WR và b xoá khi tín hi u vào ACK m c th p . • ACK (Acknowledge Input ). M c th p c a tín hi u vào này thông báo cho 8255 r ng d li u t c ng A ho c c ng B ñã ñư c ch p nh n. V b n ch t ñây là tín hi u phúc ñáp t thi t b ngo i vi thông báo nó ñã nh n ñư c d li u g i t i t CPU. • INTR (Interrupt Request ) M c cao c a tín hi u ra này ñư c s d ng ñ yêu c u ng t CPU khi m t thi t b ngoài ñã nh n ñư c d li u truy n t CPU. Tín hi u INTR xác l p khi tín hi u ACK = "1", OBF = "1" và INTE ="1" . Tín hi u này ñư c kh i t o l i sư n xu ng c a tín hi u WR . Các t l nh c a ch ñ này như sau: * Ð th th i gian c a ch ñ ho t ñ ng này như sau : Gi ng viên: Nguy n Văn Minh Trí 31
  16. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi Ð th th i gian quá trình ghi. Trong ch ñ 1, hai c ng A và B có th ñư c l p trình m t cách riêng bi t là c ng vào ho c c ng ra ñ ho t ñ ng trong các ng d ng vào /ra có h i tho i khác nhau. Các t l nh ho t ñ ng trong ch ñ này như sau: 3. Ch ñ 2 Ch ñ ho t ñ ng này cung c p kh năng trao ñ i d li u v i các thi t b ngo i vi s d ng m t ñư ng truy n 8 bit ñ v a truy n v a nh n d li u (Bus vào/ra hai chi u). Các tín hi u h i tho i ñư c dùng trong ch ñ này ñ ñi u khi n vi c truy n d li u cũng tương t như ch ñ 1. Các ch c năng cơ b n c a ch ñ 2: Gi ng viên: Nguy n Văn Minh Trí 32
  17. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi - Trong ch ñ này ch có nhóm A ñư c s d ng . - C ng A là c ng vào/ ra hai chi u 8 bit . - Các tín hi u vào/ra ñ u ñư c ch t l i. - 5 bit c a c ng C ñư c s d ng làm c ng ñi u khi n ,tr ng thái cho c ng A 8 bit. Các tín hi u ñi u khi n ra . • OBF( Output buffer full ) Tín hi u ra OBF m c th p thông báo CPU khi d li u ra c ng A. • ACK (Acknowledge) M c th p c a tín hi u vào này cho phép b ñ m ra bus d li u c a c ng A g i d li u. Ngư c l i, b ñ m ra này s tr ng thái tr kháng cao . • INTE 1 ( Tín hi u INTE ph i h p v i tín hi u OBF ). Ði u khi n b i vi c l p bit ho c xoá bit PC4 . Các tín hi u ñi u khi n vào . • STB (Srobe input ). M c th p c a tín hi u vào này ñ c d li u vào c ng vào ch t . • IBF ( Input bufer Full ). M c cao c a tín hi u ra này ch ra r ng tín hi u ñã ñư c ghi vào c ng vào ch t . • INTE2 ( Tín hi u INTE ph i h p v i tín hi u IBF) Ði u khi n b i vi c xoá /l p bit c a PC4 Các t l nh ho t ñ ng trong ch ñ này như sau : Gi ng viên: Nguy n Văn Minh Trí 33
  18. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 4. Ch ñ k t h p Ngoài vi c ho t ñ ng riêng r theo t ng ch ñ , 8255 còn có kh năng ho t ñ ng ñ ng th i k t h p các ch ñ khi không ph i t t c các bit trong c ng C ñư c s d ng ñ ñi u khi n ho c dành cho tr ng thái. Các bit còn l i có th ñư c s d ng ñ th c hi n các ch c năng sau : Khi ñư c l p trình là các ñư ng vào tín hi u T t c các ñư ng vào tín hi u ñ u có th ñư c truy c p trong su t quá trình ñ c c ng C thông thư ng. Như trong hình v minh ho sau : Gi ng viên: Nguy n Văn Minh Trí 34
  19. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi Khi ñư c l p trình là các ñư ng tín hi u ra Các bit trong s các bit cao c a c ng C ( PC7- PC4) ph i ñư c truy c p m t cách riêng r b ng cách s d ng ch c năng xoá /l p bit. Các bit trong s các bit th p c a c ng C có th truy c p b ng ch c năng xoá /l p bit ho c dùng 3 bit tương ng ghi ra c ng C . * Ð c tr ng thái c ng C. Trong mode 0, c ng C truy n d li u t i ho c t thi t b ngo i vi. Khi 8255 ñư c l p trình ho t ñ ng trong mode 1 ho c mode 2, c ng C ñư c s d ng ñ t o ra ho c nh n tín hi u h i tho i trao ñ i v i thi t b ngo i vi. Ð c n i dung c a c ng C cho phép ngư i l p trình ki m tra tr ng thái c a các thi t b ngo i vi và ñi u khi n quá trình trao ñ i d li u. Không có l nh ñ c bi t nào dùng ñ ñ c thông tin tr ng thái t c ng C mà ch có thao tác ñ c thông thư ng th c hi n ch c năng này. Gi ng viên: Nguy n Văn Minh Trí 35
  20. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 5. Ch c năng xoá bit và l p bit (single bit set/reset ) B t c bit nào trong 8 bit c a c ng C ñ u có th ñư c thi t l p ho c ñư c xoá nh s d ng các l nh ghi ra thanh ghi ñi u khi n các bit phù h p. Như v y khi c ng C ñang ñư c dùng ñ ñi u khi n, ghi tr ng thái cho c ng A ho c c ng B thì nh ng bit c a c ng C có th ñư c xoá ho c ñư c thi t l p nh s d ng các l nh xoá, thi t l p bit như khi c ng C là c ng ra d li u. - T l nh ho t ñ ng trong ch ñ như sau: Gi ng viên: Nguy n Văn Minh Trí 36
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2