Chương 2:
CẤU TRÚC PHẦN CỨNG VI XỬ LÍ 8085A
1 . GIỚI THIỆU CHUNG
a .Các họ vi xử lí 8 bit:
Vi xử lí 8 bit là sự cải tiến của vi xử lí 4 bit. Các vi xử lí
này ra đời vào thập niên 70, có rất nhiều hãng chế tạo ra vi xử lí
8 bit như Intel, Motorola, Zilog…
Các vi xử lí của Intel luôn bắt đầu từ các con số 80XX,
được tính từ vi xử lí 8 bit trở về sau như 8085, 8086, 80186
Bảng sau đây sẽ liệt kê một số vi xử lí của hãng Intel:
Tên Năm Chiều dài
thanh ghi
Bus dữ liệu Bộ
nhớ
4040 1971 4 4 1K
8088 1972 8 8 16K
8080 1974 8 8 64K
8085 1974 8 8 64K
8086 1978 16 16 1M
8088 1980 16 8 1M
80186 1982 16 16 1M
80188 1982 16 16 1M
80286 1982 16 16 16M
80386 1985 32 32 70T
80386SX 1988 32 16 70T
80486 1989 32 32 70T
Chú ý : K = Kilo(2
10
) , M = Mega(2
20
) , T = Tera(2
40
)
b .Các đặc tính cơ bản của Vi xử lí 8085A:
Vi xử lí 8085A là một vi xử lí bit kênh N có các đặc tính sau:
Nguồn nuôi 5v 10% ; I
max
= 170 mA.
Tần số xung đồng hồ 6 Mhz.
Mạch tạo xung đồng hồ được tích hợp, có thể dùng thạch anh,
RC hoặc LC ráp thêm bên ngoài.
Chức năng điều khiển hệ thống được tích hợp trên mạch.
Có 4 vectơ ngắt: Trong đó có một yêu cầu ngắt không che
được (Non-markable interrupt) và một tích hợp với 8080A
Có cổng I/O nối tiếp .
Phần mềm tương thích 100% với 8080A.
Thực hiện được các phép tính số học: Thập phân, nhò phân và
số 16 bit.
Đònh đòa chỉ trực tiếp 64 Kbyte ô nhớ.
Họ 8085 của hãng Intel là một sản phẩm mới có tập lệnh
tương thích 100% với họ 8080A và được thiết kế nhằm tăng tốc
độ làm việc của hệ thống dùng 8080 trước đây, nhờ mật độ tích
hợp cao của vi mạch cho phép giảm tới mức tối thiểu số lượng
linh kiện. Trong mạch còn 3 IC cơ bản: 8085(CPU); 8155(RAM)
và 8355/8755 (ROM/PROM), 8085 còn kết hợp tất cả các tính
năng của vi mạch tạo xung đồng hồ 8224 và vi mạch điều khiển
hệ thống 8228.
Vi xử lí 8085 có cấu tạo Bus dữ liệu đa lộ, đòa chỉ được
tách ra từ 8 bit chung đòa chỉ/dữ liệu, chốt đòa chỉ bên trong của
vi mạch nhớ 8155/8355/8755 cho phép ghép trực tiếp với 8085.
2 . CẤU TRÚC PHẦN CỨNG 8085:
a . Sơ đồ chân:
Hình 2 .1: Sơ đồ chân của Vi xử lí 8085
b . Chức năng, dạng tín hiệu, trạng thái các chân của vi
xử lí 8085 được liệt kê ở bảng sau:
Chân Ký hiệu
In/Out
3 state
Ý nghóa
A9
A10
A12
A15
A14
A11
X
2
SOD
TRAP
AD1
X
1
RESET
SID
RST 7.5
RST 6.5
RST 5.5
INTR
INTA
\
AD0
AD2
AD3
AD4
AD5
AD6
AD7
V
SS
A8
A13
S
0
ALE
WR
\
RD
\
S
1
IO/M
\
READY
RESET IN
CLK OUT
HLDA
HOLD
Vcc
1 , 2 X
1
, X
2
I X
1
, X
2
: là hai ngõ vào đặt thạch anh,
mạch RC, LC để xác đònh tần số
xung đồng hồ, có thể đưa xung dao
động ngoài vào X
1
thay cho thạch
anh.
3 RESET
OUT
O Tín hiệu đồng bộ xung đồng hồ cho
biết CPU đang trong trạng thái
Reset, có thể dùng để đặt lại hệ
thống.
4 SOD O Serial output data: Dữ liệu ra nối tiếp
được điều khiển bởi lệnh SIM.
5 SID I Serial input data: Ngõ vào nối tiếp
được đặt vào bit 7 của bộ tích lũy khi
thi hành chỉ thò RIM.
6 TRAP I Tín hiệu yêu cầu ngắt không ngăn
được, nó được nhận dạng cùng lúc
như INTR và có mức ưu tiên cao
nhất trong các yêu cầu ngắt.
7,8,9 INTR I Interrupt request: Được dùng như
một ngắt công dụng chung, ngắt chỉ
được lấy mẫu trong suốt chu kì xung
đồng hồ cuối cùng của chỉ thò. Khi
ngắt tác động đến bộ đếm chương
trình sẽ không tăng nội dung và tín
hiệu INTA\ sẽ được tạo ra trong suốt
chu kì lệnh Restart hoặc CALL có
thể được chèn vào để nhảy đến
chương trình phục vụ ngắt, INTR
được cho phép và ngăn bằng phần
mềm. Ngắt này mất hiệu lực khi
reset và được chấp nhận tức thời sau
một ngắt khác.
11 INTA\ O Interrupt acknowledge: Được dùng
thay cho RD\ trong chu kì lệnh sau
khi một INTR chấp nhận, tín hiệu
này có thể được dùng để tác động vi
xử lí ngắt 8259 hoặc các cổng ngắt
khác.
19-12 AD7-AD0 0-3 Address/Data: Bus đa lộ đòa chỉ byte
thấp đòa chỉ của bộ nhớ hoặc cổng
I/O trong khoảng thời gian chu kì
xung đồng hồ đầu tiên và là 8 bit dữ
liệu trong khoảng chu kì đồng hồ thứ
hai và thứ ba, các chân này ở trạng
thái Z cao trong chế độ HOLD và
HALT.
20 Vss Ground.
21-28 A15-A8 0-3 Byte cao đòa chỉ của bộ nhớ 8 bit, các
chân này ở trạng thái Z cao trong các
chế độ HOLD và HALT.
30 ALE 0-3 Address latch enable : Ngõ ra chốt
đòa chỉ ở mức cao trong khoảng thời
gian chu kì đồng hồ đầu tiên (lúc này
các chân AD0-AD7 là byte thấp đòa
chỉ), cho phép đòa chỉ được đưa vào
chốt đòa chỉ trên mạch ngoại vi, các
chân này được treo lên trạng thái Z
cao trong chế độ HOLD và HALT.
31 WR\ 0-3 Write :Dữ liệu trên bus dữ liệu đang
được ghi vào bộ nhớ hoặc cổng I/O,
dữ liệu được thiết lập lại tại cạnh
xuống của xung WR\, chân này treo
lên trạng thái Z cao ở chế độ HOLD
và HALT
32 RD\ 0-3 Read: Dữ liệu được đọc từ bộ nhớ
hoặc cổng I/O và truyền trên bus dữ
liệu, ở trạng thái Z cao trong chế độ
HOLD và HALT.
29,33,3
4,
S0,S1,
IO/M\
0-3 Ba bit này cho biết trạng thái chu kì
máy.
35 READY I Nếu chân Ready ở mức cao trong
suốt chu kì đọc hoặc ghi có nghóa là
bộ nhớ hoặc thiết bò ngoại vi đã sẵn
sàng để gởi hoặc nhận dữ liệu. Khi
Ready ở mức thấp CPU sẽ chờ trước
khi hoàn tất chu kì đọc/ghi.
36 RESET IN I Tín hiệu vào đặt bộ đếm chương
trình về không, xóa cờ cho phép ngắt
và FF HOLDA, các cờ và các thanh
ghi khác không ảnh hưởng (ngoại trừ
thanh ghi chỉ thò), CPU sẽ duy trì
trạng thái reset khi chân này ở mức
thấp.
37 CLK O Ngõ ra đồng hồ có tần số bằng phân
nửa tần số dao động tại X
1
39 HOLD I Một linh kiện tác động nào đó dùng
tín hiệu này để yêu cầu CPU nhường
quyền sử dụng bus đòa chỉ và dữ liệu
, khi nhận được yêu cầu này CPU sẽ
nhường bus ngay sau khi hoàn tất chu
kì máy hiện hành . CPU chỉ có thể
chiếm lại bus khi không còn tín hiệu
HOLD , khi chấp nhận lệnh HOLD
của các đường đòa chỉ , dữ liệu , RD\
, WR\ , IO/M\ và ALE được treo lên
trạng thái Z cao .
38 HLDA O Hold acknowledge : Tín hiệu ra cho
biết CPU đã chấp nhận yêu cầu
HOLD và nó sẽ nhường bus trong
chu kì đồng hồ kế tiếp , HOLDA về
mức thấp khi không còn yêu cầu
HOLD , CPU chiếm lại bus trong
vòng nữa chu kì đồng hồ sau khi
HOLDA ở mức thấp
40 Vcc Power : Nguồn cung cấp +5V
c . Giản đồ thời gian của chu kì bus
Hình 1.2 : Giản đồ của chu kì đọc
Mỗi chu kì bus tương đương với chu kì máy. Mối liên hệ
thời gian của các tín hiệu luôn khác nhau đối với mỗi loại chu kì
máy. 8085 có 4 loại chu kì máy: chu kì READ, chu kì WRITE,
chu kì INTERRUPT ACKNOWLEDGE và chu kì DMA.
Đối với chu kì đọc, có 3 sự thay đổi: đọc bộ nhớ, đọc IO và
đón giải mã lệnh. Sơ đồ thời gian đọc bộ nhớ hoặc đọc IO không
có trạng thái chờ.
Ở chu kì T
1
, bus AD
7
-AD
0
đóng vai trò là bus đòa chỉ A
7
-
A
0
, tín hiệu ALE lên mức logic 1 ở chu kì T1 nên tín hiệu ALE
dùng để chốt 8 bit đòa chỉ thấp A
7
-A
0
vào một IC chốt. Tín hiệu
RD\ vẫn ở mức logic 1 nên quá trình giao tiếp dữ liệu chưa xảy
ra.
Ở chu kì T
2
và T
3
, bus AD
7
-AD
0
đóng vai trò là bus dữ
liệu D
7
-D
0
. Tín hiệu ALE lên mức logic 0 nên đòa chỉ trong IC
vẫn không thay đổi. Tín hiệu RD\ xuống mức logic 0 nên bus dữ
liệu D
7
-D
0
chưa đóng vai trò là bus nhận dữ liệu.
Trong cả 3 chu kì T
1
, T
2
, T
3
các đường đòa chỉ A
15
- A
8
,
IO/M\ , S
1
, S
2
, vẫn ở ổn đònh trạng thái. Trong chu kì bus D
7
-D
0
nhận dữ liệu các bit đòa chỉ A
7-
A
0
được chốt trong IC chốt và các
bit đòa chỉ cao A
15
-A
8
vẫn không thay đổi nên vi xử lí sẽ nhận
đúng dữ liệu của ô nhớ cần truy xuất.
Vi xử lí đang đọc bộ nhớ I/O chỉ được phân biệt bằng tín
hiệu IO/M\. Chu kì máy thực hiện một lệnh gồm 4 đến 6 chu kì
xung clock. Chu kì thực hiện được chia làm hai quá trình đón
lệnh và thực hiện lệnh. Quá trình đón lệnh giống như quá trình
đọc bộ nhớ tốn khoảng 3 chu kì xung clock từ T
1
đến T
3
. Quá
trình giải mã và thực hiện lệnh tốn thêm 1 đến 3 chu kì xung
clock từ T
4
đến T
6
tùy theo độ phức tạp của lệnh.
Trong trường hợp vi xử lí có tốc độ làm việc cao hơn bộ
nhớ khi có dữ liệu truy xuất sẽ bò sai. Ở chu kì đọc từ bộ nhớ hay
ghi dữ liệu lên bộ nhớ luôn xảy ra ở chu kì T
2
và T
3
. Nếu bộ nhớ
có tốc độ làm việc chậm hơn không kòp gởi dữ liệu ra ở 2 chu kì
này thì vi xử lí sẽ nhận một dữ liệu không xác đònh hay dữ liệu
gởi đến bộ nhớ sẽ bò mất. Trường hợp này được xử lí bằng cách
xen thêm một vài chu kì xung clock vào giữa chu kì T
2
và T
3
bằng cách dùng chân tín hiệu vào READY. Các chu kì xung
clock thêm vào gọi là các chu kì đợi T
W
.
Hình 1.3
Giản đồ thời gian của các tín hiệu khi vi xử lí bò tác động
bởi các tín hiệu ngắt khác nhau. Trong một quá trình ngắt, vi xử
lí sẽ mất một vài chu kì để thực hiện yêu cầu ngắt đó tùy thuộc
vào lệnh được cung cấp bởi thiết bò ngắt đó.
Khi tác động đến INTR , chu kì máy đầu tiên dùng đều
nhập lệnh cần thực hiện. Do đó, ngắt INTR có cùng giản đồ thời
gian ở chu kì T
1
và tín hiệu INTA\ được gởi đi thay thế cho tín
hiệu RD\ và trạng thái của nó dùng để báo cho thiết bò yêu cầu
ngắt biết vi xử lí chấp nhận yêu cầu ngắt này nếu ở mức logic 0.
Nếu lệnh ngắt là lệnh Restart thì vi xử lí cần thêm hai chu
kì máy ghi dữ liệu vào bộ nhớ để cất đòa chỉ trở về sau khi thực
hiện xong chương trình.
Khi Vi xử lí làm việc thì cả 3 Bus ddữ liệu, điều khiển, đòa
chỉ do vi xử lí sử dụng và DMA ở trạng thái ngừng làm việc, khi
muốn chuyển dữ liệu DMA sẽ tác động đến ngõ vào HOLD của
Vi xử lí. Nếu Vi xử lí chấp nhận thì nó sẽ trả lời bằng cách tác
động đến ngõ HLDA ở mức logic 1 và các ngõ ra dữ liệu, đòa chỉ
và điều khiển ở trạng thái tổng trở cao để không ảnh hưởng đến
dữ liệu.
Vi xử lí luôn kiểm tra ngõ vào HOLD, nếu tín hiệu này
xuống mức logic 0 thì Vi xử lí sẽ trở lại thực hiện đúng công
việc đang xử lí.
Hình 1.4