Thuc Hanh Ky Thuat Truyen So Lieu

31
THỰC HÀNH KỸ THUẬT TRUYỀN SỐ LIỆU

Transcript of Thuc Hanh Ky Thuat Truyen So Lieu

Page 1: Thuc Hanh Ky Thuat Truyen So Lieu

THỰC HÀNH KỸ THUẬT TRUYỀN SỐ LIỆU

Page 2: Thuc Hanh Ky Thuat Truyen So Lieu

Mục Lục

Chương 1: Các vấn đề trong việc truyền dữ liệu................................................................1Phần 1: Bài tập lý thuyết..................................................................................................1Phần 2: Thực hành...........................................................................................................1

Chương 2: Kỹ thuật mã hóa tín hiệu..................................................................................15Phần 1: Bài tập lý thuyết................................................................................................15Phần 2: Thực hành.........................................................................................................16

Chương 3: Các kỹ thuật truyền dữ liệu số........................................................................18Phần 1: Bài tập lý thuyết................................................................................................18Phần 2: Thực hành.........................................................................................................18

Chương 4: Điều khiển ở lớp liên kết dữ liệu.....................................................................25Phần 1: Bài Tập lý thuyết..............................................................................................25

Page 3: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Chương 1: Các vấn đề trong việc truyền dữ liệu

Mục đích:

- Nắm vững lý thuyết về việc truyền số dữ liệu

- Giới thiệu về board 89, Keil C, và Flash Magic

Yêu cầu:

- Mỗi nhóm 5 người, và điểm sẽ là điểm chung cho cả nhóm

- Phần bài tập lý thuyết sinh viên làm bài tập ở nhà, nộp bài qua email

- Phần thực hành sinh viên thực hành làm quen với board 89 và keil C ở trên lớp

- MỌI HÌNH THỨC COPY BÀI ĐỀU SẼ NHẬN ĐIỂM 0 CHO CẢ PHẦN THỰC

HÀNH

Phần 1: Bài tập lý thuyết

Bài 1. Cho nhiệt độ phòng là T=270C (=290K), và băng thông truyền B = 10MHz. Tìm mức độ nhiễu nhiệt trong băng thông B (theo decibel-Watts).

Bài 2. Phân biệt tốc độ Baud (baud rate) và tốc độ bit (bit rate). Mối quan hệ giữa chúng.

Bài 3. Giả sử phổ của kênh truyền nằm trong khoảng 3MHz và 4MHz tỉ số tín hiệu trên nhiểu là SNRdB = 24dB.a. Tìm tốc độ truyền cực đại của kênh truyền khi không có nhiễub. Tìm số mức thay đổi tín hiệu trên đường truyền này.

Bài 4. Cho biết tỉ số năng lượng tín hiệu của một bit so với năng lượng nhiễu của 1Hz (Eb/N0) là 8.4 dB. Nếu nhiệt đọ nhiễu tác động là 270C và tốc độ truyền dữ liệu là 2400bps. Tìm công suất tín hiệu nhận S.

Bài 5. Tìm khoảng cách đường ngắm lớn nhất giữa 2 anten biết chiều cao của anten thứ nhất là 100m, anten còn lại là bằng với mặt đất (0m). Nếu chiều cao anten thứ 2 là 10m và để khoảng các lớn nhất của đường ngắm là không đổi thì chiều cao của anten thứ nhất là bao nhiêu?

Phần 2: Thực hành

Bài 1. Giới thiệu Keil C và board 89a. Board 89IT

Thực hành kỹ thuật truyền số liệu 0

Page 4: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Các chức năng của board thí nghiệm BK89IT : 8 nút nhấn : nối với P3. 8 led 7 đoạn : hỗ trợ quét led, P0 fyky7cuk yl9oj-[‘ 90]cy b 9o7ofc để gửi dữ liệu và P2 để chọn led. Led ma trận 2 màu : P0 gửi dữ liệu mà đỏ, P2 gửi dữ liệu xanh, P1 để chọn cột hiển thị. Giao tiếp với bàn phím PS2. Giao tiếp COM 4 chân dùng để kết nối encoder. Cấu hình bằng switch : Switch 1 cho Port 1, 2 cho Port 3, 3 cho led ma trận và 4 cho led 7 đoạn. Cấp nguồn ngoài hoặc USB. Mạch nạp onboard.

b. Keil C và Flash MagicKeil C là chương trình hỗ trợ khá đầy đủ để người dùng soạn thảo chương trình

dành cho các vi điều khiển thuộc họ 8051. Để cài đặt bạn click vào file cài đặt và thực hiện theo hướng dẫn của file cài đặt

Flash Magic là chương trình dùng để nạp file Hex cho 89V51. Để Flash Magic có thể nhận biết được board 89, thì bạn phải cấu hình cho Flash Magic. Quá trình cấu hình như sau:

Bước 1 : Khởi động Flash Magic từ màn hình Desktop (hoặc vào Start\Program Files\Flash Magic và chọn Flash Magic), màn hình sau sẽ xuất hiện

Thực hành kỹ thuật truyền số liệu 1

Page 5: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Bước 2 : Bạn chọn Baud Rate là 9600, Device là chip tương ứng mà bạn dùng. Check chọn Verify after programming và Erase blocks used by Hex File.

Thực hành kỹ thuật truyền số liệu 2

Page 6: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Bước 3 : Chọn menu Option và chọn Advance Option, màn hình sau sẽ xuất hiện :

Bước 4 : Chọn qua tab Hardware Config và check chọn Assert DTR and RTS while COM Port open. Nhấn OK để đóng cửa số này lại.

Thực hành kỹ thuật truyền số liệu 3

Page 7: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Bước 5 : Xem cổng COM đang là cổng nào. Bạn thu nhỏ Flash Magic lại, trên màn hình Desktop, từ biểu tượng My Computer, click phải chuột và chọn Manage.

Bước 6 : Màn hình sau xuất hiện, bạn chọn Device Manager.

Thực hành kỹ thuật truyền số liệu 4

Page 8: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Bước 7 : Cắm dây cổng COM nếu bạn đang dùng USB to COM, mở rộng Ports (COM &LPT), bạn sẽ biết được tên cổng COM đang dùng (trong ví dụ này là COM 9).

Bước 9 : Kích hoạt lại Flash Magic và chọn cổng COM tương ứng.

Thực hành kỹ thuật truyền số liệu 5

Page 9: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Bài 2. Tạo một project đơn giảnBước 1 : Kích hoạt Keil uVision3, cửa sổ Keil C hiện ra.

Bước 2 : Chọn Project và chọn New uVision Project…

Thực hành kỹ thuật truyền số liệu 6

Page 10: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Bước 3 : Chọn đường dẫn và gõ tên project và khung File name, chọn Save, khung cửa số sau đây xuất hiện.

Bước 4 : Chọn chip tương ứng với board của bạn, trong board của chúng tôi sử dụng 89V51RB2. Browse tới NXP, và chọn P89V51RB2

Bước 5 : Sau khi nhấn OK, màn hình sau sẽ xuất hiện, bạn chọn No

Thực hành kỹ thuật truyền số liệu 7

Page 11: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Bước 6 : Project được tạo ra như sau:

Bước 7 : Cấu hình để tạo ra file Hex, bạn chọn menu Project, chọn Option for Target

Thực hành kỹ thuật truyền số liệu 8

Page 12: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Bước 8 : Màn hình sau xuất hiện

Thực hành kỹ thuật truyền số liệu 9

Page 13: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Bước 9 : Chọn tab Output, và click chọn Click Hex File

Bước 10 : Chép thư file REG51F.H (nếu cài mặc định sẽ nằm trong thư mục C:\Keil\C51\INC\Philips) là file define các thanh ghi của 89V51 vào cùng cấp với file project.

Bước 11 : Bạn có thể chọn và nhấn Delete Source Group1 do Keil C tự tạo ra, và tự tạo Group mới cho mình. Chọn Target, click phải chuột và chọn New Group, 1 group mới được tạo ra, đổi tên thành Main cho gợi nhớ. Trong tất cả các bài demo, group này sẽ chứa file main.c, là file chính để chạy chương trình.

Thực hành kỹ thuật truyền số liệu 10

Page 14: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Bước 11 : Tạo mới 1 file bằng cách chọn menu File rồi chọn New. Chọn tiếp menu File rồi chọn Save, khung cửa sổ sau sẽ hiện lên, bạn nhập tên file vào và nhấn Save.

Thực hành kỹ thuật truyền số liệu 11

Page 15: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Bước 12 : Click phải vào group Main, và chọn Add Files to Group Main

Bước 13 : Chỉ đường dẫn đển file main.c mà bạn vừa tạo, nhấn Add rồi nhấn tiếp Close.

Thực hành kỹ thuật truyền số liệu 12

Page 16: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Bước 14 : Click vào dấu + của Main, bạn sẽ thấy file main.c đã được thêm vào project

Thực hành kỹ thuật truyền số liệu 13

Page 17: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Chương 2: Kỹ thuật mã hóa tín hiệu

Mục đích:- Nắm vững các kỹ thuật mã hóa tín hiệu

Yêu cầu:

- Mỗi nhóm 5 người, và điểm sẽ là điểm chung cho cả nhóm

- Phần bài tập lý thuyết sinh viên làm bài tập ở nhà, nộp bài qua email

- Phần thực hành sinh viên thực hành và được chấm điểm trực tiếp trên lớp.

- MỌI HÌNH THỨC COPY BÀI ĐỀU SẼ NHẬN ĐIỂM 0 CHO CẢ PHẦN THỰC

HÀNH

Phần 1: Bài tập lý thuyết

Bài 1. Cho chuỗi tín hiệu sau:

0101 1010 0000 0000 0011 0000 1111 1010 1111 1111 0000 1010a. Lần lượt sử dụng kỹ thuật mã hóa NRZ-L, NRZ-I để mã hóa chuổi tín hiệu

trênb. Sử dụng kỹ thuật Manchester, và Differential Manchester để mã hóa chuỗi tín

hiệu trênc. Sử dụng kỹ thuật AMI, B8ZS, HDB3 để mã hóa chuổi tín hiệu trên

Bài 2. Nhận xét ưu và nhược điểm của các kỹ thuật mã hóa tín hiệu:

a. Kỹ thuật NRZ-L, NRZ-Ib. Kỹ thuật Manchester, Differential Manchesterc. Kỹ thuật AMI, B8ZS, HDB3

Bài 3. Phân biệt các phương pháp: điều biên (ASK), điều tần (FSK) và điều pha (PSK). Phương pháp QPSK và QAM?

Bài 4. Cho một tín hiệu NRZ-L qua một bộ lọc với hệ số r = 0.5 và sau đưa tần số sóng mang vào. Biết tốc độ dữ liệu là 2400bps. Tính băng thông cần thiết nếu sử dụng phương pháp ASK hoặc FSK. Với FSK giả sử 2 tần số được sử dụng là 50 kHz và 55kHz.

Bài 5. Nêu lý thuyết lấy mẫu? Phân biệt PCM và DM

Bài 6. Cho tín hiệu tương tự sau. Lần lược sử dụng các phương pháp PCM và DM để điều chế thành dữ liệu số. Với phương pháp PCM có số bit lượng tử là 3, lấy giá trị thấp (làm tròn xuống)

Thực hành kỹ thuật truyền số liệu 14

Page 18: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Phần 2: Thực hành

Bài 1. Yêu cầu hiện thực hàm decode và encode cho một trong các chuẩn sau:

- NRZ-L- NRZ-I- Manchester- Differential Manchester

a. Đặc tả bài toán: Nội dung buổi thực hành sẽ hiện thực quá trình truyền nhận tín hiệu tuần tự sử dụng các kỹ thuật mã hóa và giải mã tín hiệu NRZ-L, NRZ-I, Manchester, differential Manchester,…

b. Kết nối phần cứng: Hiện thực phần cứng bao gồm 2 board 89 (một board truyền dữ liệu và một board nhận dữ liệu).

Dữ liệu truyền nhận thông qua chân P1.3. Để kích hoạt 2 board hoạt động cần nối thêm 2 dây khác đó là: dây đất

nối giữa 2 board, và dây tín hiệu P1.2 (tín hiệu kích hoạt nhận). Các bước thực hiện việc truyền nhận giữa 2 board:

i. Nạp chương trình truyền nhận lên 2 boardii. Kết nối các dây tín hiệu

iii. Nhấn nút reset 2 board. Lúc này dữ liệu cần truyền (trên board truyền) sẽ được hiển thị lên led 7.

iv. Nhấn nút P3.7 trên board truyền để kích hoạt quá trình truyềnv. Chờ khoảng 1 phút để việc truyền dữ liệu hoàn tất. Khi việc

truyền dữ liệu hoàn tất dữ liệu nhận sẽ được hiển thị lên led 7 đoạn.

vi. Để thực hiện truyền lại, thực hiện lại từ bước i đến bước v.c. Phần mềm: Hệ thống sẽ truyền và nhận dữ liệu bao gồm 32 bit. Dữ liệu truyền

được cố định và không thể thay đổi. Trước khi truyền thì dữ liệu phải được encode theo một kỹ thuật nào đó (NRZ-L, NRZ-I, Manchester,…). Và khi nhận xong thì dữ liệu phải được decode theo đúng kỹ thuật đã mã hóa.

Chương trình truyền: Dữ liệu truyền sẽ được lưu trong biến

Thực hành kỹ thuật truyền số liệu 15

Page 19: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

i. Unsigned char TransferData[32]ii. Bit 1 sẽ tương ứng với giá trị là 0x01

iii. Bit 0 sẽ tương ứng với giá trị là 0x00 Chương trình nhận: Dữ liệu nhận sẽ được lưu trong biến

i. Unsigned char ReceivedData[32]ii. Bit 1 sẽ tương ứng với giá trị là 0x01

iii. Bit 0 sẽ tương ứng với giá trị là 0x00d. Đặc tả yêu cầu:

Project ở trên bị thiếu hàm decode của một kỹ thuật nào đó. Yêu cầu anh/chị phải hiện thực hàm đó để quá trình truyền nhận được diễn ra một cách bình thường

Các nhóm sẽ được lựa chọn một cách ngẫu nhiên các hàm để hiện viết các hàm này.

Yêu cầu anh/chị phải thay đổi trực tiếp lên dữ liệu ReceiveData[] sau khi đã nhận xong.

Hàm decode:void Decode(unsigned char ReceivedData[]){

//Add your code here}

Bài 2. Như bài tập 1, nhưng hiện thực hàm encode thay vì hàm decode

- Đặc tả yêu cầu: o Project ở trên bị thiếu hàm encode (trong project truyền) của một kỹ

thuật nào đó. Yêu cầu anh/chị phải hiện thực hàm đó để quá trình truyền nhận được diễn ra một cách bình thường

o Các nhóm sẽ được lựa chọn một cách ngẫu nhiên các hàm để hiện viết các hàm này.

o Yêu cầu anh/chị phải thay đổi trực tiếp lên dữ liệu TransferData[] trước khi dữ liệu được truyền

o Hàm encode:void Encode(unsigned char TransferData[]){

//Add your code here}

Thực hành kỹ thuật truyền số liệu 16

Page 20: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Chương 3: Các kỹ thuật truyền dữ liệu số

Mục đích:- Nắm vững các kỹ thuật truyền dữ liệu số- Nắm vững các kiến thức về truyền tuần tự

Yêu cầu:

- Mỗi nhóm 5 người, và điểm sẽ là điểm chung cho cả nhóm

- Phần bài tập lý thuyết sinh viên làm bài tập ở nhà, nộp bài qua email

- Phần thực hành sinh viên thực hành và được chấm điểm trực tiếp trên lớp.

- MỌI HÌNH THỨC COPY BÀI ĐỀU SẼ NHẬN ĐIỂM 0 CHO CẢ PHẦN THỰC

HÀNH

Phần 1: Bài tập lý thuyết

Bài 1. Phân biệt truyền dữ liệu song song và nối tiếp? Truyền dữ liệu đồng bộ và truyền dữ liệu bất đồng bộ? Phân tích ưu và nhược điểm của từng loại.

Bài 2. Hãy thêm bit parity chẵn cho những tín hiệu 7 bit sau:a. 0010110b. 1101101c. 1110001d. 1010100

Bài 3. Cho P = 110011 và M = 11100011 tìm CRCBài 4. Cho dữ liệu cần mã hóa là 10010011011 và P(x) = x4 + x + 1, tìm chuổi

dữ liệu truyền (sau khi thêm CRC).

Phần 2: Thực hành

Bài 1. Sử dụng máy đo giao động ký để đo tín hiệu từ chân P3.1 của board 89. Đọc:

a. Đặc tả: Sinh viên sẽ nhận được một file .hex để nạp lên board 89. File .hex này sẽ khác nhau đối với từng nhóm.

b. Hướng dẫn sử dụng máy đo giao động ký:

Dưới đây là hình dạng của một oscilloscope bao gồm:

Thực hành kỹ thuật truyền số liệu 17

Page 21: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Đối với oscilloscope này ta có 2 đầu đo tín hiệu tương ứng với 2 kênh input. Mỗi đầu đo gồm có một kẹp dùng để nối mass, đầu còn lại tham khảo nối mass này để đo tín hiệu hiển thị ra màn hình LCD.

Khởi động OSC và đo thử:- Cắm dây nguồn và bật nút Power ở phía trên của OSC.

Thực hành kỹ thuật truyền số liệu 18

Màn hình LCD

Các nút chức năng

Nút nguồn

Page 22: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

- Chờ cho đến khi màn hình hiện thông báo quá trình self test thành công và nhấn nút SAVE/RECALL ở mặt trước bên tay phải của OSC.

- Chú ý menu Setup đang được chọn và nhấn nút bên cạnh menu “Recall Factory”. Osc sẽ quay trở lại các thông số ban đầu của nhà sản xuất. Sau này, bất kì khi nào không hiểu Osc đang hiển thị cái gì, ta có thể lặp lại các bước trên để thiết lập lại các thông số mặc định cho Osc.

Đo test thử:

- Nối đầu dò của kênh 1 vào probe comp phía trên, đất của kênh 1 vào ground ngay phía dưới.

- Nhấn nút AUTOSET ở góc phía trên bên phải. Lúc này Osc sẽ tự động chỉnh chiều ngang, dọc, và tự động điều khiển trigger và hiển thị ra màn hình LCD dạng sóng vuông mẫu.

- Nếu muốn hiển thị hai kênh cùng lúc, nhấn CH 2 MENU để cho phép hiển thị kênh 2 và nhấn AUTOSET lại.

- Ở bước này, ta chỉ xem xét kênh 1 và các nút điều chỉnh cho kênh 1, kênh 2 cũng điều chỉnh tương tự.

Điều chỉnh kênh 1:

- Điều chỉnh vị trí hiển thị theo chiều đứng: xoay nút Cursor1 bên menu VERTICAL. Ở đây ta xoay Cursor 1 sao cho dạng sóng nằm ngay chính giữa màn hình.

Thực hành kỹ thuật truyền số liệu 19

Page 23: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

- Điều chỉnh vị trí hiển thị theo chiều ngang: xoay nút ở menu HORIZONTAL để điều chỉnh vị trí của dạng sóng hiển thị. Ở đây ta xoay cho dạng sóng nằm chính giữa màn hình.

- Điều chỉnh bước chia điện thế: nút VOLTS/DIV cho phép điều chỉnh bước chia điện thế. Xoay về bên phải sẽ làm tăng độ nhạy (làm giảm độ lớn hđt giữa hai bước chia).

- Điều chỉnh bước chia thời gian: nút SEC/DIV điều khiển bước chia thời gian. Xoay nút về bên phải sẽ làm giảm khoảng thời gian giữa hai bước

Thực hành kỹ thuật truyền số liệu 20

Page 24: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

chia.

Xem dạng sóng ở một thời điểm nào đó:

- Đôi khi ta muốn quan sát dạng sóng hiển thị tại một thời điểm nào đó, điều này được thực hiện bằng cách sử dụng nút Run/Stops nằm ở góc trên bên phải

c. Yêu câu: sử dụng máy đo giao động ký để đo tín hiệu truyền từ chân truyền tuần tự P3.1 trên board 89.

- Tốc độ truyền của tín hiệu

- Số lượng bit của một frame

- Tín hiệu được truyền

Bài 2. Hiện thực mô phỏng hoạt động truyền dữ liệu của chuẩn giao tiếp bất đồng bộ UART trên board 89 thông qua timer

a. Nguyên lý giao tiếp UART:

Uart RS232 là chuẩn giao tiếp khá phổ biến và được hỗ trợ ở hầu hết các dòng vi điều khiển vì khoảng cách xa và chi phí thấp. Dòng 8051 hỗ trợ 1 kênh giao tiếp uart.

Dữ liệu được truyền đi trên chân TX gồm 1 start bit (mức 0), data và 1 stop bit (mức 1).

Tốc độ truyền : đơn vị bit per second (bps) còn gọi là Baud (số lần thay đổi tín hiệu trong 1 giây – thường sử dụng cho modem). Đối với đường truyền thì Baud và bps là như nhau.

UART là phương thức truyền nhận bất đồng bộ. nghĩa là bên nhận và bên phát không cần phải có chung tốc độ xung clock (ví dụ : xung clock của vi điều khiển khác xung clock của máy tính) . Khi đó bên truyền muốn truyền dữ liệu sẽ gửi start bit (bit 0) để báo cho bên thu biết để bắt đầu nhận dữ liệu và khi truyền xong dữ liệu thì stop bit (bit 1) sẽ được gửi để báo cho bên thu biết kết thúc quá trình truyền.

Khi có start bit thì cả hai bên sẽ dùng chung 1 xung clock (có thể sai khác một ít) với độ rộng 1 tín hiệu (0 hoặc 1) được quy định bởi baud rate, ví dụ baud rate = 9600bps nghĩa là độ rộng của tín hiệu 0(hoặc 1) là 1/9600 = 104 ms và khi phát thì bên phát sẽ dùng baud rate chính xác (ví dụ 9600bps) còn bên thu có thể dùng baud rate sai lêch 1 ít(9800bps chẳng hạn).

Thực hành kỹ thuật truyền số liệu 21

Page 25: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Truyền bất đồng bộ sẽ truyển theo từng frame và mỗi frame có cấu trúc như sau:

Stop bit--B7--B6-- B5-- B4-- B3-- B2-- B1-- B0-- Start bit

Ngoài ra trong frame truyền có thể có thêm bit odd parity (bit lẻ) hoặc even parity (bit chẵn) để kiểm tra lỗi trong quá trình truyền. Bit parity này có đặc điểm nếu sử dụng odd parity thì số các bit 1 + odd parity bit sẽ ra 1 số lẻ còn nếu sử dụng even parity thì số các bit 1 + even parity bit sẽ ra 1 số chẵn.

b. Đặc tả:

8951 có một bộ giao tiếp nối tiếp sử dụng 2 chân RX (chân nhận, P3.0) và TX (chân truyền, P3.1). Bộ giao tiếp này cho phép vi điều khiển có thể giao tiếp với các thiết bị khác thông qua nhiều chế độ khác nhau (4 chế độ hoạt động). Tuy nhiên ở bài thực hành này sẽ không sử dụng bộ giao tiếp nối tiếp này. Nhằm mục đích hiểu rõ cách thức hoạt động của việc giao tiếp nối tiếp, bài thực hành này sẽ thực hiện mô phỏng hoạt động giao tiếp nối tiếp sử dụng timer của 8951.

Hiện thực công việc mô phỏng việc truyền một ký tự từ board 89 lên máy tính ở tốc độ truyền là 9600 bps. Dữ liệu của 1 frame bao gồm: 1 stop bit – 8 bit dữ liệu – 1 start bit.

Như trên đã mô tả thì với tốc độ baud là 9600 bps thì độ rộng của một tín hiệu 0 (hay 1) là 1/9600 s (=104ms). Nghĩa là một bit của frame dữ liệu sẽ được truyền trong khoảng thời gian là 104ms. Do đó để hiện thực việc mô phỏng này thì chương trình đã xây dựng một timer hoạt động ở chế độ cứ 1/9600 s (=104ms) sẽ gây ngắt một lần để thực hiện việc truyền một bit dữ liệu. Và công việc truyền dữ liệu chỉ đơn giản là việc truyền từ bit của một frame dữ liệu và sẽ được thực hiện trong hàm xử lý ngắt của timer.

Chương trình sẽ thực hiện việc truyền 1 frame dữ liệu định kỳ cứ 1/10 giây một lần.

Toàn bộ project đã được xây dựng, trừ hàm ngắt truyền. Yêu cầu anh/chị hãy viết hàm ngắt truyền để tạo ra frame dữ liệu truyền đúng và máy tính có thể nhận được.

c. Chương trình nhận dữ liệu từ máy tính: sử dụng một chương trình nhận dữ liệu nối tiếp từ cổng COM.

d. Đặc tả các biến:

trans_busy: là biến kiểu unsigned char, biến này cho biết việc truyền dữ liệu đã hoàn tất hay chưa. Nếu biến này có giá trị là 0 nghĩa là việc truyền đang diễn ra, ngược lại thì việc truyền dữ liệu đã hoàn tất

Thực hành kỹ thuật truyền số liệu 22

Page 26: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

mydata: là một biến kiểu unsigned char (8 bit), lưu ký tự ascii muốn truyền

myindex: là biến kiểu unsigned char. Biến chỉ số bit đang truyền của frame. (ví dụ myindex = 2, nghĩa là đang truyền đến bit thứ 3 trong 10 bit của frame dữ liệu – anh chi có thể không sử dụng biến này, nếu thấy không phù hợp với giải thuật của mình).

Anh/chị có thể sử dụng thêm biến nếu thấy cần thiết.

e. Hàm xử lý ngắt quãng:

void timer1_isr (void) interrupt 3{

TR1 = 0;//dừng timer 1

if(trans_busy){

//Add your code here

}

else{

P3 |= 0x02; //Khi không truyền, P3.1 có giá trị là 1

}

TF1 = 0; //xóa cờ ngắt timer

TR1 = 1;//bắt đầu timer 1

}

Thực hành kỹ thuật truyền số liệu 23

Page 27: Thuc Hanh Ky Thuat Truyen So Lieu

Kỹ Thuật Máy Tính

Chương 4: Điều khiển ở lớp liên kết dữ liệu

Mục đích:- Nắm vững các kỹ thuật điều khiển ở lớp liên kết dữ liệu

Yêu cầu:

- Mỗi nhóm 5 người, và điểm sẽ là điểm chung cho cả nhóm

- Phần bài tập lý thuyết sinh viên làm bài tập ở nhà, nộp bài qua email

- Phần thực hành sinh viên thực hành và được chấm điểm trực tiếp trên lớp.

- MỌI HÌNH THỨC COPY BÀI ĐỀU SẼ NHẬN ĐIỂM 0 CHO CẢ PHẦN THỰC

HÀNH

Phần 1: Bài Tập lý thuyết

Bài 1. Đặc tả các giao thức điều khiển dòng dữ liệu Sliding-Windows, Stop-and-wait? Nêu các loại lỗi thường xảy ra trong quá trình truyền nhận. Phân biệt các giao thức điều khiển lỗi Stop-and-wait ARQ, Go-Back-N ARQ và Selective-Reject ARQ.

Bài 2. Nêu những ưu điểm của giao thức điều khiển dòng dữ liệu sliding-windows so với stop-and-wait?

Bài 3. Nêu một vài đặc trưng chính của nghi thức HDLC và cấu trúc khung của HDLC?

Bài 4. Cho 2 node A và B (A truyền, B nhận) sử dụng cơ chế điều khiển dòng dữ liệu sliding-windows. Với ARQ là giao thức go-back-N với kích thước cửa sổ là 4. Vẽ vị trí cửa sổ ở những thời điểm sau:a. Trước khi A gửi dữ liệub. Sau khi A gửi 3 frame 0, 1, 2 và nhận ACK từ B từ 0 đến 1c. Sau khi A gửi xong 3 frame 3, 4, 5 và nhận ACK 4 từ B.

Thực hành kỹ thuật truyền số liệu 24