Mạch mã hóa hay encoder là một mạch tổ hợp thực hiện hoạt động ngược lại của mạch giải mã. Nó có tối đa 2n dòng đầu vào và ‘n’ dòng đầu ra. Nó sẽ tạo ra một mã nhị phân tương đương với đầu vào, là giá trị cao đang hoạt động. Do đó, mạch mã hóa mã hóa 2n dòng đầu vào với các bit ‘n’.
Mạch mã hóa 4 sang 2
Mạch mã hóa 4 sang 2 có bốn đầu vào Y3, Y2, Y1 & Y0 và hai đầu ra A1 & A0. Sơ đồ khối của mạch mã hóa 4 sang 2 như hình dưới.
Tại bất kỳ thời điểm nào, chỉ một trong 4 đầu vào này có thể là ‘1’ để nhận được mã nhị phân tương ứng ở đầu ra. Bảng chân trị của mạch mã hóa 4 sang 2 như bên dưới.
Từ bảng chân trị, chúng ta có thể viết các hàm Boolean cho mỗi đầu ra như sau
A1 = Y3 + Y2
A0 = Y3 + Y1
Chúng ta có thể thực hiện hai hàm Boolean trên bằng cách sử dụng hai cổng OR đầu vào. Sơ đồ mạch mã hóa 4 sang 2 như hình dưới.
Sơ đồ mạch trên chứa hai cổng OR. Các cổng OR này mã hóa bốn đầu vào bằng hai bit.
Mạch mã hóa 8 sang 3
Mạch mã hóa 8 sang 3 có tám đầu vào, Y7 đến Y0 và ba đầu ra A2, A1 & A0. Mạch mã hóa 8 sang 3 chính là mạch mã hóa bát phân sang nhị phân. Sơ đồ khối của mạch mã hóa 8 sang 3 như hình dưới.
Tại bất kỳ thời điểm nào, chỉ một trong tám đầu vào này có thể là ‘1’ để nhận mã nhị phân tương ứng. Bảng chân trị của mạch mã hóa 8 sang 3 như bên dưới.
Từ bảng chân trị, chúng ta có thể viết các hàm Boolean cho mỗi đầu ra như sau
A2 = Y7 + Y6 + Y5 + Y4
A1 = Y7 + Y6 + Y3 + Y2
A0 = Y7 + Y5 + Y3 + Y1
Chúng ta có thể triển khai các hàm Boolean ở trên bằng cách sử dụng bốn cổng OR đầu vào. Sơ đồ mạch mã hóa 8 sang 3 như hình bên dưới.
Sơ đồ mạch trên chứa ba cổng OR 4 đầu vào. Các cổng OR này mã hóa tám đầu vào bằng ba bit.
Hạn chế của mạch mã hóa
Sau đây là những hạn chế của mạch mã hóa thông thường.
Có một sự không rõ ràng, khi tất cả các đầu ra của mạch mã hóa đều bằng không. Bởi vì, nó có thể là mã tương ứng với các đầu vào, khi chỉ có đầu vào ít quan trọng nhất là 1 hoặc khi tất cả các đầu vào bằng 0.
Nếu nhiều hơn một đầu vào đang hoạt động cao, thì bộ mã hóa tạo ra một đầu ra, có thể không phải là mã chính xác. Ví dụ: nếu cả Y3 và Y6 đều là ‘1’, thì bộ mã hóa tạo ra 111 ở đầu ra. Đây không phải là mã tương đương tương ứng với Y3, khi nó là ‘1’ cũng không phải là mã tương đương tương ứng với Y6, khi nó là ‘1’.
Vì vậy, để khắc phục những khó khăn này, chúng ta nên phân quyền ưu tiên cho từng đầu vào của mạch mã hóa. Sau đó, đầu ra của mạch mã hóa sẽ là mã nhị phân tương ứng với các đầu vào Cao đang hoạt động, có mức ưu tiên cao hơn. Mạch mã hóa này được gọi là mạch mã hóa ưu tiên.
Mạch mã hóa ưu tiên
Mạch mã hóa ưu tiên 4 sang 2 có bốn đầu vào Y3, Y2, Y1 & Y0 và hai đầu ra A1 & A0. Ở đây, đầu vào, Y3 có mức ưu tiên cao nhất, trong khi đầu vào, Y0 có mức ưu tiên thấp nhất. Trong trường hợp này, ngay cả khi nhiều hơn một đầu vào là ‘1’ cùng một lúc, thì đầu ra sẽ là mã nhị phân tương ứng với đầu vào, có mức độ ưu tiên cao hơn.
Chúng ta xem xét thêm một đầu ra nữa, V để biết mã có sẵn ở đầu ra có hợp lệ hay không.
Nếu ít nhất một đầu vào của mạch mã hóa là "1", thì mã có sẵn ở các đầu ra là mã hợp lệ. Trong trường hợp này, đầu ra, V sẽ bằng 1.
Nếu tất cả các đầu vào của mạch mã hóa là '0', thì mã có sẵn ở các đầu ra không phải là mã hợp lệ. Trong trường hợp này, đầu ra, V sẽ bằng 0.
Bảng chân trị của mạch mã hóa ưu tiên 4 sang 2 như bên dưới.
Sử dụng 4 bản đồ K biến để nhận được các biểu thức đơn giản hóa cho mỗi đầu ra.
Các hàm Boolean được đơn giản hóa là
A1 = Y3 + Y2
A0 = Y3 + Y2′Y1
Tương tự, chúng ta sẽ nhận được hàm Boolean của đầu ra, V là
V = Y3 + Y2 + Y1 + Y0
Chúng ta có thể thực hiện các hàm Boolean ở trên bằng cách sử dụng các cổng logic. Sơ đồ mạch mã hóa ưu tiên 4 sang 2 như hình bên dưới.
Sơ đồ mạch trên chứa hai cổng OR 2 đầu vào, một cổng OR 4 đầu vào, một cổng AND 2 đầu vào & một inverter. Ở đây, kết hợp cổng AND và inverter được sử dụng để tạo ra mã hợp lệ ở các đầu ra, ngay cả khi nhiều đầu vào bằng ‘1’ tại cùng một thời điểm. Do đó, mạch này mã hóa bốn đầu vào với hai bit dựa trên mức độ ưu tiên được gán cho mỗi đầu vào.
>>> Liên hệ ngay với Điện Tử Tương Lai nếu bạn cần thiết kế mạch in để được tư vấn
Hotline: 0979 466 469