chương 4: Cấu tạo và nguyên tắt hoạt động
các khối mạch
2.4.1_Mạch tạo xung đồng hồ:
Mạch tạo xung đồng hồ có vai trò như quả tim đập nhòp cho
hoạt động của Hệ Thống. Viêäc tạo thời gian thực sẽ càng chính
xác nếu tần số xung clock cấp cho
P càng cao. Tuy nhiên, Hệ
Thống sẽ hoạt động khó ổn đònh ở tần số cao do nhiễu xuất hiện
trên đường mạch in. Do vậy, tần số xung clock được chọn sau
cho giảm thiểu sai số trong việc tạo thời gian thực và tránh được
nhiễu xuất hiện trên mạch in để Hệ Thống hoạt động ổn đònh.
Tần số xung clock được chọn là 500KHz.
Căn cứ vào tần số xung clock đã chọn và tính chất ngắt
NMI
của P là sẽ nhận ngắt khi phải thực hiện xong lệnh còn đang
dang dở ta tính được sai số về thời gian cực đại do việc tạo thời
gian thực như sau:
Thời gian thực hiện lệnh dài nhất t = 23x1/fck
= 23/500000
= 0.46
s
Sai số trong 1 phút = 60 x t
= 60 x 0.46
= 27,6
S
Tính tương tự ta có sai số cực đại trong một năm = 365 x 24
x 60 x 60 x t
= 365 x 24 x
60x 60 x27,6
= 870s
Sai số này là sai số max, thực tế không phải lúc nào tín hiệu
gọi ngắt
NMI cũng ngay vừa lúc P nhận một lệnh dài nhất nên
tần số hoạt động của Hệ Thống = 500KHz là chấp nhận được.
Tần số xung clock này cũng được cấp cho IC 8279 để hiển
thò.
Để tận dụng số lượng cổng logic trên mạch cũng như đơn
giản trong thiết kế, mạch dao động được thiết kế như sau:
Hình 9: SƠ ĐỒ MẠCH TẠO XUNG ĐỒNG HỒ
2.4.2_Mạch đònh thời.
Mạch đònh thời có nhiệm vụ tạo ra xung nhòp tuần hoàn
phục vụ cho việc đếm thời gian thực. Việc đếm thời gian thực
đòi hỏi phải thực hiện một cách chính xác và ổn đònh. Do đó,
mạch đònh thời phải tạo ra tín hiệu đònh thời có tần số thật chính
xác và có tính ổn đònh cao.
Tín hiệu đònh thời tác động vào ngắt
NMI . Khi có ngắt NMI
chương trình tạo thời gian thực sẽ tăng lên 1 đơn vò thời gian (1
giây).
Để có được tín hiệu đònh thời tần số 1Hz có độ chính xác và
tính ổn đònh cao mặc nhiên không thể sử dụng mạch dao động
RC vì giá trò R,C không ổn đònh theo thời gian cũng như nhiệt
độ.
Có thể dùng mạch dao động thạch anh để có được tín hiệu
đònh thời ổn đònh và chính xác. Tuy nhiên, giá trò thạch anh bán
ngoài thò trường ít nhất cũng vài trăm KHz, cho nên phải tốn
thêm mạch chia tần số thì mới có được tín hiệu đònh thời tần số
1Hz.
Chính vì vậy người viết chọn mạch dao động trong đồng hồ
GIMIKO, đây là mạch chuyên dùng nên đảm bảo được tính ổn
đònh và chính xác của tín hiệu đònh thời.
Hình 10: SƠ ĐỒ MẠCH ĐỊNH THỜI.
Do mạch dao động sử dụng nguồn 1,5V nên tín hiệu đònh thời
ở ngõ ra sẽ được khuyếch đại lên cho phù hợp với mức logic của
mạch số. Sau đó, tín hiệu đònh thời sẽ được giới hạn độ rộng
xung trước khi đưa đến chân
NMI của Z80 bằng một mạch đơn ổn
(Mono Multivibrator).
Độ rộng xung gọi ngắt
NMI được chọn phụ thuộc vào thời
gian thực hiện lệnh dài nhất trong chương trình Hệ Thống. Thời
gian thực hiện lệnh dài nhất của Z80 là 23x1/f
ck
(giây) để bảo
đảm
P nhận được ngắt mỗi khi có tín hiệu ngắt NMI = 0. Độ
rộng xung gọi ngắt phải thỏa:
> 23x1/f
ck
= 0.46s
IC 74LS123 có công thức tính độ rộng xung như sau:
= 0,45xRxC
Với R = 1K
, C = 0.047f
Ta có
= 0,45x 1000x0.047x10
-6
= 21,1s
xấp xỉ 45.1 lần thời gian thực hiện lệnh dài nhất của P,
giá trò này của
thỏa mãn yêu cầu đặt ra.
2.4.3_Mạch bàn phím (Keyboard):
Người sử dụng dùng bàn phím để điều chỉnh thời gian
(Settime), đặt các thời điểm báo hiệu đột xuất (Hottime), đặt
các thời điểm cấm báo hiệu (Skiptime), xem hoặc xóa nội dung
bảng Hotime/Skiptime.
Để đáp ứng các yêu cầu trên, bàn phím sẽ có 5 phím với tên
gọi như sau : Ins, +, -, Del/Date và Ok chức năng từng phím do
phần mềm qui đònh. Cách sử dụng bàn phím được mô tả chi tiết
ở phần “
Mô tả Hệ Thống và hướng dẫn sử dụng”.
Bàn phím được thiết kế theo nguyên tắc ánh xạ bộ nhớ,
P
sẽ xem bàn phím như 1 byte nhớ. Bàn phím có đòa chỉ thuộc
vùng nhớ từ 4000h đến 4FFFh.
P dùng tín hiệu điều khiển
để truy xuất bàn phím. Các phím ấn khác nhau sẽ làm cho byte
nhớ có nội dung khác nhau tương ứng với chức năng khác nhau
của mỗi phím. Chu kì
P đọc bàn phím như hình 11.
CLOCK
A0-A15
MERQ
D0-D7
Hình 11: CHU KÌ P ĐỌC BÀN PHÍM.
Tín hiệu MERQ từ P sẽ hiệu lực hóa việc giải mã đòa chỉ tạo
ra tín hiệu
để P đọc bàn phím.
Bàn phím có cấu tạo gồm một IC đệm 8 bit 3 trạng thái và 5
Switch như sau:
Hình 12: SƠ ĐỒ CHI TIẾT MẠCH BÀN PHÍM .
IC 74LS245 được dùng làm mạch đệm 8 bit 3 trạng thái nên
bàn phím có tối đa 8 phím. Hiện tại bàn phím gồm 5 phím,
P
dùng tín hiệu điều khiển
KBD
tác động vào chân G của IC
74LS245 để đọc bàn phím. Khi không có phím nào được ấn, dữ
liệu đọc vào có nội dung là 0FFh. Khi có 1 phím được ấn, bit
tương ứng sẽ có mức logic thấp. Ví dụ, khi phím OK được ấn, dữ
liệu đọc được sẽ có nội dung là 0F7h. Như vậy, mỗi phím tương
ứng với một mã sau:
PHÍM ẤN MÃ
Ins
Ins_+
Ins_-
+
-
Del
Ok
Del/Date _
+
Del/Date_
-
0FEh
0FCh
0FAh
0FDh
0FBh
0EFh
0F7h
0EDh
0EBh
Bảng 4: BẢNG MÃ BÀN PHÍM
Chương trình xử lí bàn phím sẽ thực hiện các công việc phù
hợp với các mã được nhận . Khi không có nhu cầu sử dụng bàn
phím, ngõ ra của mạch đệm 8 bit ở trạng thái tổng trở cao, bàn
phím được cách ly khỏi bus dữ liệu.
Chương trình phần mềm phải đọc phím sau mỗi 200ms nhằm
mục đích:
Chống hiện tượng nảy của phím và để người sử dụng theo
dõi được sự thay đổi của các con số trên đèn hiển thò khi ấn các
phím.
2.4.4_Mạch kiểm soát ngắt (interupt controller).
Hệ Thống báo giờ tự động có 3 chức năng: Setime, Hotime
và Skiptime. Để thực hiện các khả năng này, người sử dụng sẽ
dùng tín hiệu ngắt
INT để báo cho P biết công việc cần thực
hiện để phục vụ người sử dụng. Tại mỗi thời điểm, người sử
dụng chỉ có thể làm việc ở 1 chức năng hoặc Setime hoặc
Hotime hoặc Skiptime.
Ngắt
INT của Z80 gồm 8 vectơ ngắt, nhưng chỉ có 3 vectơ
ngắt được dùng để tạo nên 3 chức năng trên. Nhiệm vụ của
mạch kiểm soát ngắt là tạo ra 3 vectơ ngắt khác nhau
P sẽ căn
cứ vào vectơ ngắt để gọi chương trình phục vụ tương ứng. Để
thuận tiện trong sử dụng, Hệ Thống sẽ có 3 led chỉ thò tương ứng
với 3 chức năng: Setime, Hottime và Skiptime mạch kiểm soát
ngắt gồm các thành phần như sau:
Từ timer
NMI Z80
SETTIME
HOTTIME
DATA BUS
SKIPTIME
SELECT SW
ACCECPT
INT IORQ
1
M
SW
Hình 13: SƠ ĐỒ KHỐI MẠCH KIỂM SOÁT NGẮT.
Mạch tạo vectơ ngắt là mạch đếm modulo 4 đồng bộ, sẽ tạo
ra 4 vectơ ngắt (vectơ ngắt gồm 8 bit có dạng 11ttt111). Mỗi
vectơ ngắt tạo ra tương ứng với 1 chức năng của Hệ Thống.
Hiện tại Hệ Thống chỉ sử dụng 3 vectơ ngắt, các vectơ ngắt còn
CHỐT 8
BIT 3
TRẠNG
THÁI
TẠO VECTƠ
NGẮT
MẠCH
GỌI NGẮT
GIẢI MÃ VÀ
CHỈ THỊ
lại dành cho các yêu cầu mở rộng chức năng khi cần. Bảng 5
trình bày các vectơ ngắt và chức năng của chúng:
VECTƠ
NGẮT
ĐỊA CHỈ
NGẮT
CHỨC NĂNG
11001111
11011111
11101111
11111111
0008h
0018h
0028h
0038h
Setime
Phục vụ
hotime
Phục vụ
Skiptime
Chưa sử dụng
Bảng 5: CHỨC NĂNG VÀ ĐỊA CHỈ CÁC VECTƠ NGẮT.
Khi có tín hiệu gọi ngắt,
P sẽ phát ra 2 tín hiệu IORQ và
1
M
để đọc vectơ ngắt đang hiện diện trên đệm 8 bit và thực hiện
chương trình phục vụ ngắt tương ứng với vectơ ngắt đó. Mạch
giải mã và chỉ thò sẽ làm sáng led tương ứng với vectơ ngắt được
chọn. Người sử dụng sẽ dùng switch “select” để lựa chọn vectơ
ngắt và ấn switch “accept” để gọi ngắt
INT .
Khi ở chức năng Setime, mạch kiểm soát ngắt sẽ tạo ra tín
hiệu điều khiển dừng việc đếm thời gian thực. Tín hiệu này sẽ
điều khiển việc cho hoặc cấm tín hiệu Timer tác động vào ngắt
NMI . Khi khởi động hoặc trước đó bò mất điện, Hệ Thống sẽ tự
động đặt ở chế độ Setime và ngừng việc đếm thời gian thực, lúc
đó mạch tạo vectơ ngắt tự động tạo ra vectơ ngắt 11001111 và
tín hiệu ngừng đếm thời gian. Công việc trên nhằm tránh cho
Hệ Thống báo giờ sai, đồng thời người sử dụng sẽ biết được cần
phải đặt lại thời gian khi nhìn thấy đèn chỉ thò chức năng Setime
sáng lên.
Mạch kiểm soát ngắt có cấu tạo như sau:
Hình 14: SƠ ĐỒ CHI TIẾT MẠCH KIỂM SOÁT NGẮT.
IC 74LS245 được dùng làm đệm 8 bit 3 trạng thái, IC
74LS112 làm mạch đếm modulo 4, được đặt ở chế độ tự động
reset khi mới cấp điện. IC 4093 làm nhiệm vụ giải mã và thúc
các led chỉ thò. IC 74LS123 làm nhiệm vụ giới hạn xung gọi ngắt
INT . Các switch ấn đều được chống dội. Các chân Q1, Q2 của IC
74LS112 kết hợp với các chân A1, A2, A3, A4, A5, A6,A7, A8
được nối lên mức cao của IC 74LS245 để tạo thành các vectơ
ngắt.
P dùng tín hiệu IORQ và
1
M
tác động vào chân G của
74LS245 để đọc nội dung vectơ ngắt.
2.4.5_Mạch hiển thò (Display).
Mạch hiển thò có nhiệm vụ thông báo thời gian thực và cho
phép người sử dụng theo dõi được công việc đang thực hiện khi
dùng bàn phím. Nội dung hiển thò là các con số chỉ thời gian
(thứ, giờ, phút, giây). Đèn hiển thò gồm 7 led 7 đoạn, một led
hiển thò thứ, hai led hiển thò giờ, hai led hiển thò phút và 2 led
hiển thò giây.
Do đặc điểm của Hệ Thống là phần quét hiển thò cần phải
được thực hiện độc lập với vi xử lí nên người viết sử dụng IC
chuyên quét phím và hiển thò. Đó là IC 8279 để hiển thò.
Cấu trúc phần cứng 8279
Hình 15: SƠ ĐỒ CHÂN CHỨC NĂNG IC 8279
Tên các chân :
TÊN
DB7 –
DB0
CLK
RESET
I/O
I/O
I
I
I
CHỨC NĂNG
Data bus
Clock input
Reset input
Chip Select
CS\
RD\
WR\
Ao
IRQ
Sl0 - SL3
RL0 – RL3
SHIFT
CNTL/STB
OUT A3 –
0
OUT B3 –
0
BD
I
I
I
O
O
I
I
I
O
O
O
Read input
Write input
Address
Interrupt request
input
Scan lines
Return lines
Shift input
Control/Strobe
input
Display (A) output
Display (B) output
Blank Display
output