Vào-ra nối tiếp và thiết bị giao diện vào-ra nối tiếp UART 8250/16450

Một phần của tài liệu GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH (Trang 75 - 83)

Các máy tính tương thích IBM đều được trang bị 2 cổng nối tiếp (COM1, COM2) và các cổng này được thiết kết hoạt động theo tiêu chuẩn RS232.

Vào/ra nối tiếp là phương pháp kết nối và truyền dữ liệu giữa máy tính và thiết bị ngoại vi trong đó mã chứa thông tin được truyền theo từng bít, bít nọ sau bít kia (truyền tin nối tiếp).

#Truyn tin ni tiếp có 2 dng:

+ Truyn đồng b: Ngoài tín hiu s phi thêm vào tín hiu nhp đồng h làm chun. Ưu đim ca phương pháp này là tn s truyn có giá tr bt k và tc độ truyn ch ph thuc vào di tn mà cáp dn và bộđiu khin cho phép.

+ Truyn không đồng b: Truyn vi tc độ xác định. Thiết b nhn và thiết b phát đều phi làm vic trong cùng 1 tn s. D liu được đồng b tng byte trong 1 khung d liu nm gia bit khi đầu (start bit, 1) và bit kết thúc (stop bit,0).

76

giao din song song đơn gin thì s baund bng s bit được truyn đi trong 1 giây.

Quá trình thu phát thông tin nối tiếp qua cổng COM do vi mạch thu phát không đồng bộ vạn năng UART (Universal Asychronous Receiver and Transmitter) đảm nhiệm. Vi mạch này được thiết kế hoạt động tuân theo tiêu chuẩn RS232 dùng để:

+ Biến đổi các dữ liệu song song trong máy tính thành dòng bit nối tiếp ra cổng COM.

+ Biến đổi các bit dữ liệu nối tiếp từ cổng COM thành các từ dữ liệu song song trong máy tính. - Chun truyn tin RS-232

Chuẩn truyền tin RS-232 quy định về phương pháp kết nối và giao diện giữa DTE và DCE (h.55).

DTE (Data Terminal Equipment) thiết bị đầu cuối dữ liệu: là thiết bị phát hoặc nhận dữ liệu

DCE (Data Circuit - terminating Equipment) : thiết bị truyền dữ liệu.

Chuẩn RS232 quy định về:

- Kết nối vật lý: loại đầu nối, số lượng, vị trí và chức năng truyền thông tin của mỗi chân trong đầu nối.

- Mức điện áp tín hiệu. - Tốc độ truyền

+ Kết nối vật lý: sử dụng hai loại đầu nối 9 chân hoặc 25 chân: DB9 và DB25. Kết nối DTE & DCE qua đầu nối DB25 (hình dưới):

77 Ý nghĩa của các tín hiệu, nhìn từ phía DTE

- Các tín hiệu mang dữ liệu TxD: tín hiệu dữ liệu phát RxD: tín hiệu dữ liệu nhận

- Các tín hiệu bắt tay (khi các tín hiệu có mức tích cực).

Từ DTE (từ cổng COM máy vi tính) DTR : DTE báo sẵn sàng làm việc RTS : DTE báo có dữ liệu muốn gửi Đến DTE (vào máy tính)

DSR : DCE báo sẵn sàng làm việc

CTS : DCE sẵn sàng nhận dữ liệu để gửi đi

CD : DCE báo phát hiện được sóng mang của phía bên kia RI : DCE báo nhận được tín hiệu rung chuông

+ Mức tín hiệu: +/- 25V "0" : +3V đến +25V "1" : -3V đến -25V

+ Kích thước cáp nối không quá 20m.

+ Tốc độ truyền: hai bên phát và nhận phải có tốc độ bằng nhau: từ 50 bit/s đến 20000bit/s.

Phương pháp truyền

DTE truyền dữ liệu không đồng bộ về pha nhưng đồng bộ trên từng byte dữ liệu bằng bít

"START". Dữ liệu khi được truyền có khuôn dạng sau:

78 Cấu trúc bố trí chân thực tế của DB9 và DB 25 như sau:

Cổng COM có hai dạng: đầu nối DB25 (25 chân) và đầu nối DB9 (9 chân). Ý nghĩa của các chân được mô tả như sau:

- Thiết b giao din vào/ra ni tiếp UART 8250/16450

Thiết bị giao diện vào/ra nối tiếp UART 8250/16450 thực hiện hai chức năng chính. + Chuyển 1 byte dữ liệu (nhận từ CPU) dạng 8 bits song song thành dạng nói tiếp, tạo khung dữ liệu dạng nối tiếp và phát đi tuần tự từng bit cho đến hết byte dữ liệu.

+ Nhận 1 khung dữ liệu dạng nối tiếp, loại bỏ các bít tạo khung (bit START, PARITY, STOP), chuyển thành dạng dữ liệu song song.

+ Tạo và nhận các tín hiệu bắt tay theo chuẩn RS232.

79

Ti sao li cn Bộđiu hp EIA? Vì: Mc tín hiu theo chun RS 232 là: + Logic 0: +3V -> +25V

+ Logic 1: -3V ->-25V

Mi tín hiu gia -3V->+3V đều không có ý nghĩa. Vì tín hiu bên trong máy tính chđin thế t 0V->5V (TTL) hay thp hơn nên tín hiu t máy tính ra giao din RS 232 và ngược li phi qua b chuyn mc tín hiu. Vi mch MAX 232 (Bộđiu hp EIA) là mt b chuyn mc tín hiu hay được dùng nht. Vi mch này ch cn ngun nuôi 5V. B bơm đin tích bên trong vi mch có kh năng to tín hiu +10V và -10V t 5V. Vi mch này có 2 b chuyn mc tín hiu cho mi chiu.

+ CS (CS0,CS1,-CS2): Tín hiệu chọn UART nối với bus điều khiển của máy tính.

+ A2 – A0: 3 tín hiệu chọn địa chỉ hoặc thanh ghi, xác định thanh ghi nào CPU đang thâm nhập cho đọc hoặc viết.

+ -RD: Tín hiệu đọc dữ liệu từ UART + -WD: tín hiệu ghi dữ liệu vào UART + D7-D0: Nối với bus dữ liệu của máy tính

+ INT: Tín hiệu yêu cầu ngắt ( Đưa yêu cầu ngắt về bộ vi xử lý) + OUT: OUT1: Cho người sử dụng

OUT2: Dùng làm tín hiệu cho phép ngắt chính qua cổng logic

- UART8250 có 10 thanh ghi điều khiển và trạng thái. Các thanh ghi có địa chỉ liên tiếp nhau và có thể được thâm nhập bằng 3 bit địa chỉ. Địa chỉ cơ sở của UART và cũng là của các thanh ghi được lưu trữ ở vùng số liệu của BIOS. Thường tìm các địa chỉ cơ sở và ngắt IRQ như sau:

Cổng Địa chỉ cơ sở Yêu cầu ngắt

COM1 3F8H IRQ4

COM2 2F8H IRQ3

- Ni dung các thanh ghi trong UART như sau:

Địa chỉ nền của hai thiết bị giao diện vào-ra nối tiếp: Thiết bị UART#1 (COM1) : 3F8h

Thiết bị UART#2 (COM2) : 2F8h

Thanh ghi d liu phát THR

80 Địa chỉ: Địa chỉ nền +0, ghi, DLAB = 0

D7 D0

Bit D0 là bit thấp nhất, được phát hiện đầu tiên

Thanh ghi d liu nhn RBR:

RBR là nơi chứa dữ liệu (hoặc ký tự) nhận được. Địa chỉ: Địa chỉ nền +0, đọc, DLAB = 0

D7 D0

DLAB là bit D7 của thanh ghi LCR

# DLAB: bit thâm nhp cht b chia Thanh ghi điu khin đường truyn LCR

Thanh ghi LCR xác định khuôn dạng dữ liệu phát/ nhận và cho phép truy nhập vào các thanh ghi THR, RBR, IER hoặc BRG.

Địa chỉ: Địa chỉ nền +3, ghi

D7 D0

D1 và D0: Xác định kích thước dữ liệu truyền

D2- xác định số lượng bit stop được tạo và kiểm tra D2 = 0 1 Bit Stop

D2 = 1 2 Bit Stop

D3- cho phép tạo hoặc kiểm tra pariy D3 = 0 không cho phép

D3 = 0 cho phép D4 - chọn kiểu parity

D4 = 0 số lượng lẻ bít "1" được báo hoặc kiểm tra D4 = 1 số lượng chẵn bit "1" được báo hoặc kiểm tra D5 - chọn mức tích cực của bit parity:

Nếu D5 = 1 và D4 = 1 thì mức tích cực của bit parity là 0 (Parity chẵn) Nếu D5 = 1 và D4 = 0 thì mức tích cực của bit parity là 1 (Parity lẻ) D6 - đặt điều khiển nghỉ (BREAK)

Khi D6 = 1 thì SOUT = 0, chú ý D6 = 0! (thường đặt)

D7-DLAB bit: cho phép truy nhập các thanh ghi THR, RBR, IER hoặc BRG D7 = 1 cho phép truy nhập cặp thanh ghi tốc độ truyền BRG.

81 D7 = 0 cho phép truy nhập các thanh ghi THR, RBR và IER.

Thanh ghi xác lp tc độ truyn 16 bít BRG:

BRG gồm 2 thanh ghi byte cao và byte thấp, xác định hệ số chia của tốc độ truyền. Byte thấp:

Địa chỉ: Địa chỉ nền +0, ghi, DLAB = 1

D7 D0

Byte cao:

Địa chỉ: Địa chỉ nền +1, ghi,DLAB=1

D7 D0

Nội dung thanh ghi BRG:

Thanh ghi điu khin giao din vi Modem MCR

MCR điều khiển giao diện với Modem và cho phép ngắt yêu cầu ngắt IRQ. Địa chỉ: Địa chỉ nền + 4, ghi

D7 D0 D0 - DTR bit: D0 = 1 đặt DTR tích cực. D0 = 0 đặt DTR không tích cực. D1 - RTS bit: D1 = 1 đặt RTS tích cực. D1 = 0 đặt RTS không tích cực.

D2 - OUT1 bit: ảnh huởng đến đầu ra OUT1. D3 - OUT2 bit: ảnh huởng đến đầu ra OUT2.

D3 = 1 đặt OUT2 = 0, cho phép UART phát tín hiệu IRQ. D3 = 0 không cho phép UART phát tín hiệu IRQ.

82 DTR; RTS & CTS...

D5 = D6 = D7 = 0

Thanh ghi trng thái đường truyn LSR:

LSR cung cấp thông tin về trạng thái đường truyền tin. Địa chỉ: Địa chỉ nền +5, đọc

D7 D0

D0 - RBR bit:

D0 = 1 báo UART nhận được 1 byte dữ liệu và đã đặt vào thanh ghi RBR. (báo RBR đầy).

D1 - lỗi đè:

D1=1 báo RBR có dữ liệu nhận nhưng chưa được CPU đọc và bị 1 byte mới nhận tiếp theo đè lên.

D2 - Lỗi Parity

D2 = 1 báo lỗi có Parity (lỗi truyền tin). D3 - Lỗi khuôn dạng

D3 = 1 báo khuôn dạng dữ liệu bị nhận sai. D4 - Lỗi Break

D4 = 1 báo đầu nhận dữ liệu có trạng thái logic 0 dài hơn thời gian truyền 1 byte dữ liệu.

D5 - THR bit:

D5 = 1 báo UART sẵn sàng nhận 1 byte dữ liệu mới từ CPU để phát đi (thanh ghi THR rỗng).

D6 - TSR bit:

D6 = 1 thanh boá ghi TSR rỗng. D7 - không dùng.

Thanh ghi trng thái Modem MSR:

MSR cung cấp thông tin về trạng thái các tín hiệu bắt tay từ Modem. Địa chỉ: Địa chỉ nền +6, đọc

D7 D0

D0 - D3: báo có sự thay đổi trạng thái của tín hiệu bắt tay từ modem. D4 - CTS bit: D4 = 1 báo hiệu CTS có mức tích cực. D5 - DSR bit: D5 = 1 báo hiệu DSR có mức tích cực. D6 - RI bit: D6 = 1 báo hiệu RI có mức tích cực. D7 – CD - bit: D7 = 1 báo hiệu CD có mức tích cực.

Thanh ghi chn ngun ngt IER:

83 Địa chỉ: Địa chỉ nền +1, ghi, DLAB = 0

D7 D0

D0 - liên quan đến báo ngắt của thanh ghi dữ liệu nhận RBR.

D0 = 1 cho phép UART báo ngắt khi nó nhận được dữ liệu (khi RBR đầy) D0 = 0 không cho phép báo ngắt.

D1 - liên quan đến báo ngắt của thanh ghi phát THR.

D1 = 1 cho phép UART báo ngắt khi nó sẵn sàng nhận 1 byte dữ liệu mới từ CPU để phát đi (khi THR rỗng).

D1 = 0 không cho phép.

D2- liên quan đến báo ngắt của thanh ghi LSR.

D2 = 1 cho phép UART báo ngắt khi có thay đổi thông tin về trạng thái truyền tin trong LSR.

D2 = 0 không cho phép.

D3 - liên quan đến báo ngắt của thanh ghi MSR

D3 = 1 cho phép UART báo ngắt khi có thay đổi thông tin về trạng thái Modem trong MSR.

D3 = 0 không cho phép báo ngắt. D4 = D7 = 0

Thanh ghi nhn dng ngun ngt IIR:

Thanh ghi IIR cho phép nhận dạng nguồn gây ngắt và kiểm tra trạng thái báo ngắt. Địa chỉ: Địa chỉ nền +2, đọc D7 D0 D3 ÷ D7 = 0 D0 - trạng thái báo ngắt. D0 = 0 còn nguồn báo ngắt D0 = 1 hết báo ngắt.

D1, D2: tổ hợp giá trị hai bit này chỉ thị nguồn đang báo ngắt

Một phần của tài liệu GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH (Trang 75 - 83)

Tải bản đầy đủ (PDF)

(108 trang)