Chương trước đã đề cập đến các mạch tổ hợp từ các cổng logic đơn giản đến các mạch tích hợp MSI phức tạp hơn như mạch chuyển đổi mã, dồn kênh, tách kênh. Chúng có một đặc điểm là ngõ ra sẽ thay đổi trạng thái theo trạng thái ngõ vào mà không kể tới các trạng thái trước đó của nó, nghĩa là chúng không có tính nhớ. Đơn giản như mạch trên hình 3.1.1, nếu A = 1 thì Y = 0
Trang 1Vi mach so
Bài 1: Các khái niệm cơ bản
Chương trước đã đề cập đến các mạch tổ hợp từ các cổng logic đơn giản đến các mạch tích hợp MSI phức tạp hơn như mạch chuyển đổi mã, dồn kênh, tách kênh Chúng có một đặc điểm là ngõ ra sẽ thay đổi trạng thái theo trạng thái ngõ vào mà không kể tới các trạng thái trước đó của nó, nghĩa là chúng không có tính nhớ Đơn giản như mạch trên hình 3.1.1, nếu A = 1 thì Y = 0
Hình 3.1.1 Cổng NOT
Ở chương này, ta sẽ nói đến một loại lớn khác của mạch số, đó là mạch tuần tự Khác với mạch tổ hợp, trạng thái ngõ ra của mạch tuần tự tuỳ thuộc không những vào các trạng thái ngõ vào mà còn vào cả 2 trạng thái trước đó của ngõ ra Không những thế, trạng thái ngõ ra sẽ không thay đổi ngay khi ngõ vào thay đổi mà lại còn phải đợi đến khi có xung lệnh gọi là xung đồng hồ (clock) Như vậy mạch tuần
tự vừa có tính nhớ vừa có tính đồng bộ.
Cả mạch tổ hợp và tuần tự đều được sử dụng nhiều trong các hệ thống số Một hệ tuần tự có thể biểu diễn một cách tổng quát như sau:
Hình 3.1.2 Hệ tuần tự
Phần tổ hợp sẽ nhận tín hiệu logic từ đầu vào bên ngoài và từ đầu ra của các phần
tử nhớ, nó tính toán dựa vào các đầu vào này để cho ra các đầu ra khác nhau,
Trang 2trong đó một phần được đem sang khối các phần tử nhớ để cất giữ đi; đầu ra của phần tử nhớ có thể đưa ra ngoài hay đưa điều khiển phần tổ hợp Phần điều khiển
sẽ cho phép phần nhớ và tổ hợp hoạt động theo một số yêu cầu đề ra.
Như vậy, các đầu ra của hệ thống số vừa phụ thuộc vào các đầu vào vừa liên quan đến thông tin đã lưu trữ bên trong của phần tử nhớ Phần tử nhớ có thể là một mạch logic nhưng có khi chỉ là một đường nối phản hồi từ ngõ ra về ngõ vào.
1.1 Mạch chốt cổng Nand
Hãy xem cấu tạo của mạch dưới đây :
Hình 3.1.3 Mạch chốt cổng Nand
Mạch gồm 2 cổng logic Nand mắc chéo nhau, có
2 ngõ vào là S (set : có nghĩa là đặt) và R (reset : có nghĩa là đặt lại) 2 ngõ ra kí hiệu là Q (đầu
o Khi xoá mạch chốt S = 1 và R = 0
Do R = 0 nên Q = 1 bất chấp ngõ còn lại Vậy ngõ ra ổn định sẽ là Q = 0 và Q = 1
Vì lí do đối xứng nên hoạt động thiết lập và xoá mạch chốt ngược nhau.
o Khi để ngõ vào thường nghỉ S= 1 R=1
Rõ ràng chưa thể biết ngõ ra Q và Q như thế nào Hãy xét đến trạng thái trước đó:
Trang 3Vì vậy khi S=1 R=1 trạng thái ra không thay đổi tức là trước đó như thế nào thì sau vẫn vậy (Qo và Qo)
o Khi thiết lập và xoá cùng lúc S=0, R=0
Rõ ràng khi nãy cả 2 cổng NAND đều có mức vào là 0 nên mức ra là 1, đây là điều kiện không mong muốn vì đã quy ước Q và có trạng thái logic ngược nhau Hơn nữa khi S, R trở lại mức cao(1) thì sẽ không thể
dự đoán Q và Q thay đổi; vì vậy trạng thái này không được sử dụng còn gọi là trạng thái cấm.
Như vậy, mạch có 2 trạng thái ra ổn định là 0 và 1; mạch có thể nhận tín hiệu số vào (trong trường hợp đơn giản này chỉ là 0 và 1) và đưa được nó ra, và từ đây khả năng nhớ (lưu trữ dữ liệu), đồng bộ, và một số điểm khác cũng có thể được thực hiện được Ta sẽ tìm hiểu kĩ hơn ở những mạch sau đó Mạch hoạt động như ở trên được coi là 1 mạch chốt, 1dạng mạch tuần tự cơ bản nhất.
1.2 Mạch chốt là gì?
Như tên gọi của nó, mạch có thể cài lại, giữ lại trạng thái logic ngõ vào
Hình 3.1.4 Kí hiệu khối chốt SR và bảng hoạt động
Trang 4Hình 3.1.7 Dạng sóng minh hoạ và bảng hoạt động của mạch chốt cổng NOR
Thấy rằng các mạch tuần tự dù là mạch chốt đã khảo sát ở trên hay các mạch cao hơn thì đều được cấu tạo bởi cổng logic cơ bản Mặc dù tự thân cồng logic không thể lưu trữ được dữ liệu nhưng khi biết kết hợp với nhau theo một cách thức cho phép tuỳ theo mức độ phức tạp, quy mô kết hợp mà sẽ có mạch chốt, mạch lật, ghi dịch hay hơn nữa là các bộ nhớ, xử lý.
1.4 Ứng dụng của mạch chốt :
Mạch chốt như tên gọi của nó được sử dụng nhiều trong các hệ thống số cần chốt hay đệm dữ liệu trước khi được xử lý điều khiển hay truyền nhận Ngoài ra nó còn được sử dụng làm mạch chống dội và mạch tạo dạng sóng vuông.
a Mạch chống dội :
o Hiện tượng dội do các thiết bị cơ khí gây nên khi đóng ngắt chuyển mạch điện tử Mạch chốt có thể được dùng để chống dội như đã thấy ở chương 1
o Mạch minh hoạ
Hình 3.1.8 Chốt NAND chống dội
Trang 5b Mạch tạo dao động sóng vuông
Một mạch chốt cơ bản kết hợp với một số linh kiện R, C để tạo nên mạch dao động sóng vuông do ngõ ra lật trạng thái qua lại giữa mức 1 và 0 Mạch thiết lập và xoá tự động theo thời hằng nạp xả của tụ C và trở R.
o Tần số dao động tính theo giá trị R, C là
o Mạch chốt được thêm vào 2 cổng nand ở trước cùng với 1 ngõ điều khiển ck
Bảng sự thật của chốt Nand khi có thêm ck
Trang 6Hình 3.1.10 Chốt NAND có thêm xung đồng hồ
Hoạt động của mạch có thể giải thích theo bảng sự thật:
Mạch vừa nêu còn có một tên rất thông dụng: đó là flip flop (viết tắt là FF) Cụ thể
ở đây là mạch FF RS Các FF có 4 dạng kích hoạt từ chân Ck: kích hoạt theo mức cao, mức thấp; cạnh lên, cạnh xuống (tại thời điểm xung Ck có mức hoặc cạnh tương thích thì FF mới được phép chuyển trạng thái).
Do đó trong các sổ tay tra cứu IC số, các trạng thái kích hoạt này được ký hiệu như sau
Trang 7Bài 2.1: Flip-flop và các vi mạch điển hình
Trang 1
2.1 Tổng quan về flip flop (FF)
FF là mạch có khả năng lật lại trạng thái ngõ ra tuỳ theo sự tác động thích hợp của ngõ vào, điều này có ý nghĩa quan trọng trong việc lưu trữ dữ liệu trong mạch và xuất dữ liệu ra khi cần.
Có nhiều loại flip flop khác nhau, chúng được sử dụng rộng rãi trong nhiều ứng dụng Các mạch FF thường được kí hiệu như sau
Hình 3.1.11 Ký hiệu FF
Nếu các ngõ vào sẽ quyết định ngõ ra là cái gì thì ngõ đồng hồ ck lại chỉ ra rằng khi nào mới có sự thay đổi đó Chân Ck có thể tác động mức thấp hay mức cao tuỳ vào cấu trúc bên trong của từng IC FF, do đó với một IC FF cố định thì chỉ có một kiểu tác động và chỉ một mà thối, ví dụ với IC 74112 chỉ có một cách tác động là xung
Trang 8Hình 3.1.14 Dạng sóng minh hoạ cho FF RS
FF RS nảy cạnh lên khi đó sẽ kí hiệu hình tam giác ở sơ đồ khối và dấu mũi tên lên trong bảng trạng thái.
FF RS nảy bằng cạnh xuống tương tự và có khí hiệu thêm hình tròn nhỏ hay gạch đầu Ck để chỉ cạnh xuống ở ký hiệu khối và vẽ dấu mũi tên xuống ở bảng trạng thái.
b) FF JK
FF JK bổ sung thêm trạng thái cho FF RS ( tránh trạng thái cấm)
Hình 3.1.15 Dạng sóng minh hoạ cho FF JK
Nhận thấy đầu vào J, K điều khiển trạng thái ngõ ra theo đúng như cách mà S R
đã làm trừ 1 điểm là khi J = K = 1 thì trạng thái cấm được chuyển thành trạng thái ngược lại ( với J = K = 0 ) Nó còn gọi là chế độ lật của hoạt động
Từ dạng sóng có thể thấy rằng ngõ ra FF không bị ảnh hưởng bởi sườn xuống của xung ck các đầu vào J K cũng không có tác động trừ khi xảy ra tác động lên của Ck
FF JK có thể tạo thành từ FF SR có thêm 2 đầu and có ngõ ra đưa về như hình :
Trang 9Kí hiệu khối và bảng trạng thái của FF T như sau :
=>
Hình 3.1.18 Kí hiệu khối của FF T
Trang 10Hình 3.1.19 Dạng sóng minh hoạ cho hoạt động của FF T
FF T được sử dụng chính để tạo mạch đếm chia 2 Khi T nối lên mức 1 (Vcc) hay để trống, xung kích lần lượt đưa vào ngõ Ck Nhận thấy ngõ ra Q sẽ lật trạng thái mỗi lần ck xuống hay lên Tần số xung ngõ ra Q chỉ còn bằng một nửa tần số ngõ vào
ck nếu đưa Q này tới các tầng FF sau nữa thì lần lượt tần số f sẽ lại được chia đôi Đây là nguyên lí chính của mạch đếm sẽ được xét đến ở phần sau.
Hình 3.1.19a FF T dùng làm mạch chia tần
d) FF D
Khi nối ngõ vào của FF RS hay JK như hình thì sẽ được FF D : chỉ có 1 ngõ vào gọi
là ngõ vào data(dữ liệu) hay delay(trì hoãn) Hoạt động của FF D rất đơn giản : ngõ
ra sẽ theo ngõ vào mỗi khi xung Ck tác động cạnh lên hay xuống.
Trang 11FF D thường là nơi để chuyển dữ liệu từ ngõ vào D đến ngõ ra Q cung cấp cho mạch sau như mạch cộng, ghi dịch… nên hơn nữa ngõ vào D phải chờ một khoảng thời gian khi xung ck kích thì mới đưa ra ngõ ra Q, do đó FF D còn được xem như mạch trì hoãn, ngõ D còn gọi là delay.
e) Mạch chốt D
Các FF nảy bằng mức đều có thể trở thành mạch chốt khi chân ck cho ở mức tác động luôn Thông dụng nhất là chốt D Mạch được tạo bởi FF D khi thay ngõ vào đồng bộ bởi ngõ vào cho phép (enable : E) tác động ở mức cao.
Cấu tạo kí hiệu và bảng trạng thái như những hình sau :
Hình 3.1.22 Kí hiệu khối và bảng sự thật của chốt D
Hình 3.1.23 Cấu tạo chốt D
2.3 Flip flop khi có thêm ngõ vào trực tiếp
Hình 3.124 Kí hiệu FF SR có
thêm ngõ Pr và Cl
Trang 12Như thấy các FF đã xem xét ở trên khi cấp điện sẽ có thể xây dựng ngay trạng thái của ngõ ra vì nó còn tuỳ thuộc vào cấu trúc của mạch và các yếu tố ngẫu nhiên khác Vì lí do này 2 ngõ vào mới được thêm vào để xác định chính xác trạng thái logic ra lúc cấp điện (mở nguồn) hay bất cứ lúc nào muốn, nó hoàn toàn độc lập với trạng thái logic ở các ngõ vào đồng bộ J, K, R, S, D, T và kể cả xung đồng hồ ck, tứcl à chúng giành quyền ưu tiên trước hết quyết định ngõ ra Chúng được gọi là ngõ vào trực tiếp (ngõ vào không đồng bộ) và đặt tên là Preset (Pr) có nghĩa là đặt trước và Clear (Cl) có nghĩa là xoá
Cần phải để ý rằng không được phép đặt chân Pr = Cl = 0 vì khi đó Q = Q' =1 trạng thái cấm Chân Pr, Cl khi này không có tác dụng gì, không xác định được trạng thái ra Do đó, nhiều mạch FF chỉ có 1 ngõ Clear để xoá mạch khi cần mà không có ngõ Pr; có FF thì lại không có cả 2 ngõ này.
Về cấu trúc bên trong của FF khi này, 2 ngõ Pr và Cl sẽ được đưa vào tầng trung gian của các FF, như trong cấu tạo của IC 74LS76.
BÀI 3: THANH GHI
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 ck 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
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
Trang 13Hình 3.2.1 Ghi dịch 4 bit cơ bản
3 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 đồng hồ ck, 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 ck thì ta lấy ra bit LSB, sau 7 xung ck ta lấy ra bit MSB
Nếu tiếp tục có xung ck 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 “hứng” hay 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.2.2 Cho phép chốt dữ liệu trước khi dịch ra ngoài
Trang 14Dữ 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).
CÁC LOẠI THANH GHI DỊCH
Có nhiều cách chia loại thanh ghi dịch (SR)
- Theo số tầng FF (số bit) : SR có cấu tạo bởi bao nhiêu FF mắc nối tiếp thì có bấy nhiêu bit (ra song song) Ta có SR 4 bit, 5 bit, 8 bit, 16 bit …
Có thể có SR nhiều bit hơn bằng cách mắc nhiều SR với nhau hay dùng công nghệ CMOS (các máy tính sử dụng SR nhiều bit)
- Theo cách ghi dịch có
SISO vào nối tiếp ra nối tiếp
SIPO vào nối tiếp ra song song
PISO vào song song ra nối tiếp
PIPO vào song song ra song song
- Theo chiều dịch có SR trái, phải, hay cả 2 chiều
- Theo mạch ra có loại thường và 3 trạng thái
Loại vào nối tiếp ra song song và ra nối tiếp
Loại vừa khảo sát ở mục 1 thuộc loại ghi dịch vào nối tiếp ra nối tiếp Đây cũng là cấu trúc của mạch 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 đồng hồ nên dữ liệu cũng được lấy ra cùng lúc.
Hình 3.2.3 Mạch ghi dịch vào nối tiếp ra song song
Trang 15Bả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
Loại được nạp song song (vào song song) ra nối tiếp và song song
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 FF Như vậy có thể dùng thêm 2 cổng nand và một cổng not cho mỗi tầng Mạch mắc như sau
H3.2.4a Mạch ghi dịch nạp song song
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)
Trang 16Mộ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.
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
Trang 17(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.
MỘT SỐ IC GHI DỊCH
Nhận thấy rằng các ghi dịch mô tả ở trên đều dùng các FF rời, rồi phải thêm nhiều cổng logic phụ để tạo các loại SR khác nhau Trong thực tế ghi dịch được tích hợp sẵn các FF và đã nối sẵn nhiều đường mạch bên trong; người sử dụng chỉ còn phải làm một số đường nối bên ngoài điều khiển các ngõ cho phép thôi Các SR cũng được tích hợp sẵn các chức năng như vừa có thể dịch trái dịch phải vừa vào nối tiếp vừa nạp song song Ở đây là một số ghi dịch hay được dùng :
Liệt kê
7494 : 4bit vào song song, nối tiếp; ra nối tiếp
7495/LS95 : 4 bit, vào song song/nối tiếp; ra song song; dịch chuyển trái
phải
Trang 187495/LS96 : 5 bit, vào nối tiếp/song song; ra song song nối tiếp
74164/LS164 : 8 bit vào song song ra nối tiếp
74165/LS765 : 8 bit, vào song song/nối tiếp; ra nối tiếp bổ túc
74166/LS166 : 8 bit; vào song song/nối tiếp; ra nối tiếp; có thể nạp đồng bộ 74194/LS194 : 4 bit vào song song/nối tiếp; ra song song; nạp đồng bộ dịch
chuyển trái phải 74195/LS195 : 4 bit, vào song/nối tiếp; ra song song; tầng đầu vào ở JK
74295/LS295 : như 74194/LS194 nhưng ra 3 trạng thái
74395/LS295 : 4 bit vào song song; ra song song 3 trạng thái
74LS671/672 : 4 bit có thêm chốt
74LS673/674 : 16 bit
Khảo sát ghi dịch tiêu biểu 74/74LS95
Hình 3.2.7 Sơ đồ chân ra 74LS95
Trang 19Hình 3.2.8 Cấu trúc bên trong ghi dịch 74LS95
Sơ đồ cấu tạo và bảng hoạt động của IC như hình trên Các chế độ hoạt động của
Dữ liệu vào ở 4 ngõ ABCD
Đưa điều khiển kiểu lên cao
Khi có ck1 hay ck2 thì dữ liệu sẽ được nạp vào đồng thời các tầng của ghi dịch ở cạnh lên đầu của xung ck.
ỨNG DỤNG
Thanh ghi dịch đóng vai trò cực kì quan trọng trong việc lưu trữ, tính toán số học
và logic Chẳng hạn trong các bộ vi xử lí, máy tính đều có cấu tạo các thanh ghi dịch; trong vi điều khiển (8051) cũng có các ghi dịch làm nhiều chức năng hay như trong nhân chia, ALU đã xét ở chương 2 ghi dịch cũng đã được đề cập đến Ở đây không đi vào chi tiết mà chỉ nói khái quát ngắn gọn về ứng dụng của chúng.
1 Lưu trữ và dịch chuyển dữ liệu
Đây là ứng dụng cơ bản và phổ biến nhất của chúng Ghi dịch n bit sẽ cho phép lưu trữ được n bit dữ liệu một thời gian mà chừng nào mạch còn được cấp điện Hay nói cách khác dữ liệu khi dịch chuyển đã được trì hoãn một khoảng thời gian, nó tuỳ thuộc vào :
- Số bit có thể ghi dịch (số tầng FF cấu tạo nên ghi dịch)
- Tần số xung đồng hồ
2 Tạo kí tự hay tạo dạng song điều khiển
Ta có thể nạp vào ghi dịch, theo cách nạp nối tiếp hay song song, một mã nhị phân của một chữ nào đó (A, B, ) hay một dạng sóng nào đó Sau đó nếu ta nối ngõ ra
Trang 20nối tiếp của ghi dịch vòng trở lại ngõ vào nối tiếp thì khi có xung ck các bit sẽ dịch chuyển vòng quanh theo tốc độ của đồng hồ Cách này có thể điều khiển sáng tắt của các đèn (sắp xếp trên vòng tròn hay cách nào khác) Như mô phỏng sau là dạng sáng tắt của đèn led Với tải cổng suất thì cần mạch giao tiếp công suất như thêm trans, rờ le, SCR, đã nói ở chương 1 cũng sẽ được dùng Cũng có thể tạo ra dạng sóng tín hiệu tuần hoàn cho mục đích thử mạch bằng cách này Ta có thể thay đổi dạng sóng bằng cách thay đổi mã số nhị phân nạp cho ghi dịch, và thay đổi tần số xung kích ck được cấp từ mạch dao động ngoài từ 0 đến 200MHz tuỳ loại mạch ghi dịch.
Hình 3.2.10 Tạo dạng sóng điều khiển bởi ghi dịch
3 Chuyển đổi dữ liệu nối tiếp sang song song và ngược lại
Các máy tính hay các bộ vi xử lí khi giao tiếp với nhau hay với các thiết bị ngoài thường trao đổi dữ liệu dạng nối tiếp khi giữa chúng có một khoảng cách khá xa Ngoài cách dùng các bộ dồn kênh tách kênh ở 2 đầu truyền mà ta đã nói ở chương
2 thì ghi dịch cũng có thể được dùng Các ghi dịch chuyển song song sang nối tiếp
sẽ thay thế cho mạch dồn kênh và các ghi dịch chuyển nối tiếp sang song song sẽ thay thế cho mạch tách kênh Bên cạnh ghi dịch, cũng cần phải có các mạch khác
để đồng bộ, chống nhiễu, rò sai… nhằm thực hiện quá trình truyền nối tiếp hiệu quả.
Trang 21hình 3.2.11 Truyền dữ liệu nối tiếp
4 Bus truyền dữ liệu
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
Trang 22Giả 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 chờ là không đáng kể do đó giữa các thiết bị giao tiếp với nhau rất nhanh và dường như đồng thời.
BÀI 4: MẠCH ĐẾM KHÔNG ĐỒNG BỘ
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,
Trang 23đế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ự 1.1 Đếm không đồng bộ theo hệ nhị phân (chia 2)
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 +V cc 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)
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?
Trang 24Mạ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 Q 0 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ì
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
Trang 25Xoá 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0
0 1 0 1 0 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 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
Trang 26Hình 3.3.3 Giải mã mạch đếm để hiển thị ra led
Vậy là ta đã có một trò chơi điện tử đơn giản theo kiểu may mắn Cho bộ đếm hoạt động, người chơi sẽ nhấn một nút vào một thời điểm bất kì để ngưng cấp xung đếm
ck, mạch đếm sẽ dừng lại ở con số đang đếm đến Nếu số này làm đèn led sáng thì người chơi sẽ thắng.
Tất nhiên để hoàn chỉnh ta cần phải có một mạch dao động để cấp xung ck cho mạch đếm chạy (bạn có thể tạo mạch dao động từ cổng logic hay mạch chốt kết hợp với linh kiện thụ động R, C như đã nói ở phần trước).
Một ứng dụng đơn giản khác là dùng mạch đếm này để tạo khoảng xung vuông điều khiển tải (chẳng hạn động cơ chạy hay mở van xả) trong khoảng thời gian 3s đếm từ số 7 đến số 10
Giải pháp để giải bài toán trên là sẽ dùng cổng logic để tạo mạch giải mã số 0111(710) để kích ngõ ra lên cao rồi giải mã số 1010(1010) để kích ngõ ra xuống thấp trở lại Hai đường giải mã này được đưa vào ngõ Pr và Cl của mạch chốt để đặt ngõ ra lên mức cao khi Pr và xoá nó khi Cl Mạch thực hiện kết nối như sau :
Hình 3.3.4 Giải mã mạch đếm điều khiển tải
Trong đó NAND1 sẽ giải mã số 7 còn Nand2 sẽ giải mã cho số 10 Ở số đếm thứ 7 của mạch đếm ngõ ra Nand1 xuống thấp preset mạch chốt đặt Q lên cao Đến khi
Trang 27đếm tới 10 thì ngõ ra nand2 khi này xuống thấp (tất nhiên Nand1 đã trở lại cao rồi) thực hiện xoá ngõ ra Q làm Q xuống thấp Khi mạch đếm đến 7 trở lại thì khoảng xung vuông lại xuất hiện Nó có tính chu kỳ Thời gian tồn tại xung vuông được quyết định bởi tần số (chu kì) mạch dao động cấp cho xung ck của mạch đếm, nếu Tck = 1s thì T = 3s Do đó ta có thể thay đổi f mạch dao động để thay đổi khoảng thời gian điều khiển tải.
Bây giờ bạn hãy thiết kế bộ trò chơi đó chỉ cần dùng 3 FF T (tạo 8 trạng thái ra) Khi người chơi nhấn dừng mạch đếm ở số 5 hay số 10 thì đèn led sẽ sáng.
Mạch đếm xuống
Ở trước là mạch đếm lên lần lượt chia 2 tần số, số hệ 10 ra tương ứng là từ 0 đến
15 Cũng có khi cần mạch đếm xuống từ 15 xuống 0 chẳng hạn, cách nối mạch sẽ như thế nào?
Hình dưới trình bày cấu trúc mạch đếm xuống nhị phân 4 bit Ngõ ra Q lần lượt của tầng trước sẽ được nối đến ngõ vào ck của tầng sau đó Xung đếm ck vẫn tác động
ở mức thấp
Hình 3.3.5 Mạch đếm xuống 4 bit không đồng bộ
Các ngõ ra và cách thức xoá mạch, đưa xung vào giống như ở trước Ngõ ra Q của tầng FF đầu dổi trạng thái ở đổi cạnh xuống của xung vào các ngõ ra khác đổi trạng thái ở cạnh xuống của ngõ ra Q', tức là cạnh lên của ngõ ra Q0 của FF kề trước Dạng sóng ở ngõ vào và các ngõ ra cùng với mức logic sau mỗi xung vào và kết quả số đếm được trình bày như hình dưới đây Để ý rằng sau xung ck đầu tiên thì mạch se đếm ngay lên số đếm cao nhất là 15 rồi dần dần xuống 14, … cho tới 0 tổng cộng sau 15 xung ck và tới xung ck thứ 16 mạch sẽ tự động xoá về 15 để đếm xuống trở lại.
Hình dưới đây trình bày cả 2 dạng sóng của mạch đếm lên và xuống bạn có thể so sánh chúng để thấy rõ hơn nguyên lí của sự đếm lên và đếm xuống.
Trang 28hình 3.3.6 So sánh dạng sóng đếm lên và đếm xuống
Hãy nối dây 4 FF T để tạo ra mạch đếm lên, mạch đếm xuống chia 16, có ngõ ck tác động mức cao.
Hãy thay FF T bằng FF JK và thiết kế tương tự
Thêm một bước nữa là cũng với từng ấy FF ta sẽ thiết kế mạch để có thể đếm lên đếm xuống đều được.
Nhận thấy mạch đếm lên hay xuống là do nối từ ngõ raĠ của tầng trước tới ngõ vào ck của tầng sau do đó ở đây sẽ phải dùng một cổng OR cho 2 ngõ vào Việc đếm lên xuống được quyết định bởi một ngõ điều khiển chọn chế độ lên hay xuống Cấu trúc của mạch sẽ được thiết kế như sau :