Ghép nối và điều khiển thiết bị ngoại vi - Chương 3
lượt xem 45
download
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 3 Ghép nối trao đổi dữ liệu nối tiếp
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Ghép nối và điều khiển thiết bị ngoại vi - Chương 3
- 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 3: GHÉP N I TRAO ð I D LI U N I TI P 3.1 Gi i thi u chung v trao ñ i d li u n i ti p 3.1.1 Yêu c u trao ñ i d li u n i ti p Trao ñ i d li u n i ti p là trao ñ i l n lư t t ng bit, trên m t ñư ng dây duy nh t. Do ñó ít t n kém v ñư ng dây, nhưng t c ñ truy n th p. S trao ñ i này do các yêu c u: - Thi t b phát hay nh n d li u t ng bit. Ví d VXL 8085 phát t ng bit l i ra n i ti p SOD (chân s 4) và nh n d li u l i vào n i ti p SID (chân s 5); và TBNV n i ti p như máy cassette, ñĩa t , máy in n i ti p … - Kho ng cách gi a hai thi t b trao ñ i d li u là l n (có th ñ n hàng ngàn km ho c hơn), do v y vi c dùng 8 ñư ng dây truy n d li u song song là r t t n kém. Ngoài ra, ngư i ta có th dùng luôn ñư ng dây ñi n tho i ñ trao ñ i d li u, thông qua b ñi u ch - gi i ñi u ch (MODEM) ði u khi n n i ti p có 2 lo i truy n d li u: -truy n d li u ñ ng b (t c ñ nhanh). - truy n d li u không ñ ng b (t c ñ ch m). 1. Trong trao ñ i d li u ñ ng b : D li u ñư c truy n 1 l n g m 1 kh i nhi u byte, ñư c ch n ñ u và cu i b i ký t SYNC( mã ASCII là 16h). M i kh i có th hàng trăm byte hay hàng trăm Kbyte. sync sync d li u ð truy n ñi c n có s ñ ng b v t c ñ gi a máy phát và máy thu, có 2 cách ñ ñ ng b - M t máy phát xung ñ t nơi phát và truy n t i máy thu b i m t ñư ng dây khác. Do ñó t n thêm m t ñư ng dây H này s d ng 1 máy phát xung ñ ng b ñ cung c p xung ñ ng b cho c hai bên phát và thu. Thu Phát ð ng b - Máy thu ch tr ng thái ch , khi có ký t ñ ng b SYNC thì máy phát xung nh p trong máy thu b t lên và chuy n sang ch ñ thu xung ñ ng b ñư c kích ho t b i kí t SYNC. Thu Phát ð ng b Gi ng viên: Nguy n Văn Minh Trí 41
- Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 2. Trong trao ñ i thông tin không ñ ng b : Các byte ñư c ñ t trong m t khung và truy n ñ c l p v i nhau, g i là m t l i tin. D ng thông tin truy n như sau: D li u truy n có th 5,6 ,7,8 bit; thông thư ng là 7 bit ( n u truy n s li u và ch cái) hay 8 bit ( n u truy n c các ký t m r ng ñ ñi u khi n h t File). M t l i tin g m: - 1 bit Start thư ng là m c 0 (+12V). Theo chu n RS232C, tín hi u t máy tính qua c ng Com, m c ñi n áp là ±12 V và ñư c qui ñ nh:0=12V, 1= -12V. - 5÷8 bit d li u, ñây d li u truy n ñi là mã ASCII, như s “0” s ñư c truy n ñi là mã ASCII = 48 = 030h ch không ph i là truy n ñi “0”. - 1 bit b c dùng ñ ki m tra tính ch n l d li u truy n. T ng s bit 1 c a m t l i tin (k c bit ch n l ) s ñư c ghi vào bit ch n l và ñư c ki m tra so sánh nơi phát và nơi thu. - 1, 1.5 hay 2 bit Stop (tuỳ theo s l a ch n trư c khi trao ñ i) cũng m c 1. S bit Stop th c ch t là ñ dài c a tín hi u Stop m c logic 1. Bit Start dùng ñ ñ ng b xung nh p máy phát và máy thu. N u kho ng cách g n dư i 300m, s thu phát là không c n MODEM. nh ng kho ng cách l n ngư i ta không dùng máy phát xung ngoài mà dùng MODEM ñ t o xung ñ ng b cho c máy phát và máy thu. Vi c dùng MODEM là ñ ch ng nhi u trên ñư ng truy n. Trên ñư ng dây ñi n tho i, ngư i ta không phát t ng bit 0/1 mà dùng MODEM (modulation-demodulation) ñ ñi u ch tín hi u thành d ng xoay chi u (0÷2400 Hz, 1÷1200 Hz) và truy n tín hi u xoay chi u ñó. 3.1.2 M ch trao ñ i d li u n i ti p. 1. M ch không c n b ghép n i: -s d ng 2 chân ra-vào n i ti p SID ( serial IN) và SOD ( serial OUT) c a vi x lý 8085 ñ trao ñ i. -có th dùng 1 chân c a l i vào ra song song c a VXL ñ làm chân vào ra n i ti p. Trao ñ i tin ki u này không ph c t o trong c u t o m ch nhưng ph c t p trong quá trình l p trình và theo dõi thi t b , ñòi h i nhi u th i gian x lý. Thi t b ngoài vào/ra song song VXL SOD D SID Thanh ghi d ch C CLK Hình 3.1: M ch không c n BGN 2. M ch trao ñ i c n ghép n i song song-n i ti p: Gi ng viên: Nguy n Văn Minh Trí 42
- Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi BGN có ch c năng chuy n d li u song song t máy tính (h VXL) thành tín hi u d ng n i ti p và truy n ñ n TBNV. ð truy n chính xác, BGN ngoài ch c năng chuy n d li u song song thành n i ti p, nó còn t o ra các bit Start, stop, parity ñ ñóng khung d li u. Lo i này làm vi c ñơn gi n nhưng không m r ng ñư c thi t b ngo i vi, kho ng cách truy n tin ng n. BGN TBNV ss-nt (VXL) VXL nt Hình 3.2: M ch c n BGN ss-nt Trong ñó, song song là ss, n i ti p là nt. 3. M ch có KGN song song- n i ti p và n i ti p-song song: H này cũng gi ng như h trên, ch khác là TBNV làm vi c v i d li u song song, nên c n có BGN trung gian chuy n d li u song song thành n i ti p. BGN TBNV BGN VXL (VXL) ss-nt nt-ss ss Hình 3.3: M ch c n BGN ss-nt và nt-ss 4. M ch có BGN, MODEM và RS232C: RS-232C RS-232C MODEM MODEM BGN ñư ng dây BGN TBðC VXL ss-nt ss-nt ñi n tho i (VXL) ss Hình 3.4: M ch c n BGN ss-nt, RS 232 và MODEM. H này thông d ng và thư ng xuyên g p trong th c t . Trong ñó VXL thư ng là 1 máy vi tính, còn thi t b ñ u cu i (TBðC) có th là 1 ñ i tư ng b t kỳ. N u TBðC là máy vi tính thì h th ng dùng ñ trao ñ i File. Chú ý: Chu n RS232C có m c ñi n áp là ±12V. Chu n RS422 có m c ñi n áp là ±15V. Chu n RS485 có m c ñi n áp là ±30V (ñi n tho i). ð chuy n t RS232C thành RS485 hay RS422 s có nh ng b chuy n (shift) trung gian, thông thư ng ñó là nh ng b ñ m, v a t o m c tín hi u,v a ph i h p tr kháng. Gi ng viên: Nguy n Văn Minh Trí 43
- Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 3.1.3 Th t c trao ñ i d li u n i ti p 1. Th t c phát d li u TxD (Tranceiver Data) : • TBðC (hay MVT) g i tín hi u DTR (Data Terminal Ready) m c 0 ñ n MODEM báo hi u ñã s n sàng. • MODEM tr l i TBðC b ng tín hi u DSR (Date Set Ready) m c 0. • N u TBðC có 1 ký t s n sàng g i ñi, nó g i RTS (Request To Send) ñ n MODEM • MODEM g i tín hi u CD (Carrier Detect) cho TBðC ñ báo hi u liên l c ñã thông v i MTV. • Khi MODEM s n sàng phát s li u trên ñư ng dây, MODEM phát xung nh p và tín hi u CTS (Clear To Send) ñ n TBðC (xung nh p trên ñư ng dây). • TBðC g i các ký t s li u (SDU) cho MODEM. • Khi TBðC g i xong, nó nâng tín hi u RTS lên cao ñ báo cho modem bi t là ñã phát xong. • MODEM tr l i cho TBðC b ng tín hi u CTS m c cao, báo hi u hoàn thành vi c truy n tin. Qua ñó ta th y vi c g i ñi kí t b ng modem nhi u th t c và do ñó t c ñ ch m 2. Th t c nh n d li u RxD (Receiver Data) Trong quá trình nh n tin, ph i b o ñ m máy tính ñã s n sàng nh n ,khi ñó : • TBðC phía thu g i DTR m c th p cho MODEM báo nó ñã s n sàng (Data terminal ready) • MODEM thu g i tín hi u tr l i b ng DSR . • MODEM thu nh n tín hi u CD t ñư ng dây và kích g i tín hi u nh p MODEM cho TBðC. • TBðC phát tín hi u RTS cho modem (Request to Send). • MODEM g i tín hi u CTS m c th p cho TBðC (Clear to Send) ñ báo MODEM s n sàng nh n tin. • MODEM nh n TxD trên ñư ng dây, sau ñó ph i ñi u ch thành các bit 0/1 và l n lư t g i chu i tín hi u RxD cho TBðC. • Khi thu xong, TBðC nâng tín hi u RTS lên cao, báo cho MODEM là ñã thu xong • MODEM tr l i b ng nâng tín hi u CTS lên cao, ñ báo quá trình nh n ñã xong. Vi c ti n hành chuy n d li u ss/nt hay nt/ss ñư c th c hi n b i các thanh ghi d ch (Shift register). Các thanh ghi này có tác d ng khi nh n 1 byte song song ñ u vào nó s cho ñ u ra m t chu i bit k ti p nhau theo th t t bit th p ñ n bit cao c a byte. ð i v i máy tính, các ch c năng trên ñư c th c hi n thông qua vi m ch 8251 c a hãng INTEL. Gi ng viên: Nguy n Văn Minh Trí 44
- Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 3.2 M ch thu phát di b v n năng UART 8250 M ch URAT 8250 (Universal Asynchronous Receiver/Transmitter) ñư c l p ráp trong các máy IBM XT, là m t IC thu phát không ñ ng b có th l p trình ñư c, nó th c hi n ch c năng giao ti p gi a máy tính và TBNV. Trong các máy PC/AT hi n nay s d ng UART 16450 còn trong PS/2 và các AT ñ i m i l i dùng UART 16550 vì 8250 và 16450 không ñ t ñ n t c ñ 115200 baud ñư c. Th c ra t c ñ này ng d ng t t trong k thu t truy n tin trên m ng, còn trong các thi t b công nghi p TBNV nói chung, thư ng ch c n t i ña 19200 baud là ñư c, thông d ng là 9600 baud. 3.2.1 Sơ ñ kh i và ch c năng các kh i c a UART 8250 1. Mô t vi m ch: Vi m ch 8250 có 40 chân như trên hình v : Hình 3.5: Sơ ñ chân 8250 Ch c năng các chân g m: - Các chân t 1- 8 (D0- D7 ): Các chân d li u, 8 chân này ñư c n i v i bus d li u. Qua 8 chân d li u này mà d li u ñư c ñi t bus t i dư i d ng song song sau khi qua vi m ch 8250 bi n ñ i thành tu n t ñ ñi t i c ng RS232. D li u t c ng RS232 t i dư i d ng tu n t , sau khi ñi qua vi m ch 8250 ñư c bi n ñ i thành song song và qua 8 chân này truy n lên bus. - Chân s 9 (RCLK ): nh n xung ñ ng h ñưa ra t b t o t c ñ . - Chân s 10 (SIN): nh n d li u tu n t ñi t i t c ng RS232. - Chân s 11 (SOUT): G i d li u tu n t sang c ng RS232. - Chân s 12,13,14 (CS0 -CS2): Chip select - tín hi u ch n vi m ch. - Chân s 15 ( BOUDOUT ) : L i ra c a b t o t c ñ . - Chân s 16,17 (XTAL1,XTAL2) :L y xung Clock t b phát nh p b ng th ch anh t i v i t n s 3,072 MHz. - Chân 18(DOSTR ): I/O write. - Chân s 19 ( DOSTR ) : Ð o c a I/O write - Chân s 20 (Vss ): n i ñ t Gi ng viên: Nguy n Văn Minh Trí 45
- Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi - Chân s 21 (DISTR) : I/O Read . 22 ( DISTR ): Ð o c a I/O Read . - Chân s - Chân s 26,27,28 ( A0 - A2 ): nh n ñ a ch truy n t i ñ gi i mã l nh . - Chân s 30 (INTRPT) : Interrupt Control Logic . 32 ( RTS ) : Request To Send ( yêu c u g i ) . - Chân s - Chân s 33 ( DTR ) : Data Terminal Ready .(D li u s n sàng ) - Chân s 35 (MR) : Reset . 36 ( CTS ) : Clear To Send - Chân s 37 ( DSR ) : Data Set Ready . - Chân s 38 ( DCD ) : Data Carrier Detect . - Chân s - Chân s 39 ( RI ): Ring Indicate . - Chân s 40 (VDo) : n i v i ngu n m t chi u +5V. (3F8) (3FB) (3F8) (3F9) (3FD) (3F8) (3FC) (3FE) (3F9) (3FA) Hình 3.6: Sơ ñ kh i 8250 Như v y, 8250 có 11 thanh ghi n i, v i cách truy c p như b ng sau: B ng 3.1: ð a ch các thanh ghi c a 8085 DLAB A2 A1 A0 ð c/ghi Thanh ghi Gi ng viên: Nguy n Văn Minh Trí 46
- Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 0 0 0 0 ñ m thu (RBR) và ñ m phát (THR) 0 0 0 1 ð c/ghi cho phép yêu c u ng t (IER) 1 0 0 0 ð c/ghi ch t chia ph n th p (LSB) 1 0 0 1 ð c/ghi ch t chia ph n cao (MSB) x 0 1 0 ðc nh n d ng ng t (IIR) x 0 1 1 ð c/ghi ñi u khi n dòng (LCR) x 1 0 0 ð c/ghi ñi u khi n MODEM (MC) x 1 0 1 ð c/ghi tr ng thái dòng (LSR) x 1 1 0 ð c/ghi tr ng thái modem (MSR) x 1 1 1 ð c/ghi nh nháp (DM) M i thanh ghi trong 8250 tương ng v i m t ñ a ch c ng, trong ñó có hai thang ghi ñ c bi t, nó có ch c năng có th thay th tuỳ thu c giá tr bit DLAB (divitor latch access bit –Bit truy c p ch t) (DLAB là bit D7 c a thanh ghi d ng s li u). • N u DLAB = 1 thì thanh ghi th c hi n ch c năng ch t chia ph n cao và ph n th p. • n u DLAB = 0 , hai thanh ghi dùng ñ ñ m và nh n d li u, và IER. 2. Mô t các thanh ghi: a) Thanh ghi ñ m thu (Receiver Buffer Register – RBR) ng v i DLAB = 0, thanh ghi có ñ a ch là 3F8h (COM1), hay 2F8h (COM2): Khi 8250 nh n ñư c ký t qua chân SIN (chân 10) ký t ñư c chuy n vào thanh ghi d ch, t i ñây nó ñư c tháo khung (các bit start, stop, parity) và n p song song vào thanh ñ m thu (lưu ý thanh ghi có 8 bit). CPU ch ñ c d li u trong thanh ghi này vì nó thao tác v i BUS d li u song song t i thi u m i l n là 1 byte. b) Thanh ghi ñ m phát (Transmitter Holding Register – THR) tương ng v i DLAB = 0, ñ a ch là 3F8h (2F8h) Ký t c n phát ñi ph i ñư c ghi t thanh ghi vào, thanh ghi này nó n m ch (holding) ñó cho ñ n khi ký t trư c nó ñư c phát ñi, sau ñó nó ñưa vào thanh ghi d ch c a b phát, t i ñây nó ñư c ñóng khung và ñưa ra t ng bit m t vào chân SOUT (chân 11) c a 8250, d li u ñ u ra ñây có d ng n i ti p. c) Thanh ghi cho phép ng t (Interrupt Enable Register - IER), bit DLAB = 0 , ñ a ch 3F9h (COM1) hay 2F9h (COM2) Thanh ghi này th c hi n ñ cho phép/c m các nguyên nhân gây ra ng t khác nhau. Trong khi 8250 ho t ñ ng, có tác ñ ng ñ n CPU thông qua chân INTRPT (chân 30), m i bit trong các bit D3, D2, D1, D0 m c cao s cho phép các ho t ñ ng tương ng v i các bit ñ ñưa ra nguyên nhân ng t tương ng, và c m ng t khi ghi 0 vào các bit. Bit Ch c năng 7-4 D tr , luôn ñ t b ng 0. 3 cho phép 8250 phát yêu c u ng t tr ng thái MODEM Gi ng viên: Nguy n Văn Minh Trí 47
- Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 2 cho phép 8250 phát yêu c u ng t theo tr ng thái d ng truy n nh n ho c ng t dòng thông tin (l i ch n l , tràn khung). 1 cho phép 8250 phát yêu c u ng t khi thanh ghi ñ m phát r ng. 0 cho phép 8250 phát yêu c u ng t khi thanh ghi ñ m thu ñ y, d li u ñã s n sàng d) Thanh ghi ch t chia ph n th p (Divisor Latch - LS) tương ng DLAB = 1, ñ a ch là 3F8h, hay 2F8h. e) Thanh ghi ch t chia ph n cao (Divisor Latch – MS) tương ng DLAB = 1, ñ a ch là 3F9h, hay 2F9h. ð ñ t t c ñ truy n mong mu n, giá tr tính toán ñư c ñ t trong hai thanh ghi, ñư c g i là thanh ghi ch t chia t c ñ ñư c tính theo công th c T n s nh p chu n B chia = 16 x t c ñ baud mong mu n - t n s nh p chu n do ñ ng h th ch anh c a 8250 phát ra, nó b ng 1,8432 MHZ - t c ñ t i ña tính toán là 115200 baud. - t c ñ baud ñ th c hi n các chân SIN, SOUT. B ng ch m i liên h gi a t c ñ s li u và các h s chia d ng hexa decimal như sau: Baud S chia Baud S chia 50 0900 1200 0060 110 0417 2400 0030 150 0300 4800 0018 300 0180 9600 000C 600 00C0 11520 0001 Qua ñó ta th y giá tr trong thanh ch t chia c n 1 byte rư i ñ lưu t t c . ð thu n ti n, ngư i ta s dùng 2 byte và ghi vào 2 thanh ghi, ñó chính là LSB và MSB. f) Thanh ghi nh n d ng ng t (Interrupt Identification Register - IIR), ñ a ch là 3FAh, hay 2FAh. Thanh ghi nh n d ng ng t (ch có th ñ c) ch a mã m c ưu tiên cao nh t c a các yêu c u ng t (t i chân 30-INPUT c a 8250) ñang ch ñư c ph c v . N u có nhi u ng t cùng m t lúc thì IIR s ch a mã ng t nào c n x lý trư c. Do v y khi c n x lý ng t, CPU c n ñ c bit D0 c a thanh ghi này ñ bi t có yêu c u ng t và ki m tra các bit D1 và D2 ñ xác ñ nh ngu n g c các yêu c u ng t. Sau khi 8250 b Reset, ch có yêu c u ng t ưu tiên s m t ñư c ph c v . Ta có th thay ñ i Gi ng viên: Nguy n Văn Minh Trí 48
- Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi ñi u này b ng cách dùng m t n che ñi các bit yêu c u ng t nào ñó b ng cách ghi vào thanh ghi IIR các giá tr bit thích h p. Các bit D7÷D3 luôn ñ t b ng 0. D2, D1: mã hoá các yêu c u ng t có m c ưu tiên cao nh t ñang ch ph c v . D2 D1 M c ưu tiên Nh n di n ng t 0 0 4 Tr ng thái MODEM ⇒ chương trình ñ c tr ng thái MODEM 0 1 3 Thanh ghi ñ m phát r ng 1 0 2 TG ñ m thu ñ y, s li u ñã s n sàng 1 1 1 tr ng thái dòng ñã thay ñ i D0=0: có yêu c u ng t D0=1: không có yêu c u ng t T các nh n d ng ng t trên, VXL s chuy n ñ n các ñ a ch ch a các chương trình con ph c v ng t. VXL s xoá các bit D0, D1, D2 v 0 sau các thao tác: -ñ c thanh ghi tr ng thái chu i. -ñ c d li u t thanh ghi ñ m thu. -ghi vào b phát ho c ñ c thanh ghi nh n di n ng t. -ñ c tr ng thái thanh ghi thao tác MODEM (RS232-C). g) Thanh ghi ñi u khi n dòng (Line Control Register – LCR), ñ a ch là 3FBh, hay 2FBh. Thanh ghi này còn có tên là thanh ghi ñ nh khuôn d ng d li u vì nó quy t ñ nh khuôn d ng c a d li u truy n trên ñư ng dây. Bit Ch c năng 7 =1 truy nh p thanh ghi ch t chia (LSB & MSB) ñ l p t c ñ baud =0 truy nh p IER,THR,RBR 6 ð t cho phép tín hi u Break 5-3 B5 B4 B3 Ch n ch n l x x0 Non 001 Odd 010 Even 101 High Parity 111 Low Parity 2 = 1 thì dùng 1.5 bit Stop n u ñ dài t là 5, còn n u ñ dài t 6-8 bit thì có 2 bit Stop. = 0 thì dùng 1 bit Stop 1-0 B1 B0 S bit data 00 5 01 6 10 7 11 8 Gi ng viên: Nguy n Văn Minh Trí 49
- Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi ð hi u tín hi u Break, ta xem ví d khung d li u trên v i 8 bit data, không ki m tra ch n l và 1 bit Stop. Khi ñư ng dây tr ng thái Mark, m c logic là 1. Bit Start s là m c logic 0. Sau ñó t ng bit data s ñư c g i trên ñư ng dây. Bit Stop (logic 1) sau ñó ñư c gán vào ñ k t thúc vi c truy n. Sau bit Stop s là bit logic 0, có nghĩa là bit Start c a m t d li u m i. N u không có thêm d li u truy n ñi, ñư ng dây ph i tr ng thái r i, m c logic 1. Do ñó n u ñư ng dây gi tr ng thái 0 sau bit Stop trong m t th i gian b ng ñ dài 1 t , tín hi u Break s ñư c t o ra. Tín hi u Break là tín hi u báo cho CPU hay MODEM bi t ký t truy n ñã xong và ñang t m ng t vi c truy n. h) Thanh ghi ñi u khi n MODEM (MODEM Control Register – MCR), ñ a ch 3FCh Thanh ghi này còn g i là thanh ghi ñi u khi n các tín hi u ra c a MODEM vì nó cho phép ñi u khi n các tín hi u t i các chân DTR (chân 33) và DTS (chân 32) c a 8250. Bit Ch c năng 7-5 D tr , luôn ñư c thi t l p v 0. 4 =1 cho phép 8250 làm vi c ch ñ n i vòng c c b ñ ki m tra các ch c năng c a 8250. =0 làm vi c ch ñ thư ng. 3 =1 : kích ho t k t xu t OUT2 2 =1 : kích ho t k t xu t OUT1 1 =1 : tín hi u t i chân RTS c a 8250 ñư c chuy n v m c 0, máy tính phát chuy n tín hi u RTS t i MODEM ñ báo hi u nó ñã s n sàng phát d li u. 0 =1 : tín hi u t i chân DTR c a 8250 ñ t m c 0, lúc này máy tính g i tín hi u DTR t i MODEM (hay t i MVT ñ u kia n u giao ti p không dùng MODEM) ñ báo hi u nó s n sàng làm vi c (tín hi u g i t i chân s 4 c a DB9 hay chân 20 c a DB25). i) Thanh ghi tr ng thái dòng (Line Status Register – LSR) ñ a ch 3FDh Ch c năng thanh ghi này cho bi t tr ng thái dòng tín hi u trên ñư ng dây như th nào, các bit D0÷D5 ñ u có th gây ra ng t n u các bit tương ng trong thanh ghi IER ñư c l p . Các bit tr ng thái có ý nghĩa như sau: Bit Ch c năng Gi ng viên: Nguy n Văn Minh Trí 50
- Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 7 D tr 6 =1: báo thanh ghi chuy n phát r ng (Transmitter Shift Register Empty), báo m t kí t ñã ñư c phát ñi, bit này b xoá khi có m t kí t chuy n t THR sang TSR. 5 =1: báo thanh ghi ñ m truy n r ng, ký t chuy n t THR sang TSR (Transmitter Shift Register), bit này b xoá khi CPU ñưa kí t ñ n THR. 4 =1: báo nh n ñư c tín hi u Break, bit này b xoá khi ñ c thanh ghi LSR. 3 =1: báo l i khung (framming error) ch ng h n bit stop =0, bit này b xoá khi CPU ñ c thanh ghi LSR. 2 =1: nh n báo ñư c l i ki m tra ch n l (parity error), bit này b xoá khi CPU ñ c thanh ghi LSR. 1 =1: có l i tràn (over run) x y ra khi kí t trư c ñó b m t, bit này b xoá khi CPU ñ c thanh ghi LSR. 0 =1: ñã nh n ñư c 1 ký t và ñ nó trong thanh ghi ñ m thu (RBR), bit này b xoá v 0 khi CPU ñ c thanh ghi RBR. j) Thanh ghi tr ng thái modem (MODEM Status Regisster – MSR), ñ a ch 3FEh Thanh ghi này còn ñư c g i là thanh ghi tr ng thái vào t RS232C vì nó cho bi t tr ng thái hi n th i c a các tín hi u ñi u khi n MODEM. Bit Ch c năng 7 =1 : DCD ñang ho t ñ ng, báo liên l c v i MODEM ñã ñư c thi t l p. 6 =1 : RI ñang ho t ñ ng 5 =1 : MODEM (hay MVT ñ u kia) g i tín hi u DSR (Data Set Ready) v máy tính ñ cho bi t ñã s n sàng nh n d li u (qua chân 6 c a DB9 hay DB25) 4 =1 : MODEM (hay MVT ñ u kia) g i tín hi u CTS (Clear To Send) v máy tính ñ cho bi t ñã s n sàng nh n d li u (qua chân 8 c a DB9 hay chân 5 c a DB25). 3 =1 : bit D7 v a ñ i tr ng thái 2 =1 : bit D6 v a ñ i tr ng thái 1 =1 : bit D5 v a ñ i tr ng thái 0 =1 : bit D4 v a ñ i tr ng thái k) Thanh ghi nh nháp (Scratch Register), ñ a ch 3FFh (dành cho CPU, ít s d ng nên không nghiên c u) Gi ng viên: Nguy n Văn Minh Trí 51
- Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 3.2.2 Ghép n i v i UART 8250: SOUT RxD D0 ÷ D7 D0 ÷ D7 TxD SIN MR Reset MO RTS RTS MEMR I/O R DTR DEM DISTR DTR MEMW I/O W DOSTR DSR DSR DCD 8250 DCD VXL CTS CTS A0 A0 RI RI A1 A1 OUT1 A2 A2 OUT 2 Gi i A3 ÷ A15 mã ñ a CS 2 XTAL1 ch CS CS1 XTAL2 CS 0 CS 5V 0V ADS BAUDOUT CS DOSTR RCKL DISTR Hình 3.7: Sơ ñ ghép n i v i 8250 3.2.3 L p trình cho UART 8250: Lưu ñ thu t toán: a. Kh i phát vi m ch theo trình t sau: - Ghi vào thanh ghi d ng s li u theo : + D7 = DLAB = 1 ñ chu n b ghi ch t cho b chia t c ñ . + Khung tin v i s bit Stop + S bit c a tin - Ghi giá tr b chia t n s vào các thanh ghi ch t chia LSB, MSB tuỳ theo t c ñ baud. - Ghi các phép yêu c u ng t vào thanh ghi yêu c u ng t. b. Phát s li u n i ti p: - ð c thanh ghi nh n d ng ng t ñ bi t b ñ m r ng, có th phát tin. - Ghi vào thanh ghi ñi u khi n MODEM ñ ñưa l nh DRT (bit D0-1) ñi u khi n MODEM chu n b phát. - ð c thanh ghi tr ng thái MODEM ñ ki m tra các bit DSR (D5), RI (D6), DCD (D7) xem ñã chu n b phát chưa? ( giá tr chúng =1) - ð c thanh ghi tr ng thái dòng ñ xem có sai s không và hai thanh truy n và ñ m có tr ng không? (ñ ñưa tin ra) - Ghi tin ra vào thanh ghi ñ m phát t MVT. - Ghi l nh RTS (D1=1) vào thanh ghi ñi u khi n MODEM ñ ñi u khi n phát s li u. Gi ng viên: Nguy n Văn Minh Trí 52
- Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi c. Nh n s li u n i ti p: - Ghi l nh DTR (D0=1) vào thanh ghi ñi u khi n MODEM - ð c tr ng thái MODEM DSR, RI, DCD thanh ghi tr ng thái MODEM. - ð c thanh ghi tr ng thái dòng ñ bi t ñã có s li u thu chưa (D0=1); ho c ñ c thanh ghi nh n di n ng t ñ bi t thêm s li u thu. - ð c s li u vào t thanh ghi ñ m s li u vào. Ví d 8250 c n trao ñ i tin 8 bit, t c ñ 9600 baud, không ki m tra ch n l , 2 bit Stop, ñ a ch làm vi c ñ u 03F8h. Ghi thanh ghi ñi u khi n dòng D0D1=11 , D2=1, D3=0, D4=0, D5=0, D6=0, D7=1 ⇒ data1_LCR=87h n u D7=0⇒data2_LCR=07h addr_LCR=03FBh Ghi thanh ghi ch t b chia 9600 baud ⇒ s chia=000C data_LS = 0Ch và data_MS = 00h addr_LS=03F8h và addr_MS=03F9h Ghi thanh ghi cho phép ng t không làm vi c, c m ng t: data_IER=00h; addr_IER=03F9h ð c thanh ghi nh n d ng ng t THR_rong= 02h addr_IIR=03FAh Ghi thanh ghi ñi u khi n MODEM Addr_MCR=3FCh Data_DRT=01h Data_RTS=02h ð c thanh ghi tr ng thái MODEM Addr_MSR=3FEh DSR (D5), RI (D6), DCD (D7) = 1 ⇒data1_MSR=E0h ð c thanh ghi tr ng thái dòng Addr_LSR=3FDh Không l i D1 D2 D3 = 0; t/g ñ m r ng D5 D6 =1⇒data1_LSR=60h Chương trình con th c hi n các công vi c trên: 1. Kh i phát vi m ch theo trình t sau: port[addr_LCR] :=data1_LCR; port[addr_LS] :=data_LS; port[addr_MS] :=data_MS; port[addr_LCR] :=data2_LCR; Gi ng viên: Nguy n Văn Minh Trí 53
- Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi port[addr_ IER] :=data_IER; 2. Phát s li u n i ti p repeat Var1 := port[addr_IIR]; Until ((var1 and THR_rong)=THR_rong); port[addr_MCR] := data_DRT; repeat Var2 := port[addr_MSR]; Until ((var2 and data1_MSR)=data1_MSR); Repeat var3 := port[addr_LSR]; until ((var3 and data1_LSR)=data1_LSR); port[addr_THR] :=$50; {s li u truy n ñi} port[addr_MCR] := data_RTS; 3.Nh n s li u n i ti p port[addr_MCR] := data_DRT; Repeat Var2 := port[addr_MSR]; Until ((var2 and data1_MSR)=data1_MSR); Repeat var3 := port[addr_LSR]; until ((var3 and data1_LSR)=data1_LSR); Var4 :=port[addr_RBR]; Gi ng viên: Nguy n Văn Minh Trí 54
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Cơ bản và ghép nối về chuẩn giao tiếp RS232
6 p | 524 | 183
-
Giới thiệu về hệ điều hành mạng Windows NT
10 p | 361 | 105
-
Điều khiển các thiết bị điện trong nhà qua mạng Internet
10 p | 234 | 72
-
Ghép nối và điều khiển thiết bị ngoại vi - Chương 1
16 p | 229 | 52
-
Ghép nối và điều khiển thiết bị ngoại vi - Chương 6
19 p | 133 | 37
-
Ghép nối và điều khiển thiết bị ngoại vi - Chương 4
4 p | 156 | 36
-
Ghép nối và điều khiển thiết bị ngoại vi - Chương 5
14 p | 145 | 31
-
Bài giảng Kỹ thuật vi xử lý và lập trình hợp ngữ
165 p | 124 | 27
-
Bài giảng Vi xử lý – Vi điều khiển
222 p | 167 | 26
-
Bài giảng Kiến trúc máy tính - Chương 8: Vào-Ra - Nguyễn Kim Khánh
56 p | 164 | 26
-
MÔ HÌNH TÍCH HỢP MẶT PHẲNG ĐIỀU KHIỂN GMPLS TRONG MẠNG OBS
11 p | 87 | 15
-
Driver: Linh hồn của các thiết bị ngoại vi
3 p | 101 | 14
-
Bài giảng Kiến trúc máy tính và hợp ngữ - Chương 7: Hệ thống vào ra
51 p | 91 | 12
-
Bài giảng Kiến trúc và tổ chức máy tính: Chương 5 - ThS. Trần Quang Hải Bằng
28 p | 103 | 9
-
Hệ thống ₫iều khiển phân tán-Chương 2: Cấu trúc hệ thống
20 p | 91 | 6
-
Bài giảng môn học Thiết kế board giao tiếp - Trần Văn Hùng
75 p | 85 | 5
-
Bài giảng Kiến trúc máy tính và hệ điều hành: Chương 4 - Nguyễn Ngọc Duy
53 p | 41 | 5
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn