- USART có thể hoạt động theo UART hay USRT tuỳ chọn - BOPs Bit-Oriented Protocol circuits mạch này đồng bộ thiên hướng bit - UCCs Universal Communication Control circuits có thể lập trì
Trang 1BÀI THẢO LUẬN MÔN TRUYỀN SỐ LIỆU
NHÓM 2 Giảng viên: Châu Thanh Phương
Danh sách thành viên trong nhóm:
1.NGUYỄN XUÂN THẮNG
2.BÙI VĨNH TIẾN
3.NGUYỄN DUY TRUNG
4.NGUYỄN VĂN NHÂN
5.HOÀNG VĂN MINH
Đề tài: Giao tiếp có thể lập trình 8250.
Nội dung tìm hiểu:
Giới thiệu chung
1.Phối ghép CPU với mạch truyền thông tin nối tiếp 8250
2 Mô tả cấu hình cơ bản của 8250
3 Giao tiếp bus
4.Xung đồng hồ và sự định thời
5 Cấu trúc bên trong và hoạt động của 8250
5.1 Sơ đồ cấu trúc bên trong và hoạt động
5.2 Thanh ghi và sự hoạt động của một số thanh ghi trong 8250
Trang 25.2.1 Thanh ghi điều khiển đường truyền LRC ( Line Control Register ).
5.2.2 Thanh ghi trạng thái đường truyền LSR ( Line Status Register )
5.2.3 Thanh ghi nhận dạng ngắt quãng IIR (Interrupt Identification Register) 5.2.4 Thanh ghi cho phép ngắt quãng IER (Interrupt Enable Register)
5.2.5 Thanh ghi điều khiển modem MCR ( Modem Control Register )
5.2.6 Thanh ghi trạng thái modem MSR ( Modem status Register )
5.2.7 Thanh ghi đệm truyền THR ( Transmitter Holding Register )
5.2.8.Thanh ghi đệm nhận RBR ( Receiver buffer Register)
6 Kết luận
BÀI LÀM:
Giới thiệu chung
Để thực hiện được các phương thức truyền một cách cụ thể, các nhà chế tạo đã cung cấp một loạt các IC chuyên dùng, các IC này chính là phần cứng vật lí trong một hệ thống thông tin
Các IC đều là các vi mạch có thể lập trình được Đầu tiên lập trình chế độ hoạt động mong muốn bằng cách ghi một byte có nghĩa và thanh ghi chế độ mode register Sau đó ghi tiếp byte điều khiển vào thanh ghi lệnh command register để vi mạch theo đó mà hoạt động
Tên tổng quát của hầu hết các IC này là:
- UART (Universal Asynchronous Receiver Transmitter)
- USRT (Universal Synchronous Receiver Transmitter):mạch này đồng bộ thiên hướng ký
tự
- USART có thể hoạt động theo UART hay USRT tuỳ chọn
- BOPs (Bit-Oriented Protocol circuits) mạch này đồng bộ thiên hướng bit
- UCCs (Universal Communication Control circuits) có thể lập trình cho cả 3 loại trên (UART,USRT hay BOPs)
Trong hầu hết các máy vi tính cá nhân (PC) hoạt động dựa trên các thế hệ vi xử lý từ 8088 cho đến 80X86 người ta sử dụng vi mạch 8250 để điều khiển việc truyền và nhận số liệu giữa các máy vi tính với các thiết bị ngoại vi và với các máy vi tính khác 8250 là một vi mạch giao diện không đồng bộ có lập trình, và có các chức năng chính của vi mạch:
Trang 3- Chuyển đổi tín hiệu song song đi từ bộ xử lý của máy tính thành tín hiệu nối tiếp để truyền ra khỏi máy tính và ngược lại
- Bổ xung các bit: bắt đầu, chẵn lẻ, dừng, vào mỗi kí tự để hình thành khung truyền và lấy ra những bit đó từ các kí tự nhận được
- Duy trì tình trạng các bit riêng biệt được phát ra với tốc độ truyền dữ liệu thích hợp, tính toán các bit chẵn lẻ trên các kí tự nhận và truyền, đồng thời thông báo cho hệ thống biết bất kì một sai sót nào đã được phát hiện
- Thiết lập các tín hiệu bắt tay phần cứng thích hợp và thông báo trạng thái của các mạch đó
- Để thực hiện các chức năng kể trên, UART có các giao tiếp chính sau:
Giao tiếp với hệ thống bus vào/ra của CPU Giao tiếp với tín hiệu đồng hồ hệ thống Giao tiếp với cổng nối tiếp theo chuẩn RS232C
1.Phối ghép CPU với mạch truyền thông tin nối tiếp 8250.
- Việc truyền thông giữa các bộ phận gần nhau trong hệ thống vi xử lí có thể thực hiện thông qua bus song song mở rộng hoặc qua các mạch phối ghép song song ,trong
đó các byte được chuyển từ bộ phận này sang bộ phận khác trên một tập các đường dẫn bằng các mạch in hoặc dây cáp Nhưng khi các bộ phận ở cách xa nhau thì truyền vậy không hiệu quả do đó ta truyền thông tin nối tiếp
Truyền thông tin nối tiếp : ở đầu phát ,dữ liệu dưới dạng song song đầu tiên được chuyển thành dữ liệu dạng nối tiếp ,tín hiệu nối tiếp sau đó được truyền đi liên tiếp từng bit trên một đường dây Ở đầu thu tín hiệu nối tiếp được sẽ được biến đổi tái tạo lại thành dạng tín hiệu song song thích hợp cho việc xử lí tiếp theo
- Có 2 phương pháp truyền thông tin theo kiểu nối tiếp là :truyền đồng bộ và truyền không đồng bộ(dị bộ)
+ Truyền đồng bộ dữ liệu được truyền theo từng mảng (khối ) với một tốc độ nhất định
+ Truyền không đồng bộ :Dữ liệu được truyền đi theo từng bit Kí tự cần truyền
đi được gắn thêm một bit đánh dấu ở đầu để báo bắt đầu kí tự (start ) và 1 hoặc
2 bit đánh dấu ở cuối để báo kết thúc kí tự
2 Mô tả cấu hình cơ bản của 8250.
Là một vi mạch không đồng bộ thiên hướng kí tự
Trang 4Vi mạch 8250 là một UART được sử dụng rộng rãi trong các máy IBM PC Mạch
8250 có 3 tín hiệu chon vỏ để tạo điều kiện thuận lợi cho người sử dụng thuận lợi trong việc giải mã địa chỉ cơ bản Các chân A0 ,A1 ,A2 giúp ta chọn ra các thanh ghi bên trong UART
XTAL là các chân để cắm thạch anh dùng cho mạch dao động bên trong của
8250 Nếu đưa tín hiệu đồng hồ chuẩn từ bên ngoài thì đưa xung đồng hồ vào chân XTAL1 và bỏ lửng chân XTAL2
3 Giao tiếp bus
Từ sơ đồ cấu trúc cơ bản bên trong ta khái quát các giao tiếp bus :
- Đệm dữ liệu hai chiều 3 trạng thái (D0 - D7) : là cửa ngõ trao đổi dữ liệu song song , các từ điều khiển , và từ trạng thái với CPU
- DISTR,DISRT (Data Input Strobe ): tín hiệu hướng vào chọn đọc thông tin từ
8250 , sử dụng một trong hai đường
Trang 5- DOSTR, DOSTR (Data Output Strobe ) : tín hiệu hướng vào chọn ghi thông tin ra 8250 , dùng một trong hai đường
- A0, A1,A2 : tín hiệu nhập, là địa chỉ dùng để chọn các thanh ghi bên trong
8250 Sự phân bố các địa chỉ tương ứng được tình bày trong bảng 3.2
- CS0, CS1, CS2 : cho phép 8250 hoạt động khi CS0=0, CS1= 1và CS2=0
- ADS (Address Strobe ) khi ở mức logic 0 cho phép thiết đặt địa chỉ A0, A1 ,A2 và các CS, cho các tín hiệu này ổn định trước khi sử dụng
- MR (Master Reset) ): khi ở mức logic 1 đưa 8250 về trạng thái ban đầu
- INTRPT : là ngõ xuất yêu cầu ngắt quãng về CPU Tín hiệu này lên mức logic
1 khi xảy ra một trong bôn loại ngắt quãng mà 8250 có thể phát ra : có cờ lỗi
ở mức tích cực do số liệu nhị phân bị sai ; nhận số liệu tốt; bộ đệm truyền không còn số liệu để truyền; có thay đổi trạng thái trên các đường tín hiệu điều khiển modem
- CSOUT (Chip Select Output) : khi ở mức logic 1 báo cho biết 8250 đã được chọn
- DDIS (Driver Disable ) :ở mức logic 0 khi CPU đang đọc 8250
Bảng phân bố địa chỉ chọn:
1 0 0 0 Cài byte thấp cho số chia ( Divisor Latch)
Trang 64 Xung đồng hồ và sự định thời
Tần số xung đồng hồ của 8250 có thể được lấy từ một tín hiệu bên ngoài hoặc do một mạch dao động bên trong tạo ra nhờ nối với thạch anh
Các tần số này xác định ở chân XTAL1, sau đó qua một mạch chia tần ( có thể lập trình được ) để tạo ra một tần số tín hiệu đồng hồ chủ Tần số này cao hơn tốc độ baud chọn 16 lần
Tín hiệu đồng hồ chủ được dùng để điều khiển mạch phát bên trong 8250 sao cho mạch phát và mạch thu có thể làm việc theo những tần số khác nhau
Tần số tín hiệu đồng hồ chủ này được đưa ra ở chân BAUDOT, nếu chọn tần số đồng hồ khác cho mạch thu thì đưa vào các chân RCLK, còn nếu dùng cùng tần số thì nối hai chân này lại với nhau Cũng có thể xử lý tại tần số đồng
hồ chủ để tạo ra tần số xung đồng hồ cho mạch thu
5 Cấu trúc bên trong và hoạt động của 8250
5.1 Sơ đồ cấu trúc bên trong và hoạt động
Hoạt động của 8250 được điều khiển bởi các thành phần điều khiển và hỗ trợ điều khiển gồm các thanh ghi
Các thanh ghi :
+ Thanh ghi điều khiển đường truyền LCR (Line Control Register)
+ Thanh ghi trạng thái đường truyền (Line Status Register )
+ Thanh ghi nhận dạng ngắt quãng IIR ( Interrupt Identification Register) + Thanh ghi cho phép ngắt quãng IER (Interrupt Enable Register)
+ Thanh ghi điều khiển modem MCR (Modem Control Register)
+ Thanh ghi đệm truyền THR (Transsmitter Holding Register)
+ Thanh ghi đệm nhận RBR (Receiver Buffer Register)
Trang 7Cơ chế hoạt động :
Vi mạch 8250 được điều khiển bằng các lệnh vào ra của bộ vi xử lý ,truyền dữ liệu điều khiển cho các thanh ghi bên trong vi mạch có địa chỉ I/O từ 3f8 đến 3fe ( trong máy vi tính ) bằng các tín hiệu điều khiển chọn mạch như : CS ,IOR, IOW và các địa chỉ từ A0 - A2 để chọn các thanh ghi cuả 8250
- Các lệnh Vào (IN ):
+ Ðọc trạng thái của các thanh ghi trạng thái của vi mạch
+ Ðọc dữ liệu nhận được từ đường truyền
Trang 8-Các lệnh Ra (OUT) :
+ Thiết lập trạng thái ,điều khiển chế độ hoạt động của vi mạch: chọn tốc độ truyền (nhận ),cấu trúc khung số liệu ( số bit dừng , bit chẵn lẻ )
+ Ðặt chế độ ngắt
+ Ðưa ra dữ liệu
Vùng dữ liệu của BIOS chứa một danh sách lên đến 4 địa chỉ cơ sở cổng COM Suốt quá trình POST ,BIOS kiểm tra và khởi tạo cổng COM1 và COM2
+ Bộ điều hợp cổng COM1 giải mã các cổng 3F8h đến 3FFh
+ Bộ điều hợp cổng COM2 giải mã các cổng 2F8h đến 2FFh
5.2 Thanh ghi và sự hoạt động của một số thanh ghi trong 8250.
5.2.1 Thanh ghi điều khiển đường truyền LRC ( Line Control Register ).
Thanh ghi này còn có tên gọi 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
Trong đó:
+ DLAB (Divisor Access bit): 1= lập trình tốc độ truyền/nhận ,0= lập trình khuôn dạng dữ liệu
+ SB (Set break ) : 1=ngõ SOUT xuống mức thấp , các bít kế tiếp không còn ý nghĩa
+Stick Parti : chọn mức lô gic cho mức kiểm tra chẵn lẻ ; 1= chọn mức 0 cho parti chẵn
+EP ( Even Parti ) :1=dùng để kiểm tra chẵn ;0=dung kiểm tra lẻ
+ PEN (Parti Enable ) : 1=dung kiểm tra chẵn lẻ ; 0=không dùng kiểm tra chẵn lẻ
Trang 9+ Stop : định lượng số bit STOP ; 0= 1 bit STOP ;1 = 3/2 bít STOP nếu sử dụng
5 bit dữ liệu ; 2 bit STOP nếu dùng 6,7 hay 8 bit dữ liệu
+ DL1 Và DL0 (Data Length ) : chỉ định số bít dữ liệu sử dụng trong frame dữ liệu 00= 5 bit ; 01 = 6 bit ;10 = 7 bit ;11 = 8 bit
Lưu ý: Việc quy định số bit STOP không những phụ thuộc vào giá trị bit stop mà còn phụ thuộc vào độ dài mã kí tự
- Hoạt động của 8250 được đồng bộ bởi xung đòng hồ tần số XTAL1,thường
là 1,8432 MHz hoặc 3,072 MHz Tần số này sẽ được chia cho một số chia 16 bit để tạo ra tần số đồng hồ chủ điều khiển các bộ phận truyền và thu.Tần số đồng hồ chủ này sẽ được chia tiếp cho 16 để tạo ra tốc độ baud
Tốc độ baud =tần số đồng hồ /(16 * số chia )
5.2.2 Thanh ghi trạng thái đường truyền LSR ( Line Status Register ).
Thanh ghi này cho biết trạng thái của việc truyền tín hiệu trên đường dây ra sao.Các tín hiệu THRE,BI,FE,PE,OE,DR đều có thể là các nguyên nhân gây ra ngắt nếu các bit cho phép tương ứng trong thanh ghi IER được lập
Ý nghĩa các bit của thanh ghi trạng thái đường dây :
+ TSRE (Transmitter Shift Register Empty:thanh ghi dịch phát rỗng) :khi có giá trị
1 cho biết dữ liệu đã được dịch hết ra đường dây.Bit này bị xóa về 0 khi có một
ký tự được chuyển từ THR -> TSR
+ THRE (Transmitter Holding Register Empty: thanh ghi dữ phát rỗng) :Khi có giá trị 1 cho biết 8250 sẵn sàng nhận ký tự mới từ CPU Bit này lên 1 do sự chuyển dữ liệu từ THR sang TSR và gây ra loại ngắt quãng báo đệm truyền rỗng cho CPU Bit THRE =0 khi CPU xuất ký tự mới ra 8250 (ra thanh ghi THR) + BI (Break interrupt :có sự gián đoạn trong khi truyền) :bằng 1 khi ngõ SIN (Serial input) bị kéo xuống mức thấp (mức 0) lâu hơn khoảng thời gian của một frame Bit này lên 1 gây ra ngắt quãng loại báo lỗi nhận giữ liệu bị sai
+ FE (Framing Error: lỗi khung):bằng 1 khi số bit stop không đúng như đã lập trình ,bit này bị xóa khi CPU đọc thanh ghi LSR
+ PE (Parity Error:lỗi parity )bằng 1 khi có lỗi kiểm tra chẵn lẻ,bit này bị xóa khi CPU đọc thanh ghi LSR
Trang 10+ OE( Overrun Error :lỗi do thu đè ):bằng 1 có hiện tượng thu đè hay bị mất kí tự (nghĩa là kí tự mới đến xóa ký tự cũ chưa kịp nạp vào CPU)
+ DR (Data Ready) : bằng 1 khi 8250 vừa nhận đủ một ký tự Bit DR bị xóa về 0 khi CPU đọc dữ liệu hoặc do thao tác ghi 0 ngay tại bit này
+ 0 :Bit này không được sử dụng và luôn được đặt giá trị lôgic 0
5.2.3 Thanh ghi nhận dạng ngắt quãng IIR (Interrupt Identification Register)
Thanh ghi này chứa mã mức ưu tiên cao nhất của yêu cầu ngắt (tại chân INTRPT của 8250 ) đang chờ được phục vụ.Do vậy khi cần xử lí các yêu cầu ngắt theo kiểu thăm dò CPU chỉ cần đọc bit INTR của thanh ghi này để biết là có yêu cầu ngắt và kiểm tra các bit IT1,IT0 để xác định nguồn gốc của yêu cầu ngắt
Sauk khi UART bị reset ,chỉ có yêu cầu ngắt có mức yêu tiên số 1 sẽ được phục vụ
Ý nghĩa của các bit:
+ INTR =0 cho biết đang có ngắt quãng chờ
+ IT1 và IT0 :chỉ loại ngắt quãng :
1 1 = việc thu có lỗi hay trạng thái đường dây (BIT (IT1)=1 và Bit (IT0
=1))
1 0 =nhận giữ liệu tốt
0 1 =bộ đệm truyền rỗng
0 0 =trạng thái modem
5.2.4 Thanh ghi cho phép ngắt quãng IER (Interrupt Enable Register).
Thanh ghi này dùng để cho phép / cấm các nguyên nhân gây ngắt khác nhau, trong khi 8250 hoạt động , có thể tác động được tới CPU thông qua chân INTR của UART Mỗi bít trong các bit MS,RLS,THRE,DA ở mức cao sẽ cho phép các hiệ tượng tương ứng với các bit đó được đưa ra yêu cầu ngắt đối với CPU
Biểu diễn thanh ghi IER :
Trang 110 0 0 0 MS RLS THRE DA
- Ý nghĩa của các bit trong thanh ghi IER :
+ MS (Modem Status ) :bằng 1 cho phép ngắt quãng loại trạng thái modem + RLS (Receiver Lina Statu : Trạng thái đường dây nhận) :bằng 1 cho phép ngắt quãng loại lỗi nhận hay trạng thái đường dây
+ THRE(Transmitter Holding Register Empty) :bằng 1 cho phép ngắt quãng loại đệm truyền rỗng
+ DA (Data Available :dữ liệu có sẵn):bằng 1 cho phép ngắt quãng loại nhận dữ liệu tốt
- 8250 thích hợp với cơ chế ngắt quãng(interrupt) hơn cơ chế quét (polling) bởi vì :
+ 8250 chỉ có một vùng đệm duy nhất giữa thanh ghi RSR và bus dữ liệu ,do đó khi ta quét lien tục các ký tự xuất hiện trên bus vào thì sẽ bị chồng lấp lên ký tự
cũ chưa đọc , để làm việc tốt theo cơ chế quét thì phải có tối thiểu hai vùng đệm
tổ chức theo kiểu hàng đợi
+ 8250 có sẵn các thanh ghi IER và IIR ở trên để sử dụng cho cơ chế ngắt quãng
- Đa số các phần mềm truyền sô liệu qua cổng RS-232 và UART 8250 đều chọn
cơ chế ngắt quãng UART 8250 sẽ tạo tín hiệu INTRPT đến CPU để yêu cầu phục
vụ khi có một trong bốn sự kiện sau xảy ra :
+ Sự kiện nhận về sai và trạng thái đường dây RLS:xảy ra khi đường dây bị gián đoạn , nhận một ký tự trước khi đọc một ký tự đó ; ký tự nhận bị sai,không tìm thấy bit stop
+ Sự kiện nhận được một ký tự đến RDA :xảy ra khi nhận một ký tự vào thanh ghi đệm nhận RBR
+ Sự kiện bộ đệm truyền rỗng THRE:xảy ra khi thanh ghi THR rỗng ,cho biết sẵn sàng nhận tiếp kí tự mới từ CPU
+ Sự kiện giao tiếp với modem MS:xảy ra khi thanh ghi modem có CTS hoặc DSN,hoặc RI,hoặc RLSD cài ở mức tích cực
5.2.5 Thanh ghi điều khiển modem MCR ( Modem Control Register ).
Trang 12Hay thanh ghi điều khiển các tín hiệu ra của modem vì nó cho phép ta điều khiển các tín hiệu tại các chân DTR và RTS của UART
Trong đó:
+ LOOP :bằng 1 chon chế độ kết nối vòng ngược để kiểm tra .Lúc đó SOUT=1 ,SIN bị cách li với bên ngoài Đầu ra của thanh ghi dịch truyền nối với đầu vào của thanh ghi dịch nhận.Các ngõ xuất điều khiển modem nối vòng lại các ngõ nhập theo các cặp tương ứng sau: RTS ->CTS ,DTR->DSR ;RLSD và OUT2->RI
+ OUT2=1 làm ngõ OUT2 xuống 0
+ OUT1=1 làm ngõ OUT1 xuống 0
+ RTS =1 làm ngõ RTS xuống 0
+DTR =1 làm ngõ DTR xuống 0
5.2.6 Thanh ghi trạng thái modem MSR ( Modem status Register ).
Thanh ghi này được gọi là thanh ghi trạng thái 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 từ đường dây
Dạng thức của thanh ghi MSR như sau:
Ý nghĩa các bit trong thanh ghi:
+ RLSD =1 cho biết ngõ nhập RLSD đang ở mức 0
+RI =1 cho biết ngõ nhập RI đang ở mức 0
+ DSR =1 cho biết ngõ nhập DSR đang ở mức 0
+ CTS=1 cho biết ngõ nhập CTS đang ở mức 0
+ DRLSD (Delta RLSD) =1 ngõ RLSD đã thay đổi trạng thái kể từ lần đọc trước +DRI(Delta RI)=1 ngõ RI đã thay đổi trạng thái kể từ lần đọc trước