1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

THIẾT kế và THỰC THI FPGA CHO bộ PHÁT HIỆN và sửa lỗi BIT (có code)

54 671 6

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 54
Dung lượng 5,27 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

THIẾT kế và THỰC THI FPGA CHO bộ PHÁT HIỆN và sửa lỗi BIT (có code) THIẾT kế và THỰC THI FPGA CHO bộ PHÁT HIỆN và sửa lỗi BIT (có code) THIẾT kế và THỰC THI FPGA CHO bộ PHÁT HIỆN và sửa lỗi BIT (có code) THIẾT kế và THỰC THI FPGA CHO bộ PHÁT HIỆN và sửa lỗi BIT (có code) THIẾT kế và THỰC THI FPGA CHO bộ PHÁT HIỆN và sửa lỗi BIT (có code)

Trang 1

THIẾT KẾ VÀ THỰC THI FPGA CHO

BỘ PHÁT HIỆN VÀ SỬA LỖI BIT

Trang 2

DANH MỤC CÁC BẢNG BIỂU IX DANH MỤC CÁC TỪ VIẾT TẮT X

CHƯƠNG 1 TỔNG QUAN 1

1.1 GIỚI THIỆU 1

1.2 LỊCH SỬ VỀ MÃ HAMMING 1

1.3 GIỚI THIỆU CÔNG NGHỆ FPGA VÀ KIT DE2-115 2

1.3.1 Tổng quan công nghệ FPGA 2

1.3.2 Kit Altera DE2-115 4

1.4 PHẦN MỀM LẬP TRÌNH QUARTUS VÀ NGÔN NGỮ LẬP TRÌNH VHDL 7

1.4.1 Phần mềm lập trình Quartus 7

1.4.2 Ngôn ngữ lập trình VHDL 9

1.5 GIAO TIẾP NỐI TIẾP UART 10

1.5.1 Giới thiệu về UART 10

1.5.2 Các thông số cơ bản trong truyền nhận UART 11

CHƯƠNG 2 PHƯƠNG PHÁP PHÁT HIỆN VÀ SỬA LỖI BIT 12

2.1 CÁC KIỂU LỖI 12

2.1.1 Lỗi bit đơn 12

2.1.2 Lỗi bit chùm 13

2.2 PHƯƠNG PHÁP PHÁT HIỆN LỖI VRC 14

2.3 PHƯƠNG PHÁP PHÁT HIỆN LỖI CRC 14

2.4 PHƯƠNG PHÁP PHÁT HIỆN LỖI CHECKSUM 15

2.5 PHƯƠNG PHÁP PHÁT HIỆN VÀ SỬA LỖI BIT BẰNG MÃ HAMMING 15

CHƯƠNG 3 THIẾT KẾ BỘ PHÁT HIỆN VÀ SỬA LỖI BIT DÙNG PHƯƠNG PHÁP MÃ HAMMING 18

3.1 HỆ THỐNG PHÁT HIỆN VÀ SỬA LỖI BIT (EDAC) 18

Trang 3

CHƯƠNG 4 MÔ PHỎNG VÀ THỰC THI 23

4.1 LƯU ĐỒ GIẢI THUẬT 23

4.2 MÔ PHỎNG TRÊN QUARTUS 25

4.3 THỰC THI TRÊN KIT DE2 27

4.3.1 Kiểm tra phát dữ liệu của hệ thống EDAC 27

4.3.2 Kiểm tra thu dữ liệu của hệ thống EDAC 28

CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 40

5.1 KẾT LUẬN 40

5.2 HƯỚNG PHÁT TRIỂN 40

TÀI LIỆU THAM KHẢO 41

PHỤ LỤC 42

Trang 4

HÌNH 1-2: MÔ HÌNH FPGA 3

HÌNH 1-3: KIT ALTERA DE2-115 5

HÌNH 1-4: GIẢN ĐỒ KHỐI ALTERA DE2-115 6

HÌNH 1-5: GIAO DIỆN QUARTUS II 9

HÌNH 1-6: PHƯƠNG THỨC TRUYỀN NHẬN UART 10

HÌNH 1-7: KHUNG TRUYỀN NHẬN UART 11

HÌNH 2-1: CÁC LOẠI LỖI BIT 12

HÌNH 2-2: LỖI BIT ĐƠN 13

HÌNH 2-3: LỖI BIT CHÙM 13

HÌNH 3-1: HỆ THỐNG THU PHÁT TÍN HIỆU EDAC 18

HÌNH 3-2: SƠ ĐỒ KHỐI HỆ THỐNG EDAC 21

HÌNH 4-1: LƯU ĐỒ PHÍA PHÁT 23

HÌNH 4-2: LƯU ĐỒ PHÍA THU 24

HÌNH 4-3: RTL VIEWER 25

HÌNH 4-4: TỔNG HỢP BÁO CÁO HỆ THỐNG 25

HÌNH 4-5: MÔ PHỎNG DẠNG SÓNG 26

HÌNH 4-6: HIỂN THỊ TRÊN KIT DE2 CHO BỘ PHÁT DỮ LIỆU 27

HÌNH 4-7: TRUYỀN UART LẦN 1 TRƯỜNG HỢP KHÔNG LỖI 29

HÌNH 4-8: TRUYỀN UART LẦN 2 TRƯỜNG HỢP KHÔNG LỖI 29

HÌNH 4-9: TRUYỀN UART LẦN 3 TRƯỜNG HỢP KHÔNG LỖI 30

HÌNH 4-10: HIỂN THỊ TRÊN KIT DE2 TRƯỜNG HỢP KHÔNG LỖI 30

HÌNH 4-11: TRUYỀN UART LẦN 1 TRƯỜNG HỢP LỖI 1 BIT 31

HÌNH 4-12: TRUYỀN UART LẦN 2 TRƯỜNG HỢP LỖI 1 BIT 32

Trang 5

HÌNH 4-16: TRUYỀN UART LẦN 2 TRƯỜNG HỢP LỖI 2 BIT 34

HÌNH 4-17: TRUYỀN UART LẦN 3 TRƯỜNG HỢP LỖI 2 BIT 35

HÌNH 4-18: HIỂN THỊ TRÊN KIT DE2 TRƯỜNG HỢP LỖI 2 BIT 36

HÌNH 4-19: TRUYỀN UART LẦN 1 TRƯỜNG HỢP LỖI BIT PARITY 37

HÌNH 4-20: TRUYỀN UART LẦN 2 TRƯỜNG HỢP LỖI BIT PARITY 37

HÌNH 4-21: TRUYỀN UART LẦN 3 TRƯỜNG HỢP LỖI BIT PARITY 38

HÌNH 4-22: HIỂN THỊ TRÊN KIT DE2 TRƯỜNG HỢP LỖI BIT PARITY 39

Trang 6

BẢNG 4-2: GÁN CHÂN KIT DE2 CHO BỘ THU DỮ LIỆU 28

Trang 7

CLB Configurable Logic Block

CRC Cyclic Redundancy Check

DE2 Development and Education board

EDAC Error Detection And Correction

FPGA Field-programmable gate array

IC Integrated Circuit

IEEE Institute of Electrical and Electronics EngineersJTAG Joint Test Action Group

LCD Liquid crystal display

MAC Media Access Control

PLD Programmable Logic Device

RTL Register-Transfer Level

UART Universal Asynchronous Receiver-TransmitterVGA Video Graphics Array

VHDL VHSIC Hardware Description Language

VHSIC Very HighSpeed Itergrated Circuit

Trang 8

Có nhiều phương pháp phát hiện và sửa lỗi bit, trong đó phương pháp có thể pháthiện và sửa được lỗi 1 bit, lỗi bit Parity và phát hiện được lỗi 2 bit là phương pháp

mã Hamming

1.2 Lịch sử về mã Hamming

Trong những năm 1940, Hamming làm việc tại Bell Labs trên máy tính Bell Model

V, một máy điện cơ dùng rơ-le, với tốc độ rất chậm, mấy giây giao động đồng hồmột chu kỳ máy Nhập dữ liệu cho vào máy tính bằng những cái thẻ đục lỗ và hầunhư máy tính luôn luôn gây ra lỗi trong quá trình đọc dữ liệu Trong những ngàylàm việc trong tuần, những mã được sử dụng để tìm ra lỗi, khi nào tìm được nó báohiệu bằng đèn chớp tắt cho người điều khiển biết để họ sửa, chỉnh sửa máy lại khingười điều khiển máy tính vắng mặt như trong thời gian ngoài giờ làm việc haytrong những ngày cuối tuần, mỗi khi có lỗi xảy ra máy tính tự động bỏ qua chươngtrình đang chạy và đổi sang công việc khác

Trang 9

Hình 1-1: Richard Hamming

Hamming thường làm việc trong những ngày cuối tuần vì thế ông dần trở nên tứcdận mỗi khi ông phải khởi động lại các chương trình từ đầu do chất lượng kém,không đáng tin cậy của bộ máy đọc các thẻ đục lỗ Mấy năm kế tiếp, Hamming dồntâm huyết vào việc thiết kế, phát triển hằng loạt các thuật toán có hiệu quả cao để sử

lý vấn đề sửa lỗi Năm 1950, Mã Hamming được ông công bố Một số chương trìnhứng dụng hiện nay hoạt động vẫn còn sử dụng mã này của ông Nhiều mã phát hiệnlỗi đơn giản đã được sử dụng trước khi có mã Hamming, nhưng không có mã nàohiệu quả bằng mã Hamming với một tổng chi phí tương đương [3]

1.3 Giới thiệu công nghệ FPGA và kit DE2-115

1.3.1 Tổng quan công nghệ FPGA

FPGA là một loại IC cho phép người lập trình chỉnh sửa các thiết kế của mình.FPGA ra đời như một phương pháp cơ bản cho vấn đề hạn chế thời gian để xuất

Trang 10

hiện trên thị trường và rủi ro tài chính trong quá trình nghiên cứu sản phẩm củacông nghệ điện tử FPGA là loại thiết bị khả trình hiện đại nhất cho đến thời điểnhiện tại của ngành công nghệ chế tạo IC chuyên biệt mà hiện nay vẫn được gọi làASIC.

Hình 1-2: Mô hình FPGA

 Cấu trúc FPGA gồm 3 thành phần chính:

- Các khối logic cấu hình (CLB)

- Các khối vào/ra (IOB)

- Các kết nối

FPGA là một mạch tích hợp chứa rât nhiều ô logic giống nhau có thể xem là cácthành phần tiêu chuẩn Mỗi ô logic giữ một hay một số chức năng riêng biệt Các ôtrùng nhau được kết nối bởi một ma trận đường dẫn và chuyển mạch khả trình.Mảng của các ô logic và kiểu kết nối là kết cấu xây dựng khối cơ bản trong mạchlogic Các thiết kế rắc rối được hình thành bằng cách liên kết các khối cơ bản để tạo

ra các mạch được mô tả Người thiết kế bằng các đặc trưng logic đơn của mỗi ô vàxác định đóng các chuyển mạch trong ma trận kết nối Mô hình tổng quát của

Trang 11

FPGA gồm một dãy hai chiều các khối logic có thể được liên kết bằng các nguồnkết nối chung Tài nguyên kết nối khả trình đáp ứng các thành phần truyền dẫn tớikết nối đầu vào ra của các CLB và các IOB trong mạng riêng Các nguồn kết nối cóthể có chiều dài không giống nhau Bên trong các liên kết là các chuyển mạch lậptrình được dùng để kết nối các khối logic cấu hình CLB cần thiết qua các chuyểnmạch Các khối CLB đáp ứng các phần tử chức năng với cấu trúc sử dụng logic.Các khối vào/ra đáp ứng giao diện giữa các gói chân và các đường tín hiệu bêntrong

1.3.2 Kit Altera DE2-115

Bo mạch DE2-115 của Altera là công cụ cho việc nghiên cứu và phát triển vềFPGA, mạch logic số và cấu trúc máy tính Bo mạch DE2 hỗ trợ nhiều công nghệtiên tiến cũng như nhiều chức năng phần cứng thích hợp cho việc sử dụng làm thínghiệm, phát triển hệ thống số phức tạp, cũng như nghiên cứu các dự án thiết kế cóqui mô lớn

Trang 12

Hình 1-3: Kit Altera DE2-115

Kit DE2-115 có rất nhiều tính năng cho phép người thiết kế thực thi một khối lượnglớn các hệ thống, các mạch chức năng từ nhỏ đến lớn, từ đơn giản đến phức tạp

Trang 13

Hình 1-4: Giản đồ khối Altera DE2-115

Dưới đây một số tính năng được cung cấp sẵn trên kit DE2-115:

- Vi mạch FPGA Altera Cyclone IV EP4CE115

- USB Blaster:

+ Dùng để lập trình và điều khiển API của người dùng

+ Hỗ trợ các chế độ JTAG và AS khi sử dụng NIOS II

- Bộ điều khiển Cổng 10/100 Ethernet:

+ Tích hợp MAC và PHY với một giao diện xử lý chung

+ Hỗ trợ nền công nghiệp Ethernet IP Core

- Cổng VGA-out:

- Bộ điều khiển USB host/slave với USB kiểu A và kiểu B:

+ Tuân thủ đầy đủ với Universal Serial Bus Thông số kỹ thuật Rev 2.0.+ Hỗ trợ truyền dữ liệu ở tốc độ đầy đủ và tốc độ thấp

+ Hỗ trợ PC driver

- Cổng nối PS/2 chuột/ bàn phím

Trang 14

Quartus II được phát triển của hãng Altera, là phần mềm đáp ứng môi trường thiết

kế tổng thể cho các thiết kế SOPC Quartus đóng gói tích hợp đáp ứng cho việcthiết kế logic với các linh kiện logic khả trình PLD của Altera, gồm các dòngStratix, FLEX, APEX, Cyclone, MAX,

 Phần mềm cung cấp các khả năng thiết kế logic sau:

- Môi trường thiết kế gồm các bản vẽ, sơ đồ khối, công cụ soạn thảo các ngônngữ: AHDL, VHDL, và Verilog HDL

- Thiết kế LogicLock

- Chấp nhận việc xuất, tạo và kết nối các file nguồn để đưa ra các file chươngtrình

- Là công cụ mạnh để tổng hợp logic

- Phân tích thời gian

- Phân tích logic nhúng với công cụ phân tích SignalTap@ II

- Khả năng lập trình và nhận diện linh kiện

- Quartus II có môi trường thiết kế đồ họa giúp người thiết kế đơn giản việc viết

mã, biên dịch, kiểm soát lỗi, mô phỏng

Trang 15

- Tự động định vị lỗi.

- Khả năng mô phỏng chức năng và thời gian

- Quartus II có thể đọc các file mạch (netlist) EDIF chuẩn, Verilog HDL, VHDL

và cũng như tạo ra các file netlist này

- Quartus II sử dụng bộ tích hợp NativeLink@ với các công cụ thiết kế để đápứng việc đưa thông tin liền mạch giữa Quartus với các công cụ thiết kế phần cứngEDA khác

Với Quartus có thể kết hợp nhiều kiểu file trong 1 dự án thiết kế phân cấp Có thểdùng bộ công cụ Quartus Block Editor để tạo ra sơ đồ khối mô tả thiết kế ở mứccao, sau đó dùng các sơ đồ khối khác, các bản vẽ như: VHDL Design Files (.vhd)and Verilog HDL Design Files (.v)… để hình thành thành phần thiết kế mức thấp.Quartus II đáp ứng việc làm việc với nhiều file trong cùng thời điểm, thực hiện filethiết kế trong khi vẫn có thể biên dịch hay chạy mô phỏng các hệ thống khác Công

cụ biên dịch Quartus II đưa ra quy trình thiết kế mạnh đáp ứng tùy biến để đạt đượcthiết kế tối ưu trong dự án, nằm ở trung tâm hệ thống Việc phát hiện và sửa lỗi trởnên đơn giản hơn do công cụ định vị lỗi tự động và các bản tin cảnh báo do Quartus

hỗ trợ

Trang 16

Hình 1-5: Giao diện Quartus II

Hầu hết câu lệnh trong VHDL xảy ra đồng thời (song song với nhau), điều này làmột trở ngại cho những người bắt đầu làm quen với lập trình VHDL Tuy nhiên, khi

đã quen với cách lập trình của ngôn ngữ mô tả phần cứng, điều này sẽ rất dễ dàng.Các ngôn ngữ mô phỏng phần cứng được các nhà cung cấp thiết bị phát triển, nênmang các đặc trưng gắn với các thiết bị của nhà cung cấp đó và thuộc quyền sở hữucủa nhà cung cấp

Trang 17

Trong khi đó, VHDL được xây dựng như một ngôn ngữ riêng biệt không gắn vớibất kỳ một quy trình thiết kế, bộ mô phỏng hay công nghệ phần cứng nào Ngườithiết kế có thể thoải mái lựa chọn công nghệ, phương pháp thiết kế trong khi vẫn sửdụng một ngôn ngữ lập trình duy nhất.

1.5 Giao tiếp nối tiếp UART

1.5.1 Giới thiệu về UART

UART là một mạch tích hợp được sử dụng trong việc truyền dẫn dữ liệu nối tiếpgiữa máy tính và các thiết bị ngoại vi Rất nhiều vi điều khiển hiện nay đã được tíchhợp UART Để bắt đầu cho việc truyền dữ liệu bằng UART, một Start bit được gửi

đi, sau đó là các bit dữ liệu và kết thúc quá trình truyền là Stop bit

Hình 1-6: Phương thức truyền nhận UART

Khi ở trạng thái chờ mức điện thế ở mức 1 Khi bắt đầu truyền Start bit sẽ chuyển từ

1 xuống 0 để báo hiệu cho bộ nhận là quá trình truyền dữ liệu chuẩn bị xảy ra SauStart bit là đến các bit dữ liệu Data 0 - Data 7 Khi truyền hết 8 bit dữ liệu, sau đóđến bit Parity để bộ nhận kiểm tra tính đúng đắn của dữ liệu (tùy trường hợp có thểkhông sử dụng bit Parity) Khi các bit đã được gửi xong sẽ có 1 Stop bit là bit báocho thiết bị

1.5.2 Các thông số cơ bản trong truyền nhận UART

Khung truyền

Trang 18

Data 2

Data 3

Data 4

Data 5

Data 6

Data 7

Parity bit

Stop bit

Hình 1-7: Khung truyền nhận UART

Tốc độ baund: Khoảng thời gian cho 1 bit được truyền Bên gửi và nhận phải đượccài đặt giống nhau

Khung truyền: Xác định số bit trong mỗi lần truyền

Start bit: Bit đầu tiên được truyền trong Frame Là bit bắt buộc để báo hiệu cho thiết

bị nhận chuẩn bị có một gói dữ liệu sắp đc truyền đến

Data: Dữ liệu cần truyền Bit có trọng số nhỏ nhất được truyền trước sau đó đến bit.Parity bit: Kiểm tra dữ liệu truyền có đúng không

Stop bit: Là bit bắt buộc để báo cho thiết bị rằng các bit đã được gửi xong Thiết bịnhận sẽ tiến hành kiểm tra khung truyền, xử lý và mang Data ra để sử dụng

CHƯƠNG 2 PHƯƠNG PHÁP PHÁT HIỆN VÀ SỬA LỖI BIT

Thời gian truyền 1 bit = 1 / tốc độ Baud

Trang 19

2.1 Các kiểu lỗi

Về bản chất, lỗi có thể được chi thành 2 loại: lỗi bit đơn và lỗi bit chùm [1]

Trong lỗi bit đơn, một bit 0 được thay đổi thành 1 hoặc 1 thành 0 Trong lỗi bitchùm, nhiều bit bị thay đổi Ví dụ tốc độ truyền dữ liệu 12 bit/s trên đường truyền

có thể thay đổi một vài bit hoặt tất cả các bit trong 12 bit thông tin trong 1 đơn vịthời gian

Hình 2-1: Các loại lỗi bit

 Các khái niệm:

- Kẽ hở: Là vùng nằm giữa 2 vùng lỗi

- Bùng nổ: Là vùng trong đó BER cục bộ vượt quá một giá trị ngưỡng nhấtđịnh

- Khoảng lỗi chùm: Vùng giữa 2 vùng lỗi chùm liên tiếp

- Cluster: Vùng không có bất kì một bit đúng nào xen giữa

2.1.1 Lỗi bit đơn

Thật ngữ lỗi bit đơn có nghĩa là các lỗi bit riêng lẻ, phân bố ngẫu nhiên trong gói sốliệu Để hiểu tầm ảnh hưởng của thay đổi đó hình dung rằng mỗi nhóm 8 bit là một

ký tự ASC với một bit 0 được bổ sung vào bên trái [1]

Trong Hình 2-2, 00001010 được gửi đi, nhưng bên nhận lại nhận được 00000010

Lỗi

Truyền

Nhận

Trang 20

Hình 2-2: Lỗi bit đơn

Các lỗi bit đơn là kiểu lỗi ít xảy ra trong truyền dữ liệu nối tiếp Chẳng hạn thựchiện gửi dữ liệu với tốc độ truyền 1 Mbps Có nghĩa là một bit chỉ xảy ra trongkhoảng 1/1.000.000 giây hay 1 micro giây Để lỗi bit đơn xảy ra, nhiễu phải nằmtrong khoảng 1 micro giây, điều đó khó có thể xảy ra vì nhiễu thường kéo dài hơnnhiều so với khoảng đó Tuy nhiên, lỗi bit đơn có thể xảy ra nếu gửi dữ liệu truyềnsong song Ví dụ, nếu có 10 đường song song được sử dụng để gửi tất cả 10 bit ởcùng một thời điểm, một trong những đường đó bị sai lệch, một bit có thể bị thayđổi trong mỗi byte Ví dụ truyền dẫn song song từ máy tính và máy chiếu

2.1.2 Lỗi bit chùm

Thuật ngữ lỗi bit chùm có nghĩa là 2 hay nhiều bit trong đơn vị dữ liệu truyền bịđảo bit 1 thành bit 0 và từ 0 thành 1 [1]

Hình 2-3: Lỗi bit chùm

Trong trường hợp này, 00001010 được gửi, nhưng bên nhận thì nhận được

01000011 Chú ý là lỗi bit hàng loạt không phải luôn luôn xảy ra ở các bit liên tiếpnhau Một số bit nằm giữa có thể không bị ảnh hưởng

2.2 Phương pháp phát hiện lỗi VRC

Mỗi xâu bit biểu diễn ký tự truyền đi được thêm và 1 bit, gọi là parity bit [1]

 Quy ước:

- Chẵn: Tổng số bit 1 có trong khối dữ liệu (cả bit parity) là số chẵn.

Truyền

Nhận

Trang 21

- Lẻ: Tổng số bit 1 có trong khối dữ liệu (cả bit parity) là số lẽ.

Bên nhận dữ liệu, mạch sẽ xem xét từng khối dữ liệu nhận được để coi có tổng sốbit là chẵn(lẽ) hay chưa Nếu không nghĩa là có 1 bit nào đó trong khối dữ liệu bịsai lệch Ngược lại là mạch truyền đúng

 Nhận xét:

- Chỉ dò được lỗi sai số bit lẽ

- Không sửa được lỗi

- Ít được dùng trong truyền dữ liệu đi xa, đặc biệt ở tốc độ cao (hiệu suất

truyền thông tin kém).

2.3 Phương pháp phát hiện lỗi CRC

Một kỹ thuật dễ dàng và hiệu quả, và cải tiến hơn được gọi là kiểm tra phần dư tuầnhoàn CRC [1]

Trong đó có một số phương pháp khác nhau như:

a Phương pháp Modulo

 Nguyên lý:

- CRC: Cyclic Redundancy Check.

- Nguyên tắc tạo mã: khung truyền gồm:

+ M: k bit dữ liệu

+ F: n bit kiểm tra FCS

+ T =2 r M + F (2.1)

T: Khung truyền (n + k) bit chia hết cho chuổi kiểm tra P (n+1) bit

- Nơi nhận kiểm tra lỗi bằng phương pháp chia T cho P, nếu chia không

hết thì chuỗi nhận được cho là có lỗi

b Cách tạo CRC:

Ta có:

- Khung truyền T dựa vào công thức (2.1)

- F được tạo bằng cách dời chuỗi M (k bit) sang trái n bit.

- Chia chuỗi 2r M cho chuỗi kiểm tra P (n+1) bit

- Số dư của phép chia chính là F (n bit).

Trang 22

2.4 Phương pháp phát hiện lỗi CheckSum

Tại nơi phát, bộ này chia các đơn vị dữ liệu thành các phân đoạn bằng nhau với nbit (thường là 16) Các phân đoạn này được cộng với nhau dùng cách thức bù 1 để

có kết quả cũng có n bit Giá trị này được lấy bù và gắn vào phần bên dưới của dữliệu gốc như là giá trị thừa, giá trị này được gọi là trường CheckSum Các đơn vị dữliệu mở rộng này được truyền qua bên nhận Vì thế, nếu tổng của đơn vị dữ liệu là

T, thì CheckSum là T

Bên nhận chia nhỏ đơn vị dữ liệu để hình thành các phân đoạn và lấy các giá trị bù.Nếu đơn vị dữ liệu còn nguyên, giá trị có đã tính được từ phép cộng các phân đoạn

dữ liệu và CheckSum đều bằng 0 Nếu kết quả khác 0, thì khối dữ liệu có chứa lỗi

và nơi nhận sẽ loại bỏ đơn vị dữ liệu này [1]

 Nhận xét:

- CheckSum phát hiện được tất cả các lỗi bit lẻ và hầu hết các bit chẵn

- Thuận lợi khi dữ liệu được tổ chức theo dạng ký tự

- Độ tin cậy tương đối cao nhưng vẫn còn sót lỗi

2.5 Phương pháp phát hiện và sửa lỗi bit bằng mã Hamming

Trong kĩ thuật truyền số liệu, mã Hamming là một mã sửa lỗi tuyến tính được đặttheo tên người phát minh ra nó, Richard Hamming Mã Hamming có thể phát hiệnmột bit hoặc hai bit bị lỗi và có thể sửa sai các lỗi đơn bit [1]

 Thuật toán dùng trong mã Hamming:

- Các bit ở vị trí là lũy thừa của 2 được dùng làm bit kiểm tra (các vị trínhư 1, 2, 4, 8, 16…)

- Các bit ở các vị trí còn lại dùng cho việc truyền dữ liệu (các vị trí như 3,

5, 6, 7, 9,…)

- Như vậy, nếu dùng m bit kiểm tra thì kiểm tra được 2m – 1 bit dữ liệu.Tổng số bit dữ liệu truyền là m + n

Các giá trị Pi được tính dựa vào 2 yếu tố:

- Quy ước chẵn lẻ giữa bên gửi và bên nhận

- Sự đóng góp của Pi vào việc hình thành vị trí bit

Trang 23

Nghĩa là: Với bit kiểm tra Pi, bit tác động bắt đầu từ vị trí 2i, bỏ qua 2i bit kếtiếp, tác động vào 2i bit tiếp theo.

+ Với i = 0, các bit bị tác động là 1, 3, 5, 7…

+ Với i = 1, các bit bị tác động là 2, 3, 6, 7, 10, 11…

+ Với i = 2, các bit bị tác động là 4, 5, 6, 7, 12, 13, 14, 15…

+ Với i = 3, các bit bị tác động là 8, 9, 10, 11, 12, 13, 14, 15, 24, 24…+ Với i = 4, các bit bị tác động là 16, 17, 18, 19, 20, 21, 22, 23, 24,25…

Ví dụ: cho chuỗi bit cần truyền là A = 1101100111 Sử dụng mã Hamming

để mã hóa và truyền dữ liệu

- Giả sử quy ước chẵn lẻ là chẵn:

- Chèn các bit kiểm tra ( kí hiệu là P0, P1, P2, P3 ) vào các vị trí, ta đượcchuỗi mới:

 Phía nhận nhận dữ liệu và kiểm tra bằng việc tính toán lại giá trị các bit kiểm tra

Sử dụng hàm xor để tính giữa các bit kiểm tra nhận được và các bit kiểm tra vừatính lại(E3E2E1E0) gọi là Syndrome, nếu Syndrome bằng “0” thì việc truyền làkhông có lỗi Nếu có bit bằng “1” thì chuỗi bit E3E2E1E0 là chỉ vị trí bit lỗi

P0= 0P1= 1P2= 0P3 = 0

Trang 24

Ví dụ chuỗi dữ liệu trên, ở phía thu nhận được chuỗi bit: 11011100110110 sai ở bitthứ 9:

 Bỏ đi cách bit kiểm tra, chuỗi dữ liệu đúng là: A = 1101100111

CHƯƠNG 3 THIẾT KẾ BỘ PHÁT HIỆN VÀ SỬA LỖI BIT DÙNG

P0= 1P1= 1P2= 0P3 = 1

Trang 25

Hình 3-1: Hệ thống thu phát tín hiệu EDAC

3.1 Hệ thống phát hiện và sửa lỗi bit (EDAC)

Dựa vào nguyên lý mã Hamming để phát hiện và sửa lỗi bit, nhưng để tạo một hệthống hoàn chỉnh phía phát sẽ chèn thêm 1 bit Parity kiểm tra chẵn toàn bộ dữ liệuphát và bit kiểm tra truyền đến bộ nhận dữ liệu

Tại bộ nhận dữ liệu hệ thống tính lại các bit kiểm tra và kiểm tra Parity chẵn toàn bộlại dữ liệu nhận được gọi là OverallParity Sau đó dựa vào Syndrome và bitOverallParity để xác định loại lỗi bit và vị trí bit lỗi

- Khi Syndrome = 00000 và OverallParity = 0  hệ thống không lỗi

- Khi Syndrome ≠ 00000 và OverallParity = 1  hệ thống lỗi 1 bit

- Khi Syndrome ≠ 00000 và OverallParity = 0  hệ thống lỗi 2 bits

- Khi Syndrome = 00000 và OverallParity = 1  hệ thống lỗi bit Parity

 P(1) = 0

Dữ liệu vào

(16 bits)

TX EDAC

RX EDAC

Điều khiển phát dữ liệu

Điều khiển thu dữ liệu

Dữ liệu phát/nhận (22 bits)

Dữ liệu ra (16 bits)

Trang 26

Tại P(2) kiểm tra chẵn dữ liệu đầu vào:

 P(6) = 1

Vậy các bit kiểm tra và bit Parity chèn vào dữ liệu N(22-1) 22 bits phát đi là:

N= P(6) D(16) D(15) D(14) D(13) D(12) P(5) D(11) D(10) D(9) D(8) D(7) D(6)D(5) P(4) D(4) D(3) D(2) P(3) D(1) P(2) P(1)

Trang 27

Ta có:

- OverallParity = 1

- Syndrome = 00110  vị trí bit thứ 6 sai

Sau đó, hệ thống sửa lỗi vị trí bit sai và đưa dữ liệu đúng ra

Thiết kế và thực thi FPGA cho bộ phát hiện và sửa lỗi bit

Bộ giải

mã Syndrome DecodeSyn[21:0]

TR_Data[21:0]

P[4:0]

Bộ tạo bit kiểm tra

Bộ tạo Syndrome

Bộ sửa lỗi bit dữ liệu

Bộ phát hiện loại

Bộ tạo bit kiểm tra toàn

Ngày đăng: 27/02/2018, 10:43

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[3] Wikipedia, Mã Hamming (https://vi.wikipedia.org/wiki/Mã_Hamming).Tiếng anh Sách, tạp chí
Tiêu đề: Mã Hamming
Nhà XB: Wikipedia
[4] Douglas J Smith (1996), HDL Chip Design, pp. 369-378 Sách, tạp chí
Tiêu đề: HDL Chip Design
Tác giả: Douglas J Smith
Năm: 1996
[5] Chang K. C (1999), Digital systems design with VHDL and synthesis, pp.390-407 Sách, tạp chí
Tiêu đề: Digital systems design with VHDL and synthesis
Tác giả: Chang K. C
Năm: 1999
[2] Tống Văn On, Thiết kế mạch số với VHDL & Verilog Khác
[7] William Stallings (2006), Computer Organization and Architecture (8th Edition), pp. 169-173 Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w