Bài giảng Thiết kế mạch Logic và Analog
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Thiết kế mạch Logic và Analog", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_thiet_ke_mach_logic_va_analog.pdf
Nội dung text: Bài giảng Thiết kế mạch Logic và Analog
- ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG KHOA CÔNG NGHỆ ĐIỆN TỬ VÀ TRUYỀN THÔNG BÀI GIẢNG : THIẾT KẾ MẠCH LOGIC VÀ ANALOG ( Tài liệu lưu hành nội bộ) Thái nguyên, tháng 10 năm 2012 1
- PHẦN I: THIẾT KẾ MẠCH LOGIC Chương I: Đại số boole và các linh kiện điện tử số 1.1. Một số khái niệm cơ bản - BiÕn logic: §¹i l•îng biÓu diÔn b»ng ký hiÖu nµo ®ã chØ lÊy gi¸ trÞ "1" hoÆc "0". - Hµm logic: BiÓu diÔn nhãm c¸c biÕn logic liªn hÖ víi nhau th«ng qua c¸c phÐp to¸n logic, mét hµm logic cho dï lµ ®¬n gi¶n hay phøc t¹p còng chØ nhËn gi¸ trÞ hoÆc lµ "1" hoÆc lµ "0". - C¸c phÐp to¸n logic: cã 3 phÐp to¸n c¬ b¶n. PhÐp nh©n (vµ) - kÝ hiÖu lµ AND. PhÐp céng (hoÆc) - kÝ hiÖu lµ OR. PhÐp phñ ®Þnh (®¶o) - kÝ hiÖu lµ NOT 1.1.1. BiÓu diÔn biÕn vµ hµm logic b. B¶ng thËt, b¶ng tr¹ng th¸i: *B¶ng thËt : Quan hÖ hµm ra víi biÕn vµo ë thêi ®iÓm hiÖn t¹i. *B¶ng tr¹ng th¸i: Hµm ra kh«ng nh÷ng phô thuéc vµo biÕn vµo ë thêi ®iÓm hiÖn t¹i mµ cßn phô thuéc vµo (tr¹ng th¸i) qu¸ khø cña nã. B¶ng thËt f(A,B)= A+B B¶ng tr¹ng th¸i b. B×a Karnaught ( B×a c¸c n«). BiÓu diÔn t•¬ng ®•¬ng b¶ng thËt. Mçi dßng cña b¶ng thËt øng víi mét « cña b×a c¸c n«. To¹ ®é cña « ®•îc quy ®Þnh bëi gi¸ trÞ tæ hîp biÕn, gi¸ trÞ cña hµm t•¬ng øng víi tæ hîp biÕn ®•îc ghi trong «. 2
- 1.1.2. Mét sè tÝnh chÊt cña hµm nh©n, céng, phñ ®Þnh: - Tån t¹i phÇn tö trung tÝnh duy nhÊt cho phÐp "nh©n", phÐp "céng". A + 0 = A; 0 - PhÇn tö trung tÝnh cho phÐp tÝnh "céng". A.1 = A ; 1 - PhÇn tö trung tÝnh cho phÐp "nh©n". - Ho¸n vÞ: A + B = B + A ; A. B = B. A. - KÕt hîp (A + B) + C = A + (B + C) = (A + C) + B (A . B) . C = A . (B . C) = (A . C) . B - Ph©n phèi : A.(B + C) = A.B + A.C - Kh«ng cã sè mò, kh«ng cã hÖ sè. A +A + . . . + A = A ; A.A . . . A = A. - Bï : A A ; A A 1; A.A 0 * §Þnh lý Demorgan: Tr•êng hîp thæng qu¸t : f[xi , , ] f[xi , , ] ThÝ dô: X Y X .Y ; X .Y X Y (§¶o cña mét tæng b»ng tÝch c¸c ®¶o, ®¶o cña mét tÝch b»ng tæng c¸c ®¶o) 1.1.3. BiÓu diÔn gi¶i tÝch c¸c hµm logic Víi c¸c kÝ hiÖu hµm, biÕn vµ c¸c phÐp tÝnh gi÷a chóng. Cã hai d¹ng gi¶i tÝch ®•îc sö dông lµ. + D¹ng tuyÓn: Hµm ®•îc cho d•íi d¹ng tæng cña tÝch c¸c biÕn. + D¹ng héi: Hµm ®•îc cho d•íi d¹ng tÝch cña tæng c¸c biÕn. + D¹ng tuyÓn chÝnh quy: NÕu mçi sè h¹ng chøa ®Çy ®ñ mÆt c¸c biÕn. +D¹ng tuyÓn kh«ng chÝnh quy: ChØ cÇn Ýt nhÊt mét sè h¹ng chøa kh«ng ®Çy ®ñ mÆt c¸c biÕn. + Héi chÝnh quy: NÕu mçi thõa sè chøa ®Çy ®ñ mÆt c¸c biÕn. + Héi kh«ng chÝnh quy: chØ cÇn Ýt nhÊt mét thõa sè kh«ng chøa ®Çy ®ñ mÆt c¸c biÕn. 3
- ThÝ dô: f(X,Y,Z) = X.Y.Z XYZ XYZ XYZ (tuyÓn chÝnh quy) f(X,Y,Z) = X.Y. XYZ XYZ XZ (tuyÓn kh«ng chÝnh quy) f(x,y,z) = (X +Y + Z).(X + Y + Z).( X Y Z ). (héi chÝnh quy). f(x,y,z) = (X +Y +Z).(Y + Z).(Z + + X ). (héi kh«ng chÝnh quy). a. BiÓu diÔn hàm d¹ng tuyÓn chÝnh quy Nguyªn t¾c : - Gi¸ trÞ cña hµm thµnh phÇn chØ nhËn gi¸ trÞ mét. - Sè h¹ng lµ tæng cña tÝch c¸c biÕn. ZABCABC - NÕu gi¸ trÞ cña hµm thµnh phÇn b»ng kh«ng ta lo¹i sè h¹ng ®ã. - ChØ quan t©m ®Õn c¸c tæ hîp biÕn t¹i ®ã hµm thµnh phÇn nhËn trÞ "1". - Sè sè h¹ng b»ng sè lÇn hµm thµnh phÇn nhËn trÞ "1". - Trong biÓu thøc logic c¸c biÕn nhËn trÞ "1" gi÷ nguyªn, biÕn nhËn trÞ"0" ta lÊy phñ ®Þnh. ThÝ dô : Cho hµm logic d¹ng tuyÓn nh• sau: Z = F(A, B, C) = (1,2,3,5,7) T¹i c¸c tæ hîp biÕn 1, 2, 3, 5, 7 cña biÕn vµo hµm nhËn trÞ "1") b. BiÓu diÔn hµm d¹ng héi chÝnh quy Nguyªn t¾c: - Gi¸ trÞ cña hµm thµnh phÇn chØ nhËn gi¸ trÞ kh«ng. - Sè h¹ng lµ tÝch cña tæng c¸c biÕn tæng c¸c biÕn . ZABCABC ( ).( ) - NÕu gi¸ trÞ cña hµm thµnh phÇn b»ng gi¸ mét, th× thõa sè ®ã bÞ lo¹i bá. - Hµm chØ quan t©m ®Õn c¸c tæ hîp biÕn t¹i ®ã hµm thµnh phÇn nhËn trÞ "0". - Sè thõa sè b»ng sè lÇn hµm thµnh phÇn nhËn trÞ "0" . 4
- - Trong biÓu thøc logic c¸c biÕn nhËn trÞ "0" gi÷ nguyªn, c¸c biÕn nhËn trÞ "1" ta lÊy phñ ®Þnh. ThÝ dô : Cho hµm logic d¹ng héi nh• sau: Z = F(a,b,c) = (0,4,6). T¹i c¸c tæ hîp biÕn 0, 4, 6 hµm logic nhËn trÞ "0" 1.2. Các hàm logic cơ bản 1.2.1 Hàm VÀ - AND Phương trình Bảng chân lý Ký hiệu và sơ đồ chân Y=A.B A B Y 0 0 0 0 1 0 1 0 0 1 1 1 Đối với hàm VÀ giá trị của hàm chỉ bằng 1 khi các biến của nó đều bằng 1; hay chỉ cần có một biến bằng 0 hàm sẽ có giá trị bằng 0 Các IC AND thông dụng AND 3 lối vào AND 3 lối vào AND 2 lối vào AND 4 lối vào 5
- 1.2.2 Hàm HOẶC – OR Phương trình Bảng chân lý Ký hiệu và sơ đồ chân Y=A+B A B Y 0 0 0 0 1 1 1 0 1 1 1 1 Đối với hàm HOẶC giá trị của hàm chỉ bằng 0 khi các biến của nó đều bằng 0; hay chỉ cần có một biến bằng 1 hàm sẽ có giá trị bằng 1 Các IC OR thông dụng khác AND 2 lối vào AND 3 lối vào AND 4 lối vào 1.2.3 Hàm ĐẢO - NOT Phương trình Bảng chân lý Ký hiệu và sơ đồ chân Y=Ā A Y 0 1 1 0 6
- Đối với hàm NOT giá trị của hàm sẽ là đảo của giá trị biến. Khi biến có giá trị bằng 0 thì hàm bằng 1 ngược lại khi biến bằng 1 thì hàm có giá trị bằng 0. 1.2.4. Hàm Hoặc tuyệt đối - XOR Phương trình Bảng chân lý Ký hiệu và sơ đồ chân A B Y 0 0 0 0 1 1 1 0 1 1 1 0 Ta thấy giá trị của hàm sẽ bằng 1 khi các biến có giá trị khác nhau. Ngược lại giá trị của hàm có giá trị bằng 0 khi giá trị của các biến là bằng nhau (cùng bằng 0 hay 1) 1.2.5 Hàm hoặc đảo - NOR Phương trình Bảng chân lý Ký hiệu và sơ đồ chân A B Y 0 0 1 0 1 0 1 0 0 1 1 0 7
- Đối với hàm NOR giá trị của hàm sẽ bằng 1 khi toàn bộ giá trị của biến bằng 0. Ngược lại, một trong các giá trị của biến bằng 1 giá trị của hàm có giá trị bằng 0. Hay nói khác đi nó là hàm đảo của hàm OR. Một số IC NOR khác NOR 3 lối vào NOR 2 lối vào NOR 4 lối vào NOR 3 lối vào NOR 8 lối vào 1.2.6 Hàm Và đảo - NAND Phương trình Bảng chân lý Ký hiệu và sơ đồ chân A B Y 0 0 1 0 1 1 1 0 1 1 1 0 Đối với hàm NAND giá trị của hàm sẽ bằng 0 khi toàn bộ giá trị của biến bằng 1. Ngược lại, một trong các giá trị của biến bằng 0 giá trị của hàm có giá trị bằng 1. Hay nói khác đi nó là hàm đảo của hàm AND 1.2.7 Hàm XNOR phương trình Bảng chân lý Ký hiệu và sơ đồ chân A B Y 0 0 1 0 1 0 1 0 0 1 1 1 Đối với hàm XNOR nếu các giá trị của biến là bằng nhau (đều bằng 1 hay bằng 0) thì giá trị của hàm sẽ là 1 ngược lại hàm có giá trị bằng 0. 8
- Thực chất 7 hàm trên chỉ có 3 hàm đầu tiên là các hàm cơ bản, 4 hàm còn lại có thể xây dựng từ 3 hàm trên. Ví dụ: + Hàm NOR là sự kết hợp của hàm NOR và hàm NOT. Hàm NOR Sự kết hợp của hàm NOR và NOT + Hàm NAND là sự kết hợp của hàm AND và NOT Hàm NAND Sự kết hợp của hàm AND và NOT + Hàm XOR là sự kết hợp của các hàm NAND hoặc hàm NOR Hàm XOR Sự kết hợp của hàm NAND Hàm XOR Sự kết hợp của hàm NOR Tuy nhiên việc tích hợp các mạch cơ bản để tạo ra các hàm khác sẽ rất hữu ích trong việc thiết kế mạch. Nó sẽ làm giảm đi số lượng IC trên một bo mạch, dẫn đến làm giảm chi phí cho mạch vì một IC XOR (74LS86) có chứa 4 phần tử XOR cũng có giá thành như một IC NAND hay IC NOR. 9
- 1.3. Tối thiểu hóa các hàm logic Mét hµm logic cã thÓ cã v« sè c¸ch biÓu diÔn gi¶i tÝch t•¬ng ®•¬ng. Tuy nhiªn chØ tån t¹i 1 c¸ch gän nhÊt tèi •u vÒ sè biÕn, sè sè h¹ng hay thõa sè vµ ®•îc gäi lµ tèi gi¶n. viÖc tèi gi¶n hµm logic mang ý nghÜa quan träng vÒ ph•¬ng diÖn kinh tÕ, kü thuËt. §Ó tèi thiÓu ho¸ c¸c hµm logic ng•êi ta th•êng dïng ph•¬ng ph¸p ®¹i sè vµ ph•¬ng ph¸p b×a c¸c n«. 1.3.1. Ph•¬ng ph¸p ®¹i sè: BiÕn ®æi biÓu thøc logic dùa vµo c¸c tÝnh chÊt cña ®¹i sè Boole. ThÝ dô : A.B + A .B = B ; A+A.B = A ; A + .B = A + B. Ta chøng minh c¸c ®¼ng thøc trªn, theo tÝnh chÊt ®èi ngÉu: A.B + .B = B (A + B).( + B) = B. A + A.B = A A.(A + B) = A. A + .B = A + B A.( + B) = A.B. Quy t¾c 1: Nhãm c¸c sè h¹ng cã thõa sè chung. ThÝ dô: A.B.C + A.B. C = A.B(C + ) = A.B. Quy t¾c 2: §•a sè h¹ng ®· cã vµo biÓu thøc logic. A.B.C + .B.C + A. B .C + A.B. = = A.B.C + .B.C + A. .C + A.B.C + A.B. + A.B.C = B.C.(A + ) +A.C.(B + ) + A.B.(C + ) = B.C + A.C + A.B Quy t¾c 3: Cã thÓ lo¹i c¸c sè h¹ng thõa. A.B + .C + A.C = A.B + .C + A.C (B + ). = A.B + .C + A.B.C + A. .C = A.B + .C (lo¹i A.C) Ví dụ : Hày tối giản hàm sau bằng phương pháp đại số: Z = F(A, B, C) = (1,2,3,5,7) Giải: Tõ yªu cÇu cña bµi ta cã b¶ng chân lý nh• sau 10
- Từ bảng chân lý ta có phương trình trạng thái như sau: ZABCABCABCABCABCACBBABCACBB () () ZACACABCCABCCAB Mạch logic thực hiện: A 1 4 2 B 2 4 2 1 Z 3 C 1.3.2. Ph•¬ng ph¸p bảng Karnaught ( bìa các nô) a. CÊu t¹o: - Gåm 1 ®å h×nh c¸c « vu«ng, hµm cã n biÕn b¶ng cã 2n « (1 biÕn - 2 «, 2 biÕn - 4 «, 3 biÕn - 8 « - Thø tù cña c¸c « do gi¸ trÞ tæ hîp biÕn quy ®Þnh -Hai « ®•îc gäi lµ kÒ nhau, hoÆc ®èi xøng chØ kh¸c nhau 1 gi¸ trÞ cña biÕn. - Gi¸ trÞ cña hµm t•¬ng øng víi tæ hîp biÕn ®•îc ghi ngay trong « ®ã. - C¸c « t¹i ®ã gi¸ trÞ cña hµm kh«ng x¸c ®Þnh ®•îc ®¸nh b»ng dÊu "X". b. Nguyªn t¾c tèi gi¶n hµm logic trªn b×a c¸c n« - Thùc hiÖn nhãm c¸c « t¹i ®ã hµm nhËn trÞ "1" hoÆc "0" kÒ nhau hoÆc ®èi xøng, sè « trong mét nhãm d¸n ph¶i lµ sè luü thõa cña 2 (khi viÕt hµm d¹ng tuyÓn ta nhãm c¸c « cã gi¸ trÞ "1", d¹ng héi nhãm c¸c « cã gi¸ trÞ "0"). - Trong mét nhãm d¸n c¸c biÕn cã trÞ thay ®æi ta lo¹i, c¸c biÕn cã trÞ kh«ng ®æi gi÷ nguyªn, ®iÒu nµy cã nghÜa lµ sè « trong nhãm d¸n cµng nhiÒu th× sè biÕn bÞ lo¹i cµng t¨ng (2 « - lo¹i 1 biÕn, 4 « - lo¹i 2 biÕn 2m « - lo¹i m biÕn). 11
- - BiÓu thøc logic cã sè sè h¹ng hay thõa sè chÝnh b»ng sè nhãm d¸n. Khi viÕt hµm logic d•íi d¹ng tuyÓn c¸c biÕn cßn l¹i nhËn trÞ "1" ta gi÷ nguyªn, nhËn trÞ "0" ta lÊy phñ ®Þnh, khi viÕt hµm logic d•íi d¹ng héi th× ng•îc l¹i. - Mét « cã thÓ tham gia vµo nhiÒu nhãm d¸n. - C¸c « t¹i ®ã gi¸ trÞ hµm kh«ng x¸c ®Þnh ta coi t¹i « ®ã hµm cã thÓ lÊy gi¸ trÞ "1" hoÆc "0" tuú tõng tr•êng hîp cô thÓ. * Chó ý: Ph•¬ng ph¸p tèi gi¶n hµm logic trªn b×a c¸c n« chØ thÝch hîp víi hµm cã sè biÕn 6. Tr•êng hîp hµm cã sè biÕn lín h¬n 6, b¶ng c¸c n« rÊt phøc t¹p. 4 cét 2 hµng ( 3 hµm biÕn) 2 cét 4 hµng 3 hµm biÕn 4 hµng 4 cét (3 biÕn ) Ví dụ 1: Cho hàm số : YABCD( , , , ) 0,1,2,4,5,6,8,9,10,14 Xây dựng sơ đồ mạch logic thực hiện hàm chỉ dùng các phần tử NAND hai lối vào. Giải: Để thiết kế được mạch logic đầu tiên chung ta phải lập được bảng chân lý của hàm. 12
- STT A B C D F(A,B,C,D) 0 0 0 0 0 1 1 0 0 0 1 1 2 0 0 1 0 1 3 0 0 1 1 0 4 0 1 0 0 1 5 0 1 0 1 1 6 0 1 1 0 1 7 0 1 1 1 0 8 1 0 0 0 1 9 1 0 0 1 1 10 1 0 1 0 1 11 1 0 1 1 0 12 1 1 0 0 0 13 1 1 0 1 0 14 1 1 1 0 1 15 1 1 1 1 0 Lập bìa các nô tối giản hàm F C D AB 00 01 11 10 00 1 1 0 1 01 1 1 0 1 11 0 0 0 1 10 1 1 0 1 Phương trình trạng thái của hàm như sau: FABCDACBCCD(,,,) Xây dựng mạch logic từ phần tử NAND 2 đầu vào FABCDACBCCDACBCCDACBCCD(,,,) FABCDACBCCDACBCCD(,,,) Sơ đồ mạch logic 13
- A 2 1 3 2 1 B 2 3 1 3 2 1 2 3 1 2 F(A, B, C, D) 2 3 1 C 2 1 3 1 3 3 2 1 3 D 2 1 3 1 Hình 1.25: Sơ đồ mạch logic chỉ dùng phần tử NAND hai đầu vào Ví dụ 2: Cho hàm số: YABCD( , , , ) 0,1,3,7,8,9,11,12,13,15 , Xây dựng sơ đồ mạch logic thực hiện hàm chỉ dùng các phần tử NOR hai lối vào. Giải: Bảng chân lý của hàm như sau : STT A B C D F(A,B,C,D) 0 0 0 0 0 0 1 0 0 0 1 0 2 0 0 1 0 1 3 0 0 1 1 0 4 0 1 0 0 1 5 0 1 0 1 1 6 0 1 1 0 1 7 0 1 1 1 0 8 1 0 0 0 0 9 1 0 0 1 0 10 1 0 1 0 1 11 1 0 1 1 0 12 1 1 0 0 0 13 1 1 0 1 0 14 1 1 1 0 1 15 1 1 1 1 0 Lập bìa các nô tối giản hàm: 14
- F C D AB 00 01 11 10 00 0 0 0 1 01 1 1 0 1 11 0 0 0 1 0 0 0 1 10 Phương trình trạng thái của hàm: FABCDACBCCD(,,,)( )( )( ) Xây dựng mạch logic từ các phần tử NOR hai đầu vào. FABCDACBCCDACBCCDACBCCD(,,,)()()() () () FABCDACBCCDACBCCD(,,,)() Sơ đồ mạch logic như sau: A 2 1 2 3 1 3 2 1 2 3 1 2 F(A, B, C, D) B 2 3 1 1 3 3 C 2 1 3 2 D 2 1 1 3 3 Hình 1.26: Sơ đồ mạch logic chỉ dùng phần tử NOR hai đầu vào 15
- Chương 2: Thiết kế mạch logic tổ hợp 2.1. Mạch logic là gì Mạch logic là mạch gồm các phân tử logic AND, OR, NOR, NOT, NAND, XOR, XNOR để thực hiện các yêu cầu của bài toán đưa ra. Một mạch logic dù đơn giản hay phức tạp thì kết quả đâu ra của mạch cũng chỉ nhận một trong hai mức logic là “ 0 ” hoặc “ 1 ”. Vi dụ : Cho mạch logic sau : A 2 4 2 1 2 3 1 Z B 3 C Hình 2.1: Mạch logic 2.2. Quy trình thiết kế Quy trình thiết kế mạch logic như sau: + Xây dựng phương trình logic sử dụng các phương trình theo CTT, hay CTH hoặc có thể sử dụng bảng chân lý để biểu diễn + Sử dụng bảng karnaugh hoặc các phương pháp đại số để tối thiểu hóa hàm logic hoặc đưa hàm logic về dạng mà dễ thiết kế mạch +Thiết kế mạch cho chạy thử + Đánh giá tính ổn định của mạch ThÝ dô: ThiÕt kÕ m¹ch logic thùc hiÖn phÐp to¸n sau, dùng c¸c phÇn tö logic c¬ b¶n Z = F(A, B, C) = (1,2,3,5,7) Gi¶i: Ph©n tÝch yªu cÇu M¹ch cña chóng ta gåm cã 3 biÕn ®Çu vµo lµ A, B, vµ D vµ mét hµm ®Çu ra lµ Z . Ta cã s¬ ®å tæng qu¸t nh• sau A Z B Mạch logic C 16
- Hình 2.3: Sơ đồ mô phỏng Tõ yªu cÇu cña bµi ta cã b¶ng tr¹ng th¸i nh• sau Tèi gi¶n hµm ®Ó ®•a vÒ hµm tèi gi¶n nhÊt ZABCABCABCABCABCACBBABCACBB () () ZACACABCCABCCAB B•íc 4: VÏ s¬ ®å m¹ch logic thùc hiÖn bµi to¸n - X©y dùng m¹ch logic dïng phÇn tö NOR vµ OR ZCABCABCAB A 1 4 2 B 2 4 2 1 Z 3 C - X©y dùng m¹ch tõ phÇn tö OR vµ AND ZCAB . A 2 4 2 1 2 3 1 Z B 3 C 2.3. Thiết kế mạch số học 2.3.1. Thiết kế bộ cộng bán tổng ( HA-Half Adder ) Bộ cộng bán tổng thực hiện cộng hai sô nhị phân một bít Quy tắc cộng như sau: 17
- Hình 2.4: Sơ đồ mô phỏng Trong đó: a, b là số cộng, s là tổng của phép cộng, c là số nhớ Bảng chân lý mô tả hoạt động của mạch và phương trình logic như sau s a b a b a b c a. b Mạch cộng này chỉ cho phép cộng hai số nhị phân một bít mà không thực hiện cộng hai số nhị phân nhiều bít. Hình 2.5: Sơ đồ mạch logic cộng hai số nhị phân một bít 2.3.2. Thiết kế mạch cộng toàn phần ( FA- Full adder ) Hình 2.6: Sơ đồ mô phỏng mạch 18
- Trong đó Cn 1 : Số nhớ của lần cộng trước đó Cn : Số nhớ của lần cộng hiện tại Sn : Tổng hiện tại Bảng chân lý của mạch cộng toàn phần an bn Cn 1 Sn Cn 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 . Bảng trạng thái Tối giản hàm đầu ra bằng phương pháp bìa các nô Sn Cn Cn-1 Cn-1 0 1 0 1 abnn abnn 00 0 1 00 0 0 01 1 0 01 0 1 11 0 1 11 1 1 10 1 0 10 0 1 Phương trình trạng thái hàm Sn và Cn Snnnn abC 1 abCn n n 11 abC nnnn 1 abC n n a nnn b C 1 CCbCaababCabn nnnnnnnnnnn 1 () 1 1 Sơ đồ mạch cộng toàn phần 19
- Hình 2.7: Sơ đồ mạch cộng toàn phần 2.3.3. Mạch công hai số nhị phân 8 bit Để thực hiện phép cộng hai số nhị phân 8 bit ta sữ dụng 8 bộ FA nối tiếp với nhau như sơ đồ dưới đây ` . Cn S Cn Cn S Cn S Cn S Cn S Cn S S Cn S FA8 FA7 FA6 FA5 FA4 FA3 FA2 FA1 Cn-1 Cn-1 Cn-1 Cn-1 Cn-1 Cn-1 Cn-1 Cn-1 a a a a b a b an b a b a b n. b n n b n n b n n n n n n n n n n Hình 2.8: Sơ đồ khối mạch cộng hai số nhị phân 8 bit Theo sơ đồ thiết kế như trên thì chân Cn 1 của FA đầu tiên ( FA có trọng số thấp nhất) được nối với đất vì hai bít thấp nhất khi cộng với nhau sẻ không có bít nhớ của phép cộng trước đó. Trong khi các bít của FA sau phải đươc nối với bít tràn Cn (bit nhớ) của các FA trước đó, như vậy kết quả của FA sau không chỉ phụ thuộc vào hai bit đầu vào an , bn mà còn phụ thuộc vào kết quả của FA trước đó, điều này là logic với phép cộng toàn phần hai số nhiều bít. Ví dụ : Công hai số nhị phân 8 bit sau: an = 11110000 bn = 11001100 1 1 1 0 0 1 0 1 0 1 0 1 0 0 0 0 ` . Cn S Cn Cn S Cn S Cn S Cn S Cn S S Cn S FA8 FA7 FA6 FA5 FA4 FA3 FA2 FA1 Cn-1 Cn-1 Cn-1 Cn-1 Cn-1 Cn-1 Cn-1 Cn-1 1 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0 Kết quả phép cộng là: Sn =10111100 2.3.3. Thiết kế bộ bán trừ ( bộ trừ bán phần –HS ) Bộ bán trừ thực hiện trừ hai số nhị phân một bít 20
- Hình 2.9: Sơ đồ mô phỏng Trong đó a số bị từ, b số trừ , D là hiệu, B là số mượn Bảng chân lý mô tả hoạt động và sơ đồ mạch : Bảng trạng thái Hình 2.10: Sơ đồ mạch bán trừ Phương trình trạng thái Mạch trừ này chỉ cho phép trừ hai số nhị phân một bít mà không thực hiện trừ hai số nhị phân nhiều bít. 2.3.4. Thiết kế bộ trừ toàn phần ( FS- Full Subtractor) Sơ đồ mô phỏng : Hình 2.11: Sơ đồ mô phỏng Bảng chân lý mô tả họa động của mạch: an bn Bn 1 Dn Bn 0 0 0 0 0 0 0 1 1 1 21
- 0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 . Dn Bn Bn-1 Bn-1 0 1 0 1 abnn abnn 00 0 1 00 0 1 01 1 0 01 1 1 11 0 1 11 0 1 10 1 0 10 0 0 Ta có phương trình trạng thái các hàm đầu ra như sau : DabBnnnnnnnnn 1 abB 1 abBnn 11 abB nn a nnn b B 1 BaBnnn () 1 bB nn 1 ababBabn nnnnnn 1 Sơ đồ mạch logic như sau: Hình 2.12: Sơ đồ mạch trừ toàn phần 22
- 2.3.5. Mạch trừ hai số nhị phân 8 bit Để trừ hai số nhị phân 8 bit ta ghép 8 bộ trừ đầy đủ với nhau ta được sơ đồ như sau: ` Bn D Bn Bn D Bn D Bn D Bn D Bn D D Bn D FS8 FS7 FS6 FS5 FS4 FS3 FS2 F`S1 Bn-1 Bn-1 Bn-1 Bn-1 Bn-1 Bn-1 Bn-1 Bn-1 a a b a a a n b n a n b n b n a n b n n n n b n n b n a n b n n Hình 2.13: Sơ đồ khối mạch trừ hai số nhị phân 8 bit Theo sơ đồ thiết kế như trên thì chân Bn 1 của FS đầu tiên ( FS có trọng số thấp nhất) được nối với đất vì hai bít thấp nhất khi cộng với nhau sẻ không có bít nhớ của phép cộng trước đó. Trong khi các bít Bn 1 của FA sau phải đươc nối với bít tràn Bn (bit nhớ) của các FA trước đó, như vậy kết quả của FS sau không chỉ phụ thuộc vào hai bit đầu vào an , bn mà còn phụ thuộc vào kết quả của FS trước đó, điều này là logic với phép trừ toàn phần hai số nhiều bít. Ví dụ : trừ hai số nhị phân 8 bit sau: an 10110011 bn 11001010 1 1 1 0 1 0 1 0 1 1 0 1 1 0 0 1 ` Bn D Bn Bn D Bn D Bn D Bn D Bn D D Bn D FS8 FS7 FS6 FS5 FS4 FS3 FS2 F`S1 Bn-1 Bn-1 Bn-1 Bn-1 Bn-1 Bn-1 Bn-1 Bn-1 1 1 0 1 1 0 1 0 0 1 0 0 1 1 1 0 Kến quả phép trừ là : Dn 10001101 2.4. Thiết kế mạch so sánh 2.4.1. Mạch so sanh 1 bit Là mạch thực hiện chức năng so sánh hai số nhị phân 1 bít . Xét hai số nhị phân 1 bit a và b. Có các trường hợp sau đây: Về phương diện mạch điện, mạch so sánh 1 bít có hai ngõ vào và 3 ngõ ra. Các ngõ vào a và b là các bít cần so sánh. Các ngõ ra thể hiện kết quả so sánh: y1() a b , y2 () a b , y3() a b sơ đồ khối và bảng chân lý mạch so sánh như sau: 23
- Hình 2.14: Sơ đồ mô phỏng Bảng chân lý Từ bảng trạng thái ta có phương trình trạng thái và sơ đồ mạch logic như sau: 1 A 3 2 Y y1(a b) B Hình 2.15: Sơ đồ mạch so sánh 1 bit 2.4.2. Mạch so sanh hai số 8 bit Để thiết kế mạch so sánh hai số 8 bit ta sẻ thiết kế mạch so sánh hai số 1 bít. Dùng các phần tủ logic ta dễ dàng thiết kế được mạch so sánh 1 bít như trên. Tuy nhiên mạch so sanh trên không thể phát triển để so sanh nhiều bit được. Muốn so sanh hai số nhiều bit ta phải tuân theo trình tự so sánh từ bit cao nhất trước ( bit có nhiều ý nghĩa nhất). Nếu số nào có bit cao lơn hơn thì số đó sẻ lơn hơn và kết thúc việc so sánh, nêu hai bít có trong số cao nhất bằng nhau thì sẻ so sanh hai số có trọng số thấp hơn, cứ như vậy cho đến bit thấp nhất, hai số bằng nhau nếu tất cả các 24
- bít tưng ứng của hai số đều bằng nhau. Để so sánh hái số 8 bit ta phải thêm các bit điều khiển vào mạch so sanh hai số một bit, gọi là mạch so sanh 1 bít đầy đủ. Ta có sơ đồ khôi như sau: Hình 2.16: Sơ đồ mô phỏng bộ so sánh hai số 1bit đầy đủ Bảng trạng thái mô tả hoạt động như sau: Lối vào điều khiển Lối vào dữ liệu Lối ra c3 c2 c1 y3 y2 y1 a>b a=b a b a=b a<b 1 0 0 x x 1 0 0 0 0 1 x x 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 0 1 0 Phương trình trạng thái bô so sánh hai bit đầy đủ như sau: y1 c 1 c 2 ab ; y2 c 2 ab c 2ab = c 2 ( a b ) ; y3 c 3 c 2 ab Sơ đồ mạch logic bộ so sánh hai bit đầy đủ: 25
- C1 C2 C3 a b y1 2 1 y2 1 3 2 y3 2 1 Hình 2.17: Sơ đồ mạch logic bộ so sanh hai bit đầy đủ Từ sơ đồ mạch logic trên ta có sơ đồ khôi bộ so sanh hai số một bit như sau: C1 y1 C2 y2 C3 y3 Hình 2. 18: Sơ đồ khối bộ sô sanh 1 bit đầy đủ Để có bộ so sanh 2 số 8 bit ta phải ghép 8 bộ so sanh 1 bít đầy đủ lại với nhau ta có sơ đồ như sau : vcc c c1 y1 c1 y1 c1 y1 c1 y1 c1 y1 c1 y1 c1 y1 1 y1 y c2 y2 c2 2 c2 y2 c2 y2 c2 y2 c2 y2 c2 y2 c2 y2 y3 y y y3 y y y c3 c3 3 c3 y3 c3 3 c3 c3 3 c3 3 c3 3 a b a b a b a b a b a b a b a b 1 1 1 0 0 1 0 0 1 1 0 1 0 1 0 1 Hình 2.19:: Sơ đồ bộ so sánh hai số nhị phân 8 bit So sánh hai số : a=11001000, b=10101111, ta thấy a>b nếu đèn nối với y3 sáng chứng tỏ mạch ta thiết kế là đúng. 2.5. Thiết kế mạch dồn kênh 2.5.1. Khái niệm Mạch dồn kênh hay còn gọi là mạch ghép kênh, đa hợp (Multiplexer-MUX) là 1 dạng mạch tổ hợp cho phép chọn 1 trong nhiều đường đường vào song song (các kênh vào) để đưa tới 1 đường ra (gọi là kênh truyền nối tiếp). Việc chọn đường nào trong các đường đường vào do các đường chọn quyết định. Ta thấy 26
- MUX hoạt động như 1 công tắc nhiều vị trí được điều khiển bởi mã số. Mã số này là dạng số nhị phân, tuỳ tổ hợp số nhị phân này mà ở bất kì thời điểm nào chỉ có 1 đường vào được chọn và cho phép đưa tới đường ra. Các mạch dồn kênh thường gặp là 2 sang 1, 4 sang 1, 8 sang 1, Nói chung là từ 2n sang 1. Mục tiếp theo sẽ phân tích và thiết kế mạch dồn kênh 4 sang 1 2.5.2. Mạch dồn kênh 4 sang 1 Hình 2.20: Mạch dồn kênh 4 sang 1 và bảng hoạt động Mạch trên có 2 đường điều khiển chọn là S0 và S1 nên chúng tạo ra 4 trạng thái logic. Mỗi một trạng thái sẽ cho phép 1 đường vào I nào đó qua để truyền tới đường ra Y. Như vậy tổng quát nếu có 2n đường vào song song thì phải cần n đường điều khiển chọn. Cũng nói thêm rằng, ngoài những đường như ở trên, mạch thường còn có thêm đường G: được gọi là đường vào cho phép (enable) hay xung đánh dấu (strobe). Mạch tổ hợp có thể có 1 hay nhiều đường vào cho phép và nó có thể tác động mức cao hay mức thấp. Như mạch dồn kênh ở trên, nếu có thêm 1 đường cho phép G tác động ở mức thấp, tức là chỉ khi G = 0 thì hoạt động dồn kênh mới diễn ra còn khi G = 1 thì bất chấp các đường vào song song và các đường chọn, đường ra vẫn giữ cố định mức thấp (có thể mức cao tuỳ dạng mạch) Như vậy khi G = 0 S1S0 = 00, dữ liệu ở I0 sẽ đưa ra ở Y S1S0 = 01, dữ liệu ở I1 sẽ đưa ra ở Y S1S0 = 10, dữ liệu ở I2 sẽ đưa ra ở Y S1S0 = 11, dữ liệu ở I3 sẽ đưa ra ở Y do đó biểu thức logic của mạch khi có thêm đường G là 27
- Ta có thể kiểm chứng lại biểu thức trên bằng cách: từ bảng trạng thái ở trên, viết biểu thức logic rồi rút gọn (có thể dùng phương pháp rút gọn dùng bìa Karnaugh. Nhận thấy rằng tổ hợp 4 cổng NOT để đưa 2 đường điều khiển chọn S0, S1 vào các cồng AND chính là 1 mạch mã hoá 2 sang 4, các đường ra mạch mã hoá như là xung mở cổng AND cho 1 trong các đường I ra ngoài. Vậy mạch trên cũng có thể vẽ lại như sau: Sơ đồ mạch logic của mạch Hình 2.21: Sơ đồ mạch hợp kênh 4 đầu vào môt đâu ra Cũng nói thêm rằng, ngoài những đường như ở trên, mạch thường còn có thêm đường G: được gọi là đường vào cho phép (enable) hay xung đánh dấu (strobe). Mạch tổ hợp có thể có 1 hay nhiều đường vào cho phép và nó có thể tác động mức cao hay mức thấp. Như mạch dồn kênh ở trên, nếu có thêm 1 đường cho phép G tác động ở mức thấp, tức là chỉ khi G = 0 thì hoạt động dồn kênh mới diễn ra còn khi G = 1 thì bất chấp các đường vào song song và các đường chọn, đường ra vẫn giữ cố định mức thấp (có thể mức cao tuỳ dạng mạch) 2.5.3.Thiết kế mạch dồn kênh 8 sang 1 Sơ đồ nguyên lý 28
- X0 X1 X2 X3 Mạch chọn kênh Y X4 8 kênh đầu vào X5 X6 X7 . C1 C2 C3 Hình 2.22: Sơ đồ khối mạch chọn kênh 8 đầu vào 1 đâu ra Mạch gồm có 8 ngõ vào và một ngõ ra : - X0, X1, X2, X3, X4, X5, X6, X7 : Các kênh dữ liệu vào - Y : Kênh dữ liệu đầu ra - C1, C2, C3 : Các ngõ vào điều khiển Bảng trạng thái hoạt động C3 C2 C1 Y 0 0 0 X0 0 0 1 X1 0 1 0 X2 0 1 1 X3 1 0 0 X4 1 0 1 X5 1 1 0 X6 1 1 1 X7 Phương trình logic mô tả hoạt động của mạch YXCCCXCCCXCCCXCCCXCCCXCCCXCCCXCCC 0123 1123 2123 3123 4123 5123 6123 7123 Sơ đồ mạch logic 29
- C3 C2 C1 2 2 2 1 1 1 X0 2 3 1 4 5 X1 2 3 1 4 5 X2 2 3 1 4 5 2 X3 2 3 3 4 1 5 4 1 Y 5 6 X4 2 7 3 8 1 9 4 5 X5 2 3 1 4 X6 5 2 3 1 4 X7 5 2 3 1 4 5 Hình 2.23: Sơ đồ mạch chọn kênh 8-1 2.5.4.Một số IC dồn kênh hay dùng Hình 2.24: Kí hiệu khối của một số IC dồn kênh hay dùng 74LS151 có 8 đường vào dữ liệu, 1 đường vào cho phép G tác động ở mức thấp, 3 đường vào chọn C B A, đường ra Y còn có đường đảo của nó: Khi G ở mức thấp nó cho phép hoạt động ghép kênh mã chọn CBA sẽ quyết định 1 trong 8 đường dữ liệu được đưa ra đường Y. Ngược lại khi G ở mức cao, mạch không được phép nên Y = 0 bất chấp các đường chọn và đường vào dữ liệu. 30
- 74LS153 gồm 2 bộ ghép kênh 4:1 có 2 đường vào chọn chung BA mỗi bộ có đường cho phép riêng, đường vào và đường ra riêng. Tương tự chỉ khi G ở mức 0 đường Y mới giống 1 trong các đường vào tuỳ mã chọn. 74LS157 gồm 4 bộ ghép kênh 2:1 có chung đường vào cho phép G tác động ở mức thấp, chung đường chọn A. Đường vào dữ liệu 1I0, 1I1 có đường ra tương ứng là 1Y, đường vào dữ liệu 2I0, 2I1 có đường ra tương ứng là 2Y, Khi G ở thấp và A ở thấp sẽ cho dữ liệu vào ở đường nI0 ra ở nY (n = 1,2,3,4) còn khi A ở cao sẽ cho dữ liệu vào ở nI1 ra ở nY. Khi = 1 thì Y = 0 Chẳng hạn với 74LS153, kí hiệu khối, chân ra, bảng trạng thái và cấu tạo logic được minh hoạ ở những hình dưới, với những IC khác cũng tương tự Hình 2.25: Kí hiệu khối và chân ra của 74LS153 Bảng sự thật của 74LS53 31
- Hình 2.26: Cấu tạo bên trong của 74LS153 2.5.4. Ứng dụng a) Mở rộng kênh ghép Các mạch ghép kênh ít đường vào có thể được kết hợp với nhau để tạo mạch ghép kênh nhiều đường vào. Ví dụ để tạo mạch ghép kênh 16:1 ta có thể dùng IC 74LS150 hoặc các IC tương tự, nhưng có 1 cách khác là ghép 2 IC 74LS151 Sơ đồ ghép như sau: Hình 2.27: Hai cách mở rộng kênh ghép 16 sang 1 từ IC74LS151 32
- (74LS151 là IC dồn kênh 8 sang 1) b) Chuyển đổi song song sang nối tiếp: Các dữ liệu nhị phân nhiều bit, chẳng hạn mã ASCII, word, thường được xử lí song song, tức là tất cả chúng được làm 1 lúc. Trong máy tính, dữ liệu được di chuyển từ nơi này đến nơi khác cùng 1 lúc trên các đường dẫn điện song song gọi là các bus. Khi dữ liệu được truyền đi qua khoảng cách dài chẳng hạn hàng chục mét thì cách truyền song song không còn thích hợp vì tốn nhiều đường dây, nhiễu, Lúc này mạch dồn kênh có thể dùng như mạch chuyển đổi song song sang nối tiếp. Cách nối Hình 2.28: Chuyển đổi dữ liệu truyền từ song song sang nối tiếp Mạch ở hình trên cho phép truyền dữ liệu 16 bit trên đường truyền nối tiếp thông qua IC dồn kênh 74LS150. Tất nhiên cần 1 mạch đếm để tạo mã số nhị phân 4 bit cho 4 đường chọn của mạch dồn kênh (chẳng hạn 74LS93). Mạch đếm hoạt động khiến mã chọn thay đổi từ 0000 rồi 0001, rồi đến 1111 và lại vòng trở lại 0000 đếm lên tiếp khiến dữ liệu vào song song được chuyển đổi liên tiếp sang nối tiếp. Cũng cần phải có một mạch dao động để tạo xung kích cho mạch đếm, nếu tần số dao động tạo xung kích cho mạch đếm rất lớn thì dữ liệu được luân chuyển nhanh, và với tốc độ lớn như vậy với cảm nhận của con người thì dữ liệu dường như được truyền đồng thời. Nguyên lí này được áp dụng cho ghép kênh điện thoại và nhiều ứng dụng khác c) Dùng dồn kênh để thiết kế tổ hợp: 33
- Các mạch dồn kênh với hoạt động logic như đã xét ở trước ngoài cách dùng để ghép nhiều đường đường vào còn có thể dùng để thiết kế mạch tổ hợp đôi khi rất dễ dàng vì: Không cần phải đơn giản biểu thức nhiều Thường dùng ít IC Dễ thiết kế Bài toán thiết kế mạch tổ hợp như bảng dưới đây cho thấy rõ hơn điều này Ví dụ: Thiết kế mạch tổ hợp thoả bảng sự thật sau Từ bảng sự thật ta có biểu thức logic là: Y=ABC+ABC+ABC+ABC Hay có thể viết Đây là biễu thức thuộc dạng tổng của các tích. Như cách thiết kế ở trước ta sẽ sử dụng các cổng logic gồm 3 cổng NOT, 4 cổng NAND, 1 cổng OR, còn nếu chuyển sang dùng toàn cổng NAND không thì phải cần tới 3 cổng NAND 2 đường vào, 4 cổng NAND 3 đường vào và 1 cổng NAND 4 đường vào chưa kể là phải đơn giản biểu thức nếu có thể trước khi thực hiện. 34
- Hình 2.29: Thiết kế tổ hợp dùng mạch dồn kênh Tương tự sử dụng MUX 2-1, MUX 4-1 MUX 8-1 thiết kế các hàm sau: 2.6. Mạch tách kênh 2.6.1. Khái niệm Bộ chuyển mạch phân kênh hay còn gọi là tách kênh, giải đa hợp (demultiplexer) có chức năng ngược lại với mạch dồn kênh tức là: tách kênh truyền thành 1 trong các kênh dữ liệu song song tuỳ vào mã chọn đường vào. Có thể xem mạch tách kênh giống như 1 công tắc cơ khí được điều khiển chuyển mạch bởi mã số. Tuỳ theo mã số được áp vào đường chọn mà dữ liệu từ 1 đường sẽ được đưa ra đường nào trong số các đường song song. Các mạch tách kênh thường gặp là 1 sang 2, 1 sang 4, 1 sang 8, Nói chung từ 1 đường có thể đưa ra 2n đường, và số đường để chọn sẽ phải là n. Mục dưới sẽ nói đến mạch tách kênh 1 sang 4. 2.6.2. Mạch tách kênh 1 sang 4 Hình 2.30: Mạch tách kênh 1 sang 4 Mạch tách kênh từ 1 đường sang 4 đường nên số đường chọn phải là 2 35
- Khi đường cho phép G ở mức 1 thì nó cấm không cho phép dữ liệu vào được truyền ra ở bất kì đường nào nên tất cả các đường ra đều ở mức 0 Như vậy khi G = 0 BA = 00 dữ liệu S được đưa ra đường Y0, nếu S = 0 thì Y0 cũng bằng 0 và nếu S = 1 thì Y0 cũng bằng 1,tức là S được đưa tới Y0; các đường khác không đổi Tương tự với các tổ hợp BA khác thì lần lượt ra ở S sẽ là Y1, Y2, Y3 Biểu thức logic của các đường ra sẽ là: Từ đây có thể dùng cổng logic để thiết kế mạch tách kênh Hình 2.31: Cấu trúc của mạch tách kênh 1 sang 4 Ví dụ: Khảo sát IC 74LS155 Hình 2.32: Kí hiệu khối và chân ra của 74LS155 36
- Trong cấu trúc của nó gồm 2 bộ tách kênh 1 sang 4, chúng có 2 đường chọn A0A1 chung, đường cho phép cũng có thể chung khi nối chân 2 nối với chân 15). Một lưu ý khác là bộ tách kênh đầu có đường ra đảo so với đường vào (dữ liệu vào chân 1 không đảo) còn bộ tách kênh thứ 2 thì đường vào và đường ra như nhau khi được tác động (dữ liệu vào chân 14 đảo). Cấu trúc logic của mạch không khác gì so với mạch đã xét ở trên ngoài trừ mạch có thêm đường cho phép Bảng sự thật của 74LS155 Mạch tách kênh hoạt động như mạch giải mã. Nhiều mạch tách kênh còn có chức năng như 1 mạch giải mã. Thật vậy,vào dữ liệu S không được dùng như 1 đường vào dữ liệu nối tiếp mà lại dùng như đường vào cho phép còn các đường vào chọn CBA khi này lại được dùng như các đường vào dữ liệu và các đường ra vẫn giữ nguyên chức năng thì mạch đa hợp lại hoạt động như 1 mạch giải mã. Tuỳ thuộc mã dữ liệu áp vào đường C B A mà một trong các đường ra sẽ lên cao hay xuống thấp tuỳ cấu trúc mạch. Như vậy mạch tách kênh 1:4 như ở trên đã trở thành mạch giải mã 2 sang 4 . Thực tế ngoài đường S khi này trở thành đường cho phép giải mã, mạch trên sẽ phải cần một số đường điều khiển khác để cho phép mạch hoạt động giải mã hay tách kênh; còn cấu tạo logic của chúng hoàn toàn tương thích nhau. Hình sau cho phép dùng mạch tách kênh 1 sang 4 để giải mã 2 sang 4. Hình 2.33: Mạch tách kênh hoạt động như mạch giải mã 37
- Tương tự ta cũng có các loại mạch khác như vừa tách kênh 1:8 vừa giải mã 3:8, tách kênh 1:16/giải mã 4:16 2.6.3.Thiết kế mạch phân kện 1 ngõ vào 8 ngõ ra Sơ đồ nguyên lý Y1 Y2 Y3 Y4 X Mạch tách kênh (1-8) Y5 Y6 Y7 Y8 C3 C2 C1 . Hình 2.34: Sơ đồ nguyên lý mạch phân kênh 1-8 Trong đó: X: Kênh dữ liệu vào Y1, Y2, Y3, Y4, Y5, Y6, Y7, Y8: là các kênh đầu ra C1, C2, C3 : là tín hiệu điều khiển Tại một thời điểm chỉ có một đâu ra được kết nối tới kênh đầu vào, tuy theo giá trị của tổ hợp biến điều khiển để chúng ta xác định được kênh nào được phép kết nối với đầu vào. Bản trạng thái mô ta quá trình hoạt động mạch phân kênh C3 C2 C1 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 0 0 0 x 0 0 0 0 0 0 0 0 0 1 0 x 0 0 0 0 0 0 0 1 0 0 0 x 0 0 0 0 0 0 1 1 0 0 0 x 0 0 0 0 1 0 0 0 0 0 0 x 0 0 0 1 0 1 0 0 0 0 0 x 0 0 1 1 0 0 0 0 0 0 0 x 0 1 1 1 0 0 0 0 0 0 0 x 38
- Phương trình logic các ngõ ra YXCCC1 1 2 3 YXCCC2 1 2 3 YXCCC3 1 2 3 YXCCC4 1 2 3 YXCCC5 1 2 3 YXCCC6 1 2 3 YXCCC7 1 2 3 YXCCC8 1 2 3 Sơ đồ mạch logic X C3 C2 C1 2 2 2 1 1 1 2 3 1 Y1 4 5 2 3 1 Y2 4 5 2 3 1 Y3 4 5 2 3 1 Y4 4 5 2 3 1 Y5 4 5 2 3 1 Y6 4 5 2 3 1 Y7 4 5 2 3 1 Y8 4 5 . Hình 2.35: Sơ đồ mạch phân kênh 1 đầu vào 8 đầu ra 2.6.4. Một số IC giải mã tách kênh hay dùng Khảo sát IC tách kênh/giải mã tiêu biểu 74LS138 74LS138 là IC MSI giải mã 3 đường sang 8 đường hay tách kênh 1 đường sang 8 đường thường dùng và có hoạt động logic tiêu biểu, nó còn thường được dùng như mạch giải mã địa chỉ trong các mạch điều khiển và trong máy tính. Sơ đồ chân và kí hiệu logic như hình dưới đây: 39
- Hình 2.36: Kí hiệu khối và chân ra của 74LS138 Trong đó A0, A1, A2 là 3 đường địa chỉ đường vào E1, E2 là các đường vào cho phép (tác động mức thấp) E3 là đường vào cho phép tác động mức cao O0 đến O7 là 8 đường ra (tác động ở mức thấp ) Hình 2. 37: Cấu trúc bên trong 74LS138 Hoạt động giải mã như sau: Đưa dữ liệu nhị phân 3bit vào ở C, B, A(LSB), lấy dữ liệu ra ở các đường O0 đến O7; đường cho phép E2 và E3 đặt mức thấp, đường cho phép E1 đặt ở mức cao. Chẳng hạn khi CBA là 001 thì đường O1 xuống thấp còn các đường ra khác đều ở cao. Hoạt động tách kênh: Dữ liệu vào nối tiếp vào đường E2, hay E3 (với đường còn lại đặt ở thấp). Đặt G = 1 để cho phép tách kênh. Như vậy dữ liệu ra song song vẫn lấy ra ở các đường O0 đến O7. Chẳng hạn nếu mã chọn là 001thì dữ liệu nối tiếp S sẽ ra ở đường O1 và không bị đảo. Mở rộng đường giải mã: 74LS138 dùng thêm 1 cổng đảo còn cho phép giải mã địa chỉ từ 5 sang 32 đường (đủ dùng trong giải mã địa chỉ của máy vi tính). Hình ghép nối như sau: 40
- Hình 2.38: Ghép 4 IC 74LS138 để có mạch giải mã 5 đường sang 32 đường 2.6.5: Ứng dụng a) Dùng mạch tách kênh thiết kế mạch logic Cũng giống như mạch dồn kênh, mạch tách kênh hay giải mã còn có thể dùng để thiết kế mạch logic tổ hợp. Nếu như việc thiết kế tổ hợp dùng mạch dồn kênh không dùng thêm các cổng logic thì với mạch tách kênh hay giải mã tổ hợp lại phải thêm vào một số cổng logic mới đạt được logic tổ hợp mong muốn. Nhưng bù lại, mạch tách kênh/giải mã cho phép thiết kế tổ hợp nhiều đường ra một cách dễ dàng. Ví dụ sau sẽ minh hoạ rõ hơn vấn đề này: Cho bảng sự thật như hình sau: 41
- Nếu sử dụng cách cũ, ta sẽ xây dựng bìa K, rồi rút gọn, với 4 đường vào, 4 đường ra, xem ra việc rút gọn khá dài và phức tạp. Dùng IC 74154 (giải mã 4 sang 16, tách kênh 1 sang 16), thì bài toán sẽ đơn giản hơn. Thật vậy, trước hết cần nối 4 đường vào A, B, C, D tới 4 đường chọn của IC tách kênh, rồi dựa vào bảng sự thật ở trên ,ta xác định các vị trí tổ hợp làm Y0 lên 1. Bên mạch giải mã/tách kênh ta sẽ nối các đường ra tương ứng với vị trí tổ hợp tới Y0. Vì có tất cả 5 đường ra lên 1 nên cuối cùng Y0 sẽ là NAND của 5 đường ra ấy. Tương tự với các đường ra Y1, Y2, Y3. Cách nối mạch như hình dưới đây Hình 2.40: Ứng dụng mạch tách kênh thiết kế tổ hợp Nếu trong 1 cột đường ra mà số bit 0 nhiều hơn số bit 1 thì ta sẽ dùng cổng NOR gom tất cả các đường bit 0 ấy. b) Chia sẻ đường truyền Ở phần trước ta đã nói đến ứng dụng của mạch dồn kênh cho phép chuyển đổi dữ liệu từ song song sang nối tiếp và truyền đi. Khi dữ liệu đến nơi cần nhận, chẳng hạn máy tính khác thì nó cũng xử lí dữ liệu ở dạng song song. Do đó lại phải cần 1 mạch chuyển đổi từ dữ liệu nối tiếp đến thành dữ liệu song song và ở đây mạch giải mã/tách kênh được dùng 42
- Hình 2.41: Truyền dữ liệu nối tiếp Để ý là mạch giải mã/tách kênh ở bên nhận cũng phải cần mã chọn áp vào các đường DCBA, mã này được lấy từ mạch đếm bên truyền, do đó dữ liệu bên truyền đi và bên nhận lại mới đồng bộ nhau. Như vậy ta sẽ cần 5 đường dây gồm 1 đường truyền dữ liệu nối tiếp, 1 đường mass chung và 4 đường mã số chọn. Ngoài ra do mạch đếm tự động reset khi đếm hết mã (lên 1111) làm dữ liệu được truyền liên tục nên ta cần phải có 1 mạch chốt ở đường ra song song để chặn dữ liệu lại khi đủ 16 bit truyền mới cho ra một lượt Thực ra thì cách truyền này vẫn chưa hiệu quả lắm, chỉ dùng ở khoảng cách gần, ta vẫn có thể giảm bớt số dây chuyền đi nữa (thay vì 6 đường dây như ở trên). Thật vậy, thay vì truyền đi tới 4 đường cho mã số chọn từ mạch đếm ta sẽ chỉ truyền đi 1 đường xung đồng hồ chung tức là bên nhận sẽ đặt thêm 1 mạch đếm nữa để tạo mã số chọn cho bộ giải mã/tách kênh và mạch đếm này được cấp xung ck giống như mạch đếm của bên truyền. Cách hay hơn nữa là truyền xung ck ngay trên đường truyền nối tiếp, tất nhiên ta phải mã hoá xung ck lại để nó không lẫn lộn với dữ liệu truyền và bên nhận cũng phải có 1 mạch phát hiện và tách xung ck ra khỏi dữ liệu nhận. Đây được gọi là cách truyền tin (dữ liệu) nối tiếp đồng bộ (synchronuous data transmission). Ngoài ra còn có cách truyền tin nối tiếp không đồng bộ tức là bên truyền và bên nhận không dùng xung đồng hồ như nhau, hay nói 43
- cách khác dữ liệu truyền và nhận không đồng bộ nhau. 2 cách truyền này ta sẽ được tìm hiểu rõ hơn nhiều ở môn học “truyền số liệu”, “giao tiếp máy tính” Cũng cần nói thêm rằng các đường vào của mạch dồn kênh không chỉ là 1 byte, 1 word dữ liệu song song cần truyền mà có thể là các đường tín hiệu riêng lẻ, chẳng hạn một số đường lấy từ cảm biến nhiệt độ của lò nhiệt, của các gian phòng chống cháy nổ; một số khác là từ cảm biến dò mực chất lỏng, một số khác lại từ các công tắc tiếp điểm khi bị tác động sẽ tạo mức tín hiệu logic phản hồi, Tất cả đều được thu thập chuyển đổi và dồn lại để truyền về nơi cần thiết chẳng hạn phòng giám sát điều khiển. Tại đây các thông tin được tách trở lại và xử lí, hiển thị về tình trạng của nơi đang giám sát thu thập chẳng hạn có kẻ đột nhập cửa, có khói có thể xảy ra cháy, mực nước, nhiệt độ vượt quá mức cho phép hay tất cả vẫn bình thường. Như vậy đây có thể được sử dụng cho hệ thống theo dõi an ninh từ xa. 2.7. Thiết kế mạch mã hóa Mạch mã hóa (Encoder) là mạch có nhiệm vụ biến đổi những ký hiệu quen thuộc với con người, sang những ký hiệu không quyen thuộc với con người. 2.7.1.Thiết kế mạch mã hóa nhị phân từ 8 sang 3 Sơ đồ khối mạch như sau Hình 2.42: Sơ đồ khối mạch mã hóa nhị phân từ 8 sang 3 Trong đó - x0, x1,. . ., x7 là các ngõ vào tín hiệu - A, B, C là các ngõ ra Mạch mã hóa nhị phân thực hiện biến đổi tín hiệu ngõ vào thành môt từ mã nhĩ phân tương ứng ở ngõ ra cụ thể như sau: 0 →000 1→001 2→ 010 3→ 011 4→100 5→101 6→ 110 7→ 111 Chọn mức tác động tích cực ở ngõ vào là mức logic 1, ta có bản trạng thái mô tả hoạt động của mạch như sau: 44
- Khi một ngõ vào ở trạng thái tích cực ( mức logic 1) và các ngõ vào không được tích cực nhận mức logic 0. Thì ngõ ra xuật hiện từ mã tương ứng . Cụ thể khi x0=1, các đầu ra còn lại x1= x2= x3 = x4 = x5 = x6 = x7 = 0 , thì từ mã ngõ ra là 000. khi x1=1 các đầu ra còn lại x0= x2= x3 = x4 = x5 = x6 = x7 = 0, thì từ mã ngõ ra nhận giá trị 001, vv Từ bảng trạng thái ta có phương trình trạng thái ngõ ra như sau: Từ phương trình trạng thái ngõ ra ta có sơ đồ mạch logic thực hiện quả trình mã hóa như sa Mạch logic dùng phần tử OR 45
- Hình 2.43: Mạch mã hóa nhị phân 8 bit sang 3 2.7.2.Thiết kế mạch mã hóa thập phân 10-4 Sơ đồ khối Hình 2.44: Sơ đô đồ khối mạch mã hóa thập phân Trong đó - x0, x1,. . ., x9 là các ngõ vào tín hiệu - A, B, C, D là các ngõ ra Mạch mã hóa nhị phân thực hiện biến đổi tín hiệu ngõ vào thành môt từ mã nhĩ phân tương ứng ở ngõ ra cụ thể như sau: 0 →0000 1→0001 2→ 0010 3→ 0011 4→ 0100 5→0101 6→ 0110 7→ 0111 8→1000 9→1001 Chọn mức tác động tích cực ở ngõ vào là mức logic 1, ta có bản trạng thái mô tả hoạt động của mạch như sau: Từ bảng trạng thái ta có phương trình trạng thái ngõ ra như sau: 46
- Từ phương trình trạng thái tối giản ta có sơ đồ mạch logic dùng phần tử OR như sau: Hình 2.45: Sơ đồ mạch mã hóa thập phân dùng OR 2.8. Thiết kế mạch mã hóa ư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. Vấn đề ưu tiên: Khi có nhiều tín hiệu đồng thời tác động, tín hiệu nào có mức ưu tiên cao hơn ở thời điểm đang xét sẽ tác động, tức là nếu ngõ vào có độ ưu tiên cao hơn bằng 1 trong khi nếu các ngõ vào có độ ưu tiên thấp hơn nếu bằng 1 thì mạch sẽ tạo ra từ mã nhị phân ứng với ngõ vào có mức độ ưu tiên cao nhất. 47
- 2.8.1. Thiết kế mạch mã hóa ưu tiên 4-2 Hình 2.46: Sơ đồ mô phỏng Bảng chân lý Phương trình tối giản: Hình 2.47: Sơ đồ mạch mã hóa ưu tiên 4-2 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.48: IC74LS147 Bảng sự thật của 74LS147 48
- 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. 2.9. Thiết kế mạch giải mã Mạch giải mã là mạch có chức năng ngược lại với mạch mã hoá tức là nếu có 1 mã số áp vào đường vào thì tương ứng sẽ có 1 đường ra được tác động, mã đường vào thường ít hơn mã đường ra. Tất nhiên đường vào cho phép phải được bật lên cho chức năng giải mã. Mạch giải mã được ứng dụng chính trong ghép kênh dữ liệu, hiển thị led 7 đoạn, giải mã địa chỉ bộ nhớ. Hình dưới là sơ đồ khối của mạch giải mã 2.9.1. Giải mã 3 sang 8 Mạch giải mã 3 đường sang 8 đường bao gồm 3 đường vào tạo nên 8 tổ hợp trạng thái, ứng với mỗi tổ hợp trạng thái được áp vào sẽ có 1 đường ra được tác động. 49
- Bảng sự thật mạch giải mã 3 sang 8 Hình 2.49: Khối giải mã 3 sang 8 Từ bảng sự thật ta có thể vẽ được sơ đồ mạch logic của mạch giải mã trên Hình 50: Cấu trúc mạch giải mã 3 sang 8 • Ứng dụng a).rút gọn hàm logic sử dụng mạch giải mã Nhiều hàm logic có đường ra là tổ hợp của nhiều đường vào có thể được xây dựng từ mạch giải mã kết hợp với một số cổng logic ở đường ra(mạch giải mã chính là 1 mạch tổ hợp nhiều cổng logic cỡ MSI). Mạch giải mã đặc biệt hiệu quả hơn so với việc sử dụng các cổng logic rời trong trường hợp có nhiều tổ hợp đường ra. Ví dụ: Sau thực hiện mạch cộng 3 số X, Y, Z cho tổng là S và số nhớ là C thực hiện bằng mạch giải mã: Giả sử mạch cộng thực hiện chức năng logic như bảng sau: X Y Z S C 0 0 0 0 0 0 0 1 1 0 50
- 0 1 0 1 0 Từ bảng cho phép ta xác định được các 0 1 1 0 1 tổ hợp logic đường vào để S rồi C ở mức 1 0 0 1 0 cao 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 Như vậy sẽ cần 1 cổng OR để nối chung các tổ hợp logic thứ 1, 2, 4, 7 để đưa ra đường S Tương tự đường ra C cũng cần 1 cổng OR với đường vào là tổ hợp logic thứ 2, 5, 6, 7 Vậy mạch giải mã thực hiện bảng logic trên sẽ được mắc như sau: Hình 2.51: Ứng dụng mạch giải mã làm mạch cộng 2.9.2. Mạch giải mã BCD sang thập phân 74LS42 là IC làm nhiệm vụ giải mã 4 đường sang 10 đường. Cấu tạo logic và bảng hoạt động của nó sẽ minh hoạ rõ hơn cho mạch giải mã này: Hình 2.52: Sơ đồ chân IC giải mã BCD sang thập phân 51
- Hình 2.53: Cấu trúc mạch của 74LS42, giải mã 4 sang 10 Bảng sự thật của 74LS42 Để ý là vì có 4 đường vào nên sẽ có 16 trạng thái logic đường ra. Ở đây chỉ sử dụng 10 trạng thái logic đầu, 6 trạng thái sau không dùng. Với mạch giải mã 4 sang 16 thì sẽ tận dụng hết số trạng thái ra. Một điểm nữa là các đường ra của 7442 tác động ở mức thấp Về nguyên tắc ta có thể mã hoá từ n đường sang m đường và ngược lại giải mã từ m đường sang n đường, chức năng giữa mã hoá và giải mã không rõ rệt lắm, chúng đều làm nhiệm vụ chuyển đổi từ mã này sang mã khác (những mạch ở trên đều nói đến mã hệ 2, thực ra còn nhiều loại mã khác). Cũng chỉ có một số chúng được tích hợp sẵn trong IC như 7441, 7442 là giải mã BCD sang thập phân, 7443 là giải mã thừa 3 sang thập phân, Mạch sau minh hoạ cách kết hợp mạch đếm sẽ học ở chương sau với mạch giải mã để cung cấp các hoạt động định thời và định thứ tự, IC giải mã 7445 được dùng vì tải là động cơ có áp lớn dòng lớn ngoài sức cung cấp của các IC giải mã thường 52
- Hình 2.54: Ứng dụng 74LS45 Hình trên cho thấy, mạch đếm tạo ra 16 tổ hợp trạng thái cho mạch mã hoá. Phải 4 chu kì xung ck thì Q3 mới xuống thấp, cho phép động cơ được cấp nguồn; còn đèn được mở chỉ sau 8 chu kì xung ck. Thời gian mở của tải là 1 chu kì xung ck. Ta có thể điều chỉnh thời gian này từ mạch dao động tạo xung ck. Về nguyên tắc hoạt động của mạch đếm 74LS90 ta sẽ tìm hiểu ở chương sau. 2.9.3. Thiết kế mạch giải mã BCD sang led 7 đoạn Một dạng mạch giải mã khác rất hay sử dụng trong hiển thị led 7 đoạn đó là mạch giải mã BCD sang led 7 đoạn. Mạch này phức tạp hơn nhiều so với mạch giải mã BCD sang thập phân đã nói ở phần trước bởi vì mạch khi này phải cho ra tổ hợp có nhiều đường ra lên cao xuống thấp hơn (tuỳ loại đèn led anode chung hay cathode chung) để làm các đoạn led cần thiết sáng tạo nên các số hay kí tự. Led 7 đoạn Trước hết hãy xem qua cấu trúc và loại đèn led 7 đoạn của một số đèn được cấu tạo bởi 7 đoạn led có chung anode (AC) hay cathode (KC); được sắp xếp hình số 8 vuông (như hình trên) ngoài ra còn có 1 led con được đặt làm dấu phẩy thập phân cho số hiện thị; nó được điều khiển riêng biệt không qua mạch giải mã. Các chân ra của led được sắp xếp thành 2 hàng chân ở giữa mỗi hàng chân là A chung hay K chung. Thứ tự sắp xếp cho 2 loại như trình bày ở dưới đây. 53
- Hình 2.55: Cấu trúc và chân ra của 1 dạng led 7 đoạn Hình 2.56: Led 7 đoạn loại anode chung và cathod chung cùng với mạch thúc giải mã Để đèn led hiển thị 1 số nào thì các thanh led tương ứng phải sáng lên, do đó, các thanh led đều phải được phân cực bởi các điện trở khoảng 180 đến 390 ohm với nguồn cấp chuẩn thường là 5V. IC giải mã sẽ có nhiệm vụ nối các chân a, b, g của led xuống mass hay lên nguồn (tuỳ A chung hay K chung) Khảo sát 74LS47 Với mạch giải mã ở trên ta có thể dùng 74LS47. Đây là IC giải mã đồng thời thúc trực tiếp led 7 đoạn loại Anode chung luôn vì nó có các đường ra cực thu để hở và khả năng nhận dòng đủ lớn. Sơ đồ chân của IC như sau: 54
- Hình 2.57: Kí hiệu khối và chân ra 74LS47 Trong đó A, B, C, D là các đường vào mã BCD RBI là đường vào xoá dợn sóng LT là đường thử đèn BI/RBO là đường vào xoá hay đường ra xoá rợn a tới g là các đường ra (cực thu để hở) Hình 2.58: Cấu trúc bên trong của 74LS47 và dạng số hiển thị Hoạt động của IC được tóm tắt theo bảng dưới đây 55
- Nhận thấy các đường ra mạch giải mã tác động ở mức thấp (0) thì led tương ứng sáng Ngoài 10 số từ 0 đến 9 được giải mã, mạch cũng còn giải mã được 6 trạng thái khác, ở đây không dùng đến (ghi chú 2) Để hoạt động giải mã xảy ra bình thường thì chân LT và BI/RBO phải ở mức cao Muốn thử đèn led để các led đều sáng hết thì kéo chân LT xuống thấp (ghi chú 5) Muốn xoá các số (tắt hết led) thì kéo chân BI xuống thấp (ghi chú 3) Khi cần giải mã nhiều led 7 đoạn ta cũng có thể ghép nhiều tầng IC, muốn xoá số 0 vô nghĩa ở trước thì nối chân RBI của tầng đầu xuống thấp, khi này chân ra RBO cũng xuống thấp và được nối tới tầng sau nếu muốn xoá tiếp số 0 vô nghĩa của tầng đó (ghi chú 4). Riêng tầng cuối cũng thì RBI để trống hay để mức cao để vẫn hiển thị số 0 cuối cùng Ví dụ: Hãy xem một ứng dụng của mạch giải mã led 7 đoạn: 56
- Hình 2.60. Ứng dụng mạch giải mã 74LS47 Mạch dao động tạo ra xung kích cho mạch đếm, ta có thể điều chỉnh chu kì xung để mạch đếm nhanh hay chậm Mạch đếm tạo ra mã số đếm BCD một cách tự động đưa tới mạch giải mã có thể là cho đếm lên hay đếm xuống Mạch giải mã sẽ giải mã BCD sang led 7 đoạn để hiển thị số đếm thập phân Bây giờ ta có thể thay mạch dao động bằng 1 bộ cảm biến chẳng hạn dùng bộ thu phát led đặt ở cửa vào nếu mỗi lần có 1 người vào thì bộ cảm biến sẽ tạo 1 xung kích kích cho mạch đếm. Lưu ý rằng IC 7490 là IC đếm chia 10 không đồng bộ mà ta sẽ học ở chương sau Như vậy với ứng dụng này ta đã có hệ thống đếm số người vào cổng cũng có thể đếm sản phẩm qua băng truyền, tất nhiên chỉ hạn chế ở số người vào nhiều nhất là 9. Khi này hình trên được trình bày ở dạng mạch cụ thể như sau: Hình 2.61: Minh hoạ ứng dụng 74LS47 trong mạch hiển thị led 7 đoạn 2.9. Thiết kế mạch điều khiển ma trận LED 5x7 2.9.1. Cấu tạo ma trận LED 5x7 Ma trận LED 5x3 là một ma trận gồm 35 đèn LED được sắp xếp thành 7 hàng và 5 cột, các đèn LED này được nối chung với nhau bởi Anot hoặc Katot. Tại mỗi giao điểm của hàng với cột là một LED đơn 57
- Hình2. 44: Sơ đồ cấu trúc bên trong ma trận LED 5x7 Catốt chung 2.9.2. Điều khiển ma trận LED 5x7 Trong phần này chúng ta chỉ đi tìm hiểu cách thức điều khiển ma trận led để hiển thị các chữ cái, các con số hoặc các ký hiệu tĩnh. Trước tiên ta xác định tất cả những nội dung có thể được hiển thị trên ma trận để xác định với từng nội dung hiển thị, đèn LED nào trong ma trận sẽ được sáng và đèn nào không được sáng. Từ những kết quả giải mã đó ta xác định được nhóm các đèn LED sẽ sáng cho một hoặc một số nội dung được hiển thị hay nói khác đi ta xem có các đèn nào hoạt động giống nhau thì nhóm thành một nhóm. Như vậy thay vì phải điều khiển 7x5=35 đèn LED đơn ta có thể chỉ phải điều khiển một số lượng nhóm đèn nào đó ít hơn nhiều. Để điều khiển được ma trận LED điều đâu tiên cần tính được mã của LED. Túy theo mỗi loại khác nhau để chung ta vào hàng và cột là các mức logic 0 hay 1. Nguyên lý quét dựa vào hiện tượng lưu ảnh trên võng mạch và con người chỉ nhìn được 24h/s. Tại mỗi thời điểm chỉ có một điểm sáng, do tần số quét nhanh nên mắt con người cảm nhận được LED quét đồng thời. Khi muốn LED nào sang chúng ta cần phải đưa tín hiệu vào điều khiển cho LED đó. 58
- 2.3.7.3. Ví dụ Thiết kế mạch hiện thị chữ DTVT trên ma trận LED VT ĐT ĐT T VT V Đ T Đ V V Đ T ĐV Đ ĐV ĐT V Đ ĐV T V Đ Đ VT Đ Đ ĐTV ĐTV: Y1 ĐT: Y2 ĐV: Y3 VT: Y4 Đ: Y5 T: Y6 V: Y7 Ta có bảng chân lý sau: A B Y1 Y2 Y3 Y4 Y5 Y6 Y7 Đ 0 0 1 1 1 0 1 0 0 T 0 1 1 1 0 1 0 1 0 V 1 0 1 0 1 1 0 0 1 T 1 1 1 1 0 1 0 1 0 Từ bảng chân lý ta có được các phương trình của lối ra Y và có thể vẽ được sơ đồ mạch. 59
- Chương 3. Mạch tuần tự 3.1. Khái niệm chung Trig¬ (Flip - Flop) lµ phÇn tö c¬ b¶n nhÊt ®Ó tõ ®ã chÕ t¹o ra c¸c m¹ch d·y (m¹ch logic cã nhí). M¹ch Trig¬ thuéc lo¹i m¹ch kh«ng ®ång bé cã hai tr¹ng th¸i æn ®Þnh bÒn theo thêi gian øng víi hai møc logic "1" vµ "0". Tr¹ng th¸i cña Trig¬ cã thÓ thay ®æi khi t¸c ®éng xung lªn c¸c ®Çu vµo. Tr¹ng th¸i t•¬ng lai cña Trig¬ kh«ng nh÷ng phô thuéc vµo c¸c biÕn vµo mµ cßn phô thuéc vµo tr¹ng th¸i hiÖn t¹i. Khi ngõng t¸c ®éng xung lªn c¸c ®Çu vµo , tr¹ng th¸i Trig¬ gi÷ nguyªn, víi ®Æc ®iÓm nµy c¸c m¹ch Trig¬ ®•îc dïng ®Ó l•u tr÷ th«ng tin d•íi d¹ng m· nhÞ ph©n. 3.2. Các loai Trigơ 3.2.1 Trig¬ R-S kh«ng ®ång bé Lµ lo¹i Trig¬ c¬ b¶n nhÊt ®Ó tõ ®ã t¹o ra c¸c lo¹i Trig¬ kh¸c gåm cã 2 ®Çu vµo lµ R, S vµ hai ®Çu ra Q, Q víi: - Q: §Çu ra chÝnh thêng ®îc sö dông. - : §Çu ra phô, lu«n tho¶ m·n Q + = 1 - R (Reset): §Çu vµo xo¸. - S (Set): §Çu vµo thiÕt lËp. ý tëng thiÕt kÕ trig¬ R-S kh«ng ®ång bé theo c¸c ®iÒu kiÖn sau: + Rn = Sn = 0, tr¹ng th¸i cña trig¬ gi÷ nguyªn Qn+1 = Qn. + Rn = 0; Sn = 1 ®Çu ra trig¬ nhËn gi¸ trÞ "1" Qn+1 = 1. + Rn = 1; Sn = 0 ®Çu ra trig¬ nhËn gi¸ trÞ "0" Qn+1 = 0. + Rn = 1; Sn = 1 ®©y lµ tr¹ng th¸i cÊm , tr¹ng th¸i Trig¬ lµ kh«ng x¸c ®Þnh, trong b¶ng tr¹ng th¸i ®îc ®¸nh dÊu b»ng dÊu "x". Ho¹t ®éng cña trig¬ R-S tu©n theo b¶ng tr¹ng th¸i nh h×nh vÏ. - n: Tr¹ng th¸i hiÖn t¹i - n + 1: Tr¹ng th¸i t¬ng lai. - "-": Gi¸ trÞ tuú chän - cã thÓ lÊy gi¸ trÞ "1" hoÆc "0". - x: Tr¹ng th¸i cÊm t¹i ®ã gi¸ trÞ cña hµm ra lµ kh«ng x¸c ®Þnh. 60
- Hình 3.1: Sơ đồ mô phỏng Bảng trạng thái Bảng chuyển tiếp Bảng ®Çu vµo kÝch Thùc hiÖn nhãm c¸c « cã gi¸ trÞ “1” trong b¶ng tr¹ng th¸i (d¹ng tuyÓn) ta cã: Qn 1 S n Rn .Qn (1) Nhãm c¸c « cã gi¸ trÞ “0” trong b¶ng tr¹ng th¸i (d¹ng héi) ta cã: Qn 1 Rn .(Qn S n ) (2) Tõ (1) Qn 1 S n Qn .Rn S n .Qn .Rn (3) Tõ (2) Qn 1 Rn .(Qn S n ) Rn .Qn .S n Qn 1 Rn .(Qn .S n ) (4) Tõ (2) Qn 1 Rn .(Qn S n ) Rn (Qn S n ) (5) Tõ (1) Qn 1 S n Rn .Qn S n Qn Rn Qn 1 S n Qn Rn (6) Tõ (3) vµ (4), (5) vµ (6) cho phÐp ta x©y dùng Trig¬ RS kh«ng ®ång bé tõ c¸c phÇn tö NAND, c¸c phÇn tö NOR hai lèi vµo. 61
- Hình 3.2: Sơ đồ Trigơ R-S dung phần tử NAND Hình 3.3: Sơ đồ Trigơ R-S dùng phần tử NOR ( a ) ( b) Hình 3.4: Giản đồ điện áp làm việc của Trigơ R-S tử NAND (a), từ NOR (b) 3.2.2. Trig¬ R-S ®ång bé. Ng•êi ta muèn Trig¬ chØ ph¶n øng vµo nh÷ng thêi ®iÓm x¸c ®Þnh, ®iÒu nµy ®•îc hùc hiÖn b»ng c¸ch ®•a thªm tíi ®Çu vµo tÝn hiÖu phô C ®•îc gäi lµ tÝn hiÖu ®ång bé. Khi C = "0" th× R =S =1 tr¹ng th¸i Trig¬ gi÷ nguyªn cßn C = "1" ho¹t ®éng cña s¬ ®å gièng Trig¬ R-S kh«ng ®ång bé nh• ®· ph©n tÝch ë phÇn trªn. 62
- Hình 3.5: Trig¬ R-S ®ång bé 3.2.3. Trig¬ D (Delay) Gåm cã hai ®Çu vµo C, Dn vµ hai ®Çu ra Qn, Q n víi: - C: BiÕn ®iÒu khiÓn (xung nhÞp - xung ®ång bé) - Dn: D÷ liÖu vµo. ý t•ëng thiÕt kÕ trig¬ D tu©n theo c¸c ®iÒu kiÖn sau: + Khi C = 0, tr¹ng th¸i cña trig¬ gi÷ nguyªn Qn+1 = Qn. + Khi C = 1, gi¸ trÞ ®Çu ra trig¬ nhËn gi¸ trÞ ®a ®Õn ®Çu vµo D Qn+1 = Dn. Hình 3.6: S¬ ®å m« pháng B¶ng tr¹ng th¸i B¶ng chuyÓn tiÕp B¶ng ®Çu vµo kÝch Thùc hiÖn nhãm c¸c « cã gi¸ trÞ “1” trong b¶ng tr¹ng th¸i (d¹ng tuyÓn) ta cã: Q n 1 C.D n Q n .C Q n .D n C.D n Q n C D n C.D n Q n .C.D n 63
- C.D n Q n .C.C.D n C.D n .Q n .C.C.D n . (1) Thùc hiÖn nhãm c¸c « cã gi¸ trÞ “0” trong b¶ng tr¹ng th¸i (d¹ng héi) ta cã: Q n 1 C D n .Q n C.Q n D n C D n .Q n Q n .D n Q n .C C.D n C D n .Q n 1 D n C C.D n C D n . Q n C.D n C.D n .Q n .C.D n C.C.D n .Q n .C.D n Q n 1 C.C.D n .Q n .C.D n . (2) Tõ c¸c biÓu thøc (1) vµ (2) ta cã m¹ch ®iÖn cña trig¬ D ®îc x©y dùng tõ c¸c phÇn tö NAND hai lèi vµo. Hình 3.7: Trigơ D xây dựng từ phần tử NAND Hình 3.8: Giản đồ xung mô tả quá trình hoạt động Trigơ D 3.2.4. Trigơ vạn năng J-K Gåm cã 3 ®Çu vµo C, Jn, Kn vµ hai ®Çu ra Qn, Q n víi: - C: Xung ®ång bé. - Jn, Kn: C¸c ®Çu vµo ®iÒu khiÓn. ý t•ëng thiÕt kÕ trig¬ v¹n n¨ng J, K theo c¸c ®iÒu kiÖn sau: + Kn = Jn = 0, tr¹ng th¸i cña trig¬ gi÷ nguyªn Qn+1 = Qn. + Kn = 0; Jn = 1 ®Çu ra trig¬ nhËn gi¸ trÞ "1" Qn+1 = 1. + Kn = 1; Jn = 0 ®Çu ra trig¬ nhËn gi¸ trÞ "0" Qn+1 = 0. + Kn = 1; Jn = 1 trig¬ lËt tr¹ng th¸i Qn+1 = Qn . 64
- Hình 3.9: Sơ đồ mô phỏng Bảng trạng thái Bảng chuyển tiếp Bảng đầu vào kích Thùc hiÖn nhãm c¸c « cã gi¸ trÞ “1” trong b¶ng tr¹ng th¸i (d¹ng tuyÓn) ta cã: Qn 1 K n .Qn J n .Qn (1) Nhãm c¸c « cã gi¸ trÞ “0” trong b¶ng tr¹ng th¸i (d¹ng héi) ta cã: Q n 1 (K n Qn ).(J n Qn ) (2) C¸c biÓu thøc (1) hoÆc (2) ®•îc gäi lµ ph•¬ng tr×nh ®Æc tÝnh cña Trig¬ v¹n n¨ng J-K Hình 3.10: Sơ đồ mạch logic Trigơ J-K 65
- Hình 3.11: Sơ đồ xung mô tả quá trình làm việc Trigơ J-K 3.2.5. Trigơ đếm T Cã hai ®Çu vµo T, C, hai ®Çu ra Q,Q . -C: Xung ®ång bé (xung nhÞp). -T: BiÕn ®iÒu khiÓn, tho¶ m·n yªu cÇu sau: + T = "0" tr¹ng th¸i Trig¬ gi÷ nguyªn Qn+1 = Qn. + T = "1" Trig¬ lËt tr¹ng th¸i Qn+1 = Q n . Sơ đồ mô phỏng Bảng trạng thái Bảng chuyển tiếp Bảng đầu vào kích Tõ b¶ng chuyÓn tiÕp ta cã: Qn 1 Tn .Qn Tn .Qn (1) Qn 1 (Tn Qn ).(Tn Qn ) (2) BiÓu thøc (1) vµ (2) ®•îc gäi lµ ph•¬ng tr×nh ®Æc tÝnh cña Trig¬ ®Õm T. Hình 3.12: Sơ đồ xung mô tả quá trình làm việc Trigơ T 66
- 3.3. Thiết kế bộ đếm đồng bộ 3.3.1. Các bước thiết kế bộ đếm đồng bộ - Phân tích yêu cầu thiết kế, vẽ giản đồ xung mô tả - Xác định loại trigơ, số lượng trigơ - Lập bảng trạng thái của bộ đếm - Lập phương trình trạng thái - Vẽ sơ đồ logic 3.3.2. Thiết kế bộ đếm tiến thập phân đồng bộ • Bước 1: Vẽ giản đồ xung cho bộ đếm Hình 3.18: Giản đồ xung của bộ đềm module 10 • Bước 2: Lập bảng trạng thái cho bộ đếm Xung Trạng thái vào Q3 Q2 Q1 Q0 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1 10 0 0 0 0 67
- Hình 3.19: Bảng trạng thái của bộ đếm module 10 • Bước 3: Lập đồ hình chuyển đổi trạng thái Hình 3.20: Đồ hình chuyển đổi trạng thái của bộ đếm • Bước 4 : Lập mối quan hệ đầu vào theo đầu ra Xung Trạng thái các trigơ đếm Trạng thái các hàm đầu vào kích đếm Hiện tại Tiếp theo của trigơ ' ' ' ' Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 J3 K3 J 2 K2 J1 K1 J0 K0 0 0 0 0 0 0 0 0 1 0 - 0 - 0 - 1 - 1 0 0 0 1 0 0 1 0 0 - 0 - 1 - - 1 2 0 0 1 0 0 0 1 1 0 - 0 - - 0 1 - 3 0 0 1 1 0 1 0 0 1 - 1 - - 1 - 1 4 0 1 0 0 0 1 0 1 0 - - 0 0 - 1 - 5 0 1 0 1 0 1 1 0 0 - - 0 1 - - 1 6 0 1 1 0 0 1 1 1 0 - - 0 - 0 1 - 7 0 1 1 1 1 0 0 0 1 - - 1 - 1 - 1 8 1 0 0 0 1 0 0 1 - 0 0 - 0 - 1 - 9 1 0 0 1 0 0 0 0 - 1 0 - 0 - - 1 Hình 3.21: Bảng trạng thái minh họa quá trình làm việc của bộ đếm module 10 Bước 5: Tối giản các hàm đầu vào 68
- • Bước 6 : Vẽ sơ đồ mạch của bộ đếm 69
- Hình 3.22: Sơ đồ mạch bộ đếm module 10 3.3.3. Thiết kế bộ đếm lùi module 8 Giản đồ xung của bộ đếm Xung đếm 1 2 3 4 5 6 7 8 t Q0 0 1 0 1 0 1 0 1 t Q1 0 1 1 0 0 1 1 0 t Q2 0 1 1 1 1 0 0 0 t Bảng trạng thái của bộ đếm Xung Q2 Q1 Q0 0 0 0 0 1 1 1 1 2 1 1 0 3 1 0 1 4 1 0 0 5 0 1 1 6 0 1 0 7 0 0 1 70
- Đồ hình chuyển đổi trạng thái của bộ đếm 000 001 111 010 110 011 101 100 Để thiết kế bộ đếm này ta dung trigơ JK. Bảng trạng thái hoạt động của bộ đếm Xung Trạng thái của trigơ đếm Trạng thái đầu vào kích của trigơ đếm Đếm Hiện tại Tiếp theo ' ' ' Q2 Q1 Q0 Q2 Q1 Q0 K2 J 2 K1 J1 K0 J0 0 0 0 0 1 1 1 - 1 - 1 - 1 7 1 1 1 1 1 0 0 - 0 - 1 - 6 1 1 0 1 0 1 0 - 1 - - 1 5 1 0 1 1 0 0 0 - - 0 1 - 4 1 0 0 0 1 1 1 - - 1 - 1 3 0 1 1 0 1 0 - 0 0 - 1 - 2 0 1 0 0 0 1 - 0 1 - - 1 1 0 0 1 0 0 0 - 0 - 0 1 Tối giản hàm K 2 J Q1Q 2 QQ Q 0 1 0 2 00 01 11 10 Q2 00 01 11 10 X X 0 x x 0 1 0 0 0 1 1 0 0 0 1 x x x x KQQ2 1. 0 JQQ2 1. 0 71
- K 1 J1 Q1Q QQ Q 0 1 0 2 00 01 11 10 Q2 00 01 11 10 x 0 1 0 x 0 1 0 x x x 1 1 x 0 1 1 0 x x KQ10 JQ10 0 0 0 0 K J 0 QQ 0 1 0 QQ Q 1 0 2 00 01 11 10 Q2 00 01 11 10 x 1 1 x 1 0 0 1 x x x 1 1 1 1 x 1 x x 1 K0 1 J0 1 0 Ta có phương trình trạng0 thái bộ đếm nghich module 8 như sau: 0 0 ; ; ; ; KQQ2 1. 0 ; JQQ2 1. 0 Q2 VCC Q0 Q1 J Q J Q J Q U4 1 3 1 3 1 3 2 1 K /Q K /Q K /Q 3 2 4 2 4 2 4 5 5 5 AND2 C C C Xung vào Sơ đồ mạch logic bộ lùi đồng bộ 3.4. Bộ đếm không đồng bộ 3.4.1. Bộ đếm tiến Bộ đếm tiến không đồng bộ là bộ đếm mà ta ghép nối tiếp các trigơ với nhau , xung cần đếm được đưa vào một cách tuần tự tại lối vào động bộ ( cửa C ) của 72
- Trigơ đầu tiên, đầu ra của trigơ trước được nối với đầu vào đồng bộ C của trigơ tiếp theo cấp cao hơn ( Qi được nối với Ci 1 ). Hình 3.13: Sơ đồ bộ đếm tiến không đồng bộ - Xung xo¸ ph¶i xuÊt hiÖn tr•íc d·y xung ®Õm ®Ó thiÕt lËp tr¹ng th¸i ban ®Çu Q0 = Q1 = Q2 = Q3 = "0". - §Ó tr¹ng th¸i cña trig¬ bÊt kú chØ lËt khi ®Çu ra Q cña trig¬ cÊp thÊp h¬n kÒ nã chuyÓn ®æi tõ "1" vÒ "0" th× c¸c ®Çu vµo ®iÒu khiÓn cña c¸c trig¬ ph¶i cïng nhËn trÞ "1" (J=K=1). - Qua mçi trig¬ Fi thùc hiÖn chia ®«i tÇn sè cña dÉy xung vµo. - §Ó t¹o ra bé ®Õm cã dung l•îng lín ta cÇn t¨ng sè trig¬ (sè bit) khi ®ã do cã hiÖn t•îng trÔ tÝch luü gi÷a d·y xung vµo vµ d·y xung ra lµm gi¶m kh¶ n¨ng ®Õm nhanh khi sè bÝt t¨ng dÇn, ®é trÔ tÝch luü chung b»ng tæng ®é trÔ do c¸c trig¬ t¹o nªn. §©y còng chÝnh lµ nh•îc ®iÓm chÝnh cña bé ®Õm nhÞ ph©n nèi tiÕp (kh«ng ®ång bé). . 3.4.2. Thiết kế bộ đếm lùi Giản đồ xung của bộ đếm: 73
- Hình 3.14: Giản đồ xung bộ đếm lùi Nguyªn lý lµm viÖc t•¬ng tù nh• bé ®Õm nhÞ ph©n thuËn, gi¸ trÞ nhÞ ph©n cña bé ®Õm gi¶m dÇn khi cã xung ®•a tíi, ë bé ®Õm nhÞ ph©n ng•îc nèi tiÕp mµ c¸c trig¬ ®•îc x©y dùng tõ c¸c phÇn tö NAND ng•êi ta thùc hiÖn nèi Qi víi Ci+1 Bảng trạng thái của bộ đếm ngược: Số Trạng thái trigơ đếm xung F3 F2 F1 F0 vào 0 0 0 0 0 1 1 1 1 1 2 1 1 1 0 3 1 1 0 1 74
- 4 1 1 0 0 5 1 0 1 1 6 1 0 1 0 7 1 0 0 1 8 1 0 0 0 9 0 1 1 1 10 0 1 1 0 11 0 1 0 1 12 0 1 0 0 13 0 0 1 1 14 0 0 1 0 15 0 0 0 1 16 0 0 0 0 Hình 3.15: Bảng trạng thái bộ đếm Hình 3.16: Sơ đồ mạch đếm lùi 3.5. Mạch đếm vòng 3.5.1 Đếm vòng Mạch đếm vòng có cấu trúc cơ bản là thanh ghi dịch với đường ra tầng sau cùng được đưa về đường vào tầng đầu. Hình dưới là mạch đếm vòng 4 bit dùng FF D. 75
- SET SET SET SET D0 Q0 D1 Q1 D2 Q2 D3 Q3 C C FF2 C FF3 C0 FF0 1 FF1 2 3 Q0 Q Q Q CLR CLR 1 CLR 2 CLR 3 CLK CLR Hình 3.23: Mạch đếm vòng 4 bit Nhưng để ý rằng, khi mới bật nguồn cho mạch đếm chạy, ta không biết bit 1 nằm ở đường ra của tầng nào. Do đó, cần phải xác lập dữ liệu dịch chuyển ban đầu cho bộ đếm. Ta có thể dùng đường Pr và Cl để làm, như là đã từng dùng để đặt số đếm cho các mạch đếm khác đã nói ở trước, giả sử trạng thái ban đầu là 1000 vậy ta có thể reset tầng FF 3 để đặt Q3 mức 1, các tầng khác thì xoá bằng clear. Giả sử ban đầu chỉ cho D0 = 1, các đường vào tầng FF khác là 0. Bây giờ cấp xung ck đồng bộ khi ck lên cao, dữ liệu 1000 được dịch sang phải 1 tầng do đó Q0 = 1, các đường ra khác là 0. Tiếp tục cho ck xuống thấp lần nữa, Q1 sẽ lên 1, các đường ra khác là 0. Như vậy sau 4 nhịp xung ck thì Q3 lên 1 và đưa về làm D0 = 1. mạch đã thực hiện xong 1 chu trình. Trạng thái các đường ra của mạch như hình sau: 0 1 2 3 4 5 6 7 8 CLK Q0 Q1 Q2 Q3 Hình 3.24. Dạng sóng minh hoạ mạch đếm vòng Hình trên cho thấy rằng, dạng sóng các đường ra là sóng vuông, dịch vòng quanh, chu kì như nhau nhưng lệch nhau đúng 1 chu kì xung vào Ck. Số đếm ra là 1, 2, 4, 8 không phải là số xung vào (như bảng trạng thái đếm phía dưới) 76
- Với 4 số đếm ra từ 4 tầng FF ta có mạch đếm mod 4. Chỉ 4 trạng thái ra trong tổng số 16 trạng thái có thể, điều này làm giảm hiệu quả sử dụng của mạch đếm vòng. Nhưng nó cũng có ưu điểm nổi bật so với mạch đếm chia hệ 2 là không cần mạch giải mã trong cấu trúc mạch (vì thường trong trạng thái của số đếm ra chỉ có 1 bit 1) . 3.5.2. Đếm Johnson (đếm vòng xoắn) SET SET SET SET D0 Q0 D1 Q1 D2 Q2 D3 Q3 C FF1 C C C0 FF0 1 2 FF2 3 FF3 Q0 Q Q Q CLR CLR 1 CLR 2 CLR 3 CLK CLR Hình 3.25 Mạch đếm vòng xoắn Mạch đếm Johnson có một chút thay đổi so với đếm vòng ở chỗ đường ra đảo tầng cuối được đưa về đường vào tầng đầu. Hoạt động của mạch cũng giải thích tương tự. Với n tầng FF thì đếm vòng xoắn cho ra 2n số đếm do đó nó còn được coi là mạch đếm mod 2n (đếm nhị phân cho phép đếm với chu kỳ đếm đến 2n). Như vậy ở trên là mạch đếm vòng xoắn 4 bit. Bảng bên cho thấy 8 trạng thái đường ra và hình dưới sẽ minh hoạ cho số đếm. Ta có thể nạp trạng thái ban đầu cho mạch là 1000 bằng cách sử dụng đường Pr và Cl giống như ở trên. Dạng sóng các đường ra cũng giống như trên, hơn thế nữa, nó còn đối xứng giữa mức thấp với mức cao trong từng chu kì 77
- 0 1 2 3 4 5 6 7 8 CLK Q 0 0 1 1 1 1 0 0 0 0 Q 1 0 0 1 1 1 1 0 0 0 Q 2 0 0 0 1 1 1 1 0 0 Q 3 0 0 0 0 1 1 1 1 0 Hình 3.26: Dạng sóng mạch đếm vòng xoắn 3.6. Bộ ghi dịch 3.6.1. Giới thiệu Ở phần trước ta đã được biết đến các loại FF. Chúng đều có thể lưu trữ (nhớ 1 bit) và chỉ khi có xung đồng bộ thì bit đó mới truyền tới đường ra (đảo hay không đảo). Bây giờ nếu ta mắc nhiều FF nối tiếp lại với nhau thì sẽ nhớ được nhiều bit. Các đường ra sẽ phần hoạt động theo xung nhịp Clock đưa đến đầu vào. Có thể lấy đường ra ở từng tầng FF (gọi là các đường ra song song) hay ở tầng cuối (đường ra nối tiếp). Như vậy mạch có thể ghi lại dữ liệu (nhớ) và dịch chuyển nó (truyền) nên mạch được gọi là ghi dịch. Ghi dịch cũng có rất nhiều ứng dụng đặc biệt trong máy tính, như chính cái tên của nó: lưu trữ dữ liệu và dịch chuyển dữ liệu chỉ là ứng dụng nổi bật nhất. 3.6.2. Cấu tạo Ghi dịch có thể được xây dựng từ các FF khác nhau và cách mắc cũng khác nhau nhưng thường dùng FF D, chúng được tích hợp sẵn trong 1 IC gồm nhiều FF (tạo nên ghi dịch n bit). Hãy xem cấu tạo của 1 ghi dịch cơ bản 4 bit dùng FF D Data input SET SET SET SET Data output D0 Q0 D1 Q1 D2 Q2 D3 Q3 C FF1 C C C0 FF0 1 2 FF2 3 FF3 Q0 Q Q Q CLR CLR 1 CLR 2 CLR 3 CLK CLR 78
- Hình 3.27: Ghi dịch 4 bit cơ bản 3.6.2. Hoạt động Thanh ghi, trước hết được xoá (áp xung CLEAR) để đặt các đường ra về 0. Dữ liệu cần dịch chuyển được đưa vào đường D của tầng FF đầu tiên (FF0). Ở mỗi xung kích lên của xung clock, sẽ có 1 bit được dịch chuyển từ trái sang phải, nối tiếp từ tầng này qua tầng khác và đưa ra ở đường Q của tầng sau cùng (FF3). Giả sử dữ liệu đưa vào là 1001, sau 4 xung clock thì ta lấy ra bit LSB, sau 7 xung clock ta lấy ra bit MSB. Nếu tiếp tục có xung clock và không đưa thêm dữ liệu vào thì đường ra chỉ còn là 0 (các FF đã reset: đặt lại về 0 hết. Do đó ta phải ghim dữ liệu lại. Một cách làm là sử dụng 2 cổng AND, 1 cổng OR và 1 cổng NOT như hình dưới đây. Hình 3.28: Cho phép chốt dữ liệu trước khi dịch ra ngoài Dữ liệu được đưa vào thanh ghi khi đường điều khiển R/W control ở mức cao (Write). Dữ liệu chỉ được đưa ra ngoài khi đường điều khiển ở mức thấp (Read). 3.6.3. Một số bộ ghi dịch thông dụng 3.6.3.1. Bộ ghi dịch vào nối tiếp ra song song Dữ liệu sẽ được lấy ra ở 4 đường Q của 4 tầng FF, vì chung nhịp clock nên dữ liệu được lấy ra cùng lúc. Q0 Q1 Q2 Q3 Data input SET SET SET SET D0 Q0 D1 Q1 D2 Q2 D3 Q3 C FF1 C C C0 FF0 1 2 FF2 3 FF3 Q0 Q Q Q CLR CLR 1 CLR 2 CLR 3 CLK CLR 79
- Hình 3.29: Mạch ghi dịch vào nối tiếp ra song song Bảng dưới đây cho thấy làm như thế nào dữ liệu được đưa tới đường ra 4 tầng FF 3.6.3.2. Bộ ghi dịch vào song song ra nối tiếp Bây giờ muốn đưa dữ liệu vào song song (còn gọi là nạp song song) ta có thể tận dụng đường vào không đồng bộ Pr và Cl của các FF để nạp dữ liệu cùng một lúc vào các F. Mạch hoạt động bình thường khi nạp song song ở thấp như đã nói. Khi nạp song song WRITE = 1 cho phép nạp ABCD được đưa vào Pr và Cl đặt và xoá để Q0 = A, Q1 = B, Xung ck và đường vào nổi tiếp không có tác dụng (vì sử dụng đường không đồng bộ Pr và Cl) Một cách khác không sử dụng chân Pr và Cl được minh hoạ như hình dưới đây.Các cổng nand được thêm vào để nạp các bit thấp D1, D2, D3. Đường WRITE/SHIFT dùng để cho phép nạp (ở mức thấp) và cho phép dịch (ở mức cao). Dữ liệu nạp và dịch vẫn được thực hiện đồng bộ như các mạch trước. H3.2.4b Mạch ghi dịch nạp song song ra nối tiếp Với mạch hình 3.2.4b đường ra dữ liệu là nối tiếp, ta cũng có thể lấy ra dữ liệu song song như ở hình 3.2.5, Cấu trúc mạch không khác so với ở trên. Dữ liệu được đưa vào cùng lúc và cũng lấy ra cùng lúc (mạch như là tầng đệm và hoạt động khi có xung ck tác động lên. 80
- Hình 3.2.5 Mạch ghi dịch vào song song ra song song Ghi dịch 2 chiều Như đã thấy, các mạch ghi dịch nói ở những phần trên đều đưa dữ liệu ra bên phải nên chúng thuộc loại ghi dịch phải. Để có thể dịch chuyển dữ liệu ngược trở lại (dịch trái) ta chỉ việc cho dữ liệu vào đường D của tầng cuối cùng, đường ra Q được đưa tới tầng kế tiếp, . Dữ liệu lấy ra ở tầng đầu. Để dịch chuyển cả 2 chiều, có thể nối mạch như hình dưới đây: Hình 3.2.6 Mạch ghi dịch cho phép dịch chuyển cả 2 chiều Với mạch trên, các cổng NAND và đường cho phép dịch chuyển dữ liệu trái hay phải. Bảng dưới đây minh hoạ cho mạch trên: dữ liệu sẽ dịch phải 4 lần rồi dịch trái 4 lần. Để ý là thứ tự 4 bit ra bị đảo ngược lại so với chúng ở trên. 81
- Hình 3.22: Sơ đồ bộ ghi dịch đầu vào nối tiếp Trigơ JK nối kiểu Trigơ D - Khi lÖnh ghi nhËn trÞ "1" th«ng tin nhÞ ph©n D0 D7 ®•îc ghi vµo c¸c trig¬ D (F0 F7), kÕt thóc lÖnh ghi (nhËn trÞ "0") th«ng tin nhÞ ph©n ®•îc l•u tr÷ trong ®ã. Khi cã lÖnh ®äc (G nhËn trÞ "1") c¸c cæng 3 tr¹ng th¸i ®•îc më, th«ng tin nhÞ ph©n ®•îc göi tíi ®Þa chØ cÇn nhËn C¸c thao t¸c ghi - ®äc ®•îc thùc hiÖn ®ång thêi víi c¶ 8 bit th«ng tin. Ngoµi ra ng•êi ta cßn kÕt hîp ph•¬ng ph¸p nèi tiÕp vµ song song trong mét bé ghi dÞch ®Ó sö dông linh ho¹t c¸c •u thÕ cña mçi c¸ch ®ång thêi t¹o kh¶ n¨ng chuyÓn tõ mét d·y th«ng tin nèi tiÕp thµnh d¹ng song song hoÆc ng•îc l¹i. H×nh 4 ®•a ra cÊu tróc mét bé ghi dÞch 4 bit kiÓu nµy, sö dông 4 trig¬ D kÕt hîp víi c¸c cæng logic phô. 82