CÁC CHUẨN GIAO TIẾP
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
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 D7 Từ SYN ủơn
SCS (Single
character SYN)
1 = Ðơn 0 = Kép
Vào chế ủộ tìm
EH (Enter hunt mode)
1 = Cho phép tìm từ SYN
D6
Dò từ SYN bên ngoài
ESD (External SYN Detect)
1=Chân SYNDET là ngã vào
0 = ngã ra
Reset nội IR (Internal Reset)
1 = Reset 8251A
D5 Chọn KT chẵn EP (Even parity Enable)
1 = Chẵn 0 = lẻ
Yêu cầu phát
RTS
1 = Chân thấp 0 = cao
D4 Cho phép KT chẵn lẻ
PEN (Parity
Enable)
1= Có KT chẵn lẻ 0 = Không
Error reset ER
1 = Reset cờ lỗi PE, OE, FE to 0
D3 Chọn chiều dài ký tự
L1
00 = 5 bit 01 = 6 bit
Phát từ break SBRK(Send Break Ch.)
1 = Chân TxD thấp 0 = Chân TxD cao
D2 L0 10 = 7 bit
11 = 8 bit
Cho phép thu
RxE
1 = Cho phép 0 = Không D1 Chọn hệ số chia CK
B1
D1D0
00= Truyền Ð. bộ 01 = :1
DTE sẵn sàng
DTR
1 = Chân DTR thấp 0 = cao
D0 B0 10 = :16
11 = : 64
Cho phép phát
TxE
1 = Cho phép 0 = Không
Mode control word bit Command
word bit
Ghi chỳ: Reset lỗi phải hoàn thành khi RxEnable và Enter hunt ủược lập trỡnh
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
éể 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
DSR
1 = DSR pin is low 0 = high
D6 Sync. char. detect SYNDET
1 = Sync. char. detect (Synchronous only) D5 Framing error
FE
1 = Framing error reset by writing ER = 1
(Synchronous only) 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.
- 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ư sau
- Reset chip: ủưa chõn RST lờn cao (Reset cứng) hoặc set bớt IR trong thanh ghi lệnh = 1 (Reset mềm)
- Ghi mã ký tự SYNC - Ghi từ lệ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ự SYNC
- Phát một ký tự
Cũng như trong chế ủộ bất ủồng bộ, chân
phải ở mức thấp và bit TxEn trong thanh ghi từ lệnh
ủượ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
hiệu .
- 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
(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.
10→ CS Tx SHIFT
REGISTER
→TxD →6 11→ RS
13→
14→
7←
R/
E Tx FIFO
9→ RST
Rx SHIFT
REGISTER
←RxD ←2
1→← Vss
12→ Vcc Rx FIFO
15→← D7
CONT. REG. 1
CONT. REG. 2
CONT. REG. 3
22→← D0
SYNC. CODE REG.
STATUS 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
bit 7 Cho phép ngắt
khi có lỗi EIE
1 = Cho phép ngắt PE, RxOvrn, TUF,
,
Bit ủịa chỉ
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 )
bit 5 Word length
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
bit 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
WS1 110-8 + parity chẵn 111-8 + parity lẻ
CLR sync 1: Xúa ủồng bộ bit 2 CLR 1: Clear Chọn phát 1
hay 2 byte
1: 1 byte data I/O 0: 2byte Data I//O
Loại bỏ từ ủồng bộ
1: Loại từ Sync từ dòng dữ liệu thu
bit 1 1or2 SYNC char.
select 1 / 2 sync
1=1 từ sync 0=2 từ sync
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
bit 0 Chọn Sync trong hay ngoài E/I sync
1=Ngoài 0=Trong
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:
Chân Thanh ghi ÐK1 Chọn thanh ghi
RS R/ b7 b6
0 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 :
- 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.