III. Túm tắt
3.4. Mạch điều khiển truyền số liệu
3.4.1. Khỏi quỏt
Để 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, chỳng hoạt động theo nguyờn tắc của kỹ thuật số và vỡ vậy chếđộ truyền đồng bộ hay bất đồng bộ phụ thuộc vào việc sử dụng đồng hồ chung hay riờng khi truyền tớn hiệu sốđi xa.
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.
Vỡ cỏc giao tiếp truyền được dựng khỏ rộng rói trong cỏc thiết bịđiện tử hiện đại, cỏc vi mạch ngoại vi LSI đặc biệt đó được phỏt triển cho phộp thực hiện cỏc loại giao tiếp này. Tờn tổng quỏt của hầu hết cỏc IC này là:
9 UART (Universal Asynchronous Receiver Transmitter)
9 USRT (Universal Synchronous Receiver Transmitter):mạch này đồng bộ thiờn hướng ký tự.
9 USART cú thể hoạt động theo UART hay USRT tuỳ chọn
9 BOPs (Bit-Oriented Protocol circuits) mạch này đồng bộ thiờn hướng bit
9 UCCs (Universal Communication Control circuits) cú thể lập trỡnh cho cả 3 loại trờn (UART,USRT hay BOPs)
Cả UART và USART đều cú khả năng thực hiện nhu cầu chuyển đổi song song sang nối tiếp để truyền số liệu đi xa và chuyển đổi nối tiếp sang song song khi tiếp nhận số liờu. Đối với số liệu được truyền theo chếđộ bất đồng bộ chỳng cũng cú khả năng đúng khung cho ký tự một cỏch tự động với START bit, PARITY bit, và cỏc STOP bit thớch hợp.
Hơn nữa, để tiếp nhận dữ liệu, UART và USART đều cú khả năng kiểm tra cỏc ký tự một cỏch tựđộng để phỏt hiện lỗi parity, và cả hai loại lỗi khỏc là lỗi định dạng frame (framing error) và lỗi chồng chập ký tự nhận (overrun erro). Lỗi định dạng frame cú nghĩa là sau khi phỏt hiện đầu ký tự với một START bit, mỏy thu khụng phỏt hiện được số STOP bit thớch hợp. Điều này cú nghĩa là ký tự truyền khụng được nhận một cỏch hoàn hảo và cần phải truyền lại. Lỗi chồng chập ký tự cú nghĩa là ký tự được nhận nhưng khụng được bộ vi xử lý đọc ra khỏi thanh ghi dữ liệu thu của USART trước khi nhận tiếp một ký tự mới.Do đú, ký tự trước bị mất và sẽ phải truyền lại.
Một sơ đồ khối của UART được trỡnh bày trờn hỡnh 3.4. ở đõy chỳng ta thấy rằng nú cú bốn giao tiếp tớn hiệu chủ yếu : giao tiếp với bộ vi xử lý, giao tiếp truyền, giao tiếp thu và giao tiếp điều khiển bắt tay (handshake control interface).
Cỏc LSI UART và USART khụng thểđứng một mỡnh trong hệ thống truyền tin.Hoạt động của chỳng được được điều khiển bởi một bộ xử lý cú ứng dụng tổng quỏt vớ dụ như cỏc bộ xử lý thụng thường. Giao tiếp với bộ xử lý là giao tiếp được dựng để kết nối UART vào đơn vị xử lý trung tõm CPU (Central Processing Unit) .Xem hỡnh 3.4 , chỳng ta thấy rằng giao tiếp này bao gồm một bus dữ liệu hai chiều 8-bit (D0 đến D7) và 3 đường điều khiển, CS,RD và WR.
Tất cả dữ liệu truyền giữa UART và CPU diễn ra qua bus dữ liệu 8 bit này.Hai hoạt động cú sử dụng bus này là nạp dữ liệu từ phần thu của UART vào và xuất hiện dữ liệu ra phần truyền của
nú. Cỏc loại thụng tin khỏc cũng được chuyển qua giữa CPU và UART . Vớ dụ cỏc chỉ thịđiều khiển chếđộ, cỏc chỉ thị lệnh điều hành, và cỏc thụng tin trạng thỏi.
Cỏc LSI UART cú thể được cấu hỡnh cho cỏc chế độ hoạt động khỏc nhau thụng qua phần mềm. Cỏc chỉ thịđiều khiển chếđộ là những gỡ phải được gửi đến UART để khởi dộng cỏc thanh ghi điều khiển của nú tạo chếđộ hoạt động mong muốn. Vớ dụ như khuụng dạng của frame được dựng để truyền hay nhận dữ liệu cú thểđược cấu hỡnh thụng qua phần mềm. Cỏc tuỳ chọn tiờu biểu gồm chiều dài kớ tự thay đổi từ 5 đến 8 bit; kiểm tra chẵn, kiểm tra lẻ hay khụng kiểm tra, Chỳng ta đó biết một UARRT khụng thể tự thực hiện được chức năng truyền tin. Thật vậy, tuần tự của cỏc sự kiện cần thiết khởi động truyền và nhận được điều khiển bởi cỏc lệnh của CPU gửi đến UARt. Vớ dụ CPU cú thể bắt đầu yờu cầu truyền số liệu bằng cỏch ghi một lệnh vào UART khiến ngừ điều khiển hướng ra RTS được thiết lập ở mức tớch cực(0). Mức tớn hiệu tớch cực 0 trờn RTS bỏo cho hệ thống ởđầu bờn kia của đường truyền( vớ dụ DCE) chuẩn bị nhận dữ liệu .tại đầu thu của đường truyền tin, CPU cú thể chấp nhận sẵn sàng nhận gửi dữ liệu bằng bằng cỏch gửi một lệnh cho UART của nú, làm cho tớn hiệu điều khiển DTR xuống mức thấp (0).
Hầu hết cỏc UART đều cú thanh ghi trạng thỏi (status register) chứa thụng tin liờn quan đến trạng thỏi hiện hành của nú. Vớ dụ cú thể chứa cỏc bit cờ ( flag bits) biểu thị trạng thỏi hiện hành cảu cỏc đường tớn hiệu như RTS và DTR. Điều này cho phộp CPU kiểm tra cỏc trạng thỏi lụgic của cỏc đường dõy này bằng phần mềm.
Ngoài cỏc thụng tin về mức logic của cỏc đường điều khiển, thanh ghi trạng thỏi cũn chứa cỏc bit cờ biểu thị cỏc điều kiện lỗi như parity, lỗi định dạng frame và lỗi chồng chập ký tự.Sau khi
D0-D7 CS RD WR Giao tiếp với vi xử lý UART TxD TxRDT Giao tiếp truyền RxD RxRD Giao tiếp thu RTS CTS DSR DTR Giao tiếp thu điều khiển bằng tay.
nhận một ký tự, trước hết CPU đọc cỏc bit này để chắc chắn rằng đó nhận được một ký tự hợp lệ, và nếu cỏc bit này khụng ở mức tớch cực ( khụng lỗi) thỡ ký tựđược đọc ra từ thanh ghi dữ liệu thu trong UART.
Phớa bờn phải của sơđồ khối ở hỡnh 3.4 chỳng ta cú thể thấy giao tiếp truyền và giao tiếp thu .Giao tiếp truyền cú hai đường tớn hiệu : transmit data (TxD) và transmit ready (TxRDY) . TxD là đường mà qua đú bộ phận truyền của UART xuất ký tự nối tiếp ra đường truyền. Như trỡnh bày trờn hỡnh 3.5., đường ra nỏy được nối đến ngừ nhập dữ liệu thu (RxD) của bộ phõn thu trong hệ thống đầu xa của đường truyền.
Thụng thường bộ phận truyền của một LSI UART chỉ cú thể giữ được một ký tự tại một thời điểm .Cỏc ký tự này được giữ trong thanh ghi dữ liệu truyền (transmit data register ) trong UART. Vỡ chỉ cú một ký tự cú thểđược giữ trong UART, nờn UART phải phỏt tớn hiệu cho CPU mỗi khi nú hoàn thành truyền ký tự này.Đường TxRDY được cung cấp cho mục đớch này. Ngay sau khi hoàn tất truyền ký tự trong thanh ghi dữ liệu truyền, bộ phận truyền chuyển TxRDY sang mức tớch cực. Tớn hiệu này sẽ gửi một ngắt (Interrupt) vào CPU. Bằng cỏch này, sự xuất hiện của nú cú thể khiến cho chương trỡnh điều khiển qua chương trỡnh phục vụ thớch hợp và sẽ xuất cỏc ký tự khỏc ra thanh ghi dữ liệu truyền và sau đú hoạt động truyền được khởi động trở lại.
Bộ phận thu tương tự như bộ truyền mà chỳng ta mới mụ tả. Tuy nhiờn, ởđõy đường dữ liệu thu (RxD) là đường nhập, nú chấp nhận cỏc chuỗi bit ký tự nối tiếp được truyền từ bộ phận truyền của hệ thống ở đầu xa của đường truyền. Lưu ý rằng trong hỡnh 3.5. đầu nhập dữ liệu nối đến đầu truyền dữ liệu (TxD) của bộ phận truyền trong hệ thống tại đầu xa. Ở đõy tớn hiệu hướng ra (RxRDY) được dựng như một ngắt gửi đến CPU, thụng bỏo cho CPU biết đó nhận được một ký tự. Chương trỡnh con phục vụ ngắt này được khởi dộng, trước hết nú phải xỏc định ký tự này cú hợp lệ hay khụng và nếu hợp lệ, nú phải đọc ký tự này ra khỏi thanh ghi dữ liệu thu của UART.
RTS CTS DSR DTR TxD RxD Common RTS CTS DSR DTR TxD RxD Common Đầu cuối Máy tính
Hình 3.5 Giao tiếp truyền bất cứ đồng bộ đơn giản giữa một máy tính và một đầu cuối số liệu.
Dựng cỏc tớn hiệu điều khiển bắt tay RTS, DTR và CTS, cỏc loại giao thức truyền bất đồng bộ khỏc nhau cú thể thục hiện được thụng qua cỏc giao tiếp này. Một giao tiếp truyền bất đồng bộ dựng cỏc đường điều khiển này được trỡnh bày trờn hỡnh 3.5 . Trong vớ dụ, một giao thức cú thể được thiết lập sao cho khi đầu cuối số liệu muốn gửi số liệu đến mỏy tớnh nú sẽ phỏt một yờu cầu qua đầu ra RTS của nú. Để làm điều này, CPU của đầu cuối số liệu một lệnh đến UART, lệnh này yờu cầu nú đưa đường tớn hiệu RTS xuống mức tớch cực (mức lụgic 0) .Mức tớch cực trờn RTS của đầu cuối được ỏp vào đầu nhập DRS của mỏy tớnh. Bằng cỏch này, nú bỏo cho mỏy tớnh biết rằng đầu cuối số liệu muốn truyền số liệu vào mỏy tớnh.
Khi mỏy tớnh sẵn sàng nhận số liệu, nú chấp nhận yờu cầu này bằng cỏch kớch hoạt ngừ ra DTR trờn UART của nú. CPU trong mỏy tớnh thực hiện điều này bằng cỏch gửi một lệnh cho UART bảo nú chuyển DTR xuống mức tớch cực (mức 0). Tớn hiệu này ỏp vào đầu ra CTS của UART cảu đầu cuối số liệu và bỏo với UART trong đầu cuối số liệu biết cú thể bắt đầu xuất số liệu lờn TxD. Cựng lỳc đú, bộ phận thu trong UART ở mỏy tớnh cũng bắt đầu đọc số liệu từ ngừ nhập RxD của nú.
3.4.2. Giao tiếp truyền cú thể lập trỡnh UART 8250 của Intel
Cỏc hệ thống thụng tin bất đồng bộ thường dựng cỏc chip LSI giỏ thành rẻ như : Motorola 6850 ACIA (Asynchronous Communication Interface Adapters) dựng với họ vi xử lý 6800/68000 của Motorola.
National 8250 UART dựng với họ vi xử lý 8088/80x86 của Intel.
Hỡnh 3.6 Mụ tả cấu hỡnh cơ bản của 8250 với ba phần giao tiếp chớnh là : giao tiếp với bus xuất /nhập IO của hệ thống , mạch định thời và giao tiếp RS-232. D7- D0 SOUT DISTR SIN DOSTR RTS INTRDT DTR MR DSR A0 DCD A1 CTS A2 RI ADS XTAL1 DOSTR DISTR CS2 XTAL2 CS1 BAUDOT I/OR I/OW INTRT RESET A0 A1 A2 CS “0” “1” C P U B U S Giao Tiếp EIA RS-232C
3.4.2.1.Giao tiếp bus:
9 Đệ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.
9 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.
9 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.
9 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.
9 CS0, CS1, CS2 : cho phộp 8250 hoạt động khi CS0=0, CS1= 1và CS2=0.
9 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.
9 MR (Master Reset) ): khi ở mức logic 1 đưa 8250 về trạng thỏi ban đầu.
9 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. 9 CSOUT (Chip Select Output) : khi ở mức logic 1 bỏo cho biết 8250 đó được chọn. 9 DDIS (Driver Disable ) :ở mức logic 0 khi CPU đang đọc 8250.
3.4.2.2.Xung đồng hồ và sựđịnh thời gian:
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ồđồ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ầng 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.
3.4.2.3.Cấu trỳc bờn trong và hoạt động của 8250
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 : 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
3.5. CÁC THIẾT BỊ ĐIỀU KHIỂN TRUYỀN SỐ LIỆU 3.5.1. Khỏi quỏt
Trong nhiều ứng dụng truyền dữ liệu cú một yờu cầu chung là phải đỏp ứng sự phõn tỏn cỏc đầu cuối thụng tin , thớ dụ như cỏc mỏy tớnh cỏ nhõn, tất cả cỏc đầu cuối đều cú nhu cầu truy xuất một dịch vụ tớnh toỏn trung tõm. Dịch vụ này cú thểđiều hành một dịch vụ thưđiện tử trung tõm hay
phỏp cung cấp một đường thụng tin riờng biệt cho mỗi đầu cuối. Giả sử cỏc đầu cuối được phõn bố xung quang nối trực tiếp vào mỏy tớnh trung tõm,cũn nếu như cỏc mỏy tớnh được phõn bố xa trung tõm hầu hết dều phải dựng một Modem để thực hiện cầu nối chuyển mạch hay dựng đường dõy thuờ riờng. Trong cỏc trường hợp cú nhiều đầu cuối gần nhau cú thể dựng một thiết bị gọi là bộ ghộp kờnh MUX (multiplexer )để tối thiờu số dõy dẫn cần nối đến trung tõm. Cỏc thiết bị này được dựng cựng với đường truyền dẫn cú tốc độ cao hơn tốc độ của cỏc thiết bị đầu cuối thành phần.
Cú hai dạng thiết bị ghộp kờnh đú là : cỏc bộ ghộp kờnh phõn thời , và cỏc bộ ghộp kờnh thống kờ. Bộ ghộp kờnh phõn thời phõn phối cốđịnh cho mỗi đầu cuối một phần khả năng truyền để cựng chia sẻ dường truyền tốc độ cao với cỏc đầu cuối khỏc. Bộ ghộp kờnh thống kờ chỉ phõn phối khả năng truyền theo nhu cầu mang tớnh thống kờ
3.5.2. Bộ ghộp kờnh phõn thời
Để thực hiện hoạt động ghộp kờnh, vi xử lý dựng 2 bộđệm 2 byte cho mỗi UART, một cặp cho truyền và một cặp cho nhận. Để truyền, mỗi byte nhận từ UART được lưu giữ đơn giản theo phương phỏp lặp trong bộđệm 2 byte. Đồng thời vi xử lý đọc nội dung hiện hành của mỗi bộđệm 2 byte theo cỏc đoạn 8 bit đồng bộ với tốc độ bit của liờn kết tốc độ cao. Thủ tục theo chiều ngược lạicũng được xỳc tiến để tiếp nhận từ liờn kết tốc độ cao dựng bộđệm kia. Cỏc bit điều khiển bắt tay được cài theo phương phỏp đó thống nhất trước nhằm phản ỏnh trạng thỏi tương ứng của đường dõy liờn quan đến giao tiếp tương ứng.
3.5.3. Bộ ghộp kờnh thống kờ
Mỗi đầu cuối trong một bộ ghộp kờnh phõn thời liờn quan đến một khe ký tự cốđịnh trong mỗi frame. Nếu đầu cuối hay mỏy tớnh khụng cú dữ liệu truyền khi bộ xử lý quột qua UART tương ứng, vi xử lý phải chốn cỏc ký tự NUL vào trong khe này, vỡ thế rất khụng hiệu quả trong việc sử dụng băng thụng đường truyền sẵn cú. Nếu liờn kết dữ liệu thuộc sở hữu tư nhõn thỡ điều này khụng cần bận tõm. Nhưng nếu là đường truyền cụng cộng thỡ nú cú ảnh hưởng rất lớn. Phương phỏp ghộp kờnh hiệu quả hơn là ghộp kờnh thống kờ ( statistical multiplexing ).
Bộ ghộp kờnh thống kờ hoạt động theo nguyờn lý tốc độ trung bỡnh dữ liệu của ký tự nhập tại