Ðể IC hoạt ñộng ở chế ñộ ñồng bộ bít D0 và D1 trong thanh ghi ñiều khiển = 00, các bít D2, D3, D4, D5 như trong phần bất ñồng bộ, bít D6 cho phép chọn thực hiện ñồng bộ từ bên trong hay
Trang 1Dưới ñây thêm vài ví dụ về các lệnh trong vận hành của SDLC (không ghi lại mã)
Dạng tổng quát của một lệnh A , C/R P/F (0)
A ñịa chỉ trạm thứ cấp
C/R Lệnh hỏi hoặc lời ñáp
Khoảng trống dùng cho số Ns, có thể thêm dấu ( ) vào nếu cần
P/F Poll hoặc Final bit (P = On = Off, tương tự cho F)
(0) số Nr (nếu cần)
1/ Trạm thứ cấp ñược nối vào ñường dây và trao ñổi khung I, U :
B , RR - P(0) → A Polls B
← B , RIM - F B Request Initialization
B , SIM - P → A Sets B to initialization mode
← B , UA - F B Acknowledges B is brought online through system ↓ procedures when initialization complete
B , SNRM - P → A Set B 's response mode.Nr and Ns
counts are reset to 0
← B , UA - F B Acknowledges
B , RR - P(0) → A Polls B for transmission
B , I(0) (0) → Duplex exchange of numbered I - Frame
B , I(1) (0) → A Sends frame 1
B , I(2) (0) → A Sends frame 2 B confirms frame 0-1 ← B ,
B , I(3) (1) → A confirms frame 0 and sends frame
3
← B , I(2) F(3) B confirms frame 2 and sends frame 2
B , RR - P(3) → A confirms frame 1-2 and Poll B
← B , RR - F(4) B confirms frame 3 ( B remains in NRM) -
-
2/ Trạm thứ cấp bận :
B , I(4) (3) → A sends numbered I - Frames
B , I(5) (3) →
Trang 2B , I(6) (3) →
B , I(7) (3) →
B , I(0) P(3) → A Polls B
← B , RNR - F(0) B becomes busy, but confirms frame 4-7
B , RR - P(3) → A asks if B is still busy
← B , RR - F(0) B can receive again and expects frame 0
B , I(0) (3) → A sends frame 0 again
B , I(1) (3) → A continues with frame 1
B , I(2) P(3) → A sends frame 2 and poll B(gửi thăm dò)
← B , RR - F(3) B confirms frame 0 - 2 (B remains in NRM) -
-
3/ Trạm sơ cấp bận :
B , SNRM - P → A sets B 's response mode and reset the Nr
and Ns counts to 0 ← B , UA - F B Acknowledges
← B , I(0) (0) B sends numbered I - frame ← B , I(1) (0)
← B , I(2) (0) ← B , I(3) (0)
B , RNR - (3)→ A becomes busy, but confirms frame 0 - 2
← B , RR - F(0) B stops sending
← B , I(3) (0) B retransmits frame 3 ← B , I(4) (0) B sends frame 4
B , RR - P(4) → A Polls B, confirms frame 3
← B , I(4) F(0) B sends frame 4 again
B , RR - (5) → A confirms frame 4 (B remains in NRM) -
4/ Lệnh không có giá trị:
B ,XXX- P → A sends frame with an undefined C field
← B , FRMR - F B rejects the frame
Higher level at A processes the status reported by B in FRMR response
B ,SNRM - P → A resets B 's error condition
Nr and Ns counts are reset to 0
← B , UA - F B acknowledges (B remains in NRM)
Trang 3-
-5/ Số thứ tự sai trong trao ñổi song công:
B , RR - P(0) → A polls B for transmission
← B , I(0) (0) B sends numbered I- frame
B , I(0) (0) →
← B , I(1) (0) Duplex exchange of numbered I - Frame
← B , I(2) (0)
(CRC error) B receives frame 0 with CRC error
B , I(1) (2) → A ' s frame 1 is out of numerical order (Lẻ ra phải phát lại khung 0)
← B , I(3) (0) ← B , I(4) F(0)
← B , SREJ - (0) B expects frame 0
B , I(0) (5) → A sends frame 0 again and confirms
frame 0 - 4
← B , I(5) F(0) B sends final I frame
B , I(1) (5) → A retransmits frame 1
B , RR - P(6) → A confirms frame 5 and polls B for
← B , RIM - F B asks for initialization mode
B , SIM - P → A sets B to initalization mode
← B , UA - F B acknowledges
Trang 4B is brough on line through system procedures when initialization is complete
B , SNRM - P → A sets B on line Nr & Ns counts are reset
7/ n , I(0) (4) → A sends numbered frames to n
B , I(2) (0) → A sends numbered frames to B
n , I(1) P(4) → A concludes sending to n and requests confirmation
B , I(3) (0) → ← n , RR - F(2) A continues sending to B, n confirms frame 0
- 1
B , I(4) P(0) → A concludes sending to B and requests confirmation
← B , RR - F(5) B confirms (B & n remain in NRM)
Ví dụ 6, các trạm thứ cấp ñược kết nối, trạm sơ cấp gửi tín hiệu tới một trạm trong khi nhận tín hiệu của trạm khác
Ví dụ 7, trạm sơ cấp gửi tín hiệu tới các trạm thứ cấp
6.2.2.4 So sánh giữa Bisynch và SDLC :
Bisynch là giao thức hướng ký tự trong lúc SDLC là giao thức hướng bit Bisynch có thể dùng mã ASCII hay EBCDIC trong lúc SDLC chỉ dùng EBCDIC Ðể dò lỗi, nếu là ASCII thì dùng phép kiểm tra khối (BCC) còn khi dùng mã EBCDIC thì dùng kiểm tra dư thừa theo chu kỳ (CRC) với chiều dài mã kiểm tra là 2 byte Cả hai giao thức ñều dùng chung kích thước khung thông tin là 256 byte Ở Bisynch có chế ñộ thông suốt dữ liệu (ñể tránh nhầm lẫn dữ liệu và ký tự ñiều khiển) trong lúc ở SDLC thì dùng phương pháp nhồi bit (ñể tránh nhầm lẫn với mã Cờ)
Trang 5
6.2.2.5 Giao thức Ðiều khiển liên kết dữ liệu cấp cao (HDLC) :
HDLC ñược ISO cho ra ñời năm 1975 nhằm bổ sung một số chức năng của SDLC của
IBM Một số bổ sung có thể kể ra như sau:
- Trường ñịa chỉ mở rộng, gồm nhiều byte:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 8n
(H 6.7) Trường ñịa chỉ mở rộng
Trong trường ñịa chỉ mở rộng, ñịa chỉ xác ñịnh bơøi một số là bội của 7 bít Bít LSB
trong một byte là 0 hoặc 1 (là 0 khi byte ñó chưa phải là byte cuối cùng và là 1 khi là byte
cuối cùng của trường ñịa chỉ) 7 bít còn lại hình thành ñịa chỉ của trạm thứ cấp (H 6.7)
- Trường ñiều khiển mở rộng, gồm 2 byte (H 6.8):
- Dạng khung giám sát: ngoài các lệnh RR, RNRvà REJ, HDLC có thêm lệnh SREJ
(selective reject), lệnh này do thứ cấp yêu cầu phát lại một khung có số Nr
- HDLC có thêm 2 chế ñộ vận hành:
* Chế ñộ trả lời bất ñồng bộ (Asynchronous Response Mode - ARM) : ñây là dạng
truyền không cân bằng Trạm thứ cấp có thể khởi ñộng ñể phát mà không cần lệnh của trạm
sơ cấp Nó có thể trả lời mà không cần phải nhận ñược một khung với bit P =1 Tuy nhiên,
khi nó nhận ñược một khung với bit P =1 thì khung trả lời phải có bit F =1 Trong trường
hợp này F=1 không có nghĩa là khung cuối cùng của trạm thứ cấp
- Chế ñộ không kết nối bất ñồng bộ (Asynchronous Disconnect Mode - ADM) : ADM
tương tự như DM ngoại trừ một ñiểm là trạm thứ cấp có thể khởi ñộng chế ñộ DM hay RIM
bất cứ lúc nào
6.3 KHẢO SÁT VÀI IC LSI TRUYỀN ÐỒNG BỘ :
Chúng ta khảo sát dưới ñây hai IC tiêu biểu
- USART 8251A của Intel
- SSDA 6852 của Motorola
Trang 6
6.3.1 USART 8251A của Intel
6.3.2 SSDA 6852 của Morola
6.3.1 USART 8251A của Intel :
Baíng 6.3 Từ Control và command
EH (Enter hunt mode)
0 = ngã ra
Reset nội
IR (Internal Reset)
1 = Reset 8251A
Là IC thu phát ñồng bộ và bất ñồng bộ Trong chương 4 ta ñã khảo sát IC này trong chế ñộ bất ñồng bộ, bây giờ chúng ta tìm hiểu thêm một số tính chất của IC trong chế ñộ ñồng bộ Vận hành ở chế ñộ ñồng bộ 8251A có vận tốc truyền lên tới 64 kbps
Chi tiết các thanh ghi ñiều khiển, lệnh và trạng thái cho ở bảng 6.3 và 6.4
Trang 7Ðể IC hoạt ñộng ở chế ñộ ñồng bộ bít D0 và D1 trong thanh ghi ñiều khiển = 00, các
bít D2, D3, D4, D5 như trong phần bất ñồng bộ, bít D6 cho phép chọn thực hiện ñồng bộ từ
bên trong hay bên ngoài và bít D7 cho phép chọn 1 hay 2 từ SYNC
- Chân SYN/BREAK của IC trong chế ñộ ñồng bộ có thể là ngã ra hoặc ngã vào và
tùy thuộc vào từ ñiều khiển trong chương trình Khi thực hiện chế ñộ ñồng bộ bên trong thì
chân này là ngã ra, ở mức thấp khi ñược reset và lên cao ñể chỉ rằng máy thu ñã nhận ñược
từ SYNC Khi máy thu thực hiện tác vụ ñọc trạng thái thì chân này tự ñộng reset Khi thực
hiện chế ñộ ñồng bộ từ bên ngoài thì chân này là ngã vào, tín hiệu dương ñến chân này báo
8251A bắt ñầu nhận dữ liệu
Bảng 6.4 8251A Status Register
D7 Data set ready
D4 Overrun error OE 1 = Overrun error
D3 Parity error PE 1 = Parity error
D2 Trans reg Empty
Tx Empty
1 = Empty
0 = Busy
D1 Receiver ready RxD 1 = Ready with new char
D0 Trans Ready TxD 1 = Ready for next char
Ghi chú: - TxRDY có nghĩa khác với chân TxRDY Chân TxRDY phụ thuộc trạng thái
chân
và bit TxEN
- Bit TxRDY lên 1 khi thanh ghi ñệm phát trống
- 82251A ở chế ñộ phát ñồng bộ
8251A bắt ñầu phát dữ liệu ngay sau khi CPU nạp từ SYNC cho ñến khi không còn
tín hiệu ñể phát, thanh ghi ñệm phát trống mà CPU không nạp ký tự kế tiếp thì 8251A tự
ñộng thêm từ SYNC vào và phát ñi
- 8251A ở chế ñộ thu ñồng bộ
- Khi sự ñồng bộ ñược thực hiện từ bên trong, lệnh ENTER HUNT phải ñược lập
trình trong từ lệnh ñầu tiên, việc này khiến 8251A dò từ SYNC trong dòng dữ liệu ñến, sau
khi dò ra USART chấm dứt chế ñộ HUNT và máy thu trong tình trạng ñồng bộ hóa, chân
SYNDET lên cao ñể báo cho µP biết
- Khi sự ñồng bộ ñược thưc hiện từ bên ngoài, xung ñồng hồ dời bít của máy thu
ñược cấp vào chân Xung này thường ñược cấp từ modem và phải ñồng bộ với dòng dữ
liệu thu ñược
Ở chế ñộ ñồng bộ, 8251A làm việc với một tần số cố ñịnh của xung ñồng hồ (chứ
không ñược chia như ở chế ñộ bất ñồng bộ) Tần số xung này phải phù hợp với vận tốc
truyền bít
Trang 8- Khởi ñộng 8251A Tương tự như ở chế ñộ bất ñồng bộ, ngoại trừ ký tự SYNC phải ñươc lập trình như
Chân C/ ở mức cao trong 3 lần ghi
Byte ñã ghi giữa từ chọn mode và từ lệnh (command) ñã chốt vào USART là mã ký tự
ñược set = 1 (cho phép phát)
- Chờ bit TxRDY ñược set hay chân TxRDY lên cao
- Ghi ký tự kế tiếp vào thanh ghi ñệm phát
Khi truyền xong ký tự cuối cùng của khối, chân TxE (trans empty) sẽ ở High và bit
TxEn ñược set, USART tự ñộng phát từ SYNC trong suốt thời gian nghỉ
Các bit ñược dời ra cùng lúc với cạnh xuống của tín
- Thu một ký tự
Ðể thu một ký tự ở chế ñộ ñồng bộ cần thực hiện các bước:
- Ghi từ ENTER HUNT như là một phần của lệnh ñầu tiên vào thanh ghi từ lệnh
- Chờ chân SYNDET lên cao
- Chờ chân RxRDY lên cao hay bít trạng thái tương ứng ñược set (D1 thanh ghi trạng
thái = 1)
- Ðọc ký tự từ thanh ghi ñệm thu
- Ðọc trạng thái lỗi từ thanh ghi trạng thái
Những bít lỗi của thanh ghi trạng thái ñược reset nhờ từ lệnh có bít ER ñược set = 1
(D4 = 1) Các bít dữ liệu ñược dời vào cùng lúc với cạnh lên của xung ñồng hồ thu RxC
- 8251A giao tiếp với modem
(H 6.9) là một mẫu giao tiếp giữa 8251A và modem, chuẩn giao tiếp RS-449 ñược sử
dụng Xung ñồng hồ thu phát ñược cấp từ modem
Trang 9
(H 6.9) 6.3.2 SSDA 6852 của Morola :
6852 của Motorola là IC ñiều hợp ñồng bộ nối tiếp (Synchronous Serial Data Adaptor, SSDA) loại NMOS 24 chân ñược chế tạo ñể giao tiếp với họ vi xử lý 6800 của Motorola trong chế ñộ ñồng bộ (H 6.10) là sơ ñồ khối của 6852
REGISTER
11→ RS 13→
Trang 10STATUS REGISTER
TUF SM/
TxCLK RxCLK
8 23 24 5↓ 4 3
(H 6.10)
Ý nghĩa các chân:
- , RS : Chip select, Register select -R / : Read / Write
- E : Data I/O enable & Clocking - : Interrupt Request
- : Reset -D7 – D0 : Data bus I/O
- RxCLK, TxCLK : Receive Clock, Transmitter Clock
- : Clear to send - : Carrier detect
- SM/ : Sync match/Data term ready: Ðiều hợp ñồng bộ/DTE sẳn sàng
- TUF : Trans underflow - Vcc & Vss : Power & Ground
-TxD,RxD : Transmit Data, Receive Data
Là IC chỉ có chức năng thu phát ñồng bộ, 6852 có một số chi tiết không giống như
8251A Ðặc biệt nó có bộ ñệm thu phát 3 byte hoạt ñộng theo kiểu vào trước ra trước (First
In, First Out, FIFO) Sử dụng bộ ñệm này 6852 có thể vận hành theo chế ñộ byte kép
(Double-byte) nghĩa là CPU có thể ñọc hoặc ghi ñồng thời 2 ký tự mà không phải ñợi
Việc chọn chế ñộ vận hành và ñiều khiển ở SSDA ñều thông qua µP bằng cách ghi
vào 3 thanh ghi ñiều khiển Các trạng thái lỗi và bắt tay ñược ñọc từ thanh ghi trạng thái Vị
trí bít của các thanh ghi cho trong bảng 6.5 và 6.6
Bảng 6.5 Các từ trong thanh ghi ñiều khiển của 6852
AC2
00: Chọn CR2 01: Chọn CR3 10: T G mã Sync bit 6
Không sử dụng
Phát từ Sync khi underflow
Tx Sync
1 = Phát từ Sync
0 = Phát bit 1 khi underflow
AC1
11:Chọn TxFIFO Reg (khi RS=1và R/
=0 )
selector WS3
000-6 + parity chẵn 001-6 + parity lẻ 010-7 bits
Cho phép ngắt thu RIE
1: Chân tác ñộng
Trang 11bit 4 WS2 011-8 bits
100-7 + parity chẵn 101-7 + parity lẻ
Cho phép ngắt phát TIE
1: Chân tác ñộng
bit 3 Xóa cờ
CTUF
1: Xóa TUF
Bit ñiều khiển ngoại vi
PC2
00: SM/ = 1 10: SM/ = 0 01:SM/ = xung
Reset phát TxRS
1= Reset phát
PC1
ñồng bộ 11-SM/ = 0 Vô hiệu hóa xung ñồng
bộ
Reset thu RxRS
1= Reset thu
Control Reg.3
CR3)
Control Register 2 (CR2) Control Reg.1(CR1)
Ðối với µP 6852 chỉ xuất hiện bằng hai cách ñịnh ñịa chỉ (chân RS ở High và CS ở Low-
Thường CS ñược nối với ñường ñịa chỉ A0) Từ sơ ñồ khối ta thấy có 7 thanh ghi trong 6852
có thể ñược µP truy xuất
Ngoại trừ thanh ghi ñiều khiển 1, tất cả các thanh ghi khác ñều chỉ có thể ñọc hoặc chỉ
có thể ghi tùy chức năng
Trạng thái của ñường R/ ñược dùng ñể chọn nhóm thanh ghi chỉ ñọc hay chỉ ghi
Từ bảng 6.5 ta thấy 2 bit có trọng số lớn nhất trong thanh ghi ñiều khiển 1 ñược dùng
ñể ñịnh ñịa chỉ các thanh ghi khác Việc ñịnh ñịa chỉ có thể tóm tắt như sau:
RS R/ b7 b6
Trang 120 1
0 0
1 1
1 0
1 0
1 0
1 0
x x
x x
x x
0 0
0 1
1 0
1 1
Thanh ghi trạng thái Thanh ghi ÐK CR1 Thanh ghi Rx FIFO Thanh ghi ÐK CR2 Thanh ghi ÐK CR3 Thanh ghi mã SYNC Thanh ghi Tx FIFO Duyệt qua các bít trong thanh ghi trạng thái và ñiều 13 bit 7 Yêu cầu ngắt IRQ 1 = Chân tác ñộng bit 6 Parity error PE 1 = Có lỗi parity Reset khi ñọc RxFIFO or ghi vào CR1 với RxRS = 1 bit 5 Receiver Overrun Rx OVRN 1 = Có lỗi tràn Reset khi ñọc Status Reg và RxFIFO hay ghi vào CR1 với RxRS=1
bit
4
Transmitter
Underflow
TUF
1= Có lỗi Underflow Reset khi ghi vào CR3 với CTUF và/hoặc TxRS = 1
bit
3
Clear to send 1= từ lần xóa cuối cùng
Reset khi ghi vào CR3 với và/hoặc TxRS = 1 bit
2
Carrier Detect 1 = từ lần xóa cuối cùng
Reset khi ñọc Status Reg và RxFIFO hay ghi vào CR1 với RxRS=1
bit
1
Transmitter data
register available
TDRA
1= Có hiệu lực Reset khi ghi vào TxFIFO
bit
0
Receiver data
available
RDA
1 = Có hiệu lực Reset khi ảo RxFIFO
- Khởi ñộng 6852
Khởi ñộng 6852 bao gồm các bước sau :
Trang 13- Reset chip bằng cách ghi từ ñiều khiển vào thanh ghi CR1 và xác ñịnh ñịa chỉ thanh ghi CR3
- Ghi từ ñiều khiển mong muốn vào thanh ghi CR3 (chọn số từ SYN và chế ñộ ñồng bộ)
- Ghi từ ñiều khiển vào thanh ghi CR1 ñể duy trì ñiều kiện reset và xác ñịnh ñịa chỉ thanh ghi CR2
- Ghi từ ñiều khiển mong muốn vào thanh ghi CR2
- Ghi từ ñiều khiển vào thanh ghi CR1 ñể duy trì ñiều kiện reset và truy xuất thanh ghi
mã ñồng bộ kế tiếp
- Ghi mã mong muốn vào thanh ghi mã ñồng bộ
- Ghi từ ñiều khiển mong muốn vào thanh ghi CR1 (bao gồm việc cho phép thu và (hoặc) phát)
- Phát một ký tự
- phải ở mức thấp và bit TxRS phải ñược xóa
- Chờ bit TDRA trong thanh ghi trạng thái (Trans Data Register Available) ñược set -Viết mã ký tự phát vào bộ ñệm TxFIFO
Chu trình ñược lặp lại cho tới khi cả khối dữ liệu ñược phát Nếu CPU không cung cấp Data ñủ nhanh ñể máy phát phát, ta nói máy phát ở tình trạng underflow và bít TUF lên cao, lúc ñó SSDA tự ñộng thêm từ SYNC vào ñể phát ñi Bít TUF là một cờ ñược reset bởi bít b3=1 trong CR3
Các bít ñược dời ra ngoài khi có cạnh xuống của xung ñồng hồ tại ngã vào TxCLK
- Thu một ký tự
Ðể thu một ký tự ngã vào phải ở LOW và bít RxRS phải ñược xóa Các bít tới máy thu ñược so sánh với mã SYNC trong thanh ghi mã ñồng bộ ñến khi có sự tương ứng (nhận dạng từ SYNC)
- Chờ cho tới khi RDA ñược set
- Ðọc trạng thái lỗi trong thanh ghi trạng thái
- Ðọc mã ký tự từ bộ ñệm RxFIFO
Các bít dữ liệu ñược lấy mẫu ở cạnh lên của xung clock thu tại chân RxCLK
6.4 KIỂM TRA HỆ THỐNG THÔNG TIN
6.4.1 Kỹ thuật tương tự - Phép ño tỷ số PAR
6.4.2 Phép ño biến dạng dùng biểu ñồ mắt