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.. Ngoài r
Trang 1CHƯƠ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
Trang 2Mạ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
Trang 3ADDRESS BUS
CONTROL BUS DATA BUS 1Hz
VXL
Z80
POWER
SUPPLY
TIMER CLOCK
EPROM
INTERR UPT CONTR OLLER
KEYBO ARD
DISPLAY
Trang 4277khZ
Hình 1: SƠ ĐỒ KHỐI TỔNG QUÁT HỆ THỐNG
Trang 5 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
Trang 62.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
Trang 71000h RAM 2KB 0FFFh
0000h
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:
p
UT
Read Stand by Program Program verify Program Inhibit
VIL
VIH
VIL
VIL
VIH
VIL X Vpp
VIL Vpp
Vcc Vcc Vcc Vcc Vcc
Dout High Z Din Dout High Z
Trang 8Bả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:
Trang 9CHẾ ĐỘ 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
Trang 10Mạ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
1
CS
2
CS
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
Trang 11Hì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:
Trang 12Hình 6: SƠ ĐỒ CHI TIẾT MẠCH BỘ NHỚ
Các tín hiệu CS1, CS2 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:
Trang 13A0-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
Đọc bộ nhớ L L L H
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
ĐIỀU
Trang 14Hiển thị 2000h –
DPL= L
Điều khiển báo
hiệu
3000h – 3FFFh
L BDR = L
Đọc bàn phím 4000h –
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ắtNMI 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)
Trang 15Chu kì máy cuối Chu kì máy lệnh kế
to
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ắtNMI , 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
Trang 16Tó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ắtINT) 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