3.1 .Cỏc khỏi niệm cơ bản về truyền số liệu
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à:
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)
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.
D0-D7 TxDGiao tiếp Giao tiếp với vi xử lý CS RD WR UART
Hình 3. 4 Sơ đồ khối tổng quát của UART TxRDT RxD RxRD RTS CTS DSR DTR truyền Giao tiếp thu Giao tiếp thu điều khiển bằng tay.
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 p hộ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.
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.
RTS CTS DSR DTR Đầu RTS CTS DSR DTR TxD Máy TxD cuối RxD Rx D tính Common Common
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.
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.
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 C P U B U S I/ OR I/ OW INTRT RESET A0 A1 A2 “0”CS “1” DISTR SIN DOSTR RTS INTRDT DTR M R DSR A0 DCD A1 CTS A2 RI ADS XTA L1 DOSTR DISTR CS2 XTA L2 CS1 BAUDOT Hình 3.6 Cấu hình cơ bản của 8250 Giao Tiếp EIA RS-232C
3.4.2.1.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.
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.
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 một cơ sở dữ liệu trung tõm. Nếu tất cả cỏc đầu cuối đặt ở cỏc vị trớ khỏc nhau, chỉ cú một giải
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 ).