I.Giới thiệu Mã hóa và Giải mã
Mã hóa và giải mã không có gì xa lạ và là tất yếu trong đời sống chúng ta.
Nó được dùng để dễ nhớ, dễ đặt, dễ làm,…là quy ước chung cũng có thể phổ biến cũng có thể bí mật.
Chẳng hạn dùng chữ để đặt tên cho 1 con đường, cho 1 con người, dùng số trong mã số sinh viên, trong thi đấu thể thao, quy ước đèn xanh, đỏ, vàng tương ứng là cho phép đi,đứng, dừng trong giao thông, rồi viết bức thư sử dụng chữ viết tắt, kí hiệu riêng để giữ bí mật hay phức tạp hơn là phải mã hoá các thông tin dùng trong tình báo, vv…
Thông tin đã được mã hoá rồi thì khi dũng cũng phải giải mã nó và ta chỉ giải được khi chấp nhận, thực hiện theo đúng những quy ước, điều kiện có liên quan chặt chẽ tới mã hoá.
Trong mạch số, tất nhiên thông tin cũng phải được mã hoá hay giải mã ở dạng số.Trong những mục này, ta sẽ xem xét cụ thể cách thức, cấu trúc, ứng dụng của mã hoá giải mã số như thế nào.
Trong các hệ thống số kể cả viễn thông, máy tính,các đường điều khiển tuỳ chọn hay dữ liệu được truyền đi hay xử lí đều phải ở dạng số hệ 2 chỉ gồm 1 và 0,có nhiều đường tín hiệu chỉ có 1 bit như đường điều khiển mở nguồn cho mạch ở mức 1,rồi có nhiều đường địa chỉ nhiều bit chẳng hạn 110100 để CPU xác định địa chỉ trong bộ nhớ,rồi dữ liệu dạng hex gửi xuống máy in cho in ra kí tự.
Tất cả các tổ hợp bit đó được gọi là các mã số (code) hay mã. Và mạch tạo ra các mã số gọi là mạch mã hoá (lập mã: encoder).
II.MÃ HOÁ 8 ĐƯỜNG SANG 3 ĐƯỜNG
Mạch mã hoá 8 đường sang 3 đường còn gọi là mã hoá bát phân sang nhị phân (có 8 ngõ vào chuyển thành 3 ngõ ra dạng số nhị phân 3 bit.
Trong bất cứ lúc nào cũng chỉ có 1 ngõ vào ở mức tích cực tương ứng với chỉ một tổ hợp mã số 3 ngõ ra; tức là mỗi 1 ngõ vào sẽ cho ra 1 mã số 3 bit khác nhau. Với 8 ngõ vào (I0 đến I7) thì sẽ có 8 tổ hợp ngõ ra nên chỉ cần 3 ngõ ra (Y2, Y1, Y0).
Hình 2.1.1 Khối mã hoá 8 sang 3
Bảng trạng thái mạch mã hoá 8 sang 3
Từ bảng trên, ta có :
- Y0 = I1 + I3 + I5 + I7
- Y1 = I2 + I3 + I6 + I7
- Y2 = I4 + I5 + I6 +I7
Dựa vào 3 biểu thức trên ta có thể vẽ được mạch logic như hình dưới đây :
Hình 2.1.2 Cấu trúc mạch mã hoá 8 sang 3
III.MẠCH MÃ HOÁ 10 ĐƯỜNG SANG 4 ĐƯỜNG
Xét mạch hình 2.1.3
Mạch gồm bàn phím 10 phím nhấn từ SW0 đến SW9.
Các phím thường hở để các đường I0 đến I9 ở thấp do có điện trở khoảng nối xuống mass.
Trong 1 thời điểm chỉ có 1 phím được nhấn để đường đó lên cao, các đường khác đều ở thấp.
Khi 1 phím nào đó được nhấn thì sẽ tạo ra 1 mã nhị phân tương ứng và sẽ làm sáng led nào nối với bit 1 của mã số ra đó. Mã này có thể được bộ giải mã sang led 7 đoạn để hiển thị.
Ví dụ khi nhấn phím SW2 mã sẽ tạo ra là 0010 và led hiển thị số 2. Như vậy mạch đã sử dụng 1 bộ mã hoá 10 đường sang 4 đường hay còn gọi là mạch chuyển đổi mã thập phân sang BCD.
Hình 2.1.3 Mạch mã hoá 10 sang 4 và đèn led hiển thị
Rõ ràng với 10 ngõ vào, 4 ngõ ra; đây là 1 bài toán thiết kế mạch logic tổ hợp đơn giản sử dụng các cổng nand như hình dưới đây :
Hình 2.1.4 Cấu trúc mạch mã hoá 10 sang 4
Và đây là bảng sự thật của mạch mã hoá 10 đường sang 4 đường
Trong thực tế hệ thống số cần sử dụng rất nhiều loại mã khác nhau như mã hex,nạp cho vi điều khiển, mã ASCII mã hoá từ bàn phím máy tính dạng in kí tự rồi đến các mã phức tạp khác dùng cho truyền số liệu trên mạng máy tính, dùng trong viễn thông, quân sự.
Tất cả chúng đều tuân theo quy trình chuyển đổi bởi 1 bộ mã hoá tương đương.
IV.MẠCH MÃ HOÁ ƯU TIÊN
Với mạch mã hoá được cấu tạo bởi các cổng logic như ở hình trên ta có nhận xét rằng trong trường hợp nhiều phím được nhấn cùng 1 lúc thì sẽ không thể biết được mã số sẽ ra là bao nhiêu.
Do đó để đảm bảo rằng khi 2 hay nhiều phím hơn được nhấn, mã số ra chỉ tương ứng với ngõ vào có số cao nhất được nhấn, người ta đã sử dụng mạch mã hoá ưu tiên.
Rõ ràng trong cấu tạo logic sẽ phải thêm 1 số cổng logic phức tạp hơn, IC 74LS147 là mạch mã hoá ưu tiên 10 đường sang 4 đường, nó đã được tích hợp sẵn tất cả các cổng logic trong nó. Kí hiệu khối của 74LS147 như hình 2.1.5 ở bên dưới:
Hình 2.1.5 IC74LS147
Bảng sự thật của 74LS147
Nhìn vào bảng sự thật ta thấy thứ tự ưu tiên giảm từ ngõ vào 9 xuống ngõ vào 0.
Chẳng hạn khi ngõ vào 9 đang là 0 thì bất chấp các ngõ khác (X) số BCD ra vẫn là 1001 (qua cổng đảo nữa).
Chỉ khi ngõ vào 9 ở mức 1 (mức không tích cực) thì các ngõ vào khác mới có thể được chấp nhận, cụ thể là ngõ vào 8 sẽ ưu tiên trước nếu nó ở mức thấp.
Với mạch mã hoá ưu tiên 8 đường sang 3 đường, cũng có IC tương ứng là 74LS148.