Giao thức

Giao thức 
   Bất cứ sự giao tiếp nào cũng cần một ngôn ngữ chung cho các đối tác. Trong kỹ thuật truyền thông, bên cung cấp dịch vụ cũng như bên sử dụng dịch vụ đều phải tuân thủ theo các qui tắc, thủ tục cho việc giao tiếp, gọi là giao thức. Giao thức chính là cơ sở cho việc thực hiện và sử dụng các dịch vụ truyền thông. Một qui chuẩn giao thức bao gồm các thành phần sau:
• Cú pháp (syntax): Qui định về cấu trúc bức điện, gói dữ liệu dùng khi trao đổi, trong đó có phần thông tin hữu ích (dữ liệu) và các thông tin bổ trợ như địa chỉ, thông tin điều khiển, thông tin kiểm lỗi,...
• Ngữ nghĩa (semantic): Qui định ý nghĩa cụ thể của từng phần trong một bức điện, như phương pháp định địa chỉ, phương pháp bảo toàn dữ liệu, thủ tục điều khiển dòng thông tin, xử lý lỗi,...
 • Định thời (timing): Qui định về trình tự, thủ tục giao tiếp, chế độ truyền (đồng bộ hay không đồng bộ), tốc độ truyền thông,...
  Việc thực hiện một dịch vụ truyền thông trên cơ sở các giao thức tương ứng được gọi là xử lý giao thức Nói một cách khác, quá trình xử lý giao thức có thể là mã hóa (xử lý giao thức bên gửi) và giải mã (xử lý giao thức bên nhận). Tương tự như các dịch vụ truyền thông, có thể phân biệt các giao thức cấp thấp và giao thức cao cấp. Các giao thức cao cấp là cơ sở cho các dịch vụ cao cấp và các giao thức cấp thấp là cơ sở cho các dịch vụ cấp thấp.
   Giao thức cao cấp gần với người sử dụng, thường được thực hiện bằng phần mềm. Một số ví dụ về giao thức cao cấp là FTP (File Transfer Protocol) dùng trong trao đổi file từ xa, HTTP (Hypertext Transfer Protocol) dùng để trao đổi các trang HTML trong các ứng dụng Web, MMS (Manufacturing Message Specification) dùng trong tự động hóa công nghiệp.
   Giao thức cấp thấp gần với phần cứng, thường được thực hiện trực tiếp bởi các mạch điện tử. Một số ví dụ giao thức cấp thấp quen thuộc là TCP/IP (Transmission Control Protocol/Internet Protocol) được dùng phổ biến trong Internet, HART (Highway Adressable Remote Transducer) dùng trong điều khiển quá trình, HDLC (High Level Data-link Control) làm cơ sở cho nhiều giao thức khác và UART dùng trong đa số các giao diện vật lý của các hệ thống bus trường.
Giao thức HDLC
   HDLC cho phép chế độ truyền bit nối tiếp đồng bộ hoặc không đồng bộ. Một bức điện, hay còn gọi là khung (frame) có cấu trúc như sau:
   Mỗi khung được khởi đầu và kết thúc bằng một cờ hiệu (flag) với dãy bit 01111110. Dãy bit này được đảm bảo không bao giờ xuất hiện trong các phần thông tin khác qua phương pháp nhồi bit (bit stuffing), tức cứ sau một dãy 5 bit có giá trị 1 (11111) thì một bit 0 lại được bổ sung vào (chi tiết xem phần Bảo toàn dữ liệu). Ô địa chỉ tiếp theo chứa địa chỉ bên gửi và bên nhận. Tùy theo cách gán địa chỉ 4 hoặc 8 bit (tương ứng với 32 hoặc 256 địa chỉ khác nhau), ô này có chiều dài là 8 hoặc 16 bit. Trong HDLC có ba loại bức điện, được phân biệt qua ô thông tin điều khiển (8 bit), đó là:
 • Information Frames: Khung thông tin (I-Format)
• Supervisory Frames: Khung giám sát vận chuyển dữ liệu (S-Format)
• Unnumbered Frames: Khung bổ trợ kiểm soát các mối liên kết giữa các trạm (U-Format). Cấu trúc của ô thông tin điều khiển được qui định như sau:
   Ô thông tin có độ dài biến thiên, cũng có thể để trống nếu như bức điện không dùng vào mục đích vận chuyển dữ liệu. Sau ô thông tin là đến dãy bit kiểm lỗi (FCS = Frame Check Sequence), dùng vào mục đích bảo toàn dữ liệu. Tốc độ truyền thông tiêu biểu đối với HDLC từ 9,6 kbit/s đến 2 Mbit/s. Giao thức UART
    UART (Universal Asynchronous Receiver/Transmitter) là một mạch vi điện tử được sử dụng rất rộng rãi cho việc truyền bit nối tiếp cũng như chuyển đổi song song/nối tiếp giữa đường truyền và bus máy tính (xem mục Chế độ truyền tải). UART cho phép lựa chọn giữa chế độ truyền một chiều, hai chiều đồng bộ hoặc hai chiều không đồng bộ. Việc truyền tải được thực hiện theo từng ký tự 7 hoặc 8 bit, được bổ sung 2 bit đánh dấu đầu cuối và một bit kiểm tra lỗi chẵn lẽ (parity bit). Ví dụ với ký tự 8 bit được minh họa dưới đây.
    Bit khởi đầu (Start bit) bao giờ cũng là 0 và bit kết thúc (Stop bit) bao giờ cũng là 1. Các bit trong một ký tự được truyền theo thứ tự từ bit thấp (LSB) tới bit cao (MSB). Giá trị của bit chẵn lẻ P phụ thuộc vào cách chọn:
. Nếu chọn parity chẵn, thì P bằng 0 khi tổng số bit 1 là chẵn.
 • Nếu chọn parity lẻ, thì P bằng 0 khi tổng số bit 1 là lẻ.