Tài liệu Truyền nối tiếp bất đồng bộ: TRUYỀN NỐI TIẾP BẤT ĐỒNG BỘ
PROTOCOL NỐI TIẾP BẤT ĐỒNG BỘ :
Như đã đề cập ở chương I , từ bất đồng bộ nói lên rằng xung clock của nơi thu và phát được tạo ra một cách riêng lẻ . Mỗi xung clock được điều hưởng với cùng tần số danh định tương ứng với tốc độ truyền bít , hoặc baud . Cũng vậy, trên một dường truyền bất đồng bộ thông tin được gởi đi riêng rẽ và khoảng cách các là ngẫu nhiên . Mỗi ký tự gồm có các bit mã ký tự ( như mã ASCII ) gọi là ký tự dữ liệu (data character ) cộng với các bit start ( khởi đầu ) và kết thúc (stop ) đối với khung thời gian của ký tự đó để hình thành 1 khung ký tự ( frame ) . Khi sử dụng mã ASCII 7 bit , bit thứ 8 đượcgọi là bit parity ( chẵn lẻ ) dùng để kiểm tra lỗi . Giữa các ký tự , đường truyền được giữ ở trạng thái nghỉ . Hình 3.1 cho thấy dạng sóng điện áp của 1 ký tự trên đường truyền , bit có trọng số thấp ...
13 trang |
Chia sẻ: hunglv | Lượt xem: 3353 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Truyền nối tiếp bất đồng bộ, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
TRUYỀN NỐI TIẾP BẤT ĐỒNG BỘ
PROTOCOL NỐI TIẾP BẤT ĐỒNG BỘ :
Như đã đề cập ở chương I , từ bất đồng bộ nói lên rằng xung clock của nơi thu và phát được tạo ra một cách riêng lẻ . Mỗi xung clock được điều hưởng với cùng tần số danh định tương ứng với tốc độ truyền bít , hoặc baud . Cũng vậy, trên một dường truyền bất đồng bộ thông tin được gởi đi riêng rẽ và khoảng cách các là ngẫu nhiên . Mỗi ký tự gồm có các bit mã ký tự ( như mã ASCII ) gọi là ký tự dữ liệu (data character ) cộng với các bit start ( khởi đầu ) và kết thúc (stop ) đối với khung thời gian của ký tự đó để hình thành 1 khung ký tự ( frame ) . Khi sử dụng mã ASCII 7 bit , bit thứ 8 đượcgọi là bit parity ( chẵn lẻ ) dùng để kiểm tra lỗi . Giữa các ký tự , đường truyền được giữ ở trạng thái nghỉ . Hình 3.1 cho thấy dạng sóng điện áp của 1 ký tự trên đường truyền , bit có trọng số thấp nhứt ( LSB ) của dữ liệu thường được gởi trước .
Trong hình 3.1 thanh ghi dịch là phần chính của cả máy phát và máy thu . Thanh ghi dịch của máy phát được dùng như một bộ biến đổi song song thành nối tiếp . Khi ngõ vào LOAD ở mức cao HIGH các bit của ký tự dữ liệu được nạp song song vào thanh ghi từ bus dữ liệu của máy tính ( DATA IN ) . Khi LOAD chuyển thành LOW , các bit dữ liệu của ký tự dữ liệu được dịch nối tiếp ra đường truyền . Thanh hgi dịch của máy phát tự dộng thêm vào các bit start và stop . Máy thu phát hiện điểm bắt đầu của mỗi khung ký tự bởi sự thay đổi từ 1 sang 0 của bit start . Khi phát hiện bit start , mạch điều khiển thu làm cho thanh ghi dịch bắt đầu dịch các bit vào từ đường truyền . Sau khi dịch 11 lần ( 1start + 8 data + 2 stop ) , ký tự dữ liệu thu được có thể đọc ở dạng song song từ thanh ghi dịch
( DATA OUT ) . Như vậy thanh ghi dịch của máy thu thực hiện việc biến đổi từ nối tiếp ra song song .
Hình vẽ 3.1 Truyền dữ liệu nối tiếp bất đồng bộ . ( trang 43 )
Khi dùng bit parity , trạng thái logic của bit này phụ thuộc vào ký tự dữ liệu đặc trưng và việc lập protocol là parity chẵn hay lẻ. Bit parity được lập là 0 hay 1, để làm cho tổng số số bít 1 trong b0-b7 là một số chẵn( parity chẵn) hoặc là một số lẻ (parity lẻ ) . Chú ý rằng bit parity dự phần vào việc tính tổng số bit 1 là chẵn hay lẻ . Sau đó , bằng cách tính tổng số các bit1 trong mỗi ký tự , máy thu có thể phát hiện lỗi khi truyền . Phương pháp phát hiện lỗi này không đạt được độ tin cậy 100% vì nếu số bit lỗi là số chẵn máy thu không phát hiện được lỗi .
Tuy nhiên trong thực tế , các lỗi thường xảy ra là do các tín hiệu xung và ảnh hưởng đến nhiều ký tự của thông tin do đó xác suất các lỗi do kiểm tra bit parity bắt được trong quá trình truyền rất cao .
Sau khi phát hiện bit start , máy thu dịch các bit dữ liệu 1 cách tuần tự và thời gian dịch được qui định bởi tần số của xung clock nội bộ ở nơi thu . Vì xung clock nơi thu không thể phù hợp chinh xác với xung clock nơi phát , nên sẽ có lỗi thời gian gọi là skew (độ lệch ) và như thế các bit liên tiếp bị dịch đi . Sự tích lũy độ lệch do xung clock không được quá lớn để có thể gây ra lỗi trong việc phát hiện bit cuối cùng của khung ký tự . Các bit stop luôn được set ở logic 1 và có thể dùng dễ kiểm tra độ lệch thời gian . Nếu các bit stop không còn ở mức 1 , máy thu báo rằng lỗi khung ( framing error ) đã xảy ra . Các bit stop là khoảng bảo vệ tối thiểu giữa các khung ký tự . Việc lập protocol thường không theo một tiêu chuẩn cứng nhắc nào , trong thực tế thường sử dụng các biến đổi như sau :
Dùng 1 bit stop thay vì là 2 .
Sử dụng nhiều hơn hoặc ít hơn 7 bit cho 1 ký tự dữ liệu .
Dùng mark parity ( bit parity luôn là 1 ) .
Dùng space parity ( bit parity luôn là 0 ) .
Có thể không dùng bit parity .
Ví dụ :
Vẽ dạng sóng truyền bất đồng bộ nối tiếp cho ký tự C . Giả sử dùng mã ASCII 7 bit với parity chẵn và 2 bit stop .
Từ bảng mã ASCII ( bảng 1.1 ) mã ASCII cho ký tự C là 43H = 1000011B.
Mã ASCII này chứa một số lẻ bit 1 ( 3bit1 ) vì vậy , đối với parity chẵn ta phải set bit parity là1. Mã có luôn bit parity là 11000011B = C3H . Bit parity luôn là bit có trọng số lớn nhất .
Dạng sóng được vẽ trong hình E3.1 .
Hinh E3.1 ( trang 45 )
Việc thực hiện protocol bất đồng bộ nối tiếp dễ truyền dữ liệu là yuê cầu quan trọng trên hết trong số các nhiệm vụ của hệ thống và phải được lặp lại cho mỗi khung ký tự . Những nhiệm vụ này bao gồm việc thêm vào hoặc loại bỏ các bit start hoặc stop , tạo hoặc kiểm tra bit parity , dịch các bit vào hoặc ra và chuyển từ nối tiếp sang song song hoặc từ song song ra nối tiếp . Những nhiệm vụ chuyển và lặp lại này thường được thực hiện tự động tốt nhứt từ phần cứng ( nghĩa là không thực hiện bằng phần mềm của bộ vi xử lý ) .
Các chip LSI được dùng cho mục đích này . Chúng là những IC thu phát bất đồng bộ ( universal asynchronous receiver / transmitter : UART ) hoặc là những IC điều hợp giao tiếp thông tin bất đồng bộ (asynchronous communication interface adaptor : ACIA ) . Phần kế tiếp sẽ trinh bày chi tiết các vi mạch này .
3.5.2- Chuẩn giao tiếp RS232C của EIA : (trang 67 )
Chuẩn RS232C được chế tạo năm 1969 do EIA sản xuất để chỉ rõ các kết nối đường điều khiền và dữ liệu nối tiếp giữa một modem và một thiết bị đầu cuối ( terminal ) hoặc máy tính ( xem hình 3.12 (a) ) . Chuẩn này xem modem nhưlà DCE ( data commuication equipment ) và máy tính hoặc thiết bị đầu cuối nhu là TDE ( data terminal equipment ) . Chuẩn RS232C dùng với tốc độ truyền dữ liệu là 20 Kbps với khoảng cách truyền lớn nhất gần 15 m . Đây là một dạng giao tiếp loại TTL + bộ kích đường dây không cân bằng .
Việc mô tả chuẩn này được chia làm 3 phần : các đặc điểm kỹ thuật về điện , mo tả các đường dữ liệu và điều khiển và sử dụng bộ kết nối chân ra .
Đặc điểm kỹ thuật về điện của RS232C :
Mức điện áp logic của RS232C là 2 khoảng điện áp giữa + 15V và –15V . Các đường dữ liệu sử dụng mức logic âm : logic 1 có điện thế giữa -5V và – 15V : logic O có điện thế giữa +5V và +15V . Tuy nhiên các đường điều khiển ( ngoại trừ đường TDATA va RDATA ) sử dụng logic dương : giá trị TRUE = +5V đến +15V , và FALSE = -5V đến –15V .
Ở chuẩn giao tiếp này , giữa ngỏ ra bộ kích phát và ngõ vào bộ thu có mức nhiễu được giới hạn là 2V . Do vậy ngưỡng lớn nhất của ngõ vào là + và –3V , trái lại mức + và – 5V là ngưỡng nhỏ nhất đối với ngỏ ra . Ngỏ ra bộ kích phát khi không tải có điện áp là + vá –25V .
Các đặc điểm về diện khác bao gồm :
Rl ( điện trở tải ) được nhìn từ bộ kích phát phải có giá trị giữa7KOhm vàD3KOhm .
Cl ( điện dung tải ) được nhìn từ bộ kích phát không được vượt quá 2500 pF .
Để ngăn cản sự giao động quá mức , tốc độ thay đổi ( slew rate ) của điển áp không được vượt quá 30 V/us
Hình 3.12 (a) Truyền dữ liệu trên mạng điện thoại .
Hình 3.12 (b) Các đường dữ liệu và điều khiển của RS232C
Hình 3.12 (c) Bộ kết nối DB- 25
Đối với các đường điều khiển , thời gian chuyển của tín hiệu ( từ TRUE sang FALSE , hoặc từ FALSE sang TRUE ) không được vượt quá 1ms . Đối với các đường dữ liệu , thời gian chuyển ( từ 1 sang 0 hoặc từ 0 sang 1 ) phảu không vượt quá 4 % thời gian của 1 bit hoặc 1ms .
Các đường dữ liệu và điều khiển của RS232C :
Hình 3.12 (b) minh họa hầu hết cá đường thường sử dụng của RS232C với máy thuê bao (subset ) . Để hiểu những chức năng của chúng , tốt nhất ta nhóm lại thành 1 trong các loại sau :
Các đường dữ liệu :
TDATA ( transmitter data ) : dữ liệu được truyền đi từ modem trên mạng diện thoại .
RDATA ( reseiver data ) : dữ liệu được thu bởi modem trên mạng điện thoại >
Các dường báo thiết bị sẵn sàng :
DSR (data reset ready ) : để báo rằng modem đã sẵn sàng .
DTR ( data terminal ready ) : để báo rằng thiết bị đầu cuối dã sẵn sàng .
Các đường bắt tay bán song công :
RTS (request to send ) : để báo rằng thiết bị đầu cuối yêu cầu phát dữ liệu .
CTS ( clear to send ) : modem đáp ứng nhu cầu gởi dữ liệu của thiết bị đầu cuối cho biết rằng thiết bị đầu cuối có thể sử dụng kênh để truyền dữ liệu .
Các đường trạng thái sóng mang và tin hiệu điện thoại :
CD ( carrier detect ) : modem báo cho thiết bị đầu cuối biết rằng đã nhận được một sóng mang hợp lệ từ mạng điện thoại .
RI ( ring indicate ) : các modem tự dộng trả lời – báo rằng đã phát hiện một tín hiệu chuông từ mạng điện thoại .
Bảng 3.6 tóm tắt các đường tín hiệu và sự gán tên 2 chữ cho chúng ( các đường tín hiệu ) . Chú ý rằng có 2 đường dây đất riêng rẽ : 1 đường dây cho nguồn hoặc mass máy và 1 đường dây cho tín hiệu tham chiếu (signal reference ) đất . Chúng có điện kế đất như nhau , nhưng tách ra như vậy để dòng điện 60 Hz hoặc một nhiễu bất kỳ sẽ không xuất hiện trên mạch tín hiệu . Hai đường dây đất này được cách ly bởi điện trở 100 ohm bên trong thiết bị.
Bộ kết nối RS232C :
Một bộ kết nối 25 chân và chuẩn thực tế có dạng chữ D được minh họa trong hình 3.12(c). Bảng 3.6 cho biết vị trí chân .
Modem rỗng của RS232C :
Mặc dù chuẩn RS 232C của EIA được dành riêng để áp dụng kết nối giữa modem với thiết bị đầu cuối , nhưng một thuê bao của RS232C cũng thường được sử dụng khi 2 thiết bị đầu cuối được nối với nhau , hoặc một máy tính và một máy in mà không sử dụng các modem .
Bảng 3.6 Các tín hiệu của RS232C của EIA .
Trong những trường hợp như vậy , các đường TDATA và RDATA phải được đặt chéo nhau và các đường điều khiển cần thiết phải được đặt ở TRUE hoặc phải được trao đổi ( “ swapped” ) thích hợp bên trong cáp kết nối . Sự nối lắp cáp của RS232C mà có sự trao đổi đường dây được gọi là modem rỗng (null modem ) .
Cáp như vậy thích hợp để nối trực tiếp 2 thiết bị DTE qua các port RS232C , 2 sơ đồ có thể kết nối lẫn nhau được trình bày trong hình 3.13 . Chú ý rằng trong trường hợp đơn giản nhất chỉ cần kết nối 4 dây lẫn nhau , trong thực tế 2 đường dây đất ( SIG GND CHAS GND ) thường được kết hợp lại , mặc dù điều này không được đề cập tới .
Hình 3.13 Giao tiếp các DTE trực tiếp qua các port RS232C sử dụng các modem rỗng .
- Các IC kích phát và thu của RS232C :
Nhờ tính phổ biến của giao tiếp RS232C , người ta đã chế tạo các IC kính phát và thu . Hai vi mạch như vậy được Motorola sản xuất là IC kich phát MC 1488 và IC thu 1489 có dạng võ vuông . Hình 3.14 cho thấy 1 port RS232C được kết nối với ACIA 6850 sử dụng MC 1488 và MC 1489 .
Mỗi IC kích phát 1488 nhận một tín hiệu mức TTL và chuyển thành tín hiệu ở ngỏ ra tương thích với mức điện áp của RS232C , IC thu 1489 phát hiện các mức vào của RS232C và chuyển chúng thành các ngõ ra có mức TTL .
6.1. LỜI GIỚI THIỆU :
Protocol nối tiếp bất đồng bộ thực hiện dơn giản và giá thành thắp. Việc truyền nốitiep bất đồng bộ hay ban tin (messages) gồm các brush ngắn, phân cách ngẫu nhiên của một số kí tư. Nhung khi truyền các file dữ liệu dài, cach truyền đồng bộ có hiệu quả hơn nhiều. Tin tức dược gơỉ di thành từng khoí. Mỗi khối bao gồm moỵ dãy kí tự liên tiếp. Lúc này các bit start và stop cho mỗi kí tự không còn cần thiết, mỗi khối dược dồng bộ như một nhóm hơn là từng kí tự và việc kiểm tra lỗi cũng dược thực hiện cùng lúc trên mỗi khối.
Có hai mức được sử dụng trong khối truyền đồng bộ. Đầu tiên, xung clock dời bit (bit-shirt clock) phải được đồng bộ với bit thời gian (bit timing) đã nhận được để lấy mẫu chính xác chuỗi tín hiệu vào. Kế đến phải biết lập biên giới của mỗi kí tự.
Các tín hiệu xung clock có thể được gởi đi từ máy phát đến máy thu song song với đường dữ liệu, và có thể dùng để làm xung clock trực tiếp cho thanh ghi dịch thu. Phương pháp này được sử dụng trong thực tế khi 2 trạm phát và thu hoàn toàn khép kín về mặt vật lý. Trong thực tế, thường sử dụng giữa 1 thiết bị đầu cuối (DTE) vá 1 modem đồng bộ (DCE).
Khi không thể gửi riêng tín hiệu xung clock từ máy phát tới máy thu, ở máy thu phải có mạch tách bit thời gian từ chính tín hiệu dữ liệu (dữ liệu đã gởi). Điều này sẽ làm tang tốc độ phức tạp của thiết bị và giá thành cao hơn so với truyền bất đồng bộ. Mạch đồng bộ thường sử dụng PLL. Đôi khi một mã nhị phân đặc biệt dược dùng cho tín hiệu dữ liệu để đảm bảo sự chuyển tiếp điện áp xảy ra đủ (ngay cả các lúc truyền bit dài 1 và 0) cho máy thu duy trì sự đồng bộ (còn gọi là cờ) tại thời diễm bắt đầu mỗi lần phát.
Hầu hết các mạng đồng bộ sử dụng 1 trong các protocol được thiết lập bởi IBM_ có thể truyền bộ nhị phân (BISYNC) hoặc điều khiển đuong thông tin dữ liệu đồng bộ (SDLC : synchronous data-link control) – cả 2 sẽ được mô tả trong chương này.
6.2 . GIAO TIẾP DTE – DCE ĐỒNG BỘ :
Khi tốc độ truyền dữ liệu vượt quá 1.200 bps thì phương pháp truyền dữ liệu thường được sử dụng là đồng bộ . Nếu sử dụng modem đồng bộ , modem sẽ tạo ra xung clock thu tự động đồng bộ với chuỗi bit nhận được . Tiêu chuẩn giao tiếp RS232 và RS449 có các đường để xung clock đi qua giữa các cặp thiết bị đầu cuối và modem . Nơi nhận dữ liệu và các chân được liệt kê trong bảng 6.1
Bảng 6.1 Các đường tín hiệu clock của RS232/RS449 . ( trang 133 )
Khi sử dụng modem đồng bộ , việc đồng bộ thu thường được cung cấp từ modem tới thiết bị đầu cuối. Hơn nữa , xung clock chủ của1 đường dữ liệu giữa 2 trạm có thể được tham gia giữa 2 trạm đó ( với mỗi trạm sẽ tạo ra 1 xung clock cho hướng truyền ) . Hình 6.1 trình bày 4 khả năngkết nối mạch của RS449 .
6.3 . PROTOCOL ĐỒNG BỘ NHỊ PHÂN :
Các protocol truyền dữ liệu ( các qui tắc của thủ tục ) được phân thành các mức . BISYNC là protocol mức 2 . Protocol mức 2 mô tả các thủ tục đễ điều khiển dòng dữ liệu . Protocol mức 1 mô tả các đặc tính vật lý và đặc tính về điện được sử dụng . Ví dụ RS449 là protocol mức 1 .
Từ BISYNC ( hoặc BSC ) có nghĩa là truyền đồng bộ nhị phân ( binary synchronous communication ). Đây là 1 protocol điều khiển theo mức logic , do một số ký tự ( byte ) đặc biệt thường dùng để điều khiển dữ liệu . Việc truyền các bit start và stop cho mỗi ký tự là không cần thiết . Các tin tức BISYNC được gởi trong các khối liên tiếp và mỗi khối là một chuỗi ký tự dài . Các biên ký tự bên trong mỗi khối được thiết lập bằng cách đặt 2 hoặc nhiều ký tự đồng bộ ( các ký tự syn ) mà máy thu có thể nhận biết trước khi truyền
Hình 6.1 Sự chọn lựa giao tiếp đồng bộ của RS449 ( trang 134 )
Các ký tự điều khiển dùng trong BISYNC lấy từ bảng mã ASCII gồm có các ký tự sau ( H ký hiệu mã ASCII dạng số hex ) :
SYN Ký tự đồng bộ 16H
SOH Ký tự bắt đầu của header 01H
STX Ký tự bắt đầu văn bản 02H
ETX Ký tự kết thúc văn bản 03H
EOT Ký tự kết thúc phát 04H
ETB Ký tự kết thúc truyền khối 17H
ENQ Ký tự hỏi 05H
ACK Ký tự báo cho biết đã nhận dữ liệu 06H
NAK Ký tự báo cho biết chưa nhận dữ liệu 15H
NUL Ký tự rỗng 00H
DLE Ký tự giải phóng đường dữ liệu 10H
CAN Ký tự hủy 18H
Một khối tun tức BISYNC tiêu biểu có cấu trúc như sau :
SYN SYN SOH header STX text ETX BCC
Đầu Cuối
Phần văn bản của khối chứa các thông tin . Phần header thường chứa địa chỉ đến và tín hiệu trả lời ACK/MAK nếu yêu cầu .
BCC là ký tự một byte dùng kiểm tra khối . Đây là byte duy nhất được tạo ra để kiểm tra lỗi trên toàn khối . BCC thường chỉ là một phép kiểm tra tổng chẵn lẻ như minh họa sau :
STX T E S T ETX BCC
0 0 1 1 0 1 1 bo
1 0 0 1 0 1 1 b1
0 1 1 0 1 0 1 b2
0 0 0 0 0 0 0 b3
0 1 0 1 1 0 1 b4
0 0 0 0 0 0 0 b5
0 1 1 1 1 0 0 b6
1 1 1 0 1 0 0 b7 (P)
Đối với các ví dụ trên các bit sẽ được truyền như sau :
STX T E S T ETX BCC
01000001 00101011 10100011 11001010 00101011 11000000 11101000
Đầu Cuối
Trong ví dụ này , người ta sử dụng parity chẵn và BCC chỉ kiểm tra các ký tự từ STX đến ETX . Thông thường , phép kiểm tra tổng được thực hiện trên toàn khối ( từ SOH tới ETX ).
Sau khi nhận được khối , nơi thu sẽ thực hiện tính toán , kiểm tra tổng , so sánh kết quả với BCC nhận được và sau đó sẽ trả lời bằng tín hiệu ACK hoặc NAK . Nơi phát sẽ không gởi khối khác cho tới khi đã được xác nhận rằng khối trước đã được nhận đúng . Như vậy , BISYNC được gọi là protocol bán song công .
Mode transparent ( chế độ thông suốt ) .
Mô tả ở trên có thể làm việc với phần TEXT của khối không chứa mã điều khiển BISYNC như là một phần của thông tin ( ví dụ giống như mã ETX ) .
Để làm điều này , thường thông tin có thể chuyển sang chế độ thông suốt, bằng cách dùng kí tự DLE. Người ta đặt DLE trước STX để chuyển máy thu sang chế độ thông suốt và STX đặt DLE trước ETX cuối cùng đễ kết thúc chế độ này.
Để cho phép sự cố của các mã DLE có thể xảy ra trong thông tin trong suốt, máy phát phải tự động tăng gắp đôi các sự cố như vậy. Do đó, khi máy thu ở chế độ thông suốt, máy thu phải bỏ qua tất cả các sự cố kép của các mã DEL ngoại trừ khi chuyển qua thông tin.
Công ty IBM đã khai thác protocol BISYNC bằng cách dùng mã EBCDIC (extended BCD information code) thay cho mã ASCII.
Cùng trong trường hợp như vậy, kí tự BCC là mã kiểm tra độ dư thừa theo chu kì (cyclic redundancy check : CRC) 16 bit thay cho 1 byte kiểm tra tổng.
Mã EBCDIC và CRC được trình bày chi tiết trong chương 7.
CHƯƠNG 7
CÁC PHƯƠNG PHÁP MÃ HÓA DỮ LIỆU
7.1. CÁC MÃ NHỊ PHÂN CỦA CHỦ VÀ SỐ :
Người ta đã dùng các bộ mã nhị phân để biểu diễn chữ cái và số . Một bộ mã gồm n bit nhị phân có thể biểu thị được 2n ký tự hoặc phần tử khác nhau . Hiện nay những bộ mã phổ biến dược dùng để truyền dữ liệu là mã BAUDOT , ASCII , EBCDIC .
Mã Baudot :
Bộ mã Baudot được trình bày trong bảng 7.1 là bộ mạ nhị phân 5 bit được dùng với các máy điện báo ( teletype hoặc teleprinter ) . Vì chỉ có 32 mã khác nhau ( 2s ) nên một số mã phải biểu thị cả 2 ký tự – chữ hoặc số - . Khi truyền chúng được phân biệt bằng cách gửi ký tự FIGS hoặc LTRS đi trước . Ví dụ dạng mã của NO . 27 như sau :
LTRS N O FIGS SPC 2 7
11111 00110 00011 11011 00111 00100 11011 11100
Khi sử dụng mã Baudot để truyền bất đồng bộ , số bit stop luôn luôn là 1,5 bit trong khi đó nếu dùng mã ASCII có thể có 1 hoặc 2 bit stop .
Mã ASCII :
ASCII là bộ mã thông dụng nhất để truyền dữ liệu . Bộ mã này được cho trong bảng 1.1 và các ký tự điều khiễn ASCII được mô tả trong phần 6.3 ( có liên quan tới protocol BISYNC ) .
KÝ TỰ
Mã Chử Hình tượng
11000 A -
10011 B ?
01110 C :
10010 D $
10000 E 3
10110 F !
01011 G &
00101 H #
01100 I 8
11010 J .
11110 K (
01001 L )
00111 M .
00110 N .
00011 O 9
01101 P 0
11101 Q 1
01010 R 4
10100 S BELL
00001 T 5
11100 U 7
01111 V :
11001 W 2
10111 X /
10101 Y 6
10001 Z -
11111 LTRS LTRS
11011 FIGS FIGS
00100 SPC SPC
00010 CR CR
01000 LF LF
00000 NULL NULL
Bảng 7.1 Bộ mã Baudot
Mã điều khiển và mã vẽ lại ở bảng 7.2 . Đây là bộ mã 7 bit và khi truyền sẽ thêm vào bit kiểm tra chẵn lẻ ở vị trí MSB .
Mã EBCDIC :
EBCDIC là bộ mã 8 biy được sử dụng rộng rãi trong các hệ thống thong tin liên lạc dùng máy tính của IBM . Toàn bộ mã ký tự và mã điều khiển của bộ mã EBCDIC được cho trong bảng 7.3 . Vì mã ký tự chiếm 8 bit nên muốn dùng parity phải sử dụng bit thứ 9 . Do vậy mã này chỉ dùng cho những chức năng đặc biệt hoặc trong cá ứng dụng đồ họa .
HEX HEX
Low High 0 1 2 3 4 5 6 7
0 NULL DLE SP 0 @ P . P
1 SOH DC1 ! 1 A Q a q
2 STX DC2 = 2 B R b r
3 ETX DC3 # 3 C S c s
4 EOT DC4 $ 4 D T d t
5 ENQ NAK % 5 E U e u
6 ACK SYN & 6 F V f v
7 BEL ETB - 7 G W g w
8 BS CAN ( 8 H X h x
9 HT EM ) 9 I Y i y
A LF SS * : J Z j z
B VT ESC + : K ( k (
C FF FS . < L \ l ]
D CR GS - = M { m ]
E SO RS - > N ^ n _
F SI US / ? O - o DEL
Ghi chú : mã là 7 bit thấp của số hex 2 digit.
NULL null DLE data link escape
SOH star of heading DC1 device control 1
STX star of text DC2 device control 2
ETX end of text DC3 device control 3
EOT end of transmission DC4 device control 4
ENQ enquiry NAK negative acknowledge
ACK acknowledge SYN synchronous idie
BEL audible signal (bell ) ETB end of transmission
BS backspace CAN cancel
HT horizontal tab EM end of medium
LF line feed SUB substitute
VT vertical tab ESC escape
FF form feed FS file separator
CR carriage return GS group separator
SO shif out RS record separator
SI shif in US unit separator
DEL delete SP space
Bảng 7.2 Bộ mã ASCII 7 bit
Hex Hex
Low High 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 NUL DLE DS SP & 0
1 SOH DC1 SOS a j A J 1
2 STX DC2 FS SYN b k s B K S 2
3 ETX DC3 c l t C L T 3
4 PF RES BYP PN d m u D M U 4
5 HT NL LF RS e n v E N V 5
6 LC BS ETB UC f o w F O W 6
7 DEL IL ESC EOT g p x G P X 7
8 CAN h q y H Q Y 8
9 RLF EM i r z I R Z 9
A SMMCC SM ! :
B VT $ #
C FF IFS DC4 * % @
D CR IGS ENQ NAK ( ) -
E SO IRS ACK + . -
F SI IUS BEL SUB ? -
Các mã điều khiển của EBCDIC không có trong ASCII là :
PF punch off CC cursor control
LC lowercase IFS interchange fileseparator
UC uppercase IGS interchange group separator
RLF reverse line feed IUS interchange unit separator
SMM start of manual message IRS interchange record separator
RES restore DS digit select
NL new line SOS start of significance
ID idle BYP bypass
SM set mode RS reader stop
PN punch on
Bảng 7.3 Bộ mã EBCDIC.
7.2. CÁC MÃ PHÁT HIỆN LỖI :
Người ta thêm các bit vào dòng dữ liệu nhằm mục đích phát hiện lỗi và gọi đây là phương pháp kiểm tra lỗi dư thừa ( redundency erro –check method). Các bit kiểm tra này đuoc xem như dư thừa bởi vì chúng không phải là phần của thông tin được gửi. Phương pháp đơn giản nhất là thêm vào một bit parity cho mã kí tự như đả mô tả trong chương 3 với protocol nối tiếp bất đồng và đôi khi được gọi là kiểm tra dư thừa đọc (vertical redundancy check : VRC).
Các mã kiểm tra dư thừa theo chiều dọc (longitudinal redundancy check : LRC) và các mã kiểm tra dư thừa chu kỳ (cyclic redundancy check : CRC) được dùng để kiểm tra lỗi trên toàn bộ khối dử liệu. Mã LRC hoặc CRC được gởi cùng với khối dữ liệu và được xem là kí tự kiểm tra khối (block check charater : BBC) như đã mô tả trong chương 6 với protocol nối tiếp đồng bộ.
7.3 CÁC MÃ SỬA SAI
Mã HAMMING :
Nếu chỉ sử dụng n bit cho mỗi ký tự để truyền dữ liệu từ một bộ ký tự có 2 n ký tự – là điều có hiệu quả nhất – nhưng nơi thu sẽ không thể phát hiện được lỗi vì nếu một ký tự nào đó sai một bit thì nơi thu sẽ hiểu là một ký tự khác . Nếu chúng ta thêm vào một bit dư cho mỗi ký tự và sử
dung n + 1 bit , nơi thu có thể phát hiện được lỗi . Điều này tương ứng với việc dùng 1 bit để kiểm tra chẵn lẻ và do đó người ta thường gởi 8 bit trong mỗi mã ASCCII 7 bit .
Richard Hamming đã đưa ra khái niệm về khoảng cách mã ( code distance ) . Khoảng cách Hamming giữa 2 từ mã là số bit khác nhau của 2 tư mã này . Ví dụ mã ASCII đối với chữ B là 1000010 và đối với chữ C là 1000011 có khoảng cách Hamming là 1 vì chúngchỉ khác nhau 1 bit – nếu thêm vào bit kiểm tra parity chẵn – mã ASCII của B là 01000010 và của C là 11000011 . Lúc này chúng có 2 bit khác nhau và khoảng cách Hamming là 2 .
Bằng cách thêm một số bit kiểm tra vào các bit của mỗi mã ký tự ta có thể cho phép nơi thu không chỉ phát hiện mà còn sửa sai được bit lỗi . Hamming đã đưa ra các thủ tục để thực hiện điều này và mã tạo thành được gọi là mã Hamming . Ông đã công bố các phương trình cho phép tính toán số bit kiểm tra cần thiết cho mỗi ký tự về các giá trị và vị trí của chúng trong khi phát tuần tự.
Để minh họa ứng dụng của các mã sửa sai Hamming , giả sử ta muốn mã hóa 16 số hex từ OH đến FH . Bằng cách sử dụng các mã 7 bit thay vì 4 bit , nơi thu có thể phát hiện được các cặp bit sai và sửa đúng 1 bit .
7 bit của mỗi mã gồm có 4 bit thông tin : m3 , m2 , m1 , m0 và 3 bit kiểm tra c2 , c1 , c0 . Các bit của mỗi từ mã được sắp teo thứ tự m3m2m1c2m0c1c0 .
3 bit kiểm tra được tính bằng cách EX-OR các bit thông tin như sau :
co = mo + m1+m3
c1 = mo +m2+m3
c2 = m1+m2+m3
Ví dụ :
Xét tư mã của A :
m3m2m1m0 = 1010 ( AH )
co = 0 + 1 + 1 = 0
c1 = 0 + 0 + 1 = 1
c2 = 1 + 0 + 1 = 0
Vì vậy tư mã của AH trở thành 1010010 ( m3m2m1c2m0c1c2 )
Khi nơi thu nhận được 1 tư mã , máy thu sẽ tính 3 bit kiểm tra chẵn lẻ như sau :
Po = 0 + 0 + 1 + 1 = 0
P1 = 1+ 0 + 1 + 1 = 1
P2 = 0 + 1 + 1 + 1 = 1
Từ đó ta biết có lỗi ở vị trí bit : P2P1P0 = 110 là vị trí bit thứ 6 .
Muốn biết nhiều hơn về mã HAMMING ta có thể tìm đọc cuốn Coding and Information Theory ( Englewood Cliffs . N.J : Prentice Hall. Inc . 1980 ) .
7.4. CÁC MÃ NÉN DỮ LIỆU :
Có nhiều sơ đồ mã khác nhau nhằm làm giảm số bit phải phát đi khi truyền các thông tin thực tế . Bốn ví dụ như vậy sẽ được tóm tắt như sau :
Mã hóa Run – Length :
Phương pháp này dùng cho dữ liệu có một chuỗi dài chỉ là sự lặp lại một số mẫu bit nào đó . Toàn bộ chuỗi này sẽ không được gởi đi mà chỉ gởi các bit mẫu kèm với mã điều khiển để báo cho bên thu số lần lặp lại chuổi bit mẫu . Từ đó sẽ nhận được toàn bộ chuổi muốn truyền .
Mã hóa vi phân :
Với phương pháp này ta chỉ truyền những sự thay đổi dữ liệu mà không truyền chính bản thân dữ liệu . Một lần nữa điều này chứng tỏ hiệu quả của việc truyền dữ liệu có tính chất lặp lại .
Mã Huffman :
Mã Huffman lợi dụng xác suất xảy ra của các ký tự khác nhau và gắn tư mã ngắn hơn cho các ký tự có xác suất xuất hiện lớn hơn và ngược lại . Ví dụ trước kia bộ mã ASCII mã hóa 7 bit cho mỗi ký tự , bây giờ chữ E có thể chỉ mã hóa bằng 2 bit và chữ Z là 10 bit . Bởi lẽ thông thường , trong văn bản tiếng Anh , số lần chữ E xuất hiện bao gời cũng lớn hơn rất nheiù so với chữ Z . Mã Huffman cung cấp một phương pháp làm giảm số bit trung bình của mỗi ký tự . Vì các mã có chiều dài ký tự khác nhau nên chúng phải chọn sao cho mã ngắn hơn không được hình thành ở các bit đầu của một trong số các mã dài hơn để nơi thu có thể nhận rađược ranh giới của các ký tự . Các mã như vậy gọi là các tiền tố ( prefix ) .
Hình 7.4 minh họa một ví dụ của mã Huffman . Mỗi tư mã trong bảng đặc trưng cho giá trị nhiệt độ đo được . Trong giải nhiệt độ từ 20 đến 30 độ C có 11 giá trị được mã hóa . Nếu không dùng phương pháp nén dữ liệu ta phải yêu cầu một mã nhị phân 4 bit . Tuy nhiên , khả năng xuất hiện của các giá trị nhiệt độ là hoàn toàn khác nhau , sự phân bố khả năng của nhiệt độ xảy ra được trình bày trong hình vẽ . Mã Huffman có thể gắn các từ mã với những chiều dài khác nhau và như vậy chiều dài trung bình của một tư mã được phát đi sẽ nhỏ hơn 4 .
Hình 7.4 trình bày một phương pháp đồ họa được dùng để gán các tư mã cho các sự kiện ( nhiệt độ ) , như vậy các mã ngắn nhất được gán cho các trường hợp có khả năng thường xảy ra nhất và các mã dài nhất được gán cho các trường hợp có khả năng xảy ra ít nhất .
Các sự kiện được liệt kê theo xác suất giảm dần .
Cặp bit 0-1 được gán cho 2 sự kiện có khả năng xảy ra ít nhất như đã trình bày , sau đó hai sự kiện này được tổ hợp thành một sự kiện có xác xuất xuất hiện bằng tổng hai xác suất .
Thứ tự của các sự kiện được sắp xếp lại theo thứ tự giảm dần và cứ thế , thủ tục lặp lại từ trái sang phải ( như trong hình 7.4 ) cho đến khi hai sự kiện cuối cùng được kết hợp . Sau đó tư mã của mỗi sự kiện được viết bằng cách dò theo các đường của sơ đồ .
Chú ý nếu các bit có trọng số lớn nhất ( MSB ) của mã được phát đi trước, ta không có mã tiền tố nữa . Như trong ví dụ ta thấy chiều dài trung bình của tư mã có thể tính như sau :
0.21.2 + 0.17.3 + 0.15.3 + 0.12.3 + 0.1.3 + 0.06.4 + 0.05.4 + 0.04.5 + 0.03.6 + 0.02.6 = 3.18nit
Kết quả là số bit khi truyền dữ liệu giảm khoảng 20% ( chiều dài trung bình của tư mã là 3,18 bit so với chiều dài của tư mã 4 bit khi không nén ) .
Điều này thích hợp để thiết lập một lưu đồ và một chương trình thực hiện việc mã hóa và giải mã
Huffman bằng phần mềm .
Hình 7.4 Ví dụ mã nén Huffman .
Mã đồ họa :
Hệ thống VIDEOTEX ở Bắc Mỹ dùng một bảng mã hình học để trueyn các đồ họa của máy tính , hoặc hính ảnh video . Mỗi hình được truyền như một tập hợp các hình cơ bản , với vị trí màu sắc và kích thước mỗi hình . Các dạng cơ bản bao gồm đường tròn , chữ nhật v..v.. Điều này có hiệu quả hơn nhiều so với việc gởi tọa độ và màu cho từng diễm trên màn hình .
7.5 . SỰ MÃ HÓA DỮ LIỆU :
Để ngăn cản việc sử dụng bản quyền , các kênh truyền hình có một tín hiệu như mật mã . Người sử dụng nào đã trả tiền thuê thì được công ty truyền cấp cho đơn vị giãi mã tín hiệu . Đây là ví dụ về việc mật mã hóa ( encryption ) tín hiệu tương tự vì mục đích thương mại .
Các dữ liệu thường mang thông tin bí mật của các cá nhân , cơ quan chính phủ , thương nhân và các cơ quan có chức năng tương tự . Đặc biệt việc ghép nối hay truyền dữ liệu trong quân đội hay giũa các nhà băng đều cần phải mật mã hóa dữ liệu .
Cách đơn giản nhất để mật mã hóa dữ liệu là các mẫu bit của dữ liệu được sắp xếp theo một giải thuật qui định hay thường gọi là “ khóa “ . Chỉcó bên thu hợp pháp mới biết được khóa bí mật này để giải mã thông tin đã nhận .
Việc mã hóa và giải mã thường xảy ra ở mức data link hay mức mạng ( network ) sau đó truyền dến người sử dụng ( múc datalink và mức mạng sẽ dê cập đến trong chương 10 ) . Vì xử lý điều khiển mật mã hóa dữ liệu ( data encryption unit : DEU ) được ra đời vì mục đích này .
Năm 1977 , văn phòng tiêu chuẩn của Mỹ đã công bố một giải thuật chuẩn mật mã hóa dữ liệu ( data encryption standart : DES ) để bảo vệ thông tin và coi đó như một phần của tiêu chuẩn xử lý thông tin ở cấp liên bang . Giải thuật này sử dụng kỹ thuật thay thế và hoán vị bit rất phức tạp . Giải thuật cung cấp một tư khóa 56 bit được thay đổi một cách tuần hoàn bởi nơi gởi và chỉ có nơi thu hợp pháp biết được .
Các vi xử lý bảo mật dữ liệu DSD ( data security device ) MC 6859 của MOTOROLA và vi xử lý mật mã dữ liệu DEU ( data encryption unit ) 8294 của INTEL là các chip micro-bus-ready LSI được thiết kế để thực hiện giải thuật DES một cách tự động .
Các file đính kèm theo tài liệu này:
- NHUT.DOC