Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 11 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
11
Dung lượng
790,32 KB
Nội dung
Chương 5: Ho t ñ ng c a port n i ti p (Serial Port) Trư ng ðH Công nghi p Tp.HCM CHƯƠNG HO T ð NG C A PORT N I TI P (SERIAL PORT) I M ð U: Máy tính truy n d li u theo hai phương pháp: truy n d li u song song truy n d li u n i ti p • Truy n song song: S d ng nhi u dây d n ñ truy n d li u gi a thi t b có kho ng cách g n (kho ng vài mét) Phương pháp cho phép truy n d li u v i t c ñ cao nh s d ng nhi u dây d n ñ truy n d li u ñ ng th i nên t i m t th i m có th truy n đư c nhi u bit thơng tin kho ng cách truy n có nhi u h n ch • Truy n n i ti p: S d ng m t dây d n ñ truy n d li u (m t dây phát ñi m t dây thu v ) gi a thi t b có kho ng cách xa (kho ng vài trăm mét tr lên) Phương pháp s truy n d li u v i t c ñ ch m (so v i phương pháp truy n song song) ch s d ng m t dây d n ñ truy n d li u nên t i m t th i m ch có th truy n đư c m t bit thơng tin kho ng cách truy n khơng b h n ch phương pháp song song Chip 8051 có m t port n i ti p (serial port) v i tính sau: • Lưu ý: trư ng h p đ c trưng th hai d li u th nh t s không b m t n u CPU ñ c xong d li u th nh t trư c d li u th hai ñư c nh n ñ y ñ Các ghi ch c ñ c bi t c a port n i ti p: ð i lư ng ñ c trưng cho t c ñ truy n d li u nhanh hay ch m t c ñ baud (baud rate) hay g i t n s ho t ñ ng c a port n i ti p có th giá tr c đ nh hay thay ñ i tùy theo yêu c u c a ngư i l p trình Khi ch đ t c đ baud thay ñ i ñư c s d ng, b ñ nh th i cung c p xung clock t c ñ baud ta ph i l p trình cho phù h p phiên b n chip 8031/8052, b đ nh th i có th ñư c l p trình ñ cung c p xung clock t c đ baud Giáo trình Vi x lý 154 Biên so n: Ph m Quang Trí Chương 5: Ho t ñ ng c a port n i ti p (Serial Port) Trư ng ðH Công nghi p Tp.HCM II THANH GHI ð M PORT N I TI P (SBUF): Thanh ghi SBUF (Serial Buffer Register): ñư c dùng ñ lưu gi d li u c n phát ñi d li u ñã nh n ñư c Vi c ghi d li u vào ghi SBUF s n p d li u ñ phát ñi vi c ñ c d li u t ghi SBUF s truy xu t d li u ñã thu ñư c Thanh ghi SBUF bao g m ghi: ⇒ Thanh ghi phát (b ñ m phát): dùng ñ lưu gi d li u c n phát ñi ⇒ Thanh ghi thu (b ñ m thu): dùng ñ lưu gi d li u ñã nh n ñư c C u trúc c a ghi SBUF: • Ví d : Các l MOV MOV MOV MOV Giáo trình Vi x lý nh ghi d li u vào SBUF ñ c d li u t SBUF SBUF, #45H ;Phát giá tr 45H qua port n i ti SBUF, #”D” ;Phát giá tr 44H qua port n i ti SBUF, A ;Phát n i dung c a A qua port n A, SBUF ;ð c d li u thu ñư c t port n 155 p p i ti p i ti p Biên so n: Ph m Quang Trí Chương 5: Ho t ñ ng c a port n i ti p (Serial Port) Trư ng ðH Công nghi p Tp.HCM III THANH GHI ðI U KHI N PORT N I TI P (SCON): Thanh ghi SCON (Serial Control Register): ch a bit dùng ñ ñi u n ch ñ ho t ñ ng báo tr ng thái c a port n i ti p C u trúc c a ghi SCON: Bit SCON: Serial Control Register 9F 9E 9D 9C 9B 9A 99 98 SM1 REN RB8 RI SM0 SM2 TB8 TI Địa bit (HEX) Ký hiệu RI: Receive Interrupt Cờ ngắt thu RI = kết thúc việc thu liệu, RI xóa phần mềm TI: Transmit Interrupt Cờ ngắt phát TI = kết thúc việc phát liệu, TI xóa phần mềm RB8: Receive bit Bit thứ nhận (chế độ 3) TB8: Transmit bit Bit thứ phát (chế độ 3) Bit set (1) xóa (0) phần mềm REN: Receive Enable để nhận liệu Cho phép thu Bit phải set SM2: Serial Mode Bit chọn chế độ port nối tiếp Bit cho phép truyền thông đa xử lý chế độ 3; bit RI không tích cực bit thứ nhận SM1: Serial Mode Bit chọn chế độ port nối tiếp SM0: Serial Mode Bit chọn chế độ port nối tiếp Các ch đ c a port n i ti p: Trư c s d ng port n i ti p c n ph i: Giáo trình Vi x lý 156 Biên so n: Ph m Quang Trí Chương 5: Ho t đ ng c a port n i ti p (Serial Port) Ví d : Kh i ñ ng port n i ti p li u t chân TxD Trư ng ðH Công nghi p Tp.HCM ch ñ 1, cho phép port thu d li u t chân RxD s n sàng phát d Gi i Ta dùng l nh: MOV SCON, #52H Gi i thích: SM0 = 0, SM1 = → cho phép port ho t ñ ng ch ñ REN = → cho phép port n i ti p ñư c phép thu d li u TI = → chu n b port n i ti p s n sàng phát d li u qua chân TxD RI = → chu n b port n i ti p s n sàng thu d li u qua chân RxD IV CÁC CH ð HO T ð NG C A PORT N I TI P: Ch ñ – Thanh ghi d ch bit: Quá trình phát d li u: • Q trình kh i đ ng: Ghi d li u c n phát vào SBUF ⇒ Vi c phát d li u b t ñ u: D li u t SBUF ñư c d ch chân RxD ñ ng th i v i xung clock d ch bit ñư c g i chân TxD (m i bit ñư c truy n ñi chân RxD chu kỳ máy) W Giáo trình Vi x lý ri t e 157 Biên so n: Ph m Quang Trí Chương 5: Ho t đ ng c a port n i ti p (Serial Port) Trư ng ðH Cơng nghi p Tp.HCM • Gi n đ th i gian phát d li u: Quá trình thu d li u: • Q trình kh i đ ng: Set bit cho phép thu (REN=1) → Xóa c ng t thu (RI=0) ⇒ Vi c thu d li u b t ñ u: Các xung clock d ch bit ñư c g i chân TxD d li u t thi t b bên ngồi đư c d ch vào chân RxD b i xung clock d ch bit (vi c d ch d li u vào chân RxD x y c nh lên c a xung clock d ch bit) • Gi n đ th i gian thu d li u: ng d ng: M t ng d ng kh thi c a ch ñ (ch ñ ghi d ch bit) m r ng thêm ngõ cho chip 8051 M t vi m ch ghi d ch n i ti p – song song có th đư c n i v i chân TxD RxD c a chip 8051 ñ cung c p thêm ñư ng xu t (xem hình v bên dư i) Các ghi d ch bit khác có th ghép cascade v i ghi d ch bit ñ u tiên ñ m r ng thêm n a Giáo trình Vi x lý 158 Biên so n: Ph m Quang Trí Chương 5: Ho t ñ ng c a port n i ti p (Serial Port) 8051 Data A1H W Trư ng ðH Công nghi p Tp.HCM Shift register: Thanh ghi dịch bit extra outputs: ngõ mở rộng Extra outputs ri t e D7 SBUF 10100001B RxD Serial port D0 Shift Register Data DATA 10100001 SHIFT CLOCK Clock TxD Chế độ ghi dịch bit port nối tiếp Ch đ – UART bit có t c đ baud thay đ i: Trong ch ñ 1, port n i ti p c a 8051 ho t ñ ng m t b thu phát khơng đ ng b bit có t c đ baud thay ñ i (UART - Universal Asynchronous Receiver Transmitter) UART m t b thu phát d li u n i ti p v i m i ký t d li u ñư c ñ ng trư c b i m t bit START (logic 0) ñư c ñ ng sau b i m t bit STOP (logic 1) Th nh tho ng, m t bit ch n l (Parity bit) ñư c chèn vào gi a bit d li u sau bit stop Ho t ñ ng ch y u c a UART bi n ñ i d li u phát t song song thành n i ti p bi n ñ i d li u thu t n i ti p thành song song Hình v khng d ng d li u ñư c s d ng [1] [0] D0 START BIT (Mức 0) D1 D2 D3 D4 DATA BIT ch đ UART: D5 D6 D7 Bit có tùy theo yêu cầu sử dụng PARITY STOP BIT BIT (Mức 1) Khng d ng c a m t d li u s d ng ch ñ UART bit: Giáo trình Vi x lý 159 Biên so n: Ph m Quang Trí Chương 5: Ho t ñ ng c a port n i ti p (Serial Port) Trư ng ðH Công nghi p Tp.HCM Quá trình phát d li u: • Q trình kh i ñ ng: Ghi d li u c n phát vào SBUF ⇒ Vi c phát d li u b t ñ u: D li u t SBUF ñư c d ch chân TxD (theo th t : Start bit → bit data (D0 D7) → Stop bit) → c TI=1 W rit e • T c đ baud: ngư i l p trình thi t l p ñư c qui ñ nh b i t c ñ tràn c a Timer • Th i gian c a bit ñư ng truy n: b ng ngh ch ñ o c a t c ñ baud (1 / Baud rate) • C ng t phát TI = 1: bit stop ñư c xu t hi n chân TxD Qúa trình thu d li u: • Q trình kh i đ ng: M t s chuy n tr ng thái t m c xu ng m c t i chân RxD (t c xu t hi n bit Start) ⇒ Vi c thu d li u b t ñ u: bit d li u ñư c d ch vào SBUF (theo th t : D0→D1→…→D7) → Stop bit (bit th 9) ñư c ñưa vào bit RB8 (thu c ghi SCON) → c RI=1 • T c đ baud: ngư i l p trình thi t l p ñư c qui ñ nh b i t c ñ tràn c a Timer • Hai ñi u ki n b t bu c ñ th c hi n trình thu d li u trên: o RI = → Yêu c u có nghĩa chip 8051 ñã ñ c xong d li u trư c xố c RI o (SM2 = Stop bit = 1) ho c SM2 = → ch áp d ng ch ñ truy n thơng đa x lý u c u có nghĩa không set c RI b ng ch đ truy n thơng đa x lý bit d li u th • C ng t thu RI = 1: bit d li u ñã ñư c n p vào SBUF Lưu ý: Trư ng h p tín hi u nhi u xu t hi n ñư ng truy n (làm cho ñư ng truy n xu t hi n m c th p) d n ñ n làm cho b thu nh n d ng sai, cho s xu t hi n c a START bit (logic 0) ti n hành th c hi n trình thu d li u, t d n đ n k t qu nh n vào s khơng ð tránh u x y đư ng truy n có s chuy n tr ng thái t xu ng 0, b thu yêu c u m c ph i Giáo trình Vi x lý 160 Biên so n: Ph m Quang Trí Chương 5: Ho t ñ ng c a port n i ti p (Serial Port) Trư ng ðH Công nghi p Tp.HCM đư c trì đư ng truy n m t kho ng th i gian xác ñ nh N u khơng đ m b o đư c th , b thu ñư c gi s r ng nh n đư c nhi u thay nh n ñư c START bit h p l Lúc b thu s đư c thi t l p l i, quay v tr ng thái ngh ch s chuy n tr ng thái t xu ng k ti p ñư ng truy n Ch đ – UART bit có t c ñ baud c ñ nh: (Tương t UART bit, ch khác s bit d li u bit) Khuông d ng c a m t d li u s d ng ch ñ UART bit: Ch đ – UART bit có t c ñ baud thay ñ i: (Tương t UART bit, ch khác Giáo trình Vi x lý 161 t c đ baud có th thay đ i) Biên so n: Ph m Quang Trí Chương 5: Ho t ñ ng c a port n i ti p (Serial Port) Trư ng ðH Công nghi p Tp.HCM Recei Trans Receive Transmit Khuông d ng c a m t d li u s d ng ch ñ UART bit: V KH I ð NG VÀ TRUY XU T CÁC THANH GHI: Bit cho phép thu (nh n) d li u (REN: Receive Enable): • Cơng d ng: dùng đ cho phép (ho c khơng cho phép) nh n ký t d li u REN = 1: Cho phép nh n d li u ⇒ l nh th c hi n: SETB REN REN = 0: Không cho phép d li u ⇒ l nh th c hi n: CLR REN Bit d li u th 9: • Cơng d ng: tùy thu c vào ñ c tính k thu t c a thi t b n i ti p mà có th yêu c u ho c không yêu c u bit d li u th Khi phát d li u: bit d li u th ph i ñư c n p vào bit TB8 c a SCON trư c phát ñi Khi thu d li u: bit d li u th s ñư c n p vào bit RB8 c a SCON sau thu xong Bit ki m tra ch n / l (P: Parity): • Cơng d ng: Trong chip 8051 bit Parity đư c dùng ñ thi t l p vi c ki m tra ch n cho bit d li u ch a ghi A (thư ng dùng ñ ki m tra l i truy n d li u) P = ⇒ S lư ng bit ghi A s l P = ⇒ S lư ng bit ghi A s ch n ho c S lư ng bit ghi A bit P m t s ch n ch ñ (UART bit) bit ch n/l chip 8051 t o có th đư c thêm vào t i bit th (v trí D7) ta ch có th truy n d li u ch có bit Giáo trình Vi x lý 162 Biên so n: Ph m Quang Trí Chương 5: Ho t đ ng c a port n i ti p (Serial Port) Trư ng ðH Cơng nghi p Tp.HCM ch đ 2, (UART bit) bit ch n/l chip 8051 t o có th đư c thêm vào t i bit th (nghĩa thêm vào bit TB8 c a SCON) ta có th truy n d li u có bit START D0 D1 D2 D3 D4 D5 D6 D7 PARITY STOP Bit thứ DATA (8 bit) Ví d : Truy n d li u (ch ñ 2, – UART bit) ch a ghi A thông qua port n i ti p v i yêu c u truy n bit d li u + bit ki m tra ch n (bit P) Chu i l nh th c hi n: MOV C, P ;Chuy n bit ki m tra ch n (bit P) vào TB8 MOV TB8, C ;bit tr thành bit th MOV SBUF, A ;Truy n bit d li u A thơng qua port Ví d : Truy n d li u (ch ñ 2, – UART bit) ch a ghi A thông qua port n i ti p v i yêu c u truy n bit d li u + bit ki m tra l (l y bù bit P) Chu i l nh th c hi n: MOV C, P ;Bi n ñ i bit ki m tra ch n (bit P) thành bit CPL C ;ki m tra l , chuy n bit ki m tra l vào TB8 MOV TB8, C ;bit tr thành bit th MOV SBUF, A ;Truy n bit d li u A thơng qua port Ví d : Truy n d li u (ch ñ – UART bit) ch a ghi A thông qua port n i ti p v i yêu c u truy n bit d li u + bit ki m tra ch n (bit P) Chu i l nh th c hi n: CLR ACC.7 MOV C, P MOV ACC.7, C MOV SBUF, A ;Xoá bit th (D7) ghi A ;Sao chép bit ki m tra ch n vào C ;ð t bit ki m tra ch n vào bit th A ;Truy n bit d li u c ng bit ki m tra ch n Các c ng t c a port n i ti p: T ph n trình bày đây, ta có th th y r ng: • Thơng qua vi c ki m tra c ng t TI có th bi t ñư c chip 8051 ñã s n sàng ñ truy n m t byte d li u hay chưa C n ý r ng, ñây c TI ñư c ñ t (TI = 1) 8051 ñã hoàn t t vi c truy n m t byte d li u, cịn đư c xố (TI=0) ph i ngư i l p trình th c hi n b ng l nh (CLR TI) Cũng nên nh r ng, n u ghi m t byte vào ghi SBUF trư c c TI ñư c ñ t (TI = 1) s có nguy b m t ph n d li u trư c chưa k p truy n C TI có th ñư c ki m tra b ng l nh (JNB TI,…) ho c s d ng phương pháp ng t (s đư c trình bày chương ti p theo) Giáo trình Vi x lý 163 Biên so n: Ph m Quang Trí Chương 5: Ho t đ ng c a port n i ti p (Serial Port) Trư ng ðH Cơng nghi p Tp.HCM • Thơng qua vi c ki m tra c ng t RI có th bi t ñư c chip 8051 ñã nh n xong m t byte d li u hay chưa C n ý r ng, ñây c RI ñư c ñ t (RI = 1) 8051 hồn t t vi c nh n m t byte d li u, cịn đư c xố (RI=0) ph i ngư i l p trình th c hi n b ng l nh (CLR RI) Cũng nên nh r ng, n u không ti n hành c t n i dung c a ghi SBUF vào nơi an tồn s có nguy b m t d li u v a nh n ñư c d li u ti p theo ñư c chuy n vào C RI có th đư c ki m tra b ng l nh (JNB RI,…) ho c s d ng phương pháp ng t (s đư c trình bày chương ti p theo) Lưu ñ ño n l nh ñ ki m tra thu m t d li u n i ti p t thi t b bên vào chip 8051 (ch a vào A): Lưu ñ ño n l nh ñ ki m tra phát m t d li u n i ti p t chip 8051 (ch a A) thi t b bên ngồi: VI TRUY N THƠNG ðA X LÝ: Các ch ñ ch ñ d phịng cho vi c truy n thơng đa x lý Trong ch ñ này, bit d li u ñư c thu bit th ñưa ñ n RB8 Port có th đư c l p trình cho bit stop ñư c nh n, ng t port n i ti p ch đư c tích c c n u RB8=1 ð c trưng có th ñư c b ng cách set bit SM2 ghi SCON b ng M t ng d ng cho u m t mơi trư ng m ng s d ng nhi u 8051 ñư c s p x p theo mơ hình ch /t (master/slave) hình dư i Giáo trình Vi x lý 164 Biên so n: Ph m Quang Trí ... chế độ port nối tiếp SM0: Serial Mode Bit chọn chế độ port nối tiếp Các ch đ c a port n i ti p: Trư c s d ng port n i ti p c n ph i: Giáo trình Vi x lý 156 Biên so n: Ph m Quang Trí Chương 5: Ho.. .Chương 5: Ho t ñ ng c a port n i ti p (Serial Port) Trư ng ðH Công nghi p Tp.HCM II THANH GHI ð M PORT N I TI P (SBUF): Thanh ghi SBUF (Serial Buffer Register): ñư... d ng phương pháp ng t (s đư c trình bày chương ti p theo) Giáo trình Vi x lý 163 Biên so n: Ph m Quang Trí Chương 5: Ho t ñ ng c a port n i ti p (Serial Port) Trư ng ðH Cơng nghi p Tp.HCM • Thơng