Tài liệu chương 5: Hoạt động của port nối tiếp (Serial Port) pptx

11 1.1K 13
Tài liệu chương 5: Hoạt động của port nối tiếp (Serial Port) pptx

Đ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

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

Ngày đăng: 20/01/2014, 19:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan