1. Trang chủ
  2. » Giáo Dục - Đào Tạo

GIáo trình truyền dữ liêu part 4 doc

22 350 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 393,49 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Select : Chọn thanh ghi 1: Dữ liệu; 0: Ðiều khiển - R / : Read / Write - : Interrupt request : Yêu cầu ngắt - D7-D0 : Data Bus I/O : Bus dữ liệu vào/ra - E : Data I/O Enable and Clkng Ði

Trang 1

• Ý nghĩa các chân :

- , CS1, CS0 : Chip slect : chọn chip

- RS : Reg Select : Chọn thanh ghi (1: Dữ liệu; 0: Ðiều khiển)

- R / : Read / Write

- : Interrupt request : Yêu cầu ngắt

- D7-D0 : Data Bus I/O : Bus dữ liệu vào/ra

- E : Data I/O Enable and Clkng (Ðiều khiển xuất nhập dữ liệu vào/ra bus)

- RxCLK, TxCLK : Ngã vào xung ñồng hồ thu, phát

Thanh ghi ñiều khiển hoặc thanh ghi trạng thái ñược chọn khi chân RS xuống thấp và thanh ghi dữ liệu thu hoặc phát ñược chọn khi RS lên cao Thanh ghi dữ liệu phát

và ñiều khiển chỉ có thể ghi (write) Thanh ghi dữ liệu thu và trạng thái chỉ có thể ñọc (read)

Trang 2

Bảng 4.2 6850 Control Register Word Bits

D7

Cho phép ngắt thu

0 = Không cho phép ngắt thu

10 = high Không cho phép ngắt phát

11 = low Không cho phép ngắt phát &

D3

100 = 8 bit + 2 Stop

101 = 8 bit + 1 Stop

D2

111 = 8 bit + Lẻ + 1 Stop

của thanh ghi trạng thái và ñưa chân và lên cao

* Bít C7 = 1, CPU bị ngắt nếu:

- Thanh ghi dữ liệu thu ñầy - Bị tràn

- Có một biến ñổi từ thấp lên cao ở chân (modem không dò ra sóng mang)

Bảng 4 3 6850 Status Register Bits

Trang 3

Thông tin trong thanh ghi trạng thái ñược ñọc bởi CPU và cho biết trạng thái hiện hành của 6850

Bít D0 : (RDRF) Bít này set 1 sau khi data nhận ñược ñã truyền từ thanh ghi dịch thu tới thanh ñệm thu và nó ñược xóa sau khi CPU ñã ñọc data

Bít D1 : (TDRE) Bít này ñược set khi data ñã chuyển từ thanh ghi ñệm phát ñến thanh ghi dịch phát, nó ñược xóa khi CPU viết từ mới vào thanh ghi ñệm phát

Bít D2 : (CD) Bít này ñược set nếu Modem không dò ra sóng mang

Bít D3 : (CTS) Bít này ñược reset ( =0) nếu có tín hiệu tác ñộng xóa ñể gửi

Bít D4 : (FE) Bít này set nếu máy thu không dò ra bít stop ( sai khung)

Bít D5 : (OVRN) Bít này set nếu 6850 chuyển data thu ñược từ thanh ghi dịch thu vào thanh ghi ñệm thu trước khi CPU ñọc nội dung trong thanh ghi này, nó chỉ rằng có một phần bản tin bị mất Bít này ñược reset khi CPU ñọc thanh ghi ñệm thu

Bít D6 : (PE) Bít này set khi máy thu dò ra lỗi parity

Bít D7 : (IRQ) Bít này set khi có tín hiệu tác ñộng trên ngã ra tới CPU

- Reset chip: các bit trong thanh ghi trạng thái về 0 và hai chân và lên cao

- Lập trình từ ñiều khiển ñể chọn giao thức hoạt ñộng

- Phát một ký tự:

Khi ñã khởi ñộng chip ta chỉ cần 2 bước ñể phát một ký tự

- Chân phải ở mức thấp

- Ðợi cho ñến khi bít TDRE = 1 (trong thanh ghi trạng thái)

- Ghi ký tự cần phát vào thanh ghi dữ liệu phát

Trang 4

Một ví dụ ñể thấy hoạt ñộng phát của 6850 Từ ñiều khiển ghi vào thanh ghi có dạng 10101101 Do bít D6 và D5 là 0 và 1, một tín hiệu mức thấp tác ñộng cho bởi chân gửi tới modem, sau một thời gian trể xác ñịnh, modem gửi tín hiệu tác ñộng mức thấp tới chân C , báo dữ liệu sẵn sàng ñể gửi ñi CPU ñọc thanh ghi trạng thái và nếu bít D1 (TDRE) lên 1 nó sẽ gửi từ kế tiếp ñến thanh ghi ñệm phát, từ này ñược chốt vào thanh ghi khi chân E chuyển từ mức cao xuống thấp, ñiều này khiến cho bít TDRE reset xuống

0 Mạch logic bên trong tạo bít kiểm tra lẻ theo yêu cầu và chuyển dữ liệu cùng với bít start, bít parity và bít stop vào thanh ghi dịch phát Dữ liệu ñược chuyển ra ngoài trên ñường TxD với bit rate bằng 1/16 tần số xung ñồng hồ ở chân TxCLK

Khi dữ liệu ñã chuyển vào thanh ghi dịch phát bít TDRE của thanh ghi trạng thái lên 1, một lần nữa vì bít D6 và D5 của thanh ghi ñiều khiển là 0 và 1 nên khi TDRE lên 1 một tín hiệu ngắt tự ñộng gửi ñến CPU ở ngã ra CPU trả lời bằng cách gửi từ thứ 2 tới thanh ghi ñệm phát mặc dù từ thứ nhất có thể chưa hoàn toàn chuyển ra ngoài Sở dĩ ñược như vậy vì 6850 dùng thanh ghi ñôi và việc này làm gia tăng vận tốc truyền

- Thu một ký tự

Có 3 bước cần thiết ñể thu một ký tự

- Ðợi cho ñến khi bít RDRF = 1

- Ðọc trạng thái lỗi từ thanh ghi trạng thái

- Ðọc ký tự thu từ thanh ghi dữ liệu thu Các ngắt phát và/hoặc thu có thể ñược cho phép bởi từ ñiều khiển (xem bảng 4.2) Chân sẽ ở mức thấp bất cứ khi nào các bít trạng thái TDRE và/hoặc RDRF

là 1 Trong khi chân ở thấp bít trạng thái IRQ là 1

Dưới ñây là quá trình thu một ký tự

Tín hiệu nối tiếp tới chân RxD của ACIA Thông thường chân này ở mức cao khi không có tín hiệu vào Khi có tín hiệu tới bít ñầu tiên là bít start (bít D0) làm chân RxD chuyển từ cao xuống thấp Giả sử tần số xung ñồng hồ thu bằng 16 lần vận tốc bít, thì sau

8 chu kỳ ñồng hồ kể từ khi chân RxD chuyển từ cao xuống thấp, ngã vào này ñược kiểm tra một lần nữa và nếu nó vẫn còn ở mức thấp, bít start mới có giá trị, nếu không ACIA xem tín hiệu nhận ñược là nhiễu và tiếp tục giám sát sự thay ñổi ở chân này ñể tìm ra bít start Dùng 8 chu kỳ ñồng hồ sau khi có sự thay ñổi trạng thái của chân RxD khiến cho data ñược lấy mẫu ñúng ngay ñiểm giữa và ñược chuyển vào thanh ghi dịch thu sau mỗi

16 xung ñồng hồ Việc kiểm tra lỗi ñược thực hiện và khi có lỗi xảy ra các bít báo lỗi tương ứng trong thanh ghi trạng thái sẽ ñược set Sau khi số bít dữ liệu mong muốn ñã nhận ñược, bản tin ñược chuyển song song từ thanh ghi dịch thu tới thanh ghi ñệm thu và bít 0 (RDRF) của thanh ghi trạng thái ñược set lên 1 Nếu bít 7 của thanh ghi ñiều khiển ñược set (ñưa lên 1) trong suốt thời gian khởi ñộng, một ngắt tới CPU ñược tự ñộng tạo ra

do chân xuống thấp CPU thực hiện chương trình phục vụ ngắt và ñọc thanh ghi

Trang 5

trạng thái ñể biết nguyên nhân ngắt Nếu CPU tìm thấy bít RDRF ñã set nó sẽ ñọc dữ liệu trong thanh ghi ñệm thu Hành ñộng này xóa bít RDRF của thanh ghi trạng thái.

Phần thu của 6850 cũng dùng thanh ghi ñôi cho phép từ kế tiếp chuyển vào thanh ghi dịch trong khi từ trước ñó chưa hoàn toàn ñược ñọc vào CPU nhằm tăng vận tốc truyền như nói trên

4 3.2.4 Giao tiếp của 6850 với vi xử lý :

ACIA 6850 có thể giao tiếp với họ vi xử lý 6800 hoặc 6502 (H 4.7)

- Φ2 là tín hiệu xung ñồng hồ chuẩn cho tất cả thiết bị ngoại vi của 6800

- : Valid memory address, ngã ra chỉ báo cho các thiết bị ngoại vi của 6800 biết có một ñịa chỉ có hiệu lực trên bus ñịa chỉ

- Mạch giao tiếp trên không truyền qua modem (các chân và nối mass)

- Việc giải mã ñịa chỉ ñược thực hiện từ bên ngoài cho ngã vào

- Chân CS1 và CS0 phải nối lên mức cao

- Các ngắt ñược báo cho CPU từ chân ñể báo cho CPU biết các thanh ghi thu hoặc phát ñã sẵn sàng Các thao tác này cũng có thể chọn lựa bởi việc lập trình thích hợp cho các bit cho phép ngắt trong thanh ghi ñiều khiển

Trang 6

4.3.3.4 Giao tiếp với CPU của 8251A

4 3.3.1 - Tính năng tổng quát :

8251A là một chuẩn công nghiệp USART, ñược chế tạo từ kỹ thuật NMOS, có 28 chân, ñược thiết kế ñể truyền dữ liệu tốc ñộ lên ñến 64 kbps tương thích với họ µP của Intel như MCS-48, 80, 85 và iAPX-86, 88 8251A ñược dùng như một thiết bị ngoại vi

và ñược lập trình bởi CPU ñể truyền dữ liệu nối tiếp USART nhận các ký tự dữ liệu từ

µP ở dạng song song, sau ñó ñổi chúng thành dạng nối tiếp ñể phát ñi Ðồng thời, 8251A

có thể thu dòng dữ liệu nối tiếp và ñổi chúng thành các ký tự dữ liệu song song gửi ñến

µP USART sẽ báo cho µP biết khi nào có thể nhận một ký tự từ µP ñể phát, hoặc khi nào

ñã thu ñược một ký tự ñể cho µP ñọc µP có thể ñọc trạng thái của USART bất cứ lúc nào Những trạng thái này bao gồm các lỗi truyền dữ liệu và các tín hiệu ñiều khiển như là RxRDY (Receiver Ready) và TxRDY (Transmitter Ready)

4.3.3.2 - Mô hình và sơ ñồ khối (H 4.8):

(H 4.8)

8251A có thanh ghi dữ liệu ñôi và các thanh ghi ñiều khiển và trạng thái riêng biệt, ñiều này làm ñơn giản việc lập trình và tăng hiệu quả sử dụng thời gian của CPU (tăng vận tốc thu, phát)

- Nó chỉ ñược truyền bất ñồng bộ máy thu dò và ngưng hoạt ñộng tự ñộng mà không cần sự ñiều khiển của CPU

Trang 7

- Kết thúc một cuộc liên lạc, TxD line luôn trở về trạng thái nghỉ (mark state), tức phát tín hiệu 1, trừ khi bít D3 (SBRK) trong thanh ghi ñiều khiển ñược set = 1

- Trạng thái logic của bít D0 (Tx Enable) cho phép máy truyền xong các ký tự ñã nạp vào thanh ghi mặc dù có lệnh dừng

8251A có khả năng thực hiện giao thức truyền ñồng bộ và bất ñồng bộ Ở ñây ta chỉ bàn ñến khả năng truyền bất ñồng bộ

- Trong chế ñộ truyền bất ñồng bộ, chiều dài ký tự có thể từ 5 ñến 8 bít với tần số xung clock bằng 1, 16, 64 lần giá trị baud

- Có khả năng phát ký tự Break và 1, 1,5 hoặc 2 bít Stop

- Dò ñược các lỗi chẵn lẻ, sai khung và lỗi tràn

- Ngã vào và ra tương thích TTL

- Chức năng các khối và ý nghĩa các chân IC :

- Data Bus Buffer :

Là bộ ñệm 8 Bít, hai chiều, 3 trạng thái ñược dùng ñể giao tiếp 8251A với Bus dữ liệu của hệ thống Dữ liệu ñược phát hay thu tùy thuộc lệnh Input hay Output của CPU

Từ ñiều khiển, từ lệnh và thông tin trạng thái cũng ñược truyền qua Data Bus

Khối chức năng này nhận tín hiệu từ Bus ñiều khiển của hệ thống và phát tín hiệu ñiều khiển hoạt ñộng của cả IC, nó chứa thanh ghi từ ñiều khiển chế ñộ hoạt ñộng (control word), thanh ghi từ ñiều khiển vận hành (command word) là các thanh ghi xác ñịnh những chức năng của IC

Khối này gồm các chân :

D0 – D7 : Data bus I/O : bus dữ liệu vào/ra

RST : Reset : Ðặt lại : mức cao của ngã vào này ñưa 8251A vào trạng thái nghỉ cho tới khi có một từ control mới ñược viết vào ñể xác ñinh chế ñộ vận hành của nó

CLK : System Clock : Xung ñồng hồ hệ thống : ngã vào dùng ñịnh thời bên trong

IC, tần số xung Clock phải lớn hơn 30 lần tốc ñộ thu phát bít

: Write : CPU ghi dữ liệu hay từ control vào 8251A, ñây là ngã vào tác ñộng mức

thấp

: Read : CPU ñọc dữ liệu hay thông tin về trạng thái từ 8251A

: Chip select : chọn chip

C/ : Control/Data : Ðiều khiển/Dữ liệu Ðây là ngã vào, liên kết với và ảo bảo cho 8251A biết tầng ở Data bus là ký tự dữ liệu, từ control hay thông tin về trạng thái Bảng 4.4 dưới ñây cho thấy kết quả của sự phối hợp các ngã vào nói trên :

Trang 8

: Data Terminal Ready : Ngã ra ñiều khiển bởi bít D1 của thanh ghi ñiều khiển vận hành (command ; D1 = 1 chân xuống thấp).Trạng thái của nó có thể ñược kiểm soát bởi từ command Có thể dùng test chân của modem

: Request To Send : Ngã ra ñiều khiển bởi bít D5 trong thanh ghi ñiều khiển (D5 = 1 chân xuống thấp) Có thể ñược dùng ñể test chân của modem

: Clear To Send : Ngã vào, mức thấp cho phép 8251A phát dữ liệu nối tiếp nếu bít Tx Enable trong thanh ghi từ command (D0 ở mức 1) Khi phần phát Tx ñang phát nếu bit T x Enable = 0 hoặc chân cao, Tx sẽ phát tất cả Data trong USART trước khi nghỉ

TxC quản lý tất cả hoạt ñộng liên quan ñến việc phát tín hiệu

TxRDY : Trans Ready, ngã ra này báo cho CPU biết máy phát sẵn sàng nhận dữ liệu Chân TxRDY có thể dùng như là một ngắt cho hệ thống, vì nó ñược che bởi Tx Enable, hoặc ñối với tác vụ hỏi vòng (polling), CPU có thể kiểm soát TxRDY bằng tác

Trang 9

vụ ñọc trạng thái (bít D0 trong thanh ghi trạng thái) TxRDY tự ñộng reset bởi cạnh xuống (leading edge) của khi ký tự dữ liệu ñược nạp từ CPU

TxE : Trans Reg Empty : thanh ghi phát trống : Khi 8251A không có gì ñể phát, ngã ra TxE lên cao TxE có thể ñược dùng ñể chỉ lúc chấm dứt phát sao cho CPU biết lúc phải ñổi sang ñường dây khác trong cách truyền bán song công (HDM)

: Transmitter Clock : Xung ñồng hồ phát có tần số là một bội của vận tốc ñiều chế (Baud rate), tùy theo lập trình, bội này có thể là 1, 16, 64 (chỉ dùng cho chế ñộ bất ñồng bộ)

Quản lý tất cả hoạt ñộng thu của IC

RxRDY : Ngã ra này báo 8251A chứa một ký tự sẵn sàng ñọc vào CPU RxRDY

có thể nối vào cấu trúc ngắt của CPU hay ñối với tác vụ hỏi vòng, CPU có thể kiểm soát trạng thái của RxRDY bằng cách dùng tác vụ ñọc trạng thái (bít D1) Bít RxE (Receive Enable, D2) trong thanh ghi ñiều khiển vận hành (command) có tác dụng ñiều khiển chân RxRDY, khi RxE = 0 thì RxRDY ở ñiều kiện không ñược phép

: Receiver Clock : Xung ñồng hồ thu có tần số là bội của vận tốc ñiều chế : x1, x16

và x64

SYN/BRK : Sync detect/Break detect : Dò ñồng bộ/ Ngưng:

- Khi hoạt ñộng ở chế ñộ truyền ñồng bộ chân này có thể là ngã vào hoặc ngã ra tùy vào từ control ñã lập trình

* Khi là ngã ra (ở chế ñộ ñồng bộ bên trong) chân này lên cao khi phần thu dò ra

Khác với 6402, ở 8251A tất cả dữ liệu ñến và từ µP ñều ñi qua bus dữ liệu (data bus) nối với các chân D0-D7

Trang 10

Ðịa chỉ thanh ghi ñược ñịnh bởi chân C/ (Control/Data) Khi chân này lên

cao cho phép chọn thanh ghi ñiều khiển (mode, command, status) Khi chân này xuống

thấp cho phép chọn các thanh ghi dữ liệu (là các bộ ñệm thu và phát) Bộ ñệm phát và

thanh ghi ñiều khiển chỉ có thể ghi(write), trái lại bộ ñệm thu và thanh ghi trạng thái chỉ

có thể ñọc (read) Thanh ghi chọn chế ñộ (mode) chỉ có thể ñược truy xuất sau khi chip

10 = 1,5 bit Stop

11 = 2 bit Stop

Reset nộiIR

1 = Reset cờ lỗi PE,OE,FE về 0

1 = Chân TxD thấp

0 = Vận hành bình thường

11 = 8 Bit

Cho phép thuRxEN

1 = Enable

0 = DisableD1 Chọn hệ số chia

DCE sẵn sàng DSR

1 = Chân thấp

0 = Cao

D6

Dò từ SYN SYNDET

1 = Dò ra từ SYN (Synchronous only)

Trang 11

D5

Lỗi khung FE

1 = Có lỗi khung, reset bằng cách ghi ER = 1 (Asynchronous only)

D4

Lỗi tràn OE

1 = Có lỗi tràn

D3

Lỗi chẵn lẻ PE

1 = Có lỗi chẵn lẻ

D2

Thanh ghi phát trống

1 = Sẵn sàng thu ký tự mới

D0

Phần phát sẵn sàng TxD

Toàn bộ hoạt ñộng của 8251A ñược lập trình bởi phần mềm hệ thống

Một tập từ ñiều khiển ñược phát ra từ CPU ñể khởií ñộng 8251A, các từ ñiều khiển này sẽ qui ñịnh các giá trị vận tốc thu phát, chiều dài ký tự, số bít stop, û chọn parity, ñồng

bộ hay bất ñồng bộ (bít parity không ñược xem là bít dữ liệu khi lập trình chiều dài từ) Trong trường hợp chiều dài từ < 8 bít, những bít LSB là dữ liệu, những bít không dùng thì không quan tâm (don't care) khi viết dữ liệu vào 8251A và là 0 khi ñọc dữ liệu từ 8251A)

Vận hành của USART 8251A ñược mô tả qua các bước : khởi ñộng, phát một ký tự

- Ghi từ chọn chế ñộ vào thanh ghi mode (mode register)

- Ghi từ ñiều khiển vào thanh ghi command (command register)

Ðối với 8251A, từ ñi sau từ mode luôn luôn là từ command và từ command có thể ghi vào thanh ghi bất cứ lúc nào trong khối dữ liệu trong lúc 8251A ñang hoạt ñộng Ðể trở lại với từ chọn chế ñộ, bit master reset (D6) trong từ command có thể ñược set ñể khởi ñộng reset nội và ñưa 8251A trở về trạng thái khởi ñộng, và từ ñiều khiển ghi vào lúc này phải là từ mode

Trang 12

- Ghi ký tự cần phát vào thanh ghi ñệm phát

USART tự ñộng thêm các bít start, stop, kiểm tra chẵn lẻ Ký tự ñược phát ñi nối tiếp trên ñường TxD với bít LSB ñược phát trước, các bít ñược dời ra ngòai mỗi khi có cạnh xuống của xung ñồng hồ với vận tốc bằng 1, 1/16, 1/64 tần số xung ñồng hồ

- Thu một ký tự

Ðể thu một ký tự ñồng thời kiểm tra lỗi của ký tự này, cần thực hiện các bước sau :

- Ðợi cho ñến khi chân RxRDY lên cao hoặc cho ñến khi bít RxRDY trong thanh ghi trạng thái là 1

- Ðọc trạng thái lỗi từ thanh ghi trạng thái

- Ðọc ký tự từ thanh ghi ñệm thu

- Reset trạng thái lỗi bằng cách ghi bít ER = 1 (D4) trong thanh ghi command Tốc ñộ phát và thu bít ñược quyết ñịnh bởi tần số của xung clock ñưa vào chân

/ chia theo hệ số 1, 16 hoặc 64 ñã chọn trong từ chọn mode

Hoạt ñộng thu của 8251A giống như 6850 của Motorola, bắt ñầu sau khi hiệu lực hóa bít start, dữ liệu ñược lấy mẫu khi có cạnh lên của xung ñồng hồ

4.3.3.4 Giao tiếp với CPU của 8251A :

(H 4.9) mô tả kết nối giữa 8251A và CPU

Giao tiếp giữa 8251A và CPU sử dụng ñặc tính xuất nhập của bộ tích lũy (accumulator I/O) của Intel 8085

Ngày đăng: 26/07/2014, 08:21

HÌNH ẢNH LIÊN QUAN

Bảng 4.2  6850  Control Register Word Bits - GIáo trình truyền dữ liêu part 4 doc
Bảng 4.2 6850 Control Register Word Bits (Trang 2)
Bảng 4 .6   Thanh ghi trạng thái 8251A  (Status Register) - GIáo trình truyền dữ liêu part 4 doc
Bảng 4 6 Thanh ghi trạng thái 8251A (Status Register) (Trang 10)
Bảng 4.5 và 4.6 - GIáo trình truyền dữ liêu part 4 doc
Bảng 4.5 và 4.6 (Trang 10)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm