Một số IC 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 USART 8251A của Intel Bảng 6.3 Từ Control và command D 7 ...
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
USART 8251A của Intel
Bảng 6.3 Từ Control và command
D7 | Từ SYN đơnSCS (Single character SYN) | 1 = Đơn0 = Kép | Vào chế độ tìmEH (Enter hunt mode) | 1 = Cho phép tìm từ SYN |
D6 | Dò từ SYN bên ngoàiESD (External SYN Detect) | 1=Chân SYNDET là ngã vào0 = ngã ra | Reset nộiIR (Internal Reset) | 1 = Reset 8251A |
D5 | Chọn KT chẵnEP (Even parity Enable) | 1 = Chẵn0 = lẻ | Yêu cầu phátRTS | 1 = Chân RST¯ size 12{ {overline { ital "RST"}} } {} thấp0 = cao |
D4 | Cho phép KT chẵn lẻPEN (Parity Enable) | 1= Có KT chẵn lẻ0 = Không | Error resetER | 1 = Reset cờ lỗiPE, OE, FE to 0 |
D3 | Chọn chiều dài ký tựL1 | 00 = 5 bit01 = 6 bit | Phát từ break SBRK(Send Break Ch.) | 1 = Chân TxD thấp0 = Chân TxD cao |
D2 | L0 | 10 = 7 bit11 = 8 bit | Cho phép thuRxE | 1 = Cho phép0 = Không |
D1 | Chọn hệ số chia CKB1 | D1D000= Truyền Đ. bộ01 = :1 | DTE sẵn sàngDTR | 1 = Chân DTR thấp0 = cao |
D0 | B0 | 10 = :16 11 = : 64 | Cho phép phátTxE | 1 = Cho phép0 = 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ộ bit D0 và D1 trong thanh ghi điều khiển = 00, các bit D2, D3, D4, D5 như trong phần bất đồng bộ, bit D6 cho phép chọn thực hiện đồng bộ từ bên trong hay bên ngoài và bit 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 readyDSR | 1 = DSR pin is low0 = high |
D6 | Sync. char. detectSYNDET | 1 = Sync. char. detect(Synchronous only) |
D5 | Framing errorFE | 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. EmptyTx Empty | 1 = Empty0 = 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 CTS ¯ size 12{ {overline { ital "CTS"}} } {} 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 bit của máy thu được cấp vào chân RxC¯ size 12{ {overline { ital "RxC"}} } {}. 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 bit.
- 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/ D¯ size 12{ {overline {D}} } {} ở 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 CTS¯ size 12{ {overline { ital "CTS"}} } {} 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 TxC¯ size 12{ {overline { ital "TxC"}} } {}.
- 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 bit 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 bit lỗi của thanh ghi trạng thái được reset nhờ từ lệnh có bit ER được set = 1 (D4 = 1). Các bit 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)
SSDA 6852 của Motorola
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
(H 6.10)
Ý nghĩa các chân
- CS¯ size 12{ {overline { ital "CS"}} } {}, RS : Chip select, Register select - R/ W¯ size 12{ {overline {W}} } {} : Read/Write
- E : Data I/O enable & Clocking - IRC¯ size 12{ {overline {"IRC"}} } {} : Interrupt Request
- RST size 12{ ital "RST"} {} : Reset - D7 - D0 : Data bus I/O
- RxCLK, TxCLK : Receive Clock, Transmitter Clock
- CTS¯ size 12{ {overline { ital "CTS"}} } {} : Clear to send - CT¯ size 12{ {overline { ital "CT"}} } {} : Carrier detect
- SM/ DTR¯ size 12{ {overline { ital "DTR"}} } {} : 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í bit 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, CTS¯ size 12{ {overline { ital "CTS"}} } {}, CD¯ size 12{ {overline { ital "CD"}} } {} | Bit địa chỉAC2 | 00: Chọn CR201: Chọn CR310: T G mã Sync | ||
bit 6 | Không | sử dụng | Phát từ Sync khi underflowTx Sync | 1 = Phát từ Sync0 = Phát bit 1 khi underflow | AC1 | 11: Chọn TxFIFO Reg. (khi RS=1và R/ W¯ size 12{ {overline {W}} } {}=0 ) |
bit 5 | Word length selectorWS3 | 000-6 + parity chẵn001-6 + parity lẻ010-7 bits | Cho phép ngắt thu RIE | 1: Chân IRQ¯ size 12{ {overline {"IRQ"}} } {} tác động | ||
bit 4 | WS2 | 011-8 bits100-7 + parity chẵn101-7 + parity lẻ | Cho phép ngắt phát TIE | 1: Chân IRQ¯ size 12{ {overline {"IRQ"}} } {} tác động | ||
bit 3 | Xóa cờ CTUF | 1: Xóa TUF | WS1 | 110-8 + parity chẵn111-8 + parity lẻ | CLR sync | 1: Xóa đồng bộ |
bit 2 | CLR CTS¯ size 12{ {overline {"CTS"}} } {} | 1: Clear CTS¯ size 12{ {overline {"CTS"}} } {} | Chọn phát 1 hay 2 byte | 1: 1 byte data I/O0: 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. select1 / 2 sync | 1=1 từ sync 0=2 từ sync | Bit điều khiển ngoại viPC2 | 00: SM/ DTR¯ size 12{ {overline {"DTR"}} } {} = 110: SM/ DTR¯ size 12{ {overline {"DTR"}} } {} = 001: SM/ DTR¯ size 12{ {overline {"DTR"}} } {} = xung | Reset phátTxRS | 1= Reset phát |
bit 0 | Chọn Sync trong hay ngoàiE/I sync | 1=Ngoài0=Trong | PC1 | đồng bộ11-SM/ DTR¯ size 12{ {overline {"DTR"}} } {} = 0 Vô hiệu hóa xung đồng bộ | Reset thuRxRS | 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/ W¯ size 12{ {overline {W}} } {} đượ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/ W¯ size 12{ {overline {W}} } {} | b7 b6 | |
0 10 01 11 01 01 01 0 | x xx xx x0 00 11 01 1 | Thanh ghi trạng tháiThanh ghi ĐK CR1Thanh ghi Rx FIFO Thanh ghi ĐK CR2Thanh ghi ĐK CR3Thanh ghi mã SYNCThanh ghi Tx FIFO |
Duyệt qua các bit trong thanh ghi trạng thái và điều khiển trong bảng 6.5 và 6.6 ta thấy có nhiều điểm tương đồng với 8251A.
Mỗi khi máy thu dò ra từ SYNC trong dòng dữ liệu đến, chân SM xuất hiện xung có chiều dài 1 bit ( giống như chân SYNDET của 8251A)
Bảng 6.6 6852 Status Register Word bits (SR)
bit 7 | Yêu cầu ngắtIRQ | 1 = Chân IRQ¯ size 12{ {overline {"IRQ"}} } {} tác động |
bit 6 | Parity errorPE | 1 = Có lỗi parityReset khi đọc RxFIFO or ghi vào CR1 với RxRS = 1 |
bit 5 | Receiver OverrunRx OVRN | 1 = Có lỗi trànReset khi đọc Status Reg. và RxFIFO hay ghi vào CR1 với RxRS=1 |
bit 4 | Transmitter UnderflowTUF | 1= Có lỗi Underflow Reset khi ghi vào CR3 với CTUF và/hoặc TxRS = 1 |
bit 3 | Clear to send CTS¯ size 12{ {overline {"CTS"}} } {} | 1= CTS¯ size 12{ {overline {"CTS"}} } {}↑ size 12{ uparrow } {} từ lần xóa cuối cùngReset khi ghi vào CR3 với CTS¯ size 12{ {overline {"CTS"}} } {} và/hoặc TxRS = 1 |
bit 2 | Carrier Detect CD¯ size 12{ {overline {"CD"}} } {} | 1 = CD¯ size 12{ {overline {"CD"}} } {}↑ size 12{ uparrow } {} từ lần xóa cuối cùngReset 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ựcReset khi ghi vào TxFIFO |
bit 0 | Receiver data availableRDA | 1 = Có hiệu lựcReset khi đọc 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ự
- CTS¯ size 12{ {overline {"CTS"}} } {} 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à bit TUF lên cao, lúc đó SSDA tự động thêm từ SYNC vào để phát đi. Bit TUF là một cờ được reset bởi bit b3=1 trong CR3
Các bit đượ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 CD¯ size 12{ {overline {"CD"}} } {} phải ở LOW và bit RxRS phải được xóa. Các bit 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 bit dữ liệu được lấy mẫu ở cạnh lên của xung clock thu tại chân RxCLK.
Một hệ thống thông tin trước khi đưa vào vận hành cũng như trong quá trình sử dụng luôn cần được kiểm tra thường xuyên để bảo đảm tính chính xác và độ tin cậy.
- Kiểm tra tương tự thường được thực hiện đối với một hệ thống chuẩn bị đưa vào sử dụng
- Kiểm tra số thường được tiến hành thường xuyên để đánh giá chất luợng của hệ thống mà không cần phải ngắt hệ thống trong một thời gian dài
Kỹ thuật tương tự - Phép đo tỷ số PAR
Tín hiệu trên một đường truyền thường bị biến dạng do hai nguyên nhân: độ suy giảm biên độ theo tần số và sự biến dạng do trễ pha. Việc đo đạc hai đại lượng này rất tốn kém thời gian và được thực hiện trong suốt thời gian nghiên cứu hệ thống, đây không phải là một công việc thường ngày.
Phép đo tỷ số PAR là một phương pháp thử nhanh và cho phép ta đánh giá được hệ thống. Đây là phép đo tỷ số trị đỉnh và trị trung bình của tín hiệu nhận được (Peak to average Ratio)
Kỹ thuật PAR dùng một máy phát và một máy thu nối nhau qua hệ thống truyền trên băng tần âm thanh. Máy phát phát tín hiệu để kiểm tra là một chuỗi xung, máy thu nhận tín hiệu xung này, sự suy giảm biên độ và biến dạng pha trong hệ thống làm tiêu hao năng lượng của tín hiệu và do đó làm giảm tỷ số giá trị đỉnh EPK trên trị trung bình của tín hiệu chỉnh lưu toàn kỳ EFWA (Full Wave Average). Tỷ số này là giá trị PAR
% PAR=(2EPKEPWA−1)∗100 size 12{ ital "PA"R= ( { {2E rSub { size 8{ ital "PK"} } } over {E rSub { size 8{P"WA"} } } } - 1 ) *"100"} {}
Nếu tín hiệu hoàn toàn không biến dạng, tỷ số này là 100%
Nếu có biến dạng với trị số chuẩn hóa là 0,75 thì giá trị PAR là 50%. Đây là giá trị chấp nhận được với hệ thống có vận tốc truyền lên tới 2400 bps. Giá trị PAR nhạy đối với biến dạng do suy giảm biên độ, do trễ pha, do nhiễu nền cao, do hệ thống không tuyến tính và các họa tần của tín hiệu . . . ..
Phép đo biến dạng dùng biểu đồ mắt
Một phương pháp đo biến dạng rất hữu hiệu trong hệ thống truyền dữ liệu là dùng biểu đồ mắt (Eye pattern).
- Biểu đồ mắt :
Dùng một tín hiệu xung clock có giá trị br (tức tần số) xác định, dùng kích khởi mạch quét ngang một dao động nghiệm và tín hiệu số cần kiểm tra là các tín hiệu 1 , 0 thay đổi một cách tuần tự được đưa vào bản lệch dọc của dao động nghiệm. Một biểu đồ mắt có dạng như (H 6.11) xuất hiện trên màn ảnh dao động nghiệm
(a) (H 6.11) (b)
Sự hình thành biểu đồ mắt có thể hiểu là sự chồng chất của các tín hiệu 1, 0 thay đổi liên tục tạo ra. (H 6.12) minh họa sự hình thành này
(H 6.12)
Nếu tín hiệu xung vào dao động nghiệm gần như lý tưởng thì biểu đồ mắt có dạng gần giống như hình chữ nhật, ta nói biểu đồ mắt hoàn toàn mở (H 6.11.a)
Trong thực tế biến dạng không thể nào tránh khỏi hoàn toàn và biểu đồ mắt đóng lại (H 6.11.b). Giao điểm của các biến đổi từ 1 xuống 0 và ngược lại được gọi là giao điểm 1/0. Sự thay đổi theo chiều ngang của giao điểm 1/0 là sự biến động (jitter). (H 6.13) cho thấy các giá trị biến động khác nhau của biểu đồ mắt. (H 6.13.a) là trường hợp không có biến động, (H 6.13.b) biến động khoảng 5%, (H 6.13.c) khoảng 10%, (H 6.13.d) khoảng 20%, (H 6.13.e) khoảng 50% và (H 6.13.f) > 50%. Sự biến động càng lớn biểu đồ mắt càng khép lại, vậy kích thước của vòng mở tại trung tâm biểu đồ mắt cho ta chất lượng của hệ thống.
(H 6.13)
Việc đánh giá chất lượng tín hiệu bằng biểu đồ mắt chỉ cho kết quả tin cậy được khi :
- Tín hiêụ 1, 0 tạo bởi mạch phải đối xứng.
- Đường dây phải điều hợp tổng trở để tránh sóng phản xạ.
- Thời gian trễ của tín hiệu khi chuyển từ mức 0 lên 1 hay ngược lại phải bằng nhau.
Nếu một trong các điều kiện trên không thỏa thì chất lượng tín hiệu sút giảm và việc đánh giá không còn chính xác.