Vậy bus chính là các đường dữ liệu dùng chung cho nhiều mạch chẳng hạn bus giữa các vi xử lí, các chíp nhớ bán dẫn, các bộ chuyển đổi tương tự và số,… Chỉ có một đường bus mà lại dùng
Trang 1 hình 3.2.11 Truyền dữ liệu nối tiếp
Bây giờ liệu với 8 đường dữ liệu song song vừa nhận được từ tách kênh đó (còn gọi là 1 byte), ta có thể dùng chung cho nhiều mạch được không? Sở dĩ
có yêu cầu đó là vì trong máy vi tính có rất nhiều mạch liên kết với nhau bởi các đường dữ liệu địa chỉ gồm nhiều bit dữ liệu 8, 16, 32… mà ta đã biết đến
nó với cái tên là bus Vậy bus chính là các đường dữ liệu dùng chung cho nhiều mạch (chẳng hạn bus giữa các vi xử lí, các chíp nhớ bán dẫn, các bộ chuyển đổi tương tự và số,…
Chỉ có một đường bus mà lại dùng chung cho nhiều mạch, do đó để tránh tranh chấp giữa các mạch thì cần phải có một bộ phận điều khiển quyết định cho phép mạch nào được thông với bus, các mạch khác bị cắt khỏi bus Vậy
ở đây thanh ghi hay các bộ đệm 3 trạng thái được dùng
Hình dưới minh hoạ cho đường bus 8 bit nối giữa vi xử lí với bộ đếm 8 bit, bàn phím, và bộ 8 nút nhấn
Giả sử rằng cả thiết bị đều cần giao tiếp với vi xử lí, nhưng chỉ có một
đường truyền nếu tất cả đồng loạt đưa lên thì có thể bị ảnh hưởng lẫn nhau giữa các dữ liệu, và thông tin nhận được là không chính xác Do đó ở đây vi
xử lí sẽ quyết định: chẳng hạn nó đặt ngõ OE1 cho phép bộ đếm cho mạch đếm đưa dữ liệu lên bus còn chân OE2 và OE3 ngưng làm dữ liệu từ bàn phím và nút nhấn bị ngắt (chờ) tức ngõ ra các bộ đệm hay thanh ghi 3 trạng thái ở trạng thái tổng trở cao Tương tự khi vi xử lí cần giao tiếp với các mạch khác Với tốc độ xử lí hàng trăm hàng ngàn MHz thì việc dữ liệu phải
Trang 2dường như đồng thời
Kỹ T huật S ố
Blogthongtin info Biên tập: Nguyễn
Trọng Hòa
Trong những phần trước ta đã được biết đến 2 loại mạch tuần tự cơ bản là mạch lật và mạch ghi dịch; và cũng biết rằng nhiều FF nối lại với nhau có thể hoạt động như một mạch đếm hay thanh ghi (nhớ nhiều bit) Nhưng đó mới chỉ là những mạch nhớ cơ bản, phần này sẽ đề cập đến chi tiết hơn cấu tạo, hoạt động và nhiều ứng dụng của nhiều mạch đếm khác nhau Phần lớn chúng ở dạng mạch tích hợp Hệ thống số ngày nay sử dụng khá nhiều loại mạch đếm, có thể dùng để đếm xung, đếm sản phẩm, đếm làm đồng hồ, định thời gian … và rõ ràng chúng là các mạch logic nên chính xác và dễ dàng thiết kế hơn nhiều so với các loại mạch tương tự
Mạch đếm lên
Hình dưới đây trình bày một mạch đếm gồm 4 FF T mắc nối tiếp Các ngõ vào T (hay J=K) của cả 4 tầng FF đều để trống hay nối lên +Vcc Xung cần đếm được đưa vào ngõ ck tác động cạnh xuống của tầng FF đầu tiên (nó có thể là một chuỗi xung vuông có chu kì không cố định)
Các ngõ ra Q lần lượt được nối tới ngõ vào đếm ck của tầng sau nó (nếu có) Chúng được đặt tên là Q0 (LSB), Q1, Q2, Q3 (MSB)
Trang 3
Hình 3.3.1 Bộ đếm nhị phân 4 bit không đồng bộ cơ bản
Hình 3.3.2 Giản đồ thời gian xung của ngõ vào và các ngõ ra bộ đếm :
Mạch sẽ đếm như thế nào?
Mạch đếm thường hoạt động ở trạng thái ban đầu là 0000 do đó một xung tác động mức thấp sẽ được áp vào ngõ Cl của các tầng FF để đặt trạng thái ngõ ra là 0000
Khi xung đếm ck tác động cạnh xuống đầu tiên thì Q0 lật trạng thái tức là Q0 = 1 Ở cạnh xuống thứ 2 của xung ck, Q0 lại lật trạng thái một lần nữa, tức là Q0 = 0 Như vậy cứ sau mỗi lần tác động của ck Q0 lại lật trạng thái một lần, sau 2 lần ck tác động, Q0 lặp lại trạng thái ban đầu, do đó nếu xung
ck có chu kì là T và tần số là f thì xung ngõ ra Q0 sẽ có chu kì là 2T và tần số còn 1/2f Như vậy xung đếm ck đã được chia đôi tần số sau 1 tầng FF
Do Q0 lại trở thành ngõ vào xung đếm của FF thứ 2 (FF B) nên tương tự tần như vậy fQ1 bằng một nửa fQ0 Với 4 tầng FF thì
fQ3 = 1/2fQ2 = 1/4fQ1 = 1/8fQ0 = 1/16f
Như vậy với 4 FF ta có 16 trạng thái logic ngõ ra từ 0000(010) ở xung đếm đầu tiên đến 1111 (1510) ở xung đếm thứ 16, tức là trị thập phân ra bằng số xung đếm vào và vì vậy đây là mạch đếm nhị phân 4 bit (có 4 tầng FF, tần
số được chia đổi sau mỗi tầng) hay mạch đếm chia 16
Mạch được xếp vào loại mạch đếm lên vì khi số xung đếm vào tăng thì số thập phân ra tương ứng cũng tăng Nhưng để ý rằng chỉ có 16 trạng thái ra nên ở xung đếm ck thứ 16 mạch được tự động xoá về 0 để đếm lại Muốn có
Trang 4hay số lượng số đếm khác nhau còn được gọi là Modulus (viết tắt : Mod) do
đó, mạch đếm trình bày ở trên còn gọi là mạch đếm mod 16
Bảng sự thật của mạch đếm nhị phân 4 bit như sau :
Số xung vào
Mã số ra sau khi
có xung vào
Trị thập phân ra Q3 Q2 Q1 Q0
Xoá
1
2
3
4
5
6
7
8
9
10
11
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
2
3
4
5
6
7
8
9
10
11
Trang 512
13
14
15
16
17
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
12
13
14
15
0
1
Nhìn vào giản đồ xung và bảng trạng thái hoạt động của mạch đếm này ta thấy rằng không phải lúc nào các trạng thái logic các ngõ ra đều thay đổi theo nhịp xung đếm ck đầu vào nên ở đây chỉ là mạch đếm không đồng bộ
Giải mã mạch đếm
Với bộ đếm như trên thì có thể làm được gì ?
Chắc chắn là nó có nhiều ứng dụng rồi, hãy xét qua một số ví dụ sau :
Ở phần mạch giải mã để hiển thị led 7 đoạn, mạch đếm đã được ứng dụng để tạo số đếm cho mạch giải mã từ 0000(0) đến 1010(910)
Còn đây là 1 ứng dụng đơn giản khác : yêu cầu được đặt ra là phải biết được mạch đếm đến một số nào đó (chẳng hạn 5) rồi hiển thị ra led
Bạn đọc có thể dễ dàng nghĩ ngay đến việc sử dụng cổng logic để tạo trạng thái ngõ ra làm sáng led từ tổ hợp trạng thái logic ngõ vào khi mạch đếm đến
5 Cách mắc sẽ như sau :
Hình 3.3.3 Giải mã mạch đếm để hiển thị ra led