Luận văn tốt nghiệp
Hệ thống báo giờ tự động
CHƯƠNG 3: THIẾT KẾ PHẦN CỨNG
2.1_ Tổng quát phần cứng Hệ Thống.
Phần cứng Hệ Thống được xây dựng với yêu cầu đơn giản
nhưng hiệu quả, phục vụ tốt cho các hoạt động của Hệ Thống. Sơ
đồ khối tổng quát của Hệ Thống được mô tả ở hình 1.
Trình bày sơ đồ khối
Thành phần cốt lõi của Hệ Thống là bộ vi xử lí (P) Z80, các
vi mạch nhớ ROM (Read Only Memory), RAM (Random Access
Memory). Các bộ phận bổ trợ như mạch tạo xung đồng hồ và
đònh thời (Clock generator và Timer), mạch bàn phím
(Keyboard), mạch hiển thò (Display), mạch kiểm soát ngắt INT
(Interrupt controller) và mạch điều khiển báo hiệu (Bell Driver).
Hệ Thống sẽ gồm có 1 vi mạch ROM và 1 vi mạch RAM. Vi
mạch ROM sẽ lưu trữ phần mềm Hệ Thống và các thời điểm báo
hiệu Restime. Vi mạch RAM dùng để làm vùng nhớ làm việc của
Hệ Thống và là vùng đệm để lưu trữ các Hottime và Skiptime.
Mạch tạo xung đồng hồ và đònh thời sẽ phát ra xung nhòp cho
hoạt động của Hệ Thống và tín hiệu đònh thời tần số 1Hz tác
động vào ngắt NMI của P phục vụ việc tạo thời gian thực.
Bàn phím gồm 5 phím chức năng (Xây dựng theo nguyên tắc
ánh xạ bộ nhớ) cho phép người sử dụng điều chỉnh thời gian thực
cũng như đặt các Hottime và Skiptime.
Mạch hiển thò gồm 7 led 7 đoạn sẽ thông báo thời gian (Thứ,
giờ, phút và giây) và cho phép người sử dụng theo dõi được các
thao tác trên bàn phím.
Mạch kiểm soát ngắt giúp người sử dụng lựa chọn các chế độ
hoạt động Settime, Hottime và Skiptime tương ứng với các ngắt
INT mode 0.
Luận văn tốt nghiệp
Hệ thống báo giờ tự động
Mạch điều khiển báo hiệu phát ra tín hiệu theo sự điều khiển
của phần mềm.
Luận văn tốt nghiệp
Hệ thống báo giờ tự động
ADDRESS BUS
CONTROL BUS
DATA BUS
1Hz
VXL
Z80
POWER
SUPPLY
TIMER
CLOCK
EPROM
8KB
RAM
2KB
BELL
DRIVER
INTERR
UPT
CONTR
OLLER
KEYBO
ARD
DISPLAY
Luận văn tốt nghiệp
Hệ thống báo giờ tự động
277khZ
Hình 1: SƠ ĐỒ KHỐI TỔNG QUÁT HỆ THỐNG
Luận văn tốt nghiệp
Hệ thống báo giờ tự động
Nguyên lí hoạt động tổng quát:
Hệ thống báo giờ tự động là một hệ vi xử lí nên hoạt động
của hệ thống là sự kết hợp chặt chẽ giữa phần cứng và phần
mềm.
Vi xử lí được đặt ở chế độ “auto reset” nên khi mới mở điện
vi xử lí sẽ bắt đầu đọc bộ nhớ tại đòa chỉ 0000h. Đây cũng là đòa
chỉ bắt đầu của chương trình hệ thống. Ngoài ra, mạch kiểm soát
ngắt sẽ cấm tín hiệu Timer tác động vào ngắt
NMI của Z80
nhằm mục đích tránh việc tạo thời gian thực sai dẫn đến hệ
thống báo giờ sai.
Về mặt phần mềm:
Khi mới mở điện chương trình hệ thống sẽ khởi động mạch
hiển thò (khởi tạo 8279) để mạch hiển thò sẵn sàng hiển thò dữ
liệu thời gian thực từ vi xử lí gởi tới. Ngoài ra, chương trình hệ
thống còn reset mạch báo chuông …
Mạch bàn phím hoạt động khi chương trình con Keypro được
gọi để phục vụ cho Settime, Hottime hay Skiptime.
Phần “
cấu tạo và nguyên tắt hoạt động của các khối mạch”
sẽ giúp chúng ta hiểu rõ hơn hoạt động của Hệ Thống. Bước đầu
tiên trong việc thiết kế Hệ Thống là phân bố bộ nhớ và thực
hiện giải mã đòa chỉ cho các bộ phận của Hệ Thống.
Luận văn tốt nghiệp
Hệ thống báo giờ tự động
2.2_Bộ nhớ Hệ Thống và giải mã đòa chỉ:
2.2.1_Bộ nhớ Hệ Thống:
Hệ Thống báo giờ tự động là một hệ vi xử lí nên việc
phân bố bộ nhớ Hệ Thống là hết sức cần thiết. Ngoài bộ nhớ
ROM, RAM Hệ Thống còn có các bộ phận: bàn phím, mạch
hiển thò và mạch điều khiển báo hiệu. Các bộ phận này được
xem như bộ nhớ. Bộ vi xử lí sẽ truy xuất các khối mạch này
giống như truy xuất bộ nhớ (phương pháp ánh xạ bộ nhớ).
Do yêu cầu hoạt động với vùng nhớ nhỏ. Hệ Thống chỉ sử
dụng 20KB đầu tiên (0000h – 4FFFh) trong không gian 64KB
mà Z80 quản lí. Với yêu cầu trên bộ nhớ sẽ được phân chia
thành các vùng nhớ dành cho ROM, RAM, vùng nhớ dành cho
mạch hiển thò, mạch báo hiệu và bàn phím.
Để đơn giản, bộ nhớ Hệ Thống sẽ chia thành 5 vùng với
dung lượng 4KB/vùng được phân bố như sau:
4FFFh
4000h
MẠCH BÀN PHÍM 4KB
3FFFh
3000h
MẠCH BÁO HIỆU 4KB
2FFFh
2000h
MẠCH HIỂN THỊ 4KB
1FFFh
1800h
CHƯA DÙNG 2KB
17FFh
Luận văn tốt nghiệp
Hệ thống báo giờ tự động
1000h
RAM 2KB
0FFFh
0000h
ROM 4KB
Hình 2: BẢN ĐỒ BỘ NHỚ HỆ THỐNG
Vùng nhớ từ đòa chỉ 0000h đến 0FFFh dành cho IC ROM
chứa phần mềm Hệ Thống và lưu trữõ các Restime. IC ROM
được dùng là 2732 (4KBx8). Bảng mô tả hoạt động và sơ đồ
chân chức năng như sau:
CHẾ ĐỘ
CE
OE \Vp
p
Vcc OUTP
UT
Read
Stand by
Program
Program
verify
Program
Inhibit
V
IL
V
IH
V
IL
V
IL
V
IH
V
IL
X
Vpp
V
IL
Vpp
Vcc
Vcc
Vcc
Vcc
Vcc
Dout
High Z
Din
Dout
High Z
Luận văn tốt nghiệp
Hệ thống báo giờ tự động
Bảng 1 : BẢNG MÔ TẢ HOẠT ĐỘNG CỦA IC –
ROM 2732
Hình 3: SƠ ĐỒ CHÂN CHỨC NĂNG CỦA IC-ROM
2732
Vùng nhớ từ 1000h đến 1FFFh là vùng nhớ RAM dùng để
làm ngăn xếp (Stack), vùng đệm, bảng Hottime và bảng
Skiptime. Với yêu cầu hiện tại, Hệ Thống chỉ sử dụng 2KB từ
1000h đến 17FFh khi có yêu cầu mở rộng 2KB còn lại sẽ được
dùng đến. IC- RAM được chọn là loại RAM tónh (Static Ram)
6116 (2KBx8). IC 6116 có bảng mô tả hoạt động và sơ đồ chân
chức năng như sau:
Luận văn tốt nghiệp
Hệ thống báo giờ tự động
CHẾ ĐỘ
CE OE WE
DATA
Không chọn
Cấm xuất
Đọc (Read)
Ghi (Write)
H
L
L
L
X
H
L
H
X
H
H
L
High Z
High Z
Dout
Din
Bảng 2 : BẢNG MÔ TẢ HOẠT ĐỘNG CỦA IC – RAM
6116
Hình 4: SƠ ĐỒ CHÂN CHỨC NĂNG CỦA RAM 6116
Vùng nhớ còn lại được dành cho các bộ phận: bàn phím,
hiển thò, điều khiển báo hiệu.
2.2.2_ Mạch giải mã đòa chỉ:
Nhiệm vụ mạch giải mã đòa chỉ là thực hiện hoạt động
giải mã để tạo ra các tín hiệu : chọn IC nhớ ROM , RAM (
CS
chip select) và các tín hiệu điều khiển chọn các bộ phận bàn
phím, hiển thò, điều khiển báo hiệu.
Luận văn tốt nghiệp
Hệ thống báo giờ tự động
Mạch giải mã đòa chỉ là một mạch giải mã từ 3 ra 8 đường
sử dụng 3 đường đòa chỉ A12, A13, A14 để giải mã tạo 8 đường
tín hiệu điều khiển và chọn chip.
Bảng giải mã đòa chỉ chi tiết cùng các tín hiệu điều khiển
như sau:
A
15
A
14
A
13
A
12
A
11
A
10
……A
0
VÙNG
NHỚ
TÍN
HIỆ
U
CHỨC
NĂNG
0
0
0
0
0
0
0 0
0
0 0
1
0
0
1
0 1
0
0 1
1
1 0
0
x x
…… x
0 x
…… x
1 x
…… x
x x
… x
x x
… x
x x
…… x
0000h –
0FFFh
1000h -
17FFh
1800h –
1FFFh
2000h –
2FFFh
3000h -
3FFFh
4000h -
4FFFh
1CS
2CS
DPL
BDR
KBD
Chọn IC
ROM
Chọn IC
RAM
Chưa dùng
Hiển thò
Báo hiệu
Đọc bàn
phím
Bảng 3 : BẢNG GIẢI MÃ ĐỊA CHỈ BỘ NHỚ.
Mạch giải mã đòa chỉ dùng IC 74LS138 có 8 ngõ ra tác
động mức thấp. Tín hiệu
MERQ từ P tác động vào 2 ngõ vào
điều kiện G2A và G2B để điều khiển việc giải mã chọn chip.
Luận văn tốt nghiệp
Hệ thống báo giờ tự động
Hình 5: SƠ ĐỒ CHI TIẾT MẠCH GIẢI MÃ ĐỊA CHỈ.
2.2.3_Tóm tắt:
Mạch điện bộ nhớ Hệ Thống có cấu tạo như sau:
Luận văn tốt nghiệp
Hệ thống báo giờ tự động
Hình 6: SƠ ĐỒ CHI TIẾT MẠCH BỘ NHỚ
Các tín hiệu 1CS , 2CS thực hiện chọn IC ROM và IC
RAM. Tín hiệu
RD
từ P điều khiển việc đọc dữ liệu trong
ROM và RAM, tín hiệu
WR cho phép P ghi dữ liệu vào RAM.
Giản đồ thời gian các chu kì
P đọc và ghi bộ nhớ như
hình 7:
Luận văn tốt nghiệp
Hệ thống báo giờ tự động
CLOCK
A0-A15 VALID ADDRESS
MERQ
RD
D0-D7 DATA IN
WR
D0-D7 DATA OUT
Hình 7: CHU KÌ P ĐỌC VÀ GHI BỘ NHỚ.
Hoạt động đọc, ghi bộ nhớ của P như sau:
HOẠT ĐỘNG
CỦA
P
MERQ
CS
RD
WR
Đọc bộ nhớ L L L H
Ghi bộ nhớ L L H L
Các bộ phận bàn phím, hiển thò và điều khiển báo hiệu
thiết kế theo nguyên tắt ánh xạ bộ nhớ. Hoạt động của
P truy
xuất các bộ phận này như sau:
HOẠT ĐỘNG
CỦA
P
ĐỊA CHỈ
MERQ
TÍN HIỆU
ĐIỀU
Luận văn tốt nghiệp
Hệ thống báo giờ tự động
KHIỂN
Hiển thò 2000h –
2FFFh
L
DPL
= L
Điều khiển báo
hiệu
3000h –
3FFFh
L
BDR
= L
Đọc bàn phím 4000h –
4FFFh
L
KBD
= L
2.3_ Khảo sát tính chất ngắt NMI :
(NON_ MASKABLE INTERRUPT)
Ngắt NMI (ngắt không thể che bằng phần mềm) của Z80 là
ngắt có độ ưu tiên tuyệt đối. Khi có ngắt
NMI tác động, chương
trình Hệ Thống sẽ tạm dừng công việc hiện tại để thực hiện
chương trình phục vụ ngắt
NMI bắt đầu tại đòa chỉ 0066h.
Với yêu cầu đặt ra là Hệ Thống làm việc với thời gian thực,
nên đòi hỏi việc đếm thời gian phải thực hiện chính xác và được
ưu tiên hàng đầu. Do đó, ngắt
NMI dành cho việc đếm thời gian
thực. Tuy nhiên, ngoài hoạt động đếm thời gian thực chương
trình Hệ Thống còn phải thực hiện các công việc khác như: phục
vụ bàn phím, phục vụ việc báo hiệu cũng như hiển thò. Ngắt
NMI không được làm ảnh hưởng đến các hoạt động trên .
Công việc thăm dò ngắt
INT và NMI được Z80 thực hiện tại
chu kì đồng hồ cuối cùng ở chu kì máy cuối cùng của một chu kì
lệnh (gọi là các thời điểm to).
Luận văn tốt nghiệp
Hệ thống báo giờ tự động
Chu kì máy cuối Chu kì máy lệnh kế
to
Hình 8: GIẢN ĐỒ NHẬN NGẮT NMI
Theo hình 8, nếu có tín hiệu gọi ngắt NMI (hoặc ngắtINT )
xuất hiện tại các thời điểm khác với các thời điểm to thì chương
trình Hệ Thống sẽ không nhận được ngắt
NMI và chương trình
phục vụ ngắt để tạo thời gian thực sẽ không được thực hiện.
Phần mềm Hệ Thống bao gồm nhiều loại lệnh và các lệnh
này được thực hiện với số chu kì đồng hồ khác nhau. Do vậy,
xung gọi ngắt
NMI phải đủ rộng để việc thăm dò ngắt NMI được
thực hiện một cách hoàn hảo. Nếu xung gọi ngắt
NMI có độ
rộng lớn hơn mức cần thiết thì điều gì xảy ra ?
Qua thử nghiệm người viết nhận thấy, khi có ngắt
NMI
chương trình Hệ Thống tạm dừng công việc hiện tại và thực
hiện chương trình phục vụ ngắt
NMI , nếu tín hiệu ngắt NMI tiếp
tục được giữ ở mức logic thấp thì sau khi chương trình phục vụ
ngắt
NMI thực hiện xong, P sẽ trở về thực hiện công việc dở
dang trước khi phục vụ ngắt mà không bận tâm đến tín hiệu ngắt
NMI dù lúc này vẫn đang ở mức tích cực thấp. Để nhận ngắt trở
lại, chân
NMI của Z80 phải được kéo lên mức logic cao trước khi
có tín hiệu ngắt kế tiếp.
Như vậy có thể nói rằng, khi tín hiệu
NMI ở mức thấp và P
nhận ngắt thì việc thăm dò ngắt sẽ không được thực hiện cho
đến khi tín hiệu
NMI lên mức cao. Việc cho tín hiệu NMI lên
mức cao trước khi có tín hiệu ngắt kế tiếp tương đương với việc
khôi phục hoạt động thăm dò ngắt của
P .
Luận văn tốt nghiệp
Hệ thống báo giờ tự động
Tóm lại, để hoạt động đếm thời gian thực không ảnh hưởng
đến các hoạt động khác của Hệ Thống (trong đó có việc
P
nhận ngắt
INT ) thì độ rộng xung gọi ngắt gọi ngắt NMI (đếm thời
gian) phải được chọn thích hợp và chương trình phục vụ ngắt
NMI phải không được quá dài. Đây là yêu cầu quan trọng đối
với hoạt động của Hệ Thống .