ôn tập kiểm tra trắc nghiệm, môn Kỹ thuật truyền số liệu (tHung)
nguồn: ghi chú _2.md tới _9.md và sách tailieu-sach-tHung/ky-thuat-truyen-so-lieu.pdf
mục có ghi '[chưa chắc]' là tôi tự suy ra hoặc đọc từ hình mờ, chưa được thầy xác nhận, đi thi thì ưu tiên lời thầy
1 tổng quan (_2.md)
điện toán đám mây chương 1
- đặc điểm: dùng chung, cung cấp/thu hồi tài nguyên, tính chi phí theo lượng sử dụng (xài nhiều trả nhiều)
- trung tâm dữ liệu IDC của VNPT (Q7 miền Nam, miền Bắc cũng có), giải nhiệt bằng nước
| Dịch vụ | Ý nghĩa theo ghi chú lớp |
|---|
| IaaS | cho thuê hạ tầng, khách hàng không quản lý phần cứng, chỉ sử dụng |
| PaaS | cung cấp môi trường phát triển phần mềm hoàn chỉnh |
| SaaS | dùng phần mềm có sẵn, ví dụ 1 máy tính desktop trên đám mây |
3 hệ thống thông tin
| Hệ thống | Tín hiệu |
|---|
| analog communication | liên tục |
| digital communication | rời rạc |
| data communication | dữ liệu số |
AF, RF, điều chế
- AF (audio frequency, âm tần): vài Hz tới 20 kHz, tai người nghe được; trên 20 kHz là siêu âm
- RF (radio frequency, cao tần): tần số cao hơn AF nhiều, AF muốn đi xa phải nhờ RF mang đi
- công thức chung A * sin(ωt + φ)
| Thành phần thay đổi | Kiểu điều chế |
|---|
| A | AM, điều biên |
| ω | FM, điều tần |
| φ | PM, điều pha |
- T = 1/f, f càng cao thì chu kỳ T càng ngắn nên đường sin RF 'khít' hơn AF
hệ thống thông tin số, PCM
- bên phát: LPF (lọc thông thấp) -> sampler (lấy mẫu) -> quantizer (lượng tử hoá) -> PCM encoder -> par/ser conv
- bên thu: ser/par conv -> PCM decoder
- PCM = pulse code modulation
- bước lượng tử e = (Vmax - Vmin) / (2ⁿ - 1), n là số bit biểu diễn nhị phân
- par/ser conv để đổi n dây song song thành 1 đường nối tiếp, tăng tính bảo mật
2 truyền dữ liệu cơ bản (_3.md)
kiểu truyền theo chiều
| Kiểu | Chiều truyền | Ví dụ |
|---|
| simplex | 1 chiều, chỉ phát | đài phát thanh |
| half duplex | 2 chiều, không đồng thời | bộ đàm |
| full duplex | 2 chiều, đồng thời | điện thoại |
song song và nối tiếp
- song song: 1 nhịp clock đi hết 8 bit trên 8 dây, Tx Reg -> Rx Reg, dùng cự ly ngắn (máy tính tới máy in, cáp DB25, tín hiệu STROBE và ACK)
- nối tiếp: Tx shift Reg -> Rx shift Reg, mỗi nhịp dịch 1 bit, chỉ cần 1 dây, thực tế hay dùng
- DB25 chọn vì máy in cần khoảng 16 tới 25 dây
đồng bộ và bất đồng bộ nối tiếp
- đồng bộ: có dây clock chung giữa 2 bên
- bất đồng bộ: bỏ dây clock (mỗi bên có Tx clock/Rx clock riêng), dùng start bit = 0 và stop bit = 1
- chống nhiễu start bit giả: đợi tới nửa thời gian bit, nếu vẫn là 0 thì mới là start bit thật (nhiễu chỉ là xung ngắn)
parity
- parity chẵn (even): thêm bit để tổng số bit 1 thành chẵn
- parity lẻ (odd): thêm bit để tổng số bit 1 thành lẻ
- ví dụ 0110101 có 4 bit 1 nên EP = 0, OP = 1; 0111101 có 5 bit 1 nên EP = 1, OP = 0
- parity điền vào lúc phát, nhiễu xảy ra lúc truyền/nhận
- XOR: 2 bit giống nhau ra 0, khác nhau ra 1
mạng và null modem
- MT - modem - PSTN - modem - MT; modem = modulation + demodulation; PSTN là mạng điện thoại analog
- null modem nối trực tiếp DTE-DTE, chân 2 nối chéo chân 3 (TxD với RxD), cáp thực tế không quá khoảng 15 m
- DTE (data terminal equipment): thiết bị đầu cuối dữ liệu, ví dụ máy tính
- DCE (data communication/circuit equipment): thiết bị truyền tin, ví dụ modem
- GND là đất (mass)
3 UART 8250 (_4.md)
- UART = universal asynchronous receiver transmitter, bộ thu phát bất đồng bộ đa năng, là 1 loại cổng COM
- chân: CS (chip select), ADS (address strobe, chốt địa chỉ), MR (master reset), INTR (interrupt), A0 A1 A2 (chọn thanh ghi), XTAL thạch anh 1.8432 MHz, BaudOUT, RCLK (receiver clock)
6 tín hiệu bắt tay (handshake)
| Tín hiệu | Viết đầy đủ | Nghĩa |
|---|
| DTR | Data Terminal Ready | máy tính sẵn sàng |
| DSR | Data Set Ready | modem sẵn sàng |
| RTS | Request To Send | yêu cầu truyền dữ liệu |
| CTS | Clear To Send | đồng ý truyền dữ liệu |
| CD | Carrier Detect | phát hiện sóng mang |
| RI | Ring Indicator | chỉ thị chuông |
- mẹo nhớ 'biệt thự': có người bấm chuông (RI), mở lỗ nhìn (CD), người quen thì bắt tay hỏi han rồi nói chuyện
thanh ghi 8250
| Thanh ghi | Viết đầy đủ | Nghĩa | Địa chỉ COM1 |
|---|
| THR | transmitter holding register | thanh ghi đệm truyền | 3F8 |
| RBR | receiver buffer register | thanh ghi đệm nhận | 3F8 |
| TSR | transmitter shift register | thanh ghi dịch phát | |
| RSR | receiver shift register | thanh ghi dịch thu | |
| IER | interrupt enable register | cho phép ngắt quãng | 3F9 [chưa chắc] |
| IIR | interrupt identification register | nhận dạng ngắt quãng | 3FA |
| LCR | line control register | điều khiển đường dây | 3FB [chưa chắc] |
| MCR | modem control register | điều khiển modem | 3FC |
| LSR | line status register | trạng thái đường dây | 3FD |
| MSR | modem status register | trạng thái modem | 3FE |
- MSR bit 0 là DCTS, delta CTS, 'delta' là lượng thay đổi
- LCR bit stop: 0 là 1 stop bit; 1 là 1,5 stop bit khi khung 5 bit, 2 stop bit khi khung 6, 7, 8 bit
số chia (divisor)
- số chia = 1.8432 MHz / (16 * tốc độ baud)
| Baud | Số chia thập phân | Hexa |
|---|
| 1200 | 96 | 0060H |
| 2400 | 48 | 0030H |
| 4800 | 24 | 0018H |
| 9600 | 12 | 000CH |
- bài thầy cho là 4800 baud ra 0018H; các dòng khác tôi tự tính theo cùng công thức
4 chuẩn giao tiếp và modem (_5.md, _7.md)
- cổng AND: y = 0 thì ra luôn 0 (disabled, chân cấm), y = 1 thì ra theo x (enabled)
- mức điện theo ghi chú lớp: TTL mức 0 là 0 tới 2,4 V, mức 1 là 3,4 tới 5 V; RS-232C mức 0 là -12 tới -5 V, mức 1 là 5 tới 12 V
- ý nghĩa RS-232: biên độ lớn nên suy hao 7 V trên đường truyền vẫn còn đúng mức
- [chưa chắc] chuẩn RS-232 trong tài liệu chung thì ngược lại: mức 1 (mark) là điện áp âm, mức 0 là điện áp dương; nếu đề hỏi thì hỏi lại thầy hoặc theo sách
- RS-449 nhiều chân, cồng kềnh, dùng trong quân đội, tối tân hơn RS-232; các chuẩn liên quan RS-422, RS-423
- ACIA 6850: CS0 = 1, CS1 = 1, CS2 = 0 thì mạch làm việc; IRQ là interrupt request
- vòng dòng 20 mA và opto coupler là cách giao tiếp khác (hình i/260913)
ASK, FSK, PSK
| Kiểu | Viết đầy đủ | Thay đổi theo bit |
|---|
| ASK | amplitude shift keying | biên độ |
| FSK | frequency shift keying | tần số |
| PSK | phase shift keying | pha |
| Số pha PSK | Số bit mỗi pha |
|---|
| 2 | 1 |
| 4 | 2 |
| 8 | 3 |
| 16 | 4 |
- số bit = log₂(số pha)
- nhiều pha để tăng tốc độ bit; đổi lại các điểm pha sát nhau hơn nên dễ nhận nhầm, tỉ lệ lỗi tăng
- PSK 8 pha ví dụ trên lớp: 000 là 0 độ, 110 là 180 độ, 100 là 270 + 45 = 315 độ
- VCO (voltage controlled oscillator) dùng VARICAP (tụ biến dung) để điều tần
5 mạch modem (_8.md)
- op-amp: V- = V+ thì ra 0, V- > V+ thì ra âm, V- < V+ thì ra dương
- lọc thông thấp LPF RC: R nối tiếp, lấy ra trên C; lọc thông cao HPF RC: C nối tiếp, lấy ra trên R; Z꜀ = 1/(ωC)
- Hình 3.9 mạch phân nhánh thu/phát: op-amp 741 + biến áp 1:1 ra đường dây Zo, tách tín hiệu phát khỏi tín hiệu thu [chưa chắc, tôi tự phân tích]
- XR-2206 là mạch điều chế FSK: f = 1/(R_T * C_T); bit 1 dùng R_mark cho tần số cao, bit 0 dùng R_space cho tần số thấp
- LM565 (PLL) là mạch giải điều chế FSK (Hình 3.12): f₀ VCO = 1,2 / (4 * R₀ * C₀); Δf tăng thì V_A = 1, Δf giảm thì V_A = 0
6 truyền đồng bộ BISYNC (_8b.md)
- trước truyền từng ký tự, truyền đồng bộ là truyền khối/file
- khung BISYNC
| SYN | SYN | SOH | Header | STX | Text | ETX | BCC |
|---|
| Ký tự | Viết đầy đủ | Hexa |
|---|
| SOH | start of head(er) | 01H |
| STX | start of text | 02H |
| ETX | end of text | 03H |
| SYN | synchronous idle | 16H |
| ETB | end of transmission block | 17H |
- BCC = block check character, ký tự kiểm tra khối; header chứa địa chỉ máy phát và máy thu
- 1 message chia nhiều block: packet đầu có SOH + STX, các packet giữa kết thúc ETB, packet cuối kết thúc ETX
- BISYNC là đồng bộ hướng ký tự, bán song công, sau mỗi khối phải chờ ACK nên chậm
- chip USART 8251 = universal synchronous asynchronous receiver transmitter, chạy được cả đồng bộ lẫn bất đồng bộ
- ASCII 7 bit: bit 7 6 5 chọn cột, bit 4 3 2 1 chọn hàng; 2 cột đầu là ký tự điều khiển
kiểm tra lỗi 2 chiều, ví dụ KIEMTRA
- STX K I E M T R A ETX = 02H 4BH 49H 45H 4DH 54H 52H 41H 03H
- bit b7 mỗi ký tự là parity chẵn theo cột (từng ký tự)
- BCC là parity chẵn theo hàng (từng bit), thầy tính cả STX ra BCC = 4CH
- sai 1 bit thì hàng lệch + cột lệch, giao điểm là bit sai, đảo lại là sửa được 1 bit
7 SDLC (_8c.md)
- SDLC = synchronous data link control, IBM đưa ra giữa thập niên 1970
- đồng bộ hướng bit (BISYNC thì hướng ký tự)
- chỉ cần gửi ACK khi bản tin truyền xong hoặc khi đầu thu sẵn sàng
| Flag | Address | Control | Data | FCS | Flag |
|---|
| 01111110 | 1 byte | 1 byte | | 2 byte | 01111110 |
- cờ (flag) = 01111110 = 7EH
- FCS = frame check sequence, tính bằng CRC
- Control có 3 loại khung: I (information, mang dữ liệu), S (supervisory, giám sát), U (unnumbered, không đánh số)
- [chưa chắc] 2 bit thấp b1 b0 của Control: I là x0, S là 01, U là 11
8 mã đường truyền (_9.md, sách trang 55 tới 59)
| Mã | Quy tắc |
|---|
| NRZ-L | 1 là +a, 0 là -a, mức không đổi trong 1 bit |
| NRZ-S | còn gọi NRZ Invert 0, gặp 0 thì đổi mức |
| NRZ-M | còn gọi NRZ Invert 1, gặp 1 thì đổi mức |
| nhị pha L | còn gọi Manchester; 1 là cao xuống thấp giữa bit, 0 là thấp lên cao giữa bit |
| nhị pha M | luôn đổi ở đầu bit; 1 thì đổi thêm giữa bit, 0 thì không |
| nhị pha S | luôn đổi ở đầu bit; 0 thì đổi thêm giữa bit, 1 thì không |
| nhị pha vi phân | còn gọi Manchester vi phân; luôn đổi giữa bit; 0 thì đổi ở đầu bit, 1 thì không |
| Miller | 1 thì đổi giữa bit; 0 thì xét bit sau, bit sau là 0 thì đổi ở cuối bit, bit sau là 1 thì không |
| lưỡng cực (AMI) | 0 là mức 0; 1 là xen kẽ + và - |
- NRZ-S, NRZ-M là mã vi phân: xét sự chuyển mức, không cần mức tuyệt đối, đảo cực dây vẫn đúng
- nhị pha: mỗi bit có ít nhất 1, nhiều nhất 2 lần chuyển, tốc độ điều chế gấp đôi NRZ; tự đồng bộ (self clocking), không có thành phần 1 chiều
- Miller: tự đồng bộ, tốc độ điều chế và độ rộng băng nhỏ hơn NRZ và Manchester
- AMI: không có thành phần 1 chiều nhưng không tự đồng bộ; gặp chuỗi 0 dài thì mất đồng bộ, khắc phục bằng HDBn (phổ biến HDB3, thay chuỗi 0000)
- nhị pha vi phân trên lớp: dᵢ = 0 thì a'ᵢ = a'ᵢ₋₁, dᵢ = 1 thì a'ᵢ = -a'ᵢ₋₁, luôn có a''ᵢ = -a'ᵢ
9 CRC (_9.md, sách trang 60 tới 62)
- CRC = cyclic redundancy check, kiểm tra dư thừa vòng
- G(x) bậc c thì CRC dài c bit
- các bước phát
- đổi chuỗi dữ liệu ra M(x), nhân x^c được x^c * M(x) (thêm c bit 0 vào cuối)
- chia x^c * M(x) cho G(x) theo modulo 2 (cộng trừ đều là XOR), phần dư R(x) là CRC
- T(x) = x^c * M(x) + R(x), đổi ra chuỗi bit truyền = dữ liệu + CRC
- đầu thu: chia T(x) cho G(x), dư 0 thì thu đúng, dư khác 0 thì thu sai
- ví dụ sách: 110101, G(x) = x³ + 1, CRC = 011, chuỗi truyền 110101011
- bài lớp: 1001, G(x) = x³ + x² + 1, CRC = 011, chuỗi truyền 1001011
- sửa 1 bit: dịch vòng trái tới khi trọng số W (số bit 1 của phần dư) ≤ 1, XOR với phần dư, rồi dịch vòng ngược lại
10 mã Huffman
- buổi tới mới học (mã nén), học xong thì bổ sung mục này