Mục lục1.CHUẨN GIAO TIẾP RS23231.1.Định dạng của khung truyền dữ liệu theo chuẩn RS232 như sau:31.2.Các đặc tính kỹ thuật của chuẩn RS232 như sau:31.3.Cổng COM41.4.Đầu nối DB9 mô tả như bảng sau :51.5.Truyền thông nối tiếp giữa 2 nút61.6.IC MAX 23272.CHUẨN GIAO TIẾP SPI83.GIAO THỨC HDLC (HighLevel Data Control):133.1.Các đặc tính của giao thức HDLC :133.2.Cấu trúc khung :143.3.Một vài kịch bản về giao thức HDLC :15
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ VIỄN THÔNG
BÁO CÁO BÀI TẬP LỚN
MẠNG MÁY TÍNH
ĐỀ TÀI :
TRUYỀN THÔNG GIỮA HAI MÁY TÍNH
SỬ DỤNG GIAO THỨC HDLC
Giáo viên hướng
dẫn
: TS NGUYỄN TÀI HƯNG
Sinh viên thực hiện : Trần Trung Đức
Nguyễn Thị Vân Anh 20115444 Phạm Thị Huế 20115597
Hà Nội- 5/2014
Trang 2Mục lục
1 CHUẨN GIAO TIẾP RS-232 3
1.1 Định dạng của khung truyền dữ liệu theo chuẩn RS-232 như sau: 3
1.2 Các đặc tính kỹ thuật của chuẩn RS-232 như sau: 3
1.3 Cổng COM 4
1.4 Đầu nối DB9 mô tả như bảng sau : 5
1.5 Truyền thông nối tiếp giữa 2 nút 6
1.6 IC MAX 232 7
2 CHUẨN GIAO TIẾP SPI 8
3 GIAO THỨC HDLC (High-Level Data Control): 13
3.1 Các đặc tính của giao thức HDLC : 13
3.2 Cấu trúc khung : 14
3.3 Một vài kịch bản về giao thức HDLC : 15
Trang 31 CHUẨN GIAO TIẾP RS-232
Chuẩn RS-232 từ năm 1969 được chấp nhận chuyên dùng cho truyền số liệu và các
đường kiểm tra giữa terminal và moderm, tốc độ cực đại là 20Kbps, với khoảng
cách tối đa không quá 15m Chuẩn RS-232 quy định mức logic1 ứng với điện áp từ
-3V đến -15V (mark), mức logic 0 ứng với điện áp từ 3V đến 15V(space) và có khả
năng cung cấp dòng từ 10 mA đến 20 mA Ngoài ra, tất cả các ngõ ra đều có đặc
tính chống chập mạch
1.1 Định dạng của khung truyền dữ liệu theo chuẩn RS-232 như sau:
Hình 1.1.a : Khung truyền dữ liệu RS232
Khi không truyền dữ liệu, đường truyền sẽ ở trạng thái mark (điện áp
-10V) Khi bắt đầu truyền, DTE (Data Terminal Equipment) sẽ đưa ra xung Start
(space: 10V) và sau đó lần lượt truyền từ D0 đến D7và Parity, cuối cùng là xung
Stop (mark: -10V) để khôi phục trạng thái đường truyền Dạng tín hiệu truyền
mô tả như sau (truyền ký tự A):
Hình 1.1.b : Truyền kí tự A theo chuẩn RS232 1.2 Các đặc tính kỹ thuật của chuẩn RS-232 như sau:
Star D0 D1 D2 D3 D4 D5 D6 D7 P Stop
Trang 4Chiều dài cable cực đại 15m Tốc độ dữ liệu cực đại 20 Kbps Điện áp ngõ ra cực đại ±25V Điện áp ngõ ra có tải ±5V đến ±15V Trở kháng tải 3K đến 7K Điện áp ngõ vào ±15V
Độ nhạy ngõ vào ±3V Trở kháng ngõ ra 3K đến 7K
Các tốc độ truyền dữ liệu thông dụng trong cổng nối tiếp là: 1200 bps, 4800
bps, 9600 bps và 19200 bps
1.3 Cổng COM
Cổng COM còn gọi là cổng nối tiếp theo chuẩn RS-232.Cổng COM được sử
dụng khá phổ biến dữ liệu ở cổng COM thuộc dữ liệu dạng nối tiếp
Cổng nối tiếp được sử dụng để truyền dữ liệu hai chiều giữa máy tính và
ngoại vi, có các ưu điểm sau:
Khoảng cách truyền xa hơn truyền song song
Số dây kết nối ít
Có thể truyền không dây dùng hồng ngoại
Có thể ghép nối với vi điều khiển hay PLC (Programmable Logic Device)
Cho phép nối mạng
Có thể tháo lắp thiết bị trong lúc máy tính đang làm việc
Có thể cung cấp nguồn cho các mạch điện đơn giản
Các thiết bị ghép nối chia thành 2 loại: DTE (Data Terminal Equipment) và
DCE (Data Communication Equipment) DCE là các thiết bị trung gian như
MODEM còn DTE là các thiết bị tiếp nhận hay truyền dữ liệu như máy tính, PLC,
vi điều khiển… Việc trao đổi tín hiệu thông thường qua 2 chân RxD (nhận) và TxD
(truyền) Các tín hiệu còn lại có chức năng hỗ trợ để thiết lập và điều khiển quá trình
truyền, được gọi là các tín hiệu bắt tay (handshake) Ưu điểm của quá trình truyền
dùng tín hiệu bắt tay là có thể kiểm soát đường truyền.Tín hiệu truyền theo chuẩn
RS-232 của EIA (Electronics Industry Associations)
Các phương thức nối giữa DTE và DCE:
Đơn công (simplex connection): dữ liệu chỉ được truyền theo 1 hướng
Trang 5 Bán song công ( half-duplex): dữ liệu truyền theo 2 hướng, nhưng mỗi
thời điểm
Chỉ được truyền theo 1 hướng
Song công (full-duplex): số liệu được truyền đồng thời theo 2 hướng
Cổng COM có hai dạng: đầu nối DB25 (25 chân) và đầu nối DB9 (9 chân)
Hình 1.3.a : Đầu nối DB25 và DB9
Hình 1.3.b: cổng DB9 trên máy tính
1.4 Đầu nối DB9 mô tả như bảng sau :
D9 Tín hiệu Hướng truyền Mô tả
1 DCD DCE → DTE Data carier detect: DCE phát hiện
sóng mang
2 RxD DCE → DTE Received data: dữ liệu nhận
3 TxD DTE →DCE Transmitted data: dữ liệu truyền
4 DTR DTE →DCE Data terminal ready: DTE sẵn
sàng làm việc
5 GND - Ground: nối đất (0V)
6 DSR DCE → DTE Data set ready: DCE sẵn sàng
làm việc
7 RTS DTE →DCE Request to send: DTE yêu cầu
truyền dữ liệu
Trang 68 CTS DCE →DTE Clear to send: DCE sẵn sàng
nhận dữ liệu
9 RI RI DCE →DTE Ring indicator: báo chuông
1.5 Truyền thông nối tiếp giữa 2 nút
Các sơ đồ khi kết nối dùng cổng nối tiếp:
Hình 1.5.a : Kết nối đơn giản trong truyền thông nối tiếp
Khi thực hiện kết nối như trên, quá trình truyền phải bảo đảm tốc độ ở đầu
phát và thu giống nhau Khi có dữ liệu đến DTE, dữ liệu này sẽ được đưa vào bộ
đệm và tạo ngắt Ngoài ra, khi thực hiện kết nối giữa hai DTE, ta còn dùng sơ đồ sau
Hình 1.5.b : Kết nối trong truyền thông nối tiếp dùng tín hiệu bắt tay
Khi DTE1 cần truyền dữ liệu thì cho DTR tích cực, tác động lên DSR của
DTE2 cho biết sẵn sàng nhận dữ liệu và cho biết đã nhận được sóng mang của
MODEM (ảo) Sau đó, DTE1 tích cực chân RTS để tác động đến chân CTS của
DTE2 cho biết DTE1 có thể nhận dữ liệu Khi thực hiện kết nối giữa DTE và DCE,
do tốc độ truyền khác nhau nên phải thực hiện điều khiển lưu lượng Quá trình điều
Trang 7khiển này có thể thực hiện bằng phần mềm hay phần cứng Quá trình điều khiển
bằng phần mềm thực hiện bằng hai ký tự Xon và Xoff Ký tự Xon được DCE gởi đi
khi rảnh (có thể nhận dữ liệu) Nếu DCE bận thì sẽ gởi ký tự Xoff Quá trình điều
khiển bằng phần cứng dùng hai chân RTS và CTS Nếu DTE muốn truyền dữ liệu
thì sẽ gởi RTS để yêu cầu truyền, DCE nếu có khả năng nhận dữ liệu (đang rảnh) thì
gởi lại CTS
1.6 IC MAX 232
Hình 1.6.a: MAX 232 SMD và sơ đồ chân
IC MAX 232 là IC chuyên dụng trong giao tiếp nối tiếp với máy tính Nhiệm
vụ chính của MAX 232 là chuyển đổi mức điện áp logic TTL ở ngõ vào thành mức
+10, -10 ở phía nhận và các mức +3V…+15V hoặc -3V…-15V thành mức TTL ở
phía nhận
Một số đặc điểm chính của IC MAX 232:
Hoạt động từ nguồn 5V với các tụ nạp 1uF
Hoạt động lên tới 120Kbps
Mức ngõ vào ±30V
Có 2 bộ Driver/Receiver
Dòng cung cấp thấp 8mA
Trang 8Hình 1.6.b: Sơ đồ yêu cầu kết nối MAX232
2 CHUẨN GIAO TIẾP SPI
SPI (Serial Peripheral Bus) là một chuẩn truyền thông nối tiếp đồng bộ tốc độ
cao do hãng Motorola đề xuất Đây là kiểu truyền thông Master-Slave, trong đó có 1
chip Master điều phối quá trình truyền thông và các chip Slaves được điều khiển bởi
Master, vì thế truyền thông chỉ xảy ra giữa Master và Slave
SPI là một cách truyền song công (full duplex) vì vậy tại cùng một thời điểm
quá trình truyền và nhận có thể xảy ra đồng thời
Một liên kết SPI giữa chip Master và Slave được thực hiện thông qua 4 đường:
SCK: Đóng vai trò xung giữ nhịp cho giao tiếp SPI Mỗi nhịp trên chân SCK
báo 1 bit dữ liệu đã đến hoặc đi Sự tồn tại của chân SCK giúp quá trình truyền ít bị
lỗi và tốc độ truyền của SPI có thể đạt rất cao Xung nhịp chỉ được tạo ra bởi chip
Master
MISO – Master Input/Slave Output: Nếu là chip Master thì đây là đường
Input, nếu là chip Slave thì MISO lại là Output MISO của Master và các Slave được
nối trực tiếp với nhau
MOSI – Master Output/Slave Input: Nếu là chip Master thì đây là đường
Output, nếu là chip Slave thì đây là đường Input MOSI của Master và các Slaves
được nối trực tiếp với nhau
SS – Slave Select: SS là đường chọn Slave cần giao tiếp Trong trường hợp
một Master giao tiếp với nhiều Slave thì SS sẽ là đường chọn Slave cần giao tiếp
Trang 9Nếu chip Master kéo đường SS của một Slave nào đó xuống mức thấp thì việc giao
tiếp sẽ xảy ra giữa Master và Slave đó Chỉ có một đường SS trên mỗi Slave nhưng
có thể sẽ có nhiều đường điều khiển SS trên Master
Hoạt động: Mỗi chip Master hay Slave có một thanh ghi dữ liệu 8 bit Cứ mỗi
xung nhip do Master tạo ra trên đường giữ nhịp SCK, một bit trong thanh nghi dữ liệu
của Master được chuyển qua Slave trên đường MOSI, đồng thời một bit trong thanh ghi
dữ liệu của chip Slave cũng được truyền qua Master trên đường MISO Hình sau mô tả
quá trình truyền 1 gói dữ liệu thực hiện bởi module SPI trong AVR
Hình 2.1: Quá trình truyền dữ liệu trên module SPI
Giao tiếp SPI trên AVR
Vi điều khiển ATmega128 giao tiếp với thẻ nhớ micro SD Card thông qua
chuẩn giao tiếp SPI và được thực hiện thông qua module SPI của chip ATmega128
Trên chip ATmega128 thì các chân dùng cho giao tiếp SPI như sau:
SCK: PB1 (chân 11)
MISO: PB3 (chân 13)
MOSI: PB2 (chân 12)
SS: PB0 (chân 10)
Khi giao tiếp với thẻ nhớ thì ATmega128 sẽ đóng vai trò là Master còn micro
SD Card sẽ là Slave, do đó chúng ta cần set các chân: SCK output, MOSI output,
MISO input
Module SPI trên AVR được vận hành bởi 3 thanh ghi: SPCR, SPSR, SPDR
SPCR (SPI Control Register): là một thanh ghi 8 bit điều khiển tất cả hoạt động của
SPI
Trang 10Hình 2.2: Thanh ghi SPCR
Bit 7 – SPIE (SPI Interupt Enable): bit cho phép ngắt SPI Nếu bit này được
set bằng 1 và bit I trong thanh ghi trạng thái được sét bằng 1 (sei), 1 ngắt sẽ
xảy ra sau khi một gói dữ liệu được truyền hoặc nhận
Bit 6 – SPE (SPI Enable): sét bit này lên 1 để cho phép bộ SPI hoạt động
Nếu SPE = 0 thì module SPI dừng hoạt động
Bit 5 – DORD (Data Order): bit này chỉ định thứ tự dữ liệu các bit được
truyền và nhận trên các đường MISO và MOSI Khi DORD = 0 thì bit có
trọng số lớn nhất (MSB) của dữ liệu được truyền trước Ngược lại, khi
DORD = 1 thì bít có trọng số nhỏ nhất (LSB) được truyền trước
Bit 4 – MSTR (Master/Slave Select): bit này dùng để nhận diện xem Master
đang hoạt động ở chế độ Master hay Slave Nếu MSTR = 1 thì chip được
nhận diện là Master Ngược lại, MSTR = 0 thì chip là Slave
Bit 3 và 2 – CPOL và CPHA: đây là 2 bit xác lập cực của xung giữ nhịp và
cạnh sample dữ liệu Với bit CPOL, ở trạng thái nghỉ, chân SCK có thể được
dữ ở mức cao (CPOL = 1) hoặc thấp (CPOL = 0) Với bit CPHA, nó được
dùng để chỉ cách mà dữ liệu được lấy mẫu (sample) theo xung giữ nhịp Dữ
liệu có thể được lấy mẫu ở cạnh lên của SCK (nếu CPHA = 0) hoặc cạnh
xuống (Nếu CPHA = 1) Hình sau mô tả cách sample dữ liệu trong 4 chế độ
của SPI trên AVR
Trang 11Hình 2.3: Cách lấy mẫu dữ liệu.
Sự kết hợp của CPOL và CPHA làm nên 4 chế độ hoạt động của SPI
Bit 1 và 0 – CPR1:0: hai bit này kết hợp với bit SPI2X trong thanh ghi SPSR
cho phép chọ tốc độ giao tiếp SPI Tốc độ này được xác lập dựa trên tốc độ
nguồn xung clock chia cho một hệ số chia Bảng sau mô tả chi tiết các tốc độ
có thể của SPI
Trang 12Hình 2.4: Bảng tần số sample dữ liệu
SPSR (SPI Status Register): là thanh ghi trạng thái của moude SPI
Hình 2.5: Thanh ghi SPSR
Trong thanh ghi này, chỉ có 3 bit được sử dụng
Bit 7 – SPIF: là cờ báo SPI, khi một gói dữ liệu đã được truyền hoặc nhận từ
SPI, bit SPIF sẽ tự động được set lên 1
Bit 6 – WCOL: là bi báo va chạm dữ liệu Bit này được AVR set lên 1 nếu chúng
ta cố tình viết 1 gói dữ liệu mới vào thanh ghi dữ liệu SPDR trong khi quá trình
truyền nhận trước chưa kết thúc
Bit 0 – SPI2X: là bit nhân đôi tốc độ truyền, bit này kết hợp với bit SPR1:0
trong thanh ghi điều khiển SPCR xác lập tốc độ cho SPI
SPDR (SPI Data Register): là thanh ghi dữ liệu của SPI Trên chip Master,
ghi giá trị vào thanh ghi SPDR sẽ kích quá trình truyền thông SPI Trên chip
Slave, dữ liệu nhận được từ Master sẽ lưu trong thanh ghi SPDR, dữ liệu
được lưu sẵn trong SPRD sẽ được truyền cho Master
Trang 133 GIAO THỨC HDLC (High-Level Data Control):
Giao thức điều khiển liên kết dữ liệu quan trong nhất là HDLC Không phải vì nó
được sử dụng rộng rãi mà nó còn là cơ sở cho nhiều giao thức điều khiển liên kết dữ
liệu khác
Các đặc tính của giao thức HDLC:
Giao thức HDLC định nghĩa 3 loại máy trạm, hai cấu hình đường nối kết và 3 chế
độ điều khiển truyền tải
a/- Ba loại trạm trong HDLC :
• Trạm chính (Primary Station): Có trách nhiệm điều khiển các thao thác về đường
truyền Các khung được gởi từ trạm chính gọi là lệnh Command)
• Trạm phụ (Secondary Station): Hoạt động dưới sự kiểm soát của trạm chính
Khung gởi từ trạm phụ gọi là các trả lời Trạm chính duy trì nhiều đường nối kết
luận lý đến các trạm phụ trên đường truyền
• Trạm hỗn hợp (Combined Station): Bao gồm đặc điểm của trạm chính và trạm phụ
Một trạm hỗn hợp có thể gởi đi các lệnh và các trả lời
b/- Hai cấu hình đường nối kết :
• Cấu hình không cân bằng (Unbalanced Configuration): Gồm một máy trạm chính
(Primary Station) và nhiều máy trạm phụ (Secondary station) và hỗ trợ cả 2 chế độ
truyền song công và bán song công
• Cấu hình cân bằng (Balanced Configuration): Bao gồm 2 máy trạm hỗn hợp, và hỗ
trợ cả 2 chế độ truyền song công và bán song công
c/- Có 3 chế độ truyền tải là :
• Chế độ trả lời bình thường (NRM- Normal Response Mode), được sử dụng với cấu
hình đường nối kết không cân bằng Máy chính có thể khởi động một cuộc truyền tải
dữ liệu về cho máy phụ Nhưng máy phụ chỉ có thể thực hiện việc truyền dữ liệu cho
máy chính như là những trả lời cho các yêu cầu của máy chính
• Chế độ cân bằng bất đồng bộ (ABM - Asynchronous Response Mode): Được sử
dụng với cấu hình nối kết cân bằng Cả hai máy đều có quyền khởi động các cuộc
truyền tải dữ liệu mà không cần sự cho phép của máy kia
Trang 14• Chế độ trả lời bất đồng bộ (ARM-Asynchronous Response Mode): Sử dụng cấu
hình không cân bằng Một máy phụ có thể khởi động một cuộc truyền tải và không
cần sự cho phép tường minh của máy chính Máy chính vẫn đảm trách vai trò bảo trì
đường truyền bao gồm việc khởi động, phục hồi lỗi và xóa nối kết
Chế độ NRM đòi hỏi phải có nhiều đường dây để nối một máy chính với nhiều thiết
bị đầu cuối
Chế độ ABM được sử dụng nhiều nhất trong 3 chế độ, nó cho phép sử dụng hiệu quả
đường truyền Chế độ ARM thì ít được dùng đến
Cấu trúc khung:
HDLC sử dụng chế độ truyền tải đồng bộ, các bits dữ liệu truyền đi được gói vào
trong các khung và sử dụng một cấu trúc khung cho tất cả các loại dữ liệu cũng như
thông tin điều khiển
Khung trong giao thức HDLC có cấu trúc như sau:
Bits 8 8 8 ≥ 0 16 8
011111110 Address Control Data Checksum 01111110
Cấu trúc khung của HDLC Flag(8 bit) Lá cờ dùng để xác định điểm bắt đầu và kết thúc của khung, giá
trị nó là 01111110 HDLC sử dụng kỹ thuật bit độn để laoị trừ sự xuất hiện của cờ trong dữ liệu
Address(8bit) Vùng ghi địa chỉ để xác định máy phụ được phép truyền hay nhận
khung Control(8bit) Được dùng để xá định loại khung Mỗi loại có thôgn tin điều
khiển khác nhau Có 3 loại khung: Thông tin(I), điều khiển (S) và không đánh số(U)
Ìnormation(128
-1024 bytes) Vùng chứa dữ liệu cần truyền
FCS(Frame
Check
Sequence-8bit)
Vùng chứa mã kiểm soát lỗi, dùng phương pháp đa thức CRC CCITT = X16 + X12 +X5 +1
Trang 15Bits 1 3 1 3
Khung I 0 Seq P/F Next
Khung S 1 0 Type P/F Next
Khung U 1 1 Type P/F Modifier
Cấu trúc trường điều khiển trong khung HDLC Giao thức HDLC sử dụng một cửa sổ trượt với số thứ tự khung 3 bit Trường seq
trong khung I để chỉ số thứ tự của khung thông tin hiện tại Trường Next để chỉ số
thứ tự của khung thông tin mà bên gởi đang chờ nhận (thay vì là khung đã nhận tốt
như giao thứ cửa sổ trượt đã giới thiệu ở phần trước)
Bit P/F có ý nghĩa là Poll/Final, tức chọn hoặc kết thúc Khi máy tính chính mời một
máy phụ truyền tin, thì bit này được đặt lên 1 có ý nghĩa là P (Poll, chọn) Ngược lại
khi thông tin được truyền từ máy phụ lên máy chính thì nó được đặt xuống 0, để báo
với máy chính rằng máy phụ hiện tại vẫn còn dữ liệu để gởi đi Khi máy phụ gởi
khung cuối cùng, bit này được đặt lên 1, có ý nghĩa là F (Final, kết thúc), để báo cho
máy chính biết rằng nó đã hoàn thành việc truyền tải thông tin
Khung S (Supervisory Frame) là khung điều khiển, dùng để kiểm soát lỗi và luồng
dữ liệu trong quá trình truyền tin Khung S có 4 kiểu được xác định bởi tổ hợp giá trị
của 2 bit trong trường Type
SS=00
RR (Receive Ready) là khung báo nhận, thông báo sẵn sàng nhận
dữ liệu, đã nhận tốt đến khung Next-1, và đang đợi nhận khung Next Được dùng đến khi không còn dữ liệu gửi từ chiều ngược lại
để vừa làm báo nhận (figgyback) SS=01 REJ(Reject): đây là một khung báo khôgn nhận (negative
acknowledge), yêu cầu gửi lại các khung, từ khung Next SS=10 RNR (Receive Not Ready): thông báo không sẵn sàng nhận tin, đãnhận đến đến khung thứ Next-1, chưa sẵn sàng nhận khung Next
SS=11 SREJ (Selective Reject): yêu cầu gửi lại một khung có số thứ tự làNext