Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 61 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
61
Dung lượng
7,06 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH CƠNG TRÌNH NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN THIẾT KẾ VÀ THI CƠNG BỘ MÃ HĨA KÊNH THEO CƠNG NGHỆ FPGA NHẰM TĂNG ĐỘ TIN CẬY TRONG THÔNG TIN VÔ TUYẾN S K C 0 9 MÃ SỐ: SV2022-23 CHỦ NHIỆM ĐỀ TÀI: NGUYỄN THỊ HỒNG HẢO S KC 0 8 Tp Hồ Chí Minh, tháng 11/2022 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN THIẾT KẾ VÀ THI CƠNG BỘ MÃ HĨA KÊNH THEO CÔNG NGHỆ FPGA NHẰM TĂNG ĐỘ TIN CẬY TRONG THÔNG TIN VÔ TUYẾN SV2022-23 Chủ nhiệm đề tài: Nguyễn Thị Hồng Hảo TP Hồ Chí Minh, 11/2022 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN THIẾT KẾ VÀ THI CÔNG BỘ MÃ HĨA KÊNH THEO CƠNG NGHỆ FPGA NHẰM TĂNG ĐỘ TIN CẬY TRONG THƠNG TIN VƠ TUYẾN SV2022-23 Thuộc nhóm ngành khoa học: Khoa học kỹ thuật SV thực hiện: Nguyễn Thị Hồng Hảo Nam, Nữ: Nữ Dân tộc: Kinh Lớp, khoa: 18161VT2, khoa Điện – Điện tử Năm thứ: /Số năm đào tạo: Ngành học: Công nghệ kỹ thuật Điện tử - Viễn thông Người hướng dẫn: TS Đỗ Duy Tân TP Hồ Chí Minh, 11/2022 MỤC LỤC DANH MỤC HÌNH .v DANH MỤC BẢNG viii CÁC TỪ VIẾT TẮT ix MỞ ĐẦU I Tổng quan .1 II Lý chọn đề tài III Mục tiêu đề tài IV Phương pháp nghiên cứu V Đối tượng phạm vi nghiên cứu CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Tổng quan mã khối 1.1.1 Mã khối 1.1.2 Mã Hamming .6 1.2 Mã CRC CHƯƠNG 2: THIẾT KẾ BỘ MÃ HÓA VÀ GIẢI MÃ CRC-16 .15 2.1 Yêu cầu thiết kế 15 2.2 Thiết kế mã hóa CRC-16 15 2.3 Thiết kế giải mã CRC-16 19 2.4 Lưu đồ giải thuật 22 CHƯƠNG 3: KẾT QUẢ VÀ ĐÁNH GIÁ 25 3.1 Định nghĩa Testcase .25 3.2 Mô 26 3.2.1 Testcase 26 3.2.2 Testcast 28 3.2.3 Testcast 29 iii 3.2.4 Testcast 30 3.2.5 Testcast 32 3.3 Kết tổng hợp từ Xilinx ISE 36 3.3.1 Kiểm tra hoạt động mã hóa CRC-16 36 3.3.2 Bộ giải mã CRC-16 38 3.4 Tài nguyên sử dụng 43 3.5 Đánh giá so sánh 44 CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .46 4.1 Kết luận .46 4.2 Hướng phát triển 46 4.3 Kiến nghị 46 TÀI LIỆU THAM KHẢO 47 iv DANH MỤC HÌNH Hình 1.1: Bộ mã hóa giải mã CRC Hình 1.2: Thực tìm CRC thông qua phép chia số nhị phân .9 Hình 1.3: Kiểm tra CRC thơng qua phép chia nhị phân lấy dư (không lỗi) 10 Hình 1.4: Thực kiểm tra CRC thơng qua phép chia số nhị phân (có lỗi) 10 Hình 1.5: Thiết kế dây cho chia CRC .11 Hình 1.6: Đa thức sinh CRC-16 dạng nhị phân dạng đa thức 11 Hình 1.7: Phép tính CRC phương pháp chia đa thức 12 Hình 1.8: Biểu diễn lỗi bit đơn phân biệt 13 Hình 2.1: Sơ đồ khối mạch mã hóa CRC-16 15 Hình 2.2: Sơ đồ chi tiết khối counter 16 Hình 2.3: Mơ tả mạch tính CRC-16 với đa thức sinh g(x) = x16 + x15 + x2 + .17 Hình 2.4: Sơ đồ chi tiết khối Shifter_encode 18 Hình 2.5: Sơ đồ khối giải mã CRC-16 19 Hình 2.6: Sơ đồ chi tiết khối Shifter_decode 21 Hình 2.7: Lưu đồ counter 22 Hình 2.8: Lưu đồ Shifter_encode 23 Hình 2.9: Lưu đồ Shifter_decode 24 Hình 3.1: Dạng sóng kết tính tốn CRC block 4000 bit sau 80,34 us 27 Hình 3.2: Dạng sóng kết tính tốn CRC block 4000 bit sau 80,02 us .27 Hình 3.3: Dạng sóng kết tính tốn CRC block 32,32 bit sau 1.621 us .28 Hình 3.4: Dạng sóng kết tính tốn CRC block 1600 bit sau 32.02 us 29 Hình 3.5: Dạng sóng kết CRC block khác cho mã CRC 30 Hình 3.6: Dạng sóng kết giải mã CRC block 1616 bit sau 1.621 us 31 Hình 3.7: Dạng sóng kết giải mã CRC-16 cho khơng đáng tin 31 Hình 3.8: Dạng sóng kết giải mã CRC block 1616 bit sau 1.600 us 31 Hình 3.9: Dạng sóng truyền 100 block có độ dài 4016 bit với block sai bit .32 Hình 3.10: Dạng sóng truyền 100 block có độ dài 4016 bit với block sai bit 33 Hình 3.11: Dạng sóng truyền 100 block có độ dài 4016 bit với block sai bit 33 Hình 3.12: Dạng sóng giải mã không phát block sai truyền 100 block có độ dài 4016 bit với với block sai bit 34 v Hình 3.13: Dạng sóng truyền 100 block có độ dài 4016 bit với block sai bit 34 Hình 3.14: Dạng sóng truyền 100 block có độ dài 4016 bit với block sai bit 35 Hình 3.15: Dạng sóng truyền 100 block có độ dài 4016 bit với block sai bit 35 Hình 3.16: Kết mã hóa với block liệu 4000 bit chưa có liệu .36 Hình 3.17: Kết tính tốn CRC mã hóa với block liệu dài 4000 bit 36 Hình 3.18: Kết mã hóa với block liệu 1600 bit chưa có liệu .36 Hình 3.19: Kết tính tốn CRC mã hóa với block liệu dài 1600 bit 37 Hình 3.20: Kết tính tốn CRC mã hóa với block liệu dài 1600 bit 37 Hình 3.21: Kết tính tốn CRC mã hóa với block liệu dài 1600 bit 37 Hình 3.22: Kết tính tốn CRC mã hóa với block liệu dài 1600 bit 37 Hình 3.23: Hiển thị chưa có liệu đưa vào giải mã 38 Hình 3.24: Kết kiểm tra giải mã với block data bị sai bit 38 Hình 3.25: Kết kiểm tra giải mã với block data bị sai bit 38 Hình 3.26: Kết kiểm tra giải mã với block data bị sai bit 39 Hình 3.27: Kết kiểm tra giải mã với block data bị sai bit 39 Hình 3.28: Kết kiểm tra giải mã với block data bị sai bit 39 Hình 3.29: Kết kiểm tra giải mã với block data bị sai bit 39 Hình 3.30: Kết kiểm tra giải mã với block data bị sai bit 40 Hình 3.31: Kết kiểm tra giải mã với block data bị sai bit 40 Hình 3.32: Kết kiểm tra giải mã với block data bị sai bit 40 Hình 3.33: Kết kiểm tra giải mã với block data bị sai bit 40 Hình 3.34: Kết kiểm tra giải mã với block data bị sai bit 41 Hình 3.35: Kết kiểm tra giải mã với block data bị sai bit 41 Hình 3.36: Kết kiểm tra giải mã với block data bị sai bit 41 Hình 3.37: Kết kiểm tra giải mã với block data bị sai bit .41 Hình 3.38: Kết kiểm tra giải mã với block data bị sai bit 42 Hình 3.39: Kết kiểm tra giải mã với block data bị sai bit 42 Hình 3.40: Kết kiểm tra giải mã với block data bị sai bit 42 Hình 3.41: Kết kiểm tra giải mã với block data bị sai bit 42 Hình 3.42: Kết kiểm tra giải mã với block data bị sai bit 43 Hình 3.43: Kết kiểm tra giải mã với block data bị sai bit 43 Hình 3.44: Tài nguyên mã hóa CRC-16 với liệu block dài 4000 bit .43 vi Hình 3.45: Tài nguyên giải mã CRC-16 với liệu block dài 4016 bit 44 vii DANH MỤC BẢNG Bảng 1.1: Minh họa mã (5,2) Bảng 1.2: Các mơ hình mã hóa kênh truyền Bảng 1.3: Ví dụ mã hóa mã Hamming (7,4) Bảng 1.4: Ví dụ giải mã sửa lỗi mã Hamming (7,4) .7 Bảng 1.5: Một số đa thức sinh g(x) thông dụng mã CRC Bảng 2.1: Bảng trạng thái khối counter .16 Bảng 2.2: Bảng trạng thái khối Shifter_encode 19 Bảng 2.3: Bảng trạng thái khối Shifter_decode 20 Bảng 3.1: Bảng tóm tắt Testcase case mã hóa giải mã CRC-16 25 Bảng 3.2: Gói liệu bao gồm CRC-16 USB 26 Bảng 3.3: Modbus message 28 Bảng 3.4: block liệu tạo 29 Bảng 3.5: Bảng thời gian tối thiểu để mã hóa giải mã CRC .44 Bảng 3.6: Bảng so sánh xác suất phát block sai truyền 100 block với xác suất lỗi ngẫu nhiên block khác .45 viii CÁC TỪ VIẾT TẮT BCH Bose–Chaudhuri–Hocquenghem CRC Cyclic Redundancy Check CPU Central Processing Unit FF Flip Flop FPGA Field Programmable Gate Array IEEE Institute Of Electrical And Electronics Engineers LSB Least significant bit MSB Most significant bit MUX Multiplexer RAM Random Access Memory ROM Read Only Memory USB Universal Serial Bus VHDL Very High Speed Integrated Circuit Hardware Description Language ix giả mã không phát lỗi block thứ 34 điều thể Hình 3.12 số block sai i=34 giả mã phát 33 block bị sai (err=33) Hình 3.12: Dạng sóng giải mã khơng phát block sai truyền 100 block có độ dài 4016 bit với với block sai bit Hình 3.13 thể tổng số block sai mà giải mã CRC-16 phát 99 block sai truyền 100 block sai Hình 3.13: Dạng sóng truyền 100 block có độ dài 4016 bit với block sai bit 3.2.5.4 Testcast 5.4 Số lượng block truyền tương tự Testcase trước, Testcase có bit sai block bit sai ngẫu nhiên tạo cách đảo bit liệu vị trí 0, 2, 5, 15 16 vị trí dịch sang trái ngẫu nhiên 34 khoảng đến 127 Khi truyền 100 block với block sai bit số lượng block bị lỗi mà giải mã phát 100 block thể Hình 3.14 Hình 3.14: Dạng sóng truyền 100 block có độ dài 4016 bit với block sai bit 3.2.5.5 Testcast 5.5 Tương tự Testcase truyền 100 block với có bit bị sai Các bit sai tạo cách đảo bit liệu vị trí 0, 1, 2, 3, 15 17 vị trí 1, 2, 3, 15 17 dịch sang trái ngẫu nhiên khoảng đến 127 Bộ giải mã phát 99 block bị sai truyền 100 block với block có bit lỗi Kết thể Hình 3.15 Hình 3.15: Dạng sóng truyền 100 block có độ dài 4016 bit với block sai bit 35 3.3 Kết tổng hợp từ Xilinx ISE 3.3.1 Kiểm tra hoạt động mã hóa CRC-16 Kết tổng hợp từ Xilinx sử dụng lại kết Testcase phần mơ 3.2 Vì giới hạn thời gian Testcase phần mã hóa CRC tính tốn mã CRC-16 block liệu có độ dài 4000 bit 1600 bit trình bày Testcase 1.1 Testcase 2.1 3.3.1.1 Testcase 1.1 Hình 3.16: Kết mã hóa với block liệu 4000 bit chưa có liệu Hình 3.17: Kết tính tốn CRC mã hóa với block liệu dài 4000 bit Hai Hình 3.16 Hình 3.17 cho thấy kết mã hóa CRC-16 với block data_in có độ dài 4000 bit chuỗi số hex “0123456789” lặp lặp lại 100 lần Kết cho chuỗi CRC-16 “E4CC” chuỗi số hex nối vào block data_in 3.3.1.2 Testcase 2.1 Hình 3.18: Kết mã hóa với block liệu 1600 bit chưa có liệu 36 Hình 3.19: Kết tính tốn CRC mã hóa với block liệu dài 1600 bit Tương tự với phần 4.3.1.1 Hình 3.18 Hình 3.19 cho kết chuỗi CRC-16 chuỗi hex “61B6” truyền block data có độ dài 1600 bit chuỗi “0123456789” lặp lặp lại 40 lần 3.3.1.3 Testcase Hình 3.20: Kết tính tốn CRC mã hóa với block liệu dài 1600 bit Hình 3.21: Kết tính tốn CRC mã hóa với block liệu dài 1600 bit Hình 3.22: Kết tính tốn CRC mã hóa với block liệu dài 1600 bit Như mô tả phần mô với liệu khác mã hóa lại tạo chuỗi số hex CRC giống “c6c0” 37 3.3.2 Bộ giải mã CRC-16 Vì giới hạn mặt thời gian nên Testcase 4.1 Testcase 4.2 bỏ qua trình kiểm tra thực tế giải mã CRC-16 Trong Testcase truyền vào liệu block chuỗi số hex 4000 bit “0123456789” lặp lặp lại 100 lần nối với chuỗi CRC “3d38” với số bit bị sai khác Testcase 3.3.2.1 Testcase 5.1 Hình 3.23: Hiển thị chưa có liệu đưa vào giải mã Hình 3.24: Kết kiểm tra giải mã với block data bị sai bit Hình 3.23 Hình 3.24 kết kiểm tra chuỗi liệu truyền vào giải mã CRC-16 với bit lỗi xuất bit thứ 10 17 giải mã phát chuỗi liệu bị sai Ba Hình 3.25, Hình 3.26, Hình 3.27 bit sai vị trí thứ {15;22}, {100;107} {30;37} giải mã phát chuỗi liệu sai hiển thị hình LCD nội dung “DETECTED” Hình 3.25: Kết kiểm tra giải mã với block data bị sai bit 38 Hình 3.26: Kết kiểm tra giải mã với block data bị sai bit Hình 3.27: Kết kiểm tra giải mã với block data bị sai bit 3.3.2.2 Testcase 5.2 Ở Testcase 5.2 chuỗi liệu xuất bit sai, Hình 3.28 bị sai bit thứ 2, 10, 17; Hình 3.29 bị sai bit thứ 7, 15, 22; Hình 3.30 bị sai bit thứ 92, 100, 107; Hình 3.31 bị sai bit thứ 52, 60, 67 Kết giải mã CRC-16 phát chuỗi liệu sai Hình 3.28: Kết kiểm tra giải mã với block data bị sai bit Hình 3.29: Kết kiểm tra giải mã với block data bị sai bit 39 Hình 3.30: Kết kiểm tra giải mã với block data bị sai bit Hình 3.31: Kết kiểm tra giải mã với block data bị sai bit 3.3.2.3 Testcase 5.3 Ở Testcase 5.3 chuỗi liệu có bit bị sai, Hình 3.32 bit sai vị trí thứ 10, 12, 15, 26; Hình 3.33 bit sai vị trí thứ 100, 102, 15, 116; Hình 3.34 bit sai vị trí thứ 30, 32, 15, 46; Hình 3.35 bit sai vị trí thứ 0, 2, 15, 16 Bộ giải mã không phát chuỗi liệu bị sai thể Hình 3.35 chuỗi liệu lỗi trùng với chuỗi liệu khác nên giải mã khơng phát Hình 3.32: Kết kiểm tra giải mã với block data bị sai bit Hình 3.33: Kết kiểm tra giải mã với block data bị sai bit 40 Hình 3.34: Kết kiểm tra giải mã với block data bị sai bit Hình 3.35: Kết kiểm tra giải mã với block data bị sai bit 3.3.2.4 Testcase 5.4 Testcase 5.4 cho kết giải mã phát block sai truyền block liệu sai với block liệu sai bit Hình 3.36: Kết kiểm tra giải mã với block data bị sai bit Hình 3.37: Kết kiểm tra giải mã với block data bị sai bit 41 Hình 3.38: Kết kiểm tra giải mã với block data bị sai bit Hình 3.39: Kết kiểm tra giải mã với block data bị sai bit 3.3.2.5 Testcase 5.5 Testcase 5.5 cho kết giống Testcase 5.3 block bit liệu bị sai trùng với liệu giải mã không phát được, truyền cho block liệu sai bit Hình 3.40: Kết kiểm tra giải mã với block data bị sai bit Hình 3.41: Kết kiểm tra giải mã với block data bị sai bit 42 Hình 3.42: Kết kiểm tra giải mã với block data bị sai bit Hình 3.43: Kết kiểm tra giải mã với block data bị sai bit 3.4 Tài nguyên sử dụng Tài nguyên sử dụng mã hóa CRC thể Hình 3.44: Hình 3.44: Tài ngun mã hóa CRC-16 với liệu block dài 4000 bit 43 Tài nguyên sử dụng giải mã CRC thể Hình 3.45: Hình 3.45: Tài nguyên giải mã CRC-16 với liệu block dài 4016 bit 3.5 Đánh giá so sánh Từ mô ta rút đanh giá sau: Thời gian tối thiểu để mã hóa giải mã CRC phụ thuộc vào block-length, Bảng 3.5 thể thời gian để mã hóa giải mã cá chuỗi bit cụ thể Nếu có block liệu đến trước mã hóa giải mã xong ưu tiên tính tốn cho block thứ Bảng 3.5: Bảng thời gian tối thiểu để mã hóa giải mã CRC Block length Thời gian chờ tối thiểu (ns) Mã hóa Giải mã 4000 bit 4016 bit 80,32 1600 bit 1616 bit 32,32 16 15 Mã CRC-16 với đa thức sinh g x x x x phát xác 100% với block có số lỗi bit dựa vào Bảng 3.6 44 Bảng 3.6: Bảng so sánh xác suất phát block sai truyền 100 block với xác suất lỗi ngẫu nhiên block khác Block-length 4016 bit Số block truyền Số bit sai block 100 Số block phát bị sai 100 100 99 100 99 Từ Bảng 3.6 rút kết luận giải mã CRC-16: Bộ giải mã phát tất block bị lỗi số bit lỗi block nhỏ bit phát block bị lỗi vị trí bit sai số lẻ Nếu đa thức lỗi chia hết cho đa thức sinh giải mã khơng phát block bị lỗi 45 CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 4.1 Kết luận Những mặt đạt thiết kế: Bộ giải mã phát tất block bị lỗi số lỗi bit Tính tốn CRC gắn chuỗi liệu để truyền Có thể phát loại lỗi tác động lên liệu dựa mã CRC Giải mã thành công liệu bên nhận Hoạt động kit Một số hạn chế: Thời gian trễ lần mã hóa giải mã lớn Khi số bit lỗi từ bit trở lên mã hóa phát block bị sai số trường hợp vừa bị sai mã thông tin vừa bị sai mã CRC, xác suất để xảy trường hợp thường thấp 4.2 Hướng phát triển Tối ưu thiết kế phương pháp song song, lookup table Nâng cấp tốc độ tính tốn giải thuật Tea Leaf Reader, Sarwate… Tích hợp mã hóa/giải mã CRC vào giao thức truyền liệu cụ thể qua đánh giá ảnh hưởng độ trễ tính toán lên hệ thống 4.3 Kiến nghị Với đề tài nghiên cứu, kết nghiên cứu dùng làm tài liệu tham khảo để hỗ trợ cho sinh viên ngành liên quan viễn thơng - máy tính - vi mạch, đặc biệt quan tâm loại mã hóa kiểm sốt lỗi Với q trình, từ việc thiết kế mơ hình thiết kế chi tiết khối, cuối phân tích kết mơ tài nguyên sử dụng Ngoài ra, module phát triển hồn thiện tái sử dụng hệ thống tích hợp chip 46 TÀI LIỆU THAM KHẢO [1] Ma Yuping &Zhang Jun, “Design and Implementation of CRC Error Correction for ADS-B System Responding Based on FPGA” Applied Mechanics and Materials,2014 [2] Zonglin Zhong, Wengui Hu, “Error detection and control of IoT network based on CRC algorithm”, Computer Communications, volume 153, 2020, pages 390-396 [3] E Tsimbalo, X Fafoutis and R J Piechocki, “CRC Error Correction in IoT Applications”, IEEE Transactions on Industrial Informatics, vol 13, no 1, Feb 2017, pp 361-369 [4] J N Chhatrawala, N Jasani and V Tilva, “FPGA based data acquisition with Modbus protocol”, International Conference on Communication and Signal Processing (ICCSP), 2016, pp 1251-1254 [5] Sarah L Harris, David Money Harris, Digital Design and Computer Architecture Arm Edition, Elsevier USA, 04/2015 [6] Nguyễn Việt Hùng, Nguyễn Ngô Lâm, Nguyễn Văn Phúc, Đặng Phước Hải Trang, “Kỹ thuật truyền số liệu” NXB Đại Học Quốc Gia TP HCM, 04/2013 [7] Moon, T K., “Error Control Coding—Mathematical Methods and Algorithms”, New York: John Wiley & Sons, 2005 [8] Lin, S., and D J Castello, “Error Control Coding—Fundamentals and Application”, Upper Saddle River, NJ: Prentice-Hall, 2004 [9] Behrouz A Forouzan, “Data Communications and Networking”, Fourth Edition, Published by McGraw-Hill, USA, 2007 [10] usb.org 47 S K L 0